decidim-core 0.30.6 → 0.30.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/content_blocks/highlighted_elements_with_cell_for_list_cell.rb +5 -1
  3. data/app/cells/decidim/content_blocks/participatory_space_metadata/content.erb +2 -2
  4. data/app/cells/decidim/report_button/already_reported_modal.erb +1 -1
  5. data/app/cells/decidim/report_button/flag_modal.erb +1 -1
  6. data/app/cells/decidim/report_user_button/already_reported_modal.erb +1 -1
  7. data/app/cells/decidim/report_user_button/flag_modal.erb +1 -1
  8. data/app/cells/decidim/statistic/show.erb +4 -4
  9. data/app/cells/decidim/upload_modal/files.erb +9 -5
  10. data/app/cells/decidim/upload_modal_cell.rb +14 -1
  11. data/app/commands/decidim/multiple_attachments_methods.rb +20 -3
  12. data/app/helpers/decidim/mailer_helper.rb +36 -0
  13. data/app/helpers/decidim/menu_helper.rb +2 -1
  14. data/app/helpers/decidim/newsletters_helper.rb +4 -22
  15. data/app/jobs/decidim/find_and_update_descendants_job.rb +8 -2
  16. data/app/jobs/decidim/update_search_indexes_job.rb +2 -2
  17. data/app/mailers/decidim/application_mailer.rb +4 -0
  18. data/app/packs/src/decidim/a11y.js +29 -0
  19. data/app/packs/src/decidim/a11y.test.js +81 -0
  20. data/app/packs/src/decidim/confirm.js +8 -1
  21. data/app/packs/src/decidim/confirm.test.js +225 -0
  22. data/app/packs/src/decidim/datepicker/datepicker_functions.js +26 -0
  23. data/app/packs/src/decidim/datepicker/generate_datepicker.js +2 -1
  24. data/app/packs/src/decidim/datepicker/generate_timepicker.js +9 -1
  25. data/app/packs/src/decidim/datepicker/test/datepicker_functions_adjust_picker_position.test.js +234 -0
  26. data/app/packs/src/decidim/direct_uploads/upload_field.js +1 -1
  27. data/app/packs/src/decidim/focus_guard.js +4 -4
  28. data/app/packs/stylesheets/decidim/_cards.scss +12 -4
  29. data/app/packs/stylesheets/decidim/_flash.scss +1 -1
  30. data/app/packs/stylesheets/decidim/_modal_update.scss +1 -1
  31. data/app/presenters/decidim/menu_item_presenter.rb +7 -1
  32. data/app/views/decidim/devise/invitations/edit.html.erb +3 -3
  33. data/app/views/decidim/devise/registrations/new.html.erb +1 -0
  34. data/app/views/decidim/devise/shared/_tos_fields.html.erb +3 -3
  35. data/app/views/decidim/notification_mailer/event_received.html.erb +3 -3
  36. data/config/initializers/devise.rb +6 -0
  37. data/config/locales/ar.yml +3 -3
  38. data/config/locales/bg.yml +0 -4
  39. data/config/locales/ca-IT.yml +7 -6
  40. data/config/locales/ca.yml +7 -6
  41. data/config/locales/cs.yml +8 -8
  42. data/config/locales/de.yml +17 -8
  43. data/config/locales/el.yml +0 -2
  44. data/config/locales/en.yml +5 -4
  45. data/config/locales/es-MX.yml +8 -7
  46. data/config/locales/es-PY.yml +8 -7
  47. data/config/locales/es.yml +10 -9
  48. data/config/locales/eu.yml +8 -6
  49. data/config/locales/fi-plain.yml +10 -4
  50. data/config/locales/fi.yml +11 -5
  51. data/config/locales/fr-CA.yml +7 -5
  52. data/config/locales/fr.yml +8 -7
  53. data/config/locales/gl.yml +0 -2
  54. data/config/locales/hu.yml +5 -9
  55. data/config/locales/id-ID.yml +0 -2
  56. data/config/locales/it.yml +1 -3
  57. data/config/locales/ja.yml +7 -8
  58. data/config/locales/lb.yml +0 -2
  59. data/config/locales/lt.yml +1 -3
  60. data/config/locales/lv.yml +0 -2
  61. data/config/locales/nl.yml +0 -2
  62. data/config/locales/no.yml +0 -2
  63. data/config/locales/pl.yml +0 -4
  64. data/config/locales/pt-BR.yml +4 -5
  65. data/config/locales/pt.yml +0 -2
  66. data/config/locales/ro-RO.yml +1 -5
  67. data/config/locales/ru.yml +0 -2
  68. data/config/locales/sk.yml +0 -4
  69. data/config/locales/sv.yml +8 -7
  70. data/config/locales/tr-TR.yml +17 -5
  71. data/config/locales/zh-CN.yml +0 -2
  72. data/config/locales/zh-TW.yml +1 -3
  73. data/lib/decidim/assets/tailwind/tailwind.config.js.erb +1 -1
  74. data/lib/decidim/content_parsers/blob_parser.rb +2 -2
  75. data/lib/decidim/content_renderers/blob_renderer.rb +2 -2
  76. data/lib/decidim/core/version.rb +1 -1
  77. data/lib/decidim/form_builder.rb +25 -1
  78. data/lib/decidim/maintenance/taxonomy_importer.rb +1 -1
  79. data/lib/decidim/searchable.rb +4 -4
  80. metadata +10 -6
@@ -479,7 +479,7 @@ sv:
479
479
  allowed_postal_codes: Tillåtna postnummer (separerade med kommatecken)
480
480
  document_number: Dokumentnummer
481
481
  postal_code: Postnummer
482
- name: Tillfällig exempel-verifiering
482
+ name: Exempel-verifiering för tillfälliga användare
483
483
  errors:
484
484
  duplicate_authorization: En deltagare är redan auktoriserad med samma data. En administratör kommer att kontakta dig för att verifiera dina uppgifter.
485
485
  expired_at: Förföll vid %{timestamp}
@@ -1751,7 +1751,7 @@ sv:
1751
1751
  manage_user_group_admins: Hantera administratörer
1752
1752
  manage_user_group_users: Hantera medlemmar
1753
1753
  message: Meddelande
1754
- resend_email_confirmation_instructions: Skicka anvisningarna om bekräftelse om e-post igen
1754
+ resend_email_confirmation_instructions: Skicka e-postmeddelande med bekräftelseinstruktioner igen
1755
1755
  confirmation_instructions_sent: Instruktioner för e-postbekräftelse har skickats.
1756
1756
  fill_in_email_to_confirm_it: Fyll i gruppens e-postadress för att bekräfta den.
1757
1757
  reported_mailer:
@@ -1989,6 +1989,7 @@ sv:
1989
1989
  nickname_help: Ditt användarnamn i %{organization}. Kan bara innehålla små bokstäver a-z, siffror, '-' och '_'.
1990
1990
  submit_button: Spara
1991
1991
  subtitle: Om du godkänner inbjudan väljer du ditt användarnamn och lösenord.
1992
+ subtitle_no_password: Om du accepterar inbjudan var vänlig ange ditt alias.
1992
1993
  invitation_removed: Din inbjudan har tagits bort.
1993
1994
  invitation_token_invalid: Ogiltig token för inbjudan!
1994
1995
  new:
@@ -1996,8 +1997,8 @@ sv:
1996
1997
  submit_button: Skicka en inbjudan
1997
1998
  no_invitations_remaining: Inga inbjudningar kvar
1998
1999
  send_instructions: Ett e-brev med inbjudan har skickats till %{email}.
1999
- updated: Lösenordet har nu ställts in. Du är nu inloggad.
2000
- updated_not_active: Ditt lösenord har ställts in.
2000
+ updated: Inbjudan godtogs. Du är nu inloggad.
2001
+ updated_not_active: Inbjudan godtogs.
2001
2002
  mailer:
2002
2003
  confirmation_instructions:
2003
2004
  action: Bekräfta mitt konto
@@ -2057,8 +2058,8 @@ sv:
2057
2058
  confirm_new_password: Bekräfta nytt lösenord
2058
2059
  new_password: Nytt lösenord
2059
2060
  old_password_help: För att bekräfta ändringarna av ditt konto, vänligen ange ditt nuvarande lösenord.
2060
- password_help: "Minst %{minimum_characters} tecken, får inte vara för vanligt (som 123456) och måste skilja sig från ditt användarnamn och din e-postadress."
2061
- password_help_admin: "Minst %{minimum_characters} tecken, får inte vara för vanligt (som 123456) och måste skilja sig från ditt användarnamn och din e-postadress."
2061
+ password_help: "Minst %{minimum_characters} tecken. Måste innehålla minst 5 olika tecken, får inte vara för vanligt (t.ex. 123456) och måste skilja sig från ditt namn, användarnamn, e-post och webbplatsens namn."
2062
+ password_help_admin: "Minst %{minimum_characters} tecken. Måste innehålla minst 5 olika tecken, får inte vara för vanligt (t.ex. 123456) och måste skilja sig från ditt namn, användarnamn, e-post, webbplatsens namn och dina tidigare lösenord."
2062
2063
  title: Ändra lösenord
2063
2064
  new:
2064
2065
  forgot_your_password: Glömt ditt lösenord?
@@ -2301,7 +2302,7 @@ sv:
2301
2302
  confirm_close_ephemeral_session: Om du klickar dig ut från den här sidan kommer din session att stängas. Är du säker?
2302
2303
  log_in: Logga in
2303
2304
  main_menu: Huvudmeny
2304
- mobile_account_greeting: Hej, %{user_name}
2305
+ mobile_account_greeting: Hej %{user_name}
2305
2306
  user_menu: Användarmeny
2306
2307
  impersonation_warning:
2307
2308
  close_session: Stäng session
@@ -16,6 +16,8 @@ tr:
16
16
  phone: Telefon
17
17
  report:
18
18
  details: Ek Yorumlar
19
+ taxonomy:
20
+ name: Sınıf Adı
19
21
  user:
20
22
  about: Hakkında
21
23
  email: E-posta adresiniz
@@ -139,6 +141,8 @@ tr:
139
141
  create: "%{user_name} , %{resource_name} statik sayfayı oluşturdu"
140
142
  delete: "%{user_name}, %{resource_name} statik sayfayı sildi"
141
143
  update: "%{user_name}, %{resource_name} statik sayfayı güncelledi"
144
+ taxonomy:
145
+ delete_with_parent: "%{user_name}, %{parent_taxonomy} sınıflaması içindeki %{resource_name} sınıfını sildi"
142
146
  user:
143
147
  block: "%{user_name}, %{resource_name} kullanıcısını engelledi"
144
148
  invite: "%{user_name} katılımcıyı %{resource_name} rolüyle davet etti: %{role}"
@@ -239,6 +243,7 @@ tr:
239
243
  postal_code: Posta kodu
240
244
  name: Örnek yetkilendirme
241
245
  dummy_authorization_workflow:
246
+ explanation: Sahte yetkilendirme iş akışı
242
247
  name: Sahte yetkilendirme iş akışı
243
248
  errors:
244
249
  duplicate_authorization: Bir katılımcı zaten aynı verilerle yetkilendirildi. Bir yönetici, bilgilerinizi doğrulamak için sizinle iletişime geçecektir.
@@ -708,6 +713,8 @@ tr:
708
713
  not_found: 'Veritabanında kapsam bulunamadı (ID: %{id})'
709
714
  scope_type_presenter:
710
715
  not_found: 'Veritabanında kapsam tipi bulunamadı (ID: %{id})'
716
+ taxonomy_presenter:
717
+ not_found: 'Sınıflandırma veritabanında bulunamadı (ID: %{id})'
711
718
  managed_users:
712
719
  expired_session: Mevcut kimliğe bürünme oturumunun süresi doldu.
713
720
  map:
@@ -840,6 +847,13 @@ tr:
840
847
  update:
841
848
  error: Bildirim ayarlarınız güncellenirken bir hata oluştu.
842
849
  success: Bildirim ayarlarınız başarıyla güncellendi.
850
+ onboarding_action_message:
851
+ click_link: Tıklayınız
852
+ cta_html: <a href="%{path}">%{link_text}</a> %{resource_name} içindeki %{action} işlemini gerçekleştirmek için <strong>%{resource_title}</strong>
853
+ expired_authorization_active_title: Yetkinizin süresi doldu.
854
+ incomplete_authorization_active_title: Gerekli tüm bilgiler girilmediğinden doğrulama işleminiz tamamlanmadı.
855
+ pending_authorization_active_message: Bu işlemi gerçekleştirmek için lütfen formu doldurun.
856
+ pending_authorization_active_title: Kimliğinizi doğrulamamız gerekiyor.
843
857
  open_data:
844
858
  not_available_yet: Açık Veri dosyaları henüz mevcut değil, lütfen birkaç dakika içinde tekrar deneyin.
845
859
  pad_iframe:
@@ -1063,8 +1077,6 @@ tr:
1063
1077
  submit_button: Davet gönder
1064
1078
  no_invitations_remaining: Kalan davet yok
1065
1079
  send_instructions: Davet e-postası %{email}gönderildi.
1066
- updated: Şifreniz başarıyla ayarlandı. Şimdi oturum açtınız.
1067
- updated_not_active: Şifreniz başarıyla ayarlandı.
1068
1080
  mailer:
1069
1081
  confirmation_instructions:
1070
1082
  action: Hesabımı onayla
@@ -1125,13 +1137,13 @@ tr:
1125
1137
  sessions:
1126
1138
  already_signed_out: Başarıyla Çıkış Yapıldı
1127
1139
  new:
1128
- log_in: "Giriş \nGiriş Yapın "
1140
+ log_in: Giriş Yapın
1129
1141
  signed_out:
1130
1142
  shared:
1131
1143
  links:
1132
1144
  back: Geri
1133
1145
  forgot_your_password: Parolanızı mı unuttunuz?
1134
- log_in: "Giriş \nGiriş Yapın "
1146
+ log_in: Giriş Yapın
1135
1147
  log_in_with_provider: '%{provider} ile giriş yapın'
1136
1148
  minimum_password_length:
1137
1149
  one: "(En az%{count} karakter)"
@@ -1178,7 +1190,7 @@ tr:
1178
1190
  footer:
1179
1191
  cc_by_license: Kar Amaçsız Lisanslama (Creative Commons License)
1180
1192
  decidim_logo: Decidim Logo
1181
- log_in: "Giriş \nGiriş Yapın "
1193
+ log_in: Giriş Yapın
1182
1194
  made_with_open_source: Web sitesi <a target="_blank" href="https://github.com/decidim/decidim">ücretsiz yazılımla yapılmıştır</a>.
1183
1195
  terms_of_service: Hizmet Kullanım Koşulları
1184
1196
  header:
@@ -951,8 +951,6 @@ zh-CN:
951
951
  submit_button: 发送邀请
952
952
  no_invitations_remaining: 没有剩余邀请
953
953
  send_instructions: 邀请邮件已发送至 %{email}。
954
- updated: 您的密码设置成功。您现在已登录。
955
- updated_not_active: 您的密码设置成功。
956
954
  mailer:
957
955
  confirmation_instructions:
958
956
  action: 确认我的帐户
@@ -1394,8 +1394,6 @@ zh-TW:
1394
1394
  submit_button: 發送一個邀請
1395
1395
  no_invitations_remaining: 沒有待處理的邀請
1396
1396
  send_instructions: 已向 %{email} 發送了一封邀請郵件。
1397
- updated: 您的密碼已成功設定。您現在已登入。
1398
- updated_not_active: 您的密碼已成功設定。
1399
1397
  mailer:
1400
1398
  confirmation_instructions:
1401
1399
  action: 確認我的帳戶
@@ -1533,7 +1531,7 @@ zh-TW:
1533
1531
  description: 說明
1534
1532
  name: 名稱
1535
1533
  service: 服務
1536
- type: 類別
1534
+ type: 種類
1537
1535
  items:
1538
1536
  _session_id:
1539
1537
  description: 允許網站在使用者在網頁之間移動時記住使用者。
@@ -67,7 +67,7 @@ module.exports = {
67
67
  sans: ["Source Sans Pro", "ui-sans-serif", "system-ui", "sans-serif"]
68
68
  },
69
69
  fontSize: {
70
- xs: ["13px", "16px"],
70
+ xs: ["12px", "16px"],
71
71
  sm: ["14px", "18px"],
72
72
  md: ["16px", "20px"],
73
73
  lg: ["18px", "23px"],
@@ -34,8 +34,8 @@ module Decidim
34
34
  # Group 6: Variation key for representations
35
35
  /(?<variation_part>[\w.=-]+)
36
36
  )?
37
- # Group 7: Filename
38
- /([\w.=-]+)
37
+ # Group 7: Filename (supports apostrophes inside names but not as HTML quote delimiters)
38
+ /((?:[^\s/"<>']|'(?=[^\s/"<>']))+)
39
39
  }x
40
40
 
41
41
  def rewrite
@@ -18,8 +18,8 @@ module Decidim
18
18
  #
19
19
  # @see BaseRenderer Examples of how to use a content renderer
20
20
  class BlobRenderer < BaseRenderer
21
- # Matches a global id representing a Decidim::User
22
- GLOBAL_ID_REGEX = %r{(gid://[\w-]+/ActiveStorage::Blob/\d+)(/([\w=-]+))?}
21
+ # Matches a global id representing an ActiveStorage::Blob (optionally with a variant key)
22
+ GLOBAL_ID_REGEX = %r{(gid://[\w-]+/ActiveStorage::Blob/\d+)(/([\w=-]+))?(?:[^\s"'<>]*)}
23
23
 
24
24
  # Replaces found Global IDs matching an existing blob with a URL to
25
25
  # that blob. The Global IDs representing an invalid ActiveStorage::Blob
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-core version.
5
5
  module Core
6
6
  def self.version
7
- "0.30.6"
7
+ "0.30.8"
8
8
  end
9
9
  end
10
10
  end
@@ -637,9 +637,33 @@ module Decidim
637
637
  else
638
638
  text
639
639
  end
640
-
641
640
  label(attribute, text, options || {})
642
641
  end
642
+
643
+ # render p tag instead of label for proposals "add a document"
644
+ def custom_paragraph(attribute, text, options, field_before_label: false, show_required: true)
645
+ return "".html_safe if text == false
646
+
647
+ required = options.is_a?(Hash) && options.delete(:required)
648
+ text = default_label_text(object, attribute) if text.nil? || text == true
649
+ if show_required
650
+ text +=
651
+ if required
652
+ required_indicator
653
+ else
654
+ required_for_attribute(attribute)
655
+ end
656
+ end
657
+
658
+ text = if field_before_label && block_given?
659
+ safe_join([yield, text.html_safe])
660
+ elsif block_given?
661
+ safe_join([text.html_safe, yield])
662
+ else
663
+ text
664
+ end
665
+ content_tag(:p, text.html_safe, class: "text-lg font-semibold")
666
+ end
643
667
  # rubocop:enable Metrics/PerceivedComplexity
644
668
  # rubocop:enable Metrics/CyclomaticComplexity
645
669
 
@@ -85,7 +85,7 @@ module Decidim
85
85
  component = GlobalID::Locator.locate(component_id)
86
86
  if component
87
87
  begin
88
- component.update!(settings: { taxonomy_filters: [filter.id.to_s] })
88
+ component.update!(settings: component.settings.to_h.merge(taxonomy_filters: [filter.id.to_s]))
89
89
  result[:components_assigned][filter.internal_name[organization.default_locale]] ||= []
90
90
  result[:components_assigned][filter.internal_name[organization.default_locale]] << component_id
91
91
  rescue ActiveRecord::RecordInvalid
@@ -99,7 +99,7 @@ module Decidim
99
99
 
100
100
  # Public: after_update callback to update index information of the model.
101
101
  #
102
- def try_update_index_for_search_resource
102
+ def try_update_index_for_search_resource(current_depth = 0)
103
103
  return unless self.class.searchable_resource?(self)
104
104
 
105
105
  org = self.class.search_resource_fields_mapper.retrieve_organization(self)
@@ -122,13 +122,13 @@ module Decidim
122
122
  searchables_in_org.destroy_all
123
123
  end
124
124
 
125
- find_and_update_descendants
125
+ find_and_update_descendants(current_depth)
126
126
  end
127
127
 
128
128
  private
129
129
 
130
- def find_and_update_descendants
131
- Decidim::FindAndUpdateDescendantsJob.perform_later(self)
130
+ def find_and_update_descendants(current_depth = 0)
131
+ Decidim::FindAndUpdateDescendantsJob.perform_later(self, current_depth)
132
132
  end
133
133
 
134
134
  def contents_to_searchable_resource_attributes(fields, locale)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.30.6
4
+ version: 0.30.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2026-02-26 00:00:00.000000000 Z
13
+ date: 2026-04-24 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: concurrent-ruby
@@ -794,28 +794,28 @@ dependencies:
794
794
  requirements:
795
795
  - - '='
796
796
  - !ruby/object:Gem::Version
797
- version: 0.30.6
797
+ version: 0.30.8
798
798
  type: :development
799
799
  prerelease: false
800
800
  version_requirements: !ruby/object:Gem::Requirement
801
801
  requirements:
802
802
  - - '='
803
803
  - !ruby/object:Gem::Version
804
- version: 0.30.6
804
+ version: 0.30.8
805
805
  - !ruby/object:Gem::Dependency
806
806
  name: decidim-dev
807
807
  requirement: !ruby/object:Gem::Requirement
808
808
  requirements:
809
809
  - - '='
810
810
  - !ruby/object:Gem::Version
811
- version: 0.30.6
811
+ version: 0.30.8
812
812
  type: :development
813
813
  prerelease: false
814
814
  version_requirements: !ruby/object:Gem::Requirement
815
815
  requirements:
816
816
  - - '='
817
817
  - !ruby/object:Gem::Version
818
- version: 0.30.6
818
+ version: 0.30.8
819
819
  description: Adds core features so other engines can hook into the framework.
820
820
  email:
821
821
  - josepjaume@gmail.com
@@ -1388,6 +1388,7 @@ files:
1388
1388
  - app/helpers/decidim/language_chooser_helper.rb
1389
1389
  - app/helpers/decidim/layout_helper.rb
1390
1390
  - app/helpers/decidim/localized_locales_helper.rb
1391
+ - app/helpers/decidim/mailer_helper.rb
1391
1392
  - app/helpers/decidim/map_helper.rb
1392
1393
  - app/helpers/decidim/markup_helper.rb
1393
1394
  - app/helpers/decidim/menu_helper.rb
@@ -1593,6 +1594,7 @@ files:
1593
1594
  - app/packs/images/decidim/vendor/social-share-button/x.svg
1594
1595
  - app/packs/images/decidim/vendor/social-share-button/xing.svg
1595
1596
  - app/packs/src/decidim/a11y.js
1597
+ - app/packs/src/decidim/a11y.test.js
1596
1598
  - app/packs/src/decidim/abide_form_validator_fixer.js
1597
1599
  - app/packs/src/decidim/account_form.js
1598
1600
  - app/packs/src/decidim/append_elements.js
@@ -1607,6 +1609,7 @@ files:
1607
1609
  - app/packs/src/decidim/clipboard.js
1608
1610
  - app/packs/src/decidim/configuration.js
1609
1611
  - app/packs/src/decidim/confirm.js
1612
+ - app/packs/src/decidim/confirm.test.js
1610
1613
  - app/packs/src/decidim/data_consent/consent_manager.js
1611
1614
  - app/packs/src/decidim/data_consent/consent_manager.test.js
1612
1615
  - app/packs/src/decidim/data_consent/index.js
@@ -1617,6 +1620,7 @@ files:
1617
1620
  - app/packs/src/decidim/datepicker/generate_datepicker.js
1618
1621
  - app/packs/src/decidim/datepicker/generate_timepicker.js
1619
1622
  - app/packs/src/decidim/datepicker/test/date.test.js
1623
+ - app/packs/src/decidim/datepicker/test/datepicker_functions_adjust_picker_position.test.js
1620
1624
  - app/packs/src/decidim/datepicker/test/time.test.js
1621
1625
  - app/packs/src/decidim/decidim_application.js
1622
1626
  - app/packs/src/decidim/delayed.js