From 1ec924cc9b5cf887117240a4eac551bdabefa1b7 Mon Sep 17 00:00:00 2001 From: Santeri Hurnanen Date: Tue, 22 Oct 2024 08:14:00 +0300 Subject: [PATCH 01/95] UHF-10354: new cron entrypoint (#1506) * UHF-10354: Remove base.sh * UHF-10354: Remove migrate-hearings.sh --- docker/openshift/crons/base.sh | 35 ---------------------- docker/openshift/crons/migrate-hearings.sh | 9 ------ 2 files changed, 44 deletions(-) delete mode 100644 docker/openshift/crons/base.sh delete mode 100644 docker/openshift/crons/migrate-hearings.sh 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 From 13f7cd1a5d2d3c3249cc58a65b7c0d5443ba48ac Mon Sep 17 00:00:00 2001 From: Tero Elonen <2276077+teroelonen@users.noreply.github.com> Date: Tue, 22 Oct 2024 10:16:43 +0300 Subject: [PATCH 02/95] UHF-10343: Updating the liikunta_suunnistuskartta_avustus forms texts (#1513) * UHF-10343: Update liikunta_suunnistuskartta_avustus forms texts to new version * UHF-10343: Fix issue with application search where the search button and the clear the search button have no spacing in between * UHF-10343: Fix issue with unneccessary wrapper around the application search form styles --- ...bform.liikunta_suunnistuskartta_avustu.yml | 2 +- ...bform.liikunta_suunnistuskartta_avustu.yml | 2 +- ...bform.liikunta_suunnistuskartta_avustu.yml | 4 +- .../hdbt_subtheme/dist/css/styles.min.css | 2 +- .../custom/hdbt_subtheme/package-lock.json | 6 +- .../pages/_application-search.scss | 242 +++++++++--------- 6 files changed, 129 insertions(+), 129 deletions(-) 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/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/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/public/themes/custom/hdbt_subtheme/dist/css/styles.min.css b/public/themes/custom/hdbt_subtheme/dist/css/styles.min.css index 7d6b556a59..fd0dc903d2 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}}.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;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/package-lock.json b/public/themes/custom/hdbt_subtheme/package-lock.json index 99016083c1..737369b2cb 100644 --- a/public/themes/custom/hdbt_subtheme/package-lock.json +++ b/public/themes/custom/hdbt_subtheme/package-lock.json @@ -3310,9 +3310,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001640", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz", - "integrity": "sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==", + "version": "1.0.30001669", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz", + "integrity": "sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==", "funding": [ { "type": "opencollective", diff --git a/public/themes/custom/hdbt_subtheme/src/scss/06_components/pages/_application-search.scss b/public/themes/custom/hdbt_subtheme/src/scss/06_components/pages/_application-search.scss index 170bc17636..d7d7b42946 100644 --- a/public/themes/custom/hdbt_subtheme/src/scss/06_components/pages/_application-search.scss +++ b/public/themes/custom/hdbt_subtheme/src/scss/06_components/pages/_application-search.scss @@ -56,164 +56,164 @@ } } -.application_search { - &--link { - display: block; - height: 100%; - padding-bottom: var(--spacing-m); - position: relative; - text-decoration: none; - &::after { - --icon-size: 1.5rem; +.application_search--link { + display: block; + height: 100%; + padding-bottom: var(--spacing-m); + position: relative; + text-decoration: none; - @include pseudo-icon('arrow-right'); - @include hover-link-arrow-transition; - bottom: var(--spacing-s); - content: ''; - display: block; - flex-shrink: 0; - left: var(--spacing-m); - margin-left: -$spacing-quarter; - margin-top: $spacing-half; - position: absolute; - - @include breakpoint($breakpoint-s) { - --icon-size: 3rem; - margin-left: -$spacing-half; - margin-top: $spacing; - } + &::after { + --icon-size: 1.5rem; + + @include pseudo-icon('arrow-right'); + @include hover-link-arrow-transition; + bottom: var(--spacing-s); + content: ''; + display: block; + flex-shrink: 0; + left: var(--spacing-m); + margin-left: -$spacing-quarter; + margin-top: $spacing-half; + position: absolute; + + @include breakpoint($breakpoint-s) { + --icon-size: 3rem; + margin-left: -$spacing-half; + margin-top: $spacing; } + } - &:focus, - &:hover { - h3 { - text-decoration: none; - } + &:focus, + &:hover { + h3 { + text-decoration: none; + } - &::after { - transform: translateX($spacing-half); + &::after { + transform: translateX($spacing-half); - @media (prefers-reduced-motion) { - transform: none; - } + @media (prefers-reduced-motion) { + transform: none; } } } +} - &--filter-wrapper { - background: var(--color-black-5); +.application_search--filter-wrapper { + background: var(--color-black-5); - h2 { - font-size: var(--fontsize-heading-m); - margin-bottom: var(--spacing-layout-s); - margin-top: var(--spacing-layout-s); - } + h2 { + font-size: var(--fontsize-heading-m); + margin-bottom: var(--spacing-layout-s); + margin-top: var(--spacing-layout-s); + } - 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); - - .form-item { - margin-bottom: 0; - min-width: fit-content; - width: calc(calc(100% - var(--spacing-s) - var(--spacing-s)) / 3); - - label { - color: var(--label-color-default); - font-size: var(--fontsize-body-m); - font-weight: 500; - margin-bottom: var(--spacing-3-xs); - } - - .grant-applications--select-wrapper { - min-width: 100%; - width: 100%; - } + 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); + + .form-item { + margin-bottom: 0; + min-width: fit-content; + width: calc(calc(100% - var(--spacing-s) - var(--spacing-s)) / 3); + + label { + color: var(--label-color-default); + font-size: var(--fontsize-body-m); + font-weight: 500; + margin-bottom: var(--spacing-3-xs); } - .hds-text-input:first-child { - max-width: none; + .grant-applications--select-wrapper { + min-width: 100%; width: 100%; - - input { - width: 100%; - } } - .form-actions { - align-items: center; - display: flex; - order: 6; - padding-top: var(--spacing-m); - width: 100%; + } - @include breakpoint($breakpoint-m) { - width: 17%; - } + .hds-text-input:first-child { + max-width: none; + width: 100%; - input { - min-width: 250px; - width: 100%; - } + input { + width: 100%; } + } + .form-actions { + align-items: center; + display: flex; + gap: $spacing; + order: 6; + padding-top: var(--spacing-m); + width: 100%; - .form-item-items-per-page { - display: none; + @include breakpoint($breakpoint-m) { + width: 17%; } - .form-item-kohderyhma { - order: 1; + input { + min-width: 250px; + width: 100%; } + } - .form-item-avustuslaji { - order: 2; - } + .form-item-items-per-page { + display: none; + } - .form-item-hakija { - order: 3; - } + .form-item-kohderyhma { + order: 1; + } - .form-item-search { - max-width: 100%; - order: 4; - width: 50%; - } + .form-item-avustuslaji { + order: 2; + } - .form-item-application-open { - break-before: left; - display: block; - margin-top: var(--spacing-m); - order: 5; - width: 30%; - } - [data-drupal-selector='edit-reset'] { - background-color: transparent; - border: 0; - color: var(--color-black); - } + .form-item-hakija { + order: 3; } - .hds-koros svg pattern { - color: var(--color-black-5); + .form-item-search { + max-width: 100%; + order: 4; + width: 50%; } - .hero .hero__container { - padding-bottom: var(--spacing-m); + .form-item-application-open { + break-before: left; + display: block; + margin-top: var(--spacing-m); + order: 5; + width: 30%; } + [data-drupal-selector='edit-reset'] { + background-color: transparent; + border: 0; + color: var(--color-black); + } + } + + .hds-koros svg pattern { + color: var(--color-black-5); } - &--filters { - padding-bottom: var(--spacing-layout-m); - padding-top: 0; + .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; From 1773192df7dc51deca37726ea12c7e4b82116acd Mon Sep 17 00:00:00 2001 From: tuutti Date: Tue, 22 Oct 2024 10:19:37 +0300 Subject: [PATCH 03/95] UHF-10248: Run tests against automatic updates (#1516) --- .github/workflows/test.yml | 2 +- .github/workflows/update-config.yml | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) 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: | From a5f741a9eb4c213922b3a477b69aa68da5c5413b Mon Sep 17 00:00:00 2001 From: Santeri Hurnanen Date: Tue, 22 Oct 2024 12:59:47 +0300 Subject: [PATCH 04/95] UHF-10131: sentry (#1515) * UHF-10131: Repurpose grants_logger module for sentry logging * UHF-10131: Fix typo * UHF-10131: Code deduplication * UHF-10131: Capture exceptions * UHF-10131: Remove comment --- conf/cmi/core.extension.yml | 1 + .../src/Form/AtvFormBase.php | 20 ++++++ .../src/Form/ResendApplicationsForm.php | 29 +------- .../src/Form/SubmittedApplicationsForm.php | 15 +--- .../src/ApplicationException.php | 2 +- .../src/ApplicationUploaderService.php | 3 + .../Plugin/WebformHandler/GrantsHandler.php | 39 +++++----- .../grants_logger/grants_logger.info.yml | 8 ++- .../grants_logger/grants_logger.services.yml | 10 +-- .../EventSubscriber/SentryEventSubscriber.php | 49 +++++++++++++ .../grants_logger/src/Logger/GrantsLogger.php | 72 ------------------- .../src/GrantsProfileService.php | 5 +- 12 files changed, 107 insertions(+), 146 deletions(-) create mode 100644 public/modules/custom/grants_logger/src/EventSubscriber/SentryEventSubscriber.php delete mode 100644 public/modules/custom/grants_logger/src/Logger/GrantsLogger.php diff --git a/conf/cmi/core.extension.yml b/conf/cmi/core.extension.yml index 22d09b7a54..6d902bec89 100644 --- a/conf/cmi/core.extension.yml +++ b/conf/cmi/core.extension.yml @@ -60,6 +60,7 @@ module: grants_club_section: 0 grants_front_banner: 0 grants_industries: 0 + grants_logger: 0 grants_mandate: 0 grants_members: 0 grants_metadata: 0 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..63a4a3f33d 100644 --- a/public/modules/custom/grants_admin_applications/src/Form/AtvFormBase.php +++ b/public/modules/custom/grants_admin_applications/src/Form/AtvFormBase.php @@ -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_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/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_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_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; } From 4eca6e9a901c932cf4eebede9d020e73750744cd Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Wed, 23 Oct 2024 09:49:59 +0300 Subject: [PATCH 05/95] feat: UHF-XXXX: Fix failing tests by fixing dependency-related errors. (#1517) * Refactor events to custom module to get installation to succeed * Make some services use lazyloading with events service. * Add update hook & make sure drush deploy is run 1st. * PHPCS * Try to clear caches after importing DB to no avail. --- conf/cmi/core.extension.yml | 5 +- .../src/Form/AtvFormBase.php | 4 +- .../grants_attachments.info.yml | 2 +- .../grants_attachments.services.yml | 3 +- .../src/AttachmentHandler.php | 22 +- .../GrantsAttachmentsController.php | 6 +- .../WebformElement/GrantsAttachments.php | 6 +- .../grants_events/grants_events.info.yml | 5 + .../custom/grants_events/grants_events.module | 6 + .../grants_events/grants_events.services.yml | 4 + .../grants_events/src/EventException.php | 10 + .../grants_events/src/EventsService.php | 248 ++++++++++++++++++ .../grants_handler/grants_handler.install | 10 + .../grants_handler/grants_handler.module | 6 +- .../grants_handler.services.yml | 7 +- .../src/Controller/MessageController.php | 6 +- .../src/Form/CopyApplicationModalForm.php | 4 +- .../grants_handler/src/MessageService.php | 17 +- .../tests/src/Kernel/DataConversionTest.php | 1 + .../grants_metadata.services.yml | 2 +- .../src/ApplicationDataService.php | 6 +- .../tests/src/Kernel/AtvSchemaTest.php | 1 + tools/make/project/install.mk | 2 +- tools/make/project/zzavustusasiointi.mk | 2 + 24 files changed, 346 insertions(+), 39 deletions(-) create mode 100644 public/modules/custom/grants_events/grants_events.info.yml create mode 100644 public/modules/custom/grants_events/grants_events.module create mode 100644 public/modules/custom/grants_events/grants_events.services.yml create mode 100644 public/modules/custom/grants_events/src/EventException.php create mode 100644 public/modules/custom/grants_events/src/EventsService.php diff --git a/conf/cmi/core.extension.yml b/conf/cmi/core.extension.yml index 6d902bec89..c1cc542cb9 100644 --- a/conf/cmi/core.extension.yml +++ b/conf/cmi/core.extension.yml @@ -49,12 +49,12 @@ module: flysystem: 0 focal_point: 0 gin_toolbar: 0 + grants_events: 0 grant_applications_content: 0 grant_applications_noscript: 0 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 @@ -218,9 +218,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/public/modules/custom/grants_admin_applications/src/Form/AtvFormBase.php b/public/modules/custom/grants_admin_applications/src/Form/AtvFormBase.php index 63a4a3f33d..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'), 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..c07bfd3951 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,11 @@ 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']); +} diff --git a/public/modules/custom/grants_handler/grants_handler.module b/public/modules/custom/grants_handler/grants_handler.module index 9ba74435cf..8dbb351477 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 = []; 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/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/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_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/tools/make/project/install.mk b/tools/make/project/install.mk index fade4de0d1..483d64f7e1 100644 --- a/tools/make/project/install.mk +++ b/tools/make/project/install.mk @@ -3,7 +3,7 @@ ifeq ($(DRUPAL_CONF_EXISTS),yes) else DRUPAL_NEW_TARGETS := up build drush-si drush-helfi-enable-modules drush-locale-update drush-helfi-locale-import drush-unblock drush-uli endif -DRUPAL_POST_INSTALL_TARGETS := drush-locale-update drush-deploy drush-helfi-locale-import drush-unblock +DRUPAL_POST_INSTALL_TARGETS := drush-deploy drush-locale-update drush-helfi-locale-import drush-unblock OC_LOGIN_TOKEN ?= $(shell bash -c 'read -s -p "You must obtain an API token by visiting https://oauth-openshift.apps.arodevtest.hel.fi/oauth/token/request (Token):" token; echo $$token') diff --git a/tools/make/project/zzavustusasiointi.mk b/tools/make/project/zzavustusasiointi.mk index ba94ad7f11..3ae0d5ae20 100644 --- a/tools/make/project/zzavustusasiointi.mk +++ b/tools/make/project/zzavustusasiointi.mk @@ -60,9 +60,11 @@ drush-sync-db: ## Sync database ifeq ($(DUMP_SQL_EXISTS),yes) $(call step,Import local SQL dump...) $(call drush,sql-query --file=${DOCKER_PROJECT_ROOT}/$(DUMP_SQL_FILENAME) && echo 'SQL dump imported') + $(call drush,cr -y) else $(call step,Sync database from @$(DRUPAL_SYNC_SOURCE)...) $(call drush,sql-sync -y --structure-tables-key=common,key_value_expire @$(DRUPAL_SYNC_SOURCE) @self) + $(call drush,cr -y) endif PHONY += drush-create-dump From 6eedab018dffbb49c1ca908b08951b3c75e7e627 Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Wed, 23 Oct 2024 10:35:05 +0300 Subject: [PATCH 06/95] fix: Disable pubsub (#1518) --- docker/openshift/crons/pubsub.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/openshift/crons/pubsub.sh b/docker/openshift/crons/pubsub.sh index be359b9f04..9322fdf876 100644 --- a/docker/openshift/crons/pubsub.sh +++ b/docker/openshift/crons/pubsub.sh @@ -1,10 +1,10 @@ #!/bin/bash -echo "Running PubSub daemon: $(date +'%Y-%m-%dT%H:%M:%S%:z')" +#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 +# drush helfi:azure:pubsub-listen || exit 1 done From 279c894e2f113c40e97878f4ca3d3bed8ba19246 Mon Sep 17 00:00:00 2001 From: rpnykanen <48206082+rpnykanen@users.noreply.github.com> Date: Wed, 23 Oct 2024 11:01:38 +0300 Subject: [PATCH 07/95] must be completely commented out (#1519) --- docker/openshift/crons/pubsub.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docker/openshift/crons/pubsub.sh b/docker/openshift/crons/pubsub.sh index 9322fdf876..8e62c2d688 100644 --- a/docker/openshift/crons/pubsub.sh +++ b/docker/openshift/crons/pubsub.sh @@ -1,10 +1,10 @@ #!/bin/bash -#echo "Running PubSub daemon: $(date +'%Y-%m-%dT%H:%M:%S%:z')" +# echo "Running PubSub daemon: $(date +'%Y-%m-%dT%H:%M:%S%:z')" -while true -do +# 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 From cf2b04c26a459724700cc5ec6bf1523d479f56ed Mon Sep 17 00:00:00 2001 From: Tero Elonen <2276077+teroelonen@users.noreply.github.com> Date: Wed, 23 Oct 2024 12:53:02 +0300 Subject: [PATCH 08/95] UHF-10276: Replace old dialog.js implementation from forms (#1511) * UHF-10276: Replace the dialog.js functionality with custom dialog * UHF-10276: Fix translations, style the close button on the dialog * UHF-10276: Add focus trap for the dialog * UHF-10276: Refactor dialog and survey styles together * UHF-10276: Add comment about survey similarities * UHF-10276: Refactor dialog to a separate file so it can be used by other grants modules, refactored dialog.js away from grants_profile, add translations and remove old dialog.js --------- Co-authored-by: Janne Suominen --- .../grants_handler.libraries.yml | 8 + .../grants_handler/grants_handler.module | 8 + .../custom/grants_handler/js/grants-dialog.js | 110 ++ .../grants_handler/js/webform.form.unsaved.js | 79 +- .../custom/grants_handler/translations/fi.po | 46 +- .../custom/grants_handler/translations/sv.po | 53 +- .../grants_profile.libraries.yml | 3 +- .../grants_profile/js/profile_dialog.js | 66 +- .../custom/grants_profile/translations/fi.po | 18 +- .../custom/grants_profile/translations/sv.po | 18 +- .../hdbt_subtheme/dist/css/styles.min.css | 2 +- .../hdbt_subtheme/dist/js/dialog.min.js | 1 - .../hdbt_subtheme/hdbt_subtheme.info.yml | 3 - .../custom/hdbt_subtheme/src/js/dialog.js | 1003 ----------------- .../src/scss/06_components/__index.scss | 1 - .../scss/06_components/dialog/__index.scss | 1 - .../scss/06_components/dialog/_dialog.scss | 90 -- 17 files changed, 246 insertions(+), 1264 deletions(-) create mode 100644 public/modules/custom/grants_handler/js/grants-dialog.js delete mode 100644 public/themes/custom/hdbt_subtheme/dist/js/dialog.min.js delete mode 100644 public/themes/custom/hdbt_subtheme/src/js/dialog.js delete mode 100644 public/themes/custom/hdbt_subtheme/src/scss/06_components/dialog/__index.scss delete mode 100644 public/themes/custom/hdbt_subtheme/src/scss/06_components/dialog/_dialog.scss 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 8dbb351477..39f5111cd1 100644 --- a/public/modules/custom/grants_handler/grants_handler.module +++ b/public/modules/custom/grants_handler/grants_handler.module @@ -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/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 && ``; + const backButtonHTML = backButtonText && ``; + const closeButtonHTML = closeButtonText && ``; + + const dialogHTML = ` +
+
+ +
+ ${closeButtonHTML} +

${dialogTitle}

+
+
+ ${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/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_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/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/themes/custom/hdbt_subtheme/dist/css/styles.min.css b/public/themes/custom/hdbt_subtheme/dist/css/styles.min.css index fd0dc903d2..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);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;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)} +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("
").hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._addClass(this.uiDialog,"ui-dialog","ui-widget ui-widget-content ui-front"),this._on(this.uiDialog,{keydown(i){if(this.options.closeOnEscape&&!i.isDefaultPrevented()&&i.keyCode&&i.keyCode===t.ui.keyCode.ESCAPE)return i.preventDefault(),void this.close(i);if(i.keyCode!==t.ui.keyCode.TAB||i.isDefaultPrevented())return;const e=this.uiDialog.find(":tabbable"),s=e.first(),o=e.last();i.target!==o[0]&&i.target!==this.uiDialog[0]||i.shiftKey?i.target!==s[0]&&i.target!==this.uiDialog[0]||!i.shiftKey||(this._delay((function(){o.trigger("focus")})),i.preventDefault()):(this._delay((function(){s.trigger("focus")})),i.preventDefault())},mousedown(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar(){let i;this.uiDialogTitlebar=t("
"),this._addClass(this.uiDialogTitlebar,"ui-dialog-titlebar","ui-widget-header ui-helper-clearfix"),this._on(this.uiDialogTitlebar,{mousedown(i){t(i.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.trigger("focus")}}),this.uiDialogTitlebarClose=t("").button({label:t("").text(this.options.closeText).html(),icon:"ui-icon-closethick",showLabel:!1}).appendTo(this.uiDialogTitlebar),this._addClass(this.uiDialogTitlebarClose,"ui-dialog-titlebar-close"),this._on(this.uiDialogTitlebarClose,{click(t){t.preventDefault(),this.close(t)}}),i=t("

").uniqueId().prependTo(this.uiDialogTitlebar),this._addClass(i,"ui-dialog-title"),this._title(i),this.uiDialogTitlebar.prependTo(this.uiDialog),this.uiDialog.attr({"aria-labelledby":i.attr("id")})},_title(i){this.options.title?(i.text(this.options.title),t('').prependTo(i)):i.html(" ")},_createButtonPane(){this.uiDialogButtonPane=t("
"),this._addClass(this.uiDialogButtonPane,"ui-dialog-buttonpane","ui-widget-content ui-helper-clearfix"),this.uiButtonSet=t("
").appendTo(this.uiDialogButtonPane),this._addClass(this.uiButtonSet,"ui-dialog-buttonset"),this._createButtons()},_createButtons(){const i=this,{buttons:e}=this.options;this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),t.isEmptyObject(e)||Array.isArray(e)&&!e.length?this._removeClass(this.uiDialog,"ui-dialog-buttons"):(t.each(e,(function(e,s){let o,a;s="function"==typeof s?{click:s,text:e}:s,s=t.extend({type:"button"},s),o=s.click,a={icon:s.icon,iconPosition:s.iconPosition,showLabel:s.showLabel,icons:s.icons,text:s.text},delete s.click,delete s.icon,delete s.iconPosition,delete s.showLabel,delete s.icons,"boolean"==typeof s.text&&delete s.text,t("",s).button(a).addClass(` hds-button hds-button--${s.buttonType?s.buttonType:"primary"}`).appendTo(i.uiButtonSet).on("click",(function(){o.apply(i.element[0],arguments)}))})),this._addClass(this.uiDialog,"ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog))},_makeDraggable(){const i=this,{options:e}=this;function s(t){return{position:t.position,offset:t.offset}}this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start(e,o){i._addClass(t(this),"ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",e,s(o))},drag(t,e){i._trigger("drag",t,s(e))},stop(o,a){const n=a.offset.left-i.document.scrollLeft(),l=a.offset.top-i.document.scrollTop();e.position={my:"left top",at:`left${n>=0?"+":""}${n} top${l>=0?"+":""}${l}`,of:i.window},i._removeClass(t(this),"ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",o,s(a))}})},_makeResizable(){const i=this,{options:e}=this,s=e.resizable,o=this.uiDialog.css("position"),a="string"==typeof s?s:"n,e,s,w,se,sw,ne,nw";function n(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:this._minHeight(),handles:a,start(e,s){i._addClass(t(this),"ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",e,n(s))},resize(t,e){i._trigger("resize",t,n(e))},stop(s,o){const a=i.uiDialog.offset(),l=a.left-i.document.scrollLeft(),h=a.top-i.document.scrollTop();e.height=i.uiDialog.height(),e.width=i.uiDialog.width(),e.position={my:"left top",at:`left${l>=0?"+":""}${l} top${h>=0?"+":""}${h}`,of:i.window},i._removeClass(t(this),"ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",s,n(o))}}).css("position",o)},_trackFocus(){this._on(this.widget(),{focusin(i){this._makeFocusTarget(),this._focusedElement=t(i.target)}})},_makeFocusTarget(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance(){const i=this._trackingInstances(),e=t.inArray(this,i);-1!==e&&i.splice(e,1)},_trackingInstances(){let t=this.document.data("ui-dialog-instances");return t||(t=[],this.document.data("ui-dialog-instances",t)),t},_minHeight(){const{options:t}=this;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position(){const t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions(i){const e=this;let s=!1;const o={};t.each(i,(function(t,i){e._setOption(t,i),t in e.sizeRelatedOptions&&(s=!0),t in e.resizableRelatedOptions&&(o[t]=i)})),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",o)},_setOption(i,e){let s,o;const{uiDialog:a}=this;"disabled"!==i&&(this._super(i,e),"appendTo"===i&&this.uiDialog.appendTo(this._appendTo()),"buttons"===i&&this._createButtons(),"closeText"===i&&this.uiDialogTitlebarClose.button({label:t("").text(`${this.options.closeText}`).html()}),"draggable"===i&&(s=a.is(":data(ui-draggable)"),s&&!e&&a.draggable("destroy"),!s&&e&&this._makeDraggable()),"position"===i&&this._position(),"resizable"===i&&(o=a.is(":data(ui-resizable)"),o&&!e&&a.resizable("destroy"),o&&"string"==typeof e&&a.resizable("option","handles",e),o||!1===e||this._makeResizable()),"title"===i&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size(){let t,i,e;const{options:s}=this;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),i=Math.max(0,s.minHeight-t),e="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-t):"none","auto"===s.height?this.element.css({minHeight:i,maxHeight:e,height:"auto"}):this.element.height(Math.max(0,s.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames(){this.iframeBlocks=this.document.find("iframe").map((function(){const i=t(this);return t("
").css({position:"absolute",width:i.outerWidth(),height:i.outerHeight()}).appendTo(i.parent()).offset(i.offset())[0]}))},_unblockFrames(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:i=>!!t(i.target).closest(".ui-dialog").length||!!t(i.target).closest(".ui-datepicker").length,_createOverlay(){if(!this.options.modal)return;const i=t.fn.jquery.substring(0,4);let e=!0;this._delay((function(){e=!1})),this.document.data("ui-dialog-overlays")||this.document.on("focusin.ui-dialog",function(t){if(e)return;const s=this._trackingInstances()[0];s._allowInteraction(t)||(t.preventDefault(),s._focusTabbable(),"3.4."!==i&&"3.5."!==i||s._delay(s._restoreTabbableFocus))}.bind(this)),this.overlay=t("
").appendTo(this._appendTo()),this._addClass(this.overlay,null,"ui-widget-overlay ui-front"),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)},_destroyOverlay(){if(this.options.modal&&this.overlay){const t=this.document.data("ui-dialog-overlays")-1;t?this.document.data("ui-dialog-overlays",t):(this.document.off("focusin.ui-dialog"),this.document.removeData("ui-dialog-overlays")),this.overlay.remove(),this.overlay=null}}}),!1!==t.uiBackCompat&&t.widget("ui.dialog",t.ui.dialog,{options:{dialogClass:""},_createWrapper(){this._super(),this.uiDialog.addClass(this.options.dialogClass)},_setOption(t,i){"dialogClass"===t&&this.uiDialog.removeClass(this.options.dialogClass).addClass(i),this._superApply(arguments)}}),t.ui.dialog}(); \ No newline at end of file diff --git a/public/themes/custom/hdbt_subtheme/hdbt_subtheme.info.yml b/public/themes/custom/hdbt_subtheme/hdbt_subtheme.info.yml index d0ffb5be1c..861f6de9a0 100644 --- a/public/themes/custom/hdbt_subtheme/hdbt_subtheme.info.yml +++ b/public/themes/custom/hdbt_subtheme/hdbt_subtheme.info.yml @@ -32,9 +32,6 @@ libraries: - hdbt_subtheme/global-scripting libraries-override: - core/drupal.dialog: - js: - misc/dialog/dialog.js: dist/js/dialog.min.js webform/webform.element.help: js: js/webform.element.help.js: dist/js/webform.element.help.min.js diff --git a/public/themes/custom/hdbt_subtheme/src/js/dialog.js b/public/themes/custom/hdbt_subtheme/src/js/dialog.js deleted file mode 100644 index ca09c5b16c..0000000000 --- a/public/themes/custom/hdbt_subtheme/src/js/dialog.js +++ /dev/null @@ -1,1003 +0,0 @@ -/** - * DO NOT EDIT THIS FILE. - * See the following change record for more information, - * https://www.drupal.org/node/2815083 - * @preserve - * */ - -(function ($, Drupal, drupalSettings) { - drupalSettings.dialog = { - autoOpen: true, - dialogClass: "", - buttonClass: "button", - buttonPrimaryClass: "button--primary", - close: function close(event) { - Drupal.dialog(event.target).close(); - Drupal.detachBehaviors(event.target, null, "unload"); - }, - }; - - Drupal.dialog = function (element, options) { - let undef; - const $element = $(element); - const dialog = { - open: false, - returnValue: undef, - }; - - function openDialog(settings) { - settings = $.extend({}, drupalSettings.dialog, options, settings); - $(window).trigger("dialog:beforecreate", [dialog, $element, settings]); - $element.dialog(settings); - dialog.open = true; - $(window).trigger("dialog:aftercreate", [dialog, $element, settings]); - } - - function closeDialog(value) { - $(window).trigger("dialog:beforeclose", [dialog, $element]); - $element.dialog("close"); - dialog.returnValue = value; - dialog.open = false; - $(window).trigger("dialog:afterclose", [dialog, $element]); - } - - dialog.show = function () { - openDialog({ - modal: false, - }); - }; - - dialog.showModal = function () { - openDialog({ - modal: true, - }); - }; - - dialog.close = closeDialog; - return dialog; - }; -})(jQuery, Drupal, drupalSettings); - -(function (factory) { - if (typeof define === "function" && define.amd) { - factory(jQuery); - } else { - // Browser globals - factory(jQuery); - } -})(function ($) { - $.widget("ui.dialog", { - version: "1.13.2", - options: { - appendTo: "body", - autoOpen: true, - buttons: [], - classes: { - "ui-dialog": "ui-corner-all", - "ui-dialog-titlebar": "ui-corner-all", - }, - closeOnEscape: true, - closeText: "Close", - draggable: true, - hide: null, - height: "auto", - maxHeight: null, - maxWidth: null, - minHeight: 150, - minWidth: 150, - modal: false, - position: { - my: "center", - at: "center", - of: window, - collision: "fit", - - // Ensure the titlebar is always visible - using(pos) { - const topOffset = $(this).css(pos).offset().top; - if (topOffset < 0) { - $(this).css("top", pos.top - topOffset); - } - }, - }, - resizable: true, - show: null, - title: null, - width: 300, - - // Callbacks - beforeClose: null, - close: null, - drag: null, - dragStart: null, - dragStop: null, - focus: null, - open: null, - resize: null, - resizeStart: null, - resizeStop: null, - }, - - sizeRelatedOptions: { - buttons: true, - height: true, - maxHeight: true, - maxWidth: true, - minHeight: true, - minWidth: true, - width: true, - }, - - resizableRelatedOptions: { - maxHeight: true, - maxWidth: true, - minHeight: true, - minWidth: true, - }, - - _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"); - if (this.options.title == null && this.originalTitle != null) { - this.options.title = this.originalTitle; - } - - // Dialogs can't be disabled - if (this.options.disabled) { - this.options.disabled = false; - } - - this._createWrapper(); - - this.element.show().removeAttr("title").appendTo(this.uiDialog); - - this._addClass("ui-dialog-content", "ui-widget-content"); - - this._createTitlebar(); - - this._createButtonPane(); - - if (this.options.draggable && $.fn.draggable) { - this._makeDraggable(); - } - if (this.options.resizable && $.fn.resizable) { - this._makeResizable(); - } - - this._isOpen = false; - - this._trackFocus(); - }, - - _init() { - if (this.options.autoOpen) { - this.open(); - } - }, - - _appendTo() { - const element = this.options.appendTo; - if (element && (element.jquery || element.nodeType)) { - return $(element); - } - return this.document.find(element || "body").eq(0); - }, - - _destroy() { - let next; - const { originalPosition } = this; - - this._untrackInstance(); - this._destroyOverlay(); - - this.element - .removeUniqueId() - .css(this.originalCss) - - // Without detaching first, the following becomes really slow - .detach(); - - this.uiDialog.remove(); - - if (this.originalTitle) { - this.element.attr("title", this.originalTitle); - } - next = originalPosition.parent.children().eq(originalPosition.index); - - // Don't try to place the dialog next to itself (#8613) - if (next.length && next[0] !== this.element[0]) { - next.before(this.element); - } else { - originalPosition.parent.append(this.element); - } - }, - - widget() { - return this.uiDialog; - }, - - disable: $.noop, - enable: $.noop, - - close(event) { - const that = this; - - if (!this._isOpen || this._trigger("beforeClose", event) === false) { - return; - } - - this._isOpen = false; - this._focusedElement = null; - this._destroyOverlay(); - this._untrackInstance(); - - if (!this.opener.filter(":focusable").trigger("focus").length) { - // Hiding a focused element doesn't trigger blur in WebKit - // so in case we have nothing to focus on, explicitly blur the active element - // https://bugs.webkit.org/show_bug.cgi?id=47182 - $.ui.safeBlur($.ui.safeActiveElement(this.document[0])); - } - - this._hide(this.uiDialog, this.options.hide, function () { - that._trigger("close", event); - }); - }, - - isOpen() { - return this._isOpen; - }, - - moveToTop() { - this._moveToTop(); - }, - - _moveToTop(event, silent) { - let moved = false; - const zIndices = this.uiDialog - .siblings(".ui-front:visible") - .map(function () { - return +$(this).css("z-index"); - }) - .get(); - const zIndexMax = Math.max.apply(null, zIndices); - - if (zIndexMax >= +this.uiDialog.css("z-index")) { - this.uiDialog.css("z-index", zIndexMax + 1); - moved = true; - } - - if (moved && !silent) { - this._trigger("focus", event); - } - return moved; - }, - - open() { - const that = this; - if (this._isOpen) { - if (this._moveToTop()) { - this._focusTabbable(); - } - return; - } - - this._isOpen = true; - this.opener = $($.ui.safeActiveElement(this.document[0])); - - this._size(); - this._position(); - this._createOverlay(); - this._moveToTop(null, true); - - // Ensure the overlay is moved to the top with the dialog, but only when - // opening. The overlay shouldn't move after the dialog is open so that - // modeless dialogs opened after the modal dialog stack properly. - if (this.overlay) { - this.overlay.css("z-index", this.uiDialog.css("z-index") - 1); - } - - this._show(this.uiDialog, this.options.show, function () { - that._focusTabbable(); - that._trigger("focus"); - }); - - // Track the dialog immediately upon opening in case a focus event - // somehow occurs outside of the dialog before an element inside the - // dialog is focused (#10152) - this._makeFocusTarget(); - - this._trigger("open"); - }, - - _focusTabbable() { - // Set focus to the first match: - // 1. An element that was focused previously - // 2. First element inside the dialog matching [autofocus] - // 3. Tabbable element inside the content element - // 4. Tabbable element inside the buttonpane - // 5. The close button - // 6. The dialog itself - let hasFocus = this._focusedElement; - if (!hasFocus) { - hasFocus = this.element.find("[autofocus]"); - } - if (!hasFocus.length) { - hasFocus = this.element.find(":tabbable"); - } - if (!hasFocus.length) { - hasFocus = this.uiDialogButtonPane.find(":tabbable"); - } - if (!hasFocus.length) { - hasFocus = this.uiDialogTitlebarClose.filter(":tabbable"); - } - if (!hasFocus.length) { - hasFocus = this.uiDialog; - } - hasFocus.eq(0).trigger("focus"); - }, - - _restoreTabbableFocus() { - const activeElement = $.ui.safeActiveElement(this.document[0]); - const isActive = - this.uiDialog[0] === activeElement || - $.contains(this.uiDialog[0], activeElement); - if (!isActive) { - this._focusTabbable(); - } - }, - - _keepFocus(event) { - event.preventDefault(); - this._restoreTabbableFocus(); - - // support: IE - // IE <= 8 doesn't prevent moving focus even with event.preventDefault() - // so we check again later - this._delay(this._restoreTabbableFocus); - }, - - _createWrapper() { - this.uiDialog = $("
") - .hide() - .attr({ - // Setting tabIndex makes the div focusable - tabIndex: -1, - role: "dialog", - }) - .appendTo(this._appendTo()); - - this._addClass( - this.uiDialog, - "ui-dialog", - "ui-widget ui-widget-content ui-front", - ); - this._on(this.uiDialog, { - keydown(event) { - if ( - this.options.closeOnEscape && - !event.isDefaultPrevented() && - event.keyCode && - event.keyCode === $.ui.keyCode.ESCAPE - ) { - event.preventDefault(); - this.close(event); - return; - } - - // Prevent tabbing out of dialogs - if ( - event.keyCode !== $.ui.keyCode.TAB || - event.isDefaultPrevented() - ) { - return; - } - const tabbables = this.uiDialog.find(":tabbable"); - const first = tabbables.first(); - const last = tabbables.last(); - - if ( - (event.target === last[0] || event.target === this.uiDialog[0]) && - !event.shiftKey - ) { - this._delay(function () { - first.trigger("focus"); - }); - event.preventDefault(); - } else if ( - (event.target === first[0] || event.target === this.uiDialog[0]) && - event.shiftKey - ) { - this._delay(function () { - last.trigger("focus"); - }); - event.preventDefault(); - } - }, - mousedown(event) { - if (this._moveToTop(event)) { - this._focusTabbable(); - } - }, - }); - - // We assume that any existing aria-describedby attribute means - // that the dialog content is marked up properly - // otherwise we brute force the content as the description - if (!this.element.find("[aria-describedby]").length) { - this.uiDialog.attr({ - "aria-describedby": this.element.uniqueId().attr("id"), - }); - } - }, - - _createTitlebar() { - let uiDialogTitle; - - this.uiDialogTitlebar = $("
"); - this._addClass( - this.uiDialogTitlebar, - "ui-dialog-titlebar", - "ui-widget-header ui-helper-clearfix", - ); - this._on(this.uiDialogTitlebar, { - mousedown(event) { - // Don't prevent click on close button (#8838) - // Focusing a dialog that is partially scrolled out of view - // causes the browser to scroll it into view, preventing the click event - if (!$(event.target).closest(".ui-dialog-titlebar-close")) { - // Dialog isn't getting focus when dragging (#8063) - this.uiDialog.trigger("focus"); - } - }, - }); - - // Support: IE - // Use type="button" to prevent enter keypresses in textboxes from closing the - // dialog in IE (#9312) - this.uiDialogTitlebarClose = $("") - .button({ - label: $("").text(this.options.closeText).html(), - icon: "ui-icon-closethick", - showLabel: false, - }) - .appendTo(this.uiDialogTitlebar); - - this._addClass(this.uiDialogTitlebarClose, "ui-dialog-titlebar-close"); - this._on(this.uiDialogTitlebarClose, { - click(event) { - event.preventDefault(); - this.close(event); - }, - }); - let uiIcon; - uiDialogTitle = $("

").uniqueId().prependTo(this.uiDialogTitlebar); - - this._addClass(uiDialogTitle, "ui-dialog-title"); - this._title(uiDialogTitle); - - this.uiDialogTitlebar.prependTo(this.uiDialog); - - this.uiDialog.attr({ - "aria-labelledby": uiDialogTitle.attr("id"), - }); - }, - - _title(title) { - if (this.options.title) { - title.text(this.options.title); - $( - '', - ).prependTo(title); - } else { - title.html(" "); - } - }, - - _createButtonPane() { - this.uiDialogButtonPane = $("
"); - this._addClass( - this.uiDialogButtonPane, - "ui-dialog-buttonpane", - "ui-widget-content ui-helper-clearfix", - ); - - this.uiButtonSet = $("
").appendTo(this.uiDialogButtonPane); - this._addClass(this.uiButtonSet, "ui-dialog-buttonset"); - - this._createButtons(); - }, - - _createButtons() { - const that = this; - const { buttons } = this.options; - - // If we already have a button pane, remove it - this.uiDialogButtonPane.remove(); - this.uiButtonSet.empty(); - - if ( - $.isEmptyObject(buttons) || - (Array.isArray(buttons) && !buttons.length) - ) { - this._removeClass(this.uiDialog, "ui-dialog-buttons"); - return; - } - - $.each(buttons, function (name, props) { - let click; - let buttonOptions; - props = - typeof props === "function" ? { click: props, text: name } : props; - - // Default to a non-submitting button - props = $.extend({ type: "button" }, props); - // Change the context for the click callback to be the main element - click = props.click; - buttonOptions = { - icon: props.icon, - iconPosition: props.iconPosition, - showLabel: props.showLabel, - - // Deprecated options - icons: props.icons, - text: props.text, - }; - - delete props.click; - delete props.icon; - delete props.iconPosition; - delete props.showLabel; - - // Deprecated options - delete props.icons; - if (typeof props.text === "boolean") { - delete props.text; - } - - $("", props) - .button(buttonOptions) - .addClass( - ` hds-button hds-button--${ - props.buttonType ? props.buttonType : "primary" - }`, - ) - .appendTo(that.uiButtonSet) - .on("click", function () { - click.apply(that.element[0], arguments); - }); - }); - this._addClass(this.uiDialog, "ui-dialog-buttons"); - this.uiDialogButtonPane.appendTo(this.uiDialog); - }, - - _makeDraggable() { - const that = this; - const { options } = this; - - function filteredUi(ui) { - return { - position: ui.position, - offset: ui.offset, - }; - } - - this.uiDialog.draggable({ - cancel: ".ui-dialog-content, .ui-dialog-titlebar-close", - handle: ".ui-dialog-titlebar", - containment: "document", - start(event, ui) { - that._addClass($(this), "ui-dialog-dragging"); - that._blockFrames(); - that._trigger("dragStart", event, filteredUi(ui)); - }, - drag(event, ui) { - that._trigger("drag", event, filteredUi(ui)); - }, - stop(event, ui) { - const left = ui.offset.left - that.document.scrollLeft(); - const top = ui.offset.top - that.document.scrollTop(); - - options.position = { - my: "left top", - at: - `left${left >= 0 ? "+" : ""}${left} ` + - `top${top >= 0 ? "+" : ""}${top}`, - of: that.window, - }; - that._removeClass($(this), "ui-dialog-dragging"); - that._unblockFrames(); - that._trigger("dragStop", event, filteredUi(ui)); - }, - }); - }, - - _makeResizable() { - const that = this; - const { options } = this; - const handles = options.resizable; - - // .ui-resizable has position: relative defined in the stylesheet - // but dialogs have to use absolute or fixed positioning - const position = this.uiDialog.css("position"); - const resizeHandles = - typeof handles === "string" ? handles : "n,e,s,w,se,sw,ne,nw"; - - function filteredUi(ui) { - return { - originalPosition: ui.originalPosition, - originalSize: ui.originalSize, - position: ui.position, - size: ui.size, - }; - } - - this.uiDialog - .resizable({ - cancel: ".ui-dialog-content", - containment: "document", - alsoResize: this.element, - maxWidth: options.maxWidth, - maxHeight: options.maxHeight, - minWidth: options.minWidth, - minHeight: this._minHeight(), - handles: resizeHandles, - start(event, ui) { - that._addClass($(this), "ui-dialog-resizing"); - that._blockFrames(); - that._trigger("resizeStart", event, filteredUi(ui)); - }, - resize(event, ui) { - that._trigger("resize", event, filteredUi(ui)); - }, - stop(event, ui) { - const offset = that.uiDialog.offset(); - const left = offset.left - that.document.scrollLeft(); - const top = offset.top - that.document.scrollTop(); - - options.height = that.uiDialog.height(); - options.width = that.uiDialog.width(); - options.position = { - my: "left top", - at: - `left${left >= 0 ? "+" : ""}${left} ` + - `top${top >= 0 ? "+" : ""}${top}`, - of: that.window, - }; - that._removeClass($(this), "ui-dialog-resizing"); - that._unblockFrames(); - that._trigger("resizeStop", event, filteredUi(ui)); - }, - }) - .css("position", position); - }, - - _trackFocus() { - this._on(this.widget(), { - focusin(event) { - this._makeFocusTarget(); - this._focusedElement = $(event.target); - }, - }); - }, - - _makeFocusTarget() { - this._untrackInstance(); - this._trackingInstances().unshift(this); - }, - - _untrackInstance() { - const instances = this._trackingInstances(); - const exists = $.inArray(this, instances); - if (exists !== -1) { - instances.splice(exists, 1); - } - }, - - _trackingInstances() { - let instances = this.document.data("ui-dialog-instances"); - if (!instances) { - instances = []; - this.document.data("ui-dialog-instances", instances); - } - return instances; - }, - - _minHeight() { - const { options } = this; - - return options.height === "auto" - ? options.minHeight - : Math.min(options.minHeight, options.height); - }, - - _position() { - // Need to show the dialog to get the actual offset in the position plugin - const isVisible = this.uiDialog.is(":visible"); - if (!isVisible) { - this.uiDialog.show(); - } - this.uiDialog.position(this.options.position); - if (!isVisible) { - this.uiDialog.hide(); - } - }, - - _setOptions(options) { - const that = this; - let resize = false; - const resizableOptions = {}; - - $.each(options, function (key, value) { - that._setOption(key, value); - - if (key in that.sizeRelatedOptions) { - resize = true; - } - if (key in that.resizableRelatedOptions) { - resizableOptions[key] = value; - } - }); - - if (resize) { - this._size(); - this._position(); - } - if (this.uiDialog.is(":data(ui-resizable)")) { - this.uiDialog.resizable("option", resizableOptions); - } - }, - - _setOption(key, value) { - let isDraggable; - let isResizable; - const { uiDialog } = this; - - if (key === "disabled") { - return; - } - - this._super(key, value); - - if (key === "appendTo") { - this.uiDialog.appendTo(this._appendTo()); - } - - if (key === "buttons") { - this._createButtons(); - } - - if (key === "closeText") { - this.uiDialogTitlebarClose.button({ - // Ensure that we always pass a string - label: $("").text(`${this.options.closeText}`).html(), - }); - } - - if (key === "draggable") { - isDraggable = uiDialog.is(":data(ui-draggable)"); - if (isDraggable && !value) { - uiDialog.draggable("destroy"); - } - - if (!isDraggable && value) { - this._makeDraggable(); - } - } - - if (key === "position") { - this._position(); - } - - if (key === "resizable") { - // currently resizable, becoming non-resizable - isResizable = uiDialog.is(":data(ui-resizable)"); - if (isResizable && !value) { - uiDialog.resizable("destroy"); - } - - // Currently resizable, changing handles - if (isResizable && typeof value === "string") { - uiDialog.resizable("option", "handles", value); - } - - // Currently non-resizable, becoming resizable - if (!isResizable && value !== false) { - this._makeResizable(); - } - } - - if (key === "title") { - this._title(this.uiDialogTitlebar.find(".ui-dialog-title")); - } - }, - - _size() { - // If the user has resized the dialog, the .ui-dialog and .ui-dialog-content - // divs will both have width and height set, so we need to reset them - let nonContentHeight; - let minContentHeight; - let maxContentHeight; - const { options } = this; - - // Reset content sizing - this.element.show().css({ - width: "auto", - minHeight: 0, - maxHeight: "none", - height: 0, - }); - - if (options.minWidth > options.width) { - options.width = options.minWidth; - } - - // Reset wrapper sizing - // determine the height of all the non-content elements - nonContentHeight = this.uiDialog - .css({ - height: "auto", - width: options.width, - }) - .outerHeight(); - minContentHeight = Math.max(0, options.minHeight - nonContentHeight); - maxContentHeight = - typeof options.maxHeight === "number" - ? Math.max(0, options.maxHeight - nonContentHeight) - : "none"; - - if (options.height === "auto") { - this.element.css({ - minHeight: minContentHeight, - maxHeight: maxContentHeight, - height: "auto", - }); - } else { - this.element.height(Math.max(0, options.height - nonContentHeight)); - } - - if (this.uiDialog.is(":data(ui-resizable)")) { - this.uiDialog.resizable("option", "minHeight", this._minHeight()); - } - }, - - _blockFrames() { - this.iframeBlocks = this.document.find("iframe").map(function () { - const iframe = $(this); - - return $("
") - .css({ - position: "absolute", - width: iframe.outerWidth(), - height: iframe.outerHeight(), - }) - .appendTo(iframe.parent()) - .offset(iframe.offset())[0]; - }); - }, - - _unblockFrames() { - if (this.iframeBlocks) { - this.iframeBlocks.remove(); - delete this.iframeBlocks; - } - }, - - _allowInteraction(event) { - if ($(event.target).closest(".ui-dialog").length) { - return true; - } - - // TODO: Remove hack when datepicker implements - // the .ui-front logic (#8989) - return !!$(event.target).closest(".ui-datepicker").length; - }, - - _createOverlay() { - if (!this.options.modal) { - return; - } - - const jqMinor = $.fn.jquery.substring(0, 4); - - // We use a delay in case the overlay is created from an - // event that we're going to be cancelling (#2804) - let isOpening = true; - this._delay(function () { - isOpening = false; - }); - - if (!this.document.data("ui-dialog-overlays")) { - // Prevent use of anchors and inputs - // This doesn't use `_on()` because it is a shared event handler - // across all open modal dialogs. - this.document.on( - "focusin.ui-dialog", - function (event) { - if (isOpening) { - return; - } - - const instance = this._trackingInstances()[0]; - if (!instance._allowInteraction(event)) { - event.preventDefault(); - instance._focusTabbable(); - - // Support: jQuery >=3.4 <3.6 only - // Focus re-triggering in jQuery 3.4/3.5 makes the original element - // have its focus event propagated last, breaking the re-targeting. - // Trigger focus in a delay in addition if needed to avoid the issue - // See https://github.com/jquery/jquery/issues/4382 - if (jqMinor === "3.4." || jqMinor === "3.5.") { - instance._delay(instance._restoreTabbableFocus); - } - } - }.bind(this), - ); - } - - this.overlay = $("
").appendTo(this._appendTo()); - - this._addClass(this.overlay, null, "ui-widget-overlay ui-front"); - this._on(this.overlay, { - mousedown: "_keepFocus", - }); - this.document.data( - "ui-dialog-overlays", - (this.document.data("ui-dialog-overlays") || 0) + 1, - ); - }, - - _destroyOverlay() { - if (!this.options.modal) { - return; - } - - if (this.overlay) { - const overlays = this.document.data("ui-dialog-overlays") - 1; - - if (!overlays) { - this.document.off("focusin.ui-dialog"); - this.document.removeData("ui-dialog-overlays"); - } else { - this.document.data("ui-dialog-overlays", overlays); - } - - this.overlay.remove(); - this.overlay = null; - } - }, - }); - - // DEPRECATED - // TODO: switch return back to widget declaration at top of file when this is removed - if ($.uiBackCompat !== false) { - // Backcompat for dialogClass option - $.widget("ui.dialog", $.ui.dialog, { - options: { - dialogClass: "", - }, - _createWrapper() { - this._super(); - this.uiDialog.addClass(this.options.dialogClass); - }, - _setOption(key, value) { - if (key === "dialogClass") { - this.uiDialog.removeClass(this.options.dialogClass).addClass(value); - } - this._superApply(arguments); - }, - }); - } - - return $.ui.dialog; -}); diff --git a/public/themes/custom/hdbt_subtheme/src/scss/06_components/__index.scss b/public/themes/custom/hdbt_subtheme/src/scss/06_components/__index.scss index 58bd78771f..fad523ef8b 100644 --- a/public/themes/custom/hdbt_subtheme/src/scss/06_components/__index.scss +++ b/public/themes/custom/hdbt_subtheme/src/scss/06_components/__index.scss @@ -1,5 +1,4 @@ @import 'block/_index'; -@import 'dialog/_index'; @import 'pages/_index'; @import 'layout/_index'; @import 'navigation/_index'; diff --git a/public/themes/custom/hdbt_subtheme/src/scss/06_components/dialog/__index.scss b/public/themes/custom/hdbt_subtheme/src/scss/06_components/dialog/__index.scss deleted file mode 100644 index a10b4b1b34..0000000000 --- a/public/themes/custom/hdbt_subtheme/src/scss/06_components/dialog/__index.scss +++ /dev/null @@ -1 +0,0 @@ -@import 'dialog'; diff --git a/public/themes/custom/hdbt_subtheme/src/scss/06_components/dialog/_dialog.scss b/public/themes/custom/hdbt_subtheme/src/scss/06_components/dialog/_dialog.scss deleted file mode 100644 index c8043dc305..0000000000 --- a/public/themes/custom/hdbt_subtheme/src/scss/06_components/dialog/_dialog.scss +++ /dev/null @@ -1,90 +0,0 @@ -.ui-widget-overlay { - z-index: 99; -} - -.ui-dialog { - .ui-button:hover { - border-width: 2px; - } - - .ui-dialog-titlebar-close { - top: var(--spacing-s); - z-index: 1001; - } - - .ui-dialog-buttonpane .ui-dialog-buttonset { - float: left; - } - - .ui-dialog-buttonpane { - padding: var(--spacing-2-xs) var(--spacing-m); - - button { - margin: 0 var(--spacing-xs) 0 0; - } - } - - .ui-dialog-content { - padding: 0 1em 1em; - position: initial; - } - - div.ui-dialog-titlebar { - padding: 0; - } - - &-titlebar { - background: transparent; - border: 0; - - &-close { - background: none; - border: none; - } - - .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; - } - } - - &-title { - .hel-icon { - left: var(--spacing-m); - margin-right: var(--spacing-2-xs); - position: absolute; - top: var(--spacing-s); - } - } -} - -.ui-widget-content { - border: 0 transparent solid; - - 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; - 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; -} From 0a38f45293df4b1cca9fc3ebe6a5cd31cf164d2d Mon Sep 17 00:00:00 2001 From: tuutti Date: Wed, 23 Oct 2024 14:07:07 +0300 Subject: [PATCH 09/95] Removed article permissions (#1522) --- conf/cmi/user.role.grants_admin.yml | 1 - conf/cmi/user.role.grants_producer.yml | 1 - 2 files changed, 2 deletions(-) diff --git a/conf/cmi/user.role.grants_admin.yml b/conf/cmi/user.role.grants_admin.yml index 715c5b5df6..323e4cf698 100644 --- a/conf/cmi/user.role.grants_admin.yml +++ b/conf/cmi/user.role.grants_admin.yml @@ -220,7 +220,6 @@ permissions: - '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..6353b17c99 100644 --- a/conf/cmi/user.role.grants_producer.yml +++ b/conf/cmi/user.role.grants_producer.yml @@ -29,7 +29,6 @@ permissions: - 'edit any webform' - 'edit terms in news_tags' - 'translate any webform' - - 'translate article node' - 'translate avustuslaji taxonomy_term' - 'translate block_content' - 'translate editable entities' From e00411a0d09aeaf100a81a2d7be009237d039ffd Mon Sep 17 00:00:00 2001 From: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Date: Wed, 23 Oct 2024 14:44:14 +0300 Subject: [PATCH 10/95] Automatic update (#1520) * Update configuration * Revert unwanted changes from configuration * Revert unwanted changes from configuration * Update .gitignore * Removed article permissions --------- Co-authored-by: Tero Elonen Co-authored-by: Janne Suominen Co-authored-by: tuutti --- .platform/schema | 2 +- composer.json | 1 - composer.lock | 153 +++++++++--------- ...y.paragraph.curated_event_list.default.yml | 38 +++++ ...vents_event.linkedevents_event.default.yml | 75 +++++++++ ...y.paragraph.curated_event_list.default.yml | 40 +++++ conf/cmi/core.extension.yml | 3 +- ...xternal_entity_type.linkedevents_event.yml | 38 +++++ ....field.node.landing_page.field_content.yml | 5 + ...rated_event_list.field_all_events_link.yml | 30 ++++ ...agraph.curated_event_list.field_events.yml | 28 ++++ ...torage.paragraph.field_all_events_link.yml | 21 +++ .../field.storage.paragraph.field_events.yml | 22 +++ conf/cmi/grants_metadata.settings.yml | 1 - ...rated_event_list.field_all_events_link.yml | 5 + ...agraph.curated_event_list.field_events.yml | 2 + ...phs.paragraphs_type.curated_event_list.yml | 2 + ...phs.paragraphs_type.curated_event_list.yml | 12 ++ ...ponsive_image.styles.unit_contact_card.yml | 44 ++--- conf/cmi/user.role.anonymous.yml | 4 +- conf/cmi/user.role.authenticated.yml | 6 +- docker/openshift/crons/pubsub.sh | 15 +- public/sites/default/settings.php | 5 + 23 files changed, 441 insertions(+), 111 deletions(-) create mode 100644 conf/cmi/core.entity_form_display.paragraph.curated_event_list.default.yml create mode 100644 conf/cmi/core.entity_view_display.linkedevents_event.linkedevents_event.default.yml create mode 100644 conf/cmi/core.entity_view_display.paragraph.curated_event_list.default.yml create mode 100644 conf/cmi/external_entities.external_entity_type.linkedevents_event.yml create mode 100644 conf/cmi/field.field.paragraph.curated_event_list.field_all_events_link.yml create mode 100644 conf/cmi/field.field.paragraph.curated_event_list.field_events.yml create mode 100644 conf/cmi/field.storage.paragraph.field_all_events_link.yml create mode 100644 conf/cmi/field.storage.paragraph.field_events.yml create mode 100644 conf/cmi/language/fi/field.field.paragraph.curated_event_list.field_all_events_link.yml create mode 100644 conf/cmi/language/fi/field.field.paragraph.curated_event_list.field_events.yml create mode 100644 conf/cmi/language/fi/paragraphs.paragraphs_type.curated_event_list.yml create mode 100644 conf/cmi/paragraphs.paragraphs_type.curated_event_list.yml 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/composer.json b/composer.json index 21f4f044e3..5a69ea9472 100644 --- a/composer.json +++ b/composer.json @@ -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 5fe9778a67..683b38a715 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": "a3aa686902754cc000efad66a1cc666d", + "content-hash": "1d3ab16ba09ab7e754afd7b71ae122b5", "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", @@ -5482,16 +5482,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 +5510,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,23 +5604,23 @@ }, { "name": "drupal/helfi_api_base", - "version": "2.7.9", + "version": "2.7.11", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base.git", - "reference": "189161e8d674072f0a345c45b93dd4c42896b52b" + "reference": "77ba93f8f9b02bb3e74344e1de0c50caf4d1557c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-api-base/zipball/189161e8d674072f0a345c45b93dd4c42896b52b", - "reference": "189161e8d674072f0a345c45b93dd4c42896b52b", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-api-base/zipball/77ba93f8f9b02bb3e74344e1de0c50caf4d1557c", + "reference": "77ba93f8f9b02bb3e74344e1de0c50caf4d1557c", "shasum": "" }, "require": { "drupal/entity": "^1.0", "drupal/health_check": "^3.0", "drupal/monolog": "^3.0", - "drupal/raven": "^4.0 || ^5.0", + "drupal/raven": "^5.0 || ^6.0", "ext-curl": "*", "firebase/php-jwt": "^6.5", "php": "^8.1", @@ -5643,10 +5643,10 @@ ], "description": "Helfi - API Base", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/tree/2.7.9", + "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-10-10T08:24:13+00:00" + "time": "2024-10-23T08:01:57+00:00" }, { "name": "drupal/helfi_atv", @@ -5767,12 +5767,12 @@ "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-tools.git", - "reference": "8df65343c4ff937dcf143827e3182f10b8b1b4b6" + "reference": "82d8131850bb17d30ac8f72eec0bd5568e4b3640" }, "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/82d8131850bb17d30ac8f72eec0bd5568e4b3640", + "reference": "82d8131850bb17d30ac8f72eec0bd5568e4b3640", "shasum": "" }, "require": { @@ -5844,7 +5844,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-23T08:02:58+00:00" }, { "name": "drupal/helfi_formtool_embed", @@ -5950,16 +5950,16 @@ }, { "name": "drupal/helfi_platform_config", - "version": "4.6.15", + "version": "4.6.19", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config.git", - "reference": "96e619f1399be1140cef46c5dd67cce2a035613e" + "reference": "c17835fd4b1629ab55852a857320d6bd102b963d" }, "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/c17835fd4b1629ab55852a857320d6bd102b963d", + "reference": "c17835fd4b1629ab55852a857320d6bd102b963d", "shasum": "" }, "require": { @@ -6078,10 +6078,10 @@ ], "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.19", "issues": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/issues" }, - "time": "2024-10-14T06:10:36+00:00" + "time": "2024-10-22T08:56:56+00:00" }, { "name": "drupal/helfi_proxy", @@ -6983,17 +6983,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 +7005,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 +8296,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 +8320,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" @@ -9516,30 +9516,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 +9549,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 +10072,39 @@ }, { "name": "drupal/views_bulk_operations", - "version": "4.2.7", + "version": "4.3.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/views_bulk_operations.git", - "reference": "4.2.7" + "reference": "4.3.0" }, "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.0.zip", + "reference": "4.3.0", + "shasum": "887e784e3e41b05d6f8915c223d42f4273ada604" }, "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.0", + "datestamp": "1729513620", "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", @@ -11647,16 +11644,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 +11707,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 +11723,7 @@ "type": "tidelift" } ], - "time": "2024-07-18T10:29:17+00:00" + "time": "2024-10-17T10:06:22+00:00" }, { "name": "guzzlehttp/psr7", @@ -23647,6 +23644,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 c1cc542cb9..3794c42554 100644 --- a/conf/cmi/core.extension.yml +++ b/conf/cmi/core.extension.yml @@ -49,7 +49,6 @@ module: flysystem: 0 focal_point: 0 gin_toolbar: 0 - grants_events: 0 grant_applications_content: 0 grant_applications_noscript: 0 grants_admin_applications: 0 @@ -58,6 +57,7 @@ module: 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 @@ -104,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 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..f263c5183f --- /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.' +generate_aliases: false +read_only: true +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/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/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/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.anonymous.yml b/conf/cmi/user.role.anonymous.yml index 3aa3993dde..ad16764477 100644 --- a/conf/cmi/user.role.anonymous.yml +++ b/conf/cmi/user.role.anonymous.yml @@ -8,16 +8,18 @@ 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' - '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..4fb5f2c754 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,7 @@ permissions: - 'delete own files' - 'display eu cookie compliance popup' - 'edit own address content' + - 'send javascript errors to sentry' - 'use text format full_html' - 'use text format minimal' - 'use text format webform_default' @@ -42,3 +45,4 @@ permissions: - 'view remote entities' - 'view tpr_service' - 'view tpr_unit' + - 'view unpublished paragraphs' diff --git a/docker/openshift/crons/pubsub.sh b/docker/openshift/crons/pubsub.sh index 8e62c2d688..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/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. * From c3de5b4c6ca1c50277f88ad3d936cebcc5da7798 Mon Sep 17 00:00:00 2001 From: Tero Elonen <2276077+teroelonen@users.noreply.github.com> Date: Wed, 23 Oct 2024 17:07:13 +0300 Subject: [PATCH 11/95] UHF-10276: Fix translations on webform.form.unsaved.js (#1525) * UHF-10276: Replace the dialog.js functionality with custom dialog * UHF-10276: Fix translations, style the close button on the dialog * UHF-10276: Add focus trap for the dialog * UHF-10276: Refactor dialog and survey styles together * UHF-10276: Add comment about survey similarities * UHF-10276: Refactor dialog to a separate file so it can be used by other grants modules, refactored dialog.js away from grants_profile, add translations and remove old dialog.js * UHF-10276: Manually trigger translations for the webform.form.unsaved javascript file --- .../modules/custom/grants_handler/grants_handler.install | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/public/modules/custom/grants_handler/grants_handler.install b/public/modules/custom/grants_handler/grants_handler.install index c07bfd3951..92f47b12dd 100644 --- a/public/modules/custom/grants_handler/grants_handler.install +++ b/public/modules/custom/grants_handler/grants_handler.install @@ -379,3 +379,10 @@ 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'); +} From fb0fe894ffaa4f08c1ec8a57a29276652298aed5 Mon Sep 17 00:00:00 2001 From: Santeri Hurnanen Date: Fri, 25 Oct 2024 09:26:09 +0300 Subject: [PATCH 12/95] UHF-9938: Update pipeline triggers (#1529) * Update pipeline triggers * UHF-9938: Update README.md --- README.md | 15 +++++++-------- azure-pipelines-prod.yml | 9 +-------- azure-pipelines-staging.yml | 11 +++++++---- azure-pipelines-test.yml | 8 ++++++-- azure-pipelines.yml | 28 ---------------------------- 5 files changed, 21 insertions(+), 50 deletions(-) delete mode 100644 azure-pipelines.yml diff --git a/README.md b/README.md index 2694a3b942..4cedebc70a 100644 --- a/README.md +++ b/README.md @@ -6,14 +6,13 @@ This project offers citizens a way to apply for different city grants for their ## Environments -Env | Branch | Url ------- |-----------| ----- -local | * | [https://hel-fi-drupal-grant-applications.docker.so/](https://hel-fi-drupal-grant-applications.docker.so/) -development | * | [https://avustukset.dev.hel.ninja](https://avustukset.dev.hel.ninja) -testing | develop | [https://avustukset.test.hel.ninja](https://avustukset.test.hel.ninja) -staging | release/* | [https://avustukset.stage.hel.ninja](https://avustukset.stage.hel.ninja) -production | main | [https://avustukset.hel.fi](https://avustukset.hel.fi) (https://nginx-avustusasiointi-prod.apps.platta.hel.fi/ before release) - +| Env | Branch | Url | +|-------------|--------------------------|------------------------------------------------------------------------------------------------------------| +| local | `*` | [https://hel-fi-drupal-grant-applications.docker.so/](https://hel-fi-drupal-grant-applications.docker.so/) | +| development | `*` | [https://avustukset.dev.hel.ninja](https://avustukset.dev.hel.ninja) | +| testing | `dev` | [https://avustukset.test.hel.ninja](https://avustukset.test.hel.ninja) | +| staging | `main` | [https://avustukset.stage.hel.ninja](https://avustukset.stage.hel.ninja) | +| production | `refs/tags/YYYY-MM-DD.X` | [https://avustukset.hel.fi](https://avustukset.hel.fi) | ## Requirements diff --git a/azure-pipelines-prod.yml b/azure-pipelines-prod.yml index a64ea8dd7c..8df5632c9c 100644 --- a/azure-pipelines-prod.yml +++ b/azure-pipelines-prod.yml @@ -2,14 +2,7 @@ # Continuous integration (CI) triggers cause a pipeline to run whenever you push # an update to the specified branches or you push specified tags. -trigger: - batch: true - branches: - include: - - main - paths: - exclude: - - README.md +trigger: none # Pull request (PR) triggers cause a pipeline to run whenever a pull request is # opened with one of the specified target branches, or when updates are made to diff --git a/azure-pipelines-staging.yml b/azure-pipelines-staging.yml index d8f731ef88..8f833f0eec 100644 --- a/azure-pipelines-staging.yml +++ b/azure-pipelines-staging.yml @@ -3,14 +3,17 @@ # Continuous integration (CI) triggers cause a pipeline to run whenever you push # an update to the specified branches or you push specified tags. trigger: + batch: true branches: include: - - release/* - exclude: - - release/old* + - main paths: exclude: - - README.md + - '*.md' + - '.github/' + - 'azure-pipelines-dev.yml' + - 'azure-pipelines-test.yml' + - 'azure-pipelines-prod.yml' # Pull request (PR) triggers cause a pipeline to run whenever a pull request is # opened with one of the specified target branches, or when updates are made to diff --git a/azure-pipelines-test.yml b/azure-pipelines-test.yml index 8dc01b268b..3ed92852c0 100644 --- a/azure-pipelines-test.yml +++ b/azure-pipelines-test.yml @@ -6,10 +6,14 @@ trigger: batch: true branches: include: - - develop + - dev paths: exclude: - - README.md + - '*.md' + - '.github/' + - 'azure-pipelines-dev.yml' + - 'azure-pipelines-staging.yml' + - 'azure-pipelines-prod.yml' # Pull request (PR) triggers cause a pipeline to run whenever a pull request is # opened with one of the specified target branches, or when updates are made to diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index aac0767b3c..0000000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,28 +0,0 @@ -# File: drupal-helfi/azure-pipelines.yml - -# Continuous integration (CI) triggers cause a pipeline to run whenever you push -# an update to the specified branches or you push specified tags. -trigger: - branches: - include: - - dev - paths: - exclude: - - README.md - -# By default, use self-hosted agents -pool: Default - -# Opting out of pull request validation -pr: none - -resources: - repositories: - # Azure DevOps repository - - repository: avustusasiointi-pipelines - type: git - # project/repository - name: avustusasiointi/avustusasiointi-pipelines - -extends: - template: azure-pipelines-drupal.yml@drupal-helfi From e1c3606855f854a313c7dc8a3e1e027ae487233d Mon Sep 17 00:00:00 2001 From: Santeri Hurnanen Date: Fri, 25 Oct 2024 09:26:22 +0300 Subject: [PATCH 13/95] Update configuration (#1523) (#1530) Co-authored-by: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> --- composer.lock | 131 +++++++++--------- ...xternal_entity_type.linkedevents_event.yml | 2 +- conf/cmi/raven.settings.yml | 16 +-- conf/cmi/user.role.ad_user.yml | 2 + conf/cmi/user.role.admin.yml | 2 + conf/cmi/user.role.anonymous.yml | 1 + conf/cmi/user.role.authenticated.yml | 1 + conf/cmi/user.role.content_producer.yml | 2 + .../user.role.content_producer_industry.yml | 2 + conf/cmi/user.role.editor.yml | 2 + conf/cmi/user.role.grants_admin.yml | 2 + conf/cmi/user.role.grants_producer.yml | 15 ++ .../user.role.grants_producer_industry.yml | 2 + conf/cmi/user.role.helsinkiprofiili.yml | 2 + conf/cmi/user.role.json_api_user.yml | 2 + conf/cmi/user.role.performance_test_user.yml | 2 + conf/cmi/user.role.read_only.yml | 2 + conf/cmi/user.role.survey_editor.yml | 2 + docker/openshift/crons/pubsub.sh | 15 +- 19 files changed, 126 insertions(+), 79 deletions(-) diff --git a/composer.lock b/composer.lock index 683b38a715..281512f68c 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": "1d3ab16ba09ab7e754afd7b71ae122b5", + "content-hash": "651e43dad6d2c4dc496a5ce9c851467f", "packages": [ { "name": "asm89/stack-cors", @@ -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", @@ -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": "82d8131850bb17d30ac8f72eec0bd5568e4b3640" + "reference": "53ad81c4249c6dd38deea3f6014ad0b1be47f2db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-tools/zipball/82d8131850bb17d30ac8f72eec0bd5568e4b3640", - "reference": "82d8131850bb17d30ac8f72eec0bd5568e4b3640", + "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-10-23T08:02:58+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.19", + "version": "4.6.20", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config.git", - "reference": "c17835fd4b1629ab55852a857320d6bd102b963d" + "reference": "f5451a53f0e83dcf1fc811c9ced0687f43cd4b7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/c17835fd4b1629ab55852a857320d6bd102b963d", - "reference": "c17835fd4b1629ab55852a857320d6bd102b963d", + "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.19", + "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-22T08:56:56+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", @@ -8514,7 +8515,7 @@ ], "authors": [ { - "name": "Heine", + "name": "heine", "homepage": "https://www.drupal.org/user/17943" }, { @@ -10072,17 +10073,17 @@ }, { "name": "drupal/views_bulk_operations", - "version": "4.3.0", + "version": "4.3.1", "source": { "type": "git", "url": "https://git.drupalcode.org/project/views_bulk_operations.git", - "reference": "4.3.0" + "reference": "4.3.1" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/views_bulk_operations-4.3.0.zip", - "reference": "4.3.0", - "shasum": "887e784e3e41b05d6f8915c223d42f4273ada604" + "url": "https://ftp.drupal.org/files/projects/views_bulk_operations-4.3.1.zip", + "reference": "4.3.1", + "shasum": "1089fe41ddb01313f34d55e19e8f3a5157889430" }, "require": { "drupal/core": "^10.3 || ^11" @@ -10099,8 +10100,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "4.3.0", - "datestamp": "1729513620", + "version": "4.3.1", + "datestamp": "1729683242", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -11068,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" @@ -11120,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", @@ -11967,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": { @@ -12037,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": [ { @@ -12045,7 +12046,7 @@ "type": "github" } ], - "time": "2024-03-13T13:12:53+00:00" + "time": "2024-10-23T12:06:58+00:00" }, { "name": "league/flysystem", @@ -20604,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": { @@ -20677,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", @@ -20745,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": { @@ -20796,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", diff --git a/conf/cmi/external_entities.external_entity_type.linkedevents_event.yml b/conf/cmi/external_entities.external_entity_type.linkedevents_event.yml index f263c5183f..819ef5ee38 100644 --- a/conf/cmi/external_entities.external_entity_type.linkedevents_event.yml +++ b/conf/cmi/external_entities.external_entity_type.linkedevents_event.yml @@ -8,8 +8,8 @@ id: linkedevents_event label: 'LinkedEvents: Event' label_plural: 'LinkedEvents: Events' description: 'Event entities from https://api.hel.fi/linkedevents.' -generate_aliases: false read_only: true +generate_aliases: false field_mapper_id: jsonpath field_mapper_config: field_mappings: 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/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 ad16764477..60e2693019 100644 --- a/conf/cmi/user.role.anonymous.yml +++ b/conf/cmi/user.role.anonymous.yml @@ -20,6 +20,7 @@ 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 4fb5f2c754..d1d55248c8 100644 --- a/conf/cmi/user.role.authenticated.yml +++ b/conf/cmi/user.role.authenticated.yml @@ -32,6 +32,7 @@ permissions: - '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' 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 323e4cf698..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,6 +215,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 news_item published on date' diff --git a/conf/cmi/user.role.grants_producer.yml b/conf/cmi/user.role.grants_producer.yml index 6353b17c99..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,6 +42,7 @@ permissions: - 'delete own files' - 'edit any webform' - 'edit terms in news_tags' + - 'send performance traces to sentry' - 'translate any webform' - 'translate avustuslaji taxonomy_term' - 'translate block_content' 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/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 From 0ff37172bf62260424cdaa90945ae71be65ce82a Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Mon, 28 Oct 2024 07:22:13 +0200 Subject: [PATCH 14/95] fix: UHF-10656: Add missing translations. Fix incorrect config name for help texts. (#1521) * UHF-10656: Add translations for issuer_name * UHF-10656: Fix translations, #text -> #markup --- conf/cmi/language/en/webform.webform.nuortoimpalkka.yml | 6 +++--- conf/cmi/language/sv/webform.webform.nuortoimpalkka.yml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/conf/cmi/language/en/webform.webform.nuortoimpalkka.yml b/conf/cmi/language/en/webform.webform.nuortoimpalkka.yml index b5c5689c0e..5e9b484e19 100644 --- a/conf/cmi/language/en/webform.webform.nuortoimpalkka.yml +++ b/conf/cmi/language/en/webform.webform.nuortoimpalkka.yml @@ -66,7 +66,7 @@ elements: | muut_samaan_tarkoitukseen_myonnetyt_avustukset: '#title': 'Other grants received for the same purpose' info_muut_samaan_tarkoitukseen_myonnetty: - '#text': "

Indicate here only the grants received from somewhere other than the City of Helsinki in the current and two previous tax years.

\r\n\r\n
\r\n
\r\n
An affirmative answer opens a further question
\r\n
\r\n
\r\n" + '#markup': "

Indicate here only the grants received from somewhere other than the City of Helsinki in the current and two previous tax years.

\r\n\r\n
\r\n
\r\n
An affirmative answer opens a further question
\r\n
\r\n
\r\n" olemme_saaneet_muita_avustuksia: '#title': 'We have received other grants' '#options': @@ -87,7 +87,7 @@ elements: | '#title': 'Grant issuer' issuer_name: '#title': 'Issuer''s name' - '#help': '

Which body has granted the grant (e.g. name of the ministry)

' + '#help': '

Indicate here only the grants received from somewhere other than the City of Helsinki in the current and two previous tax years.

' year: '#title': Year '#pattern_error': 'Only numbers' @@ -100,7 +100,7 @@ elements: | muut_samaan_tarkoitukseen_haetut_avustukset: '#title': 'Other grants applied for to be used for the same purpose' info_muut_samaan_tarkoitukseen_haettu: - '#text': "

Indicate here only the grants that have been applied for from somewhere other than the City of Helsinki and for which the decisions have not been made yet.

\r\n\r\n
\r\n
\r\n
An affirmative answer opens a further question
\r\n
\r\n
\r\n" + '#markup': "

Indicate here only the grants that have been applied for from somewhere other than the City of Helsinki and for which the decisions have not been made yet.

\r\n\r\n
\r\n
\r\n
An affirmative answer opens a further question
\r\n
\r\n
\r\n" olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: '#title': 'We have applied for grants from somewhere other than the City of Helsinki' '#options': diff --git a/conf/cmi/language/sv/webform.webform.nuortoimpalkka.yml b/conf/cmi/language/sv/webform.webform.nuortoimpalkka.yml index 401c25b623..25f5ca260a 100644 --- a/conf/cmi/language/sv/webform.webform.nuortoimpalkka.yml +++ b/conf/cmi/language/sv/webform.webform.nuortoimpalkka.yml @@ -69,7 +69,7 @@ elements: | muut_samaan_tarkoitukseen_myonnetyt_avustukset: '#title': 'Övriga understöd som beviljats för samma ändamål' info_muut_samaan_tarkoitukseen_myonnetty: - '#text': "

Ange här endast de understöd som beviljats från annanstans än Helsingfors stad under det innevarande beskattningsåret eller de föregående två beskattningsåren.

\r\n\r\n
\r\n
\r\n
Ett jakande svar öppnar ytterligare en fråga
\r\n
\r\n
\r\n" + '#markup': "

Ange här endast de understöd som beviljats från annanstans än Helsingfors stad under det innevarande beskattningsåret eller de föregående två beskattningsåren.

\r\n\r\n
\r\n
\r\n
Ett jakande svar öppnar ytterligare en fråga
\r\n
\r\n
\r\n" olemme_saaneet_muita_avustuksia: '#title': 'Vi har fått andra understöd' '#options': @@ -90,7 +90,7 @@ elements: | '#title': Bidragsgivare issuer_name: '#title': 'Emittentens namn' - '#help': '

Vilket organ har beviljat bidraget (t.ex. namnet på departementet)

' + '#help': '

Ange här endast de understöd som beviljats från annanstans än Helsingfors stad under det innevarande beskattningsåret eller de föregående två beskattningsåren.

' year: '#title': År '#pattern_error': 'Bara siffror' @@ -103,7 +103,7 @@ elements: | muut_samaan_tarkoitukseen_haetut_avustukset: '#title': 'Övriga understöd som ansökts för samma ändamål' info_muut_samaan_tarkoitukseen_haettu: - '#text': "

Ange här endast de understöd som har ansökts från annanstans än Helsingfors stad, men beslut har ännu inte fattats.

\r\n\r\n
\r\n
\r\n
Ett jakande svar öppnar ytterligare en fråga
\r\n
\r\n
\r\n" + '#markup': "

Ange här endast de understöd som har ansökts från annanstans än Helsingfors stad, men beslut har ännu inte fattats.

\r\n\r\n
\r\n
\r\n
Ett jakande svar öppnar ytterligare en fråga
\r\n
\r\n
\r\n" olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: '#title': 'Vi har ansökt om understöd från annanstans än Helsingfors stad.' '#options': From a07b95e7c4a65d62421cd53775ce86ce76fe7b44 Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Mon, 28 Oct 2024 07:22:39 +0200 Subject: [PATCH 15/95] fix: Remove form tool from composer (#1526) * Remove form tool from composer * Update configuration (#1523) --------- Co-authored-by: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> --- composer.json | 1 - composer.lock | 1 - 2 files changed, 2 deletions(-) diff --git a/composer.json b/composer.json index 01674d2f9f..31032edea2 100644 --- a/composer.json +++ b/composer.json @@ -36,7 +36,6 @@ "drupal/helfi_audit_log": "^0.9", "drupal/helfi_azure_fs": "^2", "drupal/helfi_drupal_tools": "dev-main", - "drupal/helfi_formtool_embed": "dev-develop", "drupal/helfi_gdpr_api": "^0.9", "drupal/helfi_helsinki_profiili": "^0.9.27", "drupal/helfi_platform_config": "^4.4", diff --git a/composer.lock b/composer.lock index 281512f68c..05613b0792 100644 --- a/composer.lock +++ b/composer.lock @@ -23636,7 +23636,6 @@ "stability-flags": { "drupal/block_field": 5, "drupal/helfi_drupal_tools": 20, - "drupal/helfi_formtool_embed": 20, "drupal/multivalue_form_element": 10, "drupal/session_limit": 10 }, From c536cad4cf66662ad2f5da01a75345e5f6c594a6 Mon Sep 17 00:00:00 2001 From: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Date: Mon, 28 Oct 2024 07:23:38 +0200 Subject: [PATCH 16/95] conf: Update configuration (#1532) --- compose.yaml | 2 +- composer.lock | 19 +++++++++++++------ conf/cmi/raven.settings.yml | 8 ++++---- docker/openshift/crons/pubsub.sh | 2 +- 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/compose.yaml b/compose.yaml index 99f55b2751..c680d449c0 100644 --- a/compose.yaml +++ b/compose.yaml @@ -163,7 +163,7 @@ services: chromium: # @todo Update this to newer version once minkphp supports Selenium 4. # @see https://github.com/minkphp/MinkSelenium2Driver/pull/372 - image: selenium/standalone-chrome:106.0 + image: seleniarm/standalone-chromium:106.0 networks: - internal profiles: diff --git a/composer.lock b/composer.lock index 05613b0792..b6b6f5f217 100644 --- a/composer.lock +++ b/composer.lock @@ -5521,16 +5521,16 @@ }, { "name": "drupal/hdbt_admin", - "version": "3.2.5", + "version": "3.2.6", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-hdbt-admin.git", - "reference": "f3284d00c7cb52126c727b744ccac5108195544c" + "reference": "911484522642d80e5a0a47cff1bd74aa578fb0b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt-admin/zipball/f3284d00c7cb52126c727b744ccac5108195544c", - "reference": "f3284d00c7cb52126c727b744ccac5108195544c", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt-admin/zipball/911484522642d80e5a0a47cff1bd74aa578fb0b7", + "reference": "911484522642d80e5a0a47cff1bd74aa578fb0b7", "shasum": "" }, "require": { @@ -5543,6 +5543,13 @@ "drupal/helfi_platform_config": "<4.3" }, "type": "drupal-theme", + "extra": { + "patches": { + "drupal/gin": { + "[#UHF-10892] Gin sidebar nextsibling issue. (https://www.drupal.org/i/3460390)": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-hdbt-admin/d3e6cb08315b8df38696489d2c8f406a67f224b8/patches/gin-3460390-sidebar-nextsibling-innerhtml-rc11.patch" + } + } + }, "license": [ "GPL-2.0+" ], @@ -5551,10 +5558,10 @@ "Drupal" ], "support": { - "source": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/tree/3.2.5", + "source": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/tree/3.2.6", "issues": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/issues" }, - "time": "2024-10-11T08:52:57+00:00" + "time": "2024-10-25T09:29:34+00:00" }, { "name": "drupal/health_check", diff --git a/conf/cmi/raven.settings.yml b/conf/cmi/raven.settings.yml index d2afac6392..d5ad8ba29f 100644 --- a/conf/cmi/raven.settings.yml +++ b/conf/cmi/raven.settings.yml @@ -4,10 +4,10 @@ client_key: '' environment: '' release: '' log_levels: - emergency: true - alert: true - critical: true - error: true + emergency: false + alert: false + critical: false + error: false warning: false notice: false info: false diff --git a/docker/openshift/crons/pubsub.sh b/docker/openshift/crons/pubsub.sh index 7589ed46fa..2bbf674454 100644 --- a/docker/openshift/crons/pubsub.sh +++ b/docker/openshift/crons/pubsub.sh @@ -9,7 +9,7 @@ echo "Running PubSub daemon: $(date +'%Y-%m-%dT%H:%M:%S%:z')" while true do - # PubSub process exists with success return code after + # PubSub process exits with success return code after # certain number of messages and should then be restarted. drush helfi:azure:pubsub-listen || exit 1 done From 6f9c68e04f4f58a4419c1a1d9afd311bdae43473 Mon Sep 17 00:00:00 2001 From: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Date: Wed, 30 Oct 2024 07:34:27 +0200 Subject: [PATCH 17/95] Update configuration (#1534) --- composer.lock | 322 +++++++++++++++++++++++--------------------------- 1 file changed, 146 insertions(+), 176 deletions(-) diff --git a/composer.lock b/composer.lock index b6b6f5f217..ad13b22899 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": "651e43dad6d2c4dc496a5ce9c851467f", + "content-hash": "c161d4f3133fa1d78cc822560407e714", "packages": [ { "name": "asm89/stack-cors", @@ -5486,16 +5486,16 @@ }, { "name": "drupal/hdbt", - "version": "6.7.19", + "version": "6.7.21", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-hdbt.git", - "reference": "2fadf070e0fee0baf582073856f47f9c62669d17" + "reference": "1818c4dd00cecf28a890af46f0b59073f8726f43" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/2fadf070e0fee0baf582073856f47f9c62669d17", - "reference": "2fadf070e0fee0baf582073856f47f9c62669d17", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/1818c4dd00cecf28a890af46f0b59073f8726f43", + "reference": "1818c4dd00cecf28a890af46f0b59073f8726f43", "shasum": "" }, "require": { @@ -5514,10 +5514,10 @@ "Drupal" ], "support": { - "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.7.19", + "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.7.21", "issues": "https://github.com/City-of-Helsinki/drupal-hdbt/issues" }, - "time": "2024-10-23T10:00:39+00:00" + "time": "2024-10-28T11:30:18+00:00" }, { "name": "drupal/hdbt_admin", @@ -5615,16 +5615,16 @@ }, { "name": "drupal/helfi_api_base", - "version": "2.7.11", + "version": "2.7.12", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base.git", - "reference": "77ba93f8f9b02bb3e74344e1de0c50caf4d1557c" + "reference": "386c2ad76f28d11510272497bb016c7fa20b6462" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-api-base/zipball/77ba93f8f9b02bb3e74344e1de0c50caf4d1557c", - "reference": "77ba93f8f9b02bb3e74344e1de0c50caf4d1557c", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-api-base/zipball/386c2ad76f28d11510272497bb016c7fa20b6462", + "reference": "386c2ad76f28d11510272497bb016c7fa20b6462", "shasum": "" }, "require": { @@ -5654,10 +5654,10 @@ ], "description": "Helfi - API Base", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/tree/2.7.11", + "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/tree/2.7.12", "issues": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/issues" }, - "time": "2024-10-23T08:01:57+00:00" + "time": "2024-10-28T09:35:07+00:00" }, { "name": "drupal/helfi_atv", @@ -5725,16 +5725,16 @@ }, { "name": "drupal/helfi_azure_fs", - "version": "2.0.8", + "version": "2.0.9", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-module-helfi-azure-fs.git", - "reference": "c1ce8909d3ab797bd75e391ed6d80c06b82799c9" + "reference": "88aedf8ae9ba1216069fdb2e69366dd6b87c0a38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-azure-fs/zipball/c1ce8909d3ab797bd75e391ed6d80c06b82799c9", - "reference": "c1ce8909d3ab797bd75e391ed6d80c06b82799c9", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-azure-fs/zipball/88aedf8ae9ba1216069fdb2e69366dd6b87c0a38", + "reference": "88aedf8ae9ba1216069fdb2e69366dd6b87c0a38", "shasum": "" }, "require": { @@ -5764,10 +5764,10 @@ ], "description": "Helfi - Azure FS", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-azure-fs/tree/2.0.8", + "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-azure-fs/tree/2.0.9", "issues": "https://github.com/City-of-Helsinki/drupal-module-helfi-azure-fs/issues" }, - "time": "2024-10-23T12:15:22+00:00" + "time": "2024-10-28T13:45:59+00:00" }, { "name": "drupal/helfi_drupal_tools", @@ -5854,36 +5854,6 @@ }, "time": "2024-10-23T10:28:01+00:00" }, - { - "name": "drupal/helfi_formtool_embed", - "version": "dev-develop", - "source": { - "type": "git", - "url": "https://github.com/City-of-Helsinki/drupal-module-helfi-form-tool-embed.git", - "reference": "535d08eba1b7cb3ae22b4002134c41c5c9c56b14" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-form-tool-embed/zipball/535d08eba1b7cb3ae22b4002134c41c5c9c56b14", - "reference": "535d08eba1b7cb3ae22b4002134c41c5c9c56b14", - "shasum": "" - }, - "type": "drupal-module", - "autoload": { - "psr-4": { - "Drupal\\HelfiFormtoolEmbed\\": "src/" - } - }, - "license": [ - "GPL-2.0-or-later" - ], - "description": "Embed form tool to Drupal", - "support": { - "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-form-tool-embed/tree/develop", - "issues": "https://github.com/City-of-Helsinki/drupal-module-helfi-form-tool-embed/issues" - }, - "time": "2022-10-31T06:19:43+00:00" - }, { "name": "drupal/helfi_gdpr_api", "version": "0.9.8", @@ -7574,17 +7544,17 @@ }, { "name": "drupal/oembed_providers", - "version": "2.2.0", + "version": "2.2.1", "source": { "type": "git", "url": "https://git.drupalcode.org/project/oembed_providers.git", - "reference": "2.2.0" + "reference": "2.2.1" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/oembed_providers-2.2.0.zip", - "reference": "2.2.0", - "shasum": "318bafadd5e9b74a593f08e252dc5ea6dec98cd2" + "url": "https://ftp.drupal.org/files/projects/oembed_providers-2.2.1.zip", + "reference": "2.2.1", + "shasum": "b98ffb8bb1b16756bcb7a7ea207dee3e5d414759" }, "require": { "drupal/core": "^10|^11" @@ -7592,8 +7562,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "2.2.0", - "datestamp": "1723853165", + "version": "2.2.1", + "datestamp": "1729877996", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -15268,16 +15238,16 @@ }, { "name": "symfony/console", - "version": "v6.4.12", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "72d080eb9edf80e36c19be61f72c98ed8273b765" + "reference": "f793dd5a7d9ae9923e35d0503d08ba734cec1d79" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/72d080eb9edf80e36c19be61f72c98ed8273b765", - "reference": "72d080eb9edf80e36c19be61f72c98ed8273b765", + "url": "https://api.github.com/repos/symfony/console/zipball/f793dd5a7d9ae9923e35d0503d08ba734cec1d79", + "reference": "f793dd5a7d9ae9923e35d0503d08ba734cec1d79", "shasum": "" }, "require": { @@ -15342,7 +15312,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.12" + "source": "https://github.com/symfony/console/tree/v6.4.13" }, "funding": [ { @@ -15358,20 +15328,20 @@ "type": "tidelift" } ], - "time": "2024-09-20T08:15:52+00:00" + "time": "2024-10-09T08:40:40+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.4.12", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "cfb9d34a1cdd4911bc737a5358fd1cf8ebfb536e" + "reference": "728ae8f4e190133ce99d6d5f0bc1e8c8bd7c7a96" }, "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/728ae8f4e190133ce99d6d5f0bc1e8c8bd7c7a96", + "reference": "728ae8f4e190133ce99d6d5f0bc1e8c8bd7c7a96", "shasum": "" }, "require": { @@ -15423,7 +15393,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.13" }, "funding": [ { @@ -15439,7 +15409,7 @@ "type": "tidelift" } ], - "time": "2024-09-20T08:18:25+00:00" + "time": "2024-10-25T15:07:50+00:00" }, { "name": "symfony/deprecation-contracts", @@ -15510,16 +15480,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.4.10", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "231f1b2ee80f72daa1972f7340297d67439224f0" + "reference": "e3c78742f86a5b65fe2ac4c4b6b776d92fd7ca0c" }, "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/e3c78742f86a5b65fe2ac4c4b6b776d92fd7ca0c", + "reference": "e3c78742f86a5b65fe2ac4c4b6b776d92fd7ca0c", "shasum": "" }, "require": { @@ -15565,7 +15535,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.13" }, "funding": [ { @@ -15581,20 +15551,20 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:30:32+00:00" + "time": "2024-09-25T14:18:03+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": { @@ -15645,7 +15615,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": [ { @@ -15661,7 +15631,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -15741,16 +15711,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": { @@ -15787,7 +15757,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": [ { @@ -15803,20 +15773,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": { @@ -15851,7 +15821,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": [ { @@ -15867,20 +15837,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.13", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "133ac043875f59c26c55e79cf074562127cce4d2" + "reference": "4c0341b3e0a7291e752c69d2a1ed9a84b68d604c" }, "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/4c0341b3e0a7291e752c69d2a1ed9a84b68d604c", + "reference": "4c0341b3e0a7291e752c69d2a1ed9a84b68d604c", "shasum": "" }, "require": { @@ -15928,7 +15898,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.13" }, "funding": [ { @@ -15944,20 +15914,20 @@ "type": "tidelift" } ], - "time": "2024-09-20T08:18:25+00:00" + "time": "2024-10-11T19:20:58+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.12", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "96df83d51b5f78804f70c093b97310794fd6257b" + "reference": "4474015c363ec0cd3bf47d55657e68630dbae66e" }, "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/4474015c363ec0cd3bf47d55657e68630dbae66e", + "reference": "4474015c363ec0cd3bf47d55657e68630dbae66e", "shasum": "" }, "require": { @@ -16042,7 +16012,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.13" }, "funding": [ { @@ -16058,20 +16028,20 @@ "type": "tidelift" } ], - "time": "2024-09-21T06:02:57+00:00" + "time": "2024-10-27T13:00:29+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": { @@ -16122,7 +16092,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": [ { @@ -16138,20 +16108,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": { @@ -16207,7 +16177,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": [ { @@ -16223,20 +16193,20 @@ "type": "tidelift" } ], - "time": "2024-09-20T08:18:25+00:00" + "time": "2024-10-25T15:07:50+00:00" }, { "name": "symfony/options-resolver", - "version": "v7.1.1", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "47aa818121ed3950acd2b58d1d37d08a94f9bf55" + "reference": "85e95eeede2d41cd146146e98c9c81d9214cae85" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/47aa818121ed3950acd2b58d1d37d08a94f9bf55", - "reference": "47aa818121ed3950acd2b58d1d37d08a94f9bf55", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/85e95eeede2d41cd146146e98c9c81d9214cae85", + "reference": "85e95eeede2d41cd146146e98c9c81d9214cae85", "shasum": "" }, "require": { @@ -16274,7 +16244,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v7.1.1" + "source": "https://github.com/symfony/options-resolver/tree/v7.1.6" }, "funding": [ { @@ -16290,7 +16260,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/polyfill-ctype", @@ -17151,16 +17121,16 @@ }, { "name": "symfony/process", - "version": "v6.4.12", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "3f94e5f13ff58df371a7ead461b6e8068900fbb3" + "reference": "1f9f59b46880201629df3bd950fc5ae8c55b960f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/3f94e5f13ff58df371a7ead461b6e8068900fbb3", - "reference": "3f94e5f13ff58df371a7ead461b6e8068900fbb3", + "url": "https://api.github.com/repos/symfony/process/zipball/1f9f59b46880201629df3bd950fc5ae8c55b960f", + "reference": "1f9f59b46880201629df3bd950fc5ae8c55b960f", "shasum": "" }, "require": { @@ -17192,7 +17162,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.13" }, "funding": [ { @@ -17208,20 +17178,20 @@ "type": "tidelift" } ], - "time": "2024-09-17T12:47:12+00:00" + "time": "2024-09-25T14:18:03+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": { @@ -17275,7 +17245,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": [ { @@ -17291,20 +17261,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": { @@ -17358,7 +17328,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.12" + "source": "https://github.com/symfony/routing/tree/v6.4.13" }, "funding": [ { @@ -17374,20 +17344,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.13", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "10ae9c1b90f4809ccb7277cc8fe8d80b3af4412c" + "reference": "8be421505938b11a0ca4f656e4322232236386f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/10ae9c1b90f4809ccb7277cc8fe8d80b3af4412c", - "reference": "10ae9c1b90f4809ccb7277cc8fe8d80b3af4412c", + "url": "https://api.github.com/repos/symfony/serializer/zipball/8be421505938b11a0ca4f656e4322232236386f0", + "reference": "8be421505938b11a0ca4f656e4322232236386f0", "shasum": "" }, "require": { @@ -17456,7 +17426,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.13" }, "funding": [ { @@ -17472,7 +17442,7 @@ "type": "tidelift" } ], - "time": "2024-09-20T08:15:52+00:00" + "time": "2024-10-03T09:58:04+00:00" }, { "name": "symfony/service-contracts", @@ -17559,16 +17529,16 @@ }, { "name": "symfony/string", - "version": "v6.4.12", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "f8a1ccebd0997e16112dfecfd74220b78e5b284b" + "reference": "38371c60c71c72b3d64d8d76f6b1bb81a2cc3627" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/f8a1ccebd0997e16112dfecfd74220b78e5b284b", - "reference": "f8a1ccebd0997e16112dfecfd74220b78e5b284b", + "url": "https://api.github.com/repos/symfony/string/zipball/38371c60c71c72b3d64d8d76f6b1bb81a2cc3627", + "reference": "38371c60c71c72b3d64d8d76f6b1bb81a2cc3627", "shasum": "" }, "require": { @@ -17625,7 +17595,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.12" + "source": "https://github.com/symfony/string/tree/v6.4.13" }, "funding": [ { @@ -17641,7 +17611,7 @@ "type": "tidelift" } ], - "time": "2024-09-20T08:15:52+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "symfony/translation", @@ -17818,16 +17788,16 @@ }, { "name": "symfony/validator", - "version": "v6.4.12", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "6da1f0a1ee73d060a411d832cbe0539cfe9bbaa0" + "reference": "68e0bf4522756269d9bff801a16701b2ed5eb730" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/6da1f0a1ee73d060a411d832cbe0539cfe9bbaa0", - "reference": "6da1f0a1ee73d060a411d832cbe0539cfe9bbaa0", + "url": "https://api.github.com/repos/symfony/validator/zipball/68e0bf4522756269d9bff801a16701b2ed5eb730", + "reference": "68e0bf4522756269d9bff801a16701b2ed5eb730", "shasum": "" }, "require": { @@ -17895,7 +17865,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.13" }, "funding": [ { @@ -17911,20 +17881,20 @@ "type": "tidelift" } ], - "time": "2024-09-20T08:18:25+00:00" + "time": "2024-10-25T15:07:50+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.11", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "ee14c8254a480913268b1e3b1cba8045ed122694" + "reference": "2acb151474ed8cb43624e3f41a0bf7c4c8ce4f41" }, "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/2acb151474ed8cb43624e3f41a0bf7c4c8ce4f41", + "reference": "2acb151474ed8cb43624e3f41a0bf7c4c8ce4f41", "shasum": "" }, "require": { @@ -17980,7 +17950,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.11" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.13" }, "funding": [ { @@ -17996,20 +17966,20 @@ "type": "tidelift" } ], - "time": "2024-08-30T16:03:21+00:00" + "time": "2024-09-25T14:18:03+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": { @@ -18056,7 +18026,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": [ { @@ -18072,20 +18042,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": { @@ -18128,7 +18098,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": [ { @@ -18144,7 +18114,7 @@ "type": "tidelift" } ], - "time": "2024-09-17T12:47:12+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "t4web/composer-lock-parser", From 33186d8fc1b47ce3d7f0bf6e0c6d8db205aad7db Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Wed, 30 Oct 2024 08:59:28 +0200 Subject: [PATCH 18/95] fix: Add suffix for filenames to force unique files. (#1536) --- e2e/utils/input_helpers.ts | 42 +++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/e2e/utils/input_helpers.ts b/e2e/utils/input_helpers.ts index 4ab7e72794..ac828a354f 100644 --- a/e2e/utils/input_helpers.ts +++ b/e2e/utils/input_helpers.ts @@ -1,6 +1,8 @@ import {expect, Locator, Page} from "@playwright/test"; import {FormFieldWithRemove, Selector, isDynamicMultiValueField, isMultiValueField} from "./data/test_data"; import {logger} from "./logger"; +import { promises as fs } from 'fs'; +import { join, dirname, extname, basename } from 'path'; /** @@ -467,7 +469,8 @@ const fillMultiValueField = async (page: Page, formField: Partial { - if (!filePath) { logger('No file defined in', uploadSelector); return; } - const fileChooserPromise = page.waitForEvent('filechooser'); - const fileInput = await page.locator(uploadSelector); - await fileInput.click(); - const fileChooser = await fileChooserPromise; - await fileChooser.setFiles(filePath); - await fileInput.waitFor({state: 'hidden'}); - const resultLink = await page.locator(fileLinkSelector); - await expect(fileInput).toBeHidden(); - await expect(resultLink).toBeVisible(); -} + + // Create a new file name + const tempDir = dirname(filePath); + const fileExt = extname(filePath); + const fileName = basename(filePath, fileExt); + const newFileName = `${fileName}-${Date.now()}${fileExt}`; + const newFilePath = join(tempDir, newFileName); + + // Rename the original file to the new file name + await fs.rename(filePath, newFilePath); + + try { + const fileChooserPromise = page.waitForEvent('filechooser'); + const fileInput = page.locator(uploadSelector); + await fileInput.click(); + const fileChooser = await fileChooserPromise; + await fileChooser.setFiles(newFilePath); + await fileInput.waitFor({ state: 'hidden' }); + const resultLink = page.locator(fileLinkSelector); + await expect(fileInput).toBeHidden(); + await expect(resultLink).toBeVisible(); + } finally { + // Rename the file back to its original name + await fs.rename(newFilePath, filePath); + } +}; /** * The clickButton function. From 204cb91afe398881a4c5489a7067d6c449527b99 Mon Sep 17 00:00:00 2001 From: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Date: Wed, 30 Oct 2024 12:08:02 +0200 Subject: [PATCH 19/95] Update configuration (#1537) Co-authored-by: khalima <1712902+khalima@users.noreply.github.com> --- composer.lock | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/composer.lock b/composer.lock index ad13b22899..51a5419b10 100644 --- a/composer.lock +++ b/composer.lock @@ -1450,16 +1450,16 @@ }, { "name": "devizzent/cebe-php-openapi", - "version": "1.0.3", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/DEVizzent/cebe-php-openapi.git", - "reference": "b5a5de835dcb1642094fe76568451bd73b8fc0ab" + "reference": "9ae960c072eda54d8d0eb9dc14c1e6d815167347" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/DEVizzent/cebe-php-openapi/zipball/b5a5de835dcb1642094fe76568451bd73b8fc0ab", - "reference": "b5a5de835dcb1642094fe76568451bd73b8fc0ab", + "url": "https://api.github.com/repos/DEVizzent/cebe-php-openapi/zipball/9ae960c072eda54d8d0eb9dc14c1e6d815167347", + "reference": "9ae960c072eda54d8d0eb9dc14c1e6d815167347", "shasum": "" }, "require": { @@ -1471,6 +1471,9 @@ "conflict": { "symfony/yaml": "3.4.0 - 3.4.4 || 4.0.0 - 4.4.17 || 5.0.0 - 5.1.9 || 5.2.0" }, + "replace": { + "cebe/php-openapi": "1.7.0" + }, "require-dev": { "apis-guru/openapi-directory": "1.0.0", "cebe/indent": "*", @@ -1478,7 +1481,7 @@ "oai/openapi-specification-3.0": "3.0.3", "oai/openapi-specification-3.1": "3.1.0", "phpstan/phpstan": "^0.12.0", - "phpunit/phpunit": "^6.5 || ^7.5 || ^8.5 || ^9.4" + "phpunit/phpunit": "^6.5 || ^7.5 || ^8.5 || ^9.4 || ^11.4" }, "bin": [ "bin/php-openapi" @@ -1519,7 +1522,7 @@ "issues": "https://github.com/DEVizzent/cebe-php-openapi/issues", "source": "https://github.com/DEVizzent/cebe-php-openapi" }, - "time": "2024-01-10T11:41:55+00:00" + "time": "2024-10-30T05:57:15+00:00" }, { "name": "dflydev/dot-access-data", @@ -5928,16 +5931,16 @@ }, { "name": "drupal/helfi_platform_config", - "version": "4.6.20", + "version": "4.6.21", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config.git", - "reference": "f5451a53f0e83dcf1fc811c9ced0687f43cd4b7f" + "reference": "4b5281e6625b2b5f51e7f5a659d72b98ecc91853" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/f5451a53f0e83dcf1fc811c9ced0687f43cd4b7f", - "reference": "f5451a53f0e83dcf1fc811c9ced0687f43cd4b7f", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/4b5281e6625b2b5f51e7f5a659d72b98ecc91853", + "reference": "4b5281e6625b2b5f51e7f5a659d72b98ecc91853", "shasum": "" }, "require": { @@ -6056,10 +6059,10 @@ ], "description": "HELfi platform config", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.6.20", + "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.6.21", "issues": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/issues" }, - "time": "2024-10-24T12:01:48+00:00" + "time": "2024-10-29T13:15:35+00:00" }, { "name": "drupal/helfi_proxy", From 17f2f1933832c451d3996eb6245aa72270f07acc Mon Sep 17 00:00:00 2001 From: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Date: Thu, 31 Oct 2024 09:14:46 +0200 Subject: [PATCH 20/95] Update configuration (#1538) --- composer.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/composer.lock b/composer.lock index 51a5419b10..6368b12a3e 100644 --- a/composer.lock +++ b/composer.lock @@ -5489,16 +5489,16 @@ }, { "name": "drupal/hdbt", - "version": "6.7.21", + "version": "6.7.22", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-hdbt.git", - "reference": "1818c4dd00cecf28a890af46f0b59073f8726f43" + "reference": "2409e1caca4533d7d7ab8a504140190345ea56a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/1818c4dd00cecf28a890af46f0b59073f8726f43", - "reference": "1818c4dd00cecf28a890af46f0b59073f8726f43", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/2409e1caca4533d7d7ab8a504140190345ea56a1", + "reference": "2409e1caca4533d7d7ab8a504140190345ea56a1", "shasum": "" }, "require": { @@ -5517,10 +5517,10 @@ "Drupal" ], "support": { - "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.7.21", + "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.7.22", "issues": "https://github.com/City-of-Helsinki/drupal-hdbt/issues" }, - "time": "2024-10-28T11:30:18+00:00" + "time": "2024-10-30T13:44:31+00:00" }, { "name": "drupal/hdbt_admin", @@ -5931,16 +5931,16 @@ }, { "name": "drupal/helfi_platform_config", - "version": "4.6.21", + "version": "4.6.22", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config.git", - "reference": "4b5281e6625b2b5f51e7f5a659d72b98ecc91853" + "reference": "b542e27a74fc2999ad82cd05a179b93058763f63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/4b5281e6625b2b5f51e7f5a659d72b98ecc91853", - "reference": "4b5281e6625b2b5f51e7f5a659d72b98ecc91853", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/b542e27a74fc2999ad82cd05a179b93058763f63", + "reference": "b542e27a74fc2999ad82cd05a179b93058763f63", "shasum": "" }, "require": { @@ -6059,10 +6059,10 @@ ], "description": "HELfi platform config", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.6.21", + "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.6.22", "issues": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/issues" }, - "time": "2024-10-29T13:15:35+00:00" + "time": "2024-10-30T13:11:08+00:00" }, { "name": "drupal/helfi_proxy", From 8f0fdcf23507111706e6dbd403f0369f8b2f73ba Mon Sep 17 00:00:00 2001 From: rpnykanen <48206082+rpnykanen@users.noreply.github.com> Date: Thu, 31 Oct 2024 09:30:18 +0200 Subject: [PATCH 21/95] UHF-10826 Update ATV-profile after mandate has been requested (#1531) * UHF-10826: get rid of the unnecessary nesting * UHF-10826: clean the old style properties * UHF-10826: both traits are in base class * UHF-10826: get company data after mandating user and send it to ATV * UHF-10826: missing comment * UHF-10826: Add single document query to HTTP * UHF-10826: Small changes + handle new profile. --------- Co-authored-by: Janne Suominen --- .../Controller/GrantsMandateController.php | 282 +++++++++--------- tools/http/ATV.http | 7 +- 2 files changed, 152 insertions(+), 137 deletions(-) diff --git a/public/modules/custom/grants_mandate/src/Controller/GrantsMandateController.php b/public/modules/custom/grants_mandate/src/Controller/GrantsMandateController.php index 468716943c..234ac8684f 100644 --- a/public/modules/custom/grants_mandate/src/Controller/GrantsMandateController.php +++ b/public/modules/custom/grants_mandate/src/Controller/GrantsMandateController.php @@ -2,19 +2,15 @@ namespace Drupal\grants_mandate\Controller; -use Drupal\Core\Config\ConfigFactoryInterface; use Drupal\Core\Controller\ControllerBase; use Drupal\Core\DependencyInjection\ContainerInjectionInterface; -use Drupal\Core\Language\LanguageManagerInterface; -use Drupal\Core\Logger\LoggerChannel; -use Drupal\Core\Messenger\MessengerTrait; -use Drupal\Core\Session\AccountProxyInterface; -use Drupal\Core\StringTranslation\StringTranslationTrait; use Drupal\Core\Url; use Drupal\grants_handler\Helpers; use Drupal\grants_mandate\GrantsMandateRedirectService; use Drupal\grants_mandate\GrantsMandateService; use Drupal\grants_profile\GrantsProfileService; +use Drupal\grants_profile\ProfileConnector; +use Drupal\helfi_atv\AtvDocument; use Psr\Log\LoggerInterface; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpFoundation\RedirectResponse; @@ -27,52 +23,6 @@ */ class GrantsMandateController extends ControllerBase implements ContainerInjectionInterface { - use MessengerTrait; - use StringTranslationTrait; - - /** - * The request stack used to access request globals. - * - * @var \Symfony\Component\HttpFoundation\RequestStack - */ - protected RequestStack $requestStack; - - /** - * The current user. - * - * @var \Drupal\Core\Session\AccountProxyInterface - */ - protected $currentUser; - - /** - * The language manager. - * - * @var \Drupal\Core\Language\LanguageManagerInterface - */ - protected $languageManager; - - /** - * Mandate service. - * - * @var \Drupal\grants_mandate\GrantsMandateService - */ - protected GrantsMandateService $grantsMandateService; - - - /** - * Access to profile data. - * - * @var \Drupal\grants_profile\GrantsProfileService - */ - protected GrantsProfileService $grantsProfileService; - - /** - * Logger access. - * - * @var \Drupal\Core\Logger\LoggerChannel|\Psr\Log\LoggerInterface - */ - protected LoggerChannel|LoggerInterface $logger; - /** * Allowed roles. * @@ -81,75 +31,57 @@ class GrantsMandateController extends ControllerBase implements ContainerInjecti protected array $allowedRoles; /** - * The redirect service. + * The logger. * - * @var \Drupal\grants_mandate\GrantsMandateRedirectService + * @var \Psr\Log\LoggerInterface */ - protected $redirectService; + private LoggerInterface $logger; /** * Grants Mandate Controller constructor. + * + * @param \Symfony\Component\HttpFoundation\RequestStack $requestStack + * The request stack. + * @param \Drupal\grants_mandate\GrantsMandateService $grantsMandateService + * The grants mandate service. + * @param \Drupal\grants_profile\GrantsProfileService $grantsProfileService + * The grants profile service. + * @param \Drupal\grants_mandate\GrantsMandateRedirectService $redirectService + * The grants mandate redirect service. + * @param \Drupal\grants_profile\ProfileConnector $profileConnector + * The profile connector. */ public function __construct( - RequestStack $requestStack, - AccountProxyInterface $current_user, - LanguageManagerInterface $language_manager, - GrantsMandateService $grantsMandateService, - GrantsProfileService $grantsProfileService, - ConfigFactoryInterface $configFactory, - GrantsMandateRedirectService $redirectService, + private RequestStack $requestStack, + private GrantsMandateService $grantsMandateService, + private GrantsProfileService $grantsProfileService, + private GrantsMandateRedirectService $redirectService, + private ProfileConnector $profileConnector, ) { - $this->requestStack = $requestStack; - $this->currentUser = $current_user; - $this->languageManager = $language_manager; - $this->grantsMandateService = $grantsMandateService; - $this->grantsProfileService = $grantsProfileService; - $this->redirectService = $redirectService; $this->logger = $this->getLogger('grants_mandate'); + $config = $this->config('grants_mandate.settings'); + + $extraRoles = is_array($config->get('extra_access_roles')) ? $config->get('extra_access_roles') : []; $this->allowedRoles = [ 'http://valtuusrekisteri.suomi.fi/avustushakemuksen_tekeminen', 'PJ', 'J', + ...$extraRoles, ]; - $config = $configFactory->get('grants_mandate.settings'); - $extraRoles = $config->get('extra_access_roles'); - if ($extraRoles && is_array($extraRoles)) { - $this->allowedRoles = array_merge($this->allowedRoles, $extraRoles); - } - } - - /** - * Check if user has required role in their mandate. - * - * @param array $roles - * Array of user's roles. - * - * @return bool - * Is user allowed to use this mandate. - */ - protected function hasAllowedRole(array $roles) { - $allowedRoles = $this->allowedRoles; - foreach ($roles as $role) { - if (in_array($role, $allowedRoles)) { - return TRUE; - } - } - return FALSE; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container): GrantsMandateController|static { - return new static( + $controller = new static( $container->get('request_stack'), - $container->get('current_user'), - $container->get('language_manager'), $container->get('grants_mandate.service'), $container->get('grants_profile.service'), - $container->get('config.factory'), $container->get('grants_mandate_redirect.service'), + $container->get('grants_profile.profile_connector'), ); + return $controller->setLoggerFactory($container->get('logger.factory')); } /** @@ -161,64 +93,52 @@ public static function create(ContainerInterface $container): GrantsMandateContr * * @throws \GuzzleHttp\Exception\GuzzleException * @throws \Drupal\grants_mandate\GrantsMandateException + * @throws \Drupal\grants_profile\GrantsProfileException */ public function mandateCallbackYpa(): RedirectResponse { $tOpts = ['context' => 'grants_mandate']; - - $code = $this->requestStack->getMainRequest()->query->get('code'); - $state = $this->requestStack->getMainRequest()->query->get('state'); - $callbackUrl = Url::fromRoute('grants_mandate.callback_ypa', [], ['absolute' => TRUE]) ->toString(); $appEnv = Helpers::getAppEnv(); - if (is_string($code) && $code != '') { - $this->grantsMandateService->changeCodeToToken($code, $callbackUrl); - $roles = $this->grantsMandateService->getRoles(); - $isAllowed = FALSE; - if ($roles && isset($roles[0]) && $roles[0]['roles']) { - $rolesArray = $roles[0]['roles']; - $isAllowed = $this->hasAllowedRole($rolesArray); - } - if (!$isAllowed && !str_contains($appEnv, 'LOCAL')) { - $this->messenger()->addError($this->t('Your mandate does not allow you to use this service.', [], $tOpts)); - // Redirect user to grants profile page. - $redirectUrl = Url::fromRoute('grants_mandate.mandateform'); - return new RedirectResponse($redirectUrl->toString()); - } - - $roles = reset($roles); - $roles['type'] = 'registered_community'; - $this->grantsProfileService->setSelectedRoleData($roles); + // We need to exchange the code to token that can be used to authorize + // the user in oAuth calls. + $code = $this->requestStack->getMainRequest()->query->get('code'); + if (!is_string($code) || !$code) { + // If code is not set, we need to handle the error and not allow + // user to progress. + return $this->handleNoCode($tOpts); } - else { - - $error = $this->requestStack->getMainRequest()->query->get('error'); - $error_description = $this->requestStack->getMainRequest()->query->get('error_description'); - $error_uri = $this->requestStack->getMainRequest()->query->get('error_uri'); - - $msg = $this->t('Code exchange error. @error: @error_desc. State: @state, Error URI: @error_uri', - [ - '@error' => $error, - '@error_description' => $error_description, - '@state' => $state, - '@error_uri' => $error_uri, - ], $tOpts); - - $this->logger->error('Error: %error', ['%error' => $msg->render()]); - - $this->messenger()->addError($this->t('Mandate process was interrupted or there was an error. Please try again.', [], $tOpts)); + // If we have code, we can then exchange it to token. + $this->grantsMandateService->changeCodeToToken($code, $callbackUrl); + $roles = $this->grantsMandateService->getRoles(); + $isAllowed = FALSE; + if ($roles && isset($roles[0]) && $roles[0]['roles']) { + $rolesArray = $roles[0]['roles']; + $isAllowed = $this->hasAllowedRole($rolesArray); + } + if (!$isAllowed && !str_contains($appEnv, 'LOCAL')) { + $this->messenger() + ->addError($this->t('Your mandate does not allow you to use this service.', [], $tOpts)); // Redirect user to grants profile page. $redirectUrl = Url::fromRoute('grants_mandate.mandateform'); return new RedirectResponse($redirectUrl->toString()); } + $roles = reset($roles); + $roles['type'] = 'registered_community'; + $this->grantsProfileService->setSelectedRoleData($roles); + $selectedRoleData = $this->grantsProfileService->getSelectedRoleData(); - // Load grants profile. + /** @var \Drupal\helfi_atv\AtvDocument $grantsProfile */ $grantsProfile = $this->grantsProfileService->getGrantsProfile($selectedRoleData, TRUE); + if ($grantsProfile) { + $this->updateProfileWithRecentData($selectedRoleData['identifier'], $grantsProfile); + } + // Redirect user based on if the user has a profile. $redirectUrl = $grantsProfile ? Url::fromRoute('grants_oma_asiointi.front') : Url::fromRoute('grants_profile.edit'); $defaultRedirect = new RedirectResponse($redirectUrl->toString()); @@ -226,16 +146,106 @@ public function mandateCallbackYpa(): RedirectResponse { return $this->redirectService->getRedirect($defaultRedirect); } + /** + * Api did not return a valid code. + * + * @param array $tOpts + * The options. + * + * @return \Symfony\Component\HttpFoundation\RedirectResponse + * Redirect in case of bad code. + */ + private function handleNoCode(array $tOpts): RedirectResponse { + $state = $this->requestStack->getMainRequest()->query->get('state'); + + $error = $this->requestStack->getMainRequest()->query->get('error'); + $error_description = $this->requestStack->getMainRequest()->query->get('error_description'); + $error_uri = $this->requestStack->getMainRequest()->query->get('error_uri'); + + $msg = $this->t('Code exchange error. @error: @error_desc. State: @state, Error URI: @error_uri', + [ + '@error' => $error, + '@error_description' => $error_description, + '@state' => $state, + '@error_uri' => $error_uri, + ], $tOpts); + + $this->logger->error('Error: %error', ['%error' => $msg->render()]); + + $this->messenger() + ->addError($this->t('Mandate process was interrupted or there was an error. Please try again.', [], $tOpts)); + // Redirect user to grants profile page. + $redirectUrl = Url::fromRoute('grants_mandate.mandateform'); + return new RedirectResponse($redirectUrl->toString()); + } + + /** + * Check if user has required role in their mandate. + * + * @param array $roles + * Array of user's roles. + * + * @return bool + * Is user allowed to use this mandate. + */ + protected function hasAllowedRole(array $roles) { + $allowedRoles = $this->allowedRoles; + foreach ($roles as $role) { + if (in_array($role, $allowedRoles)) { + return TRUE; + } + } + return FALSE; + } + /** * Callback for user mandates. */ public function mandateCallbackHpa() { + throw new \Exception('Called a function which has no implementation'); } /** * Callback for hpa listing. */ public function mandateCallbackHpaList() { + throw new \Exception('Called a function which has no implementation'); + } + + /** + * Update user profile data from ytj/yrtti and save it. + * + * @param string $identifier + * Business to get data for. + * @param \Drupal\helfi_atv\AtvDocument $grantsProfile + * Grants profile to update. + * + * @return void + * No return. + * + * @throws \GuzzleHttp\Exception\GuzzleException + */ + public function updateProfileWithRecentData( + string $identifier, + AtvDocument $grantsProfile, + ): void { + + $grantsProfileContent = $grantsProfile->getContent(); + try { + $companyData = $this->profileConnector + ->getRegisteredCompanyDataFromYdjhClient($identifier); + + $grantsProfileContent['businessId'] = $companyData['businessId']; + $grantsProfileContent['companyHome'] = $companyData['companyHome']; + $grantsProfileContent['registrationDate'] = $companyData['registrationDate']; + + $this->grantsProfileService->saveGrantsProfile($grantsProfileContent); + } + catch (\Exception $e) { + // Failing at this point does not matter, the execution can continue. + $this->logger + ->error('Failed to update grants profile after getting the mandate.'); + } } } diff --git a/tools/http/ATV.http b/tools/http/ATV.http index be6ec438c4..094be07b8b 100644 --- a/tools/http/ATV.http +++ b/tools/http/ATV.http @@ -1,4 +1,9 @@ -# Get single document by transaction_id +# Get single document by document id +GET {{atvUrl}}/v1/documents/{{document_id}} +Accept-Encoding: utf8 +X-Api-Key: {{atvApiKey}} + +#### Get single document by transaction_id GET {{atvUrl}}/v1/documents/? transaction_id={{transaction_id}} Accept-Encoding: utf8 From cd7080ad7253da6766d82d2da5ac51ce7cb90d1c Mon Sep 17 00:00:00 2001 From: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Date: Mon, 4 Nov 2024 06:34:27 +0200 Subject: [PATCH 22/95] Update configuration (#1541) --- composer.lock | 52 +++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/composer.lock b/composer.lock index 6368b12a3e..a953e63f0b 100644 --- a/composer.lock +++ b/composer.lock @@ -2320,17 +2320,17 @@ }, { "name": "drupal/admin_toolbar", - "version": "3.5.0", + "version": "3.5.1", "source": { "type": "git", "url": "https://git.drupalcode.org/project/admin_toolbar.git", - "reference": "3.5.0" + "reference": "3.5.1" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/admin_toolbar-3.5.0.zip", - "reference": "3.5.0", - "shasum": "099e8d4dc98e1d551b4f9cffdc39599eb8ad04e8" + "url": "https://ftp.drupal.org/files/projects/admin_toolbar-3.5.1.zip", + "reference": "3.5.1", + "shasum": "b5215109836f7fade374fef531231e36c1c9b945" }, "require": { "drupal/core": "^9.5 || ^10 || ^11" @@ -2341,8 +2341,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "3.5.0", - "datestamp": "1722639094", + "version": "3.5.1", + "datestamp": "1730409973", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -5524,16 +5524,16 @@ }, { "name": "drupal/hdbt_admin", - "version": "3.2.6", + "version": "3.2.7", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-hdbt-admin.git", - "reference": "911484522642d80e5a0a47cff1bd74aa578fb0b7" + "reference": "76454c97d12ea80c2e6859fea8d5926dca80bf7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt-admin/zipball/911484522642d80e5a0a47cff1bd74aa578fb0b7", - "reference": "911484522642d80e5a0a47cff1bd74aa578fb0b7", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt-admin/zipball/76454c97d12ea80c2e6859fea8d5926dca80bf7e", + "reference": "76454c97d12ea80c2e6859fea8d5926dca80bf7e", "shasum": "" }, "require": { @@ -5561,10 +5561,10 @@ "Drupal" ], "support": { - "source": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/tree/3.2.6", + "source": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/tree/3.2.7", "issues": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/issues" }, - "time": "2024-10-25T09:29:34+00:00" + "time": "2024-11-01T05:47:57+00:00" }, { "name": "drupal/health_check", @@ -5931,16 +5931,16 @@ }, { "name": "drupal/helfi_platform_config", - "version": "4.6.22", + "version": "4.6.23", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config.git", - "reference": "b542e27a74fc2999ad82cd05a179b93058763f63" + "reference": "fda61dc90882c4799f35cb7d6039987cff4883a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/b542e27a74fc2999ad82cd05a179b93058763f63", - "reference": "b542e27a74fc2999ad82cd05a179b93058763f63", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/fda61dc90882c4799f35cb7d6039987cff4883a4", + "reference": "fda61dc90882c4799f35cb7d6039987cff4883a4", "shasum": "" }, "require": { @@ -6059,10 +6059,10 @@ ], "description": "HELfi platform config", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.6.22", + "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.6.23", "issues": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/issues" }, - "time": "2024-10-30T13:11:08+00:00" + "time": "2024-10-31T11:33:34+00:00" }, { "name": "drupal/helfi_proxy", @@ -10988,20 +10988,20 @@ }, { "name": "ezyang/htmlpurifier", - "version": "v4.17.0", + "version": "v4.18.0", "source": { "type": "git", "url": "https://github.com/ezyang/htmlpurifier.git", - "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c" + "reference": "cb56001e54359df7ae76dc522d08845dc741621b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/bbc513d79acf6691fa9cf10f192c90dd2957f18c", - "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/cb56001e54359df7ae76dc522d08845dc741621b", + "reference": "cb56001e54359df7ae76dc522d08845dc741621b", "shasum": "" }, "require": { - "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" + "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "require-dev": { "cerdic/css-tidy": "^1.7 || ^2.0", @@ -11043,9 +11043,9 @@ ], "support": { "issues": "https://github.com/ezyang/htmlpurifier/issues", - "source": "https://github.com/ezyang/htmlpurifier/tree/v4.17.0" + "source": "https://github.com/ezyang/htmlpurifier/tree/v4.18.0" }, - "time": "2023-11-17T15:01:25+00:00" + "time": "2024-11-01T03:51:45+00:00" }, { "name": "fileeye/mimemap", From 0dfc0ad4335b5b18ad82b41c78eb0925a5a8cca3 Mon Sep 17 00:00:00 2001 From: jeremysteerio <49063836+jeremysteerio@users.noreply.github.com> Date: Mon, 4 Nov 2024 09:43:27 +0200 Subject: [PATCH 23/95] UHF-10741: Force user to visit all pages before submitting application (#1533) * UHF-10741: Force user to visit all pages before submitting application * UHF-10741: Fix phpcs * UHF-10741: Fix translations --- .../grants_handler/grants_handler.module | 5 ++ .../src/GrantsHandlerNavigationHelper.php | 24 ++++++++ .../Plugin/WebformHandler/GrantsHandler.php | 18 +++++- .../custom/grants_handler/translations/fi.po | 12 ++++ .../custom/grants_handler/translations/sv.po | 12 ++++ .../webform/webform-submission-form.html.twig | 61 +++++++++++++------ .../custom/hdbt_subtheme/translations/fi.po | 8 +++ .../custom/hdbt_subtheme/translations/sv.po | 8 +++ 8 files changed, 128 insertions(+), 20 deletions(-) diff --git a/public/modules/custom/grants_handler/grants_handler.module b/public/modules/custom/grants_handler/grants_handler.module index 39f5111cd1..d5c7a9b218 100644 --- a/public/modules/custom/grants_handler/grants_handler.module +++ b/public/modules/custom/grants_handler/grants_handler.module @@ -1279,6 +1279,11 @@ function grants_handler_preprocess_webform_submission_form(&$variables) { $navigationHelper = \Drupal::service('grants_handler.navigation_helper'); // Get errors for printing. $variables['errors'] = $navigationHelper->getAllErrors($webform_submission); + + $variables['unvisited_pages'] = $navigationHelper->getUnvisitedPages($webform_submission); + $variables['display_visit_all_pages_warning'] = + $navigationHelper->getCurrentPage($webform_submission) === 'webform_preview' && + count($variables['unvisited_pages']) > 0; } /** diff --git a/public/modules/custom/grants_handler/src/GrantsHandlerNavigationHelper.php b/public/modules/custom/grants_handler/src/GrantsHandlerNavigationHelper.php index 3d97cc20f4..c8acccd2b8 100644 --- a/public/modules/custom/grants_handler/src/GrantsHandlerNavigationHelper.php +++ b/public/modules/custom/grants_handler/src/GrantsHandlerNavigationHelper.php @@ -118,6 +118,7 @@ public function __construct( public function getCurrentPage(WebformSubmissionInterface $webformSubmission): string { $pages = $webformSubmission->getWebform() ->getPages('edit', $webformSubmission); + return empty($webformSubmission->getCurrentPage()) ? array_keys($pages)[0] : $webformSubmission->getCurrentPage(); } @@ -267,6 +268,29 @@ public function getPageVisits(WebformSubmissionInterface $webformSubmission): ar return $submission_log; } + /** + * Check if user has visited each page. + * + * @param \Drupal\webform\WebformSubmissionInterface $webformSubmission + * The submission to check. + * + * @return array + * Array of unvisited pages. + */ + public function getUnvisitedPages(WebformSubmissionInterface $webformSubmission) : array { + $page_visits = array_map(function ($entry) { + return $entry->page; + }, $this->getPageVisits($webformSubmission)); + $ignore_visits = ['webform_preview', 'webform_confirmation']; + return array_filter( + $webformSubmission->getWebform()->getPages('edit', $webformSubmission), + function ($name) use ($ignore_visits, $page_visits) { + return !in_array($name, $ignore_visits, TRUE) && !in_array($name, $page_visits, TRUE); + }, + ARRAY_FILTER_USE_KEY + ); + } + /** * Logs the current submission page. * 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 35dfb62087..5b7dcf842d 100644 --- a/public/modules/custom/grants_handler/src/Plugin/WebformHandler/GrantsHandler.php +++ b/public/modules/custom/grants_handler/src/Plugin/WebformHandler/GrantsHandler.php @@ -985,6 +985,13 @@ public function alterForm(array &$form, FormStateInterface $form_state, WebformS } GrantsErrorStorage::setErrors($errors); + + if ( + $this->grantsFormNavigationHelper->getCurrentPage($webform_submission) == 'webform_preview' && + count($this->grantsFormNavigationHelper->getUnvisitedPages($webform_submission)) > 0 + ) { + $form['actions']['submit']['#disabled'] = TRUE; + } } /** @@ -1269,12 +1276,19 @@ public function validateForm( $webform_submission ); - if ($violations->count() === 0) { + $allPagesVisited = count( + $this->grantsFormNavigationHelper->getUnvisitedPages($webform_submission) + ) === 0; + + if ($allPagesVisited && $violations->count() === 0) { // If we have no violations clear all errors. $form_state->clearErrors(); $this->grantsFormNavigationHelper->deleteSubmissionLogs($webform_submission, GrantsHandlerNavigationHelper::ERROR_OPERATION); } - else { + if (!$allPagesVisited) { + $form_state->setErrorByName('unvisited-pages', $this->t('You must visit all pages in the form before you can submit the application.', [], $tOpts)); + } + if ($violations->count() > 0) { // If we HAVE errors, then refresh them from the. $this->messenger() ->addError($this->t('The application cannot be submitted because not all diff --git a/public/modules/custom/grants_handler/translations/fi.po b/public/modules/custom/grants_handler/translations/fi.po index 22923ea94b..88e95d82b0 100644 --- a/public/modules/custom/grants_handler/translations/fi.po +++ b/public/modules/custom/grants_handler/translations/fi.po @@ -632,6 +632,14 @@ msgctxt "grants_handler" msgid "Refresh the page" msgstr "Lataa sivu uudelleen" +msgctxt "grants_handler" +msgid "You must visit all pages in the form before you can submit the application" +msgstr "Käy kaikilla sivuilla ennen kuin lähetät hakemuksen" + +msgctxt "grants_handler" +msgid "Unvisited pages:" +msgstr "Sivut, joilla ei ole käyty:" + msgctxt "grants_handler" msgid "Leave the application" msgstr "Poistu hakemukselta" @@ -655,3 +663,7 @@ msgstr "Sinulla on tallentamattomia muutoksia. Haluatko varmasti poistua hakemuk msgctxt "grants_handler" msgid "Attention" msgstr "Huomio" + +msgctxt "grants_handler" +msgid "You must visit all pages in the form before you can submit the application." +msgstr "Käy kaikilla sivuilla ennen kuin lähetät hakemuksen." diff --git a/public/modules/custom/grants_handler/translations/sv.po b/public/modules/custom/grants_handler/translations/sv.po index 4f0a13a7af..10ee574448 100644 --- a/public/modules/custom/grants_handler/translations/sv.po +++ b/public/modules/custom/grants_handler/translations/sv.po @@ -624,6 +624,14 @@ 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 "You must visit all pages in the form before you can submit the application" +msgstr "Du måste besöka alla sidor i formuläret innan du kan skicka in ansökan." + +msgctxt "grants_handler" +msgid "Unvisited pages:" +msgstr "Obesökta sidor:" + msgctxt "grants_handler" msgid "Refresh the page" msgstr "Uppdatera sidan" @@ -651,3 +659,7 @@ msgstr "Du har osparade ändringar. Är du säker på att du vill lämna?" msgctxt "grants_handler" msgid "Attention" msgstr "Observera" + +msgctxt "grants_handler" +msgid "You must visit all pages in the form before you can submit the application." +msgstr "Du måste besöka alla sidor i formuläret innan du kan skicka in ansökan." diff --git a/public/themes/custom/hdbt_subtheme/templates/webform/webform-submission-form.html.twig b/public/themes/custom/hdbt_subtheme/templates/webform/webform-submission-form.html.twig index d649e3adf1..b723a4b8e6 100644 --- a/public/themes/custom/hdbt_subtheme/templates/webform/webform-submission-form.html.twig +++ b/public/themes/custom/hdbt_subtheme/templates/webform/webform-submission-form.html.twig @@ -52,27 +52,52 @@ {% endfor %} {% if has_errors is same as true %} -
-
-
- - {{ 'Missing or incomplete information'|t }} +
+
+
+ + {{ 'Missing or incomplete information'|t }} +
+
+
    + {% for page in errors %} + {% for name,element in page %} + {% if name is not same as 'title' %} +
  • + {{ 'Error in page'|t }} {{ page['title'] }}: {{ element }} +
  • + {% endif %} + {% endfor %} + {% endfor %} +
+
-
-
    - {% for page in errors %} - {% for name,element in page %} - {% if name is not same as 'title' %} -
  • - {{ 'Error in page'|t }} {{ page['title'] }}: {{ element }} -
  • - {% endif %} +
+ {% endif %} + + {% if display_visit_all_pages_warning %} +
+
+
+ + + {% trans with {'context': 'grants_theme'} %} + You must visit all pages in the form before you can submit the application + {% endtrans %} + +
+
+ {{ 'Unvisited pages:'|trans({}, {'context': 'grants_theme'}) }} +
    + {% for page in unvisited_pages %} +
  • + {{ page['#title'] }} +
  • {% endfor %} - {% endfor %} -
+ +
-
-
+ {% endif %} {{ form }} diff --git a/public/themes/custom/hdbt_subtheme/translations/fi.po b/public/themes/custom/hdbt_subtheme/translations/fi.po index c964ba099e..0cc19655ef 100644 --- a/public/themes/custom/hdbt_subtheme/translations/fi.po +++ b/public/themes/custom/hdbt_subtheme/translations/fi.po @@ -466,3 +466,11 @@ msgstr "kpl sivulla" msgctxt "grants_theme" msgid "Items per page" msgstr "Merkintöjä sivua kohti" + +msgctxt "grants_theme" +msgid "You must visit all pages in the form before you can submit the application" +msgstr "Käy kaikilla sivuilla ennen kuin lähetät hakemuksen" + +msgctxt "grants_theme" +msgid "Unvisited pages:" +msgstr "Sivut, joilla ei ole käyty:" diff --git a/public/themes/custom/hdbt_subtheme/translations/sv.po b/public/themes/custom/hdbt_subtheme/translations/sv.po index c8b62b047e..3e9662d29b 100644 --- a/public/themes/custom/hdbt_subtheme/translations/sv.po +++ b/public/themes/custom/hdbt_subtheme/translations/sv.po @@ -416,3 +416,11 @@ msgstr "per sida" msgctxt "grants_theme" msgid "Items per page" msgstr "Inlägg per sida" + +msgctxt "grants_theme" +msgid "You must visit all pages in the form before you can submit the application" +msgstr "Du måste besöka alla sidor i formuläret innan du kan skicka in ansökan" + +msgctxt "grants_theme" +msgid "Unvisited pages:" +msgstr "Obesökta sidor:" From 3f2a91cf665e76302c24178750e9998b26c17a73 Mon Sep 17 00:00:00 2001 From: rpnykanen <48206082+rpnykanen@users.noreply.github.com> Date: Tue, 5 Nov 2024 06:43:17 +0200 Subject: [PATCH 24/95] fix: UHF-10845: Update applications from profile data (#1540) * UHF-10845: cleanup * UHF-10845: comments * UHF-10845: update the company information after saing * UHF-10845: correct comment style * UHF-10845: code fixes * UHF-10845: added missing parameter types * UHF-10845: prevent phpstan error by making the class final * UHF-10845: missing entitytypemanager * UHF-10845: code fixes * UHF-10845: fixed docblok * UHF-10845: Refetch profile after saving it to make sure we use latest data. * UHF-10845: clarify that this change is on purpose --------- Co-authored-by: Janne Suominen --- .../Plugin/WebformHandler/GrantsHandler.php | 306 +++++++----------- .../Controller/GrantsMandateController.php | 9 + 2 files changed, 117 insertions(+), 198 deletions(-) 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 5b7dcf842d..6bd4175e73 100644 --- a/public/modules/custom/grants_handler/src/Plugin/WebformHandler/GrantsHandler.php +++ b/public/modules/custom/grants_handler/src/Plugin/WebformHandler/GrantsHandler.php @@ -6,6 +6,7 @@ use Drupal\Core\Datetime\DateFormatter; use Drupal\Core\Datetime\DrupalDateTime; use Drupal\Core\DrupalKernel; +use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Plugin\ContainerFactoryPluginInterface; use Drupal\Core\Session\AccountProxyInterface; @@ -58,7 +59,7 @@ * \Drupal\webform\Plugin\WebformHandlerInterface::SUBMISSION_REQUIRED, * ) */ -class GrantsHandler extends WebformHandlerBase { +final class GrantsHandler extends WebformHandlerBase { /** * Form data saved because the data in saved submission is not preserved. @@ -77,7 +78,7 @@ class GrantsHandler extends WebformHandlerBase { * * @var string */ - protected string $applicationType; + protected string $applicationType = ''; /** * Applicant type. @@ -86,21 +87,21 @@ class GrantsHandler extends WebformHandlerBase { * * @var string */ - protected string $applicantType; + protected string $applicantType = ''; /** * Application type ID. * * @var string */ - protected string $applicationTypeID; + protected string $applicationTypeID = ''; /** * Generated application number. * * @var string */ - protected string $applicationNumber; + protected string $applicationNumber = ''; /** * Application acting year options. @@ -118,54 +119,12 @@ class GrantsHandler extends WebformHandlerBase { */ protected string $newStatus; - /** - * Drupal\Core\Session\AccountProxyInterface definition. - * - * @var \Drupal\Core\Session\AccountProxyInterface - */ - protected AccountProxyInterface $currentUser; - - /** - * User data from helsinkiprofiili & auth methods. - * - * @var \Drupal\helfi_helsinki_profiili\HelsinkiProfiiliUserData - */ - protected HelsinkiProfiiliUserData $userExternalData; - - /** - * Access GRants profile. - * - * @var \Drupal\grants_profile\GrantsProfileService - */ - protected GrantsProfileService $grantsProfileService; - - /** - * Date formatter. - * - * @var \Drupal\Core\Datetime\DateFormatter - */ - protected DateFormatter $dateFormatter; - - /** - * All attachment-related things. - * - * @var \Drupal\grants_attachments\AttachmentHandler - */ - protected AttachmentHandler $attachmentHandler; - - /** - * Form lock service. - * - * @var \Drupal\grants_handler\FormLockService - */ - protected FormLockService $formLockService; - /** * Save form trigger for methods where form_state is not available. * * @var string */ - protected string $triggeringElement; + protected string $triggeringElement = ''; /** * Save form for methods where form is not available. @@ -186,80 +145,87 @@ class GrantsHandler extends WebformHandlerBase { * * @var bool */ - protected bool $isRedirect; - - /** - * Help with stored errors. - * - * @var \Drupal\grants_handler\GrantsHandlerNavigationHelper - */ - protected GrantsHandlerNavigationHelper $grantsFormNavigationHelper; - - /** - * The Drupal kernel. - * - * @var \Drupal\Core\DrupalKernel - */ - protected DrupalKernel $kernel; - - /** - * The request stack. - * - * @var \Symfony\Component\HttpFoundation\RequestStack - */ - protected RequestStack $requestStack; - - /** - * Application validator. - * - * @var \Drupal\grants_handler\ApplicationValidator - */ - protected ApplicationValidator $applicationValidator; - - /** - * Status service. - * - * @var \Drupal\grants_handler\ApplicationStatusService - */ - protected ApplicationStatusService $applicationStatusService; + protected bool $isRedirect = FALSE; /** - * Application data service. - * - * @var \Drupal\grants_metadata\ApplicationDataService - */ - protected ApplicationDataService $applicationDataService; - - /** - * Init application data. - * - * @var \Drupal\grants_handler\ApplicationInitService - */ - protected ApplicationInitService $applicationInitService; - - /** - * Uploader class. - * - * @var \Drupal\grants_handler\ApplicationUploaderService + * The constructor. + * + * @param array $configuration + * The configuration. + * @param string $plugin_id + * The plugin id. + * @param mixed $plugin_definition + * The plugin definition. + * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager + * The entity type manager. + * @param \Drupal\Core\Session\AccountProxyInterface $currentUser + * The account proxy. + * @param \Drupal\helfi_helsinki_profiili\HelsinkiProfiiliUserData $userExternalData + * The helsinki profiili user data. + * @param \Drupal\grants_profile\GrantsProfileService $grantsProfileService + * The grants profile service. + * @param \Drupal\Core\Datetime\DateFormatter $dateFormatter + * The date formatter. + * @param \Drupal\grants_attachments\AttachmentHandler $attachmentHandler + * The attachment handler. + * @param \Drupal\grants_handler\GrantsHandlerNavigationHelper $grantsFormNavigationHelper + * The grants form navigation helper. + * @param \Drupal\grants_handler\ApplicationValidator $applicationValidator + * The application validator. + * @param \Drupal\grants_handler\ApplicationStatusService $applicationStatusService + * The application status service. + * @param \Drupal\grants_handler\FormLockService $formLockService + * The form lock service. + * @param \Drupal\Core\DrupalKernel $kernel + * The kernel. + * @param \Symfony\Component\HttpFoundation\RequestStack $requestStack + * The request stack. + * @param \Drupal\grants_metadata\ApplicationDataService $applicationDataService + * The application data service. + * @param \Drupal\grants_handler\ApplicationInitService $applicationInitService + * The application init service. + * @param \Drupal\grants_handler\ApplicationUploaderService $applicationUploaderService + * The application upload service. + * @param \Drupal\grants_handler\ApplicationGetterService $applicationGetterService + * The application getter service. + * @param \Drupal\grants_attachments\AttachmentRemover $attachmentRemover + * The attachment remover. */ - protected ApplicationUploaderService $applicationUploaderService; - - /** - * Access to application data. - * - * @var \Drupal\grants_handler\ApplicationGetterService - */ - protected ApplicationGetterService $applicationGetterService; - - /** - * Attachment remover. - * - * @var \Drupal\grants_attachments\AttachmentRemover - */ - protected AttachmentRemover $attachmentRemover; + public function __construct( + array $configuration, + $plugin_id, + $plugin_definition, + EntityTypeManagerInterface $entityTypeManager, + protected AccountProxyInterface $currentUser, + protected HelsinkiProfiiliUserData $userExternalData, + protected GrantsProfileService $grantsProfileService, + protected DateFormatter $dateFormatter, + protected AttachmentHandler $attachmentHandler, + protected GrantsHandlerNavigationHelper $grantsFormNavigationHelper, + protected ApplicationValidator $applicationValidator, + protected ApplicationStatusService $applicationStatusService, + protected FormLockService $formLockService, + protected DrupalKernel $kernel, + protected RequestStack $requestStack, + protected ApplicationDataService $applicationDataService, + protected ApplicationInitService $applicationInitService, + protected ApplicationUploaderService $applicationUploaderService, + protected ApplicationGetterService $applicationGetterService, + protected AttachmentRemover $attachmentRemover, + ) { + parent::__construct( + $configuration, + $plugin_id, + $plugin_definition, + ); + $this->entityTypeManager = $entityTypeManager; + $this->attachmentHandler->setDebug($this->isDebug()); + $this->applicationValidator->setDebug($this->isDebug()); + $this->applicationStatusService->setDebug($this->isDebug()); + } /** - * {@inheritdoc} + * {@inheritDoc} */ public static function create( ContainerInterface $container, @@ -267,83 +233,28 @@ public static function create( $plugin_id, $plugin_definition, ): WebformHandlerBase|GrantsHandler|ContainerFactoryPluginInterface { - $instance = parent::create($container, $configuration, $plugin_id, $plugin_definition); - - /** @var \Drupal\Core\Session\AccountProxyInterface $currentUser */ - $currentUser = $container->get('current_user'); - $instance->currentUser = $currentUser; - - /** @var \Drupal\helfi_helsinki_profiili\HelsinkiProfiiliUserData $userExternalData */ - $userExternalData = $container->get('helfi_helsinki_profiili.userdata'); - $instance->userExternalData = $userExternalData; - - /** @var \Drupal\grants_profile\GrantsProfileService $grantsProfileService */ - $grantsProfileService = $container->get('grants_profile.service'); - $instance->grantsProfileService = $grantsProfileService; - - /** @var \Drupal\Core\Datetime\DateFormatter $dateFormatter */ - $dateFormatter = $container->get('date.formatter'); - $instance->dateFormatter = $dateFormatter; - - /** @var \Drupal\grants_attachments\AttachmentHandler $attachmentHandler */ - $attachmentHandler = $container->get('grants_attachments.attachment_handler'); - $instance->attachmentHandler = $attachmentHandler; - $instance->attachmentHandler->setDebug($instance->isDebug()); - - /** @var \Drupal\grants_handler\GrantsHandlerNavigationHelper $grantsFormNavigationHelper */ - $grantsFormNavigationHelper = $container->get('grants_handler.navigation_helper'); - $instance->grantsFormNavigationHelper = $grantsFormNavigationHelper; - - /** @var \Drupal\grants_handler\ApplicationValidator $applicationValidator */ - $applicationValidator = $container->get('grants_handler.application_validator'); - $instance->applicationValidator = $applicationValidator; - $instance->applicationValidator->setDebug($instance->isDebug()); - - /** @var \Drupal\grants_handler\ApplicationStatusService $applicationStatusService */ - $applicationStatusService = $container->get('grants_handler.application_status_service'); - $instance->applicationStatusService = $applicationStatusService; - $instance->applicationStatusService->setDebug($instance->isDebug()); - - /** @var \Drupal\grants_handler\FormLockService $formLockService */ - $formLockService = $container->get('grants_handler.form_lock_service'); - $instance->formLockService = $formLockService; - - /** @var \Drupal\Core\DrupalKernel $kernel */ - $kernel = $container->get('kernel'); - $instance->kernel = $kernel; - - /** @var \Symfony\Component\HttpFoundation\RequestStack $requestStack */ - $requestStack = $container->get('request_stack'); - $instance->requestStack = $requestStack; - - /** @var \Drupal\grants_metadata\ApplicationDataService $applicationDataService */ - $applicationDataService = $container->get('grants_metadata.application_data_service'); - $instance->applicationDataService = $applicationDataService; - - /** @var \Drupal\grants_handler\ApplicationInitService $applicationInitService */ - $applicationInitService = $container->get('grants_handler.application_init_service'); - $instance->applicationInitService = $applicationInitService; - - /** @var \Drupal\grants_handler\ApplicationUploaderService $applicationUploaderService */ - $applicationUploaderService = $container->get('grants_handler.application_uploader_service'); - $instance->applicationUploaderService = $applicationUploaderService; - - /** @var \Drupal\grants_handler\ApplicationGetterService $applicationGetterService */ - $applicationGetterService = $container->get('grants_handler.application_getter_service'); - $instance->applicationGetterService = $applicationGetterService; - - /** @var \Drupal\grants_attachments\AttachmentRemover $attachmentRemover */ - $attachmentRemover = $container->get('grants_attachments.attachment_remover'); - $instance->attachmentRemover = $attachmentRemover; - - $instance->triggeringElement = ''; - $instance->applicationNumber = ''; - $instance->applicantType = ''; - $instance->applicationTypeID = ''; - $instance->applicationType = ''; - $instance->isRedirect = FALSE; - - return $instance; + return new self( + $configuration, + $plugin_id, + $plugin_definition, + $container->get('entity_type.manager'), + $container->get('current_user'), + $container->get('helfi_helsinki_profiili.userdata'), + $container->get('grants_profile.service'), + $container->get('date.formatter'), + $container->get('grants_attachments.attachment_handler'), + $container->get('grants_handler.navigation_helper'), + $container->get('grants_handler.application_validator'), + $container->get('grants_handler.application_status_service'), + $container->get('grants_handler.form_lock_service'), + $container->get('kernel'), + $container->get('request_stack'), + $container->get('grants_metadata.application_data_service'), + $container->get('grants_handler.application_init_service'), + $container->get('grants_handler.application_uploader_service'), + $container->get('grants_handler.application_getter_service'), + $container->get('grants_attachments.attachment_remover'), + ); } /** @@ -1548,10 +1459,9 @@ public function postSaveHandleApplicationNumber(WebformSubmissionInterface $webf */ public function postSave(WebformSubmissionInterface $webform_submission, $update = TRUE): void { // Invalidate cache for this submission. - $this->entityTypeManager->getViewBuilder($webform_submission->getWebform() - ->getEntityTypeId())->resetCache([ - $webform_submission, - ]); + $this->entityTypeManager + ->getViewBuilder($webform_submission->getWebform()->getEntityTypeId()) + ->resetCache([$webform_submission]); if (empty($this->submittedFormData)) { return; diff --git a/public/modules/custom/grants_mandate/src/Controller/GrantsMandateController.php b/public/modules/custom/grants_mandate/src/Controller/GrantsMandateController.php index 234ac8684f..d06e91fcfd 100644 --- a/public/modules/custom/grants_mandate/src/Controller/GrantsMandateController.php +++ b/public/modules/custom/grants_mandate/src/Controller/GrantsMandateController.php @@ -237,9 +237,18 @@ public function updateProfileWithRecentData( $grantsProfileContent['businessId'] = $companyData['businessId']; $grantsProfileContent['companyHome'] = $companyData['companyHome']; + + // UHF-10845 Update and refetch the company data after mandating. + // Uncomment to test changing company data. + // phpcs:ignore + // $grantsProfileContent['companyHome'] .= ' test-override-'.random_int(1, 100); + $grantsProfileContent['registrationDate'] = $companyData['registrationDate']; $this->grantsProfileService->saveGrantsProfile($grantsProfileContent); + + $selectedCompany = $this->grantsProfileService->getSelectedRoleData(); + $this->grantsProfileService->getGrantsProfile($selectedCompany, TRUE); } catch (\Exception $e) { // Failing at this point does not matter, the execution can continue. From 3a9ffa336e28db320541471bb14a712218e03a7e Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Tue, 5 Nov 2024 11:12:00 +0200 Subject: [PATCH 25/95] fix: UHF-10817: Make loading of submissions better. Fix ID63 form same time. Also title loading for new applications. (#1539) * UHF-10537: Update document dl function * UHF-10537: Set processed file types to static * UHF-10537: Load application types via webform. * UHF-10537: Add new example applications. * UHF-10537: New configs * UHF-10537: PHPCS * UHF-10537: Add check for nonexistent UUID * Comment out parent_loadData in storage controller * Comment out parent_loadData in storage controller * UHF-10877: Add rest queries for testing race condition things. Suggestion for fixing race conditions. * UHF-10537: Refactor to support webform title usage. * UHF-10817: PHPCS * UHF-10817: Refactor ApplicationController. * UHF-10817: Remove base Exception throwing. * UHF-10817: A bit more refactoring to remove static methods & calls. * UHF-10817: Fix copy form button in admin UI. --- conf/examples/esimerkki_70_KUVAERILLIS.json | 118 +++-- .../src/AttachmentFixerService.php | 4 +- .../src/AttachmentHandler.php | 1 + .../grants_handler/grants_handler.module | 23 +- .../grants_handler/grants_handler.routing.yml | 4 +- .../grants_handler.services.yml | 9 +- .../src/ApplicationAccessHandler.php | 13 +- .../src/ApplicationGetterService.php | 268 ++++++----- .../grants_handler/src/ApplicationHelpers.php | 332 ++------------ .../src/ApplicationStatusService.php | 4 + .../src/ApplicationUploaderService.php | 70 ++- .../src/Controller/ApplicationController.php | 428 +++--------------- .../src/Controller/AtvPrintViewController.php | 415 +++++++++++++++++ .../src/GrantsHandlerSubmissionStorage.php | 13 - .../Block/ApplicationTimeoutMessageBlock.php | 2 +- .../Plugin/WebformHandler/GrantsHandler.php | 2 +- .../grants_metadata/grants_metadata.module | 3 +- .../grants_metadata.services.yml | 3 +- .../src/ApplicationDataService.php | 56 ++- .../src/DocumentContentMapper.php | 33 +- .../Definition/KuvaErillisDefinition.php | 318 +++++-------- tools/http/ATV.http | 4 +- tools/http/Integraatio.http | 50 ++ tools/http/http-client.env.json | 8 + 24 files changed, 1048 insertions(+), 1133 deletions(-) create mode 100644 public/modules/custom/grants_handler/src/Controller/AtvPrintViewController.php create mode 100644 tools/http/Integraatio.http create mode 100644 tools/http/http-client.env.json diff --git a/conf/examples/esimerkki_70_KUVAERILLIS.json b/conf/examples/esimerkki_70_KUVAERILLIS.json index 6bee156f4d..bbd0d2a5a3 100644 --- a/conf/examples/esimerkki_70_KUVAERILLIS.json +++ b/conf/examples/esimerkki_70_KUVAERILLIS.json @@ -208,62 +208,62 @@ ] ] }, - "customQuestionsInfo": { - "customQuestionsArray": [ - { - "ID": "a", - "label": "Label a", - "value": "Value a", - "valueType": "string" - }, - { - "ID": "b", - "label": "LABEL B", - "value": "Value B", - "valueType": "string" - } - ] - }, - "budgetInfo": { - "incomeGroupsArrayStatic": [ - { - "incomeGroupName": "general", - "otherIncomeRowsArrayStatic": [ - { - "ID": "a", - "label": "Kioskimyynti", - "value": "300.00", - "valueType": "double" - }, - { - "ID": "b", - "label": "Parkkitulot", - "value": "50.00", - "valueType": "double" - } - ] - } - ], - "costGroupsArrayStatic": [ - { - "costGroupName": "general", - "otherCostRowsArrayStatic": [ - { - "ID": "a", - "label": "Kioskiostot", - "value": "100.00", - "valueType": "double" - }, - { - "ID": "b", - "label": "Jätemaksut", - "value": "50.00", - "valueType": "double" - } - ] - } - ] - }, + "customQuestionsInfo": { + "customQuestionsArray": [ + { + "ID": "a", + "label": "Label a", + "value": "Value a", + "valueType": "string" + }, + { + "ID": "b", + "label": "LABEL B", + "value": "Value B", + "valueType": "string" + } + ] + }, + "budgetInfo": { + "incomeGroupsArrayStatic": [ + { + "incomeGroupName": "general", + "otherIncomeRowsArrayStatic": [ + { + "ID": "a", + "label": "Kioskimyynti", + "value": "300.00", + "valueType": "double" + }, + { + "ID": "b", + "label": "Parkkitulot", + "value": "50.00", + "valueType": "double" + } + ] + } + ], + "costGroupsArrayStatic": [ + { + "costGroupName": "general", + "otherCostRowsArrayStatic": [ + { + "ID": "a", + "label": "Kioskiostot", + "value": "100.00", + "valueType": "double" + }, + { + "ID": "b", + "label": "Jätemaksut", + "value": "50.00", + "valueType": "double" + } + ] + } + ] + }, "otherCompensationsInfo": { "otherCompensationsArray": [ [ @@ -299,7 +299,7 @@ } ] ], - "otherAppliedCompensationsArray": [ + "otherAppliedCompensationsArray": [ [ { "ID": "issuer", @@ -368,8 +368,6 @@ } ] }, - - "attachmentsInfo": { "attachmentsArray": [ [ @@ -405,4 +403,4 @@ ] }, "formUpdate": false -} \ No newline at end of file +} diff --git a/public/modules/custom/grants_attachments/src/AttachmentFixerService.php b/public/modules/custom/grants_attachments/src/AttachmentFixerService.php index 87d506fe6e..fd6f379764 100644 --- a/public/modules/custom/grants_attachments/src/AttachmentFixerService.php +++ b/public/modules/custom/grants_attachments/src/AttachmentFixerService.php @@ -40,11 +40,11 @@ public function fixAttachmentsOnApplication(AtvDocument $atvDoc): AtvDocument { // Get the events from the content. $events = $content['events']; // Get the attachment info from the content. - $attachmentInfo = $content['attachmentsInfo']['attachmentsArray']; + $attachmentInfo = $content['attachmentsInfo']['attachmentsArray'] ?? NULL; // Loop attachments and if attachment is not ok, update the integration ID. foreach ($attachments as $attachment) { - if ($this->areAttachmentsOk($events, $attachment, $attachmentInfo, $appEnv)['form'] === FALSE) { + if ($attachmentInfo && $this->areAttachmentsOk($events, $attachment, $attachmentInfo, $appEnv)['form'] === FALSE) { $this->updateIntegrationIdForAttachment($attachment, $attachmentInfo, $appEnv); } } diff --git a/public/modules/custom/grants_attachments/src/AttachmentHandler.php b/public/modules/custom/grants_attachments/src/AttachmentHandler.php index 5730e689e3..94049cbcda 100644 --- a/public/modules/custom/grants_attachments/src/AttachmentHandler.php +++ b/public/modules/custom/grants_attachments/src/AttachmentHandler.php @@ -138,6 +138,7 @@ public static function getAttachmentFieldNames(string $applicationNumber, $preve // This could probably be done just by parsing the application number, // however this more futureproof. $webform = ApplicationHelpers::getWebformFromApplicationNumber($applicationNumber); + if (!$webform) { return []; } diff --git a/public/modules/custom/grants_handler/grants_handler.module b/public/modules/custom/grants_handler/grants_handler.module index d5c7a9b218..ca838b7b9e 100644 --- a/public/modules/custom/grants_handler/grants_handler.module +++ b/public/modules/custom/grants_handler/grants_handler.module @@ -938,7 +938,8 @@ function grants_handler_preprocess_webform_submission_data(&$variables) { /** * Implements hook_preprocess_HOOK(). */ -function grants_handler_preprocess_webform_submission(&$variables) { +function grants_handler_preprocess_webform_submission(&$variables): void { + // Get submission object. /** @var \Drupal\webform\Entity\WebformSubmission $submission */ $submission = $variables['webform_submission']; @@ -1366,7 +1367,6 @@ function grants_handler_preprocess_application_list(&$variables) { * Implements hook_preprocess_HOOK(). */ function grants_handler_preprocess_application_list_item(&$variables): void { - $language = \Drupal::languageManager()->getCurrentLanguage()->getId(); $tOpts = ['context' => 'grants_handler']; // Get status service and get listed statuses. @@ -1382,9 +1382,20 @@ function grants_handler_preprocess_application_list_item(&$variables): void { return; } - $applicationTypes = Helpers::getApplicationTypes(); + if (!isset($submissionData["metadata"]["form_uuid"])) { + \Drupal::logger('grants_handler') + ->error('No form uuid found for submission @submissionId', + ['@submissionId' => $submissionData["application_number"]]); + return; + } + + /** @var \Drupal\grants_handler\ApplicationGetterService $applicationGetterService */ + $applicationGetterService = \Drupal::service('grants_handler.application_getter_service'); - $variables['applicationFormName'] = $applicationTypes[$submissionData["application_type"]][$language]; + // Get webform. + $webform = $applicationGetterService->getWebformFromApplicationNumber($submissionData["application_number"]); + // Set webform title. + $variables['applicationFormName'] = $webform->label(); $variables['applicationNumber'] = $submissionData["application_number"]; @@ -1508,8 +1519,8 @@ function grants_handler_preprocess_application_list_item(&$variables): void { $status = $applicationStatusService->getWebformStatus($webform); - $variables['openStartDate'] = strtotime($thirdPartySettings['applicationOpen']); - $variables['openEndDate'] = strtotime($thirdPartySettings['applicationClose']); + $variables['openStartDate'] = $thirdPartySettings['applicationOpen'] ? strtotime($thirdPartySettings['applicationOpen']) : ''; + $variables['openEndDate'] = $thirdPartySettings['applicationClose'] ? strtotime($thirdPartySettings['applicationClose']) : ''; $variables['isContinuous'] = $thirdPartySettings['applicationContinuous'] != 0; if (!$variables['isContinuous'] && ($variables['openStartDate'] > time() || $variables['openEndDate'] < time())) { $variables['errorType'] = 'NOT_OPEN'; diff --git a/public/modules/custom/grants_handler/grants_handler.routing.yml b/public/modules/custom/grants_handler/grants_handler.routing.yml index 70d03be369..8373248687 100644 --- a/public/modules/custom/grants_handler/grants_handler.routing.yml +++ b/public/modules/custom/grants_handler/grants_handler.routing.yml @@ -61,10 +61,10 @@ grants_handler.copy_application_modal: requirements: _custom_access: '\Drupal\grants_handler\Controller\ApplicationController::accessByApplicationNumber' -grants_handler.print_application_atv: +grants_handler.atv_print_view: path: '/hakemus/{submission_id}/tulosta' defaults: _title_callback: '\Drupal\grants_handler\Controller\ApplicationController::getTitle' - _controller: '\Drupal\grants_handler\Controller\ApplicationController::printViewAtv' + _controller: '\Drupal\grants_handler\Controller\AtvPrintViewController' requirements: _custom_access: '\Drupal\grants_handler\Controller\ApplicationController::accessByApplicationNumber' diff --git a/public/modules/custom/grants_handler/grants_handler.services.yml b/public/modules/custom/grants_handler/grants_handler.services.yml index c054cdd8b7..12ba9cd068 100644 --- a/public/modules/custom/grants_handler/grants_handler.services.yml +++ b/public/modules/custom/grants_handler/grants_handler.services.yml @@ -155,9 +155,14 @@ services: '@messenger', '@grants_handler.application_getter_service', '@helfi_helsinki_profiili.userdata', - '@grants_attachments.attachment_fixer_service' + '@grants_attachments.attachment_fixer_service', + '@current_user', + '@database' ] grants_handler.application_access_handler: class: Drupal\grants_handler\ApplicationAccessHandler - arguments: ['@grants_profile.service'] + arguments: [ + '@grants_profile.service', + '@grants_handler.application_getter_service' + ] diff --git a/public/modules/custom/grants_handler/src/ApplicationAccessHandler.php b/public/modules/custom/grants_handler/src/ApplicationAccessHandler.php index 3919b5d13e..c8181a755e 100644 --- a/public/modules/custom/grants_handler/src/ApplicationAccessHandler.php +++ b/public/modules/custom/grants_handler/src/ApplicationAccessHandler.php @@ -6,7 +6,6 @@ use Drupal\grants_mandate\CompanySelectException; use Drupal\grants_profile\GrantsProfileService; -use Drupal\helfi_atv\AtvDocumentNotFoundException; use Drupal\webform\Entity\WebformSubmission; /** @@ -19,6 +18,7 @@ */ public function __construct( private GrantsProfileService $grantsProfileService, + private ApplicationGetterService $applicationGetterService, ) {} /** @@ -30,7 +30,8 @@ public function __construct( * @return bool * Access status * - * @throws \GuzzleHttp\Exception\GuzzleException + * @throws \Drupal\grants_profile\GrantsProfileException + * @throws \Drupal\grants_mandate\CompanySelectException */ public function singleSubmissionAccess(WebformSubmission $webform_submission): bool { @@ -51,12 +52,12 @@ public function singleSubmissionAccess(WebformSubmission $webform_submission): b return FALSE; } - try { - $atvDoc = ApplicationHelpers::atvDocumentFromApplicationNumber($webformData['application_number']); - } - catch (AtvDocumentNotFoundException $e) { + $atvDoc = $this->applicationGetterService->getAtvDocument($webformData['application_number']); + + if (!$atvDoc) { return FALSE; } + $atvMetadata = $atvDoc->getMetadata(); // Mismatch between profile and application applicant type. if ($companyType !== $webformData['hakijan_tiedot']['applicantType']) { diff --git a/public/modules/custom/grants_handler/src/ApplicationGetterService.php b/public/modules/custom/grants_handler/src/ApplicationGetterService.php index c7b397538e..8e04eb45ee 100644 --- a/public/modules/custom/grants_handler/src/ApplicationGetterService.php +++ b/public/modules/custom/grants_handler/src/ApplicationGetterService.php @@ -6,19 +6,22 @@ use Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException; use Drupal\Component\Plugin\Exception\PluginNotFoundException; -use Drupal\Core\Entity\EntityStorageInterface; use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\Core\Logger\LoggerChannelFactoryInterface; use Drupal\Core\Logger\LoggerChannelInterface; use Drupal\grants_mandate\CompanySelectException; -use Drupal\grants_metadata\AtvSchema; use Drupal\grants_metadata\DocumentContentMapper; use Drupal\grants_profile\GrantsProfileService; use Drupal\helfi_atv\AtvDocument; use Drupal\helfi_atv\AtvDocumentNotFoundException; +use Drupal\helfi_atv\AtvFailedToConnectException; use Drupal\helfi_atv\AtvService; use Drupal\helfi_helsinki_profiili\HelsinkiProfiiliUserData; +use Drupal\helfi_helsinki_profiili\TokenExpiredException; +use Drupal\webform\Entity\Webform; use Drupal\webform\Entity\WebformSubmission; +use Drupal\webform\WebformException; +use GuzzleHttp\Exception\GuzzleException; /** * Class to get things related to applications. @@ -32,13 +35,6 @@ final class ApplicationGetterService { */ protected GrantsProfileService $grantsProfileService; - /** - * Atv document holding this application. - * - * @var \Drupal\helfi_atv\AtvDocument - */ - protected AtvDocument $atvDocument; - /** * Log errors. * @@ -47,11 +43,11 @@ final class ApplicationGetterService { protected LoggerChannelInterface $logger; /** - * Webform submission storage. + * Loaded submissions in array to prevent multiple loads. * - * @var \Drupal\Core\Entity\EntityStorageInterface + * @var array */ - protected EntityStorageInterface $storage; + protected array $submissions = []; /** * Constructs an ApplicationGetterService object. @@ -65,11 +61,6 @@ public function __construct( private readonly EntityTypeManagerInterface $entityTypeManager, ) { $this->logger = $loggerChannelFactory->get('application_getter_service'); - try { - $this->storage = $entityTypeManager->getStorage('webform_submission'); - } - catch (InvalidPluginDefinitionException | PluginNotFoundException $e) { - } } /** @@ -90,26 +81,26 @@ public function setGrantsProfileService(GrantsProfileService $grantsProfileServi * @param bool $refetch * Force atv document fetch. * - * @return \Drupal\helfi_atv\AtvDocument + * @return \Drupal\helfi_atv\AtvDocument|null * FEtched document. - * - * @throws \Drupal\helfi_atv\AtvDocumentNotFoundException - * @throws \Drupal\helfi_atv\AtvFailedToConnectException - * @throws \GuzzleHttp\Exception\GuzzleException */ - public function getAtvDocument(string $transactionId, bool $refetch = FALSE): AtvDocument { - - if (!isset($this->atvDocument) || $refetch === TRUE) { - $sParams = [ - 'transaction_id' => $transactionId, - 'lookfor' => 'appenv:' . Helpers::getAppEnv(), - ]; + public function getAtvDocument(string $transactionId, bool $refetch = FALSE): ?AtvDocument { + $sParams = [ + 'transaction_id' => $transactionId, + 'lookfor' => 'appenv:' . Helpers::getAppEnv(), + ]; - $res = $this->helfiAtvAtvService->searchDocuments($sParams); - $this->atvDocument = reset($res); + try { + $result = $this->helfiAtvAtvService->searchDocuments($sParams, $refetch); } - - return $this->atvDocument; + catch (AtvDocumentNotFoundException | AtvFailedToConnectException | TokenExpiredException | GuzzleException $e) { + $this->logger->error( + 'Failed to get document from ATV. Error: @error', + ['@error' => $e->getMessage()] + ); + return NULL; + } + return reset($result); } /** @@ -132,7 +123,7 @@ public function getAtvDocument(string $transactionId, bool $refetch = FALSE): At * * @throws \Drupal\helfi_atv\AtvDocumentNotFoundException * @throws \Drupal\helfi_atv\AtvFailedToConnectException - * @throws \GuzzleHttp\Exception\GuzzleException + * @throws \GuzzleHttp\Exception\GuzzleException|\Drupal\helfi_helsinki_profiili\TokenExpiredException */ public function getCompanyApplications( array $selectedCompany, @@ -141,7 +132,6 @@ public function getCompanyApplications( bool $sortByStatus = FALSE, string $themeHook = '', ): array { - $userData = $this->helfiHelsinkiProfiiliUserdata->getUserData(); $applications = []; @@ -177,72 +167,37 @@ public function getCompanyApplications( $applicationDocuments = $this->helfiAtvAtvService->searchDocuments($searchParams); - /** + /* * Create rows for table. - * - * @var \Drupal\helfi_atv\AtvDocument $document */ foreach ($applicationDocuments as $document) { - // Make sure the type is acceptable one. - $docArray = $document->toArray(); - $id = AtvSchema::extractDataForWebForm( - $docArray['content'], ['applicationNumber'] - ); - if (empty($id['applicationNumber'])) { - continue; - } + $applicationNumber = $document->getTransactionId(); if (array_key_exists($document->getType(), Helpers::getApplicationTypes())) { try { - - // Convert the data. - $dataDefinition = ApplicationHelpers::getDataDefinition($document->getType()); - $submissionData = DocumentContentMapper::documentContentToTypedData( - $document->getContent(), - $dataDefinition, - $document->getMetadata() - ); - - $metaData = $document->getMetadata(); - - // Load the webform submission ID. - $applicationNumber = $submissionData['application_number']; - $serial = ApplicationHelpers::getSerialFromApplicationNumber($applicationNumber); - - $webformUuidExists = isset($metaData['form_uuid']) && !empty($metaData['form_uuid']); - $webform = $webformUuidExists - ? ApplicationHelpers::getWebformByUuid($metaData['form_uuid'], $applicationNumber) - : ApplicationHelpers::getWebformFromApplicationNumber($applicationNumber); - - if (!$webform || !$serial) { - continue; - } - - $submissionId = ApplicationHelpers::getSubmissionIdWithSerialAndWebformId($serial, $webform->id(), $document); + $submission = $this->submissionObjectFromApplicationNumber($applicationNumber, $document, FALSE, TRUE); } catch (\Throwable $e) { $this->logger->error( 'Failed to get submission object from application number. Submission skipped in application listing. ID: @id Error: @error', [ '@error' => $e->getMessage(), - '@id' => $document->getTransactionId(), + '@id' => $document->getTransactionId(), ] ); continue; } - if (!$submissionData || !$submissionId) { - continue; - } + $submissionData = $submission->getData(); $submissionData['messages'] = $this->grantsHandlerMessageService->parseMessages($submissionData); $submission = [ '#theme' => $themeHook, '#submission' => $submissionData, '#document' => $document, - '#webform' => $webform, - '#submission_id' => $submissionId, + '#webform' => $submission->getWebform(), + '#submission_id' => $submission->id(), ]; $ts = strtotime($submissionData['form_timestamp_created'] ?? ''); @@ -303,15 +258,8 @@ public function getCompanyApplications( * @return \Drupal\webform\Entity\WebformSubmission|null * Webform submission. * - * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException - * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException * @throws \Drupal\Core\Entity\EntityStorageException - * @throws \Drupal\Core\TempStore\TempStoreException * @throws \Drupal\grants_mandate\CompanySelectException - * @throws \Drupal\helfi_atv\AtvDocumentNotFoundException - * @throws \Drupal\helfi_atv\AtvFailedToConnectException - * @throws \GuzzleHttp\Exception\GuzzleException - * @throws \Drupal\helfi_helsinki_profiili\TokenExpiredException */ public function submissionObjectFromApplicationNumber( string $applicationNumber, @@ -319,24 +267,10 @@ public function submissionObjectFromApplicationNumber( bool $refetch = FALSE, bool $skipAccessCheck = FALSE, ): ?WebformSubmission { - - $submissionSerial = ApplicationHelpers::getSerialFromApplicationNumber($applicationNumber); - $webform = ApplicationHelpers::getWebformFromApplicationNumber($applicationNumber, TRUE); - - if (!$webform) { - return NULL; + if (isset($this->submissions[$applicationNumber])) { + return $this->submissions[$applicationNumber]; } - $webformIds = array_map(function ($element) { - return $element->id(); - }, $webform); - - $result = $this->storage - ->loadByProperties([ - 'serial' => $submissionSerial, - 'webform_id' => $webformIds, - ]); - $selectedCompany = $this->grantsProfileService->getSelectedRoleData(); // If no company selected, no mandates no access. @@ -344,20 +278,30 @@ public function submissionObjectFromApplicationNumber( throw new CompanySelectException('User not authorised'); } + // We need the ATV document to get the form uuid. if ($document == NULL) { - $sParams = [ - 'transaction_id' => $applicationNumber, - 'lookfor' => 'appenv:' . Helpers::getAppEnv(), - ]; + $document = $this->getAtvDocument($applicationNumber, $refetch); + } - $document = $this->helfiAtvAtvService->searchDocuments( - $sParams, - $refetch - ); - if (empty($document)) { - throw new AtvDocumentNotFoundException('Document not found'); - } - $document = reset($document); + // Get WebFrom from application number. + $webform = $this->getWebformFromApplicationNumber($applicationNumber); + + // Should we throw an error here? + if (!$webform) { + throw new WebformException('Webform not found'); + } + // Get serial from application number. + $submissionSerial = ApplicationHelpers::getSerialFromApplicationNumber($applicationNumber); + + try { + $result = $this->entityTypeManager->getStorage('webform_submission') + ->loadByProperties([ + 'serial' => $submissionSerial, + 'webform_id' => $webform->id(), + ]); + } + catch (InvalidPluginDefinitionException | PluginNotFoundException $e) { + throw new WebformException('Failed to load submission object with ATV data'); } $submissionObject = NULL; @@ -365,48 +309,88 @@ public function submissionObjectFromApplicationNumber( // If there's no local submission with given serial // we can actually create that object on the fly and use that for editing. if (empty($result)) { - $webform = ApplicationHelpers::getWebformFromApplicationNumber($applicationNumber); - if ($webform) { - /** @var \Drupal\webform\Entity\WebformSubmission $submissionObject */ - $submissionObject = WebformSubmission::create(['webform_id' => $webform->id()]); - $submissionObject->set('serial', $submissionSerial); - - // Lets mark that we don't want to generate new application - // number, as we just assigned the serial from ATV application id. - // check GrantsHandler@preSave. - WebformSubmissionNotesHelper::setValue( - $submissionObject, - 'skip_available_number_check', - TRUE - ); - if ($document->getStatus() == 'DRAFT') { - $submissionObject->set('in_draft', TRUE); - } - $submissionObject->save(); + /** @var \Drupal\webform\Entity\WebformSubmission $submissionObject */ + $submissionObject = WebformSubmission::create(['webform_id' => $webform->id()]); + $submissionObject->set('serial', $submissionSerial); + + // Lets mark that we don't want to generate new application + // number, as we just assigned the serial from ATV application id. + // check GrantsHandler@preSave. + WebformSubmissionNotesHelper::setValue( + $submissionObject, + 'skip_available_number_check', + TRUE + ); + if ($document->getStatus() == 'DRAFT') { + $submissionObject->set('in_draft', TRUE); } + $submissionObject->save(); } else { /** @var \Drupal\webform\Entity\WebformSubmission $submissionObject */ $submissionObject = reset($result); } - if ($submissionObject) { - $dataDefinition = ApplicationHelpers::getDataDefinition($document->getType()); + if (!$submissionObject) { + throw new WebformException('Failed to load submission object with ATV data'); + } - $sData = DocumentContentMapper::documentContentToTypedData( - $document->getContent(), - $dataDefinition, - $document->getMetadata() - ); + // Load definition. + $dataDefinition = ApplicationHelpers::getDataDefinition($document->getType()); + + // Build data. + $sData = DocumentContentMapper::documentContentToTypedData( + $document->getContent(), + $dataDefinition, + $document->getMetadata() + ); - $sData['messages'] = $this->grantsHandlerMessageService->parseMessages($sData); + // Parse messages separately. + $sData['messages'] = $this->grantsHandlerMessageService->parseMessages($sData); + + // Set submission data from parsed mapper. + $submissionObject->setData($sData); + + // Set caching, as we don't want to load this again. + $this->submissions[$applicationNumber] = $submissionObject; + + return $submissionObject; + } - // Set submission data from parsed mapper. - $submissionObject->setData($sData); + /** + * Extract webform id from application number string. + * + * @param string $applicationNumber + * Application number. + * + * @return \Drupal\webform\Entity\Webform + * Webform object. + */ + public function getWebformFromApplicationNumber(string $applicationNumber): Webform { + // We need the ATV document to get the form uuid. + $document = $this->getAtvDocument($applicationNumber); + $uuid = $document->getMetadata()['form_uuid']; - return $submissionObject; + try { + // Try to load webform via UUID and return it. + $wids = $this->entityTypeManager->getStorage('webform') + ->getQuery() + ->condition('uuid', $uuid) + ->execute(); + return Webform::load(reset($wids)); + } + catch (InvalidPluginDefinitionException | PluginNotFoundException $e) { + // Log failure. + $this->logger->error( + 'Failed to load webform with uuid: @uuid. Error: @error', + [ + '@uuid' => $uuid, + '@error' => $e->getMessage(), + ] + ); } - return NULL; + // And return webform loaded the old way. + return ApplicationHelpers::getWebformFromApplicationNumber($applicationNumber); } } diff --git a/public/modules/custom/grants_handler/src/ApplicationHelpers.php b/public/modules/custom/grants_handler/src/ApplicationHelpers.php index e57a8d5793..ae7ca2219e 100644 --- a/public/modules/custom/grants_handler/src/ApplicationHelpers.php +++ b/public/modules/custom/grants_handler/src/ApplicationHelpers.php @@ -2,15 +2,8 @@ namespace Drupal\grants_handler; -use Drupal\Component\Datetime\Time; -use Drupal\Core\Database\Database; -use Drupal\grants_mandate\CompanySelectException; -use Drupal\helfi_atv\AtvDocument; -use Drupal\helfi_atv\AtvDocumentNotFoundException; use Drupal\webform\Entity\Webform; use Drupal\webform\Entity\WebformSubmission; -use Drupal\webform\WebformSubmissionInterface; -use Ramsey\Uuid\Uuid; /** * Handle all things related to applications & submission objects themselves. @@ -53,7 +46,6 @@ public static function createApplicationNumber(WebformSubmission &$submission, $ } return self::getApplicationNumberInEnvFormat($appParam, $applicationTypeId, $serial); - } /** @@ -72,7 +64,6 @@ public static function createApplicationNumber(WebformSubmission &$submission, $ * @throws \Drupal\helfi_atv\AtvUnexpectedResponseException */ public static function getAvailableApplicationNumber(WebformSubmission &$submission): string { - $appParam = Helpers::getAppEnv(); $serial = $submission->serial(); $webform_id = $submission->getWebform()->id(); @@ -207,7 +198,6 @@ public static function hasBreakingChangesInNewerVersion(Webform $webform): bool $hasBreakingChanges = $latestApplicationForm->getThirdPartySetting('grants_metadata', 'avus2BreakingChange'); while (!empty($parent)) { - $map[$parent] = $hasBreakingChanges; $loaded_webform = \Drupal::entityTypeManager() @@ -227,7 +217,6 @@ public static function hasBreakingChangesInNewerVersion(Webform $webform): bool } return $map[$uuid] ?? FALSE; - } /** @@ -264,7 +253,6 @@ public static function getWebformFromApplicationNumber(string $applicationNumber // Look for for application type and return if found. $webform = array_filter($webforms, function ($wf) use ($webformTypeId, $applicationTypes, $fieldToCheck) { - $thirdPartySettings = $wf->getThirdPartySettings('grants_metadata'); $thisApplicationTypeConfig = array_filter($applicationTypes, function ($appType) use ($thirdPartySettings) { if (isset($thirdPartySettings["applicationTypeID"]) && @@ -292,123 +280,6 @@ public static function getWebformFromApplicationNumber(string $applicationNumber return reset($webform); } - /** - * Get Webform object by UUID. - * - * @param string $uuid - * Uuid of the webform. - * @param string $application_number - * The application number. - * - * @return \Drupal\webform\Entity\Webform - * Webform object. - */ - public static function getWebformByUuid(string $uuid, string $application_number): Webform|bool|array { - - $wids = \Drupal::entityQuery('webform') - ->condition('uuid', $uuid) - ->execute(); - - // Fallback to original method, if webform for some reason is not found. - if (empty($wids)) { - return self::getWebformFromApplicationNumber($application_number); - } - - return Webform::load(reset($wids)); - } - - /** - * Extract serial numbor from application number string. - * - * @param string $applicationNumber - * Application number. - * @param bool $refetch - * Force refetch from ATV. - * - * @return array|\Drupal\helfi_atv\AtvDocument - * ATV Document - * - * @throws \Drupal\grants_mandate\CompanySelectException - * @throws \Drupal\helfi_atv\AtvDocumentNotFoundException - */ - public static function atvDocumentFromApplicationNumber( - string $applicationNumber, - bool $refetch = FALSE, - ): array|AtvDocument { - - /** @var \Drupal\helfi_atv\AtvService $atvService */ - $atvService = \Drupal::service('helfi_atv.atv_service'); - - $grantsProfileService = \Drupal::service('grants_profile.service'); - $selectedCompany = $grantsProfileService->getSelectedRoleData(); - - // If no company selected, no mandates no access. - if ($selectedCompany == NULL) { - throw new CompanySelectException('User not authorised'); - } - try { - $sParams = [ - 'transaction_id' => $applicationNumber, - 'lookfor' => 'appenv:' . Helpers::getAppEnv(), - ]; - - /** @var \Drupal\helfi_atv\AtvDocument[] $document */ - $document = $atvService->searchDocuments( - $sParams, - $refetch - ); - } - catch (\Throwable $e) { - } - - if (empty($document)) { - throw new AtvDocumentNotFoundException('Document not found'); - } - $document = reset($document); - return $document; - } - - /** - * Set up sender details from helsinkiprofiili data. - * - * @return array - * Sender details. - * - * @throws \Drupal\helfi_helsinki_profiili\TokenExpiredException - * @throws \Drupal\grants_handler\ApplicationException - */ - public static function parseSenderDetails(): array { - - $helfiHelsinkiProfiiliUserdata = \Drupal::service('helfi_helsinki_profiili.userdata'); - - // Set sender information after save so no accidental saving of data. - $userProfileData = $helfiHelsinkiProfiiliUserdata->getUserProfileData(); - $userData = $helfiHelsinkiProfiiliUserdata->getUserData(); - - $senderDetails = []; - - if (isset($userProfileData["myProfile"])) { - $data = $userProfileData["myProfile"]; - } - else { - $data = $userProfileData; - } - - // If no userprofile data, we need to hardcode these values. - if ($userProfileData == NULL || $userData == NULL) { - throw new ApplicationException('No profile data found for user.'); - } - else { - $senderDetails['sender_firstname'] = $data["verifiedPersonalInformation"]["firstName"]; - $senderDetails['sender_lastname'] = $data["verifiedPersonalInformation"]["lastName"]; - $senderDetails['sender_person_id'] = $data["verifiedPersonalInformation"]["nationalIdentificationNumber"]; - $senderDetails['sender_user_id'] = $userData["sub"]; - $senderDetails['sender_email'] = $data["primaryEmail"]["email"]; - } - - return $senderDetails; - } - /** * Get data definition class from application type. * @@ -421,167 +292,6 @@ public static function getDataDefinition(string $type) { return $defClass::create($defId); } - /** - * The getSubmissionIdWithSerialAndWebformId method. - * - * This method queries the database in an attempt to - * find a webform submission ID with the help of a - * submission serial and a webform ID. If one is not - * found, then we create a submission. - * - * @param string $serial - * A webform submission serial. - * @param string $webformId - * A webform ID. - * @param \Drupal\helfi_atv\AtvDocument $document - * An ATV document. - * - * @return string - * A webform submission ID. - * - * @throws \Drupal\Core\Entity\EntityStorageException - * Exception on EntityStorageException. - */ - public static function getSubmissionIdWithSerialAndWebformId( - string $serial, - string $webformId, - AtvDocument $document, - ): string { - $database = Database::getConnection(); - $query = $database->select('webform_submission', 'ws') - ->fields('ws', ['sid']) - ->condition('ws.serial', $serial) - ->condition('ws.webform_id', $webformId); - $result = $query->execute(); - $sid = $result->fetchField(); - - // If a submission ID is found, return it. - if ($sid) { - return $sid; - } - - // If we can't find a submission, then create one. - $webformSubmission = self::createWebformSubmissionWithSerialAndWebformId($serial, $document); - return $webformSubmission->id(); - } - - /** - * The createWebformSubmissionWithSerialAndWebformId method. - * - * This method creates a webform submission and sets the - * webform ID, serial and draft state if needed. - * - * @param string $serial - * A webform submission serial. - * @param \Drupal\helfi_atv\AtvDocument $document - * An ATV document. - * - * @return \Drupal\webform\Entity\WebformSubmission - * A webform submission. - * - * @throws \Drupal\Core\Entity\EntityStorageException - * Exception on EntityStorageException. - */ - protected static function createWebformSubmissionWithSerialAndWebformId( - string $serial, - AtvDocument $document, - ): WebformSubmission { - - $metaData = $document->getMetadata(); - $webformUuidExists = isset($metaData['form_uuid']) && !empty($metaData['form_uuid']); - - $webform = $webformUuidExists - ? self::getWebformByUuid($metaData['form_uuid'], $document->getTransactionId()) - : self::getWebformFromApplicationNumber($document->getTransactionId()); - - $webformId = $webform->id(); - - $submissionObject = WebformSubmission::create(['webform_id' => $webformId]); - $submissionObject->set('serial', $serial); - - // Mark that we don't want to generate new application - // number, as we just assigned the serial from ATV application id. - // Check GrantsHandler@preSave. - WebformSubmissionNotesHelper::setValue( - $submissionObject, - 'skip_available_number_check', - TRUE - ); - if ($document->getStatus() == 'DRAFT') { - $submissionObject->set('in_draft', TRUE); - } - $submissionObject->save(); - return $submissionObject; - } - - /** - * Logs the current submission page. - * - * @param \Drupal\webform\WebformSubmissionInterface|null $webform_submission - * A webform submission entity. - * @param string $applicationNumber - * The page to log. - * @param array $userData - * User data. - * @param string $saveId - * Submission save id. - * - * @return string - * The save ID. - * - * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException - * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException - * @throws \Drupal\Core\Entity\EntityStorageException - * @throws \Drupal\Core\TempStore\TempStoreException - * @throws \Drupal\grants_mandate\CompanySelectException - * @throws \Drupal\helfi_atv\AtvDocumentNotFoundException - * @throws \Drupal\helfi_atv\AtvFailedToConnectException - * @throws \Drupal\helfi_helsinki_profiili\TokenExpiredException - * @throws \GuzzleHttp\Exception\GuzzleException - * @throws \Exception - */ - public static function logSubmissionSaveid( - ?WebformSubmissionInterface $webform_submission, - string $applicationNumber, - array $userData, - string $saveId = '', - ): string { - if (!$userData) { - throw new \Exception('User data is required'); - } - - if (empty($saveId)) { - $saveId = Uuid::uuid4()->toString(); - } - - if ($webform_submission == NULL) { - /** @var \Drupal\grants_handler\ApplicationGetterService $applicationGetterService */ - $applicationGetterService = \Drupal::service('grants_handler.application_getter_service'); - $webform_submission = $applicationGetterService->submissionObjectFromApplicationNumber($applicationNumber); - } - - $currentUser = \Drupal::currentUser(); - $database = \Drupal::database(); - - $fields = [ - 'webform_id' => ($webform_submission) ? $webform_submission->getWebform() - ->id() : '', - 'sid' => ($webform_submission) ? $webform_submission->id() : 0, - 'handler_id' => self::HANDLER_ID, - 'application_number' => $applicationNumber, - 'saveid' => $saveId, - 'uid' => $currentUser->id(), - 'user_uuid' => $userData['sub'] ?? '', - 'timestamp' => (string) (new Time)->getRequestTime(), - ]; - - $query = $database->insert(self::TABLE, $fields); - $query->fields($fields)->execute(); - - return $saveId; - - } - /** * Tries to find latest webform for given application ID. * @@ -594,8 +304,7 @@ public static function logSubmissionSaveid( * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException */ - public static function getLatestApplicationForm($id): Webform|NULL { - + public static function getLatestApplicationForm($id): Webform|null { $webforms = \Drupal::entityTypeManager() ->getStorage('webform') ->loadByProperties([ @@ -615,16 +324,34 @@ public static function getLatestApplicationForm($id): Webform|NULL { /** * Get all Webform objects for given application id. * - * @param string $id + * @param string $applicationTypeId * Application ID. + * @param null $formId + * Webform ID. + * + * @return array + * Active webforms. + * + * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException + * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException */ - public static function getActiveApplicationWebforms(string $id): array { + public static function getActiveApplicationWebforms(string $applicationTypeId, $formId = NULL): array { + $properties = [ + 'third_party_settings.grants_metadata.applicationType' => $applicationTypeId, + 'archive' => FALSE, + ]; + + // If we've given form id, we want to load only that form. + if ($formId) { + // Effectevely this limits results to single form. + // But since we now can have multiple forms with same application type, + // we need to check that the form id is correct. + $properties['id'] = $formId; + } + $webforms = \Drupal::entityTypeManager() ->getStorage('webform') - ->loadByProperties([ - 'third_party_settings.grants_metadata.applicationType' => $id, - 'archive' => FALSE, - ]); + ->loadByProperties($properties); $result = [ 'released' => [], @@ -650,12 +377,17 @@ public static function getActiveApplicationWebforms(string $id): array { * * @param string $id * Application ID. + * @param string|null $formId + * Webform ID. Or null if all is wanted. * * @return bool * Can the webform be duplicated. + * + * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException + * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException */ - public static function isApplicationWebformDuplicatable(string $id) { - $applicationForms = self::getActiveApplicationWebforms($id); + public static function isApplicationWebformDuplicatable(string $id, string $formId = NULL): bool { + $applicationForms = self::getActiveApplicationWebforms($id, $formId); return count($applicationForms['released']) <= 1 && count($applicationForms['development']) === 0; } diff --git a/public/modules/custom/grants_handler/src/ApplicationStatusService.php b/public/modules/custom/grants_handler/src/ApplicationStatusService.php index 7d078c6a33..be4a82503c 100644 --- a/public/modules/custom/grants_handler/src/ApplicationStatusService.php +++ b/public/modules/custom/grants_handler/src/ApplicationStatusService.php @@ -160,6 +160,10 @@ public function isApplicationOpen(Webform $webform): bool { $thirdPartySettings = $webform->getThirdPartySettings('grants_metadata'); $applicationContinuous = $thirdPartySettings["applicationContinuous"] == 1; + if (!$thirdPartySettings["applicationOpen"] && !$thirdPartySettings["applicationClose"]) { + return $applicationContinuous; + } + try { $now = new \DateTime(); $from = new \DateTime($thirdPartySettings["applicationOpen"]); diff --git a/public/modules/custom/grants_handler/src/ApplicationUploaderService.php b/public/modules/custom/grants_handler/src/ApplicationUploaderService.php index 38d88ae063..9add608ed5 100644 --- a/public/modules/custom/grants_handler/src/ApplicationUploaderService.php +++ b/public/modules/custom/grants_handler/src/ApplicationUploaderService.php @@ -4,11 +4,14 @@ namespace Drupal\grants_handler; +use Drupal\Component\Datetime\Time; use Drupal\Component\Serialization\Json; +use Drupal\Core\Database\Connection; use Drupal\Core\Language\LanguageManagerInterface; use Drupal\Core\Logger\LoggerChannelFactoryInterface; use Drupal\Core\Logger\LoggerChannelInterface; use Drupal\Core\Messenger\MessengerInterface; +use Drupal\Core\Session\AccountInterface; use Drupal\Core\StringTranslation\StringTranslationTrait; use Drupal\Core\TypedData\TypedDataInterface; use Drupal\grants_attachments\AttachmentFixerService; @@ -16,7 +19,9 @@ use Drupal\helfi_atv\AtvDocument; use Drupal\helfi_atv\AtvService; use Drupal\helfi_helsinki_profiili\HelsinkiProfiiliUserData; +use Drupal\webform\WebformSubmissionInterface; use GuzzleHttp\Client as HttpClient; +use Ramsey\Uuid\Uuid; /** * Class to handle application uploads. @@ -76,6 +81,8 @@ public function __construct( private readonly ApplicationGetterService $applicationGetterService, private readonly HelsinkiProfiiliUserData $helfiHelsinkiProfiiliUserdata, private readonly AttachmentFixerService $attachmentFixerService, + private readonly AccountInterface $currentUser, + private readonly Connection $database, ) { $this->logger = $this->loggerChannelFactory->get('application_uploader_service'); @@ -129,7 +136,7 @@ public function handleApplicationUploadToAtv( $atvDocument->addMetadata('language', $language); try { $userData = $this->helfiHelsinkiProfiiliUserdata->getUserData(); - $saveId = ApplicationHelpers::logSubmissionSaveid(NULL, $applicationNumber, $userData); + $saveId = $this->logSubmissionSaveid(NULL, $applicationNumber, $userData); $atvDocument->addMetadata('saveid', $saveId); } catch (\Exception $e) { @@ -213,6 +220,7 @@ public function handleApplicationUploadViaIntegration( try { $headers = []; + // Get status from updated document. $headers['X-Case-Status'] = $updatedDocumentFromAtv->getStatus(); // We set the data source for integration to be used in controlling @@ -225,7 +233,7 @@ public function handleApplicationUploadViaIntegration( $headers['X-hki-applicationNumber'] = $applicationNumber; // Set new saveid and save it to db. - $headers['X-hki-saveId'] = ApplicationHelpers::logSubmissionSaveid( + $headers['X-hki-saveId'] = $this->logSubmissionSaveid( NULL, $applicationNumber, $this->helfiHelsinkiProfiiliUserdata->getUserData() @@ -279,4 +287,62 @@ public function clearCache(string $applicationNumber): void { $this->helfiAtvAtvService->clearCache($applicationNumber); } + /** + * Logs the current submission page. + * + * @param \Drupal\webform\WebformSubmissionInterface|null $webform_submission + * A webform submission entity. + * @param string $applicationNumber + * The page to log. + * @param array $userData + * User data. + * @param string $saveId + * Submission save id. + * + * @return string + * The save ID. + * + * @throws \Drupal\Core\Entity\EntityStorageException + * @throws \Drupal\grants_mandate\CompanySelectException + * @throws \Exception + */ + public function logSubmissionSaveid( + ?WebformSubmissionInterface $webform_submission, + string $applicationNumber, + array $userData, + string $saveId = '', + ): string { + if (!$userData) { + throw new \Exception('User data is required'); + } + + if (empty($saveId)) { + $saveId = Uuid::uuid4()->toString(); + } + + if ($webform_submission == NULL) { + $webform_submission = + $this->applicationGetterService + ->submissionObjectFromApplicationNumber($applicationNumber); + } + + $fields = [ + 'webform_id' => ($webform_submission) ? $webform_submission->getWebform() + ->id() : '', + 'sid' => ($webform_submission) ? $webform_submission->id() : 0, + 'handler_id' => ApplicationHelpers::HANDLER_ID, + 'application_number' => $applicationNumber, + 'saveid' => $saveId, + 'uid' => $this->currentUser->id(), + 'user_uuid' => $userData['sub'] ?? '', + 'timestamp' => (string) (new Time)->getRequestTime(), + ]; + + $query = $this->database->insert(ApplicationHelpers::TABLE, $fields); + $query->fields($fields)->execute(); + + return $saveId; + + } + } diff --git a/public/modules/custom/grants_handler/src/Controller/ApplicationController.php b/public/modules/custom/grants_handler/src/Controller/ApplicationController.php index 289fdb8784..272cb2d1ff 100644 --- a/public/modules/custom/grants_handler/src/Controller/ApplicationController.php +++ b/public/modules/custom/grants_handler/src/Controller/ApplicationController.php @@ -9,24 +9,17 @@ use Drupal\Core\Controller\ControllerBase; use Drupal\Core\Entity\EntityRepositoryInterface; use Drupal\Core\Entity\EntityStorageException; -use Drupal\Core\Render\Markup; +use Drupal\Core\Render\RendererInterface; use Drupal\Core\Session\AccountInterface; use Drupal\Core\StringTranslation\StringTranslationTrait; -use Drupal\Core\TempStore\TempStoreException; use Drupal\grants_handler\ApplicationAccessHandler; use Drupal\grants_handler\ApplicationGetterService; -use Drupal\grants_handler\ApplicationHelpers; use Drupal\grants_handler\ApplicationInitService; use Drupal\grants_handler\ApplicationStatusService; -use Drupal\grants_handler\Plugin\WebformElement\CompensationsComposite; use Drupal\grants_mandate\CompanySelectException; use Drupal\grants_metadata\ApplicationDataService; -use Drupal\grants_metadata\InputmaskHandler; -use Drupal\grants_profile\Form\GrantsProfileFormRegisteredCommunity; use Drupal\grants_profile\GrantsProfileService; use Drupal\helfi_atv\AtvDocumentNotFoundException; -use Drupal\helfi_atv\AtvFailedToConnectException; -use Drupal\helfi_helsinki_profiili\TokenExpiredException; use Drupal\webform\Entity\Webform; use Drupal\webform\Entity\WebformSubmission; use Drupal\webform\WebformRequestInterface; @@ -39,121 +32,45 @@ /** * Returns responses for Grants Handler routes. */ -class ApplicationController extends ControllerBase { +final class ApplicationController extends ControllerBase { const ISO8601 = "/^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])" . - "|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)" . - "|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])" . - "|(?:[2468][048]|[13579][26])00)-02-29)(T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d{1,9})" . - "?(?:Z|[+-][01]\d:[0-5]\d))?$/"; - + "|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)" . + "|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])" . + "|(?:[2468][048]|[13579][26])00)-02-29)(T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d{1,9})" . + "?(?:Z|[+-][01]\d:[0-5]\d))?$/"; use StringTranslationTrait; - /** - * The current user. - * - * @var \Drupal\Core\Session\AccountInterface - */ - protected $currentUser; - - /** - * The entity repository. - * - * @var \Drupal\Core\Entity\EntityRepositoryInterface - */ - protected EntityRepositoryInterface $entityRepository; - - /** - * The webform request handler. - * - * @var \Drupal\webform\WebformRequestInterface - */ - protected WebformRequestInterface $requestHandler; - - /** - * The entity type manager. - * - * @var \Drupal\Core\Entity\EntityTypeManagerInterface - */ - protected $entityTypeManager; - - /** - * The renderer service. - * - * @var \Drupal\Core\Render\RendererInterface - */ - protected $renderer; - - /** - * The request service. - * - * @var \Symfony\Component\HttpFoundation\RequestStack - */ - protected RequestStack $request; - - /** - * Access to grants profile. - * - * @var \Drupal\grants_profile\GrantsProfileService - */ - protected GrantsProfileService $grantsProfileService; - - /** - * Application data service. - * - * @var \Drupal\grants_metadata\ApplicationDataService - */ - protected ApplicationDataService $applicationDataService; - - /** - * Application status service. - * - * @var \Drupal\grants_handler\ApplicationStatusService - */ - protected ApplicationStatusService $applicationStatusService; - - /** - * Application init service. - * - * @var \Drupal\grants_handler\ApplicationInitService - */ - protected ApplicationInitService $applicationInitService; - - /** - * Access handler for applications. - * - * @var \Drupal\grants_handler\ApplicationAccessHandler - */ - protected ApplicationAccessHandler $applicationAccessHandler; - - /** - * Getter service for applications. - * - * @var \Drupal\grants_handler\ApplicationGetterService - */ - protected ApplicationGetterService $applicationGetterService; + public function __construct( + private readonly EntityRepositoryInterface $entityRepository, + private readonly WebformRequestInterface $requestHandler, + private readonly RendererInterface $renderer, + private readonly RequestStack $request, + private readonly GrantsProfileService $grantsProfileService, + private readonly ApplicationDataService $applicationDataService, + private readonly ApplicationStatusService $applicationStatusService, + private readonly ApplicationInitService $applicationInitService, + private readonly ApplicationAccessHandler $applicationAccessHandler, + private readonly ApplicationGetterService $applicationGetterService, + ) {} /** * {@inheritdoc} */ public static function create(ContainerInterface $container): ApplicationController { - $instance = parent::create($container); - $instance->currentUser = $container->get('current_user'); - - $instance->entityRepository = $container->get('entity.repository'); - $instance->requestHandler = $container->get('webform.request'); - $instance->entityTypeManager = $container->get('entity_type.manager'); - $instance->renderer = $container->get('renderer'); - $instance->request = $container->get('request_stack'); - $instance->grantsProfileService = $container->get('grants_profile.service'); - $instance->applicationDataService = $container->get('grants_metadata.application_data_service'); - $instance->applicationStatusService = $container->get('grants_handler.application_status_service'); - $instance->applicationInitService = $container->get('grants_handler.application_init_service'); - $instance->applicationAccessHandler = $container->get('grants_handler.application_access_handler'); - $instance->applicationGetterService = $container->get('grants_handler.application_getter_service'); - - return $instance; + return new self( + $container->get('entity.repository'), + $container->get('webform.request'), + $container->get('renderer'), + $container->get('request_stack'), + $container->get('grants_profile.service'), + $container->get('grants_metadata.application_data_service'), + $container->get('grants_handler.application_status_service'), + $container->get('grants_handler.application_init_service'), + $container->get('grants_handler.application_access_handler'), + $container->get('grants_handler.application_getter_service') + ); } /** @@ -197,24 +114,15 @@ public function access(AccountInterface $account, string $webform, string $webfo * @return \Drupal\Core\Access\AccessResultInterface * The access result. * - * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException - * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException - * @throws \Drupal\helfi_atv\AtvDocumentNotFoundException * @throws \GuzzleHttp\Exception\GuzzleException */ public function accessByApplicationNumber(AccountInterface $account, string $submission_id): AccessResultInterface { try { $webform_submission = $this->applicationGetterService->submissionObjectFromApplicationNumber($submission_id); } - catch (InvalidPluginDefinitionException | - PluginNotFoundException | + catch ( EntityStorageException | - TempStoreException | - CompanySelectException | - AtvDocumentNotFoundException | - AtvFailedToConnectException | - TokenExpiredException | - GuzzleException $e) { + CompanySelectException $e) { return AccessResult::forbidden('Submission gettting failed'); } @@ -261,12 +169,10 @@ public function showMessageForDataStatus(string $status): void { default: break; - } if ($message != NULL) { $this->messenger()->addWarning($message); } - } /** @@ -283,7 +189,6 @@ public function showMessageForDataStatus(string $status): void { * Build for the page. */ public function view(string $submission_id, string $view_mode = 'full', string $langcode = 'fi'): array { - $view_mode = 'default'; try { @@ -305,8 +210,6 @@ public function view(string $submission_id, string $view_mode = 'full', string $ '#theme' => 'webform_submission', '#view_mode' => $view_mode, '#webform_submission' => $webform_submission, - // '#editSubmissionLink' => - // Link::fromTextAndUrl(t('Edit application'), $url), ]; // Navigation. @@ -322,7 +225,7 @@ public function view(string $submission_id, string $view_mode = 'full', string $ '#source_entity' => $webform_submission, ]; - $page = $this->entityTypeManager + $page = $this->entityTypeManager() ->getViewBuilder($webform_submission->getEntityTypeId()) ->view($webform_submission, $view_mode); @@ -341,7 +244,6 @@ public function view(string $submission_id, string $view_mode = 'full', string $ else { throw new NotFoundHttpException('Application ' . $submission_id . ' not found.'); } - } catch (InvalidPluginDefinitionException | PluginNotFoundException | AtvDocumentNotFoundException | GuzzleException $e) { throw new NotFoundHttpException($e->getMessage()); @@ -366,13 +268,13 @@ public function view(string $submission_id, string $view_mode = 'full', string $ * @throws \GuzzleHttp\Exception\GuzzleException */ public function newApplication(string $webform_id): RedirectResponse { - $webform = Webform::load($webform_id); if (!$this->applicationStatusService->isApplicationOpen($webform)) { // Add message if application is not open. $tOpts = ['context' => 'grants_handler']; - $this->messenger()->addError($this->t('This application is not open', [], $tOpts), TRUE); + $this->messenger() + ->addError($this->t('This application is not open', [], $tOpts), TRUE); $node_storage = $this->entityTypeManager()->getStorage('node'); // @codingStandardsIgnoreStart // Get service page node. @@ -385,7 +287,8 @@ public function newApplication(string $webform_id): RedirectResponse { $res = $query->execute(); if (empty($res)) { // If we end up here, the real issue is with content input. - $this->messenger()->addError($this->t('Service page not found!', [], $tOpts), TRUE); + $this->messenger() + ->addError($this->t('Service page not found!', [], $tOpts), TRUE); return $this->redirect(''); } @@ -429,251 +332,38 @@ public function newApplication(string $webform_id): RedirectResponse { } /** - * Helper funtion to transform ATV data for print view. - */ - private function transformField($field, &$pages, &$isSubventionType, &$subventionType, $langcode) { - if (isset($field['ID'])) { - $labelData = json_decode($field['meta'], TRUE); - if (!$labelData || $labelData['element']['hidden']) { - return; - } - // Handle application type field. - if ($field['ID'] === 'applicantType' && $field['value'] === 'registered_community') { - $field['value'] = '' . $this->t('Registered community', [], ['langcode' => $langcode]); - // Add other types here when needed. - } - // Handle dates. - if (preg_match(self::ISO8601, $field['value'])) { - $field['value'] = date_format(date_create($field['value']), 'd.m.Y'); - } - - // Handle input masks. - if (isset($labelData['element']['input_mask'])) { - $field['value'] = InputmaskHandler::convertPossibleInputmaskValue($field['value'], $labelData); - } - - // Handle application type field. - if ($field['ID'] === 'issuer') { - $issuerLanguageOptions = [ - 'context' => 'Grant Issuers', - 'langcode' => $langcode, - ]; - $issuerArray = [ - "1" => $this->t('State', [], $issuerLanguageOptions), - "3" => $this->t('EU', [], $issuerLanguageOptions), - "4" => $this->t('Other', [], $issuerLanguageOptions), - "5" => $this->t('Foundation', [], $issuerLanguageOptions), - "6" => $this->t("STEA", [], $issuerLanguageOptions), - ]; - $field['value'] = $issuerArray[$field['value']]; - } - if ($labelData['section']['id'] === 'application_number' || $labelData['section']['id'] === 'status') { - unset($field); - unset($labelData['section']); - return; - } - if ($labelData['section']['id'] === 'lisatiedot_ja_liitteet_section') { - if ($field['ID'] === 'integrationID' || $field['ID'] === 'isNewAttachment' || $field['ID'] === 'fileType') { - unset($field); - return; - } - if ($field['ID'] === 'isDeliveredLater' || $field['ID'] === 'isIncludedInOtherFile') { - if ($field['value'] === 'false') { - unset($field); - return; - } - else { - $field['value'] = Markup::create('
'); - } - } - if ($field['ID'] === 'fileName') { - $field['value'] = Markup::create($field['value'] . '

'); - } - - } - - // Handle subvention type composite field. - if ($field['ID'] === 'subventionType') { - $typeNames = CompensationsComposite::getOptionsForTypes($langcode); - $subventionType = $typeNames[$field['value']]; - $isSubventionType = TRUE; - return; - } - elseif ($isSubventionType) { - $labelData['element']['label'] = $subventionType; - $isSubventionType = FALSE; - } - - if ($field['ID'] == 'role') { - $roles = GrantsProfileFormRegisteredCommunity::getOfficialRoles(); - $role = $roles[$field['value']]; - if ($role) { - $field['value'] = $role; - } - } - - if (isset($field) && array_key_exists('value', $field) && $field['value'] === 'true') { - $field['value'] = $this->t('Yes', [], [ - 'context' => 'grants_handler', - 'langcode' => $langcode, - ]); - } - - if (isset($field) && array_key_exists('value', $field) && $field['value'] === 'false') { - $field['value'] = $this->t('No', [], [ - 'context' => 'grants_handler', - 'langcode' => $langcode, - ]); - } - - if ($field['value'] === '') { - $field['value'] = '-'; - } - - $newField = [ - 'ID' => $field['ID'], - 'value' => $labelData['element']['valueTranslation'] ?? $field['value'], - 'valueType' => $field['valueType'], - 'label' => $labelData['element']['label'], - 'weight' => $labelData['element']['weight'], - ]; - $pageNumber = $labelData['page']['number']; - if (!isset($pages[$pageNumber])) { - $pages[$pageNumber] = [ - 'label' => $labelData['page']['label'], - 'id' => $labelData['page']['id'], - 'sections' => [], - ]; - } - $sectionId = $labelData['section']['id']; - if (!isset($pages[$pageNumber]['sections'][$sectionId])) { - $pages[$pageNumber]['sections'][$sectionId] = [ - 'label' => $labelData['section']['label'], - 'id' => $labelData['section']['id'], - 'weight' => $labelData['section']['weight'], - 'fields' => [], - ]; - } - $pages[$pageNumber]['sections'][$sectionId]['fields'][] = $newField; - return; - } - $isSubventionType = FALSE; - $subventionType = ''; - - if (is_array($field)) { - foreach ($field as $subField) { - $this->transformField($subField, $pages, $isSubventionType, $subventionType, $langcode); - } - } - } - - /** - * Print view for single application in ATV schema. + * Returns a page title. * - * @param string $submission_id - * Application number for submission. + * This works better than getTitle, since we know the webform object and can + * get the title from it. * - * @return array - * Render array for the page. - */ - public function printViewAtv(string $submission_id): array { - $isSubventionType = FALSE; - $subventionType = ''; - try { - /** @var \Drupal\helfi_atv\AtvDocument $atv_document */ - $atv_document = ApplicationHelpers::atvDocumentFromApplicationNumber($submission_id); - } - catch (\Exception $e) { - throw new NotFoundHttpException('Application ' . $submission_id . ' not found.'); - } - $langcode = $atv_document->getMetadata()['language']; - - $newPages = []; - // Iterate over regular fields. - $compensation = $atv_document->jsonSerialize()['content']['compensation']; - - foreach ($compensation as $page) { - if (!is_array($page)) { - continue; - } - foreach ($page as $field) { - $this->transformField($field, $newPages, $isSubventionType, $subventionType, $langcode); - } - } - $attachments = $atv_document->jsonSerialize()['content']['attachmentsInfo']; - foreach ($attachments as $page) { - if (!is_array($page)) { - continue; - } - foreach ($page as $field) { - $this->transformField($field, $newPages, $isSubventionType, $subventionType, $langcode); - } - } - - // Sort the fields based on weight. - foreach ($newPages as $pageKey => $page) { - foreach ($page['sections'] as $sectionKey => $section) { - usort($newPages[$pageKey]['sections'][$sectionKey]['fields'], function ($fieldA, $fieldB) { - return $fieldA['weight'] - $fieldB['weight']; - }); - } - } - - if (isset($compensation['additionalInformation'])) { - $tOpts = [ - 'context' => 'grants_handler', - 'langcode' => $langcode, - ]; - $field = [ - 'ID' => 'additionalInformationField', - 'value' => $compensation['additionalInformation'], - 'valueType' => 'string', - 'label' => $this->t('Additional Information', [], $tOpts), - 'weight' => 1, - ]; - $sections = []; - $sections['section'] = [ - 'label' => $this->t('Additional information concerning the application', [], $tOpts), - 'id' => 'additionalInformationPageSection', - 'weight' => 1, - 'fields' => [$field], - ]; - $newPages['additionalInformation'] = [ - 'label' => $this->t('Additional Information', [], $tOpts), - 'id' => 'additionalInformationPage', - 'sections' => $sections, - ]; - } - - // Set correct template. - $build = [ - '#theme' => 'grants_handler_print_atv_document', - '#atv_document' => $atv_document->jsonSerialize(), - '#pages' => $newPages, - '#document_langcode' => $atv_document->getMetadata()['language'], - '#cache' => [ - 'contexts' => [ - 'url.path', - ], - ], - ]; - - return $build; - } - - /** - * Returns a page title. + * @param \Drupal\webform\Entity\WebformSubmission $webform_submission + * Submission object. + * + * @return string + * Webform title. */ - public function getEditTitle($webform_submission): string { + public function getEditTitle(WebformSubmission $webform_submission): string { $webform = $webform_submission->getWebform(); return $webform->label(); } /** * Returns a page title. + * + * @param string $submission_id + * Application number of the submission. NOT THE OBJECT ID! + * + * @return string + * Webform title + * + * @throws \Drupal\Core\Entity\EntityStorageException + * @throws \Drupal\grants_mandate\CompanySelectException */ - public function getTitle($submission_id): string { - $webform = ApplicationHelpers::getWebformFromApplicationNumber($submission_id); + public function getTitle(string $submission_id): string { + $submission = $this->applicationGetterService->submissionObjectFromApplicationNumber($submission_id); + $webform = $submission->getWebform(); + return $webform->label(); } diff --git a/public/modules/custom/grants_handler/src/Controller/AtvPrintViewController.php b/public/modules/custom/grants_handler/src/Controller/AtvPrintViewController.php new file mode 100644 index 0000000000..be3b46fc3b --- /dev/null +++ b/public/modules/custom/grants_handler/src/Controller/AtvPrintViewController.php @@ -0,0 +1,415 @@ +get('grants_handler.application_getter_service') + ); + } + + /** + * Builds the response. + * + * @param string $submission_id + * The submission id. + * + * @return array + * The response.Render array. + */ + public function __invoke(string $submission_id): array { + $isSubventionType = FALSE; + $subventionType = ''; + try { + /** @var \Drupal\helfi_atv\AtvDocument $atv_document */ + $atv_document = $this->applicationGetterService->getAtvDocument($submission_id); + } + catch (\Exception $e) { + throw new NotFoundHttpException('Application ' . $submission_id . ' not found.'); + } + $langcode = $atv_document->getMetadata()['language']; + + $newPages = []; + // Iterate over regular fields. + $compensation = $atv_document->jsonSerialize()['content']['compensation']; + + foreach ($compensation as $page) { + if (!is_array($page)) { + continue; + } + foreach ($page as $field) { + $this->transformField($field, $newPages, $isSubventionType, $subventionType, $langcode); + } + } + $attachments = $atv_document->jsonSerialize()['content']['attachmentsInfo']; + foreach ($attachments as $page) { + if (!is_array($page)) { + continue; + } + foreach ($page as $field) { + $this->transformField($field, $newPages, $isSubventionType, $subventionType, $langcode); + } + } + + // Sort the fields based on weight. + foreach ($newPages as $pageKey => $page) { + foreach ($page['sections'] as $sectionKey => $section) { + usort($newPages[$pageKey]['sections'][$sectionKey]['fields'], function ($fieldA, $fieldB) { + return $fieldA['weight'] - $fieldB['weight']; + }); + } + } + + if (isset($compensation['additionalInformation'])) { + $tOpts = [ + 'context' => 'grants_handler', + 'langcode' => $langcode, + ]; + $field = [ + 'ID' => 'additionalInformationField', + 'value' => $compensation['additionalInformation'], + 'valueType' => 'string', + 'label' => $this->t('Additional Information', [], $tOpts), + 'weight' => 1, + ]; + $sections = []; + $sections['section'] = [ + 'label' => $this->t('Additional information concerning the application', [], $tOpts), + 'id' => 'additionalInformationPageSection', + 'weight' => 1, + 'fields' => [$field], + ]; + $newPages['additionalInformation'] = [ + 'label' => $this->t('Additional Information', [], $tOpts), + 'id' => 'additionalInformationPage', + 'sections' => $sections, + ]; + } + + // Set correct template. + return [ + '#theme' => 'grants_handler_print_atv_document', + '#atv_document' => $atv_document->jsonSerialize(), + '#pages' => $newPages, + '#document_langcode' => $atv_document->getMetadata()['language'], + '#cache' => [ + 'contexts' => [ + 'url.path', + ], + ], + ]; + } + + /** + * Helper funtion to transform ATV data for print view. + * + * @param mixed $field + * Field. + * @param array $pages + * Form pages. + * @param bool $isSubventionType + * Is subvention type. + * @param string $subventionType + * Subvention type. + * @param string $langcode + * Language code. + */ + private function transformField(mixed $field, array &$pages, bool &$isSubventionType, string &$subventionType, string $langcode): void { + if (isset($field['ID'])) { + $labelData = json_decode($field['meta'], TRUE); + if (!$labelData || $labelData['element']['hidden']) { + return; + } + + $this->handleContent($field, $labelData, $langcode, $isSubventionType, $subventionType); + + if ($field['value'] === '') { + $field['value'] = '-'; + } + + $newField = [ + 'ID' => $field['ID'], + 'value' => $labelData['element']['valueTranslation'] ?? $field['value'], + 'valueType' => $field['valueType'], + 'label' => $labelData['element']['label'], + 'weight' => $labelData['element']['weight'], + ]; + $pageNumber = $labelData['page']['number']; + if (!isset($pages[$pageNumber])) { + $pages[$pageNumber] = [ + 'label' => $labelData['page']['label'], + 'id' => $labelData['page']['id'], + 'sections' => [], + ]; + } + $sectionId = $labelData['section']['id']; + if (!isset($pages[$pageNumber]['sections'][$sectionId])) { + $pages[$pageNumber]['sections'][$sectionId] = [ + 'label' => $labelData['section']['label'], + 'id' => $labelData['section']['id'], + 'weight' => $labelData['section']['weight'], + 'fields' => [], + ]; + } + $pages[$pageNumber]['sections'][$sectionId]['fields'][] = $newField; + return; + } + $isSubventionType = FALSE; + $subventionType = ''; + + if (is_array($field)) { + foreach ($field as $subField) { + $this->transformField($subField, $pages, $isSubventionType, $subventionType, $langcode); + } + } + } + + /** + * Handle application content fields. + * + * @param array $field + * Field. + * @param array $labelData + * Label data. + * @param string $langcode + * Language code. + * @param bool $isSubventionType + * Is subvention type. + * @param string $subventionType + * Subvention type. + */ + private function handleContent( + array &$field, + array $labelData, + string $langcode, + bool &$isSubventionType, + string &$subventionType, + ): void { + $this->handleApplicantType($field, $langcode); + $this->handleDates($field); + $this->handleInputMasks($field, $labelData); + $this->handleIssuer($field, $langcode); + $this->handleSection($field, $labelData); + $this->handleLiitteetSection($field); + $this->handleSubventionType($field, $labelData, $langcode, $isSubventionType, $subventionType); + $this->handleRole($field); + $this->handleBooleanValues($field, $langcode); + } + + /** + * Handle applicant type. + * + * @param array $field + * Field. + * @param string $langcode + * Language code. + */ + private function handleApplicantType(array &$field, string $langcode): void { + if ($field['ID'] === 'applicantType' && $field['value'] === 'registered_community') { + $field['value'] = '' . $this->t('Registered community', [], ['langcode' => $langcode]); + } + } + + /** + * Handle dates. + * + * @param array $field + * Field. + */ + private function handleDates(array &$field): void { + if (preg_match(self::ISO8601, $field['value'])) { + $field['value'] = date_format(date_create($field['value']), 'd.m.Y'); + } + } + + /** + * Handle input masks. + * + * @param array $field + * Field. + * @param array $labelData + * Label data. + */ + private function handleInputMasks(array &$field, array $labelData): void { + if (isset($labelData['element']['input_mask'])) { + $field['value'] = InputmaskHandler::convertPossibleInputmaskValue($field['value'], $labelData); + } + } + + /** + * Handle issuer. + * + * @param array $field + * Field. + * @param string $langcode + * Language code. + */ + private function handleIssuer(array &$field, string $langcode): void { + if ($field['ID'] === 'issuer') { + $issuerLanguageOptions = [ + 'context' => 'Grant Issuers', + 'langcode' => $langcode, + ]; + $issuerArray = [ + "1" => $this->t('State', [], $issuerLanguageOptions), + "3" => $this->t('EU', [], $issuerLanguageOptions), + "4" => $this->t('Other', [], $issuerLanguageOptions), + "5" => $this->t('Foundation', [], $issuerLanguageOptions), + "6" => $this->t("STEA", [], $issuerLanguageOptions), + ]; + $field['value'] = $issuerArray[$field['value']]; + } + } + + /** + * Handle section. + * + * @param array $field + * Field. + * @param array $labelData + * Label data. + */ + private function handleSection(array &$field, array &$labelData): void { + if ($labelData['section']['id'] === 'application_number' || $labelData['section']['id'] === 'status') { + unset($field); + unset($labelData['section']); + } + } + + /** + * Handle liitteet section. + * + * @param array $field + * Field. + */ + private function handleLiitteetSection(array &$field): void { + if ($field['ID'] === 'integrationID' || $field['ID'] === 'isNewAttachment' || $field['ID'] === 'fileType') { + unset($field); + return; + } + if ($field['ID'] === 'isDeliveredLater' || $field['ID'] === 'isIncludedInOtherFile') { + if ($field['value'] === 'false') { + unset($field); + return; + } + else { + $field['value'] = Markup::create('
'); + } + } + if ($field['ID'] === 'fileName') { + $field['value'] = Markup::create($field['value'] . '

'); + } + } + + /** + * Handle subventiontypes. + * + * @param array $field + * Field. + * @param array $labelData + * Label data. + * @param string $langcode + * Language code. + * @param bool $isSubventionType + * Is subvention type. + * @param string $subventionType + * Subvention type. + */ + private function handleSubventionType( + array &$field, + array &$labelData, + string $langcode, + bool &$isSubventionType, + string &$subventionType, + ): void { + if ($field['ID'] === 'subventionType') { + $typeNames = CompensationsComposite::getOptionsForTypes($langcode); + $subventionType = $typeNames[$field['value']]; + $isSubventionType = TRUE; + } + elseif ($isSubventionType) { + $labelData['element']['label'] = $subventionType; + $isSubventionType = FALSE; + } + } + + /** + * Handle role. + * + * @param array $field + * Field. + */ + private function handleRole(array &$field): void { + if ($field['ID'] == 'role') { + $roles = GrantsProfileFormRegisteredCommunity::getOfficialRoles(); + $role = $roles[$field['value']]; + if ($role) { + $field['value'] = $role; + } + } + } + + /** + * Handle boolean values. + * + * @param array $field + * Field. + * @param string $langcode + * Language code. + */ + private function handleBooleanValues(array &$field, string $langcode): void { + if (array_key_exists('value', $field)) { + if ($field['value'] === 'true') { + $field['value'] = $this->t('Yes', [], [ + 'context' => 'grants_handler', + 'langcode' => $langcode, + ]); + } + elseif ($field['value'] === 'false') { + $field['value'] = $this->t('No', [], [ + 'context' => 'grants_handler', + 'langcode' => $langcode, + ]); + } + } + } + +} diff --git a/public/modules/custom/grants_handler/src/GrantsHandlerSubmissionStorage.php b/public/modules/custom/grants_handler/src/GrantsHandlerSubmissionStorage.php index 8dc7641142..00a21ae0c4 100644 --- a/public/modules/custom/grants_handler/src/GrantsHandlerSubmissionStorage.php +++ b/public/modules/custom/grants_handler/src/GrantsHandlerSubmissionStorage.php @@ -212,7 +212,6 @@ public function setAtvDataToSubmission(AtvDocument $document, WebformSubmissionI * @throws \GuzzleHttp\Exception\GuzzleException */ protected function loadData(array &$webform_submissions): void { - parent::loadData($webform_submissions); $userRoles = $this->account->getRoles(); // Check that we have required role. @@ -242,18 +241,6 @@ protected function loadData(array &$webform_submissions): void { /** @var \Drupal\helfi_atv\AtvDocument $document */ $document = reset($results); - if (!$document) { - $applicationNumber = ApplicationHelpers::createApplicationNumber($submission, TRUE); - $results = $this->atvService->searchDocuments( - [ - 'transaction_id' => $applicationNumber, - 'lookfor' => 'appenv:' . Helpers::getAppEnv(), - ] - ); - /** @var \Drupal\helfi_atv\AtvDocument $document */ - $document = reset($results); - } - if (!$document) { throw new \Exception('Submission data load failed.'); } diff --git a/public/modules/custom/grants_handler/src/Plugin/Block/ApplicationTimeoutMessageBlock.php b/public/modules/custom/grants_handler/src/Plugin/Block/ApplicationTimeoutMessageBlock.php index a53369b781..1b0b1c1c4a 100644 --- a/public/modules/custom/grants_handler/src/Plugin/Block/ApplicationTimeoutMessageBlock.php +++ b/public/modules/custom/grants_handler/src/Plugin/Block/ApplicationTimeoutMessageBlock.php @@ -44,7 +44,7 @@ public function build(): array { } $applicationCloseTime = $webform->getThirdPartySetting('grants_metadata', 'applicationClose'); - $applicationCloseTimestamp = strtotime($applicationCloseTime); + $applicationCloseTimestamp = $applicationCloseTime ? strtotime($applicationCloseTime) : FALSE; $currentTimestamp = strtotime('now'); // Do not render this message if the form is already closed. 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 6bd4175e73..92363fc13e 100644 --- a/public/modules/custom/grants_handler/src/Plugin/WebformHandler/GrantsHandler.php +++ b/public/modules/custom/grants_handler/src/Plugin/WebformHandler/GrantsHandler.php @@ -1109,7 +1109,7 @@ public function validateForm( try { $this->submittedFormData = array_merge( $this->submittedFormData, - ApplicationHelpers::parseSenderDetails()); + $this->applicationDataService->parseSenderDetails()); } catch (ApplicationException $e) { } diff --git a/public/modules/custom/grants_metadata/grants_metadata.module b/public/modules/custom/grants_metadata/grants_metadata.module index 408f22b6c4..279ee8b1e4 100644 --- a/public/modules/custom/grants_metadata/grants_metadata.module +++ b/public/modules/custom/grants_metadata/grants_metadata.module @@ -724,8 +724,9 @@ from being edited, even if normal rules would otherwise permit it. $bundle = $formObject->getEntity(); $applicationTypeId = $bundle->getThirdPartySetting('grants_metadata', 'applicationType'); $isDuplicatable = in_array($formStatus, ['', 'released']); + if ($applicationTypeId && $isDuplicatable) { - $isDuplicatable = ApplicationHelpers::isApplicationWebformDuplicatable($applicationTypeId); + $isDuplicatable = ApplicationHelpers::isApplicationWebformDuplicatable($applicationTypeId, $webform->id()); } $route_parameters = ['webform' => $webform->id()]; diff --git a/public/modules/custom/grants_metadata/grants_metadata.services.yml b/public/modules/custom/grants_metadata/grants_metadata.services.yml index deeb66bcf9..5fbb9c68d1 100644 --- a/public/modules/custom/grants_metadata/grants_metadata.services.yml +++ b/public/modules/custom/grants_metadata/grants_metadata.services.yml @@ -14,7 +14,8 @@ services: class: Drupal\grants_metadata\ApplicationDataService arguments: [ '@logger.factory', - '@database' + '@database', + '@helfi_helsinki_profiili.userdata' ] calls: - [ 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 2d2f18001c..87f3547a99 100644 --- a/public/modules/custom/grants_metadata/src/ApplicationDataService.php +++ b/public/modules/custom/grants_metadata/src/ApplicationDataService.php @@ -8,8 +8,10 @@ use Drupal\Core\TypedData\TypedDataInterface; use Drupal\grants_attachments\AttachmentHandler; use Drupal\grants_events\EventsService; +use Drupal\grants_handler\ApplicationException; use Drupal\grants_handler\DebuggableTrait; use Drupal\grants_handler\Helpers; +use Drupal\helfi_helsinki_profiili\HelsinkiProfiiliUserData; /** * Application data service. @@ -30,13 +32,6 @@ final class ApplicationDataService { */ protected LoggerChannelInterface $logger; - /** - * The database service. - * - * @var \Drupal\Core\Database\Connection - */ - protected Connection $database; - /** * Events service. * @@ -49,15 +44,17 @@ final class ApplicationDataService { * * @param \Drupal\Core\Logger\LoggerChannelFactoryInterface $loggerChannelFactory * Logger channel factory. - * @param \Drupal\Core\Database\Connection $datababse + * @param \Drupal\Core\Database\Connection $database * Database connection. + * @param \Drupal\helfi_helsinki_profiili\HelsinkiProfiiliUserData $helsinkiProfiiliUserData + * Helsinki profiili user data. */ public function __construct( LoggerChannelFactoryInterface $loggerChannelFactory, - Connection $datababse, + private readonly Connection $database, + private readonly HelsinkiProfiiliUserData $helsinkiProfiiliUserData, ) { $this->logger = $loggerChannelFactory->get('grants_application_helpers'); - $this->database = $datababse; } /** @@ -70,6 +67,43 @@ public function setEventsService(EventsService $eventsService): void { $this->eventsService = $eventsService; } + /** + * Set up sender details from helsinkiprofiili data. + * + * @return array + * Sender details. + * + * @throws \Drupal\helfi_helsinki_profiili\TokenExpiredException + * @throws \Drupal\grants_handler\ApplicationException + */ + public function parseSenderDetails(): array { + // Set sender information after save so no accidental saving of data. + $userProfileData = $this->helsinkiProfiiliUserData->getUserProfileData(); + $userData = $this->helsinkiProfiiliUserData->getUserData(); + + // If no userprofile data, we cannot proceed. + if (!$userProfileData || !$userData) { + throw new ApplicationException('No profile data found for user.'); + } + + $senderDetails = []; + + if (isset($userProfileData["myProfile"])) { + $data = $userProfileData["myProfile"]; + } + else { + $data = $userProfileData; + } + + $senderDetails['sender_firstname'] = $data["verifiedPersonalInformation"]["firstName"]; + $senderDetails['sender_lastname'] = $data["verifiedPersonalInformation"]["lastName"]; + $senderDetails['sender_person_id'] = $data["verifiedPersonalInformation"]["nationalIdentificationNumber"]; + $senderDetails['sender_user_id'] = $userData["sub"]; + $senderDetails['sender_email'] = $data["primaryEmail"]["email"]; + + return $senderDetails; + } + /** * Validate submission data integrity. * @@ -167,7 +201,7 @@ private function shouldSkipIntegrityCheck(array $submissionData): bool { * * @throws \Exception */ - private function getLatestSaveid(string $applicationNumber): string { + protected function getLatestSaveid(string $applicationNumber): string { $query = $this->database->select(self::TABLE, 'l'); $query->condition('application_number', $applicationNumber); $query->fields('l', ['lid', 'saveid']); diff --git a/public/modules/custom/grants_metadata/src/DocumentContentMapper.php b/public/modules/custom/grants_metadata/src/DocumentContentMapper.php index 79089613e6..e2521aeac9 100644 --- a/public/modules/custom/grants_metadata/src/DocumentContentMapper.php +++ b/public/modules/custom/grants_metadata/src/DocumentContentMapper.php @@ -13,6 +13,15 @@ */ class DocumentContentMapper { + /** + * Attachment file types. + * + * Saved statically to prevent too many queries. + * + * @var array + */ + private static array $attachmentFileTypes = []; + /** * Map document structure to typed data object. * @@ -120,7 +129,19 @@ private static function processStatusUpdates(array &$typedDataValues): void { */ private static function processAttachments(array &$typedDataValues): void { $other_attachments = []; - $attachmentFileTypes = AttachmentHandler::getAttachmentFieldNames($typedDataValues["application_number"], TRUE); + + $applicationNumber = $typedDataValues["application_number"]; + + // Check if the static variable is already populated + // for the given application number. + if (!isset(self::$attachmentFileTypes[$applicationNumber])) { + // If not, populate it. + self::$attachmentFileTypes[$applicationNumber] = + AttachmentHandler::getAttachmentFieldNames( + $applicationNumber, + TRUE + ); + } if (!isset($typedDataValues["attachments"])) { $typedDataValues["attachments"] = []; @@ -128,7 +149,8 @@ private static function processAttachments(array &$typedDataValues): void { foreach ($typedDataValues["attachments"] as $key => $attachment) { $fileType = $attachment["fileType"]; - $fieldName = array_search($fileType, $attachmentFileTypes); + // Get fieldname for the attachment. + $fieldName = array_search($fileType, self::$attachmentFileTypes[$applicationNumber]); $newValues = $attachment; if (!empty($attachment["fileName"])) { @@ -185,7 +207,12 @@ private static function updateIssuerNameCase(array &$typedDataValues, string $ke */ private static function processCommunityAddress(array &$typedDataValues): void { $community_address = []; - foreach (['community_street', 'community_city', 'community_post_code', 'community_country'] as $field) { + foreach ([ + 'community_street', + 'community_city', + 'community_post_code', + 'community_country', + ] as $field) { if (isset($typedDataValues[$field])) { $community_address[$field] = $typedDataValues[$field]; unset($typedDataValues[$field]); diff --git a/public/modules/custom/grants_metadata/src/TypedData/Definition/KuvaErillisDefinition.php b/public/modules/custom/grants_metadata/src/TypedData/Definition/KuvaErillisDefinition.php index 8ce6ad5ffe..d625fab6cf 100644 --- a/public/modules/custom/grants_metadata/src/TypedData/Definition/KuvaErillisDefinition.php +++ b/public/modules/custom/grants_metadata/src/TypedData/Definition/KuvaErillisDefinition.php @@ -18,7 +18,6 @@ class KuvaErillisDefinition extends ComplexDataDefinitionBase { */ public function getPropertyDefinitions() { if (!isset($this->propertyDefinitions)) { - $info = &$this->propertyDefinitions; foreach ($this->getBaseProperties() as $key => $property) { @@ -34,216 +33,78 @@ public function getPropertyDefinitions() { 'purpose', ]); - $info['hankesuunnitelma_jatkohakemus'] = DataDefinition::create('string') - ->setSetting('defaultValue', '') - ->setSetting('jsonPath', [ - 'compensation', - 'customQuestionsInfo', - 'customQuestionsArray', - 'hankesuunnitelma_jatkohakemus', - ]); - - $info['hankkeen_tarkoitus_tavoitteet'] = DataDefinition::create('string') - ->setSetting('defaultValue', '') - ->setSetting('jsonPath', [ - 'compensation', - 'customQuestionsInfo', - 'customQuestionsArray', - 'hankkeen_tarkoitus_tavoitteet', - ]); - - $info['hankkeen_toimenpiteet_aikataulu'] = DataDefinition::create('string') - ->setSetting('defaultValue', '') - ->setSetting('jsonPath', [ - 'compensation', - 'customQuestionsInfo', - 'customQuestionsArray', - 'hankkeen_toimenpiteet_aikataulu', - ]); - - $info['hankkeen_toimenpiteet_alkupvm'] = DataDefinition::create('string') - ->setSetting('defaultValue', '') - ->setSetting('jsonPath', [ - 'compensation', - 'customQuestionsInfo', - 'customQuestionsArray', - 'hankkeen_toimenpiteet_alkupvm', - ]) - ->setSetting('typeOverride', [ - 'dataType' => 'string', - 'jsonType' => 'datetime', - ]) - ->setSetting('valueCallback', [ - 'service' => 'grants_metadata.converter', - 'method' => 'convertDates', - 'arguments' => [ - 'dateFormat' => 'c', + $customQuestions = [ + 'hankesuunnitelma_radios' => [ + 'type' => 'boolean', + 'typeOverride' => [ + 'dataType' => 'string', + 'jsonType' => 'bool', ], - ]); - - $info['hankkeen_toimenpiteet_loppupvm'] = DataDefinition::create('string') - ->setSetting('defaultValue', '') - ->setSetting('jsonPath', [ - 'compensation', - 'customQuestionsInfo', - 'customQuestionsArray', - 'hankkeen_toimenpiteet_loppupvm', - ]) - ->setSetting('typeOverride', [ - 'dataType' => 'string', - 'jsonType' => 'datetime', - ]) - ->setSetting('valueCallback', [ - 'service' => 'grants_metadata.converter', - 'method' => 'convertDates', - 'arguments' => [ - 'dateFormat' => 'c', + ], + 'hankesuunnitelma_jatkohakemus' => [ + 'type' => 'boolean', + 'typeOverride' => [ + 'dataType' => 'string', + 'jsonType' => 'bool', ], - ]); - - $info['hankkeen_keskeisimmat_kumppanit'] = DataDefinition::create('string') - ->setSetting('defaultValue', '') - ->setSetting('jsonPath', [ - 'compensation', - 'customQuestionsInfo', - 'customQuestionsArray', - 'hankkeen_keskeisimmat_kumppanit', - ]); - - $info['haun_painopisteet_liikkumis_kehitys'] = DataDefinition::create('string') - ->setSetting('defaultValue', '') - ->setSetting('jsonPath', [ - 'compensation', - 'customQuestionsInfo', - 'customQuestionsArray', - 'haun_painopisteet_liikkumis_kehitys', - ]); - - $info['haun_painopisteet_digi_kehitys'] = DataDefinition::create('string') - ->setSetting('defaultValue', '') - ->setSetting('jsonPath', [ - 'compensation', - 'customQuestionsInfo', - 'customQuestionsArray', - 'haun_painopisteet_digi_kehitys', - ]); - - $info['haun_painopisteet_vertais_kehitys'] = DataDefinition::create('string') - ->setSetting('defaultValue', '') - ->setSetting('jsonPath', [ - 'compensation', - 'customQuestionsInfo', - 'customQuestionsArray', - 'haun_painopisteet_vertais_kehitys', - ]); - - $info['haun_painopisteet_kulttuuri_kehitys'] = DataDefinition::create('string') - ->setSetting('defaultValue', '') - ->setSetting('jsonPath', [ - 'compensation', - 'customQuestionsInfo', - 'customQuestionsArray', - 'haun_painopisteet_kulttuuri_kehitys', - ]); - - $info['hankkeen_kohderyhmat_kenelle'] = DataDefinition::create('string') - ->setSetting('defaultValue', '') - ->setSetting('jsonPath', [ - 'compensation', - 'customQuestionsInfo', - 'customQuestionsArray', - 'hankkeen_kohderyhmat_kenelle', - ]); - - $info['hankkeen_kohderyhmat_erityisryhmat'] = DataDefinition::create('string') - ->setSetting('defaultValue', '') - ->setSetting('jsonPath', [ - 'compensation', - 'customQuestionsInfo', - 'customQuestionsArray', - 'hankkeen_kohderyhmat_erityisryhmat', - ]); - - $info['hankkeen_kohderyhmat_tavoitus'] = DataDefinition::create('string') - ->setSetting('defaultValue', '') - ->setSetting('jsonPath', [ - 'compensation', - 'customQuestionsInfo', - 'customQuestionsArray', - 'hankkeen_kohderyhmat_tavoitus', - ]); - - $info['hankkeen_kohderyhmat_konkretia'] = DataDefinition::create('string') - ->setSetting('defaultValue', '') - ->setSetting('jsonPath', [ - 'compensation', - 'customQuestionsInfo', - 'customQuestionsArray', - 'hankkeen_kohderyhmat_konkretia', - ]); - - $info['hankkeen_kohderyhmat_osallisuus'] = DataDefinition::create('string') - ->setSetting('defaultValue', '') - ->setSetting('jsonPath', [ - 'compensation', - 'customQuestionsInfo', - 'customQuestionsArray', - 'hankkeen_kohderyhmat_osallisuus', - ]); - - $info['hankkeen_kohderyhmat_osaaminen'] = DataDefinition::create('string') - ->setSetting('defaultValue', '') - ->setSetting('jsonPath', [ - 'compensation', - 'customQuestionsInfo', - 'customQuestionsArray', - 'hankkeen_kohderyhmat_osaaminen', - ]); - - $info['hankkeen_kohderyhmat_postinrot'] = DataDefinition::create('string') - ->setSetting('defaultValue', '') - ->setSetting('jsonPath', [ - 'compensation', - 'customQuestionsInfo', - 'customQuestionsArray', - 'hankkeen_kohderyhmat_postinrot', - ]); - - $info['hankkeen_kohderyhmat_miksi_alue'] = DataDefinition::create('string') - ->setSetting('defaultValue', '') - ->setSetting('jsonPath', [ - 'compensation', - 'customQuestionsInfo', - 'customQuestionsArray', - 'hankkeen_kohderyhmat_miksi_alue', - ]); - - $info['hankkeen_riskit_keskeisimmat'] = DataDefinition::create('string') - ->setSetting('defaultValue', '') - ->setSetting('jsonPath', [ - 'compensation', - 'customQuestionsInfo', - 'customQuestionsArray', - 'hankkeen_riskit_keskeisimmat', - ]); - - $info['hankkeen_riskit_seuranta'] = DataDefinition::create('string') - ->setSetting('defaultValue', '') - ->setSetting('jsonPath', [ - 'compensation', - 'customQuestionsInfo', - 'customQuestionsArray', - 'hankkeen_riskit_seuranta', - ]); - - $info['hankkeen_riskit_vakiinnuttaminen'] = DataDefinition::create('string') - ->setSetting('defaultValue', '') - ->setSetting('jsonPath', [ - 'compensation', - 'customQuestionsInfo', - 'customQuestionsArray', - 'hankkeen_riskit_vakiinnuttaminen', - ]); + ], + 'hankkeen_tarkoitus_tavoitteet' => [], + 'hankkeen_toimenpiteet_aikataulu' => [], + 'hankkeen_toimenpiteet_alkupvm' => [ + 'typeOverride' => [ + 'dataType' => 'string', + 'jsonType' => 'datetime', + ], + 'valueCallback' => [ + 'service' => 'grants_metadata.converter', + 'method' => 'convertDates', + 'arguments' => [ + 'dateFormat' => 'c', + ], + ], + ], + 'hankkeen_toimenpiteet_loppupvm' => [ + 'typeOverride' => [ + 'dataType' => 'string', + 'jsonType' => 'datetime', + ], + 'valueCallback' => [ + 'service' => 'grants_metadata.converter', + 'method' => 'convertDates', + 'arguments' => [ + 'dateFormat' => 'c', + ], + ], + ], + 'hankkeen_keskeisimmat_kumppanit' => [], + 'haun_painopisteet_liikkumis_kehitys' => [], + 'haun_painopisteet_digi_kehitys' => [], + 'haun_painopisteet_vertais_kehitys' => [], + 'haun_painopisteet_kulttuuri_kehitys' => [], + 'hankkeen_kohderyhmat_kenelle' => [], + 'hankkeen_kohderyhmat_erityisryhmat' => [], + 'hankkeen_kohderyhmat_tavoitus' => [], + 'hankkeen_kohderyhmat_konkretia' => [], + 'hankkeen_kohderyhmat_osallisuus' => [], + 'hankkeen_kohderyhmat_osaaminen' => [], + 'hankkeen_kohderyhmat_postinrot' => [], + 'hankkeen_kohderyhmat_miksi_alue' => [], + 'hankkeen_riskit_keskeisimmat' => [], + 'hankkeen_riskit_seuranta' => [], + 'hankkeen_riskit_vakiinnuttaminen' => [], + // Example forms. + 'puuttuva_kentta_1' => [], + 'puuttuva_kentta_2' => [], + 'vaikka_sahkoposti' => [], + 'checkboksiki_onnistuu' => [], + 'tekstialue' => [], + 'tekstikentta' => [], + 'paivamaara' => [], + ]; + + foreach ($customQuestions as $key => $value) { + $this->createCustomQuestionDefinitions($key, $value, $info); + } $info['budgetInfo'] = GrantsBudgetInfoDefinition::create('grants_budget_info') ->setSetting('propertyStructureCallback', [ @@ -280,4 +141,43 @@ public function getPropertyDefinitions() { return $this->propertyDefinitions; } + /** + * Helper function generate repetitive definition. + * + * @param string $key + * Webform element key. + * @param array $value + * Additional settings for given field. + * @param array $info + * Data definitions. + */ + private function createCustomQuestionDefinitions(string $key, array $value, array &$info): void { + // Create initial definition with position in JSON. + $info[$key] = DataDefinition::create($value['type'] ?? 'string') + ->setSetting('jsonPath', [ + 'compensation', + 'customQuestionsInfo', + 'customQuestionsArray', + $key, + ]); + // Add type override if set. + if (isset($value['typeOverride'])) { + $info[$key]->setSetting('typeOverride', $value['typeOverride']); + } + // Add value callback if set. + if (isset($value['valueCallback'])) { + $info[$key]->setSetting('valueCallback', $value['valueCallback']); + } + // Add default value if set or empty value. + if (isset($value['defaultValue'])) { + $info[$key]->setSetting('defaultValue', $value['defaultValue']); + } + // DO not add defaultValue if not set, this makes all fields inserted into + // data, this is not an issue, but if there's lot of fields + // data may get confusing. + // The negative is that if field is not set required in form, it will not + // be added to data. If an empty field & value is wanted, the defaultValue + // can be added to specific field in array above. + } + } diff --git a/tools/http/ATV.http b/tools/http/ATV.http index 094be07b8b..bab68dfcab 100644 --- a/tools/http/ATV.http +++ b/tools/http/ATV.http @@ -5,7 +5,7 @@ X-Api-Key: {{atvApiKey}} #### Get single document by transaction_id GET {{atvUrl}}/v1/documents/? - transaction_id={{transaction_id}} + transaction_id={{transactionId}} Accept-Encoding: utf8 X-Api-Key: {{atvApiKey}} @@ -24,7 +24,7 @@ GET {{atvUrl}}/v1/documents/? user_id={{user_id}}& type={{type}}& service_name=AvustushakemusIntegraatio& - transaction_id={{transaction_id}} + transaction_id={{transactionId}} Accept-Encoding: utf8 X-Api-Key: {{atvApiKey}} diff --git a/tools/http/Integraatio.http b/tools/http/Integraatio.http new file mode 100644 index 0000000000..fe97c5a548 --- /dev/null +++ b/tools/http/Integraatio.http @@ -0,0 +1,50 @@ +### Create Event via integration API +POST {{integraatioUrl}}/createEvent +Authorization: Basic {{integraatioBasicToken}} +Content-Type: application/json + +{ + "caseId": "{{transactionId}}", + "eventType": "EVENT_INFO", + "eventCode": 0, + "eventSource": "Avustusten kasittelyjarjestelma", + "eventDescription": "Puhakka Tero;09 310 36070;tero.puhakka@hel.fi", + "eventDescription_SV": null, + "eventDescription_EN": null, + "timeUpdated": null, + "timeCreated": "{{$isoTimestamp}}", + "eventTarget": null, + "eventID": "{{$random.uuid}}" +} + +### Create Status Update via integration API +POST {{integraatioUrl}}/updateCitizenCaseStatus +Authorization: Basic {{integraatioBasicToken}} +Content-Type: application/json + +{ + "caseId": "{{transactionId}}", + "citizenCaseStatus" : "PROCESSING", + "eventType" : "STATUS_UPDATE", + "eventCode" : 0, + "eventSource" : "Avustusten kasittelyjarjestelma", + "timeUpdated" : null, + "timeCreated": "{{$isoTimestamp}}" +} + +### Create Message via integration API +POST {{integraatioUrl}}/createConversationMessage +Authorization: Basic {{integraatioBasicToken}} +Content-Type: application/json + +{ +"caseId": "{{transactionId}}", +"messageId" : "{{$random.uuid}}", +"body" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit", +"sentBy" : "Avustusten kasittelyjarjestelma", +"sendDateTime" :"{{$isoTimestamp}}" +} + +### + + diff --git a/tools/http/http-client.env.json b/tools/http/http-client.env.json new file mode 100644 index 0000000000..b2d490c533 --- /dev/null +++ b/tools/http/http-client.env.json @@ -0,0 +1,8 @@ +{ + "dev": { + "atvUrl": "https://atv-api-hki-kanslia-atv-test.agw.arodevtest.hel.fi", + "transactionId": "LOCALYRTTI12-070-0000009", + "document_id": "28753685-24b8-4542-b1c1-cc70ff9f9fbc", + "integraatioUrl": "https://avustus-integration-test.agw.arodevtest.hel.fi" + } +} From c859d5631d01e6a0db7caaba9a8f0802f6841977 Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Wed, 6 Nov 2024 08:47:32 +0200 Subject: [PATCH 26/95] feat: Snyk upgrade b785815b434b86e46b4901cb202437dd (#1548) * Update configuration (#1523) * fix: upgrade @playwright/test from 1.41.2 to 1.48.0 Snyk has created this PR to upgrade @playwright/test from 1.41.2 to 1.48.0. See this package in npm: @playwright/test See this project in Snyk: https://app.snyk.io/org/city-of-helsinki/project/aed93529-486e-499e-9b12-5815057dc0ec?utm_source=github&utm_medium=referral&page=upgrade-pr * Update e2e docker image --------- Co-authored-by: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Co-authored-by: snyk-bot --- compose.override.yml | 2 +- e2e/package-lock.json | 34 +++++++++++++++++++--------------- e2e/package.json | 2 +- 3 files changed, 21 insertions(+), 17 deletions(-) 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/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", From bd085969cf34bf55dee518a8cbd5153763564644 Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Wed, 6 Nov 2024 09:46:36 +0200 Subject: [PATCH 27/95] feat: [Snyk] Upgrade @types/node from 20.11.7 to 20.16.11 (#1545) * Update configuration (#1523) * fix: upgrade @types/node from 20.11.7 to 20.16.11 Snyk has created this PR to upgrade @types/node from 20.11.7 to 20.16.11. See this package in npm: @types/node See this project in Snyk: https://app.snyk.io/org/city-of-helsinki/project/aed93529-486e-499e-9b12-5815057dc0ec?utm_source=github&utm_medium=referral&page=upgrade-pr --------- Co-authored-by: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Co-authored-by: snyk-bot --- e2e/package-lock.json | 20 +++++++++++--------- e2e/package.json | 2 +- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/e2e/package-lock.json b/e2e/package-lock.json index 5c07515962..0957977376 100644 --- a/e2e/package-lock.json +++ b/e2e/package-lock.json @@ -12,7 +12,7 @@ "@faker-js/faker": "^8.3.1", "@playwright/test": "^1.48.0", "@types/lodash.clonedeep": "^4.5.9", - "@types/node": "^20.11.7", + "@types/node": "^20.16.11", "dotenv": "^16.4.1", "lodash.clonedeep": "^4.5.0" } @@ -65,12 +65,13 @@ } }, "node_modules/@types/node": { - "version": "20.11.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.7.tgz", - "integrity": "sha512-GPmeN1C3XAyV5uybAf4cMLWT9fDWcmQhZVtMFu7OR32WjrqGG+Wnk2V1d0bmtUyE/Zy1QJ9BxyiTih9z8Oks8A==", + "version": "20.16.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.11.tgz", + "integrity": "sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==", "dev": true, + "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.19.2" } }, "node_modules/dotenv": { @@ -139,10 +140,11 @@ } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" } } } diff --git a/e2e/package.json b/e2e/package.json index 98ce4905cf..cf4548d815 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -15,7 +15,7 @@ "@faker-js/faker": "^8.3.1", "@playwright/test": "^1.48.0", "@types/lodash.clonedeep": "^4.5.9", - "@types/node": "^20.11.7", + "@types/node": "^20.16.11", "dotenv": "^16.4.1", "lodash.clonedeep": "^4.5.0" } From 96fa0f6ba4aafbca92e2a1c1c58603c186db08c7 Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Wed, 6 Nov 2024 10:06:16 +0200 Subject: [PATCH 28/95] feat: [Snyk] Upgrade dotenv from 16.4.1 to 16.4.5 (#1546) * Update configuration (#1523) * fix: upgrade dotenv from 16.4.1 to 16.4.5 Snyk has created this PR to upgrade dotenv from 16.4.1 to 16.4.5. See this package in npm: dotenv See this project in Snyk: https://app.snyk.io/org/city-of-helsinki/project/aed93529-486e-499e-9b12-5815057dc0ec?utm_source=github&utm_medium=referral&page=upgrade-pr --------- Co-authored-by: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Co-authored-by: snyk-bot --- e2e/package-lock.json | 11 ++++++----- e2e/package.json | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/e2e/package-lock.json b/e2e/package-lock.json index 0957977376..f57e5e4825 100644 --- a/e2e/package-lock.json +++ b/e2e/package-lock.json @@ -13,7 +13,7 @@ "@playwright/test": "^1.48.0", "@types/lodash.clonedeep": "^4.5.9", "@types/node": "^20.16.11", - "dotenv": "^16.4.1", + "dotenv": "^16.4.5", "lodash.clonedeep": "^4.5.0" } }, @@ -75,15 +75,16 @@ } }, "node_modules/dotenv": { - "version": "16.4.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.1.tgz", - "integrity": "sha512-CjA3y+Dr3FyFDOAMnxZEGtnW9KBR2M0JvvUtXNW+dYJL5ROWxP9DUHCwgFqpMk0OXCc0ljhaNTr2w/kutYIcHQ==", + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" + "url": "https://dotenvx.com" } }, "node_modules/fsevents": { diff --git a/e2e/package.json b/e2e/package.json index cf4548d815..290151488e 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -16,7 +16,7 @@ "@playwright/test": "^1.48.0", "@types/lodash.clonedeep": "^4.5.9", "@types/node": "^20.16.11", - "dotenv": "^16.4.1", + "dotenv": "^16.4.5", "lodash.clonedeep": "^4.5.0" } } From 5676c842932a22fe76389c2413cd03dffb634ccf Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Wed, 6 Nov 2024 11:23:32 +0200 Subject: [PATCH 29/95] feat: [Snyk] Upgrade @faker-js/faker from 8.3.1 to 8.4.1 (#1547) * Update configuration (#1523) * fix: upgrade @faker-js/faker from 8.3.1 to 8.4.1 Snyk has created this PR to upgrade @faker-js/faker from 8.3.1 to 8.4.1. See this package in npm: @faker-js/faker See this project in Snyk: https://app.snyk.io/org/city-of-helsinki/project/aed93529-486e-499e-9b12-5815057dc0ec?utm_source=github&utm_medium=referral&page=upgrade-pr * Update e2e tests --------- Co-authored-by: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Co-authored-by: snyk-bot --- e2e/package-lock.json | 9 +++++---- e2e/package.json | 2 +- e2e/utils/data/application/application_data_29.ts | 12 ++++++------ e2e/utils/data/application/application_data_48.ts | 8 ++++---- e2e/utils/data/application/application_data_49.ts | 4 ++-- e2e/utils/data/application/application_data_51.ts | 8 ++++---- e2e/utils/data/application/application_data_52.ts | 6 +++--- e2e/utils/data/application/application_data_54.ts | 12 ++++++------ e2e/utils/data/application/application_data_57.ts | 8 ++++---- e2e/utils/data/application/application_data_60.ts | 4 ++-- e2e/utils/data/application/application_data_61.ts | 8 ++++---- e2e/utils/data/application/application_data_62.ts | 8 ++++---- e2e/utils/data/application/application_data_63.ts | 8 ++++---- e2e/utils/data/application/application_data_67.ts | 8 ++++---- e2e/utils/data/application/application_data_68.ts | 8 ++++---- 15 files changed, 57 insertions(+), 56 deletions(-) diff --git a/e2e/package-lock.json b/e2e/package-lock.json index f57e5e4825..e1e24d6a2e 100644 --- a/e2e/package-lock.json +++ b/e2e/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "ISC", "devDependencies": { - "@faker-js/faker": "^8.3.1", + "@faker-js/faker": "^8.4.1", "@playwright/test": "^1.48.0", "@types/lodash.clonedeep": "^4.5.9", "@types/node": "^20.16.11", @@ -18,9 +18,9 @@ } }, "node_modules/@faker-js/faker": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-8.3.1.tgz", - "integrity": "sha512-FdgpFxY6V6rLZE9mmIBb9hM0xpfvQOSNOLnzolzKwsE1DH+gC7lEKV1p1IbR0lAYyvYd5a4u3qWJzowUkw1bIw==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-8.4.1.tgz", + "integrity": "sha512-XQ3cU+Q8Uqmrbf2e0cIC/QN43sTBSC8KF12u29Mb47tWrt2hAgBXSgpZMj4Ao8Uk0iJcU99QsOCaIL8934obCg==", "dev": true, "funding": [ { @@ -28,6 +28,7 @@ "url": "https://opencollective.com/fakerjs" } ], + "license": "MIT", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0", "npm": ">=6.14.13" diff --git a/e2e/package.json b/e2e/package.json index 290151488e..17237d3fdc 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -12,7 +12,7 @@ "author": "", "license": "ISC", "devDependencies": { - "@faker-js/faker": "^8.3.1", + "@faker-js/faker": "^8.4.1", "@playwright/test": "^1.48.0", "@types/lodash.clonedeep": "^4.5.9", "@types/node": "^20.16.11", diff --git a/e2e/utils/data/application/application_data_29.ts b/e2e/utils/data/application/application_data_29.ts index eeeb460899..e56bb7ce9a 100644 --- a/e2e/utils/data/application/application_data_29.ts +++ b/e2e/utils/data/application/application_data_29.ts @@ -155,7 +155,7 @@ const baseForm_29: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -207,7 +207,7 @@ const baseForm_29: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -287,7 +287,7 @@ const baseForm_29: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -339,7 +339,7 @@ const baseForm_29: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -400,7 +400,7 @@ const baseForm_29: FormData = { value: faker.number.float({ min: 100, max: 1000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -408,7 +408,7 @@ const baseForm_29: FormData = { value: faker.number.float({ min: 100, max: 1000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, diff --git a/e2e/utils/data/application/application_data_48.ts b/e2e/utils/data/application/application_data_48.ts index dcddaa3685..52ab034a8f 100644 --- a/e2e/utils/data/application/application_data_48.ts +++ b/e2e/utils/data/application/application_data_48.ts @@ -179,7 +179,7 @@ const baseForm_48: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -231,7 +231,7 @@ const baseForm_48: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -287,7 +287,7 @@ const baseForm_48: FormData = { value: faker.number.float({ min: 1, max: 100, - precision: 2 + multipleOf: 2 }).toString(), }, "edit-osa-aikainen-henkilosto": { @@ -299,7 +299,7 @@ const baseForm_48: FormData = { value: faker.number.float({ min: 1, max: 100, - precision: 2 + multipleOf: 2 }).toString(), }, "edit-vapaaehtoinen-henkilosto": { diff --git a/e2e/utils/data/application/application_data_49.ts b/e2e/utils/data/application/application_data_49.ts index e6800b1b14..c37dde4c0b 100644 --- a/e2e/utils/data/application/application_data_49.ts +++ b/e2e/utils/data/application/application_data_49.ts @@ -205,7 +205,7 @@ const baseForm_49: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -257,7 +257,7 @@ const baseForm_49: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, diff --git a/e2e/utils/data/application/application_data_51.ts b/e2e/utils/data/application/application_data_51.ts index 4703024689..b8749458eb 100644 --- a/e2e/utils/data/application/application_data_51.ts +++ b/e2e/utils/data/application/application_data_51.ts @@ -146,7 +146,7 @@ const baseFormRegisteredCommunity_51: FormData = { // value: faker.number.float({ // min: 1000, // max: 10000, - // precision: 2 + // multipleOf: 2 // }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -198,7 +198,7 @@ const baseFormRegisteredCommunity_51: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -260,7 +260,7 @@ const baseFormRegisteredCommunity_51: FormData = { value: faker.number.float({ min: 100, max: 1000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -268,7 +268,7 @@ const baseFormRegisteredCommunity_51: FormData = { value: faker.number.float({ min: 100, max: 1000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, diff --git a/e2e/utils/data/application/application_data_52.ts b/e2e/utils/data/application/application_data_52.ts index 69bbba8703..40690b0066 100644 --- a/e2e/utils/data/application/application_data_52.ts +++ b/e2e/utils/data/application/application_data_52.ts @@ -140,7 +140,7 @@ const baseFormRegisteredCommunity_52: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -192,7 +192,7 @@ const baseFormRegisteredCommunity_52: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -363,7 +363,7 @@ const baseFormRegisteredCommunity_52: FormData = { value: faker.number.float({ min: 100, max: 1000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency }, diff --git a/e2e/utils/data/application/application_data_54.ts b/e2e/utils/data/application/application_data_54.ts index 7c3bbebc84..3265cc7497 100644 --- a/e2e/utils/data/application/application_data_54.ts +++ b/e2e/utils/data/application/application_data_54.ts @@ -159,7 +159,7 @@ const baseFormRegisteredCommunity_54: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -211,7 +211,7 @@ const baseFormRegisteredCommunity_54: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -292,7 +292,7 @@ const baseFormRegisteredCommunity_54: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -344,7 +344,7 @@ const baseFormRegisteredCommunity_54: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -411,7 +411,7 @@ const baseFormRegisteredCommunity_54: FormData = { value: faker.number.float({ min: 100, max: 1000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -419,7 +419,7 @@ const baseFormRegisteredCommunity_54: FormData = { value: faker.number.float({ min: 100, max: 1000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, diff --git a/e2e/utils/data/application/application_data_57.ts b/e2e/utils/data/application/application_data_57.ts index 8a2a6bed9b..968ef4df42 100644 --- a/e2e/utils/data/application/application_data_57.ts +++ b/e2e/utils/data/application/application_data_57.ts @@ -155,7 +155,7 @@ const baseFormRegisteredCommunity_57: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -207,7 +207,7 @@ const baseFormRegisteredCommunity_57: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -288,7 +288,7 @@ const baseFormRegisteredCommunity_57: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -340,7 +340,7 @@ const baseFormRegisteredCommunity_57: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, diff --git a/e2e/utils/data/application/application_data_60.ts b/e2e/utils/data/application/application_data_60.ts index d1ee776eb8..a5c02811d6 100644 --- a/e2e/utils/data/application/application_data_60.ts +++ b/e2e/utils/data/application/application_data_60.ts @@ -168,7 +168,7 @@ const baseFormRegisteredCommunity_60: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -220,7 +220,7 @@ const baseFormRegisteredCommunity_60: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, diff --git a/e2e/utils/data/application/application_data_61.ts b/e2e/utils/data/application/application_data_61.ts index fe5db8dc34..fb2b008534 100644 --- a/e2e/utils/data/application/application_data_61.ts +++ b/e2e/utils/data/application/application_data_61.ts @@ -138,7 +138,7 @@ const baseFormRegisteredCommunity_61: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -190,7 +190,7 @@ const baseFormRegisteredCommunity_61: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -256,7 +256,7 @@ const baseFormRegisteredCommunity_61: FormData = { value: faker.number.float({ min: 100, max: 1000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -264,7 +264,7 @@ const baseFormRegisteredCommunity_61: FormData = { value: faker.number.float({ min: 100, max: 1000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, diff --git a/e2e/utils/data/application/application_data_62.ts b/e2e/utils/data/application/application_data_62.ts index 03e9e0bdcd..ccf930a737 100644 --- a/e2e/utils/data/application/application_data_62.ts +++ b/e2e/utils/data/application/application_data_62.ts @@ -145,7 +145,7 @@ const baseFormRegisteredCommunity_62: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -197,7 +197,7 @@ const baseFormRegisteredCommunity_62: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -278,7 +278,7 @@ const baseFormRegisteredCommunity_62: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -330,7 +330,7 @@ const baseFormRegisteredCommunity_62: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, diff --git a/e2e/utils/data/application/application_data_63.ts b/e2e/utils/data/application/application_data_63.ts index b212784333..30f24eaa0c 100644 --- a/e2e/utils/data/application/application_data_63.ts +++ b/e2e/utils/data/application/application_data_63.ts @@ -145,7 +145,7 @@ const baseFormRegisteredCommunity_63: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -197,7 +197,7 @@ const baseFormRegisteredCommunity_63: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -278,7 +278,7 @@ const baseFormRegisteredCommunity_63: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -330,7 +330,7 @@ const baseFormRegisteredCommunity_63: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, diff --git a/e2e/utils/data/application/application_data_67.ts b/e2e/utils/data/application/application_data_67.ts index a27923986f..52675d8a4c 100644 --- a/e2e/utils/data/application/application_data_67.ts +++ b/e2e/utils/data/application/application_data_67.ts @@ -140,7 +140,7 @@ const baseFormRegisteredCommunity_67: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -192,7 +192,7 @@ const baseFormRegisteredCommunity_67: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -272,7 +272,7 @@ const baseFormRegisteredCommunity_67: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -324,7 +324,7 @@ const baseFormRegisteredCommunity_67: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, diff --git a/e2e/utils/data/application/application_data_68.ts b/e2e/utils/data/application/application_data_68.ts index 0e43e5ea77..7187075095 100644 --- a/e2e/utils/data/application/application_data_68.ts +++ b/e2e/utils/data/application/application_data_68.ts @@ -157,7 +157,7 @@ const baseFormRegisteredCommunity_68: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -209,7 +209,7 @@ const baseFormRegisteredCommunity_68: FormData = { value: faker.number.float({ min: 1000, max: 10000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -264,7 +264,7 @@ const baseFormRegisteredCommunity_68: FormData = { value: faker.number.float({ min: 100, max: 1000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, @@ -272,7 +272,7 @@ const baseFormRegisteredCommunity_68: FormData = { value: faker.number.float({ min: 100, max: 1000, - precision: 2 + multipleOf: 2 }).toString(), viewPageFormatter: viewPageFormatCurrency, }, From 3a4e8b25d5722152dcd374290f5c0aca6198c450 Mon Sep 17 00:00:00 2001 From: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Date: Wed, 6 Nov 2024 11:24:00 +0200 Subject: [PATCH 30/95] Update configuration (#1542) --- composer.lock | 72 +++++++++++++++++++++++++-------------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/composer.lock b/composer.lock index a953e63f0b..f03bc1bbcf 100644 --- a/composer.lock +++ b/composer.lock @@ -4384,17 +4384,17 @@ }, { "name": "drupal/entity_browser", - "version": "2.11.0", + "version": "2.12.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/entity_browser.git", - "reference": "8.x-2.11" + "reference": "8.x-2.12" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/entity_browser-8.x-2.11.zip", - "reference": "8.x-2.11", - "shasum": "4ead3d3f9f6365fbc25cfbd0edcc5e0a9cc52e02" + "url": "https://ftp.drupal.org/files/projects/entity_browser-8.x-2.12.zip", + "reference": "8.x-2.12", + "shasum": "eeafb55f02317c63b17d71913cb918e6341b7c0d" }, "require": { "drupal/core": "^10.2 || ^11" @@ -4416,8 +4416,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-2.11", - "datestamp": "1723378138", + "version": "8.x-2.12", + "datestamp": "1730631838", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4457,7 +4457,7 @@ "homepage": "https://www.drupal.org/user/471638" }, { - "name": "Primsi", + "name": "primsi", "homepage": "https://www.drupal.org/user/282629" }, { @@ -5489,16 +5489,16 @@ }, { "name": "drupal/hdbt", - "version": "6.7.22", + "version": "6.7.23", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-hdbt.git", - "reference": "2409e1caca4533d7d7ab8a504140190345ea56a1" + "reference": "c3eba8e806c2fc6746f0c79ff28a599ffc45963d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/2409e1caca4533d7d7ab8a504140190345ea56a1", - "reference": "2409e1caca4533d7d7ab8a504140190345ea56a1", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/c3eba8e806c2fc6746f0c79ff28a599ffc45963d", + "reference": "c3eba8e806c2fc6746f0c79ff28a599ffc45963d", "shasum": "" }, "require": { @@ -5517,10 +5517,10 @@ "Drupal" ], "support": { - "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.7.22", + "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.7.23", "issues": "https://github.com/City-of-Helsinki/drupal-hdbt/issues" }, - "time": "2024-10-30T13:44:31+00:00" + "time": "2024-10-31T14:57:06+00:00" }, { "name": "drupal/hdbt_admin", @@ -8277,17 +8277,17 @@ }, { "name": "drupal/raven", - "version": "6.0.10", + "version": "6.0.11", "source": { "type": "git", "url": "https://git.drupalcode.org/project/raven.git", - "reference": "6.0.10" + "reference": "6.0.11" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/raven-6.0.10.zip", - "reference": "6.0.10", - "shasum": "df0cce5b87bd76ce933d88afd91ebcd75741d329" + "url": "https://ftp.drupal.org/files/projects/raven-6.0.11.zip", + "reference": "6.0.11", + "shasum": "117934d82d34efde8a50247406fcf83d475a2be5" }, "require": { "drupal/core": "^10.2 || ^11", @@ -8301,8 +8301,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "6.0.10", - "datestamp": "1728022661", + "version": "6.0.11", + "datestamp": "1730515647", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -20888,16 +20888,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.4.1", + "version": "5.5.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c" + "reference": "54e10d44fc1a84e2598d26f70d4f6f1f233e228a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c", - "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/54e10d44fc1a84e2598d26f70d4f6f1f233e228a", + "reference": "54e10d44fc1a84e2598d26f70d4f6f1f233e228a", "shasum": "" }, "require": { @@ -20910,13 +20910,13 @@ "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": { @@ -20946,29 +20946,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.5.0" }, - "time": "2024-05-21T05:55:05+00:00" + "time": "2024-11-04T21:26:31+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.8.2", + "version": "1.9.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "153ae662783729388a584b4361f2545e4d841e3c" + "reference": "1fb5ba8d045f5dd984ebded5b1cc66f29459422d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c", - "reference": "153ae662783729388a584b4361f2545e4d841e3c", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/1fb5ba8d045f5dd984ebded5b1cc66f29459422d", + "reference": "1fb5ba8d045f5dd984ebded5b1cc66f29459422d", "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" }, "require-dev": { "ext-tokenizer": "*", @@ -21004,9 +21004,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.9.0" }, - "time": "2024-02-23T11:10:43+00:00" + "time": "2024-11-03T20:11:34+00:00" }, { "name": "phpspec/prophecy", From 8fab2638edaa3b63f7cd47ef8e1009374bb3196c Mon Sep 17 00:00:00 2001 From: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Date: Wed, 6 Nov 2024 11:47:38 +0200 Subject: [PATCH 31/95] Automatic update (#1549) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update configuration * Reverted filter changes. --------- Co-authored-by: Markus Kalijärvi --- composer.lock | 28 ++++++++++++++-------------- conf/cmi/raven.settings.yml | 8 ++++---- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/composer.lock b/composer.lock index f03bc1bbcf..67e22795f3 100644 --- a/composer.lock +++ b/composer.lock @@ -5618,16 +5618,16 @@ }, { "name": "drupal/helfi_api_base", - "version": "2.7.12", + "version": "2.7.13", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base.git", - "reference": "386c2ad76f28d11510272497bb016c7fa20b6462" + "reference": "b64e17819c3d21a8372c1325252f2cc294064d2d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-api-base/zipball/386c2ad76f28d11510272497bb016c7fa20b6462", - "reference": "386c2ad76f28d11510272497bb016c7fa20b6462", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-api-base/zipball/b64e17819c3d21a8372c1325252f2cc294064d2d", + "reference": "b64e17819c3d21a8372c1325252f2cc294064d2d", "shasum": "" }, "require": { @@ -5657,10 +5657,10 @@ ], "description": "Helfi - API Base", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/tree/2.7.12", + "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/tree/2.7.13", "issues": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/issues" }, - "time": "2024-10-28T09:35:07+00:00" + "time": "2024-11-06T09:24:38+00:00" }, { "name": "drupal/helfi_atv", @@ -15079,16 +15079,16 @@ }, { "name": "sentry/sentry", - "version": "4.9.0", + "version": "4.10.0", "source": { "type": "git", "url": "https://github.com/getsentry/sentry-php.git", - "reference": "788ec170f51ebb22f2809a1e3f78b19ccd39b70d" + "reference": "2af937d47d8aadb8dab0b1d7b9557e495dd12856" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/788ec170f51ebb22f2809a1e3f78b19ccd39b70d", - "reference": "788ec170f51ebb22f2809a1e3f78b19ccd39b70d", + "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/2af937d47d8aadb8dab0b1d7b9557e495dd12856", + "reference": "2af937d47d8aadb8dab0b1d7b9557e495dd12856", "shasum": "" }, "require": { @@ -15106,12 +15106,12 @@ }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.4", - "guzzlehttp/promises": "^1.0|^2.0", + "guzzlehttp/promises": "^2.0.3", "guzzlehttp/psr7": "^1.8.4|^2.1.1", "monolog/monolog": "^1.6|^2.0|^3.0", "phpbench/phpbench": "^1.0", "phpstan/phpstan": "^1.3", - "phpunit/phpunit": "^8.5.14|^9.4", + "phpunit/phpunit": "^8.5|^9.6", "symfony/phpunit-bridge": "^5.2|^6.0|^7.0", "vimeo/psalm": "^4.17" }, @@ -15152,7 +15152,7 @@ ], "support": { "issues": "https://github.com/getsentry/sentry-php/issues", - "source": "https://github.com/getsentry/sentry-php/tree/4.9.0" + "source": "https://github.com/getsentry/sentry-php/tree/4.10.0" }, "funding": [ { @@ -15164,7 +15164,7 @@ "type": "custom" } ], - "time": "2024-08-08T14:40:50+00:00" + "time": "2024-11-06T07:44:19+00:00" }, { "name": "stomp-php/stomp-php", diff --git a/conf/cmi/raven.settings.yml b/conf/cmi/raven.settings.yml index d5ad8ba29f..d2afac6392 100644 --- a/conf/cmi/raven.settings.yml +++ b/conf/cmi/raven.settings.yml @@ -4,10 +4,10 @@ client_key: '' environment: '' release: '' log_levels: - emergency: false - alert: false - critical: false - error: false + emergency: true + alert: true + critical: true + error: true warning: false notice: false info: false From 9d94891638ec984f937906b1aa24ac9a503e939d Mon Sep 17 00:00:00 2001 From: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Date: Thu, 7 Nov 2024 07:33:09 +0200 Subject: [PATCH 32/95] Update configuration (#1550) --- composer.lock | 108 ++++++++++----------- conf/cmi/filter.format.sidebar.yml | 10 +- conf/cmi/filter.format.webform_default.yml | 10 +- 3 files changed, 72 insertions(+), 56 deletions(-) diff --git a/composer.lock b/composer.lock index 67e22795f3..ab1685c1d9 100644 --- a/composer.lock +++ b/composer.lock @@ -5489,16 +5489,16 @@ }, { "name": "drupal/hdbt", - "version": "6.7.23", + "version": "6.8.0", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-hdbt.git", - "reference": "c3eba8e806c2fc6746f0c79ff28a599ffc45963d" + "reference": "e280113e8961216ae1db8314745801b6c40b323a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/c3eba8e806c2fc6746f0c79ff28a599ffc45963d", - "reference": "c3eba8e806c2fc6746f0c79ff28a599ffc45963d", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/e280113e8961216ae1db8314745801b6c40b323a", + "reference": "e280113e8961216ae1db8314745801b6c40b323a", "shasum": "" }, "require": { @@ -5517,10 +5517,10 @@ "Drupal" ], "support": { - "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.7.23", + "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.8.0", "issues": "https://github.com/City-of-Helsinki/drupal-hdbt/issues" }, - "time": "2024-10-31T14:57:06+00:00" + "time": "2024-11-06T13:21:52+00:00" }, { "name": "drupal/hdbt_admin", @@ -15241,16 +15241,16 @@ }, { "name": "symfony/console", - "version": "v6.4.13", + "version": "v6.4.14", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "f793dd5a7d9ae9923e35d0503d08ba734cec1d79" + "reference": "897c2441ed4eec8a8a2c37b943427d24dba3f26b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/f793dd5a7d9ae9923e35d0503d08ba734cec1d79", - "reference": "f793dd5a7d9ae9923e35d0503d08ba734cec1d79", + "url": "https://api.github.com/repos/symfony/console/zipball/897c2441ed4eec8a8a2c37b943427d24dba3f26b", + "reference": "897c2441ed4eec8a8a2c37b943427d24dba3f26b", "shasum": "" }, "require": { @@ -15315,7 +15315,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.13" + "source": "https://github.com/symfony/console/tree/v6.4.14" }, "funding": [ { @@ -15331,7 +15331,7 @@ "type": "tidelift" } ], - "time": "2024-10-09T08:40:40+00:00" + "time": "2024-11-05T15:34:40+00:00" }, { "name": "symfony/dependency-injection", @@ -15483,16 +15483,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.4.13", + "version": "v6.4.14", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "e3c78742f86a5b65fe2ac4c4b6b776d92fd7ca0c" + "reference": "9e024324511eeb00983ee76b9aedc3e6ecd993d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/e3c78742f86a5b65fe2ac4c4b6b776d92fd7ca0c", - "reference": "e3c78742f86a5b65fe2ac4c4b6b776d92fd7ca0c", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/9e024324511eeb00983ee76b9aedc3e6ecd993d9", + "reference": "9e024324511eeb00983ee76b9aedc3e6ecd993d9", "shasum": "" }, "require": { @@ -15538,7 +15538,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.13" + "source": "https://github.com/symfony/error-handler/tree/v6.4.14" }, "funding": [ { @@ -15554,7 +15554,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2024-11-05T15:34:40+00:00" }, { "name": "symfony/event-dispatcher", @@ -15844,16 +15844,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.4.13", + "version": "v6.4.14", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "4c0341b3e0a7291e752c69d2a1ed9a84b68d604c" + "reference": "ba020a321a95519303a3f09ec2824d34d601c388" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/4c0341b3e0a7291e752c69d2a1ed9a84b68d604c", - "reference": "4c0341b3e0a7291e752c69d2a1ed9a84b68d604c", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ba020a321a95519303a3f09ec2824d34d601c388", + "reference": "ba020a321a95519303a3f09ec2824d34d601c388", "shasum": "" }, "require": { @@ -15901,7 +15901,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.13" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.14" }, "funding": [ { @@ -15917,20 +15917,20 @@ "type": "tidelift" } ], - "time": "2024-10-11T19:20:58+00:00" + "time": "2024-11-05T16:39:55+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.13", + "version": "v6.4.14", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "4474015c363ec0cd3bf47d55657e68630dbae66e" + "reference": "8278a947d0369754a47b758a9e17b72cab970951" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/4474015c363ec0cd3bf47d55657e68630dbae66e", - "reference": "4474015c363ec0cd3bf47d55657e68630dbae66e", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/8278a947d0369754a47b758a9e17b72cab970951", + "reference": "8278a947d0369754a47b758a9e17b72cab970951", "shasum": "" }, "require": { @@ -16015,7 +16015,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.13" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.14" }, "funding": [ { @@ -16031,7 +16031,7 @@ "type": "tidelift" } ], - "time": "2024-10-27T13:00:29+00:00" + "time": "2024-11-06T09:45:21+00:00" }, { "name": "symfony/mailer", @@ -17124,16 +17124,16 @@ }, { "name": "symfony/process", - "version": "v6.4.13", + "version": "v6.4.14", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "1f9f59b46880201629df3bd950fc5ae8c55b960f" + "reference": "25214adbb0996d18112548de20c281be9f27279f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/1f9f59b46880201629df3bd950fc5ae8c55b960f", - "reference": "1f9f59b46880201629df3bd950fc5ae8c55b960f", + "url": "https://api.github.com/repos/symfony/process/zipball/25214adbb0996d18112548de20c281be9f27279f", + "reference": "25214adbb0996d18112548de20c281be9f27279f", "shasum": "" }, "require": { @@ -17165,7 +17165,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.13" + "source": "https://github.com/symfony/process/tree/v6.4.14" }, "funding": [ { @@ -17181,7 +17181,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2024-11-06T09:25:01+00:00" }, { "name": "symfony/psr-http-message-bridge", @@ -17791,16 +17791,16 @@ }, { "name": "symfony/validator", - "version": "v6.4.13", + "version": "v6.4.14", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "68e0bf4522756269d9bff801a16701b2ed5eb730" + "reference": "dc259b85e59a6569e205966d447dec0a7d95facf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/68e0bf4522756269d9bff801a16701b2ed5eb730", - "reference": "68e0bf4522756269d9bff801a16701b2ed5eb730", + "url": "https://api.github.com/repos/symfony/validator/zipball/dc259b85e59a6569e205966d447dec0a7d95facf", + "reference": "dc259b85e59a6569e205966d447dec0a7d95facf", "shasum": "" }, "require": { @@ -17868,7 +17868,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.4.13" + "source": "https://github.com/symfony/validator/tree/v6.4.14" }, "funding": [ { @@ -17884,20 +17884,20 @@ "type": "tidelift" } ], - "time": "2024-10-25T15:07:50+00:00" + "time": "2024-11-04T11:33:53+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.13", + "version": "v6.4.14", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "2acb151474ed8cb43624e3f41a0bf7c4c8ce4f41" + "reference": "93c09246038178717a9c14b809ea8151ffcf7091" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2acb151474ed8cb43624e3f41a0bf7c4c8ce4f41", - "reference": "2acb151474ed8cb43624e3f41a0bf7c4c8ce4f41", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/93c09246038178717a9c14b809ea8151ffcf7091", + "reference": "93c09246038178717a9c14b809ea8151ffcf7091", "shasum": "" }, "require": { @@ -17953,7 +17953,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.13" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.14" }, "funding": [ { @@ -17969,7 +17969,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2024-11-05T15:34:40+00:00" }, { "name": "symfony/var-exporter", @@ -20888,16 +20888,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.5.0", + "version": "5.5.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "54e10d44fc1a84e2598d26f70d4f6f1f233e228a" + "reference": "0c70d2c566e899666f367ab7b80986beb3581e6f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/54e10d44fc1a84e2598d26f70d4f6f1f233e228a", - "reference": "54e10d44fc1a84e2598d26f70d4f6f1f233e228a", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/0c70d2c566e899666f367ab7b80986beb3581e6f", + "reference": "0c70d2c566e899666f367ab7b80986beb3581e6f", "shasum": "" }, "require": { @@ -20946,9 +20946,9 @@ "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.5.0" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.5.1" }, - "time": "2024-11-04T21:26:31+00:00" + "time": "2024-11-06T11:58:54+00:00" }, { "name": "phpdocumentor/type-resolver", diff --git a/conf/cmi/filter.format.sidebar.yml b/conf/cmi/filter.format.sidebar.yml index 856a0de794..4c71b5ef49 100644 --- a/conf/cmi/filter.format.sidebar.yml +++ b/conf/cmi/filter.format.sidebar.yml @@ -1,7 +1,9 @@ uuid: 08dc13c1-c3be-4f15-abde-e23e88f4e4c5 langcode: en status: true -dependencies: { } +dependencies: + module: + - helfi_api_base name: Sidebar format: sidebar weight: 0 @@ -27,3 +29,9 @@ filters: status: true weight: 10 settings: { } + helfi_link_converter: + id: helfi_link_converter + provider: helfi_api_base + status: true + weight: -10 + settings: { } diff --git a/conf/cmi/filter.format.webform_default.yml b/conf/cmi/filter.format.webform_default.yml index d25ded5cc6..c5de45d1c3 100644 --- a/conf/cmi/filter.format.webform_default.yml +++ b/conf/cmi/filter.format.webform_default.yml @@ -2,10 +2,18 @@ uuid: 4ab1e9e9-3892-4151-8349-a3671950f4cc langcode: en status: true dependencies: + module: + - helfi_api_base enforced: module: - webform name: 'Webform (Default) - DO NOT EDIT' format: webform_default weight: 100 -filters: { } +filters: + helfi_link_converter: + id: helfi_link_converter + provider: helfi_api_base + status: true + weight: -10 + settings: { } From a847f40f7a4a41cbc2d3bc0ea9f7b60b03c66e3c Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Thu, 7 Nov 2024 13:30:29 +0200 Subject: [PATCH 33/95] fix: UHF-10656: Fix incorrectly copied transaltions (#1552) --- conf/cmi/language/en/webform.webform.nuortoimpalkka.yml | 2 +- conf/cmi/language/sv/webform.webform.nuortoimpalkka.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/cmi/language/en/webform.webform.nuortoimpalkka.yml b/conf/cmi/language/en/webform.webform.nuortoimpalkka.yml index 5e9b484e19..a2275448d1 100644 --- a/conf/cmi/language/en/webform.webform.nuortoimpalkka.yml +++ b/conf/cmi/language/en/webform.webform.nuortoimpalkka.yml @@ -87,7 +87,7 @@ elements: | '#title': 'Grant issuer' issuer_name: '#title': 'Issuer''s name' - '#help': '

Indicate here only the grants received from somewhere other than the City of Helsinki in the current and two previous tax years.

' + '#help': '

Which body has granted the grant (e.g. name of the ministry).

' year: '#title': Year '#pattern_error': 'Only numbers' diff --git a/conf/cmi/language/sv/webform.webform.nuortoimpalkka.yml b/conf/cmi/language/sv/webform.webform.nuortoimpalkka.yml index 25f5ca260a..67e710adc4 100644 --- a/conf/cmi/language/sv/webform.webform.nuortoimpalkka.yml +++ b/conf/cmi/language/sv/webform.webform.nuortoimpalkka.yml @@ -90,7 +90,7 @@ elements: | '#title': Bidragsgivare issuer_name: '#title': 'Emittentens namn' - '#help': '

Ange här endast de understöd som beviljats från annanstans än Helsingfors stad under det innevarande beskattningsåret eller de föregående två beskattningsåren.

' + '#help': '

Vilket organ har beviljat bidraget (t.ex. namnet på departementet).

' year: '#title': År '#pattern_error': 'Bara siffror' From fe944be3b0950fd41dc7fcd67b9e0318ad54f625 Mon Sep 17 00:00:00 2001 From: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Date: Fri, 8 Nov 2024 07:11:29 +0200 Subject: [PATCH 34/95] Update configuration (#1551) --- composer.lock | 94 +++++++++---------- ...e_video.field_remote_video_video_title.yml | 4 +- 2 files changed, 49 insertions(+), 49 deletions(-) diff --git a/composer.lock b/composer.lock index ab1685c1d9..cb21c69f62 100644 --- a/composer.lock +++ b/composer.lock @@ -3116,16 +3116,16 @@ }, { "name": "drupal/core", - "version": "10.3.6", + "version": "10.3.7", "source": { "type": "git", "url": "https://github.com/drupal/core.git", - "reference": "168ec99f2012aeb4e93c6c7dd4a90dc919ae96c6" + "reference": "5b11ec4e38e71748c51287cbd64cfcc43faeb624" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core/zipball/168ec99f2012aeb4e93c6c7dd4a90dc919ae96c6", - "reference": "168ec99f2012aeb4e93c6c7dd4a90dc919ae96c6", + "url": "https://api.github.com/repos/drupal/core/zipball/5b11ec4e38e71748c51287cbd64cfcc43faeb624", + "reference": "5b11ec4e38e71748c51287cbd64cfcc43faeb624", "shasum": "" }, "require": { @@ -3274,13 +3274,13 @@ ], "description": "Drupal is an open source content management platform powering millions of websites and applications.", "support": { - "source": "https://github.com/drupal/core/tree/10.3.6" + "source": "https://github.com/drupal/core/tree/10.3.7" }, - "time": "2024-10-03T08:58:13+00:00" + "time": "2024-11-07T08:22:50+00:00" }, { "name": "drupal/core-composer-scaffold", - "version": "10.3.6", + "version": "10.3.7", "source": { "type": "git", "url": "https://github.com/drupal/core-composer-scaffold.git", @@ -3324,7 +3324,7 @@ "drupal" ], "support": { - "source": "https://github.com/drupal/core-composer-scaffold/tree/10.3.6" + "source": "https://github.com/drupal/core-composer-scaffold/tree/10.3.7" }, "time": "2024-08-22T14:31:34+00:00" }, @@ -5489,16 +5489,16 @@ }, { "name": "drupal/hdbt", - "version": "6.8.0", + "version": "6.8.1", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-hdbt.git", - "reference": "e280113e8961216ae1db8314745801b6c40b323a" + "reference": "02ce20fa1e68c272f12965f8cdbd00d6b41a3837" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/e280113e8961216ae1db8314745801b6c40b323a", - "reference": "e280113e8961216ae1db8314745801b6c40b323a", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/02ce20fa1e68c272f12965f8cdbd00d6b41a3837", + "reference": "02ce20fa1e68c272f12965f8cdbd00d6b41a3837", "shasum": "" }, "require": { @@ -5517,10 +5517,10 @@ "Drupal" ], "support": { - "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.8.0", + "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.8.1", "issues": "https://github.com/City-of-Helsinki/drupal-hdbt/issues" }, - "time": "2024-11-06T13:21:52+00:00" + "time": "2024-11-07T13:57:22+00:00" }, { "name": "drupal/hdbt_admin", @@ -5618,16 +5618,16 @@ }, { "name": "drupal/helfi_api_base", - "version": "2.7.13", + "version": "2.7.14", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base.git", - "reference": "b64e17819c3d21a8372c1325252f2cc294064d2d" + "reference": "d149db10862c62980427c0ad124d0e54c7b97902" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-api-base/zipball/b64e17819c3d21a8372c1325252f2cc294064d2d", - "reference": "b64e17819c3d21a8372c1325252f2cc294064d2d", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-api-base/zipball/d149db10862c62980427c0ad124d0e54c7b97902", + "reference": "d149db10862c62980427c0ad124d0e54c7b97902", "shasum": "" }, "require": { @@ -5657,10 +5657,10 @@ ], "description": "Helfi - API Base", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/tree/2.7.13", + "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/tree/2.7.14", "issues": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/issues" }, - "time": "2024-11-06T09:24:38+00:00" + "time": "2024-11-07T10:23:06+00:00" }, { "name": "drupal/helfi_atv", @@ -5931,16 +5931,16 @@ }, { "name": "drupal/helfi_platform_config", - "version": "4.6.23", + "version": "4.6.24", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config.git", - "reference": "fda61dc90882c4799f35cb7d6039987cff4883a4" + "reference": "07fd66ba2f3cb452db84940dc1d254b8466a75bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/fda61dc90882c4799f35cb7d6039987cff4883a4", - "reference": "fda61dc90882c4799f35cb7d6039987cff4883a4", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/07fd66ba2f3cb452db84940dc1d254b8466a75bd", + "reference": "07fd66ba2f3cb452db84940dc1d254b8466a75bd", "shasum": "" }, "require": { @@ -6059,10 +6059,10 @@ ], "description": "HELfi platform config", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.6.23", + "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.6.24", "issues": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/issues" }, - "time": "2024-10-31T11:33:34+00:00" + "time": "2024-11-07T13:57:38+00:00" }, { "name": "drupal/helfi_proxy", @@ -6111,16 +6111,16 @@ }, { "name": "drupal/helfi_tpr", - "version": "2.3.8", + "version": "2.3.9", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-module-helfi-tpr.git", - "reference": "b64f239e7b8379cbc97dfc28d35e8c3f2db80162" + "reference": "6cca3df5dc891c98ae40e8259856a343d9abd8ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-tpr/zipball/b64f239e7b8379cbc97dfc28d35e8c3f2db80162", - "reference": "b64f239e7b8379cbc97dfc28d35e8c3f2db80162", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-tpr/zipball/6cca3df5dc891c98ae40e8259856a343d9abd8ca", + "reference": "6cca3df5dc891c98ae40e8259856a343d9abd8ca", "shasum": "" }, "require": { @@ -6146,10 +6146,10 @@ ], "description": "TPR integration", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-tpr/tree/2.3.8", + "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-tpr/tree/2.3.9", "issues": "https://github.com/City-of-Helsinki/drupal-module-helfi-tpr/issues" }, - "time": "2024-03-25T06:40:36+00:00" + "time": "2024-11-07T13:09:51+00:00" }, { "name": "drupal/helfi_tunnistamo", @@ -6269,20 +6269,20 @@ }, { "name": "drupal/image_style_quality", - "version": "1.6.0", + "version": "1.7.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/image_style_quality.git", - "reference": "8.x-1.6" + "reference": "8.x-1.7" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/image_style_quality-8.x-1.6.zip", - "reference": "8.x-1.6", - "shasum": "262f63471c3765eb7c944476f18b27fb82bdeaa1" + "url": "https://ftp.drupal.org/files/projects/image_style_quality-8.x-1.7.zip", + "reference": "8.x-1.7", + "shasum": "3cb3d326e3df3b78cadc91bae1fd9de17dd27bc7" }, "require": { - "drupal/core": "^8 || ^9 || ^10", + "drupal/core": "^8 || ^9 || ^10 || ^11", "php": ">=7.4" }, "require-dev": { @@ -6296,8 +6296,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.6", - "datestamp": "1679497333", + "version": "8.x-1.7", + "datestamp": "1730925822", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -6318,7 +6318,7 @@ "homepage": "https://www.drupal.org/user/1463982" }, { - "name": "Sam152", + "name": "sam152", "homepage": "https://www.drupal.org/user/1485048" } ], @@ -18220,16 +18220,16 @@ }, { "name": "twig/twig", - "version": "v3.14.0", + "version": "v3.14.2", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "126b2c97818dbff0cdf3fbfc881aedb3d40aae72" + "reference": "0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/126b2c97818dbff0cdf3fbfc881aedb3d40aae72", - "reference": "126b2c97818dbff0cdf3fbfc881aedb3d40aae72", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a", + "reference": "0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a", "shasum": "" }, "require": { @@ -18283,7 +18283,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.14.2" }, "funding": [ { @@ -18295,7 +18295,7 @@ "type": "tidelift" } ], - "time": "2024-09-09T17:55:12+00:00" + "time": "2024-11-07T12:36:22+00:00" }, { "name": "twistor/flysystem-stream-wrapper", diff --git a/conf/cmi/field.field.paragraph.remote_video.field_remote_video_video_title.yml b/conf/cmi/field.field.paragraph.remote_video.field_remote_video_video_title.yml index e677c2fdeb..a875bf217d 100644 --- a/conf/cmi/field.field.paragraph.remote_video.field_remote_video_video_title.yml +++ b/conf/cmi/field.field.paragraph.remote_video.field_remote_video_video_title.yml @@ -6,14 +6,14 @@ dependencies: - field.storage.paragraph.field_remote_video_video_title - paragraphs.paragraphs_type.remote_video _core: - default_config_hash: wDlJqGu3PbMmNtmqsuYHGbmIklPbceZDVZ17ENs2vAg + default_config_hash: OetItkfP7vdKFfRMKUkRAiIavZrk78vEeZ0lYtv3kU8 id: paragraph.remote_video.field_remote_video_video_title field_name: field_remote_video_video_title entity_type: paragraph bundle: remote_video label: 'Title of the video' description: '' -required: false +required: true translatable: false default_value: { } default_value_callback: '' From 6e7b63f24e39b66ccafa0a689784d8c341d83ce1 Mon Sep 17 00:00:00 2001 From: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Date: Mon, 11 Nov 2024 06:57:15 +0200 Subject: [PATCH 35/95] Update configuration (#1554) --- composer.lock | 1430 +++++++++++++++------------------ conf/cmi/metatag.settings.yml | 1 + 2 files changed, 627 insertions(+), 804 deletions(-) diff --git a/composer.lock b/composer.lock index cb21c69f62..b78c76db2e 100644 --- a/composer.lock +++ b/composer.lock @@ -4170,38 +4170,43 @@ }, { "name": "drupal/elasticsearch_connector", - "version": "7.0.0-alpha5", + "version": "8.0.0-alpha2", "source": { "type": "git", "url": "https://git.drupalcode.org/project/elasticsearch_connector.git", - "reference": "8.x-7.0-alpha5" + "reference": "8.0.0-alpha2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/elasticsearch_connector-8.x-7.0-alpha5.zip", - "reference": "8.x-7.0-alpha5", - "shasum": "75456c31f48d76b176d81f258aa589987cd16b87" + "url": "https://ftp.drupal.org/files/projects/elasticsearch_connector-8.0.0-alpha2.zip", + "reference": "8.0.0-alpha2", + "shasum": "35928100f913b7a1d57a362b528071034f2ae1ff" }, "require": { - "drupal/core": "^9.2 || ^10", - "ext-curl": "*", - "makinacorpus/php-lucene": "^1.0.2", - "nodespark/des-connector": "7.x-dev" + "drupal/core": "^9 || ^10 | ^11", + "drupal/search_api": "^1.23", + "elasticsearch/elasticsearch": "^8", + "makinacorpus/php-lucene": "^1.1", + "php": "^8" }, "require-dev": { - "behat/mink-selenium2-driver": "^1.3", - "bex/behat-screenshot": "^1.2", - "drupal/coder": "^8.2", - "drupal/drupal-extension": "master-dev", - "drupal/search_api": "^1.4", - "phpmd/phpmd": "^2.6", - "phpmetrics/phpmetrics": "^2.3" + "drupal/coder": "^8.3", + "drupal/devel": "^4.0|^5.0", + "drupal/geofield": "1.x-dev", + "drush/drush": "^12.0 || ^13", + "phayes/geophp": "^1.2" + }, + "suggest": { + "drupal/facets": "Provides facetted search.", + "drupal/search_api_autocomplete": "Provides auto complete for search boxes.", + "drupal/search_api_location": "Provides location searches.", + "drupal/search_api_spellcheck": "Provides spell checking and 'Did You Mean?'." }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-7.0-alpha5", - "datestamp": "1718962853", + "version": "8.0.0-alpha2", + "datestamp": "1722668348", "security-coverage": { "status": "not-covered", "message": "Project has not opted into security advisory coverage!" @@ -4210,18 +4215,16 @@ }, "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "GPL-2.0+" + "GPL-2.0-or-later" ], "authors": [ { - "name": "Nikolay Ignatov", - "homepage": "http://www.nodespark.com", - "email": "nignatov@nodespark.com", - "role": "Creator and Maintainer" + "name": "lachezar.valchev", + "homepage": "https://www.drupal.org/user/1482368" }, { - "name": "See other contributors", - "homepage": "https://www.drupal.org/node/2159059/committers" + "name": "mparker17", + "homepage": "https://www.drupal.org/user/536298" }, { "name": "skek", @@ -4236,11 +4239,10 @@ "homepage": "https://www.drupal.org/user/257311" } ], - "description": "Elasticsearch Connector module for Drupal.", + "description": "Provides an ElasticSearch backend for Search API.", "homepage": "https://www.drupal.org/project/elasticsearch_connector", "support": { - "source": "https://github.com/nodespark/elasticsearch_connector", - "issues": "https://www.drupal.org/project/issues/elasticsearch_connector" + "source": "https://git.drupalcode.org/project/elasticsearch_connector" } }, { @@ -5489,16 +5491,16 @@ }, { "name": "drupal/hdbt", - "version": "6.8.1", + "version": "6.8.4", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-hdbt.git", - "reference": "02ce20fa1e68c272f12965f8cdbd00d6b41a3837" + "reference": "dfabf9a5cdc0953ea7e3078ed002fe4bc937abad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/02ce20fa1e68c272f12965f8cdbd00d6b41a3837", - "reference": "02ce20fa1e68c272f12965f8cdbd00d6b41a3837", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/dfabf9a5cdc0953ea7e3078ed002fe4bc937abad", + "reference": "dfabf9a5cdc0953ea7e3078ed002fe4bc937abad", "shasum": "" }, "require": { @@ -5517,10 +5519,10 @@ "Drupal" ], "support": { - "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.8.1", + "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.8.4", "issues": "https://github.com/City-of-Helsinki/drupal-hdbt/issues" }, - "time": "2024-11-07T13:57:22+00:00" + "time": "2024-11-08T17:53:14+00:00" }, { "name": "drupal/hdbt_admin", @@ -5618,16 +5620,16 @@ }, { "name": "drupal/helfi_api_base", - "version": "2.7.14", + "version": "2.7.15", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base.git", - "reference": "d149db10862c62980427c0ad124d0e54c7b97902" + "reference": "bfada1ee33120497e8dde6dbde201320f41e2dfc" }, "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/bfada1ee33120497e8dde6dbde201320f41e2dfc", + "reference": "bfada1ee33120497e8dde6dbde201320f41e2dfc", "shasum": "" }, "require": { @@ -5657,10 +5659,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.15", "issues": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/issues" }, - "time": "2024-11-07T10:23:06+00:00" + "time": "2024-11-08T08:31:53+00:00" }, { "name": "drupal/helfi_atv", @@ -5931,16 +5933,16 @@ }, { "name": "drupal/helfi_platform_config", - "version": "4.6.24", + "version": "4.7.0", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config.git", - "reference": "07fd66ba2f3cb452db84940dc1d254b8466a75bd" + "reference": "1706882d4ccbeacf33175a30157a9495f891af39" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/07fd66ba2f3cb452db84940dc1d254b8466a75bd", - "reference": "07fd66ba2f3cb452db84940dc1d254b8466a75bd", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/1706882d4ccbeacf33175a30157a9495f891af39", + "reference": "1706882d4ccbeacf33175a30157a9495f891af39", "shasum": "" }, "require": { @@ -5958,7 +5960,7 @@ "drupal/diff": "^1.0", "drupal/easy_breadcrumb": "^2.0", "drupal/editoria11y": "^2.0", - "drupal/elasticsearch_connector": "^7.0@alpha", + "drupal/elasticsearch_connector": "^8.0@alpha", "drupal/entity_browser": "^2.5", "drupal/entity_usage": "^2.0@beta", "drupal/eu_cookie_compliance": "1.24", @@ -6005,7 +6007,8 @@ "drupal/views_bulk_operations": "^4.1", "ext-curl": "*", "league/uri": "^6.0", - "php": "^8.1" + "php": "^8.1", + "ruflin/elastica": "^8.0" }, "conflict": { "drupal/core": "<10.3", @@ -6017,6 +6020,9 @@ "drupal/stage_file_proxy": "<2.1.5", "drush/drush": "<12" }, + "require-dev": { + "dg/bypass-finals": "^1.0" + }, "type": "drupal-module", "extra": { "patches": { @@ -6059,10 +6065,10 @@ ], "description": "HELfi platform config", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.6.24", + "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.7.0", "issues": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/issues" }, - "time": "2024-11-07T13:57:38+00:00" + "time": "2024-11-08T08:46:24+00:00" }, { "name": "drupal/helfi_proxy", @@ -7357,17 +7363,17 @@ }, { "name": "drupal/metatag", - "version": "2.0.2", + "version": "2.1.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/metatag.git", - "reference": "2.0.2" + "reference": "2.1.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/metatag-2.0.2.zip", - "reference": "2.0.2", - "shasum": "748013c50a0ed5e10359413bb3481392a0bf0d3f" + "url": "https://ftp.drupal.org/files/projects/metatag-2.1.0.zip", + "reference": "2.1.0", + "shasum": "c28fe2fdac68a9370a6af6cbafff4425dd5148f3" }, "require": { "drupal/core": "^9.4 || ^10 || ^11", @@ -7375,6 +7381,7 @@ "php": ">=8.0" }, "require-dev": { + "drupal/forum": "*", "drupal/hal": "^1 || ^2 || ^9", "drupal/metatag_dc": "*", "drupal/metatag_open_graph": "*", @@ -7386,8 +7393,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.2", - "datestamp": "1722869772", + "version": "2.1.0", + "datestamp": "1731004042", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -10053,17 +10060,17 @@ }, { "name": "drupal/views_bulk_operations", - "version": "4.3.1", + "version": "4.3.2", "source": { "type": "git", "url": "https://git.drupalcode.org/project/views_bulk_operations.git", - "reference": "4.3.1" + "reference": "4.3.2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/views_bulk_operations-4.3.1.zip", - "reference": "4.3.1", - "shasum": "1089fe41ddb01313f34d55e19e8f3a5157889430" + "url": "https://ftp.drupal.org/files/projects/views_bulk_operations-4.3.2.zip", + "reference": "4.3.2", + "shasum": "b3d0ee06abb15520595b83324e93c5500d5dcef3" }, "require": { "drupal/core": "^10.3 || ^11" @@ -10080,8 +10087,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "4.3.1", - "datestamp": "1729683242", + "version": "4.3.2", + "datestamp": "1731070018", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -10810,181 +10817,120 @@ "time": "2023-10-06T06:47:41+00:00" }, { - "name": "elasticsearch/elasticsearch", - "version": "v7.17.2", - "source": { - "type": "git", - "url": "https://github.com/elastic/elasticsearch-php.git", - "reference": "2d302233f2bb0926812d82823bb820d405e130fc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/elastic/elasticsearch-php/zipball/2d302233f2bb0926812d82823bb820d405e130fc", - "reference": "2d302233f2bb0926812d82823bb820d405e130fc", - "shasum": "" - }, - "require": { - "ext-json": ">=1.3.7", - "ezimuel/ringphp": "^1.1.2", - "php": "^7.3 || ^8.0", - "psr/log": "^1|^2|^3" - }, - "require-dev": { - "ext-yaml": "*", - "ext-zip": "*", - "mockery/mockery": "^1.2", - "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^9.3", - "squizlabs/php_codesniffer": "^3.4", - "symfony/finder": "~4.0" - }, - "suggest": { - "ext-curl": "*", - "monolog/monolog": "Allows for client-level logging and tracing" - }, - "type": "library", - "autoload": { - "files": [ - "src/autoload.php" - ], - "psr-4": { - "Elasticsearch\\": "src/Elasticsearch/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0", - "LGPL-2.1-only" - ], - "authors": [ - { - "name": "Zachary Tong" - }, - { - "name": "Enrico Zimuel" - } - ], - "description": "PHP Client for Elasticsearch", - "keywords": [ - "client", - "elasticsearch", - "search" - ], - "support": { - "issues": "https://github.com/elastic/elasticsearch-php/issues", - "source": "https://github.com/elastic/elasticsearch-php/tree/v7.17.2" - }, - "time": "2023-04-21T15:31:12+00:00" - }, - { - "name": "ezimuel/guzzlestreams", - "version": "3.1.0", + "name": "elastic/transport", + "version": "v8.10.0", "source": { "type": "git", - "url": "https://github.com/ezimuel/guzzlestreams.git", - "reference": "b4b5a025dfee70d6cd34c780e07330eb93d5b997" + "url": "https://github.com/elastic/elastic-transport-php.git", + "reference": "8be37d679637545e50b1cea9f8ee903888783021" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ezimuel/guzzlestreams/zipball/b4b5a025dfee70d6cd34c780e07330eb93d5b997", - "reference": "b4b5a025dfee70d6cd34c780e07330eb93d5b997", + "url": "https://api.github.com/repos/elastic/elastic-transport-php/zipball/8be37d679637545e50b1cea9f8ee903888783021", + "reference": "8be37d679637545e50b1cea9f8ee903888783021", "shasum": "" }, "require": { - "php": ">=5.4.0" + "composer-runtime-api": "^2.0", + "open-telemetry/api": "^1.0", + "php": "^7.4 || ^8.0", + "php-http/discovery": "^1.14", + "php-http/httplug": "^2.3", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0 || ^2.0", + "psr/log": "^1 || ^2 || ^3" }, "require-dev": { - "phpunit/phpunit": "~9.0" + "nyholm/psr7": "^1.5", + "open-telemetry/sdk": "^1.0", + "php-http/mock-client": "^1.5", + "phpstan/phpstan": "^1.4", + "phpunit/phpunit": "^9.5", + "symfony/http-client": "^5.4" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, "autoload": { "psr-4": { - "GuzzleHttp\\Stream\\": "src/" + "Elastic\\Transport\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "Fork of guzzle/streams (abandoned) to be used with elasticsearch-php", - "homepage": "http://guzzlephp.org/", + "description": "HTTP transport PHP library for Elastic products", "keywords": [ - "Guzzle", - "stream" + "PSR_17", + "elastic", + "http", + "psr-18", + "psr-7", + "transport" ], "support": { - "source": "https://github.com/ezimuel/guzzlestreams/tree/3.1.0" + "issues": "https://github.com/elastic/elastic-transport-php/issues", + "source": "https://github.com/elastic/elastic-transport-php/tree/v8.10.0" }, - "time": "2022-10-24T12:58:50+00:00" + "time": "2024-08-14T08:55:07+00:00" }, { - "name": "ezimuel/ringphp", - "version": "1.2.2", + "name": "elasticsearch/elasticsearch", + "version": "v8.15.0", "source": { "type": "git", - "url": "https://github.com/ezimuel/ringphp.git", - "reference": "7887fc8488013065f72f977dcb281994f5fde9f4" + "url": "https://github.com/elastic/elasticsearch-php.git", + "reference": "34c2444fa8d4c3e6c8b009bd8dea90bca007203b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ezimuel/ringphp/zipball/7887fc8488013065f72f977dcb281994f5fde9f4", - "reference": "7887fc8488013065f72f977dcb281994f5fde9f4", + "url": "https://api.github.com/repos/elastic/elasticsearch-php/zipball/34c2444fa8d4c3e6c8b009bd8dea90bca007203b", + "reference": "34c2444fa8d4c3e6c8b009bd8dea90bca007203b", "shasum": "" }, "require": { - "ezimuel/guzzlestreams": "^3.0.1", - "php": ">=5.4.0", - "react/promise": "~2.0" - }, - "replace": { - "guzzlehttp/ringphp": "self.version" + "elastic/transport": "^8.10", + "guzzlehttp/guzzle": "^7.0", + "php": "^7.4 || ^8.0", + "psr/http-client": "^1.0", + "psr/http-message": "^1.1 || ^2.0", + "psr/log": "^1|^2|^3" }, "require-dev": { - "ext-curl": "*", - "phpunit/phpunit": "~9.0" - }, - "suggest": { - "ext-curl": "Guzzle will use specific adapters if cURL is present" + "ext-yaml": "*", + "ext-zip": "*", + "mockery/mockery": "^1.5", + "nyholm/psr7": "^1.5", + "php-http/message-factory": "^1.0", + "php-http/mock-client": "^1.5", + "phpstan/phpstan": "^1.4", + "phpunit/phpunit": "^9.5", + "psr/http-factory": "^1.0", + "symfony/finder": "~4.0", + "symfony/http-client": "^5.0|^6.0|^7.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, "autoload": { "psr-4": { - "GuzzleHttp\\Ring\\": "src/" + "Elastic\\Elasticsearch\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } + "description": "PHP Client for Elasticsearch", + "keywords": [ + "client", + "elastic", + "elasticsearch", + "search" ], - "description": "Fork of guzzle/RingPHP (abandoned) to be used with elasticsearch-php", "support": { - "source": "https://github.com/ezimuel/ringphp/tree/1.2.2" + "issues": "https://github.com/elastic/elasticsearch-php/issues", + "source": "https://github.com/elastic/elasticsearch-php/tree/v8.15.0" }, - "time": "2022-12-07T11:28:53+00:00" + "time": "2024-08-14T14:32:50+00:00" }, { "name": "ezyang/htmlpurifier", @@ -13033,62 +12979,6 @@ }, "time": "2024-10-08T18:51:32+00:00" }, - { - "name": "nodespark/des-connector", - "version": "7.x-dev", - "source": { - "type": "git", - "url": "https://github.com/tuutti/des-connector.git", - "reference": "a075a6b9e54b5855d0a292d9266839312e6026dc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/tuutti/des-connector/zipball/a075a6b9e54b5855d0a292d9266839312e6026dc", - "reference": "a075a6b9e54b5855d0a292d9266839312e6026dc", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0", - "ruflin/elastica": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^8.4.1 || ^9" - }, - "type": "library", - "autoload": { - "psr-4": { - "nodespark\\DESConnector\\": "src/DESConnector/" - } - }, - "autoload-dev": { - "psr-4": { - "nodespark\\DESConnector\\Test\\": "tests/" - } - }, - "license": [ - "LGPL-2.1" - ], - "authors": [ - { - "name": "Nikolay Ignatov", - "email": "nignatov@nodespark.com", - "homepage": "http://www.nodespark.com", - "role": "Creator and Maintainer" - }, - { - "name": "Lachezar Valchev", - "email": "lachezar.valchev@gmail.com", - "homepage": "https://drupal.org/u/lachezar.valchev", - "role": "Maintainer" - } - ], - "description": "An abstraction library for Elasticsearch Connector module for Drupal.", - "homepage": "https://github.com/nodespark/des-connector", - "support": { - "source": "https://github.com/nodespark/des-connector" - }, - "time": "2022-12-05T10:56:20+00:00" - }, { "name": "npm-asset/select2", "version": "4.0.13", @@ -13101,67 +12991,6 @@ "MIT" ] }, - { - "name": "nyholm/dsn", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/Nyholm/dsn.git", - "reference": "9445621b426bac8c0ca161db8cd700da00a4e618" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Nyholm/dsn/zipball/9445621b426bac8c0ca161db8cd700da00a4e618", - "reference": "9445621b426bac8c0ca161db8cd700da00a4e618", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "require-dev": { - "symfony/phpunit-bridge": "^5.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "psr-4": { - "Nyholm\\Dsn\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com" - } - ], - "description": "Parse your DSN strings in a powerful and flexible way", - "homepage": "http://tnyholm.se", - "keywords": [ - "database", - "dsn", - "dsn parser", - "parser" - ], - "support": { - "issues": "https://github.com/Nyholm/dsn/issues", - "source": "https://github.com/Nyholm/dsn/tree/2.0.1" - }, - "funding": [ - { - "url": "https://github.com/Nyholm", - "type": "github" - } - ], - "time": "2021-11-18T09:23:29+00:00" - }, { "name": "oomphinc/composer-installers-extender", "version": "2.0.1", @@ -13220,41 +13049,167 @@ "time": "2021-12-15T12:32:42+00:00" }, { - "name": "paragonie/constant_time_encoding", - "version": "v2.7.0", + "name": "open-telemetry/api", + "version": "1.0.3", "source": { "type": "git", - "url": "https://github.com/paragonie/constant_time_encoding.git", - "reference": "52a0d99e69f56b9ec27ace92ba56897fe6993105" + "url": "https://github.com/opentelemetry-php/api.git", + "reference": "87de95d926f46262885d0d390060c095af13e2e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/52a0d99e69f56b9ec27ace92ba56897fe6993105", - "reference": "52a0d99e69f56b9ec27ace92ba56897fe6993105", + "url": "https://api.github.com/repos/opentelemetry-php/api/zipball/87de95d926f46262885d0d390060c095af13e2e5", + "reference": "87de95d926f46262885d0d390060c095af13e2e5", "shasum": "" }, "require": { - "php": "^7|^8" + "open-telemetry/context": "^1.0", + "php": "^7.4 || ^8.0", + "psr/log": "^1.1|^2.0|^3.0", + "symfony/polyfill-php80": "^1.26", + "symfony/polyfill-php81": "^1.26", + "symfony/polyfill-php82": "^1.26" }, - "require-dev": { - "phpunit/phpunit": "^6|^7|^8|^9", - "vimeo/psalm": "^1|^2|^3|^4" + "conflict": { + "open-telemetry/sdk": "<=1.0.4" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.0.x-dev" + } + }, "autoload": { + "files": [ + "Trace/functions.php" + ], "psr-4": { - "ParagonIE\\ConstantTime\\": "src/" + "OpenTelemetry\\API\\": "." } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "Apache-2.0" ], "authors": [ { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com", + "name": "opentelemetry-php contributors", + "homepage": "https://github.com/open-telemetry/opentelemetry-php/graphs/contributors" + } + ], + "description": "API for OpenTelemetry PHP.", + "keywords": [ + "Metrics", + "api", + "apm", + "logging", + "opentelemetry", + "otel", + "tracing" + ], + "support": { + "chat": "https://app.slack.com/client/T08PSQ7BQ/C01NFPCV44V", + "docs": "https://opentelemetry.io/docs/php", + "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", + "source": "https://github.com/open-telemetry/opentelemetry-php" + }, + "time": "2024-02-06T01:32:25+00:00" + }, + { + "name": "open-telemetry/context", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/opentelemetry-php/context.git", + "reference": "0cba875ea1953435f78aec7f1d75afa87bdbf7f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opentelemetry-php/context/zipball/0cba875ea1953435f78aec7f1d75afa87bdbf7f3", + "reference": "0cba875ea1953435f78aec7f1d75afa87bdbf7f3", + "shasum": "" + }, + "require": { + "php": "^8.1", + "symfony/polyfill-php82": "^1.26" + }, + "suggest": { + "ext-ffi": "To allow context switching in Fibers" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.0.x-dev" + } + }, + "autoload": { + "files": [ + "fiber/initialize_fiber_handler.php" + ], + "psr-4": { + "OpenTelemetry\\Context\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "opentelemetry-php contributors", + "homepage": "https://github.com/open-telemetry/opentelemetry-php/graphs/contributors" + } + ], + "description": "Context implementation for OpenTelemetry PHP.", + "keywords": [ + "Context", + "opentelemetry", + "otel" + ], + "support": { + "chat": "https://app.slack.com/client/T08PSQ7BQ/C01NFPCV44V", + "docs": "https://opentelemetry.io/docs/php", + "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", + "source": "https://github.com/open-telemetry/opentelemetry-php" + }, + "time": "2024-08-21T00:29:20+00:00" + }, + { + "name": "paragonie/constant_time_encoding", + "version": "v2.7.0", + "source": { + "type": "git", + "url": "https://github.com/paragonie/constant_time_encoding.git", + "reference": "52a0d99e69f56b9ec27ace92ba56897fe6993105" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/52a0d99e69f56b9ec27ace92ba56897fe6993105", + "reference": "52a0d99e69f56b9ec27ace92ba56897fe6993105", + "shasum": "" + }, + "require": { + "php": "^7|^8" + }, + "require-dev": { + "phpunit/phpunit": "^6|^7|^8|^9", + "vimeo/psalm": "^1|^2|^3|^4" + }, + "type": "library", + "autoload": { + "psr-4": { + "ParagonIE\\ConstantTime\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com", "role": "Maintainer" }, { @@ -13669,6 +13624,194 @@ }, "time": "2024-10-03T13:43:19+00:00" }, + { + "name": "php-http/discovery", + "version": "1.20.0", + "source": { + "type": "git", + "url": "https://github.com/php-http/discovery.git", + "reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/discovery/zipball/82fe4c73ef3363caed49ff8dd1539ba06044910d", + "reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0|^2.0", + "php": "^7.1 || ^8.0" + }, + "conflict": { + "nyholm/psr7": "<1.0", + "zendframework/zend-diactoros": "*" + }, + "provide": { + "php-http/async-client-implementation": "*", + "php-http/client-implementation": "*", + "psr/http-client-implementation": "*", + "psr/http-factory-implementation": "*", + "psr/http-message-implementation": "*" + }, + "require-dev": { + "composer/composer": "^1.0.2|^2.0", + "graham-campbell/phpspec-skip-example-extension": "^5.0", + "php-http/httplug": "^1.0 || ^2.0", + "php-http/message-factory": "^1.0", + "phpspec/phpspec": "^5.1 || ^6.1 || ^7.3", + "sebastian/comparator": "^3.0.5 || ^4.0.8", + "symfony/phpunit-bridge": "^6.4.4 || ^7.0.1" + }, + "type": "composer-plugin", + "extra": { + "class": "Http\\Discovery\\Composer\\Plugin", + "plugin-optional": true + }, + "autoload": { + "psr-4": { + "Http\\Discovery\\": "src/" + }, + "exclude-from-classmap": [ + "src/Composer/Plugin.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations", + "homepage": "http://php-http.org", + "keywords": [ + "adapter", + "client", + "discovery", + "factory", + "http", + "message", + "psr17", + "psr7" + ], + "support": { + "issues": "https://github.com/php-http/discovery/issues", + "source": "https://github.com/php-http/discovery/tree/1.20.0" + }, + "time": "2024-10-02T11:20:13+00:00" + }, + { + "name": "php-http/httplug", + "version": "2.4.1", + "source": { + "type": "git", + "url": "https://github.com/php-http/httplug.git", + "reference": "5cad731844891a4c282f3f3e1b582c46839d22f4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/httplug/zipball/5cad731844891a4c282f3f3e1b582c46839d22f4", + "reference": "5cad731844891a4c282f3f3e1b582c46839d22f4", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0", + "php-http/promise": "^1.1", + "psr/http-client": "^1.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "require-dev": { + "friends-of-phpspec/phpspec-code-coverage": "^4.1 || ^5.0 || ^6.0", + "phpspec/phpspec": "^5.1 || ^6.0 || ^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eric GELOEN", + "email": "geloen.eric@gmail.com" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "HTTPlug, the HTTP client abstraction for PHP", + "homepage": "http://httplug.io", + "keywords": [ + "client", + "http" + ], + "support": { + "issues": "https://github.com/php-http/httplug/issues", + "source": "https://github.com/php-http/httplug/tree/2.4.1" + }, + "time": "2024-09-23T11:39:58+00:00" + }, + { + "name": "php-http/promise", + "version": "1.3.1", + "source": { + "type": "git", + "url": "https://github.com/php-http/promise.git", + "reference": "fc85b1fba37c169a69a07ef0d5a8075770cc1f83" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/promise/zipball/fc85b1fba37c169a69a07ef0d5a8075770cc1f83", + "reference": "fc85b1fba37c169a69a07ef0d5a8075770cc1f83", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "friends-of-phpspec/phpspec-code-coverage": "^4.3.2 || ^6.3", + "phpspec/phpspec": "^5.1.2 || ^6.2 || ^7.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Http\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Joel Wurtz", + "email": "joel.wurtz@gmail.com" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "Promise used for asynchronous HTTP requests", + "homepage": "http://httplug.io", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/php-http/promise/issues", + "source": "https://github.com/php-http/promise/tree/1.3.1" + }, + "time": "2024-03-15T13:55:21+00:00" + }, { "name": "phpowermove/docblock", "version": "v4.0", @@ -14692,78 +14835,6 @@ ], "time": "2024-04-27T21:32:50+00:00" }, - { - "name": "react/promise", - "version": "v2.11.0", - "source": { - "type": "git", - "url": "https://github.com/reactphp/promise.git", - "reference": "1a8460931ea36dc5c76838fec5734d55c88c6831" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/reactphp/promise/zipball/1a8460931ea36dc5c76838fec5734d55c88c6831", - "reference": "1a8460931ea36dc5c76838fec5734d55c88c6831", - "shasum": "" - }, - "require": { - "php": ">=5.4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" - }, - "type": "library", - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "React\\Promise\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jan Sorgalla", - "email": "jsorgalla@gmail.com", - "homepage": "https://sorgalla.com/" - }, - { - "name": "Christian Lück", - "email": "christian@clue.engineering", - "homepage": "https://clue.engineering/" - }, - { - "name": "Cees-Jan Kiewiet", - "email": "reactphp@ceesjankiewiet.nl", - "homepage": "https://wyrihaximus.net/" - }, - { - "name": "Chris Boden", - "email": "cboden@gmail.com", - "homepage": "https://cboden.dev/" - } - ], - "description": "A lightweight implementation of CommonJS Promises/A for PHP", - "keywords": [ - "promise", - "promises" - ], - "support": { - "issues": "https://github.com/reactphp/promise/issues", - "source": "https://github.com/reactphp/promise/tree/v2.11.0" - }, - "funding": [ - { - "url": "https://opencollective.com/reactphp", - "type": "open_collective" - } - ], - "time": "2023-11-16T16:16:50+00:00" - }, { "name": "respect/stringifier", "version": "0.2.0", @@ -14944,46 +15015,40 @@ }, { "name": "ruflin/elastica", - "version": "7.3.2", + "version": "8.0.0", "source": { "type": "git", "url": "https://github.com/ruflin/Elastica.git", - "reference": "84ba137678707a1aa4242d12bad891dc38fa2608" + "reference": "2fc446e37847e84cd9f9be8e75fd2b322007ea43" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ruflin/Elastica/zipball/84ba137678707a1aa4242d12bad891dc38fa2608", - "reference": "84ba137678707a1aa4242d12bad891dc38fa2608", + "url": "https://api.github.com/repos/ruflin/Elastica/zipball/2fc446e37847e84cd9f9be8e75fd2b322007ea43", + "reference": "2fc446e37847e84cd9f9be8e75fd2b322007ea43", "shasum": "" }, "require": { - "elasticsearch/elasticsearch": "^7.10", + "elastic/transport": "^8.8", + "elasticsearch/elasticsearch": "^8.4.1", "ext-json": "*", - "nyholm/dsn": "^2.0.0", - "php": "^7.2 || ^8.0", - "psr/log": "^1.0 || ^2.0 || ^3.0", - "symfony/deprecation-contracts": "^2.2 || ^3.0", - "symfony/polyfill-php73": "^1.19" + "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0", + "psr/log": "^1.0 || ^2.0 || ^3.0" + }, + "conflict": { + "guzzlehttp/psr7": "<2.0.0" }, "require-dev": { - "aws/aws-sdk-php": "^3.155", - "guzzlehttp/guzzle": "^6.3 || ^7.2", + "guzzlehttp/guzzle": "^7.2", "phpstan/phpstan": "^1.5", "phpstan/phpstan-phpunit": "^1.1", - "phpunit/phpunit": "^8.5.8 || ^9.4", + "phpunit/phpunit": "^9.5", "symfony/phpunit-bridge": "^6.0" }, "suggest": { "aws/aws-sdk-php": "Allow using IAM authentication with Amazon ElasticSearch Service", - "guzzlehttp/guzzle": "Allow using guzzle as transport", "monolog/monolog": "Logging request" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "7.0.x-dev" - } - }, "autoload": { "psr-4": { "Elastica\\": "src/" @@ -15007,9 +15072,9 @@ ], "support": { "issues": "https://github.com/ruflin/Elastica/issues", - "source": "https://github.com/ruflin/Elastica/tree/7.3.2" + "source": "https://github.com/ruflin/Elastica/tree/8.0.0" }, - "time": "2024-03-11T14:11:50+00:00" + "time": "2024-05-29T11:45:23+00:00" }, { "name": "sebastian/diff", @@ -16815,17 +16880,17 @@ "time": "2020-10-23T14:02:19+00:00" }, { - "name": "symfony/polyfill-php73", + "name": "symfony/polyfill-php80", "version": "v1.31.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb" + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f68c03565dcaaf25a890667542e8bd75fe7e5bb", - "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", "shasum": "" }, "require": { @@ -16843,7 +16908,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" + "Symfony\\Polyfill\\Php80\\": "" }, "classmap": [ "Resources/stubs" @@ -16854,6 +16919,10 @@ "MIT" ], "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -16863,7 +16932,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -16872,7 +16941,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" }, "funding": [ { @@ -16891,17 +16960,17 @@ "time": "2024-09-09T11:45:10+00:00" }, { - "name": "symfony/polyfill-php80", + "name": "symfony/polyfill-php81", "version": "v1.31.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", - "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", "shasum": "" }, "require": { @@ -16919,7 +16988,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" + "Symfony\\Polyfill\\Php81\\": "" }, "classmap": [ "Resources/stubs" @@ -16930,10 +16999,6 @@ "MIT" ], "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -16943,7 +17008,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -16952,7 +17017,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0" }, "funding": [ { @@ -16971,17 +17036,17 @@ "time": "2024-09-09T11:45:10+00:00" }, { - "name": "symfony/polyfill-php81", + "name": "symfony/polyfill-php82", "version": "v1.31.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c" + "url": "https://github.com/symfony/polyfill-php82.git", + "reference": "5d2ed36f7734637dacc025f179698031951b1692" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", - "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "url": "https://api.github.com/repos/symfony/polyfill-php82/zipball/5d2ed36f7734637dacc025f179698031951b1692", + "reference": "5d2ed36f7734637dacc025f179698031951b1692", "shasum": "" }, "require": { @@ -16999,7 +17064,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" + "Symfony\\Polyfill\\Php82\\": "" }, "classmap": [ "Resources/stubs" @@ -17019,7 +17084,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 8.2+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -17028,7 +17093,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php82/tree/v1.31.0" }, "funding": [ { @@ -20070,134 +20135,6 @@ ], "time": "2024-06-12T14:39:25+00:00" }, - { - "name": "open-telemetry/api", - "version": "1.0.3", - "source": { - "type": "git", - "url": "https://github.com/opentelemetry-php/api.git", - "reference": "87de95d926f46262885d0d390060c095af13e2e5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/api/zipball/87de95d926f46262885d0d390060c095af13e2e5", - "reference": "87de95d926f46262885d0d390060c095af13e2e5", - "shasum": "" - }, - "require": { - "open-telemetry/context": "^1.0", - "php": "^7.4 || ^8.0", - "psr/log": "^1.1|^2.0|^3.0", - "symfony/polyfill-php80": "^1.26", - "symfony/polyfill-php81": "^1.26", - "symfony/polyfill-php82": "^1.26" - }, - "conflict": { - "open-telemetry/sdk": "<=1.0.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.0.x-dev" - } - }, - "autoload": { - "files": [ - "Trace/functions.php" - ], - "psr-4": { - "OpenTelemetry\\API\\": "." - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "opentelemetry-php contributors", - "homepage": "https://github.com/open-telemetry/opentelemetry-php/graphs/contributors" - } - ], - "description": "API for OpenTelemetry PHP.", - "keywords": [ - "Metrics", - "api", - "apm", - "logging", - "opentelemetry", - "otel", - "tracing" - ], - "support": { - "chat": "https://app.slack.com/client/T08PSQ7BQ/C01NFPCV44V", - "docs": "https://opentelemetry.io/docs/php", - "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", - "source": "https://github.com/open-telemetry/opentelemetry-php" - }, - "time": "2024-02-06T01:32:25+00:00" - }, - { - "name": "open-telemetry/context", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/opentelemetry-php/context.git", - "reference": "e9d254a7c89885e63fd2fde54e31e81aaaf52b7c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/context/zipball/e9d254a7c89885e63fd2fde54e31e81aaaf52b7c", - "reference": "e9d254a7c89885e63fd2fde54e31e81aaaf52b7c", - "shasum": "" - }, - "require": { - "php": "^7.4 || ^8.0", - "symfony/polyfill-php80": "^1.26", - "symfony/polyfill-php81": "^1.26", - "symfony/polyfill-php82": "^1.26" - }, - "suggest": { - "ext-ffi": "To allow context switching in Fibers" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.0.x-dev" - } - }, - "autoload": { - "files": [ - "fiber/initialize_fiber_handler.php" - ], - "psr-4": { - "OpenTelemetry\\Context\\": "." - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "opentelemetry-php contributors", - "homepage": "https://github.com/open-telemetry/opentelemetry-php/graphs/contributors" - } - ], - "description": "Context implementation for OpenTelemetry PHP.", - "keywords": [ - "Context", - "opentelemetry", - "otel" - ], - "support": { - "chat": "https://app.slack.com/client/T08PSQ7BQ/C01NFPCV44V", - "docs": "https://opentelemetry.io/docs/php", - "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", - "source": "https://github.com/open-telemetry/opentelemetry-php" - }, - "time": "2024-01-13T05:50:44+00:00" - }, { "name": "open-telemetry/exporter-otlp", "version": "1.0.4", @@ -20410,16 +20347,16 @@ }, { "name": "open-telemetry/sem-conv", - "version": "1.25.0", + "version": "1.27.1", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/sem-conv.git", - "reference": "23f457ba390847647a17068e0095d9ffe9a4824c" + "reference": "1dba705fea74bc0718d04be26090e3697e56f4e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/sem-conv/zipball/23f457ba390847647a17068e0095d9ffe9a4824c", - "reference": "23f457ba390847647a17068e0095d9ffe9a4824c", + "url": "https://api.github.com/repos/opentelemetry-php/sem-conv/zipball/1dba705fea74bc0718d04be26090e3697e56f4e6", + "reference": "1dba705fea74bc0718d04be26090e3697e56f4e6", "shasum": "" }, "require": { @@ -20463,7 +20400,7 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2024-04-09T23:31:35+00:00" + "time": "2024-08-28T09:20:31+00:00" }, { "name": "phar-io/manifest", @@ -20536,131 +20473,52 @@ "name": "phar-io/version", "version": "3.2.1", "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints", - "support": { - "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.2.1" - }, - "time": "2022-02-21T01:04:05+00:00" - }, - { - "name": "php-http/discovery", - "version": "1.20.0", - "source": { - "type": "git", - "url": "https://github.com/php-http/discovery.git", - "reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-http/discovery/zipball/82fe4c73ef3363caed49ff8dd1539ba06044910d", - "reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0|^2.0", - "php": "^7.1 || ^8.0" - }, - "conflict": { - "nyholm/psr7": "<1.0", - "zendframework/zend-diactoros": "*" - }, - "provide": { - "php-http/async-client-implementation": "*", - "php-http/client-implementation": "*", - "psr/http-client-implementation": "*", - "psr/http-factory-implementation": "*", - "psr/http-message-implementation": "*" + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" }, - "require-dev": { - "composer/composer": "^1.0.2|^2.0", - "graham-campbell/phpspec-skip-example-extension": "^5.0", - "php-http/httplug": "^1.0 || ^2.0", - "php-http/message-factory": "^1.0", - "phpspec/phpspec": "^5.1 || ^6.1 || ^7.3", - "sebastian/comparator": "^3.0.5 || ^4.0.8", - "symfony/phpunit-bridge": "^6.4.4 || ^7.0.1" + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" }, - "type": "composer-plugin", - "extra": { - "class": "Http\\Discovery\\Composer\\Plugin", - "plugin-optional": true + "require": { + "php": "^7.2 || ^8.0" }, + "type": "library", "autoload": { - "psr-4": { - "Http\\Discovery\\": "src/" - }, - "exclude-from-classmap": [ - "src/Composer/Plugin.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com" + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" } ], - "description": "Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations", - "homepage": "http://php-http.org", - "keywords": [ - "adapter", - "client", - "discovery", - "factory", - "http", - "message", - "psr17", - "psr7" - ], + "description": "Library for handling version information and constraints", "support": { - "issues": "https://github.com/php-http/discovery/issues", - "source": "https://github.com/php-http/discovery/tree/1.20.0" + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" }, - "time": "2024-10-02T11:20:13+00:00" + "time": "2022-02-21T01:04:05+00:00" }, { "name": "php-http/guzzle7-adapter", @@ -20724,115 +20582,6 @@ }, "time": "2021-03-09T07:35:15+00:00" }, - { - "name": "php-http/httplug", - "version": "2.4.1", - "source": { - "type": "git", - "url": "https://github.com/php-http/httplug.git", - "reference": "5cad731844891a4c282f3f3e1b582c46839d22f4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-http/httplug/zipball/5cad731844891a4c282f3f3e1b582c46839d22f4", - "reference": "5cad731844891a4c282f3f3e1b582c46839d22f4", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0", - "php-http/promise": "^1.1", - "psr/http-client": "^1.0", - "psr/http-message": "^1.0 || ^2.0" - }, - "require-dev": { - "friends-of-phpspec/phpspec-code-coverage": "^4.1 || ^5.0 || ^6.0", - "phpspec/phpspec": "^5.1 || ^6.0 || ^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Http\\Client\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Eric GELOEN", - "email": "geloen.eric@gmail.com" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://sagikazarmark.hu" - } - ], - "description": "HTTPlug, the HTTP client abstraction for PHP", - "homepage": "http://httplug.io", - "keywords": [ - "client", - "http" - ], - "support": { - "issues": "https://github.com/php-http/httplug/issues", - "source": "https://github.com/php-http/httplug/tree/2.4.1" - }, - "time": "2024-09-23T11:39:58+00:00" - }, - { - "name": "php-http/promise", - "version": "1.3.1", - "source": { - "type": "git", - "url": "https://github.com/php-http/promise.git", - "reference": "fc85b1fba37c169a69a07ef0d5a8075770cc1f83" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-http/promise/zipball/fc85b1fba37c169a69a07ef0d5a8075770cc1f83", - "reference": "fc85b1fba37c169a69a07ef0d5a8075770cc1f83", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "friends-of-phpspec/phpspec-code-coverage": "^4.3.2 || ^6.3", - "phpspec/phpspec": "^5.1.2 || ^6.2 || ^7.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "Http\\Promise\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Joel Wurtz", - "email": "joel.wurtz@gmail.com" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com" - } - ], - "description": "Promise used for asynchronous HTTP requests", - "homepage": "http://httplug.io", - "keywords": [ - "promise" - ], - "support": { - "issues": "https://github.com/php-http/promise/issues", - "source": "https://github.com/php-http/promise/tree/1.3.1" - }, - "time": "2024-03-15T13:55:21+00:00" - }, { "name": "phpdocumentor/reflection-common", "version": "2.2.0", @@ -21799,6 +21548,79 @@ ], "time": "2024-07-10T11:45:39+00:00" }, + { + "name": "react/promise", + "version": "v3.2.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/promise.git", + "reference": "8a164643313c71354582dc850b42b33fa12a4b63" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/promise/zipball/8a164643313c71354582dc850b42b33fa12a4b63", + "reference": "8a164643313c71354582dc850b42b33fa12a4b63", + "shasum": "" + }, + "require": { + "php": ">=7.1.0" + }, + "require-dev": { + "phpstan/phpstan": "1.10.39 || 1.4.10", + "phpunit/phpunit": "^9.6 || ^7.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "React\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "A lightweight implementation of CommonJS Promises/A for PHP", + "keywords": [ + "promise", + "promises" + ], + "support": { + "issues": "https://github.com/reactphp/promise/issues", + "source": "https://github.com/reactphp/promise/tree/v3.2.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2024-05-24T10:39:05+00:00" + }, { "name": "sebastian/cli-parser", "version": "1.0.2", @@ -23434,21 +23256,21 @@ "time": "2024-06-21T16:04:15+00:00" }, { - "name": "symfony/polyfill-php82", - "version": "v1.30.0", + "name": "symfony/polyfill-php73", + "version": "v1.31.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php82.git", - "reference": "77ff49780f56906788a88974867ed68bc49fae5b" + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php82/zipball/77ff49780f56906788a88974867ed68bc49fae5b", - "reference": "77ff49780f56906788a88974867ed68bc49fae5b", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f68c03565dcaaf25a890667542e8bd75fe7e5bb", + "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { @@ -23462,7 +23284,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php82\\": "" + "Symfony\\Polyfill\\Php73\\": "" }, "classmap": [ "Resources/stubs" @@ -23482,7 +23304,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.2+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -23491,7 +23313,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php82/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.31.0" }, "funding": [ { @@ -23507,7 +23329,7 @@ "type": "tidelift" } ], - "time": "2024-06-19T12:30:46+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "theseer/tokenizer", diff --git a/conf/cmi/metatag.settings.yml b/conf/cmi/metatag.settings.yml index 4a857d7011..f260a90c78 100644 --- a/conf/cmi/metatag.settings.yml +++ b/conf/cmi/metatag.settings.yml @@ -16,3 +16,4 @@ entity_type_groups: basic: basic open_graph: open_graph twitter_cards: twitter_cards +tag_trim_end: '|.,-:;/+&([{"''' From e3f02e4c5bfcaa580a6c6dbdcb010c852df743bd Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Mon, 11 Nov 2024 08:35:08 +0200 Subject: [PATCH 36/95] doc: UHF-10807: Add example for new form + update schema (#1555) * UHF-10807: Add example for new form + update schema * UHF-10807: Fix formatting for schema file. --- .gitignore | 3 + conf/examples/esimerkki_72_SOTEPEYLEIS.json | 398 ++++ conf/tietoliikennesanoma_schema.json | 1794 ++++++++++--------- 3 files changed, 1299 insertions(+), 896 deletions(-) create mode 100644 conf/examples/esimerkki_72_SOTEPEYLEIS.json diff --git a/.gitignore b/.gitignore index db56f02565..85db037008 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,6 @@ public/sites/default/local.services.yml ## testing results *coverage.xml html-coverage + +# Ignore the folder created by Visual Studio Code +*:Zone.Identifier* diff --git a/conf/examples/esimerkki_72_SOTEPEYLEIS.json b/conf/examples/esimerkki_72_SOTEPEYLEIS.json new file mode 100644 index 0000000000..b3d54812f1 --- /dev/null +++ b/conf/examples/esimerkki_72_SOTEPEYLEIS.json @@ -0,0 +1,398 @@ +{ + "compensation": { + "applicationInfoArray": [ + { + "ID": "applicationType", + "label": "Hakemustyyppi", + "value": "SOTEPEYLEIS", + "valueType": "string" + }, + { + "ID": "applicationTypeID", + "label": "Hakemustyypin numero", + "value": "72", + "valueType": "int" + }, + { + "ID": "formTimeStamp", + "label": "Hakemuksen/sanoman lähetyshetki", + "value": "2024-10-01T12:43:02.001", + "valueType": "datetime" + }, + { + "ID": "applicationNumber", + "label": "Hakemusnumero", + "value": "SOTEPEYLEIS-1", + "valueType": "string" + }, + { + "ID": "status", + "label": "Tila", + "value": "Vastaanotettu", + "valueType": "string" + }, + { + "ID": "actingYear", + "label": "Hakemusvuosi", + "value": "2024", + "valueType": "int" + } + ], + "currentAddressInfoArray": [ + { + "ID": "contactPerson", + "label": "Yhteyshenkilö", + "value": "Teemu Testaushenkilö", + "valueType": "string" + }, + { + "ID": "phoneNumber", + "label": "Puhelinnumero", + "value": "+358404040404", + "valueType": "string" + }, + { + "ID": "street", + "label": "Katuosoite", + "value": "Annankatu 18 Ö 905", + "valueType": "string" + }, + { + "ID": "city", + "label": "Postitoimipaikka", + "value": "Helsinki", + "valueType": "string" + }, + { + "ID": "postCode", + "label": "Postinumero", + "value": "00120", + "valueType": "string" + }, + { + "ID": "country", + "label": "Maa", + "value": "Suomi", + "valueType": "string" + } + ], + "applicantInfoArray": [ + { + "ID": "applicantType", + "label": "Hakijan tyyppi", + "value": "2", + "valueType": "string" + }, + { + "ID": "companyNumber", + "label": "Rekisterinumero", + "value": "5647641-1", + "valueType": "string" + }, + { + "ID": "communityOfficialName", + "label": "Yhteisön nimi", + "value": "TietoTesti Kh yleis 001 10062021", + "valueType": "string" + }, + { + "ID": "communityOfficialNameShort", + "label": "Yhteisön lyhenne", + "value": "TT ry", + "valueType": "string" + }, + { + "ID": "registrationDate", + "label": "Rekisteröimispäivä", + "value": "2021-01-01T00:00:00.000", + "valueType": "datetime" + }, + { + "ID": "foundingYear", + "label": "Perustamisvuosi", + "value": "2021", + "valueType": "int" + }, + { + "ID": "home", + "label": "Kotipaikka", + "value": "Helsinki", + "valueType": "string" + }, + { + "ID": "homePage", + "label": "www-sivut", + "value": "www.ttry.fi", + "valueType": "string" + }, + { + "ID": "email", + "label": "Sähköpostiosoite", + "value": "tsto@ttry.fi", + "valueType": "string" + } + ], + "applicantOfficialsArray": [ + [ + { + "ID": "email", + "label": "Sähköposti", + "value": "teemu@ttry.fi", + "valueType": "string" + }, + { + "ID": "role", + "label": "Rooli", + "value": "1", + "valueType": "string" + }, + { + "ID": "name", + "label": "Nimi", + "value": "Teemu Testaushenkilö", + "valueType": "string" + }, + { + "ID": "phone", + "label": "Puhelinnumero", + "value": "09-616527788", + "valueType": "string" + } + ] + ], + "bankAccountArray": [ + { + "ID": "accountNumber", + "label": "Tilinumero", + "value": "FI9640231442000454", + "valueType": "string" + } + ], + "compensationInfo": { + "generalInfoArray": [ + { + "ID": "purpose", + "label": "Haetun avustuksen käyttötarkoitus", + "value": "Käyttötarkoituksenamme on se että ... kts. liite 10.", + "valueType": "string" + }, + { + "ID": "explanation", + "label": "Selvitys edellisen avustuksen käytöstä", + "value": "Emme saaneet viime vuonna avustusta lainkaan.", + "valueType": "string" + }, + { + "ID": "whoBenefits", + "label": "Ketkä toiminnastanne erityisesti hyötyvät", + "value": "Tästähän siis hyötyvät ihan kaikki", + "valueType": "string" + }, + { + "ID": "changesOnSuccess", + "label": "Minkälaisia muutoksia tapahtuu, jos onnistutte?", + "value": "Pelkästään positiivisia muutoksia", + "valueType": "string" + }, + { + "ID": "resultsOfActivities", + "label": "Minkälaisia hyötyjä avustettavan toiminnan seurauksena syntyy?", + "value": "Kaikki sujuu paremmin ja turvallisemmin jatkossa", + "valueType": "string" + } + ], + "compensationArray": [ + [ + { + "ID": "subventionType", + "label": "Avustuslaji", + "value": "6", + "valueType": "string" + }, + { + "ID": "amount", + "label": "Euroa", + "value": "3533.00", + "valueType": "double" + } + ] + ] + }, + "otherCompensationsInfo": { + "otherCompensationsArray": [ + [ + { + "ID": "issuer", + "label": "Myöntäjä", + "value": "5", + "valueType": "string" + }, + { + "ID": "issuerName", + "label": "Myöntäjän nimi", + "value": "Joku Säätiö Sr.", + "valueType": "string" + }, + { + "ID": "year", + "label": "Vuosi", + "value": "2021", + "valueType": "string" + }, + { + "ID": "amount", + "label": "Euroa", + "value": "2800", + "valueType": "double" + }, + { + "ID": "purpose", + "label": "Tarkoitus", + "value": "Matkakuluihin ja muihin ylimääräisiin menoihin.", + "valueType": "string" + } + ] + ] + }, + "activitiesInfoArray": [ + { + "ID": "businessPurpose", + "label": "Toiminnan tarkoitus", + "value": "Meidän toimintamme tarkoituksena on että ...", + "valueType": "string" + }, + { + "ID": "communityPracticesBusiness", + "label": "Yhteisö harjoittaa liiketoimintaa", + "value": "false", + "valueType": "bool" + }, + { + "ID": "membersApplicantPersonGlobal", + "label": "Hakijayhteisö, henkilöjäseniä", + "value": "50", + "valueType": "int" + }, + { + "ID": "membersApplicantCommunityGlobal", + "label": "Hakijayhteisö, yhteisöjäseniä", + "value": "12", + "valueType": "int" + }, + { + "ID": "membersApplicantPersonLocal", + "label": "Hakijayhteisö, helsinkiläisiä henkilöjäseniä", + "value": "45", + "valueType": "int" + }, + { + "ID": "membersApplicantCommunityLocal", + "label": "Hakijayhteisö, helsinkiläisiä yhteisöjäseniä", + "value": "23", + "valueType": "int" + }, + { + "ID": "feePerson", + "label": "Jäsenmaksun suuruus, Henkilöjäsen euroa", + "value": "38", + "valueType": "double" + }, + { + "ID": "feeCommunity", + "label": "Jäsenmaksun suuruus, Yhteisöjäsen euroa", + "value": "98", + "valueType": "double" + } + ], + "additionalInformation": "Tällä kertaa ei ole muuta ilmoitettavaa tähän hakemukseen", + "senderInfoArray": [ + { + "ID": "firstname", + "label": "Etunimi", + "value": "Testaaja", + "valueType": "string" + }, + { + "ID": "lastname", + "label": "Sukunimi", + "value": "Tiina", + "valueType": "string" + }, + { + "ID": "personID", + "label": "Henkilötunnus", + "value": "171756-1234", + "valueType": "string" + }, + { + "ID": "userID", + "label": "Käyttäjätunnus", + "value": "testatii", + "valueType": "string" + }, + { + "ID": "email", + "label": "Sähköposti", + "value": "tiina.testaaja@testiyhdistys.fi", + "valueType": "string" + } + ] + }, + "attachmentsInfo": { + "attachmentsArray": [ + [ + { + "ID": "description", + "value": "Vuosikokouksen pöytäkirja", + "valueType": "string" + }, + { + "ID": "fileType", + "value": "1", + "valueType": "int" + }, + { + "ID": "isDeliveredLater", + "value": "false", + "valueType": "bool" + }, + { + "ID": "isIncludedInOtherFile", + "value": "true", + "valueType": "bool" + } + ], + [ + { + "ID": "description", + "value": "Muu liite", + "valueType": "string" + }, + { + "ID": "fileType", + "value": "1", + "valueType": "int" + }, + { + "ID": "isDeliveredLater", + "value": "true", + "valueType": "bool" + }, + { + "ID": "isIncludedInOtherFile", + "value": "false", + "valueType": "bool" + } + ] + ], + "generalInfoArray": [ + { + "ID": "extraInfo", + "label": "Lisäselvitys liitteistä", + "value": "Tässä voi olla joku kaikkia liitteitä yhteisesti koskeva selvitys", + "valueType": "string" + } + ] + }, + "formUpdate": false +} \ No newline at end of file diff --git a/conf/tietoliikennesanoma_schema.json b/conf/tietoliikennesanoma_schema.json index ca6524b6f4..c2194c1bc2 100644 --- a/conf/tietoliikennesanoma_schema.json +++ b/conf/tietoliikennesanoma_schema.json @@ -17,9 +17,9 @@ "enum": [ "applicationType", "applicationTypeID", - "createdFormTimeStamp", + "createdFormTimeStamp", "formTimeStamp", - "submittedFormTimeStamp", + "submittedFormTimeStamp", "applicationNumber", "status", "sector", @@ -47,7 +47,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -91,7 +91,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -127,7 +127,7 @@ "email", "homePage", "isSportsClub", - "communityType" + "communityType" ] }, "label": { @@ -145,7 +145,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -191,7 +191,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -233,7 +233,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -268,21 +268,24 @@ "purpose", "description", "compensationPreviousYear", - "yearsForMultiYearApplication", - "breakdownOfYearlySums", - "organizationBelongsToStateShareSystem", - "primaryArt", - "isFestival", - "internalOrder", - "eventDayCount", - "performanceCount", - "estimatedVisitors", - "premiereLocation", - "firstPublicDate", - "nameOfEvent", - "rentalApplied", - "compensationExtraQuestion", - "targetOfSubvention" + "yearsForMultiYearApplication", + "breakdownOfYearlySums", + "organizationBelongsToStateShareSystem", + "primaryArt", + "isFestival", + "internalOrder", + "eventDayCount", + "performanceCount", + "estimatedVisitors", + "premiereLocation", + "firstPublicDate", + "nameOfEvent", + "rentalApplied", + "compensationExtraQuestion", + "targetOfSubvention", + "whoBenefits", + "changesOnSuccess", + "resultsOfActivities" ] }, "label": { @@ -300,7 +303,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -358,7 +361,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -398,7 +401,7 @@ "caretakerName", "caretakerAddress", "totalCostsOfType", - "usedAmount" + "usedAmount" ] }, "label": { @@ -416,7 +419,7 @@ "bool", "datetime", "float", - "double" + "double" ] }, "otherCostsArray": { @@ -491,7 +494,7 @@ "bool", "datetime", "float", - "double" + "double" ] } } @@ -537,7 +540,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -556,8 +559,8 @@ "compensationArray" ] }, - "communityInfo": { - "description": "'Yhteisön tiedot' section of the application", + "communityInfo": { + "description": "'Yhteisön tiedot' section of the application", "type": "object", "properties": { "generalCommunityInfoArray": { @@ -581,7 +584,7 @@ "staffManyearsParttime", "staffManyearsVoluntary", "staffManyearsSummary", - "isOwnerOrPrimaryTenantOfArtpremises" + "isOwnerOrPrimaryTenantOfArtpremises" ] }, "label": { @@ -599,7 +602,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -622,7 +625,7 @@ "description": "Identifies the data of the array item", "type": "string", "enum": [ - "premiseType", + "premiseType", "premiseName", "postCode", "isOthersUse", @@ -645,7 +648,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -661,252 +664,251 @@ "required": [ "generalCommunityInfoArray" ] - - }, - "activityInfo": { - "description": "'Toiminta' section of the application, for KUVA applications", - "type": "object", - "properties": { - "plannedActivityInfoArray": { - "type": "array", - "items": { - "type": "object", - "properties": { - "ID": { - "description": "Identifies the data of the array item", - "type": "string", - "enum": [ - "eventDaysCountHki", - "performanceCountHki", - "performanceCountAll", - "performanceVisitorsHki", - "performanceVisitorsAll", - "exhibitionCountHki", - "exhibitionCountAll", - "exhibitionVisitorsHki", - "exhibitionVisitorsAll", - "workshopCountHki", - "workshopCountAll", - "workshopVisitorsHki", - "workshopVisitorsAll", - "eventsHkiTotal", - "eventsTotal", - "eventsVisitorsHkiTotal", - "eventsVisitorsTotal", - "firstPublicPerformancesCount", - "premiereCountHki", - "firstPublicEventLocationHki", - "firstPublicEventLocationPostCode", - "isOwnedByCity", - "premisesCount", - "eventOrFestivalDates", - "firstPublicOccasionDate", - "projectStartDate", - "projectEndDate", - "detailedProjectDescription", - "otherKeyActivities" - ] - }, - "label": { - "description": "For future use, field's name in the UI", - "type": "string" - }, - "value": { - "type": "string" - }, - "valueType": { - "type": "string", - "enum": [ - "string", - "int", - "bool", - "datetime", - "float", - "double" - ] - } - }, - "required": [ - "ID", - "value", - "valueType" - ] - } - }, - "realizedActivityInfoArray": { - "type": "array", - "items": { - "type": "object", - "properties": { - "ID": { - "description": "Identifies the data of the array item", - "type": "string", - "enum": [ - "isEventOrFestival", - "eventDaysCount", - "performanceCountHki", - "performanceCountAll", - "performanceVisitorsHki", - "performanceVisitorsAll", - "exhibitionCountHki", - "exhibitionCountAll", - "exhibitionVisitorsHki", - "exhibitionVisitorsAll", - "workshopCountHki", - "workshopCountAll", - "workshopVisitorsHki", - "workshopVisitorsAll", - "eventsHkiTotal", - "eventsTotal", - "eventsVisitorsHkiTotal", - "eventsVisitorsTotal", - "firstPublicPerformancesCount", - "premiereCountHki", - "premisesCount", - "pupilsChildhoodAll", - "pupilsChildhoodGirls", - "pupilsChildhoodBoys", - "wideBasicStudiesAll", - "wideBasicStudiesGirls", - "wideBasicStudiesBoys", - "wideAdvancedStudiesAll", - "wideAdvancedStudiesGirls", - "wideAdvancedStudiesBoys", - "generalStudiesAll", - "generalStudiesGirls", - "generalStudiesBoys", - "teachingPersonnel", - "wayOfSelection", - "personalTeaching", - "freeStudents", - "lessonsChildhood", - "lessonsWideBasicStudies", - "lessonsWideAdvancedStudies", - "lessonsGeneralStudies", - "lessonsTotal" - ] - }, - "label": { - "description": "For future use, field's name in the UI", - "type": "string" - }, - "value": { - "type": "string" - }, - "valueType": { - "type": "string", - "enum": [ - "string", - "int", - "bool", - "datetime", - "float", - "double" - ] - } - }, - "required": [ - "ID", - "value", - "valueType" - ] - } - }, - "plannedPremisesArray": { - "description": "Information about several premises, each as one item/array of this array", - "type": "array", - "items": { - "type": "array", - "items": { - "type": "object", - "properties": { - "ID": { - "description": "Identifies the data of the array item", - "type": "string", - "enum": [ - "premiseName", - "postCode", - "isOwnedByCity" - ] - }, - "label": { - "description": "For future use, field's name in the UI", - "type": "string" - }, - "value": { - "type": "string" - }, - "valueType": { - "type": "string", - "enum": [ - "string", - "int", - "bool", - "datetime", - "float", - "double" - ] - } - }, - "required": [ - "ID", - "value", - "valueType" - ] - } - } - }, - "realizedPremisesArray": { - "description": "Information about several premises, each as one item/array of this array", - "type": "array", - "items": { - "type": "array", - "items": { - "type": "object", - "properties": { - "ID": { - "description": "Identifies the data of the array item", - "type": "string", - "enum": [ - "premiseName", - "postCode", - "isOwnedByCity", - "premiseType", - "premiseSuitability", - "citySection" - ] - }, - "label": { - "description": "For future use, field's name in the UI", - "type": "string" - }, - "value": { - "type": "string" - }, - "valueType": { - "type": "string", - "enum": [ - "string", - "int", - "bool", - "datetime", - "float", - "double" - ] - } - }, - "required": [ - "ID", - "value", - "valueType" - ] - } - } - } - } - }, - "activityBasisInfo": { - "description": "'Toiminnan lähtökohdat' section of the application, for KUVA applications", + }, + "activityInfo": { + "description": "'Toiminta' section of the application, for KUVA applications", + "type": "object", + "properties": { + "plannedActivityInfoArray": { + "type": "array", + "items": { + "type": "object", + "properties": { + "ID": { + "description": "Identifies the data of the array item", + "type": "string", + "enum": [ + "eventDaysCountHki", + "performanceCountHki", + "performanceCountAll", + "performanceVisitorsHki", + "performanceVisitorsAll", + "exhibitionCountHki", + "exhibitionCountAll", + "exhibitionVisitorsHki", + "exhibitionVisitorsAll", + "workshopCountHki", + "workshopCountAll", + "workshopVisitorsHki", + "workshopVisitorsAll", + "eventsHkiTotal", + "eventsTotal", + "eventsVisitorsHkiTotal", + "eventsVisitorsTotal", + "firstPublicPerformancesCount", + "premiereCountHki", + "firstPublicEventLocationHki", + "firstPublicEventLocationPostCode", + "isOwnedByCity", + "premisesCount", + "eventOrFestivalDates", + "firstPublicOccasionDate", + "projectStartDate", + "projectEndDate", + "detailedProjectDescription", + "otherKeyActivities" + ] + }, + "label": { + "description": "For future use, field's name in the UI", + "type": "string" + }, + "value": { + "type": "string" + }, + "valueType": { + "type": "string", + "enum": [ + "string", + "int", + "bool", + "datetime", + "float", + "double" + ] + } + }, + "required": [ + "ID", + "value", + "valueType" + ] + } + }, + "realizedActivityInfoArray": { + "type": "array", + "items": { + "type": "object", + "properties": { + "ID": { + "description": "Identifies the data of the array item", + "type": "string", + "enum": [ + "isEventOrFestival", + "eventDaysCount", + "performanceCountHki", + "performanceCountAll", + "performanceVisitorsHki", + "performanceVisitorsAll", + "exhibitionCountHki", + "exhibitionCountAll", + "exhibitionVisitorsHki", + "exhibitionVisitorsAll", + "workshopCountHki", + "workshopCountAll", + "workshopVisitorsHki", + "workshopVisitorsAll", + "eventsHkiTotal", + "eventsTotal", + "eventsVisitorsHkiTotal", + "eventsVisitorsTotal", + "firstPublicPerformancesCount", + "premiereCountHki", + "premisesCount", + "pupilsChildhoodAll", + "pupilsChildhoodGirls", + "pupilsChildhoodBoys", + "wideBasicStudiesAll", + "wideBasicStudiesGirls", + "wideBasicStudiesBoys", + "wideAdvancedStudiesAll", + "wideAdvancedStudiesGirls", + "wideAdvancedStudiesBoys", + "generalStudiesAll", + "generalStudiesGirls", + "generalStudiesBoys", + "teachingPersonnel", + "wayOfSelection", + "personalTeaching", + "freeStudents", + "lessonsChildhood", + "lessonsWideBasicStudies", + "lessonsWideAdvancedStudies", + "lessonsGeneralStudies", + "lessonsTotal" + ] + }, + "label": { + "description": "For future use, field's name in the UI", + "type": "string" + }, + "value": { + "type": "string" + }, + "valueType": { + "type": "string", + "enum": [ + "string", + "int", + "bool", + "datetime", + "float", + "double" + ] + } + }, + "required": [ + "ID", + "value", + "valueType" + ] + } + }, + "plannedPremisesArray": { + "description": "Information about several premises, each as one item/array of this array", + "type": "array", + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "ID": { + "description": "Identifies the data of the array item", + "type": "string", + "enum": [ + "premiseName", + "postCode", + "isOwnedByCity" + ] + }, + "label": { + "description": "For future use, field's name in the UI", + "type": "string" + }, + "value": { + "type": "string" + }, + "valueType": { + "type": "string", + "enum": [ + "string", + "int", + "bool", + "datetime", + "float", + "double" + ] + } + }, + "required": [ + "ID", + "value", + "valueType" + ] + } + } + }, + "realizedPremisesArray": { + "description": "Information about several premises, each as one item/array of this array", + "type": "array", + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "ID": { + "description": "Identifies the data of the array item", + "type": "string", + "enum": [ + "premiseName", + "postCode", + "isOwnedByCity", + "premiseType", + "premiseSuitability", + "citySection" + ] + }, + "label": { + "description": "For future use, field's name in the UI", + "type": "string" + }, + "value": { + "type": "string" + }, + "valueType": { + "type": "string", + "enum": [ + "string", + "int", + "bool", + "datetime", + "float", + "double" + ] + } + }, + "required": [ + "ID", + "value", + "valueType" + ] + } + } + } + } + }, + "activityBasisInfo": { + "description": "'Toiminnan lähtökohdat' section of the application, for KUVA applications", "type": "object", "properties": { "activityBasisArray": { @@ -933,20 +935,20 @@ "bool", "datetime", "float", - "double" + "double" ] } }, "required": [ "ID", - "label", + "label", "value", "valueType" ] } } } - }, + }, "customQuestionsInfo": { "description": "Made for 'Tarkemmat tiedot' but tried to be named generic enough so could be used in other places same as activityBasisInfo but that naming is too specific", "type": "object", @@ -988,7 +990,7 @@ } } } - }, + }, "eventInfoArray": { "description": "'Tapahtuman tiedot' and 'Kustannukset' (which is actually events info in application type 33) section of the application", "type": "array", @@ -1046,7 +1048,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -1096,7 +1098,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -1142,7 +1144,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -1154,40 +1156,40 @@ } } }, - "otherCompensationsInfoArray": { - "description": "Other compensations related information, like total sums of the arrays", - "type": "array", - "items": { - "type": "object", - "properties": { - "ID": { - "description": "Identifies the data of the array item", - "type": "string", - "enum": [ - "otherCompensationsTotal", - "otherAppliedCompensationsTotal" - ] - }, - "label": { - "description": "For future use, field's name in the UI", - "type": "string" - }, - "value": { - "type": "string" - }, - "valueType": { - "type": "string", - "enum": [ - "string", - "int", - "bool", - "datetime", - "float", - "double" - ] - } - } - } + "otherCompensationsInfoArray": { + "description": "Other compensations related information, like total sums of the arrays", + "type": "array", + "items": { + "type": "object", + "properties": { + "ID": { + "description": "Identifies the data of the array item", + "type": "string", + "enum": [ + "otherCompensationsTotal", + "otherAppliedCompensationsTotal" + ] + }, + "label": { + "description": "For future use, field's name in the UI", + "type": "string" + }, + "value": { + "type": "string" + }, + "valueType": { + "type": "string", + "enum": [ + "string", + "int", + "bool", + "datetime", + "float", + "double" + ] + } + } + } } } }, @@ -1230,7 +1232,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -1306,10 +1308,10 @@ "feeCommunity", "lastYearActiveMembersVisits", "lastYearOtherMemberVisits", - "youngPeopleParticipation", + "youngPeopleParticipation", "lastYearYoungPeopleParticipation", - "lastYearYoungPeopleParticipationDigital", - "participation" + "lastYearYoungPeopleParticipationDigital", + "participation" ] }, "label": { @@ -1327,7 +1329,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -1387,7 +1389,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -1410,11 +1412,11 @@ "enum": [ "adultsMale", "adultsFemale", - "adultsOther", + "adultsOther", "adultsAll", "juniorsMale", "juniorsFemale", - "juniorsOther", + "juniorsOther", "juniorsAll" ] }, @@ -1433,7 +1435,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -1477,7 +1479,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -1489,7 +1491,7 @@ } } }, - "hiredOfficialsInfo": { + "hiredOfficialsInfo": { "description": "Additional information for hiredOfficials.", "type": "array", "items": { @@ -1517,7 +1519,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -1564,7 +1566,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -1587,7 +1589,7 @@ "type": "string", "enum": [ "membershipsFeesTotal", - "descriptionOnYoungPeopleParticipation" + "descriptionOnYoungPeopleParticipation" ] }, "label": { @@ -1605,7 +1607,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -1634,48 +1636,48 @@ "enum": [ "adultMale", "adultFemale", - "adultOther", + "adultOther", "adultAll", "juniorMale", "juniorFemale", - "juniorOther", + "juniorOther", "juniorAll", "menGlobal", "menLocal", "womenGlobal", "womenLocal", - "adultOthersGlobal", - "adultOthersLocal", - "seniorMenGlobal", - "seniorMenLocal", - "seniorWomenGlobal", - "seniorWomenLocal", - "seniorOthersGlobal", - "seniorOthersLocal", + "adultOthersGlobal", + "adultOthersLocal", + "seniorMenGlobal", + "seniorMenLocal", + "seniorWomenGlobal", + "seniorWomenLocal", + "seniorOthersGlobal", + "seniorOthersLocal", "boysGlobal", "boysLocal", "girlsGlobal", "girlsLocal", - "juniorOthersGlobal", - "juniorOthersLocal", + "juniorOthersGlobal", + "juniorOthersLocal", "activeFanciersMenGlobal", "activeFanciersMenLocal", "activeFanciersWomenGlobal", "activeFanciersWomenLocal", - "activeFanciersAdultOthersGlobal", - "activeFanciersAdultOthersLocal", + "activeFanciersAdultOthersGlobal", + "activeFanciersAdultOthersLocal", "activeFanciersBoysGlobal", "activeFanciersBoysLocal", "activeFanciersGirlsGlobal", "activeFanciersGirlsLocal", - "activeFanciersJuniorOthersGlobal", + "activeFanciersJuniorOthersGlobal", "activeFanciersJuniorOthersLocal", - "activeFanciersSeniorMenGlobal", + "activeFanciersSeniorMenGlobal", "activeFanciersSeniorMenLocal", "activeFanciersSeniorWomenGlobal", "activeFanciersSeniorWomenLocal", - "activeFanciersSeniorOthersGlobal", - "activeFanciersSeniorOthersLocal", + "activeFanciersSeniorOthersGlobal", + "activeFanciersSeniorOthersLocal", "feeAdults", "feeJuniors", "allCoaches", @@ -1697,7 +1699,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -1721,18 +1723,18 @@ "type": "string", "enum": [ "sectionName", - "sectionOther", + "sectionOther", "men", "women", - "adultOthers", - "seniorMen", - "seniorWomen", - "seniorOthers", + "adultOthers", + "seniorMen", + "seniorWomen", + "seniorOthers", "boys", "girls", - "juniorOthers", + "juniorOthers", "adultHours", - "seniorHours", + "seniorHours", "juniorHours" ] }, @@ -1751,7 +1753,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -1813,13 +1815,13 @@ "bool", "datetime", "float", - "double" + "double" ] } }, "required": [ "ID", - "label", + "label", "value", "valueType" ] @@ -1843,7 +1845,7 @@ "totalSpecialGroupCount", "totalPersonnelCount", "totalRentCosts", - "digitalPremises" + "digitalPremises" ] }, "label": { @@ -1861,13 +1863,13 @@ "bool", "datetime", "float", - "double" + "double" ] } }, "required": [ "ID", - "label", + "label", "value", "valueType" ] @@ -1900,7 +1902,7 @@ "hoursPerDay", "lessorName", "lessorPhone", - "lessorPhoneOrEmail", + "lessorPhoneOrEmail", "lessorAddress", "lessorPostalCode", "lessorPostOffice" @@ -1921,7 +1923,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -1945,7 +1947,7 @@ "enum": [ "rentsInformation", "totalRentCosts", - "extraQuestion" + "extraQuestion" ] }, "label": { @@ -1963,7 +1965,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -2007,7 +2009,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -2041,17 +2043,17 @@ "eventOtherGrantedFrom", "employeeSalaries", "socialSecurityCosts", - "mandatoryAndOptionalPersonelCosts", + "mandatoryAndOptionalPersonelCosts", "travelCosts", - "travelAndTrainingCosts", + "travelAndTrainingCosts", "totalEmployeeCosts", - "otherValuables", - "isPartOfVOS", - "wasPartOfVOS", - "plannedCompensationsShareOfCosts", - "compensationsShareOfCosts", - "selfFinancingDescription", - "selfFinancingAmount" + "otherValuables", + "isPartOfVOS", + "wasPartOfVOS", + "plannedCompensationsShareOfCosts", + "compensationsShareOfCosts", + "selfFinancingDescription", + "selfFinancingAmount" ] }, "label": { @@ -2069,7 +2071,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -2081,497 +2083,497 @@ } }, "incomeGroupsArrayStatic": { - "description": "Each item in this array represents one income group.", - "type": "array", - "items": { - "type": "object", - "properties": { - "incomeGroupName": { - "type":"string", - "enum": [ - "general", - "budgetForProjectAndDevelopment", - "budgetForOperatingAndArtsTeaching" - ] - }, - "incomeRowsArrayStatic": { - "description": "Each item in this array represents one income line. The group in which it belongs in is identified by group name", - "type": "array", - "items": { - "type": "object", - "properties": { - "ID": { - "description": "Identifies the data of the array item", - "type": "string", - "enum": [ - "compensation", - "customerFees", - "donations", - "entryFees", - "otherCompensations", - "sponsorships", - "sales", - "compensationFromCulturalAffairs", - "otherCompensationFromCity", - "otherCompensationType", - "totalIncome", - "incomeWithoutCompensations", - "plannedStateOperativeSubvention", - "plannedOtherCompensations", - "ownFunding", - "financialFundingAndInterests", - "plannedTotalIncome", - "plannedTotalIncomeWithoutSubventions", - "plannedShareOfIncomeWithoutSubventions", - "stateOperativeSubvention", - "totalIncomeWithoutSubventions", - "shareOfIncomeWithoutSubventions" - ] - }, - "label": { - "description": "Field's name in the UI", - "type": "string" - }, - "value": { - "type": "string" - }, - "valueType": { - "type": "string", - "enum": [ - "string", - "int", - "bool", - "datetime", - "float", - "double" - ] - } - }, - "required": [ - "ID", - "label", - "value", - "valueType" - ] - } - }, - "otherIncomeRowsArrayStatic": { - "description": "Each item in this array represents one income line. The group in which it belongs in is identified by group name", - "type": "array", - "items": { - "type": "object", - "properties": { - "ID": { - "description": "Identifies the data of the array item", - "type": "string" - }, - "label": { - "description": "Field's name in the UI", - "type": "string" - }, - "value": { - "type": "string" - }, - "valueType": { - "type": "string", - "enum": [ - "string", - "int", - "bool", - "datetime", - "float", - "double" - ] - } - }, - "required": [ - "ID", - "label", - "value", - "valueType" - ] - } - }, - "groupsTotalSum": { - "type": "number" - } - } - } - }, - "costGroupsArrayStatic": { - "description": "Each item in this array represents one cost group.", - "type": "array", - "items": { - "type": "object", - "properties": { - "costGroupName": { - "type": "string", - "enum": [ - "general", - "budgetForProjectAndDevelopment", - "budgetForOperatingAndArtsTeaching", - "subventionUseCosts", - "costsForServicesAcquired", - "costsForMaterialsSuppliesAndGoods", - "otherCosts", - "useOfCustomerFeeIncome" - ] - }, - "costRowsArrayStatic": { - "description": "Each item in this array represents one cost line of the group.", - "type": "array", - "items": { - "type": "object", - "properties": { - "ID": { - "description": "Identifies the data of the array item", - "type": "string", - "enum": [ - "salaries", - "personnelSocialSecurityCosts", - "rentSum", - "materials", - "transport", - "food", - "pr", - "insurance", - "snacks", - "cleaning", - "premisesService", - "travel", - "heating", - "servicesTotal", - "water", - "electricity", - "suppliesTotal", - "admin", - "accounting", - "health", - "otherCostsTotal", - "services", - "supplies", - "useOfCustomerFeesTotal", - "totalCosts", - "netCosts", - "performerFees", - "otherFees", - "personnelSideCosts", - "generalCosts", - "permits", - "setsAndCostumes", - "equipment", - "premises", - "security", - "marketing", - "costsWithoutDeferredItems", - "generalCostsTotal", - "allCostsTotal", - "showCosts", - "travelCosts", - "transportCosts", - "plannedTotalCosts" - ] - }, - "label": { - "description": "Field's name in the UI", - "type": "string" - }, - "value": { - "type": "string" - }, - "valueType": { - "type": "string", - "enum": [ - "string", - "int", - "bool", - "datetime", - "float", - "double" - ] - } - }, - "required": [ - "ID", - "label", - "value", - "valueType" - ] - } - }, - "otherCostRowsArrayStatic": { - "description": "Each item in this array represents one cost line of the group.", - "type": "array", - "items": { - "type": "object", - "properties": { - "ID": { - "description": "Identifies the data of the array item", - "type": "string" - }, - "label": { - "description": "Field's name in the UI", - "type": "string" - }, - "value": { - "type": "string" - }, - "valueType": { - "type": "string", - "enum": [ - "string", - "int", - "bool", - "datetime", - "float", - "double" - ] - } - }, - "required": [ - "ID", - "label", - "value", - "valueType" - ] - } - }, - "groupsTotalSum": { - "type": "number" - } - } - } - }, - "incomeGroupsArrayDynamic": { - "description": "Each item in this array represents one income group.", - "type": "array", - "items": { - "type": "object", - "properties": { - "incomeGroupName": { - "type":"string" - }, - "incomeRowsArrayDynamic": { - "description": "Each item in this array represents one income line. The group in which it belongs in is identified by group name", - "type": "array", - "items": { - "type": "object", - "properties": { - "ID": { - "description": "Identifies the data of the array item", - "type": "string" - }, - "label": { - "description": "Field's name in the UI", - "type": "string" - }, - "value": { - "type": "string" - }, - "valueType": { - "type": "string", - "enum": [ - "string", - "int", - "bool", - "datetime", - "float", - "double" - ] - } - }, - "required": [ - "ID", - "label", - "value", - "valueType" - ] - } - }, - "otherIncomeGroupName": { - "type":"string" - }, - "otherIncomeRowsArrayDynamic": { - "description": "Each item in this array represents one income line. The group in which it belongs in is identified by group name", - "type": "array", - "items": { - "type": "object", - "properties": { - "ID": { - "description": "Identifies the data of the array item", - "type": "string" - }, - "label": { - "description": "Field's name in the UI", - "type": "string" - }, - "value": { - "type": "string" - }, - "valueType": { - "type": "string", - "enum": [ - "string", - "int", - "bool", - "datetime", - "float", - "double" - ] - } - }, - "required": [ - "ID", - "label", - "value", - "valueType" - ] - } - }, - "groupsTotalSum": { - "type": "number" - } - } - } - }, - "costGroupsArrayDynamic": { - "description": "Each item in this array represents one cost group.", - "type": "array", - "items": { - "type": "object", - "properties": { - "costGroupName": { - "type": "string" - }, - "costRowsArrayDynamic": { - "description": "Each item in this array represents one cost line of the group.", - "type": "array", - "items": { - "type": "object", - "properties": { - "ID": { - "description": "Identifies the data of the array item", - "type": "string" - }, - "label": { - "description": "Field's name in the UI", - "type": "string" - }, - "value": { - "type": "string" - }, - "valueType": { - "type": "string", - "enum": [ - "string", - "int", - "bool", - "datetime", - "float", - "double" - ] - } - }, - "required": [ - "ID", - "label", - "value", - "valueType" - ] - } - }, - "otherCostGroupName": { - "type": "string" - }, - "otherCostRowsArrayDynamic": { - "description": "Each item in this array represents one cost line of the group.", - "type": "array", - "items": { - "type": "object", - "properties": { - "ID": { - "description": "Identifies the data of the array item", - "type": "string" - }, - "label": { - "description": "Field's name in the UI", - "type": "string" - }, - "value": { - "type": "string" - }, - "valueType": { - "type": "string", - "enum": [ - "string", - "int", - "bool", - "datetime", - "float", - "double" - ] - } - }, - "required": [ - "ID", - "label", - "value", - "valueType" - ] - } - }, - "groupsTotalSum": { - "type": "number" - } - } - } - } - } - }, - "invoicesInfo": { - "description": "'Laskut' section of the application", - "type": "object", - "properties": { - "invoicesArray": { - "description": "Information about several invoices, each as one item/array of this array", + "description": "Each item in this array represents one income group.", "type": "array", "items": { - "type": "array", - "items": { - "type": "object", - "properties": { - "ID": { - "description": "Identifies the data of the array item", - "type": "string", - "enum": [ - "invoiceNumber", - "invoiceDate", - "invoiceSum", - "invoiceCopy" - ] - }, - "label": { - "description": "For future use, field's name in the UI", - "type": "string" - }, - "value": { - "type": "string" - }, - "valueType": { - "type": "string", - "enum": [ - "string", - "int", - "bool", - "datetime", - "float", - "double" - ] - } - }, - "required": [ - "ID", - "value", + "type": "object", + "properties": { + "incomeGroupName": { + "type": "string", + "enum": [ + "general", + "budgetForProjectAndDevelopment", + "budgetForOperatingAndArtsTeaching" + ] + }, + "incomeRowsArrayStatic": { + "description": "Each item in this array represents one income line. The group in which it belongs in is identified by group name", + "type": "array", + "items": { + "type": "object", + "properties": { + "ID": { + "description": "Identifies the data of the array item", + "type": "string", + "enum": [ + "compensation", + "customerFees", + "donations", + "entryFees", + "otherCompensations", + "sponsorships", + "sales", + "compensationFromCulturalAffairs", + "otherCompensationFromCity", + "otherCompensationType", + "totalIncome", + "incomeWithoutCompensations", + "plannedStateOperativeSubvention", + "plannedOtherCompensations", + "ownFunding", + "financialFundingAndInterests", + "plannedTotalIncome", + "plannedTotalIncomeWithoutSubventions", + "plannedShareOfIncomeWithoutSubventions", + "stateOperativeSubvention", + "totalIncomeWithoutSubventions", + "shareOfIncomeWithoutSubventions" + ] + }, + "label": { + "description": "Field's name in the UI", + "type": "string" + }, + "value": { + "type": "string" + }, + "valueType": { + "type": "string", + "enum": [ + "string", + "int", + "bool", + "datetime", + "float", + "double" + ] + } + }, + "required": [ + "ID", + "label", + "value", + "valueType" + ] + } + }, + "otherIncomeRowsArrayStatic": { + "description": "Each item in this array represents one income line. The group in which it belongs in is identified by group name", + "type": "array", + "items": { + "type": "object", + "properties": { + "ID": { + "description": "Identifies the data of the array item", + "type": "string" + }, + "label": { + "description": "Field's name in the UI", + "type": "string" + }, + "value": { + "type": "string" + }, + "valueType": { + "type": "string", + "enum": [ + "string", + "int", + "bool", + "datetime", + "float", + "double" + ] + } + }, + "required": [ + "ID", + "label", + "value", + "valueType" + ] + } + }, + "groupsTotalSum": { + "type": "number" + } + } + } + }, + "costGroupsArrayStatic": { + "description": "Each item in this array represents one cost group.", + "type": "array", + "items": { + "type": "object", + "properties": { + "costGroupName": { + "type": "string", + "enum": [ + "general", + "budgetForProjectAndDevelopment", + "budgetForOperatingAndArtsTeaching", + "subventionUseCosts", + "costsForServicesAcquired", + "costsForMaterialsSuppliesAndGoods", + "otherCosts", + "useOfCustomerFeeIncome" + ] + }, + "costRowsArrayStatic": { + "description": "Each item in this array represents one cost line of the group.", + "type": "array", + "items": { + "type": "object", + "properties": { + "ID": { + "description": "Identifies the data of the array item", + "type": "string", + "enum": [ + "salaries", + "personnelSocialSecurityCosts", + "rentSum", + "materials", + "transport", + "food", + "pr", + "insurance", + "snacks", + "cleaning", + "premisesService", + "travel", + "heating", + "servicesTotal", + "water", + "electricity", + "suppliesTotal", + "admin", + "accounting", + "health", + "otherCostsTotal", + "services", + "supplies", + "useOfCustomerFeesTotal", + "totalCosts", + "netCosts", + "performerFees", + "otherFees", + "personnelSideCosts", + "generalCosts", + "permits", + "setsAndCostumes", + "equipment", + "premises", + "security", + "marketing", + "costsWithoutDeferredItems", + "generalCostsTotal", + "allCostsTotal", + "showCosts", + "travelCosts", + "transportCosts", + "plannedTotalCosts" + ] + }, + "label": { + "description": "Field's name in the UI", + "type": "string" + }, + "value": { + "type": "string" + }, + "valueType": { + "type": "string", + "enum": [ + "string", + "int", + "bool", + "datetime", + "float", + "double" + ] + } + }, + "required": [ + "ID", + "label", + "value", + "valueType" + ] + } + }, + "otherCostRowsArrayStatic": { + "description": "Each item in this array represents one cost line of the group.", + "type": "array", + "items": { + "type": "object", + "properties": { + "ID": { + "description": "Identifies the data of the array item", + "type": "string" + }, + "label": { + "description": "Field's name in the UI", + "type": "string" + }, + "value": { + "type": "string" + }, + "valueType": { + "type": "string", + "enum": [ + "string", + "int", + "bool", + "datetime", + "float", + "double" + ] + } + }, + "required": [ + "ID", + "label", + "value", + "valueType" + ] + } + }, + "groupsTotalSum": { + "type": "number" + } + } + } + }, + "incomeGroupsArrayDynamic": { + "description": "Each item in this array represents one income group.", + "type": "array", + "items": { + "type": "object", + "properties": { + "incomeGroupName": { + "type": "string" + }, + "incomeRowsArrayDynamic": { + "description": "Each item in this array represents one income line. The group in which it belongs in is identified by group name", + "type": "array", + "items": { + "type": "object", + "properties": { + "ID": { + "description": "Identifies the data of the array item", + "type": "string" + }, + "label": { + "description": "Field's name in the UI", + "type": "string" + }, + "value": { + "type": "string" + }, + "valueType": { + "type": "string", + "enum": [ + "string", + "int", + "bool", + "datetime", + "float", + "double" + ] + } + }, + "required": [ + "ID", + "label", + "value", + "valueType" + ] + } + }, + "otherIncomeGroupName": { + "type": "string" + }, + "otherIncomeRowsArrayDynamic": { + "description": "Each item in this array represents one income line. The group in which it belongs in is identified by group name", + "type": "array", + "items": { + "type": "object", + "properties": { + "ID": { + "description": "Identifies the data of the array item", + "type": "string" + }, + "label": { + "description": "Field's name in the UI", + "type": "string" + }, + "value": { + "type": "string" + }, + "valueType": { + "type": "string", + "enum": [ + "string", + "int", + "bool", + "datetime", + "float", + "double" + ] + } + }, + "required": [ + "ID", + "label", + "value", + "valueType" + ] + } + }, + "groupsTotalSum": { + "type": "number" + } + } + } + }, + "costGroupsArrayDynamic": { + "description": "Each item in this array represents one cost group.", + "type": "array", + "items": { + "type": "object", + "properties": { + "costGroupName": { + "type": "string" + }, + "costRowsArrayDynamic": { + "description": "Each item in this array represents one cost line of the group.", + "type": "array", + "items": { + "type": "object", + "properties": { + "ID": { + "description": "Identifies the data of the array item", + "type": "string" + }, + "label": { + "description": "Field's name in the UI", + "type": "string" + }, + "value": { + "type": "string" + }, + "valueType": { + "type": "string", + "enum": [ + "string", + "int", + "bool", + "datetime", + "float", + "double" + ] + } + }, + "required": [ + "ID", + "label", + "value", + "valueType" + ] + } + }, + "otherCostGroupName": { + "type": "string" + }, + "otherCostRowsArrayDynamic": { + "description": "Each item in this array represents one cost line of the group.", + "type": "array", + "items": { + "type": "object", + "properties": { + "ID": { + "description": "Identifies the data of the array item", + "type": "string" + }, + "label": { + "description": "Field's name in the UI", + "type": "string" + }, + "value": { + "type": "string" + }, + "valueType": { + "type": "string", + "enum": [ + "string", + "int", + "bool", + "datetime", + "float", + "double" + ] + } + }, + "required": [ + "ID", + "label", + "value", + "valueType" + ] + } + }, + "groupsTotalSum": { + "type": "number" + } + } + } + } + } + }, + "invoicesInfo": { + "description": "'Laskut' section of the application", + "type": "object", + "properties": { + "invoicesArray": { + "description": "Information about several invoices, each as one item/array of this array", + "type": "array", + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "ID": { + "description": "Identifies the data of the array item", + "type": "string", + "enum": [ + "invoiceNumber", + "invoiceDate", + "invoiceSum", + "invoiceCopy" + ] + }, + "label": { + "description": "For future use, field's name in the UI", + "type": "string" + }, + "value": { + "type": "string" + }, + "valueType": { + "type": "string", + "enum": [ + "string", + "int", + "bool", + "datetime", + "float", + "double" + ] + } + }, + "required": [ + "ID", + "value", "valueType" ] } @@ -2591,7 +2593,7 @@ "enum": [ "projectName", "goal", - "content", + "content", "startDate", "endDate", "location", @@ -2599,9 +2601,9 @@ "membersLocal", "membersYoungest", "membersOldest", - "age7to28yearsLocal", - "all", - "extraQuestion" + "age7to28yearsLocal", + "all", + "extraQuestion" ] }, "label": { @@ -2619,7 +2621,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -2666,7 +2668,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -2761,7 +2763,7 @@ "bool", "datetime", "float", - "double" + "double" ] } }, @@ -2822,23 +2824,23 @@ "eventSource": { "type": "string" }, - "eventID": { - "type": "string" - }, - "eventTarget": { - "type": "string" - }, + "eventID": { + "type": "string" + }, + "eventTarget": { + "type": "string" + }, "timeUpdated": { "type": "string", "format": "date-time" }, - "timeCreated": { - "type": "string", - "format": "date-time" - }, - "eventDescription": { - "type": "string" - } + "timeCreated": { + "type": "string", + "format": "date-time" + }, + "eventDescription": { + "type": "string" + } } } }, @@ -2850,9 +2852,9 @@ "caseID": { "type": "string" }, - "messageID": { - "type": "string" - }, + "messageID": { + "type": "string" + }, "body": { "type": "string" }, From 33f5f788cb5d6f5aa680c8e7c4e0fb9943b2946b Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Mon, 11 Nov 2024 11:24:21 +0200 Subject: [PATCH 37/95] docs: UHF-10806: Example for form ID71 & schema updates (#1557) * UHF-10806: Example & schema updates * UHF-10806: Format --- conf/examples/esimerkki_71_HYTEEDYLEIS.json | 398 ++++++++++++++++++++ 1 file changed, 398 insertions(+) create mode 100644 conf/examples/esimerkki_71_HYTEEDYLEIS.json diff --git a/conf/examples/esimerkki_71_HYTEEDYLEIS.json b/conf/examples/esimerkki_71_HYTEEDYLEIS.json new file mode 100644 index 0000000000..08de06a81e --- /dev/null +++ b/conf/examples/esimerkki_71_HYTEEDYLEIS.json @@ -0,0 +1,398 @@ +{ + "compensation": { + "applicationInfoArray": [ + { + "ID": "applicationType", + "label": "Hakemustyyppi", + "value": "HYTEEDYLEIS", + "valueType": "string" + }, + { + "ID": "applicationTypeID", + "label": "Hakemustyypin numero", + "value": "71", + "valueType": "int" + }, + { + "ID": "formTimeStamp", + "label": "Hakemuksen/sanoman lähetyshetki", + "value": "2023-11-10T12:50:12.000", + "valueType": "datetime" + }, + { + "ID": "applicationNumber", + "label": "Hakemusnumero", + "value": "HYTEEDYLEIS-1", + "valueType": "string" + }, + { + "ID": "status", + "label": "Tila", + "value": "Vastaanotettu", + "valueType": "string" + }, + { + "ID": "actingYear", + "label": "Hakemusvuosi", + "value": "2023", + "valueType": "int" + } + ], + "currentAddressInfoArray": [ + { + "ID": "contactPerson", + "label": "Yhteyshenkilö", + "value": "Teemu Testaushenkilö", + "valueType": "string" + }, + { + "ID": "phoneNumber", + "label": "Puhelinnumero", + "value": "+358404040404", + "valueType": "string" + }, + { + "ID": "street", + "label": "Katuosoite", + "value": "Annankatu 18 Ö 905", + "valueType": "string" + }, + { + "ID": "city", + "label": "Postitoimipaikka", + "value": "Helsinki", + "valueType": "string" + }, + { + "ID": "postCode", + "label": "Postinumero", + "value": "00120", + "valueType": "string" + }, + { + "ID": "country", + "label": "Maa", + "value": "Suomi", + "valueType": "string" + } + ], + "applicantInfoArray": [ + { + "ID": "applicantType", + "label": "Hakijan tyyppi", + "value": "2", + "valueType": "string" + }, + { + "ID": "companyNumber", + "label": "Rekisterinumero", + "value": "5647641-1", + "valueType": "string" + }, + { + "ID": "communityOfficialName", + "label": "Yhteisön nimi", + "value": "TietoTesti Kh yleis 001 10062021", + "valueType": "string" + }, + { + "ID": "communityOfficialNameShort", + "label": "Yhteisön lyhenne", + "value": "TT ry", + "valueType": "string" + }, + { + "ID": "registrationDate", + "label": "Rekisteröimispäivä", + "value": "2021-01-01T00:00:00.000", + "valueType": "datetime" + }, + { + "ID": "foundingYear", + "label": "Perustamisvuosi", + "value": "2021", + "valueType": "int" + }, + { + "ID": "home", + "label": "Kotipaikka", + "value": "Helsinki", + "valueType": "string" + }, + { + "ID": "homePage", + "label": "www-sivut", + "value": "www.ttry.fi", + "valueType": "string" + }, + { + "ID": "email", + "label": "Sähköpostiosoite", + "value": "tsto@ttry.fi", + "valueType": "string" + } + ], + "applicantOfficialsArray": [ + [ + { + "ID": "email", + "label": "Sähköposti", + "value": "teemu@ttry.fi", + "valueType": "string" + }, + { + "ID": "role", + "label": "Rooli", + "value": "1", + "valueType": "string" + }, + { + "ID": "name", + "label": "Nimi", + "value": "Teemu Testaushenkilö", + "valueType": "string" + }, + { + "ID": "phone", + "label": "Puhelinnumero", + "value": "09-616527788", + "valueType": "string" + } + ] + ], + "bankAccountArray": [ + { + "ID": "accountNumber", + "label": "Tilinumero", + "value": "FI9640231442000454", + "valueType": "string" + } + ], + "compensationInfo": { + "generalInfoArray": [ + { + "ID": "purpose", + "label": "Haetun avustuksen käyttötarkoitus", + "value": "Käyttötarkoituksenamme on se että ... kts. liite 10.", + "valueType": "string" + }, + { + "ID": "explanation", + "label": "Selvitys edellisen avustuksen käytöstä", + "value": "Emme saaneet viime vuonna avustusta lainkaan.", + "valueType": "string" + }, + { + "ID": "whoBenefits", + "label": "Ketkä toiminnastanne erityisesti hyötyvät", + "value": "Kaikki kaikkialla.", + "valueType": "string" + }, + { + "ID": "changesOnSuccess", + "label": "Minkälaisia muutoksia tapahtuu, jos onnistutte?", + "value": "Asiat paranevat ympäriinsä.", + "valueType": "string" + }, + { + "ID": "resultsOfActivities", + "label": "Minkälaisia hyötyjä avustettavan toiminnan seurauksena syntyy?", + "value": "Positiivisia hyötyjä.", + "valueType": "string" + } + ], + "compensationArray": [ + [ + { + "ID": "subventionType", + "label": "Avustuslaji", + "value": "6", + "valueType": "string" + }, + { + "ID": "amount", + "label": "Euroa", + "value": "3533.00", + "valueType": "double" + } + ] + ] + }, + "otherCompensationsInfo": { + "otherCompensationsArray": [ + [ + { + "ID": "issuer", + "label": "Myöntäjä", + "value": "5", + "valueType": "string" + }, + { + "ID": "issuerName", + "label": "Myöntäjän nimi", + "value": "Joku Säätiö Sr.", + "valueType": "string" + }, + { + "ID": "year", + "label": "Vuosi", + "value": "2021", + "valueType": "string" + }, + { + "ID": "amount", + "label": "Euroa", + "value": "2800", + "valueType": "double" + }, + { + "ID": "purpose", + "label": "Tarkoitus", + "value": "Matkakuluihin ja muihin ylimääräisiin menoihin.", + "valueType": "string" + } + ] + ] + }, + "activitiesInfoArray": [ + { + "ID": "businessPurpose", + "label": "Toiminnan tarkoitus", + "value": "Meidän toimintamme tarkoituksena on että ...", + "valueType": "string" + }, + { + "ID": "communityPracticesBusiness", + "label": "Yhteisö harjoittaa liiketoimintaa", + "value": "false", + "valueType": "bool" + }, + { + "ID": "membersApplicantPersonGlobal", + "label": "Hakijayhteisö, henkilöjäseniä", + "value": "50", + "valueType": "int" + }, + { + "ID": "membersApplicantCommunityGlobal", + "label": "Hakijayhteisö, yhteisöjäseniä", + "value": "12", + "valueType": "int" + }, + { + "ID": "membersApplicantPersonLocal", + "label": "Hakijayhteisö, helsinkiläisiä henkilöjäseniä", + "value": "45", + "valueType": "int" + }, + { + "ID": "membersApplicantCommunityLocal", + "label": "Hakijayhteisö, helsinkiläisiä yhteisöjäseniä", + "value": "23", + "valueType": "int" + }, + { + "ID": "feePerson", + "label": "Jäsenmaksun suuruus, Henkilöjäsen euroa", + "value": "38", + "valueType": "double" + }, + { + "ID": "feeCommunity", + "label": "Jäsenmaksun suuruus, Yhteisöjäsen euroa", + "value": "98", + "valueType": "double" + } + ], + "additionalInformation": "Tällä kertaa ei ole muuta ilmoitettavaa tähän hakemukseen", + "senderInfoArray": [ + { + "ID": "firstname", + "label": "Etunimi", + "value": "Testaaja", + "valueType": "string" + }, + { + "ID": "lastname", + "label": "Sukunimi", + "value": "Tiina", + "valueType": "string" + }, + { + "ID": "personID", + "label": "Henkilötunnus", + "value": "171756-1234", + "valueType": "string" + }, + { + "ID": "userID", + "label": "Käyttäjätunnus", + "value": "testatii", + "valueType": "string" + }, + { + "ID": "email", + "label": "Sähköposti", + "value": "tiina.testaaja@testiyhdistys.fi", + "valueType": "string" + } + ] + }, + "attachmentsInfo": { + "attachmentsArray": [ + [ + { + "ID": "description", + "value": "Vuosikokouksen pöytäkirja", + "valueType": "string" + }, + { + "ID": "fileType", + "value": "1", + "valueType": "int" + }, + { + "ID": "isDeliveredLater", + "value": "false", + "valueType": "bool" + }, + { + "ID": "isIncludedInOtherFile", + "value": "true", + "valueType": "bool" + } + ], + [ + { + "ID": "description", + "value": "Muu liite", + "valueType": "string" + }, + { + "ID": "fileType", + "value": "1", + "valueType": "int" + }, + { + "ID": "isDeliveredLater", + "value": "true", + "valueType": "bool" + }, + { + "ID": "isIncludedInOtherFile", + "value": "false", + "valueType": "bool" + } + ] + ], + "generalInfoArray": [ + { + "ID": "extraInfo", + "label": "Lisäselvitys liitteistä", + "value": "Tässä voi olla joku kaikkia liitteitä yhteisesti koskeva selvitys", + "valueType": "string" + } + ] + }, + "formUpdate": false +} \ No newline at end of file From e0fca8deb61c931983e08dc8a6184f2e29516e73 Mon Sep 17 00:00:00 2001 From: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Date: Thu, 14 Nov 2024 07:40:31 +0200 Subject: [PATCH 38/95] Update configuration (#1556) --- composer.lock | 59 +++++++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/composer.lock b/composer.lock index b78c76db2e..690a6d4d42 100644 --- a/composer.lock +++ b/composer.lock @@ -4106,17 +4106,17 @@ }, { "name": "drupal/editoria11y", - "version": "2.1.19", + "version": "2.1.20", "source": { "type": "git", "url": "https://git.drupalcode.org/project/editoria11y.git", - "reference": "2.1.19" + "reference": "2.1.20" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/editoria11y-2.1.19.zip", - "reference": "2.1.19", - "shasum": "0ccf651071837e1ee6fcfb8fbb1c279d2fc1bc27" + "url": "https://ftp.drupal.org/files/projects/editoria11y-2.1.20.zip", + "reference": "2.1.20", + "shasum": "67f8e2eb17ed3d3db6cd93782ed1faa88c206640" }, "require": { "drupal/core": "^9 || ^10 || ^11" @@ -4127,8 +4127,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "2.1.19", - "datestamp": "1726514804", + "version": "2.1.20", + "datestamp": "1731097435", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -5933,16 +5933,16 @@ }, { "name": "drupal/helfi_platform_config", - "version": "4.7.0", + "version": "4.7.1", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config.git", - "reference": "1706882d4ccbeacf33175a30157a9495f891af39" + "reference": "680984849f6f204b63af73efb0ae531ba121ff58" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/1706882d4ccbeacf33175a30157a9495f891af39", - "reference": "1706882d4ccbeacf33175a30157a9495f891af39", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/680984849f6f204b63af73efb0ae531ba121ff58", + "reference": "680984849f6f204b63af73efb0ae531ba121ff58", "shasum": "" }, "require": { @@ -6057,6 +6057,9 @@ }, "drupal/view_unpublished": { "[#UHF-9256] Fix missing dynamic permission dependencies.": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-helfi-platform-config/cbb944ae79643ba7ed895db3fac7f3b3d90ac850/patches/view_unpublished_permissions_missing_dependencies.patch" + }, + "drupal/elasticsearch_connector": { + "https://drupal.org/i/3486375": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-helfi-platform-config/be8a1fba1a5ea2422154caf4fb7183dfc3917599/patches/3486375.patch" } } }, @@ -6065,10 +6068,10 @@ ], "description": "HELfi platform config", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.7.0", + "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.7.1", "issues": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/issues" }, - "time": "2024-11-08T08:46:24+00:00" + "time": "2024-11-11T07:44:23+00:00" }, { "name": "drupal/helfi_proxy", @@ -7766,7 +7769,7 @@ ], "authors": [ { - "name": "Berdir", + "name": "berdir", "homepage": "https://www.drupal.org/user/214652" }, { @@ -7786,7 +7789,7 @@ "homepage": "https://www.drupal.org/user/227761" }, { - "name": "Primsi", + "name": "primsi", "homepage": "https://www.drupal.org/user/282629" } ], @@ -11894,16 +11897,16 @@ }, { "name": "league/container", - "version": "4.2.3", + "version": "4.2.4", "source": { "type": "git", "url": "https://github.com/thephpleague/container.git", - "reference": "72f9bebe7bd623007782a40f5ec305661ab706d8" + "reference": "7ea728b013b9a156c409c6f0fc3624071b742dec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/container/zipball/72f9bebe7bd623007782a40f5ec305661ab706d8", - "reference": "72f9bebe7bd623007782a40f5ec305661ab706d8", + "url": "https://api.github.com/repos/thephpleague/container/zipball/7ea728b013b9a156c409c6f0fc3624071b742dec", + "reference": "7ea728b013b9a156c409c6f0fc3624071b742dec", "shasum": "" }, "require": { @@ -11964,7 +11967,7 @@ ], "support": { "issues": "https://github.com/thephpleague/container/issues", - "source": "https://github.com/thephpleague/container/tree/4.2.3" + "source": "https://github.com/thephpleague/container/tree/4.2.4" }, "funding": [ { @@ -11972,7 +11975,7 @@ "type": "github" } ], - "time": "2024-10-23T12:06:58+00:00" + "time": "2024-11-10T12:42:13+00:00" }, { "name": "league/flysystem", @@ -20701,23 +20704,23 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.9.0", + "version": "1.10.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "1fb5ba8d045f5dd984ebded5b1cc66f29459422d" + "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/1fb5ba8d045f5dd984ebded5b1cc66f29459422d", - "reference": "1fb5ba8d045f5dd984ebded5b1cc66f29459422d", + "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.18" + "phpstan/phpdoc-parser": "^1.18|^2.0" }, "require-dev": { "ext-tokenizer": "*", @@ -20753,9 +20756,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.9.0" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.10.0" }, - "time": "2024-11-03T20:11:34+00:00" + "time": "2024-11-09T15:12:26+00:00" }, { "name": "phpspec/prophecy", From 520938319eb59aca0e777a5e3d0794f07873456e Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Thu, 14 Nov 2024 07:40:50 +0200 Subject: [PATCH 39/95] =?UTF-8?q?feat:=20UHF-10556:=20Update=20dropdown=20?= =?UTF-8?q?options=20for=20My=C3=B6nnetyt=20/=20Haetut=20component.=20(#15?= =?UTF-8?q?58)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * UHF-10556: Add function to override issuer options. * UHF-10556: Remove STEA from dropdown options. * UHF-10556: Add tests for new field options + other things. * UHF-10556: Rollback yleisavustus? --- .../en/webform.webform.hyte_yleisavustus.yml | 2 - ...bform.kasvatus_ja_koulutus_toiminta_av.yml | 1 - ...bform.kasvatus_ja_koulutus_yleisavustu.yml | 1 - ...bform.kaupunginkanslia_tyollisyysavust.yml | 2 - .../en/webform.webform.kuva_projekti.yml | 1 - .../en/webform.webform.kuva_toiminta.yml | 1 - ....webform.liikunta_laitosavustushakemus.yml | 2 - ...bform.liikunta_toiminta_ja_tilankaytto.yml | 1 - ...bform.nuorisotoiminta_projektiavustush.yml | 2 - .../en/webform.webform.nuortoimpalkka.yml | 2 - ...bform.taide_ja_kulttuuri_kehittamisavu.yml | 1 - ...bform.taide_ja_kulttuuriavustukset_tai.yml | 1 - .../webform.webform.yleisavustushakemus.yml | 2 - ...webform.ymparistopalvelut_yleisavustus.yml | 1 - .../sv/webform.webform.hyte_yleisavustus.yml | 2 - ...bform.kasvatus_ja_koulutus_toiminta_av.yml | 1 - ...bform.kasvatus_ja_koulutus_yleisavustu.yml | 1 - ...bform.kaupunginkanslia_tyollisyysavust.yml | 2 - .../sv/webform.webform.kuva_projekti.yml | 1 - .../sv/webform.webform.kuva_toiminta.yml | 1 - ....webform.liikunta_laitosavustushakemus.yml | 2 - ...bform.liikunta_toiminta_ja_tilankaytto.yml | 1 - ...bform.nuorisotoiminta_projektiavustush.yml | 2 - .../sv/webform.webform.nuortoimpalkka.yml | 2 - ...bform.taide_ja_kulttuuri_kehittamisavu.yml | 1 - ...bform.taide_ja_kulttuuriavustukset_tai.yml | 1 - .../webform.webform.yleisavustushakemus.yml | 2 - ...webform.ymparistopalvelut_yleisavustus.yml | 1 - ...bform.asukasosallisuus_pienavustushake.yml | 2 - ...bform.asukasosallisuus_yleis_ja_toimin.yml | 2 - ...orm.webform.elderly_sports_and_culture.yml | 2 - .../cmi/webform.webform.hyte_yleisavustus.yml | 1 - ...bform.kasvatus_ja_koulutus_toiminta_av.yml | 1 - ...bform.kasvatus_ja_koulutus_yleisavustu.yml | 1 - ...bform.kaupunginkanslia_tyollisyysavust.yml | 2 - conf/cmi/webform.webform.kuva_projekti.yml | 1 - conf/cmi/webform.webform.kuva_toiminta.yml | 1 - ....webform.liikunta_laitosavustushakemus.yml | 2 - ...bform.liikunta_toiminta_ja_tilankaytto.yml | 1 - ...bform.nuorisotoiminta_projektiavustush.yml | 2 - conf/cmi/webform.webform.nuortoimpalkka.yml | 2 - ...bform.webform.performance_test_webform.yml | 2 - ...bform.taide_ja_kulttuuri_kehittamisavu.yml | 1 - ...bform.taide_ja_kulttuuriavustukset_tai.yml | 1 - ...webform.ymparistopalvelut_yleisavustus.yml | 1 - .../grants_handler/grants_handler.module | 26 ++ .../modules/custom/grants_handler/phpunit.xml | 85 +++--- .../src/ApplicationGetterService.php | 14 +- .../grants_handler/src/ApplicationHelpers.php | 86 ++++-- .../src/Unit/ApplicationHelpersExposed.php | 46 ++++ .../tests/src/Unit/ApplicationHelpersTest.php | 250 ++++++++++++++++++ .../src/Unit/ApplicationValidatorTest.php | 5 + 52 files changed, 445 insertions(+), 132 deletions(-) create mode 100644 public/modules/custom/grants_handler/tests/src/Unit/ApplicationHelpersExposed.php create mode 100644 public/modules/custom/grants_handler/tests/src/Unit/ApplicationHelpersTest.php diff --git a/conf/cmi/language/en/webform.webform.hyte_yleisavustus.yml b/conf/cmi/language/en/webform.webform.hyte_yleisavustus.yml index 71e89f43f0..ccc44651e3 100644 --- a/conf/cmi/language/en/webform.webform.hyte_yleisavustus.yml +++ b/conf/cmi/language/en/webform.webform.hyte_yleisavustus.yml @@ -82,7 +82,6 @@ elements: | 3: EU 4: Other 5: Foundation - 6: STEA '#title': ' Grant issuer' issuer_name: '#title': 'Issuer''s name' @@ -116,7 +115,6 @@ elements: | 3: EU 4: Other 5: Foundation - 6: STEA '#title': 'Grant issuer' issuer_name: '#title': 'Issuer''s name' diff --git a/conf/cmi/language/en/webform.webform.kasvatus_ja_koulutus_toiminta_av.yml b/conf/cmi/language/en/webform.webform.kasvatus_ja_koulutus_toiminta_av.yml index 4a52088f1a..baaa170e55 100644 --- a/conf/cmi/language/en/webform.webform.kasvatus_ja_koulutus_toiminta_av.yml +++ b/conf/cmi/language/en/webform.webform.kasvatus_ja_koulutus_toiminta_av.yml @@ -82,7 +82,6 @@ elements: | 3: EU 4: Other 5: Foundation - 6: STEA '#title': 'Grant issuer' issuer_name: '#title': 'Issuer''s name' diff --git a/conf/cmi/language/en/webform.webform.kasvatus_ja_koulutus_yleisavustu.yml b/conf/cmi/language/en/webform.webform.kasvatus_ja_koulutus_yleisavustu.yml index 9b176e5549..566f1b029a 100644 --- a/conf/cmi/language/en/webform.webform.kasvatus_ja_koulutus_yleisavustu.yml +++ b/conf/cmi/language/en/webform.webform.kasvatus_ja_koulutus_yleisavustu.yml @@ -84,7 +84,6 @@ elements: | 3: EU 4: Other 5: Foundation - 6: STEA '#title': ' Grant issuer' issuer_name: '#title': 'Issuer''s name' diff --git a/conf/cmi/language/en/webform.webform.kaupunginkanslia_tyollisyysavust.yml b/conf/cmi/language/en/webform.webform.kaupunginkanslia_tyollisyysavust.yml index 4061c225c6..a46e043077 100644 --- a/conf/cmi/language/en/webform.webform.kaupunginkanslia_tyollisyysavust.yml +++ b/conf/cmi/language/en/webform.webform.kaupunginkanslia_tyollisyysavust.yml @@ -85,7 +85,6 @@ elements: | 3: EU 4: Other 5: Foundation - 6: STEA '#title': 'Grant issuer' issuer_name: '#title': 'Issuer''s name' @@ -119,7 +118,6 @@ elements: | 3: EU 4: Other 5: Foundation - 6: STEA '#title': 'Grant issuer' issuer_name: '#title': 'Issuer''s name' diff --git a/conf/cmi/language/en/webform.webform.kuva_projekti.yml b/conf/cmi/language/en/webform.webform.kuva_projekti.yml index 25b02d5ff3..ba2f2050b7 100644 --- a/conf/cmi/language/en/webform.webform.kuva_projekti.yml +++ b/conf/cmi/language/en/webform.webform.kuva_projekti.yml @@ -104,7 +104,6 @@ elements: | 3: EU 4: Other 5: Foundation - 6: STEA '#title': 'Grant issuer' issuer_name: '#title': ' Issuer''s name' diff --git a/conf/cmi/language/en/webform.webform.kuva_toiminta.yml b/conf/cmi/language/en/webform.webform.kuva_toiminta.yml index 44d3d0a7e6..ce138a5ff9 100644 --- a/conf/cmi/language/en/webform.webform.kuva_toiminta.yml +++ b/conf/cmi/language/en/webform.webform.kuva_toiminta.yml @@ -119,7 +119,6 @@ elements: | 3: EU 4: Other 5: Foundation - 6: STEA '#title': 'Grant issuer' issuer_name: '#title': 'Issuer''s name' diff --git a/conf/cmi/language/en/webform.webform.liikunta_laitosavustushakemus.yml b/conf/cmi/language/en/webform.webform.liikunta_laitosavustushakemus.yml index 088d568abd..a4b7d15624 100644 --- a/conf/cmi/language/en/webform.webform.liikunta_laitosavustushakemus.yml +++ b/conf/cmi/language/en/webform.webform.liikunta_laitosavustushakemus.yml @@ -82,7 +82,6 @@ elements: | 3: EU 4: Other 5: Foundation - 6: STEA '#title': 'Grant issuer' issuer_name: '#title': 'Issuer''s name' @@ -116,7 +115,6 @@ elements: | 3: EU 4: Other 5: Foundation - 6: STEA '#title': 'Grant issuer' issuer_name: '#title': 'Issuer''s name' diff --git a/conf/cmi/language/en/webform.webform.liikunta_toiminta_ja_tilankaytto.yml b/conf/cmi/language/en/webform.webform.liikunta_toiminta_ja_tilankaytto.yml index 59405d65b8..0761b948d3 100644 --- a/conf/cmi/language/en/webform.webform.liikunta_toiminta_ja_tilankaytto.yml +++ b/conf/cmi/language/en/webform.webform.liikunta_toiminta_ja_tilankaytto.yml @@ -102,7 +102,6 @@ elements: | 3: EU 4: Other 5: Foundation - 6: STEA '#title': 'Grant issuer' issuer_name: '#title': 'Issuer''s name' diff --git a/conf/cmi/language/en/webform.webform.nuorisotoiminta_projektiavustush.yml b/conf/cmi/language/en/webform.webform.nuorisotoiminta_projektiavustush.yml index e0dcf1f654..be997d96c2 100644 --- a/conf/cmi/language/en/webform.webform.nuorisotoiminta_projektiavustush.yml +++ b/conf/cmi/language/en/webform.webform.nuorisotoiminta_projektiavustush.yml @@ -82,7 +82,6 @@ elements: | 3: EU 4: Other 5: Foundation - 6: STEA '#title': ' Grant issuer' issuer_name: '#title': 'Issuer''s name' @@ -115,7 +114,6 @@ elements: | 3: EU 4: Other 5: Foundation - 6: STEA '#title': 'Grant issuer' issuer_name: '#title': 'Issuer''s name' diff --git a/conf/cmi/language/en/webform.webform.nuortoimpalkka.yml b/conf/cmi/language/en/webform.webform.nuortoimpalkka.yml index a2275448d1..63a9f395b0 100644 --- a/conf/cmi/language/en/webform.webform.nuortoimpalkka.yml +++ b/conf/cmi/language/en/webform.webform.nuortoimpalkka.yml @@ -83,7 +83,6 @@ elements: | 3: EU 4: Other 5: Foundation - 6: STEA '#title': 'Grant issuer' issuer_name: '#title': 'Issuer''s name' @@ -117,7 +116,6 @@ elements: | 3: EU 4: Other 5: Foundation - 6: STEA '#title': 'Grant issuer' issuer_name: '#title': 'Issuer''s name' diff --git a/conf/cmi/language/en/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml b/conf/cmi/language/en/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml index 6a02c17a6f..1445e29f01 100644 --- a/conf/cmi/language/en/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml +++ b/conf/cmi/language/en/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml @@ -126,7 +126,6 @@ elements: | 3: EU 4: Other 5: Foundation - 6: STEA '#title': 'Grant issuer' issuer_name: '#title': ' Issuer''s name' diff --git a/conf/cmi/language/en/webform.webform.taide_ja_kulttuuriavustukset_tai.yml b/conf/cmi/language/en/webform.webform.taide_ja_kulttuuriavustukset_tai.yml index 38bae87209..7f97d89e9b 100644 --- a/conf/cmi/language/en/webform.webform.taide_ja_kulttuuriavustukset_tai.yml +++ b/conf/cmi/language/en/webform.webform.taide_ja_kulttuuriavustukset_tai.yml @@ -91,7 +91,6 @@ elements: | 3: EU 4: Other 5: Foundation - 6: STEA '#title': 'Grant issuer' issuer_name: '#title': 'Issuer''s name' diff --git a/conf/cmi/language/en/webform.webform.yleisavustushakemus.yml b/conf/cmi/language/en/webform.webform.yleisavustushakemus.yml index 9460ee28c3..3c9378bc81 100644 --- a/conf/cmi/language/en/webform.webform.yleisavustushakemus.yml +++ b/conf/cmi/language/en/webform.webform.yleisavustushakemus.yml @@ -80,7 +80,6 @@ elements: | 3: EU 4: Other 5: Foundation - 6: STEA '#title': 'Grant issuer' issuer_name: '#title': 'Issuer''s name' @@ -114,7 +113,6 @@ elements: | 3: EU 4: Other 5: Foundation - 6: STEA '#title': 'Grant issuer' issuer_name: '#title': 'Issuer''s name' diff --git a/conf/cmi/language/en/webform.webform.ymparistopalvelut_yleisavustus.yml b/conf/cmi/language/en/webform.webform.ymparistopalvelut_yleisavustus.yml index 7ec7f0db9c..8bbdf3a774 100644 --- a/conf/cmi/language/en/webform.webform.ymparistopalvelut_yleisavustus.yml +++ b/conf/cmi/language/en/webform.webform.ymparistopalvelut_yleisavustus.yml @@ -83,7 +83,6 @@ elements: | 3: EU 4: Other 5: Foundation - 6: STEA '#title': 'Grant issuer' issuer_name: '#title': 'Issuer''s name' diff --git a/conf/cmi/language/sv/webform.webform.hyte_yleisavustus.yml b/conf/cmi/language/sv/webform.webform.hyte_yleisavustus.yml index c19f2645b4..4f1a00f00a 100644 --- a/conf/cmi/language/sv/webform.webform.hyte_yleisavustus.yml +++ b/conf/cmi/language/sv/webform.webform.hyte_yleisavustus.yml @@ -85,7 +85,6 @@ elements: | 3: EU 4: Övrig 5: Fundament - 6: STEA '#title': Bidragsgivare issuer_name: '#title': 'Emittentens namn' @@ -119,7 +118,6 @@ elements: | 3: EU 4: Övrig 5: Fundament - 6: STEA '#title': Bidragsgivare issuer_name: '#title': 'Emittentens namn' diff --git a/conf/cmi/language/sv/webform.webform.kasvatus_ja_koulutus_toiminta_av.yml b/conf/cmi/language/sv/webform.webform.kasvatus_ja_koulutus_toiminta_av.yml index cfc0cd2964..568dfd85ba 100644 --- a/conf/cmi/language/sv/webform.webform.kasvatus_ja_koulutus_toiminta_av.yml +++ b/conf/cmi/language/sv/webform.webform.kasvatus_ja_koulutus_toiminta_av.yml @@ -85,7 +85,6 @@ elements: | 3: EU 4: Övrig 5: Fundament - 6: STEA '#title': Bidragsgivare issuer_name: '#title': 'Emittentens namn' diff --git a/conf/cmi/language/sv/webform.webform.kasvatus_ja_koulutus_yleisavustu.yml b/conf/cmi/language/sv/webform.webform.kasvatus_ja_koulutus_yleisavustu.yml index fa0f7d4b54..435b9a5907 100644 --- a/conf/cmi/language/sv/webform.webform.kasvatus_ja_koulutus_yleisavustu.yml +++ b/conf/cmi/language/sv/webform.webform.kasvatus_ja_koulutus_yleisavustu.yml @@ -87,7 +87,6 @@ elements: | 3: EU 4: Övrig 5: Fundament - 6: STEA '#title': Bidragsgivare issuer_name: '#title': 'Emittentens namn' diff --git a/conf/cmi/language/sv/webform.webform.kaupunginkanslia_tyollisyysavust.yml b/conf/cmi/language/sv/webform.webform.kaupunginkanslia_tyollisyysavust.yml index 7d24e07b6b..b1bd2a72a9 100644 --- a/conf/cmi/language/sv/webform.webform.kaupunginkanslia_tyollisyysavust.yml +++ b/conf/cmi/language/sv/webform.webform.kaupunginkanslia_tyollisyysavust.yml @@ -88,7 +88,6 @@ elements: | 3: EU 4: Övrig 5: Fundament - 6: STEA '#title': Bidragsgivare issuer_name: '#title': 'Emittentens namn' @@ -122,7 +121,6 @@ elements: | 3: EU 4: Övrig 5: Fundament - 6: STEA '#title': Bidragsgivare issuer_name: '#title': 'Emittentens namn' diff --git a/conf/cmi/language/sv/webform.webform.kuva_projekti.yml b/conf/cmi/language/sv/webform.webform.kuva_projekti.yml index 2962bcbd20..16930ff1b1 100644 --- a/conf/cmi/language/sv/webform.webform.kuva_projekti.yml +++ b/conf/cmi/language/sv/webform.webform.kuva_projekti.yml @@ -107,7 +107,6 @@ elements: | 3: EU 4: Övrig 5: Fundament - 6: STEA '#title': Bidragsgivare issuer_name: '#title': 'Emittentens namn' diff --git a/conf/cmi/language/sv/webform.webform.kuva_toiminta.yml b/conf/cmi/language/sv/webform.webform.kuva_toiminta.yml index 417f267211..40d69cdbda 100644 --- a/conf/cmi/language/sv/webform.webform.kuva_toiminta.yml +++ b/conf/cmi/language/sv/webform.webform.kuva_toiminta.yml @@ -121,7 +121,6 @@ elements: | 3: EU 4: Övrig 5: Fundament - 6: STEA '#title': Bidragsgivare issuer_name: '#title': 'Emittentens namn' diff --git a/conf/cmi/language/sv/webform.webform.liikunta_laitosavustushakemus.yml b/conf/cmi/language/sv/webform.webform.liikunta_laitosavustushakemus.yml index 363a343e43..7c3b12d8d7 100644 --- a/conf/cmi/language/sv/webform.webform.liikunta_laitosavustushakemus.yml +++ b/conf/cmi/language/sv/webform.webform.liikunta_laitosavustushakemus.yml @@ -85,7 +85,6 @@ elements: | 3: EU 4: Övrig 5: Fundament - 6: STEA '#title': Bidragsgivare issuer_name: '#title': 'Emittentens namn' @@ -119,7 +118,6 @@ elements: | 3: EU 4: Övrig 5: Fundament - 6: STEA '#title': Bidragsgivare issuer_name: '#title': 'Emittentens namn' diff --git a/conf/cmi/language/sv/webform.webform.liikunta_toiminta_ja_tilankaytto.yml b/conf/cmi/language/sv/webform.webform.liikunta_toiminta_ja_tilankaytto.yml index 92016a206a..2acd6606d1 100644 --- a/conf/cmi/language/sv/webform.webform.liikunta_toiminta_ja_tilankaytto.yml +++ b/conf/cmi/language/sv/webform.webform.liikunta_toiminta_ja_tilankaytto.yml @@ -107,7 +107,6 @@ elements: | 3: EU 4: Övrig 5: Fundament - 6: STEA '#title': Bidragsgivare issuer_name: '#title': 'Emittentens namn' diff --git a/conf/cmi/language/sv/webform.webform.nuorisotoiminta_projektiavustush.yml b/conf/cmi/language/sv/webform.webform.nuorisotoiminta_projektiavustush.yml index d7cdb0433f..8e3c9497f4 100644 --- a/conf/cmi/language/sv/webform.webform.nuorisotoiminta_projektiavustush.yml +++ b/conf/cmi/language/sv/webform.webform.nuorisotoiminta_projektiavustush.yml @@ -86,7 +86,6 @@ elements: | 3: EU 4: Övrig 5: Fundament - 6: STEA '#title': Bidragsgivare issuer_name: '#title': 'Emittentens namn' @@ -119,7 +118,6 @@ elements: | 3: EU 4: Övrig 5: Fundament - 6: STEA '#title': Bidragsgivare issuer_name: '#title': 'Emittentens namn' diff --git a/conf/cmi/language/sv/webform.webform.nuortoimpalkka.yml b/conf/cmi/language/sv/webform.webform.nuortoimpalkka.yml index 67e710adc4..970d0e6993 100644 --- a/conf/cmi/language/sv/webform.webform.nuortoimpalkka.yml +++ b/conf/cmi/language/sv/webform.webform.nuortoimpalkka.yml @@ -86,7 +86,6 @@ elements: | 3: EU 4: Övrig 5: Fundament - 6: STEA '#title': Bidragsgivare issuer_name: '#title': 'Emittentens namn' @@ -120,7 +119,6 @@ elements: | 3: EU 4: Övrig 5: Fundament - 6: STEA '#title': Bidragsgivare issuer_name: '#title': 'Emittentens namn' diff --git a/conf/cmi/language/sv/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml b/conf/cmi/language/sv/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml index ecf8d4620c..62fdc5fe86 100644 --- a/conf/cmi/language/sv/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml +++ b/conf/cmi/language/sv/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml @@ -129,7 +129,6 @@ elements: | 3: EU 4: Övrig 5: Fundament - 6: STEA '#title': Bidragsgivare issuer_name: '#title': 'Emittentens namn' diff --git a/conf/cmi/language/sv/webform.webform.taide_ja_kulttuuriavustukset_tai.yml b/conf/cmi/language/sv/webform.webform.taide_ja_kulttuuriavustukset_tai.yml index 51e4b97aae..7327233be4 100644 --- a/conf/cmi/language/sv/webform.webform.taide_ja_kulttuuriavustukset_tai.yml +++ b/conf/cmi/language/sv/webform.webform.taide_ja_kulttuuriavustukset_tai.yml @@ -94,7 +94,6 @@ elements: | 3: EU 4: Övrig 5: Fundament - 6: STEA '#title': Bidragsgivare issuer_name: '#title': 'Emittentens namn' diff --git a/conf/cmi/language/sv/webform.webform.yleisavustushakemus.yml b/conf/cmi/language/sv/webform.webform.yleisavustushakemus.yml index 67f569e281..25fe61efc0 100644 --- a/conf/cmi/language/sv/webform.webform.yleisavustushakemus.yml +++ b/conf/cmi/language/sv/webform.webform.yleisavustushakemus.yml @@ -85,7 +85,6 @@ elements: | 3: EU 4: Övrig 5: Fundament - 6: STEA '#title': Bidragsgivare issuer_name: '#title': 'Emittentens namn' @@ -119,7 +118,6 @@ elements: | 3: EU 4: Övrig 5: Fundament - 6: STEA '#title': Bidragsgivare issuer_name: '#title': 'Emittentens namn' diff --git a/conf/cmi/language/sv/webform.webform.ymparistopalvelut_yleisavustus.yml b/conf/cmi/language/sv/webform.webform.ymparistopalvelut_yleisavustus.yml index 4832d6732a..c7fddcabfc 100644 --- a/conf/cmi/language/sv/webform.webform.ymparistopalvelut_yleisavustus.yml +++ b/conf/cmi/language/sv/webform.webform.ymparistopalvelut_yleisavustus.yml @@ -87,7 +87,6 @@ elements: | 3: EU 4: Övrig 5: Fundament - 6: STEA '#title': Bidragsgivare issuer_name: '#title': 'Emittentens namn' diff --git a/conf/cmi/webform.webform.asukasosallisuus_pienavustushake.yml b/conf/cmi/webform.webform.asukasosallisuus_pienavustushake.yml index 2fbfa8523a..e3583b6ee3 100644 --- a/conf/cmi/webform.webform.asukasosallisuus_pienavustushake.yml +++ b/conf/cmi/webform.webform.asukasosallisuus_pienavustushake.yml @@ -265,7 +265,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: @@ -354,7 +353,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: diff --git a/conf/cmi/webform.webform.asukasosallisuus_yleis_ja_toimin.yml b/conf/cmi/webform.webform.asukasosallisuus_yleis_ja_toimin.yml index 594b01da19..c7aa003840 100644 --- a/conf/cmi/webform.webform.asukasosallisuus_yleis_ja_toimin.yml +++ b/conf/cmi/webform.webform.asukasosallisuus_yleis_ja_toimin.yml @@ -271,7 +271,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: @@ -360,7 +359,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: diff --git a/conf/cmi/webform.webform.elderly_sports_and_culture.yml b/conf/cmi/webform.webform.elderly_sports_and_culture.yml index 727b1593c8..f47562bb05 100644 --- a/conf/cmi/webform.webform.elderly_sports_and_culture.yml +++ b/conf/cmi/webform.webform.elderly_sports_and_culture.yml @@ -351,7 +351,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: @@ -440,7 +439,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: diff --git a/conf/cmi/webform.webform.hyte_yleisavustus.yml b/conf/cmi/webform.webform.hyte_yleisavustus.yml index 75267ef5cd..2450bdf09a 100644 --- a/conf/cmi/webform.webform.hyte_yleisavustus.yml +++ b/conf/cmi/webform.webform.hyte_yleisavustus.yml @@ -309,7 +309,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: diff --git a/conf/cmi/webform.webform.kasvatus_ja_koulutus_toiminta_av.yml b/conf/cmi/webform.webform.kasvatus_ja_koulutus_toiminta_av.yml index 8ba573d9b5..4f44ff90a9 100644 --- a/conf/cmi/webform.webform.kasvatus_ja_koulutus_toiminta_av.yml +++ b/conf/cmi/webform.webform.kasvatus_ja_koulutus_toiminta_av.yml @@ -313,7 +313,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: diff --git a/conf/cmi/webform.webform.kasvatus_ja_koulutus_yleisavustu.yml b/conf/cmi/webform.webform.kasvatus_ja_koulutus_yleisavustu.yml index e9992f05fc..c0ff3ce26c 100644 --- a/conf/cmi/webform.webform.kasvatus_ja_koulutus_yleisavustu.yml +++ b/conf/cmi/webform.webform.kasvatus_ja_koulutus_yleisavustu.yml @@ -319,7 +319,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: diff --git a/conf/cmi/webform.webform.kaupunginkanslia_tyollisyysavust.yml b/conf/cmi/webform.webform.kaupunginkanslia_tyollisyysavust.yml index cb1c7ccd4e..1070f3f136 100644 --- a/conf/cmi/webform.webform.kaupunginkanslia_tyollisyysavust.yml +++ b/conf/cmi/webform.webform.kaupunginkanslia_tyollisyysavust.yml @@ -318,7 +318,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: @@ -407,7 +406,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: diff --git a/conf/cmi/webform.webform.kuva_projekti.yml b/conf/cmi/webform.webform.kuva_projekti.yml index b72a931f4b..c68ba11f3c 100644 --- a/conf/cmi/webform.webform.kuva_projekti.yml +++ b/conf/cmi/webform.webform.kuva_projekti.yml @@ -385,7 +385,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: diff --git a/conf/cmi/webform.webform.kuva_toiminta.yml b/conf/cmi/webform.webform.kuva_toiminta.yml index 8dd86f607e..b5978324ff 100644 --- a/conf/cmi/webform.webform.kuva_toiminta.yml +++ b/conf/cmi/webform.webform.kuva_toiminta.yml @@ -440,7 +440,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: diff --git a/conf/cmi/webform.webform.liikunta_laitosavustushakemus.yml b/conf/cmi/webform.webform.liikunta_laitosavustushakemus.yml index 7ee910e8df..219c12af33 100644 --- a/conf/cmi/webform.webform.liikunta_laitosavustushakemus.yml +++ b/conf/cmi/webform.webform.liikunta_laitosavustushakemus.yml @@ -322,7 +322,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: @@ -411,7 +410,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: diff --git a/conf/cmi/webform.webform.liikunta_toiminta_ja_tilankaytto.yml b/conf/cmi/webform.webform.liikunta_toiminta_ja_tilankaytto.yml index 31e6a61256..615a789c9c 100644 --- a/conf/cmi/webform.webform.liikunta_toiminta_ja_tilankaytto.yml +++ b/conf/cmi/webform.webform.liikunta_toiminta_ja_tilankaytto.yml @@ -452,7 +452,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: diff --git a/conf/cmi/webform.webform.nuorisotoiminta_projektiavustush.yml b/conf/cmi/webform.webform.nuorisotoiminta_projektiavustush.yml index 502b597395..063b7b2304 100644 --- a/conf/cmi/webform.webform.nuorisotoiminta_projektiavustush.yml +++ b/conf/cmi/webform.webform.nuorisotoiminta_projektiavustush.yml @@ -342,7 +342,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: @@ -429,7 +428,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: diff --git a/conf/cmi/webform.webform.nuortoimpalkka.yml b/conf/cmi/webform.webform.nuortoimpalkka.yml index df748255a8..345e7e1638 100644 --- a/conf/cmi/webform.webform.nuortoimpalkka.yml +++ b/conf/cmi/webform.webform.nuortoimpalkka.yml @@ -367,7 +367,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: @@ -456,7 +455,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: diff --git a/conf/cmi/webform.webform.performance_test_webform.yml b/conf/cmi/webform.webform.performance_test_webform.yml index 97e84dce4f..a64de203bb 100644 --- a/conf/cmi/webform.webform.performance_test_webform.yml +++ b/conf/cmi/webform.webform.performance_test_webform.yml @@ -125,7 +125,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: @@ -214,7 +213,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: diff --git a/conf/cmi/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml b/conf/cmi/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml index 0da0e95333..de9456b7e7 100644 --- a/conf/cmi/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml +++ b/conf/cmi/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml @@ -363,7 +363,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: diff --git a/conf/cmi/webform.webform.taide_ja_kulttuuriavustukset_tai.yml b/conf/cmi/webform.webform.taide_ja_kulttuuriavustukset_tai.yml index 85d272c137..7387ded3b7 100644 --- a/conf/cmi/webform.webform.taide_ja_kulttuuriavustukset_tai.yml +++ b/conf/cmi/webform.webform.taide_ja_kulttuuriavustukset_tai.yml @@ -346,7 +346,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: diff --git a/conf/cmi/webform.webform.ymparistopalvelut_yleisavustus.yml b/conf/cmi/webform.webform.ymparistopalvelut_yleisavustus.yml index f310eb36ec..9d57d1198c 100644 --- a/conf/cmi/webform.webform.ymparistopalvelut_yleisavustus.yml +++ b/conf/cmi/webform.webform.ymparistopalvelut_yleisavustus.yml @@ -314,7 +314,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: diff --git a/public/modules/custom/grants_handler/grants_handler.module b/public/modules/custom/grants_handler/grants_handler.module index ca838b7b9e..d8680f8d66 100644 --- a/public/modules/custom/grants_handler/grants_handler.module +++ b/public/modules/custom/grants_handler/grants_handler.module @@ -648,6 +648,31 @@ function _grants_handler_alter_number_fields(&$element): void { } } +/** + * Function to update custom component dropdown value rather than via config. + * + * @param array $form + * The form. + * + * @return void + * No return? + */ +function grants_handler__update_issuer_dropdown(array &$form): void { + + $tOpts = ['context' => 'Grant Issuers']; + + $newOptions = [ + 1 => t('State', [], $tOpts), + 3 => t('EU', [], $tOpts), + 4 => t('Other', [], $tOpts), + 5 => t('Foundation', [], $tOpts), + ]; + + // Call the method with multiple field names. + ApplicationHelpers::updateFieldOptions($form, $newOptions, ['myonnetty_avustus', 'issuer']); + ApplicationHelpers::updateFieldOptions($form, $newOptions, ['haettu_avustus_tieto', 'issuer']); +} + /** * Implements hook_form_FORM_ID_alter(). */ @@ -667,6 +692,7 @@ function grants_handler_webform_submission_form_alter(&$form, FormStateInterface $form['actions']['wizard_next']['#validate'][] = '::noValidate'; _grants_handler_alter_number_fields($form); + grants_handler__update_issuer_dropdown($form); $grants_formnavigation_helper = \Drupal::service('grants_handler.navigation_helper'); $all_errors = []; diff --git a/public/modules/custom/grants_handler/phpunit.xml b/public/modules/custom/grants_handler/phpunit.xml index fd7672ac52..ec1307b36e 100644 --- a/public/modules/custom/grants_handler/phpunit.xml +++ b/public/modules/custom/grants_handler/phpunit.xml @@ -1,44 +1,47 @@ - - - - - - - - - - - ./tests/src/Kernel - - - - - - - - - ./src - ./*.module - - - - - - + xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.5/phpunit.xsd" + bootstrap="../../../core/tests/bootstrap.php" + colors="true" + cacheResultFile=".phpunit.cache/test-results" + executionOrder="depends,defects" + forceCoversAnnotation="true" + beStrictAboutTestsThatDoNotTestAnything="true" + beStrictAboutOutputDuringTests="true" + beStrictAboutChangesToGlobalState="true" + beStrictAboutCoversAnnotation="true" + printerClass="\Drupal\Tests\Listeners\HtmlOutputPrinter" + failOnRisky="true" + failOnWarning="true" + verbose="true"> + + + + + + + + + + + ./tests/src/Kernel + + + ./tests/src/Unit + + + + + + + + + ./src + ./*.module + + + + + + diff --git a/public/modules/custom/grants_handler/src/ApplicationGetterService.php b/public/modules/custom/grants_handler/src/ApplicationGetterService.php index 8e04eb45ee..0372e01b86 100644 --- a/public/modules/custom/grants_handler/src/ApplicationGetterService.php +++ b/public/modules/custom/grants_handler/src/ApplicationGetterService.php @@ -336,7 +336,7 @@ public function submissionObjectFromApplicationNumber( } // Load definition. - $dataDefinition = ApplicationHelpers::getDataDefinition($document->getType()); + $dataDefinition = $this->getDataDefinition($document->getType()); // Build data. $sData = DocumentContentMapper::documentContentToTypedData( @@ -357,6 +357,18 @@ public function submissionObjectFromApplicationNumber( return $submissionObject; } + /** + * Get data definition class from application type. + * + * @param string $type + * Type of the application. + */ + public function getDataDefinition(string $type) { + $defClass = Helpers::getApplicationTypes()[$type]['dataDefinition']['definitionClass']; + $defId = Helpers::getApplicationTypes()[$type]['dataDefinition']['definitionId']; + return $defClass::create($defId); + } + /** * Extract webform id from application number string. * diff --git a/public/modules/custom/grants_handler/src/ApplicationHelpers.php b/public/modules/custom/grants_handler/src/ApplicationHelpers.php index ae7ca2219e..110f4c5a6e 100644 --- a/public/modules/custom/grants_handler/src/ApplicationHelpers.php +++ b/public/modules/custom/grants_handler/src/ApplicationHelpers.php @@ -35,11 +35,12 @@ public static function createApplicationNumber(WebformSubmission &$submission, $ $appParam = Helpers::getAppEnv(); $serial = $submission->serial(); - $applicationType = $submission->getWebform() - ->getThirdPartySetting('grants_metadata', 'applicationType'); - $applicationTypeId = $submission->getWebform() - ->getThirdPartySetting('grants_metadata', 'applicationTypeID'); + $webform = $submission->getWebform(); + $third_party_settings = $webform->getThirdPartySettings('grants_metadata'); + + $applicationType = $third_party_settings['applicationType'] ?? NULL; + $applicationTypeId = $third_party_settings['applicationTypeID'] ?? NULL; if ($useOldFormat) { return self::getApplicationNumberInEnvFormatOldFormat($appParam, $applicationType, $serial); @@ -67,8 +68,10 @@ public static function getAvailableApplicationNumber(WebformSubmission &$submiss $appParam = Helpers::getAppEnv(); $serial = $submission->serial(); $webform_id = $submission->getWebform()->id(); - $applicationTypeId = $submission->getWebform() - ->getThirdPartySetting('grants_metadata', 'applicationTypeID'); + + $thirdPartySettings = $submission->getWebform()->getThirdPartySettings('grants_metadata'); + + $applicationTypeId = $thirdPartySettings['applicationTypeID'] ?? NULL; $lastSerialKey = $applicationTypeId . '_' . $appParam; $kvService = \Drupal::service('keyvalue.database'); @@ -120,7 +123,7 @@ public static function getAvailableApplicationNumber(WebformSubmission &$submiss /** * Format application number based by the enviroment. */ - private static function getApplicationNumberInEnvFormat($appParam, $typeId, $serial): string { + protected static function getApplicationNumberInEnvFormat($appParam, $typeId, $serial): string { $applicationNumber = $appParam . '-' . str_pad($typeId, 3, '0', STR_PAD_LEFT) . '-' . str_pad($serial, 7, '0', STR_PAD_LEFT); @@ -136,7 +139,7 @@ private static function getApplicationNumberInEnvFormat($appParam, $typeId, $ser /** * Format application number based by the enviroment in old format. */ - private static function getApplicationNumberInEnvFormatOldFormat($appParam, $typeId, $serial): string { + protected static function getApplicationNumberInEnvFormatOldFormat($appParam, $typeId, $serial): string { $applicationNumber = 'GRANTS-' . $appParam . '-' . $typeId . '-' . sprintf('%08d', $serial); if ($appParam == 'PROD') { @@ -185,7 +188,9 @@ public static function hasBreakingChangesInNewerVersion(Webform $webform): bool return $map[$uuid]; } - $applicationType = $webform->getThirdPartySetting('grants_metadata', 'applicationType'); + $thirdPartySettingsWebform = $webform->getThirdPartySettings('grants_metadata'); + + $applicationType = $thirdPartySettingsWebform['applicationType'] ?? NULL; $latestApplicationForm = self::getLatestApplicationForm($applicationType); @@ -194,8 +199,9 @@ public static function hasBreakingChangesInNewerVersion(Webform $webform): bool return FALSE; } - $parent = $latestApplicationForm->getThirdPartySetting('grants_metadata', 'parent'); - $hasBreakingChanges = $latestApplicationForm->getThirdPartySetting('grants_metadata', 'avus2BreakingChange'); + $thirdPartySettingsLatest = $webform->getThirdPartySettings('grants_metadata'); + $parent = $thirdPartySettingsLatest['parent'] ?? NULL; + $hasBreakingChanges = $thirdPartySettingsLatest['avus2BreakingChange'] ?? NULL; while (!empty($parent)) { $map[$parent] = $hasBreakingChanges; @@ -207,12 +213,14 @@ public static function hasBreakingChangesInNewerVersion(Webform $webform): bool ]); $wf = reset($loaded_webform); - $parent = $wf->getThirdPartySetting('grants_metadata', 'parent'); + + $thirdPartySettingsLatest = $wf->getThirdPartySettings('grants_metadata'); + $parent = $thirdPartySettingsLatest['parent'] ?? NULL; // No need to check the flag, // if we already have a newer version with breaking changes. if (!$hasBreakingChanges) { - $hasBreakingChanges = $wf->getThirdPartySetting('grants_metadata', 'avus2BreakingChange'); + $hasBreakingChanges = $thirdPartySettingsLatest['avus2BreakingChange'] ?? NULL; } } @@ -280,18 +288,6 @@ public static function getWebformFromApplicationNumber(string $applicationNumber return reset($webform); } - /** - * Get data definition class from application type. - * - * @param string $type - * Type of the application. - */ - public static function getDataDefinition(string $type) { - $defClass = Helpers::getApplicationTypes()[$type]['dataDefinition']['definitionClass']; - $defId = Helpers::getApplicationTypes()[$type]['dataDefinition']['definitionId']; - return $defClass::create($defId); - } - /** * Tries to find latest webform for given application ID. * @@ -391,4 +387,44 @@ public static function isApplicationWebformDuplicatable(string $id, string $form return count($applicationForms['released']) <= 1 && count($applicationForms['development']) === 0; } + /** + * Update field options in a form array. + * + * This method is used to update the options of a field in a form array. + * + * @param array $form + * The form array. + * @param array $newOptions + * The new options to set. + * @param array $fieldStructure + * The structure of the field. + */ + public static function updateFieldOptions(array &$form, array $newOptions, array $fieldStructure): void { + $currentField = &$form; + + // Traverse the form array based on the field structure. + foreach ($fieldStructure as $fieldName) { + if (isset($currentField[$fieldName])) { + $currentField = &$currentField[$fieldName]; + } + elseif (isset($currentField['#element'][$fieldName])) { + $currentField = &$currentField['#element'][$fieldName]; + } + else { + // If the field is not found, continue searching recursively. + foreach ($currentField as &$subField) { + if (is_array($subField)) { + self::updateFieldOptions($subField, $newOptions, $fieldStructure); + } + } + return; + } + } + + // Update the #options if the field with '#options' is found. + if (isset($currentField['#options'])) { + $currentField['#options'] = $newOptions; + } + } + } diff --git a/public/modules/custom/grants_handler/tests/src/Unit/ApplicationHelpersExposed.php b/public/modules/custom/grants_handler/tests/src/Unit/ApplicationHelpersExposed.php new file mode 100644 index 0000000000..4837bd0c16 --- /dev/null +++ b/public/modules/custom/grants_handler/tests/src/Unit/ApplicationHelpersExposed.php @@ -0,0 +1,46 @@ + [ + "2_avustustiedot" => [ + "muut_samaan_tarkoitukseen_myonnetyt_avustukset" => [ + "myonnetty_avustus" => [ + "#element" => [ + "issuer" => [ + "#options" => [], + ], + ], + ], + ], + "muut_samaan_tarkoitukseen_haetut_avustukset" => [ + "haettu_avustus_tieto" => [ + "#element" => [ + "issuer" => [ + "#options" => [], + ], + ], + ], + ], + ], + ], + ]; + + $fieldStructureMyonnetty = [ + 'myonnetty_avustus', + 'issuer', + ]; + + $fieldStructureHaettu = [ + 'haettu_avustus_tieto', + 'issuer', + ]; + + $newOptions = [ + 1 => 'State', + 3 => 'EU', + 4 => 'Other', + 5 => 'Foundation', + ]; + + // Test with a single field name. + ApplicationHelpers::updateFieldOptions($form, $newOptions, $fieldStructureMyonnetty); + $this->assertEquals($newOptions, + $form['elements']['2_avustustiedot']['muut_samaan_tarkoitukseen_myonnetyt_avustukset']['myonnetty_avustus']['#element']['issuer']['#options']); + + ApplicationHelpers::updateFieldOptions($form, $newOptions, $fieldStructureHaettu); + $this->assertEquals($newOptions, + $form['elements']['2_avustustiedot']['muut_samaan_tarkoitukseen_haetut_avustukset']['haettu_avustus_tieto']['#element']['issuer']['#options']); + + } + + /** + * Test the createApplicationNumber method. + * + * @covers ::createApplicationNumber + * @covers ::getApplicationNumberInEnvFormat + * @covers ::getApplicationNumberInEnvFormatOldFormat + * @covers \Drupal\grants_handler\Helpers::getAppEnv + */ + public function testCreateApplicationNumber() { + // Set the environment variable to the expected value. + putenv('APP_ENV=ENV'); + + $webform = $this->createMock(Webform::class); + $webform->method('getThirdPartySettings') + ->will($this->onConsecutiveCalls( + [ + 'applicationType' => 'TYPE', + 'applicationTypeID' => '001', + ], + [ + 'applicationType' => 'TYPE', + 'applicationTypeID' => '001', + ], + [ + 'applicationType' => 'TYPE', + 'applicationTypeID' => '001', + ], + [ + 'applicationType' => 'TYPE', + 'applicationTypeID' => '001', + ], + [ + 'applicationType' => 'NEWTYPE', + 'applicationTypeID' => '002', + ] + )); + + $submission = $this->createMock(WebformSubmission::class); + $submission->method('serial')->will($this->onConsecutiveCalls(123, 123, 456, 456, 456, 456)); + $submission->method('getWebform')->willReturn($webform); + + // Ensure the method is called with the correct parameters. + $this->assertEquals('ENV-001-0000123', ApplicationHelpers::createApplicationNumber($submission, FALSE)); + $this->assertEquals('GRANTS-ENV-TYPE-00000123', ApplicationHelpers::createApplicationNumber($submission, TRUE)); + + // Test with different serial numbers. + $this->assertEquals('ENV-001-0000456', ApplicationHelpers::createApplicationNumber($submission, FALSE)); + $this->assertEquals('GRANTS-ENV-TYPE-00000456', ApplicationHelpers::createApplicationNumber($submission, TRUE)); + + $this->assertEquals('ENV-002-0000456', ApplicationHelpers::createApplicationNumber($submission, FALSE)); + } + + /** + * Test the getSerialFromApplicationNumber method. + * + * @covers ::getSerialFromApplicationNumber + */ + public function testGetSerialFromApplicationNumber() { + $applicationNumber = 'ENV-001-0000123'; + $result = ApplicationHelpers::getSerialFromApplicationNumber($applicationNumber); + $this->assertEquals('123', $result); + + // Test with invalid application number. + $applicationNumber = 'INVALID45633465'; + $result = ApplicationHelpers::getSerialFromApplicationNumber($applicationNumber); + $this->assertEquals($result, $applicationNumber); + } + + /** + * @covers ::getApplicationNumberInEnvFormat + */ + public function testGetApplicationNumberInEnvFormat() { + $appParam = 'ENV'; + $typeId = '001'; + $serial = 123; + + $expected = 'ENV-001-0000123'; + $this->assertEquals($expected, ApplicationHelpersExposed::exposedGetApplicationNumberInEnvFormat($appParam, $typeId, $serial)); + + $appParam = 'PROD'; + $expected = '001-0000123'; + $this->assertEquals($expected, ApplicationHelpersExposed::exposedGetApplicationNumberInEnvFormat($appParam, $typeId, $serial)); + } + + /** + * @covers ::getApplicationNumberInEnvFormatOldFormat + */ + public function testGetApplicationNumberInEnvFormatOldFormat() { + $appParam = 'ENV'; + $typeId = 'TYPE'; + $serial = 123; + + $expected = 'GRANTS-ENV-TYPE-00000123'; + $this->assertEquals($expected, ApplicationHelpersExposed::exposedGetApplicationNumberInEnvFormatOldFormat($appParam, $typeId, $serial)); + + $appParam = 'PROD'; + $expected = 'GRANTS-TYPE-00000123'; + $this->assertEquals($expected, ApplicationHelpersExposed::exposedGetApplicationNumberInEnvFormatOldFormat($appParam, $typeId, $serial)); + } + + /** + * Test the hasBreakingChangesInNewerVersion method. + * + * @covers ::hasBreakingChangesInNewerVersion + * @covers Drupal\grants_handler\ApplicationHelpers::getLatestApplicationForm + */ + public function testHasBreakingChangesInNewerVersion() { + // Mock the Webform entity. + $webform = $this->createMock(Webform::class); + $webform->method('uuid')->willReturn('parent-uuid'); + $webform->method('getThirdPartySettings') + ->with('grants_metadata') + ->will($this->onConsecutiveCalls( + [ + 'applicationType' => 'test-application-type', + ], + [ + 'parent' => 'parent-uuid', + 'avus2BreakingChange' => TRUE, + ], + [ + 'parent' => 'parent-uuid', + 'avus2BreakingChange' => TRUE, + ], + [ + 'parent' => 'parent-uuid', + 'avus2BreakingChange' => TRUE, + ], + [ + 'parent' => 'parent-uuid', + 'avus2BreakingChange' => TRUE, + ] + )); + + // Mock the entity type manager and storage. + $entityTypeManager = $this->createMock('Drupal\Core\Entity\EntityTypeManagerInterface'); + $webformStorage = $this->createMock('Drupal\Core\Entity\EntityStorageInterface'); + $entityTypeManager->method('getStorage') + ->with('webform') + ->willReturn($webformStorage); + + // Mock the loading of webforms. + $webformStorage->method('loadByProperties') + ->willReturn([$webform]); + + // Set the entity type manager service. + \Drupal::setContainer(new ContainerBuilder()); + \Drupal::getContainer()->set('entity_type.manager', $entityTypeManager); + + // Call the method and assert the result. + $result = ApplicationHelpers::hasBreakingChangesInNewerVersion($webform); + $this->assertTrue($result); + + } + + /** + * Test the getAvailableApplicationNumber method. + * + * @covers \Drupal\grants_handler\ApplicationHelpers::getAvailableApplicationNumber + */ + public function testGetAvailableApplicationNumber() { + + // Can't get this one to work... + } + +} diff --git a/public/modules/custom/grants_handler/tests/src/Unit/ApplicationValidatorTest.php b/public/modules/custom/grants_handler/tests/src/Unit/ApplicationValidatorTest.php index 4fc471b54e..6c96fbeb83 100644 --- a/public/modules/custom/grants_handler/tests/src/Unit/ApplicationValidatorTest.php +++ b/public/modules/custom/grants_handler/tests/src/Unit/ApplicationValidatorTest.php @@ -70,6 +70,11 @@ protected function setUp(): void { /** * Test for validateApplication. + * + * @covers \Drupal\grants_handler\ApplicationValidator::processViolation + * @covers \Drupal\grants_handler\ApplicationValidator::__construct + * @covers \Drupal\grants_handler\ApplicationValidator::handleOtherViolation + * @covers \Drupal\grants_handler\ApplicationValidator::handleViolation */ public function testProcessViolation(): void { $violation = $this->createMock(ConstraintViolationInterface::class); From 6b0bb682f99552353df87be65b0298414e98fc6a Mon Sep 17 00:00:00 2001 From: rpnykanen <48206082+rpnykanen@users.noreply.github.com> Date: Thu, 14 Nov 2024 07:41:33 +0200 Subject: [PATCH 40/95] fix: UHF-10711: New form changes (#1560) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * UHF-10711: remove duplicate title * UHF-10711: date format from c which is datetime, to Y-m-d * UHF-10711: added missing 3.5 fields * UHF-10711: added the mappings * UHF-10711: langcode fi because we have to * UHF-10711: sv translation * UHF-10711: finnish translation * UHF-10711: rename the form * UHF-10711: small changes * UHF-10711: update the configuration with translation * UHF-10711: remove brs * UHF-10711: added summa fields * UHF-10711: remove wrong configuration, added texts / requirements in correct form * UHF-10711: added tulo and meno sv translation * UHF-10711: more sv translations * UHF-10711: more translations including english * UHF-10711: useless comment * UHF-10711: tweak translations * UHF-10711: Fix data type on other hidden field & remove required status from one * UHF-10711: Add new booleanish to Kyllä/Ei converter and use it for fields. * UHF-10711: Typo * UHF-10711: PHPCS * UHF-10711: Add ensisijainen taiteenala field. --------- Co-authored-by: Janne Suominen --- ...ebform.iakkaiden_kulttuuri_ja_liikunta.yml | 312 ++++ ...orm.webform.elderly_sports_and_culture.yml | 58 + ...ebform.iakkaiden_kulttuuri_ja_liikunta.yml | 313 ++++ ...orm.webform.elderly_sports_and_culture.yml | 105 +- ...ebform.iakkaiden_kulttuuri_ja_liikunta.yml | 1438 +++++++++++++++++ .../src/GrantsConverterService.php | 40 + .../Definition/KuvaErillisDefinition.php | 48 +- tools/http/http-client.env.json | 2 +- 8 files changed, 2290 insertions(+), 26 deletions(-) create mode 100644 conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml create mode 100644 conf/cmi/language/fi/webform.webform.elderly_sports_and_culture.yml create mode 100644 conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml create mode 100644 conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml diff --git a/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml b/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml new file mode 100644 index 0000000000..0fa0190c3a --- /dev/null +++ b/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml @@ -0,0 +1,312 @@ +title: 'KUVA: Culture grant for advancing cultural activities for the elderly' +elements: | + 1_hakijan_tiedot: + '#title': '1. Applicant details' + '#prev_button_label': 'Previous' + '#next_button_label': 'Next' + hakemusprofiili: + '#title': 'Retrieved information' + prh_markup: + '#markup': 'The information has been retrieved from your own profile.' + hakijan_tiedot: + '#title': 'Applicant' + contact_person_email_section: + '#title': Email + contact_markup: + '#markup': 'Provide here a community email address that is actively read. Contact requests related to the grant application, such as requests for further clarification and completion, will be sent to the email address.' + email: + '#title': 'Email address' + '#help': 'Provide the email address to which you want the messages and notifications related to this application to be sent and which is actively read.' + contact_person_section: + '#title': 'Contact person for the application' + contact_person: + '#title': 'Contact person' + contact_person_phone_number: + '#title': 'Phone number' + osoite: + '#title': Address + community_address: + '#title': Address + '#help': 'If you want to add, delete or change address information, save the application as a draft and go to maintain the address information in your own data.' + '#community_address_select__title': 'Select the address' + tilinumero: + '#title': 'Account number' + bank_account: + '#title': 'Account number' + '#help': 'If you want to add, delete or change account number information, save the application as a draft and go to maintain the account number information in your own data.' + '#account_number_select__title': 'Select the account number' + '#account_number__title': '' + toiminnasta_vastaavat_henkilot: + '#title': 'Persons responsible for operations' + community_officials: + '#help': 'If you want to add, delete or change people, save the application as a draft and go to maintain the people's information in your own data.' + '#title': 'Persons responsible for operations' + '#multiple__add_more_button_label': 'Add person' + '#community_officials_select__title': 'Select official' + '#role__title': Role + '#email__title': 'Email address' + '#phone__title': 'Phone number' + 2_avustustiedot: + '#title': '2. Grant details' + avustuksen_tiedot: + '#title': 'Grant details' + acting_year: + '#title': 'Year for which I am applying for a grant' + avustuslajit: + '#title': 'Types of grant' + subventions: + '#title': Grants + kayttotarkoitus: + '#title': 'Purpose of use' + compensation_purpose: + '#title': 'Brief description of the purpose(s) of the grant(s) applied for' + '#counter_maximum_message': '%d/5000 characters remaining' + other_grants_for_same_purpose: + '#title': 'Other grants applied for to be used for the same purpose' + info_muut_samaan_tarkoitukseen_myonnetty: + '#markup': '

Indicate here only the grants received from somewhere other than the City of Helsinki in the current and two previous tax years.

An affirmative answer opens a further question
' + olemme_saaneet_muita_avustuksia: + '#title': 'We have received other grants' + '#options': + 1: 'Yes' + 0: 'No' + myonnetty_avustus: + '#title': 'Received grant' + '#multiple__no_items_message': 'No values entered. Add the new grant granted below.' + '#multiple__add_more_button_label': 'Add received grant' + '#element': + issuer: + '#options': + 1: State + 4: Other + 5: Foundation + '#title': 'Grant issuer' + issuer_name: + '#title': 'Issuer''s name' + '#help': 'Which body has granted the grant (e.g. name of the ministry)' + year: + '#title': Year + '#pattern_error': 'Only numbers' + amount: + '#title': 'Amount of grant granted' + purpose: + '#title': 'Description of intended use' + '#help': 'Give a brief description, for what purpose has the grant been granted?' + '#counter_maximum_message': '%d/1000 characters remaining' + muut_samaan_tarkoitukseen_haetut_avustukset: + '#title': 'Other grants applied for to be used for the same purpose' + info_muut_samaan_tarkoitukseen_haettu: + '#markup': "

Indicate here only the grants that have been applied for from somewhere other than the City of Helsinki and for which the decisions have not been made yet.

\r\n\r\n
\r\n
\r\n
An affirmative answer opens a further question
\r\n
\r\n
\r\n" + olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: + '#title': 'We have applied for grants from somewhere other than the City of Helsinki' + '#options': + 1: 'Yes' + 0: 'No' + haettu_avustus_tieto: + '#title': 'Add new grant applied for' + '#multiple__no_items_message': 'No values entered. Add a new applied for grant below.' + '#multiple__add_more_button_label': 'Add new grant applied for' + '#element': + issuer: + '#options': + 1: State + 4: Other + 5: Foundation + '#title': 'Grant issuer' + issuer_name: + '#title': 'Issuer''s name' + '#help': 'Which entity has granted the grant (e.g. name of the ministry)' + year: + '#title': Year + '#pattern_error': 'Only numbers' + amount: + '#title': 'The amount of the grant applied for' + purpose: + '#title': 'Description of intended use' + '#help': 'Give a brief description, for what purpose has the grant been granted?' + '#counter_maximum_message': '%d/1000 characters remaining' + 3_tarkemmat_tiedot: + '#title': '3. Information in more detail' + hankesuunnitelma_radios: + '#title': 'Is the 2nd part of the grant awarded in 2024 now being applied for?' + '#help': 'Only answer “yes” to this question if your community already has an ongoing project funded by the same grant and you are applying for additional funding for it.' + '#options': + 1: 'Yes' + 0: 'No' + ensisijainen_taiteen_ala: + '#title': 'Primary field of art' + '#help': '

Choose the option that best describes your activities.

' + '#options': + 'Design ja käsityö': 'Design and crafts' + 'Elokuva, valokuva ja media': 'Film, photography and media' + Kaupunkikulttuuri: 'Urban art and culture' + Kirjallisuus: Literature + 'Kuvataide ja sarjakuva': 'Visual arts and comics' + Monitaide: 'Multidisciplinary art' + Museo: Museum + Musiikki: Music + Muu: Other + Sirkus: Circus + Tanssi: Dance + Teatteri: Theatre + hankesuunnitelma_section: + '#title': '3.1 Project plan' + hankesuunnitelma_jatkohakemus: + '#title': 'Is the grant to be applied for a renewal application for an ongoing project?' + '#options': + 1: 'Yes' + 0: 'No' + hankkeen_tarkoitus_tavoitteet: + '#title': 'Purpose and goals of the project' + '#counter_maximum_message': '%d/2500 characters remaining' + hankkeen_toimenpiteet_aikataulu: + '#title': 'What are the concrete measures of the project and the schedule for their implementation?' + '#counter_maximum_message': '%d/4000 characters remaining' + hankkeen_toimenpiteet_toteutus: + '#title': 'The concrete measures of the project are to be implemented between' + hankkeen_toimenpiteet_alkupvm: + '#title': 'Start date' + hankkeen_toimenpiteet_loppupvm: + '#title': 'End date' + hankkeen_keskeisimmat_kumppanit: + '#title': 'Specify the main partners of the project and their role in the project' + '#counter_maximum_message': '%d/2500 characters remaining' + haun_painopisteet_section: + '#title': '3.2 Emphases of the grant program' + haun_painopisteet_ohje: + '#markup': 'Which of the following areas of emphasis of the grant for the promotion of sport and physical activity for the elderly does the project cover?

One or more areas must be implemented in the project. PLEASE NOTE: Only select the areas that you will contribute to in the project in a concrete way.

' + haun_painopisteet_liikkumis_kehitys: + '#title': 'Does the project develop sport and physical activity opportunities or art and cultural activities in the immediate environment / area? How?' + '#counter_maximum_message': '%d/1250 characters remaining' + haun_painopisteet_digi_kehitys: + '#title': 'Does the project develop digital / remote cultural activities or activities that encourage people to exercise? How?' + '#counter_maximum_message': '%d/1250 characters remaining' + haun_painopisteet_vertais_kehitys: + '#title': 'Does the project develop volunteering / peer activities? How?' + '#counter_maximum_message': '%d/1250 characters remaining' + haun_painopisteet_kulttuuri_kehitys: + '#title': 'Does the project develop the skills of art and cultural operators or create new working methods / structures? How?' + '#counter_maximum_message': '%d/1250 characters remaining' + hankkeen_kohderyhmat_section: + '#title': '3.3 Project target groups' + hankkeen_kohderyhmat_kenelle: + '#title': 'Who is the project primarily aimed at?' + '#counter_maximum_message': '%d/1250 characters remaining' + hankkeen_kohderyhmat_erityisryhmat: + '#title': 'Does the project target a special group?' + '#counter_maximum_message': '%d/1250 characters remaining' + hankkeen_kohderyhmat_tavoitus: + '#title': 'How will the target groups of the project be reached?' + '#counter_maximum_message': '%d/1250 characters remaining' + hankkeen_kohderyhmat_konkretia: + '#title': 'How will the project promote the functional capacity and well-being of the selected target group with concrete measures?' + '#counter_maximum_message': '%d/1250 characters remaining' + hankkeen_kohderyhmat_osallisuus: + '#title': 'How does the project promote inclusion? What is the role of elderly people in the project?' + '#counter_maximum_message': '%d/1250 characters remaining' + hankkeen_kohderyhmat_osaaminen: + '#title': 'What kind of expertise do the project operators already have in working with the target group(s) in question?' + '#counter_maximum_message': '%d/1250 characters remaining' + hankkeen_kohderyhmat_postinrot: + '#title': 'In which postal code area(s) in Helsinki will the project be implemented?' + hankkeen_kohderyhmat_miksi_alue: + '#title': 'Why is/are that particular area(s) selected?' + '#counter_maximum_message': '%d/1250 characters remaining' + hankkeen_riskit_section: + '#title': '3.4 Risks and analysis' + hankkeen_riskit_keskeisimmat: + '#title': 'What are the main risks from the point of view of project implementation?' + '#counter_maximum_message': '%d/2500 characters remaining' + hankkeen_riskit_seuranta: + '#title': 'How will monitoring and evaluation be carried out in the project?' + '#counter_maximum_message': '%d/2500 characters remaining' + hankkeen_riskit_vakiinnuttaminen: + '#title': 'Will the intended project activity be established as part of the basic activity of the applicant/other operator after the project? If yes, please describe in the text field how it will be established, otherwise leave the field blank.' + '#counter_maximum_message': '%d/2500 characters remaining' + hankkeen_valiarviointi_section: + '#title': '3.5 Mid-term evaluation of 2-year projects' + arviointi_markup: + '#markup': '

In this section, evaluate the activities of the project so far using the following questions. Applicants for the 2nd part of the grant must also attach to the application a cost centre report under “Other appendix” for the period 1 June - 31 December 2024.

' + arviointi_toteuma: + '#title': 'Has the project progressed according to plan? Please rate the project implementation so far on a scale of 1- 100% and justify your response.' + '#counter_maximum_message': '%d/1250 characters remaining' + arviointi_muutokset_markup: + '#markup': '

Have there been significant changes in the project?

' + arviointi_muutokset_talous: + '#title': 'In terms of economy; please specify' + '#counter_maximum_message': '%d/1250 characters remaining' + arviointi_muutokset_toiminta: + '#title': 'In terms of activity; please specify' + '#counter_maximum_message': '%d/1250 characters remaining' + arviointi_muutokset_aikataulu: + '#title': 'In terms of schedule; please specify' + '#counter_maximum_message': '%d/1250 characters remaining' + arviointi_haasteet: + '#title': 'Has the project faced operational challenges? If so, what type of challenges?' + '#counter_maximum_message': '%d/1250 characters remaining' + arviointi_saavutettavuus: + '#title': 'How have the activities reached the participants in relation to the goals?' + '#counter_maximum_message': '%d/1250 characters remaining' + arviointi_avustus_kaytto: + '#title': 'Is the grant for the first project period expected to be used by the deadline of 31 May 2025? If not, please explain the reasons that led to this.' + '#help': '

Grant conditions, section 10e: “A grant that has been granted must be returned to the City of Helsinki, the grant has not been used within the period as set down in the grant decision.”

' + '#counter_maximum_message': '%d/1250 characters remaining' + 4_talousarvio: + '#title': '4. Planned budget' + tulot_section: + '#title': '4.1 Incomes' + tulot: + '#title': Incomes + '#compensation__title': 'The applied grant (€)' + '#plannedOtherCompensations__title': 'Other grants (€)' + '#sales__title': 'Other incomes (€)' + '#ownFunding__title': 'The organizer’s own funding (€)' + talous_tulon_tyyppi: + '#title': 'Type of income' + '#help': '

Write down the type of income in question. Incomes can be, for example, other grants and admission or participation fees. Self financing has to be written down as an income even if the required self financing share is to be funded from the organisations overall operations.

' + '#multiple__add_more_button_label': 'Add new income' + menot_section: + '#title': '4.2 Expenses' + talous_menon_tyyppi: + '#title': 'Type of expense' + '#help': '

Write down the type of expense in question. Expenses can be, for example, rents and personnel costs..

' + '#multiple__add_more_button_label': 'Add new expense' + lisatiedot_ja_liitteet: + '#title': '5. Additional information and appendices' + lisatietoja_hakemukseen_liittyen: + '#title': 'Additional information concerning the application' + additional_information: + '#title': 'Additional information' + '#help': '

If necessary, you can write additional information or other justifications related to the application or report changes to the basic information

' + '#counter_maximum_message': '%d/5000 characters remaining' + liitteet: + '#title': Appendices + attachments_info: + '#markup': '

All the appendices listed in the call for applications must be submitted for the processing of the grant application. The grant application may be rejected if the appendices are not submitted. If any of the appendices is missing, let us know in the Further clarification on attachments section of the application.

Appendices previously submitted to the City of Helsinki

If the required appendices have already been submitted as appendices to another grant application addressed to the City of Helsinki, the same appendices do not need to be submitted again. The confirmed financial statements, annual report, action plan and budget of the community cannot be different from one application to another. In this case, under the submitted appendices, indicate “The appendix has been submitted as a single file or with another application”.

' + notification_attachments: + '#markup': '
The contents of the attachments cannot be viewed afterwards

Please note that you will not be able to open the attachments after you have attached them to the form. You will only see the file name of the attachment.

Although you cannot view the attachments afterwards, the attachments to the form are sent along with the other information on the form to the grant application processor.

' + extra_info: + '#title': 'Further clarification on attachments' + '#counter_maximum_message': '%d/5000 characters remaining' + muu_liite: + '#title': 'Other attachment' + '#multiple__add_more_button_label': 'Add attachment' + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + actions: + '#submit__label': Submit + '#draft__label': 'Save as draft' + '#wizard_prev__label': 'Previous' + '#wizard_next__label': 'Next' + '#preview_prev__label': 'Previous' + '#preview_next__label': 'Preview' + '#delete__label': 'Delete unfinished' +settings: + wizard_confirmation_label: '7. Complete' + wizard_prev_button_label: Previous + wizard_next_button_label: Next + preview_label: '6. Confirm, preview, and submit' + preview_title: 'Confirm, preview, and submit' diff --git a/conf/cmi/language/fi/webform.webform.elderly_sports_and_culture.yml b/conf/cmi/language/fi/webform.webform.elderly_sports_and_culture.yml new file mode 100644 index 0000000000..1ebb24cb4a --- /dev/null +++ b/conf/cmi/language/fi/webform.webform.elderly_sports_and_culture.yml @@ -0,0 +1,58 @@ +elements: | + prh_markup: + '#markup': '

Tiedot on haettu hakuprofiilistasi.

' + contact_markup: + '#markup': '

Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.

' + email: + '#help': '

Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti

' + community_address: + '#help': '

Jos haluat lisätä, poistaa tai muuttaa osoitetietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään osoitetietoa omiin tietoihin.

' + bank_account: + '#help': '

Jos haluat lisätä, poistaa tai muuttaa tilinumerotietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään tilinumerotietoa omiin tietoihin.

' + '#account_number__title': '' + community_officials: + '#help': '

Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.

' + info_muut_samaan_tarkoitukseen_myonnetty: + '#markup': '

Ilmoita tähän ainoastaan avustukset, jotka on myönnetty muualta kuin Helsingin kaupungilta kuluvana tai kahtena edellisenä verovuotena.

Myöntävä vastaus avaa lisäkysymyksen
' + myonnetty_avustus: + '#multiple__no_items_message': '

Ei syötettyjä arvoja. Lisää uusi myönnetty avustus alta.

' + '#element': + issuer_name: + '#help': '

Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)

' + purpose: + '#help': '

Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?

' + info_muut_samaan_tarkoitukseen_haettu: + '#markup': '

Ilmoita tähän ainoastaan avustukset, jotka on haettu muualta kuin Helsingin kaupungilta, eikä päätöstä ole vielä tehty.

Myöntävä vastaus avaa lisäkysymyksen
' + haettu_avustus_tieto: + '#multiple__no_items_message': '

Ei syötettyjä arvoja. Lisää uusi haettu avustus alta.

' + '#element': + issuer_name: + '#help': '

Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)

' + purpose: + '#help': '

Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?

' + hankesuunnitelma_radios: + '#help': '

Vastaa tähän kysymykseen "kyllä" vain siinä tapauksessa, jos yhteisölläsi on jo käynnissä oleva, samasta avustuksesta rahoitettu hanke ja haet sille jatkorahoitusta.

' + haun_painopisteet_ohje: + '#markup': '

Hankkeessa tulee toteuttaa yhtä tai useampaa painopistettä. HUOM! Valitse vain ne painopisteet, joita edistätte hankkeessa konkreettisella tavalla. Jos hanke ei toteuta jotakin painopistettä, jätä tekstikenttä tyhjäksi.

' + hankkeen_riskit_vakiinnuttaminen: + '#help': '

Jos kyllä, niin kuvaa tekstikenttään kuinka vakiinnuttaminen aiotaan tehdä, muuten jätä tyhjäksi.

' + arviointi_markup: + '#markup': '

Arvioi tässä osiossa hankkeen tähänastista toimintaa seuraavien kysymysten avulla. Avustuksen 2. osaa hakevien tulee liittää hakemukselle Muu liite-kohtaan niin ikään kustannuspaikkaraportti ajanjaksolta 1.6.-31.12.2024

' + arviointi_muutokset_markup: + '#markup': '

Onko hankkeessa tapahtunut merkittäviä muutoksia?

' + arviointi_avustus_kaytto: + '#help': '

Avustusehdot, kohta 10e: "Myönnetty avustus on palautettava Helsingin kaupungille, jos avustusta ei ole käytetty sinä aikana, jona se on avustuspäätöksen mukaan tullut käyttää.

' + talous_tulon_tyyppi: + '#help': '

Kerro tässä minkälainen tulo on kyseessä. Toiminnan tuloja voivat olla esimerkiksi muut avustukset ja pääsy- tai osallistumismaksut. Kirjaa tähän kohtaan myös omarahoitusosuus, jos hankkeen alijäämä kuitataan muusta taloudestanne.

' + talous_menon_tyyppi: + '#help': '

Kerro tässä minkälainen meno on kyseessä. Toiminnan menoja voivat olla esimerkiksi tilavuokrat ja henkilöstökulut.

' + additional_information: + '#help': '

Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen tai ilmoittaa perustietoihin tulleista muutoksista 

' + notification_attachments: + '#markup': '
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.

' + muu_liite: + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' diff --git a/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml b/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml new file mode 100644 index 0000000000..f37b2d9c82 --- /dev/null +++ b/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml @@ -0,0 +1,313 @@ +title: 'KUVA: ansökan om understöd för främjande av motion och kulturverksamhet hos äldre' +elements: | + 1_hakijan_tiedot: + '#title': '1. Sökandens uppgifter' + '#prev_button_label': Tidigare + '#next_button_label': Nästa + hakemusprofiili: + '#title': 'Hämtade uppgifter' + prh_markup: + '#markup': '

Informationen har hämtats från din profil.

' + hakijan_tiedot: + '#title': Sökande + contact_person_email_section: + '#title': E-post + contact_markup: + '#markup': '

Ange här samfundets e-postadress som läses aktivt. Till e-postadressen skickas kontaktförfrågningar som är relaterade till ansökan om understöd, såsom begäranden om tilläggsutredning och komplettering

' + email: + '#title': E-postadress + '#help': '

Ange en e-postadress dit meddelandena och begärandena relaterade till denna ansökan kommer att skickas och som läses aktivt.

' + contact_person_section: + '#title': 'Kontaktperson för ansökan' + contact_person: + '#title': Kontaktperson + contact_person_phone_number: + '#title': Telefonnummer + osoite: + '#title': Adress + community_address: + '#title': Adress + '#help': '

Om du vill lägga till, ta bort eller ändra adressuppgifter, spara ansökan som ett utkast och gå till att behålla adressuppgifterna i dina egna uppgifter.

' + '#community_address_select__title': 'Välj en adress' + tilinumero: + '#title': Kontonummer + bank_account: + '#title': Kontonummer + '#help': '

Om du vill lägga till, radera eller ändra kontonummerinformation, spara applikationen som ett utkast och gå till att behålla kontonummerinformationen i din egen data.

' + '#account_number_select__title': 'Välj ett kontonummer' + '#account_number__title': '' + toiminnasta_vastaavat_henkilot: + '#title': 'Personer som ansvarar för verksamheten' + community_officials: + '#help': '

Om du vill lägga till, ta bort eller ändra personer, spara applikationen som ett utkast och gå till att underhålla personernas information i din egen data.

' + '#title': 'Personer som ansvarar för verksamheten' + '#multiple__add_more_button_label': 'Lägg till en person' + '#community_officials_select__title': 'Välj motsvarande person' + '#role__title': Roll + '#email__title': E-post + '#phone__title': Telefonnummer + 2_avustustiedot: + '#title': '2. Uppgifter om understödet' + avustuksen_tiedot: + '#title': 'Uppgifter om understödet' + acting_year: + '#title': 'År för vilket jag ansöker om understöd' + avustuslajit: + '#title': Understöd + subventions: + '#title': 'Typ av stöd' + kayttotarkoitus: + '#title': 'Användningsän damål' + compensation_purpose: + '#title': 'En kort beskrivning av användningsändamålet för det/de understöd som ansöks' + '#counter_maximum_message': '%d/5000 tecken kvar' + other_grants_for_same_purpose: + '#title': 'Övriga understöd som beviljats för samma ändamål' + info_muut_samaan_tarkoitukseen_myonnetty: + '#markup': '

Ange här endast de understöd som beviljats från annanstans
än Helsingfors stad under det innevarande beskattningsåret eller de föregående två beskattningsåren.

Ett jakande svar öppnar ytterligare en fråga
' + olemme_saaneet_muita_avustuksia: + '#title': 'Vi har fått andra understöd' + '#options': + 1: Ja + 0: Nej + myonnetty_avustus: + '#title': 'Bidrag beviljat' + '#multiple__no_items_message': '

Inga värden har angetts. Lägg till det nya beviljade bidraget nedan.

' + '#multiple__add_more_button_label': 'Lägg till understöd som beviljats' + '#element': + issuer: + '#options': + 1: Stat + 4: Övrig + 5: Fundament + '#title': Bidragsgivare + issuer_name: + '#title': 'Emittentens namn' + '#help': '

Vilket organ har beviljat bidraget (t.ex. namnet på departementet)

' + year: + '#title': År + '#pattern_error': 'Ange ett årtal' + amount: + '#title': 'Beviljat bidragsbelopp' + purpose: + '#title': 'Beskrivning av avsedd användning' + '#help': '

Ge en kort beskrivning, i vilket syfte har bidraget beviljats?

' + '#counter_maximum_message': '%d/1000 tecken kvar' + muut_samaan_tarkoitukseen_haetut_avustukset: + '#title': 'Övriga understöd som beviljats för samma ändamål' + info_muut_samaan_tarkoitukseen_haettu: + '#markup': '

Ange här endast de understöd som beviljats från annanstans än Helsingfors stad under det innevarande beskattningsåret eller de föregående två beskattningsåren.

Myöntävä vastaus avaa lisäkysymyksen
' + olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: + '#title': 'Vi har fått andra understöd Lisää myönnetty avustus Custom composite Add received grant Lägg till understöd som beviljats' + '#options': + 1: Ja + 0: Nej + haettu_avustus_tieto: + '#title': 'Lägg till nytt understöd som ansökts' + '#multiple__no_items_message': '

Ei syötettyjä arvoja. Lisää uusi haettu avustus alta.

' + '#multiple__add_more_button_label': 'Lägg till nytt understöd som ansökts' + '#element': + issuer: + '#options': + 1: Stat + 4: Övrig + 5: Fundament + '#title': Bidragsgivare + issuer_name: + '#title': 'Emittentens namn' + '#help': '

Vilket organ har beviljat bidraget (t.ex. namnet på departementet)

' + year: + '#title': År + '#pattern_error': 'Ange ett årtal' + amount: + '#title': 'Beviljat bidragsbelopp' + purpose: + '#title': 'Beskrivning av avsedd användning' + '#help': '

Ge en kort beskrivning, i vilket syfte har bidraget beviljats?

' + '#counter_maximum_message': '%d/1000 tecken kvar' + 3_tarkemmat_tiedot: + '#title': '3. Mer detaljerad information' + hankesuunnitelma_radios: + '#title': 'Ansöker du nu om den andra delen av ett tvåårigt understöd som beviljades 2024?' + '#help': '

Svara bara ”ja” på den här frågan om din sammanslutning redan har ett pågående projekt som finansieras med samma understöd och du ansöker om fortsatt finansiering.

' + '#options': + 1: Ja + 0: Nej + ensisijainen_taiteen_ala: + '#title': 'Huvudsaklig konstart ' + '#help': '

Välj det alternativ, som bäst motsvarar er verksamhet.

' + '#options': + 'Design ja käsityö': 'Design och hantverk' + 'Elokuva, valokuva ja media': 'Film, fotokonst och media' + Kaupunkikulttuuri: Stadskultur + Kirjallisuus: Litteratur + 'Kuvataide ja sarjakuva': 'Bildkonst och seriekonst' + Monitaide: 'Tvärkonstnärlig verksamhet' + Museo: Museum + Musiikki: Musik + Muu: Annat + Sirkus: Cirkus + Tanssi: Dans + Teatteri: Teater + hankesuunnitelma_section: + '#title': '3.1 Projektplan' + hankesuunnitelma_jatkohakemus: + '#title': 'Är understödet du ansöker om en förlängning av ett pågående projekt?' + '#options': + 1: Ja + 0: Nej + hankkeen_tarkoitus_tavoitteet: + '#title': 'Syfte och mål med projektet' + '#counter_maximum_message': '%d/2500 tecken kvar' + hankkeen_toimenpiteet_aikataulu: + '#title': 'Vilka är de konkreta åtgärderna för projektet och tidtabellen för när de ska genomföras?' + '#counter_maximum_message': '%d/4000 tecken kvar' + hankkeen_toimenpiteet_toteutus: + '#title': 'Enligt planen ska de konkreta åtgärderna i projektet genomföras mellan' + hankkeen_toimenpiteet_alkupvm: + '#title': Startdatum + hankkeen_toimenpiteet_loppupvm: + '#title': Slutdatum + hankkeen_keskeisimmat_kumppanit: + '#title': 'Namnge de viktigaste samarbetspartnerna och deras roll i projektet' + '#counter_maximum_message': '%d/2500 tecken kvar' + haun_painopisteet_section: + '#title': '3.2 Tyngdpunkter för ansökan' + haun_painopisteet_ohje: + '#markup': '

Projektet ska arbeta för en eller flera tyngdpunkter. OBS! Välj bara de tyngdpunkter som ni kommer att bidra till på ett konkret sätt genom projektet.

' + haun_painopisteet_liikkumis_kehitys: + '#title': 'Bidrar projektet till att utveckla möjligheter till idrott eller konst- och kulturverksamhet i närområdet/regionalt? På vilket sätt?' + '#counter_maximum_message': '%d/1250 tecken kvar' + haun_painopisteet_digi_kehitys: + '#title': 'Bidrar projektet till att utveckla kulturaktiviteter eller verksamhet som uppmuntrar till idrott som ordnas digitalt/på distans? På vilket sätt?' + '#counter_maximum_message': '%d/1250 tecken kvar' + haun_painopisteet_vertais_kehitys: + '#title': 'Bidrar projektet till att utveckla frivillig- /kamratverksamhet? På vilket sätt?' + '#counter_maximum_message': '%d/1250 tecken kvar' + haun_painopisteet_kulttuuri_kehitys: + '#title': 'Bidrar projektet till att utveckla frivillig- /kamratverksamhet? På vilket sätt?' + '#counter_maximum_message': '%d/1250 tecken kvar' + hankkeen_kohderyhmat_section: + '#title': '3.3 Projektets målgrupper' + hankkeen_kohderyhmat_kenelle: + '#title': 'Vem är den huvudsakliga målgruppen för projektet?' + '#counter_maximum_message': '%d/1250 tecken kvar' + hankkeen_kohderyhmat_erityisryhmat: + '#title': 'Riktar sig projektet till någon särskild grupp?' + '#counter_maximum_message': '%d/1250 tecken kvar' + hankkeen_kohderyhmat_tavoitus: + '#title': 'Hur ska ni nå ut med projektet till målgrupperna?' + '#counter_maximum_message': '%d/1250 tecken kvar' + hankkeen_kohderyhmat_konkretia: + '#title': 'På vilket sätt bidrar projektet till att främja den valda målgruppens funktionsförmåga och välbefinnande genom konkreta åtgärder?' + '#counter_maximum_message': '%d/1250 tecken kvar' + hankkeen_kohderyhmat_osallisuus: + '#title': 'På vilket sätt främjar projektet delaktighet? Vilken roll har äldre personer i projektet?' + '#counter_maximum_message': '%d/1250 tecken kvar' + hankkeen_kohderyhmat_osaaminen: + '#title': 'Vilken kompetens har aktörerna i projektet i förväg att arbeta med målgruppen/- grupperna?' + '#counter_maximum_message': '%d/1250 tecken kvar' + hankkeen_kohderyhmat_postinrot: + '#title': 'Inom vilket/vilka postnummerområden i Helsingfors kommer projektet att genomföras?' + hankkeen_kohderyhmat_miksi_alue: + '#title': 'Varför har ni valt just det/de områdena?' + '#counter_maximum_message': '%d/1250 tecken kvar' + hankkeen_riskit_section: + '#title': '3.4 Risker och analys' + hankkeen_riskit_keskeisimmat: + '#title': 'Vilka är de största riskerna när det gäller genomförande av projektet?' + '#counter_maximum_message': '%d/2500 tecken kvar' + hankkeen_riskit_seuranta: + '#title': 'Hur kommer ni att följa upp och utvärdera projektet?' + '#counter_maximum_message': '%d/2500 tecken kvar' + hankkeen_riskit_vakiinnuttaminen: + '#title': 'Är den planerade verksamheten för projektet avsedd att bli en permanent del av den grundläggande verksamheten hos den sökande/en annan aktör efter projektet?' + '#help': '

Om ja, beskriv i textrutan hur det här kommer att ske, lämna annars tomt.

' + '#counter_maximum_message': '%d/2500 tecken kvar' + hankkeen_valiarviointi_section: + '#title': '3.5 Mellanutvärderin g av tvååriga projekt' + arviointi_markup: + '#markup': '

I den här delen ska du använda följande frågor för att utvärdera verksamheten inom projektet hittills. Om du ansöker om andra delen av understödet ska du även bifoga en
kostnadsställesrapport för perioden 1.6–31.12.2024 under Övriga bilagor.

' + arviointi_toteuma: + '#title': 'Har projektet framskridit enligt planen? Bedöm projektets resultat hittills på en skala 1–100 procent och motivera ditt svar.' + '#counter_maximum_message': '%d/1250 tecken kvar' + arviointi_muutokset_markup: + '#markup': '

Har det skett några väsentliga förändringar i projektet?

' + arviointi_muutokset_talous: + '#title': 'Gällande ekonomin; vilka?' + '#counter_maximum_message': '%d/1250 tecken kvar' + arviointi_muutokset_toiminta: + '#title': 'Gällande verksamheten; vilka?' + '#counter_maximum_message': '%d/1250 tecken kvar' + arviointi_muutokset_aikataulu: + '#title': 'Gällande tidsplanen; vilka?' + '#counter_maximum_message': '%d/1250 tecken kvar' + arviointi_haasteet: + '#title': 'Har projektet stött på utmaningar som har påverkat verksamheten? Om ja, vilka utmaningar?' + '#counter_maximum_message': '%d/1250 tecken kvar' + arviointi_saavutettavuus: + '#title': 'Hur har verksamheten nått ut till deltagarna i förhållande till målen?' + '#counter_maximum_message': '%d/1250 tecken kvar' + arviointi_avustus_kaytto: + '#help': '

Understödsvillkor, punkt 10 e: ”Beviljat understöd ska återbetalas till Helsingfors stad om understödet inte har använts inom den tid då det
enligt understödsbeslutet borde ha förbrukats.”

' + '#title': 'Kommer understödet för den första projektperioden att användas inom tidsfristen (31.5.2025)? Om inte, förklara orsakerna här.' + '#counter_maximum_message': '%d/1250 tecken kvar' + 4_talousarvio: + '#title': '4. Budget' + tulot_section: + '#title': '4.1 Inkomster' + tulot: + '#title': Inkomster + '#compensation__title': 'Ansökt projektstöd (€)' + '#plannedOtherCompensations__title': 'Övriga understöd (€)' + '#sales__title': 'Övriga egna inkomster (€)' + '#ownFunding__title': 'Egenfinansiering (€)' + talous_tulon_tyyppi: + '#title': 'Typ av inkomst ' + '#help': '

Skriv ner vilken typ av inkomst det gäller. Inkomster kan till exempel vara andra understöd och inträdes- eller
deltagaravgifter. Självfinansiering måste uppges som en inkomst även
om den självfinansierade delen finansieras med sökandes övrig  erksamhet.

' + '#multiple__add_more_button_label': 'Lägg till en intäkt' + menot_section: + '#title': '4.2 Utgifter' + talous_menon_tyyppi: + '#title': utgifter + '#help': '

Skriv ner vilken typ av utgift det gäller. Utgifter kan till exempel vara andra lokalhyror och personalkostnader.

' + '#multiple__add_more_button_label': 'Lägg till en utgift' + lisatiedot_ja_liitteet: + '#title': '5. Ytterligare information och bilagor' + lisatietoja_hakemukseen_liittyen: + '#title': 'Ytterligare information för ansökan' + additional_information: + '#title': 'Ytterligare information' + '#help': '

Här kan du vid behov skriva ytterligare information eller andra motiveringar som rör ansökan eller meddela om ändringar i basuppgifterna.

' + '#counter_maximum_message': '%d/5000 tecken kvar' + liitteet: + '#title': Bilagor + attachments_info: + '#markup': '

Alla bilagor som anges i utlysningen 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.

Bilagor som tidigare lämnats in till Helsingfors stad

Om de erforderliga bilagorna redan har lämnats in som bilaga till en annan ansökan om understöd till Helsingfors stad, behöver samma bilagor inte lämnas in igen. Samfundets fastställda bokslut, verksamhetsberättelse, verksamhetsplan och budget får inte vara olika i bilagor till de olika ansökningarna. Ange i detta fall vid de inlämnade bilagorna att ”Bilagan har lämnats in som en fil eller i samband med en annan ansökan”.

' + notification_attachments: + '#markup': '
Innehållet i bilagorna kan inte granskas i efterhand

Observera att du inte kan öppna bilagorna efter att du har bifogat dem blanketten. Du ser bara bilagans filnamn.

Även om du inte kan granska innehållet i bilagorna i efterhand skickas bilagorna som bifogats blanketten med övriga uppgifter till personen som behandlar ansökan om understöd.

' + extra_info: + '#title': 'Ytterligare information om bilagorna' + '#counter_maximum_message': '%d/5000 tecken kvar' + muu_liite: + '#title': 'Annan bilaga' + '#multiple__add_more_button_label': 'Lägg till en bilaga' + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + actions: + '#submit__label': Skicka + '#draft__label': 'Spara som oavslutad' + '#wizard_prev__label': Tidigare + '#wizard_next__label': Nästa + '#preview_prev__label': Tidigare + '#preview_next__label': 'För förhandsvisning' + '#delete__label': 'Radera oavslutat' +settings: + wizard_confirmation_label: '7. Slutförd' + wizard_prev_button_label: Tidigare + wizard_next_button_label: Nästa + preview_label: '6. Bekräfta, förhandsgranska och skicka' + preview_title: 'Bekräfta, förhandsgranska och skicka' diff --git a/conf/cmi/webform.webform.elderly_sports_and_culture.yml b/conf/cmi/webform.webform.elderly_sports_and_culture.yml index f47562bb05..ff3f7ef37d 100644 --- a/conf/cmi/webform.webform.elderly_sports_and_culture.yml +++ b/conf/cmi/webform.webform.elderly_sports_and_culture.yml @@ -296,6 +296,7 @@ elements: |- compensation_purpose: '#type': textarea '#title': 'Lyhyt kuvaus haettavan / haettavien avustusten käyttötarkoituksista' + '#help': 'Kerro mitä tarkoitusta varten avustusta haetaan, erittele tarvittaessa eri käyttökohteet. Kerro myös mitä avustuksella on tarkoitus saada aikaiseksi ja millaisia tavoitteita avustettavaan toimintaan liittyy.' '#maxlength': 5000 '#required': true '#counter_type': character @@ -483,7 +484,7 @@ elements: |- '#title': '3. Tarkemmat tiedot' tarkemmat_tiedot_section: '#type': webform_section - '#title': '3.0 Tarkemmat tiedot' + '#title': ' ' hankesuunnitelma_radios: '#type': radios '#title': 'Haetaanko nyt vuonna 2024 myönnetyn kaksivuotisen avustuksen 2. osaa?' @@ -593,7 +594,6 @@ elements: |- visible: ':input[name="hankesuunnitelma_jatkohakemus"]': value: '0' - '#required': true haun_painopisteet_digi_kehitys: '#type': textarea '#title': 'Kehitetäänkö hankkeessa digitaalisesti / etänä toteutettavia kulttuuritoimintoja tai liikkumiseen aktivoivaa toimintaa? Miten?' @@ -752,7 +752,7 @@ elements: |- '#required': true '#counter_type': character '#counter_maximum': 2500 - '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#counter_maximum_message': '%d/2500 merkkiä jäljellä' '#states': visible: ':input[name="hankesuunnitelma_jatkohakemus"]': @@ -764,7 +764,7 @@ elements: |- '#required': true '#counter_type': character '#counter_maximum': 2500 - '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#counter_maximum_message': '%d/2500 merkkiä jäljellä' '#states': visible: ':input[name="hankesuunnitelma_jatkohakemus"]': @@ -777,18 +777,109 @@ elements: |- '#required': true '#counter_type': character '#counter_maximum': 2500 - '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#counter_maximum_message': '%d/2500 merkkiä jäljellä' '#states': visible: ':input[name="hankesuunnitelma_jatkohakemus"]': value: '0' - unknown_for_now: + hankkeen_valiarviointi_section: '#type': webform_section - '#title': '3.5 puuttuva määritys' + '#title': '3.5 2-vuotisten hankkeiden väliarviointi' '#states': visible: ':input[name="hankesuunnitelma_radios"]': value: '1' + arviointi_markup: + '#type': webform_markup + '#markup': 'Arvioi tässä osiossa hankkeen tähänastista toimintaa seuraavien kysymysten avulla. Avustuksen 2. osaa hakevien tulee liittää hakemukselle Muu liite-kohtaan niin ikään kustannuspaikkaraportti ajanjaksolta 1.6.-31.12.2024' + arviointi_toteuma: + '#type': textarea + '#title': 'Onko hanke edennyt suunnitelman mukaisesti? Arvioikaa hankkeen toteumaa tähän asti asteikolla 1-100% ja perustelkaa vastauksenne.' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + arviointi_muutokset_markup: + '#type': webform_markup + '#markup': 'Onko hankkeessa tapahtunut merkittäviä muutoksia?' + arviointi_muutokset_talous: + '#type': textarea + '#title': 'Talouteen liittyen; mitä?' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + arviointi_muutokset_toiminta: + '#type': textarea + '#title': 'Toimintaan liittyen; mitä?' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + arviointi_muutokset_aikataulu: + '#type': textarea + '#title': 'Aikatauluun liittyen; mitä?' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + arviointi_haasteet: + '#type': textarea + '#title': 'Onko hanke kohdannut toimintaan vaikuttaneita haasteita? Jos, niin millaisia?' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + arviointi_saavutettavuus: + '#type': textarea + '#title': 'Miten toiminta on tavoittanut osallistujia suhteessa tavoitteisiin?' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + arviointi_avustus_kaytto: + '#type': textarea + '#help': 'Avustusehdot, kohta 10e: "Myönnetty avustus on palautettava Helsingin kaupungille, jos avustusta ei ole käytetty sinä aikana, jona se on avustuspäätöksen mukaan tullut käyttää.' + '#title': 'Tuleeko ensimmäiselle hankekaudelle myönnetty avustus käytettyä näillä näkymin määräaikaan (31.5.2025) mennessä? Jos ei, niin avatkaa tähän johtaneita syitä.' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' 4_talousarvio: '#type': webform_wizard_page '#title': '4. Talousarvio' diff --git a/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml b/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml new file mode 100644 index 0000000000..00d3f0afc3 --- /dev/null +++ b/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml @@ -0,0 +1,1438 @@ +uuid: d6a6681d-87e8-4a48-aa5a-cb1c12bd160f +langcode: fi +status: open +dependencies: + module: + - grants_handler + - grants_metadata +third_party_settings: + grants_metadata: + applicationTypeSelect: '70' + applicationType: KUVAERILLIS + applicationTypeID: '70' + applicationIndustry: KUVA + applicantTypes: + registered_community: registered_community + applicationTypeTerms: + 62: '62' + applicationTargetGroup: '22' + applicationOpen: null + applicationClose: null + applicationActingYearsType: fixed + applicationActingYears: + 2024: '2024' + 2025: '2025' + 2026: '2026' + applicationActingYearsNextCount: '' + applicationContinuous: 1 + disableCopying: 0 + status: development + parent: '' + avus2BreakingChange: 0 +weight: 0 +open: null +close: null +uid: 1 +template: false +archive: false +id: iakkaiden_kulttuuri_ja_liikunta +title: 'Kulttuurin avustukset iäkkäiden ihmisten kulttuuritoiminnan edistämiseksi' +description: '

Kulttuurin ja vapaa-ajan erillisavustushakemus: Ikääntyneiden liikkumisen ja kulttuuritoiminnan avustus

' +categories: + - Kehityksessä +elements: |- + avustukset_summa: + '#type': grants_webform_summation_field + '#title': 'Avustukset summa' + '#title_display': none + '#collect_field': + subventions%%amount: subventions%%amount + applicant_type: 0 + application_number: 0 + status: 0 + hakijan_tiedot: 0 + email: 0 + contact_person: 0 + contact_person_phone_number: 0 + community_address: 0 + bank_account: 0 + community_officials: 0 + acting_year: 0 + subventions%%subventionTypeTitle: 0 + subventions%%subventionType: 0 + ensisijainen_taiteen_ala: 0 + hankkeen_nimi: 0 + kyseessa_on_festivaali_tai_tapahtuma: 0 + hankkeen_tai_toiminnan_lyhyt_esittelyteksti: 0 + olemme_saaneet_muita_avustuksia: 0 + myonnetty_avustus: 0 + members_applicant_person_global: 0 + members_applicant_person_local: 0 + members_applicant_community_global: 0 + members_applicant_community_local: 0 + kokoaikainen_henkilosto: 0 + kokoaikainen_henkilotyovuosia: 0 + osa_aikainen_henkilosto: 0 + osa_aikainen_henkilotyovuosia: 0 + vapaaehtoinen_henkilosto: 0 + tapahtuma_tai_esityspaivien_maara_helsingissa: 0 + esitykset_maara_helsingissa: 0 + nayttelyt_maara_helsingissa: 0 + tyopaja_maara_helsingissa: 0 + esitykset_maara_kaikkiaan: 0 + nayttelyt_maara_kaikkiaan: 0 + tyopaja_maara_kaikkiaan: 0 + esitykset_kavijamaara_helsingissa: 0 + nayttelyt_kavijamaara_helsingissa: 0 + tyopaja_kavijamaara_helsingissa: 0 + esitykset_kavijamaara_kaikkiaan: 0 + nayttelyt_kavijamaara_kaikkiaan: 0 + tyopaja_kavijamaara_kaikkiaan: 0 + kantaesitysten_maara: 0 + ensi_iltojen_maara_helsingissa: 0 + ensimmainen_yleisolle_avoimen_tilaisuuden_paikka_helsingissa: 0 + postinumero: 0 + kyseessa_on_kaupungin_omistama_tila: 0 + tila: 0 + ensimmaisen_yleisolle_avoimen_tilaisuuden_paivamaara: 0 + festivaalin_tai_tapahtuman_kohdalla_tapahtuman_paivamaarat: 0 + hanke_alkaa: 0 + hanke_loppuu: 0 + laajempi_hankekuvaus: 0 + toiminta_taiteelliset_lahtokohdat: 0 + toiminta_tasa_arvo: 0 + toiminta_saavutettavuus: 0 + toiminta_yhteisollisyys: 0 + toiminta_kohderyhmat: 0 + toiminta_ammattimaisuus: 0 + toiminta_ekologisuus: 0 + toiminta_yhteistyokumppanit: 0 + organisaatio_kuuluu_valtionosuusjarjestelmaan_vos_: 0 + budget_static_income: 0 + budget_static_cost: 0 + budget_other_cost: 0 + muu_huomioitava_panostus: 0 + additional_information: 0 + extra_info: 0 + muu_liite: 0 + '#data_type': euro + '#form_item': hidden + applicant_type: + '#type': hidden + '#title': 'Hakijan tyyppi' + kulttuuri1_summa: + '#type': grants_webform_summation_field + '#title': Kulttuuri1-summa + '#collect_field': + subventions%%amount: subventions%%amount + applicant_type: 0 + application_number: 0 + status: 0 + hakijan_tiedot: 0 + email: 0 + contact_person: 0 + contact_person_phone_number: 0 + community_address: 0 + bank_account: 0 + community_officials: 0 + acting_year: 0 + compensation_purpose: 0 + olemme_saaneet_muita_avustuksia: 0 + myonnetty_avustus: 0 + olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: 0 + haettu_avustus_tieto: 0 + hankesuunnitelma_radios: 0 + hankesuunnitelma_jatkohakemus: 0 + hankkeen_tarkoitus_tavoitteet: 0 + hankkeen_toimenpiteet_aikataulu: 0 + hankkeen_toimenpiteet_alkupvm: 0 + hankkeen_toimenpiteet_loppupvm: 0 + hankkeen_keskeisimmat_kumppanit: 0 + haun_painopisteet_liikkumis_kehitys: 0 + haun_painopisteet_digi_kehitys: 0 + haun_painopisteet_vertais_kehitys: 0 + haun_painopisteet_kulttuuri_kehitys: 0 + hankkeen_kohderyhmat_kenelle: 0 + hankkeen_kohderyhmat_erityisryhmat: 0 + hankkeen_kohderyhmat_tavoitus: 0 + hankkeen_kohderyhmat_konkretia: 0 + hankkeen_kohderyhmat_osallisuus: 0 + hankkeen_kohderyhmat_osaaminen: 0 + hankkeen_kohderyhmat_postinrot: 0 + hankkeen_kohderyhmat_miksi_alue: 0 + hankkeen_riskit_keskeisimmat: 0 + hankkeen_riskit_seuranta: 0 + hankkeen_riskit_vakiinnuttaminen: 0 + arviointi_toteuma: 0 + arviointi_muutokset_talous: 0 + arviointi_muutokset_toiminta: 0 + arviointi_muutokset_aikataulu: 0 + arviointi_haasteet: 0 + arviointi_saavutettavuus: 0 + arviointi_avustus_kaytto: 0 + tulot: 0 + talous_tulon_tyyppi: 0 + talous_menon_tyyppi: 0 + additional_information: 0 + extra_info: 0 + muu_liite: 0 + '#subvention_type': '47' + '#data_type': euro + '#form_item': hidden + kulttuuri2_summa: + '#type': grants_webform_summation_field + '#title': Kulttuuri2-summa + '#collect_field': + subventions%%amount: subventions%%amount + applicant_type: 0 + application_number: 0 + status: 0 + hakijan_tiedot: 0 + email: 0 + contact_person: 0 + contact_person_phone_number: 0 + community_address: 0 + bank_account: 0 + community_officials: 0 + acting_year: 0 + compensation_purpose: 0 + olemme_saaneet_muita_avustuksia: 0 + myonnetty_avustus: 0 + olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: 0 + haettu_avustus_tieto: 0 + hankesuunnitelma_radios: 0 + hankesuunnitelma_jatkohakemus: 0 + hankkeen_tarkoitus_tavoitteet: 0 + hankkeen_toimenpiteet_aikataulu: 0 + hankkeen_toimenpiteet_alkupvm: 0 + hankkeen_toimenpiteet_loppupvm: 0 + hankkeen_keskeisimmat_kumppanit: 0 + haun_painopisteet_liikkumis_kehitys: 0 + haun_painopisteet_digi_kehitys: 0 + haun_painopisteet_vertais_kehitys: 0 + haun_painopisteet_kulttuuri_kehitys: 0 + hankkeen_kohderyhmat_kenelle: 0 + hankkeen_kohderyhmat_erityisryhmat: 0 + hankkeen_kohderyhmat_tavoitus: 0 + hankkeen_kohderyhmat_konkretia: 0 + hankkeen_kohderyhmat_osallisuus: 0 + hankkeen_kohderyhmat_osaaminen: 0 + hankkeen_kohderyhmat_postinrot: 0 + hankkeen_kohderyhmat_miksi_alue: 0 + hankkeen_riskit_keskeisimmat: 0 + hankkeen_riskit_seuranta: 0 + hankkeen_riskit_vakiinnuttaminen: 0 + arviointi_toteuma: 0 + arviointi_muutokset_talous: 0 + arviointi_muutokset_toiminta: 0 + arviointi_muutokset_aikataulu: 0 + arviointi_haasteet: 0 + arviointi_saavutettavuus: 0 + arviointi_avustus_kaytto: 0 + tulot: 0 + talous_tulon_tyyppi: 0 + talous_menon_tyyppi: 0 + additional_information: 0 + extra_info: 0 + muu_liite: 0 + '#subvention_type': '48' + '#data_type': euro + '#form_item': hidden + 1_hakijan_tiedot: + '#type': webform_wizard_page + '#title': '1. Hakijan tiedot' + '#prev_button_label': Edellinen + '#next_button_label': Seuraava + application_number: + '#type': hidden + '#title': Hakemusnumero + '#disabled': true + status: + '#type': hidden + '#title': 'Hakemuksen tila' + '#readonly': true + hakemusprofiili: + '#type': webform_section + '#title': 'Haetut tiedot' + '#attributes': + class: + - grants-profile--imported-section + prh_markup: + '#type': webform_markup + '#markup': 'Tiedot on haettu hakuprofiilistasi.' + hakijan_tiedot: + '#type': applicant_info + '#title': Hakija + contact_person_email_section: + '#type': webform_section + '#title': Sähköposti + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + contact_markup: + '#type': webform_markup + '#markup': 'Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.' + email: + '#type': email + '#title': Sähköpostiosoite + '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' + '#size': 63 + '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' + '#states': + required: + ':input[name="applicant_type"]': + value: registered_community + contact_person_section: + '#type': webform_section + '#title': 'Hakemuksen yhteyshenkilö' + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + contact_person: + '#type': textfield + '#title': Yhteyshenkilö + '#autocomplete': 'off' + '#required': true + '#attributes': + class: + - webform--large + '#size': 63 + contact_person_phone_number: + '#type': textfield + '#title': Puhelinnumero + '#required': true + '#autocomplete': 'off' + '#attributes': + class: + - webform--medium + '#size': 32 + osoite: + '#type': webform_section + '#title': Osoite + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + community_address: + '#type': community_address_composite + '#title': 'Yhteisön osoite' + '#help': 'Jos haluat lisätä, poistaa tai muuttaa osoitetietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään osoitetietoa omiin tietoihin.' + '#attributes': + class: + - webform--large + '#required': true + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + tilinumero: + '#type': webform_section + '#title': Tilinumero + bank_account: + '#type': bank_account_composite + '#title': Tilinumero + '#help': 'Jos haluat lisätä, poistaa tai muuttaa tilinumerotietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään tilinumerotietoa omiin tietoihin.' + '#attributes': + class: + - webform--medium + '#required': true + toiminnasta_vastaavat_henkilot: + '#type': webform_section + '#title': 'Toiminnasta vastaavat henkilöt' + '#states': + visible: + ':input[name="applicant_type"]': + '!value': private_person + community_officials: + '#type': community_officials_composite + '#help': 'Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.' + '#title': 'Valitse toiminnasta vastaavat henkilöt' + '#multiple': true + '#multiple__item_label': henkilö + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää henkilö' + '#wrapper_attributes': + class: + - community_officials_wrapper + '#attributes': + class: + - webform--large + 2_avustustiedot: + '#type': webform_wizard_page + '#title': '2. Avustustiedot' + avustuksen_tiedot: + '#type': webform_section + '#title': 'Avustuksen tiedot' + acting_year: + '#type': select + '#title': 'Vuosi, jolle haen avustusta' + '#options': + 2024: '2024' + 2025: '2025' + 2026: '2026' + '#required': true + avustuslajit: + '#type': webform_section + '#title': Avustuslajit + subventions: + '#type': grants_compensations + '#title': Avustukset + '#multiple': true + '#subventionType': + 47: '47' + 51: '51' + '#onlyOneSubventionPerApplication': 1 + '#required': true + '#multiple__header': true + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more': false + '#attributes': + class: + - subventions + '#subvention_type': + 1: '1' + 6: '6' + '#subvention_type_id__access': false + '#subvention_type__title': Avustuslaji + '#subvention_amount__title': 'Avustuksen summa' + grants_compensations_information: + '#type': webform_markup + '#markup': '

Hae yhdellä hakemuksella aina vain yhtä avustuslajia kerrallaan.

' + kayttotarkoitus: + '#type': webform_section + '#title': Käyttötarkoitus + compensation_purpose: + '#type': textarea + '#title': 'Lyhyt kuvaus haettavan / haettavien avustusten käyttötarkoituksista' + '#help': 'Kerro mitä tarkoitusta varten avustusta haetaan, erittele tarvittaessa eri käyttökohteet. Kerro myös mitä avustuksella on tarkoitus saada aikaiseksi ja millaisia tavoitteita avustettavaan toimintaan liittyy.' + '#maxlength': 5000 + '#required': true + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + other_grants_for_same_purpose: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen myönnetyt avustukset' + info_muut_samaan_tarkoitukseen_myonnetty: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on myönnetty muualta kuin Helsingin kaupungilta kuluvana tai kahtena edellisenä verovuotena. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_saaneet_muita_avustuksia: + '#type': radios + '#title': 'Olemme saaneet muita avustuksia' + '#description_display': before + '#options': + 1: Kyllä + 0: Ei + myonnetty_avustus: + '#type': webform_custom_composite + '#title': 'Myönnetty avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + required: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'myönnetty avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi myönnetty avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi myönnetty avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + 6: STEA + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#attributes': + class: + - webform--large + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + year: + '#type': textfield + '#required': true + '#title': Vuosi + '#attributes': + class: + - webform--small + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': 'Myönnetyn avustuksen summa' + '#input_mask': "'alias': 'currency', 'prefix': '', 'suffix': '€','groupSeparator': ' ','radixPoint':','" + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + muut_samaan_tarkoitukseen_haetut_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen haetut avustukset' + info_muut_samaan_tarkoitukseen_haettu: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on haettu muualta kuin Helsingin kaupungilta, eikä päätöstä ole vielä tehty. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: + '#type': radios + '#title': 'Olemme hakeneet avustuksia muualta kuin Helsingin kaupungilta' + '#options': + 1: Kyllä + 0: Ei + haettu_avustus_tieto: + '#type': webform_custom_composite + '#title': 'Lisää uusi haettu avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta"]': + value: '1' + required: + ':input[name="olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'haettu avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi haettu avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi haettu avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + 6: STEA + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#attributes': + class: + - webform--large + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + year: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': Vuosi + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': 'Haetun avustuksen summa' + '#input_mask': "'alias': 'currency', 'prefix': '', 'suffix': '€','groupSeparator': ' ','radixPoint':','" + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + 3_tarkemmat_tiedot: + '#type': webform_wizard_page + '#title': '3. Tarkemmat tiedot' + tarkemmat_tiedot_section: + '#type': webform_section + '#title': ' ' + hankesuunnitelma_radios: + '#type': radios + '#title': 'Haetaanko nyt vuonna 2024 myönnetyn kaksivuotisen avustuksen 2. osaa?' + '#help': 'Vastaa tähän kysymykseen "kyllä" vain siinä tapauksessa, jos yhteisölläsi on jo käynnissä oleva, samasta avustuksesta rahoitettu hanke ja haet sille jatkorahoitusta.' + '#description_display': before + '#options': + 1: Kyllä + 0: Ei + '#default_value': '0' + ensisijainen_taiteen_ala: + '#type': select + '#title': 'Ensisijainen taiteenala' + '#help': 'Valitse pudotusvalikosta toimintaa parhaiten kuvaava vaihtoehto.' + '#options': + 'Design ja käsityö': 'Design ja käsityö' + 'Elokuva, valokuva ja media': 'Elokuva, valokuva ja media' + Kaupunkikulttuuri: Kaupunkikulttuuri + Kirjallisuus: Kirjallisuus + 'Kuvataide ja sarjakuva': 'Kuvataide ja sarjakuva' + Monitaide: Monitaide + Museo: Museo + Musiikki: Musiikki + Muu: Muu + Sirkus: Sirkus + Tanssi: Tanssi + Teatteri: Teatteri + '#wrapper_attributes': + class: + - webform-element-help--wrapper-short + '#states': + visible: + - ':input[name="kulttuuri1_summa"]': + value: + greater: '0' + - or + - ':input[name="kulttuuri2_summa"]': + value: + greater: '0' + hankesuunnitelma_section: + '#type': webform_section + '#title': '3.1 Hankesuunnitelma' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + hankesuunnitelma_jatkohakemus: + '#type': radios + '#title': 'Onko haettava avustus käynnissä olevan hankkeen jatkohakemus?' + '#description_display': before + '#options': + 1: Kyllä + 0: Ei + '#default_value': '0' + hankkeen_tarkoitus_tavoitteet: + '#type': textarea + '#title': 'Hankkeen tarkoitus ja tavoitteet' + '#maxlength': 2500 + '#required': true + '#counter_type': character + '#counter_maximum': 2500 + '#counter_maximum_message': '%d/2500 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + hankkeen_toimenpiteet_aikataulu: + '#type': textarea + '#title': 'Mitkä ovat hankkeen konkreettiset toimenpiteet ja niiden toteutusaikataulu?' + '#maxlength': 4000 + '#required': true + '#counter_type': character + '#counter_maximum': 4000 + '#counter_maximum_message': '%d/4000 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + hankkeen_toimenpiteet_toteutus: + '#type': fieldset + '#title': 'Hankkeen konkreettiset toimenpiteet on tarkoitus toteuttaa välillä' + '#attributes': + class: + - grants-fieldset + '#states': + visible: + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + hankkeen_toimenpiteet_alkupvm: + '#type': date + '#title': Alkupäivämäärä + '#required': true + '#states': + visible: + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + hankkeen_toimenpiteet_loppupvm: + '#type': date + '#title': Loppupäivämäärä + '#required': true + '#states': + visible: + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + hankkeen_keskeisimmat_kumppanit: + '#type': textarea + '#title': 'Nimeä hankkeen keskeisimmät yhteistyökumppanit ja heidän roolinsa hankkeessa' + '#maxlength': 2500 + '#required': true + '#counter_type': character + '#counter_maximum': 2500 + '#counter_maximum_message': '%d/2500 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + haun_painopisteet_section: + '#type': webform_section + '#title': '3.2 Haun painopisteet' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + haun_painopisteet_ohje: + '#type': webform_markup + '#markup': 'Mihin seuraavista iäkkäiden liikkumisen ja kulttuuritoiminnan edistämisen avustuksen painopisteistä hanke vastaa?

Hankkeessa tulee toteuttaa yhtä tai useampaa painopistettä. HUOM! Valitse vain ne painopisteet, joita edistätte hankkeessa konkreettisella tavalla. Jos hanke ei toteuta jotakin painopistettä, jätä tekstikenttä tyhjäksi.

' + haun_painopisteet_liikkumis_kehitys: + '#type': textarea + '#title': 'Kehitetäänkö hankkeessa liikkumismahdollisuuksia tai taide- ja kulttuuritoimintaa lähiympäristössä / alueellisesti? Miten?' + '#maxlength': 1250 + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + haun_painopisteet_digi_kehitys: + '#type': textarea + '#title': 'Kehitetäänkö hankkeessa digitaalisesti / etänä toteutettavia kulttuuritoimintoja tai liikkumiseen aktivoivaa toimintaa? Miten?' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + haun_painopisteet_vertais_kehitys: + '#type': textarea + '#title': 'Kehitetäänkö hankkeessa vapaaehtois- / vertaistoimintaa? Miten?' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + haun_painopisteet_kulttuuri_kehitys: + '#type': textarea + '#title': 'Kehitetäänkö hankkeessa taide- ja kulttuuritoimijoiden osaamista tai luodaanko uusia työtapoja / rakenteita? Miten?' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + - ':input[name="kulttuuri1_summa"]': + value: + greater: '0' + - or + - ':input[name="kulttuuri2_summa"]': + value: + greater: '0' + hankkeen_kohderyhmat_section: + '#type': webform_section + '#title': '3.3 Hankkeen kohderyhmät' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + hankkeen_kohderyhmat_kenelle: + '#type': textarea + '#title': 'Kenelle hankkeen toiminta on pääasiallisesti suunnattu?' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + hankkeen_kohderyhmat_erityisryhmat: + '#type': textarea + '#title': 'Kohdennetaanko hankkeessa toimintaa jollekin erityisryhmälle?' + '#help': 'Mille erityisryhmälle? Jos ei toteuteta, niin jätetään tyhjäksi.' + '#maxlength': 1250 + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + hankkeen_kohderyhmat_tavoitus: + '#type': textarea + '#title': 'Kuinka hankkeen kohderyhmät aiotaan tavoittaa?' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + hankkeen_kohderyhmat_konkretia: + '#type': textarea + '#title': 'Miten hankkeessa edistetään konkreettisin toimenpitein valitun kohderyhmän toimintakykyä ja hyvinvointia?' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + hankkeen_kohderyhmat_osallisuus: + '#type': textarea + '#title': 'Millä tavoin hankkeessa edistetään osallisuutta? Mikä ikäihmisten rooli hankkeessa on?' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + hankkeen_kohderyhmat_osaaminen: + '#type': textarea + '#title': 'Millaista osaamista kyseisen kohderyhmän/-ryhmien kanssa työskentelystä hanketoimijoilla on ennestään?' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + hankkeen_kohderyhmat_postinrot: + '#type': textfield + '#title': 'Millä postinumeroalueella tai -alueilla Helsingissä hanke toteutetaan?' + '#help': 'Kirjaa kenttään enintään kolme (3) postinumeroaluetta ja erottele ne toisistaan pilkulla (,)' + '#required': true + '#autocomplete': 'off' + '#attributes': + class: + - webform--medium + '#size': 32 + '#states': + visible: + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + hankkeen_kohderyhmat_miksi_alue: + '#type': textarea + '#title': 'Miksi juuri kyseinen alue / alueet on valittu?' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + hankkeen_riskit_section: + '#type': webform_section + '#title': '3.4 Riskit & analyysi' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + hankkeen_riskit_keskeisimmat: + '#type': textarea + '#title': 'Mitkä ovat hankkeen toteuttamisen näkökulmasta keskeisimmät riskit?' + '#maxlength': 2500 + '#required': true + '#counter_type': character + '#counter_maximum': 2500 + '#counter_maximum_message': '%d/2500 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + hankkeen_riskit_seuranta: + '#type': textarea + '#title': 'Miten hankkeessa aiotaan toteuttaa seurantaa ja arviointia?' + '#maxlength': 2500 + '#required': true + '#counter_type': character + '#counter_maximum': 2500 + '#counter_maximum_message': '%d/2500 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + hankkeen_riskit_vakiinnuttaminen: + '#type': textarea + '#title': 'Onko hankkeen suunniteltu toiminta aikomus vakiinnuttaa osaksi hakijan/jonkun muun toimijan perustoimintaa hankkeen jälkeen? Jos kyllä, niin kuvaa tekstikenttään kuinka vakiinnuttaminen aiotaan tehdä, muuten jätä tyhjäksi.' + '#maxlength': 2500 + '#counter_type': character + '#counter_maximum': 2500 + '#counter_maximum_message': '%d/2500 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_jatkohakemus"]': + value: '0' + hankkeen_valiarviointi_section: + '#type': webform_section + '#title': '3.5 2-vuotisten hankkeiden väliarviointi' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + arviointi_markup: + '#type': webform_markup + '#markup': 'Arvioi tässä osiossa hankkeen tähänastista toimintaa seuraavien kysymysten avulla. Avustuksen 2. osaa hakevien tulee liittää hakemukselle Muu liite-kohtaan niin ikään kustannuspaikkaraportti ajanjaksolta 1.6.-31.12.2024' + arviointi_toteuma: + '#type': textarea + '#title': 'Onko hanke edennyt suunnitelman mukaisesti? Arvioikaa hankkeen toteumaa tähän asti asteikolla 1-100% ja perustelkaa vastauksenne.' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + arviointi_muutokset_markup: + '#type': webform_markup + '#markup': 'Onko hankkeessa tapahtunut merkittäviä muutoksia?' + arviointi_muutokset_talous: + '#type': textarea + '#title': 'Talouteen liittyen; mitä?' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + arviointi_muutokset_toiminta: + '#type': textarea + '#title': 'Toimintaan liittyen; mitä?' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + arviointi_muutokset_aikataulu: + '#type': textarea + '#title': 'Aikatauluun liittyen; mitä?' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + arviointi_haasteet: + '#type': textarea + '#title': 'Onko hanke kohdannut toimintaan vaikuttaneita haasteita? Jos, niin millaisia?' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + arviointi_saavutettavuus: + '#type': textarea + '#title': 'Miten toiminta on tavoittanut osallistujia suhteessa tavoitteisiin?' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + arviointi_avustus_kaytto: + '#type': textarea + '#help': 'Avustusehdot, kohta 10e: "Myönnetty avustus on palautettava Helsingin kaupungille, jos avustusta ei ole käytetty sinä aikana, jona se on avustuspäätöksen mukaan tullut käyttää.' + '#title': 'Tuleeko ensimmäiselle hankekaudelle myönnetty avustus käytettyä näillä näkymin määräaikaan (31.5.2025) mennessä? Jos ei, niin avatkaa tähän johtaneita syitä.' + '#maxlength': 1250 + '#required': true + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + 4_talousarvio: + '#type': webform_wizard_page + '#title': '4. Talousarvio' + tulot_section: + '#type': webform_section + '#title': '4.1 Tulot' + tulot: + '#type': grants_budget_income_static + '#title': Tulot + '#multiple': false + '#incomeGroup': general + '#plannedStateOperativeSubvention__access': false + '#otherCompensationFromCity__access': false + '#stateOperativeSubvention__access': false + '#plannedOtherCompensations__access': false + '#sponsorships__access': false + '#entryFees__access': false + '#sales__access': false + '#financialFundingAndInterests__access': false + '#customerFees__access': false + '#donations__access': false + '#compensationFromCulturalAffairs__access': false + '#otherCompensationType__access': false + '#incomeWithoutCompensations__access': false + '#ownFunding__access': false + '#plannedTotalIncome__access': false + '#otherCompensations__access': false + '#plannedTotalIncomeWithoutSubventions__access': false + '#plannedShareOfIncomeWithoutSubventions__access': false + '#shareOfIncomeWithoutSubventions__access': false + '#totalIncomeWithoutSubventions__access': false + '#totalIncome__access': false + '#incomeGroupName__access': false + talous_tulon_tyyppi: + '#type': grants_budget_other_income + '#title': 'Tulon tyyppi' + '#multiple': true + '#incomeGroup': general + '#help': 'Kerro tässä minkälainen tulo on kyseessä. Toiminnan tuloja voivat olla esimerkiksi muut avustukset ja pääsy- tai osallistumismaksut. Kirjaa tähän kohtaan myös omarahoitusosuus, jos hankkeen alijäämä kuitataan muusta taloudestanne.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi tulo' + '#multiple__item_label': tulo + menot_section: + '#type': webform_section + '#title': '4.2 Menot' + talous_menon_tyyppi: + '#type': grants_budget_other_cost + '#title': Meno + '#multiple': true + '#incomeGroup': general + '#help': 'Kerro tässä minkälainen meno on kyseessä. Toiminnan menoja voivat olla esimerkiksi tilavuokrat ja henkilöstökulut.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi meno' + '#multiple__item_label': meno + lisatiedot_ja_liitteet: + '#type': webform_wizard_page + '#title': '5. Lisätiedot ja liitteet' + lisatietoja_hakemukseen_liittyen: + '#type': webform_section + '#title': 'Lisätietoja hakemukseen liittyen' + additional_information: + '#type': textarea + '#title': Lisätiedot + '#attributes': + class: + - webform--large + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen tai ilmoittaa perustietoihin tulleista muutoksista ' + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + liitteet: + '#type': webform_section + '#title': Liitteet + attachments_info: + '#type': webform_markup + '#markup': '

Avustushakemuksen käsittelyä varten tulee toimittaa kaikki hakuilmoituksessa luetellut liitteet. Avustushakemus voidaan hylätä, jos liitteitä ei ole toimitettu. Mikäli joku liitteistä puuttuu kerro siitä hakemuksen Lisäselvitys liitteistä -kohdassa.

Helsingin kaupungille aiemmin toimitetut liitteet

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

' + notification_attachments: + '#type': webform_markup + '#markup': | +
+
+
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.

+
+
+ '#format': full_html + extra_info: + '#type': textarea + '#title': 'Lisäselvitys liitteistä' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#attributes': + class: + - webform--large + '#cols': 63 + muu_liite: + '#type': grants_attachments + '#title': 'Muu liite' + '#multiple': 10 + '#filetype': '0' + '#title_display': before + '#multiple__item_label': liite + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää liite' + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + actions: + '#type': webform_actions + '#title': 'Submit button(s)' + '#submit__label': Lähetä + '#draft__label': 'Tallenna keskeneräisenä' + '#wizard_prev__label': Edellinen + '#wizard_next__label': Seuraava + '#preview_prev__label': Edellinen + '#preview_next__label': Esikatseluun + '#delete_hide': false + '#delete__label': 'Poista keskeneräinen' + '#delete__attributes': + class: + - hds-button + - hds-button--primary + '#delete__dialog': true +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: source_entity_webform + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: false + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: false + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: true + form_disable_back: false + form_submit_back: true + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: { } + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: false + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: true + wizard_progress_states: false + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '7. Valmis' + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: '' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava + wizard_toggle: true + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 2 + preview_label: '6. Vahvista, esikatsele ja lähetä' + preview_title: 'Vahvista, esikatsele ja lähetä' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: false + preview_exclude_empty_checkbox: false + draft: all + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: none + confirmation_url: '' + confirmation_title: '' + confirmation_message: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: true + confirmation_exclude_token: true + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: draft + purge_days: 365 + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - anonymous + - authenticated + users: { } + permissions: { } + view_any: + roles: { } + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: + grants_handler: + id: grants_handler + handler_id: null + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: null + settings: + id: grants_handler + handler_id: null + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: null + settings: + id: grants_handler + label: 'Grants Handler' + notes: '' + handler_id: null + status: 1 + conditions: { } + weight: '' + settings: + id: grants_handler + handler_id: null + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: null + settings: + id: grants_handler + handler_id: null + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: null + settings: + id: grants_handler + handler_id: null + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: null + settings: + id: grants_handler + handler_id: null + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: null + settings: + id: grants_handler + handler_id: null + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: null + settings: + id: grants_handler + handler_id: null + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: null + settings: + id: grants_handler + handler_id: grants_handler + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: 0 + settings: + debug: false + debug: false +variants: { } diff --git a/public/modules/custom/grants_metadata/src/GrantsConverterService.php b/public/modules/custom/grants_metadata/src/GrantsConverterService.php index d677e09005..b8994ca216 100644 --- a/public/modules/custom/grants_metadata/src/GrantsConverterService.php +++ b/public/modules/custom/grants_metadata/src/GrantsConverterService.php @@ -143,4 +143,44 @@ public function convertToCommaFloat(array $value): ?string { return str_replace(['€', '.', ' '], ['', ',', ''], $fieldValue); } + /** + * Converts a boolean value represented as a string to a Kyllä/Ei string. + * + * This will be called when converting Kyllä/Ei values to webform accepted + * booleanish values. They are stings with 1 or 0 as value. + * So not boolean per se, but this method can be made to support int values + * as well. + * + * @param string $value + * The boolean value as a string ('1', '0', 'Kyllä', 'Ei'). + * + * @return string + * The hard coded 'Yes' ('Kyllä') or 'No' ('Ei') string. + */ + public function convertBooleanToYesNo(string $value): string { + return match ($value) { + 'Kyllä', 'Ei' => $value, + '1' => 'Kyllä', + default => 'Ei', + }; + } + + /** + * Converts a string value back to a boolean integer. + * + * This method is used to convert the 'Kyllä' or 'Ei' strings to booleanish + * values for Webform to consume. While we return an integer, it is not a + * boolean per se, but a value that Webform uses to represent a boolean value. + * + * @param string $value + * The localized 'Yes' ('Kyllä') or 'No' ('Ei') string. + * + * @return int + * The boolean value as an integer (1 for 'Kyllä', 0 for 'Ei'). + */ + public function extractBooleanYesNoValue(string $value): int { + // Return 1 if the value is 'Kyllä', otherwise return 0. + return $value === 'Kyllä' ? 1 : 0; + } + } diff --git a/public/modules/custom/grants_metadata/src/TypedData/Definition/KuvaErillisDefinition.php b/public/modules/custom/grants_metadata/src/TypedData/Definition/KuvaErillisDefinition.php index d625fab6cf..2063f18de9 100644 --- a/public/modules/custom/grants_metadata/src/TypedData/Definition/KuvaErillisDefinition.php +++ b/public/modules/custom/grants_metadata/src/TypedData/Definition/KuvaErillisDefinition.php @@ -35,17 +35,26 @@ public function getPropertyDefinitions() { $customQuestions = [ 'hankesuunnitelma_radios' => [ - 'type' => 'boolean', - 'typeOverride' => [ - 'dataType' => 'string', - 'jsonType' => 'bool', + 'type' => 'string', + 'valueCallback' => [ + 'service' => 'grants_metadata.converter', + 'method' => 'convertBooleanToYesNo', + ], + 'webformValueExtracter' => [ + 'service' => 'grants_metadata.converter', + 'method' => 'extractBooleanYesNoValue', ], ], + 'ensisijainen_taiteen_ala' => [], 'hankesuunnitelma_jatkohakemus' => [ - 'type' => 'boolean', - 'typeOverride' => [ - 'dataType' => 'string', - 'jsonType' => 'bool', + 'type' => 'string', + 'valueCallback' => [ + 'service' => 'grants_metadata.converter', + 'method' => 'convertBooleanToYesNo', + ], + 'webformValueExtracter' => [ + 'service' => 'grants_metadata.converter', + 'method' => 'extractBooleanYesNoValue', ], ], 'hankkeen_tarkoitus_tavoitteet' => [], @@ -59,7 +68,7 @@ public function getPropertyDefinitions() { 'service' => 'grants_metadata.converter', 'method' => 'convertDates', 'arguments' => [ - 'dateFormat' => 'c', + 'dateFormat' => 'Y-m-d', ], ], ], @@ -72,7 +81,7 @@ public function getPropertyDefinitions() { 'service' => 'grants_metadata.converter', 'method' => 'convertDates', 'arguments' => [ - 'dateFormat' => 'c', + 'dateFormat' => 'Y-m-d', ], ], ], @@ -92,14 +101,13 @@ public function getPropertyDefinitions() { 'hankkeen_riskit_keskeisimmat' => [], 'hankkeen_riskit_seuranta' => [], 'hankkeen_riskit_vakiinnuttaminen' => [], - // Example forms. - 'puuttuva_kentta_1' => [], - 'puuttuva_kentta_2' => [], - 'vaikka_sahkoposti' => [], - 'checkboksiki_onnistuu' => [], - 'tekstialue' => [], - 'tekstikentta' => [], - 'paivamaara' => [], + 'arviointi_toteuma' => [], + 'arviointi_muutokset_talous' => [], + 'arviointi_muutokset_toiminta' => [], + 'arviointi_muutokset_aikataulu' => [], + 'arviointi_haasteet' => [], + 'arviointi_saavutettavuus' => [], + 'arviointi_avustus_kaytto' => [], ]; foreach ($customQuestions as $key => $value) { @@ -168,6 +176,10 @@ private function createCustomQuestionDefinitions(string $key, array $value, arra if (isset($value['valueCallback'])) { $info[$key]->setSetting('valueCallback', $value['valueCallback']); } + // Add value extractor if set. + if (isset($value['webformValueExtracter'])) { + $info[$key]->setSetting('webformValueExtracter', $value['webformValueExtracter']); + } // Add default value if set or empty value. if (isset($value['defaultValue'])) { $info[$key]->setSetting('defaultValue', $value['defaultValue']); diff --git a/tools/http/http-client.env.json b/tools/http/http-client.env.json index b2d490c533..edcbff3c8c 100644 --- a/tools/http/http-client.env.json +++ b/tools/http/http-client.env.json @@ -1,7 +1,7 @@ { "dev": { "atvUrl": "https://atv-api-hki-kanslia-atv-test.agw.arodevtest.hel.fi", - "transactionId": "LOCALYRTTI12-070-0000009", + "transactionId": "LOCALYRTTI12-070-0000012", "document_id": "28753685-24b8-4542-b1c1-cc70ff9f9fbc", "integraatioUrl": "https://avustus-integration-test.agw.arodevtest.hel.fi" } From f301ce69193abd5eafa62658571b6725548eee16 Mon Sep 17 00:00:00 2001 From: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Date: Thu, 14 Nov 2024 16:07:45 +0200 Subject: [PATCH 41/95] Update configuration (#1562) --- composer.lock | 214 +++++++++++++++++++++++++------------------------- 1 file changed, 108 insertions(+), 106 deletions(-) diff --git a/composer.lock b/composer.lock index 690a6d4d42..84452c5fa7 100644 --- a/composer.lock +++ b/composer.lock @@ -3116,16 +3116,16 @@ }, { "name": "drupal/core", - "version": "10.3.7", + "version": "10.3.8", "source": { "type": "git", "url": "https://github.com/drupal/core.git", - "reference": "5b11ec4e38e71748c51287cbd64cfcc43faeb624" + "reference": "4006024a8dd7c9976fad0a2af7c9034d120c8e44" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core/zipball/5b11ec4e38e71748c51287cbd64cfcc43faeb624", - "reference": "5b11ec4e38e71748c51287cbd64cfcc43faeb624", + "url": "https://api.github.com/repos/drupal/core/zipball/4006024a8dd7c9976fad0a2af7c9034d120c8e44", + "reference": "4006024a8dd7c9976fad0a2af7c9034d120c8e44", "shasum": "" }, "require": { @@ -3171,7 +3171,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" @@ -3274,13 +3274,13 @@ ], "description": "Drupal is an open source content management platform powering millions of websites and applications.", "support": { - "source": "https://github.com/drupal/core/tree/10.3.7" + "source": "https://github.com/drupal/core/tree/10.3.8" }, - "time": "2024-11-07T08:22:50+00:00" + "time": "2024-11-12T09:52:10+00:00" }, { "name": "drupal/core-composer-scaffold", - "version": "10.3.7", + "version": "10.3.8", "source": { "type": "git", "url": "https://github.com/drupal/core-composer-scaffold.git", @@ -3324,7 +3324,7 @@ "drupal" ], "support": { - "source": "https://github.com/drupal/core-composer-scaffold/tree/10.3.7" + "source": "https://github.com/drupal/core-composer-scaffold/tree/10.3.8" }, "time": "2024-08-22T14:31:34+00:00" }, @@ -5253,17 +5253,17 @@ }, { "name": "drupal/focal_point", - "version": "2.1.1", + "version": "2.1.2", "source": { "type": "git", "url": "https://git.drupalcode.org/project/focal_point.git", - "reference": "2.1.1" + "reference": "2.1.2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/focal_point-2.1.1.zip", - "reference": "2.1.1", - "shasum": "f8c24bb4257f784176e79ec6f2b4c11ed46391e0" + "url": "https://ftp.drupal.org/files/projects/focal_point-2.1.2.zip", + "reference": "2.1.2", + "shasum": "5f8ffadd37748506c8f00314b1d45c947eb27cf7" }, "require": { "drupal/core": "^9.3 || ^10 || ^11", @@ -5275,8 +5275,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "2.1.1", - "datestamp": "1721126807", + "version": "2.1.2", + "datestamp": "1731556344", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -5491,16 +5491,16 @@ }, { "name": "drupal/hdbt", - "version": "6.8.4", + "version": "6.8.5", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-hdbt.git", - "reference": "dfabf9a5cdc0953ea7e3078ed002fe4bc937abad" + "reference": "45ae632cf0b62b990b8098f9a07f53a348fa1bf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/dfabf9a5cdc0953ea7e3078ed002fe4bc937abad", - "reference": "dfabf9a5cdc0953ea7e3078ed002fe4bc937abad", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/45ae632cf0b62b990b8098f9a07f53a348fa1bf1", + "reference": "45ae632cf0b62b990b8098f9a07f53a348fa1bf1", "shasum": "" }, "require": { @@ -5519,10 +5519,10 @@ "Drupal" ], "support": { - "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.8.4", + "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.8.5", "issues": "https://github.com/City-of-Helsinki/drupal-hdbt/issues" }, - "time": "2024-11-08T17:53:14+00:00" + "time": "2024-11-14T10:30:35+00:00" }, { "name": "drupal/hdbt_admin", @@ -9432,17 +9432,17 @@ }, { "name": "drupal/stomp", - "version": "2.0.0-alpha4", + "version": "2.0.0-alpha5", "source": { "type": "git", "url": "https://git.drupalcode.org/project/stomp.git", - "reference": "2.0.0-alpha4" + "reference": "2.0.0-alpha5" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/stomp-2.0.0-alpha4.zip", - "reference": "2.0.0-alpha4", - "shasum": "624db88867009eab5da9ccc259a396eb79927809" + "url": "https://ftp.drupal.org/files/projects/stomp-2.0.0-alpha5.zip", + "reference": "2.0.0-alpha5", + "shasum": "5f904047325f8f55674c77e16f61a4807cb51f7e" }, "require": { "drupal/core": "^9 || ^10 || ^11", @@ -9455,18 +9455,18 @@ "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", "drupal/coder": "^8.3", - "drush/drush": "^11.6 || ^12", + "drush/drush": "^11.6 || ^12 || ^13", "jangregor/phpstan-prophecy": "dev-master", "mglaman/phpstan-drupal": "^1.2", "phpstan/extension-installer": "^1.3", - "phpstan/phpstan": "1.11.x-dev", - "phpstan/phpstan-deprecation-rules": "1.2.x-dev" + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-deprecation-rules": "^1.1" }, "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.0-alpha4", - "datestamp": "1711347968", + "version": "2.0.0-alpha5", + "datestamp": "1731482648", "security-coverage": { "status": "not-covered", "message": "Alpha releases are not covered by Drupal security advisories." @@ -12718,16 +12718,16 @@ }, { "name": "monolog/monolog", - "version": "3.7.0", + "version": "3.8.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8" + "reference": "32e515fdc02cdafbe4593e30a9350d486b125b67" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f4393b648b78a5408747de94fca38beb5f7e9ef8", - "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/32e515fdc02cdafbe4593e30a9350d486b125b67", + "reference": "32e515fdc02cdafbe4593e30a9350d486b125b67", "shasum": "" }, "require": { @@ -12747,12 +12747,14 @@ "guzzlehttp/psr7": "^2.2", "mongodb/mongodb": "^1.8", "php-amqplib/php-amqplib": "~2.4 || ^3", - "phpstan/phpstan": "^1.9", - "phpstan/phpstan-deprecation-rules": "^1.0", - "phpstan/phpstan-strict-rules": "^1.4", - "phpunit/phpunit": "^10.5.17", + "php-console/php-console": "^3.1.8", + "phpstan/phpstan": "^2", + "phpstan/phpstan-deprecation-rules": "^2", + "phpstan/phpstan-strict-rules": "^2", + "phpunit/phpunit": "^10.5.17 || ^11.0.7", "predis/predis": "^1.1 || ^2", - "ruflin/elastica": "^7", + "rollbar/rollbar": "^4.0", + "ruflin/elastica": "^7 || ^8", "symfony/mailer": "^5.4 || ^6", "symfony/mime": "^5.4 || ^6" }, @@ -12803,7 +12805,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.7.0" + "source": "https://github.com/Seldaek/monolog/tree/3.8.0" }, "funding": [ { @@ -12815,7 +12817,7 @@ "type": "tidelift" } ], - "time": "2024-06-28T09:40:51+00:00" + "time": "2024-11-12T13:57:08+00:00" }, { "name": "nesbot/carbon", @@ -15309,16 +15311,16 @@ }, { "name": "symfony/console", - "version": "v6.4.14", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "897c2441ed4eec8a8a2c37b943427d24dba3f26b" + "reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/897c2441ed4eec8a8a2c37b943427d24dba3f26b", - "reference": "897c2441ed4eec8a8a2c37b943427d24dba3f26b", + "url": "https://api.github.com/repos/symfony/console/zipball/f1fc6f47283e27336e7cebb9e8946c8de7bff9bd", + "reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd", "shasum": "" }, "require": { @@ -15383,7 +15385,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.14" + "source": "https://github.com/symfony/console/tree/v6.4.15" }, "funding": [ { @@ -15399,20 +15401,20 @@ "type": "tidelift" } ], - "time": "2024-11-05T15:34:40+00:00" + "time": "2024-11-06T14:19:14+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.4.13", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "728ae8f4e190133ce99d6d5f0bc1e8c8bd7c7a96" + "reference": "70ab1f65a4516ef741e519ea938e6aa465e6aa36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/728ae8f4e190133ce99d6d5f0bc1e8c8bd7c7a96", - "reference": "728ae8f4e190133ce99d6d5f0bc1e8c8bd7c7a96", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/70ab1f65a4516ef741e519ea938e6aa465e6aa36", + "reference": "70ab1f65a4516ef741e519ea938e6aa465e6aa36", "shasum": "" }, "require": { @@ -15464,7 +15466,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.13" + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.15" }, "funding": [ { @@ -15480,7 +15482,7 @@ "type": "tidelift" } ], - "time": "2024-10-25T15:07:50+00:00" + "time": "2024-11-09T06:56:25+00:00" }, { "name": "symfony/deprecation-contracts", @@ -15912,16 +15914,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.4.14", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "ba020a321a95519303a3f09ec2824d34d601c388" + "reference": "9b3165eb2f04aeaa1a5a2cfef73e63fe3b22dff6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ba020a321a95519303a3f09ec2824d34d601c388", - "reference": "ba020a321a95519303a3f09ec2824d34d601c388", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/9b3165eb2f04aeaa1a5a2cfef73e63fe3b22dff6", + "reference": "9b3165eb2f04aeaa1a5a2cfef73e63fe3b22dff6", "shasum": "" }, "require": { @@ -15931,12 +15933,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", @@ -15969,7 +15971,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.14" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.15" }, "funding": [ { @@ -15985,20 +15987,20 @@ "type": "tidelift" } ], - "time": "2024-11-05T16:39:55+00:00" + "time": "2024-11-08T16:09:24+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.14", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "8278a947d0369754a47b758a9e17b72cab970951" + "reference": "b002a5b3947653c5aee3adac2a024ea615fd3ff5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/8278a947d0369754a47b758a9e17b72cab970951", - "reference": "8278a947d0369754a47b758a9e17b72cab970951", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b002a5b3947653c5aee3adac2a024ea615fd3ff5", + "reference": "b002a5b3947653c5aee3adac2a024ea615fd3ff5", "shasum": "" }, "require": { @@ -16083,7 +16085,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.14" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.15" }, "funding": [ { @@ -16099,7 +16101,7 @@ "type": "tidelift" } ], - "time": "2024-11-06T09:45:21+00:00" + "time": "2024-11-13T13:57:37+00:00" }, { "name": "symfony/mailer", @@ -17192,16 +17194,16 @@ }, { "name": "symfony/process", - "version": "v6.4.14", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "25214adbb0996d18112548de20c281be9f27279f" + "reference": "3cb242f059c14ae08591c5c4087d1fe443564392" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/25214adbb0996d18112548de20c281be9f27279f", - "reference": "25214adbb0996d18112548de20c281be9f27279f", + "url": "https://api.github.com/repos/symfony/process/zipball/3cb242f059c14ae08591c5c4087d1fe443564392", + "reference": "3cb242f059c14ae08591c5c4087d1fe443564392", "shasum": "" }, "require": { @@ -17233,7 +17235,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.14" + "source": "https://github.com/symfony/process/tree/v6.4.15" }, "funding": [ { @@ -17249,7 +17251,7 @@ "type": "tidelift" } ], - "time": "2024-11-06T09:25:01+00:00" + "time": "2024-11-06T14:19:14+00:00" }, { "name": "symfony/psr-http-message-bridge", @@ -17419,16 +17421,16 @@ }, { "name": "symfony/serializer", - "version": "v6.4.13", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "8be421505938b11a0ca4f656e4322232236386f0" + "reference": "9d862d66198f3c2e30404228629ef4c18d5d608e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/8be421505938b11a0ca4f656e4322232236386f0", - "reference": "8be421505938b11a0ca4f656e4322232236386f0", + "url": "https://api.github.com/repos/symfony/serializer/zipball/9d862d66198f3c2e30404228629ef4c18d5d608e", + "reference": "9d862d66198f3c2e30404228629ef4c18d5d608e", "shasum": "" }, "require": { @@ -17497,7 +17499,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.13" + "source": "https://github.com/symfony/serializer/tree/v6.4.15" }, "funding": [ { @@ -17513,7 +17515,7 @@ "type": "tidelift" } ], - "time": "2024-10-03T09:58:04+00:00" + "time": "2024-10-23T13:25:59+00:00" }, { "name": "symfony/service-contracts", @@ -17600,16 +17602,16 @@ }, { "name": "symfony/string", - "version": "v6.4.13", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "38371c60c71c72b3d64d8d76f6b1bb81a2cc3627" + "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/38371c60c71c72b3d64d8d76f6b1bb81a2cc3627", - "reference": "38371c60c71c72b3d64d8d76f6b1bb81a2cc3627", + "url": "https://api.github.com/repos/symfony/string/zipball/73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f", + "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f", "shasum": "" }, "require": { @@ -17666,7 +17668,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.13" + "source": "https://github.com/symfony/string/tree/v6.4.15" }, "funding": [ { @@ -17682,7 +17684,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2024-11-13T13:31:12+00:00" }, { "name": "symfony/translation", @@ -17859,16 +17861,16 @@ }, { "name": "symfony/validator", - "version": "v6.4.14", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "dc259b85e59a6569e205966d447dec0a7d95facf" + "reference": "7541055cdaf54ff95f0735bf703d313374e8b20b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/dc259b85e59a6569e205966d447dec0a7d95facf", - "reference": "dc259b85e59a6569e205966d447dec0a7d95facf", + "url": "https://api.github.com/repos/symfony/validator/zipball/7541055cdaf54ff95f0735bf703d313374e8b20b", + "reference": "7541055cdaf54ff95f0735bf703d313374e8b20b", "shasum": "" }, "require": { @@ -17936,7 +17938,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.4.14" + "source": "https://github.com/symfony/validator/tree/v6.4.15" }, "funding": [ { @@ -17952,20 +17954,20 @@ "type": "tidelift" } ], - "time": "2024-11-04T11:33:53+00:00" + "time": "2024-11-08T15:28:48+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.14", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "93c09246038178717a9c14b809ea8151ffcf7091" + "reference": "38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/93c09246038178717a9c14b809ea8151ffcf7091", - "reference": "93c09246038178717a9c14b809ea8151ffcf7091", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80", + "reference": "38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80", "shasum": "" }, "require": { @@ -18021,7 +18023,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.14" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.15" }, "funding": [ { @@ -18037,7 +18039,7 @@ "type": "tidelift" } ], - "time": "2024-11-05T15:34:40+00:00" + "time": "2024-11-08T15:28:48+00:00" }, { "name": "symfony/var-exporter", @@ -20640,16 +20642,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.5.1", + "version": "5.6.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "0c70d2c566e899666f367ab7b80986beb3581e6f" + "reference": "f3558a4c23426d12bffeaab463f8a8d8b681193c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/0c70d2c566e899666f367ab7b80986beb3581e6f", - "reference": "0c70d2c566e899666f367ab7b80986beb3581e6f", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/f3558a4c23426d12bffeaab463f8a8d8b681193c", + "reference": "f3558a4c23426d12bffeaab463f8a8d8b681193c", "shasum": "" }, "require": { @@ -20658,7 +20660,7 @@ "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": { @@ -20698,9 +20700,9 @@ "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.5.1" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.0" }, - "time": "2024-11-06T11:58:54+00:00" + "time": "2024-11-12T11:25:25+00:00" }, { "name": "phpdocumentor/type-resolver", From 02b60d329092599666a89e9b8821cb5830655b32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Kalij=C3=A4rvi?= Date: Tue, 19 Nov 2024 09:52:16 +0200 Subject: [PATCH 42/95] feat: UHF-8678: Use Drupal.cookieConsent functions (#1559) * UHF-8678: Updated the matomo.js to use Drupal.cookieConsent functions. * UHF-8678: Added dist. --- .../custom/hdbt_subtheme/dist/js/matomo.min.js | 2 +- .../custom/hdbt_subtheme/src/js/matomo.js | 18 ++++++++---------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/public/themes/custom/hdbt_subtheme/dist/js/matomo.min.js b/public/themes/custom/hdbt_subtheme/dist/js/matomo.min.js index 52425e03f8..97c4ae16ef 100644 --- a/public/themes/custom/hdbt_subtheme/dist/js/matomo.min.js +++ b/public/themes/custom/hdbt_subtheme/dist/js/matomo.min.js @@ -1 +1 @@ -!function(e,Drupal){function c(){if(void 0!==Drupal.eu_cookie_compliance&&Drupal.eu_cookie_compliance.hasAgreed("statistics")){const e=window._paq=window._paq||[];e.push(["trackPageView"]),e.push(["enableLinkTracking"]),function(){const c="//webanalytics.digiaiiris.com/js/";e.push(["setTrackerUrl",`${c}tracker.php`]),e.push(["setSiteId","1219"]);const i=document,n=i.createElement("script"),t=i.getElementsByTagName("script")[0];n.async=!0,n.src=`${c}piwik.min.js`,t.parentNode.insertBefore(n,t)}()}}e(document).on("eu_cookie_compliance.changeStatus",c()),e(document).ready(c)}(jQuery,Drupal); \ No newline at end of file +!function(e,Drupal){const t=()=>{if(Drupal.cookieConsent.getConsentStatus(["statistics"])){const e=window._paq=window._paq||[];e.push(["trackPageView"]),e.push(["enableLinkTracking"]),function(){const t="//webanalytics.digiaiiris.com/js/";e.push(["setTrackerUrl",`${t}tracker.php`]),e.push(["setSiteId","1219"]);const n=document,i=n.createElement("script"),s=n.getElementsByTagName("script")[0];i.async=!0,i.src=`${t}piwik.min.js`,s.parentNode.insertBefore(i,s)}()}};Drupal.cookieConsent.initialized()?t():Drupal.cookieConsent.loadFunction(t)}(jQuery,Drupal); \ No newline at end of file diff --git a/public/themes/custom/hdbt_subtheme/src/js/matomo.js b/public/themes/custom/hdbt_subtheme/src/js/matomo.js index 7a68ba381b..6e730bc240 100644 --- a/public/themes/custom/hdbt_subtheme/src/js/matomo.js +++ b/public/themes/custom/hdbt_subtheme/src/js/matomo.js @@ -1,12 +1,9 @@ // eslint-disable-next-line func-names (function ($, Drupal) { - function loadMatomoAnalytics() { - if (typeof Drupal.eu_cookie_compliance === "undefined") { - return; - } + const loadMatomoAnalytics = () => { // Load Matomo only if statistics cookies are allowed. - if (Drupal.eu_cookie_compliance.hasAgreed("statistics")) { + if (Drupal.cookieConsent.getConsentStatus(['statistics'])) { // Matomo Tag Manager // eslint-disable-next-line no-multi-assign const _paq = (window._paq = window._paq || []); @@ -25,11 +22,12 @@ s.parentNode.insertBefore(g, s); })(); } - } + }; // Load when cookie settings are changed. - $(document).on("eu_cookie_compliance.changeStatus", loadMatomoAnalytics()); - - // Load on page load. - $(document).ready(loadMatomoAnalytics); + if (Drupal.cookieConsent.initialized()) { + loadMatomoAnalytics(); + } else { + Drupal.cookieConsent.loadFunction(loadMatomoAnalytics); + } })(jQuery, Drupal); From 469a507a7323d6eec136f5f6a6e0b81b0f2d506a Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Tue, 19 Nov 2024 09:52:41 +0200 Subject: [PATCH 43/95] fix: UHF-10903: Update application copy modal to use new dialog (#1563) * UHF-10903: New dialog form * UHF-10903: Refactor application copy to custom controller. * UHF-10903: Add custom selector option for dialogs. * UHF-10903: Update tests for new copy functionality. * UHF-10903: Rename method + 1 error * UHF-10903: Fix typo * UHF-10903: Refactor createDialog to support object argument. --- e2e/utils/copying_helpers.ts | 25 +- .../grants_handler.libraries.yml | 8 + .../grants_handler/grants_handler.module | 42 +-- .../grants_handler/grants_handler.routing.yml | 24 +- .../js/application-copy-dialog.js | 36 +++ .../custom/grants_handler/js/grants-dialog.js | 77 +++-- .../grants_handler/js/webform.form.unsaved.js | 34 +- .../grants_handler/src/ApplicationHelpers.php | 4 + .../src/Controller/ApplicationController.php | 3 +- .../CopyApplicationAjaxController.php | 199 ++++++++++++ .../src/Form/CopyApplicationForm.php | 146 --------- .../src/Form/CopyApplicationModalForm.php | 300 ------------------ .../grants_profile/js/profile_dialog.js | 36 +-- .../application-copy-dialog-content.html.twig | 2 + .../webform-submission-information.html.twig | 70 ++-- 15 files changed, 428 insertions(+), 578 deletions(-) create mode 100644 public/modules/custom/grants_handler/js/application-copy-dialog.js create mode 100644 public/modules/custom/grants_handler/src/Controller/CopyApplicationAjaxController.php delete mode 100644 public/modules/custom/grants_handler/src/Form/CopyApplicationForm.php delete mode 100644 public/modules/custom/grants_handler/src/Form/CopyApplicationModalForm.php create mode 100644 public/themes/custom/hdbt_subtheme/templates/webform/application-copy-dialog-content.html.twig diff --git a/e2e/utils/copying_helpers.ts b/e2e/utils/copying_helpers.ts index fa20439edd..2a293a4c0b 100644 --- a/e2e/utils/copying_helpers.ts +++ b/e2e/utils/copying_helpers.ts @@ -117,13 +117,13 @@ const makeApplicationCopy = async ( logger(`Navigated to: ${viewPageURL}.`); // Make sure we get there. - const applicationIdContainer = await page.locator('.webform-submission__application_id'); + const applicationIdContainer = page.locator('.webform-submission__application_id'); const applicationIdContainerText = await applicationIdContainer.textContent(); expect(applicationIdContainerText).toContain(originalApplicationId); // Make sure the application can be copied. If not, skip this test. - const isCopyApplicationButtonVisible = await page.locator('#copy-application-modal-form-link').isVisible(); - if (!isCopyApplicationButtonVisible) { + const copyApplicationDialogButton = page.locator('#copy-application-button'); + if (!await copyApplicationDialogButton.isVisible()) { logger(`Copying disabled for application: ${originalApplicationId}. Skipping test.`); test.skip(true, 'Skip copy test'); } @@ -131,8 +131,23 @@ const makeApplicationCopy = async ( // Copy the original application. logger(`Copying application: ${originalApplicationId}...`); - await page.locator('#copy-application-modal-form-link').click(); - await page.locator('#copy-application-modal-form-submit').click(); + // click the copy button + await copyApplicationDialogButton.click(); + + const dialogSelector = '.dialog.application-copy-dialog'; + const actionButtonSelector = '#helfi-dialog__action-button'; + + // Wait for the dialog to appear + await page.waitForSelector(dialogSelector); + + // Check if the dialog is visible + const isDialogVisible = await page.locator(dialogSelector).isVisible(); + + // Assert that the dialog is visible + expect(isDialogVisible).toBe(true); + + // Click the action button within the specific dialog + await page.locator(`${dialogSelector} ${actionButtonSelector}`).click(); // Wait for a redirect to the new application and store the new application ID and submission URL. await logCurrentUrl(page); diff --git a/public/modules/custom/grants_handler/grants_handler.libraries.yml b/public/modules/custom/grants_handler/grants_handler.libraries.yml index 9ba38aff5b..029766017b 100644 --- a/public/modules/custom/grants_handler/grants_handler.libraries.yml +++ b/public/modules/custom/grants_handler/grants_handler.libraries.yml @@ -61,3 +61,11 @@ grants-dialog: js/grants-dialog.js: { } dependencies: - core/drupal + +application-copy-dialog: + js: + js/application-copy-dialog.js: {} + dependencies: + - core/jquery + - core/drupal + - core/drupalSettings diff --git a/public/modules/custom/grants_handler/grants_handler.module b/public/modules/custom/grants_handler/grants_handler.module index d8680f8d66..df4f2a8c13 100644 --- a/public/modules/custom/grants_handler/grants_handler.module +++ b/public/modules/custom/grants_handler/grants_handler.module @@ -21,7 +21,6 @@ use Drupal\Core\Url; use Drupal\grants_attachments\AttachmentHandlerHelper; use Drupal\grants_handler\ApplicationHelpers; use Drupal\grants_handler\Event\UserLogoutEvent; -use Drupal\grants_handler\Form\CopyApplicationModalForm; use Drupal\grants_handler\GrantsErrorStorage; use Drupal\grants_handler\Helpers; use Drupal\grants_handler\Plugin\WebformElement\CompensationsComposite; @@ -1771,6 +1770,8 @@ function grants_handler_preprocess_webform_submission_information(array &$variab $webform = $submission->getWebForm(); $thirdPartySettings = $webform->getThirdPartySettings('grants_metadata'); + $applicationNumber = $submissionData['application_number'] ?? ApplicationHelpers::createApplicationNumber($submission); + $printApplicationUrl = Url::fromRoute( 'grants_webform_print.submission_print', [ @@ -1836,38 +1837,36 @@ function grants_handler_preprocess_webform_submission_information(array &$variab !$isApplicationArchived && $isApplicationOpen ) { + $copyApplicationUrl = Url::fromRoute( - 'grants_handler.copy_application_modal', + 'grants_handler.copy_application', [ 'submission_id' => $submissionData['application_number'], - 'nojs' => 'ajax', - ], - [ - 'attributes' => [ - 'class' => ['use-ajax', 'hds-button', 'hds-button--supplementary'], - 'data-dialog-type' => 'modal', - 'data-dialog-options' => json_encode(CopyApplicationModalForm::getDataDialogOptions()), - // Add this id so that we can test this form. - 'id' => 'copy-application-modal-form-link', - ], ] ); - $copyApplicationLinkText = [ - '#theme' => 'edit-label-with-icon', - '#icon' => 'copy', - '#text_label' => t('Copy application', [], $tOpts), + + // Attach the JavaScript file. + $variables['#attached']['library'][] = 'grants_handler/grants-dialog'; + $variables['#attached']['library'][] = 'grants_handler/application-copy-dialog'; + + // Render a Twig template. + $html_content = \Drupal::service('twig')->render('themes/custom/hdbt_subtheme/templates/webform/application-copy-dialog-content.html.twig', [ + 'applicationNumber' => $applicationNumber, + 'webformTitle' => $webform->label(), + ]); + + // Define the settings you want to pass. + $variables['#attached']['drupalSettings']['grants_handler'] = [ + 'copyUrl' => $copyApplicationUrl->toString(), + 'htmlContent' => $html_content, ]; - $copyApplicationLink = Link::fromTextAndUrl($copyApplicationLinkText, $copyApplicationUrl); - $variables['copyApplicationLink'] = $copyApplicationLink; + $variables['copyText'] = t('Copy application', [], $tOpts); } $variables['formTitle'] = $webform->label(); $variables['printLink'] = ''; $variables['copyLink'] = ''; - $submissionData = $submission->getData(); - $applicationNumber = $submissionData['application_number'] ?? ApplicationHelpers::createApplicationNumber($submission); - $variables['applicationNumber'] = $applicationNumber; $variables['isEditable'] = $applicationStatusService->isSubmissionEditable($submission); $variables['isEditPage'] = 'grants_handler.edit_application' === \Drupal::routeMatch() @@ -1901,6 +1900,7 @@ function grants_handler_preprocess_webform_submission_information(array &$variab '#theme' => 'webform_submission_attachment_list', '#submission' => $submission, ]; + } /** diff --git a/public/modules/custom/grants_handler/grants_handler.routing.yml b/public/modules/custom/grants_handler/grants_handler.routing.yml index 8373248687..b183f94e71 100644 --- a/public/modules/custom/grants_handler/grants_handler.routing.yml +++ b/public/modules/custom/grants_handler/grants_handler.routing.yml @@ -22,6 +22,14 @@ grants_handler.view_application: requirements: _custom_access: '\Drupal\grants_handler\Controller\ApplicationController::accessByApplicationNumber' +grants_handler.copy_application: + path: '/hakemus/{submission_id}/kopioi' + defaults: + _title_callback: '\Drupal\grants_handler\Controller\ApplicationController::getTitle' + _controller: '\Drupal\grants_handler\Controller\CopyApplicationAjaxController' + requirements: + _custom_access: '\Drupal\grants_handler\Controller\ApplicationController::accessByApplicationNumber' + grants_handler.edit_application: path: '/hakemus/{webform}/{webform_submission}/muokkaa' defaults: @@ -45,22 +53,6 @@ grants_handler.message_read: requirements: _custom_access: '\Drupal\grants_handler\Controller\ApplicationController::accessByApplicationNumber' -grants_handler.copy_application: - path: '/hakemus/{submission_id}/kopioi' - defaults: - _title: 'Copy application' - _form: 'Drupal\grants_handler\Form\CopyApplicationForm' - requirements: - _custom_access: '\Drupal\grants_handler\Controller\ApplicationController::accessByApplicationNumber' - -grants_handler.copy_application_modal: - path: '/hakemus/{submission_id}/kopioi/{nojs}' - defaults: - _title: 'You are copying an application' - _form: 'Drupal\grants_handler\Form\CopyApplicationModalForm' - requirements: - _custom_access: '\Drupal\grants_handler\Controller\ApplicationController::accessByApplicationNumber' - grants_handler.atv_print_view: path: '/hakemus/{submission_id}/tulosta' defaults: diff --git a/public/modules/custom/grants_handler/js/application-copy-dialog.js b/public/modules/custom/grants_handler/js/application-copy-dialog.js new file mode 100644 index 0000000000..ae1477e94e --- /dev/null +++ b/public/modules/custom/grants_handler/js/application-copy-dialog.js @@ -0,0 +1,36 @@ +(function (Drupal) { + Drupal.behaviors.copyApplicationModalForm = { + attach: function (context, settings) { + const triggerButton = document.getElementById('copy-application-button'); + + triggerButton.addEventListener('click', function (event) { + + event.preventDefault(); + + const htmlContent = drupalSettings.grants_handler.htmlContent; + const copyUrl = drupalSettings.grants_handler.copyUrl; + + Drupal.dialogFunctions.createDialog({ + dialogContent: htmlContent, + actionButtonText: Drupal.t('Copy application', [], { context: 'grants_handler' }), + backButtonText: Drupal.t('Close', [], { context: 'grants_handler' }), + closeButtonText: Drupal.t('Close', [], { context: 'grants_handler' }), + actionButtonCallback: () => { + // Redirect to a new URL + window.location.href = copyUrl; + /* + We probably should handle the whole copy process here, but for + now we just redirect to the copy URL. + + Much better UX would be to show spinner here while copying + application and then redirect when it's ready + + */ + }, + dialogTitle: Drupal.t('Copy application', [], { context: 'grants_handler' }), + customSelector: 'application-copy-dialog' + }) + }); + }, + }; +})(Drupal); diff --git a/public/modules/custom/grants_handler/js/grants-dialog.js b/public/modules/custom/grants_handler/js/grants-dialog.js index 925eead272..a1f651173d 100644 --- a/public/modules/custom/grants_handler/js/grants-dialog.js +++ b/public/modules/custom/grants_handler/js/grants-dialog.js @@ -12,31 +12,51 @@ * closes the dialog. * @param {Function} actionButtonCallback - The function to execute when * the "action" button is clicked. + * @param dialogTitle + * If we want to override the default title + * @param {Function} closeButtonCallback + * The function to execute when the "close" button is clicked. + * @param {Function} backButtonCallback + * The function to execute when the "back" button is clicked. + * @param escapeButtonCallback + * The function to execute when the "escape" button is clicked. + * @param customSelector + * If we want to add a custom class to the dialog container */ - createDialog: (dialogContent, actionButtonText, backButtonText, closeButtonText, actionButtonCallback = null) => { - const dialogTitle = Drupal.t('Attention', {}, { context: 'grants_handler' }); + createDialog: ({ + dialogContent, + actionButtonText, + backButtonText, + closeButtonText, + dialogTitle = Drupal.t('Attention', {}, { context: 'grants_handler' }), + actionButtonCallback = null, + closeButtonCallback = null, + backButtonCallback = null, + escapeButtonCallback = null, + customSelector = '', + }) => { const actionButtonHTML = actionButtonText && ``; const backButtonHTML = backButtonText && ``; const closeButtonHTML = closeButtonText && ``; const dialogHTML = ` -
-
- -
- ${closeButtonHTML} -

${dialogTitle}

-
-
- ${dialogContent} -
-
- ${actionButtonHTML} - ${backButtonHTML} -
-
+
+
+ +
+ ${closeButtonHTML} +

${dialogTitle}

- `; +
+ ${dialogContent} +
+
+ ${actionButtonHTML} + ${backButtonHTML} +
+
+
+ `; // TODO: Surveys use very similar javascript dialog implementation. // This and the survey implementation could possibly be merged with some @@ -54,7 +74,7 @@ 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' + initialFocus: () => '#helfi-dialog__title', }); // Activate the focus trap so that the user needs to react to the dialog. @@ -68,18 +88,30 @@ // Add click event listener to back button backButton.addEventListener('click', () => { dialogFocusTrap.deactivate(); + // If we have a callback, execute it. + if (backButtonCallback) { + backButtonCallback(); + } Drupal.dialogFunctions.removeDialog(dialog); }); // Add click event listener to close button closeButton.addEventListener('click', () => { dialogFocusTrap.deactivate(); + // If we have a callback, execute it. + if (closeButtonCallback) { + closeButtonCallback(); + } Drupal.dialogFunctions.removeDialog(dialog); }); // Add event listener to ESC button to remove the dialog document.body.addEventListener('keydown', function (event) { if (event.key === 'Escape') { + // If we have a escapeButtonCallback, execute it also when pressing escape. + if (escapeButtonCallback) { + escapeButtonCallback(); + } Drupal.dialogFunctions.removeDialog(dialog); } }); @@ -90,8 +122,7 @@ document.body.style.paddingRight = `${ window.innerWidth - document.documentElement.clientWidth }px`; - } - else { + } else { document.body.style.removeProperty('padding-right'); } }, @@ -105,6 +136,6 @@ 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 99e66c6b8d..4f96d10cd1 100644 --- a/public/modules/custom/grants_handler/js/webform.form.unsaved.js +++ b/public/modules/custom/grants_handler/js/webform.form.unsaved.js @@ -108,7 +108,7 @@ }); }); } - } + }, }; $('a').on('click', function (event) { @@ -116,18 +116,18 @@ if (unsaved && !containingElement.contains(event.target) && !event.target.getAttribute('href').startsWith('#')) { event.preventDefault(); - 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' }), - () => { + return Drupal.dialogFunctions.createDialog({ + dialogContent: Drupal.t('You have unsaved changes. Are you sure you want to leave?', {}, { context: 'grants_handler' }), + actionButtonText: Drupal.t('Leave the application', {}, { context: 'grants_handler' }), + backButtonText: Drupal.t('Back to application', {}, { context: 'grants_handler' }), + closeButtonText: Drupal.t('Close', {}, { context: 'grants_handler' }), + actionButtonCallback: () => { unsaved = false; const dialog = document.getElementById('helfi-dialog__container'); Drupal.dialogFunctions.removeDialog(dialog); window.top.location.href = event.currentTarget.href; - } - ); + }, + }); } }); @@ -147,18 +147,18 @@ if (unsaved && (e.which === 116 || (e.which === 82 && (e.ctrlKey || e.metaKey)))) { e.preventDefault(); // Prevent F5 and Ctrl+R / Cmd+R refresh - 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' }), - () => { + return Drupal.dialogFunctions.createDialog({ + dialogContent: Drupal.t('You have unsaved changes. Are you sure you want to refresh?', {}, { context: 'grants_handler' }), + actionButtonText: Drupal.t('Refresh the page', {}, { context: 'grants_handler' }), + backButtonText: Drupal.t('Back to application', {}, { context: 'grants_handler' }), + closeButtonText: Drupal.t('Close', {}, { context: 'grants_handler' }), + actionButtonCallback: () => { unsaved = false; const dialog = document.getElementById('helfi-dialog__container'); Drupal.dialogFunctions.removeDialog(dialog); location.reload(); - } - ); + }, + }); } }); diff --git a/public/modules/custom/grants_handler/src/ApplicationHelpers.php b/public/modules/custom/grants_handler/src/ApplicationHelpers.php index 110f4c5a6e..bacfcf57ee 100644 --- a/public/modules/custom/grants_handler/src/ApplicationHelpers.php +++ b/public/modules/custom/grants_handler/src/ApplicationHelpers.php @@ -411,6 +411,10 @@ public static function updateFieldOptions(array &$form, array $newOptions, array $currentField = &$currentField['#element'][$fieldName]; } else { + // If we don't have current field array, we can't update the options. + if (!is_array($currentField)) { + return; + } // If the field is not found, continue searching recursively. foreach ($currentField as &$subField) { if (is_array($subField)) { diff --git a/public/modules/custom/grants_handler/src/Controller/ApplicationController.php b/public/modules/custom/grants_handler/src/Controller/ApplicationController.php index 272cb2d1ff..ffd9e645e7 100644 --- a/public/modules/custom/grants_handler/src/Controller/ApplicationController.php +++ b/public/modules/custom/grants_handler/src/Controller/ApplicationController.php @@ -114,7 +114,8 @@ public function access(AccountInterface $account, string $webform, string $webfo * @return \Drupal\Core\Access\AccessResultInterface * The access result. * - * @throws \GuzzleHttp\Exception\GuzzleException + * @throws \Drupal\grants_mandate\CompanySelectException + * @throws \Drupal\grants_profile\GrantsProfileException */ public function accessByApplicationNumber(AccountInterface $account, string $submission_id): AccessResultInterface { try { diff --git a/public/modules/custom/grants_handler/src/Controller/CopyApplicationAjaxController.php b/public/modules/custom/grants_handler/src/Controller/CopyApplicationAjaxController.php new file mode 100644 index 0000000000..0830d35494 --- /dev/null +++ b/public/modules/custom/grants_handler/src/Controller/CopyApplicationAjaxController.php @@ -0,0 +1,199 @@ +get('grants_handler.application_getter_service'), + $container->get('grants_handler.application_init_service'), + $container->get('grants_events.events_service'), + $container->get('grants_handler.application_status_service'), + ); + } + + /** + * Builds the response. + * + * @param string $submission_id + * The submission ID. + * + * @return \Symfony\Component\HttpFoundation\RedirectResponse + * The redirect response. + */ + public function __invoke(string $submission_id): RedirectResponse { + $oldApplicationUrl = $this->getOldApplicationUrl($submission_id); + + try { + $webform_submission = $this->getWebformSubmission($submission_id); + $webform = $webform_submission->getWebForm(); + $this->makeSureCopyingIsEnabled($webform); + + $newSubmission = $this->initNewApplication($webform->id(), $webform_submission->getData()); + $this->logEvent($newSubmission, $webform_submission->getData()); + + return $this->getNewApplicationRedirect($webform, $newSubmission); + } + catch (\Throwable $e) { + $this->messenger()->addError('Application copying failed.'); + $this->getLogger('grants_handler') + ->error('Application copying failed: @message', ['@message' => $e->getMessage()]); + return new RedirectResponse($oldApplicationUrl->toString()); + } + } + + /** + * Gets the URL of the old application. + * + * @param string $submission_id + * The submission ID. + * + * @return \Drupal\Core\Url + * The URL of the old application. + */ + private function getOldApplicationUrl(string $submission_id): Url { + return Url::fromRoute('grants_handler.view_application', ['submission_id' => $submission_id]); + } + + /** + * Gets the webform submission object. + * + * @param string $submission_id + * The submission ID. + * + * @return \Drupal\webform\Entity\WebformSubmission + * The webform submission object. + * + * @throws \RuntimeException + * If the webform submission cannot be retrieved. + */ + private function getWebformSubmission(string $submission_id): WebformSubmission { + try { + return $this->applicationGetterService->submissionObjectFromApplicationNumber($submission_id); + } + catch (EntityStorageException | CompanySelectException $e) { + throw new \RuntimeException('Failed to get webform submission.'); + } + } + + /** + * Validates the application. + * + * @param \Drupal\webform\WebformInterface $webform + * The webform object. + * + * @throws \RuntimeException + * If the application cannot be copied. + */ + private function makeSureCopyingIsEnabled(WebformInterface $webform): void { + $thirdPartySettings = $webform->getThirdPartySettings('grants_metadata'); + $isApplicationArchived = $thirdPartySettings["status"] === 'archived' ?? TRUE; + $isApplicationOpen = $this->applicationStatusService->isApplicationOpen($webform); + + if ($thirdPartySettings["disableCopying"] === 1 || $isApplicationArchived || !$isApplicationOpen) { + throw new \RuntimeException('Application copying disabled.'); + } + } + + /** + * Initializes a new application with copied data. + * + * @param string $webform_id + * The webform ID. + * @param array $data + * The data to initialize the new application with. + * + * @return \Drupal\webform\Entity\WebformSubmission + * The new webform submission object. + * + * @throws \RuntimeException + * If the new application cannot be initialized. + */ + private function initNewApplication(string $webform_id, array $data): WebformSubmission { + try { + return $this->applicationInitService->initApplication($webform_id, $data); + } + catch (\Throwable $e) { + throw new \RuntimeException('Failed to initialize new application.'); + } + } + + /** + * Logs the event of copying the application. + * + * @param \Drupal\webform\Entity\WebformSubmission $newSubmission + * The new webform submission object. + * @param array $oldData + * The data of the old application. + * + * @throws \Drupal\grants_events\EventException + */ + private function logEvent(WebformSubmission $newSubmission, array $oldData): void { + $newData = $newSubmission->getData(); + $this->messenger() + ->addStatus($this->t('Grant application copied, new id: @number', ['@number' => $newData['application_number']], ['context' => 'grants_handler'])); + $this->eventsService->logEvent($newData['application_number'], 'HANDLER_APP_COPIED', $this->t('Application copied from application id: @id', ['@id' => $oldData['application_number']], ['context' => 'grants_handler']) + ->render(), $newData['application_number']); + } + + /** + * Gets the redirect response for the new application. + * + * @param \Drupal\webform\WebformInterface $webform + * The webform object. + * @param \Drupal\webform\Entity\WebformSubmission $newSubmission + * The new webform submission object. + * + * @return \Symfony\Component\HttpFoundation\RedirectResponse + * The redirect response. + */ + private function getNewApplicationRedirect(WebformInterface $webform, WebformSubmission $newSubmission): RedirectResponse { + $newApplicationUrl = Url::fromRoute('grants_handler.edit_application', [ + 'webform' => $webform->id(), + 'webform_submission' => $newSubmission->id(), + ]); + return new RedirectResponse($newApplicationUrl->toString()); + } + +} diff --git a/public/modules/custom/grants_handler/src/Form/CopyApplicationForm.php b/public/modules/custom/grants_handler/src/Form/CopyApplicationForm.php deleted file mode 100644 index a40dcec15e..0000000000 --- a/public/modules/custom/grants_handler/src/Form/CopyApplicationForm.php +++ /dev/null @@ -1,146 +0,0 @@ -setDebug(NULL); - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container): MessageForm|static { - return new static( - $container->get('grants_handler.application_init_service'), - $container->get('grants_handler.application_getter_service') - ); - } - - /** - * {@inheritdoc} - */ - public function getFormId(): string { - return 'grants_handler_copy_application'; - } - - /** - * {@inheritdoc} - */ - public function buildForm(array $form, FormStateInterface $form_state, string $submission_id = ''): array { - $tOpts = ['context' => 'grants_handler']; - - try { - $webform_submission = $this->applicationGetterService->submissionObjectFromApplicationNumber($submission_id); - - if ($webform_submission != NULL) { - $form_state->setStorage(['submission' => $webform_submission]); - } - } - catch (\Exception | GuzzleException $e) { - $this->logger(self::LOGGER_CHANNEL)->error('Failed to load submission: @error', ['@error' => $e->getMessage()]); - } - $form['copyFrom'] = [ - '#type' => 'markup', - '#markup' => 'Tähän vois sitte laittaa hakemuksen perussettejä, tai vaikka koko hakemus näytille.', - ]; - - $form['actions'] = [ - '#type' => 'actions', - ]; - $form['actions']['submit'] = [ - '#type' => 'submit', - '#value' => $this->t('Copy application', [], $tOpts), - ]; - - return $form; - } - - /** - * {@inheritdoc} - */ - public function validateForm(array &$form, FormStateInterface $form_state) {} - - /** - * {@inheritdoc} - */ - public function submitForm(array &$form, FormStateInterface $form_state): void { - $storage = $form_state->getStorage(); - /** @var \Drupal\webform\Entity\WebformSubmission $webform_submission */ - $webform_submission = $storage['submission']; - $webform = $webform_submission->getWebForm(); - - // Init new application with copied data. - try { - $newSubmission = $this->applicationInitService->initApplication($webform->id(), $webform_submission->getData()); - } - catch (EntityStorageException | - GrantsProfileException | - AtvDocumentNotFoundException | - AtvFailedToConnectException | - ProfileDataException | - TokenExpiredException | - GuzzleException $e) { - $newSubmission = FALSE; - } - - if ($newSubmission) { - - $newData = $newSubmission->getData(); - - $this->messenger() - ->addStatus( - $this->t( - 'Grant application copied(@number)', - [ - '@number' => $newData['application_number'], - ] - ) - ); - - $form_state->setRedirect( - 'grants_handler.completion', - ['submission_id' => $newData['application_number']], - [ - 'attributes' => [ - 'data-drupal-selector' => 'application-saved-successfully-link', - ], - ] - ); - } - else { - $this->messenger()->addError('Grant application copy failed.'); - } - } - -} diff --git a/public/modules/custom/grants_handler/src/Form/CopyApplicationModalForm.php b/public/modules/custom/grants_handler/src/Form/CopyApplicationModalForm.php deleted file mode 100644 index 7e2c463eb2..0000000000 --- a/public/modules/custom/grants_handler/src/Form/CopyApplicationModalForm.php +++ /dev/null @@ -1,300 +0,0 @@ -setDebug(NULL); - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container): CopyApplicationModalForm|static { - - // Create a new form object and inject its services. - $form = new static( - $container->get('renderer'), - $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') - ); - $form->setRequestStack($container->get('request_stack')); - $form->setStringTranslation($container->get('string_translation')); - $form->setMessenger($container->get('messenger')); - - return $form; - - } - - /** - * {@inheritdoc} - */ - public function getFormId(): string { - return 'grants_profile_copy_application_modal_form'; - } - - /** - * Helper method so we can have consistent dialog options. - * - * @return string[] - * An array of jQuery UI elements to pass on to our dialog form. - */ - public static function getDataDialogOptions(): array { - return [ - 'width' => '33%', - 'closeText' => t('Close'), - ]; - } - - /** - * {@inheritdoc} - */ - public function buildForm(array $form, FormStateInterface $form_state, string $submission_id = '', string $nojs = ''): array { - $tOpts = ['context' => 'grants_handler']; - - // Add the core AJAX library. - $form['#attached']['library'][] = 'core/drupal.ajax'; - $form['#theme'] = 'application_copy_modal_form'; - - try { - $webform_submission = $this->applicationGetterService->submissionObjectFromApplicationNumber($submission_id); - - if ($webform_submission != NULL) { - // Set webform submission template. - $build = [ - '#theme' => 'submission_for_modal_form', - '#submission' => $webform_submission, - '#submission_id' => $submission_id, - ]; - - $form_state->setStorage(['submission' => $webform_submission]); - $form['modal_markup'] = [ - '#markup' => $this->renderer->render($build), - ]; - } - - } - catch (\Exception | GuzzleException $e) { - $this->logger('copy_application_modal_form')->error('Error: %error', [ - '%error' => $e->getMessage(), - ]); - } - - // Add a link to show this form in a modal dialog if we're not already in - // one. - if ($nojs == 'nojs') { - $form['use_ajax_container'] = [ - '#type' => 'details', - '#open' => TRUE, - ]; - $form['use_ajax_container']['use_ajax'] = [ - '#type' => 'link', - '#title' => $this->t('See this form as a modal.', [], $tOpts), - '#url' => Url::fromRoute('grants_handler.copy_application_modal', ['nojs' => 'ajax']), - '#attributes' => [ - 'class' => ['use-ajax'], - 'data-dialog-type' => 'modal', - 'data-dialog-options' => json_encode(static::getDataDialogOptions()), - // Add this id so that we can test this form. - 'id' => 'copy-application-modal-form-link', - ], - ]; - } - - // This element is responsible for displaying form errors in the AJAX - // dialog. - if ($nojs == 'ajax') { - $form['status_messages'] = [ - '#type' => 'status_messages', - '#weight' => -999, - ]; - } - - // Add a submit button that handles the submission of the form. - $form['actions']['submit'] = [ - '#type' => 'submit', - '#value' => $this->t('Use application as base', [], $tOpts), - '#ajax' => [ - 'callback' => '::ajaxSubmitForm', - 'event' => 'click', - ], - '#attributes' => [ - 'id' => 'copy-application-modal-form-submit', - ], - ]; - - // Set the form to not use AJAX if we're on a nojs path. When this form is - // within the modal dialog, Drupal will make sure we're using an AJAX path - // instead of a nojs one. - if ($nojs == 'nojs') { - unset($form['actions']['submit']['#ajax']); - } - - return $form; - } - - /** - * {@inheritdoc} - */ - public function validateForm(array &$form, FormStateInterface $form_state): void { - $storage = $form_state->getStorage(); - /** @var \Drupal\webform\Entity\WebformSubmission $webform_submission */ - $webform_submission = $storage['submission']; - $webform = $webform_submission->getWebForm(); - - $isApplicationOpen = $this->applicationStatusService->isApplicationOpen($webform); - $thirdPartySettings = $webform->getThirdPartySettings('grants_metadata'); - - // If copying is disabled in 3rd party settings, do not allow forward. - if ($thirdPartySettings["disableCopying"] == 1 || - $thirdPartySettings["status"] === 'archived' || - !$isApplicationOpen - ) { - $form_state->setErrorByName('modal_markup', 'Copying is disabled for this form.'); - } - - } - - /** - * {@inheritdoc} - */ - public function submitForm(array &$form, FormStateInterface $form_state): void { - $storage = $form_state->getStorage(); - /** @var \Drupal\webform\Entity\WebformSubmission $webform_submission */ - $webform_submission = $storage['submission']; - $oldData = $webform_submission->getData(); - $webform = $webform_submission->getWebForm(); - - // Init new application with copied data. - try { - $newSubmission = $this->applicationInitService->initApplication($webform->id(), $webform_submission->getData()); - $newData = $newSubmission->getData(); - } - catch (\Exception $e) { - $newSubmission = FALSE; - $newData = []; - } - - if ($newSubmission) { - $this->messenger() - ->addStatus( - $this->t( - 'Grant application copied, new id: @number', - [ - '@number' => $newData['application_number'], - ], - ['context' => 'grants_handler'] - ) - ); - - $storage['newSubmission'] = $newSubmission; - $form_state->setStorage($storage); - - $this->eventsService->logEvent( - $newData['application_number'], - 'HANDLER_APP_COPIED', - $this->t('Application copied from application id: @id', ['@id' => $oldData['application_number']], ['context' => 'grants_handler']), - $newData['application_number'] - ); - - $form_state->setRedirect( - 'grants_handler.edit_application', - [ - 'webform_submission' => $newSubmission->id(), - 'webform' => $webform->id(), - ] - ); - } - else { - $this->messenger()->addError('Grant application copy failed'); - } - } - - /** - * Implements the submit handler for the modal dialog AJAX call. - * - * @param array $form - * Render array representing from. - * @param \Drupal\Core\Form\FormStateInterface $form_state - * Current form state. - * - * @return \Drupal\Core\Ajax\AjaxResponse - * Array of AJAX commands to execute on submit of the modal form. - */ - public function ajaxSubmitForm(array &$form, FormStateInterface $form_state) { - $tOpts = ['context' => 'grants_handler']; - - // We begin building a new ajax reponse. - $response = new AjaxResponse(); - - // If the user submitted the form and there are errors, show them the - // input dialog again with error messages. Since the title element is - // required, the empty string wont't validate and there will be an error. - if ($form_state->getErrors()) { - // If there are errors, we can show the form again with the errors in - // the status_messages section. - $form['status_messages'] = [ - '#type' => 'status_messages', - '#weight' => -10, - ]; - $response->addCommand(new OpenModalDialogCommand($this->t('Errors', [], $tOpts), $form, static::getDataDialogOptions())); - } - else { - // No errors, we load things from form state. - $storage = $form_state->getStorage(); - /** @var \Drupal\webform\Entity\WebformSubmission $webform_submission */ - $webform_submission = $storage['newSubmission']; - $webform = $webform_submission->getWebForm(); - - // Create url redirect for this new submission. - $url = Url::fromRoute('grants_handler.edit_application', - [ - 'webform_submission' => $webform_submission->id(), - 'webform' => $webform->id(), - ]); - $response->addCommand(new CloseModalDialogCommand()); - $command = new RedirectCommand($url->toString()); - $response->addCommand($command); - } - - // Finally return our response. - return $response; - } - -} diff --git a/public/modules/custom/grants_profile/js/profile_dialog.js b/public/modules/custom/grants_profile/js/profile_dialog.js index 1ea699707b..67aeeef575 100644 --- a/public/modules/custom/grants_profile/js/profile_dialog.js +++ b/public/modules/custom/grants_profile/js/profile_dialog.js @@ -29,28 +29,28 @@ let containingElement = document.querySelector('form'); if ((unset_name) && !containingElement.contains(event.target)) { event.preventDefault(); - 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' }), - ); + return Drupal.dialogFunctions.createDialog({ + dialogContent: 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' }), + actionButtonText: '', + backButtonText: Drupal.t('Back to profile', {}, { context: 'grants_profile' }), + closeButtonText: Drupal.t('Close', {}, { context: 'grants_profile' }), + }); } else if ((current_name !== initial_name) && !containingElement.contains(event.target)) { event.preventDefault(); - 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' }), - ); + return Drupal.dialogFunctions.createDialog({ + dialogContent: Drupal.t('You have unsaved changes in your profile. Please save or cancel them.', {}, { context: 'grants_profile' }), + actionButtonText: '', + backButtonText: Drupal.t('Back to profile', {}, { context: 'grants_profile' }), + closeButtonText: Drupal.t('Close', {}, { context: 'grants_profile' }), + }); } else if (($('[data-drupal-selector="edit-isnewprofile"]').val() === 'initialSave') && !containingElement.contains(event.target)) { event.preventDefault(); - 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' }), - ); + return Drupal.dialogFunctions.createDialog({ + dialogContent: Drupal.t('You have not saved your profile. Please save your profile before leaving the form.', {}, { context: 'grants_profile' }), + actionButtonText: '', + backButtonText: Drupal.t('Back to profile', {}, { context: 'grants_profile' }), + closeButtonText: Drupal.t('Close', {}, { context: 'grants_profile' }), + }); } is_element_click = false; diff --git a/public/themes/custom/hdbt_subtheme/templates/webform/application-copy-dialog-content.html.twig b/public/themes/custom/hdbt_subtheme/templates/webform/application-copy-dialog-content.html.twig new file mode 100644 index 0000000000..11fdb8af1c --- /dev/null +++ b/public/themes/custom/hdbt_subtheme/templates/webform/application-copy-dialog-content.html.twig @@ -0,0 +1,2 @@ +

Kopioitava hakemus: {{ webformTitle }}

+

Hakemustunnus: {{ applicationNumber }}

diff --git a/public/themes/custom/hdbt_subtheme/templates/webform/webform-submission-information.html.twig b/public/themes/custom/hdbt_subtheme/templates/webform/webform-submission-information.html.twig index 58cc39d906..daa38f316b 100644 --- a/public/themes/custom/hdbt_subtheme/templates/webform/webform-submission-information.html.twig +++ b/public/themes/custom/hdbt_subtheme/templates/webform/webform-submission-information.html.twig @@ -33,43 +33,51 @@

{{ 'Application info'|t }}

{{ 'Summary about your application and processing details.'|t }}

-
-

- {{ webform.text }} -

- +
+

+ {{ webform.text }} +

+ -
- -
-
{{ "Application number"|t }}
- {{ applicationNumber }} -
{{ 'Sent date'|t }}
- {{ applicationSent }} -
{{ 'Handler information'|t }}
- {{ handler }} -
-
-
{{ "Application statuses"|t }}
- {{ history }} +
+
+
+
{{ "Application number"|t }}
+ {{ applicationNumber }} +
{{ 'Sent date'|t }}
+ {{ applicationSent }} +
{{ 'Handler information'|t }}
+ {{ handler }} +
+
+
{{ "Application statuses"|t }}
+ {{ history }} -
-
-
{{ "Application attachments"|t }}
+
+
+
{{ "Application attachments"|t }}
- {{ attachments }} + {{ attachments }} -
+
+
+ {% if isEditable and not isEditPage %} +
+ {{ editApplicationLink }}
- {% if isEditable and not isEditPage %} -
- {{ editApplicationLink }} -
- {% endif %} + {% endif %}
From 436b2a4a185847f44cbee3025a500c9a70551495 Mon Sep 17 00:00:00 2001 From: rpnykanen <48206082+rpnykanen@users.noreply.github.com> Date: Tue, 19 Nov 2024 09:52:55 +0200 Subject: [PATCH 44/95] Uhf x more tranlations (#1569) * missing tooltip * more tooltips --- .../en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml | 3 +++ .../sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml | 3 +++ 2 files changed, 6 insertions(+) diff --git a/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml b/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml index 0fa0190c3a..86e588bf7b 100644 --- a/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml +++ b/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml @@ -58,6 +58,7 @@ elements: | '#title': Grants kayttotarkoitus: '#title': 'Purpose of use' + '#help': 'Indicate the purpose for which the grant is applied for. If necessary, specify the different uses. Also tell us what is intended to be achieved with the grant and what goals are associated with the activities to be supported.' compensation_purpose: '#title': 'Brief description of the purpose(s) of the grant(s) applied for' '#counter_maximum_message': '%d/5000 characters remaining' @@ -195,6 +196,7 @@ elements: | hankkeen_kohderyhmat_erityisryhmat: '#title': 'Does the project target a special group?' '#counter_maximum_message': '%d/1250 characters remaining' + '#help': 'For which special group? If not implemented, leave the field blank.' hankkeen_kohderyhmat_tavoitus: '#title': 'How will the target groups of the project be reached?' '#counter_maximum_message': '%d/1250 characters remaining' @@ -209,6 +211,7 @@ elements: | '#counter_maximum_message': '%d/1250 characters remaining' hankkeen_kohderyhmat_postinrot: '#title': 'In which postal code area(s) in Helsinki will the project be implemented?' + '#help': 'Please enter up to three (3) postal code areas in the field and separate them with a comma (,).' hankkeen_kohderyhmat_miksi_alue: '#title': 'Why is/are that particular area(s) selected?' '#counter_maximum_message': '%d/1250 characters remaining' diff --git a/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml b/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml index f37b2d9c82..13e525d6d2 100644 --- a/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml +++ b/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml @@ -58,6 +58,7 @@ elements: | '#title': 'Typ av stöd' kayttotarkoitus: '#title': 'Användningsän damål' + '#help': 'Ange för vilket ändamål understödet ansöks och vid behov specificera de olika ändamålen. Ange också vad understödet är avsett för och vilka mål som är relaterade till den understödda verksamheten.' compensation_purpose: '#title': 'En kort beskrivning av användningsändamålet för det/de understöd som ansöks' '#counter_maximum_message': '%d/5000 tecken kvar' @@ -195,6 +196,7 @@ elements: | hankkeen_kohderyhmat_erityisryhmat: '#title': 'Riktar sig projektet till någon särskild grupp?' '#counter_maximum_message': '%d/1250 tecken kvar' + '#help': 'Till vilken särskild grupp? Om svaret är ”nej”, lämna tomt.' hankkeen_kohderyhmat_tavoitus: '#title': 'Hur ska ni nå ut med projektet till målgrupperna?' '#counter_maximum_message': '%d/1250 tecken kvar' @@ -209,6 +211,7 @@ elements: | '#counter_maximum_message': '%d/1250 tecken kvar' hankkeen_kohderyhmat_postinrot: '#title': 'Inom vilket/vilka postnummerområden i Helsingfors kommer projektet att genomföras?' + '#help': 'Ange upp till tre (3) postnummerområden och separera dem med kommatecken (,).' hankkeen_kohderyhmat_miksi_alue: '#title': 'Varför har ni valt just det/de områdena?' '#counter_maximum_message': '%d/1250 tecken kvar' From f88d479bfc0418d57027c7518a9113768c09c6bb Mon Sep 17 00:00:00 2001 From: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Date: Tue, 19 Nov 2024 09:53:21 +0200 Subject: [PATCH 45/95] Update configuration (#1565) --- composer.lock | 102 +++++++++--------- ...view_display.media.image.image_gallery.yml | 38 +++++++ ...e.entity_view_mode.media.image_gallery.yml | 13 +++ conf/cmi/image.style.0.7_1086w_1630h_LQ.yml | 26 +++++ conf/cmi/image.style.0.7_352w_572h.yml | 19 ++++ conf/cmi/image.style.0.7_414w_621h.yml | 19 ++++ conf/cmi/image.style.0.7_543w_815h.yml | 19 ++++ conf/cmi/image.style.0.7_704w_1144h_LQ.yml | 26 +++++ conf/cmi/image.style.0.7_828w_1242h_LQ.yml | 26 +++++ conf/cmi/image.style.1_1086w_1086h_LQ.yml | 26 +++++ conf/cmi/image.style.1_414w_414h.yml | 19 ++++ conf/cmi/image.style.1_543w_543h.yml | 19 ++++ conf/cmi/image.style.1_828w_828h_LQ.yml | 26 +++++ ...ponsive_image.styles.image_gallery_1_1.yml | 38 +++++++ ...ponsive_image.styles.image_gallery_2_3.yml | 50 +++++++++ ...ponsive_image.styles.image_gallery_3_2.yml | 50 +++++++++ 16 files changed, 465 insertions(+), 51 deletions(-) create mode 100644 conf/cmi/core.entity_view_display.media.image.image_gallery.yml create mode 100644 conf/cmi/core.entity_view_mode.media.image_gallery.yml create mode 100644 conf/cmi/image.style.0.7_1086w_1630h_LQ.yml create mode 100644 conf/cmi/image.style.0.7_352w_572h.yml create mode 100644 conf/cmi/image.style.0.7_414w_621h.yml create mode 100644 conf/cmi/image.style.0.7_543w_815h.yml create mode 100644 conf/cmi/image.style.0.7_704w_1144h_LQ.yml create mode 100644 conf/cmi/image.style.0.7_828w_1242h_LQ.yml create mode 100644 conf/cmi/image.style.1_1086w_1086h_LQ.yml create mode 100644 conf/cmi/image.style.1_414w_414h.yml create mode 100644 conf/cmi/image.style.1_543w_543h.yml create mode 100644 conf/cmi/image.style.1_828w_828h_LQ.yml create mode 100644 conf/cmi/responsive_image.styles.image_gallery_1_1.yml create mode 100644 conf/cmi/responsive_image.styles.image_gallery_2_3.yml create mode 100644 conf/cmi/responsive_image.styles.image_gallery_3_2.yml diff --git a/composer.lock b/composer.lock index 84452c5fa7..46724ad5e2 100644 --- a/composer.lock +++ b/composer.lock @@ -314,29 +314,29 @@ }, { "name": "chillerlan/php-qrcode", - "version": "4.4.1", + "version": "4.4.2", "source": { "type": "git", "url": "https://github.com/chillerlan/php-qrcode.git", - "reference": "f5e243f3b61a60934780579430a951460f40888d" + "reference": "345ed8e4ffb56e6b3fcd9f42e3970b9026fa6ce4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/chillerlan/php-qrcode/zipball/f5e243f3b61a60934780579430a951460f40888d", - "reference": "f5e243f3b61a60934780579430a951460f40888d", + "url": "https://api.github.com/repos/chillerlan/php-qrcode/zipball/345ed8e4ffb56e6b3fcd9f42e3970b9026fa6ce4", + "reference": "345ed8e4ffb56e6b3fcd9f42e3970b9026fa6ce4", "shasum": "" }, "require": { - "chillerlan/php-settings-container": "^2.1.4 || ^3.1", + "chillerlan/php-settings-container": "^2.1.6 || ^3.2.1", "ext-mbstring": "*", "php": "^7.4 || ^8.0" }, "require-dev": { - "phan/phan": "^5.4", + "phan/phan": "^5.4.5", "phpmd/phpmd": "^2.15", "phpunit/phpunit": "^9.6", "setasign/fpdf": "^1.8.2", - "squizlabs/php_codesniffer": "^3.8" + "squizlabs/php_codesniffer": "^3.11" }, "suggest": { "chillerlan/php-authenticator": "Yet another Google authenticator! Also creates URIs for mobile apps.", @@ -379,19 +379,15 @@ ], "support": { "issues": "https://github.com/chillerlan/php-qrcode/issues", - "source": "https://github.com/chillerlan/php-qrcode/tree/4.4.1" + "source": "https://github.com/chillerlan/php-qrcode/tree/4.4.2" }, "funding": [ - { - "url": "https://www.paypal.com/donate?hosted_button_id=WLYUNAT9ZTJZ4", - "type": "custom" - }, { "url": "https://ko-fi.com/codemasher", "type": "ko_fi" } ], - "time": "2024-01-06T16:56:58+00:00" + "time": "2024-11-15T15:36:24+00:00" }, { "name": "chillerlan/php-settings-container", @@ -4106,17 +4102,17 @@ }, { "name": "drupal/editoria11y", - "version": "2.1.20", + "version": "2.1.21", "source": { "type": "git", "url": "https://git.drupalcode.org/project/editoria11y.git", - "reference": "2.1.20" + "reference": "2.1.21" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/editoria11y-2.1.20.zip", - "reference": "2.1.20", - "shasum": "67f8e2eb17ed3d3db6cd93782ed1faa88c206640" + "url": "https://ftp.drupal.org/files/projects/editoria11y-2.1.21.zip", + "reference": "2.1.21", + "shasum": "6ec1bb5cfa15408e3372d7e0d0a1355030a9f20b" }, "require": { "drupal/core": "^9 || ^10 || ^11" @@ -4127,8 +4123,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "2.1.20", - "datestamp": "1731097435", + "version": "2.1.21", + "datestamp": "1731602531", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4521,7 +4517,7 @@ ], "authors": [ { - "name": "Berdir", + "name": "berdir", "homepage": "https://www.drupal.org/user/214652" }, { @@ -5491,16 +5487,16 @@ }, { "name": "drupal/hdbt", - "version": "6.8.5", + "version": "6.8.7", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-hdbt.git", - "reference": "45ae632cf0b62b990b8098f9a07f53a348fa1bf1" + "reference": "788a852f02962d5c38be053989b6a18ba00daf0b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/45ae632cf0b62b990b8098f9a07f53a348fa1bf1", - "reference": "45ae632cf0b62b990b8098f9a07f53a348fa1bf1", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/788a852f02962d5c38be053989b6a18ba00daf0b", + "reference": "788a852f02962d5c38be053989b6a18ba00daf0b", "shasum": "" }, "require": { @@ -5519,23 +5515,23 @@ "Drupal" ], "support": { - "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.8.5", + "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.8.7", "issues": "https://github.com/City-of-Helsinki/drupal-hdbt/issues" }, - "time": "2024-11-14T10:30:35+00:00" + "time": "2024-11-18T15:33:25+00:00" }, { "name": "drupal/hdbt_admin", - "version": "3.2.7", + "version": "3.2.8", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-hdbt-admin.git", - "reference": "76454c97d12ea80c2e6859fea8d5926dca80bf7e" + "reference": "d1c02090ec6536e3d43abeb236a535416b97e669" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt-admin/zipball/76454c97d12ea80c2e6859fea8d5926dca80bf7e", - "reference": "76454c97d12ea80c2e6859fea8d5926dca80bf7e", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt-admin/zipball/d1c02090ec6536e3d43abeb236a535416b97e669", + "reference": "d1c02090ec6536e3d43abeb236a535416b97e669", "shasum": "" }, "require": { @@ -5563,10 +5559,10 @@ "Drupal" ], "support": { - "source": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/tree/3.2.7", + "source": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/tree/3.2.8", "issues": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/issues" }, - "time": "2024-11-01T05:47:57+00:00" + "time": "2024-11-18T15:28:13+00:00" }, { "name": "drupal/health_check", @@ -5933,16 +5929,16 @@ }, { "name": "drupal/helfi_platform_config", - "version": "4.7.1", + "version": "4.7.3", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config.git", - "reference": "680984849f6f204b63af73efb0ae531ba121ff58" + "reference": "45e879f0704b1f2b9d5f9c934fe662702483b9b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/680984849f6f204b63af73efb0ae531ba121ff58", - "reference": "680984849f6f204b63af73efb0ae531ba121ff58", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/45e879f0704b1f2b9d5f9c934fe662702483b9b7", + "reference": "45e879f0704b1f2b9d5f9c934fe662702483b9b7", "shasum": "" }, "require": { @@ -6068,10 +6064,10 @@ ], "description": "HELfi platform config", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.7.1", + "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.7.3", "issues": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/issues" }, - "time": "2024-11-11T07:44:23+00:00" + "time": "2024-11-18T15:26:52+00:00" }, { "name": "drupal/helfi_proxy", @@ -8512,6 +8508,10 @@ "name": "nerdstein", "homepage": "https://www.drupal.org/user/1557710" }, + { + "name": "ptmkenny", + "homepage": "https://www.drupal.org/user/97885" + }, { "name": "rlhawk", "homepage": "https://www.drupal.org/user/352283" @@ -10879,16 +10879,16 @@ }, { "name": "elasticsearch/elasticsearch", - "version": "v8.15.0", + "version": "v8.16.0", "source": { "type": "git", "url": "https://github.com/elastic/elasticsearch-php.git", - "reference": "34c2444fa8d4c3e6c8b009bd8dea90bca007203b" + "reference": "ab0fdb43f9e69f0d0539028d8b0b56cdf3328d85" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/elastic/elasticsearch-php/zipball/34c2444fa8d4c3e6c8b009bd8dea90bca007203b", - "reference": "34c2444fa8d4c3e6c8b009bd8dea90bca007203b", + "url": "https://api.github.com/repos/elastic/elasticsearch-php/zipball/ab0fdb43f9e69f0d0539028d8b0b56cdf3328d85", + "reference": "ab0fdb43f9e69f0d0539028d8b0b56cdf3328d85", "shasum": "" }, "require": { @@ -10931,9 +10931,9 @@ ], "support": { "issues": "https://github.com/elastic/elasticsearch-php/issues", - "source": "https://github.com/elastic/elasticsearch-php/tree/v8.15.0" + "source": "https://github.com/elastic/elasticsearch-php/tree/v8.16.0" }, - "time": "2024-08-14T14:32:50+00:00" + "time": "2024-11-14T22:23:33+00:00" }, { "name": "ezyang/htmlpurifier", @@ -18290,16 +18290,16 @@ }, { "name": "twig/twig", - "version": "v3.14.2", + "version": "v3.15.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a" + "reference": "2d5b3964cc21d0188633d7ddce732dc8e874db02" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a", - "reference": "0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/2d5b3964cc21d0188633d7ddce732dc8e874db02", + "reference": "2d5b3964cc21d0188633d7ddce732dc8e874db02", "shasum": "" }, "require": { @@ -18353,7 +18353,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.14.2" + "source": "https://github.com/twigphp/Twig/tree/v3.15.0" }, "funding": [ { @@ -18365,7 +18365,7 @@ "type": "tidelift" } ], - "time": "2024-11-07T12:36:22+00:00" + "time": "2024-11-17T15:59:19+00:00" }, { "name": "twistor/flysystem-stream-wrapper", diff --git a/conf/cmi/core.entity_view_display.media.image.image_gallery.yml b/conf/cmi/core.entity_view_display.media.image.image_gallery.yml new file mode 100644 index 0000000000..d9bbd4dc35 --- /dev/null +++ b/conf/cmi/core.entity_view_display.media.image.image_gallery.yml @@ -0,0 +1,38 @@ +uuid: 276c125d-e2db-44ce-9576-21c45385e0dc +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.media.image_gallery + - field.field.media.image.field_media_image + - field.field.media.image.field_photographer + - media.type.image + - responsive_image.styles.image_gallery_1_1 + module: + - responsive_image +_core: + default_config_hash: Ky7rUnc3u7APd8dH1E5EogiDjUtvkJvq0ZHfgG6OlQw +id: media.image.image_gallery +targetEntityType: media +bundle: image +mode: image_gallery +content: + field_media_image: + type: responsive_image + label: hidden + settings: + responsive_image_style: image_gallery_1_1 + image_link: '' + image_loading: + attribute: eager + third_party_settings: { } + weight: 0 + region: content +hidden: + created: true + field_photographer: true + langcode: true + name: true + search_api_excerpt: true + thumbnail: true + uid: true diff --git a/conf/cmi/core.entity_view_mode.media.image_gallery.yml b/conf/cmi/core.entity_view_mode.media.image_gallery.yml new file mode 100644 index 0000000000..aede92c6fb --- /dev/null +++ b/conf/cmi/core.entity_view_mode.media.image_gallery.yml @@ -0,0 +1,13 @@ +uuid: c52c9e44-0d46-417c-a8d9-372120b2c68a +langcode: en +status: true +dependencies: + module: + - media +_core: + default_config_hash: X_EeW1ealqkAjjQhcc2ehkJxyT9VZ9QH5iTYi-6NeYY +id: media.image_gallery +label: 'Image gallery' +description: '' +targetEntityType: media +cache: true diff --git a/conf/cmi/image.style.0.7_1086w_1630h_LQ.yml b/conf/cmi/image.style.0.7_1086w_1630h_LQ.yml new file mode 100644 index 0000000000..09db82eff8 --- /dev/null +++ b/conf/cmi/image.style.0.7_1086w_1630h_LQ.yml @@ -0,0 +1,26 @@ +uuid: 74ef3c22-d7ea-4cb1-8aab-01ba6b79bde5 +langcode: en +status: true +dependencies: + module: + - focal_point + - image_style_quality +_core: + default_config_hash: AeqLUQ96Cqn70SDi5us0fS8EdVFFfMUYhKl3Zf6DcBo +name: 0.7_1086w_1630h_LQ +label: 0.7_1086w_1630h_LQ +effects: + 1c1da0f4-bb6a-4f11-88eb-8cd33a8e0da2: + uuid: 1c1da0f4-bb6a-4f11-88eb-8cd33a8e0da2 + id: focal_point_scale_and_crop + weight: 1 + data: + width: 1086 + height: 1630 + crop_type: focal_point + c319bca0-92f7-4467-a5ec-1b902ce2be1b: + uuid: c319bca0-92f7-4467-a5ec-1b902ce2be1b + id: image_style_quality + weight: 2 + data: + quality: 65 diff --git a/conf/cmi/image.style.0.7_352w_572h.yml b/conf/cmi/image.style.0.7_352w_572h.yml new file mode 100644 index 0000000000..6aef21fe9d --- /dev/null +++ b/conf/cmi/image.style.0.7_352w_572h.yml @@ -0,0 +1,19 @@ +uuid: f0276d08-9181-4923-9b87-49e9bf5ee5f4 +langcode: en +status: true +dependencies: + module: + - focal_point +_core: + default_config_hash: cBN24Ntaz6rn8wtPWjCbT3-Hxq8qynjPGSmJFAV31Hk +name: 0.7_352w_572h +label: 0.7_352w_572h +effects: + 11ff7a5b-af0b-4eac-a4a3-7bc3b9ac6188: + uuid: 11ff7a5b-af0b-4eac-a4a3-7bc3b9ac6188 + id: focal_point_scale_and_crop + weight: 1 + data: + width: 352 + height: 572 + crop_type: focal_point diff --git a/conf/cmi/image.style.0.7_414w_621h.yml b/conf/cmi/image.style.0.7_414w_621h.yml new file mode 100644 index 0000000000..c93cd0363e --- /dev/null +++ b/conf/cmi/image.style.0.7_414w_621h.yml @@ -0,0 +1,19 @@ +uuid: 9ec716c1-6f6d-4d08-971f-a9d9230e43b7 +langcode: en +status: true +dependencies: + module: + - focal_point +_core: + default_config_hash: 9G0iI4Xc80IIrMDVw3MufI9ChwpU4MTr2DmAQBEsNww +name: 0.7_414w_621h +label: 0.7_414w_621h +effects: + dc8a6ee8-839c-4972-9eb8-5df5305dc75d: + uuid: dc8a6ee8-839c-4972-9eb8-5df5305dc75d + id: focal_point_scale_and_crop + weight: 1 + data: + width: 414 + height: 621 + crop_type: focal_point diff --git a/conf/cmi/image.style.0.7_543w_815h.yml b/conf/cmi/image.style.0.7_543w_815h.yml new file mode 100644 index 0000000000..b94f5f88f3 --- /dev/null +++ b/conf/cmi/image.style.0.7_543w_815h.yml @@ -0,0 +1,19 @@ +uuid: 6ff8a4a5-849c-4f94-8f22-1eb670793bdc +langcode: en +status: true +dependencies: + module: + - focal_point +_core: + default_config_hash: YnfcElLVLgfDdm94VOY-D0FddU7red0-u7cRiayv98Q +name: 0.7_543w_815h +label: 0.7_543w_815h +effects: + 6535b34f-21c8-4005-8561-d1936245e319: + uuid: 6535b34f-21c8-4005-8561-d1936245e319 + id: focal_point_scale_and_crop + weight: 1 + data: + width: 543 + height: 815 + crop_type: focal_point diff --git a/conf/cmi/image.style.0.7_704w_1144h_LQ.yml b/conf/cmi/image.style.0.7_704w_1144h_LQ.yml new file mode 100644 index 0000000000..74a2411b04 --- /dev/null +++ b/conf/cmi/image.style.0.7_704w_1144h_LQ.yml @@ -0,0 +1,26 @@ +uuid: 19aa2c22-c3e9-47cd-b767-9fca520ae4ba +langcode: en +status: true +dependencies: + module: + - focal_point + - image_style_quality +_core: + default_config_hash: pAcV7IybMiPiagIA-dUy4lmdI5voNIOyoE0Pkse5eV0 +name: 0.7_704w_1144h_LQ +label: 0.7_704w_1144h_LQ +effects: + 289822b3-1d38-43a4-a18e-0344b4ef9161: + uuid: 289822b3-1d38-43a4-a18e-0344b4ef9161 + id: focal_point_scale_and_crop + weight: 1 + data: + width: 704 + height: 1144 + crop_type: focal_point + c5118eb7-9ad5-4756-9515-d6358c38bd75: + uuid: c5118eb7-9ad5-4756-9515-d6358c38bd75 + id: image_style_quality + weight: 2 + data: + quality: 65 diff --git a/conf/cmi/image.style.0.7_828w_1242h_LQ.yml b/conf/cmi/image.style.0.7_828w_1242h_LQ.yml new file mode 100644 index 0000000000..445ae0479c --- /dev/null +++ b/conf/cmi/image.style.0.7_828w_1242h_LQ.yml @@ -0,0 +1,26 @@ +uuid: 5ebc2957-c7ca-4606-ba96-49486e6630e4 +langcode: en +status: true +dependencies: + module: + - focal_point + - image_style_quality +_core: + default_config_hash: mfxUI0GJzq_vdiXkYMnF9RUM07CwW2KKkEz14ofxTt8 +name: 0.7_828w_1242h_LQ +label: 0.7_828w_1242h_LQ +effects: + fb181588-37f9-4269-ae4e-7c93d76ffebe: + uuid: fb181588-37f9-4269-ae4e-7c93d76ffebe + id: focal_point_scale_and_crop + weight: 1 + data: + width: 828 + height: 1242 + crop_type: focal_point + a3284e2a-d636-4454-b7b6-3958d1db2b35: + uuid: a3284e2a-d636-4454-b7b6-3958d1db2b35 + id: image_style_quality + weight: 2 + data: + quality: 65 diff --git a/conf/cmi/image.style.1_1086w_1086h_LQ.yml b/conf/cmi/image.style.1_1086w_1086h_LQ.yml new file mode 100644 index 0000000000..c95dc13207 --- /dev/null +++ b/conf/cmi/image.style.1_1086w_1086h_LQ.yml @@ -0,0 +1,26 @@ +uuid: 9f76056d-d05c-40e9-9455-9caf237c2229 +langcode: en +status: true +dependencies: + module: + - focal_point + - image_style_quality +_core: + default_config_hash: mi1XUO2QcAKfZXGktQi8uH0YqSJQRPwztvP2d1hROLs +name: 1_1086w_1086h_LQ +label: 1_1086w_1086h_LQ +effects: + 3fe5b5a5-6dcd-4410-865d-22d39e20ae22: + uuid: 3fe5b5a5-6dcd-4410-865d-22d39e20ae22 + id: focal_point_scale_and_crop + weight: 1 + data: + width: 1086 + height: 1086 + crop_type: focal_point + 348c0fc5-7317-49a8-9a52-934e77165825: + uuid: 348c0fc5-7317-49a8-9a52-934e77165825 + id: image_style_quality + weight: 2 + data: + quality: 65 diff --git a/conf/cmi/image.style.1_414w_414h.yml b/conf/cmi/image.style.1_414w_414h.yml new file mode 100644 index 0000000000..21e0d11734 --- /dev/null +++ b/conf/cmi/image.style.1_414w_414h.yml @@ -0,0 +1,19 @@ +uuid: 0f96fcb7-856c-4d80-9a22-b1e88f44ca2b +langcode: en +status: true +dependencies: + module: + - focal_point +_core: + default_config_hash: hYrryvmZIFbqVuUffmELrMQU_CaSN30AKFOW_jHVzjA +name: 1_414w_414h +label: 1_414w_414h +effects: + 9ef8198f-6739-4a26-b0d7-157e42648cc4: + uuid: 9ef8198f-6739-4a26-b0d7-157e42648cc4 + id: focal_point_scale_and_crop + weight: 1 + data: + width: 414 + height: 414 + crop_type: focal_point diff --git a/conf/cmi/image.style.1_543w_543h.yml b/conf/cmi/image.style.1_543w_543h.yml new file mode 100644 index 0000000000..05eb86b0e3 --- /dev/null +++ b/conf/cmi/image.style.1_543w_543h.yml @@ -0,0 +1,19 @@ +uuid: ca8cb2c4-7e3c-4a4a-ae75-9520f628f369 +langcode: en +status: true +dependencies: + module: + - focal_point +_core: + default_config_hash: M4ETy7uSDV6Ww_h9CjHqPNr_G1ssAwvhYUP93h5drbs +name: 1_543w_543h +label: 1_543w_543h +effects: + ed62a58f-6f7b-47ff-b8c9-3574fb9abeba: + uuid: ed62a58f-6f7b-47ff-b8c9-3574fb9abeba + id: focal_point_scale_and_crop + weight: 1 + data: + width: 543 + height: 543 + crop_type: focal_point diff --git a/conf/cmi/image.style.1_828w_828h_LQ.yml b/conf/cmi/image.style.1_828w_828h_LQ.yml new file mode 100644 index 0000000000..2d33d9a48e --- /dev/null +++ b/conf/cmi/image.style.1_828w_828h_LQ.yml @@ -0,0 +1,26 @@ +uuid: d0a56f46-9d91-47a8-9269-57fda40b75ed +langcode: en +status: true +dependencies: + module: + - focal_point + - image_style_quality +_core: + default_config_hash: 5FDh9emCj1EzDriYUSM9-SHEBOkHjy6jkFjGruPs5Hw +name: 1_828w_828h_LQ +label: 1_828w_828h_LQ +effects: + c4554106-234a-4d04-a6cf-c7ae4f8886dd: + uuid: c4554106-234a-4d04-a6cf-c7ae4f8886dd + id: focal_point_scale_and_crop + weight: 1 + data: + width: 828 + height: 828 + crop_type: focal_point + ee011418-cb33-48a5-af34-10bfac5b3e64: + uuid: ee011418-cb33-48a5-af34-10bfac5b3e64 + id: image_style_quality + weight: 2 + data: + quality: 65 diff --git a/conf/cmi/responsive_image.styles.image_gallery_1_1.yml b/conf/cmi/responsive_image.styles.image_gallery_1_1.yml new file mode 100644 index 0000000000..4dfddfc68d --- /dev/null +++ b/conf/cmi/responsive_image.styles.image_gallery_1_1.yml @@ -0,0 +1,38 @@ +uuid: c0fef26d-9cc5-4756-b247-5a9c3f7b4550 +langcode: en +status: true +dependencies: + config: + - image.style.1_1086w_1086h_LQ + - image.style.1_414w_414h + - image.style.1_543w_543h + - image.style.1_828w_828h_LQ + module: + - helfi_image_styles +_core: + default_config_hash: 29_zAX_g0m2zPiaRWVs5QHweA-Yhu0_yQcb9LewDXMM +id: image_gallery_1_1 +label: 'Image gallery 1:1' +image_style_mappings: + - + image_mapping_type: image_style + image_mapping: 1_414w_414h + breakpoint_id: helfi_image_styles.m + multiplier: 1x + - + image_mapping_type: image_style + image_mapping: 1_828w_828h_LQ + breakpoint_id: helfi_image_styles.m + multiplier: 2x + - + image_mapping_type: image_style + image_mapping: 1_543w_543h + breakpoint_id: helfi_image_styles.xs + multiplier: 1x + - + image_mapping_type: image_style + image_mapping: 1_1086w_1086h_LQ + breakpoint_id: helfi_image_styles.xs + multiplier: 2x +breakpoint_group: helfi_image_styles +fallback_image_style: 1_414w_414h diff --git a/conf/cmi/responsive_image.styles.image_gallery_2_3.yml b/conf/cmi/responsive_image.styles.image_gallery_2_3.yml new file mode 100644 index 0000000000..f5a90b0cac --- /dev/null +++ b/conf/cmi/responsive_image.styles.image_gallery_2_3.yml @@ -0,0 +1,50 @@ +uuid: 4da06bdc-4ddf-479d-bd7a-e7ccbcf93a7e +langcode: en +status: true +dependencies: + config: + - image.style.0.7_1086w_1630h_LQ + - image.style.0.7_352w_572h + - image.style.0.7_414w_621h + - image.style.0.7_543w_815h + - image.style.0.7_704w_1144h_LQ + - image.style.0.7_828w_1242h_LQ + module: + - helfi_image_styles +_core: + default_config_hash: FsfbGbQamEyCjnhveCelHwebu8SHFK8rfWmoeeh7jEc +id: image_gallery_2_3 +label: 'Image gallery 2:3' +image_style_mappings: + - + image_mapping_type: image_style + image_mapping: 0.7_414w_621h + breakpoint_id: helfi_image_styles.m + multiplier: 1x + - + image_mapping_type: image_style + image_mapping: 0.7_828w_1242h_LQ + breakpoint_id: helfi_image_styles.m + multiplier: 2x + - + image_mapping_type: image_style + image_mapping: 0.7_352w_572h + breakpoint_id: helfi_image_styles.s + multiplier: 1x + - + image_mapping_type: image_style + image_mapping: 0.7_704w_1144h_LQ + breakpoint_id: helfi_image_styles.s + multiplier: 2x + - + image_mapping_type: image_style + image_mapping: 0.7_543w_815h + breakpoint_id: helfi_image_styles.xs + multiplier: 1x + - + image_mapping_type: image_style + image_mapping: 0.7_1086w_1630h_LQ + breakpoint_id: helfi_image_styles.xs + multiplier: 2x +breakpoint_group: helfi_image_styles +fallback_image_style: 0.7_414w_621h diff --git a/conf/cmi/responsive_image.styles.image_gallery_3_2.yml b/conf/cmi/responsive_image.styles.image_gallery_3_2.yml new file mode 100644 index 0000000000..02858796ef --- /dev/null +++ b/conf/cmi/responsive_image.styles.image_gallery_3_2.yml @@ -0,0 +1,50 @@ +uuid: 0011a33c-b46a-4354-af09-3ea3e656a790 +langcode: en +status: true +dependencies: + config: + - image.style.1.5_1120w_746h_LQ + - image.style.1.5_378w_252h + - image.style.1.5_452w_301h + - image.style.1.5_560w_373h + - image.style.1.5_756w_504h_LQ + - image.style.1.5_904w_602h_LQ + module: + - helfi_image_styles +_core: + default_config_hash: l_qdU6nExbacBLGCv5ZQHXE54vA49nRWaLcmwRL479U +id: image_gallery_3_2 +label: 'Image gallery 3:2' +image_style_mappings: + - + image_mapping_type: image_style + image_mapping: 1.5_452w_301h + breakpoint_id: helfi_image_styles.m + multiplier: 1x + - + image_mapping_type: image_style + image_mapping: 1.5_904w_602h_LQ + breakpoint_id: helfi_image_styles.m + multiplier: 2x + - + image_mapping_type: image_style + image_mapping: 1.5_378w_252h + breakpoint_id: helfi_image_styles.s + multiplier: 1x + - + image_mapping_type: image_style + image_mapping: 1.5_756w_504h_LQ + breakpoint_id: helfi_image_styles.s + multiplier: 2x + - + image_mapping_type: image_style + image_mapping: 1.5_560w_373h + breakpoint_id: helfi_image_styles.xs + multiplier: 1x + - + image_mapping_type: image_style + image_mapping: 1.5_1120w_746h_LQ + breakpoint_id: helfi_image_styles.xs + multiplier: 2x +breakpoint_group: helfi_image_styles +fallback_image_style: 1.5_452w_301h From c84d0c0c33ca8518e55f89c3ff79f7d07613a9c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Kalij=C3=A4rvi?= Date: Tue, 19 Nov 2024 09:55:40 +0200 Subject: [PATCH 46/95] feat: UHF-10728: KUVA ID70 form e2e tests (#1566) * UHF-10728: Added SLOWMO environment variable to wait 1 second before clicking elements. Works like this: SLOWMO=true npx playwright... * UHF-10728: Added 'exit on first error' and 'slowmo' instructions. * UHF-10728: Added the application data for the iakkaiden-kulttuuri-ja-liikunta form. * UHF-10728: Added the registered_community test for the "iakkaiden-kulttuuri-ja-liikunta" webform. * UHF-10728: Minor changes to test + one warning removal. * UHF-10728: PHPCS --------- Co-authored-by: Janne Suominen --- e2e/README.md | 11 +- e2e/playwright.config.ts | 9 + e2e/tests/forms/registered_community_70.ts | 125 ++ .../data/application/application_data_70.ts | 1146 +++++++++++++++++ .../application_data_registered_community.ts | 2 + .../grants_handler/src/ApplicationHelpers.php | 5 +- 6 files changed, 1295 insertions(+), 3 deletions(-) create mode 100644 e2e/tests/forms/registered_community_70.ts create mode 100644 e2e/utils/data/application/application_data_70.ts diff --git a/e2e/README.md b/e2e/README.md index fc6ee6ca85..9bab60d8c1 100644 --- a/e2e/README.md +++ b/e2e/README.md @@ -187,6 +187,11 @@ To run all tests in headed mode (displays a browser): npx playwright test --headed ``` +To exit on first error: +``` +npx playwright test -x +``` + To run a specific set of tests. Available sets (projects) can be found in `playwright.config.ts`: ``` npx playwright test --project {NAME_OF_PROJECT} @@ -206,10 +211,14 @@ Example 1: npx playwright test --project forms-48 --headed Example 2: npx playwright test --project forms-48-registered --headed - Example 3: npx playwright test --project forms-all --headed ``` +To run a specific set of tests in headed mode with a slow-motion feature that pauses for one second before entering data: +``` +SLOWMO=true npx playwright test --project {NAME_OF_PROJECT} --headed +``` + Other command line options that can be utilized when running the test on your local machine can be found [here](https://playwright.dev/docs/test-cli). ### Deleting applications from your local env diff --git a/e2e/playwright.config.ts b/e2e/playwright.config.ts index d2f0bb37d8..6b4c52049f 100644 --- a/e2e/playwright.config.ts +++ b/e2e/playwright.config.ts @@ -32,6 +32,9 @@ export default defineConfig({ }, /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ trace: 'on-first-retry', + launchOptions: { + slowMo: process.env.SLOWMO ? 1_000 : 0, + }, }, // For expect calls expect: { @@ -300,5 +303,11 @@ export default defineConfig({ testMatch: '/forms/registered_community_69.ts', dependencies: ['profile-registered_community'] }, + /* Form 70 tests. */ + { + name: 'forms-70', + testMatch: '/forms/registered_community_70.ts', + dependencies: ['profile-registered_community'] + }, ], }); diff --git a/e2e/tests/forms/registered_community_70.ts b/e2e/tests/forms/registered_community_70.ts new file mode 100644 index 0000000000..7cf4564c31 --- /dev/null +++ b/e2e/tests/forms/registered_community_70.ts @@ -0,0 +1,125 @@ +import {Page, test} from '@playwright/test'; +import {FormData, PageHandlers, FormPage} from "../../utils/data/test_data"; +import {fillHakijanTiedotRegisteredCommunity} from "../../utils/form_helpers"; +import {fillFormField} from "../../utils/input_helpers"; +import {generateTests} from "../../utils/test_generator_helpers"; +import {Role, selectRole} from "../../utils/auth_helpers"; +import {registeredCommunityApplications as applicationData} from '../../utils/data/application_data'; + +const formPages: PageHandlers = { + '1_hakijan_tiedot': async (page: Page, {items}: FormPage) => { + await fillHakijanTiedotRegisteredCommunity(items, page); + }, + '2_avustustiedot': async (page: Page, {items}: FormPage) => { + + if (items['edit-acting-year']) { + await fillFormField(page, items['edit-acting-year'], 'edit-acting-year'); + } + + // Kulttuurin erityisavustus 1 + if (items['edit-subventions-items-0-amount']) { + await page.locator('#edit-subventions-items-0-amount') + .fill(items['edit-subventions-items-0-amount'].value ?? ''); + } + + // Liikunnan erityisavustus 1. + if (items['edit-subventions-items-1-amount']) { + // Using the items['edit-subventions-items-0-amount'].value doesn't seem + // to work as expected. Use + await page.locator('#edit-subventions-items-1-amount') + .fill(items['edit-subventions-items-1-amount'].value ?? ''); + } + + if (items['edit-compensation-purpose']) { + await page.getByRole('textbox', {name: 'Lyhyt kuvaus haettavan / haettavien avustusten käyttötarkoituksista'}) + .fill(items['edit-compensation-purpose'].value ?? ''); + } + + if (items['edit-myonnetty-avustus']) { + await fillFormField(page, items['edit-myonnetty-avustus'], 'edit-myonnetty-avustus') + } + + if (items['edit-haettu-avustus-tieto']) { + await fillFormField(page, items['edit-haettu-avustus-tieto'], 'edit-haettu-avustus-tieto') + } + }, + '3_tarkemmat_tiedot': async (page: Page, {items}: FormPage) => { + + const skipItems = [ + 'edit-hankkeen-toimenpiteet-alkupvm', + 'edit-hankkeen-toimenpiteet-loppupvm', + 'edit-ensisijainen-taiteen-ala', + ]; + + // Loop all items from page 3. + for (const [itemKey, item] of Object.entries(items)) { + // Skip the date fields and the select list, and handle them separately. + if (skipItems.includes(itemKey)) { + continue; + } + await fillFormField(page, item, itemKey); + } + + // Handle the "taiteenala" select list separately. + if (items['edit-ensisijainen-taiteen-ala']) { + await page.selectOption('select#edit-ensisijainen-taiteen-ala', + items['edit-ensisijainen-taiteen-ala'].value ?? ''); + } + + // Handle date fields separately. + if (items['edit-hankkeen-toimenpiteet-alkupvm']) { + await page.getByLabel('Alkupäivämäärä') + .fill(items['edit-hankkeen-toimenpiteet-alkupvm'].value ?? ''); + } + + if (items['edit-hankkeen-toimenpiteet-loppupvm']) { + await page.getByLabel('Loppupäivämäärä') + .fill(items['edit-hankkeen-toimenpiteet-loppupvm'].value ?? ''); + } + }, + '4_talousarvio': async (page: Page, {items}: FormPage) => { + + // Loop all items from page 4. + for (const [itemKey, item] of Object.entries(items)) { + await fillFormField(page, item, itemKey); + } + }, + 'lisatiedot_ja_liitteet': async (page: Page, {items}: FormPage) => { + + // Loop all items from page 5. + for (const [itemKey, item] of Object.entries(items)) { + await fillFormField(page, item, itemKey); + } + }, + 'webform_preview': async (page: Page, {items}: FormPage) => { + if (items['accept_terms_1']) { + // Check data on confirmation page + await page.getByLabel('Vakuutamme, että hakemuksessa ja sen liitteissä antamamme tiedot ovat oikeita, ja hyväksymme avustusehdot').check(); + } + }, +}; + +test.describe('KUVAERILLIS(70)', () => { + let page: Page; + + const profileType = 'registered_community'; + const formId = '70'; + + test.beforeAll(async ({browser}) => { + page = await browser.newPage(); + await selectRole(page, profileType.toUpperCase() as Role); + }); + + test.afterAll(async() => { + await page.close(); + }); + + const testDataArray: [string, FormData][] = Object.entries(applicationData[formId]); + const tests = generateTests(profileType, formId, formPages, testDataArray); + + for (const { testName, testFunction } of tests) { + test(testName, async ({browser}) => { + await testFunction(page, browser); + }); + } +}); diff --git a/e2e/utils/data/application/application_data_70.ts b/e2e/utils/data/application/application_data_70.ts new file mode 100644 index 0000000000..197dba1302 --- /dev/null +++ b/e2e/utils/data/application/application_data_70.ts @@ -0,0 +1,1146 @@ +import {FormData, FormDataWithRemoveOptionalProps} from '../test_data'; +import {fakerFI as faker} from '@faker-js/faker' +import {PROFILE_INPUT_DATA} from '../profile_input_data'; +import {ATTACHMENTS} from '../attachment_data'; +import {createFormData} from '../../form_data_helpers'; +import { + viewPageFormatAddress, + viewPageFormatBoolean, + viewPageFormatCurrency, + viewPageFormatDate, + viewPageFormatFilePath, + viewPageFormatLowerCase, + viewPageFormatNumber +} from '../../view_page_formatters'; +import {getFakeEmailAddress} from '../../field_helpers'; + +/** + * Basic form data for successful save as a draft + */ +const baseForm_70: FormData = { + title: 'Save as draft.', + formSelector: 'webform-submission-iakkaiden-kulttuuri-ja-liikunta-form', + formPath: '/fi/form/iakkaiden-kulttuuri-ja-liikunta', + formPages: { + '1_hakijan_tiedot': { + items: { + 'edit-email': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-email', + }, + value: getFakeEmailAddress(), + viewPageFormatter: viewPageFormatLowerCase, + }, + 'edit-contact-person': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-contact-person', + }, + value: faker.person.fullName(), + }, + 'edit-contact-person-phone-number': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-contact-person-phone-number', + }, + value: faker.phone.number(), + }, + 'edit-bank-account-account-number-select': { + role: 'select', + value: PROFILE_INPUT_DATA.iban, + viewPageSelector: '.form-item-bank-account', + }, + 'edit-community-address-community-address-select': { + value: `${PROFILE_INPUT_DATA.address}, ${PROFILE_INPUT_DATA.zipCode}, ${PROFILE_INPUT_DATA.city}`, + viewPageSelector: '.form-item-community-address', + viewPageFormatter: viewPageFormatAddress + }, + 'edit-community-officials-items-0-item-community-officials-select': { + role: 'select', + viewPageSelector: '.form-item-community-officials', + value: PROFILE_INPUT_DATA.communityOfficial, + }, + 'nextbutton': { + role: 'button', + selector: { + type: 'form-topnavi-link', + name: 'data-drupal-selector', + value: '2_avustustiedot', + }, + viewPageSkipValidation: true, + }, + }, + }, + '2_avustustiedot': { + items: { + 'edit-acting-year': { + role: 'select', + selector: { + type: 'dom-id-first', + name: '', + value: '#edit-acting-year', + }, + viewPageSkipValidation: true, + }, + 'edit-subventions-items-0-amount': { + role: 'number-input', + value: '5709,98', + viewPageSelector: '.form-item-subventions', + viewPageFormatter: viewPageFormatCurrency + }, + 'edit-compensation-purpose': { + value: faker.lorem.sentences(4), + }, + 'edit-myonnetty-avustus': { + role: 'dynamicmultivalue', + label: '', + dynamic_multi: { + radioSelector: { + type: 'dom-id-label', + name: 'data-drupal-selector', + value: 'edit-olemme-saaneet-muita-avustuksia-1', + }, + revealedElementSelector: { + type: 'dom-id', + name: '', + value: '#edit-myonnetty-avustus', + }, + multi: { + buttonSelector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-myonnetty-avustus-add-submit', + resultValue: 'edit-myonnetty-avustus-items-[INDEX]', + }, + //@ts-ignore + items: { + 0: [ + { + role: 'select', + selector: { + type: 'by-label', + name: '', + value: 'edit-myonnetty-avustus-items-[INDEX]-item-issuer', + }, + value: 'Valtio', + }, + { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-myonnetty-avustus-items-[INDEX]-item-issuer-name', + }, + value: faker.lorem.words(2).toUpperCase(), + }, + { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-myonnetty-avustus-items-[INDEX]-item-year', + }, + value: faker.date.past().getFullYear().toString(), + }, + { + role: 'input', + selector: { + type: 'data-drupal-selector-sequential', + name: 'data-drupal-selector-sequential', + value: 'edit-myonnetty-avustus-items-[INDEX]-item-amount', + }, + value: faker.number.float({ + min: 1000, + max: 10000, + multipleOf: 2 + }).toString(), + viewPageFormatter: viewPageFormatCurrency, + }, + { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-myonnetty-avustus-items-[INDEX]-item-purpose', + }, + value: faker.lorem.words(30), + }, + ], + 1: [ + { + role: 'select', + selector: { + type: 'by-label', + name: '', + value: 'edit-myonnetty-avustus-items-[INDEX]-item-issuer', + }, + value: 'EU', + }, + { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-myonnetty-avustus-items-[INDEX]-item-issuer-name', + }, + value: faker.lorem.words(2).toUpperCase(), + }, + { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-myonnetty-avustus-items-[INDEX]-item-year', + }, + value: faker.date.past().getFullYear().toString(), + }, + { + role: 'input', + selector: { + type: 'data-drupal-selector-sequential', + name: 'data-drupal-selector-sequential', + value: 'edit-myonnetty-avustus-items-[INDEX]-item-amount', + }, + value: faker.number.float({ + min: 1000, + max: 10000, + multipleOf: 2 + }).toString(), + viewPageFormatter: viewPageFormatCurrency, + }, + { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-myonnetty-avustus-items-[INDEX]-item-purpose', + }, + value: faker.lorem.words(30), + }, + ], + }, + expectedErrors: {} + } + }, + }, + 'edit-haettu-avustus-tieto': { + role: 'dynamicmultivalue', + label: '', + dynamic_multi: { + radioSelector: { + type: 'dom-id-label', + name: 'data-drupal-selector', + value: 'edit-olemme-hakeneet-avustuksia-muualta-kuin-helsingin-kaupungilta-1', + }, + revealedElementSelector: { + type: 'dom-id', + name: '', + value: '#edit-haettu-avustus-tieto', + }, + multi: { + buttonSelector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-haettu-avustus-tieto-add-submit', + resultValue: 'edit-haettu-avustus-tieto-items-[INDEX]', + }, + //@ts-ignore + items: { + 0: [ + { + role: 'select', + selector: { + type: 'by-label', + name: '', + value: 'edit-haettu-avustus-tieto-items-[INDEX]-item-issuer', + }, + value: 'Muu', + }, + { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-haettu-avustus-tieto-items-[INDEX]-item-issuer-name', + }, + value: faker.lorem.words(2).toUpperCase(), + }, + { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-haettu-avustus-tieto-items-[INDEX]-item-year', + }, + value: faker.date.past().getFullYear().toString(), + }, + { + role: 'input', + selector: { + type: 'data-drupal-selector-sequential', + name: 'data-drupal-selector-sequential', + value: 'edit-haettu-avustus-tieto-items-[INDEX]-item-amount', + }, + value: faker.number.float({ + min: 1000, + max: 10000, + multipleOf: 2 + }).toString(), + viewPageFormatter: viewPageFormatCurrency, + }, + { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-haettu-avustus-tieto-items-[INDEX]-item-purpose', + }, + value: faker.lorem.words(30), + }, + ], + 1: [ + { + role: 'select', + selector: { + type: 'by-label', + name: '', + value: 'edit-haettu-avustus-tieto-items-[INDEX]-item-issuer', + }, + value: 'Säätiö', + }, + { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-haettu-avustus-tieto-items-[INDEX]-item-issuer-name', + }, + value: faker.lorem.words(2).toUpperCase(), + }, + { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-haettu-avustus-tieto-items-[INDEX]-item-year', + }, + value: faker.date.past().getFullYear().toString(), + }, + { + role: 'input', + selector: { + type: 'data-drupal-selector-sequential', + name: 'data-drupal-selector-sequential', + value: 'edit-haettu-avustus-tieto-items-[INDEX]-item-amount', + }, + value: faker.number.float({ + min: 1000, + max: 10000, + multipleOf: 2 + }).toString(), + viewPageFormatter: viewPageFormatCurrency, + }, + { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-haettu-avustus-tieto-items-[INDEX]-item-purpose', + }, + value: faker.lorem.words(30), + }, + ], + }, + expectedErrors: {} + } + }, + }, + 'nextbutton': { + role: 'button', + selector: { + type: 'form-topnavi-link', + name: 'data-drupal-selector', + value: '3_tarkemmat_tiedot', + } + }, + }, + }, + '3_tarkemmat_tiedot': { + items: { + 'edit-hankesuunnitelma-radios-0': { + role: 'radio', + selector: { + type: 'dom-id-label', + name: 'data-drupal-selector', + value: 'edit-hankesuunnitelma-radios-0', + }, + value: 'Ei', + viewPageFormatter: viewPageFormatBoolean + }, + 'edit-ensisijainen-taiteen-ala': { + role: 'select', + viewPageSelector: '.form-item-ensisijainen-taiteen-ala', + value: 'Kirjallisuus', + }, + // Section 3.1. + 'edit-hankesuunnitelma-jatkohakemus': { + role: 'radio', + value: '0', + viewPageFormatter: viewPageFormatBoolean + }, + 'edit-hankkeen-tarkoitus-tavoitteet': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-hankkeen-tarkoitus-tavoitteet', + }, + value: faker.lorem.words(10), + }, + 'edit-hankkeen-toimenpiteet-aikataulu': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-hankkeen-toimenpiteet-aikataulu', + }, + value: faker.lorem.words(10), + }, + 'edit-hankkeen-toimenpiteet-alkupvm': { + role: 'input', + value: '2024-11-14', + viewPageFormatter: viewPageFormatDate, + viewPageSelector: '#iakkaiden_kulttuuri_ja_liikunta--hankesuunnitelma_section', + }, + 'edit-hankkeen-toimenpiteet-loppupvm': { + role: 'input', + value: '2025-11-14', + viewPageFormatter: viewPageFormatDate, + viewPageSelector: '#iakkaiden_kulttuuri_ja_liikunta--hankesuunnitelma_section', + }, + 'edit-hankkeen-keskeisimmat-kumppanit': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-hankkeen-keskeisimmat-kumppanit', + }, + value: faker.lorem.words(10), + }, + // Section 3.2. + 'edit-haun-painopisteet-liikkumis-kehitys': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-haun-painopisteet-liikkumis-kehitys', + }, + value: faker.lorem.words(10), + }, + 'edit-haun-painopisteet-digi-kehitys': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-haun-painopisteet-digi-kehitys', + }, + value: faker.lorem.words(10), + }, + 'edit-haun-painopisteet-vertais-kehitys': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-haun-painopisteet-vertais-kehitys', + }, + value: faker.lorem.words(10), + }, + 'edit-haun-painopisteet-kulttuuri-kehitys': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-haun-painopisteet-kulttuuri-kehitys', + }, + value: faker.lorem.words(10), + }, + // Section 3.3. + 'edit-hankkeen-kohderyhmat-kenelle': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-hankkeen-kohderyhmat-kenelle', + }, + value: faker.lorem.words(10), + }, + 'edit-hankkeen-kohderyhmat-erityisryhmat': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-hankkeen-kohderyhmat-erityisryhmat', + }, + value: faker.lorem.words(10), + }, + 'edit-hankkeen-kohderyhmat-tavoitus': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-hankkeen-kohderyhmat-tavoitus', + }, + value: faker.lorem.words(10), + }, + 'edit-hankkeen-kohderyhmat-konkretia': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-hankkeen-kohderyhmat-konkretia', + }, + value: faker.lorem.words(10), + }, + 'edit-hankkeen-kohderyhmat-osallisuus': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-hankkeen-kohderyhmat-osallisuus', + }, + value: faker.lorem.words(10), + }, + 'edit-hankkeen-kohderyhmat-osaaminen': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-hankkeen-kohderyhmat-osaaminen', + }, + value: faker.lorem.words(10), + }, + 'edit-hankkeen-kohderyhmat-postinrot': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-hankkeen-kohderyhmat-postinrot', + }, + value: faker.location.zipCode(), + }, + 'edit-hankkeen-kohderyhmat-miksi-alue': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-hankkeen-kohderyhmat-miksi-alue', + }, + value: faker.lorem.words(10), + }, + // Section 3.4. + 'edit-hankkeen-riskit-keskeisimmat': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-hankkeen-riskit-keskeisimmat', + }, + value: faker.lorem.words(10), + }, + 'edit-hankkeen-riskit-seuranta': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-hankkeen-riskit-seuranta', + }, + value: faker.lorem.words(10), + }, + 'edit-hankkeen-riskit-vakiinnuttaminen': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-hankkeen-riskit-vakiinnuttaminen', + }, + value: faker.lorem.words(10), + }, + 'nextbutton': { + role: 'button', + selector: { + type: 'form-topnavi-link', + name: 'data-drupal-selector', + value: '4_talousarvio', + }, + }, + }, + }, + '4_talousarvio': { + items: { + 'edit-talous-tulon-tyyppi': { + role: 'multivalue', + multi: { + buttonSelector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-talous-tulon-tyyppi-add-submit', + resultValue: 'edit-talous-tulon-tyyppi-items-[INDEX]', + }, + //@ts-ignore + items: { + 0: [ + { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-talous-tulon-tyyppi-items-[INDEX]-item-label', + }, + value: faker.lorem.words(2), + }, + { + role: 'input', + selector: { + type: 'data-drupal-selector-sequential', + name: 'data-drupal-selector-sequential', + value: 'edit-talous-tulon-tyyppi-items-[INDEX]-item-value', + }, + value: faker.number.int({min: 1, max: 5000}).toString(), + viewPageFormatter: viewPageFormatNumber, + }, + ], + 1: [ + { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-talous-tulon-tyyppi-items-[INDEX]-item-label', + }, + value: faker.lorem.words(2), + }, + { + role: 'input', + selector: { + type: 'data-drupal-selector-sequential', + name: 'data-drupal-selector-sequential', + value: 'edit-talous-tulon-tyyppi-items-[INDEX]-item-value', + }, + value: faker.number.int({min: 1, max: 5000}).toString(), + viewPageFormatter: viewPageFormatNumber, + }, + ], + }, + expectedErrors: {} + }, + }, + 'edit-talous-menon-tyyppi': { + role: 'multivalue', + multi: { + buttonSelector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-talous-menon-tyyppi-add-submit', + resultValue: 'edit-talous-menon-tyyppi-items-[INDEX]', + }, + //@ts-ignore + items: { + 0: [ + { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-talous-menon-tyyppi-items-[INDEX]-item-label', + }, + value: faker.lorem.words(2), + }, + { + role: 'input', + selector: { + type: 'data-drupal-selector-sequential', + name: 'data-drupal-selector-sequential', + value: 'edit-talous-menon-tyyppi-items-[INDEX]-item-value', + }, + value: faker.number.int({min: 1, max: 5000}).toString(), + viewPageFormatter: viewPageFormatNumber, + }, + ], + 1: [ + { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-talous-menon-tyyppi-items-[INDEX]-item-label', + }, + value: faker.lorem.words(2), + }, + { + role: 'input', + selector: { + type: 'data-drupal-selector-sequential', + name: 'data-drupal-selector-sequential', + value: 'edit-talous-menon-tyyppi-items-[INDEX]-item-value', + }, + value: faker.number.int({min: 1, max: 5000}).toString(), + viewPageFormatter: viewPageFormatNumber, + }, + ], + }, + expectedErrors: {} + }, + }, + 'nextbutton': { + role: 'button', + selector: { + type: 'form-topnavi-link', + name: 'data-drupal-selector', + value: 'lisatiedot_ja_liitteet', + } + }, + }, + }, + 'lisatiedot_ja_liitteet': { + items: { + 'edit-additional-information': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-additional-information', + }, + value: faker.lorem.sentences(3), + }, + 'edit-extra-info': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-extra-info', + }, + value: faker.lorem.sentences(3), + }, + 'edit-muu-liite': { + role: 'multivalue', + multi: { + buttonSelector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-muu-liite-add-submit', + resultValue: 'edit-muu-liite-items-[INDEX]', + }, + //@ts-ignore + items: { + 0: [ + { + role: 'fileupload', + selector: { + type: 'locator', + name: 'data-drupal-selector', + value: '[name="files[muu_liite_items_[INDEX]__item__attachment]"]', + resultValue: '.form-item-muu-liite-items-[INDEX]--item--attachment a', + }, + value: ATTACHMENTS.MUU_LIITE, + viewPageFormatter: viewPageFormatFilePath + }, + { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-muu-liite-items-[INDEX]-item-description', + }, + value: faker.lorem.sentences(1), + }, + ], + }, + }, + }, + 'nextbutton': { + role: 'button', + selector: { + type: 'form-topnavi-link', + name: 'data-drupal-selector', + value: 'webform_preview', + }, + viewPageSkipValidation: true, + }, + }, + }, + 'webform_preview': { + items: { + 'accept_terms_1': { + role: 'checkbox', + value: '1', + viewPageSkipValidation: true, + }, + 'sendbutton': { + role: 'button', + value: 'save-draft', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-actions-draft', + }, + viewPageSkipValidation: true, + }, + }, + }, + }, + expectedErrors: {}, + expectedDestination: '/fi/hakemus/iakkaiden_kulttuuri_ja_liikunta/', +} + +/** + * Test the visibility of Section 3. fields which are controlled by the + * Section 2 "Kulttuurin erityisavustus 1" subventions value. + */ +const visibilityByState: FormDataWithRemoveOptionalProps = { + title: 'Kulttuuri1_summa is 0', + viewPageSkipValidation: true, + formPages: { + '2_avustustiedot': { + items: { + 'edit-subventions-items-1-amount': { + role: 'number-input', + value: '5000', + viewPageSelector: '.form-item-subventions', + viewPageFormatter: viewPageFormatCurrency + }, + }, + itemsToRemove: [ + 'edit-subventions-items-0-amount', + 'edit-bank-account-account-number-select', + ], + }, + '3_tarkemmat_tiedot': { + items: { + 'edit-hankesuunnitelma-radios-0': { + role: 'radio', + selector: { + type: 'dom-id-label', + name: 'data-drupal-selector', + value: 'edit-hankesuunnitelma-radios-0', + }, + value: 'Ei', + viewPageFormatter: viewPageFormatBoolean + }, + + }, + itemsToBeHidden: [ + 'edit-ensisijainen-taiteen-ala', + 'edit-haun-painopisteet-kulttuuri-kehitys', + ], + }, + }, + expectedErrors: {}, +}; + +/** + * Test the visibility of Section 3.5. This section is visible only when + * "Haetaanko nyt vuonna 2024 myönnetyn kaksivuotisen avustuksen 2. osaa?" + * form field (edit-hankesuunnitelma-radios) is set to "Kyllä". + */ +const visibilityByStateSection3Estimates: FormDataWithRemoveOptionalProps = { + title: 'Section 3.5 test hidden values', + viewPageSkipValidation: true, + formPages: { + '2_avustustiedot': { + items: { + 'edit-subventions-items-1-amount': { + role: 'number-input', + value: '5000', + viewPageSelector: '.form-item-subventions', + viewPageFormatter: viewPageFormatCurrency + }, + }, + itemsToRemove: [ + 'edit-subventions-items-0-amount', + 'edit-bank-account-account-number-select', + ], + }, + '3_tarkemmat_tiedot': { + items: { + 'edit-hankesuunnitelma-radios-1': { + role: 'radio', + selector: { + type: 'dom-id-label', + name: 'data-drupal-selector', + value: 'edit-hankesuunnitelma-radios-1', + }, + value: 'Kyllä', + viewPageFormatter: viewPageFormatBoolean + }, + + // Section 3.5. + 'edit-arviointi-toteuma': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-arviointi-toteuma', + }, + value: faker.lorem.words(10), + }, + 'edit-arviointi-muutokset-talous': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-arviointi-muutokset-talous', + }, + value: faker.lorem.words(10), + }, + 'edit-arviointi-muutokset-toiminta': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-arviointi-muutokset-toiminta', + }, + value: faker.lorem.words(10), + }, + 'edit-arviointi-muutokset-aikataulu': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-arviointi-muutokset-aikataulu', + }, + value: faker.lorem.words(10), + }, + 'edit-arviointi-haasteet': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-arviointi-haasteet', + }, + value: faker.lorem.words(10), + }, + 'edit-arviointi-saavutettavuus': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-arviointi-saavutettavuus', + }, + value: faker.lorem.words(10), + }, + 'edit-arviointi-avustus-kaytto': { + role: 'input', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-arviointi-avustus-kaytto', + }, + value: faker.lorem.words(10), + }, + }, + itemsToRemove: [ + 'edit-hankesuunnitelma-radios-0', + 'edit-hankkeen-toimenpiteet-alkupvm', + 'edit-ensisijainen-taiteen-ala', + ], + itemsToBeHidden: [ + 'edit-hankesuunnitelma-jatkohakemus', + 'edit-hankkeen-tarkoitus-tavoitteet', + 'edit-hankkeen-toimenpiteet-aikataulu', + 'edit-hankkeen-toimenpiteet-alkupvm', + 'edit-hankkeen-toimenpiteet-loppupvm', + 'edit-hankkeen-keskeisimmat-kumppanit', + 'edit-haun-painopisteet-liikkumis-kehitys', + 'edit-haun-painopisteet-digi-kehitys', + 'edit-haun-painopisteet-vertais-kehitys', + 'edit-haun-painopisteet-kulttuuri-kehitys', + 'edit-hankkeen-kohderyhmat-kenelle', + 'edit-hankkeen-kohderyhmat-erityisryhmat', + 'edit-hankkeen-kohderyhmat-tavoitus', + 'edit-hankkeen-kohderyhmat-konkretia', + 'edit-hankkeen-kohderyhmat-osallisuus', + 'edit-hankkeen-kohderyhmat-osaaminen', + 'edit-hankkeen-kohderyhmat-postinrot', + 'edit-hankkeen-kohderyhmat-miksi-alue', + 'edit-hankkeen-riskit-keskeisimmat', + 'edit-hankkeen-riskit-seuranta', + 'edit-hankkeen-riskit-vakiinnuttaminen', + ], + }, + }, + expectedErrors: {}, +}; + +/** + * Test the missing values of the whole form. + */ +const missingValues: FormDataWithRemoveOptionalProps = { + title: 'Missing values', + viewPageSkipValidation: true, + formPages: { + '1_hakijan_tiedot': { + items: {}, + itemsToRemove: [ + 'edit-bank-account-account-number-select', + 'edit-email', + 'edit-contact-person', + 'edit-contact-person-phone-number', + 'edit-community-address-community-address-select', + ], + }, + '2_avustustiedot': { + items: {}, + itemsToRemove: [ + 'edit-acting-year', + 'edit-subventions-items-0-amount', + 'edit-myonnetty-avustus', + 'edit-haettu-avustus-tieto', + ], + }, + '3_tarkemmat_tiedot': { + items: { + 'edit-hankesuunnitelma-radios-0': { + role: 'radio', + selector: { + type: 'dom-id-label', + name: 'data-drupal-selector', + value: 'edit-hankesuunnitelma-radios-0', + }, + value: 'Ei', + viewPageFormatter: viewPageFormatBoolean + }, + }, + itemsToRemove: [ + 'edit-ensisijainen-taiteen-ala', + 'edit-hankkeen-tarkoitus-tavoitteet', + 'edit-hankkeen-toimenpiteet-aikataulu', + 'edit-hankkeen-toimenpiteet-alkupvm', + 'edit-hankkeen-toimenpiteet-loppupvm', + 'edit-hankkeen-keskeisimmat-kumppanit', + 'edit-haun-painopisteet-liikkumis-kehitys', + 'edit-haun-painopisteet-digi-kehitys', + 'edit-haun-painopisteet-vertais-kehitys', + 'edit-haun-painopisteet-kulttuuri-kehitys', + 'edit-hankkeen-kohderyhmat-kenelle', + 'edit-hankkeen-kohderyhmat-tavoitus', + 'edit-hankkeen-kohderyhmat-konkretia', + 'edit-hankkeen-kohderyhmat-osallisuus', + 'edit-hankkeen-kohderyhmat-osaaminen', + 'edit-hankkeen-kohderyhmat-postinrot', + 'edit-hankkeen-kohderyhmat-miksi-alue', + 'edit-hankkeen-riskit-keskeisimmat', + 'edit-hankkeen-riskit-seuranta', + ], + }, + }, + expectedErrors: { + 'edit-bank-account-account-number-select': 'Virhe sivulla 1. Hakijan tiedot: Valitse tilinumero kenttä on pakollinen.', + 'edit-email': 'Virhe sivulla 1. Hakijan tiedot: Sähköpostiosoite kenttä on pakollinen.', + 'edit-contact-person': 'Virhe sivulla 1. Hakijan tiedot: Yhteyshenkilö kenttä on pakollinen.', + 'edit-contact-person-phone-number': 'Virhe sivulla 1. Hakijan tiedot: Puhelinnumero kenttä on pakollinen.', + 'edit-community-address': 'Virhe sivulla 1. Hakijan tiedot: Yhteisön osoite kenttä on pakollinen.', + 'edit-community-address-community-address-select': 'Virhe sivulla 1. Hakijan tiedot: Valitse osoite kenttä on pakollinen.', + 'edit-acting-year': 'Virhe sivulla 2. Avustustiedot: Vuosi, jolle haen avustusta kenttä on pakollinen.', + 'edit-subventions-items-0-amount': 'Virhe sivulla 2. Avustustiedot: Sinun on syötettävä vähintään yhdelle avustuslajille summa', + 'edit-hankkeen-tarkoitus-tavoitteet': 'Virhe sivulla 3. Tarkemmat tiedot: Hankkeen tarkoitus ja tavoitteet kenttä on pakollinen.', + 'edit-hankkeen-toimenpiteet-aikataulu': 'Virhe sivulla 3. Tarkemmat tiedot: Mitkä ovat hankkeen konkreettiset toimenpiteet ja niiden toteutusaikataulu? kenttä on pakollinen.', + 'edit-hankkeen-toimenpiteet-alkupvm': 'Virhe sivulla 3. Tarkemmat tiedot: Alkupäivämäärä kenttä on pakollinen.', + 'edit-hankkeen-toimenpiteet-loppupvm': 'Virhe sivulla 3. Tarkemmat tiedot: Loppupäivämäärä kenttä on pakollinen.', + 'edit-hankkeen-keskeisimmat-kumppanit': 'Virhe sivulla 3. Tarkemmat tiedot: Nimeä hankkeen keskeisimmät yhteistyökumppanit ja heidän roolinsa hankkeessa kenttä on pakollinen.', + 'edit-haun-painopisteet-digi-kehitys': 'Virhe sivulla 3. Tarkemmat tiedot: Kehitetäänkö hankkeessa digitaalisesti / etänä toteutettavia kulttuuritoimintoja tai liikkumiseen aktivoivaa toimintaa? Miten? kenttä on pakollinen.', + 'edit-haun-painopisteet-vertais-kehitys': 'Virhe sivulla 3. Tarkemmat tiedot: Kehitetäänkö hankkeessa vapaaehtois- / vertaistoimintaa? Miten? kenttä on pakollinen.', + 'edit-hankkeen-kohderyhmat-kenelle': 'Virhe sivulla 3. Tarkemmat tiedot: Kenelle hankkeen toiminta on pääasiallisesti suunnattu? kenttä on pakollinen.', + 'edit-hankkeen-kohderyhmat-tavoitus': 'Virhe sivulla 3. Tarkemmat tiedot: Kuinka hankkeen kohderyhmät aiotaan tavoittaa? kenttä on pakollinen.', + 'edit-hankkeen-kohderyhmat-konkretia': 'Virhe sivulla 3. Tarkemmat tiedot: Miten hankkeessa edistetään konkreettisin toimenpitein valitun kohderyhmän toimintakykyä ja hyvinvointia? kenttä on pakollinen.', + 'edit-hankkeen-kohderyhmat-osallisuus': 'Virhe sivulla 3. Tarkemmat tiedot: Millä tavoin hankkeessa edistetään osallisuutta? Mikä ikäihmisten rooli hankkeessa on? kenttä on pakollinen.', + 'edit-hankkeen-kohderyhmat-osaaminen': 'Virhe sivulla 3. Tarkemmat tiedot: Millaista osaamista kyseisen kohderyhmän/-ryhmien kanssa työskentelystä hanketoimijoilla on ennestään? kenttä on pakollinen.', + 'edit-hankkeen-kohderyhmat-postinrot': 'Virhe sivulla 3. Tarkemmat tiedot: Millä postinumeroalueella tai -alueilla Helsingissä hanke toteutetaan? kenttä on pakollinen.', + 'edit-hankkeen-kohderyhmat-miksi-alue': 'Virhe sivulla 3. Tarkemmat tiedot: Miksi juuri kyseinen alue / alueet on valittu? kenttä on pakollinen.', + 'edit-hankkeen-riskit-keskeisimmat': 'Virhe sivulla 3. Tarkemmat tiedot: Mitkä ovat hankkeen toteuttamisen näkökulmasta keskeisimmät riskit? kenttä on pakollinen.', + 'edit-hankkeen-riskit-seuranta': 'Virhe sivulla 3. Tarkemmat tiedot: Miten hankkeessa aiotaan toteuttaa seurantaa ja arviointia? kenttä on pakollinen.', + }, +}; + +/** + * Test the wrong values for the whole form. + */ +const wrongValues: FormDataWithRemoveOptionalProps = { + title: 'Wrong values', + viewPageSkipValidation: true, + formPages: { + '1_hakijan_tiedot': { + items: { + 'edit-email': { + role: 'input', + value: 'ääkkösiävaa', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-email', + } + }, + }, + itemsToRemove: [], + }, + '4_talousarvio': { + items: {}, + itemsToRemove: [ + 'edit-talous-tulon-tyyppi-items-0-item-label', + 'edit-talous-menon-tyyppi-items-0-item-value' + ], + }, + }, + expectedErrors: { + 'edit-email': 'Virhe sivulla 1. Hakijan tiedot: ääkkösiävaa ei ole kelvollinen sähköpostiosoite. Täytä sähköpostiosoite muodossa user@example.com.', + 'edit-talous-tulon-tyyppi-items-0-item-label': 'Virhe sivulla 4. Talousarvio: Kuvaus tulosta ei voi olla tyhjä, kun Määrä (€) sisältää arvon', + 'edit-talous-menon-tyyppi-items-0-item-value': 'Virhe sivulla 4. Talousarvio: Määrä (€) ei voi olla tyhjä, kun Kuvaus sisältää arvon' + }, +}; + +const sendApplication: FormDataWithRemoveOptionalProps = { + title: 'Send to AVUS2', + formPages: { + 'webform_preview': { + items: { + 'sendbutton': { + role: 'button', + value: 'submit-form', + selector: { + type: 'data-drupal-selector', + name: 'data-drupal-selector', + value: 'edit-actions-submit', + }, + viewPageSkipValidation: true, + }, + }, + itemsToRemove: [], + }, + }, + expectedErrors: {}, +}; + +/** + * All data for registered community, keyed with id. Those do not matter. + * + * Each keyed formdata in this object will result a new test run for this form. + * + */ +const registeredCommunityApplications_70 = { + draft: baseForm_70, + visibilityByState: createFormData(baseForm_70, visibilityByState), + visibilityByStateSection3Estimates: createFormData(baseForm_70, visibilityByStateSection3Estimates), + missingValues: createFormData(baseForm_70, missingValues), + wrongValues: createFormData(baseForm_70, wrongValues), + success: createFormData(baseForm_70, sendApplication), +} + +export { + registeredCommunityApplications_70 +} diff --git a/e2e/utils/data/application/application_data_registered_community.ts b/e2e/utils/data/application/application_data_registered_community.ts index 7e53ca8f35..b5e8011278 100644 --- a/e2e/utils/data/application/application_data_registered_community.ts +++ b/e2e/utils/data/application/application_data_registered_community.ts @@ -18,6 +18,7 @@ import {registeredCommunityApplications_66} from "./application_data_66"; import {registeredCommunityApplications_67} from "./application_data_67"; import {registeredCommunityApplications_68} from "./application_data_68"; import {registeredCommunityApplications_69} from "./application_data_69"; +import {registeredCommunityApplications_70} from "./application_data_70"; const registeredCommunityApplications = { 29: registeredCommunityApplications_29, @@ -40,6 +41,7 @@ const registeredCommunityApplications = { 67: registeredCommunityApplications_67, 68: registeredCommunityApplications_68, 69: registeredCommunityApplications_69, + 70: registeredCommunityApplications_70, } export { diff --git a/public/modules/custom/grants_handler/src/ApplicationHelpers.php b/public/modules/custom/grants_handler/src/ApplicationHelpers.php index bacfcf57ee..5e67ec59fe 100644 --- a/public/modules/custom/grants_handler/src/ApplicationHelpers.php +++ b/public/modules/custom/grants_handler/src/ApplicationHelpers.php @@ -69,7 +69,8 @@ public static function getAvailableApplicationNumber(WebformSubmission &$submiss $serial = $submission->serial(); $webform_id = $submission->getWebform()->id(); - $thirdPartySettings = $submission->getWebform()->getThirdPartySettings('grants_metadata'); + $thirdPartySettings = $submission->getWebform() + ->getThirdPartySettings('grants_metadata'); $applicationTypeId = $thirdPartySettings['applicationTypeID'] ?? NULL; @@ -412,7 +413,7 @@ public static function updateFieldOptions(array &$form, array $newOptions, array } else { // If we don't have current field array, we can't update the options. - if (!is_array($currentField)) { + if (!is_iterable($currentField)) { return; } // If the field is not found, continue searching recursively. From 88635c5c4705fcdbb5c73e271aeecb24540a3d43 Mon Sep 17 00:00:00 2001 From: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Date: Wed, 20 Nov 2024 06:34:30 +0200 Subject: [PATCH 47/95] Update configuration (#1571) --- composer.lock | 47 ++++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/composer.lock b/composer.lock index 46724ad5e2..d19ebc8b07 100644 --- a/composer.lock +++ b/composer.lock @@ -5522,16 +5522,16 @@ }, { "name": "drupal/hdbt_admin", - "version": "3.2.8", + "version": "3.2.10", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-hdbt-admin.git", - "reference": "d1c02090ec6536e3d43abeb236a535416b97e669" + "reference": "36437872af9f46e205ec7aff2ff27115e9c6edf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt-admin/zipball/d1c02090ec6536e3d43abeb236a535416b97e669", - "reference": "d1c02090ec6536e3d43abeb236a535416b97e669", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt-admin/zipball/36437872af9f46e205ec7aff2ff27115e9c6edf1", + "reference": "36437872af9f46e205ec7aff2ff27115e9c6edf1", "shasum": "" }, "require": { @@ -5559,10 +5559,10 @@ "Drupal" ], "support": { - "source": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/tree/3.2.8", + "source": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/tree/3.2.10", "issues": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/issues" }, - "time": "2024-11-18T15:28:13+00:00" + "time": "2024-11-19T13:01:05+00:00" }, { "name": "drupal/health_check", @@ -5929,16 +5929,16 @@ }, { "name": "drupal/helfi_platform_config", - "version": "4.7.3", + "version": "4.7.5", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config.git", - "reference": "45e879f0704b1f2b9d5f9c934fe662702483b9b7" + "reference": "760d470ec819fcc7749d77d319b904a42812ac85" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/45e879f0704b1f2b9d5f9c934fe662702483b9b7", - "reference": "45e879f0704b1f2b9d5f9c934fe662702483b9b7", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/760d470ec819fcc7749d77d319b904a42812ac85", + "reference": "760d470ec819fcc7749d77d319b904a42812ac85", "shasum": "" }, "require": { @@ -6035,7 +6035,8 @@ "[#UHF-9388] Process configuration translation files for custom modules (https://www.drupal.org/i/2845437)": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-helfi-platform-config/fd68277191b8f8ec290e53b5fbbae699b2260384/patches/drupal-2845437-process-custom-module-translation-config-10.3.x.patch", "[#UHF-9690] Allow updating lists when switching from allowed values to allowed values function (https://www.drupal.org/i/2873353)": "https://www.drupal.org/files/issues/2021-05-18/allow-allowed-values-function-update-D9-2873353_1.patch", "[#UHF-9952, #UHF-9980] Duplicate
tags (https://www.drupal.org/i/3083786)": "https://www.drupal.org/files/issues/2024-08-08/3083786--mr-8066--10-3-backport.patch", - "[#UHF-10716] Ensure consistent ordering when calculating library asset order (https://www.drupal.org/i/3467860)": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-helfi-platform-config/955e2fc9493c6574ab070187b8a5a8634da7daab/patches/drupal-3467860-optimized-js-assets-mismatch.patch" + "[#UHF-10716] Ensure consistent ordering when calculating library asset order (https://www.drupal.org/i/3467860)": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-helfi-platform-config/955e2fc9493c6574ab070187b8a5a8634da7daab/patches/drupal-3467860-optimized-js-assets-mismatch.patch", + "[#UHF-10967] Performance Degraded after update to twig 3.14.2 (https://www.drupal.org/project/drupal/issues/3487031)": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-helfi-platform-config/90b44ce5a778d05bbe89f7eaca6412b7bd34efa0/patches/10177.patch" }, "drupal/default_content": { "https://www.drupal.org/project/default_content/issues/2640734#comment-14638943": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-helfi-platform-config/main/patches/default_content_2.0.0-alpha2-2640734_manual_imports-e164a354.patch" @@ -6064,10 +6065,10 @@ ], "description": "HELfi platform config", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.7.3", + "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.7.5", "issues": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/issues" }, - "time": "2024-11-18T15:26:52+00:00" + "time": "2024-11-19T09:09:39+00:00" }, { "name": "drupal/helfi_proxy", @@ -11773,28 +11774,28 @@ }, { "name": "jean85/pretty-package-versions", - "version": "2.0.6", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/Jean85/pretty-package-versions.git", - "reference": "f9fdd29ad8e6d024f52678b570e5593759b550b4" + "reference": "3c4e5f62ba8d7de1734312e4fff32f67a8daaf10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/f9fdd29ad8e6d024f52678b570e5593759b550b4", - "reference": "f9fdd29ad8e6d024f52678b570e5593759b550b4", + "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/3c4e5f62ba8d7de1734312e4fff32f67a8daaf10", + "reference": "3c4e5f62ba8d7de1734312e4fff32f67a8daaf10", "shasum": "" }, "require": { - "composer-runtime-api": "^2.0.0", - "php": "^7.1|^8.0" + "composer-runtime-api": "^2.1.0", + "php": "^7.4|^8.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.2", "jean85/composer-provided-replaced-stub-package": "^1.0", "phpstan/phpstan": "^1.4", - "phpunit/phpunit": "^7.5|^8.5|^9.4", - "vimeo/psalm": "^4.3" + "phpunit/phpunit": "^7.5|^8.5|^9.6", + "vimeo/psalm": "^4.3 || ^5.0" }, "type": "library", "extra": { @@ -11826,9 +11827,9 @@ ], "support": { "issues": "https://github.com/Jean85/pretty-package-versions/issues", - "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.6" + "source": "https://github.com/Jean85/pretty-package-versions/tree/2.1.0" }, - "time": "2024-03-08T09:58:59+00:00" + "time": "2024-11-18T16:19:46+00:00" }, { "name": "justinrainbow/json-schema", From 6b7bc79fa8ae88d16b3d85c3fcdfb1baf8e04dea Mon Sep 17 00:00:00 2001 From: rpnykanen <48206082+rpnykanen@users.noreply.github.com> Date: Wed, 20 Nov 2024 06:35:13 +0200 Subject: [PATCH 48/95] Uhf x more tranlations (#1572) * missing tooltip * more tooltips * more translations * duplicated for some reason --- .../en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml | 4 +++- .../sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml b/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml index 86e588bf7b..01b851b82b 100644 --- a/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml +++ b/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml @@ -56,12 +56,14 @@ elements: | '#title': 'Types of grant' subventions: '#title': Grants + grants_compensations_information: + '#markup': '

Only apply for one grant type at a time with each application.

' kayttotarkoitus: '#title': 'Purpose of use' - '#help': 'Indicate the purpose for which the grant is applied for. If necessary, specify the different uses. Also tell us what is intended to be achieved with the grant and what goals are associated with the activities to be supported.' compensation_purpose: '#title': 'Brief description of the purpose(s) of the grant(s) applied for' '#counter_maximum_message': '%d/5000 characters remaining' + '#help': 'Indicate the purpose for which the grant is applied for. If necessary, specify the different uses. Also tell us what is intended to be achieved with the grant and what goals are associated with the activities to be supported.' other_grants_for_same_purpose: '#title': 'Other grants applied for to be used for the same purpose' info_muut_samaan_tarkoitukseen_myonnetty: diff --git a/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml b/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml index 13e525d6d2..c7e7007890 100644 --- a/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml +++ b/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml @@ -58,10 +58,12 @@ elements: | '#title': 'Typ av stöd' kayttotarkoitus: '#title': 'Användningsän damål' - '#help': 'Ange för vilket ändamål understödet ansöks och vid behov specificera de olika ändamålen. Ange också vad understödet är avsett för och vilka mål som är relaterade till den understödda verksamheten.' + grants_compensations_information: + '#markup': '

Ansök alltid endast om en typ av understöd åt gången.

' compensation_purpose: '#title': 'En kort beskrivning av användningsändamålet för det/de understöd som ansöks' '#counter_maximum_message': '%d/5000 tecken kvar' + '#help': 'Ange för vilket ändamål understödet ansöks och vid behov specificera de olika ändamålen. Ange också vad understödet är avsett för och vilka mål som är relaterade till den understödda verksamheten.' other_grants_for_same_purpose: '#title': 'Övriga understöd som beviljats för samma ändamål' info_muut_samaan_tarkoitukseen_myonnetty: From 5f6a34eef7edc67fdfb507710ed0403f91d2c8bd Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Wed, 20 Nov 2024 06:35:30 +0200 Subject: [PATCH 49/95] fix: Remove some remaining STEAs.. (#1573) --- conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml | 2 -- conf/cmi/webform.webform.yleisavustushakemus.yml | 2 -- 2 files changed, 4 deletions(-) diff --git a/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml b/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml index 00d3f0afc3..7b5623302c 100644 --- a/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml +++ b/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml @@ -470,7 +470,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: @@ -559,7 +558,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: diff --git a/conf/cmi/webform.webform.yleisavustushakemus.yml b/conf/cmi/webform.webform.yleisavustushakemus.yml index 9699ee3ee9..c1ddcb316b 100644 --- a/conf/cmi/webform.webform.yleisavustushakemus.yml +++ b/conf/cmi/webform.webform.yleisavustushakemus.yml @@ -311,7 +311,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: @@ -400,7 +399,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: From 0073ffad51fd16d0bb10b10b574ed552608dfe3c Mon Sep 17 00:00:00 2001 From: rpnykanen <48206082+rpnykanen@users.noreply.github.com> Date: Thu, 21 Nov 2024 07:08:58 +0200 Subject: [PATCH 50/95] fix: Remove config (#1577) --- ...orm.webform.elderly_sports_and_culture.yml | 58 - ...orm.webform.elderly_sports_and_culture.yml | 1212 ----------------- 2 files changed, 1270 deletions(-) delete mode 100644 conf/cmi/language/fi/webform.webform.elderly_sports_and_culture.yml delete mode 100644 conf/cmi/webform.webform.elderly_sports_and_culture.yml diff --git a/conf/cmi/language/fi/webform.webform.elderly_sports_and_culture.yml b/conf/cmi/language/fi/webform.webform.elderly_sports_and_culture.yml deleted file mode 100644 index 1ebb24cb4a..0000000000 --- a/conf/cmi/language/fi/webform.webform.elderly_sports_and_culture.yml +++ /dev/null @@ -1,58 +0,0 @@ -elements: | - prh_markup: - '#markup': '

Tiedot on haettu hakuprofiilistasi.

' - contact_markup: - '#markup': '

Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.

' - email: - '#help': '

Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti

' - community_address: - '#help': '

Jos haluat lisätä, poistaa tai muuttaa osoitetietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään osoitetietoa omiin tietoihin.

' - bank_account: - '#help': '

Jos haluat lisätä, poistaa tai muuttaa tilinumerotietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään tilinumerotietoa omiin tietoihin.

' - '#account_number__title': '' - community_officials: - '#help': '

Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.

' - info_muut_samaan_tarkoitukseen_myonnetty: - '#markup': '

Ilmoita tähän ainoastaan avustukset, jotka on myönnetty muualta kuin Helsingin kaupungilta kuluvana tai kahtena edellisenä verovuotena.

Myöntävä vastaus avaa lisäkysymyksen
' - myonnetty_avustus: - '#multiple__no_items_message': '

Ei syötettyjä arvoja. Lisää uusi myönnetty avustus alta.

' - '#element': - issuer_name: - '#help': '

Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)

' - purpose: - '#help': '

Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?

' - info_muut_samaan_tarkoitukseen_haettu: - '#markup': '

Ilmoita tähän ainoastaan avustukset, jotka on haettu muualta kuin Helsingin kaupungilta, eikä päätöstä ole vielä tehty.

Myöntävä vastaus avaa lisäkysymyksen
' - haettu_avustus_tieto: - '#multiple__no_items_message': '

Ei syötettyjä arvoja. Lisää uusi haettu avustus alta.

' - '#element': - issuer_name: - '#help': '

Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)

' - purpose: - '#help': '

Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?

' - hankesuunnitelma_radios: - '#help': '

Vastaa tähän kysymykseen "kyllä" vain siinä tapauksessa, jos yhteisölläsi on jo käynnissä oleva, samasta avustuksesta rahoitettu hanke ja haet sille jatkorahoitusta.

' - haun_painopisteet_ohje: - '#markup': '

Hankkeessa tulee toteuttaa yhtä tai useampaa painopistettä. HUOM! Valitse vain ne painopisteet, joita edistätte hankkeessa konkreettisella tavalla. Jos hanke ei toteuta jotakin painopistettä, jätä tekstikenttä tyhjäksi.

' - hankkeen_riskit_vakiinnuttaminen: - '#help': '

Jos kyllä, niin kuvaa tekstikenttään kuinka vakiinnuttaminen aiotaan tehdä, muuten jätä tyhjäksi.

' - arviointi_markup: - '#markup': '

Arvioi tässä osiossa hankkeen tähänastista toimintaa seuraavien kysymysten avulla. Avustuksen 2. osaa hakevien tulee liittää hakemukselle Muu liite-kohtaan niin ikään kustannuspaikkaraportti ajanjaksolta 1.6.-31.12.2024

' - arviointi_muutokset_markup: - '#markup': '

Onko hankkeessa tapahtunut merkittäviä muutoksia?

' - arviointi_avustus_kaytto: - '#help': '

Avustusehdot, kohta 10e: "Myönnetty avustus on palautettava Helsingin kaupungille, jos avustusta ei ole käytetty sinä aikana, jona se on avustuspäätöksen mukaan tullut käyttää.

' - talous_tulon_tyyppi: - '#help': '

Kerro tässä minkälainen tulo on kyseessä. Toiminnan tuloja voivat olla esimerkiksi muut avustukset ja pääsy- tai osallistumismaksut. Kirjaa tähän kohtaan myös omarahoitusosuus, jos hankkeen alijäämä kuitataan muusta taloudestanne.

' - talous_menon_tyyppi: - '#help': '

Kerro tässä minkälainen meno on kyseessä. Toiminnan menoja voivat olla esimerkiksi tilavuokrat ja henkilöstökulut.

' - additional_information: - '#help': '

Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen tai ilmoittaa perustietoihin tulleista muutoksista 

' - notification_attachments: - '#markup': '
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.

' - muu_liite: - '#attachmentName__title': '' - '#fileStatus__title': '' - '#fileType__title': '' - '#integrationID__title': '' - '#isAttachmentNew__title': '' diff --git a/conf/cmi/webform.webform.elderly_sports_and_culture.yml b/conf/cmi/webform.webform.elderly_sports_and_culture.yml deleted file mode 100644 index ff3f7ef37d..0000000000 --- a/conf/cmi/webform.webform.elderly_sports_and_culture.yml +++ /dev/null @@ -1,1212 +0,0 @@ -uuid: 6b799d6a-d01b-4f56-9075-59e76476952c -langcode: en -status: open -dependencies: - module: - - grants_handler - - grants_metadata -third_party_settings: - grants_metadata: - applicationTypeSelect: '70' - applicationType: KUVAERILLIS - applicationTypeID: '70' - applicationIndustry: KUVA - applicantTypes: - registered_community: registered_community - applicationTypeTerms: - 62: '62' - applicationTargetGroup: '22' - applicationOpen: null - applicationClose: null - applicationActingYearsType: fixed - applicationActingYears: - 2024: '2024' - 2025: '2025' - 2026: '2026' - applicationActingYearsNextCount: '' - applicationContinuous: 1 - disableCopying: 0 - status: development - parent: '' - avus2BreakingChange: 0 -weight: 0 -open: null -close: null -uid: 1 -template: false -archive: false -id: elderly_sports_and_culture -title: 'Kuva: Grant for elderly sports and culture' -description: '

Kulttuurin ja vapaa-ajan erillisavustushakemus: Ikääntyneiden liikkumisen ja kulttuuritoiminnan avustus

' -categories: - - Kehityksessä -elements: |- - avustukset_summa: - '#type': grants_webform_summation_field - '#title': 'Avustukset summa' - '#title_display': none - '#collect_field': - subventions%%amount: subventions%%amount - applicant_type: 0 - application_number: 0 - status: 0 - hakijan_tiedot: 0 - email: 0 - contact_person: 0 - contact_person_phone_number: 0 - community_address: 0 - bank_account: 0 - community_officials: 0 - acting_year: 0 - subventions%%subventionTypeTitle: 0 - subventions%%subventionType: 0 - ensisijainen_taiteen_ala: 0 - hankkeen_nimi: 0 - kyseessa_on_festivaali_tai_tapahtuma: 0 - hankkeen_tai_toiminnan_lyhyt_esittelyteksti: 0 - olemme_saaneet_muita_avustuksia: 0 - myonnetty_avustus: 0 - members_applicant_person_global: 0 - members_applicant_person_local: 0 - members_applicant_community_global: 0 - members_applicant_community_local: 0 - kokoaikainen_henkilosto: 0 - kokoaikainen_henkilotyovuosia: 0 - osa_aikainen_henkilosto: 0 - osa_aikainen_henkilotyovuosia: 0 - vapaaehtoinen_henkilosto: 0 - tapahtuma_tai_esityspaivien_maara_helsingissa: 0 - esitykset_maara_helsingissa: 0 - nayttelyt_maara_helsingissa: 0 - tyopaja_maara_helsingissa: 0 - esitykset_maara_kaikkiaan: 0 - nayttelyt_maara_kaikkiaan: 0 - tyopaja_maara_kaikkiaan: 0 - esitykset_kavijamaara_helsingissa: 0 - nayttelyt_kavijamaara_helsingissa: 0 - tyopaja_kavijamaara_helsingissa: 0 - esitykset_kavijamaara_kaikkiaan: 0 - nayttelyt_kavijamaara_kaikkiaan: 0 - tyopaja_kavijamaara_kaikkiaan: 0 - kantaesitysten_maara: 0 - ensi_iltojen_maara_helsingissa: 0 - ensimmainen_yleisolle_avoimen_tilaisuuden_paikka_helsingissa: 0 - postinumero: 0 - kyseessa_on_kaupungin_omistama_tila: 0 - tila: 0 - ensimmaisen_yleisolle_avoimen_tilaisuuden_paivamaara: 0 - festivaalin_tai_tapahtuman_kohdalla_tapahtuman_paivamaarat: 0 - hanke_alkaa: 0 - hanke_loppuu: 0 - laajempi_hankekuvaus: 0 - toiminta_taiteelliset_lahtokohdat: 0 - toiminta_tasa_arvo: 0 - toiminta_saavutettavuus: 0 - toiminta_yhteisollisyys: 0 - toiminta_kohderyhmat: 0 - toiminta_ammattimaisuus: 0 - toiminta_ekologisuus: 0 - toiminta_yhteistyokumppanit: 0 - organisaatio_kuuluu_valtionosuusjarjestelmaan_vos_: 0 - budget_static_income: 0 - budget_static_cost: 0 - budget_other_cost: 0 - muu_huomioitava_panostus: 0 - additional_information: 0 - extra_info: 0 - muu_liite: 0 - '#data_type': euro - '#form_item': hidden - applicant_type: - '#type': hidden - '#title': 'Hakijan tyyppi' - 1_hakijan_tiedot: - '#type': webform_wizard_page - '#title': '1. Hakijan tiedot' - '#prev_button_label': Edellinen - '#next_button_label': Seuraava - application_number: - '#type': hidden - '#title': Hakemusnumero - '#disabled': true - status: - '#type': hidden - '#title': 'Hakemuksen tila' - '#readonly': true - hakemusprofiili: - '#type': webform_section - '#title': 'Haetut tiedot' - '#attributes': - class: - - grants-profile--imported-section - prh_markup: - '#type': webform_markup - '#markup': 'Tiedot on haettu hakuprofiilistasi.' - hakijan_tiedot: - '#type': applicant_info - '#title': Hakija - contact_person_email_section: - '#type': webform_section - '#title': Sähköposti - '#states': - visible: - ':input[name="applicant_type"]': - value: registered_community - contact_markup: - '#type': webform_markup - '#markup': 'Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.' - email: - '#type': email - '#title': Sähköpostiosoite - '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' - '#size': 63 - '#autocomplete': 'off' - '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' - '#states': - required: - ':input[name="applicant_type"]': - value: registered_community - contact_person_section: - '#type': webform_section - '#title': 'Hakemuksen yhteyshenkilö' - '#states': - visible: - ':input[name="applicant_type"]': - value: registered_community - contact_person: - '#type': textfield - '#title': Yhteyshenkilö - '#autocomplete': 'off' - '#required': true - '#attributes': - class: - - webform--large - '#size': 63 - contact_person_phone_number: - '#type': textfield - '#title': Puhelinnumero - '#required': true - '#autocomplete': 'off' - '#attributes': - class: - - webform--medium - '#size': 32 - osoite: - '#type': webform_section - '#title': Osoite - '#states': - visible: - ':input[name="applicant_type"]': - value: registered_community - community_address: - '#type': community_address_composite - '#title': 'Yhteisön osoite' - '#help': 'Jos haluat lisätä, poistaa tai muuttaa osoitetietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään osoitetietoa omiin tietoihin.' - '#attributes': - class: - - webform--large - '#required': true - '#states': - visible: - ':input[name="applicant_type"]': - value: registered_community - tilinumero: - '#type': webform_section - '#title': Tilinumero - bank_account: - '#type': bank_account_composite - '#title': Tilinumero - '#help': 'Jos haluat lisätä, poistaa tai muuttaa tilinumerotietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään tilinumerotietoa omiin tietoihin.' - '#attributes': - class: - - webform--medium - '#required': true - toiminnasta_vastaavat_henkilot: - '#type': webform_section - '#title': 'Toiminnasta vastaavat henkilöt' - '#states': - visible: - ':input[name="applicant_type"]': - '!value': private_person - community_officials: - '#type': community_officials_composite - '#help': 'Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.' - '#title': 'Valitse toiminnasta vastaavat henkilöt' - '#multiple': true - '#multiple__item_label': henkilö - '#multiple__min_items': 1 - '#multiple__empty_items': 0 - '#multiple__sorting': false - '#multiple__add': false - '#multiple__add_more_input': false - '#multiple__add_more_button_label': 'Lisää henkilö' - '#wrapper_attributes': - class: - - community_officials_wrapper - '#attributes': - class: - - webform--large - 2_avustustiedot: - '#type': webform_wizard_page - '#title': '2. Avustustiedot' - avustuksen_tiedot: - '#type': webform_section - '#title': 'Avustuksen tiedot' - acting_year: - '#type': select - '#title': 'Vuosi, jolle haen avustusta' - '#options': - 2024: '2024' - 2025: '2025' - 2026: '2026' - '#required': true - avustuslajit: - '#type': webform_section - '#title': Avustuslajit - subventions: - '#type': grants_compensations - '#title': Avustukset - '#multiple': true - '#subventionType': - 47: '47' - 51: '51' - '#onlyOneSubventionPerApplication': 1 - '#required': true - '#multiple__header': true - '#multiple__empty_items': 0 - '#multiple__sorting': false - '#multiple__add': false - '#multiple__remove': false - '#multiple__add_more': false - '#attributes': - class: - - subventions - '#subvention_type': - 1: '1' - 6: '6' - '#subvention_type_id__access': false - '#subvention_type__title': Avustuslaji - '#subvention_amount__title': 'Avustuksen summa' - grants_compensations_information: - '#type': webform_markup - '#markup': '

Hae yhdellä hakemuksella aina vain yhtä avustuslajia kerrallaan.

' - kayttotarkoitus: - '#type': webform_section - '#title': Käyttötarkoitus - compensation_purpose: - '#type': textarea - '#title': 'Lyhyt kuvaus haettavan / haettavien avustusten käyttötarkoituksista' - '#help': 'Kerro mitä tarkoitusta varten avustusta haetaan, erittele tarvittaessa eri käyttökohteet. Kerro myös mitä avustuksella on tarkoitus saada aikaiseksi ja millaisia tavoitteita avustettavaan toimintaan liittyy.' - '#maxlength': 5000 - '#required': true - '#counter_type': character - '#counter_maximum': 5000 - '#counter_maximum_message': '%d/5000 merkkiä jäljellä' - other_grants_for_same_purpose: - '#type': webform_section - '#title': 'Muut samaan tarkoitukseen myönnetyt avustukset' - info_muut_samaan_tarkoitukseen_myonnetty: - '#type': webform_markup - '#markup': | - Ilmoita tähän ainoastaan avustukset, jotka on myönnetty muualta kuin Helsingin kaupungilta kuluvana tai kahtena edellisenä verovuotena. -
-
-
- - Myöntävä vastaus avaa lisäkysymyksen -
-
-
- olemme_saaneet_muita_avustuksia: - '#type': radios - '#title': 'Olemme saaneet muita avustuksia' - '#description_display': before - '#options': - 1: Kyllä - 0: Ei - myonnetty_avustus: - '#type': webform_custom_composite - '#title': 'Myönnetty avustus' - '#title_display': before - '#states': - visible: - ':input[name="olemme_saaneet_muita_avustuksia"]': - value: '1' - required: - ':input[name="olemme_saaneet_muita_avustuksia"]': - value: '1' - '#multiple__header': false - '#multiple__item_label': 'myönnetty avustus' - '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi myönnetty avustus alta.' - '#multiple__min_items': 1 - '#multiple__empty_items': 0 - '#multiple__sorting': false - '#multiple__add': false - '#multiple__add_more_input': false - '#multiple__add_more_button_label': 'Lisää uusi myönnetty avustus' - '#element': - issuer: - '#type': select - '#options': - 1: Valtio - 3: EU - 4: Muu - 5: Säätiö - '#required': true - '#title': 'Avustuksen myöntäjä' - issuer_name: - '#type': textfield - '#required': true - '#title': 'Myöntäjän nimi' - '#attributes': - class: - - webform--large - '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' - year: - '#type': textfield - '#required': true - '#title': Vuosi - '#attributes': - class: - - webform--small - '#maxlength': 4 - '#pattern': ^(19\d\d|20\d\d|2100)$ - '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' - amount: - '#type': textfield - '#required': true - '#attributes': - class: - - webform--small - '#title': 'Myönnetyn avustuksen summa' - '#input_mask': "'alias': 'currency', 'prefix': '', 'suffix': '€','groupSeparator': ' ','radixPoint':','" - purpose: - '#type': textarea - '#title': 'Kuvaus käyttötarkoituksesta' - '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' - '#maxlength': 1000 - '#counter_type': character - '#attributes': - class: - - webform--large - '#counter_maximum': 1000 - '#counter_maximum_message': '%d/1000 merkkiä jäljellä' - muut_samaan_tarkoitukseen_haetut_avustukset: - '#type': webform_section - '#title': 'Muut samaan tarkoitukseen haetut avustukset' - info_muut_samaan_tarkoitukseen_haettu: - '#type': webform_markup - '#markup': | - Ilmoita tähän ainoastaan avustukset, jotka on haettu muualta kuin Helsingin kaupungilta, eikä päätöstä ole vielä tehty. -
-
-
- - Myöntävä vastaus avaa lisäkysymyksen -
-
-
- olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: - '#type': radios - '#title': 'Olemme hakeneet avustuksia muualta kuin Helsingin kaupungilta' - '#options': - 1: Kyllä - 0: Ei - haettu_avustus_tieto: - '#type': webform_custom_composite - '#title': 'Lisää uusi haettu avustus' - '#title_display': before - '#states': - visible: - ':input[name="olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta"]': - value: '1' - required: - ':input[name="olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta"]': - value: '1' - '#multiple__header': false - '#multiple__item_label': 'haettu avustus' - '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi haettu avustus alta.' - '#multiple__min_items': 1 - '#multiple__empty_items': 0 - '#multiple__sorting': false - '#multiple__add': false - '#multiple__add_more_input': false - '#multiple__add_more_button_label': 'Lisää uusi haettu avustus' - '#element': - issuer: - '#type': select - '#options': - 1: Valtio - 3: EU - 4: Muu - 5: Säätiö - '#required': true - '#title': 'Avustuksen myöntäjä' - issuer_name: - '#type': textfield - '#required': true - '#title': 'Myöntäjän nimi' - '#attributes': - class: - - webform--large - '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' - year: - '#type': textfield - '#required': true - '#attributes': - class: - - webform--small - '#title': Vuosi - '#maxlength': 4 - '#pattern': ^(19\d\d|20\d\d|2100)$ - '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' - amount: - '#type': textfield - '#required': true - '#attributes': - class: - - webform--small - '#title': 'Haetun avustuksen summa' - '#input_mask': "'alias': 'currency', 'prefix': '', 'suffix': '€','groupSeparator': ' ','radixPoint':','" - purpose: - '#type': textarea - '#title': 'Kuvaus käyttötarkoituksesta' - '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' - '#maxlength': 1000 - '#counter_type': character - '#attributes': - class: - - webform--large - '#counter_maximum': 1000 - '#counter_maximum_message': '%d/1000 merkkiä jäljellä' - 3_tarkemmat_tiedot: - '#type': webform_wizard_page - '#title': '3. Tarkemmat tiedot' - tarkemmat_tiedot_section: - '#type': webform_section - '#title': ' ' - hankesuunnitelma_radios: - '#type': radios - '#title': 'Haetaanko nyt vuonna 2024 myönnetyn kaksivuotisen avustuksen 2. osaa?' - '#help': 'Vastaa tähän kysymykseen "kyllä" vain siinä tapauksessa, jos yhteisölläsi on jo käynnissä oleva, samasta avustuksesta rahoitettu hanke ja haet sille jatkorahoitusta.' - '#description_display': before - '#options': - 1: Kyllä - 0: Ei - '#default_value': '0' - hankesuunnitelma_section: - '#type': webform_section - '#title': '3.1 Hankesuunnitelma' - '#states': - visible: - ':input[name="hankesuunnitelma_radios"]': - value: '0' - hankesuunnitelma_jatkohakemus: - '#type': radios - '#title': 'Onko haettava avustus käynnissä olevan hankkeen jatkohakemus?' - '#description_display': before - '#options': - 1: Kyllä - 0: Ei - '#default_value': '0' - hankkeen_tarkoitus_tavoitteet: - '#type': textarea - '#title': 'Hankkeen tarkoitus ja tavoitteet' - '#maxlength': 2500 - '#required': true - '#counter_type': character - '#counter_maximum': 2500 - '#counter_maximum_message': '%d/2500 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - hankkeen_toimenpiteet_aikataulu: - '#type': textarea - '#title': 'Mitkä ovat hankkeen konkreettiset toimenpiteet ja niiden toteutusaikataulu?' - '#maxlength': 4000 - '#required': true - '#counter_type': character - '#counter_maximum': 4000 - '#counter_maximum_message': '%d/4000 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - hankkeen_toimenpiteet_toteutus: - '#type': fieldset - '#title': 'Hankkeen konkreettiset toimenpiteet on tarkoitus toteuttaa välillä' - '#attributes': - class: - - grants-fieldset - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - hankkeen_toimenpiteet_alkupvm: - '#type': date - '#title': Alkupäivämäärä - '#required': true - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - hankkeen_toimenpiteet_loppupvm: - '#type': date - '#title': Loppupäivämäärä - '#required': true - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - hankkeen_keskeisimmat_kumppanit: - '#type': textarea - '#title': 'Nimeä hankkeen keskeisimmät yhteistyökumppanit ja heidän roolinsa hankkeessa' - '#maxlength': 2500 - '#required': true - '#counter_type': character - '#counter_maximum': 2500 - '#counter_maximum_message': '%d/2500 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - haun_painopisteet_section: - '#type': webform_section - '#title': '3.2 Haun painopisteet' - '#states': - visible: - ':input[name="hankesuunnitelma_radios"]': - value: '0' - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - haun_painopisteet_ohje: - '#type': webform_markup - '#markup': 'Hankkeessa tulee toteuttaa yhtä tai useampaa painopistettä. HUOM! Valitse vain ne painopisteet, joita edistätte hankkeessa konkreettisella tavalla. Jos hanke ei toteuta jotakin painopistettä, jätä tekstikenttä tyhjäksi.' - haun_painopisteet_liikkumis_kehitys: - '#type': textarea - '#title': 'Kehitetäänkö hankkeessa liikkumismahdollisuuksia tai taide- ja kulttuuritoimintaa lähiympäristössä / alueellisesti? Miten?' - '#maxlength': 1250 - '#counter_type': character - '#counter_maximum': 1250 - '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - haun_painopisteet_digi_kehitys: - '#type': textarea - '#title': 'Kehitetäänkö hankkeessa digitaalisesti / etänä toteutettavia kulttuuritoimintoja tai liikkumiseen aktivoivaa toimintaa? Miten?' - '#maxlength': 1250 - '#required': true - '#counter_type': character - '#counter_maximum': 1250 - '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - haun_painopisteet_vertais_kehitys: - '#type': textarea - '#title': 'Kehitetäänkö hankkeessa vapaaehtois- / vertaistoimintaa? Miten?' - '#maxlength': 1250 - '#required': true - '#counter_type': character - '#counter_maximum': 1250 - '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - haun_painopisteet_kulttuuri_kehitys: - '#type': textarea - '#title': 'Kehitetäänkö hankkeessa taide- ja kulttuuritoimijoiden osaamista tai luodaanko uusia työtapoja / rakenteita? Miten?' - '#maxlength': 1250 - '#required': true - '#counter_type': character - '#counter_maximum': 1250 - '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - hankkeen_kohderyhmat_section: - '#type': webform_section - '#title': '3.3 Hankkeen kohderyhmät' - '#states': - visible: - ':input[name="hankesuunnitelma_radios"]': - value: '0' - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - hankkeen_kohderyhmat_kenelle: - '#type': textarea - '#title': 'Kenelle hankkeen toiminta on pääasiallisesti suunnattu?' - '#maxlength': 1250 - '#required': true - '#counter_type': character - '#counter_maximum': 1250 - '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - hankkeen_kohderyhmat_erityisryhmat: - '#type': textarea - '#title': 'Kohdennetaanko hankkeessa toimintaa jollekin erityisryhmälle?' - '#maxlength': 1250 - '#required': true - '#counter_type': character - '#counter_maximum': 1250 - '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - hankkeen_kohderyhmat_tavoitus: - '#type': textarea - '#title': 'Kuinka hankkeen kohderyhmät aiotaan tavoittaa?' - '#maxlength': 1250 - '#required': true - '#counter_type': character - '#counter_maximum': 1250 - '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - hankkeen_kohderyhmat_konkretia: - '#type': textarea - '#title': 'Miten hankkeessa edistetään konkreettisin toimenpitein valitun kohderyhmän toimintakykyä ja hyvinvointia?' - '#maxlength': 1250 - '#required': true - '#counter_type': character - '#counter_maximum': 1250 - '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - hankkeen_kohderyhmat_osallisuus: - '#type': textarea - '#title': 'Millä tavoin hankkeessa edistetään osallisuutta? Mikä ikäihmisten rooli hankkeessa on?' - '#maxlength': 1250 - '#required': true - '#counter_type': character - '#counter_maximum': 1250 - '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - hankkeen_kohderyhmat_osaaminen: - '#type': textarea - '#title': 'Millaista osaamista kyseisen kohderyhmän/-ryhmien kanssa työskentelystä hanketoimijoilla on ennestään?' - '#maxlength': 1250 - '#required': true - '#counter_type': character - '#counter_maximum': 1250 - '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - hankkeen_kohderyhmat_postinrot: - '#type': textfield - '#title': 'Millä postinumeroalueella tai -alueilla Helsingissä hanke toteutetaan?' - '#required': true - '#autocomplete': 'off' - '#attributes': - class: - - webform--medium - '#size': 32 - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - hankkeen_kohderyhmat_miksi_alue: - '#type': textarea - '#title': 'Miksi juuri kyseinen alue / alueet on valittu?' - '#maxlength': 1250 - '#required': true - '#counter_type': character - '#counter_maximum': 1250 - '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - hankkeen_riskit_section: - '#type': webform_section - '#title': '3.4 Riskit & analyysi' - '#states': - visible: - ':input[name="hankesuunnitelma_radios"]': - value: '0' - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - hankkeen_riskit_keskeisimmat: - '#type': textarea - '#title': 'Mitkä ovat hankkeen toteuttamisen näkökulmasta keskeisimmät riskit?' - '#maxlength': 2500 - '#required': true - '#counter_type': character - '#counter_maximum': 2500 - '#counter_maximum_message': '%d/2500 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - hankkeen_riskit_seuranta: - '#type': textarea - '#title': 'Miten hankkeessa aiotaan toteuttaa seurantaa ja arviointia?' - '#maxlength': 2500 - '#required': true - '#counter_type': character - '#counter_maximum': 2500 - '#counter_maximum_message': '%d/2500 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - hankkeen_riskit_vakiinnuttaminen: - '#type': textarea - '#title': 'Onko hankkeen suunniteltu toiminta aikomus vakiinnuttaa osaksi hakijan/jonkun muun toimijan perustoimintaa hankkeen jälkeen?' - '#help': 'Jos kyllä, niin kuvaa tekstikenttään kuinka vakiinnuttaminen aiotaan tehdä, muuten jätä tyhjäksi.' - '#maxlength': 2500 - '#required': true - '#counter_type': character - '#counter_maximum': 2500 - '#counter_maximum_message': '%d/2500 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' - hankkeen_valiarviointi_section: - '#type': webform_section - '#title': '3.5 2-vuotisten hankkeiden väliarviointi' - '#states': - visible: - ':input[name="hankesuunnitelma_radios"]': - value: '1' - arviointi_markup: - '#type': webform_markup - '#markup': 'Arvioi tässä osiossa hankkeen tähänastista toimintaa seuraavien kysymysten avulla. Avustuksen 2. osaa hakevien tulee liittää hakemukselle Muu liite-kohtaan niin ikään kustannuspaikkaraportti ajanjaksolta 1.6.-31.12.2024' - arviointi_toteuma: - '#type': textarea - '#title': 'Onko hanke edennyt suunnitelman mukaisesti? Arvioikaa hankkeen toteumaa tähän asti asteikolla 1-100% ja perustelkaa vastauksenne.' - '#maxlength': 1250 - '#required': true - '#counter_type': character - '#counter_maximum': 1250 - '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_radios"]': - value: '1' - arviointi_muutokset_markup: - '#type': webform_markup - '#markup': 'Onko hankkeessa tapahtunut merkittäviä muutoksia?' - arviointi_muutokset_talous: - '#type': textarea - '#title': 'Talouteen liittyen; mitä?' - '#maxlength': 1250 - '#required': true - '#counter_type': character - '#counter_maximum': 1250 - '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_radios"]': - value: '1' - arviointi_muutokset_toiminta: - '#type': textarea - '#title': 'Toimintaan liittyen; mitä?' - '#maxlength': 1250 - '#required': true - '#counter_type': character - '#counter_maximum': 1250 - '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_radios"]': - value: '1' - arviointi_muutokset_aikataulu: - '#type': textarea - '#title': 'Aikatauluun liittyen; mitä?' - '#maxlength': 1250 - '#required': true - '#counter_type': character - '#counter_maximum': 1250 - '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_radios"]': - value: '1' - arviointi_haasteet: - '#type': textarea - '#title': 'Onko hanke kohdannut toimintaan vaikuttaneita haasteita? Jos, niin millaisia?' - '#maxlength': 1250 - '#required': true - '#counter_type': character - '#counter_maximum': 1250 - '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_radios"]': - value: '1' - arviointi_saavutettavuus: - '#type': textarea - '#title': 'Miten toiminta on tavoittanut osallistujia suhteessa tavoitteisiin?' - '#maxlength': 1250 - '#required': true - '#counter_type': character - '#counter_maximum': 1250 - '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_radios"]': - value: '1' - arviointi_avustus_kaytto: - '#type': textarea - '#help': 'Avustusehdot, kohta 10e: "Myönnetty avustus on palautettava Helsingin kaupungille, jos avustusta ei ole käytetty sinä aikana, jona se on avustuspäätöksen mukaan tullut käyttää.' - '#title': 'Tuleeko ensimmäiselle hankekaudelle myönnetty avustus käytettyä näillä näkymin määräaikaan (31.5.2025) mennessä? Jos ei, niin avatkaa tähän johtaneita syitä.' - '#maxlength': 1250 - '#required': true - '#counter_type': character - '#counter_maximum': 1250 - '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_radios"]': - value: '1' - 4_talousarvio: - '#type': webform_wizard_page - '#title': '4. Talousarvio' - tulot_section: - '#type': webform_section - '#title': '4.1 Tulot' - tulot: - '#type': grants_budget_income_static - '#title': Tulot - '#multiple': false - '#incomeGroup': general - '#plannedStateOperativeSubvention__access': false - '#otherCompensationFromCity__access': false - '#stateOperativeSubvention__access': false - '#plannedOtherCompensations__access': false - '#sponsorships__access': false - '#entryFees__access': false - '#sales__access': false - '#financialFundingAndInterests__access': false - '#customerFees__access': false - '#donations__access': false - '#compensationFromCulturalAffairs__access': false - '#otherCompensationType__access': false - '#incomeWithoutCompensations__access': false - '#ownFunding__access': false - '#plannedTotalIncome__access': false - '#otherCompensations__access': false - '#plannedTotalIncomeWithoutSubventions__access': false - '#plannedShareOfIncomeWithoutSubventions__access': false - '#shareOfIncomeWithoutSubventions__access': false - '#totalIncomeWithoutSubventions__access': false - '#totalIncome__access': false - '#incomeGroupName__access': false - talous_tulon_tyyppi: - '#type': grants_budget_other_income - '#title': 'Tulon tyyppi' - '#multiple': true - '#incomeGroup': general - '#help': 'Kerro tässä minkälainen tulo on kyseessä. Toiminnan tuloja voivat olla esimerkiksi muut avustukset ja pääsy- tai osallistumismaksut. Kirjaa tähän kohtaan myös omarahoitusosuus, jos hankkeen alijäämä kuitataan muusta taloudestanne.' - '#multiple__min_items': 1 - '#multiple__empty_items': 0 - '#multiple__add_more_input': false - '#multiple__add_more_button_label': 'Lisää uusi tulo' - '#multiple__item_label': tulo - menot_section: - '#type': webform_section - '#title': '4.2 Menot' - talous_menon_tyyppi: - '#type': grants_budget_other_cost - '#title': Meno - '#multiple': true - '#incomeGroup': general - '#help': 'Kerro tässä minkälainen meno on kyseessä. Toiminnan menoja voivat olla esimerkiksi tilavuokrat ja henkilöstökulut.' - '#multiple__min_items': 1 - '#multiple__empty_items': 0 - '#multiple__add_more_input': false - '#multiple__add_more_button_label': 'Lisää uusi meno' - '#multiple__item_label': meno - lisatiedot_ja_liitteet: - '#type': webform_wizard_page - '#title': '5. Lisätiedot ja liitteet' - lisatietoja_hakemukseen_liittyen: - '#type': webform_section - '#title': 'Lisätietoja hakemukseen liittyen' - additional_information: - '#type': textarea - '#title': Lisätiedot - '#attributes': - class: - - webform--large - '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen tai ilmoittaa perustietoihin tulleista muutoksista ' - '#counter_type': character - '#maxlength': 5000 - '#counter_maximum': 5000 - '#counter_maximum_message': '%d/5000 merkkiä jäljellä' - '#cols': 63 - liitteet: - '#type': webform_section - '#title': Liitteet - attachments_info: - '#type': webform_markup - '#markup': '

Avustushakemuksen käsittelyä varten tulee toimittaa kaikki hakuilmoituksessa luetellut liitteet. Avustushakemus voidaan hylätä, jos liitteitä ei ole toimitettu. Mikäli joku liitteistä puuttuu kerro siitä hakemuksen Lisäselvitys liitteistä -kohdassa.

Helsingin kaupungille aiemmin toimitetut liitteet

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

' - notification_attachments: - '#type': webform_markup - '#markup': | -
-
-
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.

-
-
- '#format': full_html - extra_info: - '#type': textarea - '#title': 'Lisäselvitys liitteistä' - '#maxlength': 5000 - '#counter_type': character - '#counter_maximum': 5000 - '#counter_maximum_message': '%d/5000 merkkiä jäljellä' - '#attributes': - class: - - webform--large - '#cols': 63 - muu_liite: - '#type': grants_attachments - '#title': 'Muu liite' - '#multiple': 10 - '#filetype': '0' - '#title_display': before - '#multiple__item_label': liite - '#multiple__sorting': false - '#multiple__add': false - '#multiple__remove': false - '#multiple__add_more_input': false - '#multiple__add_more_button_label': 'Lisää liite' - '#isDeliveredLater__access': false - '#isIncludedInOtherFile__access': false - actions: - '#type': webform_actions - '#title': 'Submit button(s)' - '#submit__label': Lähetä - '#draft__label': 'Tallenna keskeneräisenä' - '#wizard_prev__label': Edellinen - '#wizard_next__label': Seuraava - '#preview_prev__label': Edellinen - '#preview_next__label': Esikatseluun - '#delete_hide': false - '#delete__label': 'Poista keskeneräinen' - '#delete__attributes': - class: - - hds-button - - hds-button--primary - '#delete__dialog': true -css: '' -javascript: '' -settings: - ajax: false - ajax_scroll_top: form - ajax_progress_type: '' - ajax_effect: '' - ajax_speed: null - page: true - page_submit_path: '' - page_confirm_path: '' - page_theme_name: '' - form_title: source_entity_webform - form_submit_once: false - form_open_message: '' - form_close_message: '' - form_exception_message: '' - form_previous_submissions: false - form_confidential: false - form_confidential_message: '' - form_disable_remote_addr: false - form_convert_anonymous: false - form_prepopulate: false - form_prepopulate_source_entity: false - form_prepopulate_source_entity_required: false - form_prepopulate_source_entity_type: '' - form_unsaved: true - form_disable_back: false - form_submit_back: true - form_disable_autocomplete: false - form_novalidate: false - form_disable_inline_errors: false - form_required: false - form_autofocus: false - form_details_toggle: false - form_reset: false - form_access_denied: default - form_access_denied_title: '' - form_access_denied_message: '' - form_access_denied_attributes: { } - form_file_limit: '' - form_attributes: { } - form_method: '' - form_action: '' - share: false - share_node: false - share_theme_name: '' - share_title: true - share_page_body_attributes: { } - submission_label: '' - submission_exception_message: '' - submission_locked_message: '' - submission_log: false - submission_excluded_elements: { } - submission_exclude_empty: false - submission_exclude_empty_checkbox: false - submission_views: { } - submission_views_replace: { } - submission_user_columns: { } - submission_user_duplicate: false - submission_access_denied: default - submission_access_denied_title: '' - submission_access_denied_message: '' - submission_access_denied_attributes: { } - previous_submission_message: '' - previous_submissions_message: '' - autofill: false - autofill_message: '' - autofill_excluded_elements: { } - wizard_progress_bar: true - wizard_progress_pages: false - wizard_progress_percentage: false - wizard_progress_link: true - wizard_progress_states: false - wizard_start_label: '' - wizard_preview_link: false - wizard_confirmation: true - wizard_confirmation_label: '7. Valmis' - wizard_auto_forward: true - wizard_auto_forward_hide_next_button: false - wizard_keyboard: true - wizard_track: '' - wizard_prev_button_label: Edellinen - wizard_next_button_label: Seuraava - wizard_toggle: true - wizard_toggle_show_label: '' - wizard_toggle_hide_label: '' - wizard_page_type: container - wizard_page_title_tag: h2 - preview: 2 - preview_label: '6. Vahvista, esikatsele ja lähetä' - preview_title: 'Vahvista, esikatsele ja lähetä' - preview_message: '' - preview_attributes: { } - preview_excluded_elements: { } - preview_exclude_empty: false - preview_exclude_empty_checkbox: false - draft: all - draft_multiple: false - draft_auto_save: false - draft_saved_message: '' - draft_loaded_message: '' - draft_pending_single_message: '' - draft_pending_multiple_message: '' - confirmation_type: none - confirmation_url: '' - confirmation_title: '' - confirmation_message: '' - confirmation_attributes: { } - confirmation_back: true - confirmation_back_label: '' - confirmation_back_attributes: { } - confirmation_exclude_query: true - confirmation_exclude_token: true - confirmation_update: false - limit_total: null - limit_total_interval: null - limit_total_message: '' - limit_total_unique: false - limit_user: null - limit_user_interval: null - limit_user_message: '' - limit_user_unique: false - entity_limit_total: null - entity_limit_total_interval: null - entity_limit_user: null - entity_limit_user_interval: null - purge: draft - purge_days: 365 - results_disabled: false - results_disabled_ignore: false - results_customize: false - token_view: false - token_update: false - token_delete: false - serial_disabled: false -access: - create: - roles: - - anonymous - - authenticated - users: { } - permissions: { } - view_any: - roles: { } - users: { } - permissions: { } - update_any: - roles: { } - users: { } - permissions: { } - delete_any: - roles: { } - users: { } - permissions: { } - purge_any: - roles: { } - users: { } - permissions: { } - view_own: - roles: { } - users: { } - permissions: { } - update_own: - roles: { } - users: { } - permissions: { } - delete_own: - roles: { } - users: { } - permissions: { } - administer: - roles: { } - users: { } - permissions: { } - test: - roles: { } - users: { } - permissions: { } - configuration: - roles: { } - users: { } - permissions: { } -handlers: - grants_handler: - id: grants_handler - handler_id: grants_handler - label: 'Grants Handler' - notes: '' - status: true - conditions: { } - weight: 0 - settings: - debug: false -variants: { } From e2c73995b60776c84965aff229b615ab4bbe5d17 Mon Sep 17 00:00:00 2001 From: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Date: Thu, 21 Nov 2024 07:09:34 +0200 Subject: [PATCH 51/95] Update configuration (#1574) --- composer.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.lock b/composer.lock index d19ebc8b07..fa0bd8a7d7 100644 --- a/composer.lock +++ b/composer.lock @@ -4638,7 +4638,7 @@ ], "authors": [ { - "name": "Lullabot", + "name": "lullabot", "homepage": "https://www.drupal.org/user/3815489" }, { @@ -4646,7 +4646,7 @@ "homepage": "https://www.drupal.org/user/1288796" }, { - "name": "seanB", + "name": "seanb", "homepage": "https://www.drupal.org/user/545912" } ], @@ -5487,16 +5487,16 @@ }, { "name": "drupal/hdbt", - "version": "6.8.7", + "version": "6.8.9", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-hdbt.git", - "reference": "788a852f02962d5c38be053989b6a18ba00daf0b" + "reference": "01dac91a676828e19a6ace8b6e53a9e2a4c26b7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/788a852f02962d5c38be053989b6a18ba00daf0b", - "reference": "788a852f02962d5c38be053989b6a18ba00daf0b", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/01dac91a676828e19a6ace8b6e53a9e2a4c26b7a", + "reference": "01dac91a676828e19a6ace8b6e53a9e2a4c26b7a", "shasum": "" }, "require": { @@ -5515,10 +5515,10 @@ "Drupal" ], "support": { - "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.8.7", + "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.8.9", "issues": "https://github.com/City-of-Helsinki/drupal-hdbt/issues" }, - "time": "2024-11-18T15:33:25+00:00" + "time": "2024-11-20T13:11:33+00:00" }, { "name": "drupal/hdbt_admin", From 40b22019a7d966b4bc79fc9ac3d8c93d5d954121 Mon Sep 17 00:00:00 2001 From: annadruid <161724181+annadruid@users.noreply.github.com> Date: Thu, 21 Nov 2024 16:12:40 +0200 Subject: [PATCH 52/95] UHF-10629: Added rent income composite to webform print controller (#1578) --- .../src/Controller/GrantsWebformPrintController.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/public/modules/custom/grants_webform_print/src/Controller/GrantsWebformPrintController.php b/public/modules/custom/grants_webform_print/src/Controller/GrantsWebformPrintController.php index 408ab0c616..1942ff75f8 100644 --- a/public/modules/custom/grants_webform_print/src/Controller/GrantsWebformPrintController.php +++ b/public/modules/custom/grants_webform_print/src/Controller/GrantsWebformPrintController.php @@ -13,6 +13,7 @@ use Drupal\grants_orienteering_map\Element\OrienteeringMapComposite; use Drupal\grants_place_of_operation\Element\PlaceOfOperationComposite; use Drupal\grants_premises\Element\PremisesComposite; +use Drupal\grants_premises\Element\RentIncomeComposite; use Drupal\webform\Entity\Webform; use Drupal\webform\WebformTranslationManager; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -209,6 +210,7 @@ private function alterFieldTemplates(array $element, array $translatedFields) : case 'rented_premise_composite': case 'premises_composite': case 'members_composite': + case 'rent_income_composite': case 'club_section_composite': case 'orienteering_map_composite': case 'place_of_operation_composite': @@ -385,6 +387,7 @@ public function getCompositeInputFields(array $element, array $translatedFields) 'club_section_composite' => ClubSectionComposite::getCompositeElements($element), 'orienteering_map_composite' => OrienteeringMapComposite::getCompositeElements($element), 'place_of_operation_composite' => PlaceOfOperationComposite::getCompositeElements($element), + 'rent_income_composite' => RentIncomeComposite::getCompositeElements($element), 'default' => [], }; From 12fea7276a0b715f8c8d3e5d57ee60b03bfda73a Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Fri, 22 Nov 2024 08:33:40 +0200 Subject: [PATCH 53/95] fix: UHF-10711: Form & translation fixes (#1580) * UHF-10711: Form & translation fixes * UHF-10711: Form title + description * UHF-10711: Target group fix. * UHF-10711: Grant type translations. --- conf/cmi/grants_metadata.settings.yml | 16 ++-- ...ebform.iakkaiden_kulttuuri_ja_liikunta.yml | 58 ++++++------- .../language/fi/grants_metadata.settings.yml | 8 ++ .../language/sv/grants_metadata.settings.yml | 8 ++ ...ebform.iakkaiden_kulttuuri_ja_liikunta.yml | 15 ++-- ...ebform.iakkaiden_kulttuuri_ja_liikunta.yml | 84 ++----------------- 6 files changed, 69 insertions(+), 120 deletions(-) diff --git a/conf/cmi/grants_metadata.settings.yml b/conf/cmi/grants_metadata.settings.yml index 1b97e04b44..77ef0300af 100644 --- a/conf/cmi/grants_metadata.settings.yml +++ b/conf/cmi/grants_metadata.settings.yml @@ -291,14 +291,14 @@ third_party_options: 44: 'Development grant' 45: 'Development grant for the Helsinki Model' 46: 'Development grant for basic arts education' - 47: 'Kulttuurin erityisavustus 1' - 48: 'Kulttuurin erityisavustus 2' - 49: 'Nuorison erityisavustus 1' - 50: 'Nuorison erityisavustus 2' - 51: 'Liikunnan erityisavustus 1' - 52: 'Liikunnan erityisavustus 2' - 53: 'Kulttuurin ja vapaa-ajan erityisavustus 1' - 54: 'Kulttuurin ja vapaa-ajan erityisavustus 2' + 47: 'Special grant for culture 1' + 48: 'Special grant for culture 2' + 49: 'Special grant for youth activities 1' + 50: 'Special grant for youth activities 2' + 51: 'Special grant for sports 1' + 52: 'Special grant for sports 2' + 53: 'Special grant for culture and leisure 1' + 54: 'Special grant for culture and leisure 2' langcode: en config_import_ignore: - 53 diff --git a/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml b/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml index 01b851b82b..5ba986ee96 100644 --- a/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml +++ b/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml @@ -2,21 +2,21 @@ title: 'KUVA: Culture grant for advancing cultural activities for the elderly' elements: | 1_hakijan_tiedot: '#title': '1. Applicant details' - '#prev_button_label': 'Previous' - '#next_button_label': 'Next' + '#prev_button_label': Previous + '#next_button_label': Next hakemusprofiili: '#title': 'Retrieved information' prh_markup: - '#markup': 'The information has been retrieved from your own profile.' + '#markup': '

The information has been retrieved from your own profile.

' hakijan_tiedot: - '#title': 'Applicant' + '#title': Applicant contact_person_email_section: '#title': Email contact_markup: - '#markup': 'Provide here a community email address that is actively read. Contact requests related to the grant application, such as requests for further clarification and completion, will be sent to the email address.' + '#markup': '

Provide here a community email address that is actively read. Contact requests related to the grant application, such as requests for further clarification and completion, will be sent to the email address.

' email: '#title': 'Email address' - '#help': 'Provide the email address to which you want the messages and notifications related to this application to be sent and which is actively read.' + '#help': '

Provide the email address to which you want the messages and notifications related to this application to be sent and which is actively read.

' contact_person_section: '#title': 'Contact person for the application' contact_person: @@ -27,19 +27,19 @@ elements: | '#title': Address community_address: '#title': Address - '#help': 'If you want to add, delete or change address information, save the application as a draft and go to maintain the address information in your own data.' + '#help': '

If you want to add, delete or change address information, save the application as a draft and go to maintain the address information in your own data.

' '#community_address_select__title': 'Select the address' tilinumero: '#title': 'Account number' bank_account: '#title': 'Account number' - '#help': 'If you want to add, delete or change account number information, save the application as a draft and go to maintain the account number information in your own data.' + '#help': '

If you want to add, delete or change account number information, save the application as a draft and go to maintain the account number information in your own data.

' '#account_number_select__title': 'Select the account number' '#account_number__title': '' toiminnasta_vastaavat_henkilot: '#title': 'Persons responsible for operations' community_officials: - '#help': 'If you want to add, delete or change people, save the application as a draft and go to maintain the people's information in your own data.' + '#help': "

If you want to add, delete or change people, save the application as a draft and go to maintain the people's information in your own data.

" '#title': 'Persons responsible for operations' '#multiple__add_more_button_label': 'Add person' '#community_officials_select__title': 'Select official' @@ -62,8 +62,8 @@ elements: | '#title': 'Purpose of use' compensation_purpose: '#title': 'Brief description of the purpose(s) of the grant(s) applied for' + '#help': '

Indicate the purpose for which the grant is applied for. If necessary, specify the different uses. Also tell us what is intended to be achieved with the grant and what goals are associated with the activities to be supported.

' '#counter_maximum_message': '%d/5000 characters remaining' - '#help': 'Indicate the purpose for which the grant is applied for. If necessary, specify the different uses. Also tell us what is intended to be achieved with the grant and what goals are associated with the activities to be supported.' other_grants_for_same_purpose: '#title': 'Other grants applied for to be used for the same purpose' info_muut_samaan_tarkoitukseen_myonnetty: @@ -75,7 +75,7 @@ elements: | 0: 'No' myonnetty_avustus: '#title': 'Received grant' - '#multiple__no_items_message': 'No values entered. Add the new grant granted below.' + '#multiple__no_items_message': '

No values entered. Add the new grant granted below.

' '#multiple__add_more_button_label': 'Add received grant' '#element': issuer: @@ -85,8 +85,8 @@ elements: | 5: Foundation '#title': 'Grant issuer' issuer_name: - '#title': 'Issuer''s name' - '#help': 'Which body has granted the grant (e.g. name of the ministry)' + '#title': "Issuer's name" + '#help': '

Which body has granted the grant (e.g. name of the ministry)

' year: '#title': Year '#pattern_error': 'Only numbers' @@ -94,12 +94,12 @@ elements: | '#title': 'Amount of grant granted' purpose: '#title': 'Description of intended use' - '#help': 'Give a brief description, for what purpose has the grant been granted?' + '#help': '

Give a brief description, for what purpose has the grant been granted?

' '#counter_maximum_message': '%d/1000 characters remaining' muut_samaan_tarkoitukseen_haetut_avustukset: '#title': 'Other grants applied for to be used for the same purpose' info_muut_samaan_tarkoitukseen_haettu: - '#markup': "

Indicate here only the grants that have been applied for from somewhere other than the City of Helsinki and for which the decisions have not been made yet.

\r\n\r\n
\r\n
\r\n
An affirmative answer opens a further question
\r\n
\r\n
\r\n" + '#markup': '

Indicate here only the grants that have been applied for from somewhere other than the City of Helsinki and for which the decisions have not been made yet.

An affirmative answer opens a further question
' olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: '#title': 'We have applied for grants from somewhere other than the City of Helsinki' '#options': @@ -107,7 +107,7 @@ elements: | 0: 'No' haettu_avustus_tieto: '#title': 'Add new grant applied for' - '#multiple__no_items_message': 'No values entered. Add a new applied for grant below.' + '#multiple__no_items_message': '

No values entered. Add a new applied for grant below.

' '#multiple__add_more_button_label': 'Add new grant applied for' '#element': issuer: @@ -117,8 +117,8 @@ elements: | 5: Foundation '#title': 'Grant issuer' issuer_name: - '#title': 'Issuer''s name' - '#help': 'Which entity has granted the grant (e.g. name of the ministry)' + '#title': "Issuer's name" + '#help': '

Which entity has granted the grant (e.g. name of the ministry)

' year: '#title': Year '#pattern_error': 'Only numbers' @@ -126,13 +126,15 @@ elements: | '#title': 'The amount of the grant applied for' purpose: '#title': 'Description of intended use' - '#help': 'Give a brief description, for what purpose has the grant been granted?' + '#help': '

Give a brief description, for what purpose has the grant been granted?

' '#counter_maximum_message': '%d/1000 characters remaining' 3_tarkemmat_tiedot: '#title': '3. Information in more detail' + markup: + '#markup': '

Grant decisions for 2024:

  • Sports Sub-committee: 11 April 2024 Section 10

  • Culture and Libraries Sub-committee: 16 April 2024 Section 15

' hankesuunnitelma_radios: '#title': 'Is the 2nd part of the grant awarded in 2024 now being applied for?' - '#help': 'Only answer “yes” to this question if your community already has an ongoing project funded by the same grant and you are applying for additional funding for it.' + '#help': '

Only answer “yes” to this question if your community already has an ongoing project funded by the same grant and you are applying for additional funding for it.

' '#options': 1: 'Yes' 0: 'No' @@ -177,7 +179,7 @@ elements: | haun_painopisteet_section: '#title': '3.2 Emphases of the grant program' haun_painopisteet_ohje: - '#markup': 'Which of the following areas of emphasis of the grant for the promotion of sport and physical activity for the elderly does the project cover?

One or more areas must be implemented in the project. PLEASE NOTE: Only select the areas that you will contribute to in the project in a concrete way.

' + '#markup': '

Which of the following areas of emphasis of the grant for the promotion of sport and physical activity for the elderly does the project cover?

One or more areas must be implemented in the project. PLEASE NOTE: Only select the areas that you will contribute to in the project in a concrete way.

' haun_painopisteet_liikkumis_kehitys: '#title': 'Does the project develop sport and physical activity opportunities or art and cultural activities in the immediate environment / area? How?' '#counter_maximum_message': '%d/1250 characters remaining' @@ -197,8 +199,8 @@ elements: | '#counter_maximum_message': '%d/1250 characters remaining' hankkeen_kohderyhmat_erityisryhmat: '#title': 'Does the project target a special group?' + '#help': '

For which special group? If not implemented, leave the field blank.

' '#counter_maximum_message': '%d/1250 characters remaining' - '#help': 'For which special group? If not implemented, leave the field blank.' hankkeen_kohderyhmat_tavoitus: '#title': 'How will the target groups of the project be reached?' '#counter_maximum_message': '%d/1250 characters remaining' @@ -213,7 +215,7 @@ elements: | '#counter_maximum_message': '%d/1250 characters remaining' hankkeen_kohderyhmat_postinrot: '#title': 'In which postal code area(s) in Helsinki will the project be implemented?' - '#help': 'Please enter up to three (3) postal code areas in the field and separate them with a comma (,).' + '#help': '

Please enter up to three (3) postal code areas in the field and separate them with a comma (,).

' hankkeen_kohderyhmat_miksi_alue: '#title': 'Why is/are that particular area(s) selected?' '#counter_maximum_message': '%d/1250 characters remaining' @@ -253,8 +255,8 @@ elements: | '#title': 'How have the activities reached the participants in relation to the goals?' '#counter_maximum_message': '%d/1250 characters remaining' arviointi_avustus_kaytto: - '#title': 'Is the grant for the first project period expected to be used by the deadline of 31 May 2025? If not, please explain the reasons that led to this.' '#help': '

Grant conditions, section 10e: “A grant that has been granted must be returned to the City of Helsinki, the grant has not been used within the period as set down in the grant decision.”

' + '#title': 'Is the grant for the first project period expected to be used by the deadline of 31 May 2025? If not, please explain the reasons that led to this.' '#counter_maximum_message': '%d/1250 characters remaining' 4_talousarvio: '#title': '4. Planned budget' @@ -304,10 +306,10 @@ elements: | actions: '#submit__label': Submit '#draft__label': 'Save as draft' - '#wizard_prev__label': 'Previous' - '#wizard_next__label': 'Next' - '#preview_prev__label': 'Previous' - '#preview_next__label': 'Preview' + '#wizard_prev__label': Previous + '#wizard_next__label': Next + '#preview_prev__label': Previous + '#preview_next__label': Preview '#delete__label': 'Delete unfinished' settings: wizard_confirmation_label: '7. Complete' diff --git a/conf/cmi/language/fi/grants_metadata.settings.yml b/conf/cmi/language/fi/grants_metadata.settings.yml index 6acfc02f84..a13f128953 100644 --- a/conf/cmi/language/fi/grants_metadata.settings.yml +++ b/conf/cmi/language/fi/grants_metadata.settings.yml @@ -69,4 +69,12 @@ third_party_options: 44: Kehittämisavustus 45: 'Helsingin mallin kehittämisavustus' 46: 'Taiteen perusopetuksen kehittämisavustus' + 47: 'Kulttuurin erityisavustus 1' + 48: 'Kulttuurin erityisavustus 2' + 49: 'Nuorison erityisavustus 1' + 50: 'Nuorison erityisavustus 2' + 51: 'Liikunnan erityisavustus 1' + 52: 'Liikunnan erityisavustus 2' + 53: 'Kulttuurin ja vapaa-ajan erityisavustus 1' + 54: 'Kulttuurin ja vapaa-ajan erityisavustus 2' langcode: fi diff --git a/conf/cmi/language/sv/grants_metadata.settings.yml b/conf/cmi/language/sv/grants_metadata.settings.yml index a5e6eb9a86..b4644c778c 100644 --- a/conf/cmi/language/sv/grants_metadata.settings.yml +++ b/conf/cmi/language/sv/grants_metadata.settings.yml @@ -69,4 +69,12 @@ third_party_options: 44: Utvecklingsunderstöd 45: 'Utvecklingsunderstöd för Helsingforsmodellen' 46: 'Utvecklingsunderstöd för grundläggande konstundervisning' + 47: 'Specialunderstöd för kultur 1' + 48: 'Specialunderstöd för kultur 2' + 49: 'Specialunderstöd för ungdomsverksamhet 1' + 50: 'Specialunderstöd för ungdomsverksamhet 2' + 51: 'Specialunderstöd för idrott 1' + 52: 'Specialunderstöd för idrott 2' + 53: 'Specialunderstöd för kultur och fritid 1' + 54: 'Specialunderstöd för kultur och fritid 2' langcode: sv diff --git a/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml b/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml index c7e7007890..9fa12188e0 100644 --- a/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml +++ b/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml @@ -56,14 +56,14 @@ elements: | '#title': Understöd subventions: '#title': 'Typ av stöd' - kayttotarkoitus: - '#title': 'Användningsän damål' grants_compensations_information: '#markup': '

Ansök alltid endast om en typ av understöd åt gången.

' + kayttotarkoitus: + '#title': 'Användningsän damål' compensation_purpose: '#title': 'En kort beskrivning av användningsändamålet för det/de understöd som ansöks' + '#help': '

Ange för vilket ändamål understödet ansöks och vid behov specificera de olika ändamålen. Ange också vad understödet är avsett för och vilka mål som är relaterade till den understödda verksamheten.

' '#counter_maximum_message': '%d/5000 tecken kvar' - '#help': 'Ange för vilket ändamål understödet ansöks och vid behov specificera de olika ändamålen. Ange också vad understödet är avsett för och vilka mål som är relaterade till den understödda verksamheten.' other_grants_for_same_purpose: '#title': 'Övriga understöd som beviljats för samma ändamål' info_muut_samaan_tarkoitukseen_myonnetty: @@ -130,6 +130,8 @@ elements: | '#counter_maximum_message': '%d/1000 tecken kvar' 3_tarkemmat_tiedot: '#title': '3. Mer detaljerad information' + markup: + '#markup': '

Beslut om understöd för 2024:

  • Idrottssektionen: 11.4.2024 §10

  • Kultur- och bibliotekssektionen: 16.4.2024 §15

' hankesuunnitelma_radios: '#title': 'Ansöker du nu om den andra delen av ett tvåårigt understöd som beviljades 2024?' '#help': '

Svara bara ”ja” på den här frågan om din sammanslutning redan har ett pågående projekt som finansieras med samma understöd och du ansöker om fortsatt finansiering.

' @@ -177,7 +179,7 @@ elements: | haun_painopisteet_section: '#title': '3.2 Tyngdpunkter för ansökan' haun_painopisteet_ohje: - '#markup': '

Projektet ska arbeta för en eller flera tyngdpunkter. OBS! Välj bara de tyngdpunkter som ni kommer att bidra till på ett konkret sätt genom projektet.

' + '#markup': '

Vilken av följande tyngdpunkter för understödet för främjande av idrott hos äldre är projektet inriktat på?

Projektet ska arbeta för en eller flera tyngdpunkter. OBS! Välj bara de tyngdpunkter som ni kommer att bidra till på ett konkret sätt genom projektet.

' haun_painopisteet_liikkumis_kehitys: '#title': 'Bidrar projektet till att utveckla möjligheter till idrott eller konst- och kulturverksamhet i närområdet/regionalt? På vilket sätt?' '#counter_maximum_message': '%d/1250 tecken kvar' @@ -197,8 +199,8 @@ elements: | '#counter_maximum_message': '%d/1250 tecken kvar' hankkeen_kohderyhmat_erityisryhmat: '#title': 'Riktar sig projektet till någon särskild grupp?' + '#help': '

Till vilken särskild grupp? Om svaret är ”nej”, lämna tomt.

' '#counter_maximum_message': '%d/1250 tecken kvar' - '#help': 'Till vilken särskild grupp? Om svaret är ”nej”, lämna tomt.' hankkeen_kohderyhmat_tavoitus: '#title': 'Hur ska ni nå ut med projektet till målgrupperna?' '#counter_maximum_message': '%d/1250 tecken kvar' @@ -213,7 +215,7 @@ elements: | '#counter_maximum_message': '%d/1250 tecken kvar' hankkeen_kohderyhmat_postinrot: '#title': 'Inom vilket/vilka postnummerområden i Helsingfors kommer projektet att genomföras?' - '#help': 'Ange upp till tre (3) postnummerområden och separera dem med kommatecken (,).' + '#help': '

Ange upp till tre (3) postnummerområden och separera dem med kommatecken (,).

' hankkeen_kohderyhmat_miksi_alue: '#title': 'Varför har ni valt just det/de områdena?' '#counter_maximum_message': '%d/1250 tecken kvar' @@ -227,7 +229,6 @@ elements: | '#counter_maximum_message': '%d/2500 tecken kvar' hankkeen_riskit_vakiinnuttaminen: '#title': 'Är den planerade verksamheten för projektet avsedd att bli en permanent del av den grundläggande verksamheten hos den sökande/en annan aktör efter projektet?' - '#help': '

Om ja, beskriv i textrutan hur det här kommer att ske, lämna annars tomt.

' '#counter_maximum_message': '%d/2500 tecken kvar' hankkeen_valiarviointi_section: '#title': '3.5 Mellanutvärderin g av tvååriga projekt' diff --git a/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml b/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml index 7b5623302c..dd26699e6f 100644 --- a/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml +++ b/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml @@ -15,7 +15,7 @@ third_party_settings: registered_community: registered_community applicationTypeTerms: 62: '62' - applicationTargetGroup: '22' + applicationTargetGroup: '75' applicationOpen: null applicationClose: null applicationActingYearsType: fixed @@ -36,8 +36,8 @@ uid: 1 template: false archive: false id: iakkaiden_kulttuuri_ja_liikunta -title: 'Kulttuurin avustukset iäkkäiden ihmisten kulttuuritoiminnan edistämiseksi' -description: '

Kulttuurin ja vapaa-ajan erillisavustushakemus: Ikääntyneiden liikkumisen ja kulttuuritoiminnan avustus

' +title: 'KUVA: avustushakemus iäkkäiden ihmisten liikkumisen ja kulttuuritoiminnan edistämiseksi' +description: '

KUVAERILLIS

' categories: - Kehityksessä elements: |- @@ -603,6 +603,9 @@ elements: |- tarkemmat_tiedot_section: '#type': webform_section '#title': ' ' + markup: + '#type': webform_markup + '#markup': '

Vuoden 2024 avustuspäätökset:

  • Liikuntajaosto: 11.4.2024 §10

  • Kulttuuri- ja kirjastojaosto: 16.4.2024 §15

' hankesuunnitelma_radios: '#type': radios '#title': 'Haetaanko nyt vuonna 2024 myönnetyn kaksivuotisen avustuksen 2. osaa?' @@ -1359,78 +1362,5 @@ handlers: conditions: { } weight: null settings: - id: grants_handler - handler_id: null - label: 'Grants Handler' - notes: '' - status: true - conditions: { } - weight: null - settings: - id: grants_handler - label: 'Grants Handler' - notes: '' - handler_id: null - status: 1 - conditions: { } - weight: '' - settings: - id: grants_handler - handler_id: null - label: 'Grants Handler' - notes: '' - status: true - conditions: { } - weight: null - settings: - id: grants_handler - handler_id: null - label: 'Grants Handler' - notes: '' - status: true - conditions: { } - weight: null - settings: - id: grants_handler - handler_id: null - label: 'Grants Handler' - notes: '' - status: true - conditions: { } - weight: null - settings: - id: grants_handler - handler_id: null - label: 'Grants Handler' - notes: '' - status: true - conditions: { } - weight: null - settings: - id: grants_handler - handler_id: null - label: 'Grants Handler' - notes: '' - status: true - conditions: { } - weight: null - settings: - id: grants_handler - handler_id: null - label: 'Grants Handler' - notes: '' - status: true - conditions: { } - weight: null - settings: - id: grants_handler - handler_id: grants_handler - label: 'Grants Handler' - notes: '' - status: true - conditions: { } - weight: 0 - settings: - debug: false - debug: false + debug: false variants: { } From 89f6c496cff591afe077341e7dfed95f44dc4a17 Mon Sep 17 00:00:00 2001 From: Tero Elonen <2276077+teroelonen@users.noreply.github.com> Date: Fri, 22 Nov 2024 15:09:28 +0200 Subject: [PATCH 54/95] UHF-10571: Modify the order where questions are asked in budget_cost_static webform element (#1575) --- .../src/Element/GrantsBudgetCostStatic.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/modules/custom/grants_budget_components/src/Element/GrantsBudgetCostStatic.php b/public/modules/custom/grants_budget_components/src/Element/GrantsBudgetCostStatic.php index 1b5161b2fb..654cde77b6 100644 --- a/public/modules/custom/grants_budget_components/src/Element/GrantsBudgetCostStatic.php +++ b/public/modules/custom/grants_budget_components/src/Element/GrantsBudgetCostStatic.php @@ -92,7 +92,6 @@ public static function getFieldNames(): array { $tOpts = ['context' => 'grants_budget_components']; return [ "salaries" => t("Salaries (€)", [], $tOpts), - "personnelSideCosts" => t("Personnel costs from salaries and fees (approx. 30%) (€)", [], $tOpts), "personnelSocialSecurityCosts" => t("personnelSocialSecurityCosts (€)", [], $tOpts), "rentSum" => t("Rents (€)", [], $tOpts), "materials" => t("Materials (€)", [], $tOpts), @@ -119,6 +118,7 @@ public static function getFieldNames(): array { "netCosts" => t("netCosts (€)", [], $tOpts), "performerFees" => t("Salaries and fees for performers and artists (€)", [], $tOpts), "otherFees" => t("Other salaries and fees (production, technology, etc.) (€)", [], $tOpts), + "personnelSideCosts" => t("Personnel costs from salaries and fees (approx. 30%) (€)", [], $tOpts), "generalCosts" => t("generalCosts (€)", [], $tOpts), "permits" => t("permits (€)", [], $tOpts), "setsAndCostumes" => t("setsAndCostumes (€)", [], $tOpts), From d6eb84465b4abffeed8e72aa9b9411d8e8c902dd Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Mon, 25 Nov 2024 06:35:58 +0200 Subject: [PATCH 55/95] feat: UHF-10693: Add copyable list for application delete function + new Event for sending to integration. (#1576) --- .../src/Form/DeleteApplicationsForm.php | 25 +- .../grants_events/src/EventsService.php | 24 +- .../grants_handler.services.yml | 3 +- .../src/ApplicationUploaderService.php | 33 ++- .../grants_handler/src/EventsService.php | 247 ------------------ 5 files changed, 73 insertions(+), 259 deletions(-) delete mode 100644 public/modules/custom/grants_handler/src/EventsService.php diff --git a/public/modules/custom/grants_admin_applications/src/Form/DeleteApplicationsForm.php b/public/modules/custom/grants_admin_applications/src/Form/DeleteApplicationsForm.php index 79d0071ec1..df10408cf0 100644 --- a/public/modules/custom/grants_admin_applications/src/Form/DeleteApplicationsForm.php +++ b/public/modules/custom/grants_admin_applications/src/Form/DeleteApplicationsForm.php @@ -189,7 +189,12 @@ public function buildForm(array $form, FormStateInterface $form_state): array { // Build the application listing form elements. if ($uuid || $businessId) { - $this->buildApplicationList($uuid, $businessId, $appEnv, $type, $status, $form_state, $form); + try { + $this->buildApplicationList($uuid, $businessId, $appEnv, $type, $status, $form_state, $form); + } + catch (\Throwable $e) { + $this->messenger()->addError($e->getMessage()); + } } $form['actions']['delete_selected'] = [ @@ -365,6 +370,8 @@ private function deleteDraftDocuments(array $documents): void { * The form state. * @param array $form * The form. + * + * @throws \Drupal\helfi_helsinki_profiili\TokenExpiredException */ private function buildApplicationList( mixed $uuid, @@ -384,6 +391,13 @@ private function buildApplicationList( return; } + // Extract the transaction_id values and join them into a string. + $transactionIds = array_map(function ($document) { + return $document->getTransactionId(); + }, $documents); + + $applicationNumberList = implode(',', $transactionIds); + $form_state->setStorage(['documents' => $documents]); $documentsByType = $this->sortDocuments($documents); @@ -413,6 +427,15 @@ private function buildApplicationList( ]; } } + + // Add the application numbers list to a form element. + $form['appData']['application_numbers'] = [ + '#type' => 'textarea', + '#title' => $this->t('Application numbers in copyable list.'), + '#value' => $applicationNumberList, + '#description' => $this->t('Total number of results: @count', ['@count' => count($transactionIds)]), + '#disabled' => TRUE, + ]; } catch (AtvDocumentNotFoundException | AtvFailedToConnectException | GuzzleException $e) { $this->messenger()->addError('Failed fetching applications.'); diff --git a/public/modules/custom/grants_events/src/EventsService.php b/public/modules/custom/grants_events/src/EventsService.php index 8e88fd2f7d..8ffa9df10c 100644 --- a/public/modules/custom/grants_events/src/EventsService.php +++ b/public/modules/custom/grants_events/src/EventsService.php @@ -7,6 +7,7 @@ use Drupal\Core\Logger\LoggerChannelInterface; use Drupal\grants_handler\DebuggableTrait; use Drupal\grants_metadata\AtvSchema; +use Drupal\helfi_atv\AtvDocument; use GuzzleHttp\Client; use GuzzleHttp\Exception\GuzzleException; use Ramsey\Uuid\Uuid; @@ -67,6 +68,7 @@ class EventsService { 'MESSAGE_READ' => 'MESSAGE_READ', 'MESSAGE_RESEND' => 'MESSAGE_RESEND', 'HANDLER_ATT_OK' => 'HANDLER_ATT_OK', + 'HANDLER_SEND_INTEGRATION' => 'HANDLER_SEND_INTEGRATION', 'HANDLER_ATT_DELETE' => 'HANDLER_ATT_DELETE', 'HANDLER_RESEND_APP' => 'HANDLER_RESEND_APP', 'HANDLER_APP_COPIED' => 'HANDLER_APP_COPIED', @@ -139,7 +141,7 @@ public function logEvent( ): ?array { if (empty($eventData)) { - $eventData = self::getEventData($eventType, $applicationNumber, $eventDescription, $eventTarget); + $eventData = $this->getEventData($eventType, $applicationNumber, $eventDescription, $eventTarget); } $eventDataJson = Json::encode($eventData); @@ -212,7 +214,7 @@ public function filterEvents(array $events, string $typeKey): array { * @param string $eventDescription * Event description. * @param string $eventTarget - * Eent target. + * Event target. * * @return array * Event data in array. @@ -245,4 +247,22 @@ public function getEventData(string $eventType, string $applicationNumber, strin return $eventData; } + /** + * Add new event to application document. + * + * @param \Drupal\helfi_atv\AtvDocument $document + * Document to be updated. + * @param array $eventData + * Event data to be added. + */ + public function addNewEventForApplication(AtvDocument &$document, array $eventData): void { + $documentContent = $document->getContent(); + $documentEvents = $documentContent['events'] ?? []; + $documentEvents[] = $eventData; + $documentContent['events'] = $documentEvents; + + $document->setContent($documentContent); + + } + } diff --git a/public/modules/custom/grants_handler/grants_handler.services.yml b/public/modules/custom/grants_handler/grants_handler.services.yml index 12ba9cd068..103f38847d 100644 --- a/public/modules/custom/grants_handler/grants_handler.services.yml +++ b/public/modules/custom/grants_handler/grants_handler.services.yml @@ -157,7 +157,8 @@ services: '@helfi_helsinki_profiili.userdata', '@grants_attachments.attachment_fixer_service', '@current_user', - '@database' + '@database', + '@grants_events.events_service' ] grants_handler.application_access_handler: diff --git a/public/modules/custom/grants_handler/src/ApplicationUploaderService.php b/public/modules/custom/grants_handler/src/ApplicationUploaderService.php index 9add608ed5..e6fec073de 100644 --- a/public/modules/custom/grants_handler/src/ApplicationUploaderService.php +++ b/public/modules/custom/grants_handler/src/ApplicationUploaderService.php @@ -15,6 +15,7 @@ use Drupal\Core\StringTranslation\StringTranslationTrait; use Drupal\Core\TypedData\TypedDataInterface; use Drupal\grants_attachments\AttachmentFixerService; +use Drupal\grants_events\EventsService; use Drupal\grants_metadata\AtvSchema; use Drupal\helfi_atv\AtvDocument; use Drupal\helfi_atv\AtvService; @@ -83,6 +84,7 @@ public function __construct( private readonly AttachmentFixerService $attachmentFixerService, private readonly AccountInterface $currentUser, private readonly Connection $database, + private readonly EventsService $eventsService, ) { $this->logger = $this->loggerChannelFactory->get('application_uploader_service'); @@ -185,6 +187,7 @@ public function handleApplicationUploadToAtv( * @throws \Drupal\helfi_atv\AtvFailedToConnectException * @throws \GuzzleHttp\Exception\GuzzleException * @throws \Drupal\helfi_helsinki_profiili\TokenExpiredException + * @throws \Drupal\grants_events\EventException */ public function handleApplicationUploadViaIntegration( TypedDataInterface $applicationData, @@ -199,6 +202,25 @@ public function handleApplicationUploadViaIntegration( * for some reason. */ $updatedDocumentFromAtv = $this->handleApplicationUploadToAtv($applicationData, $applicationNumber, $submittedFormData); + + // Create new saveid before sending data to integration, + // so we can add it to event data. + $newSaveId = $this->logSubmissionSaveid( + NULL, + $applicationNumber, + $this->helfiHelsinkiProfiiliUserdata->getUserData() + ); + + // Add new event for sending it to integration. + $this->eventsService->addNewEventForApplication( + $updatedDocumentFromAtv, + $this->eventsService->getEventData( + $this->eventsService->getEventTypes()['HANDLER_SEND_INTEGRATION'], + $applicationNumber, + 'Send application to integration.', + $newSaveId + )); + $myJSON = Json::encode($updatedDocumentFromAtv->getContent()); // No matter what the debug value is, we do NOT log json in PROD. @@ -232,12 +254,8 @@ public function handleApplicationUploadViaIntegration( // Set application number to meta as well to enable better searches. $headers['X-hki-applicationNumber'] = $applicationNumber; - // Set new saveid and save it to db. - $headers['X-hki-saveId'] = $this->logSubmissionSaveid( - NULL, - $applicationNumber, - $this->helfiHelsinkiProfiiliUserdata->getUserData() - ); + // Set new saveid to header. + $headers['X-hki-saveId'] = $newSaveId; $res = $this->httpClient->post($this->endpoint, [ 'auth' => [ @@ -335,14 +353,13 @@ public function logSubmissionSaveid( 'saveid' => $saveId, 'uid' => $this->currentUser->id(), 'user_uuid' => $userData['sub'] ?? '', - 'timestamp' => (string) (new Time)->getRequestTime(), + 'timestamp' => (string) (new Time())->getRequestTime(), ]; $query = $this->database->insert(ApplicationHelpers::TABLE, $fields); $query->fields($fields)->execute(); return $saveId; - } } diff --git a/public/modules/custom/grants_handler/src/EventsService.php b/public/modules/custom/grants_handler/src/EventsService.php deleted file mode 100644 index 64e201a3b9..0000000000 --- a/public/modules/custom/grants_handler/src/EventsService.php +++ /dev/null @@ -1,247 +0,0 @@ - '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_handler\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_handler\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; - } - -} From d7ac5570ba36001f75ecd58477c98f6543debbec Mon Sep 17 00:00:00 2001 From: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Date: Mon, 25 Nov 2024 06:36:46 +0200 Subject: [PATCH 56/95] Update configuration (#1579) --- composer.lock | 56 ++++++++++++++++++++++++++------------------------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/composer.lock b/composer.lock index fa0bd8a7d7..7cfdef1fc1 100644 --- a/composer.lock +++ b/composer.lock @@ -3112,16 +3112,16 @@ }, { "name": "drupal/core", - "version": "10.3.8", + "version": "10.3.9", "source": { "type": "git", "url": "https://github.com/drupal/core.git", - "reference": "4006024a8dd7c9976fad0a2af7c9034d120c8e44" + "reference": "42a6516491b4793158542a2326dc6ad1fe2aa5bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core/zipball/4006024a8dd7c9976fad0a2af7c9034d120c8e44", - "reference": "4006024a8dd7c9976fad0a2af7c9034d120c8e44", + "url": "https://api.github.com/repos/drupal/core/zipball/42a6516491b4793158542a2326dc6ad1fe2aa5bd", + "reference": "42a6516491b4793158542a2326dc6ad1fe2aa5bd", "shasum": "" }, "require": { @@ -3270,13 +3270,13 @@ ], "description": "Drupal is an open source content management platform powering millions of websites and applications.", "support": { - "source": "https://github.com/drupal/core/tree/10.3.8" + "source": "https://github.com/drupal/core/tree/10.3.9" }, - "time": "2024-11-12T09:52:10+00:00" + "time": "2024-11-20T17:59:45+00:00" }, { "name": "drupal/core-composer-scaffold", - "version": "10.3.8", + "version": "10.3.9", "source": { "type": "git", "url": "https://github.com/drupal/core-composer-scaffold.git", @@ -3320,7 +3320,7 @@ "drupal" ], "support": { - "source": "https://github.com/drupal/core-composer-scaffold/tree/10.3.8" + "source": "https://github.com/drupal/core-composer-scaffold/tree/10.3.9" }, "time": "2024-08-22T14:31:34+00:00" }, @@ -5487,16 +5487,16 @@ }, { "name": "drupal/hdbt", - "version": "6.8.9", + "version": "6.8.10", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-hdbt.git", - "reference": "01dac91a676828e19a6ace8b6e53a9e2a4c26b7a" + "reference": "2427bb6c2988c157285e685308e16f0c66e8d5e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/01dac91a676828e19a6ace8b6e53a9e2a4c26b7a", - "reference": "01dac91a676828e19a6ace8b6e53a9e2a4c26b7a", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/2427bb6c2988c157285e685308e16f0c66e8d5e1", + "reference": "2427bb6c2988c157285e685308e16f0c66e8d5e1", "shasum": "" }, "require": { @@ -5515,10 +5515,10 @@ "Drupal" ], "support": { - "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.8.9", + "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.8.10", "issues": "https://github.com/City-of-Helsinki/drupal-hdbt/issues" }, - "time": "2024-11-20T13:11:33+00:00" + "time": "2024-11-22T12:52:59+00:00" }, { "name": "drupal/hdbt_admin", @@ -5616,16 +5616,16 @@ }, { "name": "drupal/helfi_api_base", - "version": "2.7.15", + "version": "2.7.17", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base.git", - "reference": "bfada1ee33120497e8dde6dbde201320f41e2dfc" + "reference": "d5d46f30b9ec1ccac5b5bac130097454232e35a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-api-base/zipball/bfada1ee33120497e8dde6dbde201320f41e2dfc", - "reference": "bfada1ee33120497e8dde6dbde201320f41e2dfc", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-api-base/zipball/d5d46f30b9ec1ccac5b5bac130097454232e35a8", + "reference": "d5d46f30b9ec1ccac5b5bac130097454232e35a8", "shasum": "" }, "require": { @@ -5647,7 +5647,9 @@ "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", "dg/bypass-finals": "^1.0", "donatj/mock-webserver": "dev-master", - "drupal/coder": "^8.3" + "drupal/coder": "^8.3", + "drupal/elasticsearch_connector": "^8.0@alpha", + "drupal/search_api": "^1.0" }, "type": "drupal-module", "license": [ @@ -5655,10 +5657,10 @@ ], "description": "Helfi - API Base", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/tree/2.7.15", + "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/tree/2.7.17", "issues": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/issues" }, - "time": "2024-11-08T08:31:53+00:00" + "time": "2024-11-22T08:27:20+00:00" }, { "name": "drupal/helfi_atv", @@ -5929,16 +5931,16 @@ }, { "name": "drupal/helfi_platform_config", - "version": "4.7.5", + "version": "4.8.0", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config.git", - "reference": "760d470ec819fcc7749d77d319b904a42812ac85" + "reference": "d93cdc55e761665a2bb68503f466ab376a745c10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/760d470ec819fcc7749d77d319b904a42812ac85", - "reference": "760d470ec819fcc7749d77d319b904a42812ac85", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/d93cdc55e761665a2bb68503f466ab376a745c10", + "reference": "d93cdc55e761665a2bb68503f466ab376a745c10", "shasum": "" }, "require": { @@ -6065,10 +6067,10 @@ ], "description": "HELfi platform config", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.7.5", + "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.8.0", "issues": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/issues" }, - "time": "2024-11-19T09:09:39+00:00" + "time": "2024-11-20T11:35:52+00:00" }, { "name": "drupal/helfi_proxy", From 270e8de6fbe4a3c6985a5cdd0d034cf10327cf15 Mon Sep 17 00:00:00 2001 From: Santeri Hurnanen Date: Wed, 27 Nov 2024 07:25:38 +0200 Subject: [PATCH 57/95] UHF-10883 (#1581) * UHF-10883: Change compensation_explanation * UHF-10883: Change liikuntatiloista_maksetut_vuokrat_fieldset * UHF-10883: Change lajijaostot_info * UHF-10883: Change ClubSectionComposite component * UHF-10883: Fix club-section styles * UHF-10883: Change lajijaostot_helsinkilaisille_aktiiviharrastajille --- ...bform.liikunta_toiminta_ja_tilankaytto.yml | 10 +++-- ...bform.liikunta_toiminta_ja_tilankaytto.yml | 10 +++-- ...bform.liikunta_toiminta_ja_tilankaytto.yml | 12 +++--- .../src/Element/ClubSectionComposite.php | 23 ++++++----- .../grants_club_section/translations/fi.po | 40 ++++++++++--------- .../grants_club_section/translations/sv.po | 22 +++++----- .../hdbt_subtheme/dist/css/styles.min.css | 2 +- .../custom/hdbt_subtheme/package-lock.json | 9 +++-- .../forms/webform/_form-elements.scss | 4 ++ 9 files changed, 77 insertions(+), 55 deletions(-) diff --git a/conf/cmi/language/en/webform.webform.liikunta_toiminta_ja_tilankaytto.yml b/conf/cmi/language/en/webform.webform.liikunta_toiminta_ja_tilankaytto.yml index 0761b948d3..4e2ce23982 100644 --- a/conf/cmi/language/en/webform.webform.liikunta_toiminta_ja_tilankaytto.yml +++ b/conf/cmi/language/en/webform.webform.liikunta_toiminta_ja_tilankaytto.yml @@ -74,7 +74,7 @@ elements: | '#markup': 'Provide a report on the use of the grant received from the City of Helsinki. A report on the use of the grant must be drawn up for the grant concerning the previous accounting period. A report on the use should not be drawn up for the current accounting period. Providing the report on the use is a prerequisite for receiving the next grant. If no report on the use is provided, the grant will not be awarded or paid. A grant awarded may be recovered if the use of the previous grant has not been satisfactorily reported.' compensation_explanation: '#title': 'Report on the use of the grant' - '#help': 'The report on the use must briefly describe how the received grant has been used. The recipient must arrange its accounting in such a way that it is possible to monitor the use of the grant. For example, if a community has received a lease grant, the profit and loss account in the financial statements must show the grant in both income and expenses. Further information on the use of the grant can also be written in a separate attachment, which can be returned under Report on the use.' + '#help': '

The report on the use must briefly describe how the received grant has been used. The recipient must arrange its accounting in such a way that it is possible to monitor the use of the grant. Further information on the use of the grant can also be written in a separate attachment, which can be returned under Report on the use.

' '#counter_maximum_message': '%d/5000 characters remaining' kayttotarkoitus: '#title': 'Purpose of use' @@ -118,7 +118,7 @@ elements: | tilankayttoavustus: '#title': 'Sports facility usage grant' maksetut_vuokrat_info: - '#markup': "

Summary of rent paid by the club/association for regular training slots elsewhere than in Sports Services’ own facilities, in the previous calendar year between 1 January and 31 December. The Rents paid for sports facilities section is mandatory if you are applying for a facility use grant.

\r\n" + '#markup': '

Summary of rent paid by the club/association for regular training slots elsewhere than in Sports Services’ own facilities, in the previous calendar year between 1 January and 31 December. The Rents paid for sports facilities section is mandatory if you are applying for a facility use grant.

' liikuntatiloista_maksetut_vuokrat_fieldset: '#title': 'Rent paid for sports facilities' tuntimaara_yhteensa: @@ -126,7 +126,8 @@ elements: | vuokrat_yhteensa: '#title': 'Total / EUR' seuraavalle_vuodelle_suunniteltu_muutos_tilojen_kaytossa_tunnit_: - '#title': 'Change in the use of facilities planned for the next year, +/- hours and reason' + '#title': 'Significant change in the use of facilities planned for the next year, +/- hours and reason' + '#help': '

It is possible to include significant changes in the club’s use of sports facilities over the application period for consideration in the amount of the facility usage grant at our discretion. The following are considered significant changes: club mergers, a section(s) joining the club or leaving the club, renting or purchasing a new sports facility (attach the rental agreement to the application) or relinquishing control over or selling a sports facility.

' seuran_yhdistyksen_saamat_vuokrat_edellisen_kalenterivuoden_ajal: '#title': 'Rent received by the club/association in the previous calendar year between 1 January and 31 December' '#description': 'If the club/association receives rental income for its premises, report it here' @@ -224,8 +225,9 @@ elements: | '#help': 'In addition to the VOK 1 training arranged by regional sports organisations, the calculation accounts for the number of instructors and coaches who have completed a sports federation’s coach and instructor training that are at least equal in terms of level and content, or who have completed a basic qualification in sports instruction (vocational college), a degree in sports instruction (university of applied sciences) or a master’s degree in sports sciences (sports pedagogy or sports biology).' lajijaostot_helsinkilaisille_aktiiviharrastajille: '#title': 'Operating sport divisions for Helsinki residents' + '#help': '

In this section, a single active member can be reported more than once, if the member meets the definition of an active member in several different sport divisions.

' lajijaostot_info: - '#markup': "

List the regular guided sports activities organised by the club/association by sport. Enter here the number of active members from Helsinki in the previous year, by sport, as well as their realized training hours.

\r\n" + '#markup': '

List the regular guided sports activities organised by the club/association by sport. Enter here the number of active members from Helsinki in the previous year, by sport, as well as their realized training hours by age group.

' club_section: '#multiple__add_more_button_label': 'Add new sport' '#multiple__item_label': 'sport' diff --git a/conf/cmi/language/sv/webform.webform.liikunta_toiminta_ja_tilankaytto.yml b/conf/cmi/language/sv/webform.webform.liikunta_toiminta_ja_tilankaytto.yml index 2acd6606d1..c8edc867e5 100644 --- a/conf/cmi/language/sv/webform.webform.liikunta_toiminta_ja_tilankaytto.yml +++ b/conf/cmi/language/sv/webform.webform.liikunta_toiminta_ja_tilankaytto.yml @@ -79,7 +79,7 @@ elements: | '#markup': 'Ge en redovisning om understödet som fåtts från Helsingfors stad. Redovisningen görs om understödet som beviljats för den senaste avslutade räkenskapsperioden. Redovisning görs inte om den innevarande räkenskapsperioden. Redovisningen krävs för att få ett nytt understöd. Om en redovisning inte görs, kommer ett understöd inte att beviljas eller betalas ut. Det beviljade understödet kan återkrävas om användningen av det tidigare understödet inte har redogjorts för på ett tillfredsställande sätt.' compensation_explanation: '#title': 'Redovisning om användningen av understödet' - '#help': 'I redovisningen ska det kortfattat anges hur det beviljade understödet har använts. Understödstagaren ska ordna sin bokföring så att användningen av understödet kan följas där. Om samfundet till exempel har fått hyresunderstöd ska det av resultaträkningen i bokslutet framgå både intäkter och utgifter vad gäller understödet. Mer information om användningen av understödet kan också skrivas i en separat bilaga som kan lämnas som Redovisning-bilaga.' + '#help': '

I redovisningen ska det kortfattat anges hur det beviljade understödet har använts. Understödstagaren ska ordna sin bokföring så att användningen av understödet kan följas där. Mer information om användningen av understödet kan också skrivas i en separat bilaga som kan lämnas som Redovisning-bilaga.

' '#counter_maximum_message': '%d/5000 tecken kvar' kayttotarkoitus: '#title': 'Användningsända­mål' @@ -123,7 +123,7 @@ elements: | tilankayttoavustus: '#title': 'Understöd för användning av idrottslokaler' maksetut_vuokrat_info: - '#markup': "

Sammanställning av de hyror som föreningen har betalatför regelbundna träningsskift förutom idrottstjänstens egna lokaler under föregående kalenderår 1.1. - 31.12.3. Avsnittet Hyror för idrottsanläggningar är obligatoriskt om du ansöker om understöd för användning av idrottslokaler.

\r\n" + '#markup': '

Sammanställning av de hyror som föreningen har betalatför regelbundna träningsskift förutom idrottstjänstens egna lokaler under föregående kalenderår 1.1. - 31.12.3. Avsnittet Hyror för idrottsanläggningar är obligatoriskt om du ansöker om understöd för användning av idrottslokaler.

' liikuntatiloista_maksetut_vuokrat_fieldset: '#title': 'Hyror betalda för idrottslokaler' tuntimaara_yhteensa: @@ -131,7 +131,8 @@ elements: | vuokrat_yhteensa: '#title': 'Totalt / EUR' seuraavalle_vuodelle_suunniteltu_muutos_tilojen_kaytossa_tunnit_: - '#title': 'Planerad ändring i användning av lokaler nästa år, +/- timmar och skäl' + '#title': 'Planerad väsentlig ändring i användning av lokaler nästa år, +/- timmar och skäl' + '#help': '

I beloppet av understödet för lokalanvändning kan enligt prövning beaktas väsentliga förändringar i föreningens användning av idrottslokaler rörande ansökningsåret. Med väsentliga förändringar avses: sammanslagning av föreningar, anslutning av en sektion eller sektioner till föreningen, avgång av en sektion eller sektioner från föreningen, en ny idrottslokal som hyrs av föreningen (hyresavtalet för lokalen i fråga ska bifogas ansökan) eller avstående från en idrottslokal som förvaltas eller ägs av föreningen.

' seuran_yhdistyksen_saamat_vuokrat_edellisen_kalenterivuoden_ajal: '#title': 'Föreningens hyresinkomster under föregående kalenderår 1.1. –31.12.' '#description': 'Om föreningen får hyresinkomster för sina lokaler, anges de här.' @@ -229,8 +230,9 @@ elements: | '#help': 'Utöver de VOK 1-utbildningar som ordnas av regionala idrottsorganisationer beaktas i beräkningen antalet handledare och tränare som har genomgått en utbildning för tränare och handledare som ordnas av ett grenförbund på minst motsvarande nivå och med motsvarande innehåll eller som har avlagt grundexamen i idrott, idrottsinstruktör (YH) eller magisterexamen i idrottsvetenskaper (idrottspedagogik eller motionsbiologi).' lajijaostot_helsinkilaisille_aktiiviharrastajille: '#title': 'Aktiva grengsektioner för helsingforsare' + '#help': '

I detta avsnitt kan en enskild aktiv idrottsutövare rapporteras mer än en gång, om den utövaren uppfyller definitionen av aktiv utövare i flera olika grensektioner.

' lajijaostot_info: - '#markup': "

Regelbunden handledd idrottsverksamhet som ordnas av föreningen, enligt gren. Ange här antalet aktiva idrottsutövare från Helsingfors under föregående år, per sport, samt deras realiserade träningstimmar.

\r\n" + '#markup': '

Regelbunden handledd idrottsverksamhet som ordnas av föreningen, enligt gren. Ange här antalet aktiva idrottsutövare från Helsingfors under föregående år, per sport, samt deras realiserade träningstimmar per åldersgrupp.

' club_section: '#multiple__add_more_button_label': 'Lägg till en sport' '#multiple__item_label': 'sport' diff --git a/conf/cmi/webform.webform.liikunta_toiminta_ja_tilankaytto.yml b/conf/cmi/webform.webform.liikunta_toiminta_ja_tilankaytto.yml index 615a789c9c..00fb3eb18c 100644 --- a/conf/cmi/webform.webform.liikunta_toiminta_ja_tilankaytto.yml +++ b/conf/cmi/webform.webform.liikunta_toiminta_ja_tilankaytto.yml @@ -370,7 +370,7 @@ elements: |- compensation_explanation: '#type': textarea '#title': 'Selvitys avustuksen käytöstä' - '#help': 'Käyttöselvityksessä tulee kuvata lyhyesti, miten myönnetty avustus on käytetty. Avustuksen saajan on järjestettävä kirjanpitonsa niin, että avustuksen käyttöä voidaan sieltä seurata. Esimerkiksi jos yhteisö on saanut vuokra-avustusta, tilinpäätöksen tuloslaskelmasta tulee käydä ilmi avustuksen toteutuminen sekä tuloissa että menoissa. Lisää tietoja avustuksen käytöstä voi myös kirjoittaa erilliseen liitteeseen, jonka voi palauttaa Käyttöselvitys-liite kohdasta.' + '#help': '

Käyttöselvityksessä tulee kuvata lyhyesti, miten myönnetty avustus on käytetty. Avustuksen saajan on järjestettävä kirjanpitonsa niin, että avustuksen käyttöä voidaan sieltä seurata. Lisää tietoja avustuksen käytöstä voi myös kirjoittaa erilliseen liitteeseen, jonka voi palauttaa Käyttöselvitys-liite kohdasta.

' '#maxlength': 5000 '#counter_type': character '#counter_maximum': 5000 @@ -496,8 +496,7 @@ elements: |- '#title': Tilankäyttöavustus maksetut_vuokrat_info: '#type': webform_markup - '#markup': | -

Yhteenveto seuran/yhdistyksen maksamista säännöllisten harjoitusvuorojen vuokrista, muiden kuin liikuntapalvelun omien tilojen osalta, edellisen kalenterivuoden 1.1. - 31.12. ajalta. Liikuntatiloista maksetut vuokrat -kohta on pakollinen täyttää, mikäli haet tilankäyttöavustusta.

+ '#markup': '

Yhteenveto seuran/yhdistyksen maksamista säännöllisten harjoitusvuorojen vuokrista, muiden kuin liikuntapalvelun omien tilojen osalta, edellisen kalenterivuoden 1.1. - 31.12. ajalta. Liikuntatiloista maksetut vuokrat -kohta on pakollinen täyttää, mikäli haet tilankäyttöavustusta.

' liikuntatiloista_maksetut_vuokrat_fieldset: '#type': fieldset '#title': 'Liikuntatiloista maksetut vuokrat' @@ -538,7 +537,8 @@ elements: |- - webform--small seuraavalle_vuodelle_suunniteltu_muutos_tilojen_kaytossa_tunnit_: '#type': textfield - '#title': 'Seuraavalle vuodelle suunniteltu muutos tilojen käytössä +/- tunnit ja syy' + '#title': 'Seuraavalle vuodelle suunniteltu merkittävä muutos tilojen käytössä +/- tunnit ja vuokrasumma sekä syy muutokseen.' + '#help': '

Tilankäyttöavustuksen määrässä voidaan harkinnanvaraisesti huomioida hakuvuotta koskevat merkittävät muutokset seuran liikuntatilojen käytössä. Merkittäviksi muutoksiksi katsotaan: seurojen yhteenliittyminen, jaoston tai jaostojen liittyminen seuraan tai irtautuminen seurasta, seuran vuokraama tai omistama uusi liikuntatila (kyseisen tilan vuokrasopimus tulee liittää hakemukseen) tai seuran hallinnoimasta tai omistamasta liikuntatilasta luopuminen.

' '#states': required: ':input[name="tilankayttosumma"]': @@ -815,10 +815,10 @@ elements: |- lajijaostot_helsinkilaisille_aktiiviharrastajille: '#type': webform_section '#title': 'Lajijaostot helsinkiläisille aktiiviharrastajille' + '#help': '

Tässä kohdassa yksittäinen aktiiviharrastaja voi tulla ilmoitetuksi useamman kerran, mikäli aktiivi täyttää aktiiviharrastajan määritelmän useammassa eri lajijaostossa.

' lajijaostot_info: '#type': webform_markup - '#markup': | -

Seuran/yhdistyksen järjestämä säännöllinen ohjattu liikuntatoiminta lajeittain. Ilmoita tähän lajeittain edellisen vuoden helsinkiläisten aktiiviharrastajien määrät sekä heidän toteutuneet harjoitustunnit.

+ '#markup': '

Seuran/yhdistyksen järjestämä säännöllinen ohjattu liikuntatoiminta lajeittain. Ilmoita tähän lajeittain edellisen vuoden helsinkiläisten aktiiviharrastajien määrät sekä heidän toteutuneet harjoitustunnit ikäryhmittäin.

' club_section: '#type': club_section_composite '#title': '' diff --git a/public/modules/custom/grants_club_section/src/Element/ClubSectionComposite.php b/public/modules/custom/grants_club_section/src/Element/ClubSectionComposite.php index fc83acb657..ab354e1d06 100644 --- a/public/modules/custom/grants_club_section/src/Element/ClubSectionComposite.php +++ b/public/modules/custom/grants_club_section/src/Element/ClubSectionComposite.php @@ -102,7 +102,7 @@ public static function getCompositeElements(array $element): array { '#type' => 'textfield', '#input_mask' => "'alias': 'numeric', 'groupSeparator': ' ', 'digits': '0'", '#pattern' => '^[0-9 ]*$', - '#title' => t('Men (20-63 years)', [], $tOpts), + '#title' => t('Men from Helsinki (20-63 years)', [], $tOpts), '#prefix' => '
', '#element_validate' => [ [FieldValueValidator::class, 'validate'], @@ -111,7 +111,7 @@ public static function getCompositeElements(array $element): array { $elements['women'] = [ '#type' => 'textfield', - '#title' => t('Women (20-63 years)', [], $tOpts), + '#title' => t('Women from Helsinki (20-63 years)', [], $tOpts), '#input_mask' => "'alias': 'numeric', 'groupSeparator': ' ', 'digits': '0'", '#pattern' => '^[0-9 ]*$', '#element_validate' => [ @@ -123,18 +123,21 @@ public static function getCompositeElements(array $element): array { '#type' => 'textfield', '#input_mask' => "'alias': 'numeric', 'groupSeparator': ' ', 'digits': '0'", '#pattern' => '^[0-9 ]*$', - '#title' => t('Others (20-63 years)', [], $tOpts), + '#title' => t('Others from Helsinki (20-63 years)', [], $tOpts), '#suffix' => '
', '#element_validate' => [ [FieldValueValidator::class, 'validate'], ], ]; + $hoursHelp = t('

In the practice hours section, do not report the training output of individual actives, but the actual practice hours organized for Helsinki residents belonging to the age group.

If the actual number of training hours for an age group cannot be ascertained (e.g. many mixed groups), can the share of that age group be calculated from the total number of hours based on the share of the number of active members from Helsinki in the age group out of the total number of active members from Helsinki. E.g. the total number of hours in the division (all mixed groups) is 100 hours, where 10 adults and 20 under 20-year-olds are active: the number of hours for adults is 33 hours and for under 20-year-olds 67 hours. However, the actual number of hours realized for the age group should be used primarily.

', [], $tOpts); + $elements['adultHours'] = [ '#type' => 'textfield', '#input_mask' => "'alias': 'numeric', 'groupSeparator': ' ', 'digits': '0'", '#pattern' => '^[0-9 ]*$', '#title' => t('Practice hours of adults (20-63 years)', [], $tOpts), + '#help' => $hoursHelp, '#prefix' => '
', '#suffix' => '
', '#element_validate' => [ @@ -146,7 +149,7 @@ public static function getCompositeElements(array $element): array { '#type' => 'textfield', '#input_mask' => "'alias': 'numeric', 'groupSeparator': ' ', 'digits': '0'", '#pattern' => '^[0-9 ]*$', - '#title' => t('Men (64 years and over)', [], $tOpts), + '#title' => t('Men from Helsinki (64 years and over)', [], $tOpts), '#prefix' => '
', '#element_validate' => [ [FieldValueValidator::class, 'validate'], @@ -157,7 +160,7 @@ public static function getCompositeElements(array $element): array { '#type' => 'textfield', '#input_mask' => "'alias': 'numeric', 'groupSeparator': ' ', 'digits': '0'", '#pattern' => '^[0-9 ]*$', - '#title' => t('Women (64 years and over)', [], $tOpts), + '#title' => t('Women from Helsinki (64 years and over)', [], $tOpts), '#element_validate' => [ [FieldValueValidator::class, 'validate'], ], @@ -167,7 +170,7 @@ public static function getCompositeElements(array $element): array { '#type' => 'textfield', '#input_mask' => "'alias': 'numeric', 'groupSeparator': ' ', 'digits': '0'", '#pattern' => '^[0-9 ]*$', - '#title' => t('Others (64 years and over)', [], $tOpts), + '#title' => t('Others from Helsinki (64 years and over)', [], $tOpts), '#suffix' => '
', '#element_validate' => [ [FieldValueValidator::class, 'validate'], @@ -179,6 +182,7 @@ public static function getCompositeElements(array $element): array { '#input_mask' => "'alias': 'numeric', 'groupSeparator': ' ', 'digits': '0'", '#pattern' => '^[0-9 ]*$', '#title' => t('Practice hours of adults (64 years and over)', [], $tOpts), + '#help' => $hoursHelp, '#prefix' => '
', '#suffix' => '
', '#element_validate' => [ @@ -190,7 +194,7 @@ public static function getCompositeElements(array $element): array { '#type' => 'textfield', '#input_mask' => "'alias': 'numeric', 'groupSeparator': ' ', 'digits': '0'", '#pattern' => '^[0-9 ]*$', - '#title' => t('Boys (under 20 years of age)', [], $tOpts), + '#title' => t('Boys from Helsinki (under 20 years of age)', [], $tOpts), '#prefix' => '
', '#element_validate' => [ [FieldValueValidator::class, 'validate'], @@ -201,7 +205,7 @@ public static function getCompositeElements(array $element): array { '#type' => 'textfield', '#input_mask' => "'alias': 'numeric', 'groupSeparator': ' ', 'digits': '0'", '#pattern' => '^[0-9 ]*$', - '#title' => t('Girls (under 20 years of age)', [], $tOpts), + '#title' => t('Girls from Helsinki (under 20 years of age)', [], $tOpts), '#element_validate' => [ [FieldValueValidator::class, 'validate'], ], @@ -211,7 +215,7 @@ public static function getCompositeElements(array $element): array { '#type' => 'textfield', '#input_mask' => "'alias': 'numeric', 'groupSeparator': ' ', 'digits': '0'", '#pattern' => '^[0-9 ]*$', - '#title' => t('Others (under 20 years of age)', [], $tOpts), + '#title' => t('Others from Helsinki (under 20 years of age)', [], $tOpts), '#suffix' => '
', '#element_validate' => [ [FieldValueValidator::class, 'validate'], @@ -223,6 +227,7 @@ public static function getCompositeElements(array $element): array { '#input_mask' => "'alias': 'numeric', 'groupSeparator': ' ', 'digits': '0'", '#pattern' => '^[0-9 ]*$', '#title' => t('Practice hours of children/young people (under 20 years of age)', [], $tOpts), + '#help' => $hoursHelp, '#prefix' => '
', '#suffix' => '
', '#element_validate' => [ diff --git a/public/modules/custom/grants_club_section/translations/fi.po b/public/modules/custom/grants_club_section/translations/fi.po index 2560d09e8e..d10d96c757 100644 --- a/public/modules/custom/grants_club_section/translations/fi.po +++ b/public/modules/custom/grants_club_section/translations/fi.po @@ -344,48 +344,52 @@ msgid "Sport" msgstr "Laji" msgctxt "grants_club_section" -msgid "Women (20-63 years)" -msgstr "Naiset (20-63-vuotiaat)" +msgid "Women from Helsinki (20-63 years)" +msgstr "Helsinkiläiset naiset (20-63-vuotiaat)" msgctxt "grants_club_section" -msgid "Men (20-63 years)" -msgstr "Miehet (20-63-vuotiaat)" +msgid "Men from Helsinki (20-63 years)" +msgstr "Helsinkiläiset miehet (20-63-vuotiaat)" msgctxt "grants_club_section" -msgid "Others (20-63 years)" -msgstr "Muut (20-63-vuotiaat)" +msgid "Others from Helsinki (20-63 years)" +msgstr "Helsinkiläiset muut (20-63-vuotiaat)" msgctxt "grants_club_section" msgid "Practice hours of adults (20-63 years)" msgstr "20-63-vuotiaiden harjoitustunnit yhteensä" msgctxt "grants_club_section" -msgid "Men (64 years and over)" -msgstr "Miehet (64 vuotta täyttäneet)" +msgid "

In the practice hours section, do not report the training output of individual actives, but the actual practice hours organized for Helsinki residents belonging to the age group.

If the actual number of training hours for an age group cannot be ascertained (e.g. many mixed groups), can the share of that age group be calculated from the total number of hours based on the share of the number of active members from Helsinki in the age group out of the total number of active members from Helsinki. E.g. the total number of hours in the division (all mixed groups) is 100 hours, where 10 adults and 20 under 20-year-olds are active: the number of hours for adults is 33 hours and for under 20-year-olds 67 hours. However, the actual number of hours realized for the age group should be used primarily.

" +msgstr "

Älä ilmoita harjoitustunnit-kohdassa yksittäisten harrastajien toteutuneita liikuntasuoritteita tunteina, vaan ikäryhmään kuuluville helsinkiläisille järjestetyt toteutuneet harjoitustunnit.

Mikäli ikäryhmän todellinen harjoitustuntimäärä ei ole selvitettävissä (esim. paljon sekaryhmiä), voit laskea kokonaistuntimäärästä kyseisen ikäryhmän osuuden perustuen ikäryhmän helsinkiläisten aktiiviharrastajien määrän osuuteen helsinkiläisten aktiiviharrastajien kokonaismäärästä. Esim. Jaoston kokonaistuntimäärä (kaikki sekaryhmiä) on 100 tuntia, jossa liikkuu aktiivisesti 10 aikuista ja 20 alle 20-vuotiasta: aikuisten tuntimäärä 33 tuntia ja alle 20-vuotiaiden tuntimäärä 67 tuntia. Ensisijaisesti tulee kuitenkin käyttää ikäryhmän osalta todellista toteutunutta tuntimäärää.

" msgctxt "grants_club_section" -msgid "Women (64 years and over)" -msgstr "Naiset (64 vuotta täyttäneet)" +msgid "Men from Helsinki (64 years and over)" +msgstr "Helsinkiläiset miehet (64 vuotta täyttäneet)" msgctxt "grants_club_section" -msgid "Others (64 years and over)" -msgstr "Muut (64 vuotta täyttäneet)" +msgid "Women from Helsinki (64 years and over)" +msgstr "Helsinkiläiset naiset (64 vuotta täyttäneet)" + +msgctxt "grants_club_section" +msgid "Others from Helsinki (64 years and over)" +msgstr "Helsinkiläiset muut (64 vuotta täyttäneet)" msgctxt "grants_club_section" msgid "Practice hours of adults (64 years and over)" msgstr "64 vuotta täyttäneiden harjoitustunnit yhteensä" msgctxt "grants_club_section" -msgid "Boys (under 20 years of age)" -msgstr "Pojat (alle 20-vuotiaat)" +msgid "Boys from Helsinki (under 20 years of age)" +msgstr "Helsinkiläiset pojat (alle 20-vuotiaat)" msgctxt "grants_club_section" -msgid "Girls (under 20 years of age)" -msgstr "Tytöt (alle 20-vuotiaat)" +msgid "Girls from Helsinki (under 20 years of age)" +msgstr "Helsinkiläiset tytöt (alle 20-vuotiaat)" msgctxt "grants_club_section" -msgid "Others (under 20 years of age)" -msgstr "Muut (alle 20-vuotiaat)" +msgid "Others from Helsinki (under 20 years of age)" +msgstr "Helsinkiläiset muut (alle 20-vuotiaat)" msgctxt "grants_club_section" msgid "Practice hours of children/young people (under 20 years of age)" diff --git a/public/modules/custom/grants_club_section/translations/sv.po b/public/modules/custom/grants_club_section/translations/sv.po index a8c1e3f35d..5becc618b5 100644 --- a/public/modules/custom/grants_club_section/translations/sv.po +++ b/public/modules/custom/grants_club_section/translations/sv.po @@ -344,15 +344,15 @@ msgid "Sport" msgstr "Sport" msgctxt "grants_club_section" -msgid "Women (20-63 years)" +msgid "Women from Helsinki (20-63 years)" msgstr "Kvinnor (20-63 år)" msgctxt "grants_club_section" -msgid "Men (20-63 years)" +msgid "Men from Helsinki (20-63 years)" msgstr "Män (20-63 år)" msgctxt "grants_club_section" -msgid "Others (20-63 years)" +msgid "Others from Helsinki (20-63 years)" msgstr "Övriga (20-63 år)" msgctxt "grants_club_section" @@ -360,15 +360,19 @@ msgid "Practice hours of adults (20-63 years)" msgstr "Träningstimmar för vuxna (20-63 år)" msgctxt "grants_club_section" -msgid "Men (64 years and over)" +msgid "

In the practice hours section, do not report the training output of individual actives, but the actual practice hours organized for Helsinki residents belonging to the age group.

If the actual number of training hours for an age group cannot be ascertained (e.g. many mixed groups), can the share of that age group be calculated from the total number of hours based on the share of the number of active members from Helsinki in the age group out of the total number of active members from Helsinki. E.g. the total number of hours in the division (all mixed groups) is 100 hours, where 10 adults and 20 under 20-year-olds are active: the number of hours for adults is 33 hours and for under 20-year-olds 67 hours. However, the actual number of hours realized for the age group should be used primarily.

" +msgstr "

I avsnittet träningstimmar, rapportera inte enskilda idrottsutövarnas träningsprestationer i timmar, utan de faktiska träningstimmar som organiserats för helsingforsare som tillhör åldersgruppen.

Om det faktiska antalet träningstimmar för en åldersgrupp inte kan fastställas (t. ex. många blandade träningsgrupper), kan andelen av den åldersgruppen beräknas från det totala antalet timmar baserat på andelen av antalet aktiva idrottsutövare från Helsingfors i åldersgruppen av det totala antalet aktiva idrottsutövare från Helsingfors. T. ex. totala antalet timmar i grensektionen (alla blandade grupper) är 100 timmar, där 10 vuxna och 20 under 20-åringar är aktiva: antalet timmar för vuxna är 33 timmar och för under 20-åringar 67 timmar. Det faktiska antalet realiserade timmar för åldersgruppen bör dock i första hand användas.

" + +msgctxt "grants_club_section" +msgid "Men from Helsinki (64 years and over)" msgstr "Män (64 år och äldre)" msgctxt "grants_club_section" -msgid "Women (64 years and over)" +msgid "Women from Helsinki (64 years and over)" msgstr "Kvinnor (64 år och äldre)" msgctxt "grants_club_section" -msgid "Others (64 years and over)" +msgid "Others from Helsinki (64 years and over)" msgstr "Övriga (64 år och äldre)" msgctxt "grants_club_section" @@ -376,15 +380,15 @@ msgid "Practice hours of adults (64 years and over)" msgstr "Träningstimmar för vuxna (64 år och äldre)" msgctxt "grants_club_section" -msgid "Boys (under 20 years of age)" +msgid "Boys from Helsinki (under 20 years of age)" msgstr "Pojkar (under 20 år)" msgctxt "grants_club_section" -msgid "Girls (under 20 years of age)" +msgid "Girls from Helsinki (under 20 years of age)" msgstr "Flickor (under 20 år)" msgctxt "grants_club_section" -msgid "Others (under 20 years of age)" +msgid "Others from Helsinki (under 20 years of age)" msgstr "Övriga (under 20 år)" msgctxt "grants_club_section" 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 c792cc8314..bfeef6de51 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);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)} +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%}.club-section__participants label{text-wrap:balance}.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/package-lock.json b/public/themes/custom/hdbt_subtheme/package-lock.json index 737369b2cb..416b9bcc7b 100644 --- a/public/themes/custom/hdbt_subtheme/package-lock.json +++ b/public/themes/custom/hdbt_subtheme/package-lock.json @@ -3310,9 +3310,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001669", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz", - "integrity": "sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==", + "version": "1.0.30001683", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001683.tgz", + "integrity": "sha512-iqmNnThZ0n70mNwvxpEC2nBJ037ZHZUoBI5Gorh1Mw6IlEAZujEoU1tXA628iZfzm7R9FvFzxbfdgml82a3k8Q==", "funding": [ { "type": "opencollective", @@ -3326,7 +3326,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/chalk": { "version": "2.4.2", diff --git a/public/themes/custom/hdbt_subtheme/src/scss/06_components/forms/webform/_form-elements.scss b/public/themes/custom/hdbt_subtheme/src/scss/06_components/forms/webform/_form-elements.scss index b90b09b3b0..0a4cf75121 100644 --- a/public/themes/custom/hdbt_subtheme/src/scss/06_components/forms/webform/_form-elements.scss +++ b/public/themes/custom/hdbt_subtheme/src/scss/06_components/forms/webform/_form-elements.scss @@ -470,6 +470,10 @@ input[type='radio'] + label.form-required::after { } } +.club-section__participants label { + text-wrap: balance; +} + .hel-icon--size { &-xs { --icon-size: var(--spacing-layout-2-xs); From 2ad4bd4a8457592fb7069f899c085a08d1d74f1b Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Wed, 27 Nov 2024 07:40:00 +0200 Subject: [PATCH 58/95] fix: UHF-10711: Requested changes ID70 form (#1582) * UHF-10711: Requested changes. * UHF-10711: Form title + some translations. * UHF-10711: Form item description styling fixes * UHF-10711: Last fixes from Janne. * UHF-10711: REbuilt styles --------- Co-authored-by: Tero Elonen --- ...ebform.iakkaiden_kulttuuri_ja_liikunta.yml | 18 +-- ...ebform.iakkaiden_kulttuuri_ja_liikunta.yml | 28 ++-- ...ebform.iakkaiden_kulttuuri_ja_liikunta.yml | 125 ++---------------- .../hdbt_subtheme/dist/css/styles.min.css | 2 +- .../forms/webform/_element-description.scss | 7 +- .../input-email/form-element--email.html.twig | 1 - .../form-element--number.html.twig | 1 - tools/http/http-client.env.json | 2 +- 8 files changed, 33 insertions(+), 151 deletions(-) diff --git a/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml b/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml index 5ba986ee96..863c6245d2 100644 --- a/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml +++ b/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml @@ -1,4 +1,4 @@ -title: 'KUVA: Culture grant for advancing cultural activities for the elderly' +title: 'KUVA: grant application for the promotion of physical activity and cultural activities for the elderly' elements: | 1_hakijan_tiedot: '#title': '1. Applicant details' @@ -65,7 +65,7 @@ elements: | '#help': '

Indicate the purpose for which the grant is applied for. If necessary, specify the different uses. Also tell us what is intended to be achieved with the grant and what goals are associated with the activities to be supported.

' '#counter_maximum_message': '%d/5000 characters remaining' other_grants_for_same_purpose: - '#title': 'Other grants applied for to be used for the same purpose' + '#title': 'Other grants received for the same purpose' info_muut_samaan_tarkoitukseen_myonnetty: '#markup': '

Indicate here only the grants received from somewhere other than the City of Helsinki in the current and two previous tax years.

An affirmative answer opens a further question
' olemme_saaneet_muita_avustuksia: @@ -130,11 +130,9 @@ elements: | '#counter_maximum_message': '%d/1000 characters remaining' 3_tarkemmat_tiedot: '#title': '3. Information in more detail' - markup: - '#markup': '

Grant decisions for 2024:

  • Sports Sub-committee: 11 April 2024 Section 10

  • Culture and Libraries Sub-committee: 16 April 2024 Section 15

' hankesuunnitelma_radios: '#title': 'Is the 2nd part of the grant awarded in 2024 now being applied for?' - '#help': '

Only answer “yes” to this question if your community already has an ongoing project funded by the same grant and you are applying for additional funding for it.

' + '#description': '

Grant decisions for 2024:

  • Sports Sub-committee: 11 April 2024 Section 10

  • Culture and Libraries Sub-committee: 16 April 2024 Section 15

' '#options': 1: 'Yes' 0: 'No' @@ -158,6 +156,7 @@ elements: | '#title': '3.1 Project plan' hankesuunnitelma_jatkohakemus: '#title': 'Is the grant to be applied for a renewal application for an ongoing project?' + '#description': '

Only answer “yes” to this question if your community already has an ongoing project funded by the same grant and you are applying for additional funding for it.

' '#options': 1: 'Yes' 0: 'No' @@ -198,8 +197,7 @@ elements: | '#title': 'Who is the project primarily aimed at?' '#counter_maximum_message': '%d/1250 characters remaining' hankkeen_kohderyhmat_erityisryhmat: - '#title': 'Does the project target a special group?' - '#help': '

For which special group? If not implemented, leave the field blank.

' + '#title': 'Does the project target a special group? For which special group? If not implemented, leave the field blank.' '#counter_maximum_message': '%d/1250 characters remaining' hankkeen_kohderyhmat_tavoitus: '#title': 'How will the target groups of the project be reached?' @@ -214,8 +212,7 @@ elements: | '#title': 'What kind of expertise do the project operators already have in working with the target group(s) in question?' '#counter_maximum_message': '%d/1250 characters remaining' hankkeen_kohderyhmat_postinrot: - '#title': 'In which postal code area(s) in Helsinki will the project be implemented?' - '#help': '

Please enter up to three (3) postal code areas in the field and separate them with a comma (,).

' + '#title': 'In which postal code area(s) in Helsinki will the project be implemented? Please enter up to three (3) postal code areas in the field and separate them with a comma (,).' hankkeen_kohderyhmat_miksi_alue: '#title': 'Why is/are that particular area(s) selected?' '#counter_maximum_message': '%d/1250 characters remaining' @@ -237,8 +234,7 @@ elements: | arviointi_toteuma: '#title': 'Has the project progressed according to plan? Please rate the project implementation so far on a scale of 1- 100% and justify your response.' '#counter_maximum_message': '%d/1250 characters remaining' - arviointi_muutokset_markup: - '#markup': '

Have there been significant changes in the project?

' + '#description': 'Have there been significant changes in the project?' arviointi_muutokset_talous: '#title': 'In terms of economy; please specify' '#counter_maximum_message': '%d/1250 characters remaining' diff --git a/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml b/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml index 9fa12188e0..7f1a275887 100644 --- a/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml +++ b/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml @@ -97,11 +97,11 @@ elements: | '#help': '

Ge en kort beskrivning, i vilket syfte har bidraget beviljats?

' '#counter_maximum_message': '%d/1000 tecken kvar' muut_samaan_tarkoitukseen_haetut_avustukset: - '#title': 'Övriga understöd som beviljats för samma ändamål' + '#title': 'Övriga understöd som ansökts för samma ändamål' info_muut_samaan_tarkoitukseen_haettu: - '#markup': '

Ange här endast de understöd som beviljats från annanstans än Helsingfors stad under det innevarande beskattningsåret eller de föregående två beskattningsåren.

Myöntävä vastaus avaa lisäkysymyksen
' + '#markup': '

Ange här endast de understöd som har ansökts från annanstans än Helsingfors stad, men beslut har ännu inte fattats.

Ett jakande svar öppnar ytterligare en fråga
' olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: - '#title': 'Vi har fått andra understöd Lisää myönnetty avustus Custom composite Add received grant Lägg till understöd som beviljats' + '#title': 'Vi har ansökt om understöd från annanstans än Helsingfors Stad' '#options': 1: Ja 0: Nej @@ -130,11 +130,9 @@ elements: | '#counter_maximum_message': '%d/1000 tecken kvar' 3_tarkemmat_tiedot: '#title': '3. Mer detaljerad information' - markup: - '#markup': '

Beslut om understöd för 2024:

  • Idrottssektionen: 11.4.2024 §10

  • Kultur- och bibliotekssektionen: 16.4.2024 §15

' hankesuunnitelma_radios: '#title': 'Ansöker du nu om den andra delen av ett tvåårigt understöd som beviljades 2024?' - '#help': '

Svara bara ”ja” på den här frågan om din sammanslutning redan har ett pågående projekt som finansieras med samma understöd och du ansöker om fortsatt finansiering.

' + '#description': '

Beslut om understöd för 2024:

  • Idrottssektionen: 11.4.2024 §10

  • Kultur- och bibliotekssektionen: 16.4.2024 §15

' '#options': 1: Ja 0: Nej @@ -158,6 +156,7 @@ elements: | '#title': '3.1 Projektplan' hankesuunnitelma_jatkohakemus: '#title': 'Är understödet du ansöker om en förlängning av ett pågående projekt?' + '#description': '

Svara bara ”ja” på den här frågan om din sammanslutning redan har ett pågående projekt som finansieras med samma understöd och du ansöker om fortsatt finansiering.

' '#options': 1: Ja 0: Nej @@ -190,7 +189,7 @@ elements: | '#title': 'Bidrar projektet till att utveckla frivillig- /kamratverksamhet? På vilket sätt?' '#counter_maximum_message': '%d/1250 tecken kvar' haun_painopisteet_kulttuuri_kehitys: - '#title': 'Bidrar projektet till att utveckla frivillig- /kamratverksamhet? På vilket sätt?' + '#title': 'Bidrar projektet till att utveckla kompetensen hos konst- och kulturaktörer eller skapa nya arbetssätt/strukturer? På vilket sätt?' '#counter_maximum_message': '%d/1250 tecken kvar' hankkeen_kohderyhmat_section: '#title': '3.3 Projektets målgrupper' @@ -198,8 +197,7 @@ elements: | '#title': 'Vem är den huvudsakliga målgruppen för projektet?' '#counter_maximum_message': '%d/1250 tecken kvar' hankkeen_kohderyhmat_erityisryhmat: - '#title': 'Riktar sig projektet till någon särskild grupp?' - '#help': '

Till vilken särskild grupp? Om svaret är ”nej”, lämna tomt.

' + '#title': 'Riktar sig projektet till någon särskild grupp? Till vilken särskild grupp? Om svaret är ”nej”, lämna tomt.' '#counter_maximum_message': '%d/1250 tecken kvar' hankkeen_kohderyhmat_tavoitus: '#title': 'Hur ska ni nå ut med projektet till målgrupperna?' @@ -214,8 +212,7 @@ elements: | '#title': 'Vilken kompetens har aktörerna i projektet i förväg att arbeta med målgruppen/- grupperna?' '#counter_maximum_message': '%d/1250 tecken kvar' hankkeen_kohderyhmat_postinrot: - '#title': 'Inom vilket/vilka postnummerområden i Helsingfors kommer projektet att genomföras?' - '#help': '

Ange upp till tre (3) postnummerområden och separera dem med kommatecken (,).

' + '#title': 'Inom vilket/vilka postnummerområden i Helsingfors kommer projektet att genomföras? Ange upp till tre (3) postnummerområden och separera dem med kommatecken (,).' hankkeen_kohderyhmat_miksi_alue: '#title': 'Varför har ni valt just det/de områdena?' '#counter_maximum_message': '%d/1250 tecken kvar' @@ -228,7 +225,7 @@ elements: | '#title': 'Hur kommer ni att följa upp och utvärdera projektet?' '#counter_maximum_message': '%d/2500 tecken kvar' hankkeen_riskit_vakiinnuttaminen: - '#title': 'Är den planerade verksamheten för projektet avsedd att bli en permanent del av den grundläggande verksamheten hos den sökande/en annan aktör efter projektet?' + '#title': 'Är den planerade verksamheten för projektet avsedd att bli en permanent del av den grundläggande verksamheten hos den sökande/en annan aktör efter projektet? Om ja, beskriv i textrutan hur det här kommer att ske, lämna annars tomt.' '#counter_maximum_message': '%d/2500 tecken kvar' hankkeen_valiarviointi_section: '#title': '3.5 Mellanutvärderin g av tvååriga projekt' @@ -237,8 +234,7 @@ elements: | arviointi_toteuma: '#title': 'Har projektet framskridit enligt planen? Bedöm projektets resultat hittills på en skala 1–100 procent och motivera ditt svar.' '#counter_maximum_message': '%d/1250 tecken kvar' - arviointi_muutokset_markup: - '#markup': '

Har det skett några väsentliga förändringar i projektet?

' + '#description': 'Har det skett några väsentliga förändringar i projektet?' arviointi_muutokset_talous: '#title': 'Gällande ekonomin; vilka?' '#counter_maximum_message': '%d/1250 tecken kvar' @@ -264,7 +260,7 @@ elements: | '#title': '4.1 Inkomster' tulot: '#title': Inkomster - '#compensation__title': 'Ansökt projektstöd (€)' + '#compensation__title': 'Ansökt stöd (€)' '#plannedOtherCompensations__title': 'Övriga understöd (€)' '#sales__title': 'Övriga egna inkomster (€)' '#ownFunding__title': 'Egenfinansiering (€)' @@ -275,7 +271,7 @@ elements: | menot_section: '#title': '4.2 Utgifter' talous_menon_tyyppi: - '#title': utgifter + '#title': 'Typ av utgifter' '#help': '

Skriv ner vilken typ av utgift det gäller. Utgifter kan till exempel vara andra lokalhyror och personalkostnader.

' '#multiple__add_more_button_label': 'Lägg till en utgift' lisatiedot_ja_liitteet: diff --git a/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml b/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml index dd26699e6f..ce9649a71f 100644 --- a/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml +++ b/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml @@ -603,14 +603,12 @@ elements: |- tarkemmat_tiedot_section: '#type': webform_section '#title': ' ' - markup: - '#type': webform_markup - '#markup': '

Vuoden 2024 avustuspäätökset:

  • Liikuntajaosto: 11.4.2024 §10

  • Kulttuuri- ja kirjastojaosto: 16.4.2024 §15

' hankesuunnitelma_radios: '#type': radios + '#required': true '#title': 'Haetaanko nyt vuonna 2024 myönnetyn kaksivuotisen avustuksen 2. osaa?' - '#help': 'Vastaa tähän kysymykseen "kyllä" vain siinä tapauksessa, jos yhteisölläsi on jo käynnissä oleva, samasta avustuksesta rahoitettu hanke ja haet sille jatkorahoitusta.' - '#description_display': before + '#description': '

Vuoden 2024 avustuspäätökset:

  • Liikuntajaosto: 11.4.2024 §10

  • Kulttuuri- ja kirjastojaosto: 16.4.2024 §15

' + '#description_display': after '#options': 1: Kyllä 0: Ei @@ -654,7 +652,8 @@ elements: |- hankesuunnitelma_jatkohakemus: '#type': radios '#title': 'Onko haettava avustus käynnissä olevan hankkeen jatkohakemus?' - '#description_display': before + '#description': '

Vastaa tähän kysymykseen "kyllä" vain siinä tapauksessa, jos yhteisölläsi on jo käynnissä oleva, samasta avustuksesta rahoitettu hanke ja haet sille jatkorahoitusta.

' + '#description_display': after '#options': 1: Kyllä 0: Ei @@ -667,10 +666,6 @@ elements: |- '#counter_type': character '#counter_maximum': 2500 '#counter_maximum_message': '%d/2500 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' hankkeen_toimenpiteet_aikataulu: '#type': textarea '#title': 'Mitkä ovat hankkeen konkreettiset toimenpiteet ja niiden toteutusaikataulu?' @@ -679,36 +674,20 @@ elements: |- '#counter_type': character '#counter_maximum': 4000 '#counter_maximum_message': '%d/4000 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' hankkeen_toimenpiteet_toteutus: '#type': fieldset '#title': 'Hankkeen konkreettiset toimenpiteet on tarkoitus toteuttaa välillä' '#attributes': class: - grants-fieldset - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' hankkeen_toimenpiteet_alkupvm: '#type': date '#title': Alkupäivämäärä '#required': true - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' hankkeen_toimenpiteet_loppupvm: '#type': date '#title': Loppupäivämäärä '#required': true - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' hankkeen_keskeisimmat_kumppanit: '#type': textarea '#title': 'Nimeä hankkeen keskeisimmät yhteistyökumppanit ja heidän roolinsa hankkeessa' @@ -717,19 +696,9 @@ elements: |- '#counter_type': character '#counter_maximum': 2500 '#counter_maximum_message': '%d/2500 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' haun_painopisteet_section: '#type': webform_section '#title': '3.2 Haun painopisteet' - '#states': - visible: - ':input[name="hankesuunnitelma_radios"]': - value: '0' - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' haun_painopisteet_ohje: '#type': webform_markup '#markup': 'Mihin seuraavista iäkkäiden liikkumisen ja kulttuuritoiminnan edistämisen avustuksen painopisteistä hanke vastaa?

Hankkeessa tulee toteuttaa yhtä tai useampaa painopistettä. HUOM! Valitse vain ne painopisteet, joita edistätte hankkeessa konkreettisella tavalla. Jos hanke ei toteuta jotakin painopistettä, jätä tekstikenttä tyhjäksi.

' @@ -740,39 +709,24 @@ elements: |- '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' haun_painopisteet_digi_kehitys: '#type': textarea '#title': 'Kehitetäänkö hankkeessa digitaalisesti / etänä toteutettavia kulttuuritoimintoja tai liikkumiseen aktivoivaa toimintaa? Miten?' '#maxlength': 1250 - '#required': true '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' haun_painopisteet_vertais_kehitys: '#type': textarea '#title': 'Kehitetäänkö hankkeessa vapaaehtois- / vertaistoimintaa? Miten?' '#maxlength': 1250 - '#required': true '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' haun_painopisteet_kulttuuri_kehitys: '#type': textarea '#title': 'Kehitetäänkö hankkeessa taide- ja kulttuuritoimijoiden osaamista tai luodaanko uusia työtapoja / rakenteita? Miten?' '#maxlength': 1250 - '#required': true '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' @@ -788,12 +742,6 @@ elements: |- hankkeen_kohderyhmat_section: '#type': webform_section '#title': '3.3 Hankkeen kohderyhmät' - '#states': - visible: - ':input[name="hankesuunnitelma_radios"]': - value: '0' - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' hankkeen_kohderyhmat_kenelle: '#type': textarea '#title': 'Kenelle hankkeen toiminta on pääasiallisesti suunnattu?' @@ -802,22 +750,14 @@ elements: |- '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' hankkeen_kohderyhmat_erityisryhmat: '#type': textarea - '#title': 'Kohdennetaanko hankkeessa toimintaa jollekin erityisryhmälle?' - '#help': 'Mille erityisryhmälle? Jos ei toteuteta, niin jätetään tyhjäksi.' + '#title': 'Kohdennetaanko hankkeessa toimintaa jollekin erityisryhmälle? Mille erityisryhmälle? Jos ei toteuteta, niin jätetään tyhjäksi.' + '#description_display': after '#maxlength': 1250 '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' hankkeen_kohderyhmat_tavoitus: '#type': textarea '#title': 'Kuinka hankkeen kohderyhmät aiotaan tavoittaa?' @@ -826,10 +766,6 @@ elements: |- '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' hankkeen_kohderyhmat_konkretia: '#type': textarea '#title': 'Miten hankkeessa edistetään konkreettisin toimenpitein valitun kohderyhmän toimintakykyä ja hyvinvointia?' @@ -838,10 +774,6 @@ elements: |- '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' hankkeen_kohderyhmat_osallisuus: '#type': textarea '#title': 'Millä tavoin hankkeessa edistetään osallisuutta? Mikä ikäihmisten rooli hankkeessa on?' @@ -850,10 +782,6 @@ elements: |- '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' hankkeen_kohderyhmat_osaaminen: '#type': textarea '#title': 'Millaista osaamista kyseisen kohderyhmän/-ryhmien kanssa työskentelystä hanketoimijoilla on ennestään?' @@ -862,24 +790,16 @@ elements: |- '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' hankkeen_kohderyhmat_postinrot: '#type': textfield - '#title': 'Millä postinumeroalueella tai -alueilla Helsingissä hanke toteutetaan?' - '#help': 'Kirjaa kenttään enintään kolme (3) postinumeroaluetta ja erottele ne toisistaan pilkulla (,)' + '#title': 'Millä postinumeroalueella tai -alueilla Helsingissä hanke toteutetaan? Kirjaa kenttään enintään kolme (3) postinumeroaluetta ja erottele ne toisistaan pilkulla (,)' + '#description_display': after '#required': true '#autocomplete': 'off' '#attributes': class: - webform--medium '#size': 32 - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' hankkeen_kohderyhmat_miksi_alue: '#type': textarea '#title': 'Miksi juuri kyseinen alue / alueet on valittu?' @@ -888,19 +808,9 @@ elements: |- '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' hankkeen_riskit_section: '#type': webform_section '#title': '3.4 Riskit & analyysi' - '#states': - visible: - ':input[name="hankesuunnitelma_radios"]': - value: '0' - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' hankkeen_riskit_keskeisimmat: '#type': textarea '#title': 'Mitkä ovat hankkeen toteuttamisen näkökulmasta keskeisimmät riskit?' @@ -909,10 +819,6 @@ elements: |- '#counter_type': character '#counter_maximum': 2500 '#counter_maximum_message': '%d/2500 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' hankkeen_riskit_seuranta: '#type': textarea '#title': 'Miten hankkeessa aiotaan toteuttaa seurantaa ja arviointia?' @@ -921,10 +827,6 @@ elements: |- '#counter_type': character '#counter_maximum': 2500 '#counter_maximum_message': '%d/2500 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' hankkeen_riskit_vakiinnuttaminen: '#type': textarea '#title': 'Onko hankkeen suunniteltu toiminta aikomus vakiinnuttaa osaksi hakijan/jonkun muun toimijan perustoimintaa hankkeen jälkeen? Jos kyllä, niin kuvaa tekstikenttään kuinka vakiinnuttaminen aiotaan tehdä, muuten jätä tyhjäksi.' @@ -932,10 +834,6 @@ elements: |- '#counter_type': character '#counter_maximum': 2500 '#counter_maximum_message': '%d/2500 merkkiä jäljellä' - '#states': - visible: - ':input[name="hankesuunnitelma_jatkohakemus"]': - value: '0' hankkeen_valiarviointi_section: '#type': webform_section '#title': '3.5 2-vuotisten hankkeiden väliarviointi' @@ -949,6 +847,8 @@ elements: |- arviointi_toteuma: '#type': textarea '#title': 'Onko hanke edennyt suunnitelman mukaisesti? Arvioikaa hankkeen toteumaa tähän asti asteikolla 1-100% ja perustelkaa vastauksenne.' + '#description': 'Onko hankkeessa tapahtunut merkittäviä muutoksia?' + '#description_display': after '#maxlength': 1250 '#required': true '#counter_type': character @@ -958,9 +858,6 @@ elements: |- visible: ':input[name="hankesuunnitelma_radios"]': value: '1' - arviointi_muutokset_markup: - '#type': webform_markup - '#markup': 'Onko hankkeessa tapahtunut merkittäviä muutoksia?' arviointi_muutokset_talous: '#type': textarea '#title': 'Talouteen liittyen; mitä?' 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 bfeef6de51..501bf8a61c 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);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%}.club-section__participants label{text-wrap:balance}.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)} +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}}.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{margin-top:8px}.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%}.club-section__participants label{text-wrap:balance}.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)} diff --git a/public/themes/custom/hdbt_subtheme/src/scss/06_components/forms/webform/_element-description.scss b/public/themes/custom/hdbt_subtheme/src/scss/06_components/forms/webform/_element-description.scss index 933c75cb0b..8dd1687fe6 100644 --- a/public/themes/custom/hdbt_subtheme/src/scss/06_components/forms/webform/_element-description.scss +++ b/public/themes/custom/hdbt_subtheme/src/scss/06_components/forms/webform/_element-description.scss @@ -1,8 +1,3 @@ .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); + margin-top: $spacing-half; } diff --git a/public/themes/custom/hdbt_subtheme/templates/form/input-email/form-element--email.html.twig b/public/themes/custom/hdbt_subtheme/templates/form/input-email/form-element--email.html.twig index b28d9195cf..f7725a03af 100644 --- a/public/themes/custom/hdbt_subtheme/templates/form/input-email/form-element--email.html.twig +++ b/public/themes/custom/hdbt_subtheme/templates/form/input-email/form-element--email.html.twig @@ -60,7 +60,6 @@ {% set description_classes = [ 'description', - 'hds-text-input__helper-text', description_display == 'invisible' ? 'visually-hidden', ] %} diff --git a/public/themes/custom/hdbt_subtheme/templates/form/input-number/form-element--number.html.twig b/public/themes/custom/hdbt_subtheme/templates/form/input-number/form-element--number.html.twig index b28d9195cf..f7725a03af 100644 --- a/public/themes/custom/hdbt_subtheme/templates/form/input-number/form-element--number.html.twig +++ b/public/themes/custom/hdbt_subtheme/templates/form/input-number/form-element--number.html.twig @@ -60,7 +60,6 @@ {% set description_classes = [ 'description', - 'hds-text-input__helper-text', description_display == 'invisible' ? 'visually-hidden', ] %} diff --git a/tools/http/http-client.env.json b/tools/http/http-client.env.json index edcbff3c8c..71ea491f75 100644 --- a/tools/http/http-client.env.json +++ b/tools/http/http-client.env.json @@ -1,7 +1,7 @@ { "dev": { "atvUrl": "https://atv-api-hki-kanslia-atv-test.agw.arodevtest.hel.fi", - "transactionId": "LOCALYRTTI12-070-0000012", + "transactionId": "TEST-070-0000052", "document_id": "28753685-24b8-4542-b1c1-cc70ff9f9fbc", "integraatioUrl": "https://avustus-integration-test.agw.arodevtest.hel.fi" } From 2b4301c5f1d9792523eea8998e3842edd2bdbb99 Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Wed, 27 Nov 2024 10:59:31 +0200 Subject: [PATCH 59/95] UHF-10711: Last(?) fixes.. (#1583) --- ...ebform.iakkaiden_kulttuuri_ja_liikunta.yml | 2 +- ...ebform.iakkaiden_kulttuuri_ja_liikunta.yml | 204 ++++++++++++++++-- 2 files changed, 184 insertions(+), 22 deletions(-) diff --git a/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml b/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml index 7f1a275887..3f0586b494 100644 --- a/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml +++ b/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml @@ -271,7 +271,7 @@ elements: | menot_section: '#title': '4.2 Utgifter' talous_menon_tyyppi: - '#title': 'Typ av utgifter' + '#title': 'Typ av utgift' '#help': '

Skriv ner vilken typ av utgift det gäller. Utgifter kan till exempel vara andra lokalhyror och personalkostnader.

' '#multiple__add_more_button_label': 'Lägg till en utgift' lisatiedot_ja_liitteet: diff --git a/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml b/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml index ce9649a71f..17f89b89c8 100644 --- a/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml +++ b/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml @@ -642,6 +642,14 @@ elements: |- - ':input[name="kulttuuri2_summa"]': value: greater: '0' + required: + - ':input[name="kulttuuri1_summa"]': + value: + greater: '0' + - or + - ':input[name="kulttuuri2_summa"]': + value: + greater: '0' hankesuunnitelma_section: '#type': webform_section '#title': '3.1 Hankesuunnitelma' @@ -658,50 +666,99 @@ elements: |- 1: Kyllä 0: Ei '#default_value': '0' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' hankkeen_tarkoitus_tavoitteet: '#type': textarea '#title': 'Hankkeen tarkoitus ja tavoitteet' '#maxlength': 2500 - '#required': true '#counter_type': character '#counter_maximum': 2500 '#counter_maximum_message': '%d/2500 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' hankkeen_toimenpiteet_aikataulu: '#type': textarea '#title': 'Mitkä ovat hankkeen konkreettiset toimenpiteet ja niiden toteutusaikataulu?' '#maxlength': 4000 - '#required': true '#counter_type': character '#counter_maximum': 4000 '#counter_maximum_message': '%d/4000 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' hankkeen_toimenpiteet_toteutus: '#type': fieldset '#title': 'Hankkeen konkreettiset toimenpiteet on tarkoitus toteuttaa välillä' '#attributes': class: - grants-fieldset + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' hankkeen_toimenpiteet_alkupvm: '#type': date '#title': Alkupäivämäärä - '#required': true + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' hankkeen_toimenpiteet_loppupvm: '#type': date '#title': Loppupäivämäärä - '#required': true + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' hankkeen_keskeisimmat_kumppanit: '#type': textarea '#title': 'Nimeä hankkeen keskeisimmät yhteistyökumppanit ja heidän roolinsa hankkeessa' '#maxlength': 2500 - '#required': true '#counter_type': character '#counter_maximum': 2500 '#counter_maximum_message': '%d/2500 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' haun_painopisteet_section: '#type': webform_section '#title': '3.2 Haun painopisteet' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' haun_painopisteet_ohje: '#type': webform_markup '#markup': 'Mihin seuraavista iäkkäiden liikkumisen ja kulttuuritoiminnan edistämisen avustuksen painopisteistä hanke vastaa?

Hankkeessa tulee toteuttaa yhtä tai useampaa painopistettä. HUOM! Valitse vain ne painopisteet, joita edistätte hankkeessa konkreettisella tavalla. Jos hanke ei toteuta jotakin painopistettä, jätä tekstikenttä tyhjäksi.

' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' haun_painopisteet_liikkumis_kehitys: '#type': textarea '#title': 'Kehitetäänkö hankkeessa liikkumismahdollisuuksia tai taide- ja kulttuuritoimintaa lähiympäristössä / alueellisesti? Miten?' @@ -709,6 +766,10 @@ elements: |- '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' haun_painopisteet_digi_kehitys: '#type': textarea '#title': 'Kehitetäänkö hankkeessa digitaalisesti / etänä toteutettavia kulttuuritoimintoja tai liikkumiseen aktivoivaa toimintaa? Miten?' @@ -716,6 +777,10 @@ elements: |- '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' haun_painopisteet_vertais_kehitys: '#type': textarea '#title': 'Kehitetäänkö hankkeessa vapaaehtois- / vertaistoimintaa? Miten?' @@ -723,6 +788,10 @@ elements: |- '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' haun_painopisteet_kulttuuri_kehitys: '#type': textarea '#title': 'Kehitetäänkö hankkeessa taide- ja kulttuuritoimijoiden osaamista tai luodaanko uusia työtapoja / rakenteita? Miten?' @@ -739,17 +808,29 @@ elements: |- - ':input[name="kulttuuri2_summa"]': value: greater: '0' + - ':input[name="hankesuunnitelma_radios"]': + value: '0' hankkeen_kohderyhmat_section: '#type': webform_section '#title': '3.3 Hankkeen kohderyhmät' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' hankkeen_kohderyhmat_kenelle: '#type': textarea '#title': 'Kenelle hankkeen toiminta on pääasiallisesti suunnattu?' '#maxlength': 1250 - '#required': true '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' hankkeen_kohderyhmat_erityisryhmat: '#type': textarea '#title': 'Kohdennetaanko hankkeessa toimintaa jollekin erityisryhmälle? Mille erityisryhmälle? Jos ei toteuteta, niin jätetään tyhjäksi.' @@ -758,75 +839,131 @@ elements: |- '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' hankkeen_kohderyhmat_tavoitus: '#type': textarea '#title': 'Kuinka hankkeen kohderyhmät aiotaan tavoittaa?' '#maxlength': 1250 - '#required': true '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' hankkeen_kohderyhmat_konkretia: '#type': textarea '#title': 'Miten hankkeessa edistetään konkreettisin toimenpitein valitun kohderyhmän toimintakykyä ja hyvinvointia?' '#maxlength': 1250 - '#required': true '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' hankkeen_kohderyhmat_osallisuus: '#type': textarea '#title': 'Millä tavoin hankkeessa edistetään osallisuutta? Mikä ikäihmisten rooli hankkeessa on?' '#maxlength': 1250 - '#required': true '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' hankkeen_kohderyhmat_osaaminen: '#type': textarea '#title': 'Millaista osaamista kyseisen kohderyhmän/-ryhmien kanssa työskentelystä hanketoimijoilla on ennestään?' '#maxlength': 1250 - '#required': true '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' hankkeen_kohderyhmat_postinrot: '#type': textfield '#title': 'Millä postinumeroalueella tai -alueilla Helsingissä hanke toteutetaan? Kirjaa kenttään enintään kolme (3) postinumeroaluetta ja erottele ne toisistaan pilkulla (,)' '#description_display': after - '#required': true '#autocomplete': 'off' '#attributes': class: - webform--medium '#size': 32 + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' hankkeen_kohderyhmat_miksi_alue: '#type': textarea '#title': 'Miksi juuri kyseinen alue / alueet on valittu?' '#maxlength': 1250 - '#required': true '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' hankkeen_riskit_section: '#type': webform_section '#title': '3.4 Riskit & analyysi' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' hankkeen_riskit_keskeisimmat: '#type': textarea '#title': 'Mitkä ovat hankkeen toteuttamisen näkökulmasta keskeisimmät riskit?' '#maxlength': 2500 - '#required': true '#counter_type': character '#counter_maximum': 2500 '#counter_maximum_message': '%d/2500 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' hankkeen_riskit_seuranta: '#type': textarea '#title': 'Miten hankkeessa aiotaan toteuttaa seurantaa ja arviointia?' '#maxlength': 2500 - '#required': true '#counter_type': character '#counter_maximum': 2500 '#counter_maximum_message': '%d/2500 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' hankkeen_riskit_vakiinnuttaminen: '#type': textarea '#title': 'Onko hankkeen suunniteltu toiminta aikomus vakiinnuttaa osaksi hakijan/jonkun muun toimijan perustoimintaa hankkeen jälkeen? Jos kyllä, niin kuvaa tekstikenttään kuinka vakiinnuttaminen aiotaan tehdä, muuten jätä tyhjäksi.' @@ -834,6 +971,13 @@ elements: |- '#counter_type': character '#counter_maximum': 2500 '#counter_maximum_message': '%d/2500 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' hankkeen_valiarviointi_section: '#type': webform_section '#title': '3.5 2-vuotisten hankkeiden väliarviointi' @@ -844,13 +988,16 @@ elements: |- arviointi_markup: '#type': webform_markup '#markup': 'Arvioi tässä osiossa hankkeen tähänastista toimintaa seuraavien kysymysten avulla. Avustuksen 2. osaa hakevien tulee liittää hakemukselle Muu liite-kohtaan niin ikään kustannuspaikkaraportti ajanjaksolta 1.6.-31.12.2024' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' arviointi_toteuma: '#type': textarea '#title': 'Onko hanke edennyt suunnitelman mukaisesti? Arvioikaa hankkeen toteumaa tähän asti asteikolla 1-100% ja perustelkaa vastauksenne.' '#description': 'Onko hankkeessa tapahtunut merkittäviä muutoksia?' '#description_display': after '#maxlength': 1250 - '#required': true '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' @@ -858,11 +1005,13 @@ elements: |- visible: ':input[name="hankesuunnitelma_radios"]': value: '1' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '1' arviointi_muutokset_talous: '#type': textarea '#title': 'Talouteen liittyen; mitä?' '#maxlength': 1250 - '#required': true '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' @@ -870,11 +1019,13 @@ elements: |- visible: ':input[name="hankesuunnitelma_radios"]': value: '1' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '1' arviointi_muutokset_toiminta: '#type': textarea '#title': 'Toimintaan liittyen; mitä?' '#maxlength': 1250 - '#required': true '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' @@ -882,11 +1033,13 @@ elements: |- visible: ':input[name="hankesuunnitelma_radios"]': value: '1' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '1' arviointi_muutokset_aikataulu: '#type': textarea '#title': 'Aikatauluun liittyen; mitä?' '#maxlength': 1250 - '#required': true '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' @@ -894,11 +1047,13 @@ elements: |- visible: ':input[name="hankesuunnitelma_radios"]': value: '1' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '1' arviointi_haasteet: '#type': textarea '#title': 'Onko hanke kohdannut toimintaan vaikuttaneita haasteita? Jos, niin millaisia?' '#maxlength': 1250 - '#required': true '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' @@ -906,11 +1061,13 @@ elements: |- visible: ':input[name="hankesuunnitelma_radios"]': value: '1' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '1' arviointi_saavutettavuus: '#type': textarea '#title': 'Miten toiminta on tavoittanut osallistujia suhteessa tavoitteisiin?' '#maxlength': 1250 - '#required': true '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' @@ -918,12 +1075,14 @@ elements: |- visible: ':input[name="hankesuunnitelma_radios"]': value: '1' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '1' arviointi_avustus_kaytto: '#type': textarea '#help': 'Avustusehdot, kohta 10e: "Myönnetty avustus on palautettava Helsingin kaupungille, jos avustusta ei ole käytetty sinä aikana, jona se on avustuspäätöksen mukaan tullut käyttää.' '#title': 'Tuleeko ensimmäiselle hankekaudelle myönnetty avustus käytettyä näillä näkymin määräaikaan (31.5.2025) mennessä? Jos ei, niin avatkaa tähän johtaneita syitä.' '#maxlength': 1250 - '#required': true '#counter_type': character '#counter_maximum': 1250 '#counter_maximum_message': '%d/1250 merkkiä jäljellä' @@ -931,6 +1090,9 @@ elements: |- visible: ':input[name="hankesuunnitelma_radios"]': value: '1' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '1' 4_talousarvio: '#type': webform_wizard_page '#title': '4. Talousarvio' From 900e381c1db7eb6df9caef580746d6753c7ef406 Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Wed, 27 Nov 2024 11:10:07 +0200 Subject: [PATCH 60/95] Uhf 10711 fixes 3 (#1584) * UHF-10711: Last(?) fixes.. * UHF-10711: HDBT version --- composer.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.lock b/composer.lock index 7cfdef1fc1..d12e87a4fa 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": "c161d4f3133fa1d78cc822560407e714", + "content-hash": "38071525925e6bd7d00e824da7bdc2fb", "packages": [ { "name": "asm89/stack-cors", From dee63c5436ac4a93f55672a7313dfe871c39461c Mon Sep 17 00:00:00 2001 From: jeremysteerio <49063836+jeremysteerio@users.noreply.github.com> Date: Thu, 28 Nov 2024 09:49:25 +0200 Subject: [PATCH 61/95] UHF-10456: Sosiaali-, terveys- ja pelastustoimen yleisavustus (#1567) * UHF-10456: Add configs * UHF-10456: Add rest of necessary configs * UHF-10456: Fix translations * UHF-10456: Missing title translations * UHF-10456: Fix mismapping * UHF-10456: Fix phpcs --- conf/cmi/grants_metadata.settings.yml | 16 + .../en/webform.webform.sotepe_yleis.yml | 295 ++++++ .../sv/webform.webform.sotepe_yleis.yml | 297 ++++++ conf/cmi/webform.webform.sotepe_yleis.yml | 907 ++++++++++++++++++ .../src/Plugin/DataType/SotepeYleisData.php | 39 + .../Definition/SotepeyleisDefinition.php | 188 ++++ 6 files changed, 1742 insertions(+) create mode 100644 conf/cmi/language/en/webform.webform.sotepe_yleis.yml create mode 100644 conf/cmi/language/sv/webform.webform.sotepe_yleis.yml create mode 100644 conf/cmi/webform.webform.sotepe_yleis.yml create mode 100644 public/modules/custom/grants_metadata/src/Plugin/DataType/SotepeYleisData.php create mode 100644 public/modules/custom/grants_metadata/src/TypedData/Definition/SotepeyleisDefinition.php diff --git a/conf/cmi/grants_metadata.settings.yml b/conf/cmi/grants_metadata.settings.yml index 77ef0300af..fd564d5239 100644 --- a/conf/cmi/grants_metadata.settings.yml +++ b/conf/cmi/grants_metadata.settings.yml @@ -251,6 +251,16 @@ third_party_options: fi: 'KuvaErillis FI' en: 'KuvaErillis EN' sv: 'KuvaErillis SV' + 72: + id: SOTEPEYLEIS + code: SOTEPEYLEIS + dataDefinition: + definitionClass: Drupal\grants_metadata\TypedData\Definition\SotepeyleisDefinition + definitionId: grants_metadata_sotepeyleis + labels: + fi: 'Sosiaali-, terveys- ja pelastustoimen yleisavustus' + en: 'EN Sosiaali-, terveys- ja pelastustoimen yleisavustus' + sv: 'SV Sosiaali-, terveys- ja pelastustoimen yleisavustus' application_statuses: DRAFT: DRAFT SUBMITTED: SUBMITTED @@ -464,3 +474,9 @@ overridden_configuration: applicationOpen: '2024-01-03T11:08:26' applicationClose: '2029-07-30T11:19:00' disableCopying: 0 + - + 72: + grants_metadata: + applicationOpen: '2022-10-03T11:08:26' + applicationClose: '2029-07-30T11:19:00' + disableCopying: 0 diff --git a/conf/cmi/language/en/webform.webform.sotepe_yleis.yml b/conf/cmi/language/en/webform.webform.sotepe_yleis.yml new file mode 100644 index 0000000000..8e69b3da2e --- /dev/null +++ b/conf/cmi/language/en/webform.webform.sotepe_yleis.yml @@ -0,0 +1,295 @@ +title: 'General grants for social welfare, health care and rescue services' +elements: | + 1_hakijan_tiedot: + '#title': '1. Applicant details' + '#prev_button_label': 'Previous' + '#next_button_label': 'Next' + yhteiso_jolle_haetaan_avustusta: + '#title': 'Community for which the grant is being applied for' + prh_markup: + '#markup': '
The indicated information has been retrieved from the register of the Finnish Patent and Registration Office (PRH), and changing the information is only possible in the online service in question.
' + hakijan_tiedot: + '#title': Applicant + contact_person_email_section: + '#title': Email + contact_markup: + '#markup': 'Provide here a community email address that is actively read. Contact requests related to the grant application, such as requests for further clarification and completion, will be sent to the email address.' + email: + '#title': 'Email address' + '#help': 'Provide the email address to which you want the messages and notifications related to this application to be sent and which is actively read.' + contact_person_section: + '#title': 'Contact person for the application' + contact_person: + '#title': 'Contact person' + contact_person_phone_number: + '#title': 'Phone number' + osoite: + '#title': Address + community_address: + '#title': Address + '#help': 'If you want to add, delete or change address information, save the application as a draft and go to maintain the address information in your own data.' + '#community_address_select__title': 'Select the address' + tilinumero: + '#title': 'Account number' + bank_account: + '#title': 'Account number' + '#help': 'If you want to add, delete or change account number information, save the application as a draft and go to maintain the account number information in your own data.' + '#account_number_select__title': 'Select the account number' + '#account_number__title': '' + toiminnasta_vastaavat_henkilot: + '#title': 'Persons responsible for operations' + community_officials: + '#help': 'If you want to add, delete or change people, save the application as a draft and go to maintain the people's information in your own data.' + '#title': 'Persons responsible for operations' + '#multiple__add_more_button_label': 'Add person' + '#multiple__item_label': person + '#community_officials_select__title': 'Select official' + 2_avustustiedot: + '#title': '2. Grant details' + '#prev_button_label': 'Previous' + '#next_button_label': 'Next' + avustuksen_tiedot: + '#title': 'Grant details' + acting_year: + '#title': 'Year for which I am applying for a grant' + avustuslajit: + '#title': 'Types of grant' + subventions: + '#title': Grants + kayttotarkoitus: + '#title': 'Purpose of use' + compensation_purpose: + '#title': 'Brief description of the purpose(s) of the grant(s) applied for' + '#help': 'Indicate the purpose for which the grant is applied for. If necessary, specify the different uses. Also tell us what is intended to be achieved with the grant and what goals are associated with the activities to be supported.' + '#counter_maximum_message': '%d/5000 characters remaining' + who_benefits: + '#title': 'Who are the main beneficiaries of your activities?' + '#help': 'Describe who belong to your target group and possibly also how many target group members there are in your operational area. It is important that the target group description shows what kind of people you want and can reach or what kind of people and in what situation will benefit most from your activities.' + changes_on_success: + '#title': 'What kind of changes will take place if you succeed?' + '#help': 'Your activities may have many goals. Describe and assess the key changes you are seeking to achieve in your target group's functioning and in their everyday life, relationships or other aspects related to well-being and health or involvement, for example. So what will change if you have succeeded or what kind of phenomena do your activities prevent?' + results_of_activities: + '#title': 'What are the benefits of the activities to be supported?' + '#help': 'Briefly describe the effects of the activities and how they are achieved. You can describe the effects in the order in which they occur: which effects occur first and which after a little longer time. However, focus on the immediate effects of the activities.
You can indicate what is special about your activities or what (quality) factors need to be taken care of in order to achieve the desired effects. You can also describe how any cooperation you have pursued will contribute to achieving the effects.' + muut_samaan_tarkoitukseen_myonnetyt_avustukset: + '#title': 'Other grants received for the same purpose' + info_muut_samaan_tarkoitukseen_myonnetty: + '#markup': "

Indicate here only the grants received from somewhere other than the City of Helsinki in the current and two previous tax years.

\r\n\r\n
\r\n
\r\n
An affirmative answer opens a further question
\r\n
\r\n
\r\n" + olemme_saaneet_muita_avustuksia: + '#title': 'We have received other grants' + '#options': + 1: 'Yes' + 0: 'No' + myonnetty_avustus: + '#title': 'Received grant' + '#multiple__no_items_message': 'No values entered. Add the new grant granted below.' + '#multiple__add_more_button_label': 'Add new received grant' + '#element': + issuer: + '#options': + 1: State + 3: EU + 4: Other + 5: Foundation + '#title': ' Grant issuer' + issuer_name: + '#title': 'Issuer''s name' + '#help': 'Which body has granted the grant (e.g. name of the ministry)' + year: + '#title': Year + '#pattern_error': 'Enter a year between 1900 - 2100' + amount: + '#title': 'Amount of grant granted' + purpose: + '#title': ' Description of intended use' + '#help': 'Give a brief description, for what purpose has the grant been granted?' + '#counter_maximum_message': '%d/1000 characters remaining' + muut_samaan_tarkoitukseen_haetut_avustukset: + '#title': 'Other grants applied for to be used for the same purpose' + info_muut_samaan_tarkoitukseen_haettu: + '#markup': "

Indicate here only the grants that have been applied for from somewhere other than the City of Helsinki and for which the decisions have not been made yet.

\r\n\r\n
\r\n
\r\n
An affirmative answer opens a further question
\r\n
\r\n
\r\n" + olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: + '#title': 'We have applied for grants from somewhere other than the City of Helsinki' + '#options': + 1: 'Yes' + 0: 'No' + haettu_avustus_tieto: + '#title': 'Add new grant applied for' + '#multiple__no_items_message': 'No values ​​entered. Add a new applied for grant below.' + '#multiple__add_more_button_label': 'Add new grant applied for' + '#element': + issuer: + '#options': + 1: State + 3: EU + 4: Other + 5: Foundation + '#title': 'Grant issuer' + issuer_name: + '#title': 'Issuer''s name' + '#help': 'Which body has granted the grant (e.g. name of the ministry)' + year: + '#title': Year + '#pattern_error': 'Enter a year between 1900 - 2100' + amount: + '#title': 'The amount of the grant applied for' + purpose: + '#title': 'Description of intended use' + '#help': 'Give a brief description, for what purpose has the grant been granted?' + '#counter_maximum_message': '%d/1000 characters remaining' + edellisen_avustuksen_kayttoselvitys: + '#title': 'Report on the use of the previous grant' + compensation_boolean_info: + '#markup': "
\r\n
\r\n
An affirmative answer opens a further question
\r\n
\r\n
\r\n" + compensation_boolean: + '#title': 'Report on the use of the grant I received in the previous year' + '#options': + - 'I have not received a grant from the City of Helsinki for the same purpose in the previous year.' + - 'I received a grant from the city of Helsinki for the same purpose last year.' + markup: + '#markup': 'Provide a report on the use of the grant received from the City of Helsinki. A report on the use of the grant must be drawn up for the grant concerning the previous accounting period. A report on the use should not be drawn up for the current accounting period. Providing the report on the use is a prerequisite for receiving the next grant. If no report on the use is provided, the grant will not be awarded or paid. A grant awarded may be recovered if the use of the previous grant has not been satisfactorily reported.' + compensation_explanation: + '#title': 'Report on the use of the grant' + '#help': 'The report on the use must briefly describe how the received grant has been used. The recipient must arrange its accounting in such a way that it is possible to monitor the use of the grant. For example, if a community has received a lease grant, the profit and loss account in the financial statements must show the grant in both income and expenses. Further information on the use of the grant can also be written in a separate attachment, which can be returned under Report on the use.' + '#counter_maximum_message': '%d/5000 characters remaining' + 3_yhteison_tiedot: + '#title': '3. Activities of the community' + '#prev_button_label': 'Previous' + '#next_button_label': 'Next' + business_info: + '#title': 'Description of activities' + business_purpose: + '#title': 'Description of activities' + '#help': 'If you want to add, remove or change the description of activities, save the application as a draft and go to your data to maintain the description of activities.' + '#counter_maximum_message': '%d/500 characters remaining' + community_practices_business: + '#title': 'Is the entity engaged in business?' + '#options': + 1: 'Yes' + 0: 'No' + ensimmainen_otsikko: + '#title': 'Membership fees' + fee_person: + '#title': 'Individual membership fee (€/year)' + fee_community: + '#title': 'Community member (€/year)' + jasenmaara: + '#title': 'Numbers of members' + jasenmaara_fieldset: + '#title': 'Numbers of members' + '#help': 'If the community has members, please list them here.' + members_applicant_person_global: + '#title': 'Total number of individual members' + '#help': 'How many individual members does the community currently have who have paid the membership fee?' + members_applicant_person_local: + '#title': 'Total number of individual members in Helsinki' + '#help': 'How many individual members does the community currently have in Helsinki who have paid the membership fee?' + members_applicant_community_global: + '#title': 'Community members' + '#help': 'How many community members does the community currently have who have paid the membership fee? Community members are non-individual members, such as associations, foundations, companies or municipalities.' + members_applicant_community_local: + '#title': 'Total number of community members in Helsinki' + '#help': 'How many community members does the community currently have in Helsinki who have paid the membership fee? Community members are non-individual members, such as associations, foundations, companies or municipalities.' + lisatiedot_ja_liitteet: + '#title': '4. Additional information and attachments' + lisatietoja_hakemukseen_liittyen: + '#title': 'Additional information concerning the application' + additional_information: + '#title': 'Additional information' + '#help': 'If necessary, you can write additional information or other justifications related to the application.' + '#counter_maximum_message': '%d/5000 characters remaining' + liitteet: + '#title': Attachments + attachments_info: + '#markup': |- +

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.

+

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

+

If the required attachments have already been submitted as attachments to another grant application addressed to the City of Helsinki, the same attachments do not need to be submitted again. The confirmed financial statements, annual report, action plan and budget of the community cannot be different from one application to another. In this case, under the submitted attachments, indicate “The attachment has been submitted as a single file or with another application”.

+ notification_attachments: + '#markup': "
\r\n
\r\n
The contents of the attachments cannot be viewed afterwards
\r\n\r\n
\r\n

Please note that you will not be able to open the attachments after you have attached them to the form. You will only see the file name of the attachment.

\r\n\r\n

Although you cannot view the attachments afterwards, the attachments to the form are sent along with the other information on the form to the grant application processor.

\r\n
\r\n
\r\n
\r\n" + yhteison_saannot: + '#title': 'Community Rules' + '#help': 'A new applicant or the rules have changed.' + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + vahvistettu_tilinpaatos: + '#title': 'Confirmed financial statements (for the previous accounting period)' + '#help': "The financial statements must include at least the profit and loss account and the balance sheet. An association must append to this section the financial statements confirmed and signed at the association’s annual meeting. \r\nThe community’s accounting period may be a calendar year or some other period. In the case of associations, their own rules state what the association’s accounting period is." + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + vahvistettu_toimintakertomus: + '#title': 'Confirmed annual report (for the previous accounting period)' + '#help': "An association must append to this section the annual report confirmed at the association’s annual meeting. If the annual report is part of the financial statements and you have already appended it to the form with the financial statements, it does not need to be appended here separately. In this case, under the annual report, indicate “The attachment has been submitted as a single file or with another application”." + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + vahvistettu_tilin_tai_toiminnantarkastuskertomus: + '#title': 'Confirmed audit or performance audit report (for the previous accounting period)' + '#help': "An association must append to this section the annual report confirmed at the association’s annual meeting. If the annual report is part of the financial statements and you have already appended it to the form with the financial statements, it does not need to be appended here separately. In this case, under the annual report, indicate “The attachment has been submitted as a single file or with another application”." + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + vuosikokouksen_poytakirja: + '#title': 'Minutes of the annual meeting confirming the financial statements for the previous accounting period' + '#help': 'Append here the minutes of the community meeting in which the financial statements for the previous accounting period are confirmed and discharge from liability granted. For associations, the financial statements are always confirmed at the association’s annual meeting. If the community is not required to have an annual meeting or other community meeting at which the financial statements should be approved and discharge from liability granted, this attachment does not need to be submitted.' + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + toimintasuunnitelma: + '#title': 'Action plan (for the year for which you are applying for a grant)' + '#help': 'Append here the action plan for the whole community.' + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + talousarvio: + '#title': 'Budget (for the year for which you are applying for a grant)' + '#help': 'Budget (for the year for which you are applying for a grant)' + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + extra_info: + '#title': 'Further clarification on attachments' + '#counter_maximum_message': '%d/5000 characters remaining' + muu_liite: + '#title': 'Other attachment' + '#multiple__add_more_button_label': 'Add attachment' + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + actions: + '#submit__label': Submit + '#draft__label': 'Save as draft' + '#wizard_prev__label': 'Previous' + '#wizard_next__label': 'Next' + '#preview_prev__label': 'Previous' + '#preview_next__label': 'Preview' + '#delete__label': ' Delete unfinished' +settings: + wizard_prev_button_label: Previous + wizard_next_button_label: Next + preview_label: '5. Confirm, preview, and submit' + preview_title: 'Confirm, preview, and submit' + wizard_confirmation_label: '6. Complete' diff --git a/conf/cmi/language/sv/webform.webform.sotepe_yleis.yml b/conf/cmi/language/sv/webform.webform.sotepe_yleis.yml new file mode 100644 index 0000000000..8b080c478e --- /dev/null +++ b/conf/cmi/language/sv/webform.webform.sotepe_yleis.yml @@ -0,0 +1,297 @@ +title: 'Allmänt understöd inom social-, hälsovårds- och räddningssektorn' +elements: | + 1_hakijan_tiedot: + '#title': '1. Sökandens uppgifter' + '#prev_button_label': '< Tidigare' + '#next_button_label': 'Nästa' + yhteiso_jolle_haetaan_avustusta: + '#title': 'Samfund för vilket understödet ansöks' + prh_markup: + '#markup': '
De markerade uppgifterna har hämtats från Patent- och registerstyrelsens register (PRH) och det är endast möjligt att ändra uppgifterna i nättjänsten i fråga.
' + hakijan_tiedot: + '#title': Sökande + contact_person_email_section: + '#title': E-post + contact_markup: + '#markup': 'Ange här samfundets e-postadress som läses aktivt. Till e-postadressen skickas kontaktförfrågningar som är relaterade till ansökan om understöd, såsom begäranden om tilläggsutredning och komplettering' + email: + '#title': E-postadress + '#help': 'Ange en e-postadress dit meddelandena och begärandena relaterade till denna ansökan kommer att skickas och som läses aktivt.' + contact_person_section: + '#title': 'Kontaktperson för ansökan' + contact_person: + '#title': Kontaktperson + contact_person_phone_number: + '#title': Telefonnummer + osoite: + '#title': Adress + community_address: + '#title': Adress + '#help': 'Om du vill lägga till, ta bort eller ändra adressuppgifter, spara ansökan som ett utkast och gå till att behålla adressuppgifterna i dina egna uppgifter.' + '#community_address_select__title': 'Välj en adress' + tilinumero: + '#title': Kontonummer + bank_account: + '#title': Kontonummer + '#help': 'Om du vill lägga till, radera eller ändra kontonummerinformation, spara applikationen som ett utkast och gå till att behålla kontonummerinformationen i din egen data.' + '#account_number_select__title': 'Välj ett kontonummer' + '#account_number__title': '' + toiminnasta_vastaavat_henkilot: + '#title': 'Personer som ansvarar för verksamheten' + community_officials: + '#help': 'Om du vill lägga till, ta bort eller ändra personer, spara applikationen som ett utkast och gå till att underhålla personernas information i din egen data.' + '#title': 'Personer som ansvarar för verksamheten' + '#multiple__add_more_button_label': 'Lägg till en person' + '#multiple__item_label': person + '#community_officials_select__title': 'Välj motsvarande person' + '#role__title': Roll + '#email__title': E-post + '#phone__title': Telefonnummer + 2_avustustiedot: + '#title': '2. Uppgifter om understödet' + '#prev_button_label': 'Tidigare' + '#next_button_label': 'Nästa' + avustuksen_tiedot: + '#title': 'Uppgifter om understödet' + acting_year: + '#title': 'År för vilket jag ansöker om understöd' + avustuslajit: + '#title': 'Understödskatego­rier' + subventions: + '#title': Understöd + kayttotarkoitus: + '#title': 'Användningsända­mål' + compensation_purpose: + '#title': 'En kort beskrivning av användningsändamålet för det/de understöd som ansöks' + '#help': 'Ange för vilket ändamål understödet ansöks och vid behov specificera de olika ändamålen. Ange också vad understödet är avsett för och vilka mål som är relaterade till den understödda verksamheten.' + '#counter_maximum_message': '%d/5000 tecken kvar' + who_benefits: + '#title': 'Who are the main beneficiaries of your activities?' + '#help': 'Beskriv vem som hör till er målgrupp och eventuellt också hur många av dem som hör till er målgrupp det finns i ert verksamhetsområde. I beskrivningen av målgruppen är det viktigt att det framgår vilka slags människor just ni önskar och kan bemöta, eller de situationer i vilka människor får den största nyttan av er verksamhet.' + changes_on_success: + '#title': 'What kind of changes will take place if you succeed?' + '#help': 'Er verksamhet kan ha flera mål. Beskriv och bedöm här de centrala förändringar som ni eftersträvar exempelvis i er målgrupps funktionsförmåga, vardag, människorelationer eller andra aspekter som anknyter till välfärd och hälsa eller delaktighet. Vilka slags förändringar kommer det alltså att ske om ni lyckas eller vilka slags fenomen förebygger er verksamhet?' + results_of_activities: + '#title': 'What are the benefits of the activities to be supported?' + '#help': 'Beskriv kort vilka effekter som uppnås genom verksamheten och på vilket sätt de uppstår. Du kan beskriva effekterna i den ordning de sker: vilka effekter uppstår först och vilka efter en längre tid. Koncentrera dig dock på verksamhetens omedelbara effekter.
Du kan även berätta vad som är speciellt med er verksamhet eller vilka (kvalitets)faktorer som bör beaktas särskilt för att de effekter som eftersträvas ska uppnås. Du kan även beskriva hur något samarbete ni har främjar uppnåendet av effekterna.' + muut_samaan_tarkoitukseen_myonnetyt_avustukset: + '#title': 'Övriga understöd som beviljats för samma ändamål' + info_muut_samaan_tarkoitukseen_myonnetty: + '#markup': "

Ange här endast de understöd som beviljats från annanstans än Helsingfors stad under det innevarande beskattningsåret eller de föregående två beskattningsåren.

\r\n\r\n
\r\n
\r\n
Ett jakande svar öppnar ytterligare en fråga
\r\n
\r\n
\r\n" + olemme_saaneet_muita_avustuksia: + '#title': 'Vi har fått andra understöd' + '#options': + 1: Ja + 0: Nej + myonnetty_avustus: + '#title': 'Bidrag beviljat' + '#multiple__no_items_message': 'Inga värden har angetts. Lägg till det nya beviljade bidraget nedan.' + '#multiple__add_more_button_label': 'Lägg till understöd som beviljats' + '#element': + issuer: + '#options': + 1: Stat + 3: EU + 4: Övrig + 5: Fundament + '#title': Bidragsgivare + issuer_name: + '#title': 'Emittentens namn' + '#help': 'Vilket organ har beviljat bidraget (t.ex. namnet på departementet)' + year: + '#title': År + '#pattern_error': 'Ange ett årtal' + amount: + '#title': 'Beviljat bidragsbelopp' + purpose: + '#title': 'Beskrivning av avsedd användning' + '#help': 'Ge en kort beskrivning, i vilket syfte har bidraget beviljats?' + '#counter_maximum_message': '%d/1000 tecken kvar' + muut_samaan_tarkoitukseen_haetut_avustukset: + '#title': 'Övriga understöd som ansökts för samma ändamål' + info_muut_samaan_tarkoitukseen_haettu: + '#markup': "

Ange här endast de understöd som har ansökts från annanstans än Helsingfors stad, men beslut har ännu inte fattats.

\r\n\r\n
\r\n
\r\n
Ett jakande svar öppnar ytterligare en fråga
\r\n
\r\n
\r\n" + olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: + '#title': 'Vi har ansökt om understöd från annanstans än Helsingfors stad.' + '#options': + 1: Ja + 0: Nej + haettu_avustus_tieto: + '#title': 'Lägg till nytt understöd som ansökts' + '#multiple__no_items_message': 'Inga värden har angetts. Lägg till ett nytt ansökt bidrag nedan.' + '#multiple__add_more_button_label': 'Lägg till nytt understöd som ansökts' + '#element': + issuer: + '#options': + 1: Stat + 3: EU + 4: Övrig + 5: Fundament + '#title': Bidragsgivare + issuer_name: + '#title': 'Emittentens namn' + '#help': 'Vilket organ har beviljat bidraget (t.ex. namnet på departementet)' + year: + '#title': År + '#pattern_error': 'Ange ett årtal' + amount: + '#title': 'Beviljat bidragsbelopp' + purpose: + '#title': 'Beskrivning av avsedd användning' + '#help': 'Ge en kort beskrivning, i vilket syfte har bidraget beviljats?' + '#counter_maximum_message': '%d/1000 tecken kvar' + edellisen_avustuksen_kayttoselvitys: + '#title': 'Redovisning om det tidigare understödet' + compensation_boolean_info: + '#markup': "
\r\n
\r\n
Ett jakande svar öppnar ytterligare en fråga
\r\n
\r\n
\r\n" + compensation_boolean: + '#title': 'Redovisning om understödet som jag fick under det föregående året' + '#options': + - 'Jag har inte fått bidrag från Helsingfors stad för samma ändamål föregående år.' + - 'Jag fick ett bidrag från Helsingfors stad för samma ändamål förra året.' + markup: + '#markup': 'Ge en redovisning om understödet som fåtts från Helsingfors stad. Redovisningen görs om understödet som beviljats för den senaste avslutade räkenskapsperioden. Redovisning görs inte om den innevarande räkenskapsperioden. Redovisningen krävs för att få ett nytt understöd. Om en redovisning inte görs, kommer ett understöd inte att beviljas eller betalas ut. Det beviljade understödet kan återkrävas om användningen av det tidigare understödet inte har redogjorts för på ett tillfredsställande sätt.' + compensation_explanation: + '#title': 'Redovisning om användningen av understödet' + '#help': 'I redovisningen ska det kortfattat anges hur det beviljade understödet har använts. Understödstagaren ska ordna sin bokföring så att användningen av understödet kan följas där. Om samfundet till exempel har fått hyresunderstöd ska det av resultaträkningen i bokslutet framgå både intäkter och utgifter vad gäller understödet. Mer information om användningen av understödet kan också skrivas i en separat bilaga som kan läggas till och skickas som Annan bilaga.' + '#counter_maximum_message': '%d/5000 tecken kvar' + 3_yhteison_tiedot: + '#title': '3. Samfundets verksamhet' + '#prev_button_label': 'Tidigare' + '#next_button_label': 'Nästa' + business_info: + '#title': Verksamhets­beskrivning + business_purpose: + '#title': Verksamhets­beskrivning + '#help': 'Om du vill lägga till, ta bort eller ändra verksamhetsbeskrivningen, spara ansökan som ett utkast och gå till dina uppgifter för att redigera verksamhetsbeskrivningen.' + '#counter_maximum_message': '%d/500 tecken kvar' + community_practices_business: + '#title': 'Bedriver samfundet affärsverksamhet' + '#options': + 1: Ja + 0: Nej + ensimmainen_otsikko: + '#title': Medlemsavgifter + fee_person: + '#title': 'Medlemsavgift för personmedlemmar (€/år)' + fee_community: + '#title': 'Samfundsmedlem (€/år)' + jasenmaara: + '#title': 'Antal medlemmar' + jasenmaara_fieldset: + '#title': Medlemskap + '#help': 'Om gruppen har medlemmar, vänligen ange dem här.' + members_applicant_person_global: + '#title': 'Personmedlemmar sammanlagt' + '#help': 'Hur många personmedlemmar som har betalat medlemsavgiften har samfundet för närvarande?' + members_applicant_person_local: + '#title': 'Personmedlemmar från Helsingfors sammanlagt' + '#help': 'Hur många personmedlemmar från Helsingfors som har betalat medlemsavgiften har samfundet för närvarande?' + members_applicant_community_global: + '#title': Samfundsmedlemmar + '#help': 'Hur många samfundsmedlemmar som har betalat medlemsavgiften har samfundet för närvarande? Samfundsmedlemmar är andra än personmedlemmar, såsom föreningar, stiftelser, företag eller kommuner.' + members_applicant_community_local: + '#title': 'Samfundsmedlemmar från Helsingfors sammanlagt' + '#help': 'Hur många samfundsmedlemmar från Helsingfors som har betalat medlemsavgiften har samfundet för närvarande? Samfundsmedlemmar är andra än personmedlemmar, såsom föreningar, stiftelser, företag eller kommuner.' + lisatiedot_ja_liitteet: + '#title': '4. Ytterligare information och bilagor' + lisatietoja_hakemukseen_liittyen: + '#title': 'Ytterligare information för ansökan' + additional_information: + '#title': 'Ytterligare information' + '#help': 'Här kan du vid behov skriva ytterligare information eller andra motiveringar som rör ansökan.' + '#counter_maximum_message': '%d/5000 tecken kvar' + liitteet: + '#title': Bilagor + attachments_info: + '#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.

+

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

+

Om de erforderliga bilagorna redan har lämnats in som bilaga till en annan ansökan om understöd till Helsingfors stad, behöver samma bilagor inte lämnas in igen. Samfundets fastställda bokslut, verksamhetsberättelse, verksamhetsplan och budget får inte vara olika i bilagor till de olika ansökningarna. Ange i detta fall vid de inlämnade bilagorna att ”Bilagan har lämnats in som en fil eller i samband med en annan ansökan”.

+ notification_attachments: + '#markup': "
\r\n
\r\n
Innehållet i bilagorna kan inte granskas i efterhand
\r\n\r\n
\r\n

Observera att du inte kan öppna bilagorna efter att du har bifogat dem blanketten. Du ser bara bilagans filnamn.

\r\n\r\n

Även om du inte kan granska innehållet i bilagorna i efterhand skickas bilagorna som bifogats blanketten med övriga uppgifter till personen som behandlar ansökan om understöd.

\r\n
\r\n
\r\n
\r\n" + yhteison_saannot: + '#title': 'Samfundets stadgar' + '#help': 'En ny sökande eller reglerna har ändrats.' + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + vahvistettu_tilinpaatos: + '#title': 'Fastställt bokslut (för den föregående avslutade räkenskapsperioden)' + '#help': "Bokslutet ska innehålla minst resultaträkningen och balansräkningen. Samfundet ska till denna punkt lägga till bokslutet som godkänts och undertecknats vid samfundets medlemsmöte. Samfundets räkenskapsperiod kan vara ett kalenderår eller en annan period. Vad gäller samfund anges det i deras egna stadgar vad samfundets räkenskapsperiod är." + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + vahvistettu_toimintakertomus: + '#title': 'Fastställd verksamhetsberättelse (för den föregående avslutade räkenskapsperioden)' + '#help': "Samfundet ska till denna punkt bifoga verksamhetsberättelsen som godkänts och undertecknats vid samfundets medlemsmöte. Om verksamhetsberättelsen ingår i bokslutet och du redan har bifogat den blanketten, behöver den inte bifogas separat. Ange i detta fall vid verksamhetsberättelsen att ”Bilagan har lämnats in som en fil eller i samband med en annan ansökan”." + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + vahvistettu_tilin_tai_toiminnantarkastuskertomus: + '#title': 'Fastställd revisionsberättelse (för det föregående avslutade räkenskapsåret)' + '#help': "Bifoga den undertecknade revisionsberättelsen för samfundets senaste avslutade räkenskapsperiod här. Om den undertecknade revisionsberättelsen ingår i samfundets bokslut och du redan bifogat den till blanketten i samband med bokslutet, ange ”Bilagan har lämnats in som en fil eller i samband med en annan ansökan” här." + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + vuosikokouksen_poytakirja: + '#title': 'Protokoll från årsstämman med det godkända bokslutet för den föregående räkenskapsperioden' + '#help': 'Bifoga protokollet från samfundets möte här, där bokslutet för den föregående avslutade räkenskapsperioden har godkänts och ansvarsfrihet beviljats. Samfundens bokslut fastställs alltid vid samfundets medlemsmöte. Om samfundet inte är skyldigt att ha ett årsmöte eller annat samfundsmöte där bokslutet bör godkännas och ansvarsfrihet beviljas, behöver denna bilaga inte lämnas in.' + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + toimintasuunnitelma: + '#title': 'Verksamhetsplan (för det år du ansöker om understödet)' + '#help': 'Bifoga verksamhetsplanen för hela för samfundet här.' + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + talousarvio: + '#title': 'Budget (för det år du ansöker om understödet)' + '#help': 'Budget (för det år du ansöker om understödet)' + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + extra_info: + '#title': 'Ytterligare information om bilagorna' + '#counter_maximum_message': '%d/5000 tecken kvar' + muu_liite: + '#title': 'Annan bilaga' + '#multiple__add_more_button_label': 'Lägg till en bilaga' + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + actions: + '#submit__label': Skicka + '#draft__label': 'Spara som oavslutad' + '#wizard_prev__label': 'Tidigare' + '#wizard_next__label': 'Nästa' + '#preview_prev__label': 'Tidigare' + '#preview_next__label': 'För förhandsvisning' + '#delete__label': ' Radera oavslutat' +settings: + wizard_prev_button_label: Tidigare + wizard_next_button_label: Nästa + preview_label: '5. Bekräfta, förhandsgranska och skicka' + preview_title: 'Bekräfta, förhandsgranska och skicka' + wizard_confirmation_label: '6. Slutförd' diff --git a/conf/cmi/webform.webform.sotepe_yleis.yml b/conf/cmi/webform.webform.sotepe_yleis.yml new file mode 100644 index 0000000000..59baeea245 --- /dev/null +++ b/conf/cmi/webform.webform.sotepe_yleis.yml @@ -0,0 +1,907 @@ +uuid: a8d4d2d7-30bf-4091-a86f-978b99358957 +langcode: fi +status: open +dependencies: + module: + - grants_handler + - grants_metadata +third_party_settings: + grants_metadata: + applicationTypeSelect: '72' + applicationType: SOTEPEYLEIS + applicationTypeID: '72' + applicationIndustry: KANSLIA + applicantTypes: + registered_community: registered_community + applicationTypeTerms: + 49: '49' + applicationTargetGroup: '30' + applicationOpen: '2022-10-03T11:08:26' + applicationClose: '2029-07-30T11:19:00' + applicationActingYearsType: next_x_years + applicationActingYears: { } + applicationActingYearsNextCount: '1' + applicationContinuous: 0 + disableCopying: 0 + status: development + parent: d8472e68-d6bd-4de2-a409-f0a177bf9e94 + avus2BreakingChange: 0 +weight: 0 +open: null +close: null +uid: 1 +template: false +archive: false +id: sotepe_yleis +title: 'Sosiaali-, terveys- ja pelastustoimen yleisavustus' +description: '

SOTEPEYLEIS

' +categories: + - Kehityksessä +elements: |- + applicant_type: + '#type': hidden + '#title': 'Applicant type' + avustukset_summa: + '#type': grants_webform_summation_field + '#title': 'Avustukset summa' + '#title_display': none + '#description_display': invisible + '#collect_field': + subventions%%amount: subventions%%amount + application_number: 0 + status: 0 + hakijan_tiedot: 0 + email: 0 + contact_person: 0 + contact_person_phone_number: 0 + community_address: 0 + bank_account: 0 + community_officials: 0 + acting_year: 0 + subventions%%subventionTypeTitle: 0 + subventions%%subventionType: 0 + compensation_purpose: 0 + olemme_saaneet_muita_avustuksia: 0 + myonnetty_avustus: 0 + benefits_loans: 0 + benefits_premises: 0 + compensation_boolean: 0 + compensation_explanation: 0 + business_purpose: 0 + community_practices_business: 0 + fee_person: 0 + fee_community: 0 + members_applicant_person_local: 0 + members_applicant_person_global: 0 + members_applicant_community_local: 0 + members_applicant_community_global: 0 + additional_information: 0 + yhteison_saannot: 0 + vahvistettu_tilinpaatos: 0 + vahvistettu_toimintakertomus: 0 + vahvistettu_tilin_tai_toiminnantarkastuskertomus: 0 + vuosikokouksen_poytakirja: 0 + toimintasuunnitelma: 0 + talousarvio: 0 + extra_info: 0 + muu_liite: 0 + '#data_type': euro + '#form_item': hidden + 1_hakijan_tiedot: + '#type': webform_wizard_page + '#title': '1. Hakijan tiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + application_number: + '#type': hidden + '#title': Hakemusnumero + '#disabled': true + status: + '#type': hidden + '#title': 'Hakemuksen tila' + '#readonly': true + yhteiso_jolle_haetaan_avustusta: + '#type': webform_section + '#title': 'Yhteisö, jolle haetaan avustusta' + '#attributes': + class: + - grants-profile--imported-section + prh_markup: + '#type': webform_markup + '#markup': '
Tiedot on haettu Patentti- ja rekisterihallinnon rekisteristä (PRH), eikä niitä voi tämän takia muokata.
' + hakijan_tiedot: + '#type': applicant_info + '#title': Hakija + contact_person_email_section: + '#type': webform_section + '#title': Sähköposti + contact_markup: + '#type': webform_markup + '#markup': 'Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.' + email: + '#type': email + '#title': Sähköpostiosoite + '#required': true + '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' + '#size': 63 + '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' + contact_person_section: + '#type': webform_section + '#title': 'Hakemuksen yhteyshenkilö' + contact_person: + '#type': textfield + '#title': Yhteyshenkilö + '#attributes': + class: + - webform--large + '#autocomplete': 'off' + '#required': true + '#size': 63 + contact_person_phone_number: + '#type': textfield + '#title': Puhelinnumero + '#attributes': + class: + - webform--medium + '#required': true + '#autocomplete': 'off' + '#size': 32 + osoite: + '#type': webform_section + '#title': Osoite + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + community_address: + '#type': community_address_composite + '#title': 'Yhteisön osoite' + '#help': 'Jos haluat lisätä, poistaa tai muuttaa osoitetietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään osoitetietoa omiin tietoihin.' + '#attributes': + class: + - webform--large + '#required': true + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + tilinumero: + '#type': webform_section + '#title': Tilinumero + bank_account: + '#type': bank_account_composite + '#title': Tilinumero + '#help': 'Jos haluat lisätä, poistaa tai muuttaa tilinumerotietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään tilinumerotietoa omiin tietoihin.' + '#attributes': + class: + - webform--medium + '#required': true + toiminnasta_vastaavat_henkilot: + '#type': webform_section + '#title': 'Toiminnasta vastaavat henkilöt' + '#states': + visible: + ':input[name="applicant_type"]': + '!value': private_person + community_officials: + '#type': community_officials_composite + '#help': 'Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.' + '#title': 'Valitse toiminnasta vastaavat henkilöt' + '#multiple': true + '#multiple__item_label': henkilö + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää henkilö' + '#wrapper_attributes': + class: + - community_officials_wrapper + '#attributes': + class: + - webform--large + 2_avustustiedot: + '#type': webform_wizard_page + '#title': '2. Avustustiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + avustuksen_tiedot: + '#type': webform_section + '#title': 'Avustuksen tiedot' + acting_year: + '#type': select + '#title': 'Vuosi, jolle haen avustusta' + '#options': + 2022: '2022' + 2023: '2023' + 2024: '2024' + '#required': true + avustuslajit: + '#type': webform_section + '#title': Avustuslajit + subventions: + '#type': grants_compensations + '#title': Avustukset + '#multiple': true + '#subventionType': + 6: '6' + '#onlyOneSubventionPerApplication': 1 + '#required': true + '#multiple__header': true + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more': false + '#attributes': + class: + - subventions + '#subvention_type': + 1: '1' + 6: '6' + '#subvention_type_id__access': false + '#subvention_type__title': Avustuslaji + '#subvention_amount__title': 'Avustuksen summa' + kayttotarkoitus: + '#type': webform_section + '#title': 'Mihin avustus käytetään?' + compensation_purpose: + '#type': textarea + '#title': 'Lyhyt kuvaus haettavan / haettavien avustusten käyttötarkoituksista' + '#help': 'Kerro mitä tarkoitusta varten avustusta haetaan, erittele tarvittaessa eri käyttökohteet. Kerro myös mitä avustuksella on tarkoitus saada aikaiseksi ja millaisia tavoitteita avustettavaan toimintaan liittyy.' + '#required': true + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#cols': 63 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + who_benefits: + '#type': textarea + '#title': 'Ketkä toiminnastanne erityisesti hyötyvät?' + '#help': 'Kuvaa keitä kohderyhmäänne kuuluu ja mahdollisesti myös kuinka paljon kohderyhmään kuuluvia toiminta-alueellanne on. Kohderyhmän kuvauksessa on tärkeää, että siitä käy ilmi minkälaisia ihmisiä juuri te haluatte ja osaatte kohdata, tai millaisessa tilanteessa olevat hyötyvät toiminnastanne eniten.' + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#cols': 63 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#states': + visible: + ':input[name="avustukset_summa"]': + value: + greater_equal: '10000' + required: + ':input[name="avustukset_summa"]': + value: + greater_equal: '10000' + changes_on_success: + '#type': textarea + '#title': 'Minkälaisia muutoksia tapahtuu, jos onnistutte?' + '#help': 'Toiminnallanne voi olla monia tavoitteita. Kuvatkaa ja arvioikaa tässä keskeiset muutokset, joita tavoittelette esimerkiksi kohderyhmänne toimintakyvyssä, arjessa, ihmissuhteissa tai muussa hyvinvointiin ja terveyteen tai osallisuuteen liittyvässä asiassa. Mikä siis muuttuu, jos olette onnistuneet tai minkälaisia ilmiöitä toimintanne ennaltaehkäisee?' + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#cols': 63 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#states': + visible: + ':input[name="avustukset_summa"]': + value: + greater_equal: '10000' + required: + ':input[name="avustukset_summa"]': + value: + greater_equal: '10000' + results_of_activities: + '#type': textarea + '#title': 'Minkälaisia hyötyjä avustettavan toiminnan seurauksena syntyy?' + '#help': 'Kuvaa lyhyesti, mitä vaikutuksia toiminnalla saadaan aikaan ja millä tavoin ne syntyvät. Voit kuvata vaikutukset niiden tapahtumisjärjestyksessä: mitä vaikutuksia syntyy ensin, ja mitä vähän pidemmän ajan kuluttua. Keskity kuitenkin toiminnan välittömiin vaikutuksiin.
Voit myös kertoa, mikä toiminnassanne on erityistä tai mistä (laatu)tekijöistä on erityisesti huolehdittava, että tavoiteltavia vaikutuksia saavutetaan. Voit myös kuvata, miten jokin tekemänne yhteistyö edistää vaikutusten saavuttamista.' + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#cols': 63 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#states': + visible: + ':input[name="avustukset_summa"]': + value: + greater_equal: '10000' + required: + ':input[name="avustukset_summa"]': + value: + greater_equal: '10000' + muut_samaan_tarkoitukseen_myonnetyt_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen myönnetyt avustukset' + info_muut_samaan_tarkoitukseen_myonnetty: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on myönnetty muualta kuin Helsingin kaupungilta kuluvana tai kahtena edellisenä verovuotena. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_saaneet_muita_avustuksia: + '#type': radios + '#title': 'Olemme saaneet muita avustuksia' + '#description_display': before + '#options': + 1: Kyllä + 0: Ei + myonnetty_avustus: + '#type': webform_custom_composite + '#title': 'Myönnetty avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + required: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'myönnetty avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi myönnetty avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi myönnetty avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + 6: STEA + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#attributes': + class: + - webform--large + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + year: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': Vuosi + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#attributes': + class: + - webform--small + '#required': true + '#title': 'Myönnetyn avustuksen summa' + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + edellisen_avustuksen_kayttoselvitys: + '#type': webform_section + '#title': 'Edellisen avustuksen käyttöselvitys' + compensation_boolean_info: + '#type': webform_markup + '#markup': | +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ compensation_boolean: + '#type': radios + '#title': 'Käyttöselvitys edellisenä vuonna saamastani avustuksesta' + '#options': + - 'En ole saanut Helsingin kaupungilta avustusta samaan käyttötarkoitukseen edellisenä vuonna.' + - 'Olen saanut Helsingin kaupungilta avustusta samaan käyttötarkoitukseen edellisenä vuonna.' + '#required': true + markup: + '#type': webform_markup + '#states': + visible: + ':input[name="compensation_boolean"]': + value: '1' + '#markup': 'Anna käyttöselvitys Helsingin kaupungilta saadusta avustuksesta. Avustuksen käyttöselvitys tehdään avustuksesta, joka koskee viimeisintä päättynyttä tilikautta. Käyttöselvitystä ei tehdä käynnissä olevalta tilikaudelta. Käyttöselvityksen antaminen on seuraavan avustuksen saamisen ehtona. Mikäli käyttöselvitystä ei tehdä, avustusta ei myönnetä eikä makseta. Myönnetty avustus voidaan periä takaisin, jos edellisen avustuksen käyttöä ei ole hyväksyttävästi selvitetty.' + compensation_explanation: + '#type': textarea + '#title': 'Selvitys avustuksen käytöstä' + '#help': 'Käyttöselvityksessä tulee kuvata lyhyesti, miten myönnetty avustus on käytetty. Avustuksen saajan on järjestettävä kirjanpitonsa niin, että avustuksen käyttöä voidaan sieltä seurata. Esimerkiksi jos yhteisö on saanut vuokra-avustusta, tilinpäätöksen tuloslaskelmasta tulee käydä ilmi avustuksen toteutuminen sekä tuloissa että menoissa. Lisää tietoja avustuksen käytöstä voi myös kirjoittaa erilliseen liitteeseen, jonka voi ladata ja lähettää Muu-liitteenä.' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#states': + visible: + ':input[name="compensation_boolean"]': + value: '1' + required: + ':input[name="compensation_boolean"]': + value: '1' + '#attributes': + class: + - webform--large + '#cols': 63 + 3_yhteison_tiedot: + '#type': webform_wizard_page + '#title': '3. Yhteisön toiminta' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + business_info: + '#type': webform_section + '#title': 'Toiminnan kuvaus' + business_purpose: + '#type': textarea + '#title': 'Toiminnan kuvaus' + '#help': 'Tieto haetaan omat tiedot -osiosta' + '#maxlength': 500 + '#counter_type': character + '#counter_maximum': 500 + '#counter_maximum_message': '%d/500 merkkiä jäljellä' + community_practices_business: + '#type': radios + '#title': 'Harjoittaako yhteisö liiketoimintaa' + '#options': + 1: Kyllä + 0: Ei + '#options_display': side_by_side + '#options_description_display': help + '#required': true + ensimmainen_otsikko: + '#type': webform_section + '#title': Jäsenmaksut + fee_person: + '#type': textfield + '#title': 'Henkilöjäsenen jäsenmaksu (€ / vuosi)' + '#attributes': + class: + - webform--small + '#maxlength': 50 + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + '#size': 16 + fee_community: + '#type': textfield + '#title': 'Yhteisöjäsen (€ / vuosi)' + '#attributes': + class: + - webform--small + '#maxlength': 50 + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + '#size': 16 + jasenmaara: + '#type': webform_section + '#title': Jäsenmäärä + jasenmaara_fieldset: + '#type': fieldset + '#title': Jäsenmäärä + '#help': 'Jos yhteisöllä on jäseniä, merkitse ne tähän.' + '#attributes': + class: + - grants-fieldset + - grants-fieldset-short + members_applicant_person_global: + '#type': textfield + '#title': 'Henkilöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta henkilöjäsentä yhteisöllä on tällä hetkellä?' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + members_applicant_person_local: + '#type': textfield + '#title': 'Helsinkiläisiä henkilöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta helsinkiläistä henkilöjäsentä yhteisöllä on tällä hetkellä?' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + members_applicant_community_global: + '#type': textfield + '#title': 'Yhteisöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta yhteisöjäsentä yhteisöllä on tällä hetkellä? Yhteisöjäseniä ovat muut kuin henkilöjäsenet, esimerkiksi yhdistykset, säätiöt, yritykset tai kunnat.' + '#maxlength': 9 + '#size': 16 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#attributes': + class: + - webform--small + members_applicant_community_local: + '#type': textfield + '#title': 'Helsinkiläisiä yhteisöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta helsinkiläistä yhteisöjäsentä yhteisöllä on tällä hetkellä? Yhteisöjäseniä ovat muut kuin henkilöjäsenet, esimerkiksi yhdistykset, säätiöt, yritykset tai kunnat.' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + lisatiedot_ja_liitteet: + '#type': webform_wizard_page + '#title': '4. Lisätiedot ja liitteet' + lisatietoja_hakemukseen_liittyen: + '#type': webform_section + '#title': 'Lisätietoja hakemukseen liittyen' + additional_information: + '#type': textarea + '#title': Lisätiedot + '#attributes': + class: + - webform--large + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + liitteet: + '#type': webform_section + '#title': Liitteet + attachments_info: + '#type': webform_markup + '#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. +

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

+

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ notification_attachments: + '#type': webform_markup + '#markup': | +
+
+
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.

+
+
+ yhteison_saannot: + '#type': grants_attachments + '#title': 'Yhteisön säännöt' + '#multiple': false + '#filetype': '7' + '#help': 'Uusi hakija tai säännöt muuttuneet.' + '#title_display': before + '#description__access': false + vahvistettu_tilinpaatos: + '#type': grants_attachments + '#title': 'Vahvistettu tilinpäätös (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '43' + '#help': |- +

Tilinpäätöksen täytyy sisältää vähintään tuloslaskelma ja tase. Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun ja allekirjoitetun tilinpäätöksen.

+

Yhteisön tilikausi voi olla kalenterivuosi tai jokin muu kausi. Yhdistysten kohdalla niiden omissa säännöissä lukee, mikä on yhdistyksen tilikausi.

+ '#title_display': before + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi sisältö alta.' + '#description__access': false + vahvistettu_toimintakertomus: + '#type': grants_attachments + '#title': 'Vahvistettu toimintakertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '4' + '#help': |- +

Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun toimintakertomuksen.

+

Jos toimintakertomus on osana tilinpäätöstä ja liititte sen jo tilinpäätöksen mukana lomakkeelle, sitä ei tarvitse liittää tähän erikseen. Valitse tällaisessa tilanteessa toimintakertomuksen kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + vahvistettu_tilin_tai_toiminnantarkastuskertomus: + '#type': grants_attachments + '#title': 'Vahvistettu tilin- tai toiminnantarkastuskertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '5' + '#help': |- +

Liitä tähän allekirjoitettu tilin- tai toiminnantarkastuskertomus yhteisön edelliseltä päättyneeltä tilikaudelta.

+

Jos allekirjoitettu tilin- tai toiminnantarkastuskertomus on osa yhteisönne tilinpäätöstä ja liitit sen jo lomakkeelle tilinpäätöksen kohdalla, valitse tässä kohdassa ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + vuosikokouksen_poytakirja: + '#type': grants_attachments + '#title': 'Vuosikokouksen pöytäkirja, jossa on vahvistettu edellisen päättyneen tilikauden tilinpäätös' + '#multiple': false + '#filetype': '8' + '#help': 'Liitä tähän yhteisön kokouksen pöytäkirja, jossa edellisen päättyneen tilikauden tilinpäätös on vahvistettu ja vastuuvapaus myönnetty. Yhdistyksillä tilinpäätös vahvistetaan aina yhdistyksen jäsenkokouksessa. Mikäli yhteisöltä ei edellytetä vuosikokousta tai muuta yhteisön kokousta, jossa tilinpäätös tulisi vahvistaa ja vastuuvapaus myöntää, ei tätä liitettä tarvitse toimittaa.' + '#title_display': before + '#description__access': false + toimintasuunnitelma: + '#type': grants_attachments + '#title': 'Toimintasuunnitelma (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '1' + '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma. ' + '#title_display': before + '#description__access': false + talousarvio: + '#type': grants_attachments + '#title': 'Talousarvio (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '22' + '#help': 'Talousarvio (sille vuodelle jolle haet avustusta)' + '#title_display': before + '#description__access': false + extra_info: + '#type': textarea + '#title': 'Lisäselvitys liitteistä' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#attributes': + class: + - webform--large + '#cols': 63 + muu_liite: + '#type': grants_attachments + '#title': 'Muu liite' + '#multiple': 10 + '#filetype': '0' + '#title_display': before + '#multiple__item_label': liite + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi liite' + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + actions: + '#type': webform_actions + '#title': 'Submit button(s)' + '#submit__label': Lähetä + '#draft__label': 'Tallenna keskeneräisenä' + '#wizard_prev__label': 'Edellinen' + '#wizard_next__label': 'Seuraava' + '#preview_prev__label': 'Edellinen' + '#preview_next__label': 'Esikatseluun' + '#delete_hide': false + '#delete__label': 'Poista keskeneräinen' + '#delete__attributes': + class: + - hds-button + - hds-button--primary + '#delete__dialog': true +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: source_entity_webform + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: false + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: true + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: true + form_disable_back: false + form_submit_back: true + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: { } + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: true + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: true + wizard_progress_states: false + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '6. Valmis' + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: '' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava + wizard_toggle: true + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 2 + preview_label: '5. Vahvista, esikatsele ja lähetä' + preview_title: 'Vahvista, esikatsele ja lähetä' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: false + preview_exclude_empty_checkbox: false + draft: all + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: none + confirmation_url: '' + confirmation_title: '' + confirmation_message: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: true + confirmation_exclude_token: true + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: draft + purge_days: 365 + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - anonymous + - authenticated + users: { } + permissions: { } + view_any: + roles: { } + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: + grants_handler: + id: grants_handler + handler_id: grants_handler + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: 0 + settings: + debug: false +variants: { } diff --git a/public/modules/custom/grants_metadata/src/Plugin/DataType/SotepeYleisData.php b/public/modules/custom/grants_metadata/src/Plugin/DataType/SotepeYleisData.php new file mode 100644 index 0000000000..38a61fc0ea --- /dev/null +++ b/public/modules/custom/grants_metadata/src/Plugin/DataType/SotepeYleisData.php @@ -0,0 +1,39 @@ +parent)) { + // The property path of this data object is the parent's path appended + // by this object's name. + $prefix = $this->parent->getPropertyPath(); + return ((is_string($prefix) && strlen($prefix)) ? $prefix . '.' : '') . $this->name; + } + // If no parent is set, this is the root of the data tree. Thus the property + // path equals the name of this data object. + elseif (isset($this->name)) { + return $this->name; + } + return ''; + } + +} diff --git a/public/modules/custom/grants_metadata/src/TypedData/Definition/SotepeyleisDefinition.php b/public/modules/custom/grants_metadata/src/TypedData/Definition/SotepeyleisDefinition.php new file mode 100644 index 0000000000..2541e39ab7 --- /dev/null +++ b/public/modules/custom/grants_metadata/src/TypedData/Definition/SotepeyleisDefinition.php @@ -0,0 +1,188 @@ +propertyDefinitions)) { + + $info = &$this->propertyDefinitions; + + foreach ($this->getBaseProperties() as $key => $property) { + $info[$key] = $property; + } + } + + $info['members_applicant_person_local'] = DataDefinition::create('integer') + ->setSetting('defaultValue', "") + ->setSetting('valueCallback', [ + '\Drupal\grants_handler\Plugin\WebformHandler\GrantsHandler', + 'convertToInt', + ]) + ->setSetting('typeOverride', [ + 'dataType' => 'integer', + 'jsonType' => 'int', + ]) + ->setSetting('jsonPath', [ + 'compensation', + 'activitiesInfoArray', + 'membersApplicantPersonLocal', + ]); + + $info['members_applicant_person_global'] = DataDefinition::create('integer') + ->setSetting('defaultValue', "") + ->setSetting('valueCallback', [ + '\Drupal\grants_handler\Plugin\WebformHandler\GrantsHandler', + 'convertToInt', + ]) + ->setSetting('jsonPath', [ + 'compensation', + 'activitiesInfoArray', + 'membersApplicantPersonGlobal', + ]); + + $info['members_applicant_community_local'] = DataDefinition::create('integer') + ->setSetting('defaultValue', "") + ->setSetting('valueCallback', [ + '\Drupal\grants_handler\Plugin\WebformHandler\GrantsHandler', + 'convertToInt', + ]) + ->setSetting('jsonPath', [ + 'compensation', + 'activitiesInfoArray', + 'membersApplicantCommunityLocal', + ]); + + $info['members_applicant_community_global'] = DataDefinition::create('integer') + ->setSetting('valueCallback', [ + '\Drupal\grants_handler\Plugin\WebformHandler\GrantsHandler', + 'convertToInt', + ]) + ->setSetting('jsonPath', [ + 'compensation', + 'activitiesInfoArray', + 'membersApplicantCommunityGlobal', + ]); + + $info['subventions'] = ListDataDefinition::create('grants_metadata_compensation_type') + ->setSetting('jsonPath', [ + 'compensation', + 'compensationInfo', + 'compensationArray', + ]); + + $info['compensation_purpose'] = DataDefinition::create('string') + ->setSetting('jsonPath', [ + 'compensation', + 'compensationInfo', + 'generalInfoArray', + 'purpose', + ]); + + $info['compensation_boolean'] = DataDefinition::create('boolean') + ->setRequired(TRUE) + ->setSetting('typeOverride', [ + 'dataType' => 'string', + 'jsonType' => 'bool', + ]) + ->setSetting('jsonPath', [ + 'compensation', + 'compensationInfo', + 'generalInfoArray', + 'compensationPreviousYear', + ]); + + $info['compensation_explanation'] = DataDefinition::create('string') + ->setSetting('defaultValue', "") + ->setSetting('jsonPath', [ + 'compensation', + 'compensationInfo', + 'generalInfoArray', + 'explanation', + ]); + + $info['who_benefits'] = DataDefinition::create('string') + ->setSetting('jsonPath', [ + 'compensation', + 'compensationInfo', + 'generalInfoArray', + 'whoBenefits', + ]); + + $info['changes_on_success'] = DataDefinition::create('string') + ->setSetting('jsonPath', [ + 'compensation', + 'compensationInfo', + 'generalInfoArray', + 'changesOnSuccess', + ]); + + $info['results_of_activities'] = DataDefinition::create('string') + ->setSetting('jsonPath', [ + 'compensation', + 'compensationInfo', + 'generalInfoArray', + 'resultsOfActivities', + ]); + + $info['fee_person'] = DataDefinition::create('float') + ->setSetting('jsonPath', [ + 'compensation', + 'activitiesInfoArray', + 'feePerson', + ]) + ->setSetting('valueCallback', [ + '\Drupal\grants_handler\Plugin\WebformHandler\GrantsHandler', + 'convertToFloat', + ]) + ->setSetting('typeOverride', [ + 'dataType' => 'string', + 'jsonType' => 'float', + ]); + + $info['fee_community'] = DataDefinition::create('float') + ->setSetting('jsonPath', [ + 'compensation', + 'activitiesInfoArray', + 'feeCommunity', + ]) + ->setSetting('valueCallback', [ + '\Drupal\grants_handler\Plugin\WebformHandler\GrantsHandler', + 'convertToFloat', + ]) + ->setSetting('typeOverride', [ + 'dataType' => 'string', + 'jsonType' => 'float', + ]); + + return $this->propertyDefinitions; + } + + /** + * Override property definition. + * + * @param string $name + * Property name. + * + * @return \Drupal\Core\TypedData\DataDefinitionInterface|void|null + * Property definition. + */ + public function getPropertyDefinition($name) { + $retval = parent::getPropertyDefinition($name); + return $retval; + } + +} From 676dc70f41e038802740a53603f225619ddf9f63 Mon Sep 17 00:00:00 2001 From: Santeri Hurnanen Date: Thu, 28 Nov 2024 09:53:16 +0200 Subject: [PATCH 62/95] UHF-10952: Allow login with high eIDAS levels of assurance (#1585) https://ec.europa.eu/digital-building-blocks/sites/display/DIGITAL/eIDAS+Levels+of+Assurance --- public/sites/default/all.settings.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/sites/default/all.settings.php b/public/sites/default/all.settings.php index c76f7f8294..70a795d624 100644 --- a/public/sites/default/all.settings.php +++ b/public/sites/default/all.settings.php @@ -22,6 +22,10 @@ 'loa' => 'substantial', 'roles' => ['helsinkiprofiili'], ], + [ + 'loa' => 'high', + 'roles' => ['helsinkiprofiili'], + ], ]; $config['openid_connect.client.tunnistamoadmin']['settings']['client_roles'] = ['ad_user']; From aa3409f9903b2482b3e73273a7ca2cb20ed07bdd Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Fri, 29 Nov 2024 08:14:24 +0200 Subject: [PATCH 63/95] fix: UHF-10711: Last fix to form & test update (#1586) --- ...ebform.iakkaiden_kulttuuri_ja_liikunta.yml | 26 ++++++++----------- .../data/application/application_data_70.ts | 12 ++++----- 2 files changed, 16 insertions(+), 22 deletions(-) diff --git a/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml b/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml index 17f89b89c8..19469c1d65 100644 --- a/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml +++ b/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml @@ -681,12 +681,12 @@ elements: |- '#counter_maximum': 2500 '#counter_maximum_message': '%d/2500 merkkiä jäljellä' '#states': - visible: - ':input[name="hankesuunnitelma_radios"]': - value: '0' - required: - ':input[name="hankesuunnitelma_radios"]': - value: '0' + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' hankkeen_toimenpiteet_aikataulu: '#type': textarea '#title': 'Mitkä ovat hankkeen konkreettiset toimenpiteet ja niiden toteutusaikataulu?' @@ -801,15 +801,11 @@ elements: |- '#counter_maximum_message': '%d/1250 merkkiä jäljellä' '#states': visible: - - ':input[name="kulttuuri1_summa"]': - value: - greater: '0' - - or - - ':input[name="kulttuuri2_summa"]': - value: - greater: '0' - - ':input[name="hankesuunnitelma_radios"]': - value: '0' + ':input[name="kulttuuri1_summa"]': + value: + greater: '0' + ':input[name="hankesuunnitelma_radios"]': + value: '0' hankkeen_kohderyhmat_section: '#type': webform_section '#title': '3.3 Hankkeen kohderyhmät' diff --git a/e2e/utils/data/application/application_data_70.ts b/e2e/utils/data/application/application_data_70.ts index 197dba1302..50345825b0 100644 --- a/e2e/utils/data/application/application_data_70.ts +++ b/e2e/utils/data/application/application_data_70.ts @@ -1054,14 +1054,12 @@ const missingValues: FormDataWithRemoveOptionalProps = { 'edit-hankkeen-toimenpiteet-alkupvm': 'Virhe sivulla 3. Tarkemmat tiedot: Alkupäivämäärä kenttä on pakollinen.', 'edit-hankkeen-toimenpiteet-loppupvm': 'Virhe sivulla 3. Tarkemmat tiedot: Loppupäivämäärä kenttä on pakollinen.', 'edit-hankkeen-keskeisimmat-kumppanit': 'Virhe sivulla 3. Tarkemmat tiedot: Nimeä hankkeen keskeisimmät yhteistyökumppanit ja heidän roolinsa hankkeessa kenttä on pakollinen.', - 'edit-haun-painopisteet-digi-kehitys': 'Virhe sivulla 3. Tarkemmat tiedot: Kehitetäänkö hankkeessa digitaalisesti / etänä toteutettavia kulttuuritoimintoja tai liikkumiseen aktivoivaa toimintaa? Miten? kenttä on pakollinen.', - 'edit-haun-painopisteet-vertais-kehitys': 'Virhe sivulla 3. Tarkemmat tiedot: Kehitetäänkö hankkeessa vapaaehtois- / vertaistoimintaa? Miten? kenttä on pakollinen.', 'edit-hankkeen-kohderyhmat-kenelle': 'Virhe sivulla 3. Tarkemmat tiedot: Kenelle hankkeen toiminta on pääasiallisesti suunnattu? kenttä on pakollinen.', 'edit-hankkeen-kohderyhmat-tavoitus': 'Virhe sivulla 3. Tarkemmat tiedot: Kuinka hankkeen kohderyhmät aiotaan tavoittaa? kenttä on pakollinen.', 'edit-hankkeen-kohderyhmat-konkretia': 'Virhe sivulla 3. Tarkemmat tiedot: Miten hankkeessa edistetään konkreettisin toimenpitein valitun kohderyhmän toimintakykyä ja hyvinvointia? kenttä on pakollinen.', 'edit-hankkeen-kohderyhmat-osallisuus': 'Virhe sivulla 3. Tarkemmat tiedot: Millä tavoin hankkeessa edistetään osallisuutta? Mikä ikäihmisten rooli hankkeessa on? kenttä on pakollinen.', 'edit-hankkeen-kohderyhmat-osaaminen': 'Virhe sivulla 3. Tarkemmat tiedot: Millaista osaamista kyseisen kohderyhmän/-ryhmien kanssa työskentelystä hanketoimijoilla on ennestään? kenttä on pakollinen.', - 'edit-hankkeen-kohderyhmat-postinrot': 'Virhe sivulla 3. Tarkemmat tiedot: Millä postinumeroalueella tai -alueilla Helsingissä hanke toteutetaan? kenttä on pakollinen.', + 'edit-hankkeen-kohderyhmat-postinrot': 'Virhe sivulla 3. Tarkemmat tiedot: Millä postinumeroalueella tai -alueilla Helsingissä hanke toteutetaan? Kirjaa kenttään enintään kolme (3) postinumeroaluetta ja erottele ne toisistaan pilkulla (,) kenttä on pakollinen.', 'edit-hankkeen-kohderyhmat-miksi-alue': 'Virhe sivulla 3. Tarkemmat tiedot: Miksi juuri kyseinen alue / alueet on valittu? kenttä on pakollinen.', 'edit-hankkeen-riskit-keskeisimmat': 'Virhe sivulla 3. Tarkemmat tiedot: Mitkä ovat hankkeen toteuttamisen näkökulmasta keskeisimmät riskit? kenttä on pakollinen.', 'edit-hankkeen-riskit-seuranta': 'Virhe sivulla 3. Tarkemmat tiedot: Miten hankkeessa aiotaan toteuttaa seurantaa ja arviointia? kenttä on pakollinen.', @@ -1134,10 +1132,10 @@ const sendApplication: FormDataWithRemoveOptionalProps = { */ const registeredCommunityApplications_70 = { draft: baseForm_70, - visibilityByState: createFormData(baseForm_70, visibilityByState), - visibilityByStateSection3Estimates: createFormData(baseForm_70, visibilityByStateSection3Estimates), - missingValues: createFormData(baseForm_70, missingValues), - wrongValues: createFormData(baseForm_70, wrongValues), + visibility_by_state: createFormData(baseForm_70, visibilityByState), + visibility_by_state_section3_estimates: createFormData(baseForm_70, visibilityByStateSection3Estimates), + missing_values: createFormData(baseForm_70, missingValues), + wrong_values: createFormData(baseForm_70, wrongValues), success: createFormData(baseForm_70, sendApplication), } From 0d99948ae07f378f50e0b36619636f03c0dca1f3 Mon Sep 17 00:00:00 2001 From: Tero Virtanen <105207219+terovirtanen@users.noreply.github.com> Date: Fri, 29 Nov 2024 10:17:33 +0200 Subject: [PATCH 64/95] Update Azure Devops pipelines (#1568) * build: pipeline templates by Ansible scripts * Remove obsolete pipeline files --- azure-pipelines-prod.yml | 30 ------------ azure-pipelines-staging.yml | 41 ---------------- pipelines/drupal-dev.yml | 49 +++++++++++++++++++ .../drupal-production.yml | 26 +++++----- pipelines/drupal-staging.yml | 48 ++++++++++++++++++ .../drupal-test.yml | 27 ++++++---- 6 files changed, 125 insertions(+), 96 deletions(-) delete mode 100644 azure-pipelines-prod.yml delete mode 100644 azure-pipelines-staging.yml create mode 100644 pipelines/drupal-dev.yml rename azure-pipelines-dev.yml => pipelines/drupal-production.yml (58%) create mode 100644 pipelines/drupal-staging.yml rename azure-pipelines-test.yml => pipelines/drupal-test.yml (54%) diff --git a/azure-pipelines-prod.yml b/azure-pipelines-prod.yml deleted file mode 100644 index 8df5632c9c..0000000000 --- a/azure-pipelines-prod.yml +++ /dev/null @@ -1,30 +0,0 @@ -# File: drupal-helfi/azure-pipelines.yml - -# Continuous integration (CI) triggers cause a pipeline to run whenever you push -# an update to the specified branches or you push specified tags. -trigger: none - -# Pull request (PR) triggers cause a pipeline to run whenever a pull request is -# opened with one of the specified target branches, or when updates are made to -# such a pull request. -# -# GitHub creates a new ref when a pull request is created. The ref points to a -# merge commit, which is the merged code between the source and target branches -# of the pull request. -# -# Opt out of pull request validation -pr: none - -# By default, use self-hosted agents -pool: Default - -resources: - repositories: - # Azure DevOps repository - - repository: avustusasiointi-pipelines - type: git - # project/repository - name: avustusasiointi/avustusasiointi-pipelines - -extends: - template: azure-pipelines-drupal-prod.yml@avustusasiointi-pipelines diff --git a/azure-pipelines-staging.yml b/azure-pipelines-staging.yml deleted file mode 100644 index 8f833f0eec..0000000000 --- a/azure-pipelines-staging.yml +++ /dev/null @@ -1,41 +0,0 @@ -# File: drupal-helfi/azure-pipelines.yml - -# Continuous integration (CI) triggers cause a pipeline to run whenever you push -# an update to the specified branches or you push specified tags. -trigger: - batch: true - branches: - include: - - main - paths: - exclude: - - '*.md' - - '.github/' - - 'azure-pipelines-dev.yml' - - 'azure-pipelines-test.yml' - - 'azure-pipelines-prod.yml' - -# Pull request (PR) triggers cause a pipeline to run whenever a pull request is -# opened with one of the specified target branches, or when updates are made to -# such a pull request. -# -# GitHub creates a new ref when a pull request is created. The ref points to a -# merge commit, which is the merged code between the source and target branches -# of the pull request. -# -# Opt out of pull request validation -pr: none - -# By default, use self-hosted agents -pool: Default - -resources: - repositories: - # Azure DevOps repository - - repository: avustusasiointi-pipelines - type: git - # project/repository - name: avustusasiointi/avustusasiointi-pipelines - -extends: - template: azure-pipelines-drupal-staging.yml@avustusasiointi-pipelines diff --git a/pipelines/drupal-dev.yml b/pipelines/drupal-dev.yml new file mode 100644 index 0000000000..cd16817b23 --- /dev/null +++ b/pipelines/drupal-dev.yml @@ -0,0 +1,49 @@ +# Continuous integration (CI) triggers cause a pipeline to run whenever you push +# an update to the specified branches or you push specified tags. +trigger: none + # batch: true + # branches: + # include: + # - dev + # paths: + # exclude: + # - '*.md' + # - '.github/' + # - 'pipelines/drupal-production.yml' + # - 'pipelines/drupal-staging.yml' + # - 'pipelines/drupal-test.yml' + # - 'compose*' + +# Pull request (PR) triggers cause a pipeline to run whenever a pull request is +# opened with one of the specified target branches, or when updates are made to +# such a pull request. +# +# GitHub creates a new ref when a pull request is created. The ref points to a +# merge commit, which is the merged code between the source and target branches +# of the pull request. +# +# Opt out of pull request validation +pr: none + +# By default, use self-hosted agents +pool: Default + +resources: + repositories: + # Azure DevOps repository + - repository: avustusasiointi-pipelines + type: git + # Azure DevOps project/repository + name: avustusasiointi/avustusasiointi-pipelines + +extends: + # Filename in Azure DevOps Repository + template: components/drupal/pipelines/drupal-dev.yml@avustusasiointi-pipelines + # parameters: + # Application build arguments and config map values as key value pairs. + # Does not contain all buildArguments or configMap values, the rest located in avustusasiointi-pipelines + # The values here will override the values defined in the avustusasiointi-pipelines repository + # buildArgs: + # DEBUG: 1 + # configMap: # pod environment variables + # DEBUG: 1 diff --git a/azure-pipelines-dev.yml b/pipelines/drupal-production.yml similarity index 58% rename from azure-pipelines-dev.yml rename to pipelines/drupal-production.yml index 1b7ed5ebe5..fd7c3b2b21 100644 --- a/azure-pipelines-dev.yml +++ b/pipelines/drupal-production.yml @@ -1,15 +1,6 @@ -# File: drupal-helfi/azure-pipelines.yml - # Continuous integration (CI) triggers cause a pipeline to run whenever you push # an update to the specified branches or you push specified tags. trigger: none -# batch: true -# tags: -# include: -# - deploy-to-dev -# paths: -# exclude: -# - README.md # Pull request (PR) triggers cause a pipeline to run whenever a pull request is # opened with one of the specified target branches, or when updates are made to @@ -30,12 +21,17 @@ resources: # Azure DevOps repository - repository: avustusasiointi-pipelines type: git - # project/repository + # Azure DevOps project/repository name: avustusasiointi/avustusasiointi-pipelines - - repository: robottests - type: github - name: City-of-Helsinki/hel-fi-drupal-grants - endpoint: City-of-Helsinki extends: - template: azure-pipelines-drupal-dev.yml@avustusasiointi-pipelines + # Filename in Azure DevOps Repository + template: components/drupal/pipelines/drupal-production.yml@avustusasiointi-pipelines + # parameters: + # Application build arguments and config map values as key value pairs. + # Does not contain all buildArguments or configMap values, the rest located in avustusasiointi-pipelines + # The values here will override the values defined in the avustusasiointi-pipelines repository + # buildArgs: + # DEBUG: 1 + # configMap: # pod environment variables + # DEBUG: 1 diff --git a/pipelines/drupal-staging.yml b/pipelines/drupal-staging.yml new file mode 100644 index 0000000000..84e86e1dfd --- /dev/null +++ b/pipelines/drupal-staging.yml @@ -0,0 +1,48 @@ +# Continuous integration (CI) triggers cause a pipeline to run whenever you push +# an update to the specified branches or you push specified tags. +trigger: + batch: true + branches: + include: + - main + paths: + exclude: + - '*.md' + - '.github/' + - 'pipelines/drupal-production.yml' + - 'pipelines/drupal-test.yml' + - 'pipelines/drupal-dev.yml' + +# Pull request (PR) triggers cause a pipeline to run whenever a pull request is +# opened with one of the specified target branches, or when updates are made to +# such a pull request. +# +# GitHub creates a new ref when a pull request is created. The ref points to a +# merge commit, which is the merged code between the source and target branches +# of the pull request. +# +# Opt out of pull request validation +pr: none + +# By default, use self-hosted agents +pool: Default + +resources: + repositories: + # Azure DevOps repository + - repository: avustusasiointi-pipelines + type: git + # Azure DevOps project/repository + name: avustusasiointi/avustusasiointi-pipelines + +extends: + # Filename in Azure DevOps Repository + template: components/drupal/pipelines/drupal-staging.yml@avustusasiointi-pipelines + # parameters: + # Application build arguments and config map values as key value pairs. + # Does not contain all buildArguments or configMap values, the rest located in avustusasiointi-pipelines + # The values here will override the values defined in the avustusasiointi-pipelines repository + # buildArgs: + # DEBUG: 1 + # configMap: # pod environment variables + # DEBUG: 1 diff --git a/azure-pipelines-test.yml b/pipelines/drupal-test.yml similarity index 54% rename from azure-pipelines-test.yml rename to pipelines/drupal-test.yml index 3ed92852c0..36823a8f68 100644 --- a/azure-pipelines-test.yml +++ b/pipelines/drupal-test.yml @@ -1,19 +1,17 @@ -# File: drupal-helfi/azure-pipelines.yml - # Continuous integration (CI) triggers cause a pipeline to run whenever you push # an update to the specified branches or you push specified tags. trigger: batch: true branches: include: - - dev + - dev paths: exclude: - - '*.md' - - '.github/' - - 'azure-pipelines-dev.yml' - - 'azure-pipelines-staging.yml' - - 'azure-pipelines-prod.yml' + - '*.md' + - '.github/' + - 'pipelines/drupal-production.yml' + - 'pipelines/drupal-staging.yml' + - 'pipelines/drupal-dev.yml' # Pull request (PR) triggers cause a pipeline to run whenever a pull request is # opened with one of the specified target branches, or when updates are made to @@ -34,8 +32,17 @@ resources: # Azure DevOps repository - repository: avustusasiointi-pipelines type: git - # project/repository + # Azure DevOps project/repository name: avustusasiointi/avustusasiointi-pipelines extends: - template: azure-pipelines-drupal-test.yml@avustusasiointi-pipelines + # Filename in Azure DevOps Repository + template: components/drupal/pipelines/drupal-test.yml@avustusasiointi-pipelines + # parameters: + # Application build arguments and config map values as key value pairs. + # Does not contain all buildArguments or configMap values, the rest located in avustusasiointi-pipelines + # The values here will override the values defined in the avustusasiointi-pipelines repository + # buildArgs: + # DEBUG: 1 + # configMap: # pod environment variables + # DEBUG: 1 From 49720a7cf6007ec155c5fbe0a66b11b5fb229fd3 Mon Sep 17 00:00:00 2001 From: rpnykanen <48206082+rpnykanen@users.noreply.github.com> Date: Mon, 2 Dec 2024 06:35:13 +0200 Subject: [PATCH 65/95] UHF-10722 (#1587) * UHF-10722: separate function for rented premise and premise * UHF-10722: missing help text * UHF-10722: missing return type * UHF-10722: phpcs fixes * UHF-10722: the needed composite class was already made. Revert the change and use the ready made class instead * UHF-10722: correct comment --- .../src/Controller/GrantsWebformPrintController.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/public/modules/custom/grants_webform_print/src/Controller/GrantsWebformPrintController.php b/public/modules/custom/grants_webform_print/src/Controller/GrantsWebformPrintController.php index 1942ff75f8..5d6e2707f7 100644 --- a/public/modules/custom/grants_webform_print/src/Controller/GrantsWebformPrintController.php +++ b/public/modules/custom/grants_webform_print/src/Controller/GrantsWebformPrintController.php @@ -13,6 +13,7 @@ use Drupal\grants_orienteering_map\Element\OrienteeringMapComposite; use Drupal\grants_place_of_operation\Element\PlaceOfOperationComposite; use Drupal\grants_premises\Element\PremisesComposite; +use Drupal\grants_premises\Element\RentedPremiseComposite; use Drupal\grants_premises\Element\RentIncomeComposite; use Drupal\webform\Entity\Webform; use Drupal\webform\WebformTranslationManager; @@ -382,7 +383,8 @@ public function getTranslatedOptions(array $element, array $translatedFields): a */ public function getCompositeInputFields(array $element, array $translatedFields): array { $composite_inputs = match ($element['#type']) { - 'rented_premise_composite', 'premises_composite' => PremisesComposite::getCompositeElements($element), + 'rented_premise_composite' => RentedPremiseComposite::getCompositeElements($element), + 'premises_composite' => PremisesComposite::getCompositeElements($element), 'members_composite' => MembersComposite::getCompositeElements($element), 'club_section_composite' => ClubSectionComposite::getCompositeElements($element), 'orienteering_map_composite' => OrienteeringMapComposite::getCompositeElements($element), From 1389ac2d7e47a648b091c9eda9444363b5093cbb Mon Sep 17 00:00:00 2001 From: Santeri Hurnanen Date: Mon, 2 Dec 2024 06:35:43 +0200 Subject: [PATCH 66/95] Add missing translations (#1589) --- .../grants_club_section/translations/sv.po | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/public/modules/custom/grants_club_section/translations/sv.po b/public/modules/custom/grants_club_section/translations/sv.po index 5becc618b5..9845ed3de1 100644 --- a/public/modules/custom/grants_club_section/translations/sv.po +++ b/public/modules/custom/grants_club_section/translations/sv.po @@ -345,15 +345,15 @@ msgstr "Sport" msgctxt "grants_club_section" msgid "Women from Helsinki (20-63 years)" -msgstr "Kvinnor (20-63 år)" +msgstr "Kvinnor från Helsingfors (20-63 år)" msgctxt "grants_club_section" msgid "Men from Helsinki (20-63 years)" -msgstr "Män (20-63 år)" +msgstr "Män från Helsingfors (20-63 år)" msgctxt "grants_club_section" msgid "Others from Helsinki (20-63 years)" -msgstr "Övriga (20-63 år)" +msgstr "Övriga från Helsingfors (20-63 år)" msgctxt "grants_club_section" msgid "Practice hours of adults (20-63 years)" @@ -365,15 +365,15 @@ msgstr "

I avsnittet träningstimmar, rapportera inte enskilda idrottsutövarn msgctxt "grants_club_section" msgid "Men from Helsinki (64 years and over)" -msgstr "Män (64 år och äldre)" +msgstr "Män från Helsingfors (64 år och äldre)" msgctxt "grants_club_section" msgid "Women from Helsinki (64 years and over)" -msgstr "Kvinnor (64 år och äldre)" +msgstr "Kvinnor från Helsingfors (64 år och äldre)" msgctxt "grants_club_section" msgid "Others from Helsinki (64 years and over)" -msgstr "Övriga (64 år och äldre)" +msgstr "Övriga från Helsingfors (64 år och äldre)" msgctxt "grants_club_section" msgid "Practice hours of adults (64 years and over)" @@ -381,15 +381,15 @@ msgstr "Träningstimmar för vuxna (64 år och äldre)" msgctxt "grants_club_section" msgid "Boys from Helsinki (under 20 years of age)" -msgstr "Pojkar (under 20 år)" +msgstr "Pojkar från Helsingfors (under 20 år)" msgctxt "grants_club_section" msgid "Girls from Helsinki (under 20 years of age)" -msgstr "Flickor (under 20 år)" +msgstr "Flickor från Helsingfors (under 20 år)" msgctxt "grants_club_section" msgid "Others from Helsinki (under 20 years of age)" -msgstr "Övriga (under 20 år)" +msgstr "Övriga från Helsingfors (under 20 år)" msgctxt "grants_club_section" msgid "Practice hours of children/young people (under 20 years of age)" From 361c65619a13121c34414d9a670d2538321b1a26 Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Mon, 2 Dec 2024 06:36:24 +0200 Subject: [PATCH 67/95] Set form_submit & form_submit_back values for forms & default values. (#1588) --- conf/cmi/webform.settings.yml | 4 ++-- conf/cmi/webform.webform.asukasosallisuus_pienavustushake.yml | 4 ++-- conf/cmi/webform.webform.asukasosallisuus_yleis_ja_toimin.yml | 4 ++-- conf/cmi/webform.webform.grants_handler.yml | 4 ++-- conf/cmi/webform.webform.liikunta_tapahtuma.yml | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/conf/cmi/webform.settings.yml b/conf/cmi/webform.settings.yml index 5011ceaaaf..af11329b16 100644 --- a/conf/cmi/webform.settings.yml +++ b/conf/cmi/webform.settings.yml @@ -24,9 +24,9 @@ settings: default_form_disable_inline_errors: false default_form_required: false default_form_required_label: 'Indicates required field' - default_form_unsaved: false + default_form_unsaved: true default_form_disable_back: false - default_form_submit_back: false + default_form_submit_back: true default_form_details_toggle: true default_form_file_limit: '' default_wizard_prev_button_label: Previous diff --git a/conf/cmi/webform.webform.asukasosallisuus_pienavustushake.yml b/conf/cmi/webform.webform.asukasosallisuus_pienavustushake.yml index e3583b6ee3..ad82299cb1 100644 --- a/conf/cmi/webform.webform.asukasosallisuus_pienavustushake.yml +++ b/conf/cmi/webform.webform.asukasosallisuus_pienavustushake.yml @@ -635,9 +635,9 @@ settings: form_prepopulate_source_entity: false form_prepopulate_source_entity_required: false form_prepopulate_source_entity_type: '' - form_unsaved: false + form_unsaved: true form_disable_back: false - form_submit_back: false + form_submit_back: true form_disable_autocomplete: false form_novalidate: false form_disable_inline_errors: false diff --git a/conf/cmi/webform.webform.asukasosallisuus_yleis_ja_toimin.yml b/conf/cmi/webform.webform.asukasosallisuus_yleis_ja_toimin.yml index c7aa003840..c6b1c01061 100644 --- a/conf/cmi/webform.webform.asukasosallisuus_yleis_ja_toimin.yml +++ b/conf/cmi/webform.webform.asukasosallisuus_yleis_ja_toimin.yml @@ -755,9 +755,9 @@ settings: form_prepopulate_source_entity: false form_prepopulate_source_entity_required: false form_prepopulate_source_entity_type: '' - form_unsaved: false + form_unsaved: true form_disable_back: false - form_submit_back: false + form_submit_back: true form_disable_autocomplete: false form_novalidate: false form_disable_inline_errors: false diff --git a/conf/cmi/webform.webform.grants_handler.yml b/conf/cmi/webform.webform.grants_handler.yml index 29def5ffc9..bed09391bb 100644 --- a/conf/cmi/webform.webform.grants_handler.yml +++ b/conf/cmi/webform.webform.grants_handler.yml @@ -67,9 +67,9 @@ settings: form_prepopulate_source_entity: false form_prepopulate_source_entity_required: false form_prepopulate_source_entity_type: '' - form_unsaved: false + form_unsaved: true form_disable_back: false - form_submit_back: false + form_submit_back: true form_disable_autocomplete: false form_novalidate: false form_disable_inline_errors: false diff --git a/conf/cmi/webform.webform.liikunta_tapahtuma.yml b/conf/cmi/webform.webform.liikunta_tapahtuma.yml index 537f2c5544..e108b662d1 100644 --- a/conf/cmi/webform.webform.liikunta_tapahtuma.yml +++ b/conf/cmi/webform.webform.liikunta_tapahtuma.yml @@ -618,9 +618,9 @@ settings: form_prepopulate_source_entity: false form_prepopulate_source_entity_required: false form_prepopulate_source_entity_type: '' - form_unsaved: false + form_unsaved: true form_disable_back: false - form_submit_back: false + form_submit_back: true form_disable_autocomplete: false form_novalidate: false form_disable_inline_errors: false From 101214d1023d638a3a2e2b2ef0a18317dd2841c3 Mon Sep 17 00:00:00 2001 From: rpnykanen <48206082+rpnykanen@users.noreply.github.com> Date: Tue, 3 Dec 2024 08:29:47 +0200 Subject: [PATCH 68/95] UHF-10722: remove the visibility helper text (#1591) * UHF-10722: remove the visibility helper text * UHF-10722: remove also the text from part4 * UHF-10722: added comment --- .../src/Controller/GrantsWebformPrintController.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/public/modules/custom/grants_webform_print/src/Controller/GrantsWebformPrintController.php b/public/modules/custom/grants_webform_print/src/Controller/GrantsWebformPrintController.php index 5d6e2707f7..8db4e409f6 100644 --- a/public/modules/custom/grants_webform_print/src/Controller/GrantsWebformPrintController.php +++ b/public/modules/custom/grants_webform_print/src/Controller/GrantsWebformPrintController.php @@ -185,6 +185,14 @@ private function fixWebformElement(array $element, string $key, array $translate $element['#title'] = $element['#title'] ?? ''; $element['#description'] = $element['#description'] ?? ''; + // Remove visibility texts from nuortoimpalkk print form. + if ($key === 'vuokra_avustushakemuksen_tiedot') { + unset($element['markup_01']); + } + if ($key === '4_palkkaustiedot') { + unset($element['markup_02']); + } + return $this->alterFieldTemplates($element, $translatedFields); } From f9169ca114d1bee61d7218a51e4e1f165a902733 Mon Sep 17 00:00:00 2001 From: jeremysteerio <49063836+jeremysteerio@users.noreply.github.com> Date: Tue, 3 Dec 2024 09:12:17 +0200 Subject: [PATCH 69/95] UHF-10456: Compensation purpose fixes (#1592) --- conf/cmi/language/en/webform.webform.sotepe_yleis.yml | 4 ++-- conf/cmi/language/sv/webform.webform.sotepe_yleis.yml | 4 ++-- conf/cmi/webform.webform.sotepe_yleis.yml | 10 +++++----- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/conf/cmi/language/en/webform.webform.sotepe_yleis.yml b/conf/cmi/language/en/webform.webform.sotepe_yleis.yml index 8e69b3da2e..4f4a941508 100644 --- a/conf/cmi/language/en/webform.webform.sotepe_yleis.yml +++ b/conf/cmi/language/en/webform.webform.sotepe_yleis.yml @@ -59,8 +59,8 @@ elements: | kayttotarkoitus: '#title': 'Purpose of use' compensation_purpose: - '#title': 'Brief description of the purpose(s) of the grant(s) applied for' - '#help': 'Indicate the purpose for which the grant is applied for. If necessary, specify the different uses. Also tell us what is intended to be achieved with the grant and what goals are associated with the activities to be supported.' + '#title': 'For what purpose will the grant be used?' + '#help': 'Provide a short description of the scope and nature of the activities to be carried out with the grant e.g. as follows:
How much or how often will you organise groups, events or other activities during the period of the grant? How many target group representatives do you expect to reach? In what areas of Helsinki will the activities be arranged? What kind of cooperation do you pursue with other operators in Helsinki?' '#counter_maximum_message': '%d/5000 characters remaining' who_benefits: '#title': 'Who are the main beneficiaries of your activities?' diff --git a/conf/cmi/language/sv/webform.webform.sotepe_yleis.yml b/conf/cmi/language/sv/webform.webform.sotepe_yleis.yml index 8b080c478e..e78fbdb049 100644 --- a/conf/cmi/language/sv/webform.webform.sotepe_yleis.yml +++ b/conf/cmi/language/sv/webform.webform.sotepe_yleis.yml @@ -62,8 +62,8 @@ elements: | kayttotarkoitus: '#title': 'Användningsända­mål' compensation_purpose: - '#title': 'En kort beskrivning av användningsändamålet för det/de understöd som ansöks' - '#help': 'Ange för vilket ändamål understödet ansöks och vid behov specificera de olika ändamålen. Ange också vad understödet är avsett för och vilka mål som är relaterade till den understödda verksamheten.' + '#title': 'Vad kommer understödet att användas till?' + '#help': 'Beskriv den verksamhet som ska genomföras med hjälp av understödet och verksamhetens omfattning i korthet exempelvis på följande sätt:
Hur mycket eller ofta ordnar ni grupper, evenemang eller annan verksamhet under den understödda perioden? Hur många representanter för målgruppen kommer ni att nå enligt er uppskattning? Inom vilka områden i Helsingfors kommer verksamheten att ordnas? På vilka sätt samarbetar ni med andra aktörer i Helsingfors?' '#counter_maximum_message': '%d/5000 tecken kvar' who_benefits: '#title': 'Who are the main beneficiaries of your activities?' diff --git a/conf/cmi/webform.webform.sotepe_yleis.yml b/conf/cmi/webform.webform.sotepe_yleis.yml index 59baeea245..bdf09319ae 100644 --- a/conf/cmi/webform.webform.sotepe_yleis.yml +++ b/conf/cmi/webform.webform.sotepe_yleis.yml @@ -246,11 +246,11 @@ elements: |- '#subvention_amount__title': 'Avustuksen summa' kayttotarkoitus: '#type': webform_section - '#title': 'Mihin avustus käytetään?' + '#title': 'Käyttötarkoitus' compensation_purpose: '#type': textarea - '#title': 'Lyhyt kuvaus haettavan / haettavien avustusten käyttötarkoituksista' - '#help': 'Kerro mitä tarkoitusta varten avustusta haetaan, erittele tarvittaessa eri käyttökohteet. Kerro myös mitä avustuksella on tarkoitus saada aikaiseksi ja millaisia tavoitteita avustettavaan toimintaan liittyy.' + '#title': 'Mihin avustus käytetään?' + '#help': 'Kuvaa tiiviisti avustuksella toteutettavaa toimintaa ja toiminnan laajuutta esimerkiksi seuraavilla tavoilla:
Kuinka paljon tai kuinka usein järjestätte ryhmiä, tapahtumia tai muuta toimintaa avustettavan ajanjakson aikana? Kuinka paljon kohderyhmän edustajia arvioitte tavoittavanne? Missä Helsingin alueilla toimintaa järjestetään? Minkälaista yhteistyötä teette Helsingissä muiden toimijoiden kanssa?' '#required': true '#counter_type': character '#maxlength': 5000 @@ -318,11 +318,11 @@ elements: |- visible: ':input[name="avustukset_summa"]': value: - greater_equal: '10000' + greater_equal: '50000' required: ':input[name="avustukset_summa"]': value: - greater_equal: '10000' + greater_equal: '50000' muut_samaan_tarkoitukseen_myonnetyt_avustukset: '#type': webform_section '#title': 'Muut samaan tarkoitukseen myönnetyt avustukset' From a2aa3ef67800e3a9ed9b1017ef8ac301976412cd Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Tue, 3 Dec 2024 12:23:34 +0200 Subject: [PATCH 70/95] UHF-11044: Update texts (#1593) --- .../en/webform.webform.liikunta_toiminta_ja_tilankaytto.yml | 4 ++-- .../sv/webform.webform.liikunta_toiminta_ja_tilankaytto.yml | 4 ++-- conf/cmi/webform.webform.liikunta_toiminta_ja_tilankaytto.yml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/conf/cmi/language/en/webform.webform.liikunta_toiminta_ja_tilankaytto.yml b/conf/cmi/language/en/webform.webform.liikunta_toiminta_ja_tilankaytto.yml index 4e2ce23982..5b4d9d68ab 100644 --- a/conf/cmi/language/en/webform.webform.liikunta_toiminta_ja_tilankaytto.yml +++ b/conf/cmi/language/en/webform.webform.liikunta_toiminta_ja_tilankaytto.yml @@ -118,7 +118,7 @@ elements: | tilankayttoavustus: '#title': 'Sports facility usage grant' maksetut_vuokrat_info: - '#markup': '

Summary of rent paid by the club/association for regular training slots elsewhere than in Sports Services’ own facilities, in the previous calendar year between 1 January and 31 December. The Rents paid for sports facilities section is mandatory if you are applying for a facility use grant.

' + '#markup': '

Summary of rent paid by the club/association for regular training slots elsewhere than in Sports Services’ own facilities. Declare the realized paid rent sum and total hours in the previous calendar year between 1 January and 31 December according to the facility use appendix. The Rents paid for sports facilities section is mandatory if you are applying for a facility use grant.

' liikuntatiloista_maksetut_vuokrat_fieldset: '#title': 'Rent paid for sports facilities' tuntimaara_yhteensa: @@ -225,7 +225,7 @@ elements: | '#help': 'In addition to the VOK 1 training arranged by regional sports organisations, the calculation accounts for the number of instructors and coaches who have completed a sports federation’s coach and instructor training that are at least equal in terms of level and content, or who have completed a basic qualification in sports instruction (vocational college), a degree in sports instruction (university of applied sciences) or a master’s degree in sports sciences (sports pedagogy or sports biology).' lajijaostot_helsinkilaisille_aktiiviharrastajille: '#title': 'Operating sport divisions for Helsinki residents' - '#help': '

In this section, a single active member can be reported more than once, if the member meets the definition of an active member in several different sport divisions.

' + '#help': '

In the practice hours section, do not report the training output of individual actives, but the actual practice hours organized for Helsinki residents belonging to the age group.

If the actual number of training hours for an age group cannot be ascertained (e.g. many mixed groups), can the share of that age group be calculated from the total number of hours based on the share of the number of active members from Helsinki in the age group out of the total number of active members from Helsinki. E.g. the total number of hours in the division (all mixed groups) is 100 hours, where 10 adults and 20 under 20-year-olds are active: the number of hours for adults is 33 hours and for under 20-year-olds 67 hours. However, the actual number of hours realized for the age group should be used primarily.

' lajijaostot_info: '#markup': '

List the regular guided sports activities organised by the club/association by sport. Enter here the number of active members from Helsinki in the previous year, by sport, as well as their realized training hours by age group.

' club_section: diff --git a/conf/cmi/language/sv/webform.webform.liikunta_toiminta_ja_tilankaytto.yml b/conf/cmi/language/sv/webform.webform.liikunta_toiminta_ja_tilankaytto.yml index c8edc867e5..ab4e408957 100644 --- a/conf/cmi/language/sv/webform.webform.liikunta_toiminta_ja_tilankaytto.yml +++ b/conf/cmi/language/sv/webform.webform.liikunta_toiminta_ja_tilankaytto.yml @@ -123,7 +123,7 @@ elements: | tilankayttoavustus: '#title': 'Understöd för användning av idrottslokaler' maksetut_vuokrat_info: - '#markup': '

Sammanställning av de hyror som föreningen har betalatför regelbundna träningsskift förutom idrottstjänstens egna lokaler under föregående kalenderår 1.1. - 31.12.3. Avsnittet Hyror för idrottsanläggningar är obligatoriskt om du ansöker om understöd för användning av idrottslokaler.

' + '#markup': '

Sammanställning av de hyror som föreningen har betalat för regelbundna träningsskift förutom idrottstjänstens egna lokaler. Uppge de realiserade hyrorna och antalet timmar under föregående kalenderår 1.1. - 31.12. i enlighet med lokalanvändningsbilaga. Avsnittet Hyror betalda för idrottslokaler är obligatoriskt om du ansöker om understöd för användning av idrottslokaler.

' liikuntatiloista_maksetut_vuokrat_fieldset: '#title': 'Hyror betalda för idrottslokaler' tuntimaara_yhteensa: @@ -230,7 +230,7 @@ elements: | '#help': 'Utöver de VOK 1-utbildningar som ordnas av regionala idrottsorganisationer beaktas i beräkningen antalet handledare och tränare som har genomgått en utbildning för tränare och handledare som ordnas av ett grenförbund på minst motsvarande nivå och med motsvarande innehåll eller som har avlagt grundexamen i idrott, idrottsinstruktör (YH) eller magisterexamen i idrottsvetenskaper (idrottspedagogik eller motionsbiologi).' lajijaostot_helsinkilaisille_aktiiviharrastajille: '#title': 'Aktiva grengsektioner för helsingforsare' - '#help': '

I detta avsnitt kan en enskild aktiv idrottsutövare rapporteras mer än en gång, om den utövaren uppfyller definitionen av aktiv utövare i flera olika grensektioner.

' + '#help': '

I avsnittet träningstimmar, rapportera inte enskilda idrottsutövarnas träningsprestationer i timmar, utan de faktiska träningstimmar som organiserats för helsingforsare som tillhör åldersgruppen.

Om det faktiska antalet träningstimmar för en åldersgrupp inte kan fastställas (t. ex. många blandade träningsgrupper), kan andelen av den åldersgruppen beräknas från det totala antalet timmar baserat på andelen av antalet aktiva idrottsutövare från Helsingfors i åldersgruppen av det totala antalet aktiva idrottsutövare från Helsingfors. T. ex. totala antalet timmar i grensektionen (alla blandade grupper) är 100 timmar, där 10 vuxna och 20 under 20-åringar är aktiva: antalet timmar för vuxna är 33 timmar och för under 20-åringar 67 timmar. Det faktiska antalet realiserade timmar för åldersgruppen bör dock i första hand användas.

' lajijaostot_info: '#markup': '

Regelbunden handledd idrottsverksamhet som ordnas av föreningen, enligt gren. Ange här antalet aktiva idrottsutövare från Helsingfors under föregående år, per sport, samt deras realiserade träningstimmar per åldersgrupp.

' club_section: diff --git a/conf/cmi/webform.webform.liikunta_toiminta_ja_tilankaytto.yml b/conf/cmi/webform.webform.liikunta_toiminta_ja_tilankaytto.yml index 00fb3eb18c..e4985ba16a 100644 --- a/conf/cmi/webform.webform.liikunta_toiminta_ja_tilankaytto.yml +++ b/conf/cmi/webform.webform.liikunta_toiminta_ja_tilankaytto.yml @@ -496,7 +496,7 @@ elements: |- '#title': Tilankäyttöavustus maksetut_vuokrat_info: '#type': webform_markup - '#markup': '

Yhteenveto seuran/yhdistyksen maksamista säännöllisten harjoitusvuorojen vuokrista, muiden kuin liikuntapalvelun omien tilojen osalta, edellisen kalenterivuoden 1.1. - 31.12. ajalta. Liikuntatiloista maksetut vuokrat -kohta on pakollinen täyttää, mikäli haet tilankäyttöavustusta.

' + '#markup': '

Yhteenveto seuran/yhdistyksen maksamista toteutuneista säännöllisten harjoitusvuorojen vuokrista, muiden kuin liikuntapalvelun omien tilojen osalta. Ilmoita toteutuneet vuokrat ja tuntimäärä edellisen kalenterivuoden 1.1. - 31.12. ajalta tilankäyttöliitteen mukaisesti. Liikuntatiloista maksetut vuokrat -kohta on pakollinen täyttää, mikäli haet tilankäyttöavustusta.

' liikuntatiloista_maksetut_vuokrat_fieldset: '#type': fieldset '#title': 'Liikuntatiloista maksetut vuokrat' @@ -815,7 +815,7 @@ elements: |- lajijaostot_helsinkilaisille_aktiiviharrastajille: '#type': webform_section '#title': 'Lajijaostot helsinkiläisille aktiiviharrastajille' - '#help': '

Tässä kohdassa yksittäinen aktiiviharrastaja voi tulla ilmoitetuksi useamman kerran, mikäli aktiivi täyttää aktiiviharrastajan määritelmän useammassa eri lajijaostossa.

' + '#help': '

Älä ilmoita harjoitustunnit-kohdassa yksittäisten harrastajien toteutuneita liikuntasuoritteita tunteina, vaan ikäryhmään kuuluville helsinkiläisille järjestetyt toteutuneet harjoitustunnit.

Mikäli ikäryhmän todellinen harjoitustuntimäärä ei ole selvitettävissä (esim. paljon sekaryhmiä), voit laskea kokonaistuntimäärästä kyseisen ikäryhmän osuuden perustuen ikäryhmän helsinkiläisten aktiiviharrastajien määrän osuuteen helsinkiläisten aktiiviharrastajien kokonaismäärästä. Esim. Jaoston kokonaistuntimäärä (kaikki sekaryhmiä) on 100 tuntia, jossa liikkuu aktiivisesti 10 aikuista ja 20 alle 20-vuotiasta: aikuisten tuntimäärä 33 tuntia ja alle 20-vuotiaiden tuntimäärä 67 tuntia. Ensisijaisesti tulee kuitenkin käyttää ikäryhmän osalta todellista toteutunutta tuntimäärää.

' lajijaostot_info: '#type': webform_markup '#markup': '

Seuran/yhdistyksen järjestämä säännöllinen ohjattu liikuntatoiminta lajeittain. Ilmoita tähän lajeittain edellisen vuoden helsinkiläisten aktiiviharrastajien määrät sekä heidän toteutuneet harjoitustunnit ikäryhmittäin.

' From d51eda736dbd5d29af3328af1a00c06bd3c7ce56 Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Wed, 4 Dec 2024 12:32:21 +0200 Subject: [PATCH 71/95] UHF-10903: Fix missing dialog translations. (#1595) --- .../custom/grants_handler/js/application-copy-dialog.js | 8 ++++---- public/modules/custom/grants_handler/translations/fi.po | 8 ++++++++ public/modules/custom/grants_handler/translations/sv.po | 4 ++++ .../webform/application-copy-dialog-content.html.twig | 4 ++-- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/public/modules/custom/grants_handler/js/application-copy-dialog.js b/public/modules/custom/grants_handler/js/application-copy-dialog.js index ae1477e94e..3482db5ca0 100644 --- a/public/modules/custom/grants_handler/js/application-copy-dialog.js +++ b/public/modules/custom/grants_handler/js/application-copy-dialog.js @@ -12,9 +12,9 @@ Drupal.dialogFunctions.createDialog({ dialogContent: htmlContent, - actionButtonText: Drupal.t('Copy application', [], { context: 'grants_handler' }), - backButtonText: Drupal.t('Close', [], { context: 'grants_handler' }), - closeButtonText: Drupal.t('Close', [], { context: 'grants_handler' }), + actionButtonText: Drupal.t('Copy application'), + backButtonText: Drupal.t('Close', {}, { context: 'grants_handler' }), + closeButtonText: Drupal.t('Close', {}, { context: 'grants_handler' }), actionButtonCallback: () => { // Redirect to a new URL window.location.href = copyUrl; @@ -27,7 +27,7 @@ */ }, - dialogTitle: Drupal.t('Copy application', [], { context: 'grants_handler' }), + dialogTitle: Drupal.t('Copy application'), customSelector: 'application-copy-dialog' }) }); diff --git a/public/modules/custom/grants_handler/translations/fi.po b/public/modules/custom/grants_handler/translations/fi.po index 88e95d82b0..3159975018 100644 --- a/public/modules/custom/grants_handler/translations/fi.po +++ b/public/modules/custom/grants_handler/translations/fi.po @@ -667,3 +667,11 @@ msgstr "Huomio" msgctxt "grants_handler" msgid "You must visit all pages in the form before you can submit the application." msgstr "Käy kaikilla sivuilla ennen kuin lähetät hakemuksen." + +msgctxt "grants_handler" +msgid "Application to copy" +msgstr "Kopioitava hakemus" + +msgctxt "grants_handler" +msgid "Application to copy" +msgstr "Kopioitava hakemus" diff --git a/public/modules/custom/grants_handler/translations/sv.po b/public/modules/custom/grants_handler/translations/sv.po index 10ee574448..7b8dcd42c7 100644 --- a/public/modules/custom/grants_handler/translations/sv.po +++ b/public/modules/custom/grants_handler/translations/sv.po @@ -663,3 +663,7 @@ msgstr "Observera" msgctxt "grants_handler" msgid "You must visit all pages in the form before you can submit the application." msgstr "Du måste besöka alla sidor i formuläret innan du kan skicka in ansökan." + +msgctxt "grants_handler" +msgid "Application to copy" +msgstr "Ansökan om att kopiera" diff --git a/public/themes/custom/hdbt_subtheme/templates/webform/application-copy-dialog-content.html.twig b/public/themes/custom/hdbt_subtheme/templates/webform/application-copy-dialog-content.html.twig index 11fdb8af1c..3cc165767a 100644 --- a/public/themes/custom/hdbt_subtheme/templates/webform/application-copy-dialog-content.html.twig +++ b/public/themes/custom/hdbt_subtheme/templates/webform/application-copy-dialog-content.html.twig @@ -1,2 +1,2 @@ -

Kopioitava hakemus: {{ webformTitle }}

-

Hakemustunnus: {{ applicationNumber }}

+

{{ "Application to copy"|t({}, {'context': 'grants_handler'})}}: {{ webformTitle }}

+

{{ "Application number"|t({}, {'context': 'grants_handler'})}}: {{ applicationNumber }}

From cb47bc7d62b030052141197a0ee6bca7e442f819 Mon Sep 17 00:00:00 2001 From: Santeri Hurnanen Date: Wed, 4 Dec 2024 12:33:10 +0200 Subject: [PATCH 72/95] UHF-11041: Change pipeline triggers (#1594) --- pipelines/drupal-dev.yml | 25 ++++++++++++------------- pipelines/drupal-test.yml | 24 ++++++++++++------------ 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/pipelines/drupal-dev.yml b/pipelines/drupal-dev.yml index cd16817b23..30aeba7d40 100644 --- a/pipelines/drupal-dev.yml +++ b/pipelines/drupal-dev.yml @@ -1,18 +1,17 @@ # Continuous integration (CI) triggers cause a pipeline to run whenever you push # an update to the specified branches or you push specified tags. -trigger: none - # batch: true - # branches: - # include: - # - dev - # paths: - # exclude: - # - '*.md' - # - '.github/' - # - 'pipelines/drupal-production.yml' - # - 'pipelines/drupal-staging.yml' - # - 'pipelines/drupal-test.yml' - # - 'compose*' +trigger: + batch: true + branches: + include: + - dev + paths: + exclude: + - '*.md' + - '.github/' + - 'pipelines/drupal-production.yml' + - 'pipelines/drupal-staging.yml' + - 'pipelines/drupal-test.yml' # Pull request (PR) triggers cause a pipeline to run whenever a pull request is # opened with one of the specified target branches, or when updates are made to diff --git a/pipelines/drupal-test.yml b/pipelines/drupal-test.yml index 36823a8f68..aecbb6489d 100644 --- a/pipelines/drupal-test.yml +++ b/pipelines/drupal-test.yml @@ -1,17 +1,17 @@ # Continuous integration (CI) triggers cause a pipeline to run whenever you push # an update to the specified branches or you push specified tags. -trigger: - batch: true - branches: - include: - - dev - paths: - exclude: - - '*.md' - - '.github/' - - 'pipelines/drupal-production.yml' - - 'pipelines/drupal-staging.yml' - - 'pipelines/drupal-dev.yml' +trigger: none + # batch: true + # branches: + # include: + # - dev + # paths: + # exclude: + # - '*.md' + # - '.github/' + # - 'pipelines/drupal-production.yml' + # - 'pipelines/drupal-staging.yml' + # - 'pipelines/drupal-dev.yml' # Pull request (PR) triggers cause a pipeline to run whenever a pull request is # opened with one of the specified target branches, or when updates are made to From 9d26396bb9d5bf71532d27e8d3a0b38ba50b6577 Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Thu, 5 Dec 2024 07:28:18 +0200 Subject: [PATCH 73/95] UHF-10711: Fixes per comments (#1598) --- .../en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml | 2 +- .../sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml | 2 +- conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml | 3 --- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml b/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml index 863c6245d2..ff758a416b 100644 --- a/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml +++ b/conf/cmi/language/en/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml @@ -272,7 +272,7 @@ elements: | '#title': '4.2 Expenses' talous_menon_tyyppi: '#title': 'Type of expense' - '#help': '

Write down the type of expense in question. Expenses can be, for example, rents and personnel costs..

' + '#help': '

Write down the type of expense in question. Expenses can be, for example, rents and personnel costs.

' '#multiple__add_more_button_label': 'Add new expense' lisatiedot_ja_liitteet: '#title': '5. Additional information and appendices' diff --git a/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml b/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml index 3f0586b494..be67445b87 100644 --- a/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml +++ b/conf/cmi/language/sv/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml @@ -266,7 +266,7 @@ elements: | '#ownFunding__title': 'Egenfinansiering (€)' talous_tulon_tyyppi: '#title': 'Typ av inkomst ' - '#help': '

Skriv ner vilken typ av inkomst det gäller. Inkomster kan till exempel vara andra understöd och inträdes- eller
deltagaravgifter. Självfinansiering måste uppges som en inkomst även
om den självfinansierade delen finansieras med sökandes övrig  erksamhet.

' + '#help': '

Skriv ner vilken typ av inkomst det gäller. Inkomster kan till exempel vara andra understöd och inträdes- eller
deltagaravgifter. Självfinansiering måste uppges som en inkomst även
om den självfinansierade delen finansieras med sökandes övrig verksamhet.

' '#multiple__add_more_button_label': 'Lägg till en intäkt' menot_section: '#title': '4.2 Utgifter' diff --git a/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml b/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml index 19469c1d65..ca85e6f327 100644 --- a/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml +++ b/conf/cmi/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml @@ -971,9 +971,6 @@ elements: |- visible: ':input[name="hankesuunnitelma_radios"]': value: '0' - required: - ':input[name="hankesuunnitelma_radios"]': - value: '0' hankkeen_valiarviointi_section: '#type': webform_section '#title': '3.5 2-vuotisten hankkeiden väliarviointi' From b508ee3ec09f7e20bd95f64276c106b696b0c0fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Kalij=C3=A4rvi?= Date: Thu, 5 Dec 2024 07:29:06 +0200 Subject: [PATCH 74/95] UHF-10345: Uncommentend previously failing tests. (#1596) --- e2e/utils/data/application/application_data_48.ts | 2 +- e2e/utils/data/application/application_data_52.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/e2e/utils/data/application/application_data_48.ts b/e2e/utils/data/application/application_data_48.ts index 52ab034a8f..0cabf7efc1 100644 --- a/e2e/utils/data/application/application_data_48.ts +++ b/e2e/utils/data/application/application_data_48.ts @@ -1116,7 +1116,7 @@ const sendApplication: FormDataWithRemoveOptionalProps = { const registeredCommunityApplications_48 = { draft: baseForm_48, copy: createFormData(baseForm_48, copyForm), - // swap_fields: createFormData(baseForm_48, fieldSwapForm), + swap_fields: createFormData(baseForm_48, fieldSwapForm), missing_values: createFormData(baseForm_48, missingValues), wrong_email: createFormData(baseForm_48, wrongEmail), wrong_email_2: createFormData(baseForm_48, wrongEmail2), diff --git a/e2e/utils/data/application/application_data_52.ts b/e2e/utils/data/application/application_data_52.ts index 40690b0066..da9e3878df 100644 --- a/e2e/utils/data/application/application_data_52.ts +++ b/e2e/utils/data/application/application_data_52.ts @@ -1332,7 +1332,7 @@ const registeredCommunityApplications_52 = { draft: baseFormRegisteredCommunity_52, missing_values: createFormData(baseFormRegisteredCommunity_52, missingValues), wrong_values: createFormData(baseFormRegisteredCommunity_52, wrongValues), - // swap_fields: createFormData(baseFormRegisteredCommunity_52, fieldSwapForm), + swap_fields: createFormData(baseFormRegisteredCommunity_52, fieldSwapForm), success: createFormData(baseFormRegisteredCommunity_52, sendApplication), } From b71dfd84df31064225b03b44c540db16c178ddbc Mon Sep 17 00:00:00 2001 From: jeremysteerio <49063836+jeremysteerio@users.noreply.github.com> Date: Mon, 9 Dec 2024 08:11:31 +0200 Subject: [PATCH 75/95] UHF-10455: Add new General grants for welfare and health promotion form (#1597) --- conf/cmi/grants_metadata.settings.yml | 16 + .../en/webform.webform.hyteed_yleis.yml | 295 ++++++ .../sv/webform.webform.hyteed_yleis.yml | 297 ++++++ conf/cmi/webform.webform.hyteed_yleis.yml | 907 ++++++++++++++++++ .../src/Plugin/DataType/HyteedYleisData.php | 39 + .../Definition/HyteedyleisDefinition.php | 188 ++++ 6 files changed, 1742 insertions(+) create mode 100644 conf/cmi/language/en/webform.webform.hyteed_yleis.yml create mode 100644 conf/cmi/language/sv/webform.webform.hyteed_yleis.yml create mode 100644 conf/cmi/webform.webform.hyteed_yleis.yml create mode 100644 public/modules/custom/grants_metadata/src/Plugin/DataType/HyteedYleisData.php create mode 100644 public/modules/custom/grants_metadata/src/TypedData/Definition/HyteedyleisDefinition.php diff --git a/conf/cmi/grants_metadata.settings.yml b/conf/cmi/grants_metadata.settings.yml index fd564d5239..f37c30d87b 100644 --- a/conf/cmi/grants_metadata.settings.yml +++ b/conf/cmi/grants_metadata.settings.yml @@ -251,6 +251,16 @@ third_party_options: fi: 'KuvaErillis FI' en: 'KuvaErillis EN' sv: 'KuvaErillis SV' + 71: + id: HYTEEDYLEIS + code: HYTEEDYLEIS + dataDefinition: + definitionClass: Drupal\grants_metadata\TypedData\Definition\HyteedyleisDefinition + definitionId: grants_metadata_hyteedyleis + labels: + fi: 'Hyvinvoinnin ja terveyden edistämisen yleisavustus' + en: 'General grants for welfare and health promotion' + sv: 'Allmänt understöd inom främjandet av välfärd och hälsa' 72: id: SOTEPEYLEIS code: SOTEPEYLEIS @@ -474,6 +484,12 @@ overridden_configuration: applicationOpen: '2024-01-03T11:08:26' applicationClose: '2029-07-30T11:19:00' disableCopying: 0 + - + 71: + grants_metadata: + applicationOpen: '2022-10-03T11:08:26' + applicationClose: '2029-07-30T11:19:00' + disableCopying: 0 - 72: grants_metadata: diff --git a/conf/cmi/language/en/webform.webform.hyteed_yleis.yml b/conf/cmi/language/en/webform.webform.hyteed_yleis.yml new file mode 100644 index 0000000000..af2b4d919a --- /dev/null +++ b/conf/cmi/language/en/webform.webform.hyteed_yleis.yml @@ -0,0 +1,295 @@ +title: 'General grants for welfare and health promotion' +elements: | + 1_hakijan_tiedot: + '#title': '1. Applicant details' + '#prev_button_label': 'Previous' + '#next_button_label': 'Next' + yhteiso_jolle_haetaan_avustusta: + '#title': 'Community for which the grant is being applied for' + prh_markup: + '#markup': '
The indicated information has been retrieved from the register of the Finnish Patent and Registration Office (PRH), and changing the information is only possible in the online service in question.
' + hakijan_tiedot: + '#title': Applicant + contact_person_email_section: + '#title': Email + contact_markup: + '#markup': 'Provide here a community email address that is actively read. Contact requests related to the grant application, such as requests for further clarification and completion, will be sent to the email address.' + email: + '#title': 'Email address' + '#help': 'Provide the email address to which you want the messages and notifications related to this application to be sent and which is actively read.' + contact_person_section: + '#title': 'Contact person for the application' + contact_person: + '#title': 'Contact person' + contact_person_phone_number: + '#title': 'Phone number' + osoite: + '#title': Address + community_address: + '#title': Address + '#help': 'If you want to add, delete or change address information, save the application as a draft and go to maintain the address information in your own data.' + '#community_address_select__title': 'Select the address' + tilinumero: + '#title': 'Account number' + bank_account: + '#title': 'Account number' + '#help': 'If you want to add, delete or change account number information, save the application as a draft and go to maintain the account number information in your own data.' + '#account_number_select__title': 'Select the account number' + '#account_number__title': '' + toiminnasta_vastaavat_henkilot: + '#title': 'Persons responsible for operations' + community_officials: + '#help': 'If you want to add, delete or change people, save the application as a draft and go to maintain the people's information in your own data.' + '#title': 'Persons responsible for operations' + '#multiple__add_more_button_label': 'Add person' + '#multiple__item_label': person + '#community_officials_select__title': 'Select official' + 2_avustustiedot: + '#title': '2. Grant details' + '#prev_button_label': 'Previous' + '#next_button_label': 'Next' + avustuksen_tiedot: + '#title': 'Grant details' + acting_year: + '#title': 'Year for which I am applying for a grant' + avustuslajit: + '#title': 'Types of grant' + subventions: + '#title': Grants + kayttotarkoitus: + '#title': 'Purpose of use' + compensation_purpose: + '#title': 'For what purpose will the grant be used?' + '#help': 'Provide a short description of the scope and nature of the activities to be carried out with the grant e.g. as follows:
How much or how often will you organise groups, events or other activities during the period of the grant? How many target group representatives do you expect to reach? In what areas of Helsinki will the activities be arranged? What kind of cooperation do you pursue with other operators in Helsinki?' + '#counter_maximum_message': '%d/5000 characters remaining' + who_benefits: + '#title': 'Who are the main beneficiaries of your activities?' + '#help': 'Describe who belong to your target group and possibly also how many target group members there are in your operational area. It is important that the target group description shows what kind of people you want and can reach or what kind of people and in what situation will benefit most from your activities.' + changes_on_success: + '#title': 'What kind of changes will take place if you succeed?' + '#help': 'Your activities may have many goals. Describe and assess the key changes you are seeking to achieve in your target group's functioning and in their everyday life, relationships or other aspects related to well-being and health or involvement, for example. So what will change if you have succeeded or what kind of phenomena do your activities prevent?' + results_of_activities: + '#title': 'What are the benefits of the activities to be supported?' + '#help': 'Briefly describe the effects of the activities and how they are achieved. You can describe the effects in the order in which they occur: which effects occur first and which after a little longer time. However, focus on the immediate effects of the activities.
You can indicate what is special about your activities or what (quality) factors need to be taken care of in order to achieve the desired effects. You can also describe how any cooperation you have pursued will contribute to achieving the effects.' + muut_samaan_tarkoitukseen_myonnetyt_avustukset: + '#title': 'Other grants received for the same purpose' + info_muut_samaan_tarkoitukseen_myonnetty: + '#markup': "

Indicate here only the grants received from somewhere other than the City of Helsinki in the current and two previous tax years.

\r\n\r\n
\r\n
\r\n
An affirmative answer opens a further question
\r\n
\r\n
\r\n" + olemme_saaneet_muita_avustuksia: + '#title': 'We have received other grants' + '#options': + 1: 'Yes' + 0: 'No' + myonnetty_avustus: + '#title': 'Received grant' + '#multiple__no_items_message': 'No values entered. Add the new grant granted below.' + '#multiple__add_more_button_label': 'Add new received grant' + '#element': + issuer: + '#options': + 1: State + 3: EU + 4: Other + 5: Foundation + '#title': ' Grant issuer' + issuer_name: + '#title': 'Issuer''s name' + '#help': 'Which body has granted the grant (e.g. name of the ministry)' + year: + '#title': Year + '#pattern_error': 'Enter a year between 1900 - 2100' + amount: + '#title': 'Amount of grant granted' + purpose: + '#title': ' Description of intended use' + '#help': 'Give a brief description, for what purpose has the grant been granted?' + '#counter_maximum_message': '%d/1000 characters remaining' + muut_samaan_tarkoitukseen_haetut_avustukset: + '#title': 'Other grants applied for to be used for the same purpose' + info_muut_samaan_tarkoitukseen_haettu: + '#markup': "

Indicate here only the grants that have been applied for from somewhere other than the City of Helsinki and for which the decisions have not been made yet.

\r\n\r\n
\r\n
\r\n
An affirmative answer opens a further question
\r\n
\r\n
\r\n" + olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: + '#title': 'We have applied for grants from somewhere other than the City of Helsinki' + '#options': + 1: 'Yes' + 0: 'No' + haettu_avustus_tieto: + '#title': 'Add new grant applied for' + '#multiple__no_items_message': 'No values ​​entered. Add a new applied for grant below.' + '#multiple__add_more_button_label': 'Add new grant applied for' + '#element': + issuer: + '#options': + 1: State + 3: EU + 4: Other + 5: Foundation + '#title': 'Grant issuer' + issuer_name: + '#title': 'Issuer''s name' + '#help': 'Which body has granted the grant (e.g. name of the ministry)' + year: + '#title': Year + '#pattern_error': 'Enter a year between 1900 - 2100' + amount: + '#title': 'The amount of the grant applied for' + purpose: + '#title': 'Description of intended use' + '#help': 'Give a brief description, for what purpose has the grant been granted?' + '#counter_maximum_message': '%d/1000 characters remaining' + edellisen_avustuksen_kayttoselvitys: + '#title': 'Report on the use of the previous grant' + compensation_boolean_info: + '#markup': "
\r\n
\r\n
An affirmative answer opens a further question
\r\n
\r\n
\r\n" + compensation_boolean: + '#title': 'Report on the use of the grant I received in the previous year' + '#options': + - 'I have not received a grant from the City of Helsinki for the same purpose in the previous year.' + - 'I received a grant from the city of Helsinki for the same purpose last year.' + markup: + '#markup': 'Provide a report on the use of the grant received from the City of Helsinki. A report on the use of the grant must be drawn up for the grant concerning the previous accounting period. A report on the use should not be drawn up for the current accounting period. Providing the report on the use is a prerequisite for receiving the next grant. If no report on the use is provided, the grant will not be awarded or paid. A grant awarded may be recovered if the use of the previous grant has not been satisfactorily reported.' + compensation_explanation: + '#title': 'Report on the use of the grant' + '#help': 'The report on the use must briefly describe how the received grant has been used. The recipient must arrange its accounting in such a way that it is possible to monitor the use of the grant. For example, if a community has received a lease grant, the profit and loss account in the financial statements must show the grant in both income and expenses. Further information on the use of the grant can also be written in a separate attachment, which can be returned under Report on the use.' + '#counter_maximum_message': '%d/5000 characters remaining' + 3_yhteison_tiedot: + '#title': '3. Activities of the community' + '#prev_button_label': 'Previous' + '#next_button_label': 'Next' + business_info: + '#title': 'Description of activities' + business_purpose: + '#title': 'Description of activities' + '#help': 'If you want to add, remove or change the description of activities, save the application as a draft and go to your data to maintain the description of activities.' + '#counter_maximum_message': '%d/500 characters remaining' + community_practices_business: + '#title': 'Is the entity engaged in business?' + '#options': + 1: 'Yes' + 0: 'No' + ensimmainen_otsikko: + '#title': 'Membership fees' + fee_person: + '#title': 'Individual membership fee (€/year)' + fee_community: + '#title': 'Community member (€/year)' + jasenmaara: + '#title': 'Numbers of members' + jasenmaara_fieldset: + '#title': 'Numbers of members' + '#help': 'If the community has members, please list them here.' + members_applicant_person_global: + '#title': 'Total number of individual members' + '#help': 'How many individual members does the community currently have who have paid the membership fee?' + members_applicant_person_local: + '#title': 'Total number of individual members in Helsinki' + '#help': 'How many individual members does the community currently have in Helsinki who have paid the membership fee?' + members_applicant_community_global: + '#title': 'Community members' + '#help': 'How many community members does the community currently have who have paid the membership fee? Community members are non-individual members, such as associations, foundations, companies or municipalities.' + members_applicant_community_local: + '#title': 'Total number of community members in Helsinki' + '#help': 'How many community members does the community currently have in Helsinki who have paid the membership fee? Community members are non-individual members, such as associations, foundations, companies or municipalities.' + lisatiedot_ja_liitteet: + '#title': '4. Additional information and attachments' + lisatietoja_hakemukseen_liittyen: + '#title': 'Additional information concerning the application' + additional_information: + '#title': 'Additional information' + '#help': 'If necessary, you can write additional information or other justifications related to the application.' + '#counter_maximum_message': '%d/5000 characters remaining' + liitteet: + '#title': Attachments + attachments_info: + '#markup': |- +

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.

+

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

+

If the required attachments have already been submitted as attachments to another grant application addressed to the City of Helsinki, the same attachments do not need to be submitted again. The confirmed financial statements, annual report, action plan and budget of the community cannot be different from one application to another. In this case, under the submitted attachments, indicate “The attachment has been submitted as a single file or with another application”.

+ notification_attachments: + '#markup': "
\r\n
\r\n
The contents of the attachments cannot be viewed afterwards
\r\n\r\n
\r\n

Please note that you will not be able to open the attachments after you have attached them to the form. You will only see the file name of the attachment.

\r\n\r\n

Although you cannot view the attachments afterwards, the attachments to the form are sent along with the other information on the form to the grant application processor.

\r\n
\r\n
\r\n
\r\n" + yhteison_saannot: + '#title': 'Community Rules' + '#help': 'A new applicant or the rules have changed.' + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + vahvistettu_tilinpaatos: + '#title': 'Confirmed financial statements (for the previous accounting period)' + '#help': "The financial statements must include at least the profit and loss account and the balance sheet. An association must append to this section the financial statements confirmed and signed at the association’s annual meeting. \r\nThe community’s accounting period may be a calendar year or some other period. In the case of associations, their own rules state what the association’s accounting period is." + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + vahvistettu_toimintakertomus: + '#title': 'Confirmed annual report (for the previous accounting period)' + '#help': "An association must append to this section the annual report confirmed at the association’s annual meeting. If the annual report is part of the financial statements and you have already appended it to the form with the financial statements, it does not need to be appended here separately. In this case, under the annual report, indicate “The attachment has been submitted as a single file or with another application”." + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + vahvistettu_tilin_tai_toiminnantarkastuskertomus: + '#title': 'Confirmed audit or performance audit report (for the previous accounting period)' + '#help': "An association must append to this section the annual report confirmed at the association’s annual meeting. If the annual report is part of the financial statements and you have already appended it to the form with the financial statements, it does not need to be appended here separately. In this case, under the annual report, indicate “The attachment has been submitted as a single file or with another application”." + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + vuosikokouksen_poytakirja: + '#title': 'Minutes of the annual meeting confirming the financial statements for the previous accounting period' + '#help': 'Append here the minutes of the community meeting in which the financial statements for the previous accounting period are confirmed and discharge from liability granted. For associations, the financial statements are always confirmed at the association’s annual meeting. If the community is not required to have an annual meeting or other community meeting at which the financial statements should be approved and discharge from liability granted, this attachment does not need to be submitted.' + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + toimintasuunnitelma: + '#title': 'Action plan (for the year for which you are applying for a grant)' + '#help': 'Append here the action plan for the whole community.' + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + talousarvio: + '#title': 'Budget (for the year for which you are applying for a grant)' + '#help': 'Budget (for the year for which you are applying for a grant)' + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + extra_info: + '#title': 'Further clarification on attachments' + '#counter_maximum_message': '%d/5000 characters remaining' + muu_liite: + '#title': 'Other attachment' + '#multiple__add_more_button_label': 'Add attachment' + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + actions: + '#submit__label': Submit + '#draft__label': 'Save as draft' + '#wizard_prev__label': 'Previous' + '#wizard_next__label': 'Next' + '#preview_prev__label': 'Previous' + '#preview_next__label': 'Preview' + '#delete__label': ' Delete unfinished' +settings: + wizard_prev_button_label: Previous + wizard_next_button_label: Next + preview_label: '5. Confirm, preview, and submit' + preview_title: 'Confirm, preview, and submit' + wizard_confirmation_label: '6. Complete' diff --git a/conf/cmi/language/sv/webform.webform.hyteed_yleis.yml b/conf/cmi/language/sv/webform.webform.hyteed_yleis.yml new file mode 100644 index 0000000000..fd6e9c1455 --- /dev/null +++ b/conf/cmi/language/sv/webform.webform.hyteed_yleis.yml @@ -0,0 +1,297 @@ +title: 'Allmänt understöd inom främjandet av välfärd och hälsa' +elements: | + 1_hakijan_tiedot: + '#title': '1. Sökandens uppgifter' + '#prev_button_label': '< Tidigare' + '#next_button_label': 'Nästa' + yhteiso_jolle_haetaan_avustusta: + '#title': 'Samfund för vilket understödet ansöks' + prh_markup: + '#markup': '
De markerade uppgifterna har hämtats från Patent- och registerstyrelsens register (PRH) och det är endast möjligt att ändra uppgifterna i nättjänsten i fråga.
' + hakijan_tiedot: + '#title': Sökande + contact_person_email_section: + '#title': E-post + contact_markup: + '#markup': 'Ange här samfundets e-postadress som läses aktivt. Till e-postadressen skickas kontaktförfrågningar som är relaterade till ansökan om understöd, såsom begäranden om tilläggsutredning och komplettering' + email: + '#title': E-postadress + '#help': 'Ange en e-postadress dit meddelandena och begärandena relaterade till denna ansökan kommer att skickas och som läses aktivt.' + contact_person_section: + '#title': 'Kontaktperson för ansökan' + contact_person: + '#title': Kontaktperson + contact_person_phone_number: + '#title': Telefonnummer + osoite: + '#title': Adress + community_address: + '#title': Adress + '#help': 'Om du vill lägga till, ta bort eller ändra adressuppgifter, spara ansökan som ett utkast och gå till att behålla adressuppgifterna i dina egna uppgifter.' + '#community_address_select__title': 'Välj en adress' + tilinumero: + '#title': Kontonummer + bank_account: + '#title': Kontonummer + '#help': 'Om du vill lägga till, radera eller ändra kontonummerinformation, spara applikationen som ett utkast och gå till att behålla kontonummerinformationen i din egen data.' + '#account_number_select__title': 'Välj ett kontonummer' + '#account_number__title': '' + toiminnasta_vastaavat_henkilot: + '#title': 'Personer som ansvarar för verksamheten' + community_officials: + '#help': 'Om du vill lägga till, ta bort eller ändra personer, spara applikationen som ett utkast och gå till att underhålla personernas information i din egen data.' + '#title': 'Personer som ansvarar för verksamheten' + '#multiple__add_more_button_label': 'Lägg till en person' + '#multiple__item_label': person + '#community_officials_select__title': 'Välj motsvarande person' + '#role__title': Roll + '#email__title': E-post + '#phone__title': Telefonnummer + 2_avustustiedot: + '#title': '2. Uppgifter om understödet' + '#prev_button_label': 'Tidigare' + '#next_button_label': 'Nästa' + avustuksen_tiedot: + '#title': 'Uppgifter om understödet' + acting_year: + '#title': 'År för vilket jag ansöker om understöd' + avustuslajit: + '#title': 'Understödskatego­rier' + subventions: + '#title': Understöd + kayttotarkoitus: + '#title': 'Användningsända­mål' + compensation_purpose: + '#title': 'Vad kommer understödet att användas till?' + '#help': 'Beskriv den verksamhet som ska genomföras med hjälp av understödet och verksamhetens omfattning i korthet exempelvis på följande sätt:
Hur mycket eller ofta ordnar ni grupper, evenemang eller annan verksamhet under den understödda perioden? Hur många representanter för målgruppen kommer ni att nå enligt er uppskattning? Inom vilka områden i Helsingfors kommer verksamheten att ordnas? På vilka sätt samarbetar ni med andra aktörer i Helsingfors?' + '#counter_maximum_message': '%d/5000 tecken kvar' + who_benefits: + '#title': 'Who are the main beneficiaries of your activities?' + '#help': 'Beskriv vem som hör till er målgrupp och eventuellt också hur många av dem som hör till er målgrupp det finns i ert verksamhetsområde. I beskrivningen av målgruppen är det viktigt att det framgår vilka slags människor just ni önskar och kan bemöta, eller de situationer i vilka människor får den största nyttan av er verksamhet.' + changes_on_success: + '#title': 'What kind of changes will take place if you succeed?' + '#help': 'Er verksamhet kan ha flera mål. Beskriv och bedöm här de centrala förändringar som ni eftersträvar exempelvis i er målgrupps funktionsförmåga, vardag, människorelationer eller andra aspekter som anknyter till välfärd och hälsa eller delaktighet. Vilka slags förändringar kommer det alltså att ske om ni lyckas eller vilka slags fenomen förebygger er verksamhet?' + results_of_activities: + '#title': 'What are the benefits of the activities to be supported?' + '#help': 'Beskriv kort vilka effekter som uppnås genom verksamheten och på vilket sätt de uppstår. Du kan beskriva effekterna i den ordning de sker: vilka effekter uppstår först och vilka efter en längre tid. Koncentrera dig dock på verksamhetens omedelbara effekter.
Du kan även berätta vad som är speciellt med er verksamhet eller vilka (kvalitets)faktorer som bör beaktas särskilt för att de effekter som eftersträvas ska uppnås. Du kan även beskriva hur något samarbete ni har främjar uppnåendet av effekterna.' + muut_samaan_tarkoitukseen_myonnetyt_avustukset: + '#title': 'Övriga understöd som beviljats för samma ändamål' + info_muut_samaan_tarkoitukseen_myonnetty: + '#markup': "

Ange här endast de understöd som beviljats från annanstans än Helsingfors stad under det innevarande beskattningsåret eller de föregående två beskattningsåren.

\r\n\r\n
\r\n
\r\n
Ett jakande svar öppnar ytterligare en fråga
\r\n
\r\n
\r\n" + olemme_saaneet_muita_avustuksia: + '#title': 'Vi har fått andra understöd' + '#options': + 1: Ja + 0: Nej + myonnetty_avustus: + '#title': 'Bidrag beviljat' + '#multiple__no_items_message': 'Inga värden har angetts. Lägg till det nya beviljade bidraget nedan.' + '#multiple__add_more_button_label': 'Lägg till understöd som beviljats' + '#element': + issuer: + '#options': + 1: Stat + 3: EU + 4: Övrig + 5: Fundament + '#title': Bidragsgivare + issuer_name: + '#title': 'Emittentens namn' + '#help': 'Vilket organ har beviljat bidraget (t.ex. namnet på departementet)' + year: + '#title': År + '#pattern_error': 'Ange ett årtal' + amount: + '#title': 'Beviljat bidragsbelopp' + purpose: + '#title': 'Beskrivning av avsedd användning' + '#help': 'Ge en kort beskrivning, i vilket syfte har bidraget beviljats?' + '#counter_maximum_message': '%d/1000 tecken kvar' + muut_samaan_tarkoitukseen_haetut_avustukset: + '#title': 'Övriga understöd som ansökts för samma ändamål' + info_muut_samaan_tarkoitukseen_haettu: + '#markup': "

Ange här endast de understöd som har ansökts från annanstans än Helsingfors stad, men beslut har ännu inte fattats.

\r\n\r\n
\r\n
\r\n
Ett jakande svar öppnar ytterligare en fråga
\r\n
\r\n
\r\n" + olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: + '#title': 'Vi har ansökt om understöd från annanstans än Helsingfors stad.' + '#options': + 1: Ja + 0: Nej + haettu_avustus_tieto: + '#title': 'Lägg till nytt understöd som ansökts' + '#multiple__no_items_message': 'Inga värden har angetts. Lägg till ett nytt ansökt bidrag nedan.' + '#multiple__add_more_button_label': 'Lägg till nytt understöd som ansökts' + '#element': + issuer: + '#options': + 1: Stat + 3: EU + 4: Övrig + 5: Fundament + '#title': Bidragsgivare + issuer_name: + '#title': 'Emittentens namn' + '#help': 'Vilket organ har beviljat bidraget (t.ex. namnet på departementet)' + year: + '#title': År + '#pattern_error': 'Ange ett årtal' + amount: + '#title': 'Beviljat bidragsbelopp' + purpose: + '#title': 'Beskrivning av avsedd användning' + '#help': 'Ge en kort beskrivning, i vilket syfte har bidraget beviljats?' + '#counter_maximum_message': '%d/1000 tecken kvar' + edellisen_avustuksen_kayttoselvitys: + '#title': 'Redovisning om det tidigare understödet' + compensation_boolean_info: + '#markup': "
\r\n
\r\n
Ett jakande svar öppnar ytterligare en fråga
\r\n
\r\n
\r\n" + compensation_boolean: + '#title': 'Redovisning om understödet som jag fick under det föregående året' + '#options': + - 'Jag har inte fått bidrag från Helsingfors stad för samma ändamål föregående år.' + - 'Jag fick ett bidrag från Helsingfors stad för samma ändamål förra året.' + markup: + '#markup': 'Ge en redovisning om understödet som fåtts från Helsingfors stad. Redovisningen görs om understödet som beviljats för den senaste avslutade räkenskapsperioden. Redovisning görs inte om den innevarande räkenskapsperioden. Redovisningen krävs för att få ett nytt understöd. Om en redovisning inte görs, kommer ett understöd inte att beviljas eller betalas ut. Det beviljade understödet kan återkrävas om användningen av det tidigare understödet inte har redogjorts för på ett tillfredsställande sätt.' + compensation_explanation: + '#title': 'Redovisning om användningen av understödet' + '#help': 'I redovisningen ska det kortfattat anges hur det beviljade understödet har använts. Understödstagaren ska ordna sin bokföring så att användningen av understödet kan följas där. Om samfundet till exempel har fått hyresunderstöd ska det av resultaträkningen i bokslutet framgå både intäkter och utgifter vad gäller understödet. Mer information om användningen av understödet kan också skrivas i en separat bilaga som kan läggas till och skickas som Annan bilaga.' + '#counter_maximum_message': '%d/5000 tecken kvar' + 3_yhteison_tiedot: + '#title': '3. Samfundets verksamhet' + '#prev_button_label': 'Tidigare' + '#next_button_label': 'Nästa' + business_info: + '#title': Verksamhets­beskrivning + business_purpose: + '#title': Verksamhets­beskrivning + '#help': 'Om du vill lägga till, ta bort eller ändra verksamhetsbeskrivningen, spara ansökan som ett utkast och gå till dina uppgifter för att redigera verksamhetsbeskrivningen.' + '#counter_maximum_message': '%d/500 tecken kvar' + community_practices_business: + '#title': 'Bedriver samfundet affärsverksamhet' + '#options': + 1: Ja + 0: Nej + ensimmainen_otsikko: + '#title': Medlemsavgifter + fee_person: + '#title': 'Medlemsavgift för personmedlemmar (€/år)' + fee_community: + '#title': 'Samfundsmedlem (€/år)' + jasenmaara: + '#title': 'Antal medlemmar' + jasenmaara_fieldset: + '#title': Medlemskap + '#help': 'Om gruppen har medlemmar, vänligen ange dem här.' + members_applicant_person_global: + '#title': 'Personmedlemmar sammanlagt' + '#help': 'Hur många personmedlemmar som har betalat medlemsavgiften har samfundet för närvarande?' + members_applicant_person_local: + '#title': 'Personmedlemmar från Helsingfors sammanlagt' + '#help': 'Hur många personmedlemmar från Helsingfors som har betalat medlemsavgiften har samfundet för närvarande?' + members_applicant_community_global: + '#title': Samfundsmedlemmar + '#help': 'Hur många samfundsmedlemmar som har betalat medlemsavgiften har samfundet för närvarande? Samfundsmedlemmar är andra än personmedlemmar, såsom föreningar, stiftelser, företag eller kommuner.' + members_applicant_community_local: + '#title': 'Samfundsmedlemmar från Helsingfors sammanlagt' + '#help': 'Hur många samfundsmedlemmar från Helsingfors som har betalat medlemsavgiften har samfundet för närvarande? Samfundsmedlemmar är andra än personmedlemmar, såsom föreningar, stiftelser, företag eller kommuner.' + lisatiedot_ja_liitteet: + '#title': '4. Ytterligare information och bilagor' + lisatietoja_hakemukseen_liittyen: + '#title': 'Ytterligare information för ansökan' + additional_information: + '#title': 'Ytterligare information' + '#help': 'Här kan du vid behov skriva ytterligare information eller andra motiveringar som rör ansökan.' + '#counter_maximum_message': '%d/5000 tecken kvar' + liitteet: + '#title': Bilagor + attachments_info: + '#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.

+

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

+

Om de erforderliga bilagorna redan har lämnats in som bilaga till en annan ansökan om understöd till Helsingfors stad, behöver samma bilagor inte lämnas in igen. Samfundets fastställda bokslut, verksamhetsberättelse, verksamhetsplan och budget får inte vara olika i bilagor till de olika ansökningarna. Ange i detta fall vid de inlämnade bilagorna att ”Bilagan har lämnats in som en fil eller i samband med en annan ansökan”.

+ notification_attachments: + '#markup': "
\r\n
\r\n
Innehållet i bilagorna kan inte granskas i efterhand
\r\n\r\n
\r\n

Observera att du inte kan öppna bilagorna efter att du har bifogat dem blanketten. Du ser bara bilagans filnamn.

\r\n\r\n

Även om du inte kan granska innehållet i bilagorna i efterhand skickas bilagorna som bifogats blanketten med övriga uppgifter till personen som behandlar ansökan om understöd.

\r\n
\r\n
\r\n
\r\n" + yhteison_saannot: + '#title': 'Samfundets stadgar' + '#help': 'En ny sökande eller reglerna har ändrats.' + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + vahvistettu_tilinpaatos: + '#title': 'Fastställt bokslut (för den föregående avslutade räkenskapsperioden)' + '#help': "Bokslutet ska innehålla minst resultaträkningen och balansräkningen. Samfundet ska till denna punkt lägga till bokslutet som godkänts och undertecknats vid samfundets medlemsmöte. Samfundets räkenskapsperiod kan vara ett kalenderår eller en annan period. Vad gäller samfund anges det i deras egna stadgar vad samfundets räkenskapsperiod är." + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + vahvistettu_toimintakertomus: + '#title': 'Fastställd verksamhetsberättelse (för den föregående avslutade räkenskapsperioden)' + '#help': "Samfundet ska till denna punkt bifoga verksamhetsberättelsen som godkänts och undertecknats vid samfundets medlemsmöte. Om verksamhetsberättelsen ingår i bokslutet och du redan har bifogat den blanketten, behöver den inte bifogas separat. Ange i detta fall vid verksamhetsberättelsen att ”Bilagan har lämnats in som en fil eller i samband med en annan ansökan”." + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + vahvistettu_tilin_tai_toiminnantarkastuskertomus: + '#title': 'Fastställd revisionsberättelse (för det föregående avslutade räkenskapsåret)' + '#help': "Bifoga den undertecknade revisionsberättelsen för samfundets senaste avslutade räkenskapsperiod här. Om den undertecknade revisionsberättelsen ingår i samfundets bokslut och du redan bifogat den till blanketten i samband med bokslutet, ange ”Bilagan har lämnats in som en fil eller i samband med en annan ansökan” här." + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + vuosikokouksen_poytakirja: + '#title': 'Protokoll från årsstämman med det godkända bokslutet för den föregående räkenskapsperioden' + '#help': 'Bifoga protokollet från samfundets möte här, där bokslutet för den föregående avslutade räkenskapsperioden har godkänts och ansvarsfrihet beviljats. Samfundens bokslut fastställs alltid vid samfundets medlemsmöte. Om samfundet inte är skyldigt att ha ett årsmöte eller annat samfundsmöte där bokslutet bör godkännas och ansvarsfrihet beviljas, behöver denna bilaga inte lämnas in.' + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + toimintasuunnitelma: + '#title': 'Verksamhetsplan (för det år du ansöker om understödet)' + '#help': 'Bifoga verksamhetsplanen för hela för samfundet här.' + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + talousarvio: + '#title': 'Budget (för det år du ansöker om understödet)' + '#help': 'Budget (för det år du ansöker om understödet)' + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + extra_info: + '#title': 'Ytterligare information om bilagorna' + '#counter_maximum_message': '%d/5000 tecken kvar' + muu_liite: + '#title': 'Annan bilaga' + '#multiple__add_more_button_label': 'Lägg till en bilaga' + '#attachmentName__title': '' + '#fileStatus__title': '' + '#fileType__title': '' + '#integrationID__title': '' + '#isAttachmentNew__title': '' + actions: + '#submit__label': Skicka + '#draft__label': 'Spara som oavslutad' + '#wizard_prev__label': 'Tidigare' + '#wizard_next__label': 'Nästa' + '#preview_prev__label': 'Tidigare' + '#preview_next__label': 'För förhandsvisning' + '#delete__label': ' Radera oavslutat' +settings: + wizard_prev_button_label: Tidigare + wizard_next_button_label: Nästa + preview_label: '5. Bekräfta, förhandsgranska och skicka' + preview_title: 'Bekräfta, förhandsgranska och skicka' + wizard_confirmation_label: '6. Slutförd' diff --git a/conf/cmi/webform.webform.hyteed_yleis.yml b/conf/cmi/webform.webform.hyteed_yleis.yml new file mode 100644 index 0000000000..a306132422 --- /dev/null +++ b/conf/cmi/webform.webform.hyteed_yleis.yml @@ -0,0 +1,907 @@ +uuid: c87c419b-f06c-4a25-876c-a42f380d7667 +langcode: fi +status: open +dependencies: + module: + - grants_handler + - grants_metadata +third_party_settings: + grants_metadata: + applicationTypeSelect: '71' + applicationType: HYTEEDYLEIS + applicationTypeID: '71' + applicationIndustry: KANSLIA + applicantTypes: + registered_community: registered_community + applicationTypeTerms: + 49: '49' + applicationTargetGroup: '30' + applicationOpen: '2022-10-03T11:08:26' + applicationClose: '2029-07-30T11:19:00' + applicationActingYearsType: next_x_years + applicationActingYears: { } + applicationActingYearsNextCount: '1' + applicationContinuous: 0 + disableCopying: 0 + status: development + parent: d8472e68-d6bd-4de2-a409-f0a177bf9e94 + avus2BreakingChange: 0 +weight: 0 +open: null +close: null +uid: 1 +template: false +archive: false +id: hyteed_yleis +title: 'Hyvinvoinnin ja terveyden edistämisen yleisavustus' +description: '

HYTEEDYLEIS

' +categories: + - Kehityksessä +elements: |- + applicant_type: + '#type': hidden + '#title': 'Applicant type' + avustukset_summa: + '#type': grants_webform_summation_field + '#title': 'Avustukset summa' + '#title_display': none + '#description_display': invisible + '#collect_field': + subventions%%amount: subventions%%amount + application_number: 0 + status: 0 + hakijan_tiedot: 0 + email: 0 + contact_person: 0 + contact_person_phone_number: 0 + community_address: 0 + bank_account: 0 + community_officials: 0 + acting_year: 0 + subventions%%subventionTypeTitle: 0 + subventions%%subventionType: 0 + compensation_purpose: 0 + olemme_saaneet_muita_avustuksia: 0 + myonnetty_avustus: 0 + benefits_loans: 0 + benefits_premises: 0 + compensation_boolean: 0 + compensation_explanation: 0 + business_purpose: 0 + community_practices_business: 0 + fee_person: 0 + fee_community: 0 + members_applicant_person_local: 0 + members_applicant_person_global: 0 + members_applicant_community_local: 0 + members_applicant_community_global: 0 + additional_information: 0 + yhteison_saannot: 0 + vahvistettu_tilinpaatos: 0 + vahvistettu_toimintakertomus: 0 + vahvistettu_tilin_tai_toiminnantarkastuskertomus: 0 + vuosikokouksen_poytakirja: 0 + toimintasuunnitelma: 0 + talousarvio: 0 + extra_info: 0 + muu_liite: 0 + '#data_type': euro + '#form_item': hidden + 1_hakijan_tiedot: + '#type': webform_wizard_page + '#title': '1. Hakijan tiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + application_number: + '#type': hidden + '#title': Hakemusnumero + '#disabled': true + status: + '#type': hidden + '#title': 'Hakemuksen tila' + '#readonly': true + yhteiso_jolle_haetaan_avustusta: + '#type': webform_section + '#title': 'Yhteisö, jolle haetaan avustusta' + '#attributes': + class: + - grants-profile--imported-section + prh_markup: + '#type': webform_markup + '#markup': '
Tiedot on haettu Patentti- ja rekisterihallinnon rekisteristä (PRH), eikä niitä voi tämän takia muokata.
' + hakijan_tiedot: + '#type': applicant_info + '#title': Hakija + contact_person_email_section: + '#type': webform_section + '#title': Sähköposti + contact_markup: + '#type': webform_markup + '#markup': 'Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.' + email: + '#type': email + '#title': Sähköpostiosoite + '#required': true + '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' + '#size': 63 + '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' + contact_person_section: + '#type': webform_section + '#title': 'Hakemuksen yhteyshenkilö' + contact_person: + '#type': textfield + '#title': Yhteyshenkilö + '#attributes': + class: + - webform--large + '#autocomplete': 'off' + '#required': true + '#size': 63 + contact_person_phone_number: + '#type': textfield + '#title': Puhelinnumero + '#attributes': + class: + - webform--medium + '#required': true + '#autocomplete': 'off' + '#size': 32 + osoite: + '#type': webform_section + '#title': Osoite + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + community_address: + '#type': community_address_composite + '#title': 'Yhteisön osoite' + '#help': 'Jos haluat lisätä, poistaa tai muuttaa osoitetietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään osoitetietoa omiin tietoihin.' + '#attributes': + class: + - webform--large + '#required': true + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + tilinumero: + '#type': webform_section + '#title': Tilinumero + bank_account: + '#type': bank_account_composite + '#title': Tilinumero + '#help': 'Jos haluat lisätä, poistaa tai muuttaa tilinumerotietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään tilinumerotietoa omiin tietoihin.' + '#attributes': + class: + - webform--medium + '#required': true + toiminnasta_vastaavat_henkilot: + '#type': webform_section + '#title': 'Toiminnasta vastaavat henkilöt' + '#states': + visible: + ':input[name="applicant_type"]': + '!value': private_person + community_officials: + '#type': community_officials_composite + '#help': 'Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.' + '#title': 'Valitse toiminnasta vastaavat henkilöt' + '#multiple': true + '#multiple__item_label': henkilö + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää henkilö' + '#wrapper_attributes': + class: + - community_officials_wrapper + '#attributes': + class: + - webform--large + 2_avustustiedot: + '#type': webform_wizard_page + '#title': '2. Avustustiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + avustuksen_tiedot: + '#type': webform_section + '#title': 'Avustuksen tiedot' + acting_year: + '#type': select + '#title': 'Vuosi, jolle haen avustusta' + '#options': + 2022: '2022' + 2023: '2023' + 2024: '2024' + '#required': true + avustuslajit: + '#type': webform_section + '#title': Avustuslajit + subventions: + '#type': grants_compensations + '#title': Avustukset + '#multiple': true + '#subventionType': + 6: '6' + '#onlyOneSubventionPerApplication': 1 + '#required': true + '#multiple__header': true + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more': false + '#attributes': + class: + - subventions + '#subvention_type': + 1: '1' + 6: '6' + '#subvention_type_id__access': false + '#subvention_type__title': Avustuslaji + '#subvention_amount__title': 'Avustuksen summa' + kayttotarkoitus: + '#type': webform_section + '#title': 'Käyttötarkoitus' + compensation_purpose: + '#type': textarea + '#title': 'Mihin avustus käytetään?' + '#help': 'Kuvaa tiiviisti avustuksella toteutettavaa toimintaa ja toiminnan laajuutta esimerkiksi seuraavilla tavoilla:
Kuinka paljon tai kuinka usein järjestätte ryhmiä, tapahtumia tai muuta toimintaa avustettavan ajanjakson aikana? Kuinka paljon kohderyhmän edustajia arvioitte tavoittavanne? Missä Helsingin alueilla toimintaa järjestetään? Minkälaista yhteistyötä teette Helsingissä muiden toimijoiden kanssa?' + '#required': true + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#cols': 63 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + who_benefits: + '#type': textarea + '#title': 'Ketkä toiminnastanne erityisesti hyötyvät?' + '#help': 'Kuvaa keitä kohderyhmäänne kuuluu ja mahdollisesti myös kuinka paljon kohderyhmään kuuluvia toiminta-alueellanne on. Kohderyhmän kuvauksessa on tärkeää, että siitä käy ilmi minkälaisia ihmisiä juuri te haluatte ja osaatte kohdata, tai millaisessa tilanteessa olevat hyötyvät toiminnastanne eniten.' + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#cols': 63 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#states': + visible: + ':input[name="avustukset_summa"]': + value: + greater_equal: '10000' + required: + ':input[name="avustukset_summa"]': + value: + greater_equal: '10000' + changes_on_success: + '#type': textarea + '#title': 'Minkälaisia muutoksia tapahtuu, jos onnistutte?' + '#help': 'Toiminnallanne voi olla monia tavoitteita. Kuvatkaa ja arvioikaa tässä keskeiset muutokset, joita tavoittelette esimerkiksi kohderyhmänne toimintakyvyssä, arjessa, ihmissuhteissa tai muussa hyvinvointiin ja terveyteen tai osallisuuteen liittyvässä asiassa. Mikä siis muuttuu, jos olette onnistuneet tai minkälaisia ilmiöitä toimintanne ennaltaehkäisee?' + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#cols': 63 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#states': + visible: + ':input[name="avustukset_summa"]': + value: + greater_equal: '10000' + required: + ':input[name="avustukset_summa"]': + value: + greater_equal: '10000' + results_of_activities: + '#type': textarea + '#title': 'Minkälaisia hyötyjä avustettavan toiminnan seurauksena syntyy?' + '#help': 'Kuvaa lyhyesti, mitä vaikutuksia toiminnalla saadaan aikaan ja millä tavoin ne syntyvät. Voit kuvata vaikutukset niiden tapahtumisjärjestyksessä: mitä vaikutuksia syntyy ensin, ja mitä vähän pidemmän ajan kuluttua. Keskity kuitenkin toiminnan välittömiin vaikutuksiin.
Voit myös kertoa, mikä toiminnassanne on erityistä tai mistä (laatu)tekijöistä on erityisesti huolehdittava, että tavoiteltavia vaikutuksia saavutetaan. Voit myös kuvata, miten jokin tekemänne yhteistyö edistää vaikutusten saavuttamista.' + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#cols': 63 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#states': + visible: + ':input[name="avustukset_summa"]': + value: + greater_equal: '50000' + required: + ':input[name="avustukset_summa"]': + value: + greater_equal: '50000' + muut_samaan_tarkoitukseen_myonnetyt_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen myönnetyt avustukset' + info_muut_samaan_tarkoitukseen_myonnetty: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on myönnetty muualta kuin Helsingin kaupungilta kuluvana tai kahtena edellisenä verovuotena. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_saaneet_muita_avustuksia: + '#type': radios + '#title': 'Olemme saaneet muita avustuksia' + '#description_display': before + '#options': + 1: Kyllä + 0: Ei + myonnetty_avustus: + '#type': webform_custom_composite + '#title': 'Myönnetty avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + required: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'myönnetty avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi myönnetty avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi myönnetty avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + 6: STEA + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#attributes': + class: + - webform--large + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + year: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': Vuosi + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#attributes': + class: + - webform--small + '#required': true + '#title': 'Myönnetyn avustuksen summa' + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + edellisen_avustuksen_kayttoselvitys: + '#type': webform_section + '#title': 'Edellisen avustuksen käyttöselvitys' + compensation_boolean_info: + '#type': webform_markup + '#markup': | +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ compensation_boolean: + '#type': radios + '#title': 'Käyttöselvitys edellisenä vuonna saamastani avustuksesta' + '#options': + - 'En ole saanut Helsingin kaupungilta avustusta samaan käyttötarkoitukseen edellisenä vuonna.' + - 'Olen saanut Helsingin kaupungilta avustusta samaan käyttötarkoitukseen edellisenä vuonna.' + '#required': true + markup: + '#type': webform_markup + '#states': + visible: + ':input[name="compensation_boolean"]': + value: '1' + '#markup': 'Anna käyttöselvitys Helsingin kaupungilta saadusta avustuksesta. Avustuksen käyttöselvitys tehdään avustuksesta, joka koskee viimeisintä päättynyttä tilikautta. Käyttöselvitystä ei tehdä käynnissä olevalta tilikaudelta. Käyttöselvityksen antaminen on seuraavan avustuksen saamisen ehtona. Mikäli käyttöselvitystä ei tehdä, avustusta ei myönnetä eikä makseta. Myönnetty avustus voidaan periä takaisin, jos edellisen avustuksen käyttöä ei ole hyväksyttävästi selvitetty.' + compensation_explanation: + '#type': textarea + '#title': 'Selvitys avustuksen käytöstä' + '#help': 'Käyttöselvityksessä tulee kuvata lyhyesti, miten myönnetty avustus on käytetty. Avustuksen saajan on järjestettävä kirjanpitonsa niin, että avustuksen käyttöä voidaan sieltä seurata. Esimerkiksi jos yhteisö on saanut vuokra-avustusta, tilinpäätöksen tuloslaskelmasta tulee käydä ilmi avustuksen toteutuminen sekä tuloissa että menoissa. Lisää tietoja avustuksen käytöstä voi myös kirjoittaa erilliseen liitteeseen, jonka voi ladata ja lähettää Muu-liitteenä.' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#states': + visible: + ':input[name="compensation_boolean"]': + value: '1' + required: + ':input[name="compensation_boolean"]': + value: '1' + '#attributes': + class: + - webform--large + '#cols': 63 + 3_yhteison_tiedot: + '#type': webform_wizard_page + '#title': '3. Yhteisön toiminta' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + business_info: + '#type': webform_section + '#title': 'Toiminnan kuvaus' + business_purpose: + '#type': textarea + '#title': 'Toiminnan kuvaus' + '#help': 'Tieto haetaan omat tiedot -osiosta' + '#maxlength': 500 + '#counter_type': character + '#counter_maximum': 500 + '#counter_maximum_message': '%d/500 merkkiä jäljellä' + community_practices_business: + '#type': radios + '#title': 'Harjoittaako yhteisö liiketoimintaa' + '#options': + 1: Kyllä + 0: Ei + '#options_display': side_by_side + '#options_description_display': help + '#required': true + ensimmainen_otsikko: + '#type': webform_section + '#title': Jäsenmaksut + fee_person: + '#type': textfield + '#title': 'Henkilöjäsenen jäsenmaksu (€ / vuosi)' + '#attributes': + class: + - webform--small + '#maxlength': 50 + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + '#size': 16 + fee_community: + '#type': textfield + '#title': 'Yhteisöjäsen (€ / vuosi)' + '#attributes': + class: + - webform--small + '#maxlength': 50 + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + '#size': 16 + jasenmaara: + '#type': webform_section + '#title': Jäsenmäärä + jasenmaara_fieldset: + '#type': fieldset + '#title': Jäsenmäärä + '#help': 'Jos yhteisöllä on jäseniä, merkitse ne tähän.' + '#attributes': + class: + - grants-fieldset + - grants-fieldset-short + members_applicant_person_global: + '#type': textfield + '#title': 'Henkilöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta henkilöjäsentä yhteisöllä on tällä hetkellä?' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + members_applicant_person_local: + '#type': textfield + '#title': 'Helsinkiläisiä henkilöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta helsinkiläistä henkilöjäsentä yhteisöllä on tällä hetkellä?' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + members_applicant_community_global: + '#type': textfield + '#title': 'Yhteisöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta yhteisöjäsentä yhteisöllä on tällä hetkellä? Yhteisöjäseniä ovat muut kuin henkilöjäsenet, esimerkiksi yhdistykset, säätiöt, yritykset tai kunnat.' + '#maxlength': 9 + '#size': 16 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#attributes': + class: + - webform--small + members_applicant_community_local: + '#type': textfield + '#title': 'Helsinkiläisiä yhteisöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta helsinkiläistä yhteisöjäsentä yhteisöllä on tällä hetkellä? Yhteisöjäseniä ovat muut kuin henkilöjäsenet, esimerkiksi yhdistykset, säätiöt, yritykset tai kunnat.' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + lisatiedot_ja_liitteet: + '#type': webform_wizard_page + '#title': '4. Lisätiedot ja liitteet' + lisatietoja_hakemukseen_liittyen: + '#type': webform_section + '#title': 'Lisätietoja hakemukseen liittyen' + additional_information: + '#type': textarea + '#title': Lisätiedot + '#attributes': + class: + - webform--large + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + liitteet: + '#type': webform_section + '#title': Liitteet + attachments_info: + '#type': webform_markup + '#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. +

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

+

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ notification_attachments: + '#type': webform_markup + '#markup': | +
+
+
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.

+
+
+ yhteison_saannot: + '#type': grants_attachments + '#title': 'Yhteisön säännöt' + '#multiple': false + '#filetype': '7' + '#help': 'Uusi hakija tai säännöt muuttuneet.' + '#title_display': before + '#description__access': false + vahvistettu_tilinpaatos: + '#type': grants_attachments + '#title': 'Vahvistettu tilinpäätös (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '43' + '#help': |- +

Tilinpäätöksen täytyy sisältää vähintään tuloslaskelma ja tase. Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun ja allekirjoitetun tilinpäätöksen.

+

Yhteisön tilikausi voi olla kalenterivuosi tai jokin muu kausi. Yhdistysten kohdalla niiden omissa säännöissä lukee, mikä on yhdistyksen tilikausi.

+ '#title_display': before + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi sisältö alta.' + '#description__access': false + vahvistettu_toimintakertomus: + '#type': grants_attachments + '#title': 'Vahvistettu toimintakertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '4' + '#help': |- +

Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun toimintakertomuksen.

+

Jos toimintakertomus on osana tilinpäätöstä ja liititte sen jo tilinpäätöksen mukana lomakkeelle, sitä ei tarvitse liittää tähän erikseen. Valitse tällaisessa tilanteessa toimintakertomuksen kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + vahvistettu_tilin_tai_toiminnantarkastuskertomus: + '#type': grants_attachments + '#title': 'Vahvistettu tilin- tai toiminnantarkastuskertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '5' + '#help': |- +

Liitä tähän allekirjoitettu tilin- tai toiminnantarkastuskertomus yhteisön edelliseltä päättyneeltä tilikaudelta.

+

Jos allekirjoitettu tilin- tai toiminnantarkastuskertomus on osa yhteisönne tilinpäätöstä ja liitit sen jo lomakkeelle tilinpäätöksen kohdalla, valitse tässä kohdassa ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + vuosikokouksen_poytakirja: + '#type': grants_attachments + '#title': 'Vuosikokouksen pöytäkirja, jossa on vahvistettu edellisen päättyneen tilikauden tilinpäätös' + '#multiple': false + '#filetype': '8' + '#help': 'Liitä tähän yhteisön kokouksen pöytäkirja, jossa edellisen päättyneen tilikauden tilinpäätös on vahvistettu ja vastuuvapaus myönnetty. Yhdistyksillä tilinpäätös vahvistetaan aina yhdistyksen jäsenkokouksessa. Mikäli yhteisöltä ei edellytetä vuosikokousta tai muuta yhteisön kokousta, jossa tilinpäätös tulisi vahvistaa ja vastuuvapaus myöntää, ei tätä liitettä tarvitse toimittaa.' + '#title_display': before + '#description__access': false + toimintasuunnitelma: + '#type': grants_attachments + '#title': 'Toimintasuunnitelma (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '1' + '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma. ' + '#title_display': before + '#description__access': false + talousarvio: + '#type': grants_attachments + '#title': 'Talousarvio (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '22' + '#help': 'Talousarvio (sille vuodelle jolle haet avustusta)' + '#title_display': before + '#description__access': false + extra_info: + '#type': textarea + '#title': 'Lisäselvitys liitteistä' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#attributes': + class: + - webform--large + '#cols': 63 + muu_liite: + '#type': grants_attachments + '#title': 'Muu liite' + '#multiple': 10 + '#filetype': '0' + '#title_display': before + '#multiple__item_label': liite + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi liite' + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + actions: + '#type': webform_actions + '#title': 'Submit button(s)' + '#submit__label': Lähetä + '#draft__label': 'Tallenna keskeneräisenä' + '#wizard_prev__label': 'Edellinen' + '#wizard_next__label': 'Seuraava' + '#preview_prev__label': 'Edellinen' + '#preview_next__label': 'Esikatseluun' + '#delete_hide': false + '#delete__label': 'Poista keskeneräinen' + '#delete__attributes': + class: + - hds-button + - hds-button--primary + '#delete__dialog': true +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: source_entity_webform + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: false + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: true + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: true + form_disable_back: false + form_submit_back: true + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: { } + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: true + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: true + wizard_progress_states: false + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '6. Valmis' + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: '' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava + wizard_toggle: true + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 2 + preview_label: '5. Vahvista, esikatsele ja lähetä' + preview_title: 'Vahvista, esikatsele ja lähetä' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: false + preview_exclude_empty_checkbox: false + draft: all + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: none + confirmation_url: '' + confirmation_title: '' + confirmation_message: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: true + confirmation_exclude_token: true + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: draft + purge_days: 365 + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - anonymous + - authenticated + users: { } + permissions: { } + view_any: + roles: { } + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: + grants_handler: + id: grants_handler + handler_id: grants_handler + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: 0 + settings: + debug: false +variants: { } diff --git a/public/modules/custom/grants_metadata/src/Plugin/DataType/HyteedYleisData.php b/public/modules/custom/grants_metadata/src/Plugin/DataType/HyteedYleisData.php new file mode 100644 index 0000000000..864f2a723b --- /dev/null +++ b/public/modules/custom/grants_metadata/src/Plugin/DataType/HyteedYleisData.php @@ -0,0 +1,39 @@ +parent)) { + // The property path of this data object is the parent's path appended + // by this object's name. + $prefix = $this->parent->getPropertyPath(); + return ((is_string($prefix) && strlen($prefix)) ? $prefix . '.' : '') . $this->name; + } + // If no parent is set, this is the root of the data tree. Thus the property + // path equals the name of this data object. + elseif (isset($this->name)) { + return $this->name; + } + return ''; + } + +} diff --git a/public/modules/custom/grants_metadata/src/TypedData/Definition/HyteedyleisDefinition.php b/public/modules/custom/grants_metadata/src/TypedData/Definition/HyteedyleisDefinition.php new file mode 100644 index 0000000000..8ece6187d5 --- /dev/null +++ b/public/modules/custom/grants_metadata/src/TypedData/Definition/HyteedyleisDefinition.php @@ -0,0 +1,188 @@ +propertyDefinitions)) { + + $info = &$this->propertyDefinitions; + + foreach ($this->getBaseProperties() as $key => $property) { + $info[$key] = $property; + } + } + + $info['members_applicant_person_local'] = DataDefinition::create('integer') + ->setSetting('defaultValue', "") + ->setSetting('valueCallback', [ + '\Drupal\grants_handler\Plugin\WebformHandler\GrantsHandler', + 'convertToInt', + ]) + ->setSetting('typeOverride', [ + 'dataType' => 'integer', + 'jsonType' => 'int', + ]) + ->setSetting('jsonPath', [ + 'compensation', + 'activitiesInfoArray', + 'membersApplicantPersonLocal', + ]); + + $info['members_applicant_person_global'] = DataDefinition::create('integer') + ->setSetting('defaultValue', "") + ->setSetting('valueCallback', [ + '\Drupal\grants_handler\Plugin\WebformHandler\GrantsHandler', + 'convertToInt', + ]) + ->setSetting('jsonPath', [ + 'compensation', + 'activitiesInfoArray', + 'membersApplicantPersonGlobal', + ]); + + $info['members_applicant_community_local'] = DataDefinition::create('integer') + ->setSetting('defaultValue', "") + ->setSetting('valueCallback', [ + '\Drupal\grants_handler\Plugin\WebformHandler\GrantsHandler', + 'convertToInt', + ]) + ->setSetting('jsonPath', [ + 'compensation', + 'activitiesInfoArray', + 'membersApplicantCommunityLocal', + ]); + + $info['members_applicant_community_global'] = DataDefinition::create('integer') + ->setSetting('valueCallback', [ + '\Drupal\grants_handler\Plugin\WebformHandler\GrantsHandler', + 'convertToInt', + ]) + ->setSetting('jsonPath', [ + 'compensation', + 'activitiesInfoArray', + 'membersApplicantCommunityGlobal', + ]); + + $info['subventions'] = ListDataDefinition::create('grants_metadata_compensation_type') + ->setSetting('jsonPath', [ + 'compensation', + 'compensationInfo', + 'compensationArray', + ]); + + $info['compensation_purpose'] = DataDefinition::create('string') + ->setSetting('jsonPath', [ + 'compensation', + 'compensationInfo', + 'generalInfoArray', + 'purpose', + ]); + + $info['compensation_boolean'] = DataDefinition::create('boolean') + ->setRequired(TRUE) + ->setSetting('typeOverride', [ + 'dataType' => 'string', + 'jsonType' => 'bool', + ]) + ->setSetting('jsonPath', [ + 'compensation', + 'compensationInfo', + 'generalInfoArray', + 'compensationPreviousYear', + ]); + + $info['compensation_explanation'] = DataDefinition::create('string') + ->setSetting('defaultValue', "") + ->setSetting('jsonPath', [ + 'compensation', + 'compensationInfo', + 'generalInfoArray', + 'explanation', + ]); + + $info['who_benefits'] = DataDefinition::create('string') + ->setSetting('jsonPath', [ + 'compensation', + 'compensationInfo', + 'generalInfoArray', + 'whoBenefits', + ]); + + $info['changes_on_success'] = DataDefinition::create('string') + ->setSetting('jsonPath', [ + 'compensation', + 'compensationInfo', + 'generalInfoArray', + 'changesOnSuccess', + ]); + + $info['results_of_activities'] = DataDefinition::create('string') + ->setSetting('jsonPath', [ + 'compensation', + 'compensationInfo', + 'generalInfoArray', + 'resultsOfActivities', + ]); + + $info['fee_person'] = DataDefinition::create('float') + ->setSetting('jsonPath', [ + 'compensation', + 'activitiesInfoArray', + 'feePerson', + ]) + ->setSetting('valueCallback', [ + '\Drupal\grants_handler\Plugin\WebformHandler\GrantsHandler', + 'convertToFloat', + ]) + ->setSetting('typeOverride', [ + 'dataType' => 'string', + 'jsonType' => 'float', + ]); + + $info['fee_community'] = DataDefinition::create('float') + ->setSetting('jsonPath', [ + 'compensation', + 'activitiesInfoArray', + 'feeCommunity', + ]) + ->setSetting('valueCallback', [ + '\Drupal\grants_handler\Plugin\WebformHandler\GrantsHandler', + 'convertToFloat', + ]) + ->setSetting('typeOverride', [ + 'dataType' => 'string', + 'jsonType' => 'float', + ]); + + return $this->propertyDefinitions; + } + + /** + * Override property definition. + * + * @param string $name + * Property name. + * + * @return \Drupal\Core\TypedData\DataDefinitionInterface|void|null + * Property definition. + */ + public function getPropertyDefinition($name) { + $retval = parent::getPropertyDefinition($name); + return $retval; + } + +} From 6236e03dc5c81616d0ed5041bb00adc3a74113dc Mon Sep 17 00:00:00 2001 From: jeremysteerio <49063836+jeremysteerio@users.noreply.github.com> Date: Mon, 9 Dec 2024 08:12:01 +0200 Subject: [PATCH 76/95] UHF-10149: Add tests for after submit messaging (#1590) * Add tests for after submit messaging * Add tests for after submit messaging * UHF-10149: Add attachment test to messaging * UHF-10149: Fix variable name * UHF-10149: Remove one await --------- Co-authored-by: Janne Suominen --- e2e/README.md | 2 +- e2e/utils/helpers.ts | 23 +++++++-- e2e/utils/validation_helpers.ts | 86 ++++++++++++++++++++++++++++++++- 3 files changed, 106 insertions(+), 5 deletions(-) diff --git a/e2e/README.md b/e2e/README.md index 9bab60d8c1..eade37a548 100644 --- a/e2e/README.md +++ b/e2e/README.md @@ -70,7 +70,7 @@ The file should be located in the `/e2e` directory. Example `.env` file: ``` # ======================= -# ENVIRONEMNT VARIABLES +# ENVIRONMENT VARIABLES # # Copy this file to create a .env file and make necessary changes. # NOTE! Copy the relevant values from local.settings.php to these environment variables. diff --git a/e2e/utils/helpers.ts b/e2e/utils/helpers.ts index 7391b401c7..be4c2c24d7 100644 --- a/e2e/utils/helpers.ts +++ b/e2e/utils/helpers.ts @@ -156,6 +156,22 @@ const waitForTextWithInterval = async ( } } +/** + * The getFulfilledResponse function. + * + * Wait for a fulfilled response from a request. + * + * @param page + * Playwright page object + */ +async function getFulfilledResponse(page: Page) { + const response = await page.waitForResponse(async (response) => { + return response.ok(); + }); + + return response.json(); +} + /** * The logCurrentUrl function. * @@ -169,11 +185,12 @@ const logCurrentUrl = async (page: Page) => { } export { - slowLocator, extractPath, - hideSlidePopup, getApplicationNumberFromBreadCrumb, - waitForTextWithInterval, + getFulfilledResponse, + hideSlidePopup, logCurrentUrl, + slowLocator, + waitForTextWithInterval, }; diff --git a/e2e/utils/validation_helpers.ts b/e2e/utils/validation_helpers.ts index 30678fde7b..0af9c7727c 100644 --- a/e2e/utils/validation_helpers.ts +++ b/e2e/utils/validation_helpers.ts @@ -3,7 +3,9 @@ import {logger} from "./logger"; import {FormField, FormData, FormFieldWithRemove} from "./data/test_data" import {viewPageBuildSelectorForItem} from "./view_page_helpers"; import {PROFILE_INPUT_DATA, ProfileInputData} from "./data/profile_input_data"; -import {logCurrentUrl} from "./helpers"; +import {getFulfilledResponse, logCurrentUrl} from "./helpers"; +import { uploadFile } from './input_helpers'; +import { ATTACHMENTS } from './data/attachment_data'; /** * The pageType type. @@ -49,6 +51,10 @@ const validateSubmission = async ( await navigateAndValidateViewPage(page, thisStoreData); await validateFormData(page, 'viewPage', formDetails); } + if (thisStoreData.status === 'RECEIVED') { + logger(`Validating messaging for sent application with application ID: ${thisStoreData.applicationId}...`); + await validateMessaging(page, thisStoreData); + } } /** @@ -424,6 +430,84 @@ const navigateAndValidateViewPage = async ( logger('Draft validation on page:', viewPageURL); } +/** + * The validateMessaging function. + * + * This function validates messaging after + * form submitting works as intended. + * + * @param page + * Page object from Playwright. + * @param thisStoreData + * The env form data. + */ +const validateMessaging = async ( + page: Page, + thisStoreData: any +) => { + const { applicationId } = thisStoreData; + const viewPageUrl = `/fi/hakemus/${applicationId}/katso`; + + await page.goto(viewPageUrl); + await logCurrentUrl(page); + await page.waitForURL('**/katso'); + + const formActionButton = page.locator('form.grants-handler-message button.form-submit[name="op"]'); + const textArea = page.locator('textarea[name="message"]'); + + // Validate error on empty message. + await formActionButton.click(); + await page.waitForSelector('form.grants-handler-message .hds-notification--error'); + await expect(page.locator('form.grants-handler-message .hds-notification--error')).toBeVisible(); + await expect(page.locator('form.grants-handler-message .hds-notification--error .hds-notification__body')).toHaveText('1 virhe löytyi: Viesti'); + + // Validate sending message works. + await textArea.fill('Test message'); + + await formActionButton.click(); + const responseBody = await getFulfilledResponse(page); + await expect(responseBody.length).toBe(4); + + await page.waitForSelector('form.grants-handler-message .hds-notification--info'); + const infoMessage = page.locator('form.grants-handler-message .hds-notification--info'); + await expect(infoMessage).toBeVisible(); + await expect(page.locator('form.grants-handler-message .hds-notification--info .hds-notification__body')).toContainText('Viestisi on lähetetty.'); + await expect(formActionButton).toHaveText('Uusi viesti'); + + // Reload page to see message list. + await page.reload(); + await page.waitForSelector('ul.webform-submission-messages__messages-list'); + + // Validate sending additional messages. + await textArea.fill('Test message 2'); + await formActionButton.click(); + const secondSubmitBody = await getFulfilledResponse(page); + expect(secondSubmitBody.length).toBe(4); + await page.waitForSelector('ul.webform-submission-messages__messages-list > h5'); + + const messages = await page.locator('.webform-submission-messages__messages-list .webform-submission-messages__message-body').all(); + expect(messages.length).toEqual(2); + await expect(messages[0]).toContainText('Test message'); + await expect(messages[1]).toContainText('Test message 2'); + + // Test adding attachment. + await formActionButton.click(); + await textArea.fill('Attachment test message'); + await uploadFile( + page, + 'form.grants-handler-message .form-file', + 'form.grants-handler-message .form-managed-file a', + ATTACHMENTS.MUU_LIITE, + ); + await page.locator('input[name="attachmentDescription"]').fill('Attachment test description'); + await formActionButton.click(); + + await expect(infoMessage).toBeVisible(); + await expect(page.locator('form.grants-handler-message .hds-notification--info .hds-notification__body')).toContainText('Viestisi on lähetetty.'); + + logger('Message validation successful!'); +} + /** * The navigateAndValidatePrintPage function. * From 6d5fdbcd2febff86e109ed39b08092cfb138b3af Mon Sep 17 00:00:00 2001 From: Tero Elonen <2276077+teroelonen@users.noreply.github.com> Date: Mon, 9 Dec 2024 10:56:26 +0200 Subject: [PATCH 77/95] Change description class coloring to be grants specific styling (#1600) --- .../themes/custom/hdbt_subtheme/dist/css/styles.min.css | 2 +- public/themes/custom/hdbt_subtheme/package-lock.json | 9 ++++----- .../scss/06_components/forms/webform/_form-elements.scss | 4 ++++ 3 files changed, 9 insertions(+), 6 deletions(-) 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 501bf8a61c..d1f703b233 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}}.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{margin-top:8px}.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%}.club-section__participants label{text-wrap:balance}.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.5;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.25;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{margin-top:8px}.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}.form-item .description{color:#595959}.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%}.club-section__participants label{text-wrap:balance}.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/package-lock.json b/public/themes/custom/hdbt_subtheme/package-lock.json index 416b9bcc7b..663a5a817f 100644 --- a/public/themes/custom/hdbt_subtheme/package-lock.json +++ b/public/themes/custom/hdbt_subtheme/package-lock.json @@ -3310,9 +3310,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001683", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001683.tgz", - "integrity": "sha512-iqmNnThZ0n70mNwvxpEC2nBJ037ZHZUoBI5Gorh1Mw6IlEAZujEoU1tXA628iZfzm7R9FvFzxbfdgml82a3k8Q==", + "version": "1.0.30001687", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001687.tgz", + "integrity": "sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ==", "funding": [ { "type": "opencollective", @@ -3326,8 +3326,7 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ], - "license": "CC-BY-4.0" + ] }, "node_modules/chalk": { "version": "2.4.2", diff --git a/public/themes/custom/hdbt_subtheme/src/scss/06_components/forms/webform/_form-elements.scss b/public/themes/custom/hdbt_subtheme/src/scss/06_components/forms/webform/_form-elements.scss index 0a4cf75121..ce14b65c09 100644 --- a/public/themes/custom/hdbt_subtheme/src/scss/06_components/forms/webform/_form-elements.scss +++ b/public/themes/custom/hdbt_subtheme/src/scss/06_components/forms/webform/_form-elements.scss @@ -50,6 +50,10 @@ width: 100%; will-change: transform,box-shadow; } + + .description { + color: $color-black-60; + } } .webform-section { From 6d6f5084383cefa035088b2eebfe3e2d1e58773a Mon Sep 17 00:00:00 2001 From: rpnykanen <48206082+rpnykanen@users.noreply.github.com> Date: Tue, 10 Dec 2024 13:25:55 +0200 Subject: [PATCH 78/95] UHF-11076 (#1601) * UHF-11076: fix encoded ampersands on form fields after loading data from atv * UHF-11076: fix the encoded ampersand problem on grantpremsesservice. decode also all string string fields as well * UHF-11076: reorder the first section by weight * UHF-11076: sort all sections inside a page --- .../src/Controller/AtvPrintViewController.php | 7 ++++++- .../custom/grants_metadata/src/AtvSchema.php | 14 ++++++++------ .../grants_metadata/src/DocumentValueExtractor.php | 12 +++++++----- .../grants_premises/src/GrantsPremisesService.php | 2 +- 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/public/modules/custom/grants_handler/src/Controller/AtvPrintViewController.php b/public/modules/custom/grants_handler/src/Controller/AtvPrintViewController.php index be3b46fc3b..c61997f732 100644 --- a/public/modules/custom/grants_handler/src/Controller/AtvPrintViewController.php +++ b/public/modules/custom/grants_handler/src/Controller/AtvPrintViewController.php @@ -89,7 +89,12 @@ public function __invoke(string $submission_id): array { } } - // Sort the fields based on weight. + // Sort the sections inside a page based on section weight. + foreach ($newPages as $pageKey => $page) { + usort($newPages[$pageKey]['sections'], fn($a, $b) => $a['weight'] > $b['weight']); + } + + // Sort the fields inside the sections based on weight. foreach ($newPages as $pageKey => $page) { foreach ($page['sections'] as $sectionKey => $section) { usort($newPages[$pageKey]['sections'][$sectionKey]['fields'], function ($fieldA, $fieldB) { diff --git a/public/modules/custom/grants_metadata/src/AtvSchema.php b/public/modules/custom/grants_metadata/src/AtvSchema.php index 6c5614a487..3acde835c6 100644 --- a/public/modules/custom/grants_metadata/src/AtvSchema.php +++ b/public/modules/custom/grants_metadata/src/AtvSchema.php @@ -371,12 +371,14 @@ private static function extractValuesRecursively(array $items, array $keys, arra if (in_array($key, $keys) && !in_array($key, $values)) { $values[$key] = $item; } - if (is_numeric($key) && - !AtvSchema::numericKeys($item) && - isset($item['ID']) && - in_array($item['ID'], $keys) && - !in_array($item['ID'], $values)) { - $values[$item['ID']] = $item['value']; + if ( + is_numeric($key) && + !AtvSchema::numericKeys($item) && + isset($item['ID']) && + in_array($item['ID'], $keys) && + !in_array($item['ID'], $values) + ) { + $values[$item['ID']] = htmlspecialchars_decode($item['value']); } } } diff --git a/public/modules/custom/grants_metadata/src/DocumentValueExtractor.php b/public/modules/custom/grants_metadata/src/DocumentValueExtractor.php index 898a12bddc..eabd741761 100644 --- a/public/modules/custom/grants_metadata/src/DocumentValueExtractor.php +++ b/public/modules/custom/grants_metadata/src/DocumentValueExtractor.php @@ -155,10 +155,12 @@ protected static function getArrayElementItemValue( $itemValue = self::processNestedArrayItem($v, $itemPropertyDefinitions); if (array_key_exists('value', $v)) { $meta = isset($v['meta']) ? json_decode($v['meta'], TRUE) : NULL; - $retval[$key][$v['ID']] = InputmaskHandler::convertPossibleInputmaskValue( - $itemValue ?? $v['value'], - $meta ?? [] + $value = InputmaskHandler::convertPossibleInputmaskValue( + $itemValue ?? $v['value'], + $meta ?? [] ); + + $retval[$key][$v['ID']] = htmlspecialchars_decode($value); } else { $retval[$key][$key2] = $itemValue ?? $v; @@ -210,7 +212,7 @@ protected static function extractItemValue( if ($valueExtractorConfig) { $valueExtractorService = self::getDynamicService($valueExtractorConfig['service']); $method = $valueExtractorConfig['method']; - return $valueExtractorService->$method($item); + return htmlspecialchars_decode($valueExtractorService->$method($item)); } return NULL; } @@ -239,7 +241,7 @@ protected static function extractSimpleItemValue( if ($valueExtractorConfig) { $valueExtractorService = self::getDynamicService($valueExtractorConfig['service']); $method = $valueExtractorConfig['method']; - return $valueExtractorService->$method($item); + return htmlspecialchars_decode($valueExtractorService->$method($item)); } } return NULL; diff --git a/public/modules/custom/grants_premises/src/GrantsPremisesService.php b/public/modules/custom/grants_premises/src/GrantsPremisesService.php index 3a39e4b8aa..cfbd66470d 100644 --- a/public/modules/custom/grants_premises/src/GrantsPremisesService.php +++ b/public/modules/custom/grants_premises/src/GrantsPremisesService.php @@ -195,7 +195,7 @@ public function extractToWebformData(DataDefinitionInterface $definition, array $value2value = 0; } } - $temp[$value2['ID']] = $value2value; + $temp[$value2['ID']] = htmlspecialchars_decode($value2value); } $returnValueArray[$key] = $temp; } From fef6f63b5e09f0df8eafc877ae27e0fd9945574e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Kalij=C3=A4rvi?= Date: Tue, 10 Dec 2024 14:26:27 +0200 Subject: [PATCH 79/95] Use trim and rawurlencode to prevent possible infinite loop. (#1602) --- .../EventSubscriber/ForceCompanyAuthorisationSubscriber.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/public/modules/custom/grants_handler/src/EventSubscriber/ForceCompanyAuthorisationSubscriber.php b/public/modules/custom/grants_handler/src/EventSubscriber/ForceCompanyAuthorisationSubscriber.php index f167242ffb..216fa6b885 100644 --- a/public/modules/custom/grants_handler/src/EventSubscriber/ForceCompanyAuthorisationSubscriber.php +++ b/public/modules/custom/grants_handler/src/EventSubscriber/ForceCompanyAuthorisationSubscriber.php @@ -77,7 +77,7 @@ public function needsRedirectToLogin(RequestEvent $event): bool { return FALSE; } $requestUri = $event->getRequest()->getRequestUri(); - $urlObject = Url::fromUserInput($requestUri); + $urlObject = Url::fromUserInput(trim(rawurldecode($requestUri))); if ($urlObject->access(User::getAnonymousUser()) === FALSE) { return TRUE; } @@ -107,7 +107,8 @@ public function needsRedirectToMandate(RequestEvent $event): bool { if ($selectedCompany !== NULL) { return FALSE; } - $urlObject = Url::fromUserInput($event->getRequest()->getRequestUri()); + $requestUri = $event->getRequest()->getRequestUri(); + $urlObject = Url::fromUserInput(trim(rawurldecode($requestUri))); $routeName = $urlObject->getRouteName(); $nodeType = ''; From e740ec17b074350cd7146a7fdcd9c13530d6505b Mon Sep 17 00:00:00 2001 From: rpnykanen <48206082+rpnykanen@users.noreply.github.com> Date: Wed, 11 Dec 2024 08:57:28 +0200 Subject: [PATCH 80/95] changes for release (#1604) --- conf/cmi/webform.webform.liikunta_tapahtuma.yml | 6 +++--- .../webform.webform.ymparistopalvelut_yleisavustus.yml | 9 +++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/conf/cmi/webform.webform.liikunta_tapahtuma.yml b/conf/cmi/webform.webform.liikunta_tapahtuma.yml index e108b662d1..e9d0f068fd 100644 --- a/conf/cmi/webform.webform.liikunta_tapahtuma.yml +++ b/conf/cmi/webform.webform.liikunta_tapahtuma.yml @@ -16,11 +16,11 @@ third_party_settings: applicationTypeTerms: 65: '65' applicationTargetGroup: '26' - applicationOpen: '2024-01-01T00:00:00' - applicationClose: '2024-12-08T23:59:59' + applicationOpen: '2024-12-09T00:00:00' + applicationClose: '2025-12-07T23:59:59' applicationActingYearsType: fixed applicationActingYears: - 2024: '2024' + 2025: '2025' applicationActingYearsNextCount: '0' applicationContinuous: 0 disableCopying: 1 diff --git a/conf/cmi/webform.webform.ymparistopalvelut_yleisavustus.yml b/conf/cmi/webform.webform.ymparistopalvelut_yleisavustus.yml index 9d57d1198c..a8987471ab 100644 --- a/conf/cmi/webform.webform.ymparistopalvelut_yleisavustus.yml +++ b/conf/cmi/webform.webform.ymparistopalvelut_yleisavustus.yml @@ -18,15 +18,16 @@ third_party_settings: 52: '52' 48: '48' applicationTargetGroup: '31' - applicationOpen: '2024-01-01T00:00:00' - applicationClose: '2024-04-30T16:00:00' - applicationActingYearsType: current_and_next_x_years + applicationOpen: '2025-01-01T00:01:00' + applicationClose: '2025-04-30T16:00:00' + applicationActingYearsType: next_x_years applicationActingYears: { } - applicationActingYearsNextCount: '2' + applicationActingYearsNextCount: '1' applicationContinuous: 0 disableCopying: 0 status: released parent: '' + avus2BreakingChange: false weight: 0 open: null close: null From d2fd9610d8b86b84106f59999c1f954d8386e2fb Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Thu, 12 Dec 2024 07:09:11 +0200 Subject: [PATCH 81/95] UHF-11127: Fix thrown error when user tries to get form with out uuid (#1606) * UHF-11127: Fix thrown error when user tries to get form with out uuid in metadata. * UHF-11127: Make sure the form_uuid is always set, even if it's not in the og metadata. --- .../src/ApplicationGetterService.php | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/public/modules/custom/grants_handler/src/ApplicationGetterService.php b/public/modules/custom/grants_handler/src/ApplicationGetterService.php index 0372e01b86..da3b97238e 100644 --- a/public/modules/custom/grants_handler/src/ApplicationGetterService.php +++ b/public/modules/custom/grants_handler/src/ApplicationGetterService.php @@ -190,13 +190,22 @@ public function getCompanyApplications( } $submissionData = $submission->getData(); + $webform = $submission->getWebform(); + + // There's old applications w/o form_uuid, let's add it here + // Since we've already loaded webform for submission object the old way, + // we should have it here anyways. Just make sure it's in the metadata + // as well. + if (!isset($submissionData["metadata"]["form_uuid"])) { + $submissionData["metadata"]["form_uuid"] = $webform->uuid(); + } $submissionData['messages'] = $this->grantsHandlerMessageService->parseMessages($submissionData); $submission = [ '#theme' => $themeHook, '#submission' => $submissionData, '#document' => $document, - '#webform' => $submission->getWebform(), + '#webform' => $webform, '#submission_id' => $submission->id(), ]; @@ -260,6 +269,7 @@ public function getCompanyApplications( * * @throws \Drupal\Core\Entity\EntityStorageException * @throws \Drupal\grants_mandate\CompanySelectException + * @throws \Drupal\helfi_atv\AtvDocumentNotFoundException */ public function submissionObjectFromApplicationNumber( string $applicationNumber, @@ -377,11 +387,24 @@ public function getDataDefinition(string $type) { * * @return \Drupal\webform\Entity\Webform * Webform object. + * + * @throws \Drupal\helfi_atv\AtvDocumentNotFoundException */ public function getWebformFromApplicationNumber(string $applicationNumber): Webform { // We need the ATV document to get the form uuid. $document = $this->getAtvDocument($applicationNumber); - $uuid = $document->getMetadata()['form_uuid']; + + if (!$document) { + // No document, throw error. + throw new AtvDocumentNotFoundException('Document not found'); + } + + $uuid = $document->getMetadata()['form_uuid'] ?? NULL; + + if (!$uuid) { + // And return webform loaded the old way. + return ApplicationHelpers::getWebformFromApplicationNumber($applicationNumber); + } try { // Try to load webform via UUID and return it. From b3786765ba49b01e7c10681324b7a2cad5f74925 Mon Sep 17 00:00:00 2001 From: jeremysteerio <49063836+jeremysteerio@users.noreply.github.com> Date: Thu, 12 Dec 2024 09:10:20 +0200 Subject: [PATCH 82/95] UHF-10455: Fixes to recently added forms (#1608) * Fix missing SV translations * Remove STEA as an option --- conf/cmi/language/sv/webform.webform.hyteed_yleis.yml | 6 +++--- conf/cmi/language/sv/webform.webform.sotepe_yleis.yml | 6 +++--- conf/cmi/webform.webform.hyteed_yleis.yml | 1 - conf/cmi/webform.webform.sotepe_yleis.yml | 1 - 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/conf/cmi/language/sv/webform.webform.hyteed_yleis.yml b/conf/cmi/language/sv/webform.webform.hyteed_yleis.yml index fd6e9c1455..14db2aa761 100644 --- a/conf/cmi/language/sv/webform.webform.hyteed_yleis.yml +++ b/conf/cmi/language/sv/webform.webform.hyteed_yleis.yml @@ -66,13 +66,13 @@ elements: | '#help': 'Beskriv den verksamhet som ska genomföras med hjälp av understödet och verksamhetens omfattning i korthet exempelvis på följande sätt:
Hur mycket eller ofta ordnar ni grupper, evenemang eller annan verksamhet under den understödda perioden? Hur många representanter för målgruppen kommer ni att nå enligt er uppskattning? Inom vilka områden i Helsingfors kommer verksamheten att ordnas? På vilka sätt samarbetar ni med andra aktörer i Helsingfors?' '#counter_maximum_message': '%d/5000 tecken kvar' who_benefits: - '#title': 'Who are the main beneficiaries of your activities?' + '#title': 'Vilka får särskild nytta av er verksamhet?' '#help': 'Beskriv vem som hör till er målgrupp och eventuellt också hur många av dem som hör till er målgrupp det finns i ert verksamhetsområde. I beskrivningen av målgruppen är det viktigt att det framgår vilka slags människor just ni önskar och kan bemöta, eller de situationer i vilka människor får den största nyttan av er verksamhet.' changes_on_success: - '#title': 'What kind of changes will take place if you succeed?' + '#title': 'Vilka slags förändringar sker om ni lyckas?' '#help': 'Er verksamhet kan ha flera mål. Beskriv och bedöm här de centrala förändringar som ni eftersträvar exempelvis i er målgrupps funktionsförmåga, vardag, människorelationer eller andra aspekter som anknyter till välfärd och hälsa eller delaktighet. Vilka slags förändringar kommer det alltså att ske om ni lyckas eller vilka slags fenomen förebygger er verksamhet?' results_of_activities: - '#title': 'What are the benefits of the activities to be supported?' + '#title': 'Vilken nytta uppstår till följd av den verksamhet som understöds?' '#help': 'Beskriv kort vilka effekter som uppnås genom verksamheten och på vilket sätt de uppstår. Du kan beskriva effekterna i den ordning de sker: vilka effekter uppstår först och vilka efter en längre tid. Koncentrera dig dock på verksamhetens omedelbara effekter.
Du kan även berätta vad som är speciellt med er verksamhet eller vilka (kvalitets)faktorer som bör beaktas särskilt för att de effekter som eftersträvas ska uppnås. Du kan även beskriva hur något samarbete ni har främjar uppnåendet av effekterna.' muut_samaan_tarkoitukseen_myonnetyt_avustukset: '#title': 'Övriga understöd som beviljats för samma ändamål' diff --git a/conf/cmi/language/sv/webform.webform.sotepe_yleis.yml b/conf/cmi/language/sv/webform.webform.sotepe_yleis.yml index e78fbdb049..332b59eafc 100644 --- a/conf/cmi/language/sv/webform.webform.sotepe_yleis.yml +++ b/conf/cmi/language/sv/webform.webform.sotepe_yleis.yml @@ -66,13 +66,13 @@ elements: | '#help': 'Beskriv den verksamhet som ska genomföras med hjälp av understödet och verksamhetens omfattning i korthet exempelvis på följande sätt:
Hur mycket eller ofta ordnar ni grupper, evenemang eller annan verksamhet under den understödda perioden? Hur många representanter för målgruppen kommer ni att nå enligt er uppskattning? Inom vilka områden i Helsingfors kommer verksamheten att ordnas? På vilka sätt samarbetar ni med andra aktörer i Helsingfors?' '#counter_maximum_message': '%d/5000 tecken kvar' who_benefits: - '#title': 'Who are the main beneficiaries of your activities?' + '#title': 'Vilka får särskild nytta av er verksamhet?' '#help': 'Beskriv vem som hör till er målgrupp och eventuellt också hur många av dem som hör till er målgrupp det finns i ert verksamhetsområde. I beskrivningen av målgruppen är det viktigt att det framgår vilka slags människor just ni önskar och kan bemöta, eller de situationer i vilka människor får den största nyttan av er verksamhet.' changes_on_success: - '#title': 'What kind of changes will take place if you succeed?' + '#title': 'Vilka slags förändringar sker om ni lyckas?' '#help': 'Er verksamhet kan ha flera mål. Beskriv och bedöm här de centrala förändringar som ni eftersträvar exempelvis i er målgrupps funktionsförmåga, vardag, människorelationer eller andra aspekter som anknyter till välfärd och hälsa eller delaktighet. Vilka slags förändringar kommer det alltså att ske om ni lyckas eller vilka slags fenomen förebygger er verksamhet?' results_of_activities: - '#title': 'What are the benefits of the activities to be supported?' + '#title': 'Vilken nytta uppstår till följd av den verksamhet som understöds?' '#help': 'Beskriv kort vilka effekter som uppnås genom verksamheten och på vilket sätt de uppstår. Du kan beskriva effekterna i den ordning de sker: vilka effekter uppstår först och vilka efter en längre tid. Koncentrera dig dock på verksamhetens omedelbara effekter.
Du kan även berätta vad som är speciellt med er verksamhet eller vilka (kvalitets)faktorer som bör beaktas särskilt för att de effekter som eftersträvas ska uppnås. Du kan även beskriva hur något samarbete ni har främjar uppnåendet av effekterna.' muut_samaan_tarkoitukseen_myonnetyt_avustukset: '#title': 'Övriga understöd som beviljats för samma ändamål' diff --git a/conf/cmi/webform.webform.hyteed_yleis.yml b/conf/cmi/webform.webform.hyteed_yleis.yml index a306132422..e9caeae6b3 100644 --- a/conf/cmi/webform.webform.hyteed_yleis.yml +++ b/conf/cmi/webform.webform.hyteed_yleis.yml @@ -373,7 +373,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: diff --git a/conf/cmi/webform.webform.sotepe_yleis.yml b/conf/cmi/webform.webform.sotepe_yleis.yml index bdf09319ae..a1bd7fe6fb 100644 --- a/conf/cmi/webform.webform.sotepe_yleis.yml +++ b/conf/cmi/webform.webform.sotepe_yleis.yml @@ -373,7 +373,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: From d1a41e8be4837f7561c13cdbaafe3b0f15339eac Mon Sep 17 00:00:00 2001 From: rpnykanen <48206082+rpnykanen@users.noreply.github.com> Date: Fri, 13 Dec 2024 14:09:17 +0200 Subject: [PATCH 83/95] was added most likely to fix search_api issue #3195994. Removing the patch since it is fixed (#1610) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Risto Nykänen --- composer.json | 3 --- patches/search_api_primary_key.patch | 29 ---------------------------- 2 files changed, 32 deletions(-) delete mode 100644 patches/search_api_primary_key.patch diff --git a/composer.json b/composer.json index c9e785219f..1c8545d1ba 100644 --- a/composer.json +++ b/composer.json @@ -122,9 +122,6 @@ "drupal/autologout": { "Modal related issues": "https://www.drupal.org/files/issues/2023-04-25/autologout.2023-04-25.patch" }, - "drupal/search_api": { - "Primary key fix": "patches/search_api_primary_key.patch" - }, "drupal/crop": { "Fix encoded paths for files": "patches/AU-2225-fix-encoded-paths.patch" } diff --git a/patches/search_api_primary_key.patch b/patches/search_api_primary_key.patch deleted file mode 100644 index 89aa0feddf..0000000000 --- a/patches/search_api_primary_key.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/modules/search_api_db/src/Plugin/search_api/backend/Database.php b/modules/search_api_db/src/Plugin/search_api/backend/Database.php -index 223d69ad..25aabf1b 100644 ---- a/modules/search_api_db/src/Plugin/search_api/backend/Database.php -+++ b/modules/search_api_db/src/Plugin/search_api/backend/Database.php -@@ -850,12 +850,9 @@ class Database extends BackendPluginBase implements AutocompleteBackendInterface - 'not null' => TRUE, - ], - ], -+ 'primary key' => ['item_id'] - ]; -- // For the denormalized index table, add a primary key right away. For -- // newly created field tables we first need to add the "value" column. -- if ($type === 'index') { -- $table['primary key'] = ['item_id']; -- } -+ - $this->database->schema()->createTable($db['table'], $table); - $this->dbmsCompatibility->alterNewTable($db['table'], $type); - } -@@ -920,7 +917,8 @@ class Database extends BackendPluginBase implements AutocompleteBackendInterface - - // Add a covering index for field tables. - if ($new_table && $type == 'field') { -- $this->database->schema()->addPrimaryKey($db['table'], ['item_id', $column]); -+ $sql = "ALTER TABLE `{$table['name']}` DROP PRIMARY KEY, ADD PRIMARY KEY ( `item_id`, `{$column}` )"; -+ $this->database->query($sql); - } - } - From a1f30bf48b9e71a4b2c31555bd226deae682a764 Mon Sep 17 00:00:00 2001 From: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Date: Fri, 13 Dec 2024 14:41:11 +0200 Subject: [PATCH 84/95] Update configuration (#1611) Co-authored-by: khalima <1712902+khalima@users.noreply.github.com> --- .dockerignore | 4 + .platform/schema | 2 +- compose.ci.yaml | 6 + compose.yaml | 25 +- composer.json | 1 + composer.lock | 678 +++++++------- ..._news_groups.helfi_news_groups.default.yml | 2 +- ...oods.helfi_news_neighbourhoods.default.yml | 2 +- ...elfi_news_tags.helfi_news_tags.default.yml | 2 +- ...rm_display.paragraph.accordion.default.yml | 2 +- ...splay.paragraph.accordion_item.default.yml | 2 +- ...rm_display.paragraph.news_list.default.yml | 2 +- ....helfi_hearings.helfi_hearings.default.yml | 2 +- ..._display.helfi_news.helfi_news.default.yml | 14 +- ...ay.helfi_news.helfi_news.medium_teaser.yml | 16 +- ..._news_groups.helfi_news_groups.default.yml | 2 +- ...oods.helfi_news_neighbourhoods.default.yml | 2 +- ...elfi_news_tags.helfi_news_tags.default.yml | 2 +- ....entity_view_display.media.image.image.yml | 6 +- ...display.media.image.image_content_area.yml | 45 - ...ew_display.paragraph.accordion.default.yml | 2 +- ...splay.paragraph.accordion_item.default.yml | 2 +- ...iew_display.paragraph.hearings.default.yml | 2 +- ...ew_display.paragraph.news_list.default.yml | 2 +- ..._view_display.tpr_unit.tpr_unit.teaser.yml | 6 +- ..._display.tpr_unit.tpr_unit.wide_teaser.yml | 6 +- ...ity_view_mode.helfi_news.medium_teaser.yml | 2 +- ...ity_view_mode.media.image_content_area.yml | 13 - ....entity_view_mode.tpr_unit.wide_teaser.yml | 2 +- ...es.external_entity_type.helfi_hearings.yml | 2 +- ...tities.external_entity_type.helfi_news.yml | 2 +- ...external_entity_type.helfi_news_groups.yml | 2 +- ..._entity_type.helfi_news_neighbourhoods.yml | 2 +- ...s.external_entity_type.helfi_news_tags.yml | 2 +- ....accordion.field_accordion_description.yml | 2 +- ...graph.accordion.field_accordion_design.yml | 2 +- ...ccordion.field_accordion_heading_level.yml | 2 +- ...agraph.accordion.field_accordion_items.yml | 4 +- ...agraph.accordion.field_accordion_title.yml | 2 +- ....accordion.field_accordion_title_level.yml | 2 +- ...dion_item.field_accordion_item_content.yml | 12 +- ...dion_item.field_accordion_item_heading.yml | 2 +- ...ld.paragraph.accordion_item.field_icon.yml | 2 +- ....paragraph.field_accordion_description.yml | 2 +- ...orage.paragraph.field_accordion_design.yml | 2 +- ...aragraph.field_accordion_heading_level.yml | 2 +- ...paragraph.field_accordion_item_content.yml | 2 +- ...paragraph.field_accordion_item_heading.yml | 2 +- ...torage.paragraph.field_accordion_items.yml | 2 +- ...torage.paragraph.field_accordion_title.yml | 2 +- ....paragraph.field_accordion_title_level.yml | 2 +- conf/cmi/image.style.1_1_l.yml | 19 - conf/cmi/image.style.1_1_l_2x.yml | 26 - conf/cmi/image.style.1_1_m.yml | 19 - conf/cmi/image.style.1_1_m_2x.yml | 26 - conf/cmi/image.style.1_1_s.yml | 19 - conf/cmi/image.style.1_1_s_2x.yml | 26 - conf/cmi/image.style.1_1_thumbnail.yml | 19 - conf/cmi/image.style.1_1_thumbnail_2x.yml | 26 - conf/cmi/image.style.1_1_xl.yml | 19 - conf/cmi/image.style.1_1_xl_2x.yml | 26 - conf/cmi/image.style.1_1_xs.yml | 19 - conf/cmi/image.style.1_1_xs_2x.yml | 26 - conf/cmi/image.style.23_10_l.yml | 19 - conf/cmi/image.style.23_10_l_2x.yml | 26 - conf/cmi/image.style.23_10_m.yml | 19 - conf/cmi/image.style.23_10_m_2x.yml | 26 - conf/cmi/image.style.23_10_s.yml | 19 - conf/cmi/image.style.23_10_s_2x.yml | 26 - conf/cmi/image.style.23_10_xl.yml | 19 - conf/cmi/image.style.23_10_xl_2x.yml | 26 - conf/cmi/image.style.23_10_xs.yml | 19 - conf/cmi/image.style.23_10_xs_2x.yml | 26 - conf/cmi/image.style.23_10_xxs.yml | 19 - conf/cmi/image.style.23_10_xxs_2x.yml | 26 - conf/cmi/image.style.3_2_l.yml | 19 - conf/cmi/image.style.3_2_l_2x.yml | 26 - conf/cmi/image.style.3_2_m.yml | 19 - conf/cmi/image.style.3_2_m_2x.yml | 26 - conf/cmi/image.style.3_2_s.yml | 19 - conf/cmi/image.style.3_2_s_2x.yml | 26 - conf/cmi/image.style.3_2_xl.yml | 19 - conf/cmi/image.style.3_2_xl_2x.yml | 26 - conf/cmi/image.style.3_2_xs.yml | 19 - conf/cmi/image.style.3_2_xs_2x.yml | 26 - conf/cmi/image.style.3_2_xxs.yml | 19 - conf/cmi/image.style.3_2_xxs_2x.yml | 26 - conf/cmi/image.style.og_image.yml | 19 - conf/cmi/image.style.original_l.yml | 17 - conf/cmi/image.style.original_l_2x.yml | 25 - conf/cmi/image.style.original_m.yml | 17 - conf/cmi/image.style.original_m_2x.yml | 25 - conf/cmi/image.style.original_s.yml | 17 - conf/cmi/image.style.original_s_2x.yml | 25 - conf/cmi/image.style.original_xs.yml | 17 - conf/cmi/image.style.original_xs_2x.yml | 25 - conf/cmi/image.style.original_xxs.yml | 17 - conf/cmi/image.style.original_xxs_2x.yml | 25 - conf/cmi/image.style.tiny_square_image.yml | 19 - ...ld.paragraph.accordion_item.field_icon.yml | 2 +- ...ield.field.paragraph.banner.field_icon.yml | 2 +- ...paragraph.social_media_link.field_icon.yml | 2 +- .../cmi/language/fi/social_media.settings.yml | 2 +- .../language/fi/views.view.helfi_redirect.yml | 83 ++ conf/cmi/language/fi/views.view.redirect.yml | 11 +- ...ld.paragraph.accordion_item.field_icon.yml | 2 +- ...ield.field.paragraph.banner.field_icon.yml | 2 +- ...paragraph.social_media_link.field_icon.yml | 2 +- .../cmi/language/sv/social_media.settings.yml | 2 +- .../language/sv/views.view.helfi_redirect.yml | 83 ++ .../paragraphs.paragraphs_type.accordion.yml | 2 +- ...agraphs.paragraphs_type.accordion_item.yml | 2 +- ...ponsive_image.styles.gallery_thumbnail.yml | 36 - ...sponsive_image.styles.hero__background.yml | 84 -- .../responsive_image.styles.image__3_2.yml | 74 -- ...e_image.styles.image__3_2_content_area.yml | 62 -- ..._image.styles.list_of_links__thumbnail.yml | 48 - conf/cmi/responsive_image.styles.original.yml | 74 -- conf/cmi/search_api.index.search_index.yml | 4 +- conf/cmi/social_media.settings.yml | 2 +- conf/cmi/views.view.er_tpr_unit.yml | 2 +- conf/cmi/views.view.helfi_redirect.yml | 871 ++++++++++++++++++ conf/cmi/views.view.locked_services.yml | 2 +- conf/cmi/views.view.locked_units.yml | 2 +- conf/cmi/views.view.redirect.yml | 2 +- conf/cmi/views.view.service_list.yml | 4 +- conf/cmi/views.view.service_units.yml | 2 +- conf/cmi/views.view.unit_search.yml | 2 +- docker/openshift/crons/menu-queue.sh | 17 + docker/openshift/crons/revision-queue.sh | 11 + public/sites/default/settings.php | 64 +- tools/make/override.mk | 1 - tools/make/project/db-sync.sh | 25 + tools/make/project/git.mk | 2 +- tools/make/project/install.mk | 10 +- 135 files changed, 1617 insertions(+), 1949 deletions(-) create mode 100644 .dockerignore create mode 100644 compose.ci.yaml delete mode 100644 conf/cmi/core.entity_view_display.media.image.image_content_area.yml delete mode 100644 conf/cmi/core.entity_view_mode.media.image_content_area.yml delete mode 100644 conf/cmi/image.style.1_1_l.yml delete mode 100644 conf/cmi/image.style.1_1_l_2x.yml delete mode 100644 conf/cmi/image.style.1_1_m.yml delete mode 100644 conf/cmi/image.style.1_1_m_2x.yml delete mode 100644 conf/cmi/image.style.1_1_s.yml delete mode 100644 conf/cmi/image.style.1_1_s_2x.yml delete mode 100644 conf/cmi/image.style.1_1_thumbnail.yml delete mode 100644 conf/cmi/image.style.1_1_thumbnail_2x.yml delete mode 100644 conf/cmi/image.style.1_1_xl.yml delete mode 100644 conf/cmi/image.style.1_1_xl_2x.yml delete mode 100644 conf/cmi/image.style.1_1_xs.yml delete mode 100644 conf/cmi/image.style.1_1_xs_2x.yml delete mode 100644 conf/cmi/image.style.23_10_l.yml delete mode 100644 conf/cmi/image.style.23_10_l_2x.yml delete mode 100644 conf/cmi/image.style.23_10_m.yml delete mode 100644 conf/cmi/image.style.23_10_m_2x.yml delete mode 100644 conf/cmi/image.style.23_10_s.yml delete mode 100644 conf/cmi/image.style.23_10_s_2x.yml delete mode 100644 conf/cmi/image.style.23_10_xl.yml delete mode 100644 conf/cmi/image.style.23_10_xl_2x.yml delete mode 100644 conf/cmi/image.style.23_10_xs.yml delete mode 100644 conf/cmi/image.style.23_10_xs_2x.yml delete mode 100644 conf/cmi/image.style.23_10_xxs.yml delete mode 100644 conf/cmi/image.style.23_10_xxs_2x.yml delete mode 100644 conf/cmi/image.style.3_2_l.yml delete mode 100644 conf/cmi/image.style.3_2_l_2x.yml delete mode 100644 conf/cmi/image.style.3_2_m.yml delete mode 100644 conf/cmi/image.style.3_2_m_2x.yml delete mode 100644 conf/cmi/image.style.3_2_s.yml delete mode 100644 conf/cmi/image.style.3_2_s_2x.yml delete mode 100644 conf/cmi/image.style.3_2_xl.yml delete mode 100644 conf/cmi/image.style.3_2_xl_2x.yml delete mode 100644 conf/cmi/image.style.3_2_xs.yml delete mode 100644 conf/cmi/image.style.3_2_xs_2x.yml delete mode 100644 conf/cmi/image.style.3_2_xxs.yml delete mode 100644 conf/cmi/image.style.3_2_xxs_2x.yml delete mode 100644 conf/cmi/image.style.og_image.yml delete mode 100644 conf/cmi/image.style.original_l.yml delete mode 100644 conf/cmi/image.style.original_l_2x.yml delete mode 100644 conf/cmi/image.style.original_m.yml delete mode 100644 conf/cmi/image.style.original_m_2x.yml delete mode 100644 conf/cmi/image.style.original_s.yml delete mode 100644 conf/cmi/image.style.original_s_2x.yml delete mode 100644 conf/cmi/image.style.original_xs.yml delete mode 100644 conf/cmi/image.style.original_xs_2x.yml delete mode 100644 conf/cmi/image.style.original_xxs.yml delete mode 100644 conf/cmi/image.style.original_xxs_2x.yml delete mode 100644 conf/cmi/image.style.tiny_square_image.yml create mode 100644 conf/cmi/language/fi/views.view.helfi_redirect.yml create mode 100644 conf/cmi/language/sv/views.view.helfi_redirect.yml delete mode 100644 conf/cmi/responsive_image.styles.gallery_thumbnail.yml delete mode 100644 conf/cmi/responsive_image.styles.hero__background.yml delete mode 100644 conf/cmi/responsive_image.styles.image__3_2.yml delete mode 100644 conf/cmi/responsive_image.styles.image__3_2_content_area.yml delete mode 100644 conf/cmi/responsive_image.styles.list_of_links__thumbnail.yml delete mode 100644 conf/cmi/responsive_image.styles.original.yml create mode 100644 conf/cmi/views.view.helfi_redirect.yml create mode 100644 docker/openshift/crons/menu-queue.sh create mode 100644 docker/openshift/crons/revision-queue.sh create mode 100644 tools/make/project/db-sync.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000..e3708ede3f --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +.git/ +.github/ +.idea/ +*.sql diff --git a/.platform/schema b/.platform/schema index 9a037142aa..3cacc0b93c 100644 --- a/.platform/schema +++ b/.platform/schema @@ -1 +1 @@ -10 \ No newline at end of file +12 \ No newline at end of file diff --git a/compose.ci.yaml b/compose.ci.yaml new file mode 100644 index 0000000000..20999387c0 --- /dev/null +++ b/compose.ci.yaml @@ -0,0 +1,6 @@ +services: + app: + user: "1001:1001" + environment: + SYMFONY_DEPRECATIONS_HELPER: disabled + BROWSERTEST_OUTPUT_DIRECTORY: /app/results diff --git a/compose.yaml b/compose.yaml index c680d449c0..cdf6ca7db5 100644 --- a/compose.yaml +++ b/compose.yaml @@ -8,6 +8,7 @@ services: depends_on: - db environment: + WEBROOT: /app/public STAGE_FILE_PROXY_ORIGIN: "${STAGE_FILE_PROXY_ORIGIN}" STAGE_FILE_PROXY_ORIGIN_DIR: "${STAGE_FILE_PROXY_ORIGIN_DIR}" APP_ENV: "${APP_ENV:-local}" @@ -24,7 +25,6 @@ services: # DOCKERHOST: host.docker.internal # Use drush server to run functional tests, so we don't have to care about # permission or SSL issues. - SIMPLETEST_BASE_URL: "http://app:8888" BROWSERTEST_OUTPUT_BASE_URL: "https://${DRUPAL_HOSTNAME}" BROWSERTEST_OUTPUT_DIRECTORY: "/app/public/sites/default/files/simpletest" DRUPAL_VARNISH_HOST: "${COMPOSE_PROJECT_NAME}-varnish" @@ -87,6 +87,8 @@ services: - "traefik.http.routers.${COMPOSE_PROJECT_NAME}-varnish.tls=true" - "traefik.http.services.${COMPOSE_PROJECT_NAME}-varnish.loadbalancer.server.port=6081" - "traefik.docker.network=stonehenge-network" + profiles: + - varnish elastic-proxy: container_name: "${COMPOSE_PROJECT_NAME}-elastic-proxy" image: nginxinc/nginx-unprivileged:alpine-perl @@ -116,7 +118,7 @@ services: profiles: - search elastic: - image: docker.elastic.co/elasticsearch/elasticsearch:8.4.0 + image: docker.elastic.co/elasticsearch/elasticsearch:8.16.1 container_name: "${COMPOSE_PROJECT_NAME}-elastic" environment: - node.name="${COMPOSE_PROJECT_NAME}-elastic" @@ -151,23 +153,30 @@ services: - search artemis: container_name: "${COMPOSE_PROJECT_NAME}-artemis" - image: quay.io/artemiscloud/activemq-artemis-broker - environment: - AMQ_EXTRA_ARGS: "--user admin --password admin" + image: apache/activemq-artemis depends_on: - app networks: - internal + - stonehenge-network profiles: - queue chromium: - # @todo Update this to newer version once minkphp supports Selenium 4. - # @see https://github.com/minkphp/MinkSelenium2Driver/pull/372 - image: seleniarm/standalone-chromium:106.0 + image: selenium/standalone-chromium + environment: + SE_NODE_OVERRIDE_MAX_SESSIONS: "true" + SE_NODE_MAX_SESSIONS: "16" + SE_START_XVFB: "false" + SE_START_VNC: "false" + SE_SESSION_RETRY_INTERVAL: "1" + SE_SESSION_REQUEST_TIMEOUT: "10" + depends_on: + - app networks: - internal profiles: - testing + networks: internal: external: false diff --git a/composer.json b/composer.json index 1c8545d1ba..2733b2e2f4 100644 --- a/composer.json +++ b/composer.json @@ -76,6 +76,7 @@ }, "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "dg/bypass-finals": "^1.5", "donatj/mock-webserver": "^2.4", "drupal/coder": "^8.3", "drupal/core-dev": "^10.2.4", diff --git a/composer.lock b/composer.lock index d12e87a4fa..36981956ee 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": "38071525925e6bd7d00e824da7bdc2fb", + "content-hash": "40a2f7e8a06d7aed024a2dc7c090531b", "packages": [ { "name": "asm89/stack-cors", @@ -1446,21 +1446,21 @@ }, { "name": "devizzent/cebe-php-openapi", - "version": "1.1.0", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/DEVizzent/cebe-php-openapi.git", - "reference": "9ae960c072eda54d8d0eb9dc14c1e6d815167347" + "reference": "44920bc75148d05686ac79511bdb99d6039a38cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/DEVizzent/cebe-php-openapi/zipball/9ae960c072eda54d8d0eb9dc14c1e6d815167347", - "reference": "9ae960c072eda54d8d0eb9dc14c1e6d815167347", + "url": "https://api.github.com/repos/DEVizzent/cebe-php-openapi/zipball/44920bc75148d05686ac79511bdb99d6039a38cf", + "reference": "44920bc75148d05686ac79511bdb99d6039a38cf", "shasum": "" }, "require": { "ext-json": "*", - "justinrainbow/json-schema": "^5.2", + "justinrainbow/json-schema": "^5.2 || ^6.0", "php": ">=7.1.0", "symfony/yaml": "^3.4 || ^4 || ^5 || ^6 || ^7" }, @@ -1518,7 +1518,7 @@ "issues": "https://github.com/DEVizzent/cebe-php-openapi/issues", "source": "https://github.com/DEVizzent/cebe-php-openapi" }, - "time": "2024-10-30T05:57:15+00:00" + "time": "2024-12-03T09:52:44+00:00" }, { "name": "dflydev/dot-access-data", @@ -1850,29 +1850,27 @@ }, { "name": "doctrine/deprecations", - "version": "1.1.3", + "version": "1.1.4", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" + "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", - "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/31610dbb31faa98e6b5447b62340826f54fbc4e9", + "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9", - "phpstan/phpstan": "1.4.10 || 1.10.15", - "phpstan/phpstan-phpunit": "^1.0", + "doctrine/coding-standard": "^9 || ^12", + "phpstan/phpstan": "1.4.10 || 2.0.3", + "phpstan/phpstan-phpunit": "^1.0 || ^2", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "psalm/plugin-phpunit": "0.18.4", - "psr/log": "^1 || ^2 || ^3", - "vimeo/psalm": "4.30.0 || 5.12.0" + "psr/log": "^1 || ^2 || ^3" }, "suggest": { "psr/log": "Allows logging deprecations via PSR-3 logger implementation" @@ -1880,7 +1878,7 @@ "type": "library", "autoload": { "psr-4": { - "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + "Doctrine\\Deprecations\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1891,9 +1889,9 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.3" + "source": "https://github.com/doctrine/deprecations/tree/1.1.4" }, - "time": "2024-01-30T19:34:25+00:00" + "time": "2024-12-07T21:18:45+00:00" }, { "name": "doctrine/event-manager", @@ -2163,16 +2161,16 @@ }, { "name": "dompdf/php-font-lib", - "version": "1.0.0", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/dompdf/php-font-lib.git", - "reference": "991d6a954f6bbd7e41022198f00586b230731441" + "reference": "6137b7d4232b7f16c882c75e4ca3991dbcf6fe2d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dompdf/php-font-lib/zipball/991d6a954f6bbd7e41022198f00586b230731441", - "reference": "991d6a954f6bbd7e41022198f00586b230731441", + "url": "https://api.github.com/repos/dompdf/php-font-lib/zipball/6137b7d4232b7f16c882c75e4ca3991dbcf6fe2d", + "reference": "6137b7d4232b7f16c882c75e4ca3991dbcf6fe2d", "shasum": "" }, "require": { @@ -2202,9 +2200,9 @@ "homepage": "https://github.com/dompdf/php-font-lib", "support": { "issues": "https://github.com/dompdf/php-font-lib/issues", - "source": "https://github.com/dompdf/php-font-lib/tree/1.0.0" + "source": "https://github.com/dompdf/php-font-lib/tree/1.0.1" }, - "time": "2024-04-29T13:40:38+00:00" + "time": "2024-12-02T14:37:59+00:00" }, { "name": "druidfi/omen", @@ -3112,16 +3110,16 @@ }, { "name": "drupal/core", - "version": "10.3.9", + "version": "10.3.10", "source": { "type": "git", "url": "https://github.com/drupal/core.git", - "reference": "42a6516491b4793158542a2326dc6ad1fe2aa5bd" + "reference": "3ebb71e9c4ef0c13f683353547551fca49f9a144" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core/zipball/42a6516491b4793158542a2326dc6ad1fe2aa5bd", - "reference": "42a6516491b4793158542a2326dc6ad1fe2aa5bd", + "url": "https://api.github.com/repos/drupal/core/zipball/3ebb71e9c4ef0c13f683353547551fca49f9a144", + "reference": "3ebb71e9c4ef0c13f683353547551fca49f9a144", "shasum": "" }, "require": { @@ -3205,29 +3203,29 @@ "extra": { "drupal-scaffold": { "file-mapping": { - "[project-root]/.editorconfig": "assets/scaffold/files/editorconfig", - "[project-root]/.gitattributes": "assets/scaffold/files/gitattributes", - "[web-root]/.csslintrc": "assets/scaffold/files/csslintrc", - "[web-root]/.eslintignore": "assets/scaffold/files/eslintignore", - "[web-root]/.eslintrc.json": "assets/scaffold/files/eslintrc.json", - "[web-root]/.ht.router.php": "assets/scaffold/files/ht.router.php", "[web-root]/.htaccess": "assets/scaffold/files/htaccess", - "[web-root]/example.gitignore": "assets/scaffold/files/example.gitignore", - "[web-root]/index.php": "assets/scaffold/files/index.php", - "[web-root]/INSTALL.txt": "assets/scaffold/files/drupal.INSTALL.txt", "[web-root]/README.md": "assets/scaffold/files/drupal.README.md", + "[web-root]/index.php": "assets/scaffold/files/index.php", + "[web-root]/.csslintrc": "assets/scaffold/files/csslintrc", "[web-root]/robots.txt": "assets/scaffold/files/robots.txt", "[web-root]/update.php": "assets/scaffold/files/update.php", "[web-root]/web.config": "assets/scaffold/files/web.config", + "[web-root]/INSTALL.txt": "assets/scaffold/files/drupal.INSTALL.txt", + "[web-root]/.eslintignore": "assets/scaffold/files/eslintignore", + "[web-root]/.eslintrc.json": "assets/scaffold/files/eslintrc.json", + "[web-root]/.ht.router.php": "assets/scaffold/files/ht.router.php", "[web-root]/sites/README.txt": "assets/scaffold/files/sites.README.txt", + "[project-root]/.editorconfig": "assets/scaffold/files/editorconfig", + "[web-root]/example.gitignore": "assets/scaffold/files/example.gitignore", + "[web-root]/themes/README.txt": "assets/scaffold/files/themes.README.txt", + "[project-root]/.gitattributes": "assets/scaffold/files/gitattributes", + "[web-root]/modules/README.txt": "assets/scaffold/files/modules.README.txt", + "[web-root]/profiles/README.txt": "assets/scaffold/files/profiles.README.txt", + "[web-root]/sites/example.sites.php": "assets/scaffold/files/example.sites.php", "[web-root]/sites/development.services.yml": "assets/scaffold/files/development.services.yml", "[web-root]/sites/example.settings.local.php": "assets/scaffold/files/example.settings.local.php", - "[web-root]/sites/example.sites.php": "assets/scaffold/files/example.sites.php", "[web-root]/sites/default/default.services.yml": "assets/scaffold/files/default.services.yml", - "[web-root]/sites/default/default.settings.php": "assets/scaffold/files/default.settings.php", - "[web-root]/modules/README.txt": "assets/scaffold/files/modules.README.txt", - "[web-root]/profiles/README.txt": "assets/scaffold/files/profiles.README.txt", - "[web-root]/themes/README.txt": "assets/scaffold/files/themes.README.txt" + "[web-root]/sites/default/default.settings.php": "assets/scaffold/files/default.settings.php" } } }, @@ -3270,13 +3268,13 @@ ], "description": "Drupal is an open source content management platform powering millions of websites and applications.", "support": { - "source": "https://github.com/drupal/core/tree/10.3.9" + "source": "https://github.com/drupal/core/tree/10.3.10" }, - "time": "2024-11-20T17:59:45+00:00" + "time": "2024-11-22T12:51:33+00:00" }, { "name": "drupal/core-composer-scaffold", - "version": "10.3.9", + "version": "10.3.10", "source": { "type": "git", "url": "https://github.com/drupal/core-composer-scaffold.git", @@ -3320,7 +3318,7 @@ "drupal" ], "support": { - "source": "https://github.com/drupal/core-composer-scaffold/tree/10.3.9" + "source": "https://github.com/drupal/core-composer-scaffold/tree/10.3.10" }, "time": "2024-08-22T14:31:34+00:00" }, @@ -4007,17 +4005,17 @@ }, { "name": "drupal/easy_breadcrumb", - "version": "2.0.8", + "version": "2.0.9", "source": { "type": "git", "url": "https://git.drupalcode.org/project/easy_breadcrumb.git", - "reference": "2.0.8" + "reference": "2.0.9" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/easy_breadcrumb-2.0.8.zip", - "reference": "2.0.8", - "shasum": "49bfd9b8b0ec664963d05e360449876745cf2868" + "url": "https://ftp.drupal.org/files/projects/easy_breadcrumb-2.0.9.zip", + "reference": "2.0.9", + "shasum": "9e7c33e2ec0637d37d509776795a476f2f2d9bb8" }, "require": { "drupal/core": "^9.2 || ^10 || ^11" @@ -4025,8 +4023,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.8", - "datestamp": "1723545040", + "version": "2.0.9", + "datestamp": "1732752214", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4589,17 +4587,17 @@ }, { "name": "drupal/entity_usage", - "version": "2.0.0-beta14", + "version": "2.0.0-beta16", "source": { "type": "git", "url": "https://git.drupalcode.org/project/entity_usage.git", - "reference": "8.x-2.0-beta14" + "reference": "8.x-2.0-beta16" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/entity_usage-8.x-2.0-beta14.zip", - "reference": "8.x-2.0-beta14", - "shasum": "68124ea440273a8f4e40bc7d07421c8a230c287b" + "url": "https://ftp.drupal.org/files/projects/entity_usage-8.x-2.0-beta16.zip", + "reference": "8.x-2.0-beta16", + "shasum": "af6533149a0926d2d539f279e7e08073f8f08c55" }, "require": { "drupal/core": "^10.2 || ^11" @@ -4612,15 +4610,15 @@ "drupal/entity_browser_block": "~1.0", "drupal/entity_embed": "~1.0", "drupal/entity_reference_revisions": "~1.0", - "drupal/inline_entity_form": "^1.0@RC", + "drupal/inline_entity_form": "^1.0@RC || ^3.0@RC", "drupal/paragraphs": "~1.0", "drupal/webform": "^6.0.0-alpha4" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-2.0-beta14", - "datestamp": "1724498300", + "version": "8.x-2.0-beta16", + "datestamp": "1733149424", "security-coverage": { "status": "not-covered", "message": "Beta releases are not covered by Drupal security advisories." @@ -4904,7 +4902,7 @@ "homepage": "https://www.drupal.org/user/423148" }, { - "name": "Hanno", + "name": "hanno", "homepage": "https://www.drupal.org/user/18826" }, { @@ -5487,16 +5485,16 @@ }, { "name": "drupal/hdbt", - "version": "6.8.10", + "version": "6.8.21", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-hdbt.git", - "reference": "2427bb6c2988c157285e685308e16f0c66e8d5e1" + "reference": "cd8b74a7afc7ec488979a426809e5386383a3bef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/2427bb6c2988c157285e685308e16f0c66e8d5e1", - "reference": "2427bb6c2988c157285e685308e16f0c66e8d5e1", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/cd8b74a7afc7ec488979a426809e5386383a3bef", + "reference": "cd8b74a7afc7ec488979a426809e5386383a3bef", "shasum": "" }, "require": { @@ -5515,10 +5513,10 @@ "Drupal" ], "support": { - "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.8.10", + "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.8.21", "issues": "https://github.com/City-of-Helsinki/drupal-hdbt/issues" }, - "time": "2024-11-22T12:52:59+00:00" + "time": "2024-12-13T08:38:26+00:00" }, { "name": "drupal/hdbt_admin", @@ -5616,16 +5614,16 @@ }, { "name": "drupal/helfi_api_base", - "version": "2.7.17", + "version": "2.7.19", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base.git", - "reference": "d5d46f30b9ec1ccac5b5bac130097454232e35a8" + "reference": "096a75dd49d1ae4db5959980337de4b77d10cce5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-api-base/zipball/d5d46f30b9ec1ccac5b5bac130097454232e35a8", - "reference": "d5d46f30b9ec1ccac5b5bac130097454232e35a8", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-api-base/zipball/096a75dd49d1ae4db5959980337de4b77d10cce5", + "reference": "096a75dd49d1ae4db5959980337de4b77d10cce5", "shasum": "" }, "require": { @@ -5657,10 +5655,10 @@ ], "description": "Helfi - API Base", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/tree/2.7.17", + "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/tree/2.7.19", "issues": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/issues" }, - "time": "2024-11-22T08:27:20+00:00" + "time": "2024-11-29T09:44:21+00:00" }, { "name": "drupal/helfi_atv", @@ -5778,17 +5776,20 @@ "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-tools.git", - "reference": "53ad81c4249c6dd38deea3f6014ad0b1be47f2db" + "reference": "c8f0aa0b247712eca0292073f6710746a511dd81" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-tools/zipball/53ad81c4249c6dd38deea3f6014ad0b1be47f2db", - "reference": "53ad81c4249c6dd38deea3f6014ad0b1be47f2db", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-tools/zipball/c8f0aa0b247712eca0292073f6710746a511dd81", + "reference": "c8f0aa0b247712eca0292073f6710746a511dd81", "shasum": "" }, "require": { "drupal/helfi_api_base": "*", - "drush/drush": "^11 || ^12 || ^13" + "drush/drush": "^12 || ^13" + }, + "conflict": { + "drush/drush": "< 12.5" }, "require-dev": { "composer/installers": "^2", @@ -5855,7 +5856,7 @@ "source": "https://github.com/City-of-Helsinki/drupal-tools/tree/main", "issues": "https://github.com/City-of-Helsinki/drupal-tools/issues" }, - "time": "2024-10-23T10:28:01+00:00" + "time": "2024-12-13T11:44:35+00:00" }, { "name": "drupal/helfi_gdpr_api", @@ -5931,16 +5932,16 @@ }, { "name": "drupal/helfi_platform_config", - "version": "4.8.0", + "version": "4.10.3", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config.git", - "reference": "d93cdc55e761665a2bb68503f466ab376a745c10" + "reference": "f2d8dc24500044936ea6dba39134d1d2eaf710db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/d93cdc55e761665a2bb68503f466ab376a745c10", - "reference": "d93cdc55e761665a2bb68503f466ab376a745c10", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/f2d8dc24500044936ea6dba39134d1d2eaf710db", + "reference": "f2d8dc24500044936ea6dba39134d1d2eaf710db", "shasum": "" }, "require": { @@ -6009,7 +6010,7 @@ "ruflin/elastica": "^8.0" }, "conflict": { - "drupal/core": "<10.3", + "drupal/core": "<10.3.10", "drupal/core-composer-scaffold": "<10.3", "drupal/ctools": "<3.11 || ^4.0.1", "drupal/default_content": ">2.0.0-alpha2", @@ -6037,8 +6038,7 @@ "[#UHF-9388] Process configuration translation files for custom modules (https://www.drupal.org/i/2845437)": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-helfi-platform-config/fd68277191b8f8ec290e53b5fbbae699b2260384/patches/drupal-2845437-process-custom-module-translation-config-10.3.x.patch", "[#UHF-9690] Allow updating lists when switching from allowed values to allowed values function (https://www.drupal.org/i/2873353)": "https://www.drupal.org/files/issues/2021-05-18/allow-allowed-values-function-update-D9-2873353_1.patch", "[#UHF-9952, #UHF-9980] Duplicate
tags (https://www.drupal.org/i/3083786)": "https://www.drupal.org/files/issues/2024-08-08/3083786--mr-8066--10-3-backport.patch", - "[#UHF-10716] Ensure consistent ordering when calculating library asset order (https://www.drupal.org/i/3467860)": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-helfi-platform-config/955e2fc9493c6574ab070187b8a5a8634da7daab/patches/drupal-3467860-optimized-js-assets-mismatch.patch", - "[#UHF-10967] Performance Degraded after update to twig 3.14.2 (https://www.drupal.org/project/drupal/issues/3487031)": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-helfi-platform-config/90b44ce5a778d05bbe89f7eaca6412b7bd34efa0/patches/10177.patch" + "[#UHF-10716] Ensure consistent ordering when calculating library asset order (https://www.drupal.org/i/3467860)": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-helfi-platform-config/955e2fc9493c6574ab070187b8a5a8634da7daab/patches/drupal-3467860-optimized-js-assets-mismatch.patch" }, "drupal/default_content": { "https://www.drupal.org/project/default_content/issues/2640734#comment-14638943": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-helfi-platform-config/main/patches/default_content_2.0.0-alpha2-2640734_manual_imports-e164a354.patch" @@ -6067,10 +6067,10 @@ ], "description": "HELfi platform config", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.8.0", + "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.10.3", "issues": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/issues" }, - "time": "2024-11-20T11:35:52+00:00" + "time": "2024-12-13T08:38:18+00:00" }, { "name": "drupal/helfi_proxy", @@ -6119,16 +6119,16 @@ }, { "name": "drupal/helfi_tpr", - "version": "2.3.9", + "version": "2.3.10", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-module-helfi-tpr.git", - "reference": "6cca3df5dc891c98ae40e8259856a343d9abd8ca" + "reference": "d98687373b1cb4647ad576403e470f049c7a4d3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-tpr/zipball/6cca3df5dc891c98ae40e8259856a343d9abd8ca", - "reference": "6cca3df5dc891c98ae40e8259856a343d9abd8ca", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-tpr/zipball/d98687373b1cb4647ad576403e470f049c7a4d3c", + "reference": "d98687373b1cb4647ad576403e470f049c7a4d3c", "shasum": "" }, "require": { @@ -6154,10 +6154,10 @@ ], "description": "TPR integration", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-tpr/tree/2.3.9", + "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-tpr/tree/2.3.10", "issues": "https://github.com/City-of-Helsinki/drupal-module-helfi-tpr/issues" }, - "time": "2024-11-07T13:09:51+00:00" + "time": "2024-11-29T09:43:38+00:00" }, { "name": "drupal/helfi_tunnistamo", @@ -7607,29 +7607,29 @@ }, { "name": "drupal/openid_connect", - "version": "3.0.0-alpha3", + "version": "3.0.0-alpha4", "source": { "type": "git", "url": "https://git.drupalcode.org/project/openid_connect.git", - "reference": "3.0.0-alpha3" + "reference": "3.0.0-alpha4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/openid_connect-3.0.0-alpha3.zip", - "reference": "3.0.0-alpha3", - "shasum": "002616dc2bfeb6b23204297e77d1f7a5369e69b3" + "url": "https://ftp.drupal.org/files/projects/openid_connect-3.0.0-alpha4.zip", + "reference": "3.0.0-alpha4", + "shasum": "3239f8a2e5fc98de1be7561309cb12153ef5b7c9" }, "require": { - "drupal/core": "^9.3 || ^10", + "drupal/core": "^9.5 || ^10.2 || ^11", "drupal/externalauth": "^2.0", "ext-json": "*", - "php": ">=7.1.0" + "php": ">=8.1.0" }, "type": "drupal-module", "extra": { "drupal": { - "version": "3.0.0-alpha3", - "datestamp": "1710708951", + "version": "3.0.0-alpha4", + "datestamp": "1734043889", "security-coverage": { "status": "not-covered", "message": "Alpha releases are not covered by Drupal security advisories." @@ -7649,6 +7649,10 @@ "name": "jcnventura", "homepage": "https://www.drupal.org/user/122464" }, + { + "name": "mstrelan", + "homepage": "https://www.drupal.org/user/314289" + }, { "name": "pfrilling", "homepage": "https://www.drupal.org/user/169695" @@ -8286,17 +8290,17 @@ }, { "name": "drupal/raven", - "version": "6.0.11", + "version": "6.0.12", "source": { "type": "git", "url": "https://git.drupalcode.org/project/raven.git", - "reference": "6.0.11" + "reference": "6.0.12" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/raven-6.0.11.zip", - "reference": "6.0.11", - "shasum": "117934d82d34efde8a50247406fcf83d475a2be5" + "url": "https://ftp.drupal.org/files/projects/raven-6.0.12.zip", + "reference": "6.0.12", + "shasum": "5ba241ff4109be407cb9660a8743aad5a24b9fba" }, "require": { "drupal/core": "^10.2 || ^11", @@ -8310,8 +8314,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "6.0.11", - "datestamp": "1730515647", + "version": "6.0.12", + "datestamp": "1733335477", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -8901,20 +8905,20 @@ }, { "name": "drupal/search_api", - "version": "1.35.0", + "version": "1.37.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/search_api.git", - "reference": "8.x-1.35" + "reference": "8.x-1.37" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/search_api-8.x-1.35.zip", - "reference": "8.x-1.35", - "shasum": "d119726e870f793c6470d2a4fa9286662c5eb45d" + "url": "https://ftp.drupal.org/files/projects/search_api-8.x-1.37.zip", + "reference": "8.x-1.37", + "shasum": "76d9b5850d7fce9df8fc6cf8c49450ab541f455d" }, "require": { - "drupal/core": "^10.1 || ^11" + "drupal/core": "^10.2 || ^11" }, "conflict": { "drupal/search_api_solr": "2.* || 3.0 || 3.1" @@ -8932,17 +8936,12 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.35", - "datestamp": "1718551025", + "version": "8.x-1.37", + "datestamp": "1732727356", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" } - }, - "drush": { - "services": { - "drush.services.yml": "^9 || ^10 || ^11" - } } }, "notification-url": "https://packages.drupal.org/8/downloads", @@ -9096,36 +9095,37 @@ }, { "name": "drupal/simple_sitemap", - "version": "4.2.1", + "version": "4.2.2", "source": { "type": "git", "url": "https://git.drupalcode.org/project/simple_sitemap.git", - "reference": "4.2.1" + "reference": "4.2.2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/simple_sitemap-4.2.1.zip", - "reference": "4.2.1", - "shasum": "d96b481571ca2fecdb305e87d2557f9338116864" + "url": "https://ftp.drupal.org/files/projects/simple_sitemap-4.2.2.zip", + "reference": "4.2.2", + "shasum": "1f9c9197d37450fb347a4fa3f10191f5f4b5ef13" }, "require": { "drupal/core": "^10.2 || ^11", "ext-xmlwriter": "*" }, + "conflict": { + "drush/drush": "<12.5.1" + }, + "require-dev": { + "drupal/paragraphs": "^1.18" + }, "type": "drupal-module", "extra": { "drupal": { - "version": "4.2.1", - "datestamp": "1723802052", + "version": "4.2.2", + "datestamp": "1732485885", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" } - }, - "drush": { - "services": { - "drush.services.yml": ">=9" - } } }, "notification-url": "https://packages.drupal.org/8/downloads", @@ -9187,10 +9187,6 @@ "GPL-2.0+" ], "authors": [ - { - "name": "bartvig", - "homepage": "https://www.drupal.org/user/3107079" - }, { "name": "beltofte", "homepage": "https://www.drupal.org/user/151799" @@ -9207,6 +9203,10 @@ "name": "kreynen", "homepage": "https://www.drupal.org/user/48877" }, + { + "name": "mortenthorpe", + "homepage": "https://www.drupal.org/user/870762" + }, { "name": "rofejo", "homepage": "https://www.drupal.org/user/3284851" @@ -9865,7 +9865,7 @@ ], "authors": [ { - "name": "Chi", + "name": "chi", "homepage": "https://www.drupal.org/user/556138" } ], @@ -10554,23 +10554,23 @@ "sut/libraries/{$name}": [ "type:drupal-library" ], + "sut/themes/unish/{$name}": [ + "drupal/empty_theme" + ], + "sut/drush/contrib/{$name}": [ + "type:drupal-drush" + ], "sut/modules/unish/{$name}": [ "drupal/devel" ], - "sut/themes/unish/{$name}": [ - "drupal/empty_theme" + "sut/themes/contrib/{$name}": [ + "type:drupal-theme" ], "sut/modules/contrib/{$name}": [ "type:drupal-module" ], "sut/profiles/contrib/{$name}": [ "type:drupal-profile" - ], - "sut/themes/contrib/{$name}": [ - "type:drupal-theme" - ], - "sut/drush/contrib/{$name}": [ - "type:drupal-drush" ] } }, @@ -11122,16 +11122,16 @@ }, { "name": "firebase/php-jwt", - "version": "v6.10.1", + "version": "v6.10.2", "source": { "type": "git", "url": "https://github.com/firebase/php-jwt.git", - "reference": "500501c2ce893c824c801da135d02661199f60c5" + "reference": "30c19ed0f3264cb660ea496895cfb6ef7ee3653b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/firebase/php-jwt/zipball/500501c2ce893c824c801da135d02661199f60c5", - "reference": "500501c2ce893c824c801da135d02661199f60c5", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/30c19ed0f3264cb660ea496895cfb6ef7ee3653b", + "reference": "30c19ed0f3264cb660ea496895cfb6ef7ee3653b", "shasum": "" }, "require": { @@ -11179,9 +11179,9 @@ ], "support": { "issues": "https://github.com/firebase/php-jwt/issues", - "source": "https://github.com/firebase/php-jwt/tree/v6.10.1" + "source": "https://github.com/firebase/php-jwt/tree/v6.10.2" }, - "time": "2024-05-18T18:05:11+00:00" + "time": "2024-11-24T11:22:49+00:00" }, { "name": "galbar/jsonpath", @@ -11343,16 +11343,16 @@ }, { "name": "grasmash/expander", - "version": "3.0.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/grasmash/expander.git", - "reference": "bb1c1a2430957945cf08c5a62f5d72a6aa6a2c82" + "reference": "eea11b9afb0c32483b18b9009f4ca07b770e39f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/grasmash/expander/zipball/bb1c1a2430957945cf08c5a62f5d72a6aa6a2c82", - "reference": "bb1c1a2430957945cf08c5a62f5d72a6aa6a2c82", + "url": "https://api.github.com/repos/grasmash/expander/zipball/eea11b9afb0c32483b18b9009f4ca07b770e39f4", + "reference": "eea11b9afb0c32483b18b9009f4ca07b770e39f4", "shasum": "" }, "require": { @@ -11389,9 +11389,9 @@ "description": "Expands internal property references in PHP arrays file.", "support": { "issues": "https://github.com/grasmash/expander/issues", - "source": "https://github.com/grasmash/expander/tree/3.0.0" + "source": "https://github.com/grasmash/expander/tree/3.0.1" }, - "time": "2022-05-10T13:14:49+00:00" + "time": "2024-11-25T23:28:05+00:00" }, { "name": "grasmash/yaml-cli", @@ -11934,11 +11934,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.x-dev", - "dev-4.x": "4.x-dev", - "dev-3.x": "3.x-dev", + "dev-1.x": "1.x-dev", "dev-2.x": "2.x-dev", - "dev-1.x": "1.x-dev" + "dev-3.x": "3.x-dev", + "dev-4.x": "4.x-dev", + "dev-master": "4.x-dev" } }, "autoload": { @@ -12721,16 +12721,16 @@ }, { "name": "monolog/monolog", - "version": "3.8.0", + "version": "3.8.1", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "32e515fdc02cdafbe4593e30a9350d486b125b67" + "reference": "aef6ee73a77a66e404dd6540934a9ef1b3c855b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/32e515fdc02cdafbe4593e30a9350d486b125b67", - "reference": "32e515fdc02cdafbe4593e30a9350d486b125b67", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/aef6ee73a77a66e404dd6540934a9ef1b3c855b4", + "reference": "aef6ee73a77a66e404dd6540934a9ef1b3c855b4", "shasum": "" }, "require": { @@ -12808,7 +12808,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.8.0" + "source": "https://github.com/Seldaek/monolog/tree/3.8.1" }, "funding": [ { @@ -12820,7 +12820,7 @@ "type": "tidelift" } ], - "time": "2024-11-12T13:57:08+00:00" + "time": "2024-12-05T17:15:07+00:00" }, { "name": "nesbot/carbon", @@ -13422,16 +13422,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": { @@ -13467,7 +13467,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", @@ -14541,16 +14541,16 @@ }, { "name": "psy/psysh", - "version": "v0.12.4", + "version": "v0.12.7", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "2fd717afa05341b4f8152547f142cd2f130f6818" + "reference": "d73fa3c74918ef4522bb8a3bf9cab39161c4b57c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/2fd717afa05341b4f8152547f142cd2f130f6818", - "reference": "2fd717afa05341b4f8152547f142cd2f130f6818", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/d73fa3c74918ef4522bb8a3bf9cab39161c4b57c", + "reference": "d73fa3c74918ef4522bb8a3bf9cab39161c4b57c", "shasum": "" }, "require": { @@ -14577,12 +14577,12 @@ ], "type": "library", "extra": { - "branch-alias": { - "dev-main": "0.12.x-dev" - }, "bamarni-bin": { "bin-links": false, "forward-command": false + }, + "branch-alias": { + "dev-main": "0.12.x-dev" } }, "autoload": { @@ -14614,9 +14614,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.4" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.7" }, - "time": "2024-06-10T01:18:23+00:00" + "time": "2024-12-10T01:58:33+00:00" }, { "name": "ralouphie/getallheaders", @@ -14899,16 +14899,16 @@ }, { "name": "respect/validation", - "version": "2.3.7", + "version": "2.3.11", "source": { "type": "git", "url": "https://github.com/Respect/Validation.git", - "reference": "967f7b6cc71e3728bb0f766cc1aea0604b2955aa" + "reference": "294c36ffb7c2b0f3dc23f3847844a61fa0139001" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Respect/Validation/zipball/967f7b6cc71e3728bb0f766cc1aea0604b2955aa", - "reference": "967f7b6cc71e3728bb0f766cc1aea0604b2955aa", + "url": "https://api.github.com/repos/Respect/Validation/zipball/294c36ffb7c2b0f3dc23f3847844a61fa0139001", + "reference": "294c36ffb7c2b0f3dc23f3847844a61fa0139001", "shasum": "" }, "require": { @@ -14961,9 +14961,9 @@ ], "support": { "issues": "https://github.com/Respect/Validation/issues", - "source": "https://github.com/Respect/Validation/tree/2.3.7" + "source": "https://github.com/Respect/Validation/tree/2.3.11" }, - "time": "2024-04-13T09:45:55+00:00" + "time": "2024-12-13T00:07:10+00:00" }, { "name": "riverline/multipart-parser", @@ -15023,23 +15023,23 @@ }, { "name": "ruflin/elastica", - "version": "8.0.0", + "version": "8.1.0", "source": { "type": "git", "url": "https://github.com/ruflin/Elastica.git", - "reference": "2fc446e37847e84cd9f9be8e75fd2b322007ea43" + "reference": "5e5f9b220e34fdcc1a55b9153323e2548f9a51f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ruflin/Elastica/zipball/2fc446e37847e84cd9f9be8e75fd2b322007ea43", - "reference": "2fc446e37847e84cd9f9be8e75fd2b322007ea43", + "url": "https://api.github.com/repos/ruflin/Elastica/zipball/5e5f9b220e34fdcc1a55b9153323e2548f9a51f1", + "reference": "5e5f9b220e34fdcc1a55b9153323e2548f9a51f1", "shasum": "" }, "require": { "elastic/transport": "^8.8", "elasticsearch/elasticsearch": "^8.4.1", "ext-json": "*", - "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0", + "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0", "psr/log": "^1.0 || ^2.0 || ^3.0" }, "conflict": { @@ -15080,9 +15080,9 @@ ], "support": { "issues": "https://github.com/ruflin/Elastica/issues", - "source": "https://github.com/ruflin/Elastica/tree/8.0.0" + "source": "https://github.com/ruflin/Elastica/tree/8.1.0" }, - "time": "2024-05-29T11:45:23+00:00" + "time": "2024-11-29T07:37:01+00:00" }, { "name": "sebastian/diff", @@ -15241,16 +15241,16 @@ }, { "name": "stomp-php/stomp-php", - "version": "5.1.0", + "version": "5.1.1", "source": { "type": "git", "url": "https://github.com/stomp-php/stomp-php.git", - "reference": "cf1fbd79cf48b9701909e42205f1d968cec6ff7a" + "reference": "942d93563eefc9dee40e836e594ee16dd08653f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/stomp-php/stomp-php/zipball/cf1fbd79cf48b9701909e42205f1d968cec6ff7a", - "reference": "cf1fbd79cf48b9701909e42205f1d968cec6ff7a", + "url": "https://api.github.com/repos/stomp-php/stomp-php/zipball/942d93563eefc9dee40e836e594ee16dd08653f0", + "reference": "942d93563eefc9dee40e836e594ee16dd08653f0", "shasum": "" }, "require": { @@ -15298,7 +15298,7 @@ ], "support": { "issues": "https://github.com/stomp-php/stomp-php/issues", - "source": "https://github.com/stomp-php/stomp-php/tree/5.1.0" + "source": "https://github.com/stomp-php/stomp-php/tree/5.1.1" }, "funding": [ { @@ -15310,7 +15310,7 @@ "type": "github" } ], - "time": "2023-06-19T17:34:28+00:00" + "time": "2024-12-13T08:48:49+00:00" }, { "name": "symfony/console", @@ -15408,16 +15408,16 @@ }, { "name": "symfony/dependency-injection", - "version": "v6.4.15", + "version": "v6.4.16", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "70ab1f65a4516ef741e519ea938e6aa465e6aa36" + "reference": "7a379d8871f6a36f01559c14e11141cc02eb8dc8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/70ab1f65a4516ef741e519ea938e6aa465e6aa36", - "reference": "70ab1f65a4516ef741e519ea938e6aa465e6aa36", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/7a379d8871f6a36f01559c14e11141cc02eb8dc8", + "reference": "7a379d8871f6a36f01559c14e11141cc02eb8dc8", "shasum": "" }, "require": { @@ -15469,7 +15469,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.15" + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.16" }, "funding": [ { @@ -15485,20 +15485,20 @@ "type": "tidelift" } ], - "time": "2024-11-09T06:56:25+00:00" + "time": "2024-11-25T14:52:46+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.5.0", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" + "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", - "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", + "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", "shasum": "" }, "require": { @@ -15536,7 +15536,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1" }, "funding": [ { @@ -15552,7 +15552,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/error-handler", @@ -15711,16 +15711,16 @@ }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.5.0", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50" + "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50", - "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7642f5e970b672283b7823222ae8ef8bbc160b9f", + "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f", "shasum": "" }, "require": { @@ -15767,7 +15767,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1" }, "funding": [ { @@ -15783,7 +15783,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/filesystem", @@ -15917,16 +15917,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.4.15", + "version": "v6.4.16", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "9b3165eb2f04aeaa1a5a2cfef73e63fe3b22dff6" + "reference": "431771b7a6f662f1575b3cfc8fd7617aa9864d57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/9b3165eb2f04aeaa1a5a2cfef73e63fe3b22dff6", - "reference": "9b3165eb2f04aeaa1a5a2cfef73e63fe3b22dff6", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/431771b7a6f662f1575b3cfc8fd7617aa9864d57", + "reference": "431771b7a6f662f1575b3cfc8fd7617aa9864d57", "shasum": "" }, "require": { @@ -15974,7 +15974,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.15" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.16" }, "funding": [ { @@ -15990,20 +15990,20 @@ "type": "tidelift" } ], - "time": "2024-11-08T16:09:24+00:00" + "time": "2024-11-13T18:58:10+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.15", + "version": "v6.4.16", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "b002a5b3947653c5aee3adac2a024ea615fd3ff5" + "reference": "8838b5b21d807923b893ccbfc2cbeda0f1bc00f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b002a5b3947653c5aee3adac2a024ea615fd3ff5", - "reference": "b002a5b3947653c5aee3adac2a024ea615fd3ff5", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/8838b5b21d807923b893ccbfc2cbeda0f1bc00f0", + "reference": "8838b5b21d807923b893ccbfc2cbeda0f1bc00f0", "shasum": "" }, "require": { @@ -16088,7 +16088,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.15" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.16" }, "funding": [ { @@ -16104,7 +16104,7 @@ "type": "tidelift" } ], - "time": "2024-11-13T13:57:37+00:00" + "time": "2024-11-27T12:49:36+00:00" }, { "name": "symfony/mailer", @@ -16273,16 +16273,16 @@ }, { "name": "symfony/options-resolver", - "version": "v7.1.6", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "85e95eeede2d41cd146146e98c9c81d9214cae85" + "reference": "7da8fbac9dcfef75ffc212235d76b2754ce0cf50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/85e95eeede2d41cd146146e98c9c81d9214cae85", - "reference": "85e95eeede2d41cd146146e98c9c81d9214cae85", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/7da8fbac9dcfef75ffc212235d76b2754ce0cf50", + "reference": "7da8fbac9dcfef75ffc212235d76b2754ce0cf50", "shasum": "" }, "require": { @@ -16320,7 +16320,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v7.1.6" + "source": "https://github.com/symfony/options-resolver/tree/v7.2.0" }, "funding": [ { @@ -16336,7 +16336,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2024-11-20T11:17:29+00:00" }, { "name": "symfony/polyfill-ctype", @@ -16364,8 +16364,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -16520,8 +16520,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -16599,8 +16599,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -16681,8 +16681,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -16765,8 +16765,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -16838,12 +16838,12 @@ }, "type": "metapackage", "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + }, "branch-alias": { "dev-main": "1.20-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" } }, "notification-url": "https://packagist.org/downloads/", @@ -16907,8 +16907,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -16987,8 +16987,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -17063,8 +17063,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -17139,8 +17139,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -17341,16 +17341,16 @@ }, { "name": "symfony/routing", - "version": "v6.4.13", + "version": "v6.4.16", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "640a74250d13f9c30d5ca045b6aaaabcc8215278" + "reference": "91e02e606b4b705c2f4fb42f7e7708b7923a3220" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/640a74250d13f9c30d5ca045b6aaaabcc8215278", - "reference": "640a74250d13f9c30d5ca045b6aaaabcc8215278", + "url": "https://api.github.com/repos/symfony/routing/zipball/91e02e606b4b705c2f4fb42f7e7708b7923a3220", + "reference": "91e02e606b4b705c2f4fb42f7e7708b7923a3220", "shasum": "" }, "require": { @@ -17404,7 +17404,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.13" + "source": "https://github.com/symfony/routing/tree/v6.4.16" }, "funding": [ { @@ -17420,7 +17420,7 @@ "type": "tidelift" } ], - "time": "2024-10-01T08:30:56+00:00" + "time": "2024-11-13T15:31:34+00:00" }, { "name": "symfony/serializer", @@ -17522,16 +17522,16 @@ }, { "name": "symfony/service-contracts", - "version": "v3.5.0", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" + "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", - "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0", + "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0", "shasum": "" }, "require": { @@ -17585,7 +17585,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.5.1" }, "funding": [ { @@ -17601,7 +17601,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/string", @@ -17786,16 +17786,16 @@ }, { "name": "symfony/translation-contracts", - "version": "v3.5.0", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a" + "reference": "4667ff3bd513750603a09c8dedbea942487fb07c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", - "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/4667ff3bd513750603a09c8dedbea942487fb07c", + "reference": "4667ff3bd513750603a09c8dedbea942487fb07c", "shasum": "" }, "require": { @@ -17844,7 +17844,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.5.1" }, "funding": [ { @@ -17860,20 +17860,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/validator", - "version": "v6.4.15", + "version": "v6.4.16", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "7541055cdaf54ff95f0735bf703d313374e8b20b" + "reference": "9b0d1988b56511706bc91d96ead39acd77aaf34d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/7541055cdaf54ff95f0735bf703d313374e8b20b", - "reference": "7541055cdaf54ff95f0735bf703d313374e8b20b", + "url": "https://api.github.com/repos/symfony/validator/zipball/9b0d1988b56511706bc91d96ead39acd77aaf34d", + "reference": "9b0d1988b56511706bc91d96ead39acd77aaf34d", "shasum": "" }, "require": { @@ -17941,7 +17941,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.4.15" + "source": "https://github.com/symfony/validator/tree/v6.4.16" }, "funding": [ { @@ -17957,7 +17957,7 @@ "type": "tidelift" } ], - "time": "2024-11-08T15:28:48+00:00" + "time": "2024-11-27T09:48:51+00:00" }, { "name": "symfony/var-dumper", @@ -18046,16 +18046,16 @@ }, { "name": "symfony/var-exporter", - "version": "v7.1.6", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "90173ef89c40e7c8c616653241048705f84130ef" + "reference": "1a6a89f95a46af0f142874c9d650a6358d13070d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/90173ef89c40e7c8c616653241048705f84130ef", - "reference": "90173ef89c40e7c8c616653241048705f84130ef", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/1a6a89f95a46af0f142874c9d650a6358d13070d", + "reference": "1a6a89f95a46af0f142874c9d650a6358d13070d", "shasum": "" }, "require": { @@ -18102,7 +18102,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v7.1.6" + "source": "https://github.com/symfony/var-exporter/tree/v7.2.0" }, "funding": [ { @@ -18118,7 +18118,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2024-10-18T07:58:17+00:00" }, { "name": "symfony/yaml", @@ -18293,16 +18293,16 @@ }, { "name": "twig/twig", - "version": "v3.15.0", + "version": "v3.17.1", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "2d5b3964cc21d0188633d7ddce732dc8e874db02" + "reference": "677ef8da6497a03048192aeeb5aa3018e379ac71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/2d5b3964cc21d0188633d7ddce732dc8e874db02", - "reference": "2d5b3964cc21d0188633d7ddce732dc8e874db02", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/677ef8da6497a03048192aeeb5aa3018e379ac71", + "reference": "677ef8da6497a03048192aeeb5aa3018e379ac71", "shasum": "" }, "require": { @@ -18313,6 +18313,7 @@ "symfony/polyfill-php81": "^1.29" }, "require-dev": { + "phpstan/phpstan": "^2.0", "psr/container": "^1.0|^2.0", "symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0" }, @@ -18356,7 +18357,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.15.0" + "source": "https://github.com/twigphp/Twig/tree/v3.17.1" }, "funding": [ { @@ -18368,7 +18369,7 @@ "type": "tidelift" } ], - "time": "2024-11-17T15:59:19+00:00" + "time": "2024-12-12T09:58:10+00:00" }, { "name": "twistor/flysystem-stream-wrapper", @@ -19400,6 +19401,59 @@ }, "time": "2022-02-04T12:51:07+00:00" }, + { + "name": "dg/bypass-finals", + "version": "v1.8.0", + "source": { + "type": "git", + "url": "https://github.com/dg/bypass-finals.git", + "reference": "86b00f0d900c7e15d3341e687e0df89e8c2d4632" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dg/bypass-finals/zipball/86b00f0d900c7e15d3341e687e0df89e8c2d4632", + "reference": "86b00f0d900c7e15d3341e687e0df89e8c2d4632", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "nette/tester": "^2.3", + "phpstan/phpstan": "^0.12" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + } + ], + "description": "Removes final keyword from source code on-the-fly and allows mocking of final methods and classes", + "keywords": [ + "finals", + "mocking", + "phpunit", + "testing", + "unit" + ], + "support": { + "issues": "https://github.com/dg/bypass-finals/issues", + "source": "https://github.com/dg/bypass-finals/tree/v1.8.0" + }, + "time": "2024-07-02T22:24:43+00:00" + }, { "name": "doctrine/instantiator", "version": "2.0.0", @@ -20645,16 +20699,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.6.0", + "version": "5.6.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "f3558a4c23426d12bffeaab463f8a8d8b681193c" + "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/f3558a4c23426d12bffeaab463f8a8d8b681193c", - "reference": "f3558a4c23426d12bffeaab463f8a8d8b681193c", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8", + "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8", "shasum": "" }, "require": { @@ -20703,9 +20757,9 @@ "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.6.0" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.1" }, - "time": "2024-11-12T11:25:25+00:00" + "time": "2024-12-07T09:39:29+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -20979,16 +21033,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.11.7", + "version": "1.12.12", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "52d2bbfdcae7f895915629e4694e9497d0f8e28d" + "reference": "b5ae1b88f471d3fd4ba1aa0046234b5ca3776dd0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/52d2bbfdcae7f895915629e4694e9497d0f8e28d", - "reference": "52d2bbfdcae7f895915629e4694e9497d0f8e28d", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/b5ae1b88f471d3fd4ba1aa0046234b5ca3776dd0", + "reference": "b5ae1b88f471d3fd4ba1aa0046234b5ca3776dd0", "shasum": "" }, "require": { @@ -21033,7 +21087,7 @@ "type": "github" } ], - "time": "2024-07-06T11:17:41+00:00" + "time": "2024-11-28T22:13:23+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -23283,8 +23337,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { diff --git a/conf/cmi/core.entity_form_display.helfi_news_groups.helfi_news_groups.default.yml b/conf/cmi/core.entity_form_display.helfi_news_groups.helfi_news_groups.default.yml index 054e98a1f4..8dd181eff9 100644 --- a/conf/cmi/core.entity_form_display.helfi_news_groups.helfi_news_groups.default.yml +++ b/conf/cmi/core.entity_form_display.helfi_news_groups.helfi_news_groups.default.yml @@ -5,7 +5,7 @@ dependencies: module: - external_entities _core: - default_config_hash: F02T5d39fWkrxQUcIJNH58HsHS6OccQWDGWf5qZNY7c + default_config_hash: EOGUC9WPtf2vMJSMaP6aKfU2m9Hu9RwN077GyiffzEg id: helfi_news_groups.helfi_news_groups.default targetEntityType: helfi_news_groups bundle: helfi_news_groups diff --git a/conf/cmi/core.entity_form_display.helfi_news_neighbourhoods.helfi_news_neighbourhoods.default.yml b/conf/cmi/core.entity_form_display.helfi_news_neighbourhoods.helfi_news_neighbourhoods.default.yml index 87f00b833b..79cb075a0f 100644 --- a/conf/cmi/core.entity_form_display.helfi_news_neighbourhoods.helfi_news_neighbourhoods.default.yml +++ b/conf/cmi/core.entity_form_display.helfi_news_neighbourhoods.helfi_news_neighbourhoods.default.yml @@ -5,7 +5,7 @@ dependencies: module: - external_entities _core: - default_config_hash: RU3muOe23dUCerLvTPHwhNIxcwvS9qSCEsQXdrK_8TU + default_config_hash: 5pvCgxNDIrHGAgTyFHNrnC2YZzNROx1NcwluHLX4q5M id: helfi_news_neighbourhoods.helfi_news_neighbourhoods.default targetEntityType: helfi_news_neighbourhoods bundle: helfi_news_neighbourhoods diff --git a/conf/cmi/core.entity_form_display.helfi_news_tags.helfi_news_tags.default.yml b/conf/cmi/core.entity_form_display.helfi_news_tags.helfi_news_tags.default.yml index eed8c213d9..01f9b4bfee 100644 --- a/conf/cmi/core.entity_form_display.helfi_news_tags.helfi_news_tags.default.yml +++ b/conf/cmi/core.entity_form_display.helfi_news_tags.helfi_news_tags.default.yml @@ -5,7 +5,7 @@ dependencies: module: - external_entities _core: - default_config_hash: nG1sU9U2OdZFQu6ff1cBmVKYRDR1n3cI-odUwMY5FLU + default_config_hash: lgQeHC9pFKPzdhr9PnrluCii3b_fhaFqOIkQiGv1tvI id: helfi_news_tags.helfi_news_tags.default targetEntityType: helfi_news_tags bundle: helfi_news_tags diff --git a/conf/cmi/core.entity_form_display.paragraph.accordion.default.yml b/conf/cmi/core.entity_form_display.paragraph.accordion.default.yml index a760967977..e0f5cd6fc6 100644 --- a/conf/cmi/core.entity_form_display.paragraph.accordion.default.yml +++ b/conf/cmi/core.entity_form_display.paragraph.accordion.default.yml @@ -15,7 +15,7 @@ dependencies: - paragraphs - text _core: - default_config_hash: K8HsAl3NXcMTSRfcQq_JTJfYA74VrVpE94gTYWIUUpI + default_config_hash: RF5jnF9_MPS0ILEZyGlsFs74Q68B1ii5mqyLnSZC67g id: paragraph.accordion.default targetEntityType: paragraph bundle: accordion diff --git a/conf/cmi/core.entity_form_display.paragraph.accordion_item.default.yml b/conf/cmi/core.entity_form_display.paragraph.accordion_item.default.yml index 51481b2403..78cb40993d 100644 --- a/conf/cmi/core.entity_form_display.paragraph.accordion_item.default.yml +++ b/conf/cmi/core.entity_form_display.paragraph.accordion_item.default.yml @@ -14,7 +14,7 @@ dependencies: config: - paragraphs.paragraphs_type.accordion_item _core: - default_config_hash: f3ncPjM7WKsN-bLZVQXMbSKIUMZYRk51A9j1Yly5XsE + default_config_hash: 51mHm2O7Corvv_lfh2IeFdXy3zf8Uj5dgxtkmWy39yI id: paragraph.accordion_item.default targetEntityType: paragraph bundle: accordion_item diff --git a/conf/cmi/core.entity_form_display.paragraph.news_list.default.yml b/conf/cmi/core.entity_form_display.paragraph.news_list.default.yml index 5736328885..9933128245 100644 --- a/conf/cmi/core.entity_form_display.paragraph.news_list.default.yml +++ b/conf/cmi/core.entity_form_display.paragraph.news_list.default.yml @@ -14,7 +14,7 @@ dependencies: - select2 - text _core: - default_config_hash: I_u6U4oQKvo0EjopuKoM3qEFFz3lzE8J-jWIN0OJqYg + default_config_hash: YF0KDv9TqKiRipS_1HUoa6Sh-kQezJL8omZdsSkkK2o id: paragraph.news_list.default targetEntityType: paragraph bundle: news_list diff --git a/conf/cmi/core.entity_view_display.helfi_hearings.helfi_hearings.default.yml b/conf/cmi/core.entity_view_display.helfi_hearings.helfi_hearings.default.yml index 235a396a46..148ef8324f 100644 --- a/conf/cmi/core.entity_view_display.helfi_hearings.helfi_hearings.default.yml +++ b/conf/cmi/core.entity_view_display.helfi_hearings.helfi_hearings.default.yml @@ -8,7 +8,7 @@ dependencies: - external_entities - imagecache_external _core: - default_config_hash: 8hY7p23O5VMnnoWz_4GEuZiFgOaa8mzWA3gP9l5HTJY + default_config_hash: cBPYOxhszng7ivQmMSytxOx4mHccdI_TliX6g1SQ_C8 id: helfi_hearings.helfi_hearings.default targetEntityType: helfi_hearings bundle: helfi_hearings diff --git a/conf/cmi/core.entity_view_display.helfi_news.helfi_news.default.yml b/conf/cmi/core.entity_view_display.helfi_news.helfi_news.default.yml index 705a1d8f54..8e4ceb08bb 100644 --- a/conf/cmi/core.entity_view_display.helfi_news.helfi_news.default.yml +++ b/conf/cmi/core.entity_view_display.helfi_news.helfi_news.default.yml @@ -2,27 +2,15 @@ uuid: 5c91fc25-47e0-47a1-ae9d-62e57c12f0d8 langcode: en status: true dependencies: - config: - - responsive_image.styles.gallery_thumbnail module: - external_entities - - imagecache_external _core: - default_config_hash: k-bIvgFdaVICd0s60Gng2zWabkpeZTQ53HF1Eff7zDk + default_config_hash: MK1WwyJih8WwRaem-6cDbbs9ea-7dGXkUwnOJkuEYNU id: helfi_news.helfi_news.default targetEntityType: helfi_news bundle: helfi_news mode: default content: - main_image: - type: imagecache_external_responsive_image - label: hidden - settings: - imagecache_external_link: '' - imagecache_external_responsive_style: gallery_thumbnail - third_party_settings: { } - weight: 1 - region: content title: type: string label: hidden diff --git a/conf/cmi/core.entity_view_display.helfi_news.helfi_news.medium_teaser.yml b/conf/cmi/core.entity_view_display.helfi_news.helfi_news.medium_teaser.yml index 9428a260d8..0f9f9b42c1 100644 --- a/conf/cmi/core.entity_view_display.helfi_news.helfi_news.medium_teaser.yml +++ b/conf/cmi/core.entity_view_display.helfi_news.helfi_news.medium_teaser.yml @@ -4,26 +4,18 @@ status: true dependencies: config: - core.entity_view_mode.helfi_news.medium_teaser - - responsive_image.styles.gallery_thumbnail module: - external_entities - - imagecache_external + enforced: + config: + - core.entity_view_mode.helfi_news.medium_teaser _core: - default_config_hash: XArB74ImuiEIsNGh_ic_b4csmzDUre1hUeswj9kCiOc + default_config_hash: mVSIRtxVMh_hPAb97hAa2xLZrKDESmHV1awN18-kwsg id: helfi_news.helfi_news.medium_teaser targetEntityType: helfi_news bundle: helfi_news mode: medium_teaser content: - main_image: - type: imagecache_external_responsive_image - label: hidden - settings: - imagecache_external_link: '' - imagecache_external_responsive_style: gallery_thumbnail - third_party_settings: { } - weight: 1 - region: content title: type: string label: hidden diff --git a/conf/cmi/core.entity_view_display.helfi_news_groups.helfi_news_groups.default.yml b/conf/cmi/core.entity_view_display.helfi_news_groups.helfi_news_groups.default.yml index bf9771d096..aa728ac27f 100644 --- a/conf/cmi/core.entity_view_display.helfi_news_groups.helfi_news_groups.default.yml +++ b/conf/cmi/core.entity_view_display.helfi_news_groups.helfi_news_groups.default.yml @@ -5,7 +5,7 @@ dependencies: module: - external_entities _core: - default_config_hash: 1dViHV2udCjK9OtxK_k2SyJgGGMR6Lmn6hjIW0cDeuw + default_config_hash: P8btRRLsFGBAXJ6BOUG4RbFBxqHK-7bW9o1s2d4HWCA id: helfi_news_groups.helfi_news_groups.default targetEntityType: helfi_news_groups bundle: helfi_news_groups diff --git a/conf/cmi/core.entity_view_display.helfi_news_neighbourhoods.helfi_news_neighbourhoods.default.yml b/conf/cmi/core.entity_view_display.helfi_news_neighbourhoods.helfi_news_neighbourhoods.default.yml index 911deca182..c50727328c 100644 --- a/conf/cmi/core.entity_view_display.helfi_news_neighbourhoods.helfi_news_neighbourhoods.default.yml +++ b/conf/cmi/core.entity_view_display.helfi_news_neighbourhoods.helfi_news_neighbourhoods.default.yml @@ -5,7 +5,7 @@ dependencies: module: - external_entities _core: - default_config_hash: rMjZgYdPC7TW3kaPdxknJg-VylxJiuxi2oocWRoxEmA + default_config_hash: D9evkjd3Cb3jmo3UG5LInegI7KwGYVPdw-CFm6Kw_EE id: helfi_news_neighbourhoods.helfi_news_neighbourhoods.default targetEntityType: helfi_news_neighbourhoods bundle: helfi_news_neighbourhoods diff --git a/conf/cmi/core.entity_view_display.helfi_news_tags.helfi_news_tags.default.yml b/conf/cmi/core.entity_view_display.helfi_news_tags.helfi_news_tags.default.yml index af9d45f290..3088189209 100644 --- a/conf/cmi/core.entity_view_display.helfi_news_tags.helfi_news_tags.default.yml +++ b/conf/cmi/core.entity_view_display.helfi_news_tags.helfi_news_tags.default.yml @@ -5,7 +5,7 @@ dependencies: module: - external_entities _core: - default_config_hash: 7T3454JR0Yp3GjMD7t558nldsj9jjZgS8FECvZpLtog + default_config_hash: vFiSBB15m_OJ_YePPGtc2tm3CTHL4JwnmEki_O5O_XU id: helfi_news_tags.helfi_news_tags.default targetEntityType: helfi_news_tags bundle: helfi_news_tags diff --git a/conf/cmi/core.entity_view_display.media.image.image.yml b/conf/cmi/core.entity_view_display.media.image.image.yml index 9ab5820405..b2a7cd8bfb 100644 --- a/conf/cmi/core.entity_view_display.media.image.image.yml +++ b/conf/cmi/core.entity_view_display.media.image.image.yml @@ -7,11 +7,11 @@ dependencies: - field.field.media.image.field_media_image - field.field.media.image.field_photographer - media.type.image - - responsive_image.styles.image__3_2 + - responsive_image.styles.image_fixed module: - responsive_image _core: - default_config_hash: 66iWopqoZgN6srOHx13N5NNQwoS0eUWAiw0gHzgwLQM + default_config_hash: GWywnVFR6qXEI67rhg-mzn27BUF4oKJUWGI6hmwLMEg id: media.image.image targetEntityType: media bundle: image @@ -21,7 +21,7 @@ content: type: responsive_image label: hidden settings: - responsive_image_style: image__3_2 + responsive_image_style: image_fixed image_link: '' image_loading: attribute: eager diff --git a/conf/cmi/core.entity_view_display.media.image.image_content_area.yml b/conf/cmi/core.entity_view_display.media.image.image_content_area.yml deleted file mode 100644 index bd8c0dffa6..0000000000 --- a/conf/cmi/core.entity_view_display.media.image.image_content_area.yml +++ /dev/null @@ -1,45 +0,0 @@ -uuid: ea22926e-a8bc-4160-88f4-4e266e9447ee -langcode: en -status: true -dependencies: - config: - - core.entity_view_mode.media.image_content_area - - field.field.media.image.field_media_image - - field.field.media.image.field_photographer - - media.type.image - - responsive_image.styles.image__3_2_content_area - module: - - responsive_image -_core: - default_config_hash: MZpbEb0do-aokpqsEv3TyeHe_lFfC5LLoWE0a53dN3Y -id: media.image.image_content_area -targetEntityType: media -bundle: image -mode: image_content_area -content: - field_media_image: - type: responsive_image - label: hidden - settings: - responsive_image_style: image__3_2_content_area - image_link: '' - image_loading: - attribute: eager - third_party_settings: { } - weight: 0 - region: content - field_photographer: - type: string - label: inline - settings: - link_to_entity: false - third_party_settings: { } - weight: 1 - region: content -hidden: - created: true - langcode: true - name: true - search_api_excerpt: true - thumbnail: true - uid: true diff --git a/conf/cmi/core.entity_view_display.paragraph.accordion.default.yml b/conf/cmi/core.entity_view_display.paragraph.accordion.default.yml index 296a4c6597..00abe86325 100644 --- a/conf/cmi/core.entity_view_display.paragraph.accordion.default.yml +++ b/conf/cmi/core.entity_view_display.paragraph.accordion.default.yml @@ -15,7 +15,7 @@ dependencies: - options - text _core: - default_config_hash: yJAD4ny-ijX5i6mYmUprDsh_4JqcMH8yIk6PNNRNUDQ + default_config_hash: e0ru9L96p-nQWFm3QJofXJmuuQ20FakJ6yrGmoRtA58 id: paragraph.accordion.default targetEntityType: paragraph bundle: accordion diff --git a/conf/cmi/core.entity_view_display.paragraph.accordion_item.default.yml b/conf/cmi/core.entity_view_display.paragraph.accordion_item.default.yml index 28434c3ae9..e0d3ebac80 100644 --- a/conf/cmi/core.entity_view_display.paragraph.accordion_item.default.yml +++ b/conf/cmi/core.entity_view_display.paragraph.accordion_item.default.yml @@ -11,7 +11,7 @@ dependencies: - entity_reference_revisions - hdbt_admin_tools _core: - default_config_hash: WvxeLovAeRn181zqTY9mqQlEUH2qKUDh3w1g2KROZoA + default_config_hash: nEdDaeghKYX4hYMccTAO5M0h4TLAiNAsYf2ouXYD2Sc id: paragraph.accordion_item.default targetEntityType: paragraph bundle: accordion_item diff --git a/conf/cmi/core.entity_view_display.paragraph.hearings.default.yml b/conf/cmi/core.entity_view_display.paragraph.hearings.default.yml index a2080ee010..5508aa60ac 100644 --- a/conf/cmi/core.entity_view_display.paragraph.hearings.default.yml +++ b/conf/cmi/core.entity_view_display.paragraph.hearings.default.yml @@ -31,9 +31,9 @@ content: weight: 0 region: content list: + weight: 100 settings: { } third_party_settings: { } - weight: 100 region: content hidden: search_api_excerpt: true diff --git a/conf/cmi/core.entity_view_display.paragraph.news_list.default.yml b/conf/cmi/core.entity_view_display.paragraph.news_list.default.yml index 38e7e29745..e0deca0dce 100644 --- a/conf/cmi/core.entity_view_display.paragraph.news_list.default.yml +++ b/conf/cmi/core.entity_view_display.paragraph.news_list.default.yml @@ -13,7 +13,7 @@ dependencies: module: - text _core: - default_config_hash: eCdT_XU1aIhxOLfurTn16KTFSsxHyWZu3HHm3q_5Mi8 + default_config_hash: IaEztQ64zKXiAxNk4HFBTSTDjzF0hFmzqkZp7KB8T5M id: paragraph.news_list.default targetEntityType: paragraph bundle: news_list diff --git a/conf/cmi/core.entity_view_display.tpr_unit.tpr_unit.teaser.yml b/conf/cmi/core.entity_view_display.tpr_unit.tpr_unit.teaser.yml index b03c70051f..7feb625707 100644 --- a/conf/cmi/core.entity_view_display.tpr_unit.tpr_unit.teaser.yml +++ b/conf/cmi/core.entity_view_display.tpr_unit.tpr_unit.teaser.yml @@ -10,13 +10,13 @@ dependencies: - field.field.tpr_unit.tpr_unit.field_phone_label - field.field.tpr_unit.tpr_unit.field_phone_with_contacts - field.field.tpr_unit.tpr_unit.field_unit_type - - responsive_image.styles.image__3_2 + - responsive_image.styles.card module: - address - helfi_tpr - imagecache_external _core: - default_config_hash: m1bmfjjZv3vQY6PgMNy1iVlUMSu481oOvcyJZSDTlvs + default_config_hash: ctt6rryxXp2PBk9I1z8LLlWNoGcu0732NmKK-bDSQv8 id: tpr_unit.tpr_unit.teaser targetEntityType: tpr_unit bundle: tpr_unit @@ -50,7 +50,7 @@ content: label: hidden settings: imagecache_external_link: '' - imagecache_external_responsive_style: image__3_2 + imagecache_external_responsive_style: card third_party_settings: { } weight: 0 region: content diff --git a/conf/cmi/core.entity_view_display.tpr_unit.tpr_unit.wide_teaser.yml b/conf/cmi/core.entity_view_display.tpr_unit.tpr_unit.wide_teaser.yml index f96916f299..8b22458ad6 100644 --- a/conf/cmi/core.entity_view_display.tpr_unit.tpr_unit.wide_teaser.yml +++ b/conf/cmi/core.entity_view_display.tpr_unit.tpr_unit.wide_teaser.yml @@ -10,14 +10,14 @@ dependencies: - field.field.tpr_unit.tpr_unit.field_phone_label - field.field.tpr_unit.tpr_unit.field_phone_with_contacts - field.field.tpr_unit.tpr_unit.field_unit_type - - responsive_image.styles.image__3_2 + - responsive_image.styles.card module: - address - helfi_tpr - imagecache_external - telephone _core: - default_config_hash: cckwj35wWsGAYunHIdT0rY9aYhkXdHeMC-kIFwe8cpY + default_config_hash: hu51est7v1-21W9reK5D3A_KRi2AI7Y5CcRdE-LSDpM id: tpr_unit.tpr_unit.wide_teaser targetEntityType: tpr_unit bundle: tpr_unit @@ -66,7 +66,7 @@ content: label: hidden settings: imagecache_external_link: '' - imagecache_external_responsive_style: image__3_2 + imagecache_external_responsive_style: card third_party_settings: { } weight: 0 region: content diff --git a/conf/cmi/core.entity_view_mode.helfi_news.medium_teaser.yml b/conf/cmi/core.entity_view_mode.helfi_news.medium_teaser.yml index 6bfc47a57f..fb7f85f584 100644 --- a/conf/cmi/core.entity_view_mode.helfi_news.medium_teaser.yml +++ b/conf/cmi/core.entity_view_mode.helfi_news.medium_teaser.yml @@ -5,7 +5,7 @@ dependencies: module: - external_entities _core: - default_config_hash: q8QZDYrGHAdl67dw9Z1DdTCTIhOo3lpW0dGN70STnCk + default_config_hash: Fl8HX68URx0CChkXzE5wAEZ9p94KnjuIbgmVIo6r5n4 id: helfi_news.medium_teaser label: 'Medium Teaser' description: '' diff --git a/conf/cmi/core.entity_view_mode.media.image_content_area.yml b/conf/cmi/core.entity_view_mode.media.image_content_area.yml deleted file mode 100644 index 705260dcc2..0000000000 --- a/conf/cmi/core.entity_view_mode.media.image_content_area.yml +++ /dev/null @@ -1,13 +0,0 @@ -uuid: 817e81e2-a05a-407c-8196-f057083fbaa5 -langcode: en -status: true -dependencies: - module: - - media -_core: - default_config_hash: u4xPVzzez1KP66PPTRiynkPmjXyIwJw6Nqjz01tLAjQ -id: media.image_content_area -label: 'Image (content area)' -description: '' -targetEntityType: media -cache: true diff --git a/conf/cmi/core.entity_view_mode.tpr_unit.wide_teaser.yml b/conf/cmi/core.entity_view_mode.tpr_unit.wide_teaser.yml index b4ff54b4bd..7a5feec972 100644 --- a/conf/cmi/core.entity_view_mode.tpr_unit.wide_teaser.yml +++ b/conf/cmi/core.entity_view_mode.tpr_unit.wide_teaser.yml @@ -5,7 +5,7 @@ dependencies: module: - helfi_tpr _core: - default_config_hash: LHSCUu61QmAp9xLqPCXxulNsrk79jkqds89okZ9vqWo + default_config_hash: LKz6DnZ1UOXMUzGrs2iLhTFxw7vsBXkAlO_VZznAe7U id: tpr_unit.wide_teaser label: 'Wide Teaser' description: '' diff --git a/conf/cmi/external_entities.external_entity_type.helfi_hearings.yml b/conf/cmi/external_entities.external_entity_type.helfi_hearings.yml index 0d51d517f1..1a5ed6b205 100644 --- a/conf/cmi/external_entities.external_entity_type.helfi_hearings.yml +++ b/conf/cmi/external_entities.external_entity_type.helfi_hearings.yml @@ -8,8 +8,8 @@ id: helfi_hearings label: 'Helfi: Hearing' label_plural: 'Helfi: Hearing' description: 'Helfi hearings from hearing api.' -read_only: true generate_aliases: false +read_only: true field_mapper_id: jsonpath field_mapper_config: field_mappings: diff --git a/conf/cmi/external_entities.external_entity_type.helfi_news.yml b/conf/cmi/external_entities.external_entity_type.helfi_news.yml index 0b2c1bb385..cfc004c8e2 100644 --- a/conf/cmi/external_entities.external_entity_type.helfi_news.yml +++ b/conf/cmi/external_entities.external_entity_type.helfi_news.yml @@ -8,8 +8,8 @@ id: helfi_news label: 'Helfi: News' label_plural: 'Helfi: News' description: '' -read_only: true generate_aliases: false +read_only: true field_mapper_id: jsonpath field_mapper_config: field_mappings: diff --git a/conf/cmi/external_entities.external_entity_type.helfi_news_groups.yml b/conf/cmi/external_entities.external_entity_type.helfi_news_groups.yml index 16e4561eb5..ee5d9ee0f7 100644 --- a/conf/cmi/external_entities.external_entity_type.helfi_news_groups.yml +++ b/conf/cmi/external_entities.external_entity_type.helfi_news_groups.yml @@ -8,8 +8,8 @@ id: helfi_news_groups label: 'Helfi: News groups' label_plural: 'Helfi: News groups' description: 'Retrieves news groups taxonomy terms from Helfi' -read_only: true generate_aliases: null +read_only: true field_mapper_id: jsonpath field_mapper_config: field_mappings: diff --git a/conf/cmi/external_entities.external_entity_type.helfi_news_neighbourhoods.yml b/conf/cmi/external_entities.external_entity_type.helfi_news_neighbourhoods.yml index 08a1c934fd..d66f4e7d7a 100644 --- a/conf/cmi/external_entities.external_entity_type.helfi_news_neighbourhoods.yml +++ b/conf/cmi/external_entities.external_entity_type.helfi_news_neighbourhoods.yml @@ -8,8 +8,8 @@ id: helfi_news_neighbourhoods label: 'Helfi: News neighbourhoods' label_plural: 'Helfi: News neighbourhoods' description: 'Retrieves news neighbourhoods taxonomy terms from Helfi' -read_only: true generate_aliases: null +read_only: true field_mapper_id: jsonpath field_mapper_config: field_mappings: diff --git a/conf/cmi/external_entities.external_entity_type.helfi_news_tags.yml b/conf/cmi/external_entities.external_entity_type.helfi_news_tags.yml index b5e242753a..7edf9ccf8e 100644 --- a/conf/cmi/external_entities.external_entity_type.helfi_news_tags.yml +++ b/conf/cmi/external_entities.external_entity_type.helfi_news_tags.yml @@ -8,8 +8,8 @@ id: helfi_news_tags label: 'Helfi: News tags' label_plural: 'Helfi: News tags' description: 'Retrieves news tags taxonomy terms from Helfi' -read_only: true generate_aliases: null +read_only: true field_mapper_id: jsonpath field_mapper_config: field_mappings: diff --git a/conf/cmi/field.field.paragraph.accordion.field_accordion_description.yml b/conf/cmi/field.field.paragraph.accordion.field_accordion_description.yml index 03aad0e86a..c3798013f0 100644 --- a/conf/cmi/field.field.paragraph.accordion.field_accordion_description.yml +++ b/conf/cmi/field.field.paragraph.accordion.field_accordion_description.yml @@ -13,7 +13,7 @@ third_party_settings: allowed_formats: - minimal _core: - default_config_hash: kOxXsJuDVcymIAy7jnni6GM5q5SPGSrxwmWJiJ4Sr7c + default_config_hash: j-K-qnxmYJISH2FD5kP90WEvaYPac3scFywf6jjx6AA id: paragraph.accordion.field_accordion_description field_name: field_accordion_description entity_type: paragraph diff --git a/conf/cmi/field.field.paragraph.accordion.field_accordion_design.yml b/conf/cmi/field.field.paragraph.accordion.field_accordion_design.yml index dd60760758..090b4b9bba 100644 --- a/conf/cmi/field.field.paragraph.accordion.field_accordion_design.yml +++ b/conf/cmi/field.field.paragraph.accordion.field_accordion_design.yml @@ -8,7 +8,7 @@ dependencies: module: - options _core: - default_config_hash: C3J06vDzYUJdSIAwQhoBHO4eG5T2H--lbC1h74-KDJ4 + default_config_hash: iRAjLGNSuLvmNMEA6EiasJbbsseWnuhpbvg6xXIkL2s id: paragraph.accordion.field_accordion_design field_name: field_accordion_design entity_type: paragraph diff --git a/conf/cmi/field.field.paragraph.accordion.field_accordion_heading_level.yml b/conf/cmi/field.field.paragraph.accordion.field_accordion_heading_level.yml index db5f0d9aeb..4d37982516 100644 --- a/conf/cmi/field.field.paragraph.accordion.field_accordion_heading_level.yml +++ b/conf/cmi/field.field.paragraph.accordion.field_accordion_heading_level.yml @@ -8,7 +8,7 @@ dependencies: module: - options _core: - default_config_hash: HZVr6AVX7ihLKrsewEHabJxkhrHFUugKszp7Z_B1slk + default_config_hash: huFW_rCFjaNvMUbdEaFO_KzbeRqHg9Kvk6w9bICJX5w id: paragraph.accordion.field_accordion_heading_level field_name: field_accordion_heading_level entity_type: paragraph diff --git a/conf/cmi/field.field.paragraph.accordion.field_accordion_items.yml b/conf/cmi/field.field.paragraph.accordion.field_accordion_items.yml index e539432deb..5c61ebaef7 100644 --- a/conf/cmi/field.field.paragraph.accordion.field_accordion_items.yml +++ b/conf/cmi/field.field.paragraph.accordion.field_accordion_items.yml @@ -12,12 +12,12 @@ dependencies: config: - paragraphs.paragraphs_type.accordion_item _core: - default_config_hash: Nx_3yq3vNPc667kG9nez6rTv_w54aS3h3rnbAmt7kZ4 + default_config_hash: pbsofl6KEKBnXhSD8VeTvETrQnbu2PEmmoxOnJ6tTyc id: paragraph.accordion.field_accordion_items field_name: field_accordion_items entity_type: paragraph bundle: accordion -label: Content +label: Items description: '' required: true translatable: false diff --git a/conf/cmi/field.field.paragraph.accordion.field_accordion_title.yml b/conf/cmi/field.field.paragraph.accordion.field_accordion_title.yml index 50332446a0..e8ed68e973 100644 --- a/conf/cmi/field.field.paragraph.accordion.field_accordion_title.yml +++ b/conf/cmi/field.field.paragraph.accordion.field_accordion_title.yml @@ -6,7 +6,7 @@ dependencies: - field.storage.paragraph.field_accordion_title - paragraphs.paragraphs_type.accordion _core: - default_config_hash: TqiIVq0xav9ieDerAH8CFF0bSAAeZxPsNXWyqpBPm_U + default_config_hash: MCWdcisqdcCp5VyV12W_w5kamgU5dmQUwbyWA37KgW8 id: paragraph.accordion.field_accordion_title field_name: field_accordion_title entity_type: paragraph diff --git a/conf/cmi/field.field.paragraph.accordion.field_accordion_title_level.yml b/conf/cmi/field.field.paragraph.accordion.field_accordion_title_level.yml index f0d900ae74..97deea004e 100644 --- a/conf/cmi/field.field.paragraph.accordion.field_accordion_title_level.yml +++ b/conf/cmi/field.field.paragraph.accordion.field_accordion_title_level.yml @@ -8,7 +8,7 @@ dependencies: module: - options _core: - default_config_hash: O1itPj2x6F-IUHyrssTSWUsnWXk5ljT5U3jjQrxd0cY + default_config_hash: PXJrE7yjrmg3rNd1MV7vyd8uwlc48g2jO39aNlYEi08 id: paragraph.accordion.field_accordion_title_level field_name: field_accordion_title_level entity_type: paragraph diff --git a/conf/cmi/field.field.paragraph.accordion_item.field_accordion_item_content.yml b/conf/cmi/field.field.paragraph.accordion_item.field_accordion_item_content.yml index cef5cf9ef1..91133c0615 100644 --- a/conf/cmi/field.field.paragraph.accordion_item.field_accordion_item_content.yml +++ b/conf/cmi/field.field.paragraph.accordion_item.field_accordion_item_content.yml @@ -12,7 +12,7 @@ dependencies: module: - entity_reference_revisions _core: - default_config_hash: PZYH0XJHai5BanrU841HBb6psP_104W5Abd-D8q4dIU + default_config_hash: S0Go4odbO-zxS9ydKxxo5m6EuhdnpZiM4g5Y3tYk-98 id: paragraph.accordion_item.field_accordion_item_content field_name: field_accordion_item_content entity_type: paragraph @@ -27,20 +27,20 @@ settings: handler: 'default:paragraph' handler_settings: target_bundles: - columns: columns - image: image text: text + image: image phasing: phasing + columns: columns negate: 0 target_bundles_drag_drop: columns: - weight: 0 + weight: 3 enabled: true image: - weight: 0 + weight: 1 enabled: true phasing: - weight: 0 + weight: 2 enabled: true text: weight: 0 diff --git a/conf/cmi/field.field.paragraph.accordion_item.field_accordion_item_heading.yml b/conf/cmi/field.field.paragraph.accordion_item.field_accordion_item_heading.yml index b077ed3a21..4303c8ab40 100644 --- a/conf/cmi/field.field.paragraph.accordion_item.field_accordion_item_heading.yml +++ b/conf/cmi/field.field.paragraph.accordion_item.field_accordion_item_heading.yml @@ -6,7 +6,7 @@ dependencies: - field.storage.paragraph.field_accordion_item_heading - paragraphs.paragraphs_type.accordion_item _core: - default_config_hash: ub76tTWnromBzCxP7Fh285sgZFQVw6Yyr7e2mefo-E0 + default_config_hash: jlpogAZT3equVVawgcoNawBA8yy2TkAjRHrqcNx7yGY id: paragraph.accordion_item.field_accordion_item_heading field_name: field_accordion_item_heading entity_type: paragraph diff --git a/conf/cmi/field.field.paragraph.accordion_item.field_icon.yml b/conf/cmi/field.field.paragraph.accordion_item.field_icon.yml index ee23bbe95c..2d998f6fcc 100644 --- a/conf/cmi/field.field.paragraph.accordion_item.field_icon.yml +++ b/conf/cmi/field.field.paragraph.accordion_item.field_icon.yml @@ -8,7 +8,7 @@ dependencies: module: - hdbt_admin_tools _core: - default_config_hash: lZgD3FKeuPDGSq4QSkg6k71xMrgJjXqe3eBE1AK8_Ig + default_config_hash: noZbr1ggOqV1n5sTP8lki4BDYHZ9kCTokdkux0Ak7jI id: paragraph.accordion_item.field_icon field_name: field_icon entity_type: paragraph diff --git a/conf/cmi/field.storage.paragraph.field_accordion_description.yml b/conf/cmi/field.storage.paragraph.field_accordion_description.yml index dbbbf7df4a..3da77e8e63 100644 --- a/conf/cmi/field.storage.paragraph.field_accordion_description.yml +++ b/conf/cmi/field.storage.paragraph.field_accordion_description.yml @@ -6,7 +6,7 @@ dependencies: - paragraphs - text _core: - default_config_hash: EerHlo0DvRW9wodIpVNsoQvRgGklDN80Z4vaofMG-H0 + default_config_hash: f39f_iSoIe3v72Vw4gZbmZ1rK31zxu8nziCvipMdnfk id: paragraph.field_accordion_description field_name: field_accordion_description entity_type: paragraph diff --git a/conf/cmi/field.storage.paragraph.field_accordion_design.yml b/conf/cmi/field.storage.paragraph.field_accordion_design.yml index 5c1b7b73c2..72a059b69f 100644 --- a/conf/cmi/field.storage.paragraph.field_accordion_design.yml +++ b/conf/cmi/field.storage.paragraph.field_accordion_design.yml @@ -6,7 +6,7 @@ dependencies: - options - paragraphs _core: - default_config_hash: rbDxhjXfPHMDYJqUlYnmt8r427vL0vzSOd5SQ3H6ZGU + default_config_hash: _atR29T6pbOshvx0mgvdebd7Gr1yN1cC22Ls1a7PJQA id: paragraph.field_accordion_design field_name: field_accordion_design entity_type: paragraph diff --git a/conf/cmi/field.storage.paragraph.field_accordion_heading_level.yml b/conf/cmi/field.storage.paragraph.field_accordion_heading_level.yml index af38e88ba9..80bb7930ac 100644 --- a/conf/cmi/field.storage.paragraph.field_accordion_heading_level.yml +++ b/conf/cmi/field.storage.paragraph.field_accordion_heading_level.yml @@ -6,7 +6,7 @@ dependencies: - options - paragraphs _core: - default_config_hash: eC6tQJYsLqY--GBIgLLHOgt5S6XeFxOJiXRiNn4q_68 + default_config_hash: SgFhmrcytcSLA4KLSd6HWJJquPg7OM-_L2S9jLtZmrk id: paragraph.field_accordion_heading_level field_name: field_accordion_heading_level entity_type: paragraph diff --git a/conf/cmi/field.storage.paragraph.field_accordion_item_content.yml b/conf/cmi/field.storage.paragraph.field_accordion_item_content.yml index 6975d83e7a..5fff05c740 100644 --- a/conf/cmi/field.storage.paragraph.field_accordion_item_content.yml +++ b/conf/cmi/field.storage.paragraph.field_accordion_item_content.yml @@ -9,7 +9,7 @@ dependencies: config: - paragraphs.paragraphs_type.accordion_item _core: - default_config_hash: ii2H-2RA7_AV2hH0bRBfJDL9dmLSCTaWL5T4oIWPlVM + default_config_hash: O3jtnsTTTr_DF5PCVSyfomvx9U5KhscOD2pcVnv9jRo id: paragraph.field_accordion_item_content field_name: field_accordion_item_content entity_type: paragraph diff --git a/conf/cmi/field.storage.paragraph.field_accordion_item_heading.yml b/conf/cmi/field.storage.paragraph.field_accordion_item_heading.yml index 4a0c047fbc..3a80cc5b40 100644 --- a/conf/cmi/field.storage.paragraph.field_accordion_item_heading.yml +++ b/conf/cmi/field.storage.paragraph.field_accordion_item_heading.yml @@ -5,7 +5,7 @@ dependencies: module: - paragraphs _core: - default_config_hash: SKYDBYvLxOQaZVxf-XlA-uRyROyDOI4pU2xRaK91PEo + default_config_hash: Evf-dxTIxBvpcwMhpYp6YzLGSbUvr9WUem9qgqkHbw0 id: paragraph.field_accordion_item_heading field_name: field_accordion_item_heading entity_type: paragraph diff --git a/conf/cmi/field.storage.paragraph.field_accordion_items.yml b/conf/cmi/field.storage.paragraph.field_accordion_items.yml index 1add3affe5..bac66555c6 100644 --- a/conf/cmi/field.storage.paragraph.field_accordion_items.yml +++ b/conf/cmi/field.storage.paragraph.field_accordion_items.yml @@ -9,7 +9,7 @@ dependencies: config: - paragraphs.paragraphs_type.accordion _core: - default_config_hash: V13nhH7ZNcAfI0hw5vvVq5eYh15DYnhp2juBr9k6N_s + default_config_hash: WG4eOVLjQAzLoc5AQ95YpSpbct3kym1s6EgYmvq2vWE id: paragraph.field_accordion_items field_name: field_accordion_items entity_type: paragraph diff --git a/conf/cmi/field.storage.paragraph.field_accordion_title.yml b/conf/cmi/field.storage.paragraph.field_accordion_title.yml index 7cb6ba8a67..860552a05e 100644 --- a/conf/cmi/field.storage.paragraph.field_accordion_title.yml +++ b/conf/cmi/field.storage.paragraph.field_accordion_title.yml @@ -5,7 +5,7 @@ dependencies: module: - paragraphs _core: - default_config_hash: '-UWwTPrmfNQVXS6PR3jXCrx99uv20Uv2rwqvytBskeY' + default_config_hash: h_S6nf_hDhlhQwO92UvEhO7Z2npXNNjO9J6j5obHITY id: paragraph.field_accordion_title field_name: field_accordion_title entity_type: paragraph diff --git a/conf/cmi/field.storage.paragraph.field_accordion_title_level.yml b/conf/cmi/field.storage.paragraph.field_accordion_title_level.yml index 2aa2968af6..ebf8b357c3 100644 --- a/conf/cmi/field.storage.paragraph.field_accordion_title_level.yml +++ b/conf/cmi/field.storage.paragraph.field_accordion_title_level.yml @@ -6,7 +6,7 @@ dependencies: - options - paragraphs _core: - default_config_hash: JwHgKwfMuUFw0Ko1E_2DbzGbGbHHoG_unhlyGs6Ha1U + default_config_hash: ghbbLn8LXQXBdNN5Orxnui-CcjfosUl_0edQETrBWXI id: paragraph.field_accordion_title_level field_name: field_accordion_title_level entity_type: paragraph diff --git a/conf/cmi/image.style.1_1_l.yml b/conf/cmi/image.style.1_1_l.yml deleted file mode 100644 index ddbd6b3b5d..0000000000 --- a/conf/cmi/image.style.1_1_l.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: 8cbb05d6-cbb2-4c78-b47d-f21184e3ab8a -langcode: en -status: true -dependencies: - module: - - focal_point -_core: - default_config_hash: 6KuaGjC8cwLut5pYHsPhg6fzRJxZQtZdjeCU64jccSE -name: 1_1_l -label: 'DEPRECATED 1:1 L' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 1440 - height: 1440 - crop_type: focal_point diff --git a/conf/cmi/image.style.1_1_l_2x.yml b/conf/cmi/image.style.1_1_l_2x.yml deleted file mode 100644 index 0872ea9e88..0000000000 --- a/conf/cmi/image.style.1_1_l_2x.yml +++ /dev/null @@ -1,26 +0,0 @@ -uuid: 150494a9-6ab3-461e-9afb-adfb3f73cc9d -langcode: en -status: true -dependencies: - module: - - focal_point - - image_style_quality -_core: - default_config_hash: u08uAeZT1UXF3SARJPNz6Tws0UIHKQEj7ZjFxcX2ALM -name: 1_1_l_2x -label: 'DEPRECATED 1:1 L (2x)' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 2880 - height: 2880 - crop_type: focal_point - a9ed654a-a81b-4bfb-8f0e-0ca3188de581: - uuid: a9ed654a-a81b-4bfb-8f0e-0ca3188de581 - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.1_1_m.yml b/conf/cmi/image.style.1_1_m.yml deleted file mode 100644 index a91735a64c..0000000000 --- a/conf/cmi/image.style.1_1_m.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: d2e32b90-7d68-4d31-9872-d5cd96a7343d -langcode: en -status: true -dependencies: - module: - - focal_point -_core: - default_config_hash: LqLBoZOKcVZ2rZbMTe6sbkb_MvWBSLeeYQxyuAZL4xk -name: 1_1_m -label: 'DEPRECATED 1:1 M' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 1024 - height: 1024 - crop_type: focal_point diff --git a/conf/cmi/image.style.1_1_m_2x.yml b/conf/cmi/image.style.1_1_m_2x.yml deleted file mode 100644 index 1338755660..0000000000 --- a/conf/cmi/image.style.1_1_m_2x.yml +++ /dev/null @@ -1,26 +0,0 @@ -uuid: 328429c4-172d-4246-b17e-8d744c26a530 -langcode: en -status: true -dependencies: - module: - - focal_point - - image_style_quality -_core: - default_config_hash: Mwyb-66HcJ7u_sLH1ep9mb5RqgcIVBqgYuQiZdRuJwU -name: 1_1_m_2x -label: 'DEPRECATED 1:1 M (2x)' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 2048 - height: 2048 - crop_type: focal_point - a9ed654a-a81b-4bfb-8f0e-0ca3188de581: - uuid: a9ed654a-a81b-4bfb-8f0e-0ca3188de581 - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.1_1_s.yml b/conf/cmi/image.style.1_1_s.yml deleted file mode 100644 index ecdfba785d..0000000000 --- a/conf/cmi/image.style.1_1_s.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: 37796267-69a9-4450-987d-ec7aa26eebb3 -langcode: en -status: true -dependencies: - module: - - focal_point -_core: - default_config_hash: OGflPQXUa_UEp9IDNV80qWSDiJvBtUd9-U0nOm8IHCk -name: 1_1_s -label: 'DEPRECATED 1:1 S' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 800 - height: 800 - crop_type: focal_point diff --git a/conf/cmi/image.style.1_1_s_2x.yml b/conf/cmi/image.style.1_1_s_2x.yml deleted file mode 100644 index 74b6f56603..0000000000 --- a/conf/cmi/image.style.1_1_s_2x.yml +++ /dev/null @@ -1,26 +0,0 @@ -uuid: 9feec02d-4b72-42f1-8404-4fe26b862f82 -langcode: en -status: true -dependencies: - module: - - focal_point - - image_style_quality -_core: - default_config_hash: 9PoXTCXPob9AL2xdfTIOmsy8sOkRb3KiPLr6t-_XtHI -name: 1_1_s_2x -label: 'DEPRECATED 1:1 S (2x)' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 1600 - height: 1600 - crop_type: focal_point - a9ed654a-a81b-4bfb-8f0e-0ca3188de581: - uuid: a9ed654a-a81b-4bfb-8f0e-0ca3188de581 - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.1_1_thumbnail.yml b/conf/cmi/image.style.1_1_thumbnail.yml deleted file mode 100644 index e4b530151f..0000000000 --- a/conf/cmi/image.style.1_1_thumbnail.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: 2fcde831-614f-4eea-8293-63382c1106f8 -langcode: en -status: true -dependencies: - module: - - focal_point -_core: - default_config_hash: 6feCmjAD3-ymvNbvhvJXfyzI6etlEtsKsPBJR5ncSgE -name: 1_1_thumbnail -label: 'DEPRECATED 1:1 thumbnail' -effects: - 281cebc2-0471-44f8-a46c-4111298d4398: - uuid: 281cebc2-0471-44f8-a46c-4111298d4398 - id: focal_point_scale_and_crop - weight: 1 - data: - width: 180 - height: 180 - crop_type: focal_point diff --git a/conf/cmi/image.style.1_1_thumbnail_2x.yml b/conf/cmi/image.style.1_1_thumbnail_2x.yml deleted file mode 100644 index 37173cf141..0000000000 --- a/conf/cmi/image.style.1_1_thumbnail_2x.yml +++ /dev/null @@ -1,26 +0,0 @@ -uuid: 0924a439-d47d-4ccd-bab4-3d78ae04b7c1 -langcode: en -status: true -dependencies: - module: - - focal_point - - image_style_quality -_core: - default_config_hash: OK6Omg4TMT2YuLeYsPibZMORaqlmapXdBh7Yntw_-Ec -name: 1_1_thumbnail_2x -label: 'DEPRECATED 1:1 thumbnail (2x)' -effects: - bbeb2baa-6c3e-4865-a1e4-c7e35f9fa4eb: - uuid: bbeb2baa-6c3e-4865-a1e4-c7e35f9fa4eb - id: focal_point_scale_and_crop - weight: 1 - data: - width: 360 - height: 360 - crop_type: focal_point - b101e3cd-1bc6-421f-9148-b989422d754e: - uuid: b101e3cd-1bc6-421f-9148-b989422d754e - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.1_1_xl.yml b/conf/cmi/image.style.1_1_xl.yml deleted file mode 100644 index 16f27c3008..0000000000 --- a/conf/cmi/image.style.1_1_xl.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: b42f1d92-e492-42a9-b419-c00af29fb73c -langcode: en -status: true -dependencies: - module: - - focal_point -_core: - default_config_hash: yBm4EzOiT8w_YSpljMorDAaW_JNJzPt99t3luLgEiEk -name: 1_1_xl -label: 'DEPRECATED 1:1 XL' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 1920 - height: 1920 - crop_type: focal_point diff --git a/conf/cmi/image.style.1_1_xl_2x.yml b/conf/cmi/image.style.1_1_xl_2x.yml deleted file mode 100644 index 3e586990f0..0000000000 --- a/conf/cmi/image.style.1_1_xl_2x.yml +++ /dev/null @@ -1,26 +0,0 @@ -uuid: e8047470-9e98-4d7e-8e46-66f195f453d3 -langcode: en -status: true -dependencies: - module: - - focal_point - - image_style_quality -_core: - default_config_hash: RNHRItyWjqsf5-8Dio9tA6IUh3xrWn1ygUUf7Of0mPY -name: 1_1_xl_2x -label: 'DEPRECATED 1:1 XL (2x)' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 3840 - height: 3840 - crop_type: focal_point - 4b95d242-03d3-43e7-b80b-80d660ed0a26: - uuid: 4b95d242-03d3-43e7-b80b-80d660ed0a26 - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.1_1_xs.yml b/conf/cmi/image.style.1_1_xs.yml deleted file mode 100644 index aba43f74ff..0000000000 --- a/conf/cmi/image.style.1_1_xs.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: c6b8160d-4782-4bff-8c75-f85c65d84a3f -langcode: en -status: true -dependencies: - module: - - focal_point -_core: - default_config_hash: nFT0n8Dr5zcKt2l7pCYKd3D97sk9lOQ6PXzxwzow_uY -name: 1_1_xs -label: 'DEPRECATED 1:1 XS' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 600 - height: 600 - crop_type: focal_point diff --git a/conf/cmi/image.style.1_1_xs_2x.yml b/conf/cmi/image.style.1_1_xs_2x.yml deleted file mode 100644 index c1f27b7f71..0000000000 --- a/conf/cmi/image.style.1_1_xs_2x.yml +++ /dev/null @@ -1,26 +0,0 @@ -uuid: 7f6300ea-2384-43e8-ac2d-9ce2f974a566 -langcode: en -status: true -dependencies: - module: - - focal_point - - image_style_quality -_core: - default_config_hash: Pr8W4QzEMXRcyXmoQKisapC2VthnJQqJQHbG9FfcOLU -name: 1_1_xs_2x -label: 'DEPRECATED 1:1 XS (2x)' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 1200 - height: 1200 - crop_type: focal_point - a9ed654a-a81b-4bfb-8f0e-0ca3188de581: - uuid: a9ed654a-a81b-4bfb-8f0e-0ca3188de581 - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.23_10_l.yml b/conf/cmi/image.style.23_10_l.yml deleted file mode 100644 index d270aa8073..0000000000 --- a/conf/cmi/image.style.23_10_l.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: fa5012e7-396a-442b-b620-c35bf9817162 -langcode: en -status: true -dependencies: - module: - - focal_point -_core: - default_config_hash: GtZ7ok5gSTR4vVmGttRPS7po0TZe9SjvdDb_m8flrJM -name: 23_10_l -label: 'DEPRECATED 2.3:1 L' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 1440 - height: 626 - crop_type: focal_point diff --git a/conf/cmi/image.style.23_10_l_2x.yml b/conf/cmi/image.style.23_10_l_2x.yml deleted file mode 100644 index 1c0a561639..0000000000 --- a/conf/cmi/image.style.23_10_l_2x.yml +++ /dev/null @@ -1,26 +0,0 @@ -uuid: 3b62ec1f-7fb1-4279-9879-ab276b5e7c46 -langcode: en -status: true -dependencies: - module: - - focal_point - - image_style_quality -_core: - default_config_hash: uGMk4f_duO_i9JbM1nOthF_kv_c7EsgNG7uoW1ppgJo -name: 23_10_l_2x -label: 'DEPRECATED 2.3:1 L (2x)' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 2880 - height: 1252 - crop_type: focal_point - a9ed654a-a81b-4bfb-8f0e-0ca3188de581: - uuid: a9ed654a-a81b-4bfb-8f0e-0ca3188de581 - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.23_10_m.yml b/conf/cmi/image.style.23_10_m.yml deleted file mode 100644 index 4d59e60b39..0000000000 --- a/conf/cmi/image.style.23_10_m.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: d092de3d-8bb1-41db-ad0a-ccd074700ee8 -langcode: en -status: true -dependencies: - module: - - focal_point -_core: - default_config_hash: 0gKEkO8YDo5m_otNzFPfdFQTYZiUBti8s_84RyW23VQ -name: 23_10_m -label: 'DEPRECATED 2.3:1 M' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 1024 - height: 445 - crop_type: focal_point diff --git a/conf/cmi/image.style.23_10_m_2x.yml b/conf/cmi/image.style.23_10_m_2x.yml deleted file mode 100644 index 993ca08589..0000000000 --- a/conf/cmi/image.style.23_10_m_2x.yml +++ /dev/null @@ -1,26 +0,0 @@ -uuid: 407d8753-3821-4d35-9f49-5d46276350e6 -langcode: en -status: true -dependencies: - module: - - focal_point - - image_style_quality -_core: - default_config_hash: slrB4hH_AbQc4IVcHpN50_VBeFmAMgMzXEypD7bhkuw -name: 23_10_m_2x -label: 'DEPRECATED 2.3:1 M (2x)' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 2048 - height: 890 - crop_type: focal_point - a9ed654a-a81b-4bfb-8f0e-0ca3188de581: - uuid: a9ed654a-a81b-4bfb-8f0e-0ca3188de581 - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.23_10_s.yml b/conf/cmi/image.style.23_10_s.yml deleted file mode 100644 index fe58001758..0000000000 --- a/conf/cmi/image.style.23_10_s.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: d8e29998-0e24-40c9-b9a4-380ebe6cbc64 -langcode: en -status: true -dependencies: - module: - - focal_point -_core: - default_config_hash: rMgj9QkEhrrZqsGTV_uRdHD7GTGPn4d5fbwxSg3p_m0 -name: 23_10_s -label: 'DEPRECATED 2.3:1 S' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 800 - height: 348 - crop_type: focal_point diff --git a/conf/cmi/image.style.23_10_s_2x.yml b/conf/cmi/image.style.23_10_s_2x.yml deleted file mode 100644 index 1fabeaea1f..0000000000 --- a/conf/cmi/image.style.23_10_s_2x.yml +++ /dev/null @@ -1,26 +0,0 @@ -uuid: e3370819-ccb4-402b-9de5-7db045e71eef -langcode: en -status: true -dependencies: - module: - - focal_point - - image_style_quality -_core: - default_config_hash: 72mNN0vqh_S2LvL8Z1tv10cVGajzTbZTUiUy-a9TXok -name: 23_10_s_2x -label: 'DEPRECATED 2.3:1 S (2x)' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 1600 - height: 696 - crop_type: focal_point - a9ed654a-a81b-4bfb-8f0e-0ca3188de581: - uuid: a9ed654a-a81b-4bfb-8f0e-0ca3188de581 - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.23_10_xl.yml b/conf/cmi/image.style.23_10_xl.yml deleted file mode 100644 index 50cfd074a9..0000000000 --- a/conf/cmi/image.style.23_10_xl.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: a7c2178b-96c4-46c4-810a-a0fb429918c0 -langcode: en -status: true -dependencies: - module: - - focal_point -_core: - default_config_hash: xAdLMPn-9nvS2YycaCDt9hCKd_9aPqBPaUde2mTr4Vs -name: 23_10_xl -label: 'DEPRECATED 2.3:1 XL' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 1920 - height: 835 - crop_type: focal_point diff --git a/conf/cmi/image.style.23_10_xl_2x.yml b/conf/cmi/image.style.23_10_xl_2x.yml deleted file mode 100644 index 26c0101ac9..0000000000 --- a/conf/cmi/image.style.23_10_xl_2x.yml +++ /dev/null @@ -1,26 +0,0 @@ -uuid: d0cbccf5-2afd-4fdd-ac58-b8511d80f626 -langcode: en -status: true -dependencies: - module: - - focal_point - - image_style_quality -_core: - default_config_hash: JdPQxpewkFGZBMg-RN0ZrKzptvf-GDvkC4mQub69CjY -name: 23_10_xl_2x -label: 'DEPRECATED 2.3:1 XL (2x)' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 3840 - height: 1670 - crop_type: focal_point - 4b95d242-03d3-43e7-b80b-80d660ed0a26: - uuid: 4b95d242-03d3-43e7-b80b-80d660ed0a26 - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.23_10_xs.yml b/conf/cmi/image.style.23_10_xs.yml deleted file mode 100644 index 850df92f16..0000000000 --- a/conf/cmi/image.style.23_10_xs.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: 80ed1443-0d3b-4955-a6d2-431a5a56969e -langcode: en -status: true -dependencies: - module: - - focal_point -_core: - default_config_hash: x8oJnGM5EKjuZHrgMhTchPkQe96BjR20gOsODlghON0 -name: 23_10_xs -label: 'DEPRECATED 2.3:1 XS' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 600 - height: 261 - crop_type: focal_point diff --git a/conf/cmi/image.style.23_10_xs_2x.yml b/conf/cmi/image.style.23_10_xs_2x.yml deleted file mode 100644 index b4f7062c35..0000000000 --- a/conf/cmi/image.style.23_10_xs_2x.yml +++ /dev/null @@ -1,26 +0,0 @@ -uuid: cb14714d-1204-49ab-b019-678ace8b2820 -langcode: en -status: true -dependencies: - module: - - focal_point - - image_style_quality -_core: - default_config_hash: AlwB0elwADW_CFogbAD03l-h4k0N-_cXnAX9Q3CKnUk -name: 23_10_xs_2x -label: 'DEPRECATED 2.3:1 XS (2x)' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 1200 - height: 522 - crop_type: focal_point - a9ed654a-a81b-4bfb-8f0e-0ca3188de581: - uuid: a9ed654a-a81b-4bfb-8f0e-0ca3188de581 - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.23_10_xxs.yml b/conf/cmi/image.style.23_10_xxs.yml deleted file mode 100644 index 7a72dcfa7d..0000000000 --- a/conf/cmi/image.style.23_10_xxs.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: 38bccc17-293c-403f-b649-77b9aa2ca8b5 -langcode: en -status: true -dependencies: - module: - - focal_point -_core: - default_config_hash: SZNOV7oU1JqYAyzaUTIE-pFiBli1Lhe0esIDYMl4WH8 -name: 23_10_xxs -label: 'DEPRECATED 2.3:1 XXS' -effects: - 6e091026-4f44-46e3-a4ac-aef3e6e3571b: - uuid: 6e091026-4f44-46e3-a4ac-aef3e6e3571b - id: focal_point_scale_and_crop - weight: 1 - data: - width: 320 - height: 139 - crop_type: focal_point diff --git a/conf/cmi/image.style.23_10_xxs_2x.yml b/conf/cmi/image.style.23_10_xxs_2x.yml deleted file mode 100644 index fc6542aaa5..0000000000 --- a/conf/cmi/image.style.23_10_xxs_2x.yml +++ /dev/null @@ -1,26 +0,0 @@ -uuid: fc667e10-2f36-4f02-b16b-fdb0e00d26a6 -langcode: en -status: true -dependencies: - module: - - focal_point - - image_style_quality -_core: - default_config_hash: u0nuaLiRyJSEFoe94tacyJbONK8cP6NI907ZqrUQyaM -name: 23_10_xxs_2x -label: 'DEPRECATED 2.3:1 XXS (2X)' -effects: - a9f4372f-0393-406a-b2e9-c388fd1374f1: - uuid: a9f4372f-0393-406a-b2e9-c388fd1374f1 - id: focal_point_scale_and_crop - weight: 1 - data: - width: 640 - height: 278 - crop_type: focal_point - 6c4d1aca-1b29-495e-8d33-cf39504feb5a: - uuid: 6c4d1aca-1b29-495e-8d33-cf39504feb5a - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.3_2_l.yml b/conf/cmi/image.style.3_2_l.yml deleted file mode 100644 index 93f9431f1e..0000000000 --- a/conf/cmi/image.style.3_2_l.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: bcc1c37a-8641-4c62-9b6c-30e8bab090f4 -langcode: en -status: true -dependencies: - module: - - focal_point -_core: - default_config_hash: mCB-_azbdKbZEl3q12J2Po4QXx_6tu1Ba_29FRNVc2E -name: 3_2_l -label: 'DEPRECATED 3:2 L' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 1440 - height: 960 - crop_type: focal_point diff --git a/conf/cmi/image.style.3_2_l_2x.yml b/conf/cmi/image.style.3_2_l_2x.yml deleted file mode 100644 index f336ff0794..0000000000 --- a/conf/cmi/image.style.3_2_l_2x.yml +++ /dev/null @@ -1,26 +0,0 @@ -uuid: 2678b903-07bc-4b76-aef0-bb8a1f2a1fed -langcode: en -status: true -dependencies: - module: - - focal_point - - image_style_quality -_core: - default_config_hash: qCqH9ADpP75ngfGEbTMCR-YQ14qvlYhWN0zjfg6au2g -name: 3_2_l_2x -label: 'DEPRECATED 3:2 L (2x)' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 2880 - height: 1920 - crop_type: focal_point - a9ed654a-a81b-4bfb-8f0e-0ca3188de581: - uuid: a9ed654a-a81b-4bfb-8f0e-0ca3188de581 - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.3_2_m.yml b/conf/cmi/image.style.3_2_m.yml deleted file mode 100644 index 25495275a5..0000000000 --- a/conf/cmi/image.style.3_2_m.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: cbf4566e-2050-4edd-a532-94e3483a3b97 -langcode: en -status: true -dependencies: - module: - - focal_point -_core: - default_config_hash: MWSSvcBWyvp3LLDB9JU6qSePQNfAslsVSihgjVCNFtw -name: 3_2_m -label: 'DEPRECATED 3:2 M' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 1024 - height: 683 - crop_type: focal_point diff --git a/conf/cmi/image.style.3_2_m_2x.yml b/conf/cmi/image.style.3_2_m_2x.yml deleted file mode 100644 index d5b85e0e3a..0000000000 --- a/conf/cmi/image.style.3_2_m_2x.yml +++ /dev/null @@ -1,26 +0,0 @@ -uuid: 2a4f4b65-106f-49a8-be47-5f679d30dff4 -langcode: en -status: true -dependencies: - module: - - focal_point - - image_style_quality -_core: - default_config_hash: _LxtEmPdCIfKsiRMHfh1HKNHa9-Hd559xJIB3foAAjw -name: 3_2_m_2x -label: 'DEPRECATED 3:2 M (2x)' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 2048 - height: 1366 - crop_type: focal_point - a9ed654a-a81b-4bfb-8f0e-0ca3188de581: - uuid: a9ed654a-a81b-4bfb-8f0e-0ca3188de581 - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.3_2_s.yml b/conf/cmi/image.style.3_2_s.yml deleted file mode 100644 index 2e1b830213..0000000000 --- a/conf/cmi/image.style.3_2_s.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: d54828a4-c42d-473e-8c15-cf9ae642787f -langcode: en -status: true -dependencies: - module: - - focal_point -_core: - default_config_hash: f95FWRTLQHHlFyXCrzbf5SOAcTB0tis3mGItiruimbo -name: 3_2_s -label: 'DEPRECATED 3:2 S' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 800 - height: 533 - crop_type: focal_point diff --git a/conf/cmi/image.style.3_2_s_2x.yml b/conf/cmi/image.style.3_2_s_2x.yml deleted file mode 100644 index 0bb6c10bc9..0000000000 --- a/conf/cmi/image.style.3_2_s_2x.yml +++ /dev/null @@ -1,26 +0,0 @@ -uuid: 41a378ad-d6f1-4116-bedb-a06a882c8637 -langcode: en -status: true -dependencies: - module: - - focal_point - - image_style_quality -_core: - default_config_hash: xOxIfe8q5DEbvGmk0lSYGGrpGR6WWfqEQmNqKaDY0h0 -name: 3_2_s_2x -label: 'DEPRECATED 3:2 S (2x)' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 1600 - height: 1066 - crop_type: focal_point - a9ed654a-a81b-4bfb-8f0e-0ca3188de581: - uuid: a9ed654a-a81b-4bfb-8f0e-0ca3188de581 - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.3_2_xl.yml b/conf/cmi/image.style.3_2_xl.yml deleted file mode 100644 index e416c8b15b..0000000000 --- a/conf/cmi/image.style.3_2_xl.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: 7dee8ae3-ca0a-421d-bb96-992064b41cad -langcode: en -status: true -dependencies: - module: - - focal_point -_core: - default_config_hash: c9SAUvH9mq34hLv0rzhGazsBwBKwOgQ-JeQSi9dVyIM -name: 3_2_xl -label: 'DEPRECATED 3:2 XL' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 1920 - height: 1280 - crop_type: focal_point diff --git a/conf/cmi/image.style.3_2_xl_2x.yml b/conf/cmi/image.style.3_2_xl_2x.yml deleted file mode 100644 index c96ce495c5..0000000000 --- a/conf/cmi/image.style.3_2_xl_2x.yml +++ /dev/null @@ -1,26 +0,0 @@ -uuid: 25add200-a6de-4bd3-ac0e-91ed71332f58 -langcode: en -status: true -dependencies: - module: - - focal_point - - image_style_quality -_core: - default_config_hash: l8RzyKtYmcc2og42ZwwiwItanbICJ4DEUpHy9oZr4eg -name: 3_2_xl_2x -label: 'DEPRECATED 3:2 XL (2x)' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 3840 - height: 2560 - crop_type: focal_point - 4b95d242-03d3-43e7-b80b-80d660ed0a26: - uuid: 4b95d242-03d3-43e7-b80b-80d660ed0a26 - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.3_2_xs.yml b/conf/cmi/image.style.3_2_xs.yml deleted file mode 100644 index a8be5913a4..0000000000 --- a/conf/cmi/image.style.3_2_xs.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: 2e19356c-7eaa-476f-9bf4-96ee559dc225 -langcode: en -status: true -dependencies: - module: - - focal_point -_core: - default_config_hash: G1bouWmwoQe4oBVudz5IJGm4m0u7e9ISnRBE9qSwCrw -name: 3_2_xs -label: 'DEPRECATED 3:2 XS' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 600 - height: 400 - crop_type: focal_point diff --git a/conf/cmi/image.style.3_2_xs_2x.yml b/conf/cmi/image.style.3_2_xs_2x.yml deleted file mode 100644 index 419a95e636..0000000000 --- a/conf/cmi/image.style.3_2_xs_2x.yml +++ /dev/null @@ -1,26 +0,0 @@ -uuid: a97b3478-50f4-48ce-acb5-ecfccafc1d05 -langcode: en -status: true -dependencies: - module: - - focal_point - - image_style_quality -_core: - default_config_hash: eh5eGlRyMThZUB4jxxirXGYBOV6z3ffp11KnOTvus20 -name: 3_2_xs_2x -label: 'DEPRECATED 3:2 XS (2x)' -effects: - e7da735e-aa35-463b-b99a-b61aba89a53f: - uuid: e7da735e-aa35-463b-b99a-b61aba89a53f - id: focal_point_scale_and_crop - weight: 1 - data: - width: 1200 - height: 800 - crop_type: focal_point - a9ed654a-a81b-4bfb-8f0e-0ca3188de581: - uuid: a9ed654a-a81b-4bfb-8f0e-0ca3188de581 - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.3_2_xxs.yml b/conf/cmi/image.style.3_2_xxs.yml deleted file mode 100644 index cc0aa74055..0000000000 --- a/conf/cmi/image.style.3_2_xxs.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: 29b61169-6893-4a0b-b42c-4c84ae7ad117 -langcode: en -status: true -dependencies: - module: - - focal_point -_core: - default_config_hash: BkiNb7zRaNx8r1nmi7i9A7XO4-mYyM69D6f9-CCLfSE -name: 3_2_xxs -label: 'DEPRECATED 3:2 XXS' -effects: - 6bc1f53e-970d-4a85-a1a0-c41af5f5834b: - uuid: 6bc1f53e-970d-4a85-a1a0-c41af5f5834b - id: focal_point_scale_and_crop - weight: 1 - data: - width: 320 - height: 213 - crop_type: focal_point diff --git a/conf/cmi/image.style.3_2_xxs_2x.yml b/conf/cmi/image.style.3_2_xxs_2x.yml deleted file mode 100644 index 4a488cc233..0000000000 --- a/conf/cmi/image.style.3_2_xxs_2x.yml +++ /dev/null @@ -1,26 +0,0 @@ -uuid: 15129f3f-2a25-43e3-9296-6fcefaa18658 -langcode: en -status: true -dependencies: - module: - - focal_point - - image_style_quality -_core: - default_config_hash: ZnqeK9nLlCVfJ5xi7b3p0cNpgl4y9qVIvaC4Jy4e46Q -name: 3_2_xxs_2x -label: 'DEPRECATED 3:2 XXS (2x)' -effects: - 04ed67a0-ed4c-4b01-b5be-cee1205f62d8: - uuid: 04ed67a0-ed4c-4b01-b5be-cee1205f62d8 - id: focal_point_scale_and_crop - weight: 1 - data: - width: 640 - height: 427 - crop_type: focal_point - e7aa43d0-465e-4fd2-b3bd-c5cfa976bdd0: - uuid: e7aa43d0-465e-4fd2-b3bd-c5cfa976bdd0 - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.og_image.yml b/conf/cmi/image.style.og_image.yml deleted file mode 100644 index 3eba5d3c83..0000000000 --- a/conf/cmi/image.style.og_image.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: f64a6e49-5abe-439a-bad9-5720ca3f866a -langcode: en -status: true -dependencies: - module: - - focal_point -_core: - default_config_hash: tzqBusTR7kqzGRAxAUVc29eKHcm3CieZaMfFEKSHo3o -name: og_image -label: 'DEPRECATED OG Image' -effects: - 828a0b3f-55e7-4534-9248-c3e02c1fd93c: - uuid: 828a0b3f-55e7-4534-9248-c3e02c1fd93c - id: focal_point_scale_and_crop - weight: 1 - data: - width: 1200 - height: 630 - crop_type: focal_point diff --git a/conf/cmi/image.style.original_l.yml b/conf/cmi/image.style.original_l.yml deleted file mode 100644 index e045d5931f..0000000000 --- a/conf/cmi/image.style.original_l.yml +++ /dev/null @@ -1,17 +0,0 @@ -uuid: bf3f9bd5-b22f-4bc7-b86a-e006419a76b4 -langcode: en -status: true -dependencies: { } -_core: - default_config_hash: o0gzx8TBc00cT43OAP4wfbuE8qkxiejrnkxP7GurMvE -name: original_l -label: 'DEPRECATED Original L' -effects: - 0c465a35-1ef2-4e25-b6a9-30b461a5f89d: - uuid: 0c465a35-1ef2-4e25-b6a9-30b461a5f89d - id: image_scale - weight: 1 - data: - width: 1200 - height: null - upscale: true diff --git a/conf/cmi/image.style.original_l_2x.yml b/conf/cmi/image.style.original_l_2x.yml deleted file mode 100644 index 22a05c4560..0000000000 --- a/conf/cmi/image.style.original_l_2x.yml +++ /dev/null @@ -1,25 +0,0 @@ -uuid: 9474b5aa-74a7-4df9-a1fb-86e77bbc008b -langcode: en -status: true -dependencies: - module: - - image_style_quality -_core: - default_config_hash: z2bK6ewj3BFyYdJMWt8VwbL2VBdLfEGETXtm3R5LFdM -name: original_l_2x -label: 'DEPRECATED Original L (2x)' -effects: - 0249bded-7547-49ab-b241-4d6f8b6973f6: - uuid: 0249bded-7547-49ab-b241-4d6f8b6973f6 - id: image_scale - weight: 1 - data: - width: 2400 - height: null - upscale: true - b80b3bcc-ae09-4126-8c1d-af47b9390cf8: - uuid: b80b3bcc-ae09-4126-8c1d-af47b9390cf8 - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.original_m.yml b/conf/cmi/image.style.original_m.yml deleted file mode 100644 index 6fce106baf..0000000000 --- a/conf/cmi/image.style.original_m.yml +++ /dev/null @@ -1,17 +0,0 @@ -uuid: 07a4497e-c1a1-4f61-9ba0-c508b5aab7eb -langcode: en -status: true -dependencies: { } -_core: - default_config_hash: gLRqdI5DRlEyX5LTlZAHW9Yr8ZZ-Ghv6-3ttvpkm5L4 -name: original_m -label: 'DEPRECATED Original M' -effects: - d223a0ce-9eaa-472d-89ef-d1d82b407a66: - uuid: d223a0ce-9eaa-472d-89ef-d1d82b407a66 - id: image_scale - weight: 1 - data: - width: 943 - height: null - upscale: true diff --git a/conf/cmi/image.style.original_m_2x.yml b/conf/cmi/image.style.original_m_2x.yml deleted file mode 100644 index 7f77e81900..0000000000 --- a/conf/cmi/image.style.original_m_2x.yml +++ /dev/null @@ -1,25 +0,0 @@ -uuid: 29aab34f-75e8-49a3-9205-c0df50e36ade -langcode: en -status: true -dependencies: - module: - - image_style_quality -_core: - default_config_hash: Xm_4TTEYVFIIJ0DNY8sAqMrJKuN2Bjep97ZtJatKl_I -name: original_m_2x -label: 'DEPRECATED Original M (2x)' -effects: - 030a8bc9-6a90-44d4-b920-691c51ace740: - uuid: 030a8bc9-6a90-44d4-b920-691c51ace740 - id: image_scale - weight: 1 - data: - width: 1886 - height: null - upscale: true - 02e23d47-dd80-431b-a22e-a9799489208e: - uuid: 02e23d47-dd80-431b-a22e-a9799489208e - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.original_s.yml b/conf/cmi/image.style.original_s.yml deleted file mode 100644 index 5a452867e9..0000000000 --- a/conf/cmi/image.style.original_s.yml +++ /dev/null @@ -1,17 +0,0 @@ -uuid: 127e1ae3-e4a6-44cf-a1a2-1ce983c35a04 -langcode: en -status: true -dependencies: { } -_core: - default_config_hash: nL-s2QZQZ3pCCc6wJTMosBKAr33QkR-q-SO9tz4N3EY -name: original_s -label: 'DEPRECATED Original S' -effects: - 409c7a0a-40f8-4f01-a20d-28fce5e24ed1: - uuid: 409c7a0a-40f8-4f01-a20d-28fce5e24ed1 - id: image_scale - weight: 1 - data: - width: 768 - height: null - upscale: true diff --git a/conf/cmi/image.style.original_s_2x.yml b/conf/cmi/image.style.original_s_2x.yml deleted file mode 100644 index bfd3351ee7..0000000000 --- a/conf/cmi/image.style.original_s_2x.yml +++ /dev/null @@ -1,25 +0,0 @@ -uuid: deae7f53-7b76-4a0f-9c25-d76d278ba380 -langcode: en -status: true -dependencies: - module: - - image_style_quality -_core: - default_config_hash: dfvLCqw-WiM77oh4k8aFLcafVRpcQo7n1W18U1o_A-0 -name: original_s_2x -label: 'DEPRECATED Original S (2x)' -effects: - 4a8a2af8-c602-444e-9d0d-9ae25bdc428a: - uuid: 4a8a2af8-c602-444e-9d0d-9ae25bdc428a - id: image_scale - weight: 1 - data: - width: 1535 - height: null - upscale: true - 9dc8ae09-bca0-4c20-81ce-3324078d1084: - uuid: 9dc8ae09-bca0-4c20-81ce-3324078d1084 - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.original_xs.yml b/conf/cmi/image.style.original_xs.yml deleted file mode 100644 index 686a8cda1e..0000000000 --- a/conf/cmi/image.style.original_xs.yml +++ /dev/null @@ -1,17 +0,0 @@ -uuid: 251c398d-224a-4f66-b0f8-10ddcdeff595 -langcode: en -status: true -dependencies: { } -_core: - default_config_hash: pejkyjy-mAWXj-wnRX5-oiyggwjFNqqvllnUze4hANQ -name: original_xs -label: 'DEPRECATED Original XS' -effects: - 41feb5a7-5a5f-432f-a6f4-ef53ae096713: - uuid: 41feb5a7-5a5f-432f-a6f4-ef53ae096713 - id: image_scale - weight: 1 - data: - width: 576 - height: null - upscale: true diff --git a/conf/cmi/image.style.original_xs_2x.yml b/conf/cmi/image.style.original_xs_2x.yml deleted file mode 100644 index fb6f00580d..0000000000 --- a/conf/cmi/image.style.original_xs_2x.yml +++ /dev/null @@ -1,25 +0,0 @@ -uuid: ae7a331f-0251-4fc3-bce7-e0fc1367dc60 -langcode: en -status: true -dependencies: - module: - - image_style_quality -_core: - default_config_hash: cu83L0yj3sxDuTG67RCPj0HaRumkXeWWaHB96Z6KOhE -name: original_xs_2x -label: 'DEPRECATED Original XS (2x)' -effects: - a3a2adef-0ea9-4dc0-93bc-f9e1bb2a2545: - uuid: a3a2adef-0ea9-4dc0-93bc-f9e1bb2a2545 - id: image_scale - weight: 1 - data: - width: 1152 - height: null - upscale: true - 1d56f6dd-eff0-4213-95ea-6304b0dddb20: - uuid: 1d56f6dd-eff0-4213-95ea-6304b0dddb20 - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.original_xxs.yml b/conf/cmi/image.style.original_xxs.yml deleted file mode 100644 index 75a81d6c2d..0000000000 --- a/conf/cmi/image.style.original_xxs.yml +++ /dev/null @@ -1,17 +0,0 @@ -uuid: 335914fc-11fa-4192-9b17-c481a5b3a3e0 -langcode: en -status: true -dependencies: { } -_core: - default_config_hash: LGExzJfpNZgHRCUCrbNKqujefGFdSNI2C-UKoAwyOwo -name: original_xxs -label: 'DEPRECATED Original XXS' -effects: - 414ab756-ad1e-443d-9818-065d764efefc: - uuid: 414ab756-ad1e-443d-9818-065d764efefc - id: image_scale - weight: 1 - data: - width: 320 - height: null - upscale: true diff --git a/conf/cmi/image.style.original_xxs_2x.yml b/conf/cmi/image.style.original_xxs_2x.yml deleted file mode 100644 index 0ae726362a..0000000000 --- a/conf/cmi/image.style.original_xxs_2x.yml +++ /dev/null @@ -1,25 +0,0 @@ -uuid: 56d017d7-2d51-4a6d-aa38-774b489092cd -langcode: en -status: true -dependencies: - module: - - image_style_quality -_core: - default_config_hash: 0XCAQyIB-BdC_FJ1DOCbF-sGhyyicytlE1C352hDmOA -name: original_xxs_2x -label: 'DEPRECATED Original XXS (2x)' -effects: - c96a6172-5713-4b5c-ab12-fe821d715ddb: - uuid: c96a6172-5713-4b5c-ab12-fe821d715ddb - id: image_scale - weight: 1 - data: - width: 640 - height: null - upscale: true - ad88bb2e-9122-43b0-aa76-8b8a463e8a27: - uuid: ad88bb2e-9122-43b0-aa76-8b8a463e8a27 - id: image_style_quality - weight: 2 - data: - quality: 65 diff --git a/conf/cmi/image.style.tiny_square_image.yml b/conf/cmi/image.style.tiny_square_image.yml deleted file mode 100644 index b3c16b5d82..0000000000 --- a/conf/cmi/image.style.tiny_square_image.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: b6ba1af1-c5e5-4920-83be-6a27f634f791 -langcode: en -status: true -dependencies: - module: - - focal_point -_core: - default_config_hash: 3AlHxoqoyMbZsKPAC0EZwyn-mbA_92f7YZ0KXeUoRu0 -name: tiny_square_image -label: 'DEPRECATED Tiny Square Image (200x200)' -effects: - c3a0bc95-5d64-4f1e-a46e-dd25f6787fd7: - uuid: c3a0bc95-5d64-4f1e-a46e-dd25f6787fd7 - id: focal_point_scale_and_crop - weight: 1 - data: - width: 200 - height: 200 - crop_type: focal_point diff --git a/conf/cmi/language/fi/field.field.paragraph.accordion_item.field_icon.yml b/conf/cmi/language/fi/field.field.paragraph.accordion_item.field_icon.yml index 7086096ce1..745b24747e 100644 --- a/conf/cmi/language/fi/field.field.paragraph.accordion_item.field_icon.yml +++ b/conf/cmi/language/fi/field.field.paragraph.accordion_item.field_icon.yml @@ -1 +1 @@ -label: Icon +label: Ikoni diff --git a/conf/cmi/language/fi/field.field.paragraph.banner.field_icon.yml b/conf/cmi/language/fi/field.field.paragraph.banner.field_icon.yml index 7086096ce1..745b24747e 100644 --- a/conf/cmi/language/fi/field.field.paragraph.banner.field_icon.yml +++ b/conf/cmi/language/fi/field.field.paragraph.banner.field_icon.yml @@ -1 +1 @@ -label: Icon +label: Ikoni diff --git a/conf/cmi/language/fi/field.field.paragraph.social_media_link.field_icon.yml b/conf/cmi/language/fi/field.field.paragraph.social_media_link.field_icon.yml index 7086096ce1..745b24747e 100644 --- a/conf/cmi/language/fi/field.field.paragraph.social_media_link.field_icon.yml +++ b/conf/cmi/language/fi/field.field.paragraph.social_media_link.field_icon.yml @@ -1 +1 @@ -label: Icon +label: Ikoni diff --git a/conf/cmi/language/fi/social_media.settings.yml b/conf/cmi/language/fi/social_media.settings.yml index d11fd004d0..03084a95b5 100644 --- a/conf/cmi/language/fi/social_media.settings.yml +++ b/conf/cmi/language/fi/social_media.settings.yml @@ -1,7 +1,7 @@ social_media: facebook_share: text: 'Jaa Facebook-palvelussa' - api_url: 'http://www.facebook.com/share.php?u=[current-page:url]&title=[current-page:title]' + api_url: 'https://www.facebook.com/share.php?u=[current-page:url]&title=[current-page:title]' attributes: "target|_blank\r\nclass|facebook-share" linkedin: text: 'Jaa LinkedIn-palvelussa' diff --git a/conf/cmi/language/fi/views.view.helfi_redirect.yml b/conf/cmi/language/fi/views.view.helfi_redirect.yml new file mode 100644 index 0000000000..039970d491 --- /dev/null +++ b/conf/cmi/language/fi/views.view.helfi_redirect.yml @@ -0,0 +1,83 @@ +display: + default: + display_options: + filters: + status_code: + group_info: + group_items: + 1: + title: '300 Useita valintoja' + 2: + title: '301 Pysyvästi siirretty' + 3: + title: '302 Löydetty' + 4: + title: '303 Kts. toinen' + 5: + title: '304 Muuttamaton' + 6: + title: '305 Käytä proxyä' + 7: + title: '307 Tilapäinen uudelleenohjaus' + label: Tilakoodi + expose: + label: Tilakoodi + redirect_source__path: + expose: + label: Lähettäjä + redirect_redirect__uri: + expose: + label: Osoitteeseen + language: + expose: + label: 'Alkuperäinen kieli' + is_custom: + expose: + label: 'Käyttäjän luoma' + status: + expose: + label: Julkaistu + exposed_form: + options: + submit_button: Suodata + reset_button_label: Palauta + exposed_sorts_label: Lajittele + sort_asc_label: Nousevasti + sort_desc_label: Laskevasti + pager: + options: + expose: + items_per_page_label: 'Merkintöjä sivua kohti' + items_per_page_options_all_label: '- Kaikki -' + offset_label: Offset + tags: + previous: '‹ edellinen' + next: 'seuraava ›' + first: '« ensimmäinen' + last: 'viimeinen »' + fields: + redirect_bulk_form: + action_title: Valinnalla + redirect_source__path: + label: Lähettäjä + separator: ', ' + created: + label: Luotu + is_custom: + label: 'Käyttäjän luoma' + separator: ', ' + status: + label: Julkaistu + separator: ', ' + empty: + area_text_custom: + content: 'Ei ole vielä uudelleenohjaksia.' + title: Uudelleenohjaukset + display_title: Oletus + page_1: + display_title: Sivu + display_options: + menu: + title: Uudelleenohjaukset +label: Uudelleenohjaukset +description: Uudelleenohjaukset diff --git a/conf/cmi/language/fi/views.view.redirect.yml b/conf/cmi/language/fi/views.view.redirect.yml index ae5b2749a8..5fe15f09d0 100644 --- a/conf/cmi/language/fi/views.view.redirect.yml +++ b/conf/cmi/language/fi/views.view.redirect.yml @@ -54,8 +54,15 @@ display: title: '305 Käytä proxyä' 7: title: '307 Tilapäinen uudelleenohjaus' - title: Redirect + label: Tilakoodi + expose: + label: Tilakoodi + title: Uudelleenohjaukset + empty: + area_text_custom: + content: 'Ei ole vielä uudelleenohjaksia.' display_title: Oletus page_1: display_title: Sivu -label: Redirect +label: Uudelleenohjaukset +description: Uudelleenohjaukset diff --git a/conf/cmi/language/sv/field.field.paragraph.accordion_item.field_icon.yml b/conf/cmi/language/sv/field.field.paragraph.accordion_item.field_icon.yml index 7086096ce1..b03100137b 100644 --- a/conf/cmi/language/sv/field.field.paragraph.accordion_item.field_icon.yml +++ b/conf/cmi/language/sv/field.field.paragraph.accordion_item.field_icon.yml @@ -1 +1 @@ -label: Icon +label: Ikon diff --git a/conf/cmi/language/sv/field.field.paragraph.banner.field_icon.yml b/conf/cmi/language/sv/field.field.paragraph.banner.field_icon.yml index 7086096ce1..b03100137b 100644 --- a/conf/cmi/language/sv/field.field.paragraph.banner.field_icon.yml +++ b/conf/cmi/language/sv/field.field.paragraph.banner.field_icon.yml @@ -1 +1 @@ -label: Icon +label: Ikon diff --git a/conf/cmi/language/sv/field.field.paragraph.social_media_link.field_icon.yml b/conf/cmi/language/sv/field.field.paragraph.social_media_link.field_icon.yml index 7086096ce1..b03100137b 100644 --- a/conf/cmi/language/sv/field.field.paragraph.social_media_link.field_icon.yml +++ b/conf/cmi/language/sv/field.field.paragraph.social_media_link.field_icon.yml @@ -1 +1 @@ -label: Icon +label: Ikon diff --git a/conf/cmi/language/sv/social_media.settings.yml b/conf/cmi/language/sv/social_media.settings.yml index acf5a8f11c..ad76f7f206 100644 --- a/conf/cmi/language/sv/social_media.settings.yml +++ b/conf/cmi/language/sv/social_media.settings.yml @@ -1,7 +1,7 @@ social_media: facebook_share: text: 'Dela på Facebook' - api_url: 'http://www.facebook.com/share.php?u=[current-page:url]&title=[current-page:title]' + api_url: 'https://www.facebook.com/share.php?u=[current-page:url]&title=[current-page:title]' attributes: "target|_blank\r\nclass|facebook-share" linkedin: text: 'Dela på Linkedin' diff --git a/conf/cmi/language/sv/views.view.helfi_redirect.yml b/conf/cmi/language/sv/views.view.helfi_redirect.yml new file mode 100644 index 0000000000..395c055eac --- /dev/null +++ b/conf/cmi/language/sv/views.view.helfi_redirect.yml @@ -0,0 +1,83 @@ +label: Omdirigera +description: 'Lista över omdirigeringar' +display: + default: + display_title: Förvald + display_options: + title: Omdirigera + fields: + redirect_bulk_form: + action_title: 'Med urval' + redirect_source__path: + label: Från + separator: ', ' + is_custom: + label: Anpassad + separator: ', ' + status: + label: Publicerad + separator: ', ' + created: + label: Skapad + pager: + options: + tags: + next: 'nästa ›' + previous: '‹ föregående' + first: '« första' + last: 'sista »' + expose: + items_per_page_label: 'Inlägg per sida' + items_per_page_options_all_label: '- Alla -' + offset_label: Kompensera + exposed_form: + options: + submit_button: Filtrera + reset_button_label: Återställ + exposed_sorts_label: 'Sortera efter' + sort_asc_label: Stigande + sort_desc_label: Fallande + empty: + area_text_custom: + content: 'Det finns ingen omdirigering ännu.' + filters: + redirect_source__path: + expose: + label: Från + redirect_redirect__uri: + expose: + label: Till + status_code: + expose: + label: Statuskod + group_info: + label: Statuskod + group_items: + 1: + title: '300 Useita valintoja' + 2: + title: '301 Pysyvästi siirretty' + 3: + title: '302 Löydetty' + 4: + title: '303 Kts. toinen' + 5: + title: '304 Muuttamaton' + 6: + title: '305 Käytä proxyä' + 7: + title: '307 Tilapäinen uudelleenohjaus' + language: + expose: + label: Ursprungsspråk + is_custom: + expose: + label: Anpassad + status: + expose: + label: Publicerad + page_1: + display_title: Sida + display_options: + menu: + title: Omdirigera diff --git a/conf/cmi/paragraphs.paragraphs_type.accordion.yml b/conf/cmi/paragraphs.paragraphs_type.accordion.yml index 814af134cd..19c7400557 100644 --- a/conf/cmi/paragraphs.paragraphs_type.accordion.yml +++ b/conf/cmi/paragraphs.paragraphs_type.accordion.yml @@ -8,7 +8,7 @@ third_party_settings: paragraphs_library: allow_library_conversion: true _core: - default_config_hash: d9QHZSNb78KFueRqSVFC7_maG4KBNgjsPmLJIb2TN10 + default_config_hash: vES-HnW4QjvAjQCy5Ax4wt2ggnDoE4gNRQrS6LOHQrY id: accordion label: Accordion icon_uuid: null diff --git a/conf/cmi/paragraphs.paragraphs_type.accordion_item.yml b/conf/cmi/paragraphs.paragraphs_type.accordion_item.yml index eefa66e93b..7d016008c4 100644 --- a/conf/cmi/paragraphs.paragraphs_type.accordion_item.yml +++ b/conf/cmi/paragraphs.paragraphs_type.accordion_item.yml @@ -6,7 +6,7 @@ dependencies: config: - paragraphs.paragraphs_type.accordion _core: - default_config_hash: 3_2UxgHC3d_rUCxJsaSL4ynVsWjXtTwRlrvBotSkiWg + default_config_hash: 6q_i214TRzdynGv7ESHDBPmtLt4sz3K5dJGbXy7Suik id: accordion_item label: 'Accordion item' icon_uuid: null diff --git a/conf/cmi/responsive_image.styles.gallery_thumbnail.yml b/conf/cmi/responsive_image.styles.gallery_thumbnail.yml deleted file mode 100644 index 67227c50bf..0000000000 --- a/conf/cmi/responsive_image.styles.gallery_thumbnail.yml +++ /dev/null @@ -1,36 +0,0 @@ -uuid: b38d6260-9327-485d-9b2d-0ff00e02e4d6 -langcode: en -status: true -dependencies: - config: - - image.style.1_1_thumbnail - - image.style.1_1_thumbnail_2x - module: - - helfi_image_styles -_core: - default_config_hash: FZ-_wC1OLQNLznIQJEUA1-VJTDXBViLp3w989x3o3Y8 -id: gallery_thumbnail -label: 'DEPRECATED Gallery thumbnail' -image_style_mappings: - - - image_mapping_type: image_style - image_mapping: 1_1_thumbnail - breakpoint_id: helfi_image_styles.xs - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: 1_1_thumbnail - breakpoint_id: helfi_image_styles.xxs - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: 1_1_thumbnail_2x - breakpoint_id: helfi_image_styles.xs - multiplier: 2x - - - image_mapping_type: image_style - image_mapping: 1_1_thumbnail_2x - breakpoint_id: helfi_image_styles.xxs - multiplier: 2x -breakpoint_group: helfi_image_styles -fallback_image_style: 1_1_thumbnail diff --git a/conf/cmi/responsive_image.styles.hero__background.yml b/conf/cmi/responsive_image.styles.hero__background.yml deleted file mode 100644 index 386f19bcee..0000000000 --- a/conf/cmi/responsive_image.styles.hero__background.yml +++ /dev/null @@ -1,84 +0,0 @@ -uuid: 9b869846-6817-4f8d-bec0-a09d616d4700 -langcode: en -status: true -dependencies: - config: - - image.style.23_10_l - - image.style.23_10_l_2x - - image.style.23_10_m - - image.style.23_10_m_2x - - image.style.23_10_s - - image.style.23_10_s_2x - - image.style.23_10_xl - - image.style.23_10_xl_2x - - image.style.23_10_xs - - image.style.23_10_xs_2x - module: - - helfi_image_styles -_core: - default_config_hash: nwUJL1ss184iFX8lZsTUnUa9oLBCSGRCnKfsKN8xbOc -id: hero__background -label: 'DEPRECATED Hero Background' -image_style_mappings: - - - image_mapping_type: image_style - image_mapping: 23_10_xl - breakpoint_id: helfi_image_styles.xl - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: 23_10_xl_2x - breakpoint_id: helfi_image_styles.xl - multiplier: 2x - - - image_mapping_type: image_style - image_mapping: 23_10_l - breakpoint_id: helfi_image_styles.l - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: 23_10_l_2x - breakpoint_id: helfi_image_styles.l - multiplier: 2x - - - image_mapping_type: image_style - image_mapping: 23_10_m - breakpoint_id: helfi_image_styles.m - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: 23_10_m_2x - breakpoint_id: helfi_image_styles.m - multiplier: 2x - - - image_mapping_type: image_style - image_mapping: 23_10_s - breakpoint_id: helfi_image_styles.s - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: 23_10_s_2x - breakpoint_id: helfi_image_styles.s - multiplier: 2x - - - image_mapping_type: image_style - image_mapping: 23_10_xs - breakpoint_id: helfi_image_styles.xs - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: 23_10_xs - breakpoint_id: helfi_image_styles.xxs - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: 23_10_xs_2x - breakpoint_id: helfi_image_styles.xs - multiplier: 2x - - - image_mapping_type: image_style - image_mapping: 23_10_xs_2x - breakpoint_id: helfi_image_styles.xxs - multiplier: 2x -breakpoint_group: helfi_image_styles -fallback_image_style: 23_10_m diff --git a/conf/cmi/responsive_image.styles.image__3_2.yml b/conf/cmi/responsive_image.styles.image__3_2.yml deleted file mode 100644 index 1ceb57808e..0000000000 --- a/conf/cmi/responsive_image.styles.image__3_2.yml +++ /dev/null @@ -1,74 +0,0 @@ -uuid: d77f149d-48f0-4a6d-9805-cf025d9a1ad5 -langcode: en -status: true -dependencies: - config: - - image.style.3_2_l - - image.style.3_2_l_2x - - image.style.3_2_m - - image.style.3_2_m_2x - - image.style.3_2_s - - image.style.3_2_s_2x - - image.style.3_2_xs - - image.style.3_2_xs_2x - - image.style.3_2_xxs - - image.style.3_2_xxs_2x - module: - - helfi_image_styles -_core: - default_config_hash: acsIYWfNVn-MHuYr6vIhbyN7srjNLwkP2YCz11ioS98 -id: image__3_2 -label: 'DEPRECATED Image 3:2' -image_style_mappings: - - - image_mapping_type: image_style - image_mapping: 3_2_l - breakpoint_id: helfi_image_styles.l - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: 3_2_l_2x - breakpoint_id: helfi_image_styles.l - multiplier: 2x - - - image_mapping_type: image_style - image_mapping: 3_2_m - breakpoint_id: helfi_image_styles.m - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: 3_2_m_2x - breakpoint_id: helfi_image_styles.m - multiplier: 2x - - - image_mapping_type: image_style - image_mapping: 3_2_s - breakpoint_id: helfi_image_styles.s - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: 3_2_s_2x - breakpoint_id: helfi_image_styles.s - multiplier: 2x - - - image_mapping_type: image_style - image_mapping: 3_2_xs - breakpoint_id: helfi_image_styles.xs - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: 3_2_xxs - breakpoint_id: helfi_image_styles.xxs - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: 3_2_xs_2x - breakpoint_id: helfi_image_styles.xs - multiplier: 2x - - - image_mapping_type: image_style - image_mapping: 3_2_xxs_2x - breakpoint_id: helfi_image_styles.xxs - multiplier: 2x -breakpoint_group: helfi_image_styles -fallback_image_style: 3_2_m diff --git a/conf/cmi/responsive_image.styles.image__3_2_content_area.yml b/conf/cmi/responsive_image.styles.image__3_2_content_area.yml deleted file mode 100644 index a5dfbc3668..0000000000 --- a/conf/cmi/responsive_image.styles.image__3_2_content_area.yml +++ /dev/null @@ -1,62 +0,0 @@ -uuid: 56debd04-2bb4-4cdf-ad0c-6e670d11d948 -langcode: en -status: true -dependencies: - config: - - image.style.3_2_m - - image.style.3_2_m_2x - - image.style.3_2_s - - image.style.3_2_s_2x - - image.style.3_2_xs - - image.style.3_2_xs_2x - - image.style.3_2_xxs - - image.style.3_2_xxs_2x - module: - - helfi_image_styles -_core: - default_config_hash: pYO4LdGb6G7PBBJNZPQ88VDbKc_c_QmzNBkVwxYSwBg -id: image__3_2_content_area -label: 'DEPRECATED Image 3:2 (content area)' -image_style_mappings: - - - image_mapping_type: image_style - image_mapping: 3_2_m - breakpoint_id: helfi_image_styles.m - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: 3_2_m_2x - breakpoint_id: helfi_image_styles.m - multiplier: 2x - - - image_mapping_type: image_style - image_mapping: 3_2_s - breakpoint_id: helfi_image_styles.s - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: 3_2_s_2x - breakpoint_id: helfi_image_styles.s - multiplier: 2x - - - image_mapping_type: image_style - image_mapping: 3_2_xs - breakpoint_id: helfi_image_styles.xs - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: 3_2_xxs - breakpoint_id: helfi_image_styles.xxs - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: 3_2_xs_2x - breakpoint_id: helfi_image_styles.xs - multiplier: 2x - - - image_mapping_type: image_style - image_mapping: 3_2_xxs_2x - breakpoint_id: helfi_image_styles.xxs - multiplier: 2x -breakpoint_group: helfi_image_styles -fallback_image_style: 3_2_m diff --git a/conf/cmi/responsive_image.styles.list_of_links__thumbnail.yml b/conf/cmi/responsive_image.styles.list_of_links__thumbnail.yml deleted file mode 100644 index 4a39bb4224..0000000000 --- a/conf/cmi/responsive_image.styles.list_of_links__thumbnail.yml +++ /dev/null @@ -1,48 +0,0 @@ -uuid: 171240a5-1637-496d-8cae-c9158c898d72 -langcode: en -status: true -dependencies: - config: - - image.style.1_1_s - - image.style.1_1_s_2x - - image.style.1_1_xs - - image.style.1_1_xs_2x - module: - - helfi_image_styles -_core: - default_config_hash: sy7O7VeWv9Mim46mitLteOrjsrX-x7-RUMpC98qP8jA -id: list_of_links__thumbnail -label: 'DEPRECATED List of Links Thumbnail' -image_style_mappings: - - - image_mapping_type: image_style - image_mapping: 1_1_s - breakpoint_id: helfi_image_styles.s - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: 1_1_s_2x - breakpoint_id: helfi_image_styles.s - multiplier: 2x - - - image_mapping_type: image_style - image_mapping: 1_1_xs - breakpoint_id: helfi_image_styles.xs - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: 1_1_xs_2x - breakpoint_id: helfi_image_styles.xxs - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: 1_1_xs_2x - breakpoint_id: helfi_image_styles.xs - multiplier: 2x - - - image_mapping_type: image_style - image_mapping: 1_1_xs_2x - breakpoint_id: helfi_image_styles.xxs - multiplier: 2x -breakpoint_group: helfi_image_styles -fallback_image_style: 1_1_s diff --git a/conf/cmi/responsive_image.styles.original.yml b/conf/cmi/responsive_image.styles.original.yml deleted file mode 100644 index 0058c1e80a..0000000000 --- a/conf/cmi/responsive_image.styles.original.yml +++ /dev/null @@ -1,74 +0,0 @@ -uuid: cfc3525f-9be1-449f-8b60-c2a51d7e51e6 -langcode: en -status: true -dependencies: - config: - - image.style.original_l - - image.style.original_l_2x - - image.style.original_m - - image.style.original_m_2x - - image.style.original_s - - image.style.original_s_2x - - image.style.original_xs - - image.style.original_xs_2x - - image.style.original_xxs - - image.style.original_xxs_2x - module: - - helfi_image_styles -_core: - default_config_hash: x0r2QzNDWHXqyg7HGSzEHFBxCBm4wqYqaKZIMFrwAD8 -id: original -label: 'DEPRECATED Original' -image_style_mappings: - - - image_mapping_type: image_style - image_mapping: original_l - breakpoint_id: helfi_image_styles.l - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: original_l_2x - breakpoint_id: helfi_image_styles.l - multiplier: 2x - - - image_mapping_type: image_style - image_mapping: original_m - breakpoint_id: helfi_image_styles.m - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: original_m_2x - breakpoint_id: helfi_image_styles.m - multiplier: 2x - - - image_mapping_type: image_style - image_mapping: original_s - breakpoint_id: helfi_image_styles.s - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: original_s_2x - breakpoint_id: helfi_image_styles.s - multiplier: 2x - - - image_mapping_type: image_style - image_mapping: original_xs - breakpoint_id: helfi_image_styles.xs - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: original_xxs - breakpoint_id: helfi_image_styles.xxs - multiplier: 1x - - - image_mapping_type: image_style - image_mapping: original_xs_2x - breakpoint_id: helfi_image_styles.xs - multiplier: 2x - - - image_mapping_type: image_style - image_mapping: original_xxs_2x - breakpoint_id: helfi_image_styles.xxs - multiplier: 2x -breakpoint_group: helfi_image_styles -fallback_image_style: original_l diff --git a/conf/cmi/search_api.index.search_index.yml b/conf/cmi/search_api.index.search_index.yml index c40a85bb64..bac30cce36 100644 --- a/conf/cmi/search_api.index.search_index.yml +++ b/conf/cmi/search_api.index.search_index.yml @@ -3,6 +3,7 @@ langcode: en status: true dependencies: config: + - core.entity_view_mode.node.full - field.storage.node.field_application_continuous - field.storage.node.field_application_period - field.storage.node.field_avustuslaji @@ -14,10 +15,9 @@ dependencies: - field.storage.node.field_sidebar_content - field.storage.node.field_target_group - search_api.server.default_server - - core.entity_view_mode.node.full module: + - helfi_react_search - node - - search_api id: search_index name: 'Search index' description: '' diff --git a/conf/cmi/social_media.settings.yml b/conf/cmi/social_media.settings.yml index e0f7dbc190..34b4aae7f8 100644 --- a/conf/cmi/social_media.settings.yml +++ b/conf/cmi/social_media.settings.yml @@ -5,7 +5,7 @@ social_media: facebook_share: enable: 1 text: 'Share in Facebook' - api_url: 'http://www.facebook.com/share.php?u=[current-page:url]&title=[current-page:title]' + api_url: 'https://www.facebook.com/share.php?u=[current-page:url]&title=[current-page:title]' api_event: href default_img: 0 weight: 1 diff --git a/conf/cmi/views.view.er_tpr_unit.yml b/conf/cmi/views.view.er_tpr_unit.yml index 7bb6e44e2b..fb10e78a63 100644 --- a/conf/cmi/views.view.er_tpr_unit.yml +++ b/conf/cmi/views.view.er_tpr_unit.yml @@ -91,7 +91,6 @@ display: type: mini options: offset: 0 - pagination_heading_level: h4 items_per_page: 10 total_pages: null id: 0 @@ -106,6 +105,7 @@ display: items_per_page_options_all_label: '- All -' offset: false offset_label: Offset + pagination_heading_level: h4 exposed_form: type: basic options: diff --git a/conf/cmi/views.view.helfi_redirect.yml b/conf/cmi/views.view.helfi_redirect.yml new file mode 100644 index 0000000000..cb34781c61 --- /dev/null +++ b/conf/cmi/views.view.helfi_redirect.yml @@ -0,0 +1,871 @@ +uuid: bf25e83d-5e50-4476-a09f-b072a996e778 +langcode: en +status: true +dependencies: + config: + - system.menu.admin + module: + - link + - redirect + - user +_core: + default_config_hash: T8ZZY-2rwfH9QPXho30lLjOnPsWsLzhy6YGOTix228k +id: helfi_redirect +label: Redirect +module: views +description: 'List of redirects' +tag: '' +base_table: redirect +base_field: rid +display: + default: + id: default + display_title: Master + display_plugin: default + position: 0 + display_options: + title: Redirect + fields: + redirect_bulk_form: + id: redirect_bulk_form + table: redirect + field: redirect_bulk_form + relationship: none + group_type: group + admin_label: '' + entity_type: redirect + plugin_id: redirect_bulk_form + label: '' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + action_title: 'With selection' + include_exclude: exclude + selected_actions: { } + redirect_source__path: + id: redirect_source__path + table: redirect + field: redirect_source__path + relationship: none + group_type: group + admin_label: '' + entity_type: redirect + entity_field: redirect_source + plugin_id: field + label: From + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: path + type: redirect_source + settings: { } + group_column: '' + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + redirect_redirect__uri: + id: redirect_redirect__uri + table: redirect + field: redirect_redirect__uri + entity_type: redirect + entity_field: redirect_redirect + plugin_id: field + status_code: + id: status_code + table: redirect + field: status_code + entity_type: redirect + entity_field: status_code + plugin_id: field + is_custom: + id: is_custom + table: redirect + field: is_custom + relationship: none + group_type: group + admin_label: '' + entity_type: redirect + entity_field: is_custom + plugin_id: field + label: Custom + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: boolean + settings: + format: unicode-yes-no + format_custom_false: '' + format_custom_true: '' + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + status: + id: status + table: redirect + field: status + relationship: none + group_type: group + admin_label: '' + entity_type: redirect + entity_field: status + plugin_id: field + label: Published + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: boolean + settings: + format: default + format_custom_false: '' + format_custom_true: '' + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + language: + id: language + table: redirect + field: language + entity_type: redirect + entity_field: language + plugin_id: field + created: + id: created + table: redirect + field: created + relationship: none + group_type: group + admin_label: '' + entity_type: redirect + entity_field: created + plugin_id: date + label: Created + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + date_format: fallback + custom_date_format: '' + timezone: '' + operations: + id: operations + table: redirect + field: operations + entity_type: redirect + plugin_id: entity_operations + pager: + type: full + options: + offset: 0 + pagination_heading_level: h4 + items_per_page: 50 + total_pages: null + id: 0 + tags: + next: 'next ›' + previous: '‹ previous' + first: '« first' + last: 'last »' + expose: + items_per_page: false + items_per_page_label: 'Items per page' + items_per_page_options: '5, 10, 25, 50' + items_per_page_options_all: false + items_per_page_options_all_label: '- All -' + offset: false + offset_label: Offset + quantity: 9 + exposed_form: + type: basic + options: + submit_button: Filter + reset_button: true + reset_button_label: Reset + exposed_sorts_label: 'Sort by' + expose_sort_order: true + sort_asc_label: Asc + sort_desc_label: Desc + access: + type: perm + options: + perm: 'administer redirects' + cache: + type: tag + options: { } + empty: + area_text_custom: + id: area_text_custom + table: views + field: area_text_custom + relationship: none + group_type: group + admin_label: '' + plugin_id: text_custom + empty: true + content: 'There is no redirect yet.' + tokenize: false + sorts: { } + arguments: { } + filters: + redirect_source__path: + id: redirect_source__path + table: redirect + field: redirect_source__path + relationship: none + group_type: group + admin_label: '' + entity_type: redirect + entity_field: redirect_source + plugin_id: string + operator: contains + value: '' + group: 1 + exposed: true + expose: + operator_id: redirect_source__path_op + label: From + description: '' + use_operator: false + operator: redirect_source__path_op + operator_limit_selection: false + operator_list: { } + identifier: redirect_source__path + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + administrator: '0' + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + redirect_redirect__uri: + id: redirect_redirect__uri + table: redirect + field: redirect_redirect__uri + relationship: none + group_type: group + admin_label: '' + entity_type: redirect + entity_field: redirect_redirect + plugin_id: string + operator: contains + value: '' + group: 1 + exposed: true + expose: + operator_id: redirect_redirect__uri_op + label: To + description: '' + use_operator: false + operator: redirect_redirect__uri_op + operator_limit_selection: false + operator_list: { } + identifier: redirect_redirect__uri + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + administrator: '0' + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + status_code: + id: status_code + table: redirect + field: status_code + relationship: none + group_type: group + admin_label: '' + entity_type: redirect + entity_field: status_code + plugin_id: numeric + operator: '=' + value: + min: '' + max: '' + value: '' + group: 1 + exposed: true + expose: + operator_id: status_code_op + label: 'Status code' + description: '' + use_operator: false + operator: status_code_op + operator_limit_selection: false + operator_list: { } + identifier: status_code + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + administrator: '0' + is_grouped: true + group_info: + label: 'Status code' + description: '' + identifier: status_code + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: + 1: + title: '300 Multiple Choices' + operator: '=' + value: + min: '' + max: '' + value: '300' + 2: + title: '301 Moved Permanently' + operator: '=' + value: + min: '' + max: '' + value: '301' + 3: + title: '302 Found' + operator: '=' + value: + min: '' + max: '' + value: '302' + 4: + title: '303 See Other' + operator: '=' + value: + min: '' + max: '' + value: '303' + 5: + title: '304 Not Modified' + operator: '=' + value: + min: '' + max: '' + value: '304' + 6: + title: '305 Use Proxy' + operator: '=' + value: + min: '' + max: '' + value: '305' + 7: + title: '307 Temporary Redirect' + operator: '=' + value: + min: '' + max: '' + value: '307' + language: + id: language + table: redirect + field: language + relationship: none + group_type: group + admin_label: '' + entity_type: redirect + entity_field: language + plugin_id: language + operator: in + value: { } + group: 1 + exposed: true + expose: + operator_id: language_op + label: 'Original language' + description: '' + use_operator: false + operator: language_op + operator_limit_selection: false + operator_list: { } + identifier: language + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + administrator: '0' + reduce: false + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + is_custom: + id: is_custom + table: redirect + field: is_custom + relationship: none + group_type: group + admin_label: '' + entity_type: redirect + entity_field: is_custom + plugin_id: boolean + operator: '=' + value: All + group: 1 + exposed: true + expose: + operator_id: '' + label: Custom + description: '' + use_operator: false + operator: is_custom_op + operator_limit_selection: false + operator_list: { } + identifier: is_custom + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + read_only: '0' + content_producer: '0' + editor: '0' + admin: '0' + menu_api: '0' + super_administrator: '0' + news_producer: '0' + survey_editor: '0' + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + status: + id: status + table: redirect + field: status + relationship: none + group_type: group + admin_label: '' + entity_type: redirect + entity_field: status + plugin_id: boolean + operator: '=' + value: '1' + group: 1 + exposed: true + expose: + operator_id: '' + label: Published + description: '' + use_operator: false + operator: status_op + operator_limit_selection: false + operator_list: { } + identifier: status + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + read_only: '0' + content_producer: '0' + editor: '0' + admin: '0' + menu_api: '0' + super_administrator: '0' + news_producer: '0' + survey_editor: '0' + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + filter_groups: + operator: AND + groups: + 1: AND + style: + type: table + options: + grouping: { } + row_class: '' + default_row_class: true + columns: + redirect_bulk_form: redirect_bulk_form + redirect_source__path: redirect_source__path + redirect_redirect__uri: redirect_redirect__uri + status_code: status_code + is_custom: is_custom + status: status + language: language + created: created + operations: operations + default: created + info: + redirect_bulk_form: + align: '' + separator: '' + empty_column: false + responsive: '' + redirect_source__path: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + redirect_redirect__uri: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + status_code: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + is_custom: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + status: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + language: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + created: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + operations: + align: '' + separator: '' + empty_column: false + responsive: '' + override: true + sticky: false + summary: '' + empty_table: false + caption: '' + description: '' + row: + type: fields + query: + type: views_query + options: + query_comment: '' + disable_sql_rewrite: false + distinct: false + replica: false + query_tags: { } + relationships: { } + header: { } + footer: { } + display_extenders: { } + cache_metadata: + max-age: 0 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - url + - url.query_args + - user.permissions + tags: { } + cacheable: false + page_1: + id: page_1 + display_title: Page + display_plugin: page + position: 1 + display_options: + display_extenders: { } + path: admin/config/search/redirect + menu: + type: normal + title: Redirect + description: '' + weight: 0 + expanded: false + menu_name: admin + parent: hdbt_admin_tools.overview + context: '0' + cache_metadata: + max-age: 0 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - url + - url.query_args + - user.permissions + tags: { } + cacheable: false diff --git a/conf/cmi/views.view.locked_services.yml b/conf/cmi/views.view.locked_services.yml index 5dc4705afc..5bfd2f4fff 100644 --- a/conf/cmi/views.view.locked_services.yml +++ b/conf/cmi/views.view.locked_services.yml @@ -381,7 +381,6 @@ display: type: full options: offset: 0 - pagination_heading_level: h4 items_per_page: 50 total_pages: null id: 0 @@ -399,6 +398,7 @@ display: offset: false offset_label: Offset quantity: 9 + pagination_heading_level: h4 exposed_form: type: basic options: diff --git a/conf/cmi/views.view.locked_units.yml b/conf/cmi/views.view.locked_units.yml index 8c49c99a30..34b40e43be 100644 --- a/conf/cmi/views.view.locked_units.yml +++ b/conf/cmi/views.view.locked_units.yml @@ -381,7 +381,6 @@ display: type: full options: offset: 0 - pagination_heading_level: h4 items_per_page: 50 total_pages: null id: 0 @@ -399,6 +398,7 @@ display: offset: false offset_label: Offset quantity: 9 + pagination_heading_level: h4 exposed_form: type: basic options: diff --git a/conf/cmi/views.view.redirect.yml b/conf/cmi/views.view.redirect.yml index 3e9bd7465f..47c1abe1b6 100644 --- a/conf/cmi/views.view.redirect.yml +++ b/conf/cmi/views.view.redirect.yml @@ -1,6 +1,6 @@ uuid: cbcc1235-9ad3-4915-b414-2508f124189a langcode: en -status: true +status: false dependencies: module: - link diff --git a/conf/cmi/views.view.service_list.yml b/conf/cmi/views.view.service_list.yml index 661c8cc9c0..e6b26601bd 100644 --- a/conf/cmi/views.view.service_list.yml +++ b/conf/cmi/views.view.service_list.yml @@ -109,7 +109,6 @@ display: type: full options: offset: 0 - pagination_heading_level: h4 items_per_page: 4 total_pages: null id: 0 @@ -127,6 +126,7 @@ display: offset: false offset_label: Offset quantity: 9 + pagination_heading_level: h4 exposed_form: type: basic options: @@ -646,7 +646,6 @@ display: type: full options: offset: 0 - pagination_heading_level: h4 items_per_page: 5 total_pages: null id: 0 @@ -664,6 +663,7 @@ display: offset: false offset_label: Offset quantity: 9 + pagination_heading_level: h4 exposed_form: type: basic options: diff --git a/conf/cmi/views.view.service_units.yml b/conf/cmi/views.view.service_units.yml index 14bfa16b4b..89e30dfd67 100644 --- a/conf/cmi/views.view.service_units.yml +++ b/conf/cmi/views.view.service_units.yml @@ -93,7 +93,6 @@ display: type: full options: offset: 0 - pagination_heading_level: h4 items_per_page: 8 total_pages: null id: 0 @@ -111,6 +110,7 @@ display: offset: false offset_label: Offset quantity: 9 + pagination_heading_level: h4 exposed_form: type: basic options: diff --git a/conf/cmi/views.view.unit_search.yml b/conf/cmi/views.view.unit_search.yml index c10b4f6282..5dd254a1de 100644 --- a/conf/cmi/views.view.unit_search.yml +++ b/conf/cmi/views.view.unit_search.yml @@ -286,7 +286,6 @@ display: type: full options: offset: 0 - pagination_heading_level: h4 items_per_page: 15 total_pages: null id: 0 @@ -304,6 +303,7 @@ display: offset: false offset_label: Offset quantity: 9 + pagination_heading_level: h4 exposed_form: type: basic options: diff --git a/docker/openshift/crons/menu-queue.sh b/docker/openshift/crons/menu-queue.sh new file mode 100644 index 0000000000..348b6ab346 --- /dev/null +++ b/docker/openshift/crons/menu-queue.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +#source /init.sh +# +#if [ -z "$AMQ_BROKERS" ]; then +# exit 0 +#fi +# +#if ! is_drupal_module_enabled "helfi_navigation"; then +# exit 0 +#fi +# +#while true +#do +# # Restart process every 12 hours. +# drush stomp:worker helfi_navigation_menu_queue --lease-time 43200 +#done diff --git a/docker/openshift/crons/revision-queue.sh b/docker/openshift/crons/revision-queue.sh new file mode 100644 index 0000000000..15e8cc1588 --- /dev/null +++ b/docker/openshift/crons/revision-queue.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +#if [ -z "$AMQ_BROKERS" ]; then +# exit 0 +#fi +# +#while true +#do +# # Restart process every 12 hours. +# drush stomp:worker helfi_api_base_revision --lease-time 43200 +#done diff --git a/public/sites/default/settings.php b/public/sites/default/settings.php index 2f8d1e8e87..b68b80aa9d 100644 --- a/public/sites/default/settings.php +++ b/public/sites/default/settings.php @@ -260,24 +260,18 @@ function drupal_get_env(string|array $variables) : mixed { $config['helfi_proxy.settings']['session_suffix'] = $session_suffix; } -if ($robots_header_enabled = getenv('DRUPAL_X_ROBOTS_TAG_HEADER')) { - $config['helfi_proxy.settings']['robots_header_enabled'] = (bool) $robots_header_enabled; -} - -$artemis_destination = drupal_get_env([ - 'ARTEMIS_DESTINATION', +$amq_destination = drupal_get_env([ 'PROJECT_NAME', ]); +$amq_brokers = getenv('AMQ_BROKERS'); -$artemis_brokers = getenv('ARTEMIS_BROKERS'); - -if ($artemis_brokers && $artemis_destination) { +if ($amq_brokers && $amq_destination) { $settings['stomp']['default'] = [ - 'clientId' => getenv('ARTEMIS_CLIENT_ID') ?: 'artemis', - 'login' => getenv('ARTEMIS_LOGIN') ?: NULL, - 'passcode' => getenv('ARTEMIS_PASSCODE') ?: NULL, - 'destination' => sprintf('/queue/%s', $artemis_destination), - 'brokers' => $artemis_brokers, + 'clientId' => getenv('AMQ_CLIENT_ID') ?: 'client_ ' . $amq_destination, + 'login' => getenv('AMQ_USER') ?: NULL, + 'passcode' => getenv('AMQ_PASSWORD') ?: NULL, + 'destination' => sprintf('/queue/%s', $amq_destination), + 'brokers' => $amq_brokers, 'timeout' => ['read' => 12000], 'heartbeat' => [ 'send' => 20000, @@ -289,7 +283,17 @@ function drupal_get_env(string|array $variables) : mixed { ], ], ]; - $settings['queue_default'] = 'queue.stomp.default'; + + $queues = [ + 'helfi_navigation_menu_queue', + 'helfi_api_base_revision', + ]; + foreach ($queues as $queue) { + // $settings['queue_service_' . $queue] = 'queue.stomp.default'; + } + // You must configure project specific queues manually in 'all.settings.php' + // file. + // @see https://github.com/City-of-Helsinki/drupal-helfi-platform/blob/main/documentation/queue.md } $config['filelog.settings']['rotation']['schedule'] = 'never'; @@ -355,6 +359,27 @@ function drupal_get_env(string|array $variables) : mixed { 'additionalFiles' => [], ]; +// Elasticsearch server config. +if (getenv('ELASTICSEARCH_URL')) { + $config['search_api.server.default']['backend_config']['connector_config']['url'] = getenv('ELASTICSEARCH_URL'); + + if (getenv('ELASTIC_USER') && getenv('ELASTIC_PASSWORD')) { + $config['search_api.server.default']['backend_config']['connector'] = 'helfi_connector'; + $config['search_api.server.default']['backend_config']['connector_config']['username'] = getenv('ELASTIC_USER'); + $config['search_api.server.default']['backend_config']['connector_config']['password'] = getenv('ELASTIC_PASSWORD'); + } +} + + +// Supported values: https://github.com/Seldaek/monolog/blob/main/doc/01-usage.md#log-levels. +$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; +} + // Environment specific overrides. if (file_exists(__DIR__ . '/all.settings.php')) { // phpcs:ignore @@ -385,15 +410,6 @@ function drupal_get_env(string|array $variables) : mixed { } } -// Supported values: https://github.com/Seldaek/monolog/blob/main/doc/01-usage.md#log-levels. -$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/tools/make/override.mk b/tools/make/override.mk index 6f4a034bdc..df8baac5e3 100644 --- a/tools/make/override.mk +++ b/tools/make/override.mk @@ -1,4 +1,3 @@ # Docker CLI container CLI_SERVICE=app -CLI_USER=druid CLI_SHELL=bash diff --git a/tools/make/project/db-sync.sh b/tools/make/project/db-sync.sh new file mode 100644 index 0000000000..2d69f38ed8 --- /dev/null +++ b/tools/make/project/db-sync.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +set -e + +if [ ! -n "$OC_PROJECT_NAME" ]; then + echo "OC_PROJECT_NAME not set." + exit 1; +fi + +oc login --token=${1} --server=https://api.arodevtest.hel.fi:6443 +oc project ${OC_PROJECT_NAME} + +OC_POD_NAME=$(oc get pods -o name | grep drupal-cron | grep -v deploy) + +if [ ! -n "$OC_POD_NAME" ]; then + echo "Failed to parse pod name." + exit 1 +fi + +oc rsh $OC_POD_NAME rm -f /tmp/dump.sql +oc rsh $OC_POD_NAME drush sql:dump --structure-tables-key=common \ + --extra-dump='--no-tablespaces --hex-blob' \ + --result-file=/tmp/dump.sql + +oc rsync $OC_POD_NAME:/tmp/dump.sql /app diff --git a/tools/make/project/git.mk b/tools/make/project/git.mk index 9ef1f3d9e7..50b03e8752 100644 --- a/tools/make/project/git.mk +++ b/tools/make/project/git.mk @@ -1,3 +1,3 @@ PHONY += copy-commit-message-script copy-commit-message-script: - @$(foreach name,$(shell find public/modules/custom public/themes/custom public/modules/contrib public/themes/contrib -type d -name ".git" -exec dirname {} \; 2> /dev/null ) .,cp tools/commit-msg $(name)/.git/hooks;) + @$(foreach name,$(shell find public/modules/custom public/themes/custom public/modules/contrib public/themes/contrib -type d -name ".git" -exec dirname {} \; 2> /dev/null ) .,cp tools/commit-msg $(name)/.git/hooks || true;) diff --git a/tools/make/project/install.mk b/tools/make/project/install.mk index 483d64f7e1..4328f6532d 100644 --- a/tools/make/project/install.mk +++ b/tools/make/project/install.mk @@ -10,18 +10,14 @@ OC_LOGIN_TOKEN ?= $(shell bash -c 'read -s -p "You must obtain an API token by v SYNC_TARGETS := drush-sync-db ifneq ($(DUMP_SQL_EXISTS),yes) -SYNC_TARGETS := oc-login oc-sync +SYNC_TARGETS := oc-sync endif -PHONY += oc-login -oc-login: - $(call drush,helfi:oc:login $(OC_LOGIN_TOKEN)) - PHONY += oc-sync oc-sync: - $(call drush,helfi:oc:get-dump) + docker run --env-file .env -it --rm -v .:/app --name helfi-oc ghcr.io/city-of-helsinki/drupal-oc-cli:latest sh -c "chmod +x /app/tools/make/project/db-sync.sh && /app/tools/make/project/db-sync.sh $(OC_LOGIN_TOKEN)" $(call drush,sql-query --file=${DOCKER_PROJECT_ROOT}/$(DUMP_SQL_FILENAME),SQL dump imported) - $(call drush,helfi:oc:sanitize-database) + $(call drush,sql-query \"UPDATE file_managed SET uri = REPLACE(uri, 'azure://', 'public://');\",Sanitized Azure URIs) $(call drush,cr) $(call drush,cim -y) $(call drush,cr) From 436f3d7fd29cb2c4b5c73e7aff80ce95d1a1580a Mon Sep 17 00:00:00 2001 From: rpnykanen <48206082+rpnykanen@users.noreply.github.com> Date: Mon, 16 Dec 2024 14:08:08 +0200 Subject: [PATCH 85/95] UHF-11076 (#1614) * UHF-11076.1: prevent encoded characters on filled application preview * UHF-11076.1: this is not worth an error --- .../src/Plugin/WebformElement/ApplicantInfoComposite.php | 2 +- public/modules/custom/grants_handler/grants_handler.module | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/public/modules/custom/grants_applicant_info/src/Plugin/WebformElement/ApplicantInfoComposite.php b/public/modules/custom/grants_applicant_info/src/Plugin/WebformElement/ApplicantInfoComposite.php index 12a8ece1bf..66aba20ea0 100644 --- a/public/modules/custom/grants_applicant_info/src/Plugin/WebformElement/ApplicantInfoComposite.php +++ b/public/modules/custom/grants_applicant_info/src/Plugin/WebformElement/ApplicantInfoComposite.php @@ -97,7 +97,7 @@ protected function formatTextItemValue(array $element, WebformSubmissionInterfac $webformElement = $element["#webform_composite_elements"][$fieldName]; if ($webformElement && isset($webformElement['#title'])) { $lines[] = '
' . $webformElement['#title']->render() . '
'; - $lines[] = '
' . $fieldValue . '
'; + $lines[] = '
' . htmlspecialchars_decode($fieldValue) . '
'; } } } diff --git a/public/modules/custom/grants_handler/grants_handler.module b/public/modules/custom/grants_handler/grants_handler.module index df4f2a8c13..d744c602ea 100644 --- a/public/modules/custom/grants_handler/grants_handler.module +++ b/public/modules/custom/grants_handler/grants_handler.module @@ -1559,7 +1559,7 @@ function grants_handler_preprocess_application_list_item(&$variables): void { } else { \Drupal::logger('grants_handler') - ->error('Application status not in valid statuses: %number', [ + ->info('Application status not in valid statuses: %number', [ '%number' => $submissionData["application_number"], ]); } @@ -1611,7 +1611,7 @@ function grants_handler_preprocess_application_status_tag(&$variables): void { } else { \Drupal::logger('grants_handler') - ->error('Application status not in valid statuses: %appno', [ + ->info('Application status not in valid statuses: %appno', [ '%appno' => $submissionData["application_number"], ]); } From df25207316c252394a739ac53d3031d11e441481 Mon Sep 17 00:00:00 2001 From: tuutti Date: Mon, 16 Dec 2024 15:13:06 +0200 Subject: [PATCH 86/95] UHF-11137: Run CI pipelines using Docker compose setup (#1613) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * UHF-11137: Run CI pipelines using Docker compose setup * UHF-11137: Disabled config language check again * UHF-11137: Bumped php version * UHF-11137: Fixed phpunit env variables * UHF-11137: Updated helfi platform tools. * UHF-11137: Updated platform tools. --------- Co-authored-by: Markus Kalijärvi --- .env | 2 +- .github/workflows/artifact.yml | 38 ++++++++-------- .github/workflows/test.yml | 70 +++++++++++++---------------- .github/workflows/update-config.yml | 3 +- composer.lock | 38 ++++++++-------- phpunit.xml.dist | 7 ++- tools/make/project/git.mk | 2 +- 7 files changed, 77 insertions(+), 83 deletions(-) diff --git a/.env b/.env index 149d63c81b..38e5c08739 100644 --- a/.env +++ b/.env @@ -9,7 +9,7 @@ COMPOSE_PROJECT_NAME=hel-fi-drupal-grant-applications DRUPAL_HOSTNAME=hel-fi-drupal-grant-applications.docker.so # Docker image -DRUPAL_IMAGE=ghcr.io/city-of-helsinki/drupal-web:8.2 +DRUPAL_IMAGE=ghcr.io/city-of-helsinki/drupal-web:8.3 # Default source @alias where to sync database and files from DRUPAL_SYNC_SOURCE=main diff --git a/.github/workflows/artifact.yml b/.github/workflows/artifact.yml index 535dc82bb2..969bfa81da 100644 --- a/.github/workflows/artifact.yml +++ b/.github/workflows/artifact.yml @@ -8,32 +8,32 @@ name: Build artifacts jobs: build: runs-on: ubuntu-latest - container: - image: ghcr.io/city-of-helsinki/drupal-php-docker:8.3-alpine - - services: - db: - image: mysql:8 - env: - MYSQL_USER: drupal - MYSQL_PASSWORD: drupal - MYSQL_DATABASE: drupal - MYSQL_ROOT_PASSWORD: drupal - ports: - - 3306:3306 - steps: - uses: actions/checkout@v4 + - name: Install and start Stonehenge + run: | + git clone -b 5.x https://github.com/druidfi/stonehenge.git ~/stonehenge + cd ~/stonehenge && make up + + # This must be done after we start Stonehenge. + - name: Setup Docker compose environment variables + run: | + echo "COMPOSE_FILE=compose.yaml:compose.ci.yaml" >> $GITHUB_ENV + + - name: Start project + run: make up + - name: Build project - run: composer install --no-interaction + run: docker compose exec app bash -c "composer install --no-interaction" - name: Setup drupal and save database dump run: | - drush si -y && drush cr - drush si --existing-config -y - drush cim -y - drush sql-dump --result-file=${GITHUB_WORKSPACE}/latest.sql + docker compose exec app bash -c "drush si -y && drush cr" + docker compose exec app bash -c "drush si --existing-config -y" + docker compose exec app bash -c "drush cr" + docker compose exec app bash -c "drush cim -y" + docker compose exec app bash -c "drush sql-dump --result-file=/app/latest.sql" - name: Upload latest database dump uses: actions/upload-artifact@v4 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a367baad58..27855f1ba4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,33 +3,12 @@ on: push: branches: ['main', 'dev'] name: CI -env: - SYMFONY_DEPRECATIONS_HELPER: disabled - SIMPLETEST_BASE_URL: http://app:8888 jobs: tests: runs-on: ubuntu-latest - container: - image: ghcr.io/city-of-helsinki/drupal-php-docker:8.3-alpine - options: --hostname app - - services: - db: - image: mysql:8 - env: - MYSQL_USER: drupal - MYSQL_PASSWORD: drupal - MYSQL_DATABASE: drupal - MYSQL_ROOT_PASSWORD: drupal - ports: - - 3306:3306 steps: - uses: actions/checkout@v4 - - name: Set browsertest output folder - run: | - echo "BROWSERTEST_OUTPUT_DIRECTORY=$GITHUB_WORKSPACE/public/sites/simpletest" >> $GITHUB_ENV - # TODO this does not pass #- name: Make sure configuration was exported in correct language (en or und) # run: | @@ -41,22 +20,36 @@ jobs: # exit 1 # fi + - name: Install and start Stonehenge + run: | + git clone -b 5.x https://github.com/druidfi/stonehenge.git ~/stonehenge + cd ~/stonehenge && make up + + # This must be done after we start Stonehenge. + - name: Setup Docker compose environment variables + run: | + echo "COMPOSE_FILE=compose.yaml:compose.ci.yaml" >> $GITHUB_ENV + echo "COMPOSE_PROFILES=" >> $GITHUB_ENV + + - name: Start project + run: make up + - name: Build project - run: composer install --no-interaction + run: docker compose exec app bash -c "composer install --no-interaction" - name: Scan security updates - run: composer audit + run: docker compose exec app bash -c "composer audit" - name: Check that subtheme is not built with dev mode - run: if grep -q 'sourceMappingURL=' -R public/themes/custom/hdbt_subtheme/dist/css; then exit 1; fi + run: docker compose exec app bash -c "if grep -q 'sourceMappingURL=' -R public/themes/custom/hdbt_subtheme/dist/css; then exit 1; fi" - name: Run PHPCS run: | - vendor/bin/phpcs public/modules/custom/ - vendor/bin/phpcs public/themes/custom/ + docker compose exec app bash -c "vendor/bin/phpcs public/modules/custom/" + docker compose exec app bash -c "vendor/bin/phpcs public/themes/custom/" - name: Run phpstan - run: vendor/bin/phpstan analyze + run: docker compose exec app bash -c "vendor/bin/phpstan analyze" - name: Download latest dump env: @@ -65,25 +58,26 @@ jobs: - name: Install Drupal run: | - mysql --user=drupal --password=drupal --database=drupal --host=db --port=3306 -A < latest.sql - drush deploy + docker compose exec app bash -c "mysql --user=drupal --password=drupal --database=drupal --host=db --port=3306 -A < latest.sql" + docker compose exec app bash -c "drush deploy" - - name: Start services + - name: Run PHPUnit tests run: | - drush runserver $SIMPLETEST_BASE_URL --dns > /dev/null 2>&1 & + docker compose exec app bash -c "mkdir -p /app/results" - # Wait for drush server to start. - for i in {1..5}; do RESPONSE_CODE=$(curl -s -o /dev/null -w "%{http_code}" "$SIMPLETEST_BASE_URL" || true); if [ "$RESPONSE_CODE" -gt "301" ] || [ "$RESPONSE_CODE" -lt "200" ]; then sleep 2; fi; done + if [ -d "tests/" ]; then + docker compose exec app bash -c "composer test-php tests/" + fi + docker compose exec app bash -c "composer test-php public/modules/custom" - - name: Run PHPUnit tests - run: | - composer test-php public/modules/custom - if [ -d "tests/" ]; then composer test-php tests/; else echo "No DTT tests found. Ignoring..."; fi + - name: Export logs + if: always() + run: docker compose logs app > results/service.log - name: Create an artifact from test report uses: actions/upload-artifact@v4 if: always() with: name: results - path: ${{ env.BROWSERTEST_OUTPUT_DIRECTORY }} + path: results/ retention-days: 1 diff --git a/.github/workflows/update-config.yml b/.github/workflows/update-config.yml index d36258dd60..64af85621c 100644 --- a/.github/workflows/update-config.yml +++ b/.github/workflows/update-config.yml @@ -9,7 +9,8 @@ jobs: update-config: runs-on: ubuntu-latest container: - image: ghcr.io/city-of-helsinki/drupal-php-docker:8.3-alpine + image: ghcr.io/city-of-helsinki/drupal-web:8.3 + options: --hostname app --user 1001 services: db: image: mysql:8 diff --git a/composer.lock b/composer.lock index 36981956ee..6d9d05f968 100644 --- a/composer.lock +++ b/composer.lock @@ -815,16 +815,16 @@ }, { "name": "consolidation/annotated-command", - "version": "4.10.0", + "version": "4.10.1", "source": { "type": "git", "url": "https://github.com/consolidation/annotated-command.git", - "reference": "1e830ba908c9ffb1ba7ca056203531b27188812c" + "reference": "362310b13ececa9f6f0a4a880811fa08fecc348b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/1e830ba908c9ffb1ba7ca056203531b27188812c", - "reference": "1e830ba908c9ffb1ba7ca056203531b27188812c", + "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/362310b13ececa9f6f0a4a880811fa08fecc348b", + "reference": "362310b13ececa9f6f0a4a880811fa08fecc348b", "shasum": "" }, "require": { @@ -865,9 +865,9 @@ "description": "Initialize Symfony Console commands from annotated command class methods.", "support": { "issues": "https://github.com/consolidation/annotated-command/issues", - "source": "https://github.com/consolidation/annotated-command/tree/4.10.0" + "source": "https://github.com/consolidation/annotated-command/tree/4.10.1" }, - "time": "2024-04-05T21:05:39+00:00" + "time": "2024-12-13T19:55:40+00:00" }, { "name": "consolidation/config", @@ -1215,16 +1215,16 @@ }, { "name": "consolidation/site-alias", - "version": "4.1.0", + "version": "4.1.1", "source": { "type": "git", "url": "https://github.com/consolidation/site-alias.git", - "reference": "1056ceb93f6aafe6f7600d7bbe1b62b8488abccf" + "reference": "aff6189aae17da813d23249cb2fc0fff33f26d40" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/site-alias/zipball/1056ceb93f6aafe6f7600d7bbe1b62b8488abccf", - "reference": "1056ceb93f6aafe6f7600d7bbe1b62b8488abccf", + "url": "https://api.github.com/repos/consolidation/site-alias/zipball/aff6189aae17da813d23249cb2fc0fff33f26d40", + "reference": "aff6189aae17da813d23249cb2fc0fff33f26d40", "shasum": "" }, "require": { @@ -1268,22 +1268,22 @@ "description": "Manage alias records for local and remote sites.", "support": { "issues": "https://github.com/consolidation/site-alias/issues", - "source": "https://github.com/consolidation/site-alias/tree/4.1.0" + "source": "https://github.com/consolidation/site-alias/tree/4.1.1" }, - "time": "2024-04-05T15:58:04+00:00" + "time": "2024-12-13T19:05:11+00:00" }, { "name": "consolidation/site-process", - "version": "5.4.0", + "version": "5.4.2", "source": { "type": "git", "url": "https://github.com/consolidation/site-process.git", - "reference": "7ab3ffe4195a89b8dc334ea22e7881abe79ffd9a" + "reference": "e7fafc40ebfddc1a5ee99ee66e5d186fc1bed4da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/site-process/zipball/7ab3ffe4195a89b8dc334ea22e7881abe79ffd9a", - "reference": "7ab3ffe4195a89b8dc334ea22e7881abe79ffd9a", + "url": "https://api.github.com/repos/consolidation/site-process/zipball/e7fafc40ebfddc1a5ee99ee66e5d186fc1bed4da", + "reference": "e7fafc40ebfddc1a5ee99ee66e5d186fc1bed4da", "shasum": "" }, "require": { @@ -1325,9 +1325,9 @@ "description": "A thin wrapper around the Symfony Process Component that allows applications to use the Site Alias library to specify the target for a remote call.", "support": { "issues": "https://github.com/consolidation/site-process/issues", - "source": "https://github.com/consolidation/site-process/tree/5.4.0" + "source": "https://github.com/consolidation/site-process/tree/5.4.2" }, - "time": "2024-04-06T00:00:28+00:00" + "time": "2024-12-13T19:25:56+00:00" }, { "name": "cweagans/composer-patches", @@ -23508,6 +23508,6 @@ "platform": { "ext-json": "*" }, - "platform-dev": {}, + "platform-dev": [], "plugin-api-version": "2.6.0" } diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 0cb38bb620..b641aa3b2d 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -15,12 +15,11 @@ - - + + - - + ./public/modules/custom/*/tests/src/Unit diff --git a/tools/make/project/git.mk b/tools/make/project/git.mk index 50b03e8752..c598f4d7b9 100644 --- a/tools/make/project/git.mk +++ b/tools/make/project/git.mk @@ -1,3 +1,3 @@ PHONY += copy-commit-message-script copy-commit-message-script: - @$(foreach name,$(shell find public/modules/custom public/themes/custom public/modules/contrib public/themes/contrib -type d -name ".git" -exec dirname {} \; 2> /dev/null ) .,cp tools/commit-msg $(name)/.git/hooks || true;) + @$(foreach name,$(shell find . -type d -name ".git" -exec dirname {} \; 2> /dev/null ),cp tools/commit-msg $(name)/.git/hooks;) From ebf0f88124f95e6abbc115d6b5fe0fb368025d6c Mon Sep 17 00:00:00 2001 From: annadruid <161724181+annadruid@users.noreply.github.com> Date: Tue, 17 Dec 2024 09:19:55 +0200 Subject: [PATCH 87/95] UHF-10935: Added class and margin for delete attachment button (#1615) * UHF-10935: Added class and margin for delete attachment button * UHF-10935: Removed nesting --- .../grants_attachments/src/Element/GrantsAttachments.php | 3 +++ public/themes/custom/hdbt_subtheme/dist/css/styles.min.css | 2 +- .../src/scss/06_components/forms/webform/_form-elements.scss | 4 ++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/public/modules/custom/grants_attachments/src/Element/GrantsAttachments.php b/public/modules/custom/grants_attachments/src/Element/GrantsAttachments.php index b3322776fd..267497c6db 100644 --- a/public/modules/custom/grants_attachments/src/Element/GrantsAttachments.php +++ b/public/modules/custom/grants_attachments/src/Element/GrantsAttachments.php @@ -207,6 +207,9 @@ public static function processWebformComposite(&$element, FormStateInterface $fo ], 'wrapper' => $element["#webform_id"], ], + '#attributes' => [ + 'class' => ['button--delete-attachment'], + ], ]; } } 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 d1f703b233..b583339841 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);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.5;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.25;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{margin-top:8px}.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}.form-item .description{color:#595959}.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%}.club-section__participants label{text-wrap:balance}.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)} +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.5;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.25;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{margin-top:8px}.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}.form-item .description{color:#595959}.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%}.club-section__participants label{text-wrap:balance}.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))}.grants-attachments--fields-wrapper .button--delete-attachment{margin-top:var(--spacing-layout-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/src/scss/06_components/forms/webform/_form-elements.scss b/public/themes/custom/hdbt_subtheme/src/scss/06_components/forms/webform/_form-elements.scss index ce14b65c09..db19b1bc49 100644 --- a/public/themes/custom/hdbt_subtheme/src/scss/06_components/forms/webform/_form-elements.scss +++ b/public/themes/custom/hdbt_subtheme/src/scss/06_components/forms/webform/_form-elements.scss @@ -509,3 +509,7 @@ input[type='radio'] + label.form-required::after { width: calc(100% - var(--spacing-2-xs)); } } + +.grants-attachments--fields-wrapper .button--delete-attachment{ + margin-top: var(--spacing-layout-xs); +} From c3b68ab46e3f2782e399cf04be8e3877e262843a Mon Sep 17 00:00:00 2001 From: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Date: Wed, 18 Dec 2024 10:48:00 +0200 Subject: [PATCH 88/95] Automatic update (#1616) * Update configuration * Update configuration * PHPCS + tbachert/spi --------- Co-authored-by: Janne Suominen --- .github/dependabot.yml.dist | 18 + .platform/schema | 2 +- compose.yaml | 2 +- composer.json | 15 +- composer.lock | 823 ++++++++++-------- ...iew_display.paragraph.hearings.default.yml | 2 +- ...es.external_entity_type.helfi_hearings.yml | 2 +- ...tities.external_entity_type.helfi_news.yml | 2 +- ...external_entity_type.helfi_news_groups.yml | 2 +- ..._entity_type.helfi_news_neighbourhoods.yml | 2 +- ...s.external_entity_type.helfi_news_tags.yml | 2 +- conf/cmi/views.view.er_tpr_unit.yml | 2 +- conf/cmi/views.view.locked_services.yml | 2 +- conf/cmi/views.view.locked_units.yml | 2 +- conf/cmi/views.view.service_list.yml | 4 +- conf/cmi/views.view.service_units.yml | 2 +- conf/cmi/views.view.unit_search.yml | 2 +- .../Definition/GrantsBudgetInfoDefinition.php | 2 +- .../src/ApplicationGetterService.php | 2 +- .../grants_handler/src/ApplicationHelpers.php | 2 +- .../grants_handler/src/Form/MessageForm.php | 2 +- .../src/GrantsHandlerNavigationHelper.php | 2 +- .../src/LinkModifierService.php | 2 +- .../grants_menu/src/ForceMenuLinkService.php | 4 +- .../grants_profile/src/ProfileConnector.php | 2 +- .../grants_profile/src/UserRedirect.php | 4 +- .../src/UserRedirectInterface.php | 4 +- tools/make/project/install.mk | 2 +- 28 files changed, 536 insertions(+), 378 deletions(-) create mode 100644 .github/dependabot.yml.dist diff --git a/.github/dependabot.yml.dist b/.github/dependabot.yml.dist new file mode 100644 index 0000000000..5bfbfcdb7c --- /dev/null +++ b/.github/dependabot.yml.dist @@ -0,0 +1,18 @@ +# Please see the documentation for all configuration options: +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file +version: 2 +updates: + - package-ecosystem: "composer" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "weekly" + allow: + # Update only direct dependencies. This reduces spam since most + # indirect dependencies are handles by update-config workflow. + - dependency-type: "direct" + ignore: + # Updated by update-config workflow + - dependency-name: "drupal/helfi_*" + - dependency-name: "drupal/hdbt*" + # Updated separately + - dependency-name: "drupal/core*" diff --git a/.platform/schema b/.platform/schema index 3cacc0b93c..da2d3988d7 100644 --- a/.platform/schema +++ b/.platform/schema @@ -1 +1 @@ -12 \ No newline at end of file +14 \ No newline at end of file diff --git a/compose.yaml b/compose.yaml index cdf6ca7db5..87ecd3643c 100644 --- a/compose.yaml +++ b/compose.yaml @@ -118,7 +118,7 @@ services: profiles: - search elastic: - image: docker.elastic.co/elasticsearch/elasticsearch:8.16.1 + image: docker.elastic.co/elasticsearch/elasticsearch:8.17.0 container_name: "${COMPOSE_PROJECT_NAME}-elastic" environment: - node.name="${COMPOSE_PROJECT_NAME}-elastic" diff --git a/composer.json b/composer.json index 2733b2e2f4..1e9b59dab8 100644 --- a/composer.json +++ b/composer.json @@ -78,15 +78,9 @@ "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", "dg/bypass-finals": "^1.5", "donatj/mock-webserver": "^2.4", - "drupal/coder": "^8.3", - "drupal/core-dev": "^10.2.4", + "drupal/core-dev": "^10", "jangregor/phpstan-prophecy": "^1.0", - "mglaman/phpstan-drupal": "^1.2", - "phpspec/prophecy-phpunit": "^2", - "phpstan/extension-installer": "^1.3", - "phpstan/phpstan": "^1.10", "phpstan/phpstan-deprecation-rules": "^1.1", - "phpunit/phpunit": "^9.5", "weitzman/drupal-test-traits": "^2.0" }, "conflict": { @@ -96,13 +90,14 @@ "optimize-autoloader": true, "sort-packages": true, "allow-plugins": { - "dealerdirect/phpcodesniffer-composer-installer": true, "composer/installers": true, "cweagans/composer-patches": true, + "dealerdirect/phpcodesniffer-composer-installer": true, "drupal/core-composer-scaffold": true, - "phpstan/extension-installer": true, "oomphinc/composer-installers-extender": true, - "php-http/discovery": true + "php-http/discovery": true, + "phpstan/extension-installer": true, + "tbachert/spi": false }, "audit": { "abandoned": "report", diff --git a/composer.lock b/composer.lock index 6d9d05f968..78c87bb5ab 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": "40a2f7e8a06d7aed024a2dc7c090531b", + "content-hash": "216b0bddff130e7432d072cc6b618f72", "packages": [ { "name": "asm89/stack-cors", @@ -3110,16 +3110,16 @@ }, { "name": "drupal/core", - "version": "10.3.10", + "version": "10.4.0", "source": { "type": "git", "url": "https://github.com/drupal/core.git", - "reference": "3ebb71e9c4ef0c13f683353547551fca49f9a144" + "reference": "2ac1930116a840b4fbd0ad5cdd3a6d58939a0b1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core/zipball/3ebb71e9c4ef0c13f683353547551fca49f9a144", - "reference": "3ebb71e9c4ef0c13f683353547551fca49f9a144", + "url": "https://api.github.com/repos/drupal/core/zipball/2ac1930116a840b4fbd0ad5cdd3a6d58939a0b1d", + "reference": "2ac1930116a840b4fbd0ad5cdd3a6d58939a0b1d", "shasum": "" }, "require": { @@ -3165,7 +3165,7 @@ "symfony/serializer": "^6.4", "symfony/validator": "^6.4", "symfony/yaml": "^6.4", - "twig/twig": "^3.14.2" + "twig/twig": "^3.15.0" }, "conflict": { "drush/drush": "<12.4.3" @@ -3268,22 +3268,22 @@ ], "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.10" + "source": "https://github.com/drupal/core/tree/10.4.0" }, - "time": "2024-11-22T12:51:33+00:00" + "time": "2024-12-17T22:18:01+00:00" }, { "name": "drupal/core-composer-scaffold", - "version": "10.3.10", + "version": "10.4.0", "source": { "type": "git", "url": "https://github.com/drupal/core-composer-scaffold.git", - "reference": "f58ab5c0d02d275c5aa226c4505b457e41b161cc" + "reference": "db17b59620ce1c142a34dc017d9e696ce4771e55" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core-composer-scaffold/zipball/f58ab5c0d02d275c5aa226c4505b457e41b161cc", - "reference": "f58ab5c0d02d275c5aa226c4505b457e41b161cc", + "url": "https://api.github.com/repos/drupal/core-composer-scaffold/zipball/db17b59620ce1c142a34dc017d9e696ce4771e55", + "reference": "db17b59620ce1c142a34dc017d9e696ce4771e55", "shasum": "" }, "require": { @@ -3318,9 +3318,9 @@ "drupal" ], "support": { - "source": "https://github.com/drupal/core-composer-scaffold/tree/10.3.10" + "source": "https://github.com/drupal/core-composer-scaffold/tree/10.4.0" }, - "time": "2024-08-22T14:31:34+00:00" + "time": "2024-08-22T14:31:30+00:00" }, { "name": "drupal/crop", @@ -5485,16 +5485,16 @@ }, { "name": "drupal/hdbt", - "version": "6.8.21", + "version": "6.8.23", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-hdbt.git", - "reference": "cd8b74a7afc7ec488979a426809e5386383a3bef" + "reference": "b14bd481f81a0be27eaf3ab2a1db0c2a86c66511" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/cd8b74a7afc7ec488979a426809e5386383a3bef", - "reference": "cd8b74a7afc7ec488979a426809e5386383a3bef", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/b14bd481f81a0be27eaf3ab2a1db0c2a86c66511", + "reference": "b14bd481f81a0be27eaf3ab2a1db0c2a86c66511", "shasum": "" }, "require": { @@ -5513,23 +5513,23 @@ "Drupal" ], "support": { - "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.8.21", + "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.8.23", "issues": "https://github.com/City-of-Helsinki/drupal-hdbt/issues" }, - "time": "2024-12-13T08:38:26+00:00" + "time": "2024-12-17T07:20:53+00:00" }, { "name": "drupal/hdbt_admin", - "version": "3.2.10", + "version": "3.2.11", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-hdbt-admin.git", - "reference": "36437872af9f46e205ec7aff2ff27115e9c6edf1" + "reference": "a0d89ce0318306edac0cde747367217ed53b2196" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt-admin/zipball/36437872af9f46e205ec7aff2ff27115e9c6edf1", - "reference": "36437872af9f46e205ec7aff2ff27115e9c6edf1", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt-admin/zipball/a0d89ce0318306edac0cde747367217ed53b2196", + "reference": "a0d89ce0318306edac0cde747367217ed53b2196", "shasum": "" }, "require": { @@ -5557,10 +5557,10 @@ "Drupal" ], "support": { - "source": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/tree/3.2.10", + "source": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/tree/3.2.11", "issues": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/issues" }, - "time": "2024-11-19T13:01:05+00:00" + "time": "2024-12-17T08:36:44+00:00" }, { "name": "drupal/health_check", @@ -5614,16 +5614,16 @@ }, { "name": "drupal/helfi_api_base", - "version": "2.7.19", + "version": "2.7.21", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base.git", - "reference": "096a75dd49d1ae4db5959980337de4b77d10cce5" + "reference": "4f747fe4aed94ed98f6fa18c87578aebd2b84560" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-api-base/zipball/096a75dd49d1ae4db5959980337de4b77d10cce5", - "reference": "096a75dd49d1ae4db5959980337de4b77d10cce5", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-api-base/zipball/4f747fe4aed94ed98f6fa18c87578aebd2b84560", + "reference": "4f747fe4aed94ed98f6fa18c87578aebd2b84560", "shasum": "" }, "require": { @@ -5655,10 +5655,10 @@ ], "description": "Helfi - API Base", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/tree/2.7.19", + "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/tree/2.7.21", "issues": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/issues" }, - "time": "2024-11-29T09:44:21+00:00" + "time": "2024-12-17T09:15:47+00:00" }, { "name": "drupal/helfi_atv", @@ -5776,12 +5776,12 @@ "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-tools.git", - "reference": "c8f0aa0b247712eca0292073f6710746a511dd81" + "reference": "2eb037b210a0c311ad8e742d3c1fd97e89d7b677" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-tools/zipball/c8f0aa0b247712eca0292073f6710746a511dd81", - "reference": "c8f0aa0b247712eca0292073f6710746a511dd81", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-tools/zipball/2eb037b210a0c311ad8e742d3c1fd97e89d7b677", + "reference": "2eb037b210a0c311ad8e742d3c1fd97e89d7b677", "shasum": "" }, "require": { @@ -5856,7 +5856,7 @@ "source": "https://github.com/City-of-Helsinki/drupal-tools/tree/main", "issues": "https://github.com/City-of-Helsinki/drupal-tools/issues" }, - "time": "2024-12-13T11:44:35+00:00" + "time": "2024-12-17T10:07:01+00:00" }, { "name": "drupal/helfi_gdpr_api", @@ -5932,16 +5932,16 @@ }, { "name": "drupal/helfi_platform_config", - "version": "4.10.3", + "version": "4.10.4", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config.git", - "reference": "f2d8dc24500044936ea6dba39134d1d2eaf710db" + "reference": "24833b53e247ee6e56a852eb497139ee8883e6ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/f2d8dc24500044936ea6dba39134d1d2eaf710db", - "reference": "f2d8dc24500044936ea6dba39134d1d2eaf710db", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/24833b53e247ee6e56a852eb497139ee8883e6ac", + "reference": "24833b53e247ee6e56a852eb497139ee8883e6ac", "shasum": "" }, "require": { @@ -6037,8 +6037,7 @@ "[#UHF-7008] Admin toolbar and contextual links should always be rendered in the admin language (https://www.drupal.org/project/drupal/issues/2313309)": "https://www.drupal.org/files/issues/2023-12-19/2313309-179.patch", "[#UHF-9388] Process configuration translation files for custom modules (https://www.drupal.org/i/2845437)": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-helfi-platform-config/fd68277191b8f8ec290e53b5fbbae699b2260384/patches/drupal-2845437-process-custom-module-translation-config-10.3.x.patch", "[#UHF-9690] Allow updating lists when switching from allowed values to allowed values function (https://www.drupal.org/i/2873353)": "https://www.drupal.org/files/issues/2021-05-18/allow-allowed-values-function-update-D9-2873353_1.patch", - "[#UHF-9952, #UHF-9980] Duplicate
tags (https://www.drupal.org/i/3083786)": "https://www.drupal.org/files/issues/2024-08-08/3083786--mr-8066--10-3-backport.patch", - "[#UHF-10716] Ensure consistent ordering when calculating library asset order (https://www.drupal.org/i/3467860)": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-helfi-platform-config/955e2fc9493c6574ab070187b8a5a8634da7daab/patches/drupal-3467860-optimized-js-assets-mismatch.patch" + "[#UHF-9952, #UHF-9980] Duplicate
tags (https://www.drupal.org/i/3083786)": "https://www.drupal.org/files/issues/2024-08-08/3083786--mr-8066--10-3-backport.patch" }, "drupal/default_content": { "https://www.drupal.org/project/default_content/issues/2640734#comment-14638943": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-helfi-platform-config/main/patches/default_content_2.0.0-alpha2-2640734_manual_imports-e164a354.patch" @@ -6067,10 +6066,10 @@ ], "description": "HELfi platform config", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.10.3", + "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.10.4", "issues": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/issues" }, - "time": "2024-12-13T08:38:18+00:00" + "time": "2024-12-18T06:30:07+00:00" }, { "name": "drupal/helfi_proxy", @@ -8095,7 +8094,11 @@ "homepage": "https://www.drupal.org/user/99012" }, { - "name": "Sheldon Rampton", + "name": "mably", + "homepage": "https://www.drupal.org/user/3375160" + }, + { + "name": "sheldon rampton", "homepage": "https://www.drupal.org/user/13085" }, { @@ -8290,17 +8293,17 @@ }, { "name": "drupal/raven", - "version": "6.0.12", + "version": "6.0.13", "source": { "type": "git", "url": "https://git.drupalcode.org/project/raven.git", - "reference": "6.0.12" + "reference": "6.0.13" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/raven-6.0.12.zip", - "reference": "6.0.12", - "shasum": "5ba241ff4109be407cb9660a8743aad5a24b9fba" + "url": "https://ftp.drupal.org/files/projects/raven-6.0.13.zip", + "reference": "6.0.13", + "shasum": "7b92e693dae63859457ba734c57382511b91af86" }, "require": { "drupal/core": "^10.2 || ^11", @@ -8314,8 +8317,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "6.0.12", - "datestamp": "1733335477", + "version": "6.0.13", + "datestamp": "1734389510", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -9288,27 +9291,27 @@ }, { "name": "drupal/sophron", - "version": "2.1.0", + "version": "2.2.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/sophron.git", - "reference": "2.1.0" + "reference": "2.2.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/sophron-2.1.0.zip", - "reference": "2.1.0", - "shasum": "0742562897ae9b202e472a1edef75844b6452e39" + "url": "https://ftp.drupal.org/files/projects/sophron-2.2.0.zip", + "reference": "2.2.0", + "shasum": "fa4670e775443db3f465cc25b02c7c82e5c382bf" }, "require": { "drupal/core": "^10.2 || ^11", - "fileeye/mimemap": "^2.1.1" + "fileeye/mimemap": "^2.2.1" }, "type": "drupal-module", "extra": { "drupal": { - "version": "2.1.0", - "datestamp": "1718011690", + "version": "2.2.0", + "datestamp": "1734432598", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -11001,16 +11004,16 @@ }, { "name": "fileeye/mimemap", - "version": "2.2.0", + "version": "2.2.1", "source": { "type": "git", "url": "https://github.com/FileEye/MimeMap.git", - "reference": "c8c686cc6f77316b23128a83334877debf645dfb" + "reference": "f37ea54dab6f286dd37d937c069b80b601003df0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FileEye/MimeMap/zipball/c8c686cc6f77316b23128a83334877debf645dfb", - "reference": "c8c686cc6f77316b23128a83334877debf645dfb", + "url": "https://api.github.com/repos/FileEye/MimeMap/zipball/f37ea54dab6f286dd37d937c069b80b601003df0", + "reference": "f37ea54dab6f286dd37d937c069b80b601003df0", "shasum": "" }, "require": { @@ -11053,9 +11056,9 @@ ], "support": { "issues": "https://github.com/FileEye/MimeMap/issues", - "source": "https://github.com/FileEye/MimeMap/tree/2.2.0" + "source": "https://github.com/FileEye/MimeMap/tree/2.2.1" }, - "time": "2024-10-20T18:59:36+00:00" + "time": "2024-12-16T19:03:35+00:00" }, { "name": "fileeye/pel", @@ -13058,33 +13061,36 @@ }, { "name": "open-telemetry/api", - "version": "1.0.3", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/api.git", - "reference": "87de95d926f46262885d0d390060c095af13e2e5" + "reference": "04c85a1e41a3d59fa9bdc801a5de1df6624b95ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/api/zipball/87de95d926f46262885d0d390060c095af13e2e5", - "reference": "87de95d926f46262885d0d390060c095af13e2e5", + "url": "https://api.github.com/repos/opentelemetry-php/api/zipball/04c85a1e41a3d59fa9bdc801a5de1df6624b95ed", + "reference": "04c85a1e41a3d59fa9bdc801a5de1df6624b95ed", "shasum": "" }, "require": { "open-telemetry/context": "^1.0", - "php": "^7.4 || ^8.0", + "php": "^8.1", "psr/log": "^1.1|^2.0|^3.0", - "symfony/polyfill-php80": "^1.26", - "symfony/polyfill-php81": "^1.26", "symfony/polyfill-php82": "^1.26" }, "conflict": { - "open-telemetry/sdk": "<=1.0.4" + "open-telemetry/sdk": "<=1.0.8" }, "type": "library", "extra": { + "spi": { + "OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\HookManagerInterface": [ + "OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\ExtensionHookManager" + ] + }, "branch-alias": { - "dev-main": "1.0.x-dev" + "dev-main": "1.1.x-dev" } }, "autoload": { @@ -13121,7 +13127,7 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2024-02-06T01:32:25+00:00" + "time": "2024-11-16T04:32:30+00:00" }, { "name": "open-telemetry/context", @@ -18566,16 +18572,16 @@ "packages-dev": [ { "name": "behat/mink", - "version": "v1.11.0", + "version": "v1.12.0", "source": { "type": "git", "url": "https://github.com/minkphp/Mink.git", - "reference": "d8527fdf8785aad38455fb426af457ab9937aece" + "reference": "7e4edec6c335937029cb3569ce7ef81182804d0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/minkphp/Mink/zipball/d8527fdf8785aad38455fb426af457ab9937aece", - "reference": "d8527fdf8785aad38455fb426af457ab9937aece", + "url": "https://api.github.com/repos/minkphp/Mink/zipball/7e4edec6c335937029cb3569ce7ef81182804d0a", + "reference": "7e4edec6c335937029cb3569ce7ef81182804d0a", "shasum": "" }, "require": { @@ -18626,9 +18632,9 @@ ], "support": { "issues": "https://github.com/minkphp/Mink/issues", - "source": "https://github.com/minkphp/Mink/tree/v1.11.0" + "source": "https://github.com/minkphp/Mink/tree/v1.12.0" }, - "time": "2023-12-09T11:23:23+00:00" + "time": "2024-10-30T18:48:14+00:00" }, { "name": "behat/mink-browserkit-driver", @@ -18779,16 +18785,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.5.1", + "version": "1.5.4", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "063d9aa8696582f5a41dffbbaf3c81024f0a604a" + "reference": "bc0593537a463e55cadf45fd938d23b75095b7e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/063d9aa8696582f5a41dffbbaf3c81024f0a604a", - "reference": "063d9aa8696582f5a41dffbbaf3c81024f0a604a", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/bc0593537a463e55cadf45fd938d23b75095b7e1", + "reference": "bc0593537a463e55cadf45fd938d23b75095b7e1", "shasum": "" }, "require": { @@ -18798,8 +18804,8 @@ }, "require-dev": { "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^8 || ^9", "psr/log": "^1.0 || ^2.0 || ^3.0", - "symfony/phpunit-bridge": "^4.2 || ^5", "symfony/process": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, "type": "library", @@ -18835,7 +18841,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.5.1" + "source": "https://github.com/composer/ca-bundle/tree/1.5.4" }, "funding": [ { @@ -18851,20 +18857,20 @@ "type": "tidelift" } ], - "time": "2024-07-08T15:28:20+00:00" + "time": "2024-11-27T15:35:25+00:00" }, { "name": "composer/class-map-generator", - "version": "1.3.4", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/composer/class-map-generator.git", - "reference": "b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3" + "reference": "4b0a223cf5be7c9ee7e0ef1bc7db42b4a97c9915" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/class-map-generator/zipball/b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3", - "reference": "b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3", + "url": "https://api.github.com/repos/composer/class-map-generator/zipball/4b0a223cf5be7c9ee7e0ef1bc7db42b4a97c9915", + "reference": "4b0a223cf5be7c9ee7e0ef1bc7db42b4a97c9915", "shasum": "" }, "require": { @@ -18873,12 +18879,12 @@ "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7" }, "require-dev": { - "phpstan/phpstan": "^1.6", - "phpstan/phpstan-deprecation-rules": "^1", - "phpstan/phpstan-phpunit": "^1", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/filesystem": "^5.4 || ^6", - "symfony/phpunit-bridge": "^5" + "phpstan/phpstan": "^1.12 || ^2", + "phpstan/phpstan-deprecation-rules": "^1 || ^2", + "phpstan/phpstan-phpunit": "^1 || ^2", + "phpstan/phpstan-strict-rules": "^1.1 || ^2", + "phpunit/phpunit": "^8", + "symfony/filesystem": "^5.4 || ^6" }, "type": "library", "extra": { @@ -18908,7 +18914,7 @@ ], "support": { "issues": "https://github.com/composer/class-map-generator/issues", - "source": "https://github.com/composer/class-map-generator/tree/1.3.4" + "source": "https://github.com/composer/class-map-generator/tree/1.5.0" }, "funding": [ { @@ -18924,52 +18930,52 @@ "type": "tidelift" } ], - "time": "2024-06-12T14:13:04+00:00" + "time": "2024-11-25T16:11:06+00:00" }, { "name": "composer/composer", - "version": "2.7.7", + "version": "2.8.4", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "291942978f39435cf904d33739f98d7d4eca7b23" + "reference": "112e37d1dca22b3fdb81cf3524ab4994f47fdb8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/291942978f39435cf904d33739f98d7d4eca7b23", - "reference": "291942978f39435cf904d33739f98d7d4eca7b23", + "url": "https://api.github.com/repos/composer/composer/zipball/112e37d1dca22b3fdb81cf3524ab4994f47fdb8c", + "reference": "112e37d1dca22b3fdb81cf3524ab4994f47fdb8c", "shasum": "" }, "require": { - "composer/ca-bundle": "^1.0", - "composer/class-map-generator": "^1.3.3", + "composer/ca-bundle": "^1.5", + "composer/class-map-generator": "^1.4.0", "composer/metadata-minifier": "^1.0", - "composer/pcre": "^2.1 || ^3.1", + "composer/pcre": "^2.2 || ^3.2", "composer/semver": "^3.3", "composer/spdx-licenses": "^1.5.7", "composer/xdebug-handler": "^2.0.2 || ^3.0.3", - "justinrainbow/json-schema": "^5.2.11", + "justinrainbow/json-schema": "^5.3", "php": "^7.2.5 || ^8.0", "psr/log": "^1.0 || ^2.0 || ^3.0", - "react/promise": "^2.8 || ^3", + "react/promise": "^2.11 || ^3.2", "seld/jsonlint": "^1.4", "seld/phar-utils": "^1.2", "seld/signal-handler": "^2.0", - "symfony/console": "^5.4.11 || ^6.0.11 || ^7", - "symfony/filesystem": "^5.4 || ^6.0 || ^7", - "symfony/finder": "^5.4 || ^6.0 || ^7", + "symfony/console": "^5.4.35 || ^6.3.12 || ^7.0.3", + "symfony/filesystem": "^5.4.35 || ^6.3.12 || ^7.0.3", + "symfony/finder": "^5.4.35 || ^6.3.12 || ^7.0.3", "symfony/polyfill-php73": "^1.24", "symfony/polyfill-php80": "^1.24", "symfony/polyfill-php81": "^1.24", - "symfony/process": "^5.4 || ^6.0 || ^7" + "symfony/process": "^5.4.35 || ^6.3.12 || ^7.0.3" }, "require-dev": { - "phpstan/phpstan": "^1.11.0", + "phpstan/phpstan": "^1.11.8", "phpstan/phpstan-deprecation-rules": "^1.2.0", "phpstan/phpstan-phpunit": "^1.4.0", "phpstan/phpstan-strict-rules": "^1.6.0", "phpstan/phpstan-symfony": "^1.4.0", - "symfony/phpunit-bridge": "^6.4.1 || ^7.0.1" + "symfony/phpunit-bridge": "^6.4.3 || ^7.0.1" }, "suggest": { "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", @@ -18981,13 +18987,13 @@ ], "type": "library", "extra": { - "branch-alias": { - "dev-main": "2.7-dev" - }, "phpstan": { "includes": [ "phpstan/rules.neon" ] + }, + "branch-alias": { + "dev-main": "2.8-dev" } }, "autoload": { @@ -19022,7 +19028,7 @@ "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/composer/issues", "security": "https://github.com/composer/composer/security/policy", - "source": "https://github.com/composer/composer/tree/2.7.7" + "source": "https://github.com/composer/composer/tree/2.8.4" }, "funding": [ { @@ -19038,7 +19044,7 @@ "type": "tidelift" } ], - "time": "2024-06-10T20:11:12+00:00" + "time": "2024-12-11T10:57:47+00:00" }, { "name": "composer/metadata-minifier", @@ -19111,30 +19117,38 @@ }, { "name": "composer/pcre", - "version": "3.1.4", + "version": "3.3.2", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "04229f163664973f68f38f6f73d917799168ef24" + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/04229f163664973f68f38f6f73d917799168ef24", - "reference": "04229f163664973f68f38f6f73d917799168ef24", + "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e", + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e", "shasum": "" }, "require": { "php": "^7.4 || ^8.0" }, + "conflict": { + "phpstan/phpstan": "<1.11.10" + }, "require-dev": { - "phpstan/phpstan": "^1.3", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^5" + "phpstan/phpstan": "^1.12 || ^2", + "phpstan/phpstan-strict-rules": "^1 || ^2", + "phpunit/phpunit": "^8 || ^9" }, "type": "library", "extra": { "branch-alias": { "dev-main": "3.x-dev" + }, + "phpstan": { + "includes": [ + "extension.neon" + ] } }, "autoload": { @@ -19162,7 +19176,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.4" + "source": "https://github.com/composer/pcre/tree/3.3.2" }, "funding": [ { @@ -19178,7 +19192,7 @@ "type": "tidelift" } ], - "time": "2024-05-27T13:40:54+00:00" + "time": "2024-11-12T16:29:46+00:00" }, { "name": "composer/spdx-licenses", @@ -19602,16 +19616,16 @@ }, { "name": "drupal/coder", - "version": "8.3.24", + "version": "8.3.26", "source": { "type": "git", "url": "https://github.com/pfrenssen/coder.git", - "reference": "1a59890f972db5da091354f0191dec1037f7c582" + "reference": "fd98546ce3373aa7767240901eda47963ce64c82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pfrenssen/coder/zipball/1a59890f972db5da091354f0191dec1037f7c582", - "reference": "1a59890f972db5da091354f0191dec1037f7c582", + "url": "https://api.github.com/repos/pfrenssen/coder/zipball/fd98546ce3373aa7767240901eda47963ce64c82", + "reference": "fd98546ce3373aa7767240901eda47963ce64c82", "shasum": "" }, "require": { @@ -19649,32 +19663,32 @@ "issues": "https://www.drupal.org/project/issues/coder", "source": "https://www.drupal.org/project/coder" }, - "time": "2024-04-21T06:13:24+00:00" + "time": "2024-11-28T23:14:29+00:00" }, { "name": "drupal/core-dev", - "version": "10.3.1", + "version": "10.4.0", "source": { "type": "git", "url": "https://github.com/drupal/core-dev.git", - "reference": "2f117398ad5e7df411b4715c1b69ab4847c5cc08" + "reference": "9c6c089f73671083d9588affa287a59a80e6edc8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core-dev/zipball/2f117398ad5e7df411b4715c1b69ab4847c5cc08", - "reference": "2f117398ad5e7df411b4715c1b69ab4847c5cc08", + "url": "https://api.github.com/repos/drupal/core-dev/zipball/9c6c089f73671083d9588affa287a59a80e6edc8", + "reference": "9c6c089f73671083d9588affa287a59a80e6edc8", "shasum": "" }, "require": { "behat/mink": "^1.11", "behat/mink-browserkit-driver": "^2.2", "colinodell/psr-testlogger": "^1.2", - "composer/composer": "^2.7.7", + "composer/composer": "^2.8.1", "drupal/coder": "^8.3.10", "justinrainbow/json-schema": "^5.2", "lullabot/mink-selenium2-driver": "^1.7", "lullabot/php-webdriver": "^2.0.4", - "mglaman/phpstan-drupal": "^1.2.10", + "mglaman/phpstan-drupal": "^1.2.12", "micheh/phpcs-gitlab": "^1.1", "mikey179/vfsstream": "^1.6.11", "open-telemetry/exporter-otlp": "^1", @@ -19682,7 +19696,7 @@ "php-http/guzzle7-adapter": "^1.0", "phpspec/prophecy-phpunit": "^2", "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.11.0", + "phpstan/phpstan": "^1.12.4", "phpstan/phpstan-phpunit": "^1.3.16", "phpunit/phpunit": "^9.6.13", "symfony/browser-kit": "^6.4", @@ -19703,22 +19717,22 @@ ], "description": "require-dev dependencies from drupal/drupal; use in addition to drupal/core-recommended to run tests from drupal/core.", "support": { - "source": "https://github.com/drupal/core-dev/tree/10.3.1" + "source": "https://github.com/drupal/core-dev/tree/10.4.0" }, - "time": "2024-07-04T10:19:29+00:00" + "time": "2024-11-21T12:39:32+00:00" }, { "name": "google/protobuf", - "version": "v3.25.3", + "version": "v4.29.1", "source": { "type": "git", "url": "https://github.com/protocolbuffers/protobuf-php.git", - "reference": "983a87f4f8798a90ca3a25b0f300b8fda38df643" + "reference": "6042b5483f8029e42473faeb8ef75ba266278381" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/983a87f4f8798a90ca3a25b0f300b8fda38df643", - "reference": "983a87f4f8798a90ca3a25b0f300b8fda38df643", + "url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/6042b5483f8029e42473faeb8ef75ba266278381", + "reference": "6042b5483f8029e42473faeb8ef75ba266278381", "shasum": "" }, "require": { @@ -19747,9 +19761,9 @@ "proto" ], "support": { - "source": "https://github.com/protocolbuffers/protobuf-php/tree/v3.25.3" + "source": "https://github.com/protocolbuffers/protobuf-php/tree/v4.29.1" }, - "time": "2024-02-15T21:11:49+00:00" + "time": "2024-12-03T22:07:45+00:00" }, { "name": "jangregor/phpstan-prophecy", @@ -19812,23 +19826,23 @@ }, { "name": "lullabot/mink-selenium2-driver", - "version": "v1.7.3", + "version": "v1.7.4", "source": { "type": "git", "url": "https://github.com/Lullabot/MinkSelenium2Driver.git", - "reference": "91445897dda062790a741003c9c85d9bb2f902cf" + "reference": "145fe8ed1fb611be7409b70d609f71b0285f4724" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Lullabot/MinkSelenium2Driver/zipball/91445897dda062790a741003c9c85d9bb2f902cf", - "reference": "91445897dda062790a741003c9c85d9bb2f902cf", + "url": "https://api.github.com/repos/Lullabot/MinkSelenium2Driver/zipball/145fe8ed1fb611be7409b70d609f71b0285f4724", + "reference": "145fe8ed1fb611be7409b70d609f71b0285f4724", "shasum": "" }, "require": { "behat/mink": "^1.11@dev", "ext-json": "*", - "lullabot/php-webdriver": "^2.0.5", - "php": ">=7.2" + "lullabot/php-webdriver": "^2.0.6", + "php": ">=8.1" }, "replace": { "behat/mink-selenium2-driver": "1.7.0" @@ -19878,22 +19892,22 @@ "webdriver" ], "support": { - "source": "https://github.com/Lullabot/MinkSelenium2Driver/tree/v1.7.3" + "source": "https://github.com/Lullabot/MinkSelenium2Driver/tree/v1.7.4" }, - "time": "2024-07-17T16:07:12+00:00" + "time": "2024-08-08T07:40:04+00:00" }, { "name": "lullabot/php-webdriver", - "version": "v2.0.5", + "version": "v2.0.6", "source": { "type": "git", "url": "https://github.com/Lullabot/php-webdriver.git", - "reference": "b686c5fe74ae4f3d5f7ff6e45234d99562de9ff4" + "reference": "8c28db7151b8a73bd98861fe19972ac3f40184d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Lullabot/php-webdriver/zipball/b686c5fe74ae4f3d5f7ff6e45234d99562de9ff4", - "reference": "b686c5fe74ae4f3d5f7ff6e45234d99562de9ff4", + "url": "https://api.github.com/repos/Lullabot/php-webdriver/zipball/8c28db7151b8a73bd98861fe19972ac3f40184d2", + "reference": "8c28db7151b8a73bd98861fe19972ac3f40184d2", "shasum": "" }, "require": { @@ -19926,31 +19940,31 @@ ], "support": { "issues": "https://github.com/Lullabot/php-webdriver/issues", - "source": "https://github.com/Lullabot/php-webdriver/tree/v2.0.5" + "source": "https://github.com/Lullabot/php-webdriver/tree/v2.0.6" }, - "time": "2024-07-17T15:21:54+00:00" + "time": "2024-08-05T13:00:46+00:00" }, { "name": "mglaman/phpstan-drupal", - "version": "1.2.11", + "version": "1.3.2", "source": { "type": "git", "url": "https://github.com/mglaman/phpstan-drupal.git", - "reference": "e624a4b64de5b91a0c56852635af2115e9a6e08c" + "reference": "bbb92dee546da3988da851122cb2925f72c149f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mglaman/phpstan-drupal/zipball/e624a4b64de5b91a0c56852635af2115e9a6e08c", - "reference": "e624a4b64de5b91a0c56852635af2115e9a6e08c", + "url": "https://api.github.com/repos/mglaman/phpstan-drupal/zipball/bbb92dee546da3988da851122cb2925f72c149f3", + "reference": "bbb92dee546da3988da851122cb2925f72c149f3", "shasum": "" }, "require": { - "php": "^7.4 || ^8.0", + "php": "^8.1", "phpstan/phpstan": "^1.10.56", "phpstan/phpstan-deprecation-rules": "^1.1.4", "symfony/finder": "^4.2 || ^5.0 || ^6.0 || ^7.0", "symfony/yaml": "^4.2|| ^5.0 || ^6.0 || ^7.0", - "webflo/drupal-finder": "^1.2" + "webflo/drupal-finder": "^1.3.1" }, "require-dev": { "behat/mink": "^1.8", @@ -19971,6 +19985,12 @@ }, "type": "phpstan-extension", "extra": { + "phpstan": { + "includes": [ + "extension.neon", + "rules.neon" + ] + }, "branch-alias": { "dev-main": "1.0-dev" }, @@ -19981,20 +20001,14 @@ "tests/fixtures/drupal/libraries/{$name}": [ "type:drupal-library" ], + "tests/fixtures/drupal/themes/contrib/{$name}": [ + "type:drupal-theme" + ], "tests/fixtures/drupal/modules/contrib/{$name}": [ "type:drupal-module" ], "tests/fixtures/drupal/profiles/contrib/{$name}": [ "type:drupal-profile" - ], - "tests/fixtures/drupal/themes/contrib/{$name}": [ - "type:drupal-theme" - ] - }, - "phpstan": { - "includes": [ - "extension.neon", - "rules.neon" ] } }, @@ -20016,7 +20030,7 @@ "description": "Drupal extension and rules for PHPStan", "support": { "issues": "https://github.com/mglaman/phpstan-drupal/issues", - "source": "https://github.com/mglaman/phpstan-drupal/tree/1.2.11" + "source": "https://github.com/mglaman/phpstan-drupal/tree/1.3.2" }, "funding": [ { @@ -20032,7 +20046,7 @@ "type": "tidelift" } ], - "time": "2024-05-10T17:22:10+00:00" + "time": "2024-11-19T15:26:05+00:00" }, { "name": "micheh/phpcs-gitlab", @@ -20088,23 +20102,24 @@ }, { "name": "mikey179/vfsstream", - "version": "v1.6.11", + "version": "v1.6.12", "source": { "type": "git", "url": "https://github.com/bovigo/vfsStream.git", - "reference": "17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f" + "reference": "fe695ec993e0a55c3abdda10a9364eb31c6f1bf0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bovigo/vfsStream/zipball/17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f", - "reference": "17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f", + "url": "https://api.github.com/repos/bovigo/vfsStream/zipball/fe695ec993e0a55c3abdda10a9364eb31c6f1bf0", + "reference": "fe695ec993e0a55c3abdda10a9364eb31c6f1bf0", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=7.1.0" }, "require-dev": { - "phpunit/phpunit": "^4.5|^5.0" + "phpunit/phpunit": "^7.5||^8.5||^9.6", + "yoast/phpunit-polyfills": "^2.0" }, "type": "library", "extra": { @@ -20135,20 +20150,20 @@ "source": "https://github.com/bovigo/vfsStream/tree/master", "wiki": "https://github.com/bovigo/vfsStream/wiki" }, - "time": "2022-02-23T02:02:42+00:00" + "time": "2024-08-29T18:43:31+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.12.0", + "version": "1.12.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" + "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/123267b2c49fbf30d78a7b2d333f6be754b94845", + "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845", "shasum": "" }, "require": { @@ -20187,7 +20202,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.1" }, "funding": [ { @@ -20195,27 +20210,93 @@ "type": "tidelift" } ], - "time": "2024-06-12T14:39:25+00:00" + "time": "2024-11-08T17:47:46+00:00" + }, + { + "name": "nyholm/psr7-server", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/Nyholm/psr7-server.git", + "reference": "4335801d851f554ca43fa6e7d2602141538854dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Nyholm/psr7-server/zipball/4335801d851f554ca43fa6e7d2602141538854dc", + "reference": "4335801d851f554ca43fa6e7d2602141538854dc", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "require-dev": { + "nyholm/nsa": "^1.1", + "nyholm/psr7": "^1.3", + "phpunit/phpunit": "^7.0 || ^8.5 || ^9.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Nyholm\\Psr7Server\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com" + }, + { + "name": "Martijn van der Ven", + "email": "martijn@vanderven.se" + } + ], + "description": "Helper classes to handle PSR-7 server requests", + "homepage": "http://tnyholm.se", + "keywords": [ + "psr-17", + "psr-7" + ], + "support": { + "issues": "https://github.com/Nyholm/psr7-server/issues", + "source": "https://github.com/Nyholm/psr7-server/tree/1.1.0" + }, + "funding": [ + { + "url": "https://github.com/Zegnat", + "type": "github" + }, + { + "url": "https://github.com/nyholm", + "type": "github" + } + ], + "time": "2023-11-08T09:30:43+00:00" }, { "name": "open-telemetry/exporter-otlp", - "version": "1.0.4", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/exporter-otlp.git", - "reference": "342686bfce05867b56561a0af2fc8a4a8f27b3cc" + "reference": "9b6de12204f25f8ab9540b46d6e7b5151897ce18" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/exporter-otlp/zipball/342686bfce05867b56561a0af2fc8a4a8f27b3cc", - "reference": "342686bfce05867b56561a0af2fc8a4a8f27b3cc", + "url": "https://api.github.com/repos/opentelemetry-php/exporter-otlp/zipball/9b6de12204f25f8ab9540b46d6e7b5151897ce18", + "reference": "9b6de12204f25f8ab9540b46d6e7b5151897ce18", "shasum": "" }, "require": { "open-telemetry/api": "^1.0", "open-telemetry/gen-otlp-protobuf": "^1.1", "open-telemetry/sdk": "^1.0", - "php": "^7.4 || ^8.0", + "php": "^8.1", "php-http/discovery": "^1.14" }, "type": "library", @@ -20259,25 +20340,25 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2024-02-28T21:57:02+00:00" + "time": "2024-04-30T18:28:30+00:00" }, { "name": "open-telemetry/gen-otlp-protobuf", - "version": "1.1.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/gen-otlp-protobuf.git", - "reference": "76e2a44357f8c3fdcabcb070ec8a59e52ae3e3c3" + "reference": "66c3b98e998a726691c92e6405a82e6e7b8b169d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/gen-otlp-protobuf/zipball/76e2a44357f8c3fdcabcb070ec8a59e52ae3e3c3", - "reference": "76e2a44357f8c3fdcabcb070ec8a59e52ae3e3c3", + "url": "https://api.github.com/repos/opentelemetry-php/gen-otlp-protobuf/zipball/66c3b98e998a726691c92e6405a82e6e7b8b169d", + "reference": "66c3b98e998a726691c92e6405a82e6e7b8b169d", "shasum": "" }, "require": { - "google/protobuf": "^3.3.0", - "php": "^7.4 || ^8.0" + "google/protobuf": "^3.22 || ^4.0", + "php": "^8.0" }, "suggest": { "ext-protobuf": "For better performance, when dealing with the protobuf format" @@ -20322,45 +20403,52 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2024-01-16T21:54:57+00:00" + "time": "2024-10-30T11:49:49+00:00" }, { "name": "open-telemetry/sdk", - "version": "1.0.8", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/sdk.git", - "reference": "1da4c0ca4f1a3c0fe84b81729dadec16f464fa77" + "reference": "fb0ff8d8279a3776bd604791e2531dd0cc147e8b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/sdk/zipball/1da4c0ca4f1a3c0fe84b81729dadec16f464fa77", - "reference": "1da4c0ca4f1a3c0fe84b81729dadec16f464fa77", + "url": "https://api.github.com/repos/opentelemetry-php/sdk/zipball/fb0ff8d8279a3776bd604791e2531dd0cc147e8b", + "reference": "fb0ff8d8279a3776bd604791e2531dd0cc147e8b", "shasum": "" }, "require": { "ext-json": "*", - "open-telemetry/api": "^1.0", + "nyholm/psr7-server": "^1.1", + "open-telemetry/api": "~1.0 || ~1.1", "open-telemetry/context": "^1.0", "open-telemetry/sem-conv": "^1.0", - "php": "^7.4 || ^8.0", + "php": "^8.1", "php-http/discovery": "^1.14", "psr/http-client": "^1.0", "psr/http-client-implementation": "^1.0", "psr/http-factory-implementation": "^1.0", "psr/http-message": "^1.0.1|^2.0", "psr/log": "^1.1|^2.0|^3.0", + "ramsey/uuid": "^3.0 || ^4.0", "symfony/polyfill-mbstring": "^1.23", - "symfony/polyfill-php80": "^1.26", - "symfony/polyfill-php81": "^1.26", - "symfony/polyfill-php82": "^1.26" + "symfony/polyfill-php82": "^1.26", + "tbachert/spi": "^1.0.1" }, "suggest": { "ext-gmp": "To support unlimited number of synchronous metric readers", - "ext-mbstring": "To increase performance of string operations" + "ext-mbstring": "To increase performance of string operations", + "open-telemetry/sdk-configuration": "File-based OpenTelemetry SDK configuration" }, "type": "library", "extra": { + "spi": { + "OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\HookManagerInterface": [ + "OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\ExtensionHookManager" + ] + }, "branch-alias": { "dev-main": "1.0.x-dev" } @@ -20405,7 +20493,7 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2024-02-02T03:42:40+00:00" + "time": "2024-10-18T21:01:35+00:00" }, { "name": "open-telemetry/sem-conv", @@ -20584,21 +20672,21 @@ }, { "name": "php-http/guzzle7-adapter", - "version": "1.0.0", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/php-http/guzzle7-adapter.git", - "reference": "fb075a71dbfa4847cf0c2938c4e5a9c478ef8b01" + "reference": "03a415fde709c2f25539790fecf4d9a31bc3d0eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/guzzle7-adapter/zipball/fb075a71dbfa4847cf0c2938c4e5a9c478ef8b01", - "reference": "fb075a71dbfa4847cf0c2938c4e5a9c478ef8b01", + "url": "https://api.github.com/repos/php-http/guzzle7-adapter/zipball/03a415fde709c2f25539790fecf4d9a31bc3d0eb", + "reference": "03a415fde709c2f25539790fecf4d9a31bc3d0eb", "shasum": "" }, "require": { "guzzlehttp/guzzle": "^7.0", - "php": "^7.2 | ^8.0", + "php": "^7.3 | ^8.0", "php-http/httplug": "^2.0", "psr/http-client": "^1.0" }, @@ -20609,14 +20697,11 @@ }, "require-dev": { "php-http/client-integration-tests": "^3.0", + "php-http/message-factory": "^1.1", + "phpspec/prophecy-phpunit": "^2.0", "phpunit/phpunit": "^8.0|^9.3" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.2.x-dev" - } - }, "autoload": { "psr-4": { "Http\\Adapter\\Guzzle7\\": "src/" @@ -20640,9 +20725,9 @@ ], "support": { "issues": "https://github.com/php-http/guzzle7-adapter/issues", - "source": "https://github.com/php-http/guzzle7-adapter/tree/1.0.0" + "source": "https://github.com/php-http/guzzle7-adapter/tree/1.1.0" }, - "time": "2021-03-09T07:35:15+00:00" + "time": "2024-11-26T11:14:36+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -20821,26 +20906,27 @@ }, { "name": "phpspec/prophecy", - "version": "v1.19.0", + "version": "v1.20.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "67a759e7d8746d501c41536ba40cd9c0a07d6a87" + "reference": "a0165c648cab6a80311c74ffc708a07bb53ecc93" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/67a759e7d8746d501c41536ba40cd9c0a07d6a87", - "reference": "67a759e7d8746d501c41536ba40cd9c0a07d6a87", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/a0165c648cab6a80311c74ffc708a07bb53ecc93", + "reference": "a0165c648cab6a80311c74ffc708a07bb53ecc93", "shasum": "" }, "require": { "doctrine/instantiator": "^1.2 || ^2.0", - "php": "^7.2 || 8.0.* || 8.1.* || 8.2.* || 8.3.*", + "php": "^7.2 || 8.0.* || 8.1.* || 8.2.* || 8.3.* || 8.4.*", "phpdocumentor/reflection-docblock": "^5.2", "sebastian/comparator": "^3.0 || ^4.0 || ^5.0 || ^6.0", "sebastian/recursion-context": "^3.0 || ^4.0 || ^5.0 || ^6.0" }, "require-dev": { + "friendsofphp/php-cs-fixer": "^3.40", "phpspec/phpspec": "^6.0 || ^7.0", "phpstan/phpstan": "^1.9", "phpunit/phpunit": "^8.0 || ^9.0 || ^10.0" @@ -20884,22 +20970,22 @@ ], "support": { "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/v1.19.0" + "source": "https://github.com/phpspec/prophecy/tree/v1.20.0" }, - "time": "2024-02-29T11:52:51+00:00" + "time": "2024-11-19T13:12:41+00:00" }, { "name": "phpspec/prophecy-phpunit", - "version": "v2.2.0", + "version": "v2.3.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy-phpunit.git", - "reference": "16e1247e139434bce0bac09848bc5c8d882940fc" + "reference": "8819516c1b489ecee4c60db5f5432fac1ea8ac6f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy-phpunit/zipball/16e1247e139434bce0bac09848bc5c8d882940fc", - "reference": "16e1247e139434bce0bac09848bc5c8d882940fc", + "url": "https://api.github.com/repos/phpspec/prophecy-phpunit/zipball/8819516c1b489ecee4c60db5f5432fac1ea8ac6f", + "reference": "8819516c1b489ecee4c60db5f5432fac1ea8ac6f", "shasum": "" }, "require": { @@ -20907,6 +20993,9 @@ "phpspec/prophecy": "^1.18", "phpunit/phpunit": "^9.1 || ^10.1 || ^11.0" }, + "require-dev": { + "phpstan/phpstan": "^1.10" + }, "type": "library", "extra": { "branch-alias": { @@ -20936,28 +21025,28 @@ ], "support": { "issues": "https://github.com/phpspec/prophecy-phpunit/issues", - "source": "https://github.com/phpspec/prophecy-phpunit/tree/v2.2.0" + "source": "https://github.com/phpspec/prophecy-phpunit/tree/v2.3.0" }, - "time": "2024-03-01T08:33:58+00:00" + "time": "2024-11-19T13:24:17+00:00" }, { "name": "phpstan/extension-installer", - "version": "1.4.1", + "version": "1.4.3", "source": { "type": "git", "url": "https://github.com/phpstan/extension-installer.git", - "reference": "f6b87faf9fc7978eab2f7919a8760bc9f58f9203" + "reference": "85e90b3942d06b2326fba0403ec24fe912372936" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/extension-installer/zipball/f6b87faf9fc7978eab2f7919a8760bc9f58f9203", - "reference": "f6b87faf9fc7978eab2f7919a8760bc9f58f9203", + "url": "https://api.github.com/repos/phpstan/extension-installer/zipball/85e90b3942d06b2326fba0403ec24fe912372936", + "reference": "85e90b3942d06b2326fba0403ec24fe912372936", "shasum": "" }, "require": { "composer-plugin-api": "^2.0", "php": "^7.2 || ^8.0", - "phpstan/phpstan": "^1.9.0" + "phpstan/phpstan": "^1.9.0 || ^2.0" }, "require-dev": { "composer/composer": "^2.0", @@ -20978,11 +21067,15 @@ "MIT" ], "description": "Composer plugin for automatic installation of PHPStan extensions", + "keywords": [ + "dev", + "static analysis" + ], "support": { "issues": "https://github.com/phpstan/extension-installer/issues", - "source": "https://github.com/phpstan/extension-installer/tree/1.4.1" + "source": "https://github.com/phpstan/extension-installer/tree/1.4.3" }, - "time": "2024-06-10T08:20:49+00:00" + "time": "2024-09-04T20:21:43+00:00" }, { "name": "phpstan/phpdoc-parser", @@ -21033,16 +21126,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.12.12", + "version": "1.12.13", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "b5ae1b88f471d3fd4ba1aa0046234b5ca3776dd0" + "reference": "9b469068840cfa031e1deaf2fa1886d00e20680f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/b5ae1b88f471d3fd4ba1aa0046234b5ca3776dd0", - "reference": "b5ae1b88f471d3fd4ba1aa0046234b5ca3776dd0", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/9b469068840cfa031e1deaf2fa1886d00e20680f", + "reference": "9b469068840cfa031e1deaf2fa1886d00e20680f", "shasum": "" }, "require": { @@ -21087,25 +21180,25 @@ "type": "github" } ], - "time": "2024-11-28T22:13:23+00:00" + "time": "2024-12-17T17:00:20+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-deprecation-rules.git", - "reference": "fa8cce7720fa782899a0aa97b6a41225d1bb7b26" + "reference": "f94d246cc143ec5a23da868f8f7e1393b50eaa82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-deprecation-rules/zipball/fa8cce7720fa782899a0aa97b6a41225d1bb7b26", - "reference": "fa8cce7720fa782899a0aa97b6a41225d1bb7b26", + "url": "https://api.github.com/repos/phpstan/phpstan-deprecation-rules/zipball/f94d246cc143ec5a23da868f8f7e1393b50eaa82", + "reference": "f94d246cc143ec5a23da868f8f7e1393b50eaa82", "shasum": "" }, "require": { "php": "^7.2 || ^8.0", - "phpstan/phpstan": "^1.11" + "phpstan/phpstan": "^1.12" }, "require-dev": { "php-parallel-lint/php-parallel-lint": "^1.2", @@ -21132,27 +21225,27 @@ "description": "PHPStan rules for detecting usage of deprecated classes, methods, properties, constants and traits.", "support": { "issues": "https://github.com/phpstan/phpstan-deprecation-rules/issues", - "source": "https://github.com/phpstan/phpstan-deprecation-rules/tree/1.2.0" + "source": "https://github.com/phpstan/phpstan-deprecation-rules/tree/1.2.1" }, - "time": "2024-04-20T06:39:48+00:00" + "time": "2024-09-11T15:52:35+00:00" }, { "name": "phpstan/phpstan-phpunit", - "version": "1.4.0", + "version": "1.4.2", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-phpunit.git", - "reference": "f3ea021866f4263f07ca3636bf22c64be9610c11" + "reference": "72a6721c9b64b3e4c9db55abbc38f790b318267e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/f3ea021866f4263f07ca3636bf22c64be9610c11", - "reference": "f3ea021866f4263f07ca3636bf22c64be9610c11", + "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/72a6721c9b64b3e4c9db55abbc38f790b318267e", + "reference": "72a6721c9b64b3e4c9db55abbc38f790b318267e", "shasum": "" }, "require": { "php": "^7.2 || ^8.0", - "phpstan/phpstan": "^1.11" + "phpstan/phpstan": "^1.12" }, "conflict": { "phpunit/phpunit": "<7.0" @@ -21184,41 +21277,41 @@ "description": "PHPUnit extensions and rules for PHPStan", "support": { "issues": "https://github.com/phpstan/phpstan-phpunit/issues", - "source": "https://github.com/phpstan/phpstan-phpunit/tree/1.4.0" + "source": "https://github.com/phpstan/phpstan-phpunit/tree/1.4.2" }, - "time": "2024-04-20T06:39:00+00:00" + "time": "2024-12-17T17:20:49+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.31", + "version": "9.2.32", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965" + "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/48c34b5d8d983006bd2adc2d0de92963b9155965", - "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5", + "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.18 || ^5.0", + "nikic/php-parser": "^4.19.1 || ^5.1.0", "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.3", - "phpunit/php-text-template": "^2.0.2", - "sebastian/code-unit-reverse-lookup": "^2.0.2", - "sebastian/complexity": "^2.0", - "sebastian/environment": "^5.1.2", - "sebastian/lines-of-code": "^1.0.3", - "sebastian/version": "^3.0.1", - "theseer/tokenizer": "^1.2.0" + "phpunit/php-file-iterator": "^3.0.6", + "phpunit/php-text-template": "^2.0.4", + "sebastian/code-unit-reverse-lookup": "^2.0.3", + "sebastian/complexity": "^2.0.3", + "sebastian/environment": "^5.1.5", + "sebastian/lines-of-code": "^1.0.4", + "sebastian/version": "^3.0.2", + "theseer/tokenizer": "^1.2.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^9.6" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -21227,7 +21320,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.2-dev" + "dev-main": "9.2.x-dev" } }, "autoload": { @@ -21256,7 +21349,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.31" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.32" }, "funding": [ { @@ -21264,7 +21357,7 @@ "type": "github" } ], - "time": "2024-03-02T06:37:42+00:00" + "time": "2024-08-22T04:23:01+00:00" }, { "name": "phpunit/php-file-iterator", @@ -21509,16 +21602,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.20", + "version": "9.6.22", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "49d7820565836236411f5dc002d16dd689cde42f" + "reference": "f80235cb4d3caa59ae09be3adf1ded27521d1a9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/49d7820565836236411f5dc002d16dd689cde42f", - "reference": "49d7820565836236411f5dc002d16dd689cde42f", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f80235cb4d3caa59ae09be3adf1ded27521d1a9c", + "reference": "f80235cb4d3caa59ae09be3adf1ded27521d1a9c", "shasum": "" }, "require": { @@ -21529,11 +21622,11 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.12.0", + "myclabs/deep-copy": "^1.12.1", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.31", + "phpunit/php-code-coverage": "^9.2.32", "phpunit/php-file-iterator": "^3.0.6", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.4", @@ -21592,7 +21685,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.20" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.22" }, "funding": [ { @@ -21608,7 +21701,7 @@ "type": "tidelift" } ], - "time": "2024-07-10T11:45:39+00:00" + "time": "2024-12-05T13:48:26+00:00" }, { "name": "react/promise", @@ -22755,16 +22848,16 @@ }, { "name": "sirbrillig/phpcs-variable-analysis", - "version": "v2.11.19", + "version": "v2.11.21", "source": { "type": "git", "url": "https://github.com/sirbrillig/phpcs-variable-analysis.git", - "reference": "bc8d7e30e2005bce5c59018b7cdb08e9fb45c0d1" + "reference": "eb2b351927098c24860daa7484e290d3eed693be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sirbrillig/phpcs-variable-analysis/zipball/bc8d7e30e2005bce5c59018b7cdb08e9fb45c0d1", - "reference": "bc8d7e30e2005bce5c59018b7cdb08e9fb45c0d1", + "url": "https://api.github.com/repos/sirbrillig/phpcs-variable-analysis/zipball/eb2b351927098c24860daa7484e290d3eed693be", + "reference": "eb2b351927098c24860daa7484e290d3eed693be", "shasum": "" }, "require": { @@ -22775,9 +22868,9 @@ "dealerdirect/phpcodesniffer-composer-installer": "^0.7 || ^1.0", "phpcsstandards/phpcsdevcs": "^1.1", "phpstan/phpstan": "^1.7", - "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.5 || ^7.0 || ^8.0 || ^9.0", + "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.5 || ^7.0 || ^8.0 || ^9.0 || ^10.5.32 || ^11.3.3", "sirbrillig/phpcs-import-detection": "^1.1", - "vimeo/psalm": "^0.2 || ^0.3 || ^1.1 || ^4.24 || ^5.0@beta" + "vimeo/psalm": "^0.2 || ^0.3 || ^1.1 || ^4.24 || ^5.0" }, "type": "phpcodesniffer-standard", "autoload": { @@ -22809,7 +22902,7 @@ "source": "https://github.com/sirbrillig/phpcs-variable-analysis", "wiki": "https://github.com/sirbrillig/phpcs-variable-analysis/wiki" }, - "time": "2024-06-26T20:08:34+00:00" + "time": "2024-12-02T16:37:49+00:00" }, { "name": "slevomat/coding-standard", @@ -22878,16 +22971,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.10.2", + "version": "3.11.2", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "86e5f5dd9a840c46810ebe5ff1885581c42a3017" + "reference": "1368f4a58c3c52114b86b1abe8f4098869cb0079" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/86e5f5dd9a840c46810ebe5ff1885581c42a3017", - "reference": "86e5f5dd9a840c46810ebe5ff1885581c42a3017", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/1368f4a58c3c52114b86b1abe8f4098869cb0079", + "reference": "1368f4a58c3c52114b86b1abe8f4098869cb0079", "shasum": "" }, "require": { @@ -22954,20 +23047,20 @@ "type": "open_collective" } ], - "time": "2024-07-21T23:26:44+00:00" + "time": "2024-12-11T16:04:26+00:00" }, { "name": "symfony/browser-kit", - "version": "v6.4.8", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "62ab90b92066ef6cce5e79365625b4b1432464c8" + "reference": "65d4b3fd9556e4b5b41287bef93c671f8f9f86ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/62ab90b92066ef6cce5e79365625b4b1432464c8", - "reference": "62ab90b92066ef6cce5e79365625b4b1432464c8", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/65d4b3fd9556e4b5b41287bef93c671f8f9f86ab", + "reference": "65d4b3fd9556e4b5b41287bef93c671f8f9f86ab", "shasum": "" }, "require": { @@ -23006,7 +23099,7 @@ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/browser-kit/tree/v6.4.8" + "source": "https://github.com/symfony/browser-kit/tree/v6.4.13" }, "funding": [ { @@ -23022,20 +23115,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-10-25T15:07:50+00:00" }, { "name": "symfony/css-selector", - "version": "v6.4.8", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "4b61b02fe15db48e3687ce1c45ea385d1780fe08" + "reference": "cb23e97813c5837a041b73a6d63a9ddff0778f5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/4b61b02fe15db48e3687ce1c45ea385d1780fe08", - "reference": "4b61b02fe15db48e3687ce1c45ea385d1780fe08", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/cb23e97813c5837a041b73a6d63a9ddff0778f5e", + "reference": "cb23e97813c5837a041b73a6d63a9ddff0778f5e", "shasum": "" }, "require": { @@ -23071,7 +23164,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v6.4.8" + "source": "https://github.com/symfony/css-selector/tree/v6.4.13" }, "funding": [ { @@ -23087,20 +23180,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "symfony/dom-crawler", - "version": "v6.4.8", + "version": "v6.4.16", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "105b56a0305d219349edeb60a800082eca864e4b" + "reference": "4304e6ad5c894a9c72831ad459f627bfd35d766d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/105b56a0305d219349edeb60a800082eca864e4b", - "reference": "105b56a0305d219349edeb60a800082eca864e4b", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/4304e6ad5c894a9c72831ad459f627bfd35d766d", + "reference": "4304e6ad5c894a9c72831ad459f627bfd35d766d", "shasum": "" }, "require": { @@ -23138,7 +23231,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v6.4.8" + "source": "https://github.com/symfony/dom-crawler/tree/v6.4.16" }, "funding": [ { @@ -23154,20 +23247,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-11-13T15:06:22+00:00" }, { "name": "symfony/lock", - "version": "v6.4.8", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/lock.git", - "reference": "1387f50285c23607467c1f05b258bde65f1ab276" + "reference": "a69c3dd151ab7e14925f119164cfdf65d55392a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/lock/zipball/1387f50285c23607467c1f05b258bde65f1ab276", - "reference": "1387f50285c23607467c1f05b258bde65f1ab276", + "url": "https://api.github.com/repos/symfony/lock/zipball/a69c3dd151ab7e14925f119164cfdf65d55392a4", + "reference": "a69c3dd151ab7e14925f119164cfdf65d55392a4", "shasum": "" }, "require": { @@ -23217,7 +23310,7 @@ "semaphore" ], "support": { - "source": "https://github.com/symfony/lock/tree/v6.4.8" + "source": "https://github.com/symfony/lock/tree/v6.4.13" }, "funding": [ { @@ -23233,20 +23326,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-10-25T15:19:46+00:00" }, { "name": "symfony/phpunit-bridge", - "version": "v6.4.9", + "version": "v6.4.16", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "6e03e4db9696e0cfcda6537177c2c03dc49c45c8" + "reference": "cebafe2f1ad2d1e745c1015b7c2519592341e4e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/6e03e4db9696e0cfcda6537177c2c03dc49c45c8", - "reference": "6e03e4db9696e0cfcda6537177c2c03dc49c45c8", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/cebafe2f1ad2d1e745c1015b7c2519592341e4e6", + "reference": "cebafe2f1ad2d1e745c1015b7c2519592341e4e6", "shasum": "" }, "require": { @@ -23266,8 +23359,8 @@ "type": "symfony-bridge", "extra": { "thanks": { - "name": "phpunit/phpunit", - "url": "https://github.com/sebastianbergmann/phpunit" + "url": "https://github.com/sebastianbergmann/phpunit", + "name": "phpunit/phpunit" } }, "autoload": { @@ -23299,7 +23392,7 @@ "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v6.4.9" + "source": "https://github.com/symfony/phpunit-bridge/tree/v6.4.16" }, "funding": [ { @@ -23315,7 +23408,7 @@ "type": "tidelift" } ], - "time": "2024-06-21T16:04:15+00:00" + "time": "2024-11-13T15:06:22+00:00" }, { "name": "symfony/polyfill-php73", @@ -23393,6 +23486,58 @@ ], "time": "2024-09-09T11:45:10+00:00" }, + { + "name": "tbachert/spi", + "version": "v1.0.2", + "source": { + "type": "git", + "url": "https://github.com/Nevay/spi.git", + "reference": "2ddfaf815dafb45791a61b08170de8d583c16062" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Nevay/spi/zipball/2ddfaf815dafb45791a61b08170de8d583c16062", + "reference": "2ddfaf815dafb45791a61b08170de8d583c16062", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2.0", + "composer/semver": "^1.0 || ^2.0 || ^3.0", + "php": "^8.1" + }, + "require-dev": { + "composer/composer": "^2.0", + "infection/infection": "^0.27.9", + "phpunit/phpunit": "^10.5", + "psalm/phar": "^5.18" + }, + "type": "composer-plugin", + "extra": { + "class": "Nevay\\SPI\\Composer\\Plugin", + "branch-alias": { + "dev-main": "0.2.x-dev" + }, + "plugin-optional": true + }, + "autoload": { + "psr-4": { + "Nevay\\SPI\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "Service provider loading facility", + "keywords": [ + "service provider" + ], + "support": { + "issues": "https://github.com/Nevay/spi/issues", + "source": "https://github.com/Nevay/spi/tree/v1.0.2" + }, + "time": "2024-10-04T16:36:12+00:00" + }, { "name": "theseer/tokenizer", "version": "1.2.3", @@ -23508,6 +23653,6 @@ "platform": { "ext-json": "*" }, - "platform-dev": [], + "platform-dev": {}, "plugin-api-version": "2.6.0" } diff --git a/conf/cmi/core.entity_view_display.paragraph.hearings.default.yml b/conf/cmi/core.entity_view_display.paragraph.hearings.default.yml index 5508aa60ac..a2080ee010 100644 --- a/conf/cmi/core.entity_view_display.paragraph.hearings.default.yml +++ b/conf/cmi/core.entity_view_display.paragraph.hearings.default.yml @@ -31,9 +31,9 @@ content: weight: 0 region: content list: - weight: 100 settings: { } third_party_settings: { } + weight: 100 region: content hidden: search_api_excerpt: true diff --git a/conf/cmi/external_entities.external_entity_type.helfi_hearings.yml b/conf/cmi/external_entities.external_entity_type.helfi_hearings.yml index 1a5ed6b205..0d51d517f1 100644 --- a/conf/cmi/external_entities.external_entity_type.helfi_hearings.yml +++ b/conf/cmi/external_entities.external_entity_type.helfi_hearings.yml @@ -8,8 +8,8 @@ id: helfi_hearings label: 'Helfi: Hearing' label_plural: 'Helfi: Hearing' description: 'Helfi hearings from hearing api.' -generate_aliases: false read_only: true +generate_aliases: false field_mapper_id: jsonpath field_mapper_config: field_mappings: diff --git a/conf/cmi/external_entities.external_entity_type.helfi_news.yml b/conf/cmi/external_entities.external_entity_type.helfi_news.yml index cfc004c8e2..0b2c1bb385 100644 --- a/conf/cmi/external_entities.external_entity_type.helfi_news.yml +++ b/conf/cmi/external_entities.external_entity_type.helfi_news.yml @@ -8,8 +8,8 @@ id: helfi_news label: 'Helfi: News' label_plural: 'Helfi: News' description: '' -generate_aliases: false read_only: true +generate_aliases: false field_mapper_id: jsonpath field_mapper_config: field_mappings: diff --git a/conf/cmi/external_entities.external_entity_type.helfi_news_groups.yml b/conf/cmi/external_entities.external_entity_type.helfi_news_groups.yml index ee5d9ee0f7..16e4561eb5 100644 --- a/conf/cmi/external_entities.external_entity_type.helfi_news_groups.yml +++ b/conf/cmi/external_entities.external_entity_type.helfi_news_groups.yml @@ -8,8 +8,8 @@ id: helfi_news_groups label: 'Helfi: News groups' label_plural: 'Helfi: News groups' description: 'Retrieves news groups taxonomy terms from Helfi' -generate_aliases: null read_only: true +generate_aliases: null field_mapper_id: jsonpath field_mapper_config: field_mappings: diff --git a/conf/cmi/external_entities.external_entity_type.helfi_news_neighbourhoods.yml b/conf/cmi/external_entities.external_entity_type.helfi_news_neighbourhoods.yml index d66f4e7d7a..08a1c934fd 100644 --- a/conf/cmi/external_entities.external_entity_type.helfi_news_neighbourhoods.yml +++ b/conf/cmi/external_entities.external_entity_type.helfi_news_neighbourhoods.yml @@ -8,8 +8,8 @@ id: helfi_news_neighbourhoods label: 'Helfi: News neighbourhoods' label_plural: 'Helfi: News neighbourhoods' description: 'Retrieves news neighbourhoods taxonomy terms from Helfi' -generate_aliases: null read_only: true +generate_aliases: null field_mapper_id: jsonpath field_mapper_config: field_mappings: diff --git a/conf/cmi/external_entities.external_entity_type.helfi_news_tags.yml b/conf/cmi/external_entities.external_entity_type.helfi_news_tags.yml index 7edf9ccf8e..b5e242753a 100644 --- a/conf/cmi/external_entities.external_entity_type.helfi_news_tags.yml +++ b/conf/cmi/external_entities.external_entity_type.helfi_news_tags.yml @@ -8,8 +8,8 @@ id: helfi_news_tags label: 'Helfi: News tags' label_plural: 'Helfi: News tags' description: 'Retrieves news tags taxonomy terms from Helfi' -generate_aliases: null read_only: true +generate_aliases: null field_mapper_id: jsonpath field_mapper_config: field_mappings: diff --git a/conf/cmi/views.view.er_tpr_unit.yml b/conf/cmi/views.view.er_tpr_unit.yml index fb10e78a63..7bb6e44e2b 100644 --- a/conf/cmi/views.view.er_tpr_unit.yml +++ b/conf/cmi/views.view.er_tpr_unit.yml @@ -91,6 +91,7 @@ display: type: mini options: offset: 0 + pagination_heading_level: h4 items_per_page: 10 total_pages: null id: 0 @@ -105,7 +106,6 @@ display: items_per_page_options_all_label: '- All -' offset: false offset_label: Offset - pagination_heading_level: h4 exposed_form: type: basic options: diff --git a/conf/cmi/views.view.locked_services.yml b/conf/cmi/views.view.locked_services.yml index 5bfd2f4fff..5dc4705afc 100644 --- a/conf/cmi/views.view.locked_services.yml +++ b/conf/cmi/views.view.locked_services.yml @@ -381,6 +381,7 @@ display: type: full options: offset: 0 + pagination_heading_level: h4 items_per_page: 50 total_pages: null id: 0 @@ -398,7 +399,6 @@ display: offset: false offset_label: Offset quantity: 9 - pagination_heading_level: h4 exposed_form: type: basic options: diff --git a/conf/cmi/views.view.locked_units.yml b/conf/cmi/views.view.locked_units.yml index 34b40e43be..8c49c99a30 100644 --- a/conf/cmi/views.view.locked_units.yml +++ b/conf/cmi/views.view.locked_units.yml @@ -381,6 +381,7 @@ display: type: full options: offset: 0 + pagination_heading_level: h4 items_per_page: 50 total_pages: null id: 0 @@ -398,7 +399,6 @@ display: offset: false offset_label: Offset quantity: 9 - pagination_heading_level: h4 exposed_form: type: basic options: diff --git a/conf/cmi/views.view.service_list.yml b/conf/cmi/views.view.service_list.yml index e6b26601bd..661c8cc9c0 100644 --- a/conf/cmi/views.view.service_list.yml +++ b/conf/cmi/views.view.service_list.yml @@ -109,6 +109,7 @@ display: type: full options: offset: 0 + pagination_heading_level: h4 items_per_page: 4 total_pages: null id: 0 @@ -126,7 +127,6 @@ display: offset: false offset_label: Offset quantity: 9 - pagination_heading_level: h4 exposed_form: type: basic options: @@ -646,6 +646,7 @@ display: type: full options: offset: 0 + pagination_heading_level: h4 items_per_page: 5 total_pages: null id: 0 @@ -663,7 +664,6 @@ display: offset: false offset_label: Offset quantity: 9 - pagination_heading_level: h4 exposed_form: type: basic options: diff --git a/conf/cmi/views.view.service_units.yml b/conf/cmi/views.view.service_units.yml index 89e30dfd67..14bfa16b4b 100644 --- a/conf/cmi/views.view.service_units.yml +++ b/conf/cmi/views.view.service_units.yml @@ -93,6 +93,7 @@ display: type: full options: offset: 0 + pagination_heading_level: h4 items_per_page: 8 total_pages: null id: 0 @@ -110,7 +111,6 @@ display: offset: false offset_label: Offset quantity: 9 - pagination_heading_level: h4 exposed_form: type: basic options: diff --git a/conf/cmi/views.view.unit_search.yml b/conf/cmi/views.view.unit_search.yml index 5dd254a1de..c10b4f6282 100644 --- a/conf/cmi/views.view.unit_search.yml +++ b/conf/cmi/views.view.unit_search.yml @@ -286,6 +286,7 @@ display: type: full options: offset: 0 + pagination_heading_level: h4 items_per_page: 15 total_pages: null id: 0 @@ -303,7 +304,6 @@ display: offset: false offset_label: Offset quantity: 9 - pagination_heading_level: h4 exposed_form: type: basic options: diff --git a/public/modules/custom/grants_budget_components/src/TypedData/Definition/GrantsBudgetInfoDefinition.php b/public/modules/custom/grants_budget_components/src/TypedData/Definition/GrantsBudgetInfoDefinition.php index 4964ec97b3..b9a5b0d03c 100644 --- a/public/modules/custom/grants_budget_components/src/TypedData/Definition/GrantsBudgetInfoDefinition.php +++ b/public/modules/custom/grants_budget_components/src/TypedData/Definition/GrantsBudgetInfoDefinition.php @@ -61,7 +61,7 @@ public function getPropertyDefinitions(): array { * * @return $this */ - public function setPropertyDefinition($name, DataDefinitionInterface $definition = NULL) { + public function setPropertyDefinition($name, ?DataDefinitionInterface $definition = NULL) { $this->getPropertyDefinitions(); diff --git a/public/modules/custom/grants_handler/src/ApplicationGetterService.php b/public/modules/custom/grants_handler/src/ApplicationGetterService.php index da3b97238e..edcb1d80e4 100644 --- a/public/modules/custom/grants_handler/src/ApplicationGetterService.php +++ b/public/modules/custom/grants_handler/src/ApplicationGetterService.php @@ -273,7 +273,7 @@ public function getCompanyApplications( */ public function submissionObjectFromApplicationNumber( string $applicationNumber, - AtvDocument $document = NULL, + ?AtvDocument $document = NULL, bool $refetch = FALSE, bool $skipAccessCheck = FALSE, ): ?WebformSubmission { diff --git a/public/modules/custom/grants_handler/src/ApplicationHelpers.php b/public/modules/custom/grants_handler/src/ApplicationHelpers.php index 5e67ec59fe..71398128be 100644 --- a/public/modules/custom/grants_handler/src/ApplicationHelpers.php +++ b/public/modules/custom/grants_handler/src/ApplicationHelpers.php @@ -383,7 +383,7 @@ public static function getActiveApplicationWebforms(string $applicationTypeId, $ * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException */ - public static function isApplicationWebformDuplicatable(string $id, string $formId = NULL): bool { + public static function isApplicationWebformDuplicatable(string $id, ?string $formId = NULL): bool { $applicationForms = self::getActiveApplicationWebforms($id, $formId); return count($applicationForms['released']) <= 1 && count($applicationForms['development']) === 0; } diff --git a/public/modules/custom/grants_handler/src/Form/MessageForm.php b/public/modules/custom/grants_handler/src/Form/MessageForm.php index f2db8bf63a..b4a3306088 100644 --- a/public/modules/custom/grants_handler/src/Form/MessageForm.php +++ b/public/modules/custom/grants_handler/src/Form/MessageForm.php @@ -88,7 +88,7 @@ public function getFormId() { /** * {@inheritdoc} */ - public function buildForm(array $form, FormStateInterface $form_state, WebformSubmission $webform_submission = NULL): array { + public function buildForm(array $form, FormStateInterface $form_state, ?WebformSubmission $webform_submission = NULL): array { $tOpts = ['context' => 'grants_handler']; $storage = $form_state->getStorage(); diff --git a/public/modules/custom/grants_handler/src/GrantsHandlerNavigationHelper.php b/public/modules/custom/grants_handler/src/GrantsHandlerNavigationHelper.php index c8acccd2b8..b5aeed33ac 100644 --- a/public/modules/custom/grants_handler/src/GrantsHandlerNavigationHelper.php +++ b/public/modules/custom/grants_handler/src/GrantsHandlerNavigationHelper.php @@ -168,7 +168,7 @@ public function hasVisitedPage(WebformSubmissionInterface $webformSubmission, ?s */ public function getErrors( WebformSubmissionInterface $webformSubmission, - string $page = NULL, + ?string $page = NULL, ): array { if (empty($webformSubmission->id())) { diff --git a/public/modules/custom/grants_handler/src/LinkModifierService.php b/public/modules/custom/grants_handler/src/LinkModifierService.php index 9d1edd7de0..078d081ba6 100644 --- a/public/modules/custom/grants_handler/src/LinkModifierService.php +++ b/public/modules/custom/grants_handler/src/LinkModifierService.php @@ -33,7 +33,7 @@ public function __construct(RequestStack $request_stack) { /** * {@inheritdoc} */ - public function processInbound($path, Request $request = NULL) { + public function processInbound($path, ?Request $request = NULL) { if (str_starts_with($path, '/yleisavustushakemus/')) { $sid = str_replace('/yleisavustushakemus/', '', $path); $path = "/admin/structure/webform/manage/yleisavustushakemus/submission/" . $sid; diff --git a/public/modules/custom/grants_menu/src/ForceMenuLinkService.php b/public/modules/custom/grants_menu/src/ForceMenuLinkService.php index 782194ae00..027ebfe9c3 100644 --- a/public/modules/custom/grants_menu/src/ForceMenuLinkService.php +++ b/public/modules/custom/grants_menu/src/ForceMenuLinkService.php @@ -182,8 +182,8 @@ protected function createMenuLink(NodeInterface $node): void { */ protected function logMessage( string $messageType, - NodeInterface $node = NULL, - MenuLinkContentInterface $menuLink = NULL, + ?NodeInterface $node = NULL, + ?MenuLinkContentInterface $menuLink = NULL, mixed $exception = NULL, ): void { $message = match ($messageType) { diff --git a/public/modules/custom/grants_profile/src/ProfileConnector.php b/public/modules/custom/grants_profile/src/ProfileConnector.php index efa0467c3c..f3bfa89dba 100644 --- a/public/modules/custom/grants_profile/src/ProfileConnector.php +++ b/public/modules/custom/grants_profile/src/ProfileConnector.php @@ -61,7 +61,7 @@ public function __construct( * * @throws \Drupal\grants_profile\GrantsProfileException */ - public function initGrantsProfile(string $profileType, array $companyData = NULL): array { + public function initGrantsProfile(string $profileType, ?array $companyData = NULL): array { // Try to load Helsinki profile data. try { $profileData = $this->helsinkiProfiili->getUserProfileData(); diff --git a/public/modules/custom/grants_profile/src/UserRedirect.php b/public/modules/custom/grants_profile/src/UserRedirect.php index 974063a6a8..55bd15cd7f 100644 --- a/public/modules/custom/grants_profile/src/UserRedirect.php +++ b/public/modules/custom/grants_profile/src/UserRedirect.php @@ -39,14 +39,14 @@ public function __construct( /** * {@inheritdoc} */ - public function setLoginRedirection(string $url, AccountInterface $account = NULL): void { + public function setLoginRedirection(string $url, ?AccountInterface $account = NULL): void { $this->prepareDestination($url); } /** * {@inheritdoc} */ - public function setLogoutRedirection(string $url, AccountInterface $account = NULL) { + public function setLogoutRedirection(string $url, ?AccountInterface $account = NULL): void { $this->prepareDestination($url); } diff --git a/public/modules/custom/grants_profile/src/UserRedirectInterface.php b/public/modules/custom/grants_profile/src/UserRedirectInterface.php index 9129377103..ef6b6304f3 100644 --- a/public/modules/custom/grants_profile/src/UserRedirectInterface.php +++ b/public/modules/custom/grants_profile/src/UserRedirectInterface.php @@ -27,7 +27,7 @@ interface UserRedirectInterface { * @param \Drupal\Core\Session\AccountInterface|null $account * User account to set destination for. */ - public function setLoginRedirection(string $url, AccountInterface $account = NULL); + public function setLoginRedirection(string $url, ?AccountInterface $account = NULL); /** * Set Logout destination parameter to do redirect. @@ -37,6 +37,6 @@ public function setLoginRedirection(string $url, AccountInterface $account = NUL * @param \Drupal\Core\Session\AccountInterface|null $account * User account to set destination for. */ - public function setLogoutRedirection(string $url, AccountInterface $account = NULL); + public function setLogoutRedirection(string $url, ?AccountInterface $account = NULL); } diff --git a/tools/make/project/install.mk b/tools/make/project/install.mk index 4328f6532d..1982e3da4c 100644 --- a/tools/make/project/install.mk +++ b/tools/make/project/install.mk @@ -15,7 +15,7 @@ endif PHONY += oc-sync oc-sync: - docker run --env-file .env -it --rm -v .:/app --name helfi-oc ghcr.io/city-of-helsinki/drupal-oc-cli:latest sh -c "chmod +x /app/tools/make/project/db-sync.sh && /app/tools/make/project/db-sync.sh $(OC_LOGIN_TOKEN)" + @docker run --env-file .env -it --rm -v $(shell pwd):/app --name helfi-oc ghcr.io/city-of-helsinki/drupal-oc-cli:latest sh -c "chmod +x /app/tools/make/project/db-sync.sh && /app/tools/make/project/db-sync.sh $(OC_LOGIN_TOKEN)" $(call drush,sql-query --file=${DOCKER_PROJECT_ROOT}/$(DUMP_SQL_FILENAME),SQL dump imported) $(call drush,sql-query \"UPDATE file_managed SET uri = REPLACE(uri, 'azure://', 'public://');\",Sanitized Azure URIs) $(call drush,cr) From d3a114109a35bdf8d850da9816973dd3c348dd25 Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Wed, 18 Dec 2024 12:08:26 +0200 Subject: [PATCH 89/95] Add overwrites (#1617) * Add overwrites * Add overwrites 70 --- conf/cmi/grants_metadata.settings.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/conf/cmi/grants_metadata.settings.yml b/conf/cmi/grants_metadata.settings.yml index f37c30d87b..f989b5e553 100644 --- a/conf/cmi/grants_metadata.settings.yml +++ b/conf/cmi/grants_metadata.settings.yml @@ -484,6 +484,18 @@ overridden_configuration: applicationOpen: '2024-01-03T11:08:26' applicationClose: '2029-07-30T11:19:00' disableCopying: 0 + - + 68: + grants_metadata: + applicationOpen: '2024-01-03T11:08:26' + applicationClose: '2029-07-30T11:19:00' + disableCopying: 0 + - + 70: + grants_metadata: + applicationOpen: '2022-10-03T11:08:26' + applicationClose: '2029-07-30T11:19:00' + disableCopying: 0 - 71: grants_metadata: From b364b30771d96d9810ec2dbadf18d07d65b12de8 Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Wed, 18 Dec 2024 13:48:26 +0200 Subject: [PATCH 90/95] Uhf xx add 68 settings (#1618) * Add overwrites * Add overwrites 70 * Fix hyteed --- conf/cmi/webform.webform.hyteed_yleis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/cmi/webform.webform.hyteed_yleis.yml b/conf/cmi/webform.webform.hyteed_yleis.yml index e9caeae6b3..5ee41c350b 100644 --- a/conf/cmi/webform.webform.hyteed_yleis.yml +++ b/conf/cmi/webform.webform.hyteed_yleis.yml @@ -23,8 +23,8 @@ third_party_settings: applicationActingYearsNextCount: '1' applicationContinuous: 0 disableCopying: 0 - status: development - parent: d8472e68-d6bd-4de2-a409-f0a177bf9e94 + status: released + parent: '' avus2BreakingChange: 0 weight: 0 open: null From f0b805162c9393a26ba99bb5ba4db26138473dae Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Wed, 18 Dec 2024 14:35:51 +0200 Subject: [PATCH 91/95] Uhf xx add 68 settings (#1619) * Add overwrites * Add overwrites 70 * Fix hyteed * Fix sotepeed + import --- conf/cmi/webform.webform.sotepe_yleis.yml | 6 +++--- .../src/Commands/WebformConfigOverrideCommands.php | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/conf/cmi/webform.webform.sotepe_yleis.yml b/conf/cmi/webform.webform.sotepe_yleis.yml index a1bd7fe6fb..3199ad7d68 100644 --- a/conf/cmi/webform.webform.sotepe_yleis.yml +++ b/conf/cmi/webform.webform.sotepe_yleis.yml @@ -17,14 +17,14 @@ third_party_settings: 49: '49' applicationTargetGroup: '30' applicationOpen: '2022-10-03T11:08:26' - applicationClose: '2029-07-30T11:19:00' + applicationClose: '2024-07-30T11:19:00' applicationActingYearsType: next_x_years applicationActingYears: { } applicationActingYearsNextCount: '1' applicationContinuous: 0 disableCopying: 0 - status: development - parent: d8472e68-d6bd-4de2-a409-f0a177bf9e94 + status: released + parent: "" avus2BreakingChange: 0 weight: 0 open: null diff --git a/public/modules/custom/grants_webform_import/src/Commands/WebformConfigOverrideCommands.php b/public/modules/custom/grants_webform_import/src/Commands/WebformConfigOverrideCommands.php index aaddf6c326..710f5f2b00 100644 --- a/public/modules/custom/grants_webform_import/src/Commands/WebformConfigOverrideCommands.php +++ b/public/modules/custom/grants_webform_import/src/Commands/WebformConfigOverrideCommands.php @@ -259,7 +259,7 @@ private function getApplicationTypeIdMapping(): array { // Get an array of all the items with a "parent". $itemsWithParent = array_filter($mapping, function ($item) { - return isset($item['parent']); + return isset($item['parent']) && $item['parent'] !== ""; }); // Get the parent UUIDs. From 7b47d5a07b8aa529009fabfc57740d21e64c0c00 Mon Sep 17 00:00:00 2001 From: Janne Suominen Date: Fri, 20 Dec 2024 09:53:40 +0200 Subject: [PATCH 92/95] Update webform configs in install folder. (#1609) * Update webform configs in install folder. * Add READMEs --- .../grants_admin_applications/README.md | 4 +- .../config/install/webform.settings.yml | 20 +- ...bform.asukasosallisuus_pienavustushake.yml | 805 ++++++++++ ...bform.asukasosallisuus_yleis_ja_toimin.yml | 925 +++++++++++ .../webform.webform.grants_handler.yml | 7 +- .../webform.webform.hyte_yleisavustus.yml | 842 ++++++++++ .../install/webform.webform.hyteed_yleis.yml | 906 +++++++++++ ...ebform.iakkaiden_kulttuuri_ja_liikunta.yml | 1418 +++++++++++++++++ .../install/webform.webform.kasko_ip_lisa.yml | 39 +- ...bform.kasvatus_ja_koulutus_toiminta_av.yml | 1181 ++++++++++++++ ...bform.kasvatus_ja_koulutus_yleisavustu.yml | 130 +- ...bform.kaupunginkanslia_tyollisyysavust.yml | 975 ++++++++++++ .../install/webform.webform.kuva_projekti.yml | 259 +-- .../install/webform.webform.kuva_toiminta.yml | 395 +++-- .../install/webform.webform.leiriselvitys.yml | 627 ++++++++ ....webform.liikunta_laitosavustushakemus.yml | 843 ++++++++++ ...bform.liikunta_suunnistuskartta_avustu.yml | 520 ++++++ .../webform.webform.liikunta_tapahtuma.yml | 331 ++-- ...bform.liikunta_toiminta_ja_tilankaytto.yml | 1203 ++++++++++++++ ...m.webform.liikunta_yleisavustushakemus.yml | 99 +- ...bform.nuorisopalvelut_toiminta_ja_palk.yml | 109 +- ...bform.nuorisotoiminta_projektiavustush.yml | 1030 ++++++++++++ .../install/webform.webform.nuorlomaleir.yml | 97 +- .../webform.webform.nuortoimpalkka.yml | 1205 ++++++++++++++ ...bform.webform.performance_test_webform.yml | 746 +++++++++ .../install/webform.webform.sotepe_yleis.yml | 906 +++++++++++ ...bform.taide_ja_kulttuuri_kehittamisavu.yml | 173 +- ...bform.taide_ja_kulttuuriavustukset_tai.yml | 351 ++-- .../webform.webform.yleisavustushakemus.yml | 166 +- ...webform.ymparistopalvelut_yleisavustus.yml | 885 ++++++++++ .../webform.webform_options.yes_no.yml | 6 +- 31 files changed, 16284 insertions(+), 919 deletions(-) create mode 100644 public/modules/custom/grants_handler/config/install/webform.webform.asukasosallisuus_pienavustushake.yml create mode 100644 public/modules/custom/grants_handler/config/install/webform.webform.asukasosallisuus_yleis_ja_toimin.yml create mode 100644 public/modules/custom/grants_handler/config/install/webform.webform.hyte_yleisavustus.yml create mode 100644 public/modules/custom/grants_handler/config/install/webform.webform.hyteed_yleis.yml create mode 100644 public/modules/custom/grants_handler/config/install/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml create mode 100644 public/modules/custom/grants_handler/config/install/webform.webform.kasvatus_ja_koulutus_toiminta_av.yml create mode 100644 public/modules/custom/grants_handler/config/install/webform.webform.kaupunginkanslia_tyollisyysavust.yml create mode 100644 public/modules/custom/grants_handler/config/install/webform.webform.leiriselvitys.yml create mode 100644 public/modules/custom/grants_handler/config/install/webform.webform.liikunta_laitosavustushakemus.yml create mode 100644 public/modules/custom/grants_handler/config/install/webform.webform.liikunta_suunnistuskartta_avustu.yml create mode 100644 public/modules/custom/grants_handler/config/install/webform.webform.liikunta_toiminta_ja_tilankaytto.yml create mode 100644 public/modules/custom/grants_handler/config/install/webform.webform.nuorisotoiminta_projektiavustush.yml create mode 100644 public/modules/custom/grants_handler/config/install/webform.webform.nuortoimpalkka.yml create mode 100644 public/modules/custom/grants_handler/config/install/webform.webform.performance_test_webform.yml create mode 100644 public/modules/custom/grants_handler/config/install/webform.webform.sotepe_yleis.yml create mode 100644 public/modules/custom/grants_handler/config/install/webform.webform.ymparistopalvelut_yleisavustus.yml diff --git a/public/modules/custom/grants_admin_applications/README.md b/public/modules/custom/grants_admin_applications/README.md index 09e95285ca..465f7c230a 100644 --- a/public/modules/custom/grants_admin_applications/README.md +++ b/public/modules/custom/grants_admin_applications/README.md @@ -1,3 +1,5 @@ # Admin functionalities for grants handler -Mostly these are for deleting unwanted documents from ATV. +Module provides a way to delete testing documents from ATV and Avus2 by giving copypasteable list to be sent to Avus2 developer so they can delete applications. + +One needs to know the user uuid and y-tunnus to be able to delete things. These can be found from ATV document. diff --git a/public/modules/custom/grants_handler/config/install/webform.settings.yml b/public/modules/custom/grants_handler/config/install/webform.settings.yml index 8f32e314c0..af11329b16 100644 --- a/public/modules/custom/grants_handler/config/install/webform.settings.yml +++ b/public/modules/custom/grants_handler/config/install/webform.settings.yml @@ -3,6 +3,7 @@ _core: langcode: fi settings: default_status: open + default_categories: { } default_page: true default_page_base_path: /form default_ajax: false @@ -14,7 +15,7 @@ settings: default_delete_button_label: Poista default_form_submit_once: false default_form_open_message: 'Tätä lomaketta ei ole vielä avattu lähetyksille.' - default_form_close_message: 'Sorry… This form is closed to new submissions.' + default_form_close_message: 'Tämä hakemuspohja on suljettu.' default_form_exception_message: 'Unable to display this webform. Please contact the site administrator.' default_form_confidential_message: 'Tämä lomake on luottamuksellinen. Sinun täytyy kirjautua ulos lähettääksesi se.' default_form_access_denied_message: 'Please login to access this form.' @@ -23,19 +24,19 @@ settings: default_form_disable_inline_errors: false default_form_required: false default_form_required_label: 'Indicates required field' - default_form_unsaved: false + default_form_unsaved: true default_form_disable_back: false - default_form_submit_back: false + default_form_submit_back: true default_form_details_toggle: true default_form_file_limit: '' - default_wizard_prev_button_label: 'Previous' - default_wizard_next_button_label: 'Next' + default_wizard_prev_button_label: Previous + default_wizard_next_button_label: Next default_wizard_start_label: Alkaa default_wizard_confirmation_label: Valmis default_wizard_toggle_show_label: 'Näytä kaikki' default_wizard_toggle_hide_label: 'Piilota kaikki' default_preview_next_button_label: Preview - default_preview_prev_button_label: 'Previous' + default_preview_prev_button_label: Previous default_preview_label: Preview default_preview_title: '[webform:title]: Preview' default_preview_message: 'Please review your submission. Your submission is not complete until you press the "Submit" button!' @@ -46,6 +47,7 @@ settings: default_draft_pending_multiple_message: 'You have pending drafts for this webform. View your pending drafts.' default_confirmation_message: 'Lisätty uusi lähetys lomakkeelle [webform:title].' default_confirmation_back_label: 'Back to form' + default_confirmation_noindex: true default_limit_total_message: 'No more submissions are permitted.' default_limit_user_message: 'No more submissions are permitted.' default_submission_label: '[webform_submission:submitted-to]: Submission #[webform_submission:serial]' @@ -240,15 +242,13 @@ element: default_empty_option: true default_empty_option_required: '' default_empty_option_optional: '' - default_algolia_places_app_id: '' - default_algolia_places_api_key: '' excluded_elements: password: password password_confirm: password_confirm html_editor: disabled: false - element_format: '' - mail_format: '' + element_format: webform_default + mail_format: webform_default tidy: true make_unused_managed_files_temporary: true file: diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.asukasosallisuus_pienavustushake.yml b/public/modules/custom/grants_handler/config/install/webform.webform.asukasosallisuus_pienavustushake.yml new file mode 100644 index 0000000000..ad82299cb1 --- /dev/null +++ b/public/modules/custom/grants_handler/config/install/webform.webform.asukasosallisuus_pienavustushake.yml @@ -0,0 +1,805 @@ +uuid: 1d73a743-105b-4cb3-8876-9dcbb6d1d5f6 +langcode: fi +status: open +dependencies: + module: + - grants_handler + - grants_metadata +third_party_settings: + grants_metadata: + applicationTypeSelect: '64' + applicationType: ASUKASPIEN + applicationTypeID: '64' + applicationIndustry: KANSLIA + applicantTypes: + registered_community: registered_community + unregistered_community: unregistered_community + private_person: private_person + applicationTypeTerms: + 66: '66' + applicationTargetGroup: '25' + applicationOpen: '2024-01-31T00:00:00' + applicationClose: '2024-12-30T16:00:00' + applicationActingYearsType: current_and_next_x_years + applicationActingYears: { } + applicationActingYearsNextCount: '0' + applicationContinuous: 0 + disableCopying: 0 + status: released +weight: 0 +open: null +close: null +uid: 1 +template: false +archive: false +id: asukasosallisuus_pienavustushake +title: 'Asukasosallisuus, pienavustushakemus' +description: ASUKASPIEN +categories: + - Tuotannossa +elements: |- + applicant_type: + '#type': hidden + '#title': 'Hakijan tyyppi' + 1_hakijan_tiedot: + '#type': webform_wizard_page + '#title': '1. Hakijan tiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + application_number: + '#type': hidden + '#title': Hakemusnumero + '#disabled': true + status: + '#type': hidden + '#title': 'Hakemuksen tila' + '#readonly': true + hakemusprofiili: + '#type': webform_section + '#title': 'Haetut tiedot' + '#attributes': + class: + - grants-profile--imported-section + prh_markup: + '#type': webform_markup + '#markup': 'Tiedot on haettu hakuprofiilistasi.' + hakijan_tiedot: + '#type': applicant_info + '#title': Hakija + contact_person_email_section: + '#type': webform_section + '#title': Sähköposti + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + contact_markup: + '#type': webform_markup + '#markup': 'Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.' + email: + '#type': email + '#title': Sähköpostiosoite + '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' + '#size': 63 + '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' + '#states': + required: + ':input[name="applicant_type"]': + value: registered_community + contact_person_section: + '#type': webform_section + '#title': 'Hakemuksen yhteyshenkilö' + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + contact_person: + '#type': textfield + '#title': Yhteyshenkilö + '#autocomplete': 'off' + '#required': true + '#attributes': + class: + - webform--large + '#size': 63 + contact_person_phone_number: + '#type': textfield + '#title': Puhelinnumero + '#required': true + '#autocomplete': 'off' + '#attributes': + class: + - webform--medium + '#size': 32 + osoite: + '#type': webform_section + '#title': Osoite + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + community_address: + '#type': community_address_composite + '#title': 'Yhteisön osoite' + '#help': 'Jos haluat lisätä, poistaa tai muuttaa osoitetietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään osoitetietoa omiin tietoihin.' + '#attributes': + class: + - webform--large + '#required': true + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + tilinumero: + '#type': webform_section + '#title': Tilinumero + bank_account: + '#type': bank_account_composite + '#title': Tilinumero + '#help': 'Jos haluat lisätä, poistaa tai muuttaa tilinumerotietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään tilinumerotietoa omiin tietoihin.' + '#attributes': + class: + - webform--medium + '#required': true + toiminnasta_vastaavat_henkilot: + '#type': webform_section + '#title': 'Toiminnasta vastaavat henkilöt' + '#states': + visible: + ':input[name="applicant_type"]': + '!value': private_person + community_officials: + '#type': community_officials_composite + '#help': 'Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.' + '#title': 'Valitse toiminnasta vastaavat henkilöt' + '#multiple': true + '#multiple__item_label': henkilö + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää henkilö' + '#wrapper_attributes': + class: + - community_officials_wrapper + '#attributes': + class: + - webform--large + 2_avustustiedot: + '#type': webform_wizard_page + '#title': '2. Avustustiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + avustuksen_tiedot: + '#type': webform_section + '#title': 'Avustuksen tiedot' + acting_year: + '#type': select + '#title': 'Vuosi, jolle haen avustusta' + '#options': + 2024: '2024' + '#required': true + avustuslajit: + '#type': webform_section + '#title': Avustuslajit + subventions: + '#type': grants_compensations + '#title': Avustukset + '#multiple': true + '#subventionType': + 38: '38' + '#required': true + '#multiple__header': true + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more': false + '#attributes': + class: + - subventions + kayttotarkoitus: + '#type': webform_section + '#title': Käyttötarkoitus + purpose_intro_text: + '#type': webform_markup + '#markup': '

Kuvaus kaikille avoimesta maksuttomasta toiminnasta, johon avustusta haetaan sekä talousarvio kustannusten kohdentumisesta.

' + purpose: + '#type': textarea + '#title': 'Lyhyt kuvaus haettavan / haettavien avustusten käyttötarkoituksista' + '#help': '

Kerro mitä tarkoitusta varten avustusta haetaan, erittele tarvittaessa eri käyttökohteet. Kerro myös mitä avustuksella on tarkoitus saada aikaiseksi ja millaisia tavoitteita avustettavaan toimintaan liittyy.

' + '#required': true + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + muut_samaan_tarkoitukseen_myonnetyt_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen myönnetyt avustukset' + info_muut_samaan_tarkoitukseen_myonnetty: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on myönnetty muualta kuin Helsingin kaupungilta kuluvana tai kahtena edellisenä verovuotena. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_saaneet_muita_avustuksia: + '#type': radios + '#title': 'Olemme saaneet muita avustuksia' + '#description_display': before + '#options': + 1: Kyllä + 0: Ei + myonnetty_avustus: + '#type': webform_custom_composite + '#title': 'Lisää myönnetty avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + required: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'myönnetty avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi myönnetty avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi myönnetty avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + '#attributes': + class: + - webform--large + year: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': Vuosi + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#required': true + '#title': 'Myönnetyn avustuksen summa' + '#attributes': + class: + - webform--small + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + muut_samaan_tarkoitukseen_haetut_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen haetut avustukset' + info_muut_samaan_tarkoitukseen_haettu: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on haettu muualta kuin Helsingin kaupungilta, eikä päätöstä ole vielä tehty. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: + '#type': radios + '#title': 'Olemme hakeneet avustuksia muualta kuin Helsingin kaupungilta' + '#options': + 1: Kyllä + 0: Ei + haettu_avustus_tieto: + '#type': webform_custom_composite + '#title': 'Lisää uusi haettu avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta"]': + value: '1' + required: + ':input[name="olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'haettu avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi haettu avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi haettu avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + '#attributes': + class: + - webform--large + year: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': Vuosi + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#required': true + '#title': 'Haetun avustuksen summa' + '#attributes': + class: + - webform--small + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + kaupungilta_saadut_lainat_ja_takaukset: + '#type': webform_section + '#title': 'Kaupungilta saadut lainat ja takaukset' + kaupungilta_saadut_1: + '#type': webform_markup + '#markup': 'Kaupungilta saaduista lainoista on mainittava alkuperäinen lainamäärä, jäljellä oleva lainamäärä, laina-aika, korkoprosentti ja mihin tarkoitukseen laina on myönnetty. Takauksista ilmoitetaan niiden raha-arvo ja tarkoitus.' + benefits_loans: + '#type': textarea + '#title': 'Kuvaus lainoista ja takauksista' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + kaupungilta_saatu_tiloihin_liittyva_tuki: + '#type': webform_section + '#title': 'Kaupungilta saatu tiloihin liittyvä tuki' + tilate_1: + '#type': webform_markup + '#markup': 'Tilat, jotka kaupunki on antanut korvauksetta tai vuokrannut hakijan käyttöön (tilan nimi tai osoite, vuokran määrä €/kk)' + benefits_premises: + '#type': textarea + '#title': 'Kuvaus tiloihin liittyvästä tuesta' + '#maxlength': 5000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + 3_yhteison_tiedot: + '#type': webform_wizard_page + '#title': '3. Yhteisön toiminta' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + business_info: + '#type': webform_section + '#title': 'Toiminnan kuvaus' + business_purpose: + '#type': textarea + '#title': 'Toiminnan kuvaus' + '#help': 'Tieto haetaan omat tiedot -osiosta' + '#maxlength': 500 + '#counter_type': character + '#counter_maximum': 500 + '#counter_maximum_message': '%d/500 merkkiä jäljellä' + community_practices_business: + '#type': radios + '#title': 'Harjoittaako yhteisö liiketoimintaa' + '#options': + 1: Kyllä + 0: Ei + '#options_display': side_by_side + '#options_description_display': help + '#required': true + ensimmainen_otsikko: + '#type': webform_section + '#title': Jäsenmaksut + fee_person: + '#type': textfield + '#title': 'Henkilöjäsenen jäsenmaksu (€ / vuosi)' + '#attributes': + class: + - webform--sall + '#maxlength': 50 + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + '#size': 16 + fee_community: + '#type': textfield + '#title': 'Yhteisöjäsen (€ / vuosi)' + '#attributes': + class: + - webform--small + '#maxlength': 50 + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + '#size': 16 + jasenmaara: + '#type': webform_section + '#title': Jäsenmäärä + jasenmaara_fieldset: + '#type': fieldset + '#title': Jäsenmäärä + '#help': 'Jos yhteisöllä on jäseniä, merkitse ne tähän.' + '#attributes': + class: + - grants-fieldset + - grants-fieldset-short + members_applicant_person_global: + '#type': textfield + '#title': 'Henkilöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta henkilöjäsentä yhteisöllä on tällä hetkellä?' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + members_applicant_person_local: + '#type': textfield + '#title': 'Helsinkiläisiä henkilöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta helsinkiläistä henkilöjäsentä yhteisöllä on tällä hetkellä?' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + members_applicant_community_global: + '#type': textfield + '#title': Yhteisöjäseniä + '#help': 'Kuinka monta jäsenmaksun maksanutta yhteisöjäsentä yhteisöllä on tällä hetkellä? Yhteisöjäseniä ovat muut kuin henkilöjäsenet, esimerkiksi yhdistykset, säätiöt, yritykset tai kunnat.' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + members_applicant_community_local: + '#type': textfield + '#title': 'Helsinkiläisiä yhteisöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta helsinkiläistä yhteisöjäsentä yhteisöllä on tällä hetkellä? Yhteisöjäseniä ovat muut kuin henkilöjäsenet, esimerkiksi yhdistykset, säätiöt, yritykset tai kunnat.' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + lisatiedot_ja_liitteet: + '#type': webform_wizard_page + '#title': '4. Lisätiedot ja liitteet' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + lisatietoja_hakemukseen_liittyen: + '#type': webform_section + '#title': 'Lisätietoja hakemukseen liittyen' + additional_information: + '#type': textarea + '#title': Lisätiedot + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' + '#counter_type': character + '#attributes': + class: + - webform--large + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + liitteet: + '#type': webform_section + '#title': Liitteet + processed_text: + '#type': webform_markup + '#markup': | +
+
+
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.

+
+
+
+ extra_info: + '#type': textarea + '#title': 'Lisäselvitys liitteistä' + '#counter_type': character + '#attributes': + class: + - webform--large + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + muu_liite: + '#type': grants_attachments + '#title': 'Muu liite' + '#multiple': 10 + '#filetype': '0' + '#title_display': before + '#multiple__item_label': liite + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää liite' + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + actions: + '#type': webform_actions + '#title': 'Submit button(s)' + '#submit__label': Lähetä + '#draft__label': 'Tallenna keskeneräisenä' + '#wizard_prev__label': 'Edellinen' + '#wizard_next__label': 'Seuraava' + '#preview_prev__label': 'Edellinen' + '#preview_next__label': 'Esikatseluun' + '#delete_hide': false + '#delete__label': 'Poista keskeneräinen' + '#delete__attributes': + class: + - hds-button + - hds-button--primary + '#delete__dialog': true +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: source_entity_webform + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: false + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: true + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: true + form_disable_back: false + form_submit_back: true + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: { } + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: true + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: true + wizard_progress_states: false + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '6. Valmis' + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: '' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava + wizard_toggle: false + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 2 + preview_label: '5. Vahvista, esikatsele ja lähetä' + preview_title: 'Vahvista, esikatsele ja lähetä' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: true + preview_exclude_empty_checkbox: false + draft: all + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: none + confirmation_url: '' + confirmation_title: '' + confirmation_message: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: false + confirmation_exclude_token: false + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: draft + purge_days: 365 + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - authenticated + users: { } + permissions: { } + view_any: + roles: { } + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: + grants_handler: + id: grants_handler + handler_id: grants_handler + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: 0 + settings: + debug: false +variants: { } diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.asukasosallisuus_yleis_ja_toimin.yml b/public/modules/custom/grants_handler/config/install/webform.webform.asukasosallisuus_yleis_ja_toimin.yml new file mode 100644 index 0000000000..c6b1c01061 --- /dev/null +++ b/public/modules/custom/grants_handler/config/install/webform.webform.asukasosallisuus_yleis_ja_toimin.yml @@ -0,0 +1,925 @@ +uuid: 9c20db6c-02e7-4204-8f05-5fa5a9777354 +langcode: fi +status: open +dependencies: + module: + - grants_handler + - grants_metadata +third_party_settings: + grants_metadata: + applicationTypeSelect: '67' + applicationType: ASUKASYLEISTOIM + applicationTypeID: '67' + applicationIndustry: KANSLIA + applicantTypes: + registered_community: registered_community + applicationTypeTerms: + 49: '49' + 45: '45' + applicationTargetGroup: '25' + applicationOpen: '2024-05-02T00:00:00' + applicationClose: '2024-06-03T16:00:00' + applicationActingYearsType: next_x_years + applicationActingYears: { } + applicationActingYearsNextCount: '1' + applicationContinuous: 0 + disableCopying: 0 + status: released +weight: 0 +open: null +close: null +uid: 1 +template: false +archive: false +id: asukasosallisuus_yleis_ja_toimin +title: 'Asukasosallisuus, yleis- ja toiminta-avustushakemus' +description: ASUKASYLEISTOIM +categories: + - Tuotannossa +elements: |- + 1_hakijan_tiedot: + '#type': webform_wizard_page + '#title': '1. Hakijan tiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + application_number: + '#type': hidden + '#title': Hakemusnumero + '#disabled': true + status: + '#type': hidden + '#title': 'Hakemuksen tila' + '#readonly': true + applicant_type: + '#type': hidden + '#title': 'Hakijan tyyppi' + hakemusprofiili: + '#type': webform_section + '#title': 'Hakijan tiedot' + '#attributes': + class: + - grants-profile--imported-section + prh_markup: + '#type': webform_markup + '#markup': 'Tiedot on haettu hakuprofiilistasi.' + hakijan_tiedot: + '#type': applicant_info + '#title': 'Hakijan tiedot' + contact_person_email_section: + '#type': webform_section + '#title': Sähköposti + contact_markup: + '#type': webform_markup + '#markup': 'Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.' + email: + '#type': email + '#title': Sähköpostiosoite + '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' + '#size': 63 + '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' + '#attributes': + class: + - webform--large + '#required': true + contact_person_section: + '#type': webform_section + '#title': 'Hakemuksen yhteyshenkilö' + contact_person: + '#type': textfield + '#title': Yhteyshenkilö + '#autocomplete': 'off' + '#attributes': + class: + - webform--large + '#required': true + '#size': 63 + contact_person_phone_number: + '#type': textfield + '#title': Puhelinnumero + '#required': true + '#attributes': + class: + - webform--medium + '#autocomplete': 'off' + '#size': 32 + osoite: + '#type': webform_section + '#title': Osoite + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + community_address: + '#type': community_address_composite + '#title': 'Yhteisön osoite' + '#help': 'Jos haluat lisätä, poistaa tai muuttaa osoitetietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään osoitetietoa omiin tietoihin.' + '#attributes': + class: + - webform--large + '#required': true + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + tilinumero: + '#type': webform_section + '#title': Tilinumero + bank_account: + '#type': bank_account_composite + '#title': Tilinumero + '#help': 'Jos haluat lisätä, poistaa tai muuttaa tilinumerotietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään tilinumerotietoa omiin tietoihin.' + '#attributes': + class: + - webform--medium + '#required': true + toiminnasta_vastaavat_henkilot: + '#type': webform_section + '#title': 'Toiminnasta vastaavat henkilöt' + '#states': + visible: + ':input[name="applicant_type"]': + '!value': private_person + community_officials: + '#type': community_officials_composite + '#help': 'Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.' + '#title': 'Valitse toiminnasta vastaavat henkilöt' + '#multiple': true + '#multiple__item_label': henkilö + '#multiple__min_items': 0 + '#multiple__empty_items': 1 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää henkilö' + '#wrapper_attributes': + class: + - community_officials_wrapper + '#attributes': + class: + - webform--large + 2_avustustiedot: + '#type': webform_wizard_page + '#title': '2. Avustustiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + avustuksen_tiedot: + '#type': webform_section + '#title': 'Avustuksen tiedot' + acting_year: + '#type': select + '#title': 'Vuosi, jolle haen avustusta' + '#options': + 2024: '2024' + '#required': true + avustuslajit: + '#type': webform_section + '#title': Avustuslajit + subventions: + '#type': grants_compensations + '#title': Avustukset + '#multiple': true + '#subventionType': + 1: '1' + 6: '6' + '#required': true + '#multiple__header': true + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more': false + '#attributes': + class: + - subventions + kayttotarkoitus: + '#type': webform_section + '#title': Käyttötarkoitus + purpose_intro_text: + '#type': webform_markup + '#markup': |- +

Asukasosallisuuden yleisavustus:

+ +

Kuvaa haetun avustuksen kaikille aivoimen ja maksuttoman toiminnan käyttötarkoitus ja erittele tarvittaessa haettava yleisavustus kululajeittain.

+ +
    +
  1. Haettava avustus asukastilan koordinoinnin palkkakustannuksiin
  2. +
  3. Haettava avustus asukastilan vuokraan
  4. +
  5. Haettava avustus asukastilan ylläpitokustannuksiin eriteltynä (esim. sähkö, vesi, verkkoyhteydet, vakuutus, siivous)
  6. +
  7. Haettava avustus asukastilan ylläpidosta ja koordinoinnista aiheutuviin muihin kustannuksiin
  8. +
+ +

Asukasosallisuuden toiminta-avustus:

+ +

Kuvaus kaikille avoimesta maksuttomasta toiminnasta, johon avusta haetaan sekä talousarvio kustannusten kohdentumisesta.

+ purpose: + '#type': textarea + '#title': 'Lyhyt kuvaus haettavan / haettavien avustusten käyttötarkoituksista' + '#help': '

Kerro mitä tarkoitusta varten avustusta haetaan, erittele tarvittaessa eri käyttökohteet. Kerro myös mitä avustuksella on tarkoitus saada aikaiseksi ja millaisia tavoitteita avustettavaan toimintaan liittyy.

' + '#required': true + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + muut_samaan_tarkoitukseen_myonnetyt_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen myönnetyt avustukset' + info_muut_samaan_tarkoitukseen_myonnetty: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on myönnetty muualta kuin Helsingin kaupungilta kuluvana tai kahtena edellisenä verovuotena. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_saaneet_muita_avustuksia: + '#type': radios + '#title': 'Olemme saaneet muita avustuksia' + '#description_display': before + '#options': + 1: Kyllä + 0: Ei + myonnetty_avustus: + '#type': webform_custom_composite + '#title': 'Lisää myönnetty avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + required: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'myönnetty avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi myönnetty avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi myönnetty avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + '#attributes': + class: + - webform--large + year: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': Vuosi + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#required': true + '#title': 'Myönnetyn avustuksen summa' + '#attributes': + class: + - webform--small + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + muut_samaan_tarkoitukseen_haetut_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen haetut avustukset' + info_muut_samaan_tarkoitukseen_haettu: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on haettu muualta kuin Helsingin kaupungilta, eikä päätöstä ole vielä tehty. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: + '#type': radios + '#title': 'Olemme hakeneet avustuksia muualta kuin Helsingin kaupungilta' + '#options': + 1: Kyllä + 0: Ei + haettu_avustus_tieto: + '#type': webform_custom_composite + '#title': 'Lisää uusi haettu avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta"]': + value: '1' + required: + ':input[name="olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'haettu avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi haettu avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi haettu avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + '#attributes': + class: + - webform--large + year: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': Vuosi + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#required': true + '#title': 'Haetun avustuksen summa' + '#attributes': + class: + - webform--small + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + kaupungilta_saadut_lainat_ja_takaukset: + '#type': webform_section + '#title': 'Kaupungilta saadut lainat ja takaukset' + kaupungilta_saadut_1: + '#type': webform_markup + '#markup': 'Kaupungilta saaduista lainoista on mainittava alkuperäinen lainamäärä, jäljellä oleva lainamäärä, laina-aika, korkoprosentti ja mihin tarkoitukseen laina on myönnetty. Takauksista ilmoitetaan niiden raha-arvo ja tarkoitus.' + benefits_loans: + '#type': textarea + '#title': 'Kuvaus lainoista ja takauksista' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + kaupungilta_saatu_tiloihin_liittyva_tuki: + '#type': webform_section + '#title': 'Kaupungilta saatu tiloihin liittyvä tuki' + tilate_1: + '#type': webform_markup + '#markup': 'Tilat, jotka kaupunki on antanut korvauksetta tai vuokrannut hakijan käyttöön (tilan nimi tai osoite, vuokran määrä €/kk)' + benefits_premises: + '#type': textarea + '#title': 'Kuvaus tiloihin liittyvästä tuesta' + '#maxlength': 5000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + edellisen_avustuksen_kayttoselvitys: + '#type': webform_section + '#title': 'Edellisen avustuksen käyttöselvitys' + compensation_boolean_info: + '#type': webform_markup + '#markup': | +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ compensation_boolean: + '#type': radios + '#title': 'Käyttöselvitys edellisenä vuonna saamastani avustuksesta' + '#options': + - 'En ole saanut Helsingin kaupungilta avustusta samaan käyttötarkoitukseen edellisenä vuonna.' + - 'Olen saanut Helsingin kaupungilta avustusta samaan käyttötarkoitukseen edellisenä vuonna.' + '#required': true + markup: + '#type': webform_markup + '#states': + visible: + ':input[name="compensation_boolean"]': + value: 'true' + '#markup': 'Anna käyttöselvitys Helsingin kaupungilta saadusta avustuksesta. Avustuksen käyttöselvitys tehdään avustuksesta, joka koskee viimeisintä päättynyttä tilikautta. Käyttöselvitystä ei tehdä käynnissä olevalta tilikaudelta. Käyttöselvityksen antaminen on seuraavan avustuksen saamisen ehtona. Mikäli käyttöselvitystä ei tehdä, avustusta ei myönnetä eikä makseta. Myönnetty avustus voidaan periä takaisin, jos edellisen avustuksen käyttöä ei ole hyväksyttävästi selvitetty.' + compensation_explanation: + '#type': textarea + '#title': 'Selvitys avustuksen käytöstä' + '#help': 'Käyttöselvityksessä tulee kuvata lyhyesti, miten myönnetty avustus on käytetty. Avustuksen saajan on järjestettävä kirjanpitonsa niin, että avustuksen käyttöä voidaan sieltä seurata. Esimerkiksi jos yhteisö on saanut vuokra-avustusta, tilinpäätöksen tuloslaskelmasta tulee käydä ilmi avustuksen toteutuminen sekä tuloissa että menoissa. Lisää tietoja avustuksen käytöstä voi myös kirjoittaa erilliseen liitteeseen, jonka voi palauttaa Käyttöselvitys-liite kohdasta.' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#states': + visible: + ':input[name="compensation_boolean"]': + value: '1' + required: + ':input[name="compensation_boolean"]': + value: '1' + '#attributes': + class: + - webform--large + '#cols': 63 + 3_yhteison_tiedot: + '#type': webform_wizard_page + '#title': '3. Yhteisön toiminta' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + business_info: + '#type': webform_section + '#title': 'Toiminnan kuvaus' + business_purpose: + '#type': textarea + '#title': 'Toiminnan kuvaus' + '#help': 'Tieto haetaan omat tiedot -osiosta' + '#maxlength': 500 + '#counter_type': character + '#counter_maximum': 500 + '#counter_maximum_message': '%d/500 merkkiä jäljellä' + community_practices_business: + '#type': radios + '#title': 'Harjoittaako yhteisö liiketoimintaa' + '#options': + 1: Kyllä + 0: Ei + '#options_display': side_by_side + '#options_description_display': help + '#required': true + ensimmainen_otsikko: + '#type': webform_section + '#title': Jäsenmaksut + fee_person: + '#type': textfield + '#title': 'Henkilöjäsenen jäsenmaksu (€ / vuosi)' + '#attributes': + class: + - webform--sall + '#maxlength': 50 + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + '#size': 16 + fee_community: + '#type': textfield + '#title': 'Yhteisöjäsen (€ / vuosi)' + '#attributes': + class: + - webform--small + '#maxlength': 50 + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + '#size': 16 + jasenmaara: + '#type': webform_section + '#title': Jäsenmäärä + jasenmaara_fieldset: + '#type': fieldset + '#title': Jäsenmäärä + '#help': 'Jos yhteisöllä on jäseniä, merkitse ne tähän.' + '#attributes': + class: + - grants-fieldset + - grants-fieldset-short + members_applicant_person_global: + '#type': textfield + '#title': 'Henkilöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta henkilöjäsentä yhteisöllä on tällä hetkellä?' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + members_applicant_person_local: + '#type': textfield + '#title': 'Helsinkiläisiä henkilöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta helsinkiläistä henkilöjäsentä yhteisöllä on tällä hetkellä?' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + members_applicant_community_global: + '#type': textfield + '#title': Yhteisöjäseniä + '#help': 'Kuinka monta jäsenmaksun maksanutta yhteisöjäsentä yhteisöllä on tällä hetkellä? Yhteisöjäseniä ovat muut kuin henkilöjäsenet, esimerkiksi yhdistykset, säätiöt, yritykset tai kunnat.' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + members_applicant_community_local: + '#type': textfield + '#title': 'Helsinkiläisiä yhteisöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta helsinkiläistä yhteisöjäsentä yhteisöllä on tällä hetkellä? Yhteisöjäseniä ovat muut kuin henkilöjäsenet, esimerkiksi yhdistykset, säätiöt, yritykset tai kunnat.' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + lisatiedot_ja_liitteet: + '#type': webform_wizard_page + '#title': '4. Lisätiedot ja liitteet' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + lisatietoja_hakemukseen_liittyen: + '#type': webform_section + '#title': 'Lisätietoja hakemukseen liittyen' + additional_information: + '#type': textarea + '#title': Lisätiedot + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' + '#counter_type': character + '#attributes': + class: + - webform--large + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + liitteet: + '#type': webform_section + '#title': Liitteet + attachments_info: + '#type': webform_markup + '#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.

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

+

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”

+ notification_attachments: + '#type': webform_markup + '#markup': | +
+
+
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.

+
+
+ yhteison_saannot: + '#type': grants_attachments + '#title': 'Yhteisön säännöt' + '#multiple': false + '#filetype': '7' + '#title_display': '' + '#description__access': false + vahvistettu_tilinpaatos: + '#type': grants_attachments + '#title': 'Vahvistettu tilinpäätös (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '43' + '#help': |- +

Tilinpäätöksen täytyy sisältää vähintään tuloslaskelma ja tase. Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun ja allekirjoitetun tilinpäätöksen.

+

Yhteisön tilikausi voi olla kalenterivuosi tai jokin muu kausi. Yhdistysten kohdalla niiden omissa säännöissä lukee, mikä on yhdistyksen tilikausi.

+ '#title_display': before + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi sisältö alta.' + '#description__access': false + vahvistettu_toimintakertomus: + '#type': grants_attachments + '#title': 'Vahvistettu toimintakertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '4' + '#help': |- +

Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun toimintakertomuksen./p> +

Jos toimintakertomus on osana tilinpäätöstä ja liititte sen jo tilinpäätöksen mukana lomakkeelle, sitä ei tarvitse liittää tähän erikseen. Valitse tällaisessa tilanteessa toimintakertomuksen kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + vahvistettu_tilin_tai_toiminnantarkastuskertomus: + '#type': grants_attachments + '#title': 'Vahvistettu tilin- tai toiminnantarkastuskertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '5' + '#help': |- +

Liitä tähän allekirjoitettu tilin- tai toiminnantarkastuskertomus yhteisön edelliseltä päättyneeltä tilikaudelta.

+

Jos allekirjoitettu tilin- tai toiminnantarkastuskertomus on osa yhteisönne tilinpäätöstä ja liitit sen jo lomakkeelle tilinpäätöksen kohdalla, valitse tässä kohdassa ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + vuosikokouksen_poytakirja: + '#type': grants_attachments + '#title': 'Vuosikokouksen pöytäkirja, jossa on vahvistettu edellisen päättyneen tilikauden tilinpäätös' + '#multiple': false + '#filetype': '8' + '#help': 'Liitä tähän yhteisön kokouksen pöytäkirja, jossa edellisen päättyneen tilikauden tilinpäätös on vahvistettu ja vastuuvapaus myönnetty. Yhdistyksillä tilinpäätös vahvistetaan aina yhdistyksen jäsenkokouksessa. Mikäli yhteisöltä ei edellytetä vuosikokousta tai muuta yhteisön kokousta, jossa tilinpäätös tulisi vahvistaa ja vastuuvapaus myöntää, ei tätä liitettä tarvitse toimittaa.' + '#title_display': before + '#description__access': false + toimintasuunnitelma: + '#type': grants_attachments + '#title': 'Toimintasuunnitelma (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '1' + '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma. ' + '#title_display': before + '#description__access': false + talousarvio: + '#type': grants_attachments + '#title': 'Talousarvio (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '2' + '#help': 'Liitä tähän koko yhteisön talousarvio.' + '#title_display': before + '#description__access': false + extra_info: + '#type': textarea + '#title': 'Lisäselvitys liitteistä' + '#counter_type': character + '#attributes': + class: + - webform--large + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + muu_liite: + '#type': grants_attachments + '#title': 'Muu liite' + '#multiple': 10 + '#filetype': '0' + '#title_display': before + '#multiple__item_label': liite + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää liite' + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + actions: + '#type': webform_actions + '#title': 'Submit button(s)' + '#submit__label': Lähetä + '#draft__label': 'Tallenna keskeneräisenä' + '#wizard_prev__label': 'Edellinen' + '#wizard_next__label': 'Seuraava' + '#preview_prev__label': 'Edellinen' + '#preview_next__label': 'Esikatseluun' + '#delete_hide': false + '#delete__label': 'Poista keskeneräinen' + '#delete__attributes': + class: + - hds-button + - hds-button--primary + '#delete__dialog': true +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: source_entity_webform + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: false + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: true + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: true + form_disable_back: false + form_submit_back: true + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: { } + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: true + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: true + wizard_progress_states: false + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '6. Valmis' + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: '' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava + wizard_toggle: false + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 2 + preview_label: '5. Vahvista, esikatsele ja lähetä' + preview_title: 'Vahvista, esikatsele ja lähetä' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: true + preview_exclude_empty_checkbox: false + draft: all + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: none + confirmation_url: '' + confirmation_title: '' + confirmation_message: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: false + confirmation_exclude_token: false + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: draft + purge_days: 365 + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - authenticated + users: { } + permissions: { } + view_any: + roles: { } + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: + grants_handler: + id: grants_handler + handler_id: grants_handler + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: 0 + settings: + debug: false +variants: { } diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.grants_handler.yml b/public/modules/custom/grants_handler/config/install/webform.webform.grants_handler.yml index dcfe5d17c9..bed09391bb 100644 --- a/public/modules/custom/grants_handler/config/install/webform.webform.grants_handler.yml +++ b/public/modules/custom/grants_handler/config/install/webform.webform.grants_handler.yml @@ -18,7 +18,8 @@ archive: false id: grants_handler title: 'Example: Webform Handler' description: 'An example of a custom Webform handler.' -category: Example +categories: + - Example elements: |- page_1: '#type': webform_wizard_page @@ -66,9 +67,9 @@ settings: form_prepopulate_source_entity: false form_prepopulate_source_entity_required: false form_prepopulate_source_entity_type: '' - form_unsaved: false + form_unsaved: true form_disable_back: false - form_submit_back: false + form_submit_back: true form_disable_autocomplete: false form_novalidate: false form_disable_inline_errors: false diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.hyte_yleisavustus.yml b/public/modules/custom/grants_handler/config/install/webform.webform.hyte_yleisavustus.yml new file mode 100644 index 0000000000..2450bdf09a --- /dev/null +++ b/public/modules/custom/grants_handler/config/install/webform.webform.hyte_yleisavustus.yml @@ -0,0 +1,842 @@ +uuid: d8472e68-d6bd-4de2-a409-f0a177bf9e94 +langcode: fi +status: open +dependencies: + module: + - grants_handler + - grants_metadata +third_party_settings: + grants_metadata: + applicationTypeSelect: '68' + applicationType: HYVINYLEIS + applicationTypeID: '68' + applicationIndustry: KANSLIA + applicantTypes: + registered_community: registered_community + applicationTypeTerms: + 49: '49' + applicationTargetGroup: '30' + applicationOpen: '2024-05-02T00:00:00' + applicationClose: '2024-06-03T16:00:00' + applicationActingYearsType: next_x_years + applicationActingYears: { } + applicationActingYearsNextCount: '1' + applicationContinuous: 0 + disableCopying: 0 + status: released + parent: '' +weight: 0 +open: null +close: null +uid: 1 +template: false +archive: false +id: hyte_yleisavustus +title: 'Hyvinvoinnin ja terveyden edistämisen sekä sosiaali-, terveys- ja pelastustoimen yleisavustushakemus' +description: '

HYVINYLEIS

' +categories: + - Tuotannossa +elements: |- + applicant_type: + '#type': hidden + '#title': 'Applicant type' + avustukset_summa: + '#type': grants_webform_summation_field + '#title': 'Avustukset summa' + '#title_display': none + '#description_display': invisible + '#collect_field': + subventions%%amount: subventions%%amount + application_number: 0 + status: 0 + hakijan_tiedot: 0 + email: 0 + contact_person: 0 + contact_person_phone_number: 0 + community_address: 0 + bank_account: 0 + community_officials: 0 + acting_year: 0 + subventions%%subventionTypeTitle: 0 + subventions%%subventionType: 0 + compensation_purpose: 0 + olemme_saaneet_muita_avustuksia: 0 + myonnetty_avustus: 0 + benefits_loans: 0 + benefits_premises: 0 + compensation_boolean: 0 + compensation_explanation: 0 + business_purpose: 0 + community_practices_business: 0 + fee_person: 0 + fee_community: 0 + members_applicant_person_local: 0 + members_applicant_person_global: 0 + members_applicant_community_local: 0 + members_applicant_community_global: 0 + additional_information: 0 + yhteison_saannot: 0 + vahvistettu_tilinpaatos: 0 + vahvistettu_toimintakertomus: 0 + vahvistettu_tilin_tai_toiminnantarkastuskertomus: 0 + vuosikokouksen_poytakirja: 0 + toimintasuunnitelma: 0 + talousarvio: 0 + extra_info: 0 + muu_liite: 0 + '#data_type': euro + '#form_item': hidden + 1_hakijan_tiedot: + '#type': webform_wizard_page + '#title': '1. Hakijan tiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + application_number: + '#type': hidden + '#title': Hakemusnumero + '#disabled': true + status: + '#type': hidden + '#title': 'Hakemuksen tila' + '#readonly': true + yhteiso_jolle_haetaan_avustusta: + '#type': webform_section + '#title': 'Yhteisö, jolle haetaan avustusta' + '#attributes': + class: + - grants-profile--imported-section + prh_markup: + '#type': webform_markup + '#markup': '
Tiedot on haettu Patentti- ja rekisterihallinnon rekisteristä (PRH), eikä niitä voi tämän takia muokata.
' + hakijan_tiedot: + '#type': applicant_info + '#title': Hakija + contact_person_email_section: + '#type': webform_section + '#title': Sähköposti + contact_markup: + '#type': webform_markup + '#markup': 'Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.' + email: + '#type': email + '#title': Sähköpostiosoite + '#required': true + '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' + '#size': 63 + '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' + contact_person_section: + '#type': webform_section + '#title': 'Hakemuksen yhteyshenkilö' + contact_person: + '#type': textfield + '#title': Yhteyshenkilö + '#attributes': + class: + - webform--large + '#autocomplete': 'off' + '#required': true + '#size': 63 + contact_person_phone_number: + '#type': textfield + '#title': Puhelinnumero + '#attributes': + class: + - webform--medium + '#required': true + '#autocomplete': 'off' + '#size': 32 + osoite: + '#type': webform_section + '#title': Osoite + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + community_address: + '#type': community_address_composite + '#title': 'Yhteisön osoite' + '#help': 'Jos haluat lisätä, poistaa tai muuttaa osoitetietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään osoitetietoa omiin tietoihin.' + '#attributes': + class: + - webform--large + '#required': true + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + tilinumero: + '#type': webform_section + '#title': Tilinumero + bank_account: + '#type': bank_account_composite + '#title': Tilinumero + '#help': 'Jos haluat lisätä, poistaa tai muuttaa tilinumerotietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään tilinumerotietoa omiin tietoihin.' + '#attributes': + class: + - webform--medium + '#required': true + toiminnasta_vastaavat_henkilot: + '#type': webform_section + '#title': 'Toiminnasta vastaavat henkilöt' + '#states': + visible: + ':input[name="applicant_type"]': + '!value': private_person + community_officials: + '#type': community_officials_composite + '#help': 'Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.' + '#title': 'Valitse toiminnasta vastaavat henkilöt' + '#multiple': true + '#multiple__item_label': henkilö + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää henkilö' + '#wrapper_attributes': + class: + - community_officials_wrapper + '#attributes': + class: + - webform--large + 2_avustustiedot: + '#type': webform_wizard_page + '#title': '2. Avustustiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + avustuksen_tiedot: + '#type': webform_section + '#title': 'Avustuksen tiedot' + acting_year: + '#type': select + '#title': 'Vuosi, jolle haen avustusta' + '#options': + 2022: '2022' + 2023: '2023' + 2024: '2024' + '#required': true + avustuslajit: + '#type': webform_section + '#title': Avustuslajit + subventions: + '#type': grants_compensations + '#title': Avustukset + '#multiple': true + '#subventionType': + 6: '6' + '#onlyOneSubventionPerApplication': 1 + '#required': true + '#multiple__header': true + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more': false + '#attributes': + class: + - subventions + '#subvention_type': + 1: '1' + 6: '6' + '#subvention_type_id__access': false + '#subvention_type__title': Avustuslaji + '#subvention_amount__title': 'Avustuksen summa' + kayttotarkoitus: + '#type': webform_section + '#title': Käyttötarkoitus + compensation_purpose: + '#type': textarea + '#title': 'Lyhyt kuvaus haettavan / haettavien avustusten käyttötarkoituksista' + '#help': 'Kerro mitä tarkoitusta varten avustusta haetaan, erittele tarvittaessa eri käyttökohteet. Kerro myös mitä avustuksella on tarkoitus saada aikaiseksi ja millaisia tavoitteita avustettavaan toimintaan liittyy.' + '#required': true + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#cols': 63 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + muut_samaan_tarkoitukseen_myonnetyt_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen myönnetyt avustukset' + info_muut_samaan_tarkoitukseen_myonnetty: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on myönnetty muualta kuin Helsingin kaupungilta kuluvana tai kahtena edellisenä verovuotena. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_saaneet_muita_avustuksia: + '#type': radios + '#title': 'Olemme saaneet muita avustuksia' + '#description_display': before + '#options': + 1: Kyllä + 0: Ei + myonnetty_avustus: + '#type': webform_custom_composite + '#title': 'Myönnetty avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + required: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'myönnetty avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi myönnetty avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi myönnetty avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#attributes': + class: + - webform--large + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + year: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': Vuosi + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#attributes': + class: + - webform--small + '#required': true + '#title': 'Myönnetyn avustuksen summa' + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + edellisen_avustuksen_kayttoselvitys: + '#type': webform_section + '#title': 'Edellisen avustuksen käyttöselvitys' + compensation_boolean_info: + '#type': webform_markup + '#markup': | +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ compensation_boolean: + '#type': radios + '#title': 'Käyttöselvitys edellisenä vuonna saamastani avustuksesta' + '#options': + - 'En ole saanut Helsingin kaupungilta avustusta samaan käyttötarkoitukseen edellisenä vuonna.' + - 'Olen saanut Helsingin kaupungilta avustusta samaan käyttötarkoitukseen edellisenä vuonna.' + '#required': true + markup: + '#type': webform_markup + '#states': + visible: + ':input[name="compensation_boolean"]': + value: '1' + '#markup': 'Anna käyttöselvitys Helsingin kaupungilta saadusta avustuksesta. Avustuksen käyttöselvitys tehdään avustuksesta, joka koskee viimeisintä päättynyttä tilikautta. Käyttöselvitystä ei tehdä käynnissä olevalta tilikaudelta. Käyttöselvityksen antaminen on seuraavan avustuksen saamisen ehtona. Mikäli käyttöselvitystä ei tehdä, avustusta ei myönnetä eikä makseta. Myönnetty avustus voidaan periä takaisin, jos edellisen avustuksen käyttöä ei ole hyväksyttävästi selvitetty.' + compensation_explanation: + '#type': textarea + '#title': 'Selvitys avustuksen käytöstä' + '#help': 'Käyttöselvityksessä tulee kuvata lyhyesti, miten myönnetty avustus on käytetty. Avustuksen saajan on järjestettävä kirjanpitonsa niin, että avustuksen käyttöä voidaan sieltä seurata. Esimerkiksi jos yhteisö on saanut vuokra-avustusta, tilinpäätöksen tuloslaskelmasta tulee käydä ilmi avustuksen toteutuminen sekä tuloissa että menoissa. Lisää tietoja avustuksen käytöstä voi myös kirjoittaa erilliseen liitteeseen, jonka voi ladata ja lähettää Muu-liitteenä.' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#states': + visible: + ':input[name="compensation_boolean"]': + value: '1' + required: + ':input[name="compensation_boolean"]': + value: '1' + '#attributes': + class: + - webform--large + '#cols': 63 + 3_yhteison_tiedot: + '#type': webform_wizard_page + '#title': '3. Yhteisön toiminta' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + business_info: + '#type': webform_section + '#title': 'Toiminnan kuvaus' + business_purpose: + '#type': textarea + '#title': 'Toiminnan kuvaus' + '#help': 'Tieto haetaan omat tiedot -osiosta' + '#maxlength': 500 + '#counter_type': character + '#counter_maximum': 500 + '#counter_maximum_message': '%d/500 merkkiä jäljellä' + community_practices_business: + '#type': radios + '#title': 'Harjoittaako yhteisö liiketoimintaa' + '#options': + 1: Kyllä + 0: Ei + '#options_display': side_by_side + '#options_description_display': help + '#required': true + ensimmainen_otsikko: + '#type': webform_section + '#title': Jäsenmaksut + fee_person: + '#type': textfield + '#title': 'Henkilöjäsenen jäsenmaksu (€ / vuosi)' + '#attributes': + class: + - webform--small + '#maxlength': 50 + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + '#size': 16 + fee_community: + '#type': textfield + '#title': 'Yhteisöjäsen (€ / vuosi)' + '#attributes': + class: + - webform--small + '#maxlength': 50 + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + '#size': 16 + jasenmaara: + '#type': webform_section + '#title': Jäsenmäärä + jasenmaara_fieldset: + '#type': fieldset + '#title': Jäsenmäärä + '#help': 'Jos yhteisöllä on jäseniä, merkitse ne tähän.' + '#attributes': + class: + - grants-fieldset + - grants-fieldset-short + members_applicant_person_global: + '#type': textfield + '#title': 'Henkilöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta henkilöjäsentä yhteisöllä on tällä hetkellä?' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + members_applicant_person_local: + '#type': textfield + '#title': 'Helsinkiläisiä henkilöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta helsinkiläistä henkilöjäsentä yhteisöllä on tällä hetkellä?' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + members_applicant_community_global: + '#type': textfield + '#title': 'Yhteisöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta yhteisöjäsentä yhteisöllä on tällä hetkellä? Yhteisöjäseniä ovat muut kuin henkilöjäsenet, esimerkiksi yhdistykset, säätiöt, yritykset tai kunnat.' + '#maxlength': 9 + '#size': 16 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#attributes': + class: + - webform--small + members_applicant_community_local: + '#type': textfield + '#title': 'Helsinkiläisiä yhteisöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta helsinkiläistä yhteisöjäsentä yhteisöllä on tällä hetkellä? Yhteisöjäseniä ovat muut kuin henkilöjäsenet, esimerkiksi yhdistykset, säätiöt, yritykset tai kunnat.' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + lisatiedot_ja_liitteet: + '#type': webform_wizard_page + '#title': '4. Lisätiedot ja liitteet' + lisatietoja_hakemukseen_liittyen: + '#type': webform_section + '#title': 'Lisätietoja hakemukseen liittyen' + additional_information: + '#type': textarea + '#title': Lisätiedot + '#attributes': + class: + - webform--large + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + liitteet: + '#type': webform_section + '#title': Liitteet + attachments_info: + '#type': webform_markup + '#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. +

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

+

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ notification_attachments: + '#type': webform_markup + '#markup': | +
+
+
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.

+
+
+ yhteison_saannot: + '#type': grants_attachments + '#title': 'Yhteisön säännöt' + '#multiple': false + '#filetype': '7' + '#help': 'Uusi hakija tai säännöt muuttuneet.' + '#title_display': before + '#description__access': false + vahvistettu_tilinpaatos: + '#type': grants_attachments + '#title': 'Vahvistettu tilinpäätös (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '43' + '#help': |- +

Tilinpäätöksen täytyy sisältää vähintään tuloslaskelma ja tase. Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun ja allekirjoitetun tilinpäätöksen.

+

Yhteisön tilikausi voi olla kalenterivuosi tai jokin muu kausi. Yhdistysten kohdalla niiden omissa säännöissä lukee, mikä on yhdistyksen tilikausi.

+ '#title_display': before + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi sisältö alta.' + '#description__access': false + vahvistettu_toimintakertomus: + '#type': grants_attachments + '#title': 'Vahvistettu toimintakertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '4' + '#help': |- +

Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun toimintakertomuksen.

+

Jos toimintakertomus on osana tilinpäätöstä ja liititte sen jo tilinpäätöksen mukana lomakkeelle, sitä ei tarvitse liittää tähän erikseen. Valitse tällaisessa tilanteessa toimintakertomuksen kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + vahvistettu_tilin_tai_toiminnantarkastuskertomus: + '#type': grants_attachments + '#title': 'Vahvistettu tilin- tai toiminnantarkastuskertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '5' + '#help': |- +

Liitä tähän allekirjoitettu tilin- tai toiminnantarkastuskertomus yhteisön edelliseltä päättyneeltä tilikaudelta.

+

Jos allekirjoitettu tilin- tai toiminnantarkastuskertomus on osa yhteisönne tilinpäätöstä ja liitit sen jo lomakkeelle tilinpäätöksen kohdalla, valitse tässä kohdassa ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + vuosikokouksen_poytakirja: + '#type': grants_attachments + '#title': 'Vuosikokouksen pöytäkirja, jossa on vahvistettu edellisen päättyneen tilikauden tilinpäätös' + '#multiple': false + '#filetype': '8' + '#help': 'Liitä tähän yhteisön kokouksen pöytäkirja, jossa edellisen päättyneen tilikauden tilinpäätös on vahvistettu ja vastuuvapaus myönnetty. Yhdistyksillä tilinpäätös vahvistetaan aina yhdistyksen jäsenkokouksessa. Mikäli yhteisöltä ei edellytetä vuosikokousta tai muuta yhteisön kokousta, jossa tilinpäätös tulisi vahvistaa ja vastuuvapaus myöntää, ei tätä liitettä tarvitse toimittaa.' + '#title_display': before + '#description__access': false + toimintasuunnitelma: + '#type': grants_attachments + '#title': 'Toimintasuunnitelma (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '1' + '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma. ' + '#title_display': before + '#description__access': false + talousarvio: + '#type': grants_attachments + '#title': 'Talousarvio (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '22' + '#help': 'Talousarvio (sille vuodelle jolle haet avustusta)' + '#title_display': before + '#description__access': false + extra_info: + '#type': textarea + '#title': 'Lisäselvitys liitteistä' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#attributes': + class: + - webform--large + '#cols': 63 + muu_liite: + '#type': grants_attachments + '#title': 'Muu liite' + '#multiple': 10 + '#filetype': '0' + '#title_display': before + '#multiple__item_label': liite + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi liite' + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + actions: + '#type': webform_actions + '#title': 'Submit button(s)' + '#submit__label': Lähetä + '#draft__label': 'Tallenna keskeneräisenä' + '#wizard_prev__label': 'Edellinen' + '#wizard_next__label': 'Seuraava' + '#preview_prev__label': 'Edellinen' + '#preview_next__label': 'Esikatseluun' + '#delete_hide': false + '#delete__label': 'Poista keskeneräinen' + '#delete__attributes': + class: + - hds-button + - hds-button--primary + '#delete__dialog': true +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: source_entity_webform + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: false + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: true + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: true + form_disable_back: false + form_submit_back: true + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: { } + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: true + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: true + wizard_progress_states: false + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '6. Valmis' + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: '' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava + wizard_toggle: true + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 2 + preview_label: '5. Vahvista, esikatsele ja lähetä' + preview_title: 'Vahvista, esikatsele ja lähetä' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: false + preview_exclude_empty_checkbox: false + draft: all + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: none + confirmation_url: '' + confirmation_title: '' + confirmation_message: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: true + confirmation_exclude_token: true + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: draft + purge_days: 365 + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - authenticated + users: { } + permissions: { } + view_any: + roles: + - admin + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: + grants_handler: + id: grants_handler + handler_id: grants_handler + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: 0 + settings: + debug: true +variants: { } diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.hyteed_yleis.yml b/public/modules/custom/grants_handler/config/install/webform.webform.hyteed_yleis.yml new file mode 100644 index 0000000000..e9caeae6b3 --- /dev/null +++ b/public/modules/custom/grants_handler/config/install/webform.webform.hyteed_yleis.yml @@ -0,0 +1,906 @@ +uuid: c87c419b-f06c-4a25-876c-a42f380d7667 +langcode: fi +status: open +dependencies: + module: + - grants_handler + - grants_metadata +third_party_settings: + grants_metadata: + applicationTypeSelect: '71' + applicationType: HYTEEDYLEIS + applicationTypeID: '71' + applicationIndustry: KANSLIA + applicantTypes: + registered_community: registered_community + applicationTypeTerms: + 49: '49' + applicationTargetGroup: '30' + applicationOpen: '2022-10-03T11:08:26' + applicationClose: '2029-07-30T11:19:00' + applicationActingYearsType: next_x_years + applicationActingYears: { } + applicationActingYearsNextCount: '1' + applicationContinuous: 0 + disableCopying: 0 + status: development + parent: d8472e68-d6bd-4de2-a409-f0a177bf9e94 + avus2BreakingChange: 0 +weight: 0 +open: null +close: null +uid: 1 +template: false +archive: false +id: hyteed_yleis +title: 'Hyvinvoinnin ja terveyden edistämisen yleisavustus' +description: '

HYTEEDYLEIS

' +categories: + - Kehityksessä +elements: |- + applicant_type: + '#type': hidden + '#title': 'Applicant type' + avustukset_summa: + '#type': grants_webform_summation_field + '#title': 'Avustukset summa' + '#title_display': none + '#description_display': invisible + '#collect_field': + subventions%%amount: subventions%%amount + application_number: 0 + status: 0 + hakijan_tiedot: 0 + email: 0 + contact_person: 0 + contact_person_phone_number: 0 + community_address: 0 + bank_account: 0 + community_officials: 0 + acting_year: 0 + subventions%%subventionTypeTitle: 0 + subventions%%subventionType: 0 + compensation_purpose: 0 + olemme_saaneet_muita_avustuksia: 0 + myonnetty_avustus: 0 + benefits_loans: 0 + benefits_premises: 0 + compensation_boolean: 0 + compensation_explanation: 0 + business_purpose: 0 + community_practices_business: 0 + fee_person: 0 + fee_community: 0 + members_applicant_person_local: 0 + members_applicant_person_global: 0 + members_applicant_community_local: 0 + members_applicant_community_global: 0 + additional_information: 0 + yhteison_saannot: 0 + vahvistettu_tilinpaatos: 0 + vahvistettu_toimintakertomus: 0 + vahvistettu_tilin_tai_toiminnantarkastuskertomus: 0 + vuosikokouksen_poytakirja: 0 + toimintasuunnitelma: 0 + talousarvio: 0 + extra_info: 0 + muu_liite: 0 + '#data_type': euro + '#form_item': hidden + 1_hakijan_tiedot: + '#type': webform_wizard_page + '#title': '1. Hakijan tiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + application_number: + '#type': hidden + '#title': Hakemusnumero + '#disabled': true + status: + '#type': hidden + '#title': 'Hakemuksen tila' + '#readonly': true + yhteiso_jolle_haetaan_avustusta: + '#type': webform_section + '#title': 'Yhteisö, jolle haetaan avustusta' + '#attributes': + class: + - grants-profile--imported-section + prh_markup: + '#type': webform_markup + '#markup': '
Tiedot on haettu Patentti- ja rekisterihallinnon rekisteristä (PRH), eikä niitä voi tämän takia muokata.
' + hakijan_tiedot: + '#type': applicant_info + '#title': Hakija + contact_person_email_section: + '#type': webform_section + '#title': Sähköposti + contact_markup: + '#type': webform_markup + '#markup': 'Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.' + email: + '#type': email + '#title': Sähköpostiosoite + '#required': true + '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' + '#size': 63 + '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' + contact_person_section: + '#type': webform_section + '#title': 'Hakemuksen yhteyshenkilö' + contact_person: + '#type': textfield + '#title': Yhteyshenkilö + '#attributes': + class: + - webform--large + '#autocomplete': 'off' + '#required': true + '#size': 63 + contact_person_phone_number: + '#type': textfield + '#title': Puhelinnumero + '#attributes': + class: + - webform--medium + '#required': true + '#autocomplete': 'off' + '#size': 32 + osoite: + '#type': webform_section + '#title': Osoite + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + community_address: + '#type': community_address_composite + '#title': 'Yhteisön osoite' + '#help': 'Jos haluat lisätä, poistaa tai muuttaa osoitetietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään osoitetietoa omiin tietoihin.' + '#attributes': + class: + - webform--large + '#required': true + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + tilinumero: + '#type': webform_section + '#title': Tilinumero + bank_account: + '#type': bank_account_composite + '#title': Tilinumero + '#help': 'Jos haluat lisätä, poistaa tai muuttaa tilinumerotietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään tilinumerotietoa omiin tietoihin.' + '#attributes': + class: + - webform--medium + '#required': true + toiminnasta_vastaavat_henkilot: + '#type': webform_section + '#title': 'Toiminnasta vastaavat henkilöt' + '#states': + visible: + ':input[name="applicant_type"]': + '!value': private_person + community_officials: + '#type': community_officials_composite + '#help': 'Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.' + '#title': 'Valitse toiminnasta vastaavat henkilöt' + '#multiple': true + '#multiple__item_label': henkilö + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää henkilö' + '#wrapper_attributes': + class: + - community_officials_wrapper + '#attributes': + class: + - webform--large + 2_avustustiedot: + '#type': webform_wizard_page + '#title': '2. Avustustiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + avustuksen_tiedot: + '#type': webform_section + '#title': 'Avustuksen tiedot' + acting_year: + '#type': select + '#title': 'Vuosi, jolle haen avustusta' + '#options': + 2022: '2022' + 2023: '2023' + 2024: '2024' + '#required': true + avustuslajit: + '#type': webform_section + '#title': Avustuslajit + subventions: + '#type': grants_compensations + '#title': Avustukset + '#multiple': true + '#subventionType': + 6: '6' + '#onlyOneSubventionPerApplication': 1 + '#required': true + '#multiple__header': true + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more': false + '#attributes': + class: + - subventions + '#subvention_type': + 1: '1' + 6: '6' + '#subvention_type_id__access': false + '#subvention_type__title': Avustuslaji + '#subvention_amount__title': 'Avustuksen summa' + kayttotarkoitus: + '#type': webform_section + '#title': 'Käyttötarkoitus' + compensation_purpose: + '#type': textarea + '#title': 'Mihin avustus käytetään?' + '#help': 'Kuvaa tiiviisti avustuksella toteutettavaa toimintaa ja toiminnan laajuutta esimerkiksi seuraavilla tavoilla:
Kuinka paljon tai kuinka usein järjestätte ryhmiä, tapahtumia tai muuta toimintaa avustettavan ajanjakson aikana? Kuinka paljon kohderyhmän edustajia arvioitte tavoittavanne? Missä Helsingin alueilla toimintaa järjestetään? Minkälaista yhteistyötä teette Helsingissä muiden toimijoiden kanssa?' + '#required': true + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#cols': 63 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + who_benefits: + '#type': textarea + '#title': 'Ketkä toiminnastanne erityisesti hyötyvät?' + '#help': 'Kuvaa keitä kohderyhmäänne kuuluu ja mahdollisesti myös kuinka paljon kohderyhmään kuuluvia toiminta-alueellanne on. Kohderyhmän kuvauksessa on tärkeää, että siitä käy ilmi minkälaisia ihmisiä juuri te haluatte ja osaatte kohdata, tai millaisessa tilanteessa olevat hyötyvät toiminnastanne eniten.' + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#cols': 63 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#states': + visible: + ':input[name="avustukset_summa"]': + value: + greater_equal: '10000' + required: + ':input[name="avustukset_summa"]': + value: + greater_equal: '10000' + changes_on_success: + '#type': textarea + '#title': 'Minkälaisia muutoksia tapahtuu, jos onnistutte?' + '#help': 'Toiminnallanne voi olla monia tavoitteita. Kuvatkaa ja arvioikaa tässä keskeiset muutokset, joita tavoittelette esimerkiksi kohderyhmänne toimintakyvyssä, arjessa, ihmissuhteissa tai muussa hyvinvointiin ja terveyteen tai osallisuuteen liittyvässä asiassa. Mikä siis muuttuu, jos olette onnistuneet tai minkälaisia ilmiöitä toimintanne ennaltaehkäisee?' + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#cols': 63 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#states': + visible: + ':input[name="avustukset_summa"]': + value: + greater_equal: '10000' + required: + ':input[name="avustukset_summa"]': + value: + greater_equal: '10000' + results_of_activities: + '#type': textarea + '#title': 'Minkälaisia hyötyjä avustettavan toiminnan seurauksena syntyy?' + '#help': 'Kuvaa lyhyesti, mitä vaikutuksia toiminnalla saadaan aikaan ja millä tavoin ne syntyvät. Voit kuvata vaikutukset niiden tapahtumisjärjestyksessä: mitä vaikutuksia syntyy ensin, ja mitä vähän pidemmän ajan kuluttua. Keskity kuitenkin toiminnan välittömiin vaikutuksiin.
Voit myös kertoa, mikä toiminnassanne on erityistä tai mistä (laatu)tekijöistä on erityisesti huolehdittava, että tavoiteltavia vaikutuksia saavutetaan. Voit myös kuvata, miten jokin tekemänne yhteistyö edistää vaikutusten saavuttamista.' + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#cols': 63 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#states': + visible: + ':input[name="avustukset_summa"]': + value: + greater_equal: '50000' + required: + ':input[name="avustukset_summa"]': + value: + greater_equal: '50000' + muut_samaan_tarkoitukseen_myonnetyt_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen myönnetyt avustukset' + info_muut_samaan_tarkoitukseen_myonnetty: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on myönnetty muualta kuin Helsingin kaupungilta kuluvana tai kahtena edellisenä verovuotena. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_saaneet_muita_avustuksia: + '#type': radios + '#title': 'Olemme saaneet muita avustuksia' + '#description_display': before + '#options': + 1: Kyllä + 0: Ei + myonnetty_avustus: + '#type': webform_custom_composite + '#title': 'Myönnetty avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + required: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'myönnetty avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi myönnetty avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi myönnetty avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#attributes': + class: + - webform--large + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + year: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': Vuosi + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#attributes': + class: + - webform--small + '#required': true + '#title': 'Myönnetyn avustuksen summa' + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + edellisen_avustuksen_kayttoselvitys: + '#type': webform_section + '#title': 'Edellisen avustuksen käyttöselvitys' + compensation_boolean_info: + '#type': webform_markup + '#markup': | +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ compensation_boolean: + '#type': radios + '#title': 'Käyttöselvitys edellisenä vuonna saamastani avustuksesta' + '#options': + - 'En ole saanut Helsingin kaupungilta avustusta samaan käyttötarkoitukseen edellisenä vuonna.' + - 'Olen saanut Helsingin kaupungilta avustusta samaan käyttötarkoitukseen edellisenä vuonna.' + '#required': true + markup: + '#type': webform_markup + '#states': + visible: + ':input[name="compensation_boolean"]': + value: '1' + '#markup': 'Anna käyttöselvitys Helsingin kaupungilta saadusta avustuksesta. Avustuksen käyttöselvitys tehdään avustuksesta, joka koskee viimeisintä päättynyttä tilikautta. Käyttöselvitystä ei tehdä käynnissä olevalta tilikaudelta. Käyttöselvityksen antaminen on seuraavan avustuksen saamisen ehtona. Mikäli käyttöselvitystä ei tehdä, avustusta ei myönnetä eikä makseta. Myönnetty avustus voidaan periä takaisin, jos edellisen avustuksen käyttöä ei ole hyväksyttävästi selvitetty.' + compensation_explanation: + '#type': textarea + '#title': 'Selvitys avustuksen käytöstä' + '#help': 'Käyttöselvityksessä tulee kuvata lyhyesti, miten myönnetty avustus on käytetty. Avustuksen saajan on järjestettävä kirjanpitonsa niin, että avustuksen käyttöä voidaan sieltä seurata. Esimerkiksi jos yhteisö on saanut vuokra-avustusta, tilinpäätöksen tuloslaskelmasta tulee käydä ilmi avustuksen toteutuminen sekä tuloissa että menoissa. Lisää tietoja avustuksen käytöstä voi myös kirjoittaa erilliseen liitteeseen, jonka voi ladata ja lähettää Muu-liitteenä.' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#states': + visible: + ':input[name="compensation_boolean"]': + value: '1' + required: + ':input[name="compensation_boolean"]': + value: '1' + '#attributes': + class: + - webform--large + '#cols': 63 + 3_yhteison_tiedot: + '#type': webform_wizard_page + '#title': '3. Yhteisön toiminta' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + business_info: + '#type': webform_section + '#title': 'Toiminnan kuvaus' + business_purpose: + '#type': textarea + '#title': 'Toiminnan kuvaus' + '#help': 'Tieto haetaan omat tiedot -osiosta' + '#maxlength': 500 + '#counter_type': character + '#counter_maximum': 500 + '#counter_maximum_message': '%d/500 merkkiä jäljellä' + community_practices_business: + '#type': radios + '#title': 'Harjoittaako yhteisö liiketoimintaa' + '#options': + 1: Kyllä + 0: Ei + '#options_display': side_by_side + '#options_description_display': help + '#required': true + ensimmainen_otsikko: + '#type': webform_section + '#title': Jäsenmaksut + fee_person: + '#type': textfield + '#title': 'Henkilöjäsenen jäsenmaksu (€ / vuosi)' + '#attributes': + class: + - webform--small + '#maxlength': 50 + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + '#size': 16 + fee_community: + '#type': textfield + '#title': 'Yhteisöjäsen (€ / vuosi)' + '#attributes': + class: + - webform--small + '#maxlength': 50 + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + '#size': 16 + jasenmaara: + '#type': webform_section + '#title': Jäsenmäärä + jasenmaara_fieldset: + '#type': fieldset + '#title': Jäsenmäärä + '#help': 'Jos yhteisöllä on jäseniä, merkitse ne tähän.' + '#attributes': + class: + - grants-fieldset + - grants-fieldset-short + members_applicant_person_global: + '#type': textfield + '#title': 'Henkilöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta henkilöjäsentä yhteisöllä on tällä hetkellä?' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + members_applicant_person_local: + '#type': textfield + '#title': 'Helsinkiläisiä henkilöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta helsinkiläistä henkilöjäsentä yhteisöllä on tällä hetkellä?' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + members_applicant_community_global: + '#type': textfield + '#title': 'Yhteisöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta yhteisöjäsentä yhteisöllä on tällä hetkellä? Yhteisöjäseniä ovat muut kuin henkilöjäsenet, esimerkiksi yhdistykset, säätiöt, yritykset tai kunnat.' + '#maxlength': 9 + '#size': 16 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#attributes': + class: + - webform--small + members_applicant_community_local: + '#type': textfield + '#title': 'Helsinkiläisiä yhteisöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta helsinkiläistä yhteisöjäsentä yhteisöllä on tällä hetkellä? Yhteisöjäseniä ovat muut kuin henkilöjäsenet, esimerkiksi yhdistykset, säätiöt, yritykset tai kunnat.' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + lisatiedot_ja_liitteet: + '#type': webform_wizard_page + '#title': '4. Lisätiedot ja liitteet' + lisatietoja_hakemukseen_liittyen: + '#type': webform_section + '#title': 'Lisätietoja hakemukseen liittyen' + additional_information: + '#type': textarea + '#title': Lisätiedot + '#attributes': + class: + - webform--large + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + liitteet: + '#type': webform_section + '#title': Liitteet + attachments_info: + '#type': webform_markup + '#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. +

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

+

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ notification_attachments: + '#type': webform_markup + '#markup': | +
+
+
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.

+
+
+ yhteison_saannot: + '#type': grants_attachments + '#title': 'Yhteisön säännöt' + '#multiple': false + '#filetype': '7' + '#help': 'Uusi hakija tai säännöt muuttuneet.' + '#title_display': before + '#description__access': false + vahvistettu_tilinpaatos: + '#type': grants_attachments + '#title': 'Vahvistettu tilinpäätös (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '43' + '#help': |- +

Tilinpäätöksen täytyy sisältää vähintään tuloslaskelma ja tase. Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun ja allekirjoitetun tilinpäätöksen.

+

Yhteisön tilikausi voi olla kalenterivuosi tai jokin muu kausi. Yhdistysten kohdalla niiden omissa säännöissä lukee, mikä on yhdistyksen tilikausi.

+ '#title_display': before + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi sisältö alta.' + '#description__access': false + vahvistettu_toimintakertomus: + '#type': grants_attachments + '#title': 'Vahvistettu toimintakertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '4' + '#help': |- +

Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun toimintakertomuksen.

+

Jos toimintakertomus on osana tilinpäätöstä ja liititte sen jo tilinpäätöksen mukana lomakkeelle, sitä ei tarvitse liittää tähän erikseen. Valitse tällaisessa tilanteessa toimintakertomuksen kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + vahvistettu_tilin_tai_toiminnantarkastuskertomus: + '#type': grants_attachments + '#title': 'Vahvistettu tilin- tai toiminnantarkastuskertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '5' + '#help': |- +

Liitä tähän allekirjoitettu tilin- tai toiminnantarkastuskertomus yhteisön edelliseltä päättyneeltä tilikaudelta.

+

Jos allekirjoitettu tilin- tai toiminnantarkastuskertomus on osa yhteisönne tilinpäätöstä ja liitit sen jo lomakkeelle tilinpäätöksen kohdalla, valitse tässä kohdassa ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + vuosikokouksen_poytakirja: + '#type': grants_attachments + '#title': 'Vuosikokouksen pöytäkirja, jossa on vahvistettu edellisen päättyneen tilikauden tilinpäätös' + '#multiple': false + '#filetype': '8' + '#help': 'Liitä tähän yhteisön kokouksen pöytäkirja, jossa edellisen päättyneen tilikauden tilinpäätös on vahvistettu ja vastuuvapaus myönnetty. Yhdistyksillä tilinpäätös vahvistetaan aina yhdistyksen jäsenkokouksessa. Mikäli yhteisöltä ei edellytetä vuosikokousta tai muuta yhteisön kokousta, jossa tilinpäätös tulisi vahvistaa ja vastuuvapaus myöntää, ei tätä liitettä tarvitse toimittaa.' + '#title_display': before + '#description__access': false + toimintasuunnitelma: + '#type': grants_attachments + '#title': 'Toimintasuunnitelma (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '1' + '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma. ' + '#title_display': before + '#description__access': false + talousarvio: + '#type': grants_attachments + '#title': 'Talousarvio (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '22' + '#help': 'Talousarvio (sille vuodelle jolle haet avustusta)' + '#title_display': before + '#description__access': false + extra_info: + '#type': textarea + '#title': 'Lisäselvitys liitteistä' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#attributes': + class: + - webform--large + '#cols': 63 + muu_liite: + '#type': grants_attachments + '#title': 'Muu liite' + '#multiple': 10 + '#filetype': '0' + '#title_display': before + '#multiple__item_label': liite + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi liite' + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + actions: + '#type': webform_actions + '#title': 'Submit button(s)' + '#submit__label': Lähetä + '#draft__label': 'Tallenna keskeneräisenä' + '#wizard_prev__label': 'Edellinen' + '#wizard_next__label': 'Seuraava' + '#preview_prev__label': 'Edellinen' + '#preview_next__label': 'Esikatseluun' + '#delete_hide': false + '#delete__label': 'Poista keskeneräinen' + '#delete__attributes': + class: + - hds-button + - hds-button--primary + '#delete__dialog': true +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: source_entity_webform + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: false + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: true + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: true + form_disable_back: false + form_submit_back: true + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: { } + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: true + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: true + wizard_progress_states: false + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '6. Valmis' + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: '' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava + wizard_toggle: true + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 2 + preview_label: '5. Vahvista, esikatsele ja lähetä' + preview_title: 'Vahvista, esikatsele ja lähetä' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: false + preview_exclude_empty_checkbox: false + draft: all + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: none + confirmation_url: '' + confirmation_title: '' + confirmation_message: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: true + confirmation_exclude_token: true + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: draft + purge_days: 365 + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - anonymous + - authenticated + users: { } + permissions: { } + view_any: + roles: { } + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: + grants_handler: + id: grants_handler + handler_id: grants_handler + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: 0 + settings: + debug: false +variants: { } diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml b/public/modules/custom/grants_handler/config/install/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml new file mode 100644 index 0000000000..ca85e6f327 --- /dev/null +++ b/public/modules/custom/grants_handler/config/install/webform.webform.iakkaiden_kulttuuri_ja_liikunta.yml @@ -0,0 +1,1418 @@ +uuid: d6a6681d-87e8-4a48-aa5a-cb1c12bd160f +langcode: fi +status: open +dependencies: + module: + - grants_handler + - grants_metadata +third_party_settings: + grants_metadata: + applicationTypeSelect: '70' + applicationType: KUVAERILLIS + applicationTypeID: '70' + applicationIndustry: KUVA + applicantTypes: + registered_community: registered_community + applicationTypeTerms: + 62: '62' + applicationTargetGroup: '75' + applicationOpen: null + applicationClose: null + applicationActingYearsType: fixed + applicationActingYears: + 2024: '2024' + 2025: '2025' + 2026: '2026' + applicationActingYearsNextCount: '' + applicationContinuous: 1 + disableCopying: 0 + status: development + parent: '' + avus2BreakingChange: 0 +weight: 0 +open: null +close: null +uid: 1 +template: false +archive: false +id: iakkaiden_kulttuuri_ja_liikunta +title: 'KUVA: avustushakemus iäkkäiden ihmisten liikkumisen ja kulttuuritoiminnan edistämiseksi' +description: '

KUVAERILLIS

' +categories: + - Kehityksessä +elements: |- + avustukset_summa: + '#type': grants_webform_summation_field + '#title': 'Avustukset summa' + '#title_display': none + '#collect_field': + subventions%%amount: subventions%%amount + applicant_type: 0 + application_number: 0 + status: 0 + hakijan_tiedot: 0 + email: 0 + contact_person: 0 + contact_person_phone_number: 0 + community_address: 0 + bank_account: 0 + community_officials: 0 + acting_year: 0 + subventions%%subventionTypeTitle: 0 + subventions%%subventionType: 0 + ensisijainen_taiteen_ala: 0 + hankkeen_nimi: 0 + kyseessa_on_festivaali_tai_tapahtuma: 0 + hankkeen_tai_toiminnan_lyhyt_esittelyteksti: 0 + olemme_saaneet_muita_avustuksia: 0 + myonnetty_avustus: 0 + members_applicant_person_global: 0 + members_applicant_person_local: 0 + members_applicant_community_global: 0 + members_applicant_community_local: 0 + kokoaikainen_henkilosto: 0 + kokoaikainen_henkilotyovuosia: 0 + osa_aikainen_henkilosto: 0 + osa_aikainen_henkilotyovuosia: 0 + vapaaehtoinen_henkilosto: 0 + tapahtuma_tai_esityspaivien_maara_helsingissa: 0 + esitykset_maara_helsingissa: 0 + nayttelyt_maara_helsingissa: 0 + tyopaja_maara_helsingissa: 0 + esitykset_maara_kaikkiaan: 0 + nayttelyt_maara_kaikkiaan: 0 + tyopaja_maara_kaikkiaan: 0 + esitykset_kavijamaara_helsingissa: 0 + nayttelyt_kavijamaara_helsingissa: 0 + tyopaja_kavijamaara_helsingissa: 0 + esitykset_kavijamaara_kaikkiaan: 0 + nayttelyt_kavijamaara_kaikkiaan: 0 + tyopaja_kavijamaara_kaikkiaan: 0 + kantaesitysten_maara: 0 + ensi_iltojen_maara_helsingissa: 0 + ensimmainen_yleisolle_avoimen_tilaisuuden_paikka_helsingissa: 0 + postinumero: 0 + kyseessa_on_kaupungin_omistama_tila: 0 + tila: 0 + ensimmaisen_yleisolle_avoimen_tilaisuuden_paivamaara: 0 + festivaalin_tai_tapahtuman_kohdalla_tapahtuman_paivamaarat: 0 + hanke_alkaa: 0 + hanke_loppuu: 0 + laajempi_hankekuvaus: 0 + toiminta_taiteelliset_lahtokohdat: 0 + toiminta_tasa_arvo: 0 + toiminta_saavutettavuus: 0 + toiminta_yhteisollisyys: 0 + toiminta_kohderyhmat: 0 + toiminta_ammattimaisuus: 0 + toiminta_ekologisuus: 0 + toiminta_yhteistyokumppanit: 0 + organisaatio_kuuluu_valtionosuusjarjestelmaan_vos_: 0 + budget_static_income: 0 + budget_static_cost: 0 + budget_other_cost: 0 + muu_huomioitava_panostus: 0 + additional_information: 0 + extra_info: 0 + muu_liite: 0 + '#data_type': euro + '#form_item': hidden + applicant_type: + '#type': hidden + '#title': 'Hakijan tyyppi' + kulttuuri1_summa: + '#type': grants_webform_summation_field + '#title': Kulttuuri1-summa + '#collect_field': + subventions%%amount: subventions%%amount + applicant_type: 0 + application_number: 0 + status: 0 + hakijan_tiedot: 0 + email: 0 + contact_person: 0 + contact_person_phone_number: 0 + community_address: 0 + bank_account: 0 + community_officials: 0 + acting_year: 0 + compensation_purpose: 0 + olemme_saaneet_muita_avustuksia: 0 + myonnetty_avustus: 0 + olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: 0 + haettu_avustus_tieto: 0 + hankesuunnitelma_radios: 0 + hankesuunnitelma_jatkohakemus: 0 + hankkeen_tarkoitus_tavoitteet: 0 + hankkeen_toimenpiteet_aikataulu: 0 + hankkeen_toimenpiteet_alkupvm: 0 + hankkeen_toimenpiteet_loppupvm: 0 + hankkeen_keskeisimmat_kumppanit: 0 + haun_painopisteet_liikkumis_kehitys: 0 + haun_painopisteet_digi_kehitys: 0 + haun_painopisteet_vertais_kehitys: 0 + haun_painopisteet_kulttuuri_kehitys: 0 + hankkeen_kohderyhmat_kenelle: 0 + hankkeen_kohderyhmat_erityisryhmat: 0 + hankkeen_kohderyhmat_tavoitus: 0 + hankkeen_kohderyhmat_konkretia: 0 + hankkeen_kohderyhmat_osallisuus: 0 + hankkeen_kohderyhmat_osaaminen: 0 + hankkeen_kohderyhmat_postinrot: 0 + hankkeen_kohderyhmat_miksi_alue: 0 + hankkeen_riskit_keskeisimmat: 0 + hankkeen_riskit_seuranta: 0 + hankkeen_riskit_vakiinnuttaminen: 0 + arviointi_toteuma: 0 + arviointi_muutokset_talous: 0 + arviointi_muutokset_toiminta: 0 + arviointi_muutokset_aikataulu: 0 + arviointi_haasteet: 0 + arviointi_saavutettavuus: 0 + arviointi_avustus_kaytto: 0 + tulot: 0 + talous_tulon_tyyppi: 0 + talous_menon_tyyppi: 0 + additional_information: 0 + extra_info: 0 + muu_liite: 0 + '#subvention_type': '47' + '#data_type': euro + '#form_item': hidden + kulttuuri2_summa: + '#type': grants_webform_summation_field + '#title': Kulttuuri2-summa + '#collect_field': + subventions%%amount: subventions%%amount + applicant_type: 0 + application_number: 0 + status: 0 + hakijan_tiedot: 0 + email: 0 + contact_person: 0 + contact_person_phone_number: 0 + community_address: 0 + bank_account: 0 + community_officials: 0 + acting_year: 0 + compensation_purpose: 0 + olemme_saaneet_muita_avustuksia: 0 + myonnetty_avustus: 0 + olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: 0 + haettu_avustus_tieto: 0 + hankesuunnitelma_radios: 0 + hankesuunnitelma_jatkohakemus: 0 + hankkeen_tarkoitus_tavoitteet: 0 + hankkeen_toimenpiteet_aikataulu: 0 + hankkeen_toimenpiteet_alkupvm: 0 + hankkeen_toimenpiteet_loppupvm: 0 + hankkeen_keskeisimmat_kumppanit: 0 + haun_painopisteet_liikkumis_kehitys: 0 + haun_painopisteet_digi_kehitys: 0 + haun_painopisteet_vertais_kehitys: 0 + haun_painopisteet_kulttuuri_kehitys: 0 + hankkeen_kohderyhmat_kenelle: 0 + hankkeen_kohderyhmat_erityisryhmat: 0 + hankkeen_kohderyhmat_tavoitus: 0 + hankkeen_kohderyhmat_konkretia: 0 + hankkeen_kohderyhmat_osallisuus: 0 + hankkeen_kohderyhmat_osaaminen: 0 + hankkeen_kohderyhmat_postinrot: 0 + hankkeen_kohderyhmat_miksi_alue: 0 + hankkeen_riskit_keskeisimmat: 0 + hankkeen_riskit_seuranta: 0 + hankkeen_riskit_vakiinnuttaminen: 0 + arviointi_toteuma: 0 + arviointi_muutokset_talous: 0 + arviointi_muutokset_toiminta: 0 + arviointi_muutokset_aikataulu: 0 + arviointi_haasteet: 0 + arviointi_saavutettavuus: 0 + arviointi_avustus_kaytto: 0 + tulot: 0 + talous_tulon_tyyppi: 0 + talous_menon_tyyppi: 0 + additional_information: 0 + extra_info: 0 + muu_liite: 0 + '#subvention_type': '48' + '#data_type': euro + '#form_item': hidden + 1_hakijan_tiedot: + '#type': webform_wizard_page + '#title': '1. Hakijan tiedot' + '#prev_button_label': Edellinen + '#next_button_label': Seuraava + application_number: + '#type': hidden + '#title': Hakemusnumero + '#disabled': true + status: + '#type': hidden + '#title': 'Hakemuksen tila' + '#readonly': true + hakemusprofiili: + '#type': webform_section + '#title': 'Haetut tiedot' + '#attributes': + class: + - grants-profile--imported-section + prh_markup: + '#type': webform_markup + '#markup': 'Tiedot on haettu hakuprofiilistasi.' + hakijan_tiedot: + '#type': applicant_info + '#title': Hakija + contact_person_email_section: + '#type': webform_section + '#title': Sähköposti + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + contact_markup: + '#type': webform_markup + '#markup': 'Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.' + email: + '#type': email + '#title': Sähköpostiosoite + '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' + '#size': 63 + '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' + '#states': + required: + ':input[name="applicant_type"]': + value: registered_community + contact_person_section: + '#type': webform_section + '#title': 'Hakemuksen yhteyshenkilö' + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + contact_person: + '#type': textfield + '#title': Yhteyshenkilö + '#autocomplete': 'off' + '#required': true + '#attributes': + class: + - webform--large + '#size': 63 + contact_person_phone_number: + '#type': textfield + '#title': Puhelinnumero + '#required': true + '#autocomplete': 'off' + '#attributes': + class: + - webform--medium + '#size': 32 + osoite: + '#type': webform_section + '#title': Osoite + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + community_address: + '#type': community_address_composite + '#title': 'Yhteisön osoite' + '#help': 'Jos haluat lisätä, poistaa tai muuttaa osoitetietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään osoitetietoa omiin tietoihin.' + '#attributes': + class: + - webform--large + '#required': true + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + tilinumero: + '#type': webform_section + '#title': Tilinumero + bank_account: + '#type': bank_account_composite + '#title': Tilinumero + '#help': 'Jos haluat lisätä, poistaa tai muuttaa tilinumerotietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään tilinumerotietoa omiin tietoihin.' + '#attributes': + class: + - webform--medium + '#required': true + toiminnasta_vastaavat_henkilot: + '#type': webform_section + '#title': 'Toiminnasta vastaavat henkilöt' + '#states': + visible: + ':input[name="applicant_type"]': + '!value': private_person + community_officials: + '#type': community_officials_composite + '#help': 'Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.' + '#title': 'Valitse toiminnasta vastaavat henkilöt' + '#multiple': true + '#multiple__item_label': henkilö + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää henkilö' + '#wrapper_attributes': + class: + - community_officials_wrapper + '#attributes': + class: + - webform--large + 2_avustustiedot: + '#type': webform_wizard_page + '#title': '2. Avustustiedot' + avustuksen_tiedot: + '#type': webform_section + '#title': 'Avustuksen tiedot' + acting_year: + '#type': select + '#title': 'Vuosi, jolle haen avustusta' + '#options': + 2024: '2024' + 2025: '2025' + 2026: '2026' + '#required': true + avustuslajit: + '#type': webform_section + '#title': Avustuslajit + subventions: + '#type': grants_compensations + '#title': Avustukset + '#multiple': true + '#subventionType': + 47: '47' + 51: '51' + '#onlyOneSubventionPerApplication': 1 + '#required': true + '#multiple__header': true + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more': false + '#attributes': + class: + - subventions + '#subvention_type': + 1: '1' + 6: '6' + '#subvention_type_id__access': false + '#subvention_type__title': Avustuslaji + '#subvention_amount__title': 'Avustuksen summa' + grants_compensations_information: + '#type': webform_markup + '#markup': '

Hae yhdellä hakemuksella aina vain yhtä avustuslajia kerrallaan.

' + kayttotarkoitus: + '#type': webform_section + '#title': Käyttötarkoitus + compensation_purpose: + '#type': textarea + '#title': 'Lyhyt kuvaus haettavan / haettavien avustusten käyttötarkoituksista' + '#help': 'Kerro mitä tarkoitusta varten avustusta haetaan, erittele tarvittaessa eri käyttökohteet. Kerro myös mitä avustuksella on tarkoitus saada aikaiseksi ja millaisia tavoitteita avustettavaan toimintaan liittyy.' + '#maxlength': 5000 + '#required': true + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + other_grants_for_same_purpose: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen myönnetyt avustukset' + info_muut_samaan_tarkoitukseen_myonnetty: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on myönnetty muualta kuin Helsingin kaupungilta kuluvana tai kahtena edellisenä verovuotena. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_saaneet_muita_avustuksia: + '#type': radios + '#title': 'Olemme saaneet muita avustuksia' + '#description_display': before + '#options': + 1: Kyllä + 0: Ei + myonnetty_avustus: + '#type': webform_custom_composite + '#title': 'Myönnetty avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + required: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'myönnetty avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi myönnetty avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi myönnetty avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#attributes': + class: + - webform--large + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + year: + '#type': textfield + '#required': true + '#title': Vuosi + '#attributes': + class: + - webform--small + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': 'Myönnetyn avustuksen summa' + '#input_mask': "'alias': 'currency', 'prefix': '', 'suffix': '€','groupSeparator': ' ','radixPoint':','" + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + muut_samaan_tarkoitukseen_haetut_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen haetut avustukset' + info_muut_samaan_tarkoitukseen_haettu: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on haettu muualta kuin Helsingin kaupungilta, eikä päätöstä ole vielä tehty. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: + '#type': radios + '#title': 'Olemme hakeneet avustuksia muualta kuin Helsingin kaupungilta' + '#options': + 1: Kyllä + 0: Ei + haettu_avustus_tieto: + '#type': webform_custom_composite + '#title': 'Lisää uusi haettu avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta"]': + value: '1' + required: + ':input[name="olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'haettu avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi haettu avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi haettu avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#attributes': + class: + - webform--large + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + year: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': Vuosi + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': 'Haetun avustuksen summa' + '#input_mask': "'alias': 'currency', 'prefix': '', 'suffix': '€','groupSeparator': ' ','radixPoint':','" + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + 3_tarkemmat_tiedot: + '#type': webform_wizard_page + '#title': '3. Tarkemmat tiedot' + tarkemmat_tiedot_section: + '#type': webform_section + '#title': ' ' + hankesuunnitelma_radios: + '#type': radios + '#required': true + '#title': 'Haetaanko nyt vuonna 2024 myönnetyn kaksivuotisen avustuksen 2. osaa?' + '#description': '

Vuoden 2024 avustuspäätökset:

  • Liikuntajaosto: 11.4.2024 §10

  • Kulttuuri- ja kirjastojaosto: 16.4.2024 §15

' + '#description_display': after + '#options': + 1: Kyllä + 0: Ei + '#default_value': '0' + ensisijainen_taiteen_ala: + '#type': select + '#title': 'Ensisijainen taiteenala' + '#help': 'Valitse pudotusvalikosta toimintaa parhaiten kuvaava vaihtoehto.' + '#options': + 'Design ja käsityö': 'Design ja käsityö' + 'Elokuva, valokuva ja media': 'Elokuva, valokuva ja media' + Kaupunkikulttuuri: Kaupunkikulttuuri + Kirjallisuus: Kirjallisuus + 'Kuvataide ja sarjakuva': 'Kuvataide ja sarjakuva' + Monitaide: Monitaide + Museo: Museo + Musiikki: Musiikki + Muu: Muu + Sirkus: Sirkus + Tanssi: Tanssi + Teatteri: Teatteri + '#wrapper_attributes': + class: + - webform-element-help--wrapper-short + '#states': + visible: + - ':input[name="kulttuuri1_summa"]': + value: + greater: '0' + - or + - ':input[name="kulttuuri2_summa"]': + value: + greater: '0' + required: + - ':input[name="kulttuuri1_summa"]': + value: + greater: '0' + - or + - ':input[name="kulttuuri2_summa"]': + value: + greater: '0' + hankesuunnitelma_section: + '#type': webform_section + '#title': '3.1 Hankesuunnitelma' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + hankesuunnitelma_jatkohakemus: + '#type': radios + '#title': 'Onko haettava avustus käynnissä olevan hankkeen jatkohakemus?' + '#description': '

Vastaa tähän kysymykseen "kyllä" vain siinä tapauksessa, jos yhteisölläsi on jo käynnissä oleva, samasta avustuksesta rahoitettu hanke ja haet sille jatkorahoitusta.

' + '#description_display': after + '#options': + 1: Kyllä + 0: Ei + '#default_value': '0' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + hankkeen_tarkoitus_tavoitteet: + '#type': textarea + '#title': 'Hankkeen tarkoitus ja tavoitteet' + '#maxlength': 2500 + '#counter_type': character + '#counter_maximum': 2500 + '#counter_maximum_message': '%d/2500 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + hankkeen_toimenpiteet_aikataulu: + '#type': textarea + '#title': 'Mitkä ovat hankkeen konkreettiset toimenpiteet ja niiden toteutusaikataulu?' + '#maxlength': 4000 + '#counter_type': character + '#counter_maximum': 4000 + '#counter_maximum_message': '%d/4000 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + hankkeen_toimenpiteet_toteutus: + '#type': fieldset + '#title': 'Hankkeen konkreettiset toimenpiteet on tarkoitus toteuttaa välillä' + '#attributes': + class: + - grants-fieldset + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + hankkeen_toimenpiteet_alkupvm: + '#type': date + '#title': Alkupäivämäärä + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + hankkeen_toimenpiteet_loppupvm: + '#type': date + '#title': Loppupäivämäärä + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + hankkeen_keskeisimmat_kumppanit: + '#type': textarea + '#title': 'Nimeä hankkeen keskeisimmät yhteistyökumppanit ja heidän roolinsa hankkeessa' + '#maxlength': 2500 + '#counter_type': character + '#counter_maximum': 2500 + '#counter_maximum_message': '%d/2500 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + haun_painopisteet_section: + '#type': webform_section + '#title': '3.2 Haun painopisteet' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + haun_painopisteet_ohje: + '#type': webform_markup + '#markup': 'Mihin seuraavista iäkkäiden liikkumisen ja kulttuuritoiminnan edistämisen avustuksen painopisteistä hanke vastaa?

Hankkeessa tulee toteuttaa yhtä tai useampaa painopistettä. HUOM! Valitse vain ne painopisteet, joita edistätte hankkeessa konkreettisella tavalla. Jos hanke ei toteuta jotakin painopistettä, jätä tekstikenttä tyhjäksi.

' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + haun_painopisteet_liikkumis_kehitys: + '#type': textarea + '#title': 'Kehitetäänkö hankkeessa liikkumismahdollisuuksia tai taide- ja kulttuuritoimintaa lähiympäristössä / alueellisesti? Miten?' + '#maxlength': 1250 + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + haun_painopisteet_digi_kehitys: + '#type': textarea + '#title': 'Kehitetäänkö hankkeessa digitaalisesti / etänä toteutettavia kulttuuritoimintoja tai liikkumiseen aktivoivaa toimintaa? Miten?' + '#maxlength': 1250 + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + haun_painopisteet_vertais_kehitys: + '#type': textarea + '#title': 'Kehitetäänkö hankkeessa vapaaehtois- / vertaistoimintaa? Miten?' + '#maxlength': 1250 + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + haun_painopisteet_kulttuuri_kehitys: + '#type': textarea + '#title': 'Kehitetäänkö hankkeessa taide- ja kulttuuritoimijoiden osaamista tai luodaanko uusia työtapoja / rakenteita? Miten?' + '#maxlength': 1250 + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="kulttuuri1_summa"]': + value: + greater: '0' + ':input[name="hankesuunnitelma_radios"]': + value: '0' + hankkeen_kohderyhmat_section: + '#type': webform_section + '#title': '3.3 Hankkeen kohderyhmät' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + hankkeen_kohderyhmat_kenelle: + '#type': textarea + '#title': 'Kenelle hankkeen toiminta on pääasiallisesti suunnattu?' + '#maxlength': 1250 + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + hankkeen_kohderyhmat_erityisryhmat: + '#type': textarea + '#title': 'Kohdennetaanko hankkeessa toimintaa jollekin erityisryhmälle? Mille erityisryhmälle? Jos ei toteuteta, niin jätetään tyhjäksi.' + '#description_display': after + '#maxlength': 1250 + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + hankkeen_kohderyhmat_tavoitus: + '#type': textarea + '#title': 'Kuinka hankkeen kohderyhmät aiotaan tavoittaa?' + '#maxlength': 1250 + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + hankkeen_kohderyhmat_konkretia: + '#type': textarea + '#title': 'Miten hankkeessa edistetään konkreettisin toimenpitein valitun kohderyhmän toimintakykyä ja hyvinvointia?' + '#maxlength': 1250 + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + hankkeen_kohderyhmat_osallisuus: + '#type': textarea + '#title': 'Millä tavoin hankkeessa edistetään osallisuutta? Mikä ikäihmisten rooli hankkeessa on?' + '#maxlength': 1250 + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + hankkeen_kohderyhmat_osaaminen: + '#type': textarea + '#title': 'Millaista osaamista kyseisen kohderyhmän/-ryhmien kanssa työskentelystä hanketoimijoilla on ennestään?' + '#maxlength': 1250 + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + hankkeen_kohderyhmat_postinrot: + '#type': textfield + '#title': 'Millä postinumeroalueella tai -alueilla Helsingissä hanke toteutetaan? Kirjaa kenttään enintään kolme (3) postinumeroaluetta ja erottele ne toisistaan pilkulla (,)' + '#description_display': after + '#autocomplete': 'off' + '#attributes': + class: + - webform--medium + '#size': 32 + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + hankkeen_kohderyhmat_miksi_alue: + '#type': textarea + '#title': 'Miksi juuri kyseinen alue / alueet on valittu?' + '#maxlength': 1250 + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + hankkeen_riskit_section: + '#type': webform_section + '#title': '3.4 Riskit & analyysi' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + hankkeen_riskit_keskeisimmat: + '#type': textarea + '#title': 'Mitkä ovat hankkeen toteuttamisen näkökulmasta keskeisimmät riskit?' + '#maxlength': 2500 + '#counter_type': character + '#counter_maximum': 2500 + '#counter_maximum_message': '%d/2500 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + hankkeen_riskit_seuranta: + '#type': textarea + '#title': 'Miten hankkeessa aiotaan toteuttaa seurantaa ja arviointia?' + '#maxlength': 2500 + '#counter_type': character + '#counter_maximum': 2500 + '#counter_maximum_message': '%d/2500 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + hankkeen_riskit_vakiinnuttaminen: + '#type': textarea + '#title': 'Onko hankkeen suunniteltu toiminta aikomus vakiinnuttaa osaksi hakijan/jonkun muun toimijan perustoimintaa hankkeen jälkeen? Jos kyllä, niin kuvaa tekstikenttään kuinka vakiinnuttaminen aiotaan tehdä, muuten jätä tyhjäksi.' + '#maxlength': 2500 + '#counter_type': character + '#counter_maximum': 2500 + '#counter_maximum_message': '%d/2500 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '0' + hankkeen_valiarviointi_section: + '#type': webform_section + '#title': '3.5 2-vuotisten hankkeiden väliarviointi' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + arviointi_markup: + '#type': webform_markup + '#markup': 'Arvioi tässä osiossa hankkeen tähänastista toimintaa seuraavien kysymysten avulla. Avustuksen 2. osaa hakevien tulee liittää hakemukselle Muu liite-kohtaan niin ikään kustannuspaikkaraportti ajanjaksolta 1.6.-31.12.2024' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + arviointi_toteuma: + '#type': textarea + '#title': 'Onko hanke edennyt suunnitelman mukaisesti? Arvioikaa hankkeen toteumaa tähän asti asteikolla 1-100% ja perustelkaa vastauksenne.' + '#description': 'Onko hankkeessa tapahtunut merkittäviä muutoksia?' + '#description_display': after + '#maxlength': 1250 + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + arviointi_muutokset_talous: + '#type': textarea + '#title': 'Talouteen liittyen; mitä?' + '#maxlength': 1250 + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + arviointi_muutokset_toiminta: + '#type': textarea + '#title': 'Toimintaan liittyen; mitä?' + '#maxlength': 1250 + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + arviointi_muutokset_aikataulu: + '#type': textarea + '#title': 'Aikatauluun liittyen; mitä?' + '#maxlength': 1250 + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + arviointi_haasteet: + '#type': textarea + '#title': 'Onko hanke kohdannut toimintaan vaikuttaneita haasteita? Jos, niin millaisia?' + '#maxlength': 1250 + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + arviointi_saavutettavuus: + '#type': textarea + '#title': 'Miten toiminta on tavoittanut osallistujia suhteessa tavoitteisiin?' + '#maxlength': 1250 + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + arviointi_avustus_kaytto: + '#type': textarea + '#help': 'Avustusehdot, kohta 10e: "Myönnetty avustus on palautettava Helsingin kaupungille, jos avustusta ei ole käytetty sinä aikana, jona se on avustuspäätöksen mukaan tullut käyttää.' + '#title': 'Tuleeko ensimmäiselle hankekaudelle myönnetty avustus käytettyä näillä näkymin määräaikaan (31.5.2025) mennessä? Jos ei, niin avatkaa tähän johtaneita syitä.' + '#maxlength': 1250 + '#counter_type': character + '#counter_maximum': 1250 + '#counter_maximum_message': '%d/1250 merkkiä jäljellä' + '#states': + visible: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + required: + ':input[name="hankesuunnitelma_radios"]': + value: '1' + 4_talousarvio: + '#type': webform_wizard_page + '#title': '4. Talousarvio' + tulot_section: + '#type': webform_section + '#title': '4.1 Tulot' + tulot: + '#type': grants_budget_income_static + '#title': Tulot + '#multiple': false + '#incomeGroup': general + '#plannedStateOperativeSubvention__access': false + '#otherCompensationFromCity__access': false + '#stateOperativeSubvention__access': false + '#plannedOtherCompensations__access': false + '#sponsorships__access': false + '#entryFees__access': false + '#sales__access': false + '#financialFundingAndInterests__access': false + '#customerFees__access': false + '#donations__access': false + '#compensationFromCulturalAffairs__access': false + '#otherCompensationType__access': false + '#incomeWithoutCompensations__access': false + '#ownFunding__access': false + '#plannedTotalIncome__access': false + '#otherCompensations__access': false + '#plannedTotalIncomeWithoutSubventions__access': false + '#plannedShareOfIncomeWithoutSubventions__access': false + '#shareOfIncomeWithoutSubventions__access': false + '#totalIncomeWithoutSubventions__access': false + '#totalIncome__access': false + '#incomeGroupName__access': false + talous_tulon_tyyppi: + '#type': grants_budget_other_income + '#title': 'Tulon tyyppi' + '#multiple': true + '#incomeGroup': general + '#help': 'Kerro tässä minkälainen tulo on kyseessä. Toiminnan tuloja voivat olla esimerkiksi muut avustukset ja pääsy- tai osallistumismaksut. Kirjaa tähän kohtaan myös omarahoitusosuus, jos hankkeen alijäämä kuitataan muusta taloudestanne.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi tulo' + '#multiple__item_label': tulo + menot_section: + '#type': webform_section + '#title': '4.2 Menot' + talous_menon_tyyppi: + '#type': grants_budget_other_cost + '#title': Meno + '#multiple': true + '#incomeGroup': general + '#help': 'Kerro tässä minkälainen meno on kyseessä. Toiminnan menoja voivat olla esimerkiksi tilavuokrat ja henkilöstökulut.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi meno' + '#multiple__item_label': meno + lisatiedot_ja_liitteet: + '#type': webform_wizard_page + '#title': '5. Lisätiedot ja liitteet' + lisatietoja_hakemukseen_liittyen: + '#type': webform_section + '#title': 'Lisätietoja hakemukseen liittyen' + additional_information: + '#type': textarea + '#title': Lisätiedot + '#attributes': + class: + - webform--large + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen tai ilmoittaa perustietoihin tulleista muutoksista ' + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + liitteet: + '#type': webform_section + '#title': Liitteet + attachments_info: + '#type': webform_markup + '#markup': '

Avustushakemuksen käsittelyä varten tulee toimittaa kaikki hakuilmoituksessa luetellut liitteet. Avustushakemus voidaan hylätä, jos liitteitä ei ole toimitettu. Mikäli joku liitteistä puuttuu kerro siitä hakemuksen Lisäselvitys liitteistä -kohdassa.

Helsingin kaupungille aiemmin toimitetut liitteet

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

' + notification_attachments: + '#type': webform_markup + '#markup': | +
+
+
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.

+
+
+ '#format': full_html + extra_info: + '#type': textarea + '#title': 'Lisäselvitys liitteistä' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#attributes': + class: + - webform--large + '#cols': 63 + muu_liite: + '#type': grants_attachments + '#title': 'Muu liite' + '#multiple': 10 + '#filetype': '0' + '#title_display': before + '#multiple__item_label': liite + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää liite' + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + actions: + '#type': webform_actions + '#title': 'Submit button(s)' + '#submit__label': Lähetä + '#draft__label': 'Tallenna keskeneräisenä' + '#wizard_prev__label': Edellinen + '#wizard_next__label': Seuraava + '#preview_prev__label': Edellinen + '#preview_next__label': Esikatseluun + '#delete_hide': false + '#delete__label': 'Poista keskeneräinen' + '#delete__attributes': + class: + - hds-button + - hds-button--primary + '#delete__dialog': true +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: source_entity_webform + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: false + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: false + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: true + form_disable_back: false + form_submit_back: true + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: { } + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: false + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: true + wizard_progress_states: false + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '7. Valmis' + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: '' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava + wizard_toggle: true + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 2 + preview_label: '6. Vahvista, esikatsele ja lähetä' + preview_title: 'Vahvista, esikatsele ja lähetä' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: false + preview_exclude_empty_checkbox: false + draft: all + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: none + confirmation_url: '' + confirmation_title: '' + confirmation_message: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: true + confirmation_exclude_token: true + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: draft + purge_days: 365 + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - anonymous + - authenticated + users: { } + permissions: { } + view_any: + roles: { } + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: + grants_handler: + id: grants_handler + handler_id: null + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: null + settings: + debug: false +variants: { } diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.kasko_ip_lisa.yml b/public/modules/custom/grants_handler/config/install/webform.webform.kasko_ip_lisa.yml index 0160d428ce..1f70190700 100644 --- a/public/modules/custom/grants_handler/config/install/webform.webform.kasko_ip_lisa.yml +++ b/public/modules/custom/grants_handler/config/install/webform.webform.kasko_ip_lisa.yml @@ -19,10 +19,12 @@ third_party_settings: applicationOpen: '2023-06-16T08:30:52' applicationClose: '2023-08-19T08:36:07' applicationActingYears: { } - applicationContinuous: 0 + applicationContinuous: 1 disableCopying: 0 applicationActingYearsType: current_and_next_x_years applicationActingYearsNextCount: '1' + status: released + parent: '' weight: 0 open: null close: null @@ -30,9 +32,10 @@ uid: 1 template: false archive: false id: kasko_ip_lisa -title: 'Kasvatus ja koulutus: Iltapäivätoiminnan harkinnanvarainen lisäavustushakemus' -description: KASKOIPLISA -category: '' +title: 'Kasvatus ja koulutus, iltapäivätoiminnan harkinnanvarainen lisäavustushakemus' +description: '

KASKOIPLISA

' +categories: + - Tuotannossa elements: |- avustukset_summa: '#type': grants_webform_summation_field @@ -136,7 +139,7 @@ elements: |- '#markup': 'Tiedot on haettu hakuprofiilistasi.' hakijan_tiedot: '#type': applicant_info - '#title': 'Hakija' + '#title': Hakija contact_person_email_section: '#type': webform_section '#title': Sähköposti @@ -153,6 +156,7 @@ elements: |- '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' '#size': 63 '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' '#states': required: ':input[name="applicant_type"]': @@ -188,7 +192,7 @@ elements: |- '#states': visible: ':input[name="applicant_type"]': - 'value': registered_community + value: registered_community community_address: '#type': community_address_composite '#title': 'Yhteisön osoite' @@ -200,7 +204,7 @@ elements: |- '#states': visible: ':input[name="applicant_type"]': - 'value': registered_community + value: registered_community tilinumero: '#type': webform_section '#title': Tilinumero @@ -261,6 +265,7 @@ elements: |- '#multiple': true '#subventionType': 14: '14' + '#onlyOneSubventionPerApplication': 1 '#required': true '#multiple__header': true '#multiple__empty_items': 0 @@ -293,14 +298,11 @@ elements: |- '#counter_maximum_message': '%d/5000 merkkiä jäljellä' ajalle_alkaen: '#type': webform_section - '#title': 'Ajalle, alkaen' + '#title': Ajankohta alkaen: '#type': date '#title': Alkaen '#required': true - ajalle_paattyy: - '#type': webform_section - '#title': 'Ajalle, päättyy' paattyy: '#type': date '#title': Päättyy @@ -317,7 +319,7 @@ elements: |- '#attributes': class: - webform--large - '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen tai ilmoittaa perustietoihin tulleista muutoksista ' + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' '#counter_type': character '#maxlength': 5000 '#counter_maximum': 5000 @@ -334,10 +336,9 @@ 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.

- '#format': full_html extra_info: '#type': textarea '#title': 'Lisäselvitys liitteistä' @@ -360,7 +361,7 @@ elements: |- '#multiple__add': false '#multiple__remove': false '#multiple__add_more_input': false - '#multiple__add_more_button_label': 'Lisää liite' + '#multiple__add_more_button_label': 'Lisää uusi liite' '#isDeliveredLater__access': false '#isIncludedInOtherFile__access': false actions: @@ -371,7 +372,7 @@ elements: |- '#wizard_prev__label': 'Edellinen' '#wizard_next__label': 'Seuraava' '#preview_prev__label': 'Edellinen' - '#preview_next__label': 'Esikatseluun >' + '#preview_next__label': 'Esikatseluun' '#delete_hide': false '#delete__label': 'Poista keskeneräinen' '#delete__attributes': @@ -456,13 +457,13 @@ settings: wizard_start_label: '' wizard_preview_link: false wizard_confirmation: true - wizard_confirmation_label: '' + wizard_confirmation_label: '5. Valmis' wizard_auto_forward: true wizard_auto_forward_hide_next_button: false wizard_keyboard: true wizard_track: '' - wizard_prev_button_label: 'Edellinen' - wizard_next_button_label: 'Seuraava' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava wizard_toggle: false wizard_toggle_show_label: '' wizard_toggle_hide_label: '' diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.kasvatus_ja_koulutus_toiminta_av.yml b/public/modules/custom/grants_handler/config/install/webform.webform.kasvatus_ja_koulutus_toiminta_av.yml new file mode 100644 index 0000000000..4f44ff90a9 --- /dev/null +++ b/public/modules/custom/grants_handler/config/install/webform.webform.kasvatus_ja_koulutus_toiminta_av.yml @@ -0,0 +1,1181 @@ +uuid: 69b652bb-1226-47c3-bddd-317e9365965d +langcode: fi +status: open +dependencies: + module: + - grants_handler + - grants_metadata +third_party_settings: + grants_metadata: + applicationTypeSelect: '52' + applicationType: KASKOIPTOIM + applicationTypeID: '52' + applicationIndustry: KASKO + applicantTypes: + registered_community: registered_community + applicationTypeTerms: + 45: '45' + applicationTargetGroup: '21' + applicationOpen: '2024-01-02T00:00:00' + applicationClose: '2024-01-31T16:00:00' + applicationActingYearsType: current_and_next_x_years + applicationActingYears: { } + applicationActingYearsNextCount: '0' + applicationContinuous: 0 + disableCopying: 0 + status: released + parent: '' +weight: 0 +open: null +close: null +uid: 1 +template: false +archive: false +id: kasvatus_ja_koulutus_toiminta_av +title: 'Kasvatus ja koulutus, toiminta-avustushakemus koululaisten iltapäivätoiminnan järjestäjille' +description: '

KASKOIPTOIM

' +categories: + - Tuotannossa +elements: |- + applicant_type: + '#type': hidden + '#title': 'Applicant type' + avustukset_summa: + '#type': grants_webform_summation_field + '#title': 'Avustukset summa' + '#title_display': none + '#description_display': invisible + '#collect_field': + subventions%%amount: subventions%%amount + application_number: 0 + applicant_type: 0 + status: 0 + hakijan_tiedot: 0 + email: 0 + contact_person: 0 + contact_person_phone_number: 0 + community_address: 0 + bank_account: 0 + community_officials: 0 + acting_year: 0 + subventions%%subventionTypeTitle: 0 + subventions%%subventionType: 0 + compensation_purpose: 0 + olemme_saaneet_muita_avustuksia: 0 + myonnetty_avustus: 0 + olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: 0 + haettu_avustus_tieto: 0 + benefits_loans: 0 + benefits_premises: 0 + compensation_boolean: 0 + compensation_explanation: 0 + business_purpose: 0 + community_practices_business: 0 + fee_person: 0 + fee_community: 0 + members_applicant_person_local: 0 + members_applicant_person_global: 0 + members_applicant_community_local: 0 + members_applicant_community_global: 0 + additional_information: 0 + vahvistettu_tilinpaatos: 0 + vahvistettu_toimintakertomus: 0 + vahvistettu_tilin_tai_toiminnantarkastuskertomus: 0 + vuosikokouksen_poytakirja: 0 + toimintasuunnitelma: 0 + talousarvio: 0 + extra_info: 0 + muu_liite: 0 + '#data_type': euro + '#form_item': hidden + 1_hakijan_tiedot: + '#type': webform_wizard_page + '#title': '1. Hakijan tiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + application_number: + '#type': hidden + '#title': Hakemusnumero + '#disabled': true + status: + '#type': hidden + '#title': 'Hakemuksen tila' + '#readonly': true + yhteiso_jolle_haetaan_avustusta: + '#type': webform_section + '#title': 'Yhteisö, jolle haetaan avustusta' + '#attributes': + class: + - grants-profile--imported-section + prh_markup: + '#type': webform_markup + '#markup': '
Tiedot on haettu Patentti- ja rekisterihallinnon rekisteristä (PRH), eikä niitä voi tämän takia muokata.
' + hakijan_tiedot: + '#type': applicant_info + '#title': 'Hakijan tiedot' + contact_person_email_section: + '#type': webform_section + '#title': Sähköposti + contact_markup: + '#type': webform_markup + '#markup': 'Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.' + email: + '#type': email + '#title': Sähköpostiosoite + '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' + '#size': 63 + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' + '#autocomplete': 'off' + '#required': true + contact_person_section: + '#type': webform_section + '#title': 'Hakemuksen yhteyshenkilö' + contact_person: + '#type': textfield + '#title': Yhteyshenkilö + '#autocomplete': 'off' + '#attributes': + class: + - webform--large + '#required': true + '#size': 63 + contact_person_phone_number: + '#type': textfield + '#attributes': + class: + - webform--medium + '#title': Puhelinnumero + '#required': true + '#autocomplete': 'off' + '#size': 32 + osoite: + '#type': webform_section + '#title': Osoite + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + community_address: + '#type': community_address_composite + '#title': 'Yhteisön osoite' + '#help': 'Jos haluat lisätä, poistaa tai muuttaa osoitetietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään osoitetietoa omiin tietoihin.' + '#attributes': + class: + - webform--large + '#required': true + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + tilinumero: + '#type': webform_section + '#title': Tilinumero + bank_account: + '#type': bank_account_composite + '#title': Tilinumero + '#help': 'Jos haluat lisätä, poistaa tai muuttaa tilinumerotietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään tilinumerotietoa omiin tietoihin.' + '#attributes': + class: + - webform--medium + '#required': true + toiminnasta_vastaavat_henkilot: + '#type': webform_section + '#title': 'Toiminnasta vastaavat henkilöt' + '#states': + visible: + - ':input[name="applicant_type"]': + value: registered_community + - or + - ':input[name="applicant_type"]': + value: unregistered_community + community_officials: + '#type': community_officials_composite + '#help': 'Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.' + '#title': 'Valitse toiminnasta vastaavat henkilöt' + '#multiple': true + '#multiple__item_label': henkilö + '#multiple__min_items': 0 + '#multiple__empty_items': 1 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää henkilö' + '#wrapper_attributes': + class: + - community_officials_wrapper + '#attributes': + class: + - webform--large + 2_avustustiedot: + '#type': webform_wizard_page + '#title': '2. Avustustiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + avustuksen_tiedot: + '#type': webform_section + '#title': 'Avustuksen tiedot' + acting_year: + '#type': select + '#title': 'Vuosi, jolle haen avustusta' + '#options': + 2022: '2022' + 2023: '2023' + 2024: '2024' + '#required': true + avustuslajit: + '#type': webform_section + '#title': Avustuslajit + subventions: + '#type': grants_compensations + '#title': Avustukset + '#multiple': true + '#subventionType': + 1: '1' + '#required': true + '#multiple__header': true + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more': false + '#attributes': + class: + - subventions + '#subvention_type': + 1: '1' + 6: '6' + '#subvention_type_id__access': false + '#subvention_type__title': Avustuslaji + '#subvention_amount__title': 'Avustuksen summa' + kayttotarkoitus: + '#type': webform_section + '#title': Käyttötarkoitus + compensation_purpose: + '#type': textarea + '#title': 'Lyhyt kuvaus haettavan / haettavien avustusten käyttötarkoituksista' + '#help': 'Kerro mitä tarkoitusta varten avustusta haetaan, erittele tarvittaessa eri käyttökohteet. Kerro myös mitä avustuksella on tarkoitus saada aikaiseksi ja millaisia tavoitteita avustettavaan toimintaan liittyy.' + '#required': true + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#attributes': + class: + - webform--large + '#cols': 63 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + muut_samaan_tarkoitukseen_myonnetyt_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen myönnetyt avustukset' + info_muut_samaan_tarkoitukseen_myonnetty: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on myönnetty muualta kuin Helsingin kaupungilta kuluvana tai kahtena edellisenä verovuotena. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_saaneet_muita_avustuksia: + '#type': radios + '#title': 'Olemme saaneet muita avustuksia' + '#description_display': before + '#options': + 1: Kyllä + 0: Ei + myonnetty_avustus: + '#type': webform_custom_composite + '#title': 'Myönnetty avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + required: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'myönnetty avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi myönnetty avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi myönnetty avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#attributes': + class: + - webform--large + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + year: + '#type': textfield + '#required': true + '#title': Vuosi + '#attributes': + class: + - webform--small + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': 'Myönnetyn avustuksen summa' + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + kaupungilta_saadut_lainat_ja_takaukset: + '#type': webform_section + '#title': 'Kaupungilta saadut lainat ja takaukset' + kaupungilta_saadut_1: + '#type': webform_markup + '#markup': 'Kaupungilta saaduista lainoista on mainittava alkuperäinen lainamäärä, jäljellä oleva lainamäärä, laina-aika, korkoprosentti ja mihin tarkoitukseen laina on myönnetty. Takauksista ilmoitetaan niiden raha-arvo ja tarkoitus.' + benefits_loans: + '#type': textarea + '#title': 'Kuvaus lainoista ja takauksista' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + kaupungilta_saatu_tiloihin_liittyva_tuki: + '#type': webform_section + '#title': 'Kaupungilta saatu tiloihin liittyvä tuki' + tilate_1: + '#type': webform_markup + '#markup': 'Tilat, jotka kaupunki on antanut korvauksetta tai vuokrannut hakijan käyttöön (tilan nimi tai osoite, vuokran määrä €/kk)' + benefits_premises: + '#type': textarea + '#title': 'Kuvaus tiloihin liittyvästä tuesta' + '#maxlength': 5000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + edellisen_avustuksen_kayttoselvitys: + '#type': webform_section + '#title': 'Edellisen avustuksen käyttöselvitys' + compensation_boolean_info: + '#type': webform_markup + '#markup': | +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ compensation_boolean: + '#type': radios + '#title': 'Käyttöselvitys edellisenä vuonna saamastani avustuksesta' + '#options': + - 'En ole saanut Helsingin kaupungilta avustusta samaan käyttötarkoitukseen edellisenä vuonna.' + - 'Olen saanut Helsingin kaupungilta avustusta samaan käyttötarkoitukseen edellisenä vuonna.' + '#required': true + markup: + '#type': webform_markup + '#states': + visible: + ':input[name="compensation_boolean"]': + value: '1' + '#markup': 'Anna käyttöselvitys Helsingin kaupungilta saadusta avustuksesta. Avustuksen käyttöselvitys tehdään avustuksesta, joka koskee viimeisintä päättynyttä tilikautta. Käyttöselvitystä ei tehdä käynnissä olevalta tilikaudelta. Käyttöselvityksen antaminen on seuraavan avustuksen saamisen ehtona. Mikäli käyttöselvitystä ei tehdä, avustusta ei myönnetä eikä makseta. Myönnetty avustus voidaan periä takaisin, jos edellisen avustuksen käyttöä ei ole hyväksyttävästi selvitetty.' + compensation_explanation: + '#type': textarea + '#title': 'Selvitys avustuksen käytöstä' + '#help': 'Käyttöselvityksessä tulee kuvata lyhyesti, miten myönnetty avustus on käytetty. Avustuksen saajan on järjestettävä kirjanpitonsa niin, että avustuksen käyttöä voidaan sieltä seurata. Esimerkiksi jos yhteisö on saanut vuokra-avustusta, tilinpäätöksen tuloslaskelmasta tulee käydä ilmi avustuksen toteutuminen sekä tuloissa että menoissa. Lisää tietoja avustuksen käytöstä voi myös kirjoittaa erilliseen liitteeseen, jonka voi palauttaa Käyttöselvitys-liite kohdasta.' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#states': + visible: + ':input[name="compensation_boolean"]': + value: '1' + required: + ':input[name="compensation_boolean"]': + value: '1' + '#attributes': + class: + - webform--large + '#cols': 63 + 3_yhteison_tiedot: + '#type': webform_wizard_page + '#title': '3. Yhteisön toiminta' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + business_info: + '#type': webform_section + '#title': 'Toiminnan kuvaus' + business_purpose: + '#type': textarea + '#title': 'Toiminnan kuvaus' + '#help': 'Tieto haetaan omat tiedot -osiosta' + '#maxlength': 500 + '#counter_type': character + '#counter_maximum': 500 + '#counter_maximum_message': '%d/500 merkkiä jäljellä' + community_practices_business: + '#type': radios + '#title': 'Harjoittaako yhteisö liiketoimintaa' + '#options': + 1: Kyllä + 0: Ei + '#options_display': side_by_side + '#options_description_display': help + '#required': true + toimintapaikkojen_perustiedot: + '#type': webform_section + '#title': 'Toimintapaikkojen perustiedot' + toimintapaikka: + '#type': place_of_operation_composite + '#title': Toimintapaikka + '#multiple': true + '#description': '

Ilmoita tässä kohdassa eri osoitteissa toimivien toimintapaikkojen yhteystiedot ja ryhmärakennetiedot. Lomake laskee ilmoitetut tiedot yhteensä.

' + '#description_display': before + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add_more_input': false + '#premiseName__access': false + '#premiseAddress__access': false + '#address__access': false + '#multiple__add_more_button_label': 'Lisää toimintapaikka' + '#multiple__item_label': 'toimintapaikka' + 4_talous: + '#type': webform_wizard_page + '#title': '4. Talous' + talousarvio_osio: + '#type': webform_section + '#title': Talousarvio + markup_01: + '#type': webform_markup + '#markup': 'Iltapäivätoiminnan talousarvio sisältää tulot ja menot. Tulot eritellään haettavaan avustukseen, asiakasmaksuihin ja mahdollisiin lahjoituksiin. Menot eritellään avustuksen ja asiakasmaksujen käytön osalta erikseen. Mahdolliset lahjoitukset syötetään asiakasmaksujen menoihin.' + tulot_osio: + '#type': webform_section + '#title': Tulot + tulot: + '#type': grants_budget_income_static + '#title': Tulot + '#multiple': false + '#incomeGroup': general + '#plannedStateOperativeSubvention__access': false + '#otherCompensationFromCity__access': false + '#stateOperativeSubvention__access': false + '#plannedOtherCompensations__access': false + '#sponsorships__access': false + '#entryFees__access': false + '#sales__access': false + '#financialFundingAndInterests__access': false + '#compensationFromCulturalAffairs__access': false + '#otherCompensationType__access': false + '#incomeWithoutCompensations__access': false + '#ownFunding__access': false + '#plannedTotalIncome__access': false + '#otherCompensations__access': false + '#plannedTotalIncomeWithoutSubventions__access': false + '#plannedShareOfIncomeWithoutSubventions__access': false + '#shareOfIncomeWithoutSubventions__access': false + '#totalIncomeWithoutSubventions__access': false + '#totalIncome__access': false + '#incomeGroupName__access': false + muut_avustukset: + '#type': webform_section + '#title': 'Muut avustukset' + muut_avustukset_field: + '#type': grants_budget_other_income + '#title': 'Muut avustukset' + '#multiple': true + '#incomeGroup': general + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi avustus' + '#multiple__item_label': 'avustus' + menot_osio: + '#type': webform_section + '#title': Menot + henkilostomenot_ja_vuokrat: + '#type': grants_budget_cost_static + '#title': 'Avustuksen käyttö/Henkilöstömenot ja vuokrat eriteltyinä' + '#multiple': false + '#incomeGroup': general + '#description': '

Avustuksen käyttö/Henkilöstömenot ja vuokrat eriteltyinä

' + '#personnelSocialSecurityCosts__access': false + '#materials__access': false + '#transport__access': false + '#food__access': false + '#pr__access': false + '#insurance__access': false + '#snacks__access': false + '#cleaning__access': false + '#premisesService__access': false + '#travel__access': false + '#heating__access': false + '#servicesTotal__access': false + '#water__access': false + '#electricity__access': false + '#suppliesTotal__access': false + '#admin__access': false + '#accounting__access': false + '#health__access': false + '#otherCostsTotal__access': false + '#services__access': false + '#supplies__access': false + '#useOfCustomerFeesTotal__access': false + '#netCosts__access': false + '#performerFees__access': false + '#otherFees__access': false + '#generalCosts__access': false + '#permits__access': false + '#setsAndCostumes__access': false + '#security__access': false + '#costsWithoutDeferredItems__access': false + '#generalCostsTotal__access': false + '#showCosts__access': false + '#travelCosts__access': false + '#transportCosts__access': false + '#equipment__access': false + '#premises__access': false + '#marketing__access': false + '#totalCosts__access': false + '#allCostsTotal__access': false + '#plannedTotalCosts__access': false + '#costGroupName__access': false + muut_menot: + '#type': webform_section + '#title': 'Muut menot' + muut_menot_4: + '#type': grants_budget_other_cost + '#title': 'Muut menot' + '#multiple': true + '#incomeGroup': general + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi meno' + '#multiple__item_label': 'meno' + avustuksen_kaytto_palveluiden_ostot_eriteltyina: + '#type': webform_section + '#title': 'Avustuksen käyttö/Palveluiden ostot eriteltyinä' + avustuksen_kaytto_palveluiden_ostot_eriteltyina_2: + '#type': grants_budget_cost_static + '#title': 'Avustuksen käyttö/Palveluiden ostot eriteltyinä' + '#multiple': false + '#incomeGroup': general + '#salaries__access': false + '#personnelSocialSecurityCosts__access': false + '#rentSum__access': false + '#materials__access': false + '#transport__access': false + '#food__access': false + '#pr__access': false + '#insurance__access': false + '#travel__access': false + '#heating__access': false + '#servicesTotal__access': false + '#water__access': false + '#electricity__access': false + '#suppliesTotal__access': false + '#admin__access': false + '#accounting__access': false + '#health__access': false + '#otherCostsTotal__access': false + '#services__access': false + '#supplies__access': false + '#useOfCustomerFeesTotal__access': false + '#netCosts__access': false + '#performerFees__access': false + '#otherFees__access': false + '#personnelSideCosts__access': false + '#generalCosts__access': false + '#permits__access': false + '#setsAndCostumes__access': false + '#security__access': false + '#costsWithoutDeferredItems__access': false + '#generalCostsTotal__access': false + '#showCosts__access': false + '#transportCosts__access': false + '#equipment__access': false + '#premises__access': false + '#marketing__access': false + '#totalCosts__access': false + '#allCostsTotal__access': false + '#plannedTotalCosts__access': false + '#costGroupName__access': false + muut_palveluiden_ostot: + '#type': webform_section + '#title': 'Muut palveluiden ostot' + muut_palveluiden_ostot_2: + '#type': grants_budget_other_cost + '#title': 'Muut kulut' + '#multiple': true + '#incomeGroup': general + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi kulu' + '#multiple__item_label': 'kulu' + muut_aineet_tarvikkeet_ja_tavarat: + '#type': webform_section + '#title': 'Muut aineet, tarvikkeet ja tavarat' + muut_aineet_tarvikkeet_ja_tavarat_2: + '#type': grants_budget_cost_static + '#title': 'Muut aineet, tarvikkeet ja tavarat' + '#multiple': false + '#incomeGroup': general + '#salaries__access': false + '#personnelSocialSecurityCosts__access': false + '#rentSum__access': false + '#materials__access': false + '#transport__access': false + '#food__access': false + '#pr__access': false + '#insurance__access': false + '#cleaning__access': false + '#premisesService__access': false + '#travel__access': false + '#servicesTotal__access': false + '#suppliesTotal__access': false + '#admin__access': false + '#accounting__access': false + '#health__access': false + '#otherCostsTotal__access': false + '#services__access': false + '#useOfCustomerFeesTotal__access': false + '#netCosts__access': false + '#performerFees__access': false + '#otherFees__access': false + '#personnelSideCosts__access': false + '#generalCosts__access': false + '#permits__access': false + '#setsAndCostumes__access': false + '#security__access': false + '#costsWithoutDeferredItems__access': false + '#generalCostsTotal__access': false + '#showCosts__access': false + '#travelCosts__access': false + '#transportCosts__access': false + '#equipment__access': false + '#premises__access': false + '#marketing__access': false + '#totalCosts__access': false + '#allCostsTotal__access': false + '#plannedTotalCosts__access': false + '#costGroupName__access': false + muut_aineet_tarvikkeet_ja_tavarat_muut: + '#type': webform_section + '#title': 'Muut aineet, tarvikkeet ja tavarat' + muut_menot_tarvikkeet: + '#type': grants_budget_other_cost + '#title': 'Muut menot' + '#multiple': true + '#incomeGroup': general + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi meno' + '#multiple__item_label': 'meno' + avustuksen_kaytto_muut_kulut_eriteltyina: + '#type': webform_section + '#title': 'Avustuksen käyttö/Muut kulut eriteltyinä' + avustuksen_kaytto_muut_kulut_eriteltyina_2: + '#type': grants_budget_cost_static + '#title': 'Avustuksen käyttö/Muut kulut eriteltyinä' + '#multiple': false + '#incomeGroup': general + '#salaries__access': false + '#personnelSocialSecurityCosts__access': false + '#rentSum__access': false + '#materials__access': false + '#transport__access': false + '#food__access': false + '#pr__access': false + '#insurance__access': false + '#snacks__access': false + '#cleaning__access': false + '#premisesService__access': false + '#travel__access': false + '#heating__access': false + '#servicesTotal__access': false + '#water__access': false + '#electricity__access': false + '#suppliesTotal__access': false + '#otherCostsTotal__access': false + '#services__access': false + '#supplies__access': false + '#useOfCustomerFeesTotal__access': false + '#netCosts__access': false + '#performerFees__access': false + '#otherFees__access': false + '#personnelSideCosts__access': false + '#generalCosts__access': false + '#permits__access': false + '#setsAndCostumes__access': false + '#security__access': false + '#costsWithoutDeferredItems__access': false + '#generalCostsTotal__access': false + '#showCosts__access': false + '#travelCosts__access': false + '#transportCosts__access': false + '#equipment__access': false + '#premises__access': false + '#marketing__access': false + '#totalCosts__access': false + '#allCostsTotal__access': false + '#plannedTotalCosts__access': false + '#costGroupName__access': false + muut_kulut: + '#type': webform_section + '#title': 'Muut kulut' + muut_menot_2: + '#type': grants_budget_other_cost + '#title': 'Muut menot' + '#multiple': true + '#incomeGroup': general + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi meno' + '#multiple__item_label': 'meno' + asiakasmaksutulojen_kaytto_ja_mahdolliset_lahjoitukset_: + '#type': webform_section + '#title': 'Asiakasmaksutulojen käyttö (ja mahdolliset lahjoitukset)' + asiakasmaksutulojen_kaytto_ja_mahdolliset_lahjoitukset_2: + '#type': grants_budget_cost_static + '#title': 'Asiakasmaksutulojen käyttö (ja mahdolliset lahjoitukset)' + '#multiple': false + '#incomeGroup': general + '#description': '

Arvio iltapäivätoiminnan asiakasmaksutulojen käytöstä (erittely käyttötarkoituksen mukaan)

' + '#personnelSocialSecurityCosts__access': false + '#transport__access': false + '#food__access': false + '#pr__access': false + '#insurance__access': false + '#snacks__access': false + '#cleaning__access': false + '#premisesService__access': false + '#travel__access': false + '#heating__access': false + '#servicesTotal__access': false + '#water__access': false + '#electricity__access': false + '#suppliesTotal__access': false + '#admin__access': false + '#accounting__access': false + '#health__access': false + '#otherCostsTotal__access': false + '#supplies__access': false + '#useOfCustomerFeesTotal__access': false + '#netCosts__access': false + '#performerFees__access': false + '#otherFees__access': false + '#generalCosts__access': false + '#permits__access': false + '#setsAndCostumes__access': false + '#security__access': false + '#costsWithoutDeferredItems__access': false + '#generalCostsTotal__access': false + '#showCosts__access': false + '#travelCosts__access': false + '#transportCosts__access': false + '#equipment__access': false + '#premises__access': false + '#marketing__access': false + '#totalCosts__access': false + '#allCostsTotal__access': false + '#plannedTotalCosts__access': false + '#costGroupName__access': false + muut_kulut_2: + '#type': webform_section + '#title': 'Muut kulut' + muut_menot_3: + '#type': grants_budget_other_cost + '#title': 'Muut menot' + '#multiple': true + '#incomeGroup': general + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi meno' + '#multiple__item_label': 'meno' + lisatiedot_ja_liitteet: + '#type': webform_wizard_page + '#title': '5. Lisätiedot ja liitteet' + lisatietoja_hakemukseen_liittyen: + '#type': webform_section + '#title': 'Lisätietoja hakemukseen liittyen' + additional_information: + '#type': textarea + '#title': Lisätiedot + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' + '#counter_type': character + '#attributes': + class: + - webform--large + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + liitteet: + '#type': webform_section + '#title': Liitteet + attachments_info: + '#type': webform_markup + '#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.

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

+

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ notification_attachments: + '#type': webform_markup + '#markup': | +
+
+
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.

+
+
+ yhteison_saannot: + '#type': grants_attachments + '#title': 'Yhteisön säännöt' + '#multiple': false + '#filetype': '7' + '#help': 'Uusi hakija tai säännöt muuttuneet' + '#title_display': '' + '#description__access': false + vahvistettu_tilinpaatos: + '#type': grants_attachments + '#title': 'Vahvistettu tilinpäätös (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '43' + '#help': |- +

Tilinpäätöksen täytyy sisältää vähintään tuloslaskelma ja tase. Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun ja allekirjoitetun tilinpäätöksen.

+

Yhteisön tilikausi voi olla kalenterivuosi tai jokin muu kausi. Yhdistysten kohdalla niiden omissa säännöissä lukee, mikä on yhdistyksen tilikausi.

+ '#title_display': before + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi sisältö alta.' + '#description__access': false + vahvistettu_toimintakertomus: + '#type': grants_attachments + '#title': 'Vahvistettu toimintakertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '4' + '#help': |- +

Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun toimintakertomuksen.

+

Jos toimintakertomus on osana tilinpäätöstä ja liititte sen jo tilinpäätöksen mukana lomakkeelle, sitä ei tarvitse liittää tähän erikseen. Valitse tällaisessa tilanteessa toimintakertomuksen kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + vahvistettu_tilin_tai_toiminnantarkastuskertomus: + '#type': grants_attachments + '#title': 'Vahvistettu tilin- tai toiminnantarkastuskertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '5' + '#help': |- +

Liitä tähän allekirjoitettu tilin- tai toiminnantarkastuskertomus yhteisön edelliseltä päättyneeltä tilikaudelta.

+

Jos allekirjoitettu tilin- tai toiminnantarkastuskertomus on osa yhteisönne tilinpäätöstä ja liitit sen jo lomakkeelle tilinpäätöksen kohdalla, valitse tässä kohdassa ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + toimintasuunnitelma: + '#type': grants_attachments + '#title': 'Toimintasuunnitelma (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '1' + '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma. ' + '#title_display': before + '#description__access': false + vuokrasopimus_haettaessa_vuokra_avustusta_: + '#type': grants_attachments + '#title': 'Vuokrasopimus (haettaessa vuokra-avustusta)' + '#multiple': false + '#filetype': '10' + '#help': 'Liitä vuokrasopimus, jos haet vuokra-avustusta' + '#title_display': before + '#description__access': false + talousarvio: + '#type': grants_attachments + '#title': 'Talousarvio (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '2' + '#help': 'Liitä tähän koko yhteisön talousarvio.' + '#title_display': before + '#description__access': false + extra_info: + '#type': textarea + '#title': 'Lisäselvitys liitteistä' + '#counter_type': character + '#attributes': + class: + - webform--large + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + muu_liite: + '#type': grants_attachments + '#title': 'Muu liite' + '#multiple': 10 + '#filetype': '0' + '#title_display': before + '#multiple__item_label': liite + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi liite' + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + actions: + '#type': webform_actions + '#title': 'Submit button(s)' + '#submit__label': Lähetä + '#draft__label': 'Tallenna keskeneräisenä' + '#wizard_prev__label': 'Edellinen' + '#wizard_next__label': 'Seuraava' + '#preview_prev__label': 'Edellinen' + '#preview_next__label': 'Esikatseluun' + '#delete_hide': false + '#delete__label': 'Poista keskeneräinen' + '#delete__attributes': + class: + - hds-button + - hds-button--primary + '#delete__dialog': true +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: source_entity_webform + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: false + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: true + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: true + form_disable_back: false + form_submit_back: true + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: { } + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: true + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: true + wizard_progress_states: false + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '7. Valmis' + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: '' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava + wizard_toggle: true + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 2 + preview_label: '6. Vahvista, esikatsele ja lähetä' + preview_title: 'Vahvista, esikatsele ja lähetä' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: false + preview_exclude_empty_checkbox: false + draft: all + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: none + confirmation_url: '' + confirmation_title: '' + confirmation_message: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: true + confirmation_exclude_token: true + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: draft + purge_days: 365 + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - authenticated + users: { } + permissions: { } + view_any: + roles: + - admin + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: + grants_handler: + id: grants_handler + handler_id: grants_handler + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: 0 + settings: + debug: true +variants: { } diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.kasvatus_ja_koulutus_yleisavustu.yml b/public/modules/custom/grants_handler/config/install/webform.webform.kasvatus_ja_koulutus_yleisavustu.yml index c8af3b518b..c0ff3ce26c 100644 --- a/public/modules/custom/grants_handler/config/install/webform.webform.kasvatus_ja_koulutus_yleisavustu.yml +++ b/public/modules/custom/grants_handler/config/install/webform.webform.kasvatus_ja_koulutus_yleisavustu.yml @@ -14,20 +14,22 @@ third_party_settings: applicantTypes: registered_community: registered_community applicationTypeTerms: + 64: '64' 45: '45' 48: '48' - 64: '64' applicationTargetGroup: '21' - applicationOpen: '2023-04-03T08:00:00' - applicationClose: '2023-10-06T16:00:00' + applicationOpen: '2024-04-02T00:00:00' + applicationClose: '2024-10-23T16:00:00' applicationContinuous: 0 disableCopying: 0 applicationActingYears: - 2023: '2023' 2024: '2024' 2025: '2025' applicationActingYearsType: fixed applicationActingYearsNextCount: '' + status: released + parent: '' + avus2BreakingChange: false weight: 0 open: null close: null @@ -35,9 +37,10 @@ uid: 1 template: false archive: false id: kasvatus_ja_koulutus_yleisavustu -title: 'Kasvatus ja koulutus: yleisavustuslomake' -description: 'KASKO yleisavustus' -category: '' +title: 'Kasvatus ja koulutus, yleisavustushakemus' +description: KASKOYLEIS +categories: + - Tuotannossa elements: |- applicant_type: '#type': hidden @@ -112,7 +115,7 @@ elements: |- '#markup': '
Tiedot on haettu Patentti- ja rekisterihallinnon rekisteristä (PRH), eikä niitä voi tämän takia muokata.
' hakijan_tiedot: '#type': applicant_info - '#title': 'Hakija' + '#title': Hakija contact_person_email_section: '#type': webform_section '#title': Sähköposti @@ -124,6 +127,7 @@ elements: |- '#title': Sähköpostiosoite '#required': true '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' '#size': 63 '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' contact_person_section: @@ -153,7 +157,7 @@ elements: |- '#states': visible: ':input[name="applicant_type"]': - 'value': registered_community + value: registered_community community_address: '#type': community_address_composite '#title': 'Yhteisön osoite' @@ -165,7 +169,7 @@ elements: |- '#states': visible: ':input[name="applicant_type"]': - 'value': registered_community + value: registered_community tilinumero: '#type': webform_section '#title': Tilinumero @@ -229,6 +233,7 @@ elements: |- 1: '1' 5: '5' 36: '36' + '#onlyOneSubventionPerApplication': 1 '#required': true '#multiple__header': true '#multiple__empty_items': 0 @@ -279,7 +284,6 @@ elements: |-
- '#format': full_html olemme_saaneet_muita_avustuksia: '#type': radios '#title': 'Olemme saaneet muita avustuksia' @@ -315,7 +319,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: @@ -334,8 +337,8 @@ elements: |- - webform--small '#title': Vuosi '#maxlength': 4 - '#pattern': '^[0-9]*$' - '#pattern_error': 'Vain numeroita' + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' amount: '#type': textfield '#attributes': @@ -364,13 +367,13 @@ elements: |- benefits_loans: '#type': textarea '#title': 'Kuvaus lainoista ja takauksista' - '#maxlength': 500 + '#maxlength': 5000 '#counter_type': character - '#counter_maximum': 500 + '#counter_maximum': 5000 '#attributes': class: - webform--large - '#counter_maximum_message': '%d/500 merkkiä jäljellä' + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' '#cols': 63 kaupungilta_saatu_tiloihin_liittyva_tuki: '#type': webform_section @@ -384,10 +387,10 @@ elements: |- class: - webform--large '#title': 'Kuvaus tiloihin liittyvästä tuesta' - '#maxlength': 500 + '#maxlength': 5000 '#counter_type': character - '#counter_maximum': 500 - '#counter_maximum_message': '%d/500 merkkiä jäljellä' + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' '#cols': 63 edellisen_avustuksen_kayttoselvitys: '#type': webform_section @@ -403,7 +406,6 @@ elements: |-

- '#format': full_html compensation_boolean: '#type': radios '#title': 'Käyttöselvitys edellisenä vuonna saamastani avustuksesta' @@ -424,7 +426,6 @@ elements: |- '#help': 'Käyttöselvityksessä tulee kuvata lyhyesti, miten myönnetty avustus on käytetty. Avustuksen saajan on järjestettävä kirjanpitonsa niin, että avustuksen käyttöä voidaan sieltä seurata. Esimerkiksi jos yhteisö on saanut vuokra-avustusta, tilinpäätöksen tuloslaskelmasta tulee käydä ilmi avustuksen toteutuminen sekä tuloissa että menoissa. Lisää tietoja avustuksen käytöstä voi myös kirjoittaa erilliseen liitteeseen, jonka voi palauttaa Käyttöselvitys-liite kohdasta.' '#maxlength': 5000 '#counter_type': character - '#counter_minimum': 1 '#counter_maximum': 5000 '#attributes': class: @@ -450,15 +451,19 @@ elements: |- '#type': textarea '#title': 'Toiminnan kuvaus' '#help': 'Tieto haetaan omat tiedot -osiosta' + '#maxlength': 500 + '#counter_type': character + '#counter_maximum': 500 + '#counter_maximum_message': '%d/500 merkkiä jäljellä' community_practices_business: '#type': radios '#title': 'Harjoittaako yhteisö liiketoimintaa' '#options': 1: Kyllä 0: Ei - '#required': false '#options_display': side_by_side '#options_description_display': help + '#required': true ensimmainen_otsikko: '#type': webform_section '#title': Jäsenmaksut @@ -492,44 +497,48 @@ elements: |- - grants-fieldset - grants-fieldset-short members_applicant_person_global: - '#type': number + '#type': textfield '#title': 'Henkilöjäseniä yhteensä' '#help': 'Kuinka monta jäsenmaksun maksanutta henkilöjäsentä yhteisöllä on tällä hetkellä?' - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': class: - webform--small members_applicant_person_local: - '#type': number + '#type': textfield '#title': 'Helsinkiläisiä henkilöjäseniä yhteensä' '#help': 'Kuinka monta jäsenmaksun maksanutta helsinkiläistä henkilöjäsentä yhteisöllä on tällä hetkellä?' - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': class: - webform--small members_applicant_community_global: - '#type': number + '#type': textfield '#title': Yhteisöjäseniä '#help': 'Kuinka monta jäsenmaksun maksanutta yhteisöjäsentä yhteisöllä on tällä hetkellä? Yhteisöjäseniä ovat muut kuin henkilöjäsenet, esimerkiksi yhdistykset, säätiöt, yritykset tai kunnat.' - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': class: - webform--small members_applicant_community_local: - '#type': number + '#type': textfield '#title': 'Helsinkiläisiä yhteisöjäseniä yhteensä' '#help': 'Kuinka monta jäsenmaksun maksanutta helsinkiläistä yhteisöjäsentä yhteisöllä on tällä hetkellä? Yhteisöjäseniä ovat muut kuin henkilöjäsenet, esimerkiksi yhdistykset, säätiöt, yritykset tai kunnat.' - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': @@ -547,7 +556,7 @@ elements: |- '#attributes': class: - webform--large - '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen tai ilmoittaa perustietoihin tulleista muutoksista ' + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' '#counter_type': character '#maxlength': 5000 '#counter_maximum': 5000 @@ -560,11 +569,11 @@ elements: |- '#type': webform_markup '#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

+

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. -

Usean liitteen toimittaminen yhtenä tiedostona

+

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

+

Helsingin kaupungille aiemmin toimitetut liitteet

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

notification_attachments: '#type': webform_markup @@ -573,16 +582,15 @@ 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.

- '#format': full_html yhteison_saannot: '#type': grants_attachments '#title': 'Yhteisön säännöt' '#multiple': false '#filetype': '7' - '#help': 'Uusi hakija tai säännöt muuttuneet.' + '#help': 'Uusi hakija tai säännöt muuttuneet.' '#title_display': before '#description__access': false vahvistettu_tilinpaatos: @@ -591,8 +599,8 @@ elements: |- '#multiple': false '#filetype': '43' '#help': |- - Tilinpäätöksen täytyy sisältää vähintään tuloslaskelma ja tase. Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun ja allekirjoitetun tilinpäätöksen.
- Yhteisön tilikausi voi olla kalenterivuosi tai jokin muu kausi. Yhdistysten kohdalla niiden omissa säännöissä lukee, mikä on yhdistyksen tilikausi. +

Tilinpäätöksen täytyy sisältää vähintään tuloslaskelma ja tase. Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun ja allekirjoitetun tilinpäätöksen.

+

Yhteisön tilikausi voi olla kalenterivuosi tai jokin muu kausi. Yhdistysten kohdalla niiden omissa säännöissä lukee, mikä on yhdistyksen tilikausi.

'#title_display': before '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi sisältö alta.' '#description__access': false @@ -602,9 +610,8 @@ elements: |- '#multiple': false '#filetype': '4' '#help': |- - Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun toimintakertomuksen.
- Jos toimintakertomus on osana tilinpäätöstä ja liititte sen jo tilinpäätöksen mukana lomakkeelle, sitä ei tarvitse liittää tähän erikseen. Valitse tällaisessa tilanteessa toimintakertomuksen kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.
-   +

Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun toimintakertomuksen.

+

Jos toimintakertomus on osana tilinpäätöstä ja liititte sen jo tilinpäätöksen mukana lomakkeelle, sitä ei tarvitse liittää tähän erikseen. Valitse tällaisessa tilanteessa toimintakertomuksen kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

'#title_display': before '#description__access': false vahvistettu_tilin_tai_toiminnantarkastuskertomus: @@ -613,9 +620,8 @@ elements: |- '#multiple': false '#filetype': '5' '#help': |- - Liitä tähän allekirjoitettu tilin- tai toiminnantarkastuskertomus yhteisön edelliseltä päättyneeltä tilikaudelta.
- Jos allekirjoitettu tilin- tai toiminnantarkastuskertomus on osa yhteisönne tilinpäätöstä ja liitit sen jo lomakkeelle tilinpäätöksen kohdalla, valitse tässä kohdassa ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.
-   +

Liitä tähän allekirjoitettu tilin- tai toiminnantarkastuskertomus yhteisön edelliseltä päättyneeltä tilikaudelta.

+

Jos allekirjoitettu tilin- tai toiminnantarkastuskertomus on osa yhteisönne tilinpäätöstä ja liitit sen jo lomakkeelle tilinpäätöksen kohdalla, valitse tässä kohdassa ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

'#title_display': before '#description__access': false vuosikokouksen_poytakirja: @@ -623,7 +629,7 @@ elements: |- '#title': 'Vuosikokouksen pöytäkirja, jossa on vahvistettu edellisen päättyneen tilikauden tilinpäätös' '#multiple': false '#filetype': '8' - '#help': 'Liitä tähän yhteisön kokouksen pöytäkirja, jossa edellisen päättyneen tilikauden tilinpäätös on vahvistettu ja vastuuvapaus myönnetty. Yhdistyksillä tilinpäätös vahvistetaan aina yhdistyksen jäsenkokouksessa. Mikäli yhteisöltä ei edellytetä vuosikokousta tai muuta yhteisön kokousta, jossa tilinpäätös tulisi vahvistaa ja vastuuvapaus myöntää, ei tätä liitettä tarvitse toimittaa.' + '#help': 'Liitä tähän yhteisön kokouksen pöytäkirja, jossa edellisen päättyneen tilikauden tilinpäätös on vahvistettu ja vastuuvapaus myönnetty. Yhdistyksillä tilinpäätös vahvistetaan aina yhdistyksen jäsenkokouksessa. Mikäli yhteisöltä ei edellytetä vuosikokousta tai muuta yhteisön kokousta, jossa tilinpäätös tulisi vahvistaa ja vastuuvapaus myöntää, ei tätä liitettä tarvitse toimittaa.' '#title_display': before '#description__access': false toimintasuunnitelma: @@ -631,7 +637,7 @@ elements: |- '#title': 'Toimintasuunnitelma (sille vuodelle jolle haet avustusta)' '#multiple': false '#filetype': '1' - '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma. ' + '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma. ' '#title_display': before '#description__access': false talousarvio: @@ -639,19 +645,19 @@ elements: |- '#title': 'Talousarvio (sille vuodelle jolle haet avustusta)' '#multiple': false '#filetype': '22' - '#help': 'Liitä tähän koko yhteisön talousarvio.' + '#help': 'Liitä tähän koko yhteisön talousarvio.' '#title_display': before '#description__access': false extra_info: '#type': textarea '#title': 'Lisäselvitys liitteistä' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' '#attributes': class: - webform--large - '#counter_type': character - '#maxlength': 5000 - '#counter_maximum': 5000 - '#counter_maximum_message': 'Max 5000 characters.' '#cols': 63 muu_liite: '#type': grants_attachments @@ -664,7 +670,7 @@ elements: |- '#multiple__add': false '#multiple__remove': false '#multiple__add_more_input': false - '#multiple__add_more_button_label': 'Lisää liite' + '#multiple__add_more_button_label': 'Lisää uusi liite' '#isDeliveredLater__access': false '#isIncludedInOtherFile__access': false actions: @@ -675,7 +681,7 @@ elements: |- '#wizard_prev__label': 'Edellinen' '#wizard_next__label': 'Seuraava' '#preview_prev__label': 'Edellinen' - '#preview_next__label': 'Esikatseluun >' + '#preview_next__label': 'Esikatseluun' '#delete_hide': false '#delete__label': 'Poista keskeneräinen' '#delete__attributes': @@ -760,13 +766,13 @@ settings: wizard_start_label: '' wizard_preview_link: false wizard_confirmation: true - wizard_confirmation_label: '' + wizard_confirmation_label: '6. Valmis' wizard_auto_forward: true wizard_auto_forward_hide_next_button: false wizard_keyboard: true wizard_track: '' - wizard_prev_button_label: 'Edellinen' - wizard_next_button_label: 'Seuraava' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava wizard_toggle: true wizard_toggle_show_label: '' wizard_toggle_hide_label: '' diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.kaupunginkanslia_tyollisyysavust.yml b/public/modules/custom/grants_handler/config/install/webform.webform.kaupunginkanslia_tyollisyysavust.yml new file mode 100644 index 0000000000..1070f3f136 --- /dev/null +++ b/public/modules/custom/grants_handler/config/install/webform.webform.kaupunginkanslia_tyollisyysavust.yml @@ -0,0 +1,975 @@ +uuid: 3fc73ec9-fcd5-425a-9f31-316b888767ad +langcode: fi +status: open +dependencies: + module: + - grants_handler + - grants_metadata +third_party_settings: + grants_metadata: + applicationTypeSelect: '54' + applicationType: KANSLIATYO + applicationTypeID: '54' + applicationIndustry: KANSLIA + applicantTypes: + registered_community: registered_community + applicationTypeTerms: + 58: '58' + 45: '45' + applicationTargetGroup: '29' + applicationOpen: '2023-11-17T00:00:00' + applicationClose: '2023-12-14T16:00:00' + applicationActingYearsType: next_x_years + applicationActingYears: { } + applicationActingYearsNextCount: '1' + applicationContinuous: 0 + disableCopying: 0 + status: released + parent: '' +weight: 0 +open: null +close: null +uid: 1 +template: false +archive: false +id: kaupunginkanslia_tyollisyysavust +title: 'Kaupunginkanslia, työllisyysavustushakemus' +description: '

KANSLIATYO

' +categories: + - Tuotannossa +elements: |- + applicant_type: + '#type': hidden + '#title': 'Applicant type' + avustukset_summa: + '#type': grants_webform_summation_field + '#title': 'Avustukset summa' + '#title_display': none + '#description_display': invisible + '#collect_field': + subventions%%amount: subventions%%amount + application_number: 0 + applicant_type: 0 + status: 0 + hakijan_tiedot: 0 + email: 0 + contact_person: 0 + contact_person_phone_number: 0 + community_address: 0 + bank_account: 0 + community_officials: 0 + acting_year: 0 + subventions%%subventionTypeTitle: 0 + subventions%%subventionType: 0 + compensation_purpose: 0 + olemme_saaneet_muita_avustuksia: 0 + myonnetty_avustus: 0 + olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: 0 + haettu_avustus_tieto: 0 + benefits_loans: 0 + benefits_premises: 0 + compensation_boolean: 0 + compensation_explanation: 0 + business_purpose: 0 + community_practices_business: 0 + fee_person: 0 + fee_community: 0 + members_applicant_person_local: 0 + members_applicant_person_global: 0 + members_applicant_community_local: 0 + members_applicant_community_global: 0 + additional_information: 0 + vahvistettu_tilinpaatos: 0 + vahvistettu_toimintakertomus: 0 + vahvistettu_tilin_tai_toiminnantarkastuskertomus: 0 + vuosikokouksen_poytakirja: 0 + toimintasuunnitelma: 0 + talousarvio: 0 + extra_info: 0 + muu_liite: 0 + '#data_type': euro + '#form_item': hidden + 1_hakijan_tiedot: + '#type': webform_wizard_page + '#title': '1. Hakijan tiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + application_number: + '#type': hidden + '#title': Hakemusnumero + '#disabled': true + status: + '#type': hidden + '#title': 'Hakemuksen tila' + '#readonly': true + yhteiso_jolle_haetaan_avustusta: + '#type': webform_section + '#title': 'Yhteisö, jolle haetaan avustusta' + '#attributes': + class: + - grants-profile--imported-section + prh_markup: + '#type': webform_markup + '#markup': '
Tiedot on haettu Patentti- ja rekisterihallinnon rekisteristä (PRH), eikä niitä voi tämän takia muokata.
' + hakijan_tiedot: + '#type': applicant_info + '#title': 'Hakijan tiedot' + contact_person_email_section: + '#type': webform_section + '#title': Sähköposti + contact_markup: + '#type': webform_markup + '#markup': 'Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.' + email: + '#type': email + '#title': Sähköpostiosoite + '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' + '#size': 63 + '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' + '#required': true + contact_person_section: + '#type': webform_section + '#title': 'Hakemuksen yhteyshenkilö' + contact_person: + '#type': textfield + '#title': Yhteyshenkilö + '#autocomplete': 'off' + '#attributes': + class: + - webform--large + '#required': true + '#size': 63 + contact_person_phone_number: + '#type': textfield + '#attributes': + class: + - webform--medium + '#title': Puhelinnumero + '#required': true + '#autocomplete': 'off' + '#size': 32 + osoite: + '#type': webform_section + '#title': Osoite + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + community_address: + '#type': community_address_composite + '#title': 'Yhteisön osoite' + '#help': 'Jos haluat lisätä, poistaa tai muuttaa osoitetietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään osoitetietoa omiin tietoihin.' + '#attributes': + class: + - webform--large + '#required': true + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + tilinumero: + '#type': webform_section + '#title': Tilinumero + bank_account: + '#type': bank_account_composite + '#title': Tilinumero + '#help': 'Jos haluat lisätä, poistaa tai muuttaa tilinumerotietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään tilinumerotietoa omiin tietoihin.' + '#attributes': + class: + - webform--medium + '#required': true + toiminnasta_vastaavat_henkilot: + '#type': webform_section + '#title': 'Toiminnasta vastaavat henkilöt' + '#states': + visible: + ':input[name="applicant_type"]': + '!value': private_person + community_officials: + '#type': community_officials_composite + '#help': 'Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.' + '#title': 'Valitse toiminnasta vastaavat henkilöt' + '#multiple': true + '#multiple__item_label': henkilö + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää henkilö' + '#wrapper_attributes': + class: + - community_officials_wrapper + '#attributes': + class: + - webform--large + 2_avustustiedot: + '#type': webform_wizard_page + '#title': '2. Avustustiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + avustuksen_tiedot: + '#type': webform_section + '#title': 'Avustuksen tiedot' + acting_year: + '#type': select + '#title': 'Vuosi, jolle haen avustusta' + '#options': + 2022: '2022' + 2023: '2023' + 2024: '2024' + '#required': true + avustuslajit: + '#type': webform_section + '#title': Avustuslajit + subventions: + '#type': grants_compensations + '#title': Avustukset + '#multiple': true + '#subventionType': + 1: '1' + 17: '17' + '#required': true + '#multiple__header': true + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more': false + '#attributes': + class: + - subventions + '#subvention_type': + 1: '1' + 6: '6' + '#subvention_type_id__access': false + '#subvention_type__title': Avustuslaji + '#subvention_amount__title': 'Avustuksen summa' + kayttotarkoitus: + '#type': webform_section + '#title': Käyttötarkoitus + markup_02: + '#type': webform_markup + '#markup': |- +

Kerro mitä tarkoitusta varten avustusta haetaan ja laadi erittely kustannusten kohdentumisesta.

+

Kerro arvioitu helsinkiläisten työkokeilijoiden määrä ja työkokeilujen yhteenlaskettu kesto avustusvuoden aikana. (1 hlö/1 kuukausi = 21,5 päivää). Työkokeilulla tarkoitetaan Kuntakokeilun sopimuksella olevia työkokeilijoita. (Sopimus työkokeilusta työpaikalla). Kerro myös mitkä ovat työkokeilijoiden keskeisimmät työtehtävät sekä miten heidän ohjaamisestaan huolehditaan, mitä tukea/koulutusta työkokeilijoille tarjotaan työkokeilun aikana, miten työkokeilijoiden polutusta avoimille työmarkkinoille tai koulutukseen tuetaan.

+

Jos avustuksella on tarkoitus toteuttaa koulutuksia ja/tai ryhmätoimintaa, kerro helsinkiläisten työttömien arvioitu osallistujamäärä, koulutuksen nimi, sisältö ja kesto. Kestoksi ilmoitetaan yksittäiseen koulutus-/tapaamiskertaan varattu aika sekä koulutuskertojen kokonaismäärä. Kerro myös, kuka henkilö tai mikä taho vastaa koulutuksen/ryhmätoiminnan toteutuksesta sekä tapahtuuko toteutus yhdistyksen omana toimintana vai ostopalveluna.

+

Jos haet kehittämisavustusta kuvaa hankkeen tarkoitus, aikataulu ja tavoitteet.

+ compensation_purpose: + '#type': textarea + '#title': 'Lyhyt kuvaus haettavan / haettavien avustusten käyttötarkoituksista' + '#maxlength': 5000 + '#required': true + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#attributes': + class: + - webform--large + '#cols': 63 + muut_samaan_tarkoitukseen_myonnetyt_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen myönnetyt avustukset' + info_muut_samaan_tarkoitukseen_myonnetty: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on myönnetty muualta kuin Helsingin kaupungilta kuluvana tai kahtena edellisenä verovuotena. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_saaneet_muita_avustuksia: + '#type': radios + '#title': 'Olemme saaneet muita avustuksia' + '#description_display': before + '#options': + 1: Kyllä + 0: Ei + myonnetty_avustus: + '#type': webform_custom_composite + '#title': 'Myönnetty avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + required: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'myönnetty avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi myönnetty avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi myönnetty avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#attributes': + class: + - webform--large + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + year: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': Vuosi + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': 'Myönnetyn avustuksen summa' + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + muut_samaan_tarkoitukseen_haetut_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen haetut avustukset' + info_muut_samaan_tarkoitukseen_haettu: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on haettu muualta kuin Helsingin kaupungilta, eikä päätöstä ole vielä tehty. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: + '#type': radios + '#title': 'Olemme hakeneet avustuksia muualta kuin Helsingin kaupungilta' + '#options': + 1: Kyllä + 0: Ei + haettu_avustus_tieto: + '#type': webform_custom_composite + '#title': 'Lisää uusi haettu avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta"]': + value: '1' + required: + ':input[name="olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'haettu avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi haettu avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi haettu avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#attributes': + class: + - webform--large + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + year: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': Vuosi + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': 'Haetun avustuksen summa' + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + kaupungilta_saadut_lainat_ja_takaukset: + '#type': webform_section + '#title': 'Kaupungilta saadut lainat ja takaukset' + kaupungilta_saadut_1: + '#type': webform_markup + '#markup': 'Kaupungilta saaduista lainoista on mainittava alkuperäinen lainamäärä, jäljellä oleva lainamäärä, laina-aika, korkoprosentti ja mihin tarkoitukseen laina on myönnetty. Takauksista ilmoitetaan niiden raha-arvo ja tarkoitus.' + benefits_loans: + '#type': textarea + '#title': 'Kuvaus lainoista ja takauksista' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + kaupungilta_saatu_tiloihin_liittyva_tuki: + '#type': webform_section + '#title': 'Kaupungilta saatu tiloihin liittyvä tuki' + tilate_1: + '#type': webform_markup + '#markup': 'Tilat, jotka kaupunki on antanut korvauksetta tai vuokrannut hakijan käyttöön (tilan nimi tai osoite, vuokran määrä €/kk)' + benefits_premises: + '#type': textarea + '#title': 'Kuvaus tiloihin liittyvästä tuesta' + '#maxlength': 5000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + edellisen_avustuksen_kayttoselvitys: + '#type': webform_section + '#title': 'Edellisen avustuksen käyttöselvitys' + compensation_boolean_info: + '#type': webform_markup + '#markup': | +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ compensation_boolean: + '#type': radios + '#title': 'Käyttöselvitys edellisenä vuonna saamastani avustuksesta' + '#options': + - 'En ole saanut Helsingin kaupungilta avustusta samaan käyttötarkoitukseen edellisenä vuonna.' + - 'Olen saanut Helsingin kaupungilta avustusta samaan käyttötarkoitukseen edellisenä vuonna.' + '#required': true + markup: + '#type': webform_markup + '#states': + visible: + ':input[name="compensation_boolean"]': + value: 'true' + '#markup': 'Anna käyttöselvitys Helsingin kaupungilta saadusta avustuksesta. Avustuksen käyttöselvitys tehdään avustuksesta, joka koskee viimeisintä päättynyttä tilikautta. Käyttöselvitystä ei tehdä käynnissä olevalta tilikaudelta. Käyttöselvityksen antaminen on seuraavan avustuksen saamisen ehtona. Mikäli käyttöselvitystä ei tehdä, avustusta ei myönnetä eikä makseta. Myönnetty avustus voidaan periä takaisin, jos edellisen avustuksen käyttöä ei ole hyväksyttävästi selvitetty.' + compensation_explanation: + '#type': textarea + '#title': 'Selvitys avustuksen käytöstä' + '#help': |- +

Kerro miten ja mihin tarkoitukseen edellinen työllisyysavustus on käytetty. Mikäli kyseessä oli kehittämisavustus, avustuksella toteutusta kehittämishankkeesta on annettava erillinen raportti (liitteellä).

+

Lisäksi tarvitaan kirjanpidollinen erittely toteutuneista kustannuksista, (avustuksen käyttöä kuvaava tuloslaskelma tms.), jonka toimittamisesta annetaan tarkemmat ohjeet hakuajan päättymisen jälkeen. Erittelyä ei tarvitse liittää hakemukseen.

+ '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#states': + visible: + ':input[name="compensation_boolean"]': + value: '1' + required: + ':input[name="compensation_boolean"]': + value: '1' + '#attributes': + class: + - webform--large + '#cols': 63 + 3_yhteison_tiedot: + '#type': webform_wizard_page + '#title': '3. Yhteisön toiminta' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + business_info: + '#type': webform_section + '#title': 'Toiminnan kuvaus' + business_purpose: + '#type': textarea + '#title': 'Toiminnan kuvaus' + '#help': 'Tieto haetaan omat tiedot -osiosta' + '#maxlength': 500 + '#counter_type': character + '#counter_maximum': 500 + '#counter_maximum_message': '%d/500 merkkiä jäljellä' + community_practices_business: + '#type': radios + '#title': 'Harjoittaako yhteisö liiketoimintaa' + '#options': + 1: Kyllä + 0: Ei + '#options_display': side_by_side + '#options_description_display': help + '#required': true + ensimmainen_otsikko: + '#type': webform_section + '#title': Jäsenmaksut + fee_person: + '#type': textfield + '#title': 'Henkilöjäsenen jäsenmaksu (€ / vuosi)' + '#attributes': + class: + - webform--sall + '#maxlength': 50 + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + '#size': 16 + fee_community: + '#type': textfield + '#title': 'Yhteisöjäsen (€ / vuosi)' + '#attributes': + class: + - webform--small + '#maxlength': 50 + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + '#size': 16 + jasenmaara: + '#type': webform_section + '#title': Jäsenmäärä + jasenmaara_fieldset: + '#type': fieldset + '#title': Jäsenmäärä + '#help': 'Jos yhteisöllä on jäseniä, merkitse ne tähän.' + '#attributes': + class: + - grants-fieldset + - grants-fieldset-short + members_applicant_person_global: + '#type': textfield + '#title': 'Henkilöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta henkilöjäsentä yhteisöllä on tällä hetkellä?' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + members_applicant_person_local: + '#type': textfield + '#title': 'Helsinkiläisiä henkilöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta helsinkiläistä henkilöjäsentä yhteisöllä on tällä hetkellä?' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + members_applicant_community_global: + '#type': textfield + '#title': Yhteisöjäseniä + '#help': 'Kuinka monta jäsenmaksun maksanutta yhteisöjäsentä yhteisöllä on tällä hetkellä? Yhteisöjäseniä ovat muut kuin henkilöjäsenet, esimerkiksi yhdistykset, säätiöt, yritykset tai kunnat.' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + members_applicant_community_local: + '#type': textfield + '#title': 'Helsinkiläisiä yhteisöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta helsinkiläistä yhteisöjäsentä yhteisöllä on tällä hetkellä? Yhteisöjäseniä ovat muut kuin henkilöjäsenet, esimerkiksi yhdistykset, säätiöt, yritykset tai kunnat.' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + lisatiedot_ja_liitteet: + '#type': webform_wizard_page + '#title': '4. Lisätiedot ja liitteet' + lisatietoja_hakemukseen_liittyen: + '#type': webform_section + '#title': 'Lisätietoja hakemukseen liittyen' + additional_information: + '#type': textarea + '#title': Lisätiedot + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' + '#counter_type': character + '#attributes': + class: + - webform--large + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + liitteet: + '#type': webform_section + '#title': Liitteet + attachments_info: + '#type': webform_markup + '#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.

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

+

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ notification_attachments: + '#type': webform_markup + '#markup': | +
+
+
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.

+
+
+ yhteison_saannot: + '#type': grants_attachments + '#title': 'Yhteisön säännöt' + '#multiple': false + '#filetype': '7' + '#help': 'Uusi hakija tai säännöt muuttuneet' + '#title_display': '' + '#description__access': false + vahvistettu_tilinpaatos: + '#type': grants_attachments + '#title': 'Vahvistettu tilinpäätös (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '43' + '#help': |- +

Tilinpäätöksen täytyy sisältää vähintään tuloslaskelma ja tase. Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun ja allekirjoitetun tilinpäätöksen.

+

Yhteisön tilikausi voi olla kalenterivuosi tai jokin muu kausi. Yhdistysten kohdalla niiden omissa säännöissä lukee, mikä on yhdistyksen tilikausi.

+ '#title_display': before + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi sisältö alta.' + '#description__access': false + vahvistettu_toimintakertomus: + '#type': grants_attachments + '#title': 'Vahvistettu toimintakertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '4' + '#help': |- +

Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun toimintakertomuksen.

+

Jos toimintakertomus on osana tilinpäätöstä ja liititte sen jo tilinpäätöksen mukana lomakkeelle, sitä ei tarvitse liittää tähän erikseen. Valitse tällaisessa tilanteessa toimintakertomuksen kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + vahvistettu_tilin_tai_toiminnantarkastuskertomus: + '#type': grants_attachments + '#title': 'Vahvistettu tilin- tai toiminnantarkastuskertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '5' + '#help': |- +

Liitä tähän allekirjoitettu tilin- tai toiminnantarkastuskertomus yhteisön edelliseltä päättyneeltä tilikaudelta.

+

Jos allekirjoitettu tilin- tai toiminnantarkastuskertomus on osa yhteisönne tilinpäätöstä ja liitit sen jo lomakkeelle tilinpäätöksen kohdalla, valitse tässä kohdassa ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + vuosikokouksen_poytakirja: + '#type': grants_attachments + '#title': 'Vuosikokouksen pöytäkirja, jossa on vahvistettu edellisen päättyneen tilikauden tilinpäätös' + '#multiple': false + '#filetype': '8' + '#help': 'Liitä tähän yhdistyksen viimeisimmän vuosikokouksen pöytäkirja. Jos yhdistyksellä on kaksi kokousta, liitä tähän kevätkokouksen pöytäkirja. Liitä syyskokouksen pöytäkirja kohtaan Muu liite.' + '#title_display': before + '#description__access': false + toimintasuunnitelma: + '#type': grants_attachments + '#title': 'Toimintasuunnitelma (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '1' + '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma. ' + '#title_display': before + '#description__access': false + talousarvio: + '#type': grants_attachments + '#title': 'Talousarvio (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '2' + '#help': 'Liitä tähän koko yhteisön talousarvio (sille vuodelle jolle haet avustusta)' + '#title_display': before + '#description__access': false + extra_info: + '#type': textarea + '#title': 'Lisäselvitys liitteistä' + '#counter_type': character + '#attributes': + class: + - webform--large + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + muu_liite: + '#type': grants_attachments + '#title': 'Muu liite' + '#multiple': 10 + '#filetype': '0' + '#title_display': before + '#multiple__item_label': liite + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi liite' + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + actions: + '#type': webform_actions + '#title': 'Submit button(s)' + '#submit__label': Lähetä + '#draft__label': 'Tallenna keskeneräisenä' + '#wizard_prev__label': 'Edellinen' + '#wizard_next__label': 'Seuraava' + '#preview_prev__label': 'Edellinen' + '#preview_next__label': 'Esikatseluun' + '#delete_hide': false + '#delete__label': 'Poista keskeneräinen' + '#delete__attributes': + class: + - hds-button + - hds-button--primary + '#delete__dialog': true +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: source_entity_webform + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: false + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: true + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: true + form_disable_back: false + form_submit_back: true + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: { } + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: true + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: true + wizard_progress_states: false + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '6. Valmis' + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: '' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava + wizard_toggle: true + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 2 + preview_label: '5. Vahvista, esikatsele ja lähetä' + preview_title: 'Vahvista, esikatsele ja lähetä' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: false + preview_exclude_empty_checkbox: false + draft: all + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: none + confirmation_url: '' + confirmation_title: '' + confirmation_message: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: true + confirmation_exclude_token: true + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: draft + purge_days: 365 + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - authenticated + users: { } + permissions: { } + view_any: + roles: + - admin + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: + grants_handler: + id: grants_handler + handler_id: grants_handler + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: 0 + settings: + debug: true +variants: { } diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.kuva_projekti.yml b/public/modules/custom/grants_handler/config/install/webform.webform.kuva_projekti.yml index b001f91317..c68ba11f3c 100644 --- a/public/modules/custom/grants_handler/config/install/webform.webform.kuva_projekti.yml +++ b/public/modules/custom/grants_handler/config/install/webform.webform.kuva_projekti.yml @@ -16,15 +16,17 @@ third_party_settings: applicationTypeTerms: 47: '47' applicationOpen: '2022-10-02T11:08:26' - applicationClose: '2023-07-31T11:19:00' - applicationContinuous: 0 + applicationClose: '2023-11-30T11:19:00' + applicationContinuous: 1 applicationTargetGroup: '22' - disableCopying: 0 + disableCopying: 1 applicationTypeSelect: '48' applicationIndustry: KUVA applicationActingYears: { } applicationActingYearsType: current_and_next_x_years applicationActingYearsNextCount: '1' + status: released + parent: '' weight: 0 open: null close: null @@ -33,8 +35,9 @@ template: false archive: false id: kuva_projekti title: 'Taide- ja kulttuuriavustukset: projektiavustukset' -description: KUVAPROJ -category: '' +description: '

KUVAPROJ

' +categories: + - Tuotannossa elements: |- avustukset_summa: '#type': grants_webform_summation_field @@ -138,7 +141,7 @@ elements: |- '#markup': 'Tiedot on haettu hakuprofiilistasi.' hakijan_tiedot: '#type': applicant_info - '#title': 'Hakija' + '#title': Hakija contact_person_email_section: '#type': webform_section '#title': Sähköposti @@ -155,6 +158,7 @@ elements: |- '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' '#size': 63 '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' '#states': required: ':input[name="applicant_type"]': @@ -227,8 +231,8 @@ elements: |- '#title': 'Valitse toiminnasta vastaavat henkilöt' '#multiple': true '#multiple__item_label': henkilö - '#multiple__min_items': 0 - '#multiple__empty_items': 1 + '#multiple__min_items': 1 + '#multiple__empty_items': 0 '#multiple__sorting': false '#multiple__add': false '#multiple__add_more_input': false @@ -260,6 +264,7 @@ elements: |- '#multiple': true '#subventionType': 4: '4' + '#onlyOneSubventionPerApplication': 1 '#required': true '#multiple__header': true '#multiple__empty_items': 0 @@ -276,9 +281,6 @@ elements: |- '#subvention_type_id__access': false '#subvention_type__title': Avustuslaji '#subvention_amount__title': 'Avustuksen summa' - markup: - '#type': webform_markup - '#markup': '

Hae yhdellä hakemuksella aina vain yhtä avustuslajia kerrallaan.

' ensisijainen_taiteen_ala: '#type': select '#title': 'Ensisijainen taiteenala' @@ -315,7 +317,8 @@ elements: |- '#wrapper_attributes': class: - webform-element-help--wrapper-short - '#help': 'Tässä tarkoitetaan festivaalia tai tapahtumaa, joka tapahtuu tiiviin ajanjakson sisällä ja on ohjelmaltaan ja kestoltaan laajempi kuin yksittäinen konsertti, esitys tms. Festivaali tai tapahtuma sisältää useampia eri ohjelmasisältöjä, esim. esityksiä, joiden välissä yleisö voi myös vaihtua. Esimerkiksi kaupunginosatapahtumat. Ei esimerkiksi esityssarjat. Festivaali tai tapahtuma voi olla toistuva tai kertaluonteinen.' + '#help': 'Festivaali tai tapahtuma sisältää useampia eri ohjelmasisältöjä, kuten esityksiä, joiden välissä yleisö voi myös vaihtua. Festivaaleja tai tapahtumia voivat olla esimerkiksi kaupunginosatapahtumat. Niitä eivät ole esimerkiksi esityssarjat tai laajemmat hankkeet, joita ei markkinoida festivaalina tai yhtenäisenä tapahtumana. Festivaali tai tapahtuma voi olla toistuva tai kertaluonteinen.' + '#description': 'Tässä tarkoitetaan festivaaliksi tai tapahtumaksi nimettyä ohjelmakokonaisuutta, joka tapahtuu tiiviin ajanjakson sisällä, mutta on ohjelmaltaan tai kestoltaan laajempi kuin yksittäinen konsertti, esitys, tms. ' '#options': 1: Kyllä 0: Ei @@ -347,7 +350,6 @@ elements: |-

- '#format': full_html olemme_saaneet_muita_avustuksia: '#type': radios '#title': 'Olemme saaneet muita avustuksia' @@ -383,7 +385,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: @@ -402,8 +403,8 @@ elements: |- class: - webform--small '#maxlength': 4 - '#pattern': '^[0-9]*$' - '#pattern_error': 'Vain numeroita' + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' amount: '#type': textfield '#required': true @@ -440,40 +441,44 @@ elements: |- - grants-fieldset - grants-fieldset-short members_applicant_person_global: - '#type': number + '#type': textfield '#title': 'Henkilöjäseniä yhteensä' - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': class: - webform--small members_applicant_person_local: - '#type': number + '#type': textfield '#title': 'Helsinkiläisiä henkilöjäseniä yhteensä' - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': class: - webform--small members_applicant_community_global: - '#type': number + '#type': textfield '#title': Yhteisöjäseniä - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': class: - webform--small members_applicant_community_local: - '#type': number + '#type': textfield '#title': 'Helsinkiläisiä yhteisöjäseniä yhteensä' - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': @@ -491,31 +496,42 @@ elements: |- - grants-fieldset - grants-fieldset-short kokoaikainen_henkilosto: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Kokoaikaisia: Henkilöitä' '#attributes': class: - webform--small kokoaikainen_henkilotyovuosia: - '#type': number + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''2'', ''radixPoint'': '','', ''substituteRadixPoint'': ''true''' '#title': 'Kokoaikaisia: Henkilötyövuosia' '#attributes': class: - webform--small osa_aikainen_henkilosto: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Osa-aikaisia: Henkilöitä' '#attributes': class: - webform--small osa_aikainen_henkilotyovuosia: - '#type': number + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''2'', ''radixPoint'': '','', ''substituteRadixPoint'': ''true''' '#title': 'Osa-aikaisia: Henkilötyövuosia' '#attributes': class: - webform--small vapaaehtoinen_henkilosto: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Vapaaehtoisia: Henkilöitä' '#attributes': class: @@ -528,9 +544,12 @@ elements: |- arvio_maarista: '#type': webform_section '#title': 'Arvio määristä' - '#description': 'Syötä tiedot koskien koko hanketta, johon avustusta haetaan. Syötä tiedot vain fyysisten esitysten, näyttelyiden ja työpajojen osalta, älä laske mukaan pelkästään digitaalisina toteutettuja ohjelmasisältöjä.' + '#description': 'Syötä tiedot koskien koko hanketta, johon avustusta haetaan. Syötä tiedot vain fyysisten esitysten, näyttelyiden ja työpajojen osalta, älä laske mukaan pelkästään digitaalisina toteutettuja ohjelmasisältöjä. Helsingin kaupungin avustuksissa arvioidaan toiminnan kohdistumista Helsinkiin ja helsinkiläisiin. Tästä syystä osaa tiedoista kysytään eritellysti Helsingin ja kokonaisuuden osalta.' tapahtuma_tai_esityspaivien_maara_helsingissa: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Tapahtuma- tai esityspäivien määrä Helsingissä' '#required': true '#attributes': @@ -539,23 +558,33 @@ elements: |- esityspaivien_maara_helsingissa_fieldset: '#type': fieldset '#title': 'Määrä Helsingissä' + '#help': 'Valitse, mihin kategoriaan toiminta parhaiten sopii (esitys, näyttely vai työpaja tai muu osallistava toimintamuoto) ja täytä tiedot vain kyseiseen kohtaan. Älä merkitse samaa toimintaa useaan eri kohtaan.' '#attributes': class: - grants-fieldset esitykset_maara_helsingissa: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': Esitykset '#attributes': class: - webform--small nayttelyt_maara_helsingissa: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': Näyttelyt '#attributes': class: - webform--small tyopaja_maara_helsingissa: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Työpaja tai muu osallistava toimintamuoto' '#attributes': class: @@ -563,63 +592,84 @@ elements: |- esityspaivien_maara_kaikkiaan_fieldset: '#type': fieldset '#title': 'Määrä kaikkiaan' + '#help': 'Määrä kaikkiaan -kohdassa täytä luvut sisältäen toiminnan kokonaisuudessaan sekä Suomessa että mahdollisesti ulkomailla. Valitse, mihin kategoriaan toiminta parhaiten sopii (esitys, näyttely vai työpaja tai muu osallistava toimintamuoto) ja täytä tiedot vain kyseiseen kohtaan. Älä merkitse samaa toimintaa useaan eri kohtaan.' '#attributes': class: - grants-fieldset - '#help': 'Täytä luvut sisältäen toiminnan kokonaisuudessaan sekä Suomessa että mahdollisesti ulkomailla.' esitykset_maara_kaikkiaan: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': Esitykset '#attributes': class: - webform--small nayttelyt_maara_kaikkiaan: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': Näyttelyt '#attributes': class: - webform--small tyopaja_maara_kaikkiaan: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Työpaja tai muu osallistava toimintamuoto' '#attributes': class: - webform--small maara_helsingissa: - '#type': number + '#type': textfield + '#maxlength': 11 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Kävijämäärä Helsingissä' - '#help': 'Älä täytä samoja kävijöitä kahteen kertaan, esim. näyttelytilassa järjestettyä työpajaa sekä näyttelyihin että työpajoihin.' '#attributes': class: - webform--small maara_kaikkiaan: - '#type': number + '#type': textfield + '#maxlength': 11 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Kävijämäärä kaikkiaan' - '#help': 'Määrä kaikkiaan -kohdassa täytä luvut sisältäen toiminnan kokonaisuudessaan sekä Suomessa että mahdollisesti ulkomailla.' '#attributes': class: - webform--small - esityksista: - '#type': webform_section - '#title': Esityksistä - kantaesitysten_maara: - '#type': number - '#title': 'Kantaesitysten määrä' - '#attributes': - class: - - webform--small - '#help': 'Kantaesityksellä tarkoitetaan ennen esittämätöntä, täysin uutta teosta. Esimerkiksi uusinta-ensi-ilta ei ole kantaesitys.' - ensi_iltojen_maara_helsingissa: - '#type': number - '#title': 'Ensi-iltojen määrä Helsingissä' - '#attributes': - class: - - webform--small - '#help': 'Ensi-illalla tarkoitetaan tuotannon ensimmäistä esitystä. Täytä tähän ne ensi-illat, jotka tapahtuvat Helsingissä.' + esityksista: + '#type': fieldset + '#title': Esityksistä + kantaesitysten_maara: + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': 'Kantaesitysten määrä' + '#attributes': + class: + - webform--small + '#help': 'Kantaesityksellä tarkoitetaan ennen esittämätöntä, täysin uutta teosta. Esimerkiksi uusinta-ensi-ilta ei ole kantaesitys.' + ensi_iltojen_maara_helsingissa: + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': 'Ensi-iltojen määrä Helsingissä' + '#attributes': + class: + - webform--small + '#help': 'Ensi-illalla tarkoitetaan tuotannon ensimmäistä esitystä. Täytä tähän ne ensi-illat, jotka tapahtuvat Helsingissä.' yleisolle_avoin_toiminta: '#type': webform_section - '#title': 'Yleisölle avoin toiminta' - '#help': 'Yleisölle avoimella toiminnalla tarkoitetaan tässä mm. esityksiä, näyttelyitä ja työpajoja tai muita osallistavia toimintamuotoja.' + '#title': 'Yleisölle avoin toiminta Helsingissä toteutetaan' + toiminta_markup: + '#type': webform_markup + '#markup': 'Yleisölle avoimella toiminnalla tarkoitetaan tässä mm. esityksiä, näyttelyitä ja työpajoja tai muita osallistavia toimintamuotoja.' ensimmainen_tila_fieldset: '#type': fieldset '#title': 'Ensimmäinen yleisölle avoimen tilaisuuden paikka Helsingissä' @@ -631,18 +681,21 @@ elements: |- class: - webform--large postinumero: - '#type': number + '#type': textfield '#title': Postinumero '#attributes': class: - webform--small - '#input_mask': '99999' + '#pattern': '^[0-9]{5}$' + '#pattern_error': 'Syötä 5 numeroinen postinumero.' + '#required': true kyseessa_on_kaupungin_omistama_tila: '#type': radios '#title': 'Kyseessä on kaupungin omistama tila' '#options': 1: Kyllä 0: Ei + '#required': true tila: '#type': premises_composite '#title': 'Muut tilat' @@ -652,12 +705,13 @@ elements: |- '#multiple__min_items': 0 '#multiple__empty_items': 0 '#multiple__sorting': false - '#postCode__required': true '#multiple__add': false '#multiple__add_more_input': false + '#multiple__item_label': 'tila' '#multiple__add_more_button_label': 'Lisää uusi tila' '#premiseType__access': false '#premiseAddress__access': false + '#postCode__required': true '#location__access': false '#streetAddress__access': false '#address__access': false @@ -861,17 +915,18 @@ elements: |- value: registered_community markup_01: '#type': webform_markup - '#markup': 'Koskien koko hanketta, johon avustusta haetaan.' + '#markup': 'Kirjaa talousarvioon kaikki hankkeen tulot ja menot kokonaisuudessaan. Älä siis kirjaa vain niitä menoja, jotka on tarkoitus kattaa haetulla avustuksella.' organisaatio_kuuluu_valtionosuusjarjestelmaan_vos_: '#type': radios '#required': true + '#help': 'Valitse kyllä, vain jos varmuudella tiedät organisaatiosi saavan rahoitusta juuri valtionosuuden muodossa. Tällä ei tarkoiteta kaikkia valtion myöntämiä avustuksia, vaan kyseessä on rajattua joukkoa koskeva lakisääteinen erillinen rahoitusmuoto. Taide- ja kulttuuritoimijoiden valtionosuudet ovat laskennallisiin osuuksiin, esimerkiksi henkilötyövuosiin ja niiden yksikköhintaan tai taiteen perusopetuksen opetustuntimäärään perustuvia tukia.' '#title': 'Organisaatio kuuluu valtionosuusjärjestelmään (VOS)' '#options': 1: Kyllä 0: Ei - tulot: - '#type': webform_section - '#title': 'Suunnitellut tulot' + tulot: + '#type': webform_markup + '#markup': '

Suunnitellut tulot

' budget_static_income: '#type': grants_budget_income_static '#title': '' @@ -888,6 +943,9 @@ elements: |- '#otherCompensationFromCity__access': false '#stateOperativeSubvention__access': false '#plannedOtherCompensations__help': 'Myös muut kaupungin avustukset.' + '#sponsorships__title': 'Yksityinen rahoitus (esim. sponsorointi, yritysyhteistyö, lahjoitukset) (€)' + '#entryFees__title': 'Pääsy- tai osallistumismaksut (€)' + '#entryFees__help': 'Esim. lipunmyyntitulot' '#financialFundingAndInterests__access': false '#customerFees__access': false '#donations__access': false @@ -902,9 +960,9 @@ elements: |- '#shareOfIncomeWithoutSubventions__access': false '#totalIncomeWithoutSubventions__access': false '#totalIncome__access': false - menot: - '#type': webform_section - '#title': 'Suunnitellut menot' + menot: + '#type': webform_markup + '#markup': '

Suunnitellut menot

' budget_static_cost: '#type': grants_budget_cost_static '#title': '' @@ -949,12 +1007,13 @@ elements: |- '#costsWithoutDeferredItems__access': false '#generalCostsTotal__access': false '#showCosts__help': 'Teosten esittämisestä muuna kuin palkkana tai palkkiona maksettavat korvaukset.' + '#premises__title': 'Kiinteistöjen käyttökulut, vuokrat (€)' '#totalCosts__access': false '#allCostsTotal__access': false '#plannedTotalCosts__access': false budget_other_cost: '#type': grants_budget_other_cost - '#title': 'Muut menot' + '#title': 'Muut kulut' '#multiple': true '#incomeGroup': general '#multiple__min_items': 1 @@ -962,11 +1021,17 @@ elements: |- '#multiple__sorting': false '#multiple__add': false '#multiple__add_more_input': false - muu_huomioitava_panostus_osio: - '#type': webform_section - '#title': 'Muu huomioitava panostus' + '#multiple__add_more_button_label': 'Lisää uusi kulu' + '#multiple__item_label': 'kulu' + muu_huomioitava_panostus_osio: + '#type': webform_markup + '#markup': '

Muu huomioitava panostus

' muu_huomioitava_panostus: '#type': textarea + '#counter_type': character + '#counter_maximum': 1000 + '#maxlength': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' '#attributes': class: - webform--large @@ -983,7 +1048,7 @@ elements: |- '#attributes': class: - webform--large - '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen tai ilmoittaa perustietoihin tulleista muutoksista ' + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' '#counter_type': character '#maxlength': 5000 '#counter_maximum': 5000 @@ -995,15 +1060,12 @@ elements: |- attachments_info: '#type': webform_markup '#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 työryhmän jäsenten ansioluettelot, kun kyseessä on taiteen ammattilaisten hanke. 
-
- Uusilta hakijoilta ja tapauksissa, joissa pankkiyhteystiedot ovat muuttuneet, tarvitaan hakijan Omiin tietoihin myös tiliote tai vastaava asiakirja, josta selviää tilinomistajan nimi ja tilinumero.
-
- Usean liitteen toimittaminen
- Voit toimittaa useampia työryhmän jäsenten ansioluetteloita erillisinä tiedostoina liittämällä ne Muu liite -kohtaan. Voit halutessasi myös toimittaa useampia liitteitä yhtenä tiedostona. +

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 työryhmän jäsenten ansioluettelot, kun kyseessä on taiteen ammattilaisten hanke.

+

Uusilta hakijoilta ja tapauksissa, joissa pankkiyhteystiedot ovat muuttuneet, tarvitaan hakijan Omiin tietoihin myös tiliote tai vastaava asiakirja, josta selviää tilinomistajan nimi ja tilinumero.

+

Usean liitteen toimittaminen

+

Voit toimittaa useampia työryhmän jäsenten ansioluetteloita erillisinä tiedostoina liittämällä ne Muu liite -kohtaan. Voit halutessasi myös toimittaa useampia liitteitä yhtenä tiedostona.

notification_attachments: '#type': webform_markup '#markup': | @@ -1012,20 +1074,19 @@ 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.

- '#format': full_html extra_info: '#type': textarea '#title': 'Lisäselvitys liitteistä' + '#maxlength': 5000 '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' '#attributes': class: - webform--large - '#maxlength': 5000 - '#counter_maximum': 5000 - '#counter_maximum_message': 'Max 5000 characters.' '#cols': 63 muu_liite: '#type': grants_attachments @@ -1038,7 +1099,7 @@ elements: |- '#multiple__add': false '#multiple__remove': false '#multiple__add_more_input': false - '#multiple__add_more_button_label': 'Lisää liite' + '#multiple__add_more_button_label': 'Lisää uusi liite' '#isDeliveredLater__access': false '#isIncludedInOtherFile__access': false actions: @@ -1049,7 +1110,7 @@ elements: |- '#wizard_prev__label': 'Edellinen' '#wizard_next__label': 'Seuraava' '#preview_prev__label': 'Edellinen' - '#preview_next__label': 'Esikatseluun >' + '#preview_next__label': 'Esikatseluun' '#delete_hide': false '#delete__label': 'Poista keskeneräinen' '#delete__attributes': @@ -1229,13 +1290,13 @@ settings: wizard_start_label: '' wizard_preview_link: false wizard_confirmation: true - wizard_confirmation_label: '' + wizard_confirmation_label: '9. Valmis' wizard_auto_forward: true wizard_auto_forward_hide_next_button: false wizard_keyboard: true wizard_track: '' - wizard_prev_button_label: 'Edellinen' - wizard_next_button_label: 'Seuraava' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava wizard_toggle: true wizard_toggle_show_label: '' wizard_toggle_hide_label: '' diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.kuva_toiminta.yml b/public/modules/custom/grants_handler/config/install/webform.webform.kuva_toiminta.yml index 808f593eb4..b5978324ff 100644 --- a/public/modules/custom/grants_handler/config/install/webform.webform.kuva_toiminta.yml +++ b/public/modules/custom/grants_handler/config/install/webform.webform.kuva_toiminta.yml @@ -13,17 +13,19 @@ third_party_settings: registered_community: registered_community applicationTypeTerms: 45: '45' - applicationOpen: '2022-10-02T11:08:26' - applicationClose: '2023-07-31T11:19:00' + applicationOpen: '2024-06-05T10:08:26' + applicationClose: '2024-09-02T16:02:00' applicationContinuous: 0 applicationTargetGroup: '22' disableCopying: 0 applicationTypeSelect: '47' applicationIndustry: KUVA applicationActingYears: - 2023: '2023' 2024: '2024' - 2025: '2025' + applicationActingYearsType: next_x_years + applicationActingYearsNextCount: '1' + status: released + parent: '' weight: 0 open: null close: null @@ -32,8 +34,9 @@ template: false archive: false id: kuva_toiminta title: 'Taide- ja kulttuuriavustukset: toiminta-avustukset' -description: KUVATOIM -category: '' +description: '

KUVATOIM

' +categories: + - Tuotannossa elements: |- avustukset_summa: '#type': grants_webform_summation_field @@ -138,7 +141,7 @@ elements: |- '#markup': 'Tiedot on haettu hakuprofiilistasi.' hakijan_tiedot: '#type': applicant_info - '#title': 'Hakija' + '#title': Hakija contact_person_email_section: '#type': webform_section '#title': Sähköposti @@ -151,6 +154,7 @@ elements: |- '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' '#size': 63 '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' '#required': true contact_person_section: '#type': webform_section @@ -173,7 +177,7 @@ elements: |- '#states': visible: ':input[name="applicant_type"]': - 'value': registered_community + value: registered_community community_address: '#type': community_address_composite '#title': 'Yhteisön osoite' @@ -185,7 +189,7 @@ elements: |- '#states': visible: ':input[name="applicant_type"]': - 'value': registered_community + value: registered_community tilinumero: '#type': webform_section '#title': Tilinumero @@ -247,13 +251,13 @@ elements: |- - '#format': full_html subventions: '#type': grants_compensations '#title': Avustukset '#multiple': true '#subventionType': 1: '1' + '#onlyOneSubventionPerApplication': 1 '#required': true '#multiple__header': true '#multiple__empty_items': 0 @@ -269,16 +273,13 @@ elements: |- '#subvention_type_id__access': false '#subvention_type__title': Avustuslaji '#subvention_amount__title': 'Avustuksen summa' - markup: - '#type': webform_markup - '#markup': '

Hae yhdellä hakemuksella aina vain yhtä avustuslajia kerrallaan.

' info_monivuotinen: - '#type': processed_text + '#type': webform_markup '#states': visible: ':input[name="avustukset_summa"]': value: - greater_equal: '5000' + greater: '5000' '#markup': |
@@ -288,7 +289,6 @@ elements: |-
- '#format': full_html kyseessa_on_monivuotinen_avustus: '#type': radios '#title': 'Kyseessä on monivuotinen avustus' @@ -297,7 +297,7 @@ elements: |- visible: ':input[name="avustukset_summa"]': value: - greater_equal: '5000' + greater: '5000' '#description': 'Nelivuotiskaudella 2023-2026 monivuotisia toiminta-avustuksia voidaan myöntää helsinkiläisille rekisteröityneille esittävän taiteen ja musiikin valtionosuusjärjestelmän piirissä oleville taide- ja kulttuuriyhteisöille. Tuen saajat on päätetty vuoden 2022 lopulla.' '#options': 1: Kyllä @@ -316,13 +316,13 @@ elements: |- value: '1' ':input[name="avustukset_summa"]': value: - greater_equal: '5000' + greater: '5000' required: ':input[name="kyseessa_on_monivuotinen_avustus"]': value: '1' ':input[name="avustukset_summa"]': value: - greater_equal: '5000' + greater: '5000' '#attributes': class: - webform--large @@ -371,7 +371,8 @@ elements: |- '#wrapper_attributes': class: - webform-element-help--wrapper-short - '#help': 'Tässä tarkoitetaan festivaalia tai tapahtumaa, joka tapahtuu tiiviin ajanjakson sisällä ja on ohjelmaltaan ja kestoltaan laajempi kuin yksittäinen konsertti, esitys tms. Festivaali tai tapahtuma sisältää useampia eri ohjelmasisältöjä, esim. esityksiä, joiden välissä yleisö voi myös vaihtua. Esimerkiksi kaupunginosatapahtumat. Ei esimerkiksi esityssarjat. Festivaali tai tapahtuma voi olla toistuva tai kertaluonteinen.' + '#help': 'Festivaali tai tapahtuma sisältää useampia eri ohjelmasisältöjä, kuten esityksiä, joiden välissä yleisö voi myös vaihtua. Festivaaleja tai tapahtumia voivat olla esimerkiksi kaupunginosatapahtumat. Niitä eivät ole esimerkiksi esityssarjat tai laajemmat hankkeet, joita ei markkinoida festivaalina tai yhtenäisenä tapahtumana. Festivaali tai tapahtuma voi olla toistuva tai kertaluonteinen.' + '#description': 'Tässä tarkoitetaan festivaaliksi tai tapahtumaksi nimettyä ohjelmakokonaisuutta, joka tapahtuu tiiviin ajanjakson sisällä, mutta on ohjelmaltaan tai kestoltaan laajempi kuin yksittäinen konsertti, esitys, tms.' '#options': 1: Kyllä 0: Ei @@ -403,7 +404,6 @@ elements: |- - '#format': full_html olemme_saaneet_muita_avustuksia: '#type': radios '#title': 'Olemme saaneet muita avustuksia' @@ -440,7 +440,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: @@ -456,11 +455,11 @@ elements: |- '#required': true '#title': Vuosi '#maxlength': 4 - '#pattern': '^[0-9]*$' + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' '#attributes': class: - webform--small - '#pattern_error': 'Vain numeroita' amount: '#type': textfield '#required': true @@ -497,40 +496,40 @@ elements: |- - grants-fieldset - grants-fieldset-short members_applicant_person_global: - '#type': number + '#type': textfield '#title': 'Henkilöjäseniä yhteensä' - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': class: - webform--small members_applicant_person_local: - '#type': number + '#type': textfield '#title': 'Helsinkiläisiä henkilöjäseniä yhteensä' - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': class: - webform--small members_applicant_community_global: - '#type': number + '#type': textfield '#title': Yhteisöjäseniä - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': class: - webform--small members_applicant_community_local: - '#type': number + '#type': textfield '#title': 'Helsinkiläisiä yhteisöjäseniä yhteensä' - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': @@ -548,31 +547,39 @@ elements: |- - grants-fieldset - grants-fieldset-short kokoaikainen_henkilosto: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' '#title': 'Kokoaikaisia: Henkilöitä' '#attributes': class: - webform--small kokoaikainen_henkilotyovuosia: - '#type': number + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''2'', ''radixPoint'': '','', ''substituteRadixPoint'': ''true''' '#title': 'Kokoaikaisia: Henkilötyövuosia' '#attributes': class: - webform--small osa_aikainen_henkilosto: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' '#title': 'Osa-aikaisia: Henkilöitä' '#attributes': class: - webform--small osa_aikainen_henkilotyovuosia: - '#type': number + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''2'', ''radixPoint'': '','', ''substituteRadixPoint'': ''true''' '#title': 'Osa-aikaisia: Henkilötyövuosia' '#attributes': class: - webform--small vapaaehtoinen_henkilosto: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' '#title': 'Vapaaehtoisia: Henkilöitä' '#attributes': class: @@ -592,7 +599,6 @@ elements: |-

Vastaa hakuhetken tilanteen mukaisesti.

- '#format': full_html taiteellisen_toiminnan_tilaa_omistuksessa_tai_ymparivuotisesti_p: '#type': radios '#title': 'Taiteellisen toiminnan tilaa omistuksessa tai ympärivuotisesti päävuokralaisena' @@ -608,12 +614,20 @@ elements: |- '#type': premises_composite '#title': Tila '#multiple': true + '#states': + visible: + ':input[name="taiteellisen_toiminnan_tilaa_omistuksessa_tai_ymparivuotisesti_p"]': + value: '1' + required: + ':input[name="taiteellisen_toiminnan_tilaa_omistuksessa_tai_ymparivuotisesti_p"]': + value: '1' '#multiple__min_items': 1 '#multiple__empty_items': 0 '#multiple__sorting': false '#multiple__add': false '#multiple__add_more_input': false - '#premiseType__access': true + '#multiple__item_label': 'tila' + '#multiple__add_more_button_label': 'Lisää uusi tila' '#premiseAddress__access': false '#location__access': false '#streetAddress__access': false @@ -628,14 +642,8 @@ elements: |- '#rentTimeEnd__access': false '#free__access': false '#isOthersUse__title': 'Tilaa tarjotaan muiden käyttöön (ilmaiseksi tai vuokralla)' - '#isOwnedByApplicant__title': 'Tila on omassa omistuksessa' - '#states': - visible: - ':input[name="taiteellisen_toiminnan_tilaa_omistuksessa_tai_ymparivuotisesti_p"]': - value: '1' - required: - ':input[name="taiteellisen_toiminnan_tilaa_omistuksessa_tai_ymparivuotisesti_p"]': - value: '1' + '#citySection__access': false + '#premiseSuitability__access': false 4_toiminta: '#type': webform_wizard_page '#title': '4. Toiminta' @@ -647,11 +655,14 @@ elements: |- arvio_maarasta_markup: '#type': webform_markup '#markup': |- -

Arvio määristä

+

Arvio määristä

-

Syötä tiedot koskien omaa toimintaa vuonna, jolle avustusta haetaan. Syötä tiedot vain fyysisten esitysten, näyttelyiden ja työpajojen osalta, älä laske mukaan pelkästään digitaalisina toteutettuja ohjelmasisältöjä.

+

Syötä tiedot koskien omaa toimintaa vuonna, jolle avustusta haetaan. Syötä tiedot vain fyysisten esitysten, näyttelyiden ja työpajojen osalta, älä laske mukaan pelkästään digitaalisina toteutettuja ohjelmasisältöjä. Helsingin kaupungin avustuksissa arvioidaan toiminnan kohdistumista Helsinkiin ja helsinkiläisiin. Tästä syystä osaa tiedoista kysytään eritellysti Helsingin ja kokonaisuuden osalta.

tapahtuma_tai_esityspaivien_maara_helsingissa: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Tapahtuma- tai esityspäivien määrä Helsingissä' '#required': true '#attributes': @@ -660,23 +671,33 @@ elements: |- esityspaivien_maara_helsingissa_fieldset: '#type': fieldset '#title': 'Määrä Helsingissä' + '#help': 'Valitse, mihin kategoriaan toiminta parhaiten sopii (esitys, näyttely vai työpaja tai muu osallistava toimintamuoto) ja täytä tiedot vain kyseiseen kohtaan. Älä merkitse samaa toimintaa useaan eri kohtaan.' '#attributes': class: - grants-fieldset esitykset_maara_helsingissa: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': Esitykset '#attributes': class: - webform--small nayttelyt_maara_helsingissa: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': Näyttelyt '#attributes': class: - webform--small tyopaja_maara_helsingissa: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Työpaja tai muu osallistava toimintamuoto' '#attributes': class: @@ -684,24 +705,33 @@ elements: |- esityspaivien_maara_kaikkiaan_fieldset: '#type': fieldset '#title': 'Määrä kaikkiaan' + '#help': 'Täytä luvut sisältäen toiminnan kokonaisuudessaan sekä Suomessa että mahdollisesti ulkomailla. Valitse, mihin kategoriaan toiminta parhaiten sopii (esitys, näyttely vai työpaja tai muu osallistava toimintamuoto) ja täytä tiedot vain kyseiseen kohtaan. Älä merkitse samaa toimintaa useaan eri kohtaan.' '#attributes': class: - grants-fieldset - '#help': 'Täytä luvut sisältäen toiminnan kokonaisuudessaan sekä Suomessa että mahdollisesti ulkomailla.' esitykset_maara_kaikkiaan: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': Esitykset '#attributes': class: - webform--small nayttelyt_maara_kaikkiaan: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': Näyttelyt '#attributes': class: - webform--small tyopaja_maara_kaikkiaan: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Työpaja tai muu osallistava toimintamuoto' '#attributes': class: @@ -713,14 +743,20 @@ elements: |- class: - grants-fieldset kantaesitysten_maara: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Kantaesitysten määrä' '#attributes': class: - webform--small '#help': 'Kantaesityksellä tarkoitetaan ennen esittämätöntä, täysin uutta teosta. Esimerkiksi uusinta-ensi-ilta ei ole kantaesitys.' ensi_iltojen_maara_helsingissa: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Ensi-iltojen määrä Helsingissä' '#attributes': class: @@ -728,31 +764,40 @@ elements: |- '#help': 'Ensi-illalla tarkoitetaan tuotannon ensimmäistä esitystä. Täytä tähän ne ensi-illat, jotka tapahtuvat Helsingissä.' festivaali_paivanmaarat_maarasta_markup: '#type': webform_markup - '#markup': '

Tapahtuman tai festivaalin päivämäärät

' + '#markup': '

Festivaalin tai tapahtuman päivämäärät

' festivaalin_tai_tapahtuman_kohdalla_tapahtuman_paivamaarat: - '#type': textarea + '#type': textfield + '#counter_type': character + '#counter_maximum': 100 + '#counter_maximum_message': '%d/100 merkkiä jäljellä' '#attributes': class: - webform--large - '#title': 'Tapahtuman tai festivaalin päivämäärät' + '#title': 'Festivaalin tai tapahtuman kohdalla tapahtuman päivämäärät' toimintamuodot_markup: '#type': webform_markup '#markup': |- -

Muut keskeiset toimintamuodot

+

Muut keskeiset toimintamuodot

Jos toiminta sisältää yleisölle avointen esitysten, näyttelyiden ja työpajojen tai muiden osallistavien toimintamuotojen lisäksi muita keskeisiä muotoja, listaa ne tähän.

muut_keskeiset_toimintamuodot: '#type': textarea '#title': 'Muut keskeiset toimintamuodot' + '#counter_type': character + '#counter_maximum': 2500 + '#counter_maximum_message': '%d/2500 merkkiä jäljellä' '#attributes': class: - webform--large toteutunut_toiminta: '#type': webform_section '#title': 'Toteutunut toiminta' + markup: + '#type': webform_markup + '#markup': '

Edellisenä päättyneenä tilivuonna.

' oliko_kyseessa_festivaali_tai_tapahtuma_: '#type': radios '#title': 'Oliko kyseessä festivaali tai tapahtuma?' - '#help': 'Tässä tarkoitetaan festivaalia tai tapahtumaa, joka tapahtuu tiiviin ajanjakson sisällä ja on ohjelmaltaan ja kestoltaan laajempi kuin yksittäinen konsertti, esitys tms.  Festivaali tai tapahtuma sisältää useampia eri ohjelmasisältöjä, esim. esityksiä, joiden välissä yleisö voi myös vaihtua. Esimerkiksi kaupunginosatapahtumat. Ei esimerkiksi esityssarjat. Festivaali tai tapahtuma voi olla toistuva tai kertaluonteinen.' + '#help': 'Tässä tarkoitetaan festivaaliksi tai tapahtumaksi nimettyä ohjelmakokonaisuutta, joka tapahtuu tiiviin ajanjakson sisällä, mutta on ohjelmaltaan tai kestoltaan laajempi kuin yksittäinen konsertti, esitys, tms. Festivaali tai tapahtuma sisältää useampia eri ohjelmasisältöjä, kuten esityksiä, joiden välissä yleisö voi myös vaihtua. Festivaaleja tai tapahtumia voivat olla esimerkiksi kaupunginosatapahtumat. Niitä eivät ole esimerkiksi esityssarjat tai laajemmat hankkeet, joita ei markkinoida festivaalina tai yhtenäisenä tapahtumana. Festivaali tai tapahtuma voi olla toistuva tai kertaluonteinen.' '#options': 1: Kyllä 0: Ei @@ -763,11 +808,14 @@ elements: |- toteutuneet_markup: '#type': webform_markup '#markup': |- -

Toteutuneet määrät

+

Toteutuneet määrät

-

Syötä tiedot koskien omaa toimintaa edellisenä päättyneenä vuonna. Syötä tiedot vain fyysisten esitysten, näyttelyiden ja työpajojen osalta, älä laske mukaan pelkästään digitaalisina toteutettuja ohjelmasisältöjä.

+

Syötä tiedot koskien omaa toimintaa edellisenä päättyneenä vuonna. Syötä tiedot vain fyysisten esitysten, näyttelyiden ja työpajojen osalta, älä laske mukaan pelkästään digitaalisina toteutettuja ohjelmasisältöjä. Helsingin kaupungin avustuksissa arvioidaan toiminnan kohdistumista Helsinkiin ja helsinkiläisiin. Tästä syystä osaa tiedoista kysytään eritellysti Helsingin ja kokonaisuuden osalta.

tapahtuma_tai_esityspaivien_maara_helsingissa_toteutuneet: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Tapahtuma- tai esityspäivien määrä Helsingissä' '#required': true '#attributes': @@ -776,23 +824,33 @@ elements: |- esityspaivien_maara_helsingissa_toteutuneet_fieldset: '#type': fieldset '#title': 'Määrä Helsingissä' + '#help': 'Valitse, mihin kategoriaan toiminta parhaiten sopii (esitys, näyttely vai työpaja tai muu osallistava toimintamuoto) ja täytä tiedot vain kyseiseen kohtaan. Älä merkitse samaa toimintaa useaan eri kohtaan.' '#attributes': class: - grants-fieldset esitykset_maara_helsingissa_toteutuneet: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': Esitykset '#attributes': class: - webform--small nayttelyt_maara_helsingissa_toteutuneet: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': Näyttelyt '#attributes': class: - webform--small tyopaja_maara_helsingissa_toteutuneet: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Työpaja tai muu osallistava toimintamuoto' '#attributes': class: @@ -800,24 +858,33 @@ elements: |- esityspaivien_maara_kaikkiaan_toteutuneet_fieldset: '#type': fieldset '#title': 'Määrä kaikkiaan' + '#help': 'Täytä luvut sisältäen toiminnan kokonaisuudessaan sekä Suomessa että mahdollisesti ulkomailla. Valitse, mihin kategoriaan toiminta parhaiten sopii (esitys, näyttely vai työpaja tai muu osallistava toimintamuoto) ja täytä tiedot vain kyseiseen kohtaan. Älä merkitse samaa toimintaa useaan eri kohtaan. ' '#attributes': class: - grants-fieldset - '#help': 'Täytä luvut sisältäen toiminnan kokonaisuudessaan sekä Suomessa että mahdollisesti ulkomailla.' esitykset_maara_kaikkiaan_toteutuneet: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': Esitykset '#attributes': class: - webform--small nayttelyt_maara_kaikkiaan_toteutuneet: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': Näyttelyt '#attributes': class: - webform--small tyopaja_maara_kaikkiaan_toteutuneet: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Työpaja tai muu osallistava toimintamuoto' '#attributes': class: @@ -829,14 +896,20 @@ elements: |- class: - grants-fieldset maara_helsingissa_toteutuneet: - '#type': number + '#type': textfield + '#maxlength': 11 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Kävijämäärä Helsingissä' '#help': 'Älä täytä samoja kävijöitä kahteen kertaan, esim. näyttelytilassa järjestettyä työpajaa sekä näyttelyihin että työpajoihin.' '#attributes': class: - webform--small maara_kaikkiaan_toteutuneet: - '#type': number + '#type': textfield + '#maxlength': 11 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Kävijämäärä kaikkiaan' '#help': 'Määrä kaikkiaan -kohdassa täytä luvut sisältäen toiminnan kokonaisuudessaan sekä Suomessa että mahdollisesti ulkomailla.' '#attributes': @@ -849,14 +922,20 @@ elements: |- class: - grants-fieldset toteutuneet_kantaesitysten_maara: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Kantaesitysten määrä' '#help': 'Kantaesityksellä tarkoitetaan ennen esittämätöntä, täysin uutta teosta. Esimerkiksi uusinta-ensi-ilta ei ole kantaesitys.' '#attributes': class: - webform--small toteutuneet_ensi_iltojen_maara_helsingissa: - '#type': number + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Ensi-iltojen määrä Helsingissä' '#help': 'Ensi-illalla tarkoitetaan tuotannon ensimmäistä esitystä. Täytä tähän ne ensi-illat, jotka tapahtuvat Helsingissä.' '#attributes': @@ -864,7 +943,7 @@ elements: |- - webform--small toteutuneet_tila_markup: '#type': webform_markup - '#markup': '

Helsingissä järjestettävä yleisölle avoin toiminta toteutettiin

' + '#markup': '

Helsingissä järjestettävä yleisölle avoin toiminta toteutettiin

Yleisölle avoimella toiminnalla tarkoitetaan tässä mm. esityksiä, näyttelyitä ja työpajoja tai muita osallistavia toimintamuotoja.

' toteutuneet_tila: '#type': premises_composite '#title': Tila @@ -874,11 +953,14 @@ elements: |- '#multiple__sorting': false '#multiple__add': false '#multiple__add_more_input': false + '#multiple__item_label': 'tila' + '#multiple__add_more_button_label': 'Lisää uusi tila' '#premiseType__access': false '#premiseAddress__access': false '#location__access': false '#streetAddress__access': false '#address__access': false + '#postCode__required': true '#studentCount__access': false '#specialStudents__access': false '#groupCount__access': false @@ -890,6 +972,8 @@ elements: |- '#free__access': false '#isOthersUse__access': false '#isOwnedByApplicant__access': false + '#citySection__access': false + '#premiseSuitability__access': false 5_toiminnan_lahtokohdat: '#type': webform_wizard_page '#title': '5. Toiminnan lähtökohdat' @@ -902,7 +986,7 @@ elements: |- visible: ':input[name="avustukset_summa"]': value: - greater_equal: '5000' + greater: '5000' toiminta_taiteelliset_lahtokohdat: '#type': textarea '#title': 'Kuvaa toiminnan taiteellisia lähtökohtia ja tavoitteita, taiteellista ammattimaisuutta sekä asemaa taiteen kentällä.' @@ -918,7 +1002,7 @@ elements: |- visible: ':input[name="avustukset_summa"]': value: - greater_equal: '5000' + greater: '5000' toiminta_tasa_arvo: '#type': textarea '#title': 'Miten monimuotoisuus ja tasa-arvo toteutuu ja näkyy toiminnan järjestäjissä ja organisaatioissa sekä toiminnan sisällöissä? Minkälaisia toimenpiteitä, resursseja ja osaamista on asian edistämiseksi?' @@ -933,7 +1017,7 @@ elements: |- visible: ':input[name="avustukset_summa"]': value: - greater_equal: '5000' + greater: '5000' toiminnan_tavoittavuus: '#type': webform_section '#title': 'Toiminnan tavoittavuus' @@ -947,7 +1031,7 @@ elements: |- visible: ':input[name="avustukset_summa"]': value: - greater_equal: '5000' + greater: '5000' '#attributes': class: - webform--large @@ -962,7 +1046,7 @@ elements: |- visible: ':input[name="avustukset_summa"]': value: - greater_equal: '5000' + greater: '5000' '#attributes': class: - webform--large @@ -988,7 +1072,7 @@ elements: |- visible: ':input[name="avustukset_summa"]': value: - greater_equal: '5000' + greater: '5000' '#attributes': class: - webform--large @@ -1001,7 +1085,7 @@ elements: |- visible: ':input[name="avustukset_summa"]': value: - greater_equal: '5000' + greater: '5000' '#title': 'Miten ekologisuus huomioidaan toiminnan järjestämisessä? Minkälaisia toimenpiteitä, resursseja ja osaamista on asian edistämiseksi?' '#maxlength': 1000 '#counter_type': character @@ -1026,14 +1110,14 @@ elements: |- '#title': 'Toiminnan kehittyminen' toiminta_tavoitteet: '#type': textarea - '#title': 'Mitkä olivat keskeisimmät edelliselle kaudelle asetetut tavoitteet ja saavutettiinko ne?' + '#title': 'Mitkä olivat keskeisimmät edelliselle vuodelle asetetut tavoitteet ja saavutettiinko ne?' '#maxlength': 1000 - '#attributes': - class: - - webform--large '#counter_type': character '#counter_maximum': 1000 '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + '#attributes': + class: + - webform--large toiminta_kaytetyt_keinot: '#type': textarea '#title': 'Millaisia keinoja käytetään itsearviointiin ja toiminnan kehittämiseen?' @@ -1062,16 +1146,20 @@ elements: |- talousarvio: '#type': webform_section '#title': Talousarvio + markup_01: + '#type': webform_markup + '#markup': '

Koskien sitä vuotta, jolle avustusta tällä hakemuksella haetaan.

' organisaatio_kuuluu_valtionosuusjarjestelmaan_vos_: '#type': radios '#required': true '#title': 'Organisaatio kuuluu valtionosuusjärjestelmään (VOS)' + '#help': 'Valitse kyllä, vain jos varmuudella tiedät organisaatiosi saavan rahoitusta juuri valtionosuuden muodossa. Tällä ei tarkoiteta kaikkia valtion myöntämiä avustuksia, vaan kyseessä on rajattua joukkoa koskeva lakisääteinen erillinen rahoitusmuoto. Taide- ja kulttuuritoimijoiden valtionosuudet ovat laskennallisiin osuuksiin, esimerkiksi henkilötyövuosiin ja niiden yksikköhintaan tai taiteen perusopetuksen opetustuntimäärään perustuvia tukia.' '#options': 1: Kyllä 0: Ei - suunnitellut_tulot: - '#type': webform_section - '#title': 'Suunnitellut tulot' + suunnitellut_tulot: + '#type': webform_markup + '#markup': '

Suunnitellut tulot

' budget_static_income: '#type': grants_budget_income_static '#title': '' @@ -1083,7 +1171,7 @@ elements: |- '#multiple__operations': false '#multiple__add_more': false '#compensation__required': true - '#plannedStateOperativeSubvention__help': 'Kirjaa muut kuin toiminta-avustukset muihin avustuksiin. ' + '#plannedStateOperativeSubvention__help': 'Myös Suomen elokuvasäätiön ja Sosiaali-​ ja terveysjärjestöjen avustuskeskuksen (STEA) myöntämät toiminta-avustukset. Kirjaa muut kuin toiminta-avustukset muihin avustuksiin.' '#plannedStateOperativeSubvention__required': true '#otherCompensationFromCity__access': false '#stateOperativeSubvention__access': false @@ -1091,6 +1179,7 @@ elements: |- '#plannedOtherCompensations__required': true '#sponsorships__required': true '#entryFees__required': true + '#entryFees__help': 'Esim. lipunmyyntitulot' '#sales__required': true '#financialFundingAndInterests__required': true '#customerFees__access': false @@ -1106,9 +1195,9 @@ elements: |- '#shareOfIncomeWithoutSubventions__access': false '#totalIncomeWithoutSubventions__access': false '#totalIncome__access': false - suunnitellut_menot_osio: - '#type': webform_section - '#title': 'Suunnitellut menot' + suunnitellut_menot_osio: + '#type': webform_markup + '#markup': '

Suunnitellut menot

' suunnitellut_menot: '#type': grants_budget_cost_static '#title': '' @@ -1162,9 +1251,12 @@ elements: |- '#totalCosts__access': false '#allCostsTotal__access': false '#plannedTotalCosts__required': true - muu_huomioitava_panostus: - '#type': webform_section - '#title': 'Muu huomioitava panostus' + muu_huomioitava_panostus: + '#type': webform_markup + '#markup': '

Muu huomioitava panostus

' + '#counter_type': character + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' sisaltyyko_toiminnan_toteuttamiseen_jotain_muuta_rahanarvoista_p: '#type': textarea '#title': 'Sisältyykö toiminnan toteuttamiseen jotain muuta rahanarvoista panosta tai vaihtokauppaa, joka ei käy ilmi budjetista?' @@ -1174,17 +1266,20 @@ elements: |- toteutuneet_tulot_ja_menot: '#type': webform_section '#title': 'Toteutuneet tulot ja menot' + markup_02: + '#type': webform_markup + '#markup': '

Edellisenä päättyneenä tilivuonna. Tilinpäätöksen mukaisesti.

' organisaatio_kuului_valtionosuusjarjestelmaan_vos_: '#type': radios '#required': true '#title': 'Organisaatio kuului valtionosuusjärjestelmään (VOS)' + '#help': 'Valitse kyllä, vain jos varmuudella tiedät organisaatiosi saaneen rahoitusta juuri valtionosuuden muodossa. Tällä ei tarkoiteta kaikkia valtion myöntämiä avustuksia, vaan kyseessä on rajattua joukkoa koskeva lakisääteinen erillinen rahoitusmuoto. Taide- ja kulttuuritoimijoiden valtionosuudet ovat laskennallisiin osuuksiin, esimerkiksi henkilötyövuosiin ja niiden yksikköhintaan tai taiteen perusopetuksen opetustuntimäärään perustuvia tukia.' '#options': 1: Kyllä 0: Ei - toteutuneet_tulot: - '#type': webform_section - '#title': 'Toteutuneet tulot' - '#title_tag': h3 + toteutuneet_tulot: + '#type': webform_markup + '#markup': '

Toteutuneet tulot

' toteutuneet_tulot_data: '#type': grants_budget_income_static '#title': '' @@ -1199,7 +1294,7 @@ elements: |- '#plannedStateOperativeSubvention__access': false '#otherCompensationFromCity__help': 'Samaan toimitaan edelliselle päättyneelle tilivuodelle myönnetty avustus. ' '#otherCompensationFromCity__required': true - '#stateOperativeSubvention__help': 'Kirjaa muut kuin toiminta-avustukset muihin avustuksiin. ' + '#stateOperativeSubvention__help': 'Myös Suomen elokuvasäätiön ja Sosiaali-​ ja terveysjärjestöjen avustuskeskuksen (STEA) myöntämät toiminta-avustukset. Kirjaa muut kuin toiminta-avustukset muihin avustuksiin.' '#stateOperativeSubvention__required': true '#plannedOtherCompensations__access': false '#sponsorships__access': false @@ -1221,9 +1316,9 @@ elements: |- '#totalIncomeWithoutSubventions__access': false '#totalIncome__help': 'Kirjaa tähän kaikki tulot yhteensä, sisältäen myös jo aiemmissa kohdissa kirjatut avustukset.' '#totalIncome__required': true - toteutuneet_menot_osio: - '#type': webform_section - '#title': 'Toteutuneet menot' + toteutuneet_menot_osio: + '#type': webform_markup + '#markup': '

Toteutuneet menot

' menot_yhteensa: '#type': grants_budget_cost_static '#title': '' @@ -1286,7 +1381,7 @@ elements: |- additional_information: '#type': textarea '#title': Lisätiedot - '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen tai ilmoittaa perustietoihin tulleista muutoksista ' + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' '#counter_type': character '#attributes': class: @@ -1301,32 +1396,14 @@ elements: |- attachments_info: '#type': webform_markup '#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ä tilivuodelta sekä liitteitä sille toimintavuodelle, jolle avustusta haetaan. Edellistä tilivuotta koskevat liitteet ovat: tilinpäätös, toimintakertomus ja tilin- tai toiminnantarkastuskertomus. Liitteet vuodelle, jolle avustusta haetaan ovat: talousarvio ja toimintasuunnitelma.
-
- Uusilta hakijoilta ja tapauksissa, joissa pankkiyhteystiedot ovat muuttuneet, tarvitaan hakijan Omiin tietoihin myös tiliote tai vastaava asiakirja, josta selviää tilinomistajan nimi ja tilinumero. Uusilta hakijoilta ja tapauksissa, joissa säännöt ovat muuttuneet edellisen hakemuksen jälkeen, tarvitaan myös yhdistyksen säännöt.
-
- 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
- Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä.
-   -

Monivuotiset toiminta-avustukset

-
-
- 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ä tilivuodelta sekä liitteitä sille toimintakaudelle, jolle avustusta haetaan. Edellistä tilivuotta koskevat liitteet ovat: tilinpäätös, toimintakertomus ja tilin- tai toiminnantarkastuskertomus. Liitteet kaudelle, jolle avustusta haetaan ovat: talousarvio ja toimintasuunnitelma.
-
- Uusilta hakijoilta ja tapauksissa, joissa pankkiyhteystiedot ovat muuttuneet, tarvitaan hakijan Omiin tietoihin myös tiliote tai vastaava asiakirja, josta selviää tilinomistajan nimi ja tilinumero. Uusilta hakijoilta ja tapauksissa, joissa säännöt ovat muuttuneet edellisen hakemuksen jälkeen, tarvitaan myös yhdistyksen säännöt.
-
- 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 Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. +

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ä tilivuodelta sekä liitteitä sille toimintavuodelle, jolle avustusta haetaan. Edellistä tilivuotta koskevat liitteet ovat: tilinpäätös, toimintakertomus ja tilin- tai toiminnantarkastuskertomus. Yksivuotisissa toiminta-avustuksissa liitteet vuodelle, jolle avustusta haetaan ovat: talousarvio ja toimintasuunnitelma. Monivuotisissa toiminta-avustuksissa vaaditaan sen sijaan: talousarvio ja toimintasuunnitelma koko kaudelle, jolle avustusta haetaan.

+

Uusilta hakijoilta ja tapauksissa, joissa pankkiyhteystiedot ovat muuttuneet, tarvitaan hakijan Omiin tietoihin myös tiliote tai vastaava asiakirja, josta selviää tilinomistajan nimi ja tilinumero. Uusilta hakijoilta ja tapauksissa, joissa säännöt ovat muuttuneet edellisen hakemuksen jälkeen, tarvitaan myös yhdistyksen säännöt.

+

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

+

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä.

notification_attachments: '#type': webform_markup '#markup': | @@ -1335,10 +1412,9 @@ 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.

- '#format': full_html yhteison_saannot: '#type': grants_attachments '#title': 'Yhteisön säännöt' @@ -1349,33 +1425,32 @@ elements: |- '#description__access': false vahvistettu_tilinpaatos_edelliselta_paattyneelta_tilikaudelta_: '#type': grants_attachments - '#title': 'Vahvistettu tilinpäätös (edelliseltä päättyneeltä tilikaudelta)' + '#title': 'Vahvistettu tilinpäätös (edelliseltä päättyneeltä tilivuodelta)' '#multiple': false '#filetype': '43' '#help': |- - Tilinpäätöksen täytyy sisältää vähintään tuloslaskelma ja tase. Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun ja allekirjoitetun tilinpäätöksen.
-
- Yhteisön tilikausi voi olla kalenterivuosi tai jokin muu kausi. Yhdistysten kohdalla niiden omissa säännöissä lukee, mikä on yhdistyksen tilikausi. +

Tilinpäätöksen täytyy sisältää vähintään tuloslaskelma ja tase. Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun ja allekirjoitetun tilinpäätöksen.

+

Yhteisön tilikausi voi olla kalenterivuosi tai jokin muu kausi. Yhdistysten kohdalla niiden omissa säännöissä lukee, mikä on yhdistyksen tilikausi.

'#title_display': '' '#description__access': false vahvistettu_toimintakertomus_edelliselta_paattyneelta_tilikaudel: '#type': grants_attachments - '#title': 'Vahvistettu toimintakertomus (edelliseltä päättyneeltä tilikaudelta)' + '#title': 'Vahvistettu toimintakertomus (edelliseltä päättyneeltä tilivuodelta)' '#multiple': false '#filetype': '4' '#help': |- - Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun toimintakertomuksen.
- Jos toimintakertomus on osana tilinpäätöstä ja liititte sen jo tilinpäätöksen mukana lomakkeelle, sitä ei tarvitse liittää tähän erikseen. Valitse tällaisessa tilanteessa toimintakertomuksen kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”. +

Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun toimintakertomuksen.

+

Jos toimintakertomus on osana tilinpäätöstä ja liititte sen jo tilinpäätöksen mukana lomakkeelle, sitä ei tarvitse liittää tähän erikseen. Valitse tällaisessa tilanteessa toimintakertomuksen kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

'#title_display': '' '#description__access': false vahvistettu_tilin_tai_toiminnantarkastuskertomus_edelliselta_paa: '#type': grants_attachments - '#title': 'Vahvistettu tilin- tai toiminnantarkastuskertomus (edelliseltä päättyneeltä tilikaudelta)' + '#title': 'Vahvistettu tilin- tai toiminnantarkastuskertomus (edelliseltä päättyneeltä tilivuodelta)' '#multiple': false '#filetype': '5' '#help': |- - "Liitä tähän allekirjoitettu tilin- tai toiminnantarkastuskertomus yhteisön edelliseltä päättyneeltä tilikaudelta.
- Jos allekirjoitettu tilin- tai toiminnantarkastuskertomus on osa yhteisönne tilinpäätöstä ja liitit sen jo lomakkeelle tilinpäätöksen kohdalla, valitse tässä kohdassa ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”." +

Liitä tähän allekirjoitettu tilin- tai toiminnantarkastuskertomus yhteisön edelliseltä päättyneeltä tilikaudelta.

+

Jos allekirjoitettu tilin- tai toiminnantarkastuskertomus on osa yhteisönne tilinpäätöstä ja liitit sen jo lomakkeelle tilinpäätöksen kohdalla, valitse tässä kohdassa ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

'#title_display': '' '#description__access': false toimintasuunnitelma_sille_vuodelle_jolle_haet_avustusta_monivuot: @@ -1383,7 +1458,7 @@ elements: |- '#title': 'Toimintasuunnitelma (sille vuodelle jolle haet avustusta, monivuotisissa koko avustuskaudelle sisältäen suunnitelman itsearviointityökalusta ja tasa-arvo- ja yhtenvertaisuussuunnitelmasta) ' '#multiple': false '#filetype': '1' - '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma. , monivuotisissa koko avustuskaudelle sisältäen suunnitelman itsearviointityökalusta ja tasa-arvo- ja yhtenvertaisuussuunnitelmasta) ' + '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma. , monivuotisissa koko avustuskaudelle sisältäen suunnitelman itsearviointityökalusta ja tasa-arvo- ja yhtenvertaisuussuunnitelmasta)' '#title_display': '' '#description__access': false talousarvio_sille_vuodelle_jolle_haet_avustusta_monivuotisissa_k: @@ -1397,13 +1472,13 @@ elements: |- extra_info: '#type': textarea '#title': 'Lisäselvitys liitteistä' + '#maxlength': 5000 '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' '#attributes': class: - webform--large - '#maxlength': 5000 - '#counter_maximum': 5000 - '#counter_maximum_message': 'Max 5000 characters.' '#cols': 63 muu_liite: '#type': grants_attachments @@ -1416,7 +1491,7 @@ elements: |- '#multiple__add': false '#multiple__remove': false '#multiple__add_more_input': false - '#multiple__add_more_button_label': 'Lisää liite' + '#multiple__add_more_button_label': 'Lisää uusi liite' '#isDeliveredLater__access': false '#isIncludedInOtherFile__access': false actions: @@ -1427,7 +1502,7 @@ elements: |- '#wizard_prev__label': 'Edellinen' '#wizard_next__label': 'Seuraava' '#preview_prev__label': 'Edellinen' - '#preview_next__label': 'Esikatseluun >' + '#preview_next__label': 'Esikatseluun' '#delete_hide': false '#delete__label': 'Poista keskeneräinen' '#delete__attributes': @@ -1512,13 +1587,13 @@ settings: wizard_start_label: '' wizard_preview_link: false wizard_confirmation: true - wizard_confirmation_label: '' + wizard_confirmation_label: '9. Valmis' wizard_auto_forward: true wizard_auto_forward_hide_next_button: false wizard_keyboard: true wizard_track: '' - wizard_prev_button_label: 'Edellinen' - wizard_next_button_label: 'Seuraava' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava wizard_toggle: true wizard_toggle_show_label: '' wizard_toggle_hide_label: '' diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.leiriselvitys.yml b/public/modules/custom/grants_handler/config/install/webform.webform.leiriselvitys.yml new file mode 100644 index 0000000000..fb422f9138 --- /dev/null +++ b/public/modules/custom/grants_handler/config/install/webform.webform.leiriselvitys.yml @@ -0,0 +1,627 @@ +uuid: 31baee1b-5f50-4fa2-99e8-0f0467400a8c +langcode: fi +status: open +dependencies: + module: + - grants_handler + - grants_metadata +third_party_settings: + grants_metadata: + applicationTypeSelect: '69' + applicationType: LEIRISELVITYS + applicationTypeID: '69' + applicationIndustry: KUVA + applicantTypes: + registered_community: registered_community + unregistered_community: unregistered_community + applicationTypeTerms: + 54: '54' + applicationTargetGroup: '27' + applicationOpen: '2024-09-01T00:00:00' + applicationClose: '2024-10-31T23:59:59' + applicationActingYearsType: current_and_next_x_years + applicationActingYears: + 2024: '2024' + 2025: '2025' + 2026: '2026' + applicationActingYearsNextCount: '0' + applicationContinuous: 0 + disableCopying: 0 + status: released +weight: 0 +open: null +close: null +uid: 1 +template: false +archive: false +id: leiriselvitys +title: 'Nuorisopalvelu, loma-aikojen leiriavustusselvitys' +description: '

LEIRISELVITYS

' +categories: + - Tuotannossa +elements: |- + avustukset_summa: + '#type': grants_webform_summation_field + '#title': 'Avustukset summa' + '#title_display': none + '#description_display': invisible + '#collect_field': + subventions%%amount: subventions%%amount + application_number: 0 + applicant_type: 0 + status: 0 + hakijan_tiedot: 0 + email: 0 + contact_person: 0 + contact_person_phone_number: 0 + community_address: 0 + bank_account: 0 + community_officials: 0 + acting_year: 0 + subventions%%subventionTypeTitle: 0 + subventions%%subventionType: 0 + compensation_purpose: 0 + olemme_saaneet_muita_avustuksia: 0 + myonnetty_avustus: 0 + olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: 0 + haettu_avustus_tieto: 0 + benefits_loans: 0 + benefits_premises: 0 + compensation_boolean: 0 + compensation_explanation: 0 + business_purpose: 0 + community_practices_business: 0 + fee_person: 0 + fee_community: 0 + members_applicant_person_local: 0 + members_applicant_person_global: 0 + members_applicant_community_local: 0 + members_applicant_community_global: 0 + additional_information: 0 + vahvistettu_tilinpaatos: 0 + vahvistettu_toimintakertomus: 0 + vahvistettu_tilin_tai_toiminnantarkastuskertomus: 0 + vuosikokouksen_poytakirja: 0 + toimintasuunnitelma: 0 + talousarvio: 0 + extra_info: 0 + muu_liite: 0 + '#data_type': euro + '#form_item': hidden + applicant_type: + '#type': hidden + '#title': 'Hakijan tyyppi' + 1_hakijan_tiedot: + '#type': webform_wizard_page + '#title': '1. Hakijan tiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + application_number: + '#type': hidden + '#title': Hakemusnumero + '#disabled': true + status: + '#type': hidden + '#title': 'Hakemuksen tila' + '#readonly': true + hakemusprofiili: + '#type': webform_section + '#title': 'Haetut tiedot' + '#attributes': + class: + - grants-profile--imported-section + prh_markup: + '#type': webform_markup + '#markup': 'Tiedot on haettu hakuprofiilistasi.' + hakijan_tiedot: + '#type': applicant_info + '#title': Hakija + contact_person_email_section: + '#type': webform_section + '#title': Sähköposti + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + contact_markup: + '#type': webform_markup + '#markup': 'Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.' + email: + '#type': email + '#title': Sähköpostiosoite + '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' + '#size': 63 + '#autocomplete': 'off' + '#pattern': '(?:[a-z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' + '#states': + required: + ':input[name="applicant_type"]': + value: registered_community + contact_person_section: + '#type': webform_section + '#title': 'Hakemuksen yhteyshenkilö' + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + contact_person: + '#type': textfield + '#title': Yhteyshenkilö + '#autocomplete': 'off' + '#required': true + '#attributes': + class: + - webform--large + '#size': 63 + contact_person_phone_number: + '#type': textfield + '#title': Puhelinnumero + '#required': true + '#autocomplete': 'off' + '#attributes': + class: + - webform--medium + '#size': 32 + osoite: + '#type': webform_section + '#title': Osoite + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + community_address: + '#type': community_address_composite + '#title': 'Yhteisön osoite' + '#help': 'Jos haluat lisätä, poistaa tai muuttaa osoitetietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään osoitetietoa omiin tietoihin.' + '#attributes': + class: + - webform--large + '#required': true + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + tilinumero: + '#type': webform_section + '#title': Tilinumero + bank_account: + '#type': bank_account_composite + '#title': Tilinumero + '#help': 'Jos haluat lisätä, poistaa tai muuttaa tilinumerotietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään tilinumerotietoa omiin tietoihin.' + '#attributes': + class: + - webform--medium + '#required': true + toiminnasta_vastaavat_henkilot: + '#type': webform_section + '#title': 'Toiminnasta vastaavat henkilöt' + '#states': + visible: + ':input[name="applicant_type"]': + '!value': private_person + community_officials: + '#type': community_officials_composite + '#help': 'Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.' + '#title': 'Valitse toiminnasta vastaavat henkilöt' + '#multiple': true + '#multiple__item_label': henkilö + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää henkilö' + '#wrapper_attributes': + class: + - community_officials_wrapper + '#attributes': + class: + - webform--large + 2_avustustiedot: + '#type': webform_wizard_page + '#title': '2. Leiripaikat' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + avustuksen_tiedot: + '#type': webform_section + '#title': 'Avustuksen tiedot' + acting_year: + '#type': select + '#title': 'Vuosi, jota selvitys koskee' + '#options': + 2024: '2024' + '#required': true + leirien_tiedot: + '#type': webform_section + '#title': Leiripaikat + jarjestimme_leireja_seuraavilla_alueilla: + '#type': premises_composite + '#title': 'Järjestimme leirejä seuraavilla alueilla' + '#help': 'Merkitse tähän kaikkien niiden tilojen nimet ja postinumeroalueet, jossa järjestitte loma-aikojen leiriavustuksen piiriin kuuluvia leirejä kuluneella kaudella. ' + '#multiple': true + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add_more_input': false + '#multiple__item_label': 'tila' + '#multiple__add_more_button_label': 'Lisää uusi tila' + '#premiseName__required': true + '#premiseType__access': false + '#premiseAddress__access': false + '#location__access': false + '#streetAddress__access': false + '#address__access': false + '#postCode__required': true + '#studentCount__access': false + '#specialStudents__access': false + '#groupCount__access': false + '#specialGroups__access': false + '#personnelCount__access': false + '#totalRent__access': false + '#rentTimeBegin__access': false + '#rentTimeEnd__access': false + '#free__access': false + '#isOthersUse__access': false + '#isOwnedByApplicant__access': false + '#isOwnedByCity__access': false + '#citySection__access': false + '#premiseSuitability__access': false + 3_talousarvio: + '#type': webform_wizard_page + '#title': '3. Talous' + tulot: + '#type': webform_section + '#title': Tulot + markup_04: + '#type': webform_markup + '#markup': '

Erittele tässä kuluneen leirikauden arvioidut tulot. Vahvistetut tiedot toimitetaan tilikauden päätyttyä viimeistään maaliskuun loppuun mennessä.

' + tulo: + '#type': grants_budget_other_income + '#title': Tulo + '#multiple': true + '#incomeGroup': general + '#help': 'Kerro tässä, millainen tulo on kyseessä. Leiritoiminnan tuloja voivat olla esimerkiksi osallistumismaksut.' + '#required': true + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi tulo' + '#multiple__item_label': 'tulo' + menot: + '#type': webform_section + '#title': Menot + markup_05: + '#type': webform_markup + '#markup': '

Erittele tässä kuluneen leirikauden arvioidut menot. Vahvistetut tiedot toimitetaan tilikauden päätyttyä viimeistään maaliskuun loppuun mennessä.

' + meno: + '#type': grants_budget_other_cost + '#title': Meno + '#multiple': true + '#incomeGroup': general + '#help': 'Kerro tässä, millainen meno on kyseessä. Leiritoiminnan menoja voivat olla esimerkiksi majoituskulut, ruokakulut ja ohjaajien palkkakulut.' + '#required': true + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi meno' + '#multiple__item_label': 'meno' + lisatiedot_ja_liitteet: + '#type': webform_wizard_page + '#title': '4. Lisätiedot ja liitteet' + lisatietoja_hakemukseen_liittyen: + '#type': webform_section + '#title': 'Lisätietoja hakemukseen liittyen' + additional_information: + '#type': textarea + '#title': Lisätiedot + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen' + '#counter_type': character + '#attributes': + class: + - webform--large + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + liitteet: + '#type': webform_section + '#title': Liitteet + attachments_info: + '#type': webform_markup + '#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

+

Loma-aikojen leiriavustusselvityksen pakollinen liite on sama ennakkotiedot leireistä excel-liite, joka toimitettiin hakemuksen yhteydessä ja on nyt täydennetty toteutuneilla tiedoilla. Liite on toimitettava selvityksen yhteydessä samaan aikaan. Jos yhdistyksen säännöt ovat muuttuneet, on ne myös toimitettava. Sääntöjen täytyy olla Patentti- ja rekisterihallituksen hyväksymät.

+

Usean liitteen toimittaminen yhtenä tiedostona

+

Voit halutessasi toimittaa useampia liitteitä yhtenä tiedostona. Kerro tästä lisäselvitys liitteistä-kohdassa.

+

Helsingin kaupungille aiemmin toimitetut liitteet

+

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ notification_attachments: + '#type': webform_markup + '#format': value + '#markup': |- +
+
+
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.

+
+
+
+ '#text': |- +
+
+
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.

+
+
+ yhteison_saannot: + '#type': grants_attachments + '#title': 'Yhteisön säännöt' + '#multiple': false + '#filetype': '7' + '#help': 'Uusi hakija tai säännöt muuttuneet.' + '#title_display': '' + '#description__access': false + leiri_excel: + '#type': grants_attachments + '#title': Leiri-excel + '#multiple': false + '#filetype': '36' + '#allowed_filetypes': 'xls,xlsx' + '#help': '

Täytä tämä pakollinen liite huolellisesti.

' + '#title_display': '' + '#required': true + '#attachment__required': true + '#description__access': false + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + vahvistettu_tilinpaatos_edelliselta_paattyneelta_tilikaudelta_: + '#type': grants_attachments + '#title': 'Vahvistettu tilinpäätös (siltä kaudelta, johon leirien kustannukset kohdistuvat)' + '#multiple': false + '#filetype': '43' + '#help': '

Hyväksytty tilinpäätös, jossa leirien tulot ja menot näkyvät omana kustannuspaikkanaan toimitettava nuorisopalvelujen kumppanuusyksikköön tulevan vuoden 31.3. mennessä.

' + '#title_display': before + '#description__access': false + extra_info: + '#type': textarea + '#title': 'Lisäselvitys liitteistä' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#attributes': + class: + - webform--large + '#cols': 63 + muu_liite: + '#type': grants_attachments + '#title': 'Muu liite' + '#multiple': 10 + '#filetype': '0' + '#title_display': before + '#multiple__item_label': liite + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi liite' + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + actions: + '#type': webform_actions + '#title': 'Submit button(s)' + '#submit__label': Lähetä + '#draft__label': 'Tallenna keskeneräisenä' + '#wizard_prev__label': 'Edellinen' + '#wizard_next__label': 'Seuraava' + '#preview_prev__label': 'Edellinen' + '#preview_next__label': 'Esikatseluun' + '#delete_hide': false + '#delete__label': 'Poista keskeneräinen' + '#delete__attributes': + class: + - hds-button + - hds-button--primary + '#delete__dialog': true +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: source_entity_webform + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: false + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: false + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: true + form_disable_back: false + form_submit_back: true + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: { } + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: false + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: true + wizard_progress_states: false + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '6. Valmis' + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: '' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava + wizard_toggle: true + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 2 + preview_label: '5. Vahvista, esikatsele ja lähetä' + preview_title: 'Vahvista, esikatsele ja lähetä' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: false + preview_exclude_empty_checkbox: false + draft: all + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: none + confirmation_url: '' + confirmation_title: '' + confirmation_message: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: true + confirmation_exclude_token: true + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: draft + purge_days: 365 + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - authenticated + users: { } + permissions: { } + view_any: + roles: + - admin + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: + grants_handler: + id: grants_handler + handler_id: grants_handler + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: 0 + settings: + debug: true +variants: { } diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.liikunta_laitosavustushakemus.yml b/public/modules/custom/grants_handler/config/install/webform.webform.liikunta_laitosavustushakemus.yml new file mode 100644 index 0000000000..219c12af33 --- /dev/null +++ b/public/modules/custom/grants_handler/config/install/webform.webform.liikunta_laitosavustushakemus.yml @@ -0,0 +1,843 @@ +uuid: a21aa248-9b60-4174-9823-6602d95c4068 +langcode: fi +status: open +dependencies: + module: + - grants_handler + - grants_metadata +third_party_settings: + grants_metadata: + applicationTypeSelect: '57' + applicationType: LIIKUNTALAITOS + applicationTypeID: '57' + applicationIndustry: KUVA + applicantTypes: + registered_community: registered_community + applicationTypeTerms: + 51: '51' + 45: '45' + 52: '52' + 48: '48' + applicationTargetGroup: '26' + applicationOpen: '2024-04-01T00:00:00' + applicationClose: '2024-04-26T23:59:59' + applicationActingYearsType: next_x_years + applicationActingYears: + 2024: '2024' + 2025: '2025' + 2026: '2026' + applicationActingYearsNextCount: '1' + applicationContinuous: 0 + disableCopying: 1 + status: released + parent: '' +weight: 0 +open: null +close: null +uid: 1 +template: false +archive: false +id: liikunta_laitosavustushakemus +title: 'Liikunta, laitos- ja säätiöavustukset' +description: LIIKUNTALAITOS +categories: + - Tuotannossa +elements: |- + applicant_type: + '#type': hidden + '#title': 'Applicant type' + avustukset_summa: + '#type': grants_webform_summation_field + '#title': 'Avustukset summa' + '#title_display': none + '#description_display': invisible + '#collect_field': + subventions%%amount: subventions%%amount + application_number: 0 + applicant_type: 0 + status: 0 + hakijan_tiedot: 0 + email: 0 + contact_person: 0 + contact_person_phone_number: 0 + community_address: 0 + bank_account: 0 + community_officials: 0 + acting_year: 0 + subventions%%subventionTypeTitle: 0 + subventions%%subventionType: 0 + compensation_purpose: 0 + olemme_saaneet_muita_avustuksia: 0 + myonnetty_avustus: 0 + olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: 0 + haettu_avustus_tieto: 0 + benefits_loans: 0 + benefits_premises: 0 + compensation_boolean: 0 + compensation_explanation: 0 + business_purpose: 0 + community_practices_business: 0 + fee_person: 0 + fee_community: 0 + members_applicant_person_local: 0 + members_applicant_person_global: 0 + members_applicant_community_local: 0 + members_applicant_community_global: 0 + additional_information: 0 + vahvistettu_tilinpaatos: 0 + vahvistettu_toimintakertomus: 0 + vahvistettu_tilin_tai_toiminnantarkastuskertomus: 0 + vuosikokouksen_poytakirja: 0 + toimintasuunnitelma: 0 + talousarvio: 0 + extra_info: 0 + muu_liite: 0 + '#data_type': euro + '#form_item': hidden + 1_hakijan_tiedot: + '#type': webform_wizard_page + '#title': '1. Hakijan tiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + application_number: + '#type': hidden + '#title': Hakemusnumero + '#disabled': true + status: + '#type': hidden + '#title': 'Hakemuksen tila' + '#readonly': true + yhteiso_jolle_haetaan_avustusta: + '#type': webform_section + '#title': 'Yhteisö, jolle haetaan avustusta' + '#attributes': + class: + - grants-profile--imported-section + prh_markup: + '#type': webform_markup + '#markup': '
Tiedot on haettu Patentti- ja rekisterihallinnon rekisteristä (PRH), eikä niitä voi tämän takia muokata.
' + hakijan_tiedot: + '#type': applicant_info + '#title': Hakija + contact_person_email_section: + '#type': webform_section + '#title': Sähköposti + contact_markup: + '#type': webform_markup + '#markup': 'Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.' + email: + '#type': email + '#title': Sähköpostiosoite + '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' + '#size': 63 + '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' + '#required': true + contact_person_section: + '#type': webform_section + '#title': 'Hakemuksen yhteyshenkilö' + contact_person: + '#type': textfield + '#title': Yhteyshenkilö + '#autocomplete': 'off' + '#attributes': + class: + - webform--large + '#required': true + '#size': 63 + contact_person_phone_number: + '#type': textfield + '#attributes': + class: + - webform--medium + '#title': Puhelinnumero + '#required': true + '#autocomplete': 'off' + '#size': 32 + osoite: + '#type': webform_section + '#title': Osoite + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + community_address: + '#type': community_address_composite + '#title': 'Yhteisön osoite' + '#help': 'Jos haluat lisätä, poistaa tai muuttaa osoitetietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään osoitetietoa omiin tietoihin.' + '#attributes': + class: + - webform--large + '#required': true + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + tilinumero: + '#type': webform_section + '#title': Tilinumero + bank_account: + '#type': bank_account_composite + '#title': Tilinumero + '#help': 'Jos haluat lisätä, poistaa tai muuttaa tilinumerotietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään tilinumerotietoa omiin tietoihin.' + '#attributes': + class: + - webform--medium + '#required': true + toiminnasta_vastaavat_henkilot: + '#type': webform_section + '#title': 'Toiminnasta vastaavat henkilöt' + '#states': + visible: + - ':input[name="applicant_type"]': + value: registered_community + - or + - ':input[name="applicant_type"]': + value: unregistered_community + community_officials: + '#type': community_officials_composite + '#help': 'Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.' + '#title': 'Valitse toiminnasta vastaavat henkilöt' + '#multiple': true + '#multiple__item_label': henkilö + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää henkilö' + '#wrapper_attributes': + class: + - community_officials_wrapper + '#attributes': + class: + - webform--large + 2_avustustiedot: + '#type': webform_wizard_page + '#title': '2. Avustustiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + avustuksen_tiedot: + '#type': webform_section + '#title': 'Avustuksen tiedot' + acting_year: + '#type': select + '#title': 'Vuosi, jolle haen avustusta' + '#options': + 2022: '2022' + 2023: '2023' + 2024: '2024' + '#required': true + avustuslajit: + '#type': webform_section + '#title': Avustuslajit + subventions: + '#type': grants_compensations + '#title': Avustukset + '#multiple': true + '#subventionType': + 1: '1' + 5: '5' + 8: '8' + 9: '9' + '#required': true + '#multiple__header': true + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more': false + '#attributes': + class: + - subventions + '#subvention_type': + 1: '1' + 6: '6' + '#subvention_type_id__access': false + '#subvention_type__title': Avustuslaji + '#subvention_amount__title': 'Avustuksen summa' + kayttotarkoitus: + '#type': webform_section + '#title': Käyttötarkoitus + compensation_purpose: + '#type': textarea + '#title': 'Lyhyt kuvaus haettavan / haettavien avustusten käyttötarkoituksista' + '#help': 'Kerro mitä tarkoitusta varten avustusta haetaan, erittele tarvittaessa eri käyttökohteet. Kerro myös mitä avustuksella on tarkoitus saada aikaiseksi ja millaisia tavoitteita avustettavaan toimintaan liittyy.' + '#required': true + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#attributes': + class: + - webform--large + '#cols': 63 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + muut_samaan_tarkoitukseen_myonnetyt_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen myönnetyt avustukset' + info_muut_samaan_tarkoitukseen_myonnetty: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on myönnetty muualta kuin Helsingin kaupungilta kuluvana tai kahtena edellisenä verovuotena. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_saaneet_muita_avustuksia: + '#type': radios + '#title': 'Olemme saaneet muita avustuksia' + '#description_display': before + '#options': + 1: Kyllä + 0: Ei + myonnetty_avustus: + '#type': webform_custom_composite + '#title': 'Myönnetty avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + required: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'myönnetty avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi myönnetty avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi myönnetty avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#attributes': + class: + - webform--large + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + year: + '#type': textfield + '#required': true + '#title': Vuosi + '#attributes': + class: + - webform--small + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': 'Myönnetyn avustuksen summa' + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + muut_samaan_tarkoitukseen_haetut_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen haetut avustukset' + info_muut_samaan_tarkoitukseen_haettu: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on haettu muualta kuin Helsingin kaupungilta, eikä päätöstä ole vielä tehty. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: + '#type': radios + '#title': 'Olemme hakeneet avustuksia muualta kuin Helsingin kaupungilta' + '#options': + 1: Kyllä + 0: Ei + haettu_avustus_tieto: + '#type': webform_custom_composite + '#title': 'Lisää uusi haettu avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta"]': + value: '1' + required: + ':input[name="olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'haettu avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi haettu avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi haettu avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#attributes': + class: + - webform--large + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + year: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': Vuosi + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': 'Haetun avustuksen summa' + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + kaupungilta_saadut_lainat_ja_takaukset: + '#type': webform_section + '#title': 'Kaupungilta saadut lainat ja takaukset' + kaupungilta_saadut_1: + '#type': webform_markup + '#markup': 'Kaupungilta saaduista lainoista on mainittava alkuperäinen lainamäärä, jäljellä oleva lainamäärä, laina-aika, korkoprosentti ja mihin tarkoitukseen laina on myönnetty. Takauksista ilmoitetaan niiden raha-arvo ja tarkoitus.' + benefits_loans: + '#type': textarea + '#title': 'Kuvaus lainoista ja takauksista' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + kaupungilta_saatu_tiloihin_liittyva_tuki: + '#type': webform_section + '#title': 'Kaupungilta saatu tiloihin liittyvä tuki' + tilate_1: + '#type': webform_markup + '#markup': 'Tilat, jotka kaupunki on antanut korvauksetta tai vuokrannut hakijan käyttöön (tilan nimi tai osoite, vuokran määrä €/kk)' + benefits_premises: + '#type': textarea + '#title': 'Kuvaus tiloihin liittyvästä tuesta' + '#maxlength': 5000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + 3_yhteison_tiedot: + '#type': webform_wizard_page + '#title': '3. Yhteisön toiminta' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + business_info: + '#type': webform_section + '#title': 'Toiminnan kuvaus' + business_purpose: + '#type': textarea + '#title': 'Toiminnan kuvaus' + '#help': 'Tieto haetaan omat tiedot -osiosta' + '#maxlength': 500 + '#counter_type': character + '#counter_maximum': 500 + '#counter_maximum_message': '%d/500 merkkiä jäljellä' + community_practices_business: + '#type': radios + '#title': 'Harjoittaako yhteisö liiketoimintaa' + '#options': + 1: Kyllä + 0: Ei + '#options_display': side_by_side + '#options_description_display': help + '#required': true + lisatiedot_ja_liitteet: + '#type': webform_wizard_page + '#title': '4. Lisätiedot ja liitteet' + lisatietoja_hakemukseen_liittyen: + '#type': webform_section + '#title': 'Lisätietoja hakemukseen liittyen' + additional_information: + '#type': textarea + '#title': Lisätiedot + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' + '#counter_type': character + '#attributes': + class: + - webform--large + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + liitteet: + '#type': webform_section + '#title': Liitteet + attachments_info: + '#type': webform_markup + '#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.

+

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

+

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ notification_attachments: + '#type': webform_markup + '#markup': | +
+
+
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.

+
+
+ vahvistettu_tilinpaatos: + '#type': grants_attachments + '#title': 'Vahvistettu tilinpäätös (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '43' + '#help': |- +

Tilinpäätöksen täytyy sisältää vähintään tuloslaskelma ja tase. Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun ja allekirjoitetun tilinpäätöksen.

+

Yhteisön tilikausi voi olla kalenterivuosi tai jokin muu kausi. Yhdistysten kohdalla niiden omissa säännöissä lukee, mikä on yhdistyksen tilikausi.

+ '#title_display': before + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi sisältö alta.' + '#description__access': false + vahvistettu_toimintakertomus: + '#type': grants_attachments + '#title': 'Vahvistettu toimintakertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '4' + '#help': |- +

Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun toimintakertomuksen.

+

Jos toimintakertomus on osana tilinpäätöstä ja liititte sen jo tilinpäätöksen mukana lomakkeelle, sitä ei tarvitse liittää tähän erikseen. Valitse tällaisessa tilanteessa toimintakertomuksen kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + vahvistettu_tilin_tai_toiminnantarkastuskertomus: + '#type': grants_attachments + '#title': 'Vahvistettu tilin- tai toiminnantarkastuskertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '5' + '#help': |- +

Liitä tähän allekirjoitettu tilin- tai toiminnantarkastuskertomus yhteisön edelliseltä päättyneeltä tilikaudelta.

+

Jos allekirjoitettu tilin- tai toiminnantarkastuskertomus on osa yhteisönne tilinpäätöstä ja liitit sen jo lomakkeelle tilinpäätöksen kohdalla, valitse tässä kohdassa ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + vuosikokouksen_poytakirja: + '#type': grants_attachments + '#title': 'Vuosikokouksen pöytäkirja, jossa on vahvistettu edellisen päättyneen tilikauden tilinpäätös' + '#multiple': false + '#filetype': '8' + '#help': 'Liitä tähän yhteisön kokouksen pöytäkirja, jossa edellisen päättyneen tilikauden tilinpäätös on vahvistettu ja vastuuvapaus myönnetty. Yhdistyksillä tilinpäätös vahvistetaan aina yhdistyksen jäsenkokouksessa. Mikäli yhteisöltä ei edellytetä vuosikokousta tai muuta yhteisön kokousta, jossa tilinpäätös tulisi vahvistaa ja vastuuvapaus myöntää, ei tätä liitettä tarvitse toimittaa.' + '#title_display': before + '#description__access': false + toimintasuunnitelma: + '#type': grants_attachments + '#title': 'Toimintasuunnitelma (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '1' + '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma. ' + '#title_display': before + '#description__access': false + talousarvio: + '#type': grants_attachments + '#title': 'Talousarvio (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '2' + '#help': 'Liitä tähän koko yhteisön talousarvio.' + '#title_display': before + '#description__access': false + extra_info: + '#type': textarea + '#title': 'Lisäselvitys liitteistä' + '#counter_type': character + '#attributes': + class: + - webform--large + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + muu_liite: + '#type': grants_attachments + '#title': 'Muu liite' + '#multiple': 10 + '#filetype': '0' + '#title_display': before + '#multiple__item_label': liite + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää liite' + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + actions: + '#type': webform_actions + '#title': 'Submit button(s)' + '#submit__label': Lähetä + '#draft__label': 'Tallenna keskeneräisenä' + '#wizard_prev__label': 'Edellinen' + '#wizard_next__label': 'Seuraava' + '#preview_prev__label': 'Edellinen' + '#preview_next__label': 'Esikatseluun' + '#delete_hide': false + '#delete__label': 'Poista keskeneräinen' + '#delete__attributes': + class: + - hds-button + - hds-button--primary + '#delete__dialog': true +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: source_entity_webform + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: false + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: true + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: true + form_disable_back: false + form_submit_back: true + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: { } + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: true + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: true + wizard_progress_states: false + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '6. Valmis' + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: '' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava + wizard_toggle: true + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 2 + preview_label: '5. Vahvista, esikatsele ja lähetä' + preview_title: 'Vahvista, esikatsele ja lähetä' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: false + preview_exclude_empty_checkbox: false + draft: all + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: none + confirmation_url: '' + confirmation_title: '' + confirmation_message: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: true + confirmation_exclude_token: true + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: draft + purge_days: 365 + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - authenticated + users: { } + permissions: { } + view_any: + roles: + - admin + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: + grants_handler: + id: grants_handler + handler_id: grants_handler + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: 0 + settings: + debug: true +variants: { } diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.liikunta_suunnistuskartta_avustu.yml b/public/modules/custom/grants_handler/config/install/webform.webform.liikunta_suunnistuskartta_avustu.yml new file mode 100644 index 0000000000..72c30e2971 --- /dev/null +++ b/public/modules/custom/grants_handler/config/install/webform.webform.liikunta_suunnistuskartta_avustu.yml @@ -0,0 +1,520 @@ +uuid: c8f17f73-a908-42b0-869a-08ce25741005 +langcode: fi +status: open +dependencies: + module: + - grants_handler + - grants_metadata +third_party_settings: + grants_metadata: + applicationTypeSelect: '58' + applicationType: LIIKUNTASUUNNISTUS + applicationTypeID: '58' + applicationIndustry: KUVA + applicantTypes: + registered_community: registered_community + applicationTypeTerms: + 57: '57' + applicationTargetGroup: '26' + applicationOpen: '2024-01-02T00:00:00' + applicationClose: '2024-02-15T23:59:59' + applicationActingYearsType: current_and_next_x_years + applicationActingYears: { } + applicationActingYearsNextCount: '0' + applicationContinuous: 0 + disableCopying: 1 + status: released + parent: '' +weight: 0 +open: null +close: null +uid: 1 +template: false +archive: false +id: liikunta_suunnistuskartta_avustu +title: 'Liikunta, suunnistuskartta-avustushakemus' +description: '

LIIKUNTASUUNNISTUS

' +categories: + - Tuotannossa +elements: |- + applicant_type: + '#type': hidden + '#title': 'Applicant type' + avustukset_summa: + '#type': grants_webform_summation_field + '#title': 'Avustukset summa' + '#title_display': none + '#description_display': invisible + '#collect_field': + subventions%%amount: subventions%%amount + application_number: 0 + applicant_type: 0 + status: 0 + hakijan_tiedot: 0 + email: 0 + contact_person: 0 + contact_person_phone_number: 0 + community_address: 0 + bank_account: 0 + community_officials: 0 + acting_year: 0 + subventions%%subventionTypeTitle: 0 + subventions%%subventionType: 0 + compensation_purpose: 0 + olemme_saaneet_muita_avustuksia: 0 + myonnetty_avustus: 0 + olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: 0 + haettu_avustus_tieto: 0 + benefits_loans: 0 + benefits_premises: 0 + compensation_boolean: 0 + compensation_explanation: 0 + business_purpose: 0 + community_practices_business: 0 + fee_person: 0 + fee_community: 0 + members_applicant_person_local: 0 + members_applicant_person_global: 0 + members_applicant_community_local: 0 + members_applicant_community_global: 0 + additional_information: 0 + vahvistettu_tilinpaatos: 0 + vahvistettu_toimintakertomus: 0 + vahvistettu_tilin_tai_toiminnantarkastuskertomus: 0 + vuosikokouksen_poytakirja: 0 + toimintasuunnitelma: 0 + talousarvio: 0 + extra_info: 0 + muu_liite: 0 + '#data_type': euro + '#form_item': hidden + 1_hakijan_tiedot: + '#type': webform_wizard_page + '#title': '1. Hakijan tiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + application_number: + '#type': hidden + '#title': Hakemusnumero + '#disabled': true + status: + '#type': hidden + '#title': 'Hakemuksen tila' + '#readonly': true + yhteiso_jolle_haetaan_avustusta: + '#type': webform_section + '#title': 'Yhteisö, jolle haetaan avustusta' + '#attributes': + class: + - grants-profile--imported-section + prh_markup: + '#type': webform_markup + '#markup': '
Tiedot on haettu Patentti- ja rekisterihallinnon rekisteristä (PRH), eikä niitä voi tämän takia muokata.
' + hakijan_tiedot: + '#type': applicant_info + '#title': 'Hakijan tiedot' + contact_person_email_section: + '#type': webform_section + '#title': Sähköposti + contact_markup: + '#type': webform_markup + '#markup': 'Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.' + email: + '#type': email + '#title': Sähköpostiosoite + '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' + '#size': 63 + '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' + '#required': true + contact_person_section: + '#type': webform_section + '#title': 'Hakemuksen yhteyshenkilö' + contact_person: + '#type': textfield + '#title': Yhteyshenkilö + '#autocomplete': 'off' + '#attributes': + class: + - webform--large + '#required': true + '#size': 63 + contact_person_phone_number: + '#type': textfield + '#attributes': + class: + - webform--medium + '#title': Puhelinnumero + '#required': true + '#autocomplete': 'off' + '#size': 32 + osoite: + '#type': webform_section + '#title': Osoite + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + community_address: + '#type': community_address_composite + '#title': 'Yhteisön osoite' + '#help': 'Jos haluat lisätä, poistaa tai muuttaa osoitetietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään osoitetietoa omiin tietoihin.' + '#attributes': + class: + - webform--large + '#required': true + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + tilinumero: + '#type': webform_section + '#title': Tilinumero + bank_account: + '#type': bank_account_composite + '#title': Tilinumero + '#help': 'Jos haluat lisätä, poistaa tai muuttaa tilinumerotietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään tilinumerotietoa omiin tietoihin.' + '#attributes': + class: + - webform--medium + '#required': true + toiminnasta_vastaavat_henkilot: + '#type': webform_section + '#title': 'Toiminnasta vastaavat henkilöt' + '#states': + visible: + - ':input[name="applicant_type"]': + value: registered_community + - or + - ':input[name="applicant_type"]': + value: unregistered_community + community_officials: + '#type': community_officials_composite + '#help': 'Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.' + '#title': 'Valitse toiminnasta vastaavat henkilöt' + '#multiple': true + '#multiple__item_label': henkilö + '#multiple__min_items': 0 + '#multiple__empty_items': 1 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää henkilö' + '#wrapper_attributes': + class: + - community_officials_wrapper + '#attributes': + class: + - webform--large + 2_avustustiedot: + '#type': webform_wizard_page + '#title': '2. Avustustiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + avustuksen_tiedot: + '#type': webform_section + '#title': 'Avustuksen tiedot' + avustuksentiedot_info: + '#type': webform_markup + '#markup': | +

Tällä lomakkeella haetaan avustusta suunnistuskarttan valmistuskustannuksista. Avustusta voidaan myöntää vain Suunnistusliiton karttarekisteriin raportoiduista suunnistus- ja opetuskartoista.

+ acting_year: + '#type': select + '#title': 'Vuosi, jolle haen avustusta' + '#options': + 2022: '2022' + 2023: '2023' + 2024: '2024' + '#required': true + suunnistuskartta_avustus: + '#type': webform_section + '#title': Suunnistuskartta-avustus + orienteering_maps: + '#type': orienteering_map_composite + '#title': '' + '#multiple': true + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi kartta' + '#multiple__item_label': 'kartta' + '#mapName__help': 'Karttatyypillä tarkoitetaan ensi-, uusinta- tai ajantasaistuskartta' + lisatiedot_ja_liitteet: + '#type': webform_wizard_page + '#title': '3. Lisätiedot ja liitteet' + lisatietoja_hakemukseen_liittyen: + '#type': webform_section + '#title': 'Lisätietoja hakemukseen liittyen' + additional_information: + '#type': textarea + '#title': Lisätiedot + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' + '#counter_type': character + '#attributes': + class: + - webform--large + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + liitteet: + '#type': webform_section + '#title': Liitteet + attachments_info: + '#type': webform_markup + '#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

+

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

+

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ notification_attachments: + '#type': webform_markup + '#markup': | +
+
+
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.

+
+
+ extra_info: + '#type': textarea + '#title': 'Lisäselvitys liitteistä' + '#counter_type': character + '#attributes': + class: + - webform--large + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + muu_liite: + '#type': grants_attachments + '#title': 'Muu liite' + '#multiple': 10 + '#filetype': '0' + '#title_display': before + '#multiple__item_label': liite + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää liite' + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + actions: + '#type': webform_actions + '#title': 'Submit button(s)' + '#submit__label': Lähetä + '#draft__label': 'Tallenna keskeneräisenä' + '#wizard_prev__label': 'Edellinen' + '#wizard_next__label': 'Seuraava' + '#preview_prev__label': 'Edellinen' + '#preview_next__label': 'Esikatseluun' + '#delete_hide': false + '#delete__label': 'Poista keskeneräinen' + '#delete__attributes': + class: + - hds-button + - hds-button--primary + '#delete__dialog': true +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: source_entity_webform + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: false + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: true + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: true + form_disable_back: false + form_submit_back: true + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: { } + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: true + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: true + wizard_progress_states: false + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '5. Valmis' + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: '' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava + wizard_toggle: true + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 2 + preview_label: '4. Vahvista, esikatsele ja lähetä' + preview_title: 'Vahvista, esikatsele ja lähetä' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: false + preview_exclude_empty_checkbox: false + draft: all + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: none + confirmation_url: '' + confirmation_title: '' + confirmation_message: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: true + confirmation_exclude_token: true + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: draft + purge_days: 365 + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - authenticated + users: { } + permissions: { } + view_any: + roles: + - admin + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: + grants_handler: + id: grants_handler + handler_id: grants_handler + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: 0 + settings: + debug: true +variants: { } diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.liikunta_tapahtuma.yml b/public/modules/custom/grants_handler/config/install/webform.webform.liikunta_tapahtuma.yml index 352be6d9b4..e9d0f068fd 100644 --- a/public/modules/custom/grants_handler/config/install/webform.webform.liikunta_tapahtuma.yml +++ b/public/modules/custom/grants_handler/config/install/webform.webform.liikunta_tapahtuma.yml @@ -10,22 +10,23 @@ third_party_settings: applicationTypeSelect: '59' applicationType: LIIKUNTATAPAHTUMA applicationTypeID: '59' - applicationIndustry: KASKO + applicationIndustry: KUVA applicantTypes: registered_community: registered_community applicationTypeTerms: 65: '65' applicationTargetGroup: '26' - applicationOpen: '2023-02-18T09:28:04' - applicationClose: '2023-11-24T09:28:11' + applicationOpen: '2024-12-09T00:00:00' + applicationClose: '2025-12-07T23:59:59' applicationActingYearsType: fixed applicationActingYears: - 2023: '2023' - 2024: '2024' 2025: '2025' - applicationActingYearsNextCount: '' + applicationActingYearsNextCount: '0' applicationContinuous: 0 - disableCopying: 0 + disableCopying: 1 + status: released + parent: '' + avus2BreakingChange: false weight: 0 open: null close: null @@ -33,9 +34,10 @@ uid: 1 template: false archive: false id: liikunta_tapahtuma -title: 'Liikunta: Tapahtuma-avustushakemus' -description: LIIKUNTATAPAHTUMA -category: '' +title: 'Liikunta, tapahtuma-avustushakemus' +description: '

LIIKUNTATAPAHTUMA

' +categories: + - Tuotannossa elements: |- applicant_type: '#type': hidden @@ -83,7 +85,7 @@ elements: |- '#markup': 'Tiedot on haettu Patentti- ja rekisterihallinnon rekisteristä (PRH), eikä niitä voi tämän takia muokata.' hakijan_tiedot: '#type': applicant_info - '#title': 'Hakija' + '#title': Hakija contact_person_email_section: '#type': webform_section '#title': Sähköposti @@ -96,6 +98,7 @@ elements: |- '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' '#size': 63 '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' '#required': true contact_person_section: '#type': webform_section @@ -121,7 +124,7 @@ elements: |- '#states': visible: ':input[name="applicant_type"]': - 'value': registered_community + value: registered_community community_address: '#type': community_address_composite '#title': 'Yhteisön osoite' @@ -133,7 +136,7 @@ elements: |- '#states': visible: ':input[name="applicant_type"]': - 'value': registered_community + value: registered_community tilinumero: '#type': webform_section '#title': Tilinumero @@ -185,6 +188,7 @@ elements: |- 2022: '2022' 2023: '2023' 2024: '2024' + '#help': 'Huomioithan, että avustusten kriteerit saattavat muuttua vuosittain.' '#required': true avustuslajit: '#type': webform_section @@ -195,6 +199,7 @@ elements: |- '#multiple': true '#subventionType': 37: '37' + '#onlyOneSubventionPerApplication': 1 '#required': true '#multiple__header': true '#multiple__empty_items': 0 @@ -211,94 +216,20 @@ elements: |- '#subvention_type_id__access': false '#subvention_type__title': Avustuslaji '#subvention_amount__title': 'Avustuksen summa' - markup_01: - '#type': webform_markup - '#markup': 'Hae yhdellä hakemuksella aina vain yhtä avustuslajia kerrallaan.' - osallistujat: - '#type': webform_section - '#title': Osallistujat - markup_02: - '#type': webform_markup - '#markup': 'Arvioiduissa osallistujamäärissä tulee huomioida ne osallistujat, joita tapahtuma liikuttaa. Arvioiduissa määrissä ei siis huomioida esimerkiksi tapahtumaan osallistuvan yleisön tai vapaaehtoisten määrää.' - 20_age_participants: - '#type': fieldset - '#title': 'Yli 20-vuotiaat osallistujat' - '#attributes': - class: - - grants-fieldset - - grants-fieldset-medium - 20_men: - '#type': number - '#title': Miehet - '#size': '32' - '#autocomplete': 'off' - '#required': true - '#attributes': - class: - - webform--small - 20_women: - '#type': number - '#title': Naiset - '#size': '32' - '#autocomplete': 'off' - '#required': true - '#attributes': - class: - - webform--small - 20_other: - '#type': number - '#title': Muut - '#size': '32' - '#autocomplete': 'off' - '#required': true - '#attributes': - class: - - webform--small - under_20_age_participants: - '#type': fieldset - '#title': 'Alle 20-vuotiaat osallistujat' - '#attributes': - class: - - grants-fieldset - - grants-fieldset-medium - under_20_men: - '#type': number - '#title': Pojat - '#size': '32' - '#autocomplete': 'off' - '#required': true - '#attributes': - class: - - webform--small - under_20_women: - '#type': number - '#title': Tytöt - '#size': '32' - '#autocomplete': 'off' - '#required': true - '#attributes': - class: - - webform--small - under_20_other: - '#type': number - '#title': Muut - '#size': '32' - '#autocomplete': 'off' - '#required': true - '#attributes': - class: - - webform--small tapahtuman_tiedot: '#type': webform_section '#title': 'Tapahtuman tiedot' event_for_applied_grant: - '#type': textarea + '#type': textfield '#title': 'Tapahtuma, johon avustusta haetaan' '#autocomplete': 'off' '#required': true '#counter_type': character - '#counter_maximum': 1000 - '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + '#counter_maximum': 150 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/150 merkkiä jäljellä' event_target_group: '#type': textarea '#title': 'Tapahtuman kohderyhmä' @@ -323,14 +254,27 @@ elements: |- '#counter_type': character '#counter_maximum': 3000 '#counter_maximum_message': '%d/3000 merkkiä jäljellä' + info_kysymykset: + '#type': webform_markup + '#markup': | +
+
+
+ + Myöntävä vastaus seuraavissa avaa lisäkysymyksen +
+
+
equality_radios: '#type': radios '#title': 'Tapahtuma edistää yhdenvertaisuutta ja tasa-arvoa' - '#options': yes_no + '#options': + 1: Kyllä + 0: Ei '#options_display': side_by_side equality_how: '#type': textarea - '#title': 'Miten?' + '#title': 'Miten tapahtuma edistää yhdenvertaisuutta ja tasa-arvoa?' '#size': 32 '#autocomplete': 'off' '#required': true @@ -340,15 +284,20 @@ elements: |- '#states': visible: ':input[name="equality_radios"]': - value: 'Yes' + value: 1 + required: + ':input[name="equality_radios"]': + value: 1 inclusion_radios: '#type': radios '#title': 'Tapahtuma edistää osallisuutta ja yhteisöllisyyttä' - '#options': yes_no + '#options': + 1: Kyllä + 0: Ei '#options_display': side_by_side inclusion_how: '#type': textarea - '#title': 'Miten?' + '#title': 'Miten tapahtuma edistää osallisuutta ja yhteisöllisyyttä?' '#size': 32 '#autocomplete': 'off' '#required': true @@ -358,15 +307,20 @@ elements: |- '#states': visible: ':input[name="inclusion_radios"]': - value: 'Yes' + value: 1 + require: + ':input[name="inclusion_radios"]': + value: 1 environment_radios: '#type': radios '#title': 'Tapahtumassa on huomioitu ympäristöasiat' - '#options': yes_no + '#options': + 1: Kyllä + 0: Ei '#options_display': side_by_side environment_how: '#type': textarea - '#title': 'Miten?' + '#title': 'Miten tapahtumassa on huomioitu ympäristöasiat?' '#autocomplete': 'off' '#required': true '#counter_type': character @@ -375,15 +329,20 @@ elements: |- '#states': visible: ':input[name="environment_radios"]': - value: 'Yes' + value: 1 + require: + ':input[name="environment_radios"]': + value: 1 exercise_radios: '#type': radios '#title': 'Tapahtuma innostaa uusia harrastajia omatoimisen tai ohjatun liikunnan pariin' - '#options': yes_no + '#options': + 1: Kyllä + 0: Ei '#options_display': side_by_side exercise_how: '#type': textarea - '#title': 'Miten?' + '#title': 'Miten tapahtuma innostaa uusia harrastajia omatoimisen tai ohjatun liikunnan pariin?' '#autocomplete': 'off' '#required': true '#counter_type': character @@ -392,15 +351,20 @@ elements: |- '#states': visible: ':input[name="exercise_radios"]': - value: 'Yes' + value: 1 + required: + ':input[name="exercise_radios"]': + value: 1 activity_radios: '#type': radios '#title': 'Tapahtuma innostaa ihmisiä arkiaktiivisuuteen' - '#options': yes_no + '#options': + 1: Kyllä + 0: Ei '#options_display': side_by_side activity_how: '#type': textarea - '#title': 'Miten?' + '#title': 'Miten tapahtuma innostaa ihmisiä arkiaktiivisuuteen?' '#autocomplete': 'off' '#required': true '#counter_type': character @@ -409,7 +373,102 @@ elements: |- '#states': visible: ':input[name="activity_radios"]': - value: 'Yes' + value: 1 + required: + ':input[name="activity_radios"]': + value: 1 + osallistujat: + '#type': webform_section + '#title': Osallistujat + markup_02: + '#type': webform_markup + '#markup': 'Arvioiduissa osallistujamäärissä tulee huomioida ne osallistujat, joita tapahtuma liikuttaa. Arvioiduissa määrissä ei siis huomioida esimerkiksi tapahtumaan osallistuvan yleisön tai vapaaehtoisten määrää.' + 20_age_participants: + '#type': fieldset + '#title': '20 vuotta täyttäneet osallistujat' + '#attributes': + class: + - grants-fieldset + - grants-fieldset-medium + 20_men: + '#type': textfield + '#title': Miehet + '#size': '32' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#autocomplete': 'off' + '#required': true + '#attributes': + class: + - webform--small + 20_women: + '#type': textfield + '#title': Naiset + '#size': '32' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#autocomplete': 'off' + '#required': true + '#attributes': + class: + - webform--small + 20_other: + '#type': textfield + '#title': Muut + '#size': '32' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#autocomplete': 'off' + '#required': true + '#attributes': + class: + - webform--small + under_20_age_participants: + '#type': fieldset + '#title': 'Alle 20-vuotiaat osallistujat' + '#attributes': + class: + - grants-fieldset + - grants-fieldset-medium + under_20_men: + '#type': textfield + '#title': Pojat + '#size': '32' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#autocomplete': 'off' + '#required': true + '#attributes': + class: + - webform--small + under_20_women: + '#type': textfield + '#title': Tytöt + '#size': '32' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#autocomplete': 'off' + '#required': true + '#attributes': + class: + - webform--small + under_20_other: + '#type': textfield + '#title': Muut + '#size': '32' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#autocomplete': 'off' + '#required': true + '#attributes': + class: + - webform--small tapahtuma_ajankohta: '#type': webform_section '#title': Tapahtuma-ajankohta @@ -417,12 +476,10 @@ elements: |- '#type': date '#title': Alkaa '#required': true - '#datepicker': true paattyy: '#type': date '#title': Päättyy '#required': true - '#datepicker': true tapahtuman_talousarvio: '#type': webform_wizard_page '#title': '3. Tapahtuman talousarvio' @@ -431,7 +488,7 @@ elements: |- '#title': 'Tapahtuman tulot' markup_03: '#type': webform_markup - '#markup': 'Erittele tapahtuman tulot tulotyypeittäin. Kirjaa tuloihin erikseen myös tapahtumalle myönnetyt muut avustukset sekä niiden myöntäjätaho. ' + '#markup': 'Erittele tapahtuman tulot tulotyypeittäin. Kirjaa tuloihin erikseen myös tapahtumalle myönnetyt muut avustukset sekä niiden myöntäjätaho.' budget_other_income: '#type': grants_budget_other_income '#title': Tulo @@ -443,6 +500,8 @@ elements: |- '#multiple__sorting': false '#multiple__add': false '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi tulo' + '#multiple__item_label': 'tulo' itemise_cost: '#type': webform_section '#title': 'Tapahtuman menot' @@ -460,6 +519,8 @@ elements: |- '#multiple__sorting': false '#multiple__add': false '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi meno' + '#multiple__item_label': 'meno' lisatiedot_ja_liitteet: '#type': webform_wizard_page '#title': '4. Lisätiedot ja liitteet' @@ -469,7 +530,7 @@ elements: |- additional_information: '#type': textarea '#title': Lisätiedot - '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen tai ilmoittaa perustietoihin tulleista muutoksista ' + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' '#maxlength': 5000 '#autocomplete': 'off' '#counter_type': character @@ -480,35 +541,13 @@ elements: |- '#title': Liitteet attachments_info: '#type': webform_markup - '#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:
- Vapaamuotoinen tapahtumasuunnitelma (laajempi kuvaus tapahtumasta, sen järjestelyistä ja kohderyhmästä)
- Tapahtumabudjetti (mikäli se ei tule riittävällä tavalla ilmi hakemuslomakkeella)
-
- Mikäli hakija ei ole aiemmin hakenut Helsingin kaupungin avustuksia tai tiedot ovat muuttuneet, hakemuksen liitteenä tulee toimittaa myös seuraavat liitteet: 
- Yhteisön säännöt
- Pankin ilmoitus tilinomistajasta tai tiliotekopio (hakijalla tulee olla oma suomalainen pankkitili, jolle avustus maksetaan) 
- Ote yhteisömuotoa koskevasta rekisteristä
-
- 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ä”. + '#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

+
  • Vapaamuotoinen tapahtumasuunnitelma (laajempi kuvaus tapahtumasta, sen järjestelyistä ja kohderyhmästä)
  • Tapahtumabudjetti (mikäli se ei tule riittävällä tavalla ilmi hakemuslomakkeella)
+

Mikäli hakija ei ole aiemmin hakenut Helsingin kaupungin avustuksia tai tiedot ovat muuttuneet, hakemuksen liitteenä tulee toimittaa myös ote yhteisömuotoa koskevasta rekisteristä.

' notification_attachments: '#type': webform_markup - '#markup': | -
-
-
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.

-
-
-
- '#format': full_html + '#markup': '
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.

' tapahtumasuunnitelma: '#type': grants_attachments '#title': Tapahtumasuunnitelma @@ -534,7 +573,7 @@ elements: |- '#multiple__add': false '#multiple__remove': false '#multiple__add_more_input': false - '#multiple__add_more_button_label': 'Lisää liite' + '#multiple__add_more_button_label': 'Lisää uusi liite' '#isDeliveredLater__access': false '#isIncludedInOtherFile__access': false actions: @@ -544,6 +583,8 @@ elements: |- '#draft__label': 'Tallenna keskeneräisenä' '#wizard_prev__label': 'Edellinen' '#wizard_next__label': 'Seuraava' + '#preview_prev__label': 'Edellinen' + '#preview_next__label': 'Esikatseluun' '#delete_hide': false '#delete__label': 'Poista keskeneräinen' '#delete__attributes': @@ -577,9 +618,9 @@ settings: form_prepopulate_source_entity: false form_prepopulate_source_entity_required: false form_prepopulate_source_entity_type: '' - form_unsaved: false + form_unsaved: true form_disable_back: false - form_submit_back: false + form_submit_back: true form_disable_autocomplete: false form_novalidate: false form_disable_inline_errors: false @@ -628,13 +669,13 @@ settings: wizard_start_label: '' wizard_preview_link: false wizard_confirmation: true - wizard_confirmation_label: '' + wizard_confirmation_label: '6. Valmis' wizard_auto_forward: true wizard_auto_forward_hide_next_button: false wizard_keyboard: true wizard_track: '' - wizard_prev_button_label: 'Edellinen' - wizard_next_button_label: 'Seuraava' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava wizard_toggle: false wizard_toggle_show_label: '' wizard_toggle_hide_label: '' diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.liikunta_toiminta_ja_tilankaytto.yml b/public/modules/custom/grants_handler/config/install/webform.webform.liikunta_toiminta_ja_tilankaytto.yml new file mode 100644 index 0000000000..e4985ba16a --- /dev/null +++ b/public/modules/custom/grants_handler/config/install/webform.webform.liikunta_toiminta_ja_tilankaytto.yml @@ -0,0 +1,1203 @@ +uuid: 51534e2f-68c9-489f-8d8d-6b5297db85b1 +langcode: fi +status: open +dependencies: + module: + - grants_handler + - grants_metadata +third_party_settings: + grants_metadata: + applicationTypeSelect: '60' + applicationType: LIIKUNTATILANKAYTTO + applicationTypeID: '60' + applicationIndustry: KUVA + applicantTypes: + registered_community: registered_community + applicationTypeTerms: + 61: '61' + 70: '70' + 45: '45' + applicationTargetGroup: '26' + applicationOpen: '2024-02-22T00:00:00' + applicationClose: '2024-03-03T23:59:59' + applicationActingYearsType: fixed + applicationActingYears: + 2024: '2024' + applicationActingYearsNextCount: '' + applicationContinuous: 0 + disableCopying: 1 + status: released + parent: '' +weight: 0 +open: null +close: null +uid: 1 +template: false +archive: false +id: liikunta_toiminta_ja_tilankaytto +title: 'Liikunta, toiminta- ja tilankäyttöavustushakemus' +description: '

LIIKUNTATILANKAYTTO

' +categories: + - Tuotannossa +elements: |- + applicant_type: + '#type': hidden + '#title': 'Applicant type' + tilankayttosumma: + '#type': grants_webform_summation_field + '#title': Tilankayttosumma + '#collect_field': + subventions%%amount: subventions%%amount + applicant_type: 0 + application_number: 0 + status: 0 + hakijan_tiedot: 0 + email: 0 + contact_person: 0 + contact_person_phone_number: 0 + community_address: 0 + bank_account: 0 + community_officials: 0 + hakijan_tyyppi: 0 + acting_year: 0 + compensation_boolean: 0 + compensation_explanation: 0 + compensation_purpose: 0 + olemme_saaneet_muita_avustuksia: 0 + myonnetty_avustus: 0 + tuntimaara_yhteensa: 0 + vuokrat_yhteensa: 0 + seuraavalle_vuodelle_suunniteltu_muutos_tilojen_kaytossa_tunnit_: 0 + seuran_yhdistyksen_saamat_vuokrat_edellisen_kalenterivuoden_ajal: 0 + miehet_20_63_vuotiaat_: 0 + miehet_20_63_vuotiaat_aktiiviharrastajat: 0 + joista_helsinkilaisia_miehet_20_63_aktiiviharrastajat: 0 + naiset_20_63_vuotiaat_aktiiviharrastajat: 0 + joista_helsinkilaisia_naiset_20_63_aktiiviharrastajat: 0 + muut_20_63_vuotiaat_aktiiviharrastajat: 0 + joista_helsinkilaisia_muut_20_63_aktiiviharrastajat: 0 + miehet_64_aktiiviharrastajat: 0 + joista_helsinkilaisia_miehet_64_aktiiviharrastajat: 0 + naiset_64_aktiiviharrastajat: 0 + joista_helsinkilaisia_naiset_64_aktiiviharrastajat: 0 + muut_64_aktiiviharrastajat: 0 + joista_helsinkilaisia_muut_64_aktiiviharrastajat: 0 + pojat_20_aktiiviharrastajat: 0 + joista_helsinkilaisia_pojat_20_aktiiviharrastajat: 0 + tytot_20_aktiiviharrastajat: 0 + joista_helsinkilaisia_tytot_20_aktiiviharrastajat: 0 + muut_20_aktiiviharrastajat: 0 + joista_helsinkilaisia_muut_20_aktiiviharrastajat: 0 + valmentajien_ohjaajien_maara_edellisena_vuonna_yhteensa: 0 + joista_valmentaja_ja_ohjaajakoulutuksen_vok_1_5_tason_koulutukse: 0 + club_section: 0 + additional_information: 0 + yhteison_saannot: 0 + vahvistettu_tilinpaatos: 0 + vahvistettu_toimintakertomus: 0 + vahvistettu_tilin_tai_toiminnantarkastuskertomus: 0 + vuosikokouksen_poytakirja: 0 + toimintasuunnitelma: 0 + talousarvio: 0 + tilankayttoliite: 0 + extra_info: 0 + muu_liite: 0 + '#subvention_type': '32' + '#data_type': euro + '#display_type': euro + '#form_item': hidden + avustukset_summa: + '#type': grants_webform_summation_field + '#title': 'Avustukset summa' + '#title_display': none + '#description_display': invisible + '#collect_field': + subventions%%amount: subventions%%amount + applicant_type: 0 + application_number: 0 + status: 0 + hakijan_tiedot: 0 + email: 0 + contact_person: 0 + contact_person_phone_number: 0 + community_address: 0 + bank_account: 0 + community_officials: 0 + hakijan_tyyppi: 0 + acting_year: 0 + compensation_boolean: 0 + compensation_explanation: 0 + compensation_purpose: 0 + olemme_saaneet_muita_avustuksia: 0 + myonnetty_avustus: 0 + tuntimaara_yhteensa: 0 + vuokrat_yhteensa: 0 + seuraavalle_vuodelle_suunniteltu_muutos_tilojen_kaytossa_tunnit_: 0 + seuran_yhdistyksen_saamat_vuokrat_edellisen_kalenterivuoden_ajal: 0 + miehet_20_63_vuotiaat_aktiiviharrastajat: 0 + joista_helsinkilaisia_miehet_20_63_aktiiviharrastajat: 0 + naiset_20_63_vuotiaat_aktiiviharrastajat: 0 + joista_helsinkilaisia_naiset_20_63_aktiiviharrastajat: 0 + muut_20_63_vuotiaat_aktiiviharrastajat: 0 + joista_helsinkilaisia_muut_20_63_aktiiviharrastajat: 0 + miehet_64_aktiiviharrastajat: 0 + joista_helsinkilaisia_miehet_64_aktiiviharrastajat: 0 + naiset_64_aktiiviharrastajat: 0 + joista_helsinkilaisia_naiset_64_aktiiviharrastajat: 0 + muut_64_aktiiviharrastajat: 0 + joista_helsinkilaisia_muut_64_aktiiviharrastajat: 0 + pojat_20_aktiiviharrastajat: 0 + joista_helsinkilaisia_pojat_20_aktiiviharrastajat: 0 + tytot_20_aktiiviharrastajat: 0 + joista_helsinkilaisia_tytot_20_aktiiviharrastajat: 0 + muut_20_aktiiviharrastajat: 0 + joista_helsinkilaisia_muut_20_aktiiviharrastajat: 0 + valmentajien_ohjaajien_maara_edellisena_vuonna_yhteensa: 0 + joista_valmentaja_ja_ohjaajakoulutuksen_vok_1_5_tason_koulutukse: 0 + club_section: 0 + additional_information: 0 + yhteison_saannot: 0 + vahvistettu_tilinpaatos: 0 + vahvistettu_toimintakertomus: 0 + vahvistettu_tilin_tai_toiminnantarkastuskertomus: 0 + vuosikokouksen_poytakirja: 0 + toimintasuunnitelma: 0 + talousarvio: 0 + tilankayttoliite: 0 + extra_info: 0 + muu_liite: 0 + '#subvention_type': '32' + '#data_type': euro + '#form_item': hidden + 1_hakijan_tiedot: + '#type': webform_wizard_page + '#title': '1. Hakijan tiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + application_number: + '#type': hidden + '#title': Hakemusnumero + '#disabled': true + status: + '#type': hidden + '#title': 'Hakemuksen tila' + '#readonly': true + yhteiso_jolle_haetaan_avustusta: + '#type': webform_section + '#title': 'Yhteisö, jolle haetaan avustusta' + '#attributes': + class: + - grants-profile--imported-section + prh_markup: + '#type': webform_markup + '#markup': '
Tiedot on haettu Patentti- ja rekisterihallinnon rekisteristä (PRH), eikä niitä voi tämän takia muokata.
' + hakijan_tiedot: + '#type': applicant_info + '#title': Hakija + contact_person_email_section: + '#type': webform_section + '#title': Sähköposti + contact_markup: + '#type': webform_markup + '#markup': 'Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.' + email: + '#type': email + '#title': Sähköpostiosoite + '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' + '#size': 63 + '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' + '#required': true + contact_person_section: + '#type': webform_section + '#title': 'Hakemuksen yhteyshenkilö' + contact_person: + '#type': textfield + '#title': Yhteyshenkilö + '#autocomplete': 'off' + '#attributes': + class: + - webform--large + '#required': true + '#size': 63 + contact_person_phone_number: + '#type': textfield + '#attributes': + class: + - webform--medium + '#title': Puhelinnumero + '#required': true + '#autocomplete': 'off' + '#size': 32 + osoite: + '#type': webform_section + '#title': Osoite + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + community_address: + '#type': community_address_composite + '#title': 'Yhteisön osoite' + '#help': 'Jos haluat lisätä, poistaa tai muuttaa osoitetietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään osoitetietoa omiin tietoihin.' + '#attributes': + class: + - webform--large + '#required': true + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + tilinumero: + '#type': webform_section + '#title': Tilinumero + bank_account: + '#type': bank_account_composite + '#title': Tilinumero + '#help': 'Jos haluat lisätä, poistaa tai muuttaa tilinumerotietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään tilinumerotietoa omiin tietoihin.' + '#attributes': + class: + - webform--medium + '#required': true + toiminnasta_vastaavat_henkilot: + '#type': webform_section + '#title': 'Toiminnasta vastaavat henkilöt' + '#states': + visible: + - ':input[name="applicant_type"]': + value: registered_community + - or + - ':input[name="applicant_type"]': + value: unregistered_community + community_officials: + '#type': community_officials_composite + '#help': 'Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.' + '#title': 'Valitse toiminnasta vastaavat henkilöt' + '#multiple': true + '#multiple__item_label': henkilö + '#multiple__min_items': 0 + '#multiple__empty_items': 1 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää henkilö' + '#wrapper_attributes': + class: + - community_officials_wrapper + '#attributes': + class: + - webform--large + 2_avustustiedot: + '#type': webform_wizard_page + '#title': '2. Avustustiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + avustuksen_tiedot: + '#type': webform_section + '#title': 'Avustuksen tiedot' + hakijan_tyyppi: + '#type': select + '#title': 'Hakijan tyyppi' + '#title_display': before + '#options': + Liikuntaseura: Liikuntaseura + 'Eläkeläis- tai erityisjärjestöjen liikuntaryhmä': 'Eläkeläis- tai erityisjärjestöjen liikuntaryhmä' + 'Muu liikuntaa järjestävä yhdistys': 'Muu liikuntaa järjestävä yhdistys' + '#required': true + acting_year: + '#type': select + '#title': 'Vuosi, jolle haen avustusta' + '#options': + 2022: '2022' + 2023: '2023' + 2024: '2024' + '#required': true + avustuslajit: + '#type': webform_section + '#title': Avustuslajit + subventions: + '#type': grants_compensations + '#title': Avustukset + '#multiple': true + '#subventionType': + 1: '1' + 32: '32' + 42: '42' + '#description': 'Tutustu avustuskohtaisiin kriteereihin liikunnan avustusten nettisivuilla.' + '#required': true + '#multiple__header': true + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more': false + '#attributes': + class: + - subventions + '#subvention_type': + 1: '1' + 6: '6' + '#subvention_type_id__access': false + '#subvention_type__title': Avustuslaji + '#subvention_amount__title': 'Avustuksen summa' + edellisen_avustuksen_kayttoselvitys: + '#type': webform_section + '#title': 'Edellisen avustuksen käyttöselvitys' + compensation_boolean_info: + '#type': webform_markup + '#markup': | +

Käyttöselvitys edellisen vuoden toiminta- tai muiden liikuntaa edistävien yhdistysten avustuksesta.

+ +
+
+
Myöntävä vastaus avaa lisäkysymyksen
+
+
+ compensation_boolean: + '#type': radios + '#title': 'Käyttöselvitys edellisenä vuonna saamastani avustuksesta' + '#options': + - 'En ole saanut Helsingin kaupungilta avustusta samaan käyttötarkoitukseen edellisenä vuonna.' + - 'Olen saanut Helsingin kaupungilta avustusta samaan käyttötarkoitukseen edellisenä vuonna.' + '#required': true + markup: + '#type': webform_markup + '#states': + visible: + ':input[name="compensation_boolean"]': + value: 'true' + '#markup': 'Anna käyttöselvitys Helsingin kaupungilta saadusta avustuksesta. Avustuksen käyttöselvitys tehdään avustuksesta, joka koskee viimeisintä päättynyttä tilikautta. Käyttöselvitystä ei tehdä käynnissä olevalta tilikaudelta. Käyttöselvityksen antaminen on seuraavan avustuksen saamisen ehtona. Mikäli käyttöselvitystä ei tehdä, avustusta ei myönnetä eikä makseta. Myönnetty avustus voidaan periä takaisin, jos edellisen avustuksen käyttöä ei ole hyväksyttävästi selvitetty.' + compensation_explanation: + '#type': textarea + '#title': 'Selvitys avustuksen käytöstä' + '#help': '

Käyttöselvityksessä tulee kuvata lyhyesti, miten myönnetty avustus on käytetty. Avustuksen saajan on järjestettävä kirjanpitonsa niin, että avustuksen käyttöä voidaan sieltä seurata. Lisää tietoja avustuksen käytöstä voi myös kirjoittaa erilliseen liitteeseen, jonka voi palauttaa Käyttöselvitys-liite kohdasta.

' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#states': + visible: + ':input[name="compensation_boolean"]': + value: '1' + required: + ':input[name="compensation_boolean"]': + value: '1' + '#attributes': + class: + - webform--large + '#cols': 63 + kayttotarkoitus: + '#type': webform_section + '#title': Käyttötarkoitus + compensation_purpose: + '#type': textarea + '#title': 'Lyhyt kuvaus haettavan / haettavien avustusten käyttötarkoituksista' + '#help': 'Kerro mitä tarkoitusta varten avustusta haetaan, erittele tarvittaessa eri käyttökohteet. Kerro myös mitä avustuksella on tarkoitus saada aikaiseksi ja millaisia tavoitteita avustettavaan toimintaan liittyy.' + '#required': true + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#attributes': + class: + - webform--large + '#cols': 63 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + muut_samaan_tarkoitukseen_myonnetyt_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen myönnetyt avustukset' + info_muut_samaan_tarkoitukseen_myonnetty: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on myönnetty muualta kuin Helsingin kaupungilta kuluvana tai kahtena edellisenä verovuotena. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_saaneet_muita_avustuksia: + '#type': radios + '#title': 'Olemme saaneet muita avustuksia' + '#description_display': before + '#options': + 1: Kyllä + 0: Ei + myonnetty_avustus: + '#type': webform_custom_composite + '#title': 'Myönnetty avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + required: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'myönnetty avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi myönnetty avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi myönnetty avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#attributes': + class: + - webform--large + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + year: + '#type': textfield + '#required': true + '#title': Vuosi + '#attributes': + class: + - webform--small + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': 'Myönnetyn avustuksen summa' + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + tilankayttoavustus: + '#type': webform_section + '#title': Tilankäyttöavustus + maksetut_vuokrat_info: + '#type': webform_markup + '#markup': '

Yhteenveto seuran/yhdistyksen maksamista toteutuneista säännöllisten harjoitusvuorojen vuokrista, muiden kuin liikuntapalvelun omien tilojen osalta. Ilmoita toteutuneet vuokrat ja tuntimäärä edellisen kalenterivuoden 1.1. - 31.12. ajalta tilankäyttöliitteen mukaisesti. Liikuntatiloista maksetut vuokrat -kohta on pakollinen täyttää, mikäli haet tilankäyttöavustusta.

' + liikuntatiloista_maksetut_vuokrat_fieldset: + '#type': fieldset + '#title': 'Liikuntatiloista maksetut vuokrat' + '#states': + required: + ':input[name="tilankayttosumma"]': + value: + greater: '0' + '#attributes': + class: + - grants-fieldset + - grants-fieldset-short + tuntimaara_yhteensa: + '#type': textfield + '#title': 'Tuntimäärä yhteensä' + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#states': + required: + ':input[name="tilankayttosumma"]': + value: + greater: '0' + '#attributes': + class: + - webform--small + '#step': 1 + vuokrat_yhteensa: + '#type': textfield + '#title': 'Yhteensä / EUR' + '#states': + required: + ':input[name="tilankayttosumma"]': + value: + greater: '0' + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''2'', ''radixPoint'': '','', ''substituteRadixPoint'': ''true''' + '#attributes': + class: + - webform--small + seuraavalle_vuodelle_suunniteltu_muutos_tilojen_kaytossa_tunnit_: + '#type': textfield + '#title': 'Seuraavalle vuodelle suunniteltu merkittävä muutos tilojen käytössä +/- tunnit ja vuokrasumma sekä syy muutokseen.' + '#help': '

Tilankäyttöavustuksen määrässä voidaan harkinnanvaraisesti huomioida hakuvuotta koskevat merkittävät muutokset seuran liikuntatilojen käytössä. Merkittäviksi muutoksiksi katsotaan: seurojen yhteenliittyminen, jaoston tai jaostojen liittyminen seuraan tai irtautuminen seurasta, seuran vuokraama tai omistama uusi liikuntatila (kyseisen tilan vuokrasopimus tulee liittää hakemukseen) tai seuran hallinnoimasta tai omistamasta liikuntatilasta luopuminen.

' + '#states': + required: + ':input[name="tilankayttosumma"]': + value: + greater: '0' + '#wrapper_attributes': + class: + - webform--small + seuran_yhdistyksen_saamat_vuokrat_edellisen_kalenterivuoden_ajal: + '#type': rent_income_composite + '#title': 'Seuran/yhdistyksen saamat vuokrat edellisen kalenterivuoden ajalta 1.1. - 31.12' + '#multiple': true + '#description': 'Mikäli seura/yhdistys saa tilastaan vuokratuloja, ne ilmoitetaan tässä.' + '#title_display': before + '#description_display': before + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi tila' + 3_yhteison_tiedot: + '#type': webform_wizard_page + '#title': '3. Yhteisön toiminta' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + aktiiviharrastajat: + '#type': webform_section + '#title': Aktiiviharrastajat + aktiiviharrastajat_fieldset: + '#type': fieldset + '#title': Aktiiviharrastajat + '#help': 'Aktiiviharrastajalla tarkoitetaan henkilöä, joka on edellisen toimintavuoden aikana osallistunut säännölliseen ohjattuun toimintaan vähintään 10 kertaa 3kk aikana. Ryhmässä tulee olla vähintään 4 henkilöä ja ohjaaja/valmentajaa.' + '#attributes': + class: + - grants-fieldset + - grants-fieldset-short + miehet_20_63_vuotiaat_aktiiviharrastajat: + '#type': textfield + '#title': 'Miehet (20-63-vuotiaat)' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + '#required': true + joista_helsinkilaisia_miehet_20_63_aktiiviharrastajat: + '#type': textfield + '#title': 'Joista helsinkiläisiä' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + '#required': true + naiset_20_63_vuotiaat_aktiiviharrastajat: + '#type': textfield + '#title': 'Naiset (20-63-vuotiaat)' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + '#required': true + joista_helsinkilaisia_naiset_20_63_aktiiviharrastajat: + '#type': textfield + '#title': 'Joista helsinkiläisiä' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + '#required': true + muut_20_63_vuotiaat_aktiiviharrastajat: + '#type': textfield + '#title': 'Muut (20-63-vuotiaat)' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + '#required': true + joista_helsinkilaisia_muut_20_63_aktiiviharrastajat: + '#type': textfield + '#title': 'Joista helsinkiläisiä' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + '#required': true + miehet_64_aktiiviharrastajat: + '#type': textfield + '#title': 'Miehet (64 vuotta täyttäneet)' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + '#required': true + joista_helsinkilaisia_miehet_64_aktiiviharrastajat: + '#type': textfield + '#title': 'Joista helsinkiläisiä' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + '#required': true + naiset_64_aktiiviharrastajat: + '#type': textfield + '#title': 'Naiset (64 vuotta täyttäneet)' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + '#required': true + joista_helsinkilaisia_naiset_64_aktiiviharrastajat: + '#type': textfield + '#title': 'Joista helsinkiläisiä' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + '#required': true + muut_64_aktiiviharrastajat: + '#type': textfield + '#title': 'Muut (64 vuotta täyttäneet)' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + '#required': true + joista_helsinkilaisia_muut_64_aktiiviharrastajat: + '#type': textfield + '#title': 'Joista helsinkiläisiä' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + '#required': true + pojat_20_aktiiviharrastajat: + '#type': textfield + '#title': 'Pojat (alle 20-vuotiaat)' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + '#required': true + joista_helsinkilaisia_pojat_20_aktiiviharrastajat: + '#type': textfield + '#title': 'Joista helsinkiläisiä' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + '#required': true + tytot_20_aktiiviharrastajat: + '#type': textfield + '#title': 'Tytöt (alle 20-vuotiaat)' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + '#required': true + joista_helsinkilaisia_tytot_20_aktiiviharrastajat: + '#type': textfield + '#title': 'Joista helsinkiläisiä' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + '#required': true + muut_20_aktiiviharrastajat: + '#type': textfield + '#title': 'Muut (alle 20-vuotiaat)' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + '#required': true + joista_helsinkilaisia_muut_20_aktiiviharrastajat: + '#type': textfield + '#title': 'Joista helsinkiläisiä' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + '#required': true + valmentajien_ohjaajien_maara_edellisena_vuonna_yhteensa: + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': 'Valmentajien/ohjaajien määrä edellisenä vuonna yhteensä' + '#required': true + '#attributes': + class: + - webform--small + joista_valmentaja_ja_ohjaajakoulutuksen_vok_1_5_tason_koulutukse: + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': 'Joista valmentaja- ja ohjaajakoulutuksen (VOK) 1-5 tason koulutuksen suorittaneita on yhteensä' + '#help': 'Liikunnan aluejärjestöjen järjestämien VOK 1 –koulutusten lisäksi laskennassa huomioidaan niiden ohjaajien ja valmentajien määrä, jotka ovat käyneet vähintään vastaavan tasoisen ja sisältöisen lajiliiton järjestämän valmentaja- ja ohjaajakoulutuksen tai jotka ovat suorittaneet liikunnanohjauksen perustutkinnon (ao), liikunnanohjaajan tutkinnon (amk) tai liikuntatieteiden maisterin tutkinnon (liikuntapedagogiikka tai liikuntabiologia).' + '#required': true + '#attributes': + class: + - webform--small + lajijaostot_helsinkilaisille_aktiiviharrastajille: + '#type': webform_section + '#title': 'Lajijaostot helsinkiläisille aktiiviharrastajille' + '#help': '

Älä ilmoita harjoitustunnit-kohdassa yksittäisten harrastajien toteutuneita liikuntasuoritteita tunteina, vaan ikäryhmään kuuluville helsinkiläisille järjestetyt toteutuneet harjoitustunnit.

Mikäli ikäryhmän todellinen harjoitustuntimäärä ei ole selvitettävissä (esim. paljon sekaryhmiä), voit laskea kokonaistuntimäärästä kyseisen ikäryhmän osuuden perustuen ikäryhmän helsinkiläisten aktiiviharrastajien määrän osuuteen helsinkiläisten aktiiviharrastajien kokonaismäärästä. Esim. Jaoston kokonaistuntimäärä (kaikki sekaryhmiä) on 100 tuntia, jossa liikkuu aktiivisesti 10 aikuista ja 20 alle 20-vuotiasta: aikuisten tuntimäärä 33 tuntia ja alle 20-vuotiaiden tuntimäärä 67 tuntia. Ensisijaisesti tulee kuitenkin käyttää ikäryhmän osalta todellista toteutunutta tuntimäärää.

' + lajijaostot_info: + '#type': webform_markup + '#markup': '

Seuran/yhdistyksen järjestämä säännöllinen ohjattu liikuntatoiminta lajeittain. Ilmoita tähän lajeittain edellisen vuoden helsinkiläisten aktiiviharrastajien määrät sekä heidän toteutuneet harjoitustunnit ikäryhmittäin.

' + club_section: + '#type': club_section_composite + '#title': '' + '#multiple': true + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi laji' + '#multiple__item_label': 'laji' + lisatiedot_ja_liitteet: + '#type': webform_wizard_page + '#title': '4. Lisätiedot ja liitteet' + lisatietoja_hakemukseen_liittyen: + '#type': webform_section + '#title': 'Lisätietoja hakemukseen liittyen' + additional_information: + '#type': textarea + '#title': Lisätiedot + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' + '#counter_type': character + '#attributes': + class: + - webform--large + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + liitteet: + '#type': webform_section + '#title': Liitteet + attachments_info: + '#type': webform_markup + '#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 sekä tilin- tai toiminnantarkastuskertomus. Liitteet vuodelle, jolle avustusta haetaan ovat: talousarvio ja toimintasuunnitelma.

+

Tilankäyttöavustusta hakevan tulee ilmoittaa edellisen vuoden tilankäyttötiedot erillisellä tilankäyttöliitteellä, joka liitetään hakemukselle. Tilankäyttöavustuksen laskenta perustuu tilankäyttöliitteessä ilmoitettuihin tietoihin.

+

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

+

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ notification_attachments: + '#type': webform_markup + '#markup': | +
+
+
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.

+
+
+ yhteison_saannot: + '#type': grants_attachments + '#title': 'Yhteisön säännöt' + '#multiple': false + '#filetype': '7' + '#help': 'Uusi hakija tai säännöt muuttuneet' + '#title_display': '' + '#description__access': false + vahvistettu_tilinpaatos: + '#type': grants_attachments + '#title': 'Vahvistettu tilinpäätös (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '43' + '#help': |- +

Tilinpäätöksen täytyy sisältää vähintään tuloslaskelma ja tase. Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun ja allekirjoitetun tilinpäätöksen.

+

Yhteisön tilikausi voi olla kalenterivuosi tai jokin muu kausi. Yhdistysten kohdalla niiden omissa säännöissä lukee, mikä on yhdistyksen tilikausi.

+ '#title_display': before + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi sisältö alta.' + '#description__access': false + vahvistettu_toimintakertomus: + '#type': grants_attachments + '#title': 'Vahvistettu toimintakertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '4' + '#help': |- +

Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun toimintakertomuksen.

+

Jos toimintakertomus on osana tilinpäätöstä ja liititte sen jo tilinpäätöksen mukana lomakkeelle, sitä ei tarvitse liittää tähän erikseen. Valitse tällaisessa tilanteessa toimintakertomuksen kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + vahvistettu_tilin_tai_toiminnantarkastuskertomus: + '#type': grants_attachments + '#title': 'Vahvistettu tilin- tai toiminnantarkastuskertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '5' + '#help': |- +

Liitä tähän allekirjoitettu tilin- tai toiminnantarkastuskertomus yhteisön edelliseltä päättyneeltä tilikaudelta.

+

Jos allekirjoitettu tilin- tai toiminnantarkastuskertomus on osa yhteisönne tilinpäätöstä ja liitit sen jo lomakkeelle tilinpäätöksen kohdalla, valitse tässä kohdassa ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + toimintasuunnitelma: + '#type': grants_attachments + '#title': 'Toimintasuunnitelma (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '1' + '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma. ' + '#title_display': before + '#description__access': false + talousarvio: + '#type': grants_attachments + '#title': 'Talousarvio (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '2' + '#help': 'Liitä tähän koko yhteisön talousarvio.' + '#title_display': before + '#description__access': false + tilankayttoliite: + '#type': grants_attachments + '#title': Tilankäyttöliite + '#multiple': false + '#filetype': '37' + '#help': 'Tilankäyttöavustusta hakevan tulee ilmoittaa edellisen vuoden tilankäyttötiedot erillisellä tilankäyttöliitteellä, joka liitetään hakemukselle. Tilankäyttöavustuksen laskenta perustuu tilankäyttöliitteessä ilmoitettuihin tietoihin.' + '#title_display': before + '#states': + visible: + ':input[name="tilankayttosumma"]': + value: + greater: '0' + required: + ':input[name="tilankayttosumma"]': + value: + greater: '0' + '#attachment__required': true + '#description__access': false + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + extra_info: + '#type': textarea + '#title': 'Lisäselvitys liitteistä' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#attributes': + class: + - webform--large + '#cols': 63 + muu_liite: + '#type': grants_attachments + '#title': 'Muu liite' + '#multiple': 10 + '#filetype': '0' + '#title_display': before + '#multiple__item_label': liite + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää liite' + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + actions: + '#type': webform_actions + '#title': 'Submit button(s)' + '#submit__label': Lähetä + '#draft__label': 'Tallenna keskeneräisenä' + '#wizard_prev__label': 'Edellinen' + '#wizard_next__label': 'Seuraava' + '#preview_prev__label': 'Edellinen' + '#preview_next__label': 'Esikatseluun' + '#delete_hide': false + '#delete__label': 'Poista keskeneräinen' + '#delete__attributes': + class: + - hds-button + - hds-button--primary + '#delete__dialog': true +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: source_entity_webform + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: false + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: true + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: true + form_disable_back: false + form_submit_back: true + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: { } + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: true + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: true + wizard_progress_states: false + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '6. Valmis' + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: '' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava + wizard_toggle: true + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 2 + preview_label: '5. Vahvista, esikatsele ja lähetä' + preview_title: 'Vahvista, esikatsele ja lähetä' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: + miehet_20_63_vuotiaat_: miehet_20_63_vuotiaat_ + joista_helsinkilaisia_miehet_20_63: joista_helsinkilaisia_miehet_20_63 + naiset_20_63_vuotiaat_: naiset_20_63_vuotiaat_ + joista_helsinkilaisia_naiset_20_63: joista_helsinkilaisia_naiset_20_63 + muut_20_63_vuotiaat_: muut_20_63_vuotiaat_ + joista_helsinkilaisia_muut_20_63: joista_helsinkilaisia_muut_20_63 + miehet_64: miehet_64 + joista_helsinkilaisia_miehet_64: joista_helsinkilaisia_miehet_64 + naiset_64: naiset_64 + joista_helsinkilaisia_naiset_64: joista_helsinkilaisia_naiset_64 + muut_64: muut_64 + joista_helsinkilaisia_muut_64: joista_helsinkilaisia_muut_64 + pojat_20: pojat_20 + joista_helsinkilaisia_pojat_20: joista_helsinkilaisia_pojat_20 + tytot_20: tytot_20 + joista_helsinkilaisia_tytot_20: joista_helsinkilaisia_tytot_20 + muut_20: muut_20 + joista_helsinkilaisia_muut_20: joista_helsinkilaisia_muut_20 + preview_exclude_empty: false + preview_exclude_empty_checkbox: false + draft: all + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: none + confirmation_url: '' + confirmation_title: '' + confirmation_message: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: true + confirmation_exclude_token: true + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: draft + purge_days: 365 + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - authenticated + users: { } + permissions: { } + view_any: + roles: + - admin + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: + grants_handler: + id: grants_handler + handler_id: grants_handler + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: 0 + settings: + debug: true +variants: { } diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.liikunta_yleisavustushakemus.yml b/public/modules/custom/grants_handler/config/install/webform.webform.liikunta_yleisavustushakemus.yml index 0d3ed51578..35769caff7 100644 --- a/public/modules/custom/grants_handler/config/install/webform.webform.liikunta_yleisavustushakemus.yml +++ b/public/modules/custom/grants_handler/config/install/webform.webform.liikunta_yleisavustushakemus.yml @@ -10,7 +10,7 @@ third_party_settings: applicationTypeSelect: '56' applicationType: LIIKUNTAYLEIS applicationTypeID: '56' - applicationIndustry: KASKO + applicationIndustry: KUVA applicantTypes: registered_community: registered_community applicationTypeTerms: @@ -18,13 +18,15 @@ third_party_settings: 60: '60' 71: '71' applicationTargetGroup: '26' - applicationOpen: '2022-10-03T11:08:26' - applicationClose: '2023-07-30T11:19:00' + applicationOpen: '2024-01-01T00:00:00' + applicationClose: '2024-12-08T23:59:59' applicationActingYearsType: current_and_next_x_years applicationActingYears: { } - applicationActingYearsNextCount: '1' - applicationContinuous: 0 - disableCopying: 0 + applicationActingYearsNextCount: '0' + applicationContinuous: 1 + disableCopying: 1 + status: released + parent: '' weight: 0 open: null close: null @@ -33,8 +35,9 @@ template: false archive: false id: liikunta_yleisavustushakemus title: 'Liikunta, yleisavustushakemus' -description: LIIKUNTAYLEIS -category: '' +description: '

LIIKUNTAYLEIS

' +categories: + - Tuotannossa elements: |- applicant_type: '#type': hidden @@ -125,6 +128,7 @@ elements: |- '#size': 63 '#autocomplete': 'off' '#required': true + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' contact_person_section: '#type': webform_section '#title': 'Hakemuksen yhteyshenkilö' @@ -246,6 +250,9 @@ elements: |- '#subvention_type_id__access': false '#subvention_type__title': Avustuslaji '#subvention_amount__title': 'Avustuksen summa' + markup_subventions: + '#type': webform_markup + '#markup': 'Tällä lomakkeella haetaan vain yhtä avustusta kerrallaan. Hakiessasi starttiavustusta, avustussumma (500€) tulee valmiina kenttään, eikä summaa voi muuttaa, koska avustussumma on kiinteä. Muissa avustuslajeissa haettava summa tulee lisätä kenttään.' kayttotarkoitus: '#type': webform_section '#title': Käyttötarkoitus @@ -254,6 +261,7 @@ elements: |- '#title': 'Lyhyt kuvaus haettavan avustuksen käyttötarkoituksista' '#description': 'Kerro mitä tarkoitusta varten avustusta haetaan, erittele tarvittaessa eri käyttökohteet.' '#help': 'Kohdeavustuksen osalta tarkemmat tiedot kysytään Webropol-lomakkeella (pakollinen liite)' + '#description_display': before '#maxlength': 5000 '#required': true '#counter_type': character @@ -272,7 +280,7 @@ elements: |- additional_information: '#type': textarea '#title': Lisätiedot - '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen tai ilmoittaa perustietoihin tulleista muutoksista ' + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' '#counter_type': character '#attributes': class: @@ -287,22 +295,13 @@ elements: |- attachments_info: '#type': webform_markup '#markup': |- - Avustushakemuksen käsittelyä varten tulee toimittaa 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 avustuslajeittain
- Kohdeavustus: erillinen hakemusliite (webropol-lomake), joka löytyy liikunnan avustusten verkkosivuilta.
- Jos kyseessä on uusi yhdistys (ensimmäistä kertaa avustusta hakevat), toimitetaan erillisen hakemusliitteen lisäksi: yhdistyksen säännöt, pankin ilmoitus tilinomistajasta tai tiliotekopio (yhdistyksellä tulee olla oma suomalainen pankkitili, jolle avustus maksetaan) sekä ote yhdistysrekisteristä.
- Mikäli hakija ei ole toimittanut Helsingin kaupungille hakuvuonna seuraavia liitteitä muiden avustushakujen yhteydessä, niin edellä mainittujen lisäksi tulee liittää myös: hakuvuotta koskeva toimintasuunnitelma, hakuvuotta koskeva talousarvio, tilinpäätös (viimeisin vahvistettu), jäljennös tilin- tai toiminnantarkastuskertomuksesta (viimeisin vahvistettu) sekä toimintakertomus (viimeisin vahvistettu).
-
- Starttiavustus: ote yhdistysrekisteristä, yhdistyksen säännöt, talousarvio, toimintasuunnitelma sekä pankin ilmoitus tilinomistajasta tai tiliotekopio (yhdistyksellä tulee olla oma suomalainen pankkitili, jolle avustus maksetaan).
-
- Muu: mahdollisten erillishakujen pakollisista liitteistä tiedotetaan liikunnan avustusten verkkosivuilla tapauskohtaisesti.
-
- Mikäli haettavaan avustukseen ei tarvitse jotain liitettä toimittaa, valitse tässä tapauksessa kyseisen liitteen kohdalla vaihtoehto "liite toimitetaan myöhemmin".
-
- 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ä”.
-   +

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 avustuslajeittain

+

Kohdeavustus: erillinen hakemusliite (webropol-lomake), joka löytyy liikunnan avustusten verkkosivuilta. Jos kyseessä on uusi yhdistys (ensimmäistä kertaa avustusta hakevat), toimitetaan erillisen hakemusliitteen lisäksi: yhdistyksen säännöt, sekä ote yhdistysrekisteristä. Mikäli hakija ei ole toimittanut Helsingin kaupungille hakuvuonna seuraavia liitteitä muiden avustushakujen yhteydessä, niin edellä mainittujen lisäksi tulee liittää myös: hakuvuotta koskeva toimintasuunnitelma, hakuvuotta koskeva talousarvio, tilinpäätös (viimeisin vahvistettu), jäljennös tilin- tai toiminnantarkastuskertomuksesta (viimeisin vahvistettu) sekä toimintakertomus (viimeisin vahvistettu).

+

Starttiavustus: ote yhdistysrekisteristä, yhdistyksen säännöt, talousarvio ja toimintasuunnitelma.

+

Muu: mahdollisten erillishakujen pakollisista liitteistä tiedotetaan liikunnan avustusten verkkosivuilla tapauskohtaisesti.

+

Usean liitteen toimittaminen yhtenä tiedostona

+

Voit halutessasi toimittaa useampia liitteitä yhtenä tiedostona. Merkitse tällöin muiden liiteotsikoiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

notification_attachments: '#type': webform_markup '#markup': | @@ -311,51 +310,19 @@ 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.

- '#format': full_html - yhteison_saannot: - '#type': grants_attachments - '#title': 'Yhteisön säännöt' - '#multiple': false - '#filetype': '7' - '#help': 'Uusi hakija tai säännöt muuttuneet.' - '#title_display': '' - '#description__access': false - ote_yhdistysrekisterista_uudet_seurat_: - '#type': grants_attachments - '#title': 'Ote yhdistysrekisteristä (uudet seurat)' - '#multiple': false - '#filetype': '13' - '#title_display': '' - '#description__access': false - toimintasuunnitelma: - '#type': grants_attachments - '#title': 'Toimintasuunnitelma (sille vuodelle jolle haet avustusta)' - '#multiple': false - '#filetype': '1' - '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma. ' - '#title_display': before - '#description__access': false - talousarvio: - '#type': grants_attachments - '#title': 'Talousarvio (sille vuodelle jolle haet avustusta)' - '#multiple': false - '#filetype': '2' - '#help': 'Liitä tähän koko yhteisön talousarvio.' - '#title_display': before - '#description__access': false extra_info: '#type': textarea '#title': 'Lisäselvitys liitteistä' + '#maxlength': 5000 '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' '#attributes': class: - webform--large - '#maxlength': 5000 - '#counter_maximum': 5000 - '#counter_maximum_message': 'Max 5000 characters.' '#cols': 63 muu_liite: '#type': grants_attachments @@ -368,7 +335,7 @@ elements: |- '#multiple__add': false '#multiple__remove': false '#multiple__add_more_input': false - '#multiple__add_more_button_label': 'Lisää liite' + '#multiple__add_more_button_label': 'Lisää uusi liite' '#isDeliveredLater__access': false '#isIncludedInOtherFile__access': false actions: @@ -379,7 +346,7 @@ elements: |- '#wizard_prev__label': 'Edellinen' '#wizard_next__label': 'Seuraava' '#preview_prev__label': 'Edellinen' - '#preview_next__label': 'Esikatseluun >' + '#preview_next__label': 'Esikatseluun' '#delete_hide': false '#delete__label': 'Poista keskeneräinen' '#delete__attributes': @@ -464,13 +431,13 @@ settings: wizard_start_label: '' wizard_preview_link: false wizard_confirmation: true - wizard_confirmation_label: '' + wizard_confirmation_label: '5. Valmis' wizard_auto_forward: true wizard_auto_forward_hide_next_button: false wizard_keyboard: true wizard_track: '' - wizard_prev_button_label: 'Edellinen' - wizard_next_button_label: 'Seuraava' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava wizard_toggle: true wizard_toggle_show_label: '' wizard_toggle_hide_label: '' diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.nuorisopalvelut_toiminta_ja_palk.yml b/public/modules/custom/grants_handler/config/install/webform.webform.nuorisopalvelut_toiminta_ja_palk.yml index 540028b95e..13e1ebc3d2 100644 --- a/public/modules/custom/grants_handler/config/install/webform.webform.nuorisopalvelut_toiminta_ja_palk.yml +++ b/public/modules/custom/grants_handler/config/install/webform.webform.nuorisopalvelut_toiminta_ja_palk.yml @@ -13,17 +13,23 @@ third_party_settings: applicationIndustry: KUVA applicantTypes: registered_community: registered_community + unregistered_community: unregistered_community applicationTypeTerms: 45: '45' 46: '46' applicationTargetGroup: '27' - applicationOpen: '2022-10-02T11:08:26' - applicationClose: '2023-07-31T11:19:00' - applicationActingYears: { } + applicationOpen: '2024-10-16T00:00:00' + applicationClose: '2024-12-15T23:59:59' + applicationActingYears: + 2024: '2024' + 2025: '2025' + 2026: '2026' applicationContinuous: 0 disableCopying: 0 applicationActingYearsType: current_and_next_x_years applicationActingYearsNextCount: '1' + status: released + parent: '' weight: 0 open: null close: null @@ -31,9 +37,10 @@ uid: 1 template: false archive: false id: nuorisopalvelut_toiminta_ja_palk -title: 'Nuorisotoimi, toiminta- ja palkkausavustusennakkohakemus' +title: 'Nuorisotoiminta, toiminta- ja palkkausavustus ennakkohakemus' description: NUORTOIMPALKENNAKKO -category: '' +categories: + - Tuotannossa elements: |- avustukset_summa: '#type': grants_webform_summation_field @@ -137,14 +144,14 @@ elements: |- '#markup': 'Tiedot on haettu hakuprofiilistasi.' hakijan_tiedot: '#type': applicant_info - '#title': 'Hakija' + '#title': Hakija contact_person_email_section: '#type': webform_section '#title': Sähköposti '#states': visible: ':input[name="applicant_type"]': - '!value': private_person + value: registered_community contact_markup: '#type': webform_markup '#markup': 'Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.' @@ -154,10 +161,11 @@ elements: |- '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' '#size': 63 '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' '#states': required: ':input[name="applicant_type"]': - '!value': private_person + value: registered_community contact_person_section: '#type': webform_section '#title': 'Hakemuksen yhteyshenkilö' @@ -218,8 +226,11 @@ elements: |- '#title': 'Toiminnasta vastaavat henkilöt' '#states': visible: - ':input[name="applicant_type"]': - '!value': private_person + - ':input[name="applicant_type"]': + value: unregistered_community + - or + - ':input[name="applicant_type"]': + value: registered_community community_officials: '#type': community_officials_composite '#help': 'Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.' @@ -283,25 +294,53 @@ elements: |- '#type': webform_section '#title': 'Edellisen avustuksen käyttöselvitys' yhdistyksen_kuluvan_vuoden_toiminta_avustus: - '#type': number + '#type': textfield '#title': 'Yhdistyksen kuluvan vuoden toiminta-avustus' - '#help': 'Kirjoita tähän yhdistyksen kuluvalle vuodelle myönnetyn toiminta-avustuksen määrä' + '#help': '

Kirjoita tähän yhdistyksen kuluvalle vuodelle myönnetyn toiminta-avustuksen määrä

' + '#size': 15 + '#input_mask': "'alias': 'currency', 'prefix': '', 'suffix': '€','groupSeparator': ' ','radixPoint':','" + '#attributes': + class: + - webform--medium selvitys_kuluvan_vuoden_toiminta_avustuksen_kaytosta: - '#type': number + '#type': textfield '#title': 'Selvitys kuluvan vuoden toiminta-avustuksen käytöstä' - '#help': 'Ilmoita tässä euroina yhteensä, kuinka paljon yhdistys on käyttänyt ja käyttää kuluvan vuoden toiminta-avustusta. Ilmoitettu luku on aina osittain arvio, koska vuosi on vielä kesken.  ' + '#help': '

Ilmoita tässä euroina yhteensä, kuinka paljon yhdistys on käyttänyt ja käyttää kuluvan vuoden toiminta-avustusta. Ilmoitettu luku on aina osittain arvio, koska vuosi on vielä kesken.

' + '#size': 15 + '#input_mask': "'alias': 'currency', 'prefix': '', 'suffix': '€','groupSeparator': ' ','radixPoint':','" + '#attributes': + class: + - webform--medium yhdistyksen_kuluvan_vuoden_palkkausavustus_: - '#type': number + '#type': textfield '#title': 'Yhdistyksen kuluvan vuoden palkkausavustus ' - '#help': 'Kirjoita tähän yhdistyksen kuluvalle vuodelle myönnetyn palkkausavustuksen määrä' + '#help': '

Kirjoita tähän yhdistyksen kuluvalle vuodelle myönnetyn palkkausavustuksen määrä

' + '#size': 15 + '#input_mask': "'alias': 'currency', 'prefix': '', 'suffix': '€','groupSeparator': ' ','radixPoint':','" + '#attributes': + class: + - webform--medium selvitys_kuluvan_vuoden_palkkausavustuksen_kaytosta: - '#type': number + '#type': textfield '#title': 'Selvitys kuluvan vuoden palkkausavustuksen käytöstä' - '#help': 'Ilmoita tässä euroina yhteensä, kuinka paljon yhdistys on käyttänyt ja käyttää kuluvan vuoden palkkausavustusta. Ilmoitettu luku on aina osittain arvio, koska vuosi on vielä kesken.  ' + '#help': '

Ilmoita tässä euroina yhteensä, kuinka paljon yhdistys on käyttänyt ja käyttää kuluvan vuoden palkkausavustusta. Ilmoitettu luku on aina osittain arvio, koska vuosi on vielä kesken.

' + '#size': 15 + '#input_mask': "'alias': 'currency', 'prefix': '', 'suffix': '€','groupSeparator': ' ','radixPoint':','" + '#attributes': + class: + - webform--medium sanallinen_selvitys_avustuksen_kaytosta: '#type': textarea '#title': 'Kuvaus kuluvan vuoden avustuksen käytöstä' '#help': 'Kerro tässä halutessasi tarkemmin kuluvan vuoden toiminta- ja palkkausavustuksen tai starttiavustuksen käytöstä ja arvioista loppuvuoden osalta.' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#attributes': + class: + - webform--large + '#cols': 63 lisatiedot_ja_liitteet: '#type': webform_wizard_page '#title': '3. Lisätiedot ja liitteet' @@ -326,16 +365,13 @@ elements: |- attachments_info: '#type': webform_markup '#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
- Toiminta- ja palkkausavustuksen ennakkohakemuksen pakolliset liitteet ovat yhdistyksen voimassa olevat säännöt sekä yhdistyksen talousarvio ja toimintasuunnitelma sille vuodelle, jolle avustusta haetaan. Sääntöjen täytyy olla Patentti- ja rekisterihallituksen hyväksymät.
-
- Usean liitteen toimittaminen
- Voit halutessasi toimittaa useampia liitteitä yhtenä tiedostona. Kerro tästä lisäselvitys liitteistä -kohdassa.
-
- Helsingin kaupungille aiemmin toimitetut liitteet
- Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”. +

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

+

Toiminta- ja palkkausavustuksen ennakkohakemuksen pakolliset liitteet ovat yhdistyksen voimassa olevat säännöt sekä yhdistyksen talousarvio ja toimintasuunnitelma sille vuodelle, jolle avustusta haetaan. Sääntöjen täytyy olla Patentti- ja rekisterihallituksen hyväksymät.

+

Usean liitteen toimittaminen

+

Voit halutessasi toimittaa useampia liitteitä yhtenä tiedostona. Kerro tästä lisäselvitys liitteistä -kohdassa.

+

Helsingin kaupungille aiemmin toimitetut liitteet

+

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

notification_attachments: '#type': webform_markup '#markup': | @@ -344,7 +380,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.

yhteison_saannot: @@ -354,6 +390,7 @@ elements: |- '#filetype': '7' '#help': 'Uusi hakija tai säännöt muuttuneet' '#title_display': before + '#description__access': false projektisuunnitelma_liite: '#type': grants_attachments '#title': 'Toimintasuunnitelma (sille vuodelle jolle haet avustusta)' @@ -361,6 +398,7 @@ elements: |- '#filetype': '1' '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma.' '#title_display': before + '#description__access': false projektin_talousarvio: '#type': grants_attachments '#title': 'Talousarvio (sille vuodelle jolle haet avustusta) ' @@ -368,13 +406,14 @@ elements: |- '#filetype': '2' '#help': 'Talousarvio (sille vuodelle jolle haet avustusta)' '#title_display': before + '#description__access': false extra_info: '#type': textarea '#title': 'Lisäselvitys liitteistä' '#maxlength': 5000 '#counter_type': character '#counter_maximum': 5000 - '#counter_maximum_message': 'Max 5000 merkkiä.' + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' '#attributes': class: - webform--large @@ -390,7 +429,7 @@ elements: |- '#multiple__add': false '#multiple__remove': false '#multiple__add_more_input': false - '#multiple__add_more_button_label': 'Lisää liite' + '#multiple__add_more_button_label': 'Lisää uusi liite' '#isDeliveredLater__access': false '#isIncludedInOtherFile__access': false actions: @@ -401,7 +440,7 @@ elements: |- '#wizard_prev__label': 'Edellinen' '#wizard_next__label': 'Seuraava' '#preview_prev__label': 'Edellinen' - '#preview_next__label': 'Esikatseluun >' + '#preview_next__label': 'Esikatseluun' '#delete_hide': false '#delete__label': 'Poista keskeneräinen' '#delete__attributes': @@ -581,13 +620,13 @@ settings: wizard_start_label: '' wizard_preview_link: false wizard_confirmation: true - wizard_confirmation_label: '' + wizard_confirmation_label: '5. Valmis' wizard_auto_forward: true wizard_auto_forward_hide_next_button: false wizard_keyboard: true wizard_track: '' - wizard_prev_button_label: 'Edellinen' - wizard_next_button_label: 'Seuraava' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava wizard_toggle: true wizard_toggle_show_label: '' wizard_toggle_hide_label: '' diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.nuorisotoiminta_projektiavustush.yml b/public/modules/custom/grants_handler/config/install/webform.webform.nuorisotoiminta_projektiavustush.yml new file mode 100644 index 0000000000..063b7b2304 --- /dev/null +++ b/public/modules/custom/grants_handler/config/install/webform.webform.nuorisotoiminta_projektiavustush.yml @@ -0,0 +1,1030 @@ +uuid: d31bafb4-dcbd-459c-9bf1-3e0ec9d92dc0 +langcode: fi +status: open +dependencies: + module: + - grants_handler + - grants_metadata +third_party_settings: + grants_metadata: + applicationTypeSelect: '62' + applicationType: NUORPROJ + applicationTypeID: '62' + applicationIndustry: KUVA + applicantTypes: + registered_community: registered_community + unregistered_community: unregistered_community + applicationTypeTerms: + 47: '47' + applicationTargetGroup: '27' + applicationOpen: '2022-10-02T11:08:26' + applicationClose: '2023-12-22T11:19:00' + applicationActingYearsType: current_and_next_x_years + applicationActingYears: { } + applicationActingYearsNextCount: '1' + applicationContinuous: 1 + disableCopying: 0 + status: released + parent: '' +weight: 0 +open: null +close: null +uid: 1 +template: false +archive: false +id: nuorisotoiminta_projektiavustush +title: 'Nuorisotoimi, projektiavustushakemus' +description: '

NUORPROJ

' +categories: + - Tuotannossa +elements: |- + avustukset_summa: + '#type': grants_webform_summation_field + '#title': 'Avustukset summa' + '#collect_field': + subventions%%amount: subventions%%amount + applicant_type: 0 + application_number: 0 + status: 0 + hakijan_tiedot: 0 + email: 0 + contact_person: 0 + contact_person_phone_number: 0 + community_address: 0 + bank_account: 0 + community_officials: 0 + acting_year: 0 + subventions%%subventionTypeTitle: 0 + subventions%%subventionType: 0 + ensisijainen_taiteen_ala: 0 + hankkeen_nimi: 0 + kyseessa_on_festivaali_tai_tapahtuma: 0 + hankkeen_tai_toiminnan_lyhyt_esittelyteksti: 0 + olemme_saaneet_muita_avustuksia: 0 + myonnetty_avustus: 0 + members_applicant_person_global: 0 + members_applicant_person_local: 0 + members_applicant_community_global: 0 + members_applicant_community_local: 0 + kokoaikainen_henkilosto: 0 + kokoaikainen_henkilotyovuosia: 0 + osa_aikainen_henkilosto: 0 + osa_aikainen_henkilotyovuosia: 0 + vapaaehtoinen_henkilosto: 0 + tapahtuma_tai_esityspaivien_maara_helsingissa: 0 + esitykset_maara_helsingissa: 0 + nayttelyt_maara_helsingissa: 0 + tyopaja_maara_helsingissa: 0 + esitykset_maara_kaikkiaan: 0 + nayttelyt_maara_kaikkiaan: 0 + tyopaja_maara_kaikkiaan: 0 + esitykset_kavijamaara_helsingissa: 0 + nayttelyt_kavijamaara_helsingissa: 0 + tyopaja_kavijamaara_helsingissa: 0 + esitykset_kavijamaara_kaikkiaan: 0 + nayttelyt_kavijamaara_kaikkiaan: 0 + tyopaja_kavijamaara_kaikkiaan: 0 + kantaesitysten_maara: 0 + ensi_iltojen_maara_helsingissa: 0 + ensimmainen_yleisolle_avoimen_tilaisuuden_paikka_helsingissa: 0 + postinumero: 0 + kyseessa_on_kaupungin_omistama_tila: 0 + tila: 0 + ensimmaisen_yleisolle_avoimen_tilaisuuden_paivamaara: 0 + festivaalin_tai_tapahtuman_kohdalla_tapahtuman_paivamaarat: 0 + hanke_alkaa: 0 + hanke_loppuu: 0 + laajempi_hankekuvaus: 0 + toiminta_taiteelliset_lahtokohdat: 0 + toiminta_tasa_arvo: 0 + toiminta_saavutettavuus: 0 + toiminta_yhteisollisyys: 0 + toiminta_kohderyhmat: 0 + toiminta_ammattimaisuus: 0 + toiminta_ekologisuus: 0 + toiminta_yhteistyokumppanit: 0 + organisaatio_kuuluu_valtionosuusjarjestelmaan_vos_: 0 + budget_static_income: 0 + budget_static_cost: 0 + budget_other_cost: 0 + muu_huomioitava_panostus: 0 + additional_information: 0 + extra_info: 0 + muu_liite: 0 + '#data_type': euro + '#form_item': hidden + applicant_type: + '#type': hidden + '#title': 'Hakijan tyyppi' + 1_hakijan_tiedot: + '#type': webform_wizard_page + '#title': '1. Hakijan tiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + application_number: + '#type': hidden + '#title': Hakemusnumero + '#disabled': true + status: + '#type': hidden + '#title': 'Hakemuksen tila' + '#readonly': true + hakemusprofiili: + '#type': webform_section + '#title': 'Haetut tiedot' + '#attributes': + class: + - grants-profile--imported-section + prh_markup: + '#type': webform_markup + '#markup': 'Tiedot on haettu hakuprofiilistasi.' + hakijan_tiedot: + '#type': applicant_info + '#title': Hakija + contact_person_email_section: + '#type': webform_section + '#title': Sähköposti + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + contact_markup: + '#type': webform_markup + '#markup': 'Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.' + email: + '#type': email + '#title': Sähköpostiosoite + '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' + '#size': 63 + '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' + '#states': + required: + ':input[name="applicant_type"]': + value: registered_community + contact_person_section: + '#type': webform_section + '#title': 'Hakemuksen yhteyshenkilö' + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + contact_person: + '#type': textfield + '#title': Yhteyshenkilö + '#autocomplete': 'off' + '#required': true + '#attributes': + class: + - webform--large + '#size': 63 + contact_person_phone_number: + '#type': textfield + '#title': Puhelinnumero + '#required': true + '#autocomplete': 'off' + '#attributes': + class: + - webform--medium + '#size': 32 + osoite: + '#type': webform_section + '#title': Osoite + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + community_address: + '#type': community_address_composite + '#title': 'Yhteisön osoite' + '#help': 'Jos haluat lisätä, poistaa tai muuttaa osoitetietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään osoitetietoa omiin tietoihin.' + '#attributes': + class: + - webform--large + '#required': true + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + tilinumero: + '#type': webform_section + '#title': Tilinumero + bank_account: + '#type': bank_account_composite + '#title': Tilinumero + '#help': 'Jos haluat lisätä, poistaa tai muuttaa tilinumerotietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään tilinumerotietoa omiin tietoihin.' + '#attributes': + class: + - webform--medium + '#required': true + toiminnasta_vastaavat_henkilot: + '#type': webform_section + '#title': 'Toiminnasta vastaavat henkilöt' + '#states': + visible: + - ':input[name="applicant_type"]': + value: unregistered_community + - or + - ':input[name="applicant_type"]': + value: registered_community + community_officials: + '#type': community_officials_composite + '#help': 'Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.' + '#title': 'Valitse toiminnasta vastaavat henkilöt' + '#multiple': true + '#multiple__item_label': henkilö + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää henkilö' + '#wrapper_attributes': + class: + - community_officials_wrapper + '#attributes': + class: + - webform--large + 2_avustustiedot: + '#type': webform_wizard_page + '#title': '2. Avustustiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + avustuksen_kohde: + '#type': webform_section + '#title': 'Avustuksen kohde' + kenelle_haen_avustusta: + '#type': select + '#title': 'Kenelle haen avustusta' + '#help': 'Valitse tässä se yhteisö, jolle haette avustusta' + '#required': true + '#options': + Nuorisoyhdistys: Nuorisoyhdistys + 'Nuorten toimintaryhmä': 'Nuorten toimintaryhmä' + Talokerho: Talokerho + avustuksen_tiedot: + '#type': webform_section + '#title': 'Avustuksen tiedot' + acting_year: + '#type': select + '#title': 'Vuosi, jolle haen avustusta' + '#options': + 2023: '2023' + 2024: '2024' + '#required': true + subventions: + '#type': grants_compensations + '#title': Avustukset + '#multiple': true + '#help': 'Kerro tässä, kuinka paljon haette avustusta. Ilmoita hakusumma kokonaisulukuna ja euroissa.' + '#subventionType': + 4: '4' + '#required': true + '#multiple__header': true + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more': false + '#attributes': + class: + - subventions + '#subvention_type': + 1: '1' + 6: '6' + '#subvention_type_id__access': false + '#subvention_type__title': Avustuslaji + '#subvention_amount__title': 'Avustuksen summa' + muut_samaan_tarkoitukseen_myonnetyt_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen myönnetyt avustukset' + olemme_saaneet_muita_avustuksia: + '#type': radios + '#title': 'Olemme saaneet muita avustuksia' + '#description': |- +

Jos olette saaneet muita avustuksia samaan projektiin, ilmoittakaa niiden tiedot tässä.

+ +
+
+
Myöntävä vastaus avaa lisäkysymyksen
+
+
+ '#description_display': before + '#options': + 1: Kyllä + 0: Ei + '#options_display': side_by_side + myonnetty_avustus: + '#type': webform_custom_composite + '#title': 'Myönnetty avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + required: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'myönnetty avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi myönnetty avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi myönnetty avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#attributes': + class: + - webform--large + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + year: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': Vuosi + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#attributes': + class: + - webform--small + '#required': true + '#title': 'Myönnetyn avustuksen summa' + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + muut_samaan_tarkoitukseen_haetut_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen haetut avustukset' + olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: + '#type': radios + '#title': 'Olemme hakeneet avustuksia muualta kuin Helsingin kaupungilta' + '#description': |- +

Jos olette hakeneet muita avustuksia samaan projektiin, ilmoittakaa niiden tiedot tässä.

+ +
+
+
Myöntävä vastaus avaa lisäkysymyksen
+
+
+ '#description_display': before + '#options': + 1: Kyllä + 0: Ei + '#options_display': side_by_side + haettu_avustus_tieto: + '#type': webform_custom_composite + '#title': 'Haettu avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta"]': + value: '1' + required: + ':input[name="olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'myönnetty avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi myönnetty avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi haettu avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + '#attributes': + class: + - webform--large + year: + '#type': textfield + '#required': true + '#title': Vuosi + '#attributes': + class: + - webform--small + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#required': true + '#title': 'Haetun avustuksen summa' + '#attributes': + class: + - webform--small + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#counter_maximum': 1000 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + 3_jasenet_tai_aktiiviset_osallistujat: + '#type': webform_wizard_page + '#title': '3. Jäsenet tai aktiiviset osallistujat' + jasenet_tai_aktiiviset_osallistujat: + '#type': webform_section + '#title': 'Jäsenet tai aktiiviset osallistujat' + jasenet_7_28: + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': 'Kuinka monta 7-28 -vuotiasta helsinkiläistä jäsentä tai aktiivista osallistujaa nuorten toimintaryhmässä / yhdistyksessä / talokerhossa on?' + '#required': true + '#attributes': + class: + - webform--small + jasenet_kaikki: + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': 'Kuinka monta jäsentä tai aktiivista osallistujaa nuorten toimintaryhmässä / yhdistyksessä / talokerhossa on yhteensä?' + '#required': true + '#attributes': + class: + - webform--small + projektisuunnitelma: + '#type': webform_wizard_page + '#title': '4. Projektisuunnitelma' + projektisuunnitelma_osio: + '#type': webform_section + '#title': Projektisuunnitelma + markup_01: + '#type': webform_markup + '#markup': 'Voit joko kertoa projektisuunnitelman tällä lomakkeella alla oleviin kohtiin tai voit liittää projektisuunnitelman hakemuksen liitteeksi. Jos toimitat suunnitelman liitteenä, kerro siinä ainakin projektin nimi, tavoitteet ja sisältö.' + projektin_nimi: + '#type': textarea + '#title': 'Projektin nimi' + '#size': 32 + '#autocomplete': 'off' + '#counter_type': character + '#counter_maximum': 100 + '#counter_maximum_message': '%d/100 merkkiä jäljellä' + '#required': true + projektin_tavoitteet: + '#type': textarea + '#title': 'Projektin tavoitteet' + '#size': 32 + '#autocomplete': 'off' + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + projektin_sisalto: + '#type': textarea + '#title': 'Projektin sisältö' + '#size': 32 + '#autocomplete': 'off' + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + projektin_aikataulu: + '#type': webform_section + '#title': 'Projektin aikataulu' + projekti_alkaa: + '#type': date + '#title': 'Projekti alkaa' + '#required': true + projekti_loppuu: + '#type': date + '#title': 'Projekti loppuu' + '#required': true + projektin_kaikki_osallistujat: + '#type': webform_section + '#title': 'Projektin kaikki osallistujat' + osallistujat_7_28: + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': 'Kuinka monta 7-28 -vuotiasta helsinkiläistä projektiin osallistuu?' + '#help': 'Arvio nuorten osallistujamäärästä' + '#required': true + '#attributes': + class: + - webform--small + osallistujat_kaikki: + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': 'Kuinka paljon projektin osallistujia on yhteensä?' + '#help': 'Arvio koko osallistujamäärästä' + '#required': true + '#attributes': + class: + - webform--small + projektin_paikka: + '#type': webform_section + '#title': 'Projektin paikka' + projektin_paikka_2: + '#type': textarea + '#title': 'Projektin paikka' + '#description_display': before + '#description': 'Paikka tai paikat, joissa suunnittelette toteuttavanne projektin toiminnan.' + '#help': 'Laita tähän paikan mahdollinen nimi tai muu kuvaus paikasta. Esimerkiksi jos paikka on joku Helsingin kaupungin nuorisotiloista, voitte kirjoittaa sen nuorisotilan nimen. Jos projekti tapahtuu digitaalisessa ympäristössä, kertokaa, missä digitaalisessa ympäristössä toiminta tapahtuu. Jos kyseessä olisi esimerkiksi podcast-projekti, joka äänitetään tietyssä fyysiessä paikassa ja podcast julkaistaan digitaalisen alusta kautta internetissä, voit kertoa nämä molemmat paikat.' + '#size': 32 + '#autocomplete': 'off' + '#counter_type': character + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + 6_talous: + '#type': webform_wizard_page + '#title': '5. Talousarvio' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + tulot: + '#type': webform_section + '#title': 'Talousarvion tulot' + markup_02: + '#type': webform_markup + '#markup': 'Talousarvion voi joko täyttää alla oleviin kohtiin tai talousarvion voi toimittaa erillisellä liitteellä. Jos toimitat talousarvion liitteellä, laita omarahoitusosuus siihen mukaan.' + omarahoitusosuuden_kuvaus: + '#type': textarea + '#title': 'Omarahoitusosuuden kuvaus' + '#help': 'Kaikilla projekteilla on oltava omarahoitusosuus, jotta projektia on mahdollista avustaa. Kerro tässä, mistä omarahoitusosuuteenne koostuu ja mikä on omarahoitusosuuden määrä.' + '#description_display': before + '#autocomplete': 'off' + '#counter_type': character + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + omarahoitusosuus: + '#type': textfield + '#title': 'Omarahoitusosuus (€)' + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''2'', ''radixPoint'': '','', ''substituteRadixPoint'': ''true''' + '#attributes': + class: + - webform--small + budget_other_income: + '#type': grants_budget_other_income + '#title': 'Muut tulot' + '#multiple': true + '#incomeGroup': general + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi tulo' + '#multiple__item_label': 'tulo' + menot: + '#type': webform_section + '#title': 'Talousarvion menot' + budget_other_cost: + '#type': grants_budget_other_cost + '#title': Menot + '#multiple': true + '#incomeGroup': general + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi meno' + '#multiple__item_label': 'meno' + lisatiedot_ja_liitteet: + '#type': webform_wizard_page + '#title': '6. Lisätiedot ja liitteet' + lisatietoja_hakemukseen_liittyen: + '#type': webform_section + '#title': 'Lisätietoja hakemukseen liittyen' + additional_information: + '#type': textarea + '#title': Lisätiedot + '#attributes': + class: + - webform--large + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + liitteet: + '#type': webform_section + '#title': Liitteet + attachments_info: + '#type': webform_markup + '#markup': |- +

Avustushakemuksen käsittelyä varten tulee toimittaa kaikki vaaditut liitteet. Avustushakemus voidaan hylätä, jos liitteitä ei ole toimitettu. Mikäli joku liitteistä puuttuu kerro siitä hakemuksen Lisäselvitys liitteistä -kohdassa.

+

Vaaditut liitteet

+

Projektiavustushakemukseen voi halutessaan liittää projektin tarkemman suunnitelman sekä sen talousarvion. Yhdistysten hakiessa projektiavustusta pakollisena liitteenä on toimitettava yhdistyksen voimassa olevat säännöt. Sääntöjen tulee olla patentti- ja rekisterihallituksen hyväksymiä.

+

Usean liitteen toimittaminen yhtenä tiedostona

+

Voit halutessasi toimittaa useampia liitteitä yhtenä tiedostona. Kerro tästä lisäselvitys liitteistä-kohdassa.

+

Helsingin kaupungille aiemmin toimitetut liitteet

+

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ notification_attachments: + '#type': webform_markup + '#markup': | +
+
+
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.

+
+
+ yhteison_saannot: + '#type': grants_attachments + '#title': 'Yhteisön säännöt' + '#multiple': false + '#filetype': '7' + '#help': 'Uusi hakija tai säännöt muuttuneet.' + '#title_display': '' + '#description__access': false + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + projektisuunnitelma_liite: + '#type': grants_attachments + '#title': Projektisuunnitelma + '#multiple': false + '#filetype': '19' + '#title_display': '' + '#description__access': false + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + projektin_talousarvio: + '#type': grants_attachments + '#title': 'Projektin talousarvio' + '#multiple': false + '#filetype': '2' + '#title_display': '' + '#description__access': false + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + extra_info: + '#type': textarea + '#title': 'Lisäselvitys liitteistä' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#attributes': + class: + - webform--large + '#cols': 63 + muu_liite: + '#type': grants_attachments + '#title': 'Muu liite' + '#multiple': 10 + '#filetype': '0' + '#title_display': before + '#multiple__item_label': liite + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää liite' + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + actions: + '#type': webform_actions + '#title': 'Submit button(s)' + '#submit__label': Lähetä + '#draft__label': 'Tallenna keskeneräisenä' + '#wizard_prev__label': 'Edellinen' + '#wizard_next__label': 'Seuraava' + '#preview_prev__label': 'Edellinen' + '#preview_next__label': 'Esikatseluun' + '#delete_hide': false + '#delete__label': 'Poista keskeneräinen' + '#delete__attributes': + class: + - hds-button + - hds-button--primary + '#delete__dialog': true +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: source_entity_webform + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: false + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: false + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: true + form_disable_back: false + form_submit_back: true + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: { } + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: false + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: + application_number: application_number + status: status + applicant_type: applicant_type + hakijan_tiedot: hakijan_tiedot + email: email + contact_person: contact_person + contact_person_phone_number: contact_person_phone_number + community_address: community_address + community_address__community_address_select: community_address__community_address_select + community_address__community_street: community_address__community_street + community_address__community_post_code: community_address__community_post_code + community_address__community_city: community_address__community_city + community_address__community_country: community_address__community_country + bank_account: bank_account + bank_account__account_number_select: bank_account__account_number_select + bank_account__account_number: bank_account__account_number + community_officials: community_officials + community_officials__community_officials_select: community_officials__community_officials_select + community_officials__name: community_officials__name + community_officials__role: community_officials__role + community_officials__email: community_officials__email + community_officials__phone: community_officials__phone + acting_year: acting_year + subventions: subventions + subventions__subventionTypeTitle: subventions__subventionTypeTitle + subventions__subventionType: subventions__subventionType + subventions__amount: subventions__amount + avustukset_summa: avustukset_summa + ensisijainen_taiteen_ala: ensisijainen_taiteen_ala + hankkeen_nimi: hankkeen_nimi + kyseessa_on_festivaali_tai_tapahtuma: kyseessa_on_festivaali_tai_tapahtuma + hankkeen_tai_toiminnan_lyhyt_esittelyteksti: hankkeen_tai_toiminnan_lyhyt_esittelyteksti + olemme_saaneet_muita_avustuksia: olemme_saaneet_muita_avustuksia + myonnetty_avustus: myonnetty_avustus + myonnetty_avustus__issuer: myonnetty_avustus__issuer + myonnetty_avustus__issuer_name: myonnetty_avustus__issuer_name + myonnetty_avustus__year: myonnetty_avustus__year + myonnetty_avustus__amount: myonnetty_avustus__amount + myonnetty_avustus__purpose: myonnetty_avustus__purpose + members_applicant_person_global: members_applicant_person_global + members_applicant_person_local: members_applicant_person_local + members_applicant_community_global: members_applicant_community_global + members_applicant_community_local: members_applicant_community_local + kokoaikainen_henkilosto: kokoaikainen_henkilosto + osa_aikainen_henkilosto: osa_aikainen_henkilosto + vapaaehtoinen_henkilosto: vapaaehtoinen_henkilosto + tapahtuma_tai_esityspaivien_maara_helsingissa: tapahtuma_tai_esityspaivien_maara_helsingissa + kantaesitysten_maara: kantaesitysten_maara + ensi_iltojen_maara_helsingissa: ensi_iltojen_maara_helsingissa + postinumero: postinumero + kyseessa_on_kaupungin_omistama_tila: kyseessa_on_kaupungin_omistama_tila + tila: tila + tila__premiseName: tila__premiseName + tila__premiseAddress: tila__premiseAddress + tila__location: tila__location + tila__streetAddress: tila__streetAddress + tila__address: tila__address + tila__postCode: tila__postCode + tila__studentCount: tila__studentCount + tila__specialStudents: tila__specialStudents + tila__groupCount: tila__groupCount + tila__specialGroups: tila__specialGroups + tila__personnelCount: tila__personnelCount + tila__totalRent: tila__totalRent + tila__rentTimeBegin: tila__rentTimeBegin + tila__rentTimeEnd: tila__rentTimeEnd + tila__free: tila__free + tila__isOthersUse: tila__isOthersUse + tila__isOwnedByApplicant: tila__isOwnedByApplicant + tila__isOwnedByCity: tila__isOwnedByCity + ensimmaisen_yleisolle_avoimen_tilaisuuden_paivamaara: ensimmaisen_yleisolle_avoimen_tilaisuuden_paivamaara + festivaalin_tai_tapahtuman_kohdalla_tapahtuman_paivamaarat: festivaalin_tai_tapahtuman_kohdalla_tapahtuman_paivamaarat + hanke_alkaa: hanke_alkaa + hanke_loppuu: hanke_loppuu + laajempi_hankekuvaus: laajempi_hankekuvaus + toiminta_taiteelliset_lahtokohdat: toiminta_taiteelliset_lahtokohdat + toiminta_tasa_arvo: toiminta_tasa_arvo + toiminta_saavutettavuus: toiminta_saavutettavuus + toiminta_yhteisollisyys: toiminta_yhteisollisyys + toiminta_kohderyhmat: toiminta_kohderyhmat + toiminta_ammattimaisuus: toiminta_ammattimaisuus + toiminta_ekologisuus: toiminta_ekologisuus + toiminta_yhteistyokumppanit: toiminta_yhteistyokumppanit + organisaatio_kuuluu_valtionosuusjarjestelmaan: organisaatio_kuuluu_valtionosuusjarjestelmaan + additional_information: additional_information + extra_info: extra_info + muu_liite: muu_liite + muu_liite__attachment: muu_liite__attachment + muu_liite__attachmentName: muu_liite__attachmentName + muu_liite__description: muu_liite__description + muu_liite__isDeliveredLater: muu_liite__isDeliveredLater + muu_liite__isIncludedInOtherFile: muu_liite__isIncludedInOtherFile + muu_liite__fileStatus: muu_liite__fileStatus + muu_liite__fileType: muu_liite__fileType + muu_liite__integrationID: muu_liite__integrationID + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: true + wizard_progress_states: false + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '8. Valmis' + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: '' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava + wizard_toggle: true + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 2 + preview_label: '7. Vahvista, esikatsele ja lähetä' + preview_title: 'Vahvista, esikatsele ja lähetä' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: false + preview_exclude_empty_checkbox: false + draft: all + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: none + confirmation_url: '' + confirmation_title: '' + confirmation_message: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: true + confirmation_exclude_token: true + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: draft + purge_days: 365 + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - authenticated + users: { } + permissions: { } + view_any: + roles: + - admin + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: + grants_handler: + id: grants_handler + handler_id: grants_handler + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: 0 + settings: + debug: true +variants: { } diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.nuorlomaleir.yml b/public/modules/custom/grants_handler/config/install/webform.webform.nuorlomaleir.yml index e0f74423aa..87ccb7800d 100644 --- a/public/modules/custom/grants_handler/config/install/webform.webform.nuorlomaleir.yml +++ b/public/modules/custom/grants_handler/config/install/webform.webform.nuorlomaleir.yml @@ -10,19 +10,25 @@ third_party_settings: applicationTypeSelect: '65' applicationType: NUORLOMALEIR applicationTypeID: '65' - applicationIndustry: KASKO + applicationIndustry: KUVA applicantTypes: registered_community: registered_community + unregistered_community: unregistered_community applicationTypeTerms: 54: '54' applicationTargetGroup: '27' - applicationOpen: '2022-10-03T11:08:26' - applicationClose: '2023-07-30T11:19:00' + applicationOpen: '2024-09-01T00:00:00' + applicationClose: '2024-10-31T23:59:59' applicationActingYearsType: next_x_years - applicationActingYears: { } + applicationActingYears: + 2024: '2024' + 2025: '2025' + 2026: '2026' applicationActingYearsNextCount: '1' applicationContinuous: 0 disableCopying: 0 + status: released + parent: '' weight: 0 open: null close: null @@ -31,8 +37,9 @@ template: false archive: false id: nuorlomaleir title: 'Nuorisotoimi, loma-aikojen leiriavustushakemus' -description: NUORLOMALEIR -category: '' +description: '

NUORLOMALEIR

' +categories: + - Tuotannossa elements: |- applicant_type: '#type': hidden @@ -109,10 +116,14 @@ elements: |- '#markup': '
Tiedot on haettu Patentti- ja rekisterihallinnon rekisteristä (PRH), eikä niitä voi tämän takia muokata.
' hakijan_tiedot: '#type': applicant_info - '#title': 'Hakija' + '#title': Hakija contact_person_email_section: '#type': webform_section '#title': Sähköposti + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community contact_markup: '#type': webform_markup '#markup': 'Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.' @@ -122,10 +133,18 @@ elements: |- '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' '#size': 63 '#autocomplete': 'off' - '#required': true + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' + '#states': + required: + ':input[name="applicant_type"]': + value: registered_community contact_person_section: '#type': webform_section '#title': 'Hakemuksen yhteyshenkilö' + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community contact_person: '#type': textfield '#title': Yhteyshenkilö @@ -179,8 +198,11 @@ elements: |- '#title': 'Toiminnasta vastaavat henkilöt' '#states': visible: - ':input[name="applicant_type"]': - '!value': private_person + - ':input[name="applicant_type"]': + value: unregistered_community + - or + - ':input[name="applicant_type"]': + value: registered_community community_officials: '#type': community_officials_composite '#help': 'Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.' @@ -245,7 +267,7 @@ elements: |- '#title': 'Leirien tiedot' markup_02: '#type': webform_markup - '#markup': 'Leirien arvioidut tiedot ilmoitetaan erillisellä Ennakkotiedot leireistä excel-liitteellä. Täytä liite huolellisesti jokaisen leirin kohdalta. Liite on ladattavissa tästä tai leiriavustuksen palvelukuvaussivulta. Liite on pakollinen ja se on toimitettava hakemuksen lähettämisen yhteydessä.' + '#markup': 'Leirien arvioidut tiedot ilmoitetaan erillisellä Ennakkotiedot leireistä excel-liitteellä. Täytä liite huolellisesti jokaisen leirin kohdalta. Liite on ladattavissa tästä tai leiriavustuksen palvelukuvaussivulta. Liite on pakollinen ja se on toimitettava hakemuksen lähettämisen yhteydessä.' 3_talousarvio: '#type': webform_wizard_page '#title': '3. Talousarvio' @@ -265,6 +287,8 @@ elements: |- '#multiple__min_items': 1 '#multiple__empty_items': 0 '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi tulo' + '#multiple__item_label': 'tulo' menot: '#type': webform_section '#title': Menot @@ -281,6 +305,8 @@ elements: |- '#multiple__min_items': 1 '#multiple__empty_items': 0 '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi meno' + '#multiple__item_label': 'meno' lisatiedot_ja_liitteet: '#type': webform_wizard_page '#title': '4. Lisätiedot ja liitteet' @@ -290,7 +316,7 @@ elements: |- additional_information: '#type': textarea '#title': Lisätiedot - '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen ' + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen' '#counter_type': character '#attributes': class: @@ -305,17 +331,13 @@ elements: |- attachments_info: '#type': webform_markup '#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
- Loma-aikojen leiriavustushakemuksen pakolliset liitteet ovat ennakkotiedot leireistä excel-liite, yhdistyksen voimassa olevat säännöt sekä yhdistyksen talousarvio ja toimintasuunnitelma sille vuodelle, jolle avustusta haetaan. Sääntöjen täytyy olla Patentti- ja rekisterihallituksen hyväksymät.
-
- Usean liitteen toimittaminen yhtenä tiedostona
- Voit halutessasi toimittaa useampia liitteitä yhtenä tiedostona. Kerro tästä lisäselvitys liitteistä-kohdassa. ​​​​​​​
-
- Helsingin kaupungille aiemmin toimitetut liitteet
- Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.
-   +

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

+

Loma-aikojen leiriavustushakemuksen pakolliset liitteet ovat ennakkotiedot leireistä excel-liite, yhdistyksen voimassa olevat säännöt sekä yhdistyksen talousarvio ja toimintasuunnitelma sille vuodelle, jolle avustusta haetaan. Sääntöjen täytyy olla Patentti- ja rekisterihallituksen hyväksymät.

+

Usean liitteen toimittaminen yhtenä tiedostona

+

Voit halutessasi toimittaa useampia liitteitä yhtenä tiedostona. Kerro tästä lisäselvitys liitteistä-kohdassa.

+

Helsingin kaupungille aiemmin toimitetut liitteet

+

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

notification_attachments: '#type': webform_markup '#markup': | @@ -324,10 +346,9 @@ 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.

- '#format': full_html yhteison_saannot: '#type': grants_attachments '#title': 'Yhteisön säännöt' @@ -340,16 +361,20 @@ elements: |- '#type': grants_attachments '#title': Leiri-excel '#multiple': false - '#filetype': '0' + '#filetype': '36' + '#allowed_filetypes': 'xls,xlsx' '#help': 'Täytä tämä pakollinen liite huolellisesti.' '#title_display': '' + '#attachment__required': true '#description__access': false + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false toimintasuunnitelma: '#type': grants_attachments '#title': 'Toimintasuunnitelma (sille vuodelle jolle haet avustusta)' '#multiple': false '#filetype': '1' - '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma. ' + '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma. ' '#title_display': before '#description__access': false talousarvio: @@ -357,19 +382,19 @@ elements: |- '#title': 'Talousarvio (sille vuodelle jolle haet avustusta)' '#multiple': false '#filetype': '2' - '#help': 'Liitä tähän koko yhteisön talousarvio.' + '#help': 'Liitä tähän koko yhteisön talousarvio.' '#title_display': before '#description__access': false extra_info: '#type': textarea '#title': 'Lisäselvitys liitteistä' + '#maxlength': 5000 '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' '#attributes': class: - webform--large - '#maxlength': 5000 - '#counter_maximum': 5000 - '#counter_maximum_message': 'Max 5000 characters.' '#cols': 63 muu_liite: '#type': grants_attachments @@ -382,7 +407,7 @@ elements: |- '#multiple__add': false '#multiple__remove': false '#multiple__add_more_input': false - '#multiple__add_more_button_label': 'Lisää liite' + '#multiple__add_more_button_label': 'Lisää uusi liite' '#isDeliveredLater__access': false '#isIncludedInOtherFile__access': false actions: @@ -393,7 +418,7 @@ elements: |- '#wizard_prev__label': 'Edellinen' '#wizard_next__label': 'Seuraava' '#preview_prev__label': 'Edellinen' - '#preview_next__label': 'Esikatseluun >' + '#preview_next__label': 'Esikatseluun' '#delete_hide': false '#delete__label': 'Poista keskeneräinen' '#delete__attributes': @@ -478,13 +503,13 @@ settings: wizard_start_label: '' wizard_preview_link: false wizard_confirmation: true - wizard_confirmation_label: '' + wizard_confirmation_label: '6. Valmis' wizard_auto_forward: true wizard_auto_forward_hide_next_button: false wizard_keyboard: true wizard_track: '' - wizard_prev_button_label: 'Edellinen' - wizard_next_button_label: 'Seuraava' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava wizard_toggle: true wizard_toggle_show_label: '' wizard_toggle_hide_label: '' diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.nuortoimpalkka.yml b/public/modules/custom/grants_handler/config/install/webform.webform.nuortoimpalkka.yml new file mode 100644 index 0000000000..345e7e1638 --- /dev/null +++ b/public/modules/custom/grants_handler/config/install/webform.webform.nuortoimpalkka.yml @@ -0,0 +1,1205 @@ +uuid: f5ce73c5-6e6c-4acb-bd52-650d09db29c0 +langcode: fi +status: open +dependencies: + module: + - grants_handler + - grants_metadata +third_party_settings: + grants_metadata: + applicationTypeSelect: '63' + applicationType: NUORTOIMPALKKA + applicationTypeID: '63' + applicationIndustry: KUVA + applicantTypes: + registered_community: registered_community + unregistered_community: unregistered_community + applicationTypeTerms: + 45: '45' + 46: '46' + applicationTargetGroup: '27' + applicationOpen: '2024-01-01T00:00:00' + applicationClose: '2024-02-29T23:59:59' + applicationActingYearsType: current_and_next_x_years + applicationActingYears: { } + applicationActingYearsNextCount: '1' + applicationContinuous: 0 + disableCopying: 0 + status: released +weight: 0 +open: null +close: null +uid: 1 +template: false +archive: false +id: nuortoimpalkka +title: 'Nuorisopalvelu, toiminta- ja palkkausavustushakemus' +description: NUORTOIMPALKKA +categories: + - Tuotannossa +elements: |- + applicant_type: + '#type': hidden + '#title': 'Applicant type' + palkkaussumma: + '#type': grants_webform_summation_field + '#title': Palkkaussumma + '#collect_field': + subventions%%amount: subventions%%amount + applicant_type: 0 + application_number: 0 + status: 0 + hakijan_tiedot: 0 + email: 0 + contact_person: 0 + contact_person_phone_number: 0 + community_address: 0 + bank_account: 0 + community_officials: 0 + acting_year: 0 + haen_vuokra_avustusta: 0 + olemme_saaneet_muita_avustuksia: 0 + myonnetty_avustus: 0 + olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: 0 + haettu_avustus_tieto: 0 + jasenet_0_6_vuotiaat: 0 + 0_6_joista_helsinkilaisia: 0 + jasenet_7_28_vuotiaat: 0 + 7_28_joista_helsinkilaisia: 0 + muut_jasenet_tai_aktiiviset_osallistujat: 0 + muut_joista_helsinkilaisia: 0 + alle_29_vuotiaiden_kaikki_osallistumiskerrat_edellisena_kalenter: 0 + joista_alle_29_vuotiaiden_digitaalisia_osallistumiskertoja_oli: 0 + jarjestimme_toimintaa_vain_digitaalisessa_ymparistossa: 0 + jarjestimme_toimintaa_nuorille_seuraavissa_paikoissa: 0 + jasenyydet_jarjestoissa_ja_muissa_yhteisoissa: 0 + miten_nuoret_osallistuvat_yhdistyksen_toiminnan_suunnitteluun_ja: 0 + kuinka_monta_paatoimista_palkattua_tyontekijaa_yhdistyksessa_tyo: 0 + palkkauskulut: 0 + lakisaateiset_ja_vapaaehtoiset_henkilosivukulut: 0 + matka_ja_koulutuskulut: 0 + vuokratun_tilan_tiedot: 0 + lisatiedot: 0 + additional_information: 0 + yhteison_saannot: 0 + vahvistettu_tilinpaatos: 0 + vahvistettu_toimintakertomus: 0 + vahvistettu_tilin_tai_toiminnantarkastuskertomus: 0 + vuosikokouksen_poytakirja: 0 + toimintasuunnitelma: 0 + talousarvio: 0 + extra_info: 0 + muu_liite: 0 + '#subvention_type': '2' + '#data_type': euro + '#form_item': hidden + avustukset_summa: + '#type': grants_webform_summation_field + '#title': 'Avustukset summa' + '#title_display': none + '#description_display': invisible + '#collect_field': + subventions%%amount: subventions%%amount + application_number: 0 + applicant_type: 0 + status: 0 + hakijan_tiedot: 0 + email: 0 + contact_person: 0 + contact_person_phone_number: 0 + community_address: 0 + bank_account: 0 + community_officials: 0 + acting_year: 0 + subventions%%subventionTypeTitle: 0 + subventions%%subventionType: 0 + compensation_purpose: 0 + olemme_saaneet_muita_avustuksia: 0 + myonnetty_avustus: 0 + olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: 0 + haettu_avustus_tieto: 0 + benefits_loans: 0 + benefits_premises: 0 + compensation_boolean: 0 + compensation_explanation: 0 + business_purpose: 0 + community_practices_business: 0 + fee_person: 0 + fee_community: 0 + members_applicant_person_local: 0 + members_applicant_person_global: 0 + members_applicant_community_local: 0 + members_applicant_community_global: 0 + additional_information: 0 + vahvistettu_tilinpaatos: 0 + vahvistettu_toimintakertomus: 0 + vahvistettu_tilin_tai_toiminnantarkastuskertomus: 0 + vuosikokouksen_poytakirja: 0 + toimintasuunnitelma: 0 + talousarvio: 0 + extra_info: 0 + muu_liite: 0 + '#data_type': euro + '#form_item': hidden + 1_hakijan_tiedot: + '#type': webform_wizard_page + '#title': '1. Hakijan tiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + application_number: + '#type': hidden + '#title': Hakemusnumero + '#disabled': true + status: + '#type': hidden + '#title': 'Hakemuksen tila' + '#readonly': true + hakemusprofiili: + '#type': webform_section + '#title': 'Haetut tiedot' + '#attributes': + class: + - grants-profile--imported-section + prh_markup: + '#type': webform_markup + '#markup': 'Tiedot on haettu hakuprofiilistasi.' + hakijan_tiedot: + '#type': applicant_info + '#title': Hakija + contact_person_email_section: + '#type': webform_section + '#title': Sähköposti + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + contact_markup: + '#type': webform_markup + '#markup': 'Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.' + email: + '#type': email + '#title': Sähköpostiosoite + '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' + '#size': 63 + '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' + '#states': + required: + ':input[name="applicant_type"]': + value: registered_community + contact_person_section: + '#type': webform_section + '#title': 'Hakemuksen yhteyshenkilö' + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + contact_person: + '#type': textfield + '#title': Yhteyshenkilö + '#autocomplete': 'off' + '#required': true + '#attributes': + class: + - webform--large + '#size': 63 + contact_person_phone_number: + '#type': textfield + '#title': Puhelinnumero + '#required': true + '#autocomplete': 'off' + '#attributes': + class: + - webform--medium + '#size': 32 + osoite: + '#type': webform_section + '#title': Osoite + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + community_address: + '#type': community_address_composite + '#title': 'Yhteisön osoite' + '#help': 'Jos haluat lisätä, poistaa tai muuttaa osoitetietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään osoitetietoa omiin tietoihin.' + '#attributes': + class: + - webform--large + '#required': true + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + tilinumero: + '#type': webform_section + '#title': Tilinumero + bank_account: + '#type': bank_account_composite + '#title': Tilinumero + '#help': 'Jos haluat lisätä, poistaa tai muuttaa tilinumerotietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään tilinumerotietoa omiin tietoihin.' + '#attributes': + class: + - webform--medium + '#required': true + toiminnasta_vastaavat_henkilot: + '#type': webform_section + '#title': 'Toiminnasta vastaavat henkilöt' + '#states': + visible: + ':input[name="applicant_type"]': + '!value': private_person + community_officials: + '#type': community_officials_composite + '#help': 'Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.' + '#title': 'Valitse toiminnasta vastaavat henkilöt' + '#multiple': true + '#multiple__item_label': henkilö + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää henkilö' + '#wrapper_attributes': + class: + - community_officials_wrapper + '#attributes': + class: + - webform--large + 2_avustustiedot: + '#type': webform_wizard_page + '#title': '2. Avustustiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + avustuksen_tiedot: + '#type': webform_section + '#title': 'Avustuksen tiedot' + acting_year: + '#type': select + '#title': 'Vuosi, jolle haen avustusta' + '#options': + 2022: '2022' + 2023: '2023' + 2024: '2024' + '#required': true + avustuslajit: + '#type': webform_section + '#title': Avustuslajit + subventions: + '#type': grants_compensations + '#title': Avustukset + '#multiple': true + '#subventionType': + 1: '1' + 2: '2' + '#description': 'Jos haet myös vuokra-avustusta, sisällytä vuokra-avustuksen määrä toiminta-avustuksen hakusummaan' + '#required': true + '#multiple__header': true + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more': false + '#attributes': + class: + - subventions + '#subvention_type': + 1: '1' + 6: '6' + '#subvention_type_id__access': false + '#subvention_type__title': Avustuslaji + '#subvention_amount__title': 'Avustuksen summa' + haen_vuokra_avustusta: + '#type': radios + '#title': 'Haen vuokra-avustusta' + '#description': 'Vuokra-avustusta haetaan toiminta-avustuksen yhteydessä. Sisällytä vuokra-avustuksen hakusumma toiminta-avustuksen hakusummaan. Muista myös merkitä hakevasti toiminta-avustusta.' + '#options': + 1: Kyllä + 0: Ei + muut_samaan_tarkoitukseen_myonnetyt_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen myönnetyt avustukset' + info_muut_samaan_tarkoitukseen_myonnetty: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on myönnetty muualta kuin Helsingin kaupungilta kuluvana tai kahtena edellisenä verovuotena. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_saaneet_muita_avustuksia: + '#type': radios + '#title': 'Olemme saaneet muita avustuksia' + '#description_display': before + '#options': + 1: Kyllä + 0: Ei + myonnetty_avustus: + '#type': webform_custom_composite + '#title': 'Myönnetty avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + required: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'myönnetty avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi myönnetty avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi myönnetty avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#attributes': + class: + - webform--large + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + year: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': Vuosi + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': 'Myönnetyn avustuksen summa' + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + muut_samaan_tarkoitukseen_haetut_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen haetut avustukset' + info_muut_samaan_tarkoitukseen_haettu: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on haettu muualta kuin Helsingin kaupungilta, eikä päätöstä ole vielä tehty. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: + '#type': radios + '#title': 'Olemme hakeneet avustuksia muualta kuin Helsingin kaupungilta' + '#options': + 1: Kyllä + 0: Ei + haettu_avustus_tieto: + '#type': webform_custom_composite + '#title': 'Lisää uusi haettu avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta"]': + value: '1' + required: + ':input[name="olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'haettu avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi haettu avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi haettu avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#attributes': + class: + - webform--large + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + year: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': Vuosi + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': 'Haetun avustuksen summa' + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + 3_yhteison_tiedot: + '#type': webform_wizard_page + '#title': '3. Yhteisön toiminta' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + yhdistyksen_jasenmaara_tai_aktiivisesti_toimintaan_osallistuvien: + '#type': webform_section + '#title': 'Yhdistyksen jäsenmäärä tai aktiivisesti toimintaan osallistuvien määrä' + jasenmaara_fieldset: + '#type': fieldset + '#title': Jäsenmäärä + '#help': 'Jos yhteisöllä on jäseniä, merkitse ne tähän.' + '#attributes': + class: + - grants-fieldset + - grants-fieldset-short + jasenet_0_6_vuotiaat: + '#type': textfield + '#title': 'Jäsenet 0 - 6 vuotiaat' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#required': true + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + 0_6_joista_helsinkilaisia: + '#type': textfield + '#required': true + '#title': 'Joista helsinkiläisiä' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + jasenet_7_28_vuotiaat: + '#type': textfield + '#required': true + '#title': 'Jäsenet 7 - 28 vuotiaat' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + 7_28_joista_helsinkilaisia: + '#type': textfield + '#required': true + '#title': 'Joista helsinkiläisiä' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + muut_jasenet_tai_aktiiviset_osallistujat: + '#type': textfield + '#required': true + '#title': 'Muut jäsenet tai aktiiviset osallistujat' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + muut_joista_helsinkilaisia: + '#type': textfield + '#required': true + '#title': 'Joista helsinkiläisiä' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + nuorten_osallistumiskerrat_yhdistyksen_toimintaan: + '#type': webform_section + '#title': 'Nuorten osallistumiskerrat yhdistyksen toimintaan' + alle_29_vuotiaiden_kaikki_osallistumiskerrat_edellisena_kalenter: + '#type': textfield + '#title': 'Alle 29-vuotiaiden kaikki osallistumiskerrat edellisenä kalenterivuotena' + '#help': '

Kirjaa tähän kaikki alle 29-vuotiaiden osallistumiskerrat yhdistyksenne/ryhmänne toimintaan edellisen vuoden aikana yhteensä. Osallistumiskerralla tarkoitetaan jokaisen tapahtuman, tilaisuuden, toiminnan ja vastaavan jokaista kävijää. Tähän lukuun sisältyy myös digitaaliset osallistumiskerrat.

' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#required': true + '#pattern': '^[0-9 ]*$' + '#attributes': + class: + - webform--small + joista_alle_29_vuotiaiden_digitaalisia_osallistumiskertoja_oli: + '#type': textfield + '#title': 'Joista alle 29-vuotiaiden digitaalisia osallistumiskertoja oli' + '#help': '

Erittele tähän kaikki alle 29-vuotiaiden digitaaliset osallistumiskerrat yhteensä. Digitaalisella osallistumiskerralla tarkoitetaan verkossa tai digitaalisessa toimintaympäristössä tapahtuvaan tapahtumaan, tilaisuuteen, toimintaan tai vastaavaan osaa ottavaa nuorta. Osallistumiskerralla tarkoitetaan jokaisen tapahtuman, tilaisuuden, toiminnan tai vastaavan jokaista osanottajaa.

' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#required': true + '#pattern': '^[0-9 ]*$' + '#attributes': + class: + - webform--small + paikat_joissa_yhdistys_jarjesti_toimintaa_nuorille_edellisen_vuo: + '#type': webform_section + '#title': 'Paikat, joissa yhdistys järjesti toimintaa nuorille edellisen vuoden aikana' + info_digitaalinen: + '#type': webform_markup + '#markup': | +
+
+
+ + Kieltävä vastaus avaa lisäkysymyksen +
+
+
+ jarjestimme_toimintaa_vain_digitaalisessa_ymparistossa: + '#type': radios + '#title': 'Järjestimme toimintaa vain digitaalisessa ympäristössä' + '#required': true + '#help': 'Valitse ”Kyllä”, mikäli järjestitte toimintaa ainoastaan digitaalisessa ympäristössä. Valitse ”Ei”, mikäli järjestitte toimintaa vain fyysisessä toimipaikassa tai järjestitte toimintaa sekä digitaalisessa että fyysisessä ympäristössä. Merkitse fyysisten toimitilojen nimet ja postinumerot alle aukeaviin kenttiin.' + '#options': + 1: Kyllä + 0: Ei + jarjestimme_toimintaa_nuorille_seuraavissa_paikoissa: + '#type': premises_composite + '#states': + visible: + ':input[name="jarjestimme_toimintaa_vain_digitaalisessa_ymparistossa"]': + value: 0 + '#title': 'Järjestimme toimintaa nuorille seuraavissa paikoissa' + '#multiple': true + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add_more_input': false + '#multiple__item_label': 'tila' + '#multiple__add_more_button_label': 'Lisää uusi tila' + '#premiseName__access': false + '#premiseType__access': false + '#premiseAddress__access': false + '#address__access': false + '#studentCount__access': false + '#specialStudents__access': false + '#streetAddress__access': false + '#groupCount__access': false + '#specialGroups__access': false + '#personnelCount__access': false + '#totalRent__access': false + '#rentTimeBegin__access': false + '#rentTimeEnd__access': false + '#free__access': false + '#isOthersUse__access': false + '#isOwnedByApplicant__access': false + '#isOwnedByCity__access': false + '#citySection__access': false + '#premiseSuitability__access': false + jasenyydet_jarjestoissa_ja_muissa_yhteisoissa_osio: + '#type': webform_section + '#title': 'Jäsenyydet järjestöissä ja muissa yhteisöissä' + jasenyydet_jarjestoissa_ja_muissa_yhteisoissa: + '#type': members_composite + '#title': 'Jäsenyydet järjestöissä ja muissa yhteisöissä' + '#multiple': true + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi jäsenyys' + '#multiple__item_label': 'jäsenyys' + nuorten_osallistuminen_suunnitteluun_ja_paatoksentekoon: + '#type': webform_section + '#title': 'Nuorten osallistuminen suunnitteluun ja päätöksentekoon' + miten_nuoret_osallistuvat_yhdistyksen_toiminnan_suunnitteluun_ja: + '#type': textarea + '#title': 'Miten nuoret osallistuvat yhdistyksen toiminnan suunnitteluun ja päätöksentekoon?' + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + 4_palkkaustiedot: + '#type': webform_wizard_page + '#title': '4. Palkkaustiedot' + markup_02: + '#type': webform_markup + '#markup': |- +

Sinun ei tarvitse täyttää tätä sivua

+

Tämän sivun sisältöjä ei näytetä, koska et ole hakemassa palkkausavustusta.

+ '#states': + invisible: + ':input[name="palkkaussumma"]': + value: + greater: '0' + paatoimiset_tyontekijat: + '#type': webform_section + '#title': 'Päätoimiset työntekijät' + '#states': + visible: + ':input[name="palkkaussumma"]': + value: + greater: '0' + kuinka_monta_paatoimista_palkattua_tyontekijaa_yhdistyksessa_tyo: + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': 'Kuinka monta päätoimista palkattua työntekijää yhdistyksessä työskentelee?' + '#attributes': + class: + - webform--small + '#states': + visible: + ':input[name="palkkaussumma"]': + value: + greater: '0' + required: + ':input[name="palkkaussumma"]': + value: + greater: '0' + edellisen_vuoden_palkkauskulut: + '#type': webform_section + '#title': 'Edellisen vuoden palkkauskulut' + '#states': + visible: + ':input[name="palkkaussumma"]': + value: + greater: '0' + markup: + '#type': webform_markup + '#states': + visible: + ':input[name="palkkaussumma"]': + value: + greater: '0' + '#markup': '

Erittele tähän työntekijän tai työntekijöiden palkkauskulut edelliseltä kalenterivuodelta. Palkkausavustuksen käyttöön oikeuttavia hyväksyttäviä menoja ovat työntekijän palkkauskulut, palkkauksesta aiheutuvat lakisääteiset ja vapaaehtoiset sosiaalikulut sekä lakisääteiset vakuutukset ja työntekijän työstä aiheutuvat matkakustannukset. Ota tähän mukaan vain sen työntekijän tai niiden työntekijöiden palkkauskulut, joihin olette voineet /olisitte voineet käyttää palkkausavustusta. Tähän eivät kuulu esimerkiksi erilaiset hanketyöntekijät.

' + palkkauskulut: + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''2'', ''radixPoint'': '','', ''substituteRadixPoint'': ''true''' + '#title': Palkkauskulut + '#attributes': + class: + - webform--small + '#states': + visible: + ':input[name="palkkaussumma"]': + value: + greater: '0' + required: + ':input[name="palkkaussumma"]': + value: + greater: '0' + lakisaateiset_ja_vapaaehtoiset_henkilosivukulut: + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''2'', ''radixPoint'': '','', ''substituteRadixPoint'': ''true''' + '#title': 'Lakisääteiset ja vapaaehtoiset henkilösivukulut' + '#attributes': + class: + - webform--small + '#states': + visible: + ':input[name="palkkaussumma"]': + value: + greater: '0' + required: + ':input[name="palkkaussumma"]': + value: + greater: '0' + matka_ja_koulutuskulut: + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''2'', ''radixPoint'': '','', ''substituteRadixPoint'': ''true''' + '#title': 'Matka- ja koulutuskulut' + '#attributes': + class: + - webform--small + '#states': + visible: + ':input[name="palkkaussumma"]': + value: + greater: '0' + required: + ':input[name="palkkaussumma"]': + value: + greater: '0' + vuokra_avustushakemuksen_tiedot: + '#type': webform_wizard_page + '#title': '5. Vuokra-avustushakemuksen tiedot' + markup_01: + '#type': webform_markup + '#markup': |- +

Sinun ei tarvitse täyttää tätä sivua

+

Tämän sivun sisältöjä ei näytetä, koska et ole hakemassa vuokra-avustusta.

+ '#states': + invisible: + ':input[name="haen_vuokra_avustusta"]': + value: '1' + vuokrattu_tila: + '#type': webform_section + '#title': 'Vuokrattu tila' + '#states': + visible: + ':input[name="haen_vuokra_avustusta"]': + value: '1' + vuokratun_tilan_tiedot: + '#type': rented_premise_composite + '#title': 'Vuokratun tilan tiedot' + '#multiple': true + '#states': + visible: + ':input[name="hakee_vuokra_avustusta"]': + value: '1' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add_more_input': false + '#multiple__item_label': 'vuokrattu tila' + '#multiple__add_more_button_label': 'Lisää uusi vuokrattu tila' + '#premiseAddress__required': true + '#premisePostalCode__required': true + '#premisePostOffice__required': true + '#rentSum__required': true + '#lessorName__required': true + '#lessorPhoneOrEmail__required': true + '#usage__required': true + '#daysPerWeek__required': true + '#hoursPerDay__required': true + lisatiedot_osio: + '#type': webform_section + '#title': Lisätiedot + '#states': + visible: + ':input[name="haen_vuokra_avustusta"]': + value: '1' + lisatiedot: + '#type': textarea + '#title': Lisätiedot + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + lisatiedot_ja_liitteet: + '#type': webform_wizard_page + '#title': '6. Lisätiedot ja liitteet' + lisatietoja_hakemukseen_liittyen: + '#type': webform_section + '#title': 'Lisätietoja hakemukseen liittyen' + additional_information: + '#type': textarea + '#title': Lisätiedot + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' + '#counter_type': character + '#attributes': + class: + - webform--large + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + liitteet: + '#type': webform_section + '#title': Liitteet + attachments_info: + '#type': webform_markup + '#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

+

Toiminta- ja palkkausavustushakemuksen pakolliset liitteet ovat yhdistyksen voimassa + olevat säännöt, hakuvuotta edellisen vuoden vahvistettu tilinpäätös, toimintakertomus sekä + tilin/toiminnantarkastuskertomus allekirjoitettuna ja sen kokouksen pöytäkirja, jossa + tilinpäätös on vahvistettu ja vastuuvapaus käsitelty. Lisäksi pakollisia liitteitä ovat + talousarvio ja toimintasuunnitelma sille vuodelle, jolle avustusta haetaan. Sääntöjen täytyy + olla Patentti- ja rekisterihallituksen hyväksymät.

+

Usean liitteen toimittaminen yhtenä tiedostona

+

Voit halutessasi toimittaa useampia liitteitä yhtenä tiedostona. Kerro tästä lisäselvitys + liitteistä -kohdassa.

+

Helsingin kaupungille aiemmin toimitetut liitteet

+

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun + avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön + vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla + erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on + toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä".

+ notification_attachments: + '#type': webform_markup + '#markup': | +
+
+
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.

+
+
+ yhteison_saannot: + '#type': grants_attachments + '#title': 'Yhteisön säännöt' + '#multiple': false + '#filetype': '7' + '#title_display': '' + '#description__access': false + vahvistettu_tilinpaatos: + '#type': grants_attachments + '#title': 'Vahvistettu tilinpäätös (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '43' + '#help': |- +

Tilinpäätöksen täytyy sisältää vähintään tuloslaskelma ja tase. Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun ja allekirjoitetun tilinpäätöksen.

+

Yhteisön tilikausi voi olla kalenterivuosi tai jokin muu kausi. Yhdistysten kohdalla niiden omissa säännöissä lukee, mikä on yhdistyksen tilikausi.

+ '#title_display': before + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi sisältö alta.' + '#description__access': false + vahvistettu_toimintakertomus: + '#type': grants_attachments + '#title': 'Vahvistettu toimintakertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '4' + '#help': |- +

Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun toimintakertomuksen.

+

Jos toimintakertomus on osana tilinpäätöstä ja liititte sen jo tilinpäätöksen mukana lomakkeelle, sitä ei tarvitse liittää tähän erikseen. Valitse tällaisessa tilanteessa toimintakertomuksen kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + vahvistettu_tilin_tai_toiminnantarkastuskertomus: + '#type': grants_attachments + '#title': 'Vahvistettu tilin- tai toiminnantarkastuskertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '5' + '#help': |- +

Liitä tähän allekirjoitettu tilin- tai toiminnantarkastuskertomus yhteisön edelliseltä päättyneeltä tilikaudelta.

+

Jos allekirjoitettu tilin- tai toiminnantarkastuskertomus on osa yhteisönne tilinpäätöstä ja liitit sen jo lomakkeelle tilinpäätöksen kohdalla, valitse tässä kohdassa ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + vuosikokouksen_poytakirja: + '#type': grants_attachments + '#title': 'Vuosikokouksen pöytäkirja, jossa on vahvistettu edellisen päättyneen tilikauden tilinpäätös' + '#multiple': false + '#filetype': '8' + '#help': 'Liitä tähän yhteisön kokouksen pöytäkirja, jossa edellisen päättyneen tilikauden tilinpäätös on vahvistettu ja vastuuvapaus myönnetty. Yhdistyksillä tilinpäätös vahvistetaan aina yhdistyksen jäsenkokouksessa. Mikäli yhteisöltä ei edellytetä vuosikokousta tai muuta yhteisön kokousta, jossa tilinpäätös tulisi vahvistaa ja vastuuvapaus myöntää, ei tätä liitettä tarvitse toimittaa.' + '#title_display': before + '#description__access': false + toimintasuunnitelma: + '#type': grants_attachments + '#title': 'Toimintasuunnitelma (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '1' + '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma. ' + '#title_display': before + '#description__access': false + talousarvio: + '#type': grants_attachments + '#title': 'Talousarvio (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '2' + '#help': 'Liitä tähän koko yhteisön talousarvio.' + '#title_display': before + '#description__access': false + extra_info: + '#type': textarea + '#title': 'Lisäselvitys liitteistä' + '#counter_type': character + '#attributes': + class: + - webform--large + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + muu_liite: + '#type': grants_attachments + '#title': 'Muu liite' + '#multiple': 10 + '#filetype': '0' + '#help': 'Lisää tähän muita liitteitä kuten esim. vuokrasopimus ja vuokranmaksukuitti vuokra-avustusta haettaessa tai nuoriso-osaston tai muun vastaavan talouden ja toiminnan asiakirjoja.' + '#title_display': before + '#multiple__item_label': liite + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi liite' + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + hakee_vuokra_avustusta: + '#type': webform_computed_twig + '#title': haen_vuokra_avustusta + '#title_display': none + '#wrapper_attributes': + class: + - hidden + '#display_on': form + '#template': '{{ data.haen_vuokra_avustusta }}' + actions: + '#type': webform_actions + '#title': 'Submit button(s)' + '#submit__label': Lähetä + '#draft__label': 'Tallenna keskeneräisenä' + '#wizard_prev__label': 'Edellinen' + '#wizard_next__label': 'Seuraava' + '#preview_prev__label': 'Edellinen' + '#preview_next__label': 'Esikatseluun' + '#delete_hide': false + '#delete__label': 'Poista keskeneräinen' + '#delete__attributes': + class: + - hds-button + - hds-button--primary + '#delete__dialog': true +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: source_entity_webform + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: false + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: true + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: true + form_disable_back: false + form_submit_back: true + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: { } + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: true + submission_excluded_elements: + hakee_vuokra_avustusta: hakee_vuokra_avustusta + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: true + wizard_progress_states: false + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '8. Valmis' + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: '' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava + wizard_toggle: true + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 2 + preview_label: '7. Vahvista, esikatsele ja lähetä' + preview_title: 'Vahvista, esikatsele ja lähetä' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: false + preview_exclude_empty_checkbox: false + draft: all + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: none + confirmation_url: '' + confirmation_title: '' + confirmation_message: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: true + confirmation_exclude_token: true + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: draft + purge_days: 365 + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - authenticated + users: { } + permissions: { } + view_any: + roles: + - admin + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: + grants_handler: + id: grants_handler + handler_id: grants_handler + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: 0 + settings: + debug: true +variants: { } diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.performance_test_webform.yml b/public/modules/custom/grants_handler/config/install/webform.webform.performance_test_webform.yml new file mode 100644 index 0000000000..a64de203bb --- /dev/null +++ b/public/modules/custom/grants_handler/config/install/webform.webform.performance_test_webform.yml @@ -0,0 +1,746 @@ +uuid: 87f9d0e8-93b5-4682-ad7a-1f10fcddf16b +langcode: fi +status: open +dependencies: { } +weight: 0 +open: null +close: null +uid: 1 +template: false +archive: false +id: performance_test_webform +title: 'ÄLÄ KÄYTÄ | Suorituskykytestien lomake' +description: '' +categories: + - 'Performance test' +elements: |- + 1_hakijan_tiedot: + '#type': webform_wizard_page + '#title': '1. Hakijan tiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + contact_person_email_section: + '#type': webform_section + '#title': Sähköposti + email: + '#type': email + '#title': Sähköpostiosoite + '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' + '#size': 63 + '#autocomplete': 'off' + contact_person_section: + '#type': webform_section + '#title': 'Hakemuksen yhteyshenkilö' + contact_person: + '#type': textfield + '#title': Yhteyshenkilö + '#autocomplete': 'off' + '#required': true + '#attributes': + class: + - webform--large + '#size': 63 + contact_person_phone_number: + '#type': textfield + '#title': Puhelinnumero + '#required': true + '#autocomplete': 'off' + '#attributes': + class: + - webform--medium + '#size': 32 + 2_avustustiedot: + '#type': webform_wizard_page + '#title': '2. Avustustiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + avustuksen_tiedot: + '#type': webform_section + '#title': 'Avustuksen tiedot' + acting_year: + '#type': select + '#title': 'Vuosi, jolle haen avustusta' + '#options': + 2022: '2022' + 2023: '2023' + 2024: '2024' + '#required': true + avustuslajit: + '#type': webform_section + '#title': Avustuslajit + haen_vuokra_avustusta: + '#type': radios + '#title': 'Haen vuokra-avustusta' + '#description': 'Vuokra-avustusta haetaan toiminta-avustuksen yhteydessä. Sisällytä vuokra-avustuksen hakusumma toiminta-avustuksen hakusummaan. Muista myös merkitä hakevasti toiminta-avustusta.' + '#options': + 1: Kyllä + 0: Ei + muut_samaan_tarkoitukseen_myonnetyt_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen myönnetyt avustukset' + info_muut_samaan_tarkoitukseen_myonnetty: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on myönnetty muualta kuin Helsingin kaupungilta kuluvana tai kahtena edellisenä verovuotena. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_saaneet_muita_avustuksia: + '#type': radios + '#title': 'Olemme saaneet muita avustuksia' + '#description_display': before + '#options': + 1: Kyllä + 0: Ei + myonnetty_avustus: + '#type': webform_custom_composite + '#title': 'Myönnetty avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + required: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'myönnetty avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi myönnetty avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi myönnetty avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#attributes': + class: + - webform--large + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + year: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': Vuosi + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': 'Myönnetyn avustuksen summa' + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + muut_samaan_tarkoitukseen_haetut_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen haetut avustukset' + info_muut_samaan_tarkoitukseen_haettu: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on haettu muualta kuin Helsingin kaupungilta, eikä päätöstä ole vielä tehty. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: + '#type': radios + '#title': 'Olemme hakeneet avustuksia muualta kuin Helsingin kaupungilta' + '#options': + 1: Kyllä + 0: Ei + haettu_avustus_tieto: + '#type': webform_custom_composite + '#title': 'Lisää uusi haettu avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta"]': + value: '1' + required: + ':input[name="olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'haettu avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi haettu avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi haettu avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#attributes': + class: + - webform--large + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + year: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': Vuosi + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': 'Haetun avustuksen summa' + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + 3_yhteison_tiedot: + '#type': webform_wizard_page + '#title': '3. Yhteisön toiminta' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + yhdistyksen_jasenmaara_tai_aktiivisesti_toimintaan_osallistuvien: + '#type': webform_section + '#title': 'Yhdistyksen jäsenmäärä tai aktiivisesti toimintaan osallistuvien määrä' + jasenmaara_fieldset: + '#type': fieldset + '#title': Jäsenmäärä + '#help': 'Jos yhteisöllä on jäseniä, merkitse ne tähän.' + '#attributes': + class: + - grants-fieldset + - grants-fieldset-short + jasenet_0_6_vuotiaat: + '#type': textfield + '#title': 'Jäsenet 0 - 6 vuotiaat' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#required': true + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + 0_6_joista_helsinkilaisia: + '#type': textfield + '#required': true + '#title': 'Joista helsinkiläisiä' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + jasenet_7_28_vuotiaat: + '#type': textfield + '#required': true + '#title': 'Jäsenet 7 - 28 vuotiaat' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + 7_28_joista_helsinkilaisia: + '#type': textfield + '#required': true + '#title': 'Joista helsinkiläisiä' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + muut_jasenet_tai_aktiiviset_osallistujat: + '#type': textfield + '#required': true + '#title': 'Muut jäsenet tai aktiiviset osallistujat' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + muut_joista_helsinkilaisia: + '#type': textfield + '#required': true + '#title': 'Joista helsinkiläisiä' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#size': '16' + '#attributes': + class: + - webform--small + '#pattern_error': 'Vain numeroita' + nuorten_osallistumiskerrat_yhdistyksen_toimintaan: + '#type': webform_section + '#title': 'Nuorten osallistumiskerrat yhdistyksen toimintaan' + alle_29_vuotiaiden_kaikki_osallistumiskerrat_edellisena_kalenter: + '#type': textfield + '#title': 'Alle 29-vuotiaiden kaikki osallistumiskerrat edellisenä kalenterivuotena' + '#help': '

Kirjaa tähän kaikki alle 29-vuotiaiden osallistumiskerrat yhdistyksenne/ryhmänne toimintaan edellisen vuoden aikana yhteensä. Osallistumiskerralla tarkoitetaan jokaisen tapahtuman, tilaisuuden, toiminnan ja vastaavan jokaista kävijää. Tähän lukuun sisältyy myös digitaaliset osallistumiskerrat.

' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#required': true + '#pattern': '^[0-9 ]*$' + '#attributes': + class: + - webform--small + joista_alle_29_vuotiaiden_digitaalisia_osallistumiskertoja_oli: + '#type': textfield + '#title': 'Joista alle 29-vuotiaiden digitaalisia osallistumiskertoja oli' + '#help': '

Erittele tähän kaikki alle 29-vuotiaiden digitaaliset osallistumiskerrat yhteensä. Digitaalisella osallistumiskerralla tarkoitetaan verkossa tai digitaalisessa toimintaympäristössä tapahtuvaan tapahtumaan, tilaisuuteen, toimintaan tai vastaavaan osaa ottavaa nuorta. Osallistumiskerralla tarkoitetaan jokaisen tapahtuman, tilaisuuden, toiminnan tai vastaavan jokaista osanottajaa.

' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#required': true + '#pattern': '^[0-9 ]*$' + '#attributes': + class: + - webform--small + paikat_joissa_yhdistys_jarjesti_toimintaa_nuorille_edellisen_vuo: + '#type': webform_section + '#title': 'Paikat, joissa yhdistys järjesti toimintaa nuorille edellisen vuoden aikana' + info_digitaalinen: + '#type': webform_markup + '#markup': | +
+
+
+ + Kieltävä vastaus avaa lisäkysymyksen +
+
+
+ jarjestimme_toimintaa_vain_digitaalisessa_ymparistossa: + '#type': radios + '#title': 'Järjestimme toimintaa vain digitaalisessa ympäristössä' + '#required': true + '#help': 'Valitse ”Kyllä”, mikäli järjestitte toimintaa ainoastaan digitaalisessa ympäristössä. Valitse ”Ei”, mikäli järjestitte toimintaa vain fyysisessä toimipaikassa tai järjestitte toimintaa sekä digitaalisessa että fyysisessä ympäristössä. Merkitse fyysisten toimitilojen nimet ja postinumerot alle aukeaviin kenttiin.' + '#options': + 1: Kyllä + 0: Ei + jarjestimme_toimintaa_nuorille_seuraavissa_paikoissa: + '#type': premises_composite + '#states': + visible: + ':input[name="jarjestimme_toimintaa_vain_digitaalisessa_ymparistossa"]': + value: 0 + '#title': 'Järjestimme toimintaa nuorille seuraavissa paikoissa' + '#multiple': true + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add_more_input': false + '#premiseName__access': false + '#premiseType__access': false + '#premiseAddress__access': false + '#address__access': false + '#studentCount__access': false + '#specialStudents__access': false + '#streetAddress__access': false + '#groupCount__access': false + '#specialGroups__access': false + '#personnelCount__access': false + '#totalRent__access': false + '#rentTimeBegin__access': false + '#rentTimeEnd__access': false + '#free__access': false + '#isOthersUse__access': false + '#isOwnedByApplicant__access': false + '#isOwnedByCity__access': false + '#citySection__access': false + '#premiseSuitability__access': false + jasenyydet_jarjestoissa_ja_muissa_yhteisoissa_osio: + '#type': webform_section + '#title': 'Jäsenyydet järjestöissä ja muissa yhteisöissä' + jasenyydet_jarjestoissa_ja_muissa_yhteisoissa: + '#type': members_composite + '#title': 'Jäsenyydet järjestöissä ja muissa yhteisöissä' + '#multiple': true + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add_more_input': false + nuorten_osallistuminen_suunnitteluun_ja_paatoksentekoon: + '#type': webform_section + '#title': 'Nuorten osallistuminen suunnitteluun ja päätöksentekoon' + miten_nuoret_osallistuvat_yhdistyksen_toiminnan_suunnitteluun_ja: + '#type': textarea + '#title': 'Miten nuoret osallistuvat yhdistyksen toiminnan suunnitteluun ja päätöksentekoon?' + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + 4_palkkaustiedot: + '#type': webform_wizard_page + '#title': '4. Palkkaustiedot' + markup_02: + '#type': webform_markup + '#markup': |- +

Sinun ei tarvitse täyttää tätä sivua

+

Tämän sivun sisältöjä ei näytetä, koska et ole hakemassa palkkausavustusta.

+ paatoimiset_tyontekijat: + '#type': webform_section + '#title': 'Päätoimiset työntekijät' + kuinka_monta_paatoimista_palkattua_tyontekijaa_yhdistyksessa_tyo: + '#type': textfield + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': 'Kuinka monta päätoimista palkattua työntekijää yhdistyksessä työskentelee?' + '#attributes': + class: + - webform--small + edellisen_vuoden_palkkauskulut: + '#type': webform_section + '#title': 'Edellisen vuoden palkkauskulut' + palkkauskulut: + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''2'', ''radixPoint'': '','', ''substituteRadixPoint'': ''true''' + '#title': Palkkauskulut + '#attributes': + class: + - webform--small + lakisaateiset_ja_vapaaehtoiset_henkilosivukulut: + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''2'', ''radixPoint'': '','', ''substituteRadixPoint'': ''true''' + '#title': 'Lakisääteiset ja vapaaehtoiset henkilösivukulut' + '#attributes': + class: + - webform--small + matka_ja_koulutuskulut: + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''2'', ''radixPoint'': '','', ''substituteRadixPoint'': ''true''' + '#title': 'Matka- ja koulutuskulut' + '#attributes': + class: + - webform--small + vuokra_avustushakemuksen_tiedot: + '#type': webform_wizard_page + '#title': '5. Vuokra-avustushakemuksen tiedot' + markup_01: + '#type': webform_markup + '#markup': |- +

Sinun ei tarvitse täyttää tätä sivua

+

Tämän sivun sisältöjä ei näytetä, koska et ole hakemassa vuokra-avustusta.

+ '#states': + invisible: + ':input[name="haen_vuokra_avustusta"]': + value: '1' + vuokrattu_tila: + '#type': webform_section + '#title': 'Vuokrattu tila' + '#states': + visible: + ':input[name="haen_vuokra_avustusta"]': + value: '1' + vuokratun_tilan_tiedot: + '#type': rented_premise_composite + '#title': 'Vuokratun tilan tiedot' + '#multiple': true + '#states': + visible: + ':input[name="hakee_vuokra_avustusta"]': + value: '1' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add_more_input': false + '#premiseAddress__required': true + '#premisePostalCode__required': true + '#premisePostOffice__required': true + '#rentSum__required': true + '#lessorName__required': true + '#lessorPhoneOrEmail__required': true + '#usage__required': true + '#daysPerWeek__required': true + '#hoursPerDay__required': true + lisatiedot_osio: + '#type': webform_section + '#title': Lisätiedot + '#states': + visible: + ':input[name="haen_vuokra_avustusta"]': + value: '1' + lisatiedot: + '#type': textarea + '#title': Lisätiedot + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + hakee_vuokra_avustusta: + '#type': webform_computed_twig + '#title': haen_vuokra_avustusta + '#title_display': none + '#wrapper_attributes': + class: + - hidden + '#display_on': form + '#template': '{{ data.haen_vuokra_avustusta }}' + actions: + '#type': webform_actions + '#title': 'Submit button(s)' + '#submit__label': Lähetä + '#draft__label': 'Tallenna keskeneräisenä' + '#wizard_prev__label': 'Edellinen' + '#wizard_next__label': 'Seuraava' + '#preview_prev__label': 'Edellinen' + '#preview_next__label': 'Esikatseluun' + '#delete_hide': false + '#delete__label': 'Poista keskeneräinen' + '#delete__attributes': + class: + - hds-button + - hds-button--primary + '#delete__dialog': true +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: /hakemus/performance-test-form + page_confirm_path: '' + page_theme_name: '' + form_title: source_entity_webform + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: true + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: false + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: true + form_disable_back: false + form_submit_back: true + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: { } + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: false + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: true + wizard_progress_states: false + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '' + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: '' + wizard_prev_button_label: '' + wizard_next_button_label: '' + wizard_toggle: false + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 2 + preview_label: '6. Vahvista, esikatsele ja lähetä' + preview_title: 'Vahvista, esikatsele ja lähetä' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: true + preview_exclude_empty_checkbox: false + draft: all + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: page + confirmation_url: '' + confirmation_title: '' + confirmation_message: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: false + confirmation_exclude_token: false + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: draft + purge_days: 365 + results_disabled: true + results_disabled_ignore: true + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - performance_test_user + users: { } + permissions: { } + view_any: + roles: { } + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: { } +variants: { } diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.sotepe_yleis.yml b/public/modules/custom/grants_handler/config/install/webform.webform.sotepe_yleis.yml new file mode 100644 index 0000000000..a1bd7fe6fb --- /dev/null +++ b/public/modules/custom/grants_handler/config/install/webform.webform.sotepe_yleis.yml @@ -0,0 +1,906 @@ +uuid: a8d4d2d7-30bf-4091-a86f-978b99358957 +langcode: fi +status: open +dependencies: + module: + - grants_handler + - grants_metadata +third_party_settings: + grants_metadata: + applicationTypeSelect: '72' + applicationType: SOTEPEYLEIS + applicationTypeID: '72' + applicationIndustry: KANSLIA + applicantTypes: + registered_community: registered_community + applicationTypeTerms: + 49: '49' + applicationTargetGroup: '30' + applicationOpen: '2022-10-03T11:08:26' + applicationClose: '2029-07-30T11:19:00' + applicationActingYearsType: next_x_years + applicationActingYears: { } + applicationActingYearsNextCount: '1' + applicationContinuous: 0 + disableCopying: 0 + status: development + parent: d8472e68-d6bd-4de2-a409-f0a177bf9e94 + avus2BreakingChange: 0 +weight: 0 +open: null +close: null +uid: 1 +template: false +archive: false +id: sotepe_yleis +title: 'Sosiaali-, terveys- ja pelastustoimen yleisavustus' +description: '

SOTEPEYLEIS

' +categories: + - Kehityksessä +elements: |- + applicant_type: + '#type': hidden + '#title': 'Applicant type' + avustukset_summa: + '#type': grants_webform_summation_field + '#title': 'Avustukset summa' + '#title_display': none + '#description_display': invisible + '#collect_field': + subventions%%amount: subventions%%amount + application_number: 0 + status: 0 + hakijan_tiedot: 0 + email: 0 + contact_person: 0 + contact_person_phone_number: 0 + community_address: 0 + bank_account: 0 + community_officials: 0 + acting_year: 0 + subventions%%subventionTypeTitle: 0 + subventions%%subventionType: 0 + compensation_purpose: 0 + olemme_saaneet_muita_avustuksia: 0 + myonnetty_avustus: 0 + benefits_loans: 0 + benefits_premises: 0 + compensation_boolean: 0 + compensation_explanation: 0 + business_purpose: 0 + community_practices_business: 0 + fee_person: 0 + fee_community: 0 + members_applicant_person_local: 0 + members_applicant_person_global: 0 + members_applicant_community_local: 0 + members_applicant_community_global: 0 + additional_information: 0 + yhteison_saannot: 0 + vahvistettu_tilinpaatos: 0 + vahvistettu_toimintakertomus: 0 + vahvistettu_tilin_tai_toiminnantarkastuskertomus: 0 + vuosikokouksen_poytakirja: 0 + toimintasuunnitelma: 0 + talousarvio: 0 + extra_info: 0 + muu_liite: 0 + '#data_type': euro + '#form_item': hidden + 1_hakijan_tiedot: + '#type': webform_wizard_page + '#title': '1. Hakijan tiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + application_number: + '#type': hidden + '#title': Hakemusnumero + '#disabled': true + status: + '#type': hidden + '#title': 'Hakemuksen tila' + '#readonly': true + yhteiso_jolle_haetaan_avustusta: + '#type': webform_section + '#title': 'Yhteisö, jolle haetaan avustusta' + '#attributes': + class: + - grants-profile--imported-section + prh_markup: + '#type': webform_markup + '#markup': '
Tiedot on haettu Patentti- ja rekisterihallinnon rekisteristä (PRH), eikä niitä voi tämän takia muokata.
' + hakijan_tiedot: + '#type': applicant_info + '#title': Hakija + contact_person_email_section: + '#type': webform_section + '#title': Sähköposti + contact_markup: + '#type': webform_markup + '#markup': 'Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.' + email: + '#type': email + '#title': Sähköpostiosoite + '#required': true + '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' + '#size': 63 + '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' + contact_person_section: + '#type': webform_section + '#title': 'Hakemuksen yhteyshenkilö' + contact_person: + '#type': textfield + '#title': Yhteyshenkilö + '#attributes': + class: + - webform--large + '#autocomplete': 'off' + '#required': true + '#size': 63 + contact_person_phone_number: + '#type': textfield + '#title': Puhelinnumero + '#attributes': + class: + - webform--medium + '#required': true + '#autocomplete': 'off' + '#size': 32 + osoite: + '#type': webform_section + '#title': Osoite + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + community_address: + '#type': community_address_composite + '#title': 'Yhteisön osoite' + '#help': 'Jos haluat lisätä, poistaa tai muuttaa osoitetietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään osoitetietoa omiin tietoihin.' + '#attributes': + class: + - webform--large + '#required': true + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + tilinumero: + '#type': webform_section + '#title': Tilinumero + bank_account: + '#type': bank_account_composite + '#title': Tilinumero + '#help': 'Jos haluat lisätä, poistaa tai muuttaa tilinumerotietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään tilinumerotietoa omiin tietoihin.' + '#attributes': + class: + - webform--medium + '#required': true + toiminnasta_vastaavat_henkilot: + '#type': webform_section + '#title': 'Toiminnasta vastaavat henkilöt' + '#states': + visible: + ':input[name="applicant_type"]': + '!value': private_person + community_officials: + '#type': community_officials_composite + '#help': 'Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.' + '#title': 'Valitse toiminnasta vastaavat henkilöt' + '#multiple': true + '#multiple__item_label': henkilö + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää henkilö' + '#wrapper_attributes': + class: + - community_officials_wrapper + '#attributes': + class: + - webform--large + 2_avustustiedot: + '#type': webform_wizard_page + '#title': '2. Avustustiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + avustuksen_tiedot: + '#type': webform_section + '#title': 'Avustuksen tiedot' + acting_year: + '#type': select + '#title': 'Vuosi, jolle haen avustusta' + '#options': + 2022: '2022' + 2023: '2023' + 2024: '2024' + '#required': true + avustuslajit: + '#type': webform_section + '#title': Avustuslajit + subventions: + '#type': grants_compensations + '#title': Avustukset + '#multiple': true + '#subventionType': + 6: '6' + '#onlyOneSubventionPerApplication': 1 + '#required': true + '#multiple__header': true + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more': false + '#attributes': + class: + - subventions + '#subvention_type': + 1: '1' + 6: '6' + '#subvention_type_id__access': false + '#subvention_type__title': Avustuslaji + '#subvention_amount__title': 'Avustuksen summa' + kayttotarkoitus: + '#type': webform_section + '#title': 'Käyttötarkoitus' + compensation_purpose: + '#type': textarea + '#title': 'Mihin avustus käytetään?' + '#help': 'Kuvaa tiiviisti avustuksella toteutettavaa toimintaa ja toiminnan laajuutta esimerkiksi seuraavilla tavoilla:
Kuinka paljon tai kuinka usein järjestätte ryhmiä, tapahtumia tai muuta toimintaa avustettavan ajanjakson aikana? Kuinka paljon kohderyhmän edustajia arvioitte tavoittavanne? Missä Helsingin alueilla toimintaa järjestetään? Minkälaista yhteistyötä teette Helsingissä muiden toimijoiden kanssa?' + '#required': true + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#cols': 63 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + who_benefits: + '#type': textarea + '#title': 'Ketkä toiminnastanne erityisesti hyötyvät?' + '#help': 'Kuvaa keitä kohderyhmäänne kuuluu ja mahdollisesti myös kuinka paljon kohderyhmään kuuluvia toiminta-alueellanne on. Kohderyhmän kuvauksessa on tärkeää, että siitä käy ilmi minkälaisia ihmisiä juuri te haluatte ja osaatte kohdata, tai millaisessa tilanteessa olevat hyötyvät toiminnastanne eniten.' + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#cols': 63 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#states': + visible: + ':input[name="avustukset_summa"]': + value: + greater_equal: '10000' + required: + ':input[name="avustukset_summa"]': + value: + greater_equal: '10000' + changes_on_success: + '#type': textarea + '#title': 'Minkälaisia muutoksia tapahtuu, jos onnistutte?' + '#help': 'Toiminnallanne voi olla monia tavoitteita. Kuvatkaa ja arvioikaa tässä keskeiset muutokset, joita tavoittelette esimerkiksi kohderyhmänne toimintakyvyssä, arjessa, ihmissuhteissa tai muussa hyvinvointiin ja terveyteen tai osallisuuteen liittyvässä asiassa. Mikä siis muuttuu, jos olette onnistuneet tai minkälaisia ilmiöitä toimintanne ennaltaehkäisee?' + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#cols': 63 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#states': + visible: + ':input[name="avustukset_summa"]': + value: + greater_equal: '10000' + required: + ':input[name="avustukset_summa"]': + value: + greater_equal: '10000' + results_of_activities: + '#type': textarea + '#title': 'Minkälaisia hyötyjä avustettavan toiminnan seurauksena syntyy?' + '#help': 'Kuvaa lyhyesti, mitä vaikutuksia toiminnalla saadaan aikaan ja millä tavoin ne syntyvät. Voit kuvata vaikutukset niiden tapahtumisjärjestyksessä: mitä vaikutuksia syntyy ensin, ja mitä vähän pidemmän ajan kuluttua. Keskity kuitenkin toiminnan välittömiin vaikutuksiin.
Voit myös kertoa, mikä toiminnassanne on erityistä tai mistä (laatu)tekijöistä on erityisesti huolehdittava, että tavoiteltavia vaikutuksia saavutetaan. Voit myös kuvata, miten jokin tekemänne yhteistyö edistää vaikutusten saavuttamista.' + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#cols': 63 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#states': + visible: + ':input[name="avustukset_summa"]': + value: + greater_equal: '50000' + required: + ':input[name="avustukset_summa"]': + value: + greater_equal: '50000' + muut_samaan_tarkoitukseen_myonnetyt_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen myönnetyt avustukset' + info_muut_samaan_tarkoitukseen_myonnetty: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on myönnetty muualta kuin Helsingin kaupungilta kuluvana tai kahtena edellisenä verovuotena. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_saaneet_muita_avustuksia: + '#type': radios + '#title': 'Olemme saaneet muita avustuksia' + '#description_display': before + '#options': + 1: Kyllä + 0: Ei + myonnetty_avustus: + '#type': webform_custom_composite + '#title': 'Myönnetty avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + required: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'myönnetty avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi myönnetty avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi myönnetty avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#attributes': + class: + - webform--large + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + year: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': Vuosi + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#attributes': + class: + - webform--small + '#required': true + '#title': 'Myönnetyn avustuksen summa' + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + edellisen_avustuksen_kayttoselvitys: + '#type': webform_section + '#title': 'Edellisen avustuksen käyttöselvitys' + compensation_boolean_info: + '#type': webform_markup + '#markup': | +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ compensation_boolean: + '#type': radios + '#title': 'Käyttöselvitys edellisenä vuonna saamastani avustuksesta' + '#options': + - 'En ole saanut Helsingin kaupungilta avustusta samaan käyttötarkoitukseen edellisenä vuonna.' + - 'Olen saanut Helsingin kaupungilta avustusta samaan käyttötarkoitukseen edellisenä vuonna.' + '#required': true + markup: + '#type': webform_markup + '#states': + visible: + ':input[name="compensation_boolean"]': + value: '1' + '#markup': 'Anna käyttöselvitys Helsingin kaupungilta saadusta avustuksesta. Avustuksen käyttöselvitys tehdään avustuksesta, joka koskee viimeisintä päättynyttä tilikautta. Käyttöselvitystä ei tehdä käynnissä olevalta tilikaudelta. Käyttöselvityksen antaminen on seuraavan avustuksen saamisen ehtona. Mikäli käyttöselvitystä ei tehdä, avustusta ei myönnetä eikä makseta. Myönnetty avustus voidaan periä takaisin, jos edellisen avustuksen käyttöä ei ole hyväksyttävästi selvitetty.' + compensation_explanation: + '#type': textarea + '#title': 'Selvitys avustuksen käytöstä' + '#help': 'Käyttöselvityksessä tulee kuvata lyhyesti, miten myönnetty avustus on käytetty. Avustuksen saajan on järjestettävä kirjanpitonsa niin, että avustuksen käyttöä voidaan sieltä seurata. Esimerkiksi jos yhteisö on saanut vuokra-avustusta, tilinpäätöksen tuloslaskelmasta tulee käydä ilmi avustuksen toteutuminen sekä tuloissa että menoissa. Lisää tietoja avustuksen käytöstä voi myös kirjoittaa erilliseen liitteeseen, jonka voi ladata ja lähettää Muu-liitteenä.' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#states': + visible: + ':input[name="compensation_boolean"]': + value: '1' + required: + ':input[name="compensation_boolean"]': + value: '1' + '#attributes': + class: + - webform--large + '#cols': 63 + 3_yhteison_tiedot: + '#type': webform_wizard_page + '#title': '3. Yhteisön toiminta' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + business_info: + '#type': webform_section + '#title': 'Toiminnan kuvaus' + business_purpose: + '#type': textarea + '#title': 'Toiminnan kuvaus' + '#help': 'Tieto haetaan omat tiedot -osiosta' + '#maxlength': 500 + '#counter_type': character + '#counter_maximum': 500 + '#counter_maximum_message': '%d/500 merkkiä jäljellä' + community_practices_business: + '#type': radios + '#title': 'Harjoittaako yhteisö liiketoimintaa' + '#options': + 1: Kyllä + 0: Ei + '#options_display': side_by_side + '#options_description_display': help + '#required': true + ensimmainen_otsikko: + '#type': webform_section + '#title': Jäsenmaksut + fee_person: + '#type': textfield + '#title': 'Henkilöjäsenen jäsenmaksu (€ / vuosi)' + '#attributes': + class: + - webform--small + '#maxlength': 50 + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + '#size': 16 + fee_community: + '#type': textfield + '#title': 'Yhteisöjäsen (€ / vuosi)' + '#attributes': + class: + - webform--small + '#maxlength': 50 + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + '#size': 16 + jasenmaara: + '#type': webform_section + '#title': Jäsenmäärä + jasenmaara_fieldset: + '#type': fieldset + '#title': Jäsenmäärä + '#help': 'Jos yhteisöllä on jäseniä, merkitse ne tähän.' + '#attributes': + class: + - grants-fieldset + - grants-fieldset-short + members_applicant_person_global: + '#type': textfield + '#title': 'Henkilöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta henkilöjäsentä yhteisöllä on tällä hetkellä?' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + members_applicant_person_local: + '#type': textfield + '#title': 'Helsinkiläisiä henkilöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta helsinkiläistä henkilöjäsentä yhteisöllä on tällä hetkellä?' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + members_applicant_community_global: + '#type': textfield + '#title': 'Yhteisöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta yhteisöjäsentä yhteisöllä on tällä hetkellä? Yhteisöjäseniä ovat muut kuin henkilöjäsenet, esimerkiksi yhdistykset, säätiöt, yritykset tai kunnat.' + '#maxlength': 9 + '#size': 16 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#attributes': + class: + - webform--small + members_applicant_community_local: + '#type': textfield + '#title': 'Helsinkiläisiä yhteisöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta helsinkiläistä yhteisöjäsentä yhteisöllä on tällä hetkellä? Yhteisöjäseniä ovat muut kuin henkilöjäsenet, esimerkiksi yhdistykset, säätiöt, yritykset tai kunnat.' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#size': 16 + '#attributes': + class: + - webform--small + lisatiedot_ja_liitteet: + '#type': webform_wizard_page + '#title': '4. Lisätiedot ja liitteet' + lisatietoja_hakemukseen_liittyen: + '#type': webform_section + '#title': 'Lisätietoja hakemukseen liittyen' + additional_information: + '#type': textarea + '#title': Lisätiedot + '#attributes': + class: + - webform--large + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + liitteet: + '#type': webform_section + '#title': Liitteet + attachments_info: + '#type': webform_markup + '#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. +

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

+

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ notification_attachments: + '#type': webform_markup + '#markup': | +
+
+
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.

+
+
+ yhteison_saannot: + '#type': grants_attachments + '#title': 'Yhteisön säännöt' + '#multiple': false + '#filetype': '7' + '#help': 'Uusi hakija tai säännöt muuttuneet.' + '#title_display': before + '#description__access': false + vahvistettu_tilinpaatos: + '#type': grants_attachments + '#title': 'Vahvistettu tilinpäätös (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '43' + '#help': |- +

Tilinpäätöksen täytyy sisältää vähintään tuloslaskelma ja tase. Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun ja allekirjoitetun tilinpäätöksen.

+

Yhteisön tilikausi voi olla kalenterivuosi tai jokin muu kausi. Yhdistysten kohdalla niiden omissa säännöissä lukee, mikä on yhdistyksen tilikausi.

+ '#title_display': before + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi sisältö alta.' + '#description__access': false + vahvistettu_toimintakertomus: + '#type': grants_attachments + '#title': 'Vahvistettu toimintakertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '4' + '#help': |- +

Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun toimintakertomuksen.

+

Jos toimintakertomus on osana tilinpäätöstä ja liititte sen jo tilinpäätöksen mukana lomakkeelle, sitä ei tarvitse liittää tähän erikseen. Valitse tällaisessa tilanteessa toimintakertomuksen kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + vahvistettu_tilin_tai_toiminnantarkastuskertomus: + '#type': grants_attachments + '#title': 'Vahvistettu tilin- tai toiminnantarkastuskertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '5' + '#help': |- +

Liitä tähän allekirjoitettu tilin- tai toiminnantarkastuskertomus yhteisön edelliseltä päättyneeltä tilikaudelta.

+

Jos allekirjoitettu tilin- tai toiminnantarkastuskertomus on osa yhteisönne tilinpäätöstä ja liitit sen jo lomakkeelle tilinpäätöksen kohdalla, valitse tässä kohdassa ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + vuosikokouksen_poytakirja: + '#type': grants_attachments + '#title': 'Vuosikokouksen pöytäkirja, jossa on vahvistettu edellisen päättyneen tilikauden tilinpäätös' + '#multiple': false + '#filetype': '8' + '#help': 'Liitä tähän yhteisön kokouksen pöytäkirja, jossa edellisen päättyneen tilikauden tilinpäätös on vahvistettu ja vastuuvapaus myönnetty. Yhdistyksillä tilinpäätös vahvistetaan aina yhdistyksen jäsenkokouksessa. Mikäli yhteisöltä ei edellytetä vuosikokousta tai muuta yhteisön kokousta, jossa tilinpäätös tulisi vahvistaa ja vastuuvapaus myöntää, ei tätä liitettä tarvitse toimittaa.' + '#title_display': before + '#description__access': false + toimintasuunnitelma: + '#type': grants_attachments + '#title': 'Toimintasuunnitelma (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '1' + '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma. ' + '#title_display': before + '#description__access': false + talousarvio: + '#type': grants_attachments + '#title': 'Talousarvio (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '22' + '#help': 'Talousarvio (sille vuodelle jolle haet avustusta)' + '#title_display': before + '#description__access': false + extra_info: + '#type': textarea + '#title': 'Lisäselvitys liitteistä' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#attributes': + class: + - webform--large + '#cols': 63 + muu_liite: + '#type': grants_attachments + '#title': 'Muu liite' + '#multiple': 10 + '#filetype': '0' + '#title_display': before + '#multiple__item_label': liite + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi liite' + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + actions: + '#type': webform_actions + '#title': 'Submit button(s)' + '#submit__label': Lähetä + '#draft__label': 'Tallenna keskeneräisenä' + '#wizard_prev__label': 'Edellinen' + '#wizard_next__label': 'Seuraava' + '#preview_prev__label': 'Edellinen' + '#preview_next__label': 'Esikatseluun' + '#delete_hide': false + '#delete__label': 'Poista keskeneräinen' + '#delete__attributes': + class: + - hds-button + - hds-button--primary + '#delete__dialog': true +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: source_entity_webform + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: false + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: true + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: true + form_disable_back: false + form_submit_back: true + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: { } + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: true + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: true + wizard_progress_states: false + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '6. Valmis' + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: '' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava + wizard_toggle: true + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 2 + preview_label: '5. Vahvista, esikatsele ja lähetä' + preview_title: 'Vahvista, esikatsele ja lähetä' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: false + preview_exclude_empty_checkbox: false + draft: all + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: none + confirmation_url: '' + confirmation_title: '' + confirmation_message: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: true + confirmation_exclude_token: true + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: draft + purge_days: 365 + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - anonymous + - authenticated + users: { } + permissions: { } + view_any: + roles: { } + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: + grants_handler: + id: grants_handler + handler_id: grants_handler + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: 0 + settings: + debug: false +variants: { } diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml b/public/modules/custom/grants_handler/config/install/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml index abab72a620..de9456b7e7 100644 --- a/public/modules/custom/grants_handler/config/install/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml +++ b/public/modules/custom/grants_handler/config/install/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml @@ -14,16 +14,21 @@ third_party_settings: applicantTypes: registered_community: registered_community applicationTypeTerms: - 58: '58' + 72: '72' + 74: '74' + 73: '73' applicationTargetGroup: '22' - applicationOpen: '2022-10-02T11:08:26' - applicationClose: '2023-07-30T11:19:00' + applicationOpen: '2024-06-05T10:00:26' + applicationClose: '2024-09-02T16:02:00' applicationContinuous: 0 disableCopying: 0 applicationActingYears: - 2023: '2023' 2024: '2024' 2025: '2025' + 2026: '2026' + applicationActingYearsType: next_x_years + applicationActingYearsNextCount: '1' + status: released weight: 0 open: null close: null @@ -31,9 +36,10 @@ uid: 1 template: false archive: false id: taide_ja_kulttuuri_kehittamisavu -title: 'Taide ja kulttuuri: kehittämisavustus' -description: KUVAKEHA -category: '' +title: 'Kulttuurin kehittämisavustukset' +description: '

KUVAKEHA

' +categories: + - Tuotannossa elements: |- 1_hakijan_tiedot: '#type': webform_wizard_page @@ -62,7 +68,7 @@ elements: |- '#markup': 'Tiedot on haettu hakuprofiilistasi.' hakijan_tiedot: '#type': applicant_info - '#title': 'Hakija' + '#title': Hakija contact_person_email_section: '#type': webform_section '#title': Sähköposti @@ -75,6 +81,7 @@ elements: |- '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' '#size': 63 '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' '#attributes': class: - webform--large @@ -106,7 +113,7 @@ elements: |- '#states': visible: ':input[name="applicant_type"]': - 'value': registered_community + value: registered_community community_address: '#type': community_address_composite '#title': 'Yhteisön osoite' @@ -118,7 +125,7 @@ elements: |- '#states': visible: ':input[name="applicant_type"]': - 'value': registered_community + value: registered_community tilinumero: '#type': webform_section '#title': Tilinumero @@ -180,6 +187,7 @@ elements: |- 44: '44' 45: '45' 46: '46' + '#onlyOneSubventionPerApplication': 1 '#required': true '#multiple__header': true '#multiple__empty_items': 0 @@ -192,7 +200,7 @@ elements: |- - subventions markup: '#type': webform_markup - '#markup': '

Hae yhdellä hakemuksella aina vain yhtä avustuslajia kerrallaan.

' + '#markup': '

Hae yhdellä hakemuksella aina vain yhtä avustuslajia kerrallaan. Kirjaa tähän avustussumma vain sen vuoden osalta, jolle haet avustusta tällä hakemuksella.

' info_kyseessa_on_monivuotinen_avustus: '#type': webform_markup '#markup': | @@ -203,7 +211,6 @@ elements: |-
Myöntävä vastaus avaa lisäkysymyksen
- '#format': full_html kyseessa_on_monivuotinen_avustus: '#type': radios '#title': 'Kyseessä on monivuotinen avustus' @@ -290,7 +297,8 @@ elements: |- '#wrapper_attributes': class: - webform-element-help--wrapper-short - '#help': 'Tässä tarkoitetaan festivaalia tai tapahtumaa, joka tapahtuu tiiviin ajanjakson sisällä ja on ohjelmaltaan ja kestoltaan laajempi kuin yksittäinen konsertti, esitys tms. Festivaali tai tapahtuma sisältää useampia eri ohjelmasisältöjä, esim. esityksiä, joiden välissä yleisö voi myös vaihtua. Esimerkiksi kaupunginosatapahtumat. Ei esimerkiksi esityssarjat. Festivaali tai tapahtuma voi olla toistuva tai kertaluonteinen.' + '#help': 'Festivaali tai tapahtuma sisältää useampia eri ohjelmasisältöjä, kuten esityksiä, joiden välissä yleisö voi myös vaihtua. Festivaaleja tai tapahtumia voivat olla esimerkiksi kaupunginosatapahtumat. Niitä eivät ole esimerkiksi esityssarjat tai laajemmat hankkeet, joita ei markkinoida festivaalina tai yhtenäisenä tapahtumana. Festivaali tai tapahtuma voi olla toistuva tai kertaluonteinen.' + '#description': 'Tässä tarkoitetaan festivaaliksi tai tapahtumaksi nimettyä ohjelmakokonaisuutta, joka tapahtuu tiiviin ajanjakson sisällä, mutta on ohjelmaltaan tai kestoltaan laajempi kuin yksittäinen konsertti, esitys, tms.' '#options': 1: Kyllä 0: Ei @@ -319,7 +327,6 @@ elements: |-
Myöntävä vastaus avaa lisäkysymyksen
- '#format': full_html olemme_saaneet_muita_avustuksia: '#type': radios '#title': 'Olemme saaneet muita avustuksia' @@ -356,7 +363,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: @@ -375,8 +381,8 @@ elements: |- class: - webform--small '#maxlength': 4 - '#pattern': '^[0-9]*$' - '#pattern_error': 'Vain numeroita' + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' amount: '#type': textfield '#attributes': @@ -413,40 +419,44 @@ elements: |- - grants-fieldset - grants-fieldset-short members_applicant_person_global: - '#type': number + '#type': textfield '#title': 'Henkilöjäseniä yhteensä' - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': class: - webform--small members_applicant_person_local: - '#type': number + '#type': textfield '#title': 'Helsinkiläisiä henkilöjäseniä yhteensä' - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': class: - webform--small members_applicant_community_global: - '#type': number + '#type': textfield '#title': Yhteisöjäseniä - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': class: - webform--small members_applicant_community_local: - '#type': number + '#type': textfield '#title': 'Helsinkiläisiä yhteisöjäseniä yhteensä' - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': @@ -464,32 +474,47 @@ elements: |- - grants-fieldset - grants-fieldset-short kokoaikainen_henkilosto: - '#type': number + '#type': textfield '#title': 'Kokoaikaisia: Henkilöitä' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#attributes': class: - webform--small kokoaikainen_henkilotyovuosia: - '#type': number + '#type': textfield '#title': 'Kokoaikaisia: Henkilötyövuosia' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''2'', ''radixPoint'': '',''' + '#pattern': '^[0-9 ,]*$' '#attributes': class: - webform--small osa_aikainen_henkilosto: - '#type': number + '#type': textfield '#title': 'Osa-aikaisia: Henkilöitä' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#attributes': class: - webform--small osa_aikainen_henkilotyovuosia: - '#type': number + '#type': textfield '#title': 'Osa-aikaisia: Henkilötyövuosia' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''2'', ''radixPoint'': '',''' + '#pattern': '^[0-9 ,]*$' '#attributes': class: - webform--small vapaaehtoinen_henkilosto: - '#type': number + '#type': textfield '#title': Vapaaehtoisia + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#attributes': class: - webform--small @@ -501,22 +526,28 @@ elements: |- yleisolle_avoin_toiminta: '#type': webform_section '#title': 'Yleisölle avoin toiminta Helsingissä toteutetaan' + toiminta_markup: + '#type': webform_markup + '#markup': 'Jos hankkeeseen sisältyy Helsingissä järjestettävää yleisölle avointa toimintaa, ilmoita jo tiedossa olevat suunnitellut paikat tähän.' tila: '#type': premises_composite '#title': Tilat '#multiple': true '#title_display': before + '#multiple__no_items_message': '

Ei syötettyjä tiloja. Lisää tilan tiedot alta.

' '#multiple__min_items': 0 '#multiple__empty_items': 0 '#multiple__sorting': false '#multiple__add': false - '#multiple__no_items_message': 'Ei syötettyjä tiloja. Lisää tilan tiedot alta.' '#multiple__add_more_input': false + '#multiple__item_label': 'tila' + '#multiple__add_more_button_label': 'Lisää uusi tila' '#premiseType__access': false '#premiseAddress__access': false '#location__access': false '#streetAddress__access': false '#address__access': false + '#postCode__required': true '#studentCount__access': false '#specialStudents__access': false '#groupCount__access': false @@ -528,6 +559,8 @@ elements: |- '#free__access': false '#isOthersUse__access': false '#isOwnedByApplicant__access': false + '#citySection__access': false + '#premiseSuitability__access': false aikataulu: '#type': webform_section '#title': Aikataulu @@ -663,17 +696,20 @@ elements: |- talousarvio: '#type': webform_section '#title': Talousarvio - '#description': 'Koskien hankkeen sitä vuotta, jolle avustusta tällä hakemuksella haetaan.' + budget_markup: + '#type': webform_markup + '#markup': '

Koskien hankkeen sitä vuotta, jolle avustusta tällä hakemuksella haetaan.

' organisaatio_kuuluu_valtionosuusjarjestelmaan_vos_: '#type': radios '#required': true '#title': 'Organisaatio kuuluu valtionosuusjärjestelmään (VOS)' + '#help': 'Valitse kyllä, vain jos varmuudella tiedät organisaatiosi saavan rahoitusta juuri valtionosuuden muodossa. Tällä ei tarkoiteta kaikkia valtion myöntämiä avustuksia, vaan kyseessä on rajattua joukkoa koskeva lakisääteinen erillinen rahoitusmuoto. Taide- ja kulttuuritoimijoiden valtionosuudet ovat laskennallisiin osuuksiin, esimerkiksi henkilötyövuosiin ja niiden yksikköhintaan tai taiteen perusopetuksen opetustuntimäärään perustuvia tukia.' '#options': 1: Kyllä 0: Ei - tulot: - '#type': webform_section - '#title': 'Suunnitellut tulot' + tulot: + '#type': webform_markup + '#markup': '

Suunnitellut tulot

' budget_static_income: '#type': grants_budget_income_static '#title': '' @@ -695,6 +731,7 @@ elements: |- '#otherCompensationType__access': false '#incomeWithoutCompensations__access': false '#plannedOtherCompensations__help': 'Myös muut kaupungin avustukset.' + '#entryFees__help': 'Esim. lipunmyyntitulot' '#otherCompensations__access': false '#financialFundingAndInterests__access': false '#plannedTotalIncome__access': false @@ -703,12 +740,14 @@ elements: |- '#shareOfIncomeWithoutSubventions__access': false '#totalIncomeWithoutSubventions__access': false '#totalIncome__access': false - menot: - '#type': webform_section - '#title': 'Suunnitellut menot' + menot: + '#type': webform_markup + '#markup': '

Suunnitellut menot

' budget_other_cost: '#type': grants_budget_other_cost - '#title': 'Muut menot' + '#title': 'Muut kulut' + '#description': 'Lisää alle kaikki hankkeen suunnitellut menot kululuokittain.' + '#description_display': before '#multiple': true '#incomeGroup': general '#multiple__min_items': 1 @@ -716,9 +755,11 @@ elements: |- '#multiple__sorting': false '#multiple__add': false '#multiple__add_more_input': false - muu_huomioitava_panostus: - '#type': webform_section - '#title': 'Muu huomioitava panostus' + '#multiple__add_more_button_label': 'Lisää uusi kulu' + '#multiple__item_label': 'kulu' + muu_huomioitava_panostus: + '#type': webform_markup + '#markup': '

Muu huomioitava panostus

' sisaltyyko_toiminnan_toteuttamiseen_jotain_muuta_rahanarvoista_p: '#type': textarea '#attributes': @@ -734,7 +775,7 @@ elements: |- additional_information: '#type': textarea '#title': Lisätiedot - '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen tai ilmoittaa perustietoihin tulleista muutoksista ' + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' '#counter_type': character '#maxlength': 5000 '#attributes': @@ -749,17 +790,12 @@ elements: |- attachments_info: '#type': webform_markup '#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 projektisuunnitelma haetulle ajanjaksolle
- -
sekä budjetti haetulle ajanjaksolle. 
-
- Uusilta hakijoilta ja tapauksissa, joissa pankkiyhteystiedot ovat muuttuneet, tarvitaan hakijan Omiin tietoihin myös tiliote tai vastaava asiakirja, josta selviää tilinomistajan nimi ja tilinumero.
-
- Usean liitteen toimittaminen yhtenä tiedostona
- Voit halutessasi toimittaa useampia liitteitä yhtenä tiedostona. Merkitse tällöin muiden liiteotsikoiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”. +

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 projektisuunnitelma haetulle ajanjaksolle sekä budjetti haetulle ajanjaksolle.

+

Uusilta hakijoilta ja tapauksissa, joissa pankkiyhteystiedot ovat muuttuneet, tarvitaan hakijan Omiin tietoihin myös tiliote tai vastaava asiakirja, josta selviää tilinomistajan nimi ja tilinumero.

+

Usean liitteen toimittaminen yhtenä tiedostona

+

Voit halutessasi toimittaa useampia liitteitä yhtenä tiedostona. Merkitse tällöin muiden liiteotsikoiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

notification_attachments: '#type': webform_markup '#markup': | @@ -768,10 +804,9 @@ 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.

- '#format': full_html projektisuunnitelma_liite: '#type': grants_attachments '#title': Projektisuunnitelma @@ -791,13 +826,13 @@ elements: |- extra_info: '#type': textarea '#title': 'Lisäselvitys liitteistä' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' '#attributes': class: - webform--large - '#counter_type': character - '#maxlength': 5000 - '#counter_maximum': 5000 - '#counter_maximum_message': 'Max 5000 characters.' '#cols': 63 muu_liite: '#type': grants_attachments @@ -810,7 +845,7 @@ elements: |- '#multiple__add': false '#multiple__remove': false '#multiple__add_more_input': false - '#multiple__add_more_button_label': 'Lisää liite' + '#multiple__add_more_button_label': 'Lisää uusi liite' '#isDeliveredLater__access': false '#isIncludedInOtherFile__access': false actions: @@ -821,7 +856,7 @@ elements: |- '#wizard_prev__label': 'Edellinen' '#wizard_next__label': 'Seuraava' '#preview_prev__label': 'Edellinen' - '#preview_next__label': 'Esikatseluun >' + '#preview_next__label': 'Esikatseluun' '#delete_hide': false '#delete__label': 'Poista keskeneräinen' '#delete__attributes': @@ -990,13 +1025,13 @@ settings: wizard_start_label: '' wizard_preview_link: false wizard_confirmation: true - wizard_confirmation_label: '' + wizard_confirmation_label: '9. Valmis' wizard_auto_forward: true wizard_auto_forward_hide_next_button: false wizard_keyboard: true wizard_track: '' - wizard_prev_button_label: 'Edellinen' - wizard_next_button_label: 'Seuraava' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava wizard_toggle: true wizard_toggle_show_label: '' wizard_toggle_hide_label: '' diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.taide_ja_kulttuuriavustukset_tai.yml b/public/modules/custom/grants_handler/config/install/webform.webform.taide_ja_kulttuuriavustukset_tai.yml index 248cd931de..7387ded3b7 100644 --- a/public/modules/custom/grants_handler/config/install/webform.webform.taide_ja_kulttuuriavustukset_tai.yml +++ b/public/modules/custom/grants_handler/config/install/webform.webform.taide_ja_kulttuuriavustukset_tai.yml @@ -14,15 +14,21 @@ third_party_settings: applicantTypes: registered_community: registered_community applicationTypeTerms: - 45: '45' + 62: '62' applicationTargetGroup: '22' - applicationOpen: '2022-10-02T11:08:26' - applicationClose: '2023-07-31T11:19:00' + applicationOpen: '2024-06-05T08:26:00' + applicationClose: '2024-10-12T10:00:00' applicationContinuous: 0 - disableCopying: 0 + disableCopying: 1 applicationActingYearsType: next_x_years - applicationActingYears: { } + applicationActingYears: + 2024: '2024' + 2025: '2025' + 2026: '2026' applicationActingYearsNextCount: '1' + status: released + parent: '' + avus2BreakingChange: false weight: 0 open: null close: null @@ -31,8 +37,9 @@ template: false archive: false id: taide_ja_kulttuuriavustukset_tai title: 'Taiteen perusopetuksen avustukset' -description: KUVAPERUS -category: '' +description: '

KUVAPERUS

' +categories: + - Tuotannossa elements: |- avustukset_summa: '#type': grants_webform_summation_field @@ -137,7 +144,7 @@ elements: |- '#markup': 'Tiedot on haettu hakuprofiilistasi.' hakijan_tiedot: '#type': applicant_info - '#title': 'Hakija' + '#title': Hakija contact_person_email_section: '#type': webform_section '#title': Sähköposti @@ -150,6 +157,7 @@ elements: |- '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' '#size': 63 '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' '#required': true contact_person_section: '#type': webform_section @@ -240,7 +248,8 @@ elements: |- '#title': Avustukset '#multiple': true '#subventionType': - 1: '1' + 34: '34' + '#onlyOneSubventionPerApplication': 1 '#required': true '#multiple__header': true '#multiple__empty_items': 0 @@ -252,13 +261,10 @@ elements: |- class: - subventions '#subvention_type': - 1: '1' + 34: '34' '#subvention_type_id__access': false '#subvention_type__title': Avustuslaji '#subvention_amount__title': 'Avustuksen summa' - markup: - '#type': webform_markup - '#markup': '

Hae yhdellä hakemuksella aina vain yhtä avustuslajia kerrallaan.

' ensisijainen_taiteen_ala: '#type': select '#title': 'Ensisijainen taiteenala' @@ -304,7 +310,6 @@ elements: |- - '#format': full_html olemme_saaneet_muita_avustuksia: '#type': radios '#title': 'Olemme saaneet muita avustuksia' @@ -341,7 +346,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: @@ -357,11 +361,11 @@ elements: |- '#required': true '#title': Vuosi '#maxlength': 4 - '#pattern': '^[0-9]*$' + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' '#attributes': class: - webform--small - '#pattern_error': 'Vain numeroita' amount: '#type': textfield '#required': true @@ -398,40 +402,40 @@ elements: |- - grants-fieldset - grants-fieldset-short members_applicant_person_global: - '#type': number + '#type': textfield '#title': 'Henkilöjäseniä yhteensä' - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': class: - webform--small members_applicant_person_local: - '#type': number + '#type': textfield '#title': 'Helsinkiläisiä henkilöjäseniä yhteensä' - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': class: - webform--small members_applicant_community_global: - '#type': number + '#type': textfield '#title': Yhteisöjäseniä - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': class: - webform--small members_applicant_community_local: - '#type': number + '#type': textfield '#title': 'Helsinkiläisiä yhteisöjäseniä yhteensä' - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': @@ -452,7 +456,6 @@ elements: |-

Vastaa hakuhetken tilanteen mukaisesti.

- '#format': full_html taiteellisen_toiminnan_tilaa_omistuksessa_tai_ymparivuotisesti_p: '#type': radios '#title': 'Taiteellisen toiminnan tilaa omistuksessa tai ympärivuotisesti päävuokralaisena' @@ -480,7 +483,10 @@ elements: |- '#multiple__sorting': false '#multiple__add': false '#multiple__add_more_input': false + '#multiple__item_label': 'tila' + '#multiple__add_more_button_label': 'Lisää uusi tila' '#premiseAddress__access': false + '#postCode__required': true '#location__access': false '#streetAddress__access': false '#address__access': false @@ -498,7 +504,7 @@ elements: |- '#premiseSuitability__access': false 4_toiminta: '#type': webform_wizard_page - '#title': '4. Toiminta' + '#title': '4. Toteutunut toiminta' '#prev_button_label': 'Edellinen' '#next_button_label': 'Seuraava' tiedot_opetuksesta: @@ -507,66 +513,138 @@ elements: |- markup_01: '#type': webform_markup '#markup': 'Oppilaat 20.9. Vain helsinkiläiset 0-19 vuotiaat oppilaat.' - kaikki: + varhaisian_opinnot_fieldset: '#type': fieldset - '#title': Kaikki + '#title': 'Varhaisiän opinnot' '#attributes': class: - grants-fieldset - grants-fieldset-short varhaisian_opinnot: - '#type': number - '#title': 'Varhaisiän opinnot' - laaja_oppimaara_perusopinnot: - '#type': number - '#title': 'Laaja oppimäärä perusopinnot' - laaja_oppimaara_syventavat_opinnot: - '#type': number - '#title': 'Laaja oppimäärä syventävät opinnot' - yleinen_oppimaara: - '#type': number - '#title': 'Yleinen oppimäärä' - tytot: + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': Kaikki + '#attributes': + class: + - webform--small + tytot_varhaisian_opinnot: + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': Tytöt + '#attributes': + class: + - webform--small + pojat_varhaisian_opinnot: + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': Pojat + '#attributes': + class: + - webform--small + laaja_oppimaara_perusopinnot_fieldset: '#type': fieldset - '#title': Tytöt + '#title': 'Laaja oppimäärä perusopinnot' '#attributes': class: - grants-fieldset - grants-fieldset-short - tytot_varhaisian_opinnot: - '#type': number - '#title': 'Varhaisiän opinnot' + laaja_oppimaara_perusopinnot: + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': Kaikki + '#attributes': + class: + - webform--small tytot_laaja_oppimaara_perusopinnot: - '#type': number - '#title': 'Laaja oppimäärä perusopinnot' - tytot_laaja_oppimaara_syventavat_opinnot: - '#type': number - '#title': 'Laaja oppimäärä syventävät opinnot' - tytot_yleinen_oppimaara: - '#type': number - '#title': 'Yleinen oppimäärä' - pojat: + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': Tytöt + '#attributes': + class: + - webform--small + pojat_laaja_oppimaara_perusopinnot: + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': Pojat + '#attributes': + class: + - webform--small + laaja_oppimaara_syventavat_opinnot_fieldset: '#type': fieldset - '#title': Pojat + '#title': 'Laaja oppimäärä syventävät opinnot' '#attributes': class: - grants-fieldset - grants-fieldset-short - pojat_varhaisian_opinnot: - '#type': number - '#title': 'Varhaisiän opinnot' - pojat_laaja_oppimaara_perusopinnot: - '#type': number - '#title': 'Laaja oppimäärä perusopinnot' + laaja_oppimaara_syventavat_opinnot: + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': Kaikki + '#attributes': + class: + - webform--small + tytot_laaja_oppimaara_syventavat_opinnot: + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': Tytöt + '#attributes': + class: + - webform--small pojat_laaja_oppimaara_syventavat_opinnot: - '#type': number - '#title': 'Laaja oppimäärä syventävät opinnot' + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': Pojat + '#attributes': + class: + - webform--small + yleinen_oppimaara_fieldset: + '#type': fieldset + '#title': 'Yleinen oppimäärä' + '#attributes': + class: + - grants-fieldset + - grants-fieldset-short + yleinen_oppimaara: + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': Kaikki + '#attributes': + class: + - webform--small + tytot_yleinen_oppimaara: + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': Tytöt + '#attributes': + class: + - webform--small pojat_yleinen_oppimaara: - '#type': number - '#title': 'Yleinen oppimäärä' + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': Pojat + '#attributes': + class: + - webform--small koko_opetushenkiloston_lukumaara_20_9: - '#type': number + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Koko opetushenkilöstön lukumäärä 20.9' + '#attributes': + class: + - webform--small kuvaile_oppilaaksi_ottamisen_tapaa: '#type': textarea '#title': 'Kuvaile oppilaaksi ottamisen tapaa' @@ -581,7 +659,7 @@ elements: |- '#counter_maximum_message': '%d/1000 merkkiä jäljellä' onko_vapaa_oppilaspaikkoja_montako_: '#type': textarea - '#title': 'Onko vapaa oppilaspaikkoja? Montako?' + '#title': 'Onko vapaaoppilaspaikkoja? Jos on, niin kuinka monta?' opetustunnit_helsingissa_edellisena_paattyneena_tilivuonna: '#type': fieldset '#title': 'Opetustunnit Helsingissä edellisenä päättyneenä tilivuonna' @@ -590,20 +668,41 @@ elements: |- - grants-fieldset - grants-fieldset-short opetustunnit_varhaisian_opinnot: - '#type': number + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Varhaisiän opinnot' + '#attributes': + class: + - webform--small opetustunnit_laaja_oppimaara_perusopinnot: - '#type': number - '#title': 'Laaja oppimäärä, perusopinnot' + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#title': 'Laaja oppimäärä perusopinnot' + '#attributes': + class: + - webform--small opetustunnit_laaja_oppimaara_syventavat_opinnot: - '#type': number + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Laaja oppimäärä syventävät opinnot' + '#attributes': + class: + - webform--small opetustunnit_yleinen_oppimaara: - '#type': number + '#type': textfield + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#title': 'Yleinen oppimäärä' + '#attributes': + class: + - webform--small helsingissa_jarjestettava: '#type': webform_section '#title': 'Helsingissä järjestettävä yleisölle avoin toiminta toteutettiin' + '#description': 'Kirjaa kaikkien eri Helsingissä olevien opetuspaikkojen tiedot edellisenä päättyneenä tilivuonna.' helsingissa_jarjestettava_tila: '#type': premises_composite '#title': Tila @@ -613,7 +712,11 @@ elements: |- '#multiple__sorting': false '#multiple__add': false '#multiple__add_more_input': false + '#multiple__item_label': 'tila' + '#multiple__add_more_button_label': 'Lisää uusi tila' + '#premiseType__access': false '#premiseAddress__access': false + '#postCode__required': true '#location__access': false '#streetAddress__access': false '#address__access': false @@ -629,6 +732,7 @@ elements: |- '#isOthersUse__access': false '#isOthersUse__title': 'Tilaa tarjotaan muiden käyttöön (ilmaiseksi tai vuokralla)' '#isOwnedByApplicant__access': false + '#citySection__help': 'Kaupunkiympäristön toimialan tiloja ovat esimerkiksi koulujen opetustilat. Kulttuurin ja vapaa-ajan toimialan tiloja ovat esimerkiksi kulttuuri-, kirjasto-, nuoriso- tai liikuntapalveluiden hallinnoimat tilat.Kasvatuksen ja koulutuksen toimialan tiloja ovat esimerkiksi työväenopiston tilat.' 5_toiminnan_lahtokohdat: '#type': webform_wizard_page '#title': '5. Toiminnan lähtökohdat' @@ -678,7 +782,7 @@ elements: |- '#title': 'Toiminnan kehittyminen' toiminta_tavoitteet: '#type': textarea - '#title': 'Mitkä olivat keskeisimmät edelliselle kaudelle asetetut tavoitteet ja saavutettiinko ne?' + '#title': 'Mitkä olivat keskeisimmät edelliselle vuodelle asetetut tavoitteet ja saavutettiinko ne?' '#maxlength': 1000 '#attributes': class: @@ -722,17 +826,17 @@ elements: |-
Koskien sitä vuotta, jolle avustusta tällä hakemuksella haetaan
- '#format': full_html organisaatio_kuuluu_valtionosuusjarjestelmaan_vos_: '#type': radios '#required': true '#title': 'Organisaatio kuuluu valtionosuusjärjestelmään (VOS)' + '#help': 'Valitse kyllä, vain jos varmuudella tiedät organisaatiosi saavan rahoitusta juuri valtionosuuden muodossa. Tällä ei tarkoiteta kaikkia valtion myöntämiä avustuksia, vaan kyseessä on rajattua joukkoa koskeva lakisääteinen erillinen rahoitusmuoto. Taide- ja kulttuuritoimijoiden valtionosuudet ovat laskennallisiin osuuksiin, esimerkiksi henkilötyövuosiin ja niiden yksikköhintaan tai taiteen perusopetuksen opetustuntimäärään perustuvia tukia.' '#options': 1: Kyllä 0: Ei - suunnitellut_tulot: - '#type': webform_section - '#title': 'Suunnitellut tulot' + suunnitellut_tulot: + '#type': webform_markup + '#markup': '

Suunnitellut tulot

' budget_static_income: '#type': grants_budget_income_static '#title': '' @@ -752,6 +856,7 @@ elements: |- '#plannedOtherCompensations__required': true '#sponsorships__required': true '#entryFees__required': true + '#entryFees__help': 'Esim. lipunmyyntitulot' '#sales__required': true '#financialFundingAndInterests__required': true '#customerFees__access': false @@ -767,9 +872,9 @@ elements: |- '#shareOfIncomeWithoutSubventions__access': false '#totalIncomeWithoutSubventions__access': false '#totalIncome__access': false - suunnitellut_menot_osio: - '#type': webform_section - '#title': 'Suunnitellut menot' + suunnitellut_menot_osio: + '#type': webform_markup + '#markup': '

Suunnitellut menot

' suunnitellut_menot: '#type': grants_budget_cost_static '#title': '' @@ -834,18 +939,17 @@ elements: |-
Edellisenä päättyneenä tilivuonna. Tilinpäätöksen mukaisesti.
- '#format': full_html organisaatio_kuului_valtionosuusjarjestelmaan_vos_: '#type': radios '#required': true '#title': 'Organisaatio kuului valtionosuusjärjestelmään (VOS)' + '#help': 'Valitse kyllä, vain jos varmuudella tiedät organisaatiosi saaneen rahoitusta juuri valtionosuuden muodossa. Tällä ei tarkoiteta kaikkia valtion myöntämiä avustuksia, vaan kyseessä on rajattua joukkoa koskeva lakisääteinen erillinen rahoitusmuoto. Taide- ja kulttuuritoimijoiden valtionosuudet ovat laskennallisiin osuuksiin, esimerkiksi henkilötyövuosiin ja niiden yksikköhintaan tai taiteen perusopetuksen opetustuntimäärään perustuvia tukia.' '#options': 1: Kyllä 0: Ei - toteutuneet_tulot: - '#type': webform_section - '#title': 'Toteutuneet tulot' - '#title_tag': h3 + toteutuneet_tulot: + '#type': webform_markup + '#markup': '

Toteutuneet tulot

' toteutuneet_tulot_data: '#type': grants_budget_income_static '#title': '' @@ -882,9 +986,9 @@ elements: |- '#totalIncomeWithoutSubventions__access': false '#totalIncome__help': 'Kirjaa tähän kaikki tulot yhteensä, sisältäen myös jo aiemmissa kohdissa kirjatut avustukset.' '#totalIncome__required': true - toteutuneet_menot_osio: - '#type': webform_section - '#title': 'Toteutuneet menot' + toteutuneet_menot_osio: + '#type': webform_markup + '#markup': '

Toteutuneet menot

' menot_yhteensa: '#type': grants_budget_cost_static '#title': '' @@ -947,7 +1051,7 @@ elements: |- additional_information: '#type': textarea '#title': Lisätiedot - '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen tai ilmoittaa perustietoihin tulleista muutoksista ' + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' '#counter_type': character '#attributes': class: @@ -962,18 +1066,14 @@ elements: |- attachments_info: '#type': webform_markup '#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ä tilivuodelta sekä liitteitä sille toimintavuodelle, jolle avustusta haetaan. Edellistä tilivuotta koskevat liitteet ovat: tilinpäätös, toimintakertomus ja tilin- tai toiminnantarkastuskertomus. Liitteet vuodelle, jolle avustusta haetaan ovat: talousarvio ja toimintasuunnitelma.
-
- Uusilta hakijoilta ja tapauksissa, joissa pankkiyhteystiedot ovat muuttuneet, tarvitaan hakijan Omiin tietoihin myös tiliote tai vastaava asiakirja, josta selviää tilinomistajan nimi ja tilinumero. Uusilta hakijoilta ja tapauksissa, joissa säännöt ovat muuttuneet edellisen hakemuksen jälkeen, tarvitaan myös yhdistyksen säännöt.
-
- 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
- Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. +

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ä tilivuodelta sekä liitteitä sille toimintavuodelle, jolle avustusta haetaan. Edellistä tilivuotta koskevat liitteet ovat: tilinpäätös, toimintakertomus ja tilin- tai toiminnantarkastuskertomus. Liitteet vuodelle, jolle avustusta haetaan ovat: talousarvio ja toimintasuunnitelma.

+

Uusilta hakijoilta ja tapauksissa, joissa pankkiyhteystiedot ovat muuttuneet, tarvitaan hakijan Omiin tietoihin myös tiliote tai vastaava asiakirja, josta selviää tilinomistajan nimi ja tilinumero. Uusilta hakijoilta ja tapauksissa, joissa säännöt ovat muuttuneet edellisen hakemuksen jälkeen, tarvitaan myös yhdistyksen säännöt.

+

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

+

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä.

notification_attachments: '#type': webform_markup '#markup': | @@ -982,10 +1082,9 @@ 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.

- '#format': full_html yhteison_saannot: '#type': grants_attachments '#title': 'Yhteisön säännöt' @@ -996,33 +1095,32 @@ elements: |- '#description__access': false vahvistettu_tilinpaatos_edelliselta_paattyneelta_tilikaudelta_: '#type': grants_attachments - '#title': 'Vahvistettu tilinpäätös (edelliseltä päättyneeltä tilikaudelta)' + '#title': 'Vahvistettu tilinpäätös (edelliseltä päättyneeltä tilivuodelta)' '#multiple': false '#filetype': '43' '#help': |- - Tilinpäätöksen täytyy sisältää vähintään tuloslaskelma ja tase. Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun ja allekirjoitetun tilinpäätöksen.
-
- Yhteisön tilikausi voi olla kalenterivuosi tai jokin muu kausi. Yhdistysten kohdalla niiden omissa säännöissä lukee, mikä on yhdistyksen tilikausi. +

Tilinpäätöksen täytyy sisältää vähintään tuloslaskelma ja tase. Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun ja allekirjoitetun tilinpäätöksen.

+

Yhteisön tilikausi voi olla kalenterivuosi tai jokin muu kausi. Yhdistysten kohdalla niiden omissa säännöissä lukee, mikä on yhdistyksen tilikausi.

'#title_display': '' '#description__access': false vahvistettu_toimintakertomus_edelliselta_paattyneelta_tilikaudel: '#type': grants_attachments - '#title': 'Vahvistettu toimintakertomus (edelliseltä päättyneeltä tilikaudelta)' + '#title': 'Vahvistettu toimintakertomus (edelliseltä päättyneeltä tilivuodelta)' '#multiple': false '#filetype': '4' '#help': |- - Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun toimintakertomuksen.
- Jos toimintakertomus on osana tilinpäätöstä ja liititte sen jo tilinpäätöksen mukana lomakkeelle, sitä ei tarvitse liittää tähän erikseen. Valitse tällaisessa tilanteessa toimintakertomuksen kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”. +

Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun toimintakertomuksen.

+

Jos toimintakertomus on osana tilinpäätöstä ja liititte sen jo tilinpäätöksen mukana lomakkeelle, sitä ei tarvitse liittää tähän erikseen. Valitse tällaisessa tilanteessa toimintakertomuksen kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

'#title_display': '' '#description__access': false vahvistettu_tilin_tai_toiminnantarkastuskertomus_edelliselta_paa: '#type': grants_attachments - '#title': 'Vahvistettu tilin- tai toiminnantarkastuskertomus (edelliseltä päättyneeltä tilikaudelta)' + '#title': 'Vahvistettu tilin- tai toiminnantarkastuskertomus (edelliseltä päättyneeltä tilivuodelta)' '#multiple': false '#filetype': '5' '#help': |- - "Liitä tähän allekirjoitettu tilin- tai toiminnantarkastuskertomus yhteisön edelliseltä päättyneeltä tilikaudelta.
- Jos allekirjoitettu tilin- tai toiminnantarkastuskertomus on osa yhteisönne tilinpäätöstä ja liitit sen jo lomakkeelle tilinpäätöksen kohdalla, valitse tässä kohdassa ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”." +

Liitä tähän allekirjoitettu tilin- tai toiminnantarkastuskertomus yhteisön edelliseltä päättyneeltä tilivuodelta.

+

Jos allekirjoitettu tilin- tai toiminnantarkastuskertomus on osa yhteisönne tilinpäätöstä ja liitit sen jo lomakkeelle tilinpäätöksen kohdalla, valitse tässä kohdassa ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

'#title_display': '' '#description__access': false toimintasuunnitelma_sille_vuodelle_jolle_haet_avustusta_monivuot: @@ -1030,7 +1128,7 @@ elements: |- '#title': 'Toimintasuunnitelma (sille vuodelle jolle haet avustusta) ' '#multiple': false '#filetype': '1' - '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma. , monivuotisissa koko avustuskaudelle sisältäen suunnitelman itsearviointityökalusta ja tasa-arvo- ja yhtenvertaisuussuunnitelmasta) ' + '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma.' '#title_display': '' '#description__access': false talousarvio_sille_vuodelle_jolle_haet_avustusta_monivuotisissa_k: @@ -1038,19 +1136,18 @@ elements: |- '#title': 'Talousarvio (sille vuodelle jolle haet avustusta) ' '#multiple': false '#filetype': '2' - '#help': 'Talousarvio (sille vuodelle jolle haet avustusta) monivuotisissa koko avustuskaudelle)' '#title_display': '' '#description__access': false extra_info: '#type': textarea '#title': 'Lisäselvitys liitteistä' + '#maxlength': 5000 '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' '#attributes': class: - webform--large - '#maxlength': 5000 - '#counter_maximum': 5000 - '#counter_maximum_message': 'Max 5000 characters.' '#cols': 63 muu_liite: '#type': grants_attachments @@ -1063,7 +1160,7 @@ elements: |- '#multiple__add': false '#multiple__remove': false '#multiple__add_more_input': false - '#multiple__add_more_button_label': 'Lisää liite' + '#multiple__add_more_button_label': 'Lisää uusi liite' '#isDeliveredLater__access': false '#isIncludedInOtherFile__access': false actions: @@ -1074,7 +1171,7 @@ elements: |- '#wizard_prev__label': 'Edellinen' '#wizard_next__label': 'Seuraava' '#preview_prev__label': 'Edellinen' - '#preview_next__label': 'Esikatseluun >' + '#preview_next__label': 'Esikatseluun' '#delete_hide': false '#delete__label': 'Poista keskeneräinen' '#delete__attributes': @@ -1159,13 +1256,13 @@ settings: wizard_start_label: '' wizard_preview_link: false wizard_confirmation: true - wizard_confirmation_label: '' + wizard_confirmation_label: '9. Valmis' wizard_auto_forward: true wizard_auto_forward_hide_next_button: false wizard_keyboard: true wizard_track: '' - wizard_prev_button_label: 'Edellinen' - wizard_next_button_label: 'Seuraava' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava wizard_toggle: true wizard_toggle_show_label: '' wizard_toggle_hide_label: '' diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.yleisavustushakemus.yml b/public/modules/custom/grants_handler/config/install/webform.webform.yleisavustushakemus.yml index 4b41aea17c..c1ddcb316b 100644 --- a/public/modules/custom/grants_handler/config/install/webform.webform.yleisavustushakemus.yml +++ b/public/modules/custom/grants_handler/config/install/webform.webform.yleisavustushakemus.yml @@ -15,15 +15,16 @@ third_party_settings: 49: '49' applicationOpen: '2022-10-03T11:08:26' applicationClose: '2023-07-30T11:19:00' - applicationContinuous: 0 - applicationTargetGroup: '12' + applicationContinuous: 1 + applicationTargetGroup: '20' disableCopying: 0 applicationTypeSelect: '29' - applicationIndustry: KASKO - applicationActingYears: - 2023: '2023' - 2024: '2024' - 2025: '2025' + applicationIndustry: KANSLIA + applicationActingYears: { } + applicationActingYearsType: current_and_next_x_years + applicationActingYearsNextCount: '2' + status: released + parent: '' weight: 0 open: null close: null @@ -31,9 +32,10 @@ uid: 1 template: false archive: false id: yleisavustushakemus -title: 'Kaupunginhallituksen yleisavustushakemus' -description: MVP-lomake -category: '' +title: 'Kaupunginhallitus, yleisavustushakemus' +description: '

ECONOMICGRANTAPPLICATION

' +categories: + - Tuotannossa elements: |- applicant_type: '#type': hidden @@ -110,7 +112,7 @@ elements: |- '#markup': '
Tiedot on haettu Patentti- ja rekisterihallinnon rekisteristä (PRH), eikä niitä voi tämän takia muokata.
' hakijan_tiedot: '#type': applicant_info - '#title': 'Hakija' + '#title': Hakija contact_person_email_section: '#type': webform_section '#title': Sähköposti @@ -123,6 +125,7 @@ elements: |- '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' '#size': 63 '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' '#required': true contact_person_section: '#type': webform_section @@ -151,7 +154,7 @@ elements: |- '#states': visible: ':input[name="applicant_type"]': - 'value': registered_community + value: registered_community community_address: '#type': community_address_composite '#title': 'Yhteisön osoite' @@ -163,7 +166,7 @@ elements: |- '#states': visible: ':input[name="applicant_type"]': - 'value': registered_community + value: registered_community tilinumero: '#type': webform_section '#title': Tilinumero @@ -223,27 +226,25 @@ elements: |- '#type': grants_compensations '#title': Avustukset '#multiple': true - '#multiple__add': false - '#multiple__add_more': false - '#multiple__empty_items': 0 - '#multiple__remove': false - '#multiple__sorting': false - '#multiple__header': true '#subventionType': 6: '6' + '#onlyOneSubventionPerApplication': 1 + '#required': true + '#multiple__header': true + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more': false + '#attributes': + class: + - subventions '#subvention_type': 1: '1' 6: '6' '#subvention_type_id__access': false '#subvention_type__title': Avustuslaji '#subvention_amount__title': 'Avustuksen summa' - '#attributes': - class: - - subventions - '#required': true - markup_01: - '#type': webform_markup - '#markup': '

Hae yhdellä hakemuksella aina vain yhtä avustuslajia kerrallaan.

' kayttotarkoitus: '#type': webform_section '#title': Käyttötarkoitus @@ -275,7 +276,6 @@ elements: |- - '#format': full_html olemme_saaneet_muita_avustuksia: '#type': radios '#title': 'Olemme saaneet muita avustuksia' @@ -311,7 +311,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: @@ -330,8 +329,8 @@ elements: |- class: - webform--small '#maxlength': 4 - '#pattern': '^[0-9]*$' - '#pattern_error': 'Vain numeroita' + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' amount: '#type': textfield '#required': true @@ -366,7 +365,6 @@ elements: |- - '#format': full_html olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: '#type': radios '#title': 'Olemme hakeneet avustuksia muualta kuin Helsingin kaupungilta' @@ -401,7 +399,6 @@ elements: |- 3: EU 4: Muu 5: Säätiö - 6: STEA '#required': true '#title': 'Avustuksen myöntäjä' issuer_name: @@ -420,8 +417,8 @@ elements: |- - webform--small '#title': Vuosi '#maxlength': 4 - '#pattern': '^[0-9]*$' - '#pattern_error': 'Vain numeroita' + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' amount: '#type': textfield '#required': true @@ -450,13 +447,13 @@ elements: |- benefits_loans: '#type': textarea '#title': 'Kuvaus lainoista ja takauksista' - '#maxlength': 500 + '#maxlength': 5000 '#counter_type': character - '#counter_maximum': 500 + '#counter_maximum': 5000 '#attributes': class: - webform--large - '#counter_maximum_message': '%d/500 merkkiä jäljellä' + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' '#cols': 63 kaupungilta_saatu_tiloihin_liittyva_tuki: '#type': webform_section @@ -467,13 +464,13 @@ elements: |- benefits_premises: '#type': textarea '#title': 'Kuvaus tiloihin liittyvästä tuesta' - '#maxlength': 500 + '#maxlength': 5000 '#counter_type': character '#attributes': class: - webform--large - '#counter_maximum': 500 - '#counter_maximum_message': '%d/500 merkkiä jäljellä' + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' '#cols': 63 edellisen_avustuksen_kayttoselvitys: '#type': webform_section @@ -489,7 +486,6 @@ elements: |- - '#format': full_html compensation_boolean: '#type': radios '#title': 'Käyttöselvitys edellisenä vuonna saamastani avustuksesta' @@ -510,7 +506,6 @@ elements: |- '#help': 'Käyttöselvityksessä tulee kuvata lyhyesti, miten myönnetty avustus on käytetty. Avustuksen saajan on järjestettävä kirjanpitonsa niin, että avustuksen käyttöä voidaan sieltä seurata. Esimerkiksi jos yhteisö on saanut vuokra-avustusta, tilinpäätöksen tuloslaskelmasta tulee käydä ilmi avustuksen toteutuminen sekä tuloissa että menoissa. Lisää tietoja avustuksen käytöstä voi myös kirjoittaa erilliseen liitteeseen, jonka voi palauttaa Käyttöselvitys-liite kohdasta.' '#maxlength': 5000 '#counter_type': character - '#counter_minimum': 1 '#counter_maximum': 5000 '#counter_maximum_message': '%d/5000 merkkiä jäljellä' '#states': @@ -536,6 +531,10 @@ elements: |- '#type': textarea '#title': 'Toiminnan kuvaus' '#help': 'Tieto haetaan omat tiedot -osiosta' + '#maxlength': 500 + '#counter_type': character + '#counter_maximum': 500 + '#counter_maximum_message': '%d/500 merkkiä jäljellä' community_practices_business: '#type': radios '#title': 'Harjoittaako yhteisö liiketoimintaa' @@ -544,6 +543,7 @@ elements: |- 0: Ei '#options_display': side_by_side '#options_description_display': help + '#required': true ensimmainen_otsikko: '#type': webform_section '#title': Jäsenmaksut @@ -577,44 +577,48 @@ elements: |- - grants-fieldset - grants-fieldset-short members_applicant_person_global: - '#type': number + '#type': textfield '#title': 'Henkilöjäseniä yhteensä' '#help': 'Kuinka monta jäsenmaksun maksanutta henkilöjäsentä yhteisöllä on tällä hetkellä?' - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': class: - webform--small members_applicant_person_local: - '#type': number + '#type': textfield '#title': 'Helsinkiläisiä henkilöjäseniä yhteensä' '#help': 'Kuinka monta jäsenmaksun maksanutta helsinkiläistä henkilöjäsentä yhteisöllä on tällä hetkellä?' - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': class: - webform--small members_applicant_community_global: - '#type': number + '#type': textfield '#title': Yhteisöjäseniä '#help': 'Kuinka monta jäsenmaksun maksanutta yhteisöjäsentä yhteisöllä on tällä hetkellä? Yhteisöjäseniä ovat muut kuin henkilöjäsenet, esimerkiksi yhdistykset, säätiöt, yritykset tai kunnat.' - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': class: - webform--small members_applicant_community_local: - '#type': number + '#type': textfield '#title': 'Helsinkiläisiä yhteisöjäseniä yhteensä' '#help': 'Kuinka monta jäsenmaksun maksanutta helsinkiläistä yhteisöjäsentä yhteisöllä on tällä hetkellä? Yhteisöjäseniä ovat muut kuin henkilöjäsenet, esimerkiksi yhdistykset, säätiöt, yritykset tai kunnat.' - '#maxlength': 7 - '#pattern': '^[0-9]*$' + '#maxlength': 9 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' '#pattern_error': 'Vain numeroita' '#size': 16 '#attributes': @@ -629,7 +633,7 @@ elements: |- additional_information: '#type': textarea '#title': Lisätiedot - '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen tai ilmoittaa perustietoihin tulleista muutoksista ' + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' '#counter_type': character '#attributes': class: @@ -644,17 +648,13 @@ elements: |- attachments_info: '#type': webform_markup '#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. 
-
- 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
- Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.
-   +

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.

+

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

+

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

notification_attachments: '#type': webform_markup '#markup': | @@ -663,15 +663,15 @@ 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.

- '#format': full_html yhteison_saannot: '#type': grants_attachments '#title': 'Yhteisön säännöt' '#multiple': false '#filetype': '7' + '#help': 'Uusi hakija tai säännöt muuttuneet.' '#title_display': '' '#description__access': false vahvistettu_tilinpaatos: @@ -680,8 +680,8 @@ elements: |- '#multiple': false '#filetype': '43' '#help': |- - Tilinpäätöksen täytyy sisältää vähintään tuloslaskelma ja tase. Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun ja allekirjoitetun tilinpäätöksen.
- Yhteisön tilikausi voi olla kalenterivuosi tai jokin muu kausi. Yhdistysten kohdalla niiden omissa säännöissä lukee, mikä on yhdistyksen tilikausi. +

Tilinpäätöksen täytyy sisältää vähintään tuloslaskelma ja tase. Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun ja allekirjoitetun tilinpäätöksen.

+

Yhteisön tilikausi voi olla kalenterivuosi tai jokin muu kausi. Yhdistysten kohdalla niiden omissa säännöissä lukee, mikä on yhdistyksen tilikausi.

'#title_display': before '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi sisältö alta.' '#description__access': false @@ -691,9 +691,8 @@ elements: |- '#multiple': false '#filetype': '4' '#help': |- - Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun toimintakertomuksen.
- Jos toimintakertomus on osana tilinpäätöstä ja liititte sen jo tilinpäätöksen mukana lomakkeelle, sitä ei tarvitse liittää tähän erikseen. Valitse tällaisessa tilanteessa toimintakertomuksen kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.
-   +

Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun toimintakertomuksen.

+

Jos toimintakertomus on osana tilinpäätöstä ja liititte sen jo tilinpäätöksen mukana lomakkeelle, sitä ei tarvitse liittää tähän erikseen. Valitse tällaisessa tilanteessa toimintakertomuksen kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

'#title_display': before '#description__access': false vahvistettu_tilin_tai_toiminnantarkastuskertomus: @@ -702,9 +701,8 @@ elements: |- '#multiple': false '#filetype': '5' '#help': |- - Liitä tähän allekirjoitettu tilin- tai toiminnantarkastuskertomus yhteisön edelliseltä päättyneeltä tilikaudelta.
- Jos allekirjoitettu tilin- tai toiminnantarkastuskertomus on osa yhteisönne tilinpäätöstä ja liitit sen jo lomakkeelle tilinpäätöksen kohdalla, valitse tässä kohdassa ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.
-   +

Liitä tähän allekirjoitettu tilin- tai toiminnantarkastuskertomus yhteisön edelliseltä päättyneeltä tilivuodelta.

+

Jos allekirjoitettu tilin- tai toiminnantarkastuskertomus on osa yhteisönne tilinpäätöstä ja liitit sen jo lomakkeelle tilinpäätöksen kohdalla, valitse tässä kohdassa ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

'#title_display': before '#description__access': false vuosikokouksen_poytakirja: @@ -712,7 +710,7 @@ elements: |- '#title': 'Vuosikokouksen pöytäkirja, jossa on vahvistettu edellisen päättyneen tilikauden tilinpäätös' '#multiple': false '#filetype': '8' - '#help': 'Liitä tähän yhteisön kokouksen pöytäkirja, jossa edellisen päättyneen tilikauden tilinpäätös on vahvistettu ja vastuuvapaus myönnetty. Yhdistyksillä tilinpäätös vahvistetaan aina yhdistyksen jäsenkokouksessa. Mikäli yhteisöltä ei edellytetä vuosikokousta tai muuta yhteisön kokousta, jossa tilinpäätös tulisi vahvistaa ja vastuuvapaus myöntää, ei tätä liitettä tarvitse toimittaa.' + '#help': 'Liitä tähän yhteisön kokouksen pöytäkirja, jossa edellisen päättyneen tilikauden tilinpäätös on vahvistettu ja vastuuvapaus myönnetty. Yhdistyksillä tilinpäätös vahvistetaan aina yhdistyksen jäsenkokouksessa. Mikäli yhteisöltä ei edellytetä vuosikokousta tai muuta yhteisön kokousta, jossa tilinpäätös tulisi vahvistaa ja vastuuvapaus myöntää, ei tätä liitettä tarvitse toimittaa.' '#title_display': before '#description__access': false toimintasuunnitelma: @@ -720,7 +718,7 @@ elements: |- '#title': 'Toimintasuunnitelma (sille vuodelle jolle haet avustusta)' '#multiple': false '#filetype': '1' - '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma. ' + '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma. ' '#title_display': before '#description__access': false talousarvio: @@ -728,7 +726,7 @@ elements: |- '#title': 'Talousarvio (sille vuodelle jolle haet avustusta)' '#multiple': false '#filetype': '2' - '#help': 'Liitä tähän koko yhteisön talousarvio.' + '#help': 'Liitä tähän koko yhteisön talousarvio.' '#title_display': before '#description__access': false extra_info: @@ -753,7 +751,7 @@ elements: |- '#multiple__add': false '#multiple__remove': false '#multiple__add_more_input': false - '#multiple__add_more_button_label': 'Lisää liite' + '#multiple__add_more_button_label': 'Lisää uusi liite' '#isDeliveredLater__access': false '#isIncludedInOtherFile__access': false actions: @@ -764,7 +762,7 @@ elements: |- '#wizard_prev__label': 'Edellinen' '#wizard_next__label': 'Seuraava' '#preview_prev__label': 'Edellinen' - '#preview_next__label': 'Esikatseluun >' + '#preview_next__label': 'Esikatseluun' '#delete_hide': false '#delete__label': 'Poista keskeneräinen' '#delete__attributes': @@ -849,13 +847,13 @@ settings: wizard_start_label: '' wizard_preview_link: false wizard_confirmation: true - wizard_confirmation_label: '' + wizard_confirmation_label: '6. Valmis' wizard_auto_forward: true wizard_auto_forward_hide_next_button: false wizard_keyboard: true wizard_track: '' - wizard_prev_button_label: 'Edellinen' - wizard_next_button_label: 'Seuraava' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava wizard_toggle: true wizard_toggle_show_label: '' wizard_toggle_hide_label: '' diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.ymparistopalvelut_yleisavustus.yml b/public/modules/custom/grants_handler/config/install/webform.webform.ymparistopalvelut_yleisavustus.yml new file mode 100644 index 0000000000..a8987471ab --- /dev/null +++ b/public/modules/custom/grants_handler/config/install/webform.webform.ymparistopalvelut_yleisavustus.yml @@ -0,0 +1,885 @@ +uuid: 7dab7cb0-958e-401c-915e-8db0fba23991 +langcode: fi +status: open +dependencies: + module: + - grants_handler + - grants_metadata +third_party_settings: + grants_metadata: + applicationTypeSelect: '61' + applicationType: YMPARISTOYLEIS + applicationTypeID: '61' + applicationIndustry: KYMP + applicantTypes: + registered_community: registered_community + applicationTypeTerms: + 45: '45' + 52: '52' + 48: '48' + applicationTargetGroup: '31' + applicationOpen: '2025-01-01T00:01:00' + applicationClose: '2025-04-30T16:00:00' + applicationActingYearsType: next_x_years + applicationActingYears: { } + applicationActingYearsNextCount: '1' + applicationContinuous: 0 + disableCopying: 0 + status: released + parent: '' + avus2BreakingChange: false +weight: 0 +open: null +close: null +uid: 1 +template: false +archive: false +id: ymparistopalvelut_yleisavustus +title: 'Ympäristöpalvelut, yleisavustushakemus' +description: '

YMPARISTOYLEIS

' +categories: + - Tuotannossa +elements: |- + applicant_type: + '#type': hidden + '#title': 'Applicant type' + avustukset_summa: + '#type': grants_webform_summation_field + '#title': 'Avustukset summa' + '#title_display': none + '#description_display': invisible + '#collect_field': + subventions%%amount: subventions%%amount + application_number: 0 + applicant_type: 0 + status: 0 + hakijan_tiedot: 0 + email: 0 + contact_person: 0 + contact_person_phone_number: 0 + community_address: 0 + bank_account: 0 + community_officials: 0 + acting_year: 0 + subventions%%subventionTypeTitle: 0 + subventions%%subventionType: 0 + compensation_purpose: 0 + olemme_saaneet_muita_avustuksia: 0 + myonnetty_avustus: 0 + olemme_hakeneet_avustuksia_muualta_kuin_helsingin_kaupungilta: 0 + haettu_avustus_tieto: 0 + benefits_loans: 0 + benefits_premises: 0 + compensation_boolean: 0 + compensation_explanation: 0 + business_purpose: 0 + community_practices_business: 0 + fee_person: 0 + fee_community: 0 + members_applicant_person_local: 0 + members_applicant_person_global: 0 + members_applicant_community_local: 0 + members_applicant_community_global: 0 + additional_information: 0 + vahvistettu_tilinpaatos: 0 + vahvistettu_toimintakertomus: 0 + vahvistettu_tilin_tai_toiminnantarkastuskertomus: 0 + vuosikokouksen_poytakirja: 0 + toimintasuunnitelma: 0 + talousarvio: 0 + extra_info: 0 + muu_liite: 0 + '#data_type': euro + '#form_item': hidden + 1_hakijan_tiedot: + '#type': webform_wizard_page + '#title': '1. Hakijan tiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + application_number: + '#type': hidden + '#title': Hakemusnumero + '#disabled': true + status: + '#type': hidden + '#title': 'Hakemuksen tila' + '#readonly': true + yhteiso_jolle_haetaan_avustusta: + '#type': webform_section + '#title': 'Yhteisö, jolle haetaan avustusta' + '#attributes': + class: + - grants-profile--imported-section + prh_markup: + '#type': webform_markup + '#markup': '
Tiedot on haettu Patentti- ja rekisterihallinnon rekisteristä (PRH), eikä niitä voi tämän takia muokata.
' + hakijan_tiedot: + '#type': applicant_info + '#title': Hakija + contact_person_email_section: + '#type': webform_section + '#title': Sähköposti + contact_markup: + '#type': webform_markup + '#markup': 'Ilmoita tässä sellainen yhteisön sähköpostiosoite, jota luetaan aktiivisesti. Sähköpostiin lähetetään avustushakemukseen liittyviä yhteydenottoja esim. lisäselvitys- ja täydennyspyyntöjä.' + email: + '#type': email + '#title': Sähköpostiosoite + '#help': 'Ilmoita sähköpostiosoite, johon tähän hakemukseen liittyvät viestit sekä herätteet osoitetaan ja jota luetaan aktiivisesti' + '#size': 63 + '#autocomplete': 'off' + '#pattern': '(?:[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])' + '#required': true + contact_person_section: + '#type': webform_section + '#title': 'Hakemuksen yhteyshenkilö' + contact_person: + '#type': textfield + '#title': Yhteyshenkilö + '#autocomplete': 'off' + '#attributes': + class: + - webform--large + '#required': true + '#size': 63 + contact_person_phone_number: + '#type': textfield + '#attributes': + class: + - webform--medium + '#title': Puhelinnumero + '#required': true + '#autocomplete': 'off' + '#size': 32 + osoite: + '#type': webform_section + '#title': Osoite + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + community_address: + '#type': community_address_composite + '#title': 'Yhteisön osoite' + '#help': 'Jos haluat lisätä, poistaa tai muuttaa osoitetietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään osoitetietoa omiin tietoihin.' + '#attributes': + class: + - webform--large + '#required': true + '#states': + visible: + ':input[name="applicant_type"]': + value: registered_community + tilinumero: + '#type': webform_section + '#title': Tilinumero + bank_account: + '#type': bank_account_composite + '#title': Tilinumero + '#help': 'Jos haluat lisätä, poistaa tai muuttaa tilinumerotietoa tallenna hakemus luonnokseksi ja siirry ylläpitämään tilinumerotietoa omiin tietoihin.' + '#attributes': + class: + - webform--medium + '#required': true + toiminnasta_vastaavat_henkilot: + '#type': webform_section + '#title': 'Toiminnasta vastaavat henkilöt' + '#states': + visible: + ':input[name="applicant_type"]': + '!value': private_person + community_officials: + '#type': community_officials_composite + '#help': 'Jos haluat lisätä, poistaa tai muuttaa henkilöitä tallenna hakemus luonnokseksi ja siirry ylläpitämään henkilöiden tietoja omiin tietoihin.' + '#title': 'Valitse toiminnasta vastaavat henkilöt' + '#multiple': true + '#multiple__item_label': henkilö + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää henkilö' + '#wrapper_attributes': + class: + - community_officials_wrapper + '#attributes': + class: + - webform--large + 2_avustustiedot: + '#type': webform_wizard_page + '#title': '2. Avustustiedot' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + avustuksen_tiedot: + '#type': webform_section + '#title': 'Avustuksen tiedot' + acting_year: + '#type': select + '#title': 'Vuosi, jolle haen avustusta' + '#options': + 2022: '2022' + 2023: '2023' + 2024: '2024' + '#required': true + avustuslajit: + '#type': webform_section + '#title': Avustuslajit + subventions: + '#type': grants_compensations + '#title': Avustukset + '#multiple': true + '#subventionType': + 1: '1' + 5: '5' + 9: '9' + '#required': true + '#multiple__header': true + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more': false + '#attributes': + class: + - subventions + '#subvention_type': + 1: '1' + 6: '6' + '#subvention_type_id__access': false + '#subvention_type__title': Avustuslaji + '#subvention_amount__title': 'Avustuksen summa' + kayttotarkoitus: + '#type': webform_section + '#title': Käyttötarkoitus + compensation_purpose: + '#type': textarea + '#title': 'Lyhyt kuvaus haettavan / haettavien avustusten käyttötarkoituksista' + '#help': 'Kerro mitä tarkoitusta varten avustusta haetaan, erittele tarvittaessa eri käyttökohteet. Kerro myös mitä avustuksella on tarkoitus saada aikaiseksi ja millaisia tavoitteita avustettavaan toimintaan liittyy.' + '#required': true + '#counter_type': character + '#maxlength': 5000 + '#counter_maximum': 5000 + '#attributes': + class: + - webform--large + '#cols': 63 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + muut_samaan_tarkoitukseen_myonnetyt_avustukset: + '#type': webform_section + '#title': 'Muut samaan tarkoitukseen myönnetyt avustukset' + info_muut_samaan_tarkoitukseen_myonnetty: + '#type': webform_markup + '#markup': | + Ilmoita tähän ainoastaan avustukset, jotka on myönnetty muualta kuin Helsingin kaupungilta kuluvana tai kahtena edellisenä verovuotena. +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ olemme_saaneet_muita_avustuksia: + '#type': radios + '#title': 'Olemme saaneet muita avustuksia' + '#description_display': before + '#options': + 1: Kyllä + 0: Ei + myonnetty_avustus: + '#type': webform_custom_composite + '#title': 'Myönnetty avustus' + '#title_display': before + '#states': + visible: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + required: + ':input[name="olemme_saaneet_muita_avustuksia"]': + value: '1' + '#multiple__header': false + '#multiple__item_label': 'myönnetty avustus' + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi myönnetty avustus alta.' + '#multiple__min_items': 1 + '#multiple__empty_items': 0 + '#multiple__sorting': false + '#multiple__add': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi myönnetty avustus' + '#element': + issuer: + '#type': select + '#options': + 1: Valtio + 3: EU + 4: Muu + 5: Säätiö + '#required': true + '#title': 'Avustuksen myöntäjä' + issuer_name: + '#type': textfield + '#required': true + '#title': 'Myöntäjän nimi' + '#attributes': + class: + - webform--large + '#help': 'Mikä taho avustusta on myöntänyt (esim. ministeriön nimi)' + year: + '#type': textfield + '#required': true + '#title': Vuosi + '#attributes': + class: + - webform--small + '#maxlength': 4 + '#pattern': ^(19\d\d|20\d\d|2100)$ + '#pattern_error': 'Syötä vuosiluku väliltä 1900 - 2100' + amount: + '#type': textfield + '#required': true + '#attributes': + class: + - webform--small + '#title': 'Myönnetyn avustuksen summa' + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + purpose: + '#type': textarea + '#title': 'Kuvaus käyttötarkoituksesta' + '#help': 'Anna lyhyt kuvaus, mihin tarkoitukseen avustus on myönnetty?' + '#maxlength': 1000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' + kaupungilta_saadut_lainat_ja_takaukset: + '#type': webform_section + '#title': 'Kaupungilta saadut lainat ja takaukset' + kaupungilta_saadut_1: + '#type': webform_markup + '#markup': 'Kaupungilta saaduista lainoista on mainittava alkuperäinen lainamäärä, jäljellä oleva lainamäärä, laina-aika, korkoprosentti ja mihin tarkoitukseen laina on myönnetty. Takauksista ilmoitetaan niiden raha-arvo ja tarkoitus.' + benefits_loans: + '#type': textarea + '#title': 'Kuvaus lainoista ja takauksista' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#attributes': + class: + - webform--large + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + kaupungilta_saatu_tiloihin_liittyva_tuki: + '#type': webform_section + '#title': 'Kaupungilta saatu tiloihin liittyvä tuki' + tilate_1: + '#type': webform_markup + '#markup': 'Tilat, jotka kaupunki on antanut korvauksetta tai vuokrannut hakijan käyttöön (tilan nimi tai osoite, vuokran määrä €/kk)' + benefits_premises: + '#type': textarea + '#title': 'Kuvaus tiloihin liittyvästä tuesta' + '#maxlength': 5000 + '#counter_type': character + '#attributes': + class: + - webform--large + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + edellisen_avustuksen_kayttoselvitys: + '#type': webform_section + '#title': 'Edellisen avustuksen käyttöselvitys' + compensation_boolean_info: + '#type': webform_markup + '#markup': | +
+
+
+ + Myöntävä vastaus avaa lisäkysymyksen +
+
+
+ compensation_boolean: + '#type': radios + '#title': 'Käyttöselvitys edellisenä vuonna saamastani avustuksesta' + '#options': + - 'En ole saanut Helsingin kaupungilta avustusta samaan käyttötarkoitukseen edellisenä vuonna.' + - 'Olen saanut Helsingin kaupungilta avustusta samaan käyttötarkoitukseen edellisenä vuonna.' + '#required': true + markup: + '#type': webform_markup + '#states': + visible: + ':input[name="compensation_boolean"]': + value: '1' + '#markup': 'Anna käyttöselvitys Helsingin kaupungilta saadusta avustuksesta. Avustuksen käyttöselvitys tehdään avustuksesta, joka koskee viimeisintä päättynyttä tilikautta. Käyttöselvitystä ei tehdä käynnissä olevalta tilikaudelta. Käyttöselvityksen antaminen on seuraavan avustuksen saamisen ehtona. Mikäli käyttöselvitystä ei tehdä, avustusta ei myönnetä eikä makseta. Myönnetty avustus voidaan periä takaisin, jos edellisen avustuksen käyttöä ei ole hyväksyttävästi selvitetty.' + compensation_explanation: + '#type': textarea + '#title': 'Selvitys avustuksen käytöstä' + '#help': 'Käyttöselvityksessä tulee kuvata lyhyesti, miten myönnetty avustus on käytetty. Avustuksen saajan on järjestettävä kirjanpitonsa niin, että avustuksen käyttöä voidaan sieltä seurata. Esimerkiksi jos yhteisö on saanut vuokra-avustusta, tilinpäätöksen tuloslaskelmasta tulee käydä ilmi avustuksen toteutuminen sekä tuloissa että menoissa. Lisää tietoja avustuksen käytöstä voi myös kirjoittaa erilliseen liitteeseen, jonka voi palauttaa Käyttöselvitys-liite kohdasta.' + '#maxlength': 5000 + '#counter_type': character + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#states': + visible: + ':input[name="compensation_boolean"]': + value: '1' + required: + ':input[name="compensation_boolean"]': + value: '1' + '#attributes': + class: + - webform--large + '#cols': 63 + 3_yhteison_tiedot: + '#type': webform_wizard_page + '#title': '3. Yhteisön toiminta' + '#prev_button_label': 'Edellinen' + '#next_button_label': 'Seuraava' + business_info: + '#type': webform_section + '#title': 'Toiminnan kuvaus' + business_purpose: + '#type': textarea + '#title': 'Toiminnan kuvaus' + '#maxlength': 500 + '#counter_type': character + '#counter_maximum': 500 + '#counter_maximum_message': '%d/500 merkkiä jäljellä' + '#help': 'Jos haluat lisätä, poistaa tai muuttaa toiminnan kuvausta tallenna hakemus luonnokseksi ja siirry ylläpitämään toiminnan kuvausta omiin tietoihin.' + business_purpose_info: + '#type': webform_markup + '#markup': 'Toiminnan kuvausta ylläpidetään omissa tiedoissa.' + community_practices_business: + '#type': radios + '#title': 'Harjoittaako yhteisö liiketoimintaa' + '#options': + 1: Kyllä + 0: Ei + '#options_display': side_by_side + '#options_description_display': help + '#required': true + ensimmainen_otsikko: + '#type': webform_section + '#title': Jäsenmaksut + fee_person: + '#type': textfield + '#title': 'Henkilöjäsenen jäsenmaksu (€ / vuosi)' + '#attributes': + class: + - webform--sall + '#maxlength': 50 + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + '#size': 16 + fee_community: + '#type': textfield + '#title': 'Yhteisöjäsen (€ / vuosi)' + '#attributes': + class: + - webform--small + '#maxlength': 50 + '#input_mask': '''alias'': ''currency'', ''prefix'': '''', ''suffix'': ''€'',''groupSeparator'': '' '',''radixPoint'':'',''' + '#size': 16 + jasenmaara: + '#type': webform_section + '#title': Jäsenmäärä + jasenmaara_fieldset: + '#type': fieldset + '#title': Jäsenmäärä + '#help': 'Jos yhteisöllä on jäseniä, merkitse ne tähän.' + '#attributes': + class: + - grants-fieldset + - grants-fieldset-short + members_applicant_person_global: + '#type': textfield + '#title': 'Henkilöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta henkilöjäsentä yhteisöllä on tällä hetkellä?' + '#maxlength': 7 + '#size': 16 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#attributes': + class: + - webform--small + members_applicant_person_local: + '#type': textfield + '#title': 'Helsinkiläisiä henkilöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta helsinkiläistä henkilöjäsentä yhteisöllä on tällä hetkellä?' + '#maxlength': 7 + '#size': 16 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#attributes': + class: + - webform--small + members_applicant_community_global: + '#type': textfield + '#title': Yhteisöjäseniä + '#help': 'Kuinka monta jäsenmaksun maksanutta yhteisöjäsentä yhteisöllä on tällä hetkellä? Yhteisöjäseniä ovat muut kuin henkilöjäsenet, esimerkiksi yhdistykset, säätiöt, yritykset tai kunnat.' + '#maxlength': 7 + '#size': 16 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#attributes': + class: + - webform--small + members_applicant_community_local: + '#type': textfield + '#title': 'Helsinkiläisiä yhteisöjäseniä yhteensä' + '#help': 'Kuinka monta jäsenmaksun maksanutta helsinkiläistä yhteisöjäsentä yhteisöllä on tällä hetkellä? Yhteisöjäseniä ovat muut kuin henkilöjäsenet, esimerkiksi yhdistykset, säätiöt, yritykset tai kunnat.' + '#maxlength': 7 + '#size': 16 + '#input_mask': '''alias'': ''numeric'', ''groupSeparator'': '' '', ''digits'': ''0''' + '#pattern': '^[0-9 ]*$' + '#pattern_error': 'Vain numeroita' + '#attributes': + class: + - webform--small + lisatiedot_ja_liitteet: + '#type': webform_wizard_page + '#title': '4. Lisätiedot ja liitteet' + lisatietoja_hakemukseen_liittyen: + '#type': webform_section + '#title': 'Lisätietoja hakemukseen liittyen' + additional_information: + '#type': textarea + '#title': Lisätiedot + '#help': 'Tähän voit tarvittaessa kirjoittaa lisätietoja tai muita perusteluja hakemukseen liittyen.' + '#counter_type': character + '#attributes': + class: + - webform--large + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + liitteet: + '#type': webform_section + '#title': Liitteet + attachments_info: + '#type': webform_markup + '#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.

+

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

+

Jos vaaditut liitteet on jo toimitettu toisen Helsingin kaupungille osoitetun avustushakemuksen liitteenä, samoja liitteitä ei tarvitse toimittaa uudelleen. Yhteisön vahvistettu tilinpäätös, toimintakertomus, toimintasuunnitelma ja talousarvio eivät voi olla erilaisia eri hakemusten liitteenä. Merkitse tällöin toimitettujen liitteiden kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ notification_attachments: + '#type': webform_markup + '#markup': | +
+
+
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.

+
+
+ yhteison_saannot: + '#type': grants_attachments + '#title': 'Yhteisön säännöt' + '#multiple': false + '#filetype': '7' + '#title_display': '' + '#description__access': false + vahvistettu_tilinpaatos: + '#type': grants_attachments + '#title': 'Vahvistettu tilinpäätös (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '43' + '#help': |- +

Tilinpäätöksen täytyy sisältää vähintään tuloslaskelma ja tase. Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun ja allekirjoitetun tilinpäätöksen.

+

Yhteisön tilikausi voi olla kalenterivuosi tai jokin muu kausi. Yhdistysten kohdalla niiden omissa säännöissä lukee, mikä on yhdistyksen tilikausi.

+ '#title_display': before + '#multiple__no_items_message': 'Ei syötettyjä arvoja. Lisää uusi sisältö alta.' + '#description__access': false + vahvistettu_toimintakertomus: + '#type': grants_attachments + '#title': 'Vahvistettu toimintakertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '4' + '#help': |- +

Yhdistys liittää tähän kohtaan yhdistyksen jäsenkokouksessa vahvistetun toimintakertomuksen.

+

Jos toimintakertomus on osana tilinpäätöstä ja liititte sen jo tilinpäätöksen mukana lomakkeelle, sitä ei tarvitse liittää tähän erikseen. Valitse tällaisessa tilanteessa toimintakertomuksen kohdalla ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + vahvistettu_tilin_tai_toiminnantarkastuskertomus: + '#type': grants_attachments + '#title': 'Vahvistettu tilin- tai toiminnantarkastuskertomus (edelliseltä päättyneeltä tilikaudelta)' + '#multiple': false + '#filetype': '5' + '#help': |- +

Liitä tähän allekirjoitettu tilin- tai toiminnantarkastuskertomus yhteisön edelliseltä päättyneeltä tilivuodelta.

+

Jos allekirjoitettu tilin- tai toiminnantarkastuskertomus on osa yhteisönne tilinpäätöstä ja liitit sen jo lomakkeelle tilinpäätöksen kohdalla, valitse tässä kohdassa ”Liite on toimitettu yhtenä tiedostona tai toisen hakemuksen yhteydessä”.

+ '#title_display': before + '#description__access': false + vuosikokouksen_poytakirja: + '#type': grants_attachments + '#title': 'Vuosikokouksen pöytäkirja, jossa on vahvistettu edellisen päättyneen tilikauden tilinpäätös' + '#multiple': false + '#filetype': '8' + '#help': 'Liitä tähän yhteisön kokouksen pöytäkirja, jossa edellisen päättyneen tilikauden tilinpäätös on vahvistettu ja vastuuvapaus myönnetty. Yhdistyksillä tilinpäätös vahvistetaan aina yhdistyksen jäsenkokouksessa. Mikäli yhteisöltä ei edellytetä vuosikokousta tai muuta yhteisön kokousta, jossa tilinpäätös tulisi vahvistaa ja vastuuvapaus myöntää, ei tätä liitettä tarvitse toimittaa.' + '#title_display': before + '#description__access': false + toimintasuunnitelma: + '#type': grants_attachments + '#title': 'Toimintasuunnitelma (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '1' + '#help': 'Liitä tähän koko yhteisön toimintasuunnitelma. ' + '#title_display': before + '#description__access': false + talousarvio: + '#type': grants_attachments + '#title': 'Talousarvio (sille vuodelle jolle haet avustusta)' + '#multiple': false + '#filetype': '2' + '#help': 'Liitä tähän koko yhteisön talousarvio.' + '#title_display': before + '#description__access': false + extra_info: + '#type': textarea + '#title': 'Lisäselvitys liitteistä' + '#counter_type': character + '#attributes': + class: + - webform--large + '#maxlength': 5000 + '#counter_maximum': 5000 + '#counter_maximum_message': '%d/5000 merkkiä jäljellä' + '#cols': 63 + muu_liite: + '#type': grants_attachments + '#title': 'Muu liite' + '#multiple': 10 + '#filetype': '0' + '#title_display': before + '#multiple__item_label': liite + '#multiple__sorting': false + '#multiple__add': false + '#multiple__remove': false + '#multiple__add_more_input': false + '#multiple__add_more_button_label': 'Lisää uusi liite' + '#isDeliveredLater__access': false + '#isIncludedInOtherFile__access': false + actions: + '#type': webform_actions + '#title': 'Submit button(s)' + '#submit__label': Lähetä + '#draft__label': 'Tallenna keskeneräisenä' + '#wizard_prev__label': 'Edellinen' + '#wizard_next__label': 'Seuraava' + '#preview_prev__label': 'Edellinen' + '#preview_next__label': 'Esikatseluun' + '#delete_hide': false + '#delete__label': 'Poista keskeneräinen' + '#delete__attributes': + class: + - hds-button + - hds-button--primary + '#delete__dialog': true +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: source_entity_webform + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: false + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: true + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: true + form_disable_back: false + form_submit_back: true + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: { } + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: true + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: true + wizard_progress_states: false + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '6. Valmis' + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: '' + wizard_prev_button_label: Edellinen + wizard_next_button_label: Seuraava + wizard_toggle: true + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 2 + preview_label: '5. Vahvista, esikatsele ja lähetä' + preview_title: 'Vahvista, esikatsele ja lähetä' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: false + preview_exclude_empty_checkbox: false + draft: all + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: none + confirmation_url: '' + confirmation_title: '' + confirmation_message: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: true + confirmation_exclude_token: true + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: draft + purge_days: 365 + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - authenticated + users: { } + permissions: { } + view_any: + roles: + - admin + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: + grants_handler: + id: grants_handler + handler_id: grants_handler + label: 'Grants Handler' + notes: '' + status: true + conditions: { } + weight: 0 + settings: + debug: true +variants: { } diff --git a/public/modules/custom/grants_handler/config/install/webform.webform_options.yes_no.yml b/public/modules/custom/grants_handler/config/install/webform.webform_options.yes_no.yml index ad9db187de..7a70662081 100644 --- a/public/modules/custom/grants_handler/config/install/webform.webform_options.yes_no.yml +++ b/public/modules/custom/grants_handler/config/install/webform.webform_options.yes_no.yml @@ -11,6 +11,6 @@ id: yes_no label: Kyllä/Ei category: 'Yleiset asetukset' likert: false -options: | - Yes: Yes - No: No +options: |- + Kyllä: Kyllä + Ei: Ei \ No newline at end of file From c07e3f45fac3da6248b5a60dc3c4f8a0b1fd94a3 Mon Sep 17 00:00:00 2001 From: tuutti Date: Fri, 20 Dec 2024 10:51:17 +0200 Subject: [PATCH 93/95] UHF-11137: Reusable workflows (#1621) * UHF-11137: Reusable workflows * UHF-11137: Fixed check --- .github/workflows/artifact.yml | 35 +--------- .github/workflows/test.yml | 79 +-------------------- .github/workflows/update-config.yml | 104 +--------------------------- 3 files changed, 7 insertions(+), 211 deletions(-) diff --git a/.github/workflows/artifact.yml b/.github/workflows/artifact.yml index 969bfa81da..c964e0b2b8 100644 --- a/.github/workflows/artifact.yml +++ b/.github/workflows/artifact.yml @@ -7,37 +7,4 @@ on: name: Build artifacts jobs: build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Install and start Stonehenge - run: | - git clone -b 5.x https://github.com/druidfi/stonehenge.git ~/stonehenge - cd ~/stonehenge && make up - - # This must be done after we start Stonehenge. - - name: Setup Docker compose environment variables - run: | - echo "COMPOSE_FILE=compose.yaml:compose.ci.yaml" >> $GITHUB_ENV - - - name: Start project - run: make up - - - name: Build project - run: docker compose exec app bash -c "composer install --no-interaction" - - - name: Setup drupal and save database dump - run: | - docker compose exec app bash -c "drush si -y && drush cr" - docker compose exec app bash -c "drush si --existing-config -y" - docker compose exec app bash -c "drush cr" - docker compose exec app bash -c "drush cim -y" - docker compose exec app bash -c "drush sql-dump --result-file=/app/latest.sql" - - - name: Upload latest database dump - uses: actions/upload-artifact@v4 - with: - name: latest.sql - path: latest.sql - retention-days: 10 + uses: city-of-helsinki/drupal-gh-actions/.github/workflows/build-artifact.yml@main diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 27855f1ba4..8b8d382b9b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,79 +5,6 @@ on: name: CI jobs: tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - # TODO this does not pass - #- 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 - # exit 1 - # fi - - - name: Install and start Stonehenge - run: | - git clone -b 5.x https://github.com/druidfi/stonehenge.git ~/stonehenge - cd ~/stonehenge && make up - - # This must be done after we start Stonehenge. - - name: Setup Docker compose environment variables - run: | - echo "COMPOSE_FILE=compose.yaml:compose.ci.yaml" >> $GITHUB_ENV - echo "COMPOSE_PROFILES=" >> $GITHUB_ENV - - - name: Start project - run: make up - - - name: Build project - run: docker compose exec app bash -c "composer install --no-interaction" - - - name: Scan security updates - run: docker compose exec app bash -c "composer audit" - - - name: Check that subtheme is not built with dev mode - run: docker compose exec app bash -c "if grep -q 'sourceMappingURL=' -R public/themes/custom/hdbt_subtheme/dist/css; then exit 1; fi" - - - name: Run PHPCS - run: | - docker compose exec app bash -c "vendor/bin/phpcs public/modules/custom/" - docker compose exec app bash -c "vendor/bin/phpcs public/themes/custom/" - - - name: Run phpstan - run: docker compose exec app bash -c "vendor/bin/phpstan analyze" - - - name: Download latest dump - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: gh run download -n latest.sql - - - name: Install Drupal - run: | - docker compose exec app bash -c "mysql --user=drupal --password=drupal --database=drupal --host=db --port=3306 -A < latest.sql" - docker compose exec app bash -c "drush deploy" - - - name: Run PHPUnit tests - run: | - docker compose exec app bash -c "mkdir -p /app/results" - - if [ -d "tests/" ]; then - docker compose exec app bash -c "composer test-php tests/" - fi - docker compose exec app bash -c "composer test-php public/modules/custom" - - - name: Export logs - if: always() - run: docker compose logs app > results/service.log - - - name: Create an artifact from test report - uses: actions/upload-artifact@v4 - if: always() - with: - name: results - path: results/ - retention-days: 1 + uses: city-of-helsinki/drupal-gh-actions/.github/workflows/project-tests.yml@main + with: + check_config_language: false diff --git a/.github/workflows/update-config.yml b/.github/workflows/update-config.yml index 64af85621c..f8e0cf0a04 100644 --- a/.github/workflows/update-config.yml +++ b/.github/workflows/update-config.yml @@ -3,106 +3,8 @@ on: repository_dispatch: types: [config_change] name: Update config -env: - GH_TOKEN: ${{ github.token }} jobs: update-config: - runs-on: ubuntu-latest - container: - image: ghcr.io/city-of-helsinki/drupal-web:8.3 - options: --hostname app --user 1001 - services: - db: - image: mysql:8 - env: - MYSQL_USER: drupal - MYSQL_PASSWORD: drupal - MYSQL_DATABASE: drupal - MYSQL_ROOT_PASSWORD: drupal - ports: - - 3306:3306 - - 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 }} - run: | - gh run download -n latest.sql - - - name: Prepare setup - run: | - # We install Drupal from existing dump, so locale_install() hook - # is never fired. Make sure the translations folder exists. - mkdir -p public/sites/default/files/translations -p - - - name: Build project - run: | - composer install --no-interaction - $(drush sql:connect) < latest.sql - drush cim -y && drush updb -y && drush cr - composer update drupal/helfi_* drupal/hdbt* -W --no-interaction - drush cr - - # Update translations from localize.drupal.org and helfi-modules - # before running update hooks to reduce clutter in configuration files. - drush locale:check && drush locale:update - drush updb -y - - # Update translations from helfi_platform_config. These translations - # consists of overrides for non customised translations and will - # override current translation with a non customised translation. - drush helfi:locale-import helfi_platform_config - drush cex -y - - # Update platform - drush helfi:tools:update-platform - - - name: Check module versions - id: module-status - run: | - MODE="delete" - drush helfi:tools:check-composer-versions $GITHUB_WORKSPACE/composer.lock --format=markdown_table >> $GITHUB_STEP_SUMMARY && EXIT_CODE=$? || EXIT_CODE=$? - if [ "$EXIT_CODE" -eq 3 ]; then - MODE="upsert" - echo " " >> $GITHUB_STEP_SUMMARY - echo ":warning: Failed to install the latest version of the packages listed above" >> $GITHUB_STEP_SUMMARY - echo " " >> $GITHUB_STEP_SUMMARY - echo "Please run \`composer why-not drupal/package_name package_version\` to see why." >> $GITHUB_STEP_SUMMARY - fi - echo "MODE=$MODE" >> $GITHUB_OUTPUT - cat $GITHUB_STEP_SUMMARY > /tmp/pr-message.txt - - - name: Create Pull Request - uses: peter-evans/create-pull-request@v6 - with: - commit-message: Update configuration - token: ${{ secrets.AUTOMATIC_UPDATE_TOKEN }} - title: Automatic update - labels: auto-update - body: | - - Updated active configuration. - - Updated platform - branch: update-configuration - - - name: Attempt to find PR - env: - BRANCH_NAME: ${{ github.head_ref || github.ref_name }} - id: find-pr - run: echo "number=$(gh pr list --base ${BRANCH_NAME} --head update-configuration --json number --jq '.[].number')" >> $GITHUB_OUTPUT - - - name: Comment PR - uses: thollander/actions-comment-pull-request@v2 - if: ${{ steps.find-pr.outputs.number != '' }} - with: - comment_tag: status - mode: ${{ steps.module-status.outputs.MODE }} - filePath: /tmp/pr-message.txt - pr_number: ${{ steps.find-pr.outputs.number }} + uses: city-of-helsinki/drupal-gh-actions/.github/workflows/update-config.yml@main + secrets: + automatic_update_token: ${{ secrets.AUTOMATIC_UPDATE_TOKEN }} From 04fb9428afd7497fd1ab08ae92dae603f2df4bb6 Mon Sep 17 00:00:00 2001 From: Tero Elonen <2276077+teroelonen@users.noreply.github.com> Date: Tue, 7 Jan 2025 11:53:13 +0200 Subject: [PATCH 94/95] UHF-10593: Add 1000 character limit to two fields on two forms (#1622) * UHF-10593: Add 1000 character limit to forms 47 and 49 * UHF-10593: Add missing translations for the character limit field --- conf/cmi/language/en/webform.webform.kuva_toiminta.yml | 1 + .../en/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml | 1 + conf/cmi/language/sv/webform.webform.kuva_toiminta.yml | 1 + .../sv/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml | 1 + conf/cmi/webform.webform.kuva_toiminta.yml | 4 ++++ .../webform.webform.taide_ja_kulttuuri_kehittamisavu.yml | 6 +++++- .../custom/config/install/webform.webform.kuva_toiminta.yml | 4 ++++ .../webform.webform.taide_ja_kulttuuri_kehittamisavu.yml | 6 +++++- .../config/install/webform.webform.kuva_toiminta.yml | 4 ++++ .../webform.webform.taide_ja_kulttuuri_kehittamisavu.yml | 6 +++++- .../config/install/webform.webform.kuva_toiminta.yml | 4 ++++ .../webform.webform.taide_ja_kulttuuri_kehittamisavu.yml | 6 +++++- 12 files changed, 40 insertions(+), 4 deletions(-) diff --git a/conf/cmi/language/en/webform.webform.kuva_toiminta.yml b/conf/cmi/language/en/webform.webform.kuva_toiminta.yml index ce138a5ff9..cbe81e9b70 100644 --- a/conf/cmi/language/en/webform.webform.kuva_toiminta.yml +++ b/conf/cmi/language/en/webform.webform.kuva_toiminta.yml @@ -364,6 +364,7 @@ elements: | '#markup': '

Other notable input

' sisaltyyko_toiminnan_toteuttamiseen_jotain_muuta_rahanarvoista_p: '#title': 'Is there some other form of valuable input or trade involved in carrying out the activities that is not listed in the budget?' + '#counter_maximum_message': '%d/1000 characters remaining' toteutuneet_tulot_ja_menot: '#title': 'Realized incomes and expenses' markup_02: diff --git a/conf/cmi/language/en/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml b/conf/cmi/language/en/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml index 1445e29f01..295823cf40 100644 --- a/conf/cmi/language/en/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml +++ b/conf/cmi/language/en/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml @@ -270,6 +270,7 @@ elements: | '#markup': '

Other notable input

' sisaltyyko_toiminnan_toteuttamiseen_jotain_muuta_rahanarvoista_p: '#title': 'Is there some other form of valuable input or trade involved in carrying out the activities that is not listed in the budget?' + '#counter_maximum_message': '%d/1000 characters remaining' lisatiedot_ja_liitteet: '#title': '7. Additional information and attachments' lisatietoja_hakemukseen_liittyen: diff --git a/conf/cmi/language/sv/webform.webform.kuva_toiminta.yml b/conf/cmi/language/sv/webform.webform.kuva_toiminta.yml index 40d69cdbda..5b6a6346fe 100644 --- a/conf/cmi/language/sv/webform.webform.kuva_toiminta.yml +++ b/conf/cmi/language/sv/webform.webform.kuva_toiminta.yml @@ -365,6 +365,7 @@ elements: | '#markup': '

Övrig betydande insats

' sisaltyyko_toiminnan_toteuttamiseen_jotain_muuta_rahanarvoista_p: '#title': 'Ingår det i verksamheten någon betydande eller värdefull annan insats eller byteshandel, som inte framgår ur budgeten?' + '#counter_maximum_message': '%d/1000 tecken kvar' toteutuneet_tulot_ja_menot: '#title': 'Förverkligade inkomster och utgifter' markup_02: diff --git a/conf/cmi/language/sv/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml b/conf/cmi/language/sv/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml index 62fdc5fe86..3f5141dd7f 100644 --- a/conf/cmi/language/sv/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml +++ b/conf/cmi/language/sv/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml @@ -273,6 +273,7 @@ elements: | '#markup': '

Övrig betydande insats

' sisaltyyko_toiminnan_toteuttamiseen_jotain_muuta_rahanarvoista_p: '#title': 'Ingår det i verksamheten någon betydande eller värdefull annan insats eller byteshandel, som inte framgår ur budgeten?' + '#counter_maximum_message': '%d/1000 tecken kvar' lisatiedot_ja_liitteet: '#title': '7. Ytterligare information och bilagor' lisatietoja_hakemukseen_liittyen: diff --git a/conf/cmi/webform.webform.kuva_toiminta.yml b/conf/cmi/webform.webform.kuva_toiminta.yml index b5978324ff..907cd667cc 100644 --- a/conf/cmi/webform.webform.kuva_toiminta.yml +++ b/conf/cmi/webform.webform.kuva_toiminta.yml @@ -1260,9 +1260,13 @@ elements: |- sisaltyyko_toiminnan_toteuttamiseen_jotain_muuta_rahanarvoista_p: '#type': textarea '#title': 'Sisältyykö toiminnan toteuttamiseen jotain muuta rahanarvoista panosta tai vaihtokauppaa, joka ei käy ilmi budjetista?' + '#maxlength': 1000 '#attributes': class: - webform--large + '#counter_type': character + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' toteutuneet_tulot_ja_menot: '#type': webform_section '#title': 'Toteutuneet tulot ja menot' diff --git a/conf/cmi/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml b/conf/cmi/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml index de9456b7e7..2535cfae60 100644 --- a/conf/cmi/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml +++ b/conf/cmi/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml @@ -762,10 +762,14 @@ elements: |- '#markup': '

Muu huomioitava panostus

' sisaltyyko_toiminnan_toteuttamiseen_jotain_muuta_rahanarvoista_p: '#type': textarea + '#title': 'Sisältyykö toiminnan toteuttamiseen jotain muuta rahanarvoista panosta tai vaihtokauppaa, joka ei käy ilmi budjetista?' + '#maxlength': 1000 '#attributes': class: - webform--large - '#title': 'Sisältyykö toiminnan toteuttamiseen jotain muuta rahanarvoista panosta tai vaihtokauppaa, joka ei käy ilmi budjetista?' + '#counter_type': character + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' lisatiedot_ja_liitteet: '#type': webform_wizard_page '#title': '7. Lisätiedot ja liitteet' diff --git a/public/modules/custom/config/install/webform.webform.kuva_toiminta.yml b/public/modules/custom/config/install/webform.webform.kuva_toiminta.yml index 120186ab7f..57a96e7d95 100644 --- a/public/modules/custom/config/install/webform.webform.kuva_toiminta.yml +++ b/public/modules/custom/config/install/webform.webform.kuva_toiminta.yml @@ -1235,9 +1235,13 @@ elements: |- sisaltyyko_toiminnan_toteuttamiseen_jotain_muuta_rahanarvoista_p: '#type': textarea '#title': 'Sisältyykö toiminnan toteuttamiseen jotain muuta rahanarvoista panosta tai vaihtokauppaa, joka ei käy ilmi budjetista?' + '#maxlength': 1000 '#attributes': class: - webform--large + '#counter_type': character + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' toteutuneet_tulot_ja_menot: '#type': webform_section '#title': 'Toteutuneet tulot ja menot' diff --git a/public/modules/custom/config/install/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml b/public/modules/custom/config/install/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml index a93e325288..2727fdaacb 100644 --- a/public/modules/custom/config/install/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml +++ b/public/modules/custom/config/install/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml @@ -737,10 +737,14 @@ elements: |- '#markup': '

Muu huomioitava panostus

' sisaltyyko_toiminnan_toteuttamiseen_jotain_muuta_rahanarvoista_p: '#type': textarea + '#title': 'Sisältyykö toiminnan toteuttamiseen jotain muuta rahanarvoista panosta tai vaihtokauppaa, joka ei käy ilmi budjetista?' + '#maxlength': 1000 '#attributes': class: - webform--large - '#title': 'Sisältyykö toiminnan toteuttamiseen jotain muuta rahanarvoista panosta tai vaihtokauppaa, joka ei käy ilmi budjetista?' + '#counter_type': character + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' lisatiedot_ja_liitteet: '#type': webform_wizard_page '#title': '7. Lisätiedot ja liitteet' diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.kuva_toiminta.yml b/public/modules/custom/grants_handler/config/install/webform.webform.kuva_toiminta.yml index b5978324ff..907cd667cc 100644 --- a/public/modules/custom/grants_handler/config/install/webform.webform.kuva_toiminta.yml +++ b/public/modules/custom/grants_handler/config/install/webform.webform.kuva_toiminta.yml @@ -1260,9 +1260,13 @@ elements: |- sisaltyyko_toiminnan_toteuttamiseen_jotain_muuta_rahanarvoista_p: '#type': textarea '#title': 'Sisältyykö toiminnan toteuttamiseen jotain muuta rahanarvoista panosta tai vaihtokauppaa, joka ei käy ilmi budjetista?' + '#maxlength': 1000 '#attributes': class: - webform--large + '#counter_type': character + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' toteutuneet_tulot_ja_menot: '#type': webform_section '#title': 'Toteutuneet tulot ja menot' diff --git a/public/modules/custom/grants_handler/config/install/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml b/public/modules/custom/grants_handler/config/install/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml index de9456b7e7..2535cfae60 100644 --- a/public/modules/custom/grants_handler/config/install/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml +++ b/public/modules/custom/grants_handler/config/install/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml @@ -762,10 +762,14 @@ elements: |- '#markup': '

Muu huomioitava panostus

' sisaltyyko_toiminnan_toteuttamiseen_jotain_muuta_rahanarvoista_p: '#type': textarea + '#title': 'Sisältyykö toiminnan toteuttamiseen jotain muuta rahanarvoista panosta tai vaihtokauppaa, joka ei käy ilmi budjetista?' + '#maxlength': 1000 '#attributes': class: - webform--large - '#title': 'Sisältyykö toiminnan toteuttamiseen jotain muuta rahanarvoista panosta tai vaihtokauppaa, joka ei käy ilmi budjetista?' + '#counter_type': character + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' lisatiedot_ja_liitteet: '#type': webform_wizard_page '#title': '7. Lisätiedot ja liitteet' diff --git a/public/modules/custom/grants_test_base/modules/grants_test_webforms/config/install/webform.webform.kuva_toiminta.yml b/public/modules/custom/grants_test_base/modules/grants_test_webforms/config/install/webform.webform.kuva_toiminta.yml index 42f191a3a7..b849184dad 100644 --- a/public/modules/custom/grants_test_base/modules/grants_test_webforms/config/install/webform.webform.kuva_toiminta.yml +++ b/public/modules/custom/grants_test_base/modules/grants_test_webforms/config/install/webform.webform.kuva_toiminta.yml @@ -1165,9 +1165,13 @@ elements: |- sisaltyyko_toiminnan_toteuttamiseen_jotain_muuta_rahanarvoista_p: '#type': textarea '#title': 'Sisältyykö toiminnan toteuttamiseen jotain muuta rahanarvoista panosta tai vaihtokauppaa, joka ei käy ilmi budjetista?' + '#maxlength': 1000 '#attributes': class: - webform--large + '#counter_type': character + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' toteutuneet_tulot_ja_menot: '#type': webform_section '#title': 'Toteutuneet tulot ja menot' diff --git a/public/modules/custom/grants_test_base/modules/grants_test_webforms/config/install/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml b/public/modules/custom/grants_test_base/modules/grants_test_webforms/config/install/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml index 0a1147de6f..96fca5f296 100644 --- a/public/modules/custom/grants_test_base/modules/grants_test_webforms/config/install/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml +++ b/public/modules/custom/grants_test_base/modules/grants_test_webforms/config/install/webform.webform.taide_ja_kulttuuri_kehittamisavu.yml @@ -738,10 +738,14 @@ elements: |- '#markup': '

Muu huomioitava panostus

' sisaltyyko_toiminnan_toteuttamiseen_jotain_muuta_rahanarvoista_p: '#type': textarea + '#title': 'Sisältyykö toiminnan toteuttamiseen jotain muuta rahanarvoista panosta tai vaihtokauppaa, joka ei käy ilmi budjetista?' + '#maxlength': 1000 '#attributes': class: - webform--large - '#title': 'Sisältyykö toiminnan toteuttamiseen jotain muuta rahanarvoista panosta tai vaihtokauppaa, joka ei käy ilmi budjetista?' + '#counter_type': character + '#counter_maximum': 1000 + '#counter_maximum_message': '%d/1000 merkkiä jäljellä' lisatiedot_ja_liitteet: '#type': webform_wizard_page '#title': '7. Lisätiedot ja liitteet' From c567997ce8f38f9454d973ceb3bb6d1ece90a9e6 Mon Sep 17 00:00:00 2001 From: hel-platta-automation <95360595+hel-platta-automation@users.noreply.github.com> Date: Tue, 14 Jan 2025 14:37:25 +0200 Subject: [PATCH 95/95] Automatic update (#1620) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update configuration * Updated carbon. --------- Co-authored-by: Markus Kalijärvi --- composer.lock | 428 +++++++++--------- ...ay.paragraph.unit_contact_card.default.yml | 12 +- ...ay.paragraph.unit_contact_card.default.yml | 13 +- ...ontact_card.field_unit_contact_heading.yml | 25 + ..._contact_card.field_unit_contact_title.yml | 21 - ...e.paragraph.field_unit_contact_heading.yml | 29 ++ ...age.paragraph.field_unit_contact_title.yml | 23 - conf/cmi/file.settings.yml | 2 +- ...ontact_card.field_unit_contact_heading.yml | 2 + ...e.paragraph.field_unit_contact_heading.yml | 6 + ...ontact_card.field_unit_contact_heading.yml | 1 + ..._contact_card.field_unit_contact_title.yml | 1 - conf/cmi/user.role.admin.yml | 6 + conf/cmi/user.role.content_producer.yml | 6 + conf/cmi/user.role.editor.yml | 6 + conf/cmi/views.view.er_tpr_unit.yml | 2 +- conf/cmi/views.view.locked_services.yml | 2 +- conf/cmi/views.view.locked_units.yml | 2 +- conf/cmi/views.view.service_list.yml | 4 +- conf/cmi/views.view.service_units.yml | 2 +- conf/cmi/views.view.unit_search.yml | 2 +- conf/cmi/webform.webform.sotepe_yleis.yml | 2 +- 22 files changed, 308 insertions(+), 289 deletions(-) create mode 100644 conf/cmi/field.field.paragraph.unit_contact_card.field_unit_contact_heading.yml delete mode 100644 conf/cmi/field.field.paragraph.unit_contact_card.field_unit_contact_title.yml create mode 100644 conf/cmi/field.storage.paragraph.field_unit_contact_heading.yml delete mode 100644 conf/cmi/field.storage.paragraph.field_unit_contact_title.yml create mode 100644 conf/cmi/language/fi/field.field.paragraph.unit_contact_card.field_unit_contact_heading.yml create mode 100644 conf/cmi/language/fi/field.storage.paragraph.field_unit_contact_heading.yml create mode 100644 conf/cmi/language/sv/field.field.paragraph.unit_contact_card.field_unit_contact_heading.yml delete mode 100644 conf/cmi/language/sv/field.field.paragraph.unit_contact_card.field_unit_contact_title.yml diff --git a/composer.lock b/composer.lock index 78c87bb5ab..88d5bb26bc 100644 --- a/composer.lock +++ b/composer.lock @@ -1446,16 +1446,16 @@ }, { "name": "devizzent/cebe-php-openapi", - "version": "1.1.2", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/DEVizzent/cebe-php-openapi.git", - "reference": "44920bc75148d05686ac79511bdb99d6039a38cf" + "reference": "2612cf7702f27900a1f72ec68bf2543f1976ae59" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/DEVizzent/cebe-php-openapi/zipball/44920bc75148d05686ac79511bdb99d6039a38cf", - "reference": "44920bc75148d05686ac79511bdb99d6039a38cf", + "url": "https://api.github.com/repos/DEVizzent/cebe-php-openapi/zipball/2612cf7702f27900a1f72ec68bf2543f1976ae59", + "reference": "2612cf7702f27900a1f72ec68bf2543f1976ae59", "shasum": "" }, "require": { @@ -1518,7 +1518,7 @@ "issues": "https://github.com/DEVizzent/cebe-php-openapi/issues", "source": "https://github.com/DEVizzent/cebe-php-openapi" }, - "time": "2024-12-03T09:52:44+00:00" + "time": "2025-01-11T07:16:07+00:00" }, { "name": "dflydev/dot-access-data", @@ -2290,7 +2290,7 @@ "homepage": "https://www.drupal.org/user/86106" }, { - "name": "Centarro", + "name": "centarro", "homepage": "https://www.drupal.org/user/3661446" }, { @@ -3110,16 +3110,16 @@ }, { "name": "drupal/core", - "version": "10.4.0", + "version": "10.4.1", "source": { "type": "git", "url": "https://github.com/drupal/core.git", - "reference": "2ac1930116a840b4fbd0ad5cdd3a6d58939a0b1d" + "reference": "0aeb6303b33d813a68ea78c40466715d9fcfac46" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core/zipball/2ac1930116a840b4fbd0ad5cdd3a6d58939a0b1d", - "reference": "2ac1930116a840b4fbd0ad5cdd3a6d58939a0b1d", + "url": "https://api.github.com/repos/drupal/core/zipball/0aeb6303b33d813a68ea78c40466715d9fcfac46", + "reference": "0aeb6303b33d813a68ea78c40466715d9fcfac46", "shasum": "" }, "require": { @@ -3268,13 +3268,13 @@ ], "description": "Drupal is an open source content management platform powering millions of websites and applications.", "support": { - "source": "https://github.com/drupal/core/tree/10.4.0" + "source": "https://github.com/drupal/core/tree/10.4.1" }, - "time": "2024-12-17T22:18:01+00:00" + "time": "2025-01-06T23:26:38+00:00" }, { "name": "drupal/core-composer-scaffold", - "version": "10.4.0", + "version": "10.4.1", "source": { "type": "git", "url": "https://github.com/drupal/core-composer-scaffold.git", @@ -3318,7 +3318,7 @@ "drupal" ], "support": { - "source": "https://github.com/drupal/core-composer-scaffold/tree/10.4.0" + "source": "https://github.com/drupal/core-composer-scaffold/tree/10.4.1" }, "time": "2024-08-22T14:31:30+00:00" }, @@ -4100,17 +4100,17 @@ }, { "name": "drupal/editoria11y", - "version": "2.1.21", + "version": "2.2.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/editoria11y.git", - "reference": "2.1.21" + "reference": "2.2.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/editoria11y-2.1.21.zip", - "reference": "2.1.21", - "shasum": "6ec1bb5cfa15408e3372d7e0d0a1355030a9f20b" + "url": "https://ftp.drupal.org/files/projects/editoria11y-2.2.0.zip", + "reference": "2.2.0", + "shasum": "fc06c2b27be7432f4692e37c787fa935e9d4f9f7" }, "require": { "drupal/core": "^9 || ^10 || ^11" @@ -4121,8 +4121,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "2.1.21", - "datestamp": "1731602531", + "version": "2.2.0", + "datestamp": "1736189388", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4367,7 +4367,7 @@ "homepage": "https://www.drupal.org/user/2416470" }, { - "name": "TR", + "name": "tr", "homepage": "https://www.drupal.org/user/202830" } ], @@ -4939,17 +4939,17 @@ }, { "name": "drupal/externalauth", - "version": "2.0.6", + "version": "2.0.7", "source": { "type": "git", "url": "https://git.drupalcode.org/project/externalauth.git", - "reference": "2.0.6" + "reference": "2.0.7" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/externalauth-2.0.6.zip", - "reference": "2.0.6", - "shasum": "0dbc9fbab0901e940d52b239e08f031797f6bd2a" + "url": "https://ftp.drupal.org/files/projects/externalauth-2.0.7.zip", + "reference": "2.0.7", + "shasum": "93c2b15f21172f931bb81cc365c828c12be377c3" }, "require": { "drupal/core": "^9.5 || ^10 || ^11" @@ -4957,8 +4957,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.6", - "datestamp": "1720689758", + "version": "2.0.7", + "datestamp": "1735897906", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -5302,30 +5302,30 @@ }, { "name": "drupal/gin", - "version": "3.0.0-rc11", + "version": "4.0.2", "source": { "type": "git", "url": "https://git.drupalcode.org/project/gin.git", - "reference": "8.x-3.0-rc11" + "reference": "4.0.2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/gin-8.x-3.0-rc11.zip", - "reference": "8.x-3.0-rc11", - "shasum": "532000cb8497412fb4b26efc362c7fc9efc44546" + "url": "https://ftp.drupal.org/files/projects/gin-4.0.2.zip", + "reference": "4.0.2", + "shasum": "501f167bd7009cffa29848a918b3982cb0a8245b" }, "require": { - "drupal/core": "^9 || ^10 || ^11", - "drupal/gin_toolbar": "^1.0@beta" + "drupal/core": "^10 || ^11", + "drupal/gin_toolbar": "^2.0" }, "type": "drupal-theme", "extra": { "drupal": { - "version": "8.x-3.0-rc11", - "datestamp": "1719568502", + "version": "4.0.2", + "datestamp": "1735405135", "security-coverage": { - "status": "not-covered", - "message": "RC releases are not covered by Drupal security advisories." + "status": "covered", + "message": "Covered by Drupal's security advisory policy" } } }, @@ -5368,17 +5368,17 @@ }, { "name": "drupal/gin_toolbar", - "version": "1.0.0-rc6", + "version": "2.0.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/gin_toolbar.git", - "reference": "8.x-1.0-rc6" + "reference": "2.0.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/gin_toolbar-8.x-1.0-rc6.zip", - "reference": "8.x-1.0-rc6", - "shasum": "542def14b9a5435efb4e021d384fa3f7b0fc6e78" + "url": "https://ftp.drupal.org/files/projects/gin_toolbar-2.0.0.zip", + "reference": "2.0.0", + "shasum": "2befeab2de9f7953b76b1a36c9bfb6a7e3987b11" }, "require": { "drupal/core": "^9 || ^10 || ^11" @@ -5386,11 +5386,11 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.0-rc6", - "datestamp": "1718368950", + "version": "2.0.0", + "datestamp": "1734698921", "security-coverage": { - "status": "not-covered", - "message": "RC releases are not covered by Drupal security advisories." + "status": "covered", + "message": "Covered by Drupal's security advisory policy" } } }, @@ -5485,16 +5485,16 @@ }, { "name": "drupal/hdbt", - "version": "6.8.23", + "version": "6.8.34", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-hdbt.git", - "reference": "b14bd481f81a0be27eaf3ab2a1db0c2a86c66511" + "reference": "9216d2943483e75e9f5d9ed11eba03e836c93f98" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/b14bd481f81a0be27eaf3ab2a1db0c2a86c66511", - "reference": "b14bd481f81a0be27eaf3ab2a1db0c2a86c66511", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/9216d2943483e75e9f5d9ed11eba03e836c93f98", + "reference": "9216d2943483e75e9f5d9ed11eba03e836c93f98", "shasum": "" }, "require": { @@ -5513,42 +5513,34 @@ "Drupal" ], "support": { - "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.8.23", + "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.8.34", "issues": "https://github.com/City-of-Helsinki/drupal-hdbt/issues" }, - "time": "2024-12-17T07:20:53+00:00" + "time": "2025-01-14T10:26:39+00:00" }, { "name": "drupal/hdbt_admin", - "version": "3.2.11", + "version": "3.3.0", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-hdbt-admin.git", - "reference": "a0d89ce0318306edac0cde747367217ed53b2196" + "reference": "5a8a9fdb5e390a30d7224e1c336874c080f11f96" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt-admin/zipball/a0d89ce0318306edac0cde747367217ed53b2196", - "reference": "a0d89ce0318306edac0cde747367217ed53b2196", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt-admin/zipball/5a8a9fdb5e390a30d7224e1c336874c080f11f96", + "reference": "5a8a9fdb5e390a30d7224e1c336874c080f11f96", "shasum": "" }, "require": { "drupal/admin_toolbar": "^3.0", - "drupal/gin": "^3.0@rc" + "drupal/gin": "^4.0" }, "conflict": { - "drupal/gin": ">3.0.0-rc11", "drupal/helfi_api_base": "<2.7.6", "drupal/helfi_platform_config": "<4.3" }, "type": "drupal-theme", - "extra": { - "patches": { - "drupal/gin": { - "[#UHF-10892] Gin sidebar nextsibling issue. (https://www.drupal.org/i/3460390)": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-hdbt-admin/d3e6cb08315b8df38696489d2c8f406a67f224b8/patches/gin-3460390-sidebar-nextsibling-innerhtml-rc11.patch" - } - } - }, "license": [ "GPL-2.0+" ], @@ -5557,10 +5549,10 @@ "Drupal" ], "support": { - "source": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/tree/3.2.11", + "source": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/tree/3.3.0", "issues": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/issues" }, - "time": "2024-12-17T08:36:44+00:00" + "time": "2025-01-08T11:54:15+00:00" }, { "name": "drupal/health_check", @@ -5726,16 +5718,16 @@ }, { "name": "drupal/helfi_azure_fs", - "version": "2.0.9", + "version": "2.0.10", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-module-helfi-azure-fs.git", - "reference": "88aedf8ae9ba1216069fdb2e69366dd6b87c0a38" + "reference": "f8715d98b7db4a0c5ab671256fbda8e0c3316e31" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-azure-fs/zipball/88aedf8ae9ba1216069fdb2e69366dd6b87c0a38", - "reference": "88aedf8ae9ba1216069fdb2e69366dd6b87c0a38", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-azure-fs/zipball/f8715d98b7db4a0c5ab671256fbda8e0c3316e31", + "reference": "f8715d98b7db4a0c5ab671256fbda8e0c3316e31", "shasum": "" }, "require": { @@ -5765,10 +5757,10 @@ ], "description": "Helfi - Azure FS", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-azure-fs/tree/2.0.9", + "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-azure-fs/tree/2.0.10", "issues": "https://github.com/City-of-Helsinki/drupal-module-helfi-azure-fs/issues" }, - "time": "2024-10-28T13:45:59+00:00" + "time": "2025-01-07T07:19:06+00:00" }, { "name": "drupal/helfi_drupal_tools", @@ -5932,16 +5924,16 @@ }, { "name": "drupal/helfi_platform_config", - "version": "4.10.4", + "version": "4.12.3", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config.git", - "reference": "24833b53e247ee6e56a852eb497139ee8883e6ac" + "reference": "fb0ab912a4fe38d695cbfeb84ee623ea644dd6a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/24833b53e247ee6e56a852eb497139ee8883e6ac", - "reference": "24833b53e247ee6e56a852eb497139ee8883e6ac", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/fb0ab912a4fe38d695cbfeb84ee623ea644dd6a2", + "reference": "fb0ab912a4fe38d695cbfeb84ee623ea644dd6a2", "shasum": "" }, "require": { @@ -5966,7 +5958,7 @@ "drupal/external_entities": "^2.0@beta", "drupal/field_group": "^3.1", "drupal/focal_point": "^2.0", - "drupal/gin_toolbar": "^1.0@rc", + "drupal/gin_toolbar": "^2.0", "drupal/hal": "^2.0", "drupal/helfi_api_base": "*", "drupal/helfi_tpr": "*", @@ -6010,11 +6002,10 @@ "ruflin/elastica": "^8.0" }, "conflict": { - "drupal/core": "<10.3.10", - "drupal/core-composer-scaffold": "<10.3", + "drupal/core": "<10.4", + "drupal/core-composer-scaffold": "<10.4", "drupal/ctools": "<3.11 || ^4.0.1", "drupal/default_content": ">2.0.0-alpha2", - "drupal/gin_toolbar": ">1.0.0-rc6", "drupal/helfi_media_map": "*", "drupal/stage_file_proxy": "<2.1.5", "drush/drush": "<12" @@ -6066,10 +6057,10 @@ ], "description": "HELfi platform config", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.10.4", + "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.12.3", "issues": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/issues" }, - "time": "2024-12-18T06:30:07+00:00" + "time": "2025-01-13T06:44:52+00:00" }, { "name": "drupal/helfi_proxy", @@ -6118,16 +6109,16 @@ }, { "name": "drupal/helfi_tpr", - "version": "2.3.10", + "version": "2.3.11", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-module-helfi-tpr.git", - "reference": "d98687373b1cb4647ad576403e470f049c7a4d3c" + "reference": "f7c04cdf1c4bfed2d075457429b66906828ffefa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-tpr/zipball/d98687373b1cb4647ad576403e470f049c7a4d3c", - "reference": "d98687373b1cb4647ad576403e470f049c7a4d3c", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-tpr/zipball/f7c04cdf1c4bfed2d075457429b66906828ffefa", + "reference": "f7c04cdf1c4bfed2d075457429b66906828ffefa", "shasum": "" }, "require": { @@ -6153,23 +6144,23 @@ ], "description": "TPR integration", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-tpr/tree/2.3.10", + "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-tpr/tree/2.3.11", "issues": "https://github.com/City-of-Helsinki/drupal-module-helfi-tpr/issues" }, - "time": "2024-11-29T09:43:38+00:00" + "time": "2025-01-10T08:30:42+00:00" }, { "name": "drupal/helfi_tunnistamo", - "version": "3.0.9", + "version": "3.0.10", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-module-helfi-tunnistamo.git", - "reference": "8a489629636fef00d5fab73009b37a4b6fb7a266" + "reference": "13b645c119dc15b4707b31cde55baeb4a41dd29b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-tunnistamo/zipball/8a489629636fef00d5fab73009b37a4b6fb7a266", - "reference": "8a489629636fef00d5fab73009b37a4b6fb7a266", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-tunnistamo/zipball/13b645c119dc15b4707b31cde55baeb4a41dd29b", + "reference": "13b645c119dc15b4707b31cde55baeb4a41dd29b", "shasum": "" }, "require": { @@ -6186,10 +6177,10 @@ ], "description": "Tunnistamo integration", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-tunnistamo/tree/3.0.9", + "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-tunnistamo/tree/3.0.10", "issues": "https://github.com/City-of-Helsinki/drupal-module-helfi-tunnistamo/issues" }, - "time": "2024-09-03T07:23:36+00:00" + "time": "2024-12-20T10:35:33+00:00" }, { "name": "drupal/helfi_yjdh", @@ -7606,17 +7597,17 @@ }, { "name": "drupal/openid_connect", - "version": "3.0.0-alpha4", + "version": "3.0.0-alpha5", "source": { "type": "git", "url": "https://git.drupalcode.org/project/openid_connect.git", - "reference": "3.0.0-alpha4" + "reference": "3.0.0-alpha5" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/openid_connect-3.0.0-alpha4.zip", - "reference": "3.0.0-alpha4", - "shasum": "3239f8a2e5fc98de1be7561309cb12153ef5b7c9" + "url": "https://ftp.drupal.org/files/projects/openid_connect-3.0.0-alpha5.zip", + "reference": "3.0.0-alpha5", + "shasum": "6bca4f7ac0f675370008a0631095722347379b04" }, "require": { "drupal/core": "^9.5 || ^10.2 || ^11", @@ -7627,8 +7618,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "3.0.0-alpha4", - "datestamp": "1734043889", + "version": "3.0.0-alpha5", + "datestamp": "1735590945", "security-coverage": { "status": "not-covered", "message": "Alpha releases are not covered by Drupal security advisories." @@ -7919,11 +7910,11 @@ ], "authors": [ { - "name": "Berdir", + "name": "berdir", "homepage": "https://www.drupal.org/user/214652" }, { - "name": "Dave Reid", + "name": "dave reid", "homepage": "https://www.drupal.org/user/53892" }, { @@ -8293,17 +8284,17 @@ }, { "name": "drupal/raven", - "version": "6.0.13", + "version": "6.0.14", "source": { "type": "git", "url": "https://git.drupalcode.org/project/raven.git", - "reference": "6.0.13" + "reference": "6.0.14" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/raven-6.0.13.zip", - "reference": "6.0.13", - "shasum": "7b92e693dae63859457ba734c57382511b91af86" + "url": "https://ftp.drupal.org/files/projects/raven-6.0.14.zip", + "reference": "6.0.14", + "shasum": "4533faf65caad0068c6bb818f29b3151645a9686" }, "require": { "drupal/core": "^10.2 || ^11", @@ -8311,14 +8302,15 @@ }, "require-dev": { "drupal/csp": "^1.17 || ^2.0", + "drupal/monitoring": "^1.13", "drupal/seckit": "^2.0", "drush/drush": "^11.0 || ^12.0 || ^13.0" }, "type": "drupal-module", "extra": { "drupal": { - "version": "6.0.13", - "datestamp": "1734389510", + "version": "6.0.14", + "datestamp": "1735930900", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -8567,7 +8559,7 @@ ], "authors": [ { - "name": "Berdir", + "name": "berdir", "homepage": "https://www.drupal.org/user/214652" }, { @@ -8575,7 +8567,7 @@ "homepage": "https://www.drupal.org/user/53892" }, { - "name": "Kristen Pol", + "name": "kristen pol", "homepage": "https://www.drupal.org/user/8389" }, { @@ -10760,16 +10752,16 @@ }, { "name": "egulias/email-validator", - "version": "4.0.2", + "version": "4.0.3", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e" + "reference": "b115554301161fa21467629f1e1391c1936de517" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e", - "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/b115554301161fa21467629f1e1391c1936de517", + "reference": "b115554301161fa21467629f1e1391c1936de517", "shasum": "" }, "require": { @@ -10815,7 +10807,7 @@ ], "support": { "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/4.0.2" + "source": "https://github.com/egulias/EmailValidator/tree/4.0.3" }, "funding": [ { @@ -10823,7 +10815,7 @@ "type": "github" } ], - "time": "2023-10-06T06:47:41+00:00" + "time": "2024-12-27T00:36:43+00:00" }, { "name": "elastic/transport", @@ -10885,16 +10877,16 @@ }, { "name": "elasticsearch/elasticsearch", - "version": "v8.16.0", + "version": "v8.17.0", "source": { "type": "git", "url": "https://github.com/elastic/elasticsearch-php.git", - "reference": "ab0fdb43f9e69f0d0539028d8b0b56cdf3328d85" + "reference": "6cd0fe6a95fdb7198a2795624927b094813b3d8b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/elastic/elasticsearch-php/zipball/ab0fdb43f9e69f0d0539028d8b0b56cdf3328d85", - "reference": "ab0fdb43f9e69f0d0539028d8b0b56cdf3328d85", + "url": "https://api.github.com/repos/elastic/elasticsearch-php/zipball/6cd0fe6a95fdb7198a2795624927b094813b3d8b", + "reference": "6cd0fe6a95fdb7198a2795624927b094813b3d8b", "shasum": "" }, "require": { @@ -10937,9 +10929,9 @@ ], "support": { "issues": "https://github.com/elastic/elasticsearch-php/issues", - "source": "https://github.com/elastic/elasticsearch-php/tree/v8.16.0" + "source": "https://github.com/elastic/elasticsearch-php/tree/v8.17.0" }, - "time": "2024-11-14T22:23:33+00:00" + "time": "2024-12-18T11:00:27+00:00" }, { "name": "ezyang/htmlpurifier", @@ -12827,16 +12819,16 @@ }, { "name": "nesbot/carbon", - "version": "2.72.5", + "version": "2.72.6", "source": { "type": "git", - "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed" + "url": "https://github.com/CarbonPHP/carbon.git", + "reference": "1e9d50601e7035a4c61441a208cb5bed73e108c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/afd46589c216118ecd48ff2b95d77596af1e57ed", - "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/1e9d50601e7035a4c61441a208cb5bed73e108c5", + "reference": "1e9d50601e7035a4c61441a208cb5bed73e108c5", "shasum": "" }, "require": { @@ -12856,7 +12848,7 @@ "doctrine/orm": "^2.7 || ^3.0", "friendsofphp/php-cs-fixer": "^3.0", "kylekatarnls/multi-tester": "^2.0", - "ondrejmirtes/better-reflection": "*", + "ondrejmirtes/better-reflection": "<6", "phpmd/phpmd": "^2.9", "phpstan/extension-installer": "^1.0", "phpstan/phpstan": "^0.12.99 || ^1.7.14", @@ -12869,10 +12861,6 @@ ], "type": "library", "extra": { - "branch-alias": { - "dev-master": "3.x-dev", - "dev-2.x": "2.x-dev" - }, "laravel": { "providers": [ "Carbon\\Laravel\\ServiceProvider" @@ -12882,6 +12870,10 @@ "includes": [ "extension.neon" ] + }, + "branch-alias": { + "dev-2.x": "2.x-dev", + "dev-master": "3.x-dev" } }, "autoload": { @@ -12930,20 +12922,20 @@ "type": "tidelift" } ], - "time": "2024-06-03T19:18:41+00:00" + "time": "2024-12-27T09:28:11+00:00" }, { "name": "nikic/php-parser", - "version": "v5.3.1", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "8eea230464783aa9671db8eea6f8c6ac5285794b" + "reference": "447a020a1f875a434d62f2a401f53b82a396e494" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/8eea230464783aa9671db8eea6f8c6ac5285794b", - "reference": "8eea230464783aa9671db8eea6f8c6ac5285794b", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494", + "reference": "447a020a1f875a434d62f2a401f53b82a396e494", "shasum": "" }, "require": { @@ -12986,9 +12978,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.3.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0" }, - "time": "2024-10-08T18:51:32+00:00" + "time": "2024-12-30T11:07:19+00:00" }, { "name": "npm-asset/select2", @@ -13061,16 +13053,16 @@ }, { "name": "open-telemetry/api", - "version": "1.1.2", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/api.git", - "reference": "04c85a1e41a3d59fa9bdc801a5de1df6624b95ed" + "reference": "351a30baa79699de3de3a814c8ccc7b52ccdfb1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/api/zipball/04c85a1e41a3d59fa9bdc801a5de1df6624b95ed", - "reference": "04c85a1e41a3d59fa9bdc801a5de1df6624b95ed", + "url": "https://api.github.com/repos/opentelemetry-php/api/zipball/351a30baa79699de3de3a814c8ccc7b52ccdfb1d", + "reference": "351a30baa79699de3de3a814c8ccc7b52ccdfb1d", "shasum": "" }, "require": { @@ -13127,7 +13119,7 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2024-11-16T04:32:30+00:00" + "time": "2025-01-08T23:50:34+00:00" }, { "name": "open-telemetry/context", @@ -14905,20 +14897,20 @@ }, { "name": "respect/validation", - "version": "2.3.11", + "version": "2.4.0", "source": { "type": "git", "url": "https://github.com/Respect/Validation.git", - "reference": "294c36ffb7c2b0f3dc23f3847844a61fa0139001" + "reference": "48b38bd91e0badbc2c4381dce726b09fd68850d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Respect/Validation/zipball/294c36ffb7c2b0f3dc23f3847844a61fa0139001", - "reference": "294c36ffb7c2b0f3dc23f3847844a61fa0139001", + "url": "https://api.github.com/repos/Respect/Validation/zipball/48b38bd91e0badbc2c4381dce726b09fd68850d9", + "reference": "48b38bd91e0badbc2c4381dce726b09fd68850d9", "shasum": "" }, "require": { - "php": "^8.1 || ^8.2", + "php": ">=8.1", "respect/stringifier": "^0.2.0", "symfony/polyfill-mbstring": "^1.2" }, @@ -14967,9 +14959,9 @@ ], "support": { "issues": "https://github.com/Respect/Validation/issues", - "source": "https://github.com/Respect/Validation/tree/2.3.11" + "source": "https://github.com/Respect/Validation/tree/2.4.0" }, - "time": "2024-12-13T00:07:10+00:00" + "time": "2025-01-07T00:34:58+00:00" }, { "name": "riverline/multipart-parser", @@ -15320,16 +15312,16 @@ }, { "name": "symfony/console", - "version": "v6.4.15", + "version": "v6.4.17", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd" + "reference": "799445db3f15768ecc382ac5699e6da0520a0a04" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/f1fc6f47283e27336e7cebb9e8946c8de7bff9bd", - "reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd", + "url": "https://api.github.com/repos/symfony/console/zipball/799445db3f15768ecc382ac5699e6da0520a0a04", + "reference": "799445db3f15768ecc382ac5699e6da0520a0a04", "shasum": "" }, "require": { @@ -15394,7 +15386,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.15" + "source": "https://github.com/symfony/console/tree/v6.4.17" }, "funding": [ { @@ -15410,7 +15402,7 @@ "type": "tidelift" } ], - "time": "2024-11-06T14:19:14+00:00" + "time": "2024-12-07T12:07:30+00:00" }, { "name": "symfony/dependency-injection", @@ -15512,12 +15504,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -15562,16 +15554,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.4.14", + "version": "v6.4.17", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "9e024324511eeb00983ee76b9aedc3e6ecd993d9" + "reference": "37ad2380e8c1a8cf62a1200a5c10080b679b446c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/9e024324511eeb00983ee76b9aedc3e6ecd993d9", - "reference": "9e024324511eeb00983ee76b9aedc3e6ecd993d9", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/37ad2380e8c1a8cf62a1200a5c10080b679b446c", + "reference": "37ad2380e8c1a8cf62a1200a5c10080b679b446c", "shasum": "" }, "require": { @@ -15617,7 +15609,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.14" + "source": "https://github.com/symfony/error-handler/tree/v6.4.17" }, "funding": [ { @@ -15633,7 +15625,7 @@ "type": "tidelift" } ], - "time": "2024-11-05T15:34:40+00:00" + "time": "2024-12-06T13:30:51+00:00" }, { "name": "symfony/event-dispatcher", @@ -15735,12 +15727,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -15859,16 +15851,16 @@ }, { "name": "symfony/finder", - "version": "v6.4.13", + "version": "v6.4.17", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "daea9eca0b08d0ed1dc9ab702a46128fd1be4958" + "reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/daea9eca0b08d0ed1dc9ab702a46128fd1be4958", - "reference": "daea9eca0b08d0ed1dc9ab702a46128fd1be4958", + "url": "https://api.github.com/repos/symfony/finder/zipball/1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7", + "reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7", "shasum": "" }, "require": { @@ -15903,7 +15895,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.13" + "source": "https://github.com/symfony/finder/tree/v6.4.17" }, "funding": [ { @@ -15919,7 +15911,7 @@ "type": "tidelift" } ], - "time": "2024-10-01T08:30:56+00:00" + "time": "2024-12-29T13:51:37+00:00" }, { "name": "symfony/http-foundation", @@ -16000,16 +15992,16 @@ }, { "name": "symfony/http-kernel", - "version": "v6.4.16", + "version": "v6.4.17", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "8838b5b21d807923b893ccbfc2cbeda0f1bc00f0" + "reference": "c5647393c5ce11833d13e4b70fff4b571d4ac710" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/8838b5b21d807923b893ccbfc2cbeda0f1bc00f0", - "reference": "8838b5b21d807923b893ccbfc2cbeda0f1bc00f0", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/c5647393c5ce11833d13e4b70fff4b571d4ac710", + "reference": "c5647393c5ce11833d13e4b70fff4b571d4ac710", "shasum": "" }, "require": { @@ -16094,7 +16086,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.16" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.17" }, "funding": [ { @@ -16110,7 +16102,7 @@ "type": "tidelift" } ], - "time": "2024-11-27T12:49:36+00:00" + "time": "2024-12-31T14:49:31+00:00" }, { "name": "symfony/mailer", @@ -16194,16 +16186,16 @@ }, { "name": "symfony/mime", - "version": "v6.4.13", + "version": "v6.4.17", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "1de1cf14d99b12c7ebbb850491ec6ae3ed468855" + "reference": "ea87c8850a54ff039d3e0ab4ae5586dd4e6c0232" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/1de1cf14d99b12c7ebbb850491ec6ae3ed468855", - "reference": "1de1cf14d99b12c7ebbb850491ec6ae3ed468855", + "url": "https://api.github.com/repos/symfony/mime/zipball/ea87c8850a54ff039d3e0ab4ae5586dd4e6c0232", + "reference": "ea87c8850a54ff039d3e0ab4ae5586dd4e6c0232", "shasum": "" }, "require": { @@ -16259,7 +16251,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.4.13" + "source": "https://github.com/symfony/mime/tree/v6.4.17" }, "funding": [ { @@ -16275,7 +16267,7 @@ "type": "tidelift" } ], - "time": "2024-10-25T15:07:50+00:00" + "time": "2024-12-02T11:09:41+00:00" }, { "name": "symfony/options-resolver", @@ -16449,8 +16441,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -17550,12 +17542,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -17809,12 +17801,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -17870,16 +17862,16 @@ }, { "name": "symfony/validator", - "version": "v6.4.16", + "version": "v6.4.17", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "9b0d1988b56511706bc91d96ead39acd77aaf34d" + "reference": "a3c19a0e542d427c207e22242043ef35b5b99a2c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/9b0d1988b56511706bc91d96ead39acd77aaf34d", - "reference": "9b0d1988b56511706bc91d96ead39acd77aaf34d", + "url": "https://api.github.com/repos/symfony/validator/zipball/a3c19a0e542d427c207e22242043ef35b5b99a2c", + "reference": "a3c19a0e542d427c207e22242043ef35b5b99a2c", "shasum": "" }, "require": { @@ -17947,7 +17939,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.4.16" + "source": "https://github.com/symfony/validator/tree/v6.4.17" }, "funding": [ { @@ -17963,7 +17955,7 @@ "type": "tidelift" } ], - "time": "2024-11-27T09:48:51+00:00" + "time": "2024-12-29T12:50:19+00:00" }, { "name": "symfony/var-dumper", @@ -18299,16 +18291,16 @@ }, { "name": "twig/twig", - "version": "v3.17.1", + "version": "v3.18.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "677ef8da6497a03048192aeeb5aa3018e379ac71" + "reference": "acffa88cc2b40dbe42eaf3a5025d6c0d4600cc50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/677ef8da6497a03048192aeeb5aa3018e379ac71", - "reference": "677ef8da6497a03048192aeeb5aa3018e379ac71", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/acffa88cc2b40dbe42eaf3a5025d6c0d4600cc50", + "reference": "acffa88cc2b40dbe42eaf3a5025d6c0d4600cc50", "shasum": "" }, "require": { @@ -18363,7 +18355,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.17.1" + "source": "https://github.com/twigphp/Twig/tree/v3.18.0" }, "funding": [ { @@ -18375,7 +18367,7 @@ "type": "tidelift" } ], - "time": "2024-12-12T09:58:10+00:00" + "time": "2024-12-29T10:51:50+00:00" }, { "name": "twistor/flysystem-stream-wrapper", @@ -23653,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.unit_contact_card.default.yml b/conf/cmi/core.entity_form_display.paragraph.unit_contact_card.default.yml index 919a2507f3..275d26a0f5 100644 --- a/conf/cmi/core.entity_form_display.paragraph.unit_contact_card.default.yml +++ b/conf/cmi/core.entity_form_display.paragraph.unit_contact_card.default.yml @@ -3,7 +3,7 @@ langcode: en status: true dependencies: config: - - field.field.paragraph.unit_contact_card.field_unit_contact_title + - field.field.paragraph.unit_contact_card.field_unit_contact_heading - field.field.paragraph.unit_contact_card.field_unit_contact_unit - field.field.paragraph.unit_contact_card.field_unit_contact_use_address - field.field.paragraph.unit_contact_card.field_unit_contact_use_details @@ -15,19 +15,17 @@ dependencies: - field.field.paragraph.unit_contact_card.field_unit_contact_use_postal - paragraphs.paragraphs_type.unit_contact_card _core: - default_config_hash: XnijiEfDptaMmJSLOaRAbmsG5jdy70ENYFsDRp7dXck + default_config_hash: uT8aniMS1fevBhNfcyGCd5OiS2-wx4uQFzYyzEWxHX8 id: paragraph.unit_contact_card.default targetEntityType: paragraph bundle: unit_contact_card mode: default content: - field_unit_contact_title: - type: string_textfield + field_unit_contact_heading: + type: options_buttons weight: 0 region: content - settings: - size: 60 - placeholder: '' + settings: { } third_party_settings: { } field_unit_contact_unit: type: entity_reference_autocomplete diff --git a/conf/cmi/core.entity_view_display.paragraph.unit_contact_card.default.yml b/conf/cmi/core.entity_view_display.paragraph.unit_contact_card.default.yml index b8be4c4da7..8ecd8a4a16 100644 --- a/conf/cmi/core.entity_view_display.paragraph.unit_contact_card.default.yml +++ b/conf/cmi/core.entity_view_display.paragraph.unit_contact_card.default.yml @@ -3,7 +3,7 @@ langcode: en status: true dependencies: config: - - field.field.paragraph.unit_contact_card.field_unit_contact_title + - field.field.paragraph.unit_contact_card.field_unit_contact_heading - field.field.paragraph.unit_contact_card.field_unit_contact_unit - field.field.paragraph.unit_contact_card.field_unit_contact_use_address - field.field.paragraph.unit_contact_card.field_unit_contact_use_details @@ -15,20 +15,12 @@ dependencies: - field.field.paragraph.unit_contact_card.field_unit_contact_use_postal - paragraphs.paragraphs_type.unit_contact_card _core: - default_config_hash: DvEDTYQYY2bJ_PzPZtlMEowZm2o5MrLaCa3p9T-NTAs + default_config_hash: ueLmUIlWmD3niFjRRANYBSf1QCFcMlnGSGdCZ34IcNw id: paragraph.unit_contact_card.default targetEntityType: paragraph bundle: unit_contact_card mode: default content: - field_unit_contact_title: - type: string - label: hidden - settings: - link_to_entity: false - third_party_settings: { } - weight: 0 - region: content field_unit_contact_unit: type: entity_reference_label label: hidden @@ -38,6 +30,7 @@ content: weight: 1 region: content hidden: + field_unit_contact_heading: true field_unit_contact_use_address: true field_unit_contact_use_details: true field_unit_contact_use_link: true diff --git a/conf/cmi/field.field.paragraph.unit_contact_card.field_unit_contact_heading.yml b/conf/cmi/field.field.paragraph.unit_contact_card.field_unit_contact_heading.yml new file mode 100644 index 0000000000..f1126b00d5 --- /dev/null +++ b/conf/cmi/field.field.paragraph.unit_contact_card.field_unit_contact_heading.yml @@ -0,0 +1,25 @@ +uuid: 6c99f53c-3860-4a4f-adde-0e465d98e131 +langcode: en +status: true +dependencies: + config: + - field.storage.paragraph.field_unit_contact_heading + - paragraphs.paragraphs_type.unit_contact_card + module: + - options +_core: + default_config_hash: KBZVQJ1FH_oGM0pSbEkGL2tPmvpQZl6RgRSoXV4lf5M +id: paragraph.unit_contact_card.field_unit_contact_heading +field_name: field_unit_contact_heading +entity_type: paragraph +bundle: unit_contact_card +label: Heading +description: " The default heading for the component is “Contact information”. Choose the unit name as the heading if it is not clear which unit's contact information is being referred to." +required: true +translatable: false +default_value: + - + value: default +default_value_callback: '' +settings: { } +field_type: list_string diff --git a/conf/cmi/field.field.paragraph.unit_contact_card.field_unit_contact_title.yml b/conf/cmi/field.field.paragraph.unit_contact_card.field_unit_contact_title.yml deleted file mode 100644 index bda395aaa5..0000000000 --- a/conf/cmi/field.field.paragraph.unit_contact_card.field_unit_contact_title.yml +++ /dev/null @@ -1,21 +0,0 @@ -uuid: 70e6f4ec-5e42-4e76-a7d4-3e3b01dba706 -langcode: en -status: true -dependencies: - config: - - field.storage.paragraph.field_unit_contact_title - - paragraphs.paragraphs_type.unit_contact_card -_core: - default_config_hash: naZYC-AB_hI23uWltMtB5_GCy_d25LIFTQqZkDlqb6s -id: paragraph.unit_contact_card.field_unit_contact_title -field_name: field_unit_contact_title -entity_type: paragraph -bundle: unit_contact_card -label: Title -description: '' -required: true -translatable: false -default_value: { } -default_value_callback: '' -settings: { } -field_type: string diff --git a/conf/cmi/field.storage.paragraph.field_unit_contact_heading.yml b/conf/cmi/field.storage.paragraph.field_unit_contact_heading.yml new file mode 100644 index 0000000000..ea2f471413 --- /dev/null +++ b/conf/cmi/field.storage.paragraph.field_unit_contact_heading.yml @@ -0,0 +1,29 @@ +uuid: 5e3d0bce-6114-40f1-b778-8fece473c972 +langcode: en +status: true +dependencies: + module: + - options + - paragraphs +_core: + default_config_hash: T_fDAEmZ5YJF1SdA3tmqPumG-8gNtlxzPxBL92A3XmM +id: paragraph.field_unit_contact_heading +field_name: field_unit_contact_heading +entity_type: paragraph +type: list_string +settings: + allowed_values: + - + value: default + label: 'Contact information' + - + value: unit_name + label: 'The unit name' + allowed_values_function: '' +module: options +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/conf/cmi/field.storage.paragraph.field_unit_contact_title.yml b/conf/cmi/field.storage.paragraph.field_unit_contact_title.yml deleted file mode 100644 index 04f98a89dc..0000000000 --- a/conf/cmi/field.storage.paragraph.field_unit_contact_title.yml +++ /dev/null @@ -1,23 +0,0 @@ -uuid: e73701a3-126c-41c1-aae3-bf3d2c6c209f -langcode: en -status: true -dependencies: - module: - - paragraphs -_core: - default_config_hash: sV3mnI_z0Q-WpJm2S9A9H8D-yqYMpu1iASxC4_eACN8 -id: paragraph.field_unit_contact_title -field_name: field_unit_contact_title -entity_type: paragraph -type: string -settings: - max_length: 255 - case_sensitive: false - is_ascii: false -module: core -locked: false -cardinality: 1 -translatable: true -indexes: { } -persist_with_no_fields: false -custom_storage: false diff --git a/conf/cmi/file.settings.yml b/conf/cmi/file.settings.yml index 089565dd0b..14a3bd7e29 100644 --- a/conf/cmi/file.settings.yml +++ b/conf/cmi/file.settings.yml @@ -5,7 +5,7 @@ description: length: 128 icon: directory: core/modules/file/icons -make_unused_managed_files_temporary: false +make_unused_managed_files_temporary: true filename_sanitization: transliterate: true replace_whitespace: true diff --git a/conf/cmi/language/fi/field.field.paragraph.unit_contact_card.field_unit_contact_heading.yml b/conf/cmi/language/fi/field.field.paragraph.unit_contact_card.field_unit_contact_heading.yml new file mode 100644 index 0000000000..f7f4611b2a --- /dev/null +++ b/conf/cmi/language/fi/field.field.paragraph.unit_contact_card.field_unit_contact_heading.yml @@ -0,0 +1,2 @@ +label: Otsikko +description: 'Komponentin oletusotsikko on ”Yhteystiedot”. Valitse otsikoksi kyseisen toimipisteen nimi, jos ei ole ilmeistä, minkä toimipisteen yhteystiedoista on kyse.' diff --git a/conf/cmi/language/fi/field.storage.paragraph.field_unit_contact_heading.yml b/conf/cmi/language/fi/field.storage.paragraph.field_unit_contact_heading.yml new file mode 100644 index 0000000000..382e1fa91c --- /dev/null +++ b/conf/cmi/language/fi/field.storage.paragraph.field_unit_contact_heading.yml @@ -0,0 +1,6 @@ +settings: + allowed_values: + - + label: Yhteystiedot + - + label: 'Kyseisen toimipisteen nimi' diff --git a/conf/cmi/language/sv/field.field.paragraph.unit_contact_card.field_unit_contact_heading.yml b/conf/cmi/language/sv/field.field.paragraph.unit_contact_card.field_unit_contact_heading.yml new file mode 100644 index 0000000000..a7335eb2a2 --- /dev/null +++ b/conf/cmi/language/sv/field.field.paragraph.unit_contact_card.field_unit_contact_heading.yml @@ -0,0 +1 @@ +label: Rubrik diff --git a/conf/cmi/language/sv/field.field.paragraph.unit_contact_card.field_unit_contact_title.yml b/conf/cmi/language/sv/field.field.paragraph.unit_contact_card.field_unit_contact_title.yml deleted file mode 100644 index 2711e04dad..0000000000 --- a/conf/cmi/language/sv/field.field.paragraph.unit_contact_card.field_unit_contact_title.yml +++ /dev/null @@ -1 +0,0 @@ -label: Titel diff --git a/conf/cmi/user.role.admin.yml b/conf/cmi/user.role.admin.yml index 601310a188..55c22ca8a2 100644 --- a/conf/cmi/user.role.admin.yml +++ b/conf/cmi/user.role.admin.yml @@ -205,6 +205,9 @@ permissions: - 'delete any media' - 'delete any page content' - 'delete any remote_video media' + - 'delete any tpr_ontology_word_details' + - 'delete any tpr_service' + - 'delete any tpr_unit' - 'delete any webform' - 'delete any webform submission' - 'delete content translations' @@ -223,6 +226,9 @@ permissions: - 'delete own page content' - 'delete own remote_video media' - 'delete own service content' + - 'delete own tpr_ontology_word_details' + - 'delete own tpr_service' + - 'delete own tpr_unit' - 'delete own webform' - 'delete own webform submission' - 'delete page revisions' diff --git a/conf/cmi/user.role.content_producer.yml b/conf/cmi/user.role.content_producer.yml index c674e78fd1..e886b33ae9 100644 --- a/conf/cmi/user.role.content_producer.yml +++ b/conf/cmi/user.role.content_producer.yml @@ -79,6 +79,9 @@ permissions: - 'create terms in avustuslaji' - 'create terms in target_group' - 'create url aliases' + - 'delete any tpr_ontology_word_details' + - 'delete any tpr_service' + - 'delete any tpr_unit' - 'delete landing_page revisions' - 'delete media' - 'delete own address content' @@ -92,6 +95,9 @@ permissions: - 'delete own page content' - 'delete own remote_video media' - 'delete own service content' + - 'delete own tpr_ontology_word_details' + - 'delete own tpr_service' + - 'delete own tpr_unit' - 'delete page revisions' - 'delete service revisions' - 'edit any announcement content' diff --git a/conf/cmi/user.role.editor.yml b/conf/cmi/user.role.editor.yml index 22a63ffb9f..a17d1a50a8 100644 --- a/conf/cmi/user.role.editor.yml +++ b/conf/cmi/user.role.editor.yml @@ -88,6 +88,9 @@ permissions: - 'delete any news_item content' - 'delete any page content' - 'delete any remote_video media' + - 'delete any tpr_ontology_word_details' + - 'delete any tpr_service' + - 'delete any tpr_unit' - 'delete content translations' - 'delete landing_page revisions' - 'delete media' @@ -102,6 +105,9 @@ permissions: - 'delete own news_item content' - 'delete own page content' - 'delete own remote_video media' + - 'delete own tpr_ontology_word_details' + - 'delete own tpr_service' + - 'delete own tpr_unit' - 'delete page revisions' - 'delete remote entities' - 'delete terms in keywords' diff --git a/conf/cmi/views.view.er_tpr_unit.yml b/conf/cmi/views.view.er_tpr_unit.yml index 7bb6e44e2b..fb10e78a63 100644 --- a/conf/cmi/views.view.er_tpr_unit.yml +++ b/conf/cmi/views.view.er_tpr_unit.yml @@ -91,7 +91,6 @@ display: type: mini options: offset: 0 - pagination_heading_level: h4 items_per_page: 10 total_pages: null id: 0 @@ -106,6 +105,7 @@ display: items_per_page_options_all_label: '- All -' offset: false offset_label: Offset + pagination_heading_level: h4 exposed_form: type: basic options: diff --git a/conf/cmi/views.view.locked_services.yml b/conf/cmi/views.view.locked_services.yml index 5dc4705afc..5bfd2f4fff 100644 --- a/conf/cmi/views.view.locked_services.yml +++ b/conf/cmi/views.view.locked_services.yml @@ -381,7 +381,6 @@ display: type: full options: offset: 0 - pagination_heading_level: h4 items_per_page: 50 total_pages: null id: 0 @@ -399,6 +398,7 @@ display: offset: false offset_label: Offset quantity: 9 + pagination_heading_level: h4 exposed_form: type: basic options: diff --git a/conf/cmi/views.view.locked_units.yml b/conf/cmi/views.view.locked_units.yml index 8c49c99a30..34b40e43be 100644 --- a/conf/cmi/views.view.locked_units.yml +++ b/conf/cmi/views.view.locked_units.yml @@ -381,7 +381,6 @@ display: type: full options: offset: 0 - pagination_heading_level: h4 items_per_page: 50 total_pages: null id: 0 @@ -399,6 +398,7 @@ display: offset: false offset_label: Offset quantity: 9 + pagination_heading_level: h4 exposed_form: type: basic options: diff --git a/conf/cmi/views.view.service_list.yml b/conf/cmi/views.view.service_list.yml index 661c8cc9c0..e6b26601bd 100644 --- a/conf/cmi/views.view.service_list.yml +++ b/conf/cmi/views.view.service_list.yml @@ -109,7 +109,6 @@ display: type: full options: offset: 0 - pagination_heading_level: h4 items_per_page: 4 total_pages: null id: 0 @@ -127,6 +126,7 @@ display: offset: false offset_label: Offset quantity: 9 + pagination_heading_level: h4 exposed_form: type: basic options: @@ -646,7 +646,6 @@ display: type: full options: offset: 0 - pagination_heading_level: h4 items_per_page: 5 total_pages: null id: 0 @@ -664,6 +663,7 @@ display: offset: false offset_label: Offset quantity: 9 + pagination_heading_level: h4 exposed_form: type: basic options: diff --git a/conf/cmi/views.view.service_units.yml b/conf/cmi/views.view.service_units.yml index 14bfa16b4b..89e30dfd67 100644 --- a/conf/cmi/views.view.service_units.yml +++ b/conf/cmi/views.view.service_units.yml @@ -93,7 +93,6 @@ display: type: full options: offset: 0 - pagination_heading_level: h4 items_per_page: 8 total_pages: null id: 0 @@ -111,6 +110,7 @@ display: offset: false offset_label: Offset quantity: 9 + pagination_heading_level: h4 exposed_form: type: basic options: diff --git a/conf/cmi/views.view.unit_search.yml b/conf/cmi/views.view.unit_search.yml index c10b4f6282..5dd254a1de 100644 --- a/conf/cmi/views.view.unit_search.yml +++ b/conf/cmi/views.view.unit_search.yml @@ -286,7 +286,6 @@ display: type: full options: offset: 0 - pagination_heading_level: h4 items_per_page: 15 total_pages: null id: 0 @@ -304,6 +303,7 @@ display: offset: false offset_label: Offset quantity: 9 + pagination_heading_level: h4 exposed_form: type: basic options: diff --git a/conf/cmi/webform.webform.sotepe_yleis.yml b/conf/cmi/webform.webform.sotepe_yleis.yml index 3199ad7d68..b08a2636b1 100644 --- a/conf/cmi/webform.webform.sotepe_yleis.yml +++ b/conf/cmi/webform.webform.sotepe_yleis.yml @@ -24,7 +24,7 @@ third_party_settings: applicationContinuous: 0 disableCopying: 0 status: released - parent: "" + parent: '' avus2BreakingChange: 0 weight: 0 open: null