decidim-assemblies 0.30.2 → 0.31.0.rc1

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 (99) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/assemblies/content_blocks/highlighted_assemblies_settings_form/show.erb +3 -1
  3. data/app/commands/decidim/assemblies/admin/create_assembly.rb +1 -1
  4. data/app/commands/decidim/assemblies/admin/{copy_assembly.rb → duplicate_assembly.rb} +20 -21
  5. data/app/commands/decidim/assemblies/admin/update_assembly.rb +1 -1
  6. data/app/controllers/decidim/assemblies/admin/assemblies_controller.rb +3 -3
  7. data/app/controllers/decidim/assemblies/admin/assembly_duplicates_controller.rb +35 -0
  8. data/app/controllers/decidim/assemblies/admin/assembly_imports_controller.rb +1 -1
  9. data/app/controllers/decidim/assemblies/admin/assembly_landing_page_controller.rb +4 -0
  10. data/app/forms/decidim/assemblies/admin/{assembly_copy_form.rb → assembly_duplicate_form.rb} +4 -4
  11. data/app/forms/decidim/assemblies/admin/assembly_form.rb +0 -1
  12. data/app/models/decidim/assembly.rb +0 -4
  13. data/app/packs/entrypoints/decidim_assemblies_admin.js +0 -1
  14. data/app/packs/src/decidim/assemblies/admin/assemblies.js +3 -62
  15. data/app/packs/src/decidim/assemblies/controllers/.gitkeep +0 -0
  16. data/app/packs/src/decidim/assemblies/controllers/assembly_admin/assembly_admin.test.js +1077 -0
  17. data/app/packs/src/decidim/assemblies/controllers/assembly_admin/controller.js +66 -0
  18. data/app/permissions/decidim/assemblies/permissions.rb +7 -7
  19. data/app/presenters/decidim/assemblies/admin_log/assembly_presenter.rb +0 -1
  20. data/app/presenters/decidim/assemblies/assembly_stats_presenter.rb +1 -3
  21. data/app/queries/decidim/assemblies/assemblies_stats_followers_count.rb +14 -0
  22. data/app/queries/decidim/assemblies/assemblies_stats_participants_count.rb +14 -0
  23. data/app/serializers/decidim/assemblies/assembly_importer.rb +0 -1
  24. data/app/views/decidim/assemblies/admin/assemblies/_assembly_row.html.erb +118 -49
  25. data/app/views/decidim/assemblies/admin/assemblies/_form.html.erb +8 -12
  26. data/app/views/decidim/assemblies/admin/assemblies/edit.html.erb +1 -9
  27. data/app/views/decidim/assemblies/admin/assemblies/index.html.erb +2 -2
  28. data/app/views/decidim/assemblies/admin/assemblies/index.js.erb +4 -0
  29. data/app/views/decidim/assemblies/admin/assemblies/manage_trash.html.erb +2 -1
  30. data/app/views/decidim/assemblies/admin/assemblies/new.html.erb +1 -1
  31. data/app/views/decidim/assemblies/admin/{assembly_copies → assembly_duplicates}/_form.html.erb +4 -4
  32. data/app/views/decidim/assemblies/admin/assembly_duplicates/new.html.erb +19 -0
  33. data/app/views/decidim/assemblies/admin/assembly_user_roles/index.html.erb +42 -18
  34. data/app/views/decidim/assemblies/assemblies/index.html.erb +0 -1
  35. data/app/views/layouts/decidim/admin/_manage_assemblies.html.erb +1 -1
  36. data/config/assets.rb +2 -3
  37. data/config/locales/ar.yml +0 -13
  38. data/config/locales/bg.yml +0 -17
  39. data/config/locales/bs-BA.yml +0 -4
  40. data/config/locales/ca-IT.yml +11 -16
  41. data/config/locales/ca.yml +11 -16
  42. data/config/locales/cs.yml +11 -16
  43. data/config/locales/de.yml +12 -17
  44. data/config/locales/el.yml +0 -13
  45. data/config/locales/en.yml +11 -16
  46. data/config/locales/es-MX.yml +12 -17
  47. data/config/locales/es-PY.yml +12 -17
  48. data/config/locales/es.yml +12 -17
  49. data/config/locales/eu.yml +11 -16
  50. data/config/locales/fi-plain.yml +11 -16
  51. data/config/locales/fi.yml +11 -16
  52. data/config/locales/fr-CA.yml +11 -16
  53. data/config/locales/fr.yml +11 -16
  54. data/config/locales/ga-IE.yml +0 -6
  55. data/config/locales/gl.yml +0 -13
  56. data/config/locales/he-IL.yml +0 -12
  57. data/config/locales/hu.yml +0 -14
  58. data/config/locales/id-ID.yml +0 -12
  59. data/config/locales/is-IS.yml +0 -10
  60. data/config/locales/it.yml +4 -17
  61. data/config/locales/ja.yml +12 -17
  62. data/config/locales/kaa.yml +0 -3
  63. data/config/locales/ko.yml +0 -4
  64. data/config/locales/lb.yml +0 -12
  65. data/config/locales/lt.yml +0 -14
  66. data/config/locales/lv.yml +0 -13
  67. data/config/locales/nl.yml +0 -13
  68. data/config/locales/no.yml +0 -13
  69. data/config/locales/pl.yml +0 -17
  70. data/config/locales/pt-BR.yml +0 -17
  71. data/config/locales/pt.yml +0 -18
  72. data/config/locales/ro-RO.yml +2 -14
  73. data/config/locales/ru.yml +0 -10
  74. data/config/locales/sk.yml +0 -8
  75. data/config/locales/sl.yml +0 -12
  76. data/config/locales/sq-AL.yml +0 -15
  77. data/config/locales/sr-CS.yml +0 -4
  78. data/config/locales/sv.yml +10 -16
  79. data/config/locales/tr-TR.yml +0 -13
  80. data/config/locales/uk.yml +0 -10
  81. data/config/locales/zh-CN.yml +0 -13
  82. data/config/locales/zh-TW.yml +0 -13
  83. data/db/migrate/20250604081741_remove_hastags_column_assemblies.rb +7 -0
  84. data/lib/decidim/api/assembly_type.rb +10 -6
  85. data/lib/decidim/assemblies/admin_engine.rb +1 -1
  86. data/lib/decidim/assemblies/api.rb +0 -1
  87. data/lib/decidim/assemblies/engine.rb +5 -14
  88. data/lib/decidim/assemblies/participatory_space.rb +14 -0
  89. data/lib/decidim/assemblies/query_extensions.rb +0 -18
  90. data/lib/decidim/assemblies/seeds.rb +2 -3
  91. data/lib/decidim/assemblies/test/factories.rb +2 -2
  92. data/lib/decidim/assemblies/version.rb +1 -1
  93. metadata +23 -21
  94. data/app/controllers/decidim/assemblies/admin/assembly_copies_controller.rb +0 -35
  95. data/app/packs/entrypoints/decidim_assemblies.js +0 -4
  96. data/app/packs/src/decidim/assemblies/assemblies.js +0 -14
  97. data/app/queries/decidim/assemblies/metrics/assemblies_metric_manage.rb +0 -27
  98. data/app/views/decidim/assemblies/admin/assembly_copies/new.html.erb +0 -19
  99. data/lib/decidim/api/assemblies_type_type.rb +0 -16
@@ -0,0 +1,1077 @@
1
+ /* eslint max-lines: ["error", 1100] */
2
+
3
+ import { Application } from "@hotwired/stimulus"
4
+ import Controller from "./controller"
5
+
6
+ describe("AssemblyAdminController", () => {
7
+ let application = null;
8
+ let controller = null;
9
+ let element = null;
10
+
11
+ beforeEach(async () => {
12
+ // Set up DOM structure that matches the actual form
13
+ document.body.innerHTML = `
14
+ <div class="item__edit-form">
15
+ <form data-controller="assembly-admin form-validator" data-live-validate="true" data-validate-on-blur="true" class="form-defaults form new_assembly assembly_form_admin" id="new_assembly" novalidate="novalidate" enctype="multipart/form-data" action="/admin/assemblies" accept-charset="UTF-8" method="post" data-form-validator="true">
16
+ <input type="hidden" name="authenticity_token" value="GWgZVFN6v7DJo-hJWE1D_l47XiGxbXTwbOKj3wwOdAz1nH4F7ags0BeLLCFbuk8ER0XUjlxlTz494ebp1V6lSA" autocomplete="off" id="input-dummy-1">
17
+ <div class="form__wrapper">
18
+ <div class="card" data-controller="accordion" id="accordion-title" data-component="accordion" role="presentation">
19
+ <div class="card-divider">
20
+ <button class="card-divider-button" data-open="true" data-controls="panel-title" type="button" role="button" tabindex="0" aria-controls="panel-title" aria-expanded="true" aria-disabled="false">
21
+ <svg width="1em" height="1em" role="img" aria-hidden="true">
22
+ <use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-arrow-right-s-line"></use>
23
+ </svg>
24
+ <h2 class="card-title" id="title"> General Information </h2>
25
+ </button>
26
+ </div>
27
+ <div id="panel-title" class="card-section" role="region" tabindex="-1" aria-labelledby="" aria-hidden="false" data-accessibility-violation="true">
28
+ <div class="row column">
29
+ <div class="label--tabs">
30
+ <label for="assembly_title">Title <span class="inline-block" data-controller="tooltip" data-tooltip-tooltip-value="&lt;p class=&quot;top&quot; role=&quot;tooltip&quot; aria-hidden=&quot;true&quot;&gt;Required field&lt;/p&gt;">
31
+ <span class="label-required">
32
+ <span aria-hidden="true">*</span>
33
+ <span class="sr-only">Required field</span>
34
+ </span>
35
+ </span>
36
+ </label>
37
+ <ul class="tabs tabs--lang" id="assembly-title-tabs" data-tabs="true" role="tablist">
38
+ <li class="tabs-title is-active" role="presentation">
39
+ <a href="#assembly-title-tabs-title-panel-0" role="tab" aria-controls="assembly-title-tabs-title-panel-0" aria-selected="true" id="assembly-title-tabs-title-panel-0-label" tabindex="0">English</a>
40
+ </li>
41
+ <li class="tabs-title" role="presentation">
42
+ <a href="#assembly-title-tabs-title-panel-1" role="tab" aria-controls="assembly-title-tabs-title-panel-1" aria-selected="false" id="assembly-title-tabs-title-panel-1-label" tabindex="-1">Castellano</a>
43
+ </li>
44
+ <li class="tabs-title" role="presentation">
45
+ <a href="#assembly-title-tabs-title-panel-2" role="tab" aria-controls="assembly-title-tabs-title-panel-2" aria-selected="false" id="assembly-title-tabs-title-panel-2-label" tabindex="-1">Català</a>
46
+ </li>
47
+ </ul>
48
+ </div>
49
+ <div class="tabs-content" data-tabs-content="assembly-title-tabs">
50
+ <div class="tabs-panel is-active" id="assembly-title-tabs-title-panel-0" aria-hidden="false" role="tabpanel" aria-labelledby="assembly-title-tabs-title-panel-0-label">
51
+ <input autofocus="autofocus" aria-label="title" type="text" name="assembly[title_en]" id="assembly_title_en">
52
+ </div>
53
+ <div class="tabs-panel" id="assembly-title-tabs-title-panel-1" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-title-tabs-title-panel-1-label">
54
+ <input autofocus="autofocus" aria-label="title" type="text" name="assembly[title_es]" id="assembly_title_es">
55
+ </div>
56
+ <div class="tabs-panel" id="assembly-title-tabs-title-panel-2" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-title-tabs-title-panel-2-label">
57
+ <input autofocus="autofocus" aria-label="title" type="text" name="assembly[title_ca]" id="assembly_title_ca">
58
+ </div>
59
+ </div>
60
+ </div>
61
+ <div class="row column">
62
+ <div class="label--tabs">
63
+ <label for="assembly_subtitle">Subtitle <span class="inline-block" data-controller="tooltip" data-tooltip-tooltip-value="&lt;p class=&quot;top&quot; role=&quot;tooltip&quot; aria-hidden=&quot;true&quot;&gt;Required field&lt;/p&gt;">
64
+ <span class="label-required">
65
+ <span aria-hidden="true">*</span>
66
+ <span class="sr-only">Required field</span>
67
+ </span>
68
+ </span>
69
+ </label>
70
+ <ul class="tabs tabs--lang" id="assembly-subtitle-tabs" data-tabs="true" role="tablist">
71
+ <li class="tabs-title is-active" role="presentation">
72
+ <a href="#assembly-subtitle-tabs-subtitle-panel-0" role="tab" aria-controls="assembly-subtitle-tabs-subtitle-panel-0" aria-selected="true" id="assembly-subtitle-tabs-subtitle-panel-0-label" tabindex="0">English</a>
73
+ </li>
74
+ <li class="tabs-title" role="presentation">
75
+ <a href="#assembly-subtitle-tabs-subtitle-panel-1" role="tab" aria-controls="assembly-subtitle-tabs-subtitle-panel-1" aria-selected="false" id="assembly-subtitle-tabs-subtitle-panel-1-label" tabindex="-1">Castellano</a>
76
+ </li>
77
+ <li class="tabs-title" role="presentation">
78
+ <a href="#assembly-subtitle-tabs-subtitle-panel-2" role="tab" aria-controls="assembly-subtitle-tabs-subtitle-panel-2" aria-selected="false" id="assembly-subtitle-tabs-subtitle-panel-2-label" tabindex="-1">Català</a>
79
+ </li>
80
+ </ul>
81
+ </div>
82
+ <div class="tabs-content" data-tabs-content="assembly-subtitle-tabs">
83
+ <div class="tabs-panel is-active" id="assembly-subtitle-tabs-subtitle-panel-0" aria-hidden="false" role="tabpanel" aria-labelledby="assembly-subtitle-tabs-subtitle-panel-0-label">
84
+ <input aria-label="subtitle" type="text" name="assembly[subtitle_en]" id="assembly_subtitle_en">
85
+ </div>
86
+ <div class="tabs-panel" id="assembly-subtitle-tabs-subtitle-panel-1" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-subtitle-tabs-subtitle-panel-1-label">
87
+ <input aria-label="subtitle" type="text" name="assembly[subtitle_es]" id="assembly_subtitle_es">
88
+ </div>
89
+ <div class="tabs-panel" id="assembly-subtitle-tabs-subtitle-panel-2" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-subtitle-tabs-subtitle-panel-2-label">
90
+ <input aria-label="subtitle" type="text" name="assembly[subtitle_ca]" id="assembly_subtitle_ca">
91
+ </div>
92
+ </div>
93
+ </div>
94
+ <div class="row column">
95
+ <label for="assembly_weight">Order position <span class="inline-block" data-controller="tooltip" data-tooltip-tooltip-value="&lt;p class=&quot;top&quot; role=&quot;tooltip&quot; aria-hidden=&quot;true&quot;&gt;Required field&lt;/p&gt;" aria-describedby="tooltip-v06j2">
96
+ <span class="label-required">
97
+ <span aria-hidden="true">*</span>
98
+ <span class="sr-only">Required field</span>
99
+ </span>
100
+ </span>
101
+ <input required="required" type="number" value="0" name="assembly[weight]" id="assembly_weight">
102
+ <span class="form-error" role="alert">There is an error in this field.</span>
103
+ </label>
104
+ </div>
105
+ <div class="row">
106
+ <div class="columns slug">
107
+ <label for="assembly_slug">URL slug <span class="inline-block" data-controller="tooltip" data-tooltip-tooltip-value="&lt;p class=&quot;top&quot; role=&quot;tooltip&quot; aria-hidden=&quot;true&quot;&gt;Required field&lt;/p&gt;">
108
+ <span class="label-required">
109
+ <span aria-hidden="true">*</span>
110
+ <span class="sr-only">Required field</span>
111
+ </span>
112
+ </span>
113
+ <span class="help-text">URL slugs are used to generate the URLs that point to this assembly. Only accepts letters, numbers and dashes, and must start with a letter. Example: <span class="slug-url">http://alecslupu.go.ro:3000/assemblies/ <span class="slug-url-value"></span>
114
+ </span>
115
+ </span>
116
+ <input required="required" type="text" name="assembly[slug]" id="assembly_slug">
117
+ <span class="form-error" role="alert">There is an error in this field.</span>
118
+ </label>
119
+ </div>
120
+ </div>
121
+ <div class="row column">
122
+ <div class="label--tabs">
123
+ <label for="assembly_short_description">Short description <span class="inline-block" data-controller="tooltip" data-tooltip-tooltip-value="&lt;p class=&quot;top&quot; role=&quot;tooltip&quot; aria-hidden=&quot;true&quot;&gt;Required field&lt;/p&gt;">
124
+ <span class="label-required">
125
+ <span aria-hidden="true">*</span>
126
+ <span class="sr-only">Required field</span>
127
+ </span>
128
+ </span>
129
+ </label>
130
+ <ul class="tabs tabs--lang" id="assembly-short_description-tabs" data-tabs="true" role="tablist">
131
+ <li class="tabs-title is-active" role="presentation">
132
+ <a href="#assembly-short_description-tabs-short_description-panel-0" role="tab" aria-controls="assembly-short_description-tabs-short_description-panel-0" aria-selected="true" id="assembly-short_description-tabs-short_description-panel-0-label" tabindex="0">English</a>
133
+ </li>
134
+ <li class="tabs-title" role="presentation">
135
+ <a href="#assembly-short_description-tabs-short_description-panel-1" role="tab" aria-controls="assembly-short_description-tabs-short_description-panel-1" aria-selected="false" id="assembly-short_description-tabs-short_description-panel-1-label" tabindex="-1">Castellano</a>
136
+ </li>
137
+ <li class="tabs-title" role="presentation">
138
+ <a href="#assembly-short_description-tabs-short_description-panel-2" role="tab" aria-controls="assembly-short_description-tabs-short_description-panel-2" aria-selected="false" id="assembly-short_description-tabs-short_description-panel-2-label" tabindex="-1">Català</a>
139
+ </li>
140
+ </ul>
141
+ </div>
142
+ <div class="tabs-content" data-tabs-content="assembly-short_description-tabs">
143
+ <div class="tabs-panel is-active" id="assembly-short_description-tabs-short_description-panel-0" aria-hidden="false" role="tabpanel" aria-labelledby="assembly-short_description-tabs-short_description-panel-0-label">
144
+ <div class="editor" id="assembly_short_description_en">
145
+ <input aria-label="short_description" label="false" autocomplete="off" type="hidden" name="assembly[short_description_en]">
146
+ </div>
147
+ </div>
148
+ <div class="tabs-panel" id="assembly-short_description-tabs-short_description-panel-1" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-short_description-tabs-short_description-panel-1-label">
149
+ <div class="editor" id="assembly_short_description_es">
150
+ <input aria-label="short_description" label="false" autocomplete="off" type="hidden" name="assembly[short_description_es]">
151
+ </div>
152
+ </div>
153
+ <div class="tabs-panel" id="assembly-short_description-tabs-short_description-panel-2" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-short_description-tabs-short_description-panel-2-label">
154
+ <div class="editor" id="assembly_short_description_ca">
155
+ <input aria-label="short_description" label="false" autocomplete="off" type="hidden" name="assembly[short_description_ca]">
156
+ </div>
157
+ </div>
158
+ </div>
159
+ </div>
160
+ <div class="row column">
161
+ <div class="label--tabs">
162
+ <label for="assembly_description">Description <span class="inline-block" data-controller="tooltip" data-tooltip-tooltip-value="&lt;p class=&quot;top&quot; role=&quot;tooltip&quot; aria-hidden=&quot;true&quot;&gt;Required field&lt;/p&gt;">
163
+ <span class="label-required">
164
+ <span aria-hidden="true">*</span>
165
+ <span class="sr-only">Required field</span>
166
+ </span>
167
+ </span>
168
+ </label>
169
+ <ul class="tabs tabs--lang" id="assembly-description-tabs" data-tabs="true" role="tablist">
170
+ <li class="tabs-title is-active" role="presentation">
171
+ <a href="#assembly-description-tabs-description-panel-0" role="tab" aria-controls="assembly-description-tabs-description-panel-0" aria-selected="true" id="assembly-description-tabs-description-panel-0-label" tabindex="0">English</a>
172
+ </li>
173
+ <li class="tabs-title" role="presentation">
174
+ <a href="#assembly-description-tabs-description-panel-1" role="tab" aria-controls="assembly-description-tabs-description-panel-1" aria-selected="false" id="assembly-description-tabs-description-panel-1-label" tabindex="-1">Castellano</a>
175
+ </li>
176
+ <li class="tabs-title" role="presentation">
177
+ <a href="#assembly-description-tabs-description-panel-2" role="tab" aria-controls="assembly-description-tabs-description-panel-2" aria-selected="false" id="assembly-description-tabs-description-panel-2-label" tabindex="-1">Català</a>
178
+ </li>
179
+ </ul>
180
+ </div>
181
+ <div class="tabs-content" data-tabs-content="assembly-description-tabs">
182
+ <div class="tabs-panel is-active" id="assembly-description-tabs-description-panel-0" aria-hidden="false" role="tabpanel" aria-labelledby="assembly-description-tabs-description-panel-0-label">
183
+ <div class="editor" id="assembly_description_en">
184
+ <input aria-label="description" label="false" autocomplete="off" type="hidden" name="assembly[description_en]">
185
+ </div>
186
+ </div>
187
+ <div class="tabs-panel" id="assembly-description-tabs-description-panel-1" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-description-tabs-description-panel-1-label">
188
+ <div class="editor" id="assembly_description_es">
189
+ <input aria-label="description" label="false" autocomplete="off" type="hidden" name="assembly[description_es]">
190
+ </div>
191
+ </div>
192
+ <div class="tabs-panel" id="assembly-description-tabs-description-panel-2" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-description-tabs-description-panel-2-label">
193
+ <div class="editor" id="assembly_description_ca">
194
+ <input aria-label="description" label="false" autocomplete="off" type="hidden" name="assembly[description_ca]">
195
+ </div>
196
+ </div>
197
+ </div>
198
+ </div>
199
+ <div class="row column">
200
+ <div class="label--tabs">
201
+ <label for="assembly_purpose_of_action">Purpose of action</label>
202
+ <ul class="tabs tabs--lang" id="assembly-purpose_of_action-tabs" data-tabs="true" role="tablist">
203
+ <li class="tabs-title is-active" role="presentation">
204
+ <a href="#assembly-purpose_of_action-tabs-purpose_of_action-panel-0" role="tab" aria-controls="assembly-purpose_of_action-tabs-purpose_of_action-panel-0" aria-selected="true" id="assembly-purpose_of_action-tabs-purpose_of_action-panel-0-label" tabindex="0">English</a>
205
+ </li>
206
+ <li class="tabs-title" role="presentation">
207
+ <a href="#assembly-purpose_of_action-tabs-purpose_of_action-panel-1" role="tab" aria-controls="assembly-purpose_of_action-tabs-purpose_of_action-panel-1" aria-selected="false" id="assembly-purpose_of_action-tabs-purpose_of_action-panel-1-label" tabindex="-1">Castellano</a>
208
+ </li>
209
+ <li class="tabs-title" role="presentation">
210
+ <a href="#assembly-purpose_of_action-tabs-purpose_of_action-panel-2" role="tab" aria-controls="assembly-purpose_of_action-tabs-purpose_of_action-panel-2" aria-selected="false" id="assembly-purpose_of_action-tabs-purpose_of_action-panel-2-label" tabindex="-1">Català</a>
211
+ </li>
212
+ </ul>
213
+ </div>
214
+ <div class="tabs-content" data-tabs-content="assembly-purpose_of_action-tabs">
215
+ <div class="tabs-panel is-active" id="assembly-purpose_of_action-tabs-purpose_of_action-panel-0" aria-hidden="false" role="tabpanel" aria-labelledby="assembly-purpose_of_action-tabs-purpose_of_action-panel-0-label">
216
+ <div class="editor" id="assembly_purpose_of_action_en">
217
+ <input aria-label="purpose_of_action" label="false" autocomplete="off" type="hidden" name="assembly[purpose_of_action_en]">
218
+ </div>
219
+ </div>
220
+ <div class="tabs-panel" id="assembly-purpose_of_action-tabs-purpose_of_action-panel-1" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-purpose_of_action-tabs-purpose_of_action-panel-1-label">
221
+ <div class="editor" id="assembly_purpose_of_action_es">
222
+ <input aria-label="purpose_of_action" label="false" autocomplete="off" type="hidden" name="assembly[purpose_of_action_es]">
223
+ </div>
224
+ </div>
225
+ <div class="tabs-panel" id="assembly-purpose_of_action-tabs-purpose_of_action-panel-2" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-purpose_of_action-tabs-purpose_of_action-panel-2-label">
226
+ <div class="editor" id="assembly_purpose_of_action_ca">
227
+ <input aria-label="purpose_of_action" label="false" autocomplete="off" type="hidden" name="assembly[purpose_of_action_ca]">
228
+ </div>
229
+ </div>
230
+ </div>
231
+ </div>
232
+ <div class="row column">
233
+ <div class="label--tabs">
234
+ <label for="assembly_composition">Composition</label>
235
+ <ul class="tabs tabs--lang" id="assembly-composition-tabs" data-tabs="true" role="tablist">
236
+ <li class="tabs-title is-active" role="presentation">
237
+ <a href="#assembly-composition-tabs-composition-panel-0" role="tab" aria-controls="assembly-composition-tabs-composition-panel-0" aria-selected="true" id="assembly-composition-tabs-composition-panel-0-label" tabindex="0">English</a>
238
+ </li>
239
+ <li class="tabs-title" role="presentation">
240
+ <a href="#assembly-composition-tabs-composition-panel-1" role="tab" aria-controls="assembly-composition-tabs-composition-panel-1" aria-selected="false" id="assembly-composition-tabs-composition-panel-1-label" tabindex="-1">Castellano</a>
241
+ </li>
242
+ <li class="tabs-title" role="presentation">
243
+ <a href="#assembly-composition-tabs-composition-panel-2" role="tab" aria-controls="assembly-composition-tabs-composition-panel-2" aria-selected="false" id="assembly-composition-tabs-composition-panel-2-label" tabindex="-1">Català</a>
244
+ </li>
245
+ </ul>
246
+ </div>
247
+ <div class="tabs-content" data-tabs-content="assembly-composition-tabs">
248
+ <div class="tabs-panel is-active" id="assembly-composition-tabs-composition-panel-0" aria-hidden="false" role="tabpanel" aria-labelledby="assembly-composition-tabs-composition-panel-0-label">
249
+ <div class="editor" id="assembly_composition_en">
250
+ <input aria-label="composition" label="false" autocomplete="off" type="hidden" name="assembly[composition_en]">
251
+ </div>
252
+ </div>
253
+ <div class="tabs-panel" id="assembly-composition-tabs-composition-panel-1" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-composition-tabs-composition-panel-1-label">
254
+ <div class="editor" id="assembly_composition_es">
255
+ <input aria-label="composition" label="false" autocomplete="off" type="hidden" name="assembly[composition_es]">
256
+ </div>
257
+ </div>
258
+ <div class="tabs-panel" id="assembly-composition-tabs-composition-panel-2" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-composition-tabs-composition-panel-2-label">
259
+ <div class="editor" id="assembly_composition_ca">
260
+ <input aria-label="composition" label="false" autocomplete="off" type="hidden" name="assembly[composition_ca]">
261
+ </div>
262
+ </div>
263
+ </div>
264
+ </div>
265
+ <div class="row column">
266
+ <div class="label--tabs">
267
+ <label for="assembly_internal_organisation">Internal organization</label>
268
+ <ul class="tabs tabs--lang" id="assembly-internal_organisation-tabs" data-tabs="true" role="tablist">
269
+ <li class="tabs-title is-active" role="presentation">
270
+ <a href="#assembly-internal_organisation-tabs-internal_organisation-panel-0" role="tab" aria-controls="assembly-internal_organisation-tabs-internal_organisation-panel-0" aria-selected="true" id="assembly-internal_organisation-tabs-internal_organisation-panel-0-label" tabindex="0">English</a>
271
+ </li>
272
+ <li class="tabs-title" role="presentation">
273
+ <a href="#assembly-internal_organisation-tabs-internal_organisation-panel-1" role="tab" aria-controls="assembly-internal_organisation-tabs-internal_organisation-panel-1" aria-selected="false" id="assembly-internal_organisation-tabs-internal_organisation-panel-1-label" tabindex="-1">Castellano</a>
274
+ </li>
275
+ <li class="tabs-title" role="presentation">
276
+ <a href="#assembly-internal_organisation-tabs-internal_organisation-panel-2" role="tab" aria-controls="assembly-internal_organisation-tabs-internal_organisation-panel-2" aria-selected="false" id="assembly-internal_organisation-tabs-internal_organisation-panel-2-label" tabindex="-1">Català</a>
277
+ </li>
278
+ </ul>
279
+ </div>
280
+ <div class="tabs-content" data-tabs-content="assembly-internal_organisation-tabs">
281
+ <div class="tabs-panel is-active" id="assembly-internal_organisation-tabs-internal_organisation-panel-0" aria-hidden="false" role="tabpanel" aria-labelledby="assembly-internal_organisation-tabs-internal_organisation-panel-0-label">
282
+ <div class="editor" id="assembly_internal_organisation_en">
283
+ <input aria-label="internal_organisation" label="false" autocomplete="off" type="hidden" name="assembly[internal_organisation_en]">
284
+ </div>
285
+ </div>
286
+ <div class="tabs-panel" id="assembly-internal_organisation-tabs-internal_organisation-panel-1" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-internal_organisation-tabs-internal_organisation-panel-1-label">
287
+ <div class="editor" id="assembly_internal_organisation_es">
288
+ <input aria-label="internal_organisation" label="false" autocomplete="off" type="hidden" name="assembly[internal_organisation_es]">
289
+ </div>
290
+ </div>
291
+ <div class="tabs-panel" id="assembly-internal_organisation-tabs-internal_organisation-panel-2" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-internal_organisation-tabs-internal_organisation-panel-2-label">
292
+ <div class="editor" id="assembly_internal_organisation_ca">
293
+ <input aria-label="internal_organisation" label="false" autocomplete="off" type="hidden" name="assembly[internal_organisation_ca]">
294
+ </div>
295
+ </div>
296
+ </div>
297
+ </div>
298
+ <div class="row column">
299
+ <div class="label--tabs">
300
+ <label for="assembly_announcement">Announcement</label>
301
+ <ul class="tabs tabs--lang" id="assembly-announcement-tabs" data-tabs="true" role="tablist">
302
+ <li class="tabs-title is-active" role="presentation">
303
+ <a href="#assembly-announcement-tabs-announcement-panel-0" role="tab" aria-controls="assembly-announcement-tabs-announcement-panel-0" aria-selected="true" id="assembly-announcement-tabs-announcement-panel-0-label" tabindex="0">English</a>
304
+ </li>
305
+ <li class="tabs-title" role="presentation">
306
+ <a href="#assembly-announcement-tabs-announcement-panel-1" role="tab" aria-controls="assembly-announcement-tabs-announcement-panel-1" aria-selected="false" id="assembly-announcement-tabs-announcement-panel-1-label" tabindex="-1">Castellano</a>
307
+ </li>
308
+ <li class="tabs-title" role="presentation">
309
+ <a href="#assembly-announcement-tabs-announcement-panel-2" role="tab" aria-controls="assembly-announcement-tabs-announcement-panel-2" aria-selected="false" id="assembly-announcement-tabs-announcement-panel-2-label" tabindex="-1">Català</a>
310
+ </li>
311
+ </ul>
312
+ </div>
313
+ <div class="tabs-content" data-tabs-content="assembly-announcement-tabs">
314
+ <div class="tabs-panel is-active" id="assembly-announcement-tabs-announcement-panel-0" aria-hidden="false" role="tabpanel" aria-labelledby="assembly-announcement-tabs-announcement-panel-0-label">
315
+ <div class="editor" id="assembly_announcement_en">
316
+ <input label="false" autocomplete="off" type="hidden" name="assembly[announcement_en]">
317
+ <span class="help-text">The text you enter here will be shown to the user right below the assembly information.</span>
318
+ </div>
319
+ </div>
320
+ <div class="tabs-panel" id="assembly-announcement-tabs-announcement-panel-1" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-announcement-tabs-announcement-panel-1-label">
321
+ <div class="editor" id="assembly_announcement_es">
322
+ <input label="false" autocomplete="off" type="hidden" name="assembly[announcement_es]">
323
+ <span class="help-text">The text you enter here will be shown to the user right below the assembly information.</span>
324
+ </div>
325
+ </div>
326
+ <div class="tabs-panel" id="assembly-announcement-tabs-announcement-panel-2" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-announcement-tabs-announcement-panel-2-label">
327
+ <div class="editor" id="assembly_announcement_ca">
328
+ <input label="false" autocomplete="off" type="hidden" name="assembly[announcement_ca]">
329
+ <span class="help-text">The text you enter here will be shown to the user right below the assembly information.</span>
330
+ </div>
331
+ </div>
332
+ </div>
333
+ </div>
334
+ </div>
335
+ </div>
336
+ <div class="card" data-controller="accordion" id="accordion-duration" data-component="accordion" role="presentation">
337
+ <div class="card-divider">
338
+ <button class="card-divider-button" data-open="true" data-controls="panel-duration" type="button" role="button" tabindex="0" aria-controls="panel-duration" aria-expanded="true" aria-disabled="false">
339
+ <svg width="1em" height="1em" role="img" aria-hidden="true">
340
+ <use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-arrow-right-s-line"></use>
341
+ </svg>
342
+ <h2 class="card-title" id="duration"> Duration </h2>
343
+ </button>
344
+ </div>
345
+ <div id="panel-duration" class="card-section" role="region" tabindex="-1" aria-labelledby="" aria-hidden="false">
346
+ <div class="row column">
347
+ <label for="assembly_creation_date">Date created <input type="date" name="assembly[creation_date]" id="assembly_creation_date" style="display: none;">
348
+ </label>
349
+ <div class="datepicker__help-text-container">
350
+ <span class="help-text datepicker__help-date">Format: dd/mm/yyyy</span>
351
+ </div>
352
+ <div id="assembly_creation_date_datepicker_row" class="datepicker__datepicker-row">
353
+ <div class="datepicker__date-column">
354
+ <input id="assembly_creation_date_date" type="text" aria-label="undefined">
355
+ <button class="datepicker__calendar-button" type="button" aria-label="undefined">
356
+ <svg width="0.75em" height="0.75em" role="img" aria-hidden="true">
357
+ <title>calendar-line</title>
358
+ <use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-calendar-line"></use>
359
+ </svg>
360
+ </button>
361
+ <div class="datepicker__container" style="display: none;">
362
+ <wc-datepicker id="assembly_creation_date_date_datepicker" locale="en" class="sc-wc-datepicker-h sc-wc-datepicker-s hydrated">
363
+ <div aria-disabled="false" aria-label="Choose date" class="wc-datepicker sc-wc-datepicker" role="group">
364
+ </div>
365
+ </wc-datepicker>
366
+ <button class="datepicker__pick-calendar button button__secondary button__xs" disabled="true" type="button">Select</button>
367
+ <button class="datepicker__close-calendar button button__transparent-secondary button__xs" type="button">Close</button>
368
+ </div>
369
+ </div>
370
+ </div>
371
+ </div>
372
+ <div class="row column">
373
+ <label for="assembly_included_at">Included at <span class="help-text">Select the date when this assembly was added to the platform. It does not necessarily have to be the same as the creation date.</span>
374
+ <input type="date" name="assembly[included_at]" id="assembly_included_at" style="display: none;">
375
+ </label>
376
+ <div class="datepicker__help-text-container">
377
+ <span class="help-text datepicker__help-date">Format: dd/mm/yyyy</span>
378
+ </div>
379
+ <div id="assembly_included_at_datepicker_row" class="datepicker__datepicker-row">
380
+ <div class="datepicker__date-column">
381
+ <input id="assembly_included_at_date" type="text" aria-label="undefined">
382
+ <button class="datepicker__calendar-button" type="button" aria-label="undefined">
383
+ <svg width="0.75em" height="0.75em" role="img" aria-hidden="true">
384
+ <title>calendar-line</title>
385
+ <use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-calendar-line"></use>
386
+ </svg>
387
+ </button>
388
+ <div class="datepicker__container" style="display: none;">
389
+ <wc-datepicker id="assembly_included_at_date_datepicker" locale="en" class="sc-wc-datepicker-h sc-wc-datepicker-s hydrated">
390
+ </wc-datepicker>
391
+ <button class="datepicker__pick-calendar button button__secondary button__xs" disabled="true" type="button">Select</button>
392
+ <button class="datepicker__close-calendar button button__transparent-secondary button__xs" type="button">Close</button>
393
+ </div>
394
+ </div>
395
+ </div>
396
+ </div>
397
+ <div class="row column">
398
+ <label for="assembly_duration">Duration <span class="help-text">If the duration of this assembly is limited, select the end date. Otherwise, it will appear as indefinite.</span>
399
+ <input type="date" name="assembly[duration]" id="assembly_duration" style="display: none;">
400
+ </label>
401
+ <div class="datepicker__help-text-container">
402
+ <span class="help-text datepicker__help-date">Format: dd/mm/yyyy</span>
403
+ </div>
404
+ <div id="assembly_duration_datepicker_row" class="datepicker__datepicker-row">
405
+ <div class="datepicker__date-column">
406
+ <input id="assembly_duration_date" type="text" aria-label="undefined">
407
+ <button class="datepicker__calendar-button" type="button" aria-label="undefined">
408
+ <svg width="0.75em" height="0.75em" role="img" aria-hidden="true">
409
+ <title>calendar-line</title>
410
+ <use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-calendar-line"></use>
411
+ </svg>
412
+ </button>
413
+ <div class="datepicker__container" style="display: none;">
414
+ <button class="datepicker__pick-calendar button button__secondary button__xs" disabled="true" type="button">Select</button>
415
+ <button class="datepicker__close-calendar button button__transparent-secondary button__xs" type="button">Close</button>
416
+ </div>
417
+ </div>
418
+ </div>
419
+ </div>
420
+ <div class="row column" id="closing_date_div">
421
+ <label for="assembly_closing_date">Closing date <input type="date" name="assembly[closing_date]" id="assembly_closing_date" style="display: none;">
422
+ </label>
423
+ <div class="datepicker__help-text-container">
424
+ <span class="help-text datepicker__help-date">Format: dd/mm/yyyy</span>
425
+ </div>
426
+ <div id="assembly_closing_date_datepicker_row" class="datepicker__datepicker-row">
427
+ <div class="datepicker__date-column">
428
+ <input id="assembly_closing_date_date" type="text" aria-label="undefined">
429
+ <button class="datepicker__calendar-button" type="button" aria-label="undefined">
430
+ <svg width="0.75em" height="0.75em" role="img" aria-hidden="true">
431
+ <title>calendar-line</title>
432
+ <use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-calendar-line"></use>
433
+ </svg>
434
+ </button>
435
+ <div class="datepicker__container" style="display: none;">
436
+ <button class="datepicker__pick-calendar button button__secondary button__xs" disabled="true" type="button">Select</button>
437
+ <button class="datepicker__close-calendar button button__transparent-secondary button__xs" type="button">Close</button>
438
+ </div>
439
+ </div>
440
+ </div>
441
+ </div>
442
+ <div class="row column" id="closing_date_reason_div">
443
+ <div class="label--tabs">
444
+ <label for="assembly_closing_date_reason">Closing date reason</label>
445
+ <ul class="tabs tabs--lang" id="assembly-closing_date_reason-tabs" data-tabs="true" role="tablist">
446
+ <li class="tabs-title is-active" role="presentation">
447
+ <a href="#assembly-closing_date_reason-tabs-closing_date_reason-panel-0" role="tab" aria-controls="assembly-closing_date_reason-tabs-closing_date_reason-panel-0" aria-selected="true" id="assembly-closing_date_reason-tabs-closing_date_reason-panel-0-label" tabindex="0">English</a>
448
+ </li>
449
+ <li class="tabs-title" role="presentation">
450
+ <a href="#assembly-closing_date_reason-tabs-closing_date_reason-panel-1" role="tab" aria-controls="assembly-closing_date_reason-tabs-closing_date_reason-panel-1" aria-selected="false" id="assembly-closing_date_reason-tabs-closing_date_reason-panel-1-label" tabindex="-1">Castellano</a>
451
+ </li>
452
+ <li class="tabs-title" role="presentation">
453
+ <a href="#assembly-closing_date_reason-tabs-closing_date_reason-panel-2" role="tab" aria-controls="assembly-closing_date_reason-tabs-closing_date_reason-panel-2" aria-selected="false" id="assembly-closing_date_reason-tabs-closing_date_reason-panel-2-label" tabindex="-1">Català</a>
454
+ </li>
455
+ </ul>
456
+ </div>
457
+ <div class="tabs-content" data-tabs-content="assembly-closing_date_reason-tabs">
458
+ <div class="tabs-panel is-active" id="assembly-closing_date_reason-tabs-closing_date_reason-panel-0" aria-hidden="false" role="tabpanel" aria-labelledby="assembly-closing_date_reason-tabs-closing_date_reason-panel-0-label">
459
+ <div class="editor" id="assembly_closing_date_reason_en">
460
+ <input aria-label="closing_date_reason" label="false" autocomplete="off" type="hidden" name="assembly[closing_date_reason_en]">
461
+ </div>
462
+ </div>
463
+ <div class="tabs-panel" id="assembly-closing_date_reason-tabs-closing_date_reason-panel-1" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-closing_date_reason-tabs-closing_date_reason-panel-1-label">
464
+ <div class="editor" id="assembly_closing_date_reason_es">
465
+ <input aria-label="closing_date_reason" label="false" autocomplete="off" type="hidden" name="assembly[closing_date_reason_es]">
466
+ </div>
467
+ </div>
468
+ <div class="tabs-panel" id="assembly-closing_date_reason-tabs-closing_date_reason-panel-2" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-closing_date_reason-tabs-closing_date_reason-panel-2-label">
469
+ <div class="editor" id="assembly_closing_date_reason_ca">
470
+ <input aria-label="closing_date_reason" label="false" autocomplete="off" type="hidden" name="assembly[closing_date_reason_ca]">
471
+ </div>
472
+ </div>
473
+ </div>
474
+ </div>
475
+ </div>
476
+ </div>
477
+ <div class="card" data-controller="accordion" id="accordion-images" data-component="accordion" role="presentation">
478
+ <div class="card-divider">
479
+ <button class="card-divider-button" data-open="true" data-controls="panel-images" type="button" role="button" tabindex="0" aria-controls="panel-images" aria-expanded="true" aria-disabled="false">
480
+ <svg width="1em" height="1em" role="img" aria-hidden="true">
481
+ <use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-arrow-right-s-line"></use>
482
+ </svg>
483
+ <h2 class="card-title" id="images"> Images </h2>
484
+ </button>
485
+ </div>
486
+ <div id="panel-images" class="card-section" role="region" tabindex="-1" aria-labelledby="" aria-hidden="false">
487
+ <div class="row">
488
+ <div class="columns">
489
+ <div class="upload-modal__files-container upload-container-for-hero_image ">
490
+ <div>
491
+ <label>Home image</label>
492
+ <div class="upload-modal__files" data-active-uploads="upload_c5515a82-b6d4-4c1c-a957-013c9679b956"></div>
493
+ </div>
494
+ <button id="assembly_hero_image_button" name="hero_image" class="button button__sm button__transparent-secondary" type="button" data-dialog-open="upload_c5515a82-b6d4-4c1c-a957-013c9679b956" data-upload="{&quot;addAttribute&quot;:&quot;hero_image&quot;,&quot;resourceName&quot;:&quot;assembly&quot;,&quot;resourceClass&quot;:&quot;Decidim::Assembly&quot;,&quot;required&quot;:false,&quot;maxFileSize&quot;:10485760.0,&quot;multiple&quot;:false,&quot;titled&quot;:false,&quot;formObjectClass&quot;:&quot;Decidim::Assemblies::Admin::AssemblyForm&quot;}" aria-haspopup="dialog">Add image</button>
495
+ </div>
496
+ </div>
497
+ <div class="columns">
498
+ <div class="upload-modal__files-container upload-container-for-banner_image ">
499
+ <div>
500
+ <label>Banner image</label>
501
+ <div class="upload-modal__files" data-active-uploads="upload_0d6b6c3f-3681-450e-dummy-2"></div>
502
+ </div>
503
+ <button id="assembly_banner_image_button" name="banner_image" class="button button__sm button__transparent-secondary" type="button" data-dialog-open="upload_0d6b6c3f-3681-450e-dummy-2" data-upload="{&quot;addAttribute&quot;:&quot;banner_image&quot;,&quot;resourceName&quot;:&quot;assembly&quot;,&quot;resourceClass&quot;:&quot;Decidim::Assembly&quot;,&quot;required&quot;:false,&quot;maxFileSize&quot;:10485760.0,&quot;multiple&quot;:false,&quot;titled&quot;:false,&quot;formObjectClass&quot;:&quot;Decidim::Assemblies::Admin::AssemblyForm&quot;}" aria-haspopup="dialog">Add image</button>
504
+ </div>
505
+ </div>
506
+ </div>
507
+ </div>
508
+ </div>
509
+ <div class="card" data-controller="accordion" id="accordion-metadata" data-component="accordion" role="presentation">
510
+ <div class="card-divider">
511
+ <button class="card-divider-button" data-open="true" data-controls="panel-metadata" type="button" role="button" tabindex="0" aria-controls="panel-metadata" aria-expanded="true" aria-disabled="false">
512
+ <svg width="1em" height="1em" role="img" aria-hidden="true">
513
+ <use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-arrow-right-s-line"></use>
514
+ </svg>
515
+ <h2 class="card-title" id="metadata"> Metadata </h2>
516
+ </button>
517
+ </div>
518
+ <div id="panel-metadata" class="card-section" role="region" tabindex="-1" aria-labelledby="" aria-hidden="false">
519
+ <div class="row column">
520
+ <div class="label--tabs">
521
+ <label for="assembly_participatory_scope">What is decided</label>
522
+ <ul class="tabs tabs--lang" id="assembly-participatory_scope-tabs" data-tabs="true" role="tablist">
523
+ <li class="tabs-title is-active" role="presentation">
524
+ <a href="#assembly-participatory_scope-tabs-participatory_scope-panel-0" role="tab" aria-controls="assembly-participatory_scope-tabs-participatory_scope-panel-0" aria-selected="true" id="assembly-participatory_scope-tabs-participatory_scope-panel-0-label" tabindex="0">English</a>
525
+ </li>
526
+ <li class="tabs-title" role="presentation">
527
+ <a href="#assembly-participatory_scope-tabs-participatory_scope-panel-1" role="tab" aria-controls="assembly-participatory_scope-tabs-participatory_scope-panel-1" aria-selected="false" id="assembly-participatory_scope-tabs-participatory_scope-panel-1-label" tabindex="-1">Castellano</a>
528
+ </li>
529
+ <li class="tabs-title" role="presentation">
530
+ <a href="#assembly-participatory_scope-tabs-participatory_scope-panel-2" role="tab" aria-controls="assembly-participatory_scope-tabs-participatory_scope-panel-2" aria-selected="false" id="assembly-participatory_scope-tabs-participatory_scope-panel-2-label" tabindex="-1">Català</a>
531
+ </li>
532
+ </ul>
533
+ </div>
534
+ <div class="tabs-content" data-tabs-content="assembly-participatory_scope-tabs">
535
+ <div class="tabs-panel is-active" id="assembly-participatory_scope-tabs-participatory_scope-panel-0" aria-hidden="false" role="tabpanel" aria-labelledby="assembly-participatory_scope-tabs-participatory_scope-panel-0-label">
536
+ <input aria-label="participatory_scope" type="text" name="assembly[participatory_scope_en]" id="assembly_participatory_scope_en">
537
+ </div>
538
+ <div class="tabs-panel" id="assembly-participatory_scope-tabs-participatory_scope-panel-1" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-participatory_scope-tabs-participatory_scope-panel-1-label">
539
+ <input aria-label="participatory_scope" type="text" name="assembly[participatory_scope_es]" id="assembly_participatory_scope_es">
540
+ </div>
541
+ <div class="tabs-panel" id="assembly-participatory_scope-tabs-participatory_scope-panel-2" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-participatory_scope-tabs-participatory_scope-panel-2-label">
542
+ <input aria-label="participatory_scope" type="text" name="assembly[participatory_scope_ca]" id="assembly_participatory_scope_ca">
543
+ </div>
544
+ </div>
545
+ </div>
546
+ <div class="row column">
547
+ <div class="label--tabs">
548
+ <label for="assembly_participatory_structure">How is it decided</label>
549
+ <ul class="tabs tabs--lang" id="assembly-participatory_structure-tabs" data-tabs="true" role="tablist">
550
+ <li class="tabs-title is-active" role="presentation">
551
+ <a href="#assembly-participatory_structure-tabs-participatory_structure-panel-0" role="tab" aria-controls="assembly-participatory_structure-tabs-participatory_structure-panel-0" aria-selected="true" id="assembly-participatory_structure-tabs-participatory_structure-panel-0-label" tabindex="0">English</a>
552
+ </li>
553
+ <li class="tabs-title" role="presentation">
554
+ <a href="#assembly-participatory_structure-tabs-participatory_structure-panel-1" role="tab" aria-controls="assembly-participatory_structure-tabs-participatory_structure-panel-1" aria-selected="false" id="assembly-participatory_structure-tabs-participatory_structure-panel-1-label" tabindex="-1">Castellano</a>
555
+ </li>
556
+ <li class="tabs-title" role="presentation">
557
+ <a href="#assembly-participatory_structure-tabs-participatory_structure-panel-2" role="tab" aria-controls="assembly-participatory_structure-tabs-participatory_structure-panel-2" aria-selected="false" id="assembly-participatory_structure-tabs-participatory_structure-panel-2-label" tabindex="-1">Català</a>
558
+ </li>
559
+ </ul>
560
+ </div>
561
+ <div class="tabs-content" data-tabs-content="assembly-participatory_structure-tabs">
562
+ <div class="tabs-panel is-active" id="assembly-participatory_structure-tabs-participatory_structure-panel-0" aria-hidden="false" role="tabpanel" aria-labelledby="assembly-participatory_structure-tabs-participatory_structure-panel-0-label">
563
+ <input aria-label="participatory_structure" type="text" name="assembly[participatory_structure_en]" id="assembly_participatory_structure_en">
564
+ </div>
565
+ <div class="tabs-panel" id="assembly-participatory_structure-tabs-participatory_structure-panel-1" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-participatory_structure-tabs-participatory_structure-panel-1-label">
566
+ <input aria-label="participatory_structure" type="text" name="assembly[participatory_structure_es]" id="assembly_participatory_structure_es">
567
+ </div>
568
+ <div class="tabs-panel" id="assembly-participatory_structure-tabs-participatory_structure-panel-2" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-participatory_structure-tabs-participatory_structure-panel-2-label">
569
+ <input aria-label="participatory_structure" type="text" name="assembly[participatory_structure_ca]" id="assembly_participatory_structure_ca">
570
+ </div>
571
+ </div>
572
+ </div>
573
+ <div class="row">
574
+ <div class="columns">
575
+ <div class="label--tabs">
576
+ <label for="assembly_meta_scope">Scope metadata</label>
577
+ <ul class="tabs tabs--lang" id="assembly-meta_scope-tabs" data-tabs="true" role="tablist">
578
+ <li class="tabs-title is-active" role="presentation">
579
+ <a href="#assembly-meta_scope-tabs-meta_scope-panel-0" role="tab" aria-controls="assembly-meta_scope-tabs-meta_scope-panel-0" aria-selected="true" id="assembly-meta_scope-tabs-meta_scope-panel-0-label" tabindex="0">English</a>
580
+ </li>
581
+ <li class="tabs-title" role="presentation">
582
+ <a href="#assembly-meta_scope-tabs-meta_scope-panel-1" role="tab" aria-controls="assembly-meta_scope-tabs-meta_scope-panel-1" aria-selected="false" id="assembly-meta_scope-tabs-meta_scope-panel-1-label" tabindex="-1">Castellano</a>
583
+ </li>
584
+ <li class="tabs-title" role="presentation">
585
+ <a href="#assembly-meta_scope-tabs-meta_scope-panel-2" role="tab" aria-controls="assembly-meta_scope-tabs-meta_scope-panel-2" aria-selected="false" id="assembly-meta_scope-tabs-meta_scope-panel-2-label" tabindex="-1">Català</a>
586
+ </li>
587
+ </ul>
588
+ </div>
589
+ <div class="tabs-content" data-tabs-content="assembly-meta_scope-tabs">
590
+ <div class="tabs-panel is-active" id="assembly-meta_scope-tabs-meta_scope-panel-0" aria-hidden="false" role="tabpanel" aria-labelledby="assembly-meta_scope-tabs-meta_scope-panel-0-label">
591
+ <input aria-label="meta_scope" type="text" name="assembly[meta_scope_en]" id="assembly_meta_scope_en">
592
+ </div>
593
+ <div class="tabs-panel" id="assembly-meta_scope-tabs-meta_scope-panel-1" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-meta_scope-tabs-meta_scope-panel-1-label">
594
+ <input aria-label="meta_scope" type="text" name="assembly[meta_scope_es]" id="assembly_meta_scope_es">
595
+ </div>
596
+ <div class="tabs-panel" id="assembly-meta_scope-tabs-meta_scope-panel-2" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-meta_scope-tabs-meta_scope-panel-2-label">
597
+ <input aria-label="meta_scope" type="text" name="assembly[meta_scope_ca]" id="assembly_meta_scope_ca">
598
+ </div>
599
+ </div>
600
+ </div>
601
+ </div>
602
+ <div class="row">
603
+ <div class="columns">
604
+ <div class="label--tabs">
605
+ <label for="assembly_developer_group">Promoter group</label>
606
+ <ul class="tabs tabs--lang" id="assembly-developer_group-tabs" data-tabs="true" role="tablist">
607
+ <li class="tabs-title is-active" role="presentation">
608
+ <a href="#assembly-developer_group-tabs-developer_group-panel-0" role="tab" aria-controls="assembly-developer_group-tabs-developer_group-panel-0" aria-selected="true" id="assembly-developer_group-tabs-developer_group-panel-0-label" tabindex="0">English</a>
609
+ </li>
610
+ <li class="tabs-title" role="presentation">
611
+ <a href="#assembly-developer_group-tabs-developer_group-panel-1" role="tab" aria-controls="assembly-developer_group-tabs-developer_group-panel-1" aria-selected="false" id="assembly-developer_group-tabs-developer_group-panel-1-label" tabindex="-1">Castellano</a>
612
+ </li>
613
+ <li class="tabs-title" role="presentation">
614
+ <a href="#assembly-developer_group-tabs-developer_group-panel-2" role="tab" aria-controls="assembly-developer_group-tabs-developer_group-panel-2" aria-selected="false" id="assembly-developer_group-tabs-developer_group-panel-2-label" tabindex="-1">Català</a>
615
+ </li>
616
+ </ul>
617
+ </div>
618
+ <div class="tabs-content" data-tabs-content="assembly-developer_group-tabs">
619
+ <div class="tabs-panel is-active" id="assembly-developer_group-tabs-developer_group-panel-0" aria-hidden="false" role="tabpanel" aria-labelledby="assembly-developer_group-tabs-developer_group-panel-0-label">
620
+ <input aria-label="developer_group" type="text" name="assembly[developer_group_en]" id="assembly_developer_group_en">
621
+ </div>
622
+ <div class="tabs-panel" id="assembly-developer_group-tabs-developer_group-panel-1" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-developer_group-tabs-developer_group-panel-1-label">
623
+ <input aria-label="developer_group" type="text" name="assembly[developer_group_es]" id="assembly_developer_group_es">
624
+ </div>
625
+ <div class="tabs-panel" id="assembly-developer_group-tabs-developer_group-panel-2" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-developer_group-tabs-developer_group-panel-2-label">
626
+ <input aria-label="developer_group" type="text" name="assembly[developer_group_ca]" id="assembly_developer_group_ca">
627
+ </div>
628
+ </div>
629
+ </div>
630
+ <div class="columns">
631
+ <div class="label--tabs">
632
+ <label for="assembly_local_area">Organization area</label>
633
+ <ul class="tabs tabs--lang" id="assembly-local_area-tabs" data-tabs="true" role="tablist">
634
+ <li class="tabs-title is-active" role="presentation">
635
+ <a href="#assembly-local_area-tabs-local_area-panel-0" role="tab" aria-controls="assembly-local_area-tabs-local_area-panel-0" aria-selected="true" id="assembly-local_area-tabs-local_area-panel-0-label" tabindex="0">English</a>
636
+ </li>
637
+ <li class="tabs-title" role="presentation">
638
+ <a href="#assembly-local_area-tabs-local_area-panel-1" role="tab" aria-controls="assembly-local_area-tabs-local_area-panel-1" aria-selected="false" id="assembly-local_area-tabs-local_area-panel-1-label" tabindex="-1">Castellano</a>
639
+ </li>
640
+ <li class="tabs-title" role="presentation">
641
+ <a href="#assembly-local_area-tabs-local_area-panel-2" role="tab" aria-controls="assembly-local_area-tabs-local_area-panel-2" aria-selected="false" id="assembly-local_area-tabs-local_area-panel-2-label" tabindex="-1">Català</a>
642
+ </li>
643
+ </ul>
644
+ </div>
645
+ <div class="tabs-content" data-tabs-content="assembly-local_area-tabs">
646
+ <div class="tabs-panel is-active" id="assembly-local_area-tabs-local_area-panel-0" aria-hidden="false" role="tabpanel" aria-labelledby="assembly-local_area-tabs-local_area-panel-0-label">
647
+ <input aria-label="local_area" type="text" name="assembly[local_area_en]" id="assembly_local_area_en">
648
+ </div>
649
+ <div class="tabs-panel" id="assembly-local_area-tabs-local_area-panel-1" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-local_area-tabs-local_area-panel-1-label">
650
+ <input aria-label="local_area" type="text" name="assembly[local_area_es]" id="assembly_local_area_es">
651
+ </div>
652
+ <div class="tabs-panel" id="assembly-local_area-tabs-local_area-panel-2" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-local_area-tabs-local_area-panel-2-label">
653
+ <input aria-label="local_area" type="text" name="assembly[local_area_ca]" id="assembly_local_area_ca">
654
+ </div>
655
+ </div>
656
+ </div>
657
+ </div>
658
+ <div class="row column">
659
+ <div class="label--tabs">
660
+ <label for="assembly_target">Who participates</label>
661
+ <ul class="tabs tabs--lang" id="assembly-target-tabs" data-tabs="true" role="tablist">
662
+ <li class="tabs-title is-active" role="presentation">
663
+ <a href="#assembly-target-tabs-target-panel-0" role="tab" aria-controls="assembly-target-tabs-target-panel-0" aria-selected="true" id="assembly-target-tabs-target-panel-0-label" tabindex="0">English</a>
664
+ </li>
665
+ <li class="tabs-title" role="presentation">
666
+ <a href="#assembly-target-tabs-target-panel-1" role="tab" aria-controls="assembly-target-tabs-target-panel-1" aria-selected="false" id="assembly-target-tabs-target-panel-1-label" tabindex="-1">Castellano</a>
667
+ </li>
668
+ <li class="tabs-title" role="presentation">
669
+ <a href="#assembly-target-tabs-target-panel-2" role="tab" aria-controls="assembly-target-tabs-target-panel-2" aria-selected="false" id="assembly-target-tabs-target-panel-2-label" tabindex="-1">Català</a>
670
+ </li>
671
+ </ul>
672
+ </div>
673
+ <div class="tabs-content" data-tabs-content="assembly-target-tabs">
674
+ <div class="tabs-panel is-active" id="assembly-target-tabs-target-panel-0" aria-hidden="false" role="tabpanel" aria-labelledby="assembly-target-tabs-target-panel-0-label">
675
+ <input aria-label="target" type="text" name="assembly[target_en]" id="assembly_target_en">
676
+ </div>
677
+ <div class="tabs-panel" id="assembly-target-tabs-target-panel-1" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-target-tabs-target-panel-1-label">
678
+ <input aria-label="target" type="text" name="assembly[target_es]" id="assembly_target_es">
679
+ </div>
680
+ <div class="tabs-panel" id="assembly-target-tabs-target-panel-2" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-target-tabs-target-panel-2-label">
681
+ <input aria-label="target" type="text" name="assembly[target_ca]" id="assembly_target_ca">
682
+ </div>
683
+ </div>
684
+ </div>
685
+ </div>
686
+ </div>
687
+ <div class="card" data-controller="accordion" id="accordion-taxonomies" data-component="accordion" role="presentation">
688
+ <div class="card-divider">
689
+ <button class="card-divider-button" data-open="true" data-controls="panel-taxonomies" type="button" role="button" tabindex="0" aria-controls="panel-taxonomies" aria-expanded="true" aria-disabled="false">
690
+ <svg width="1em" height="1em" role="img" aria-hidden="true">
691
+ <use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-arrow-right-s-line"></use>
692
+ </svg>
693
+ <h2 class="card-title" id="taxonomies"> Taxonomies </h2>
694
+ </button>
695
+ </div>
696
+ <div id="panel-taxonomies" class="card-section" role="region" tabindex="-1" aria-labelledby="" aria-hidden="false">
697
+ <div class="row column">
698
+ <label for="assembly_taxonomies">Scopes <select name="assembly[taxonomies][]" id="taxonomies-1">
699
+ <option value="" selected="selected">Please select an option</option>
700
+ <option value="2"> New York</option>
701
+ <option value="3"> &nbsp;&nbsp;&nbsp;&nbsp; South Ross</option>
702
+ </select>
703
+ </label>
704
+ </div>
705
+ <div class="row column">
706
+ <label for="assembly_taxonomies">Areas <select name="assembly[taxonomies][]" id="taxonomies-2">
707
+ <option value="" selected="selected">Please select an option</option>
708
+ <option value="5"> Territorial</option>
709
+ <option value="6"> &nbsp;&nbsp;&nbsp;&nbsp; velit</option>
710
+ <option value="7"> Sectorial</option>
711
+ <option value="8"> &nbsp;&nbsp;&nbsp;&nbsp; voluptates</option>
712
+ </select>
713
+ </label>
714
+ </div>
715
+ <div class="row column">
716
+ <label for="assembly_taxonomies">Assembly Types <select name="assembly[taxonomies][]" id="taxonomies-5">
717
+ <option value="" selected="selected">Please select an option</option>
718
+ <option value="16"> totam</option>
719
+ </select>
720
+ </label>
721
+ </div>
722
+ </div>
723
+ </div>
724
+ <div class="card" data-controller="accordion" id="accordion-visibility" data-component="accordion" role="presentation">
725
+ <div class="card-divider">
726
+ <button class="card-divider-button" data-open="true" data-controls="panel-visibility" type="button" role="button" tabindex="0" aria-controls="panel-visibility" aria-expanded="true" aria-disabled="false">
727
+ <svg width="1em" height="1em" role="img" aria-hidden="true">
728
+ <use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-arrow-right-s-line"></use>
729
+ </svg>
730
+ <h2 class="card-title" id="visibility"> Visibility </h2>
731
+ </button>
732
+ </div>
733
+ <div id="panel-visibility" class="card-section" role="region" tabindex="-1" aria-labelledby="" aria-hidden="false">
734
+ <div class="row column">
735
+ <label for="assembly_parent_id">Parent assembly <select name="assembly[parent_id]" id="assembly_parent_id">
736
+ <option value="" selected="selected">Select parent assembly</option>
737
+ <option value="1"> Optio impedit cupiditate ut culpa.</option>
738
+ <option value="2">&nbsp;&nbsp;&nbsp;&nbsp; Voluptatum asperiores similique placeat error.</option>
739
+ </select>
740
+ </label>
741
+ </div>
742
+ <div class="row column">
743
+ <label for="assembly_promoted">
744
+ <input name="assembly[promoted]" type="hidden" value="0" autocomplete="off">
745
+ <input type="checkbox" value="1" name="assembly[promoted]" id="assembly_promoted">Highlighted </label>
746
+ </div>
747
+ <div class="row column" id="private_space">
748
+ <label for="assembly_private_space">
749
+ <input name="assembly[private_space]" type="hidden" value="0" autocomplete="off">
750
+ <input type="checkbox" value="1" name="assembly[private_space]" id="assembly_private_space">Private space </label>
751
+ <p class="help-text">You will be able to manage private participants after setting it as private</p>
752
+ </div>
753
+ <div class="row column" id="is_transparent">
754
+ <label for="assembly_is_transparent">
755
+ <input name="assembly[is_transparent]" type="hidden" value="0" autocomplete="off">
756
+ <input type="checkbox" value="1" name="assembly[is_transparent]" id="assembly_is_transparent" disabled="disabled">Is transparent </label>
757
+ </div>
758
+ </div>
759
+ </div>
760
+ <div class="card" data-controller="accordion" id="accordion-other" data-component="accordion" role="presentation">
761
+ <div class="card-divider">
762
+ <button class="card-divider-button" data-open="true" data-controls="panel-other" type="button" role="button" tabindex="0" aria-controls="panel-other" aria-expanded="true" aria-disabled="false">
763
+ <svg width="1em" height="1em" role="img" aria-hidden="true">
764
+ <use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-arrow-right-s-line"></use>
765
+ </svg>
766
+ <h2 class="card-title" id="other"> Other </h2>
767
+ </button>
768
+ </div>
769
+ <div id="panel-other" class="card-section" role="region" tabindex="-1" aria-labelledby="" aria-hidden="false">
770
+ <div class="row column">
771
+ <label for="assembly_created_by">Created by <select name="assembly[created_by]" id="assembly_created_by">
772
+ <option value="" selected="selected">Select a created by</option>
773
+ <option value="city_council">City Council</option>
774
+ <option value="public">Public</option>
775
+ <option value="others">Others</option>
776
+ </select>
777
+ </label>
778
+ </div>
779
+ <div class="row column" id="created_by_other" style="display: none;">
780
+ <div class="label--tabs">
781
+ <label for="assembly_created_by_other">Created by other</label>
782
+ <ul class="tabs tabs--lang" id="assembly-created_by_other-tabs" data-tabs="true" role="tablist">
783
+ <li class="tabs-title is-active" role="presentation">
784
+ <a href="#assembly-created_by_other-tabs-created_by_other-panel-0" role="tab" aria-controls="assembly-created_by_other-tabs-created_by_other-panel-0" aria-selected="true" id="assembly-created_by_other-tabs-created_by_other-panel-0-label" tabindex="0">English</a>
785
+ </li>
786
+ <li class="tabs-title" role="presentation">
787
+ <a href="#assembly-created_by_other-tabs-created_by_other-panel-1" role="tab" aria-controls="assembly-created_by_other-tabs-created_by_other-panel-1" aria-selected="false" id="assembly-created_by_other-tabs-created_by_other-panel-1-label" tabindex="-1">Castellano</a>
788
+ </li>
789
+ <li class="tabs-title" role="presentation">
790
+ <a href="#assembly-created_by_other-tabs-created_by_other-panel-2" role="tab" aria-controls="assembly-created_by_other-tabs-created_by_other-panel-2" aria-selected="false" id="assembly-created_by_other-tabs-created_by_other-panel-2-label" tabindex="-1">Català</a>
791
+ </li>
792
+ </ul>
793
+ </div>
794
+ <div class="tabs-content" data-tabs-content="assembly-created_by_other-tabs">
795
+ <div class="tabs-panel is-active" id="assembly-created_by_other-tabs-created_by_other-panel-0" aria-hidden="false" role="tabpanel" aria-labelledby="assembly-created_by_other-tabs-created_by_other-panel-0-label">
796
+ <input aria-label="created_by_other" type="text" name="assembly[created_by_other_en]" id="assembly_created_by_other_en">
797
+ </div>
798
+ <div class="tabs-panel" id="assembly-created_by_other-tabs-created_by_other-panel-1" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-created_by_other-tabs-created_by_other-panel-1-label">
799
+ <input aria-label="created_by_other" type="text" name="assembly[created_by_other_es]" id="assembly_created_by_other_es">
800
+ </div>
801
+ <div class="tabs-panel" id="assembly-created_by_other-tabs-created_by_other-panel-2" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-created_by_other-tabs-created_by_other-panel-2-label">
802
+ <input aria-label="created_by_other" type="text" name="assembly[created_by_other_ca]" id="assembly_created_by_other_ca">
803
+ </div>
804
+ </div>
805
+ </div>
806
+ <div class="row column">
807
+ <label for="assembly_participatory_processes_ids">Related participatory processes <input name="assembly[participatory_processes_ids][]" type="hidden" value="" autocomplete="off">
808
+ <select multiple="multiple" class="chosen-select" name="assembly[participatory_processes_ids][]" id="assembly_participatory_processes_ids">
809
+ <option value="1">Laboriosam quia qui molestiae veniam.</option>
810
+ </select>
811
+ </label>
812
+ </div>
813
+ <div class="row column" id="special_features" style="display: none;">
814
+ <div class="label--tabs">
815
+ <label for="assembly_special_features">Special features</label>
816
+ <ul class="tabs tabs--lang" id="assembly-special_features-tabs" data-tabs="true" role="tablist">
817
+ <li class="tabs-title is-active" role="presentation">
818
+ <a href="#assembly-special_features-tabs-special_features-panel-0" role="tab" aria-controls="assembly-special_features-tabs-special_features-panel-0" aria-selected="true" id="assembly-special_features-tabs-special_features-panel-0-label" tabindex="0">English</a>
819
+ </li>
820
+ <li class="tabs-title" role="presentation">
821
+ <a href="#assembly-special_features-tabs-special_features-panel-1" role="tab" aria-controls="assembly-special_features-tabs-special_features-panel-1" aria-selected="false" id="assembly-special_features-tabs-special_features-panel-1-label" tabindex="-1">Castellano</a>
822
+ </li>
823
+ <li class="tabs-title" role="presentation">
824
+ <a href="#assembly-special_features-tabs-special_features-panel-2" role="tab" aria-controls="assembly-special_features-tabs-special_features-panel-2" aria-selected="false" id="assembly-special_features-tabs-special_features-panel-2-label" tabindex="-1">Català</a>
825
+ </li>
826
+ </ul>
827
+ </div>
828
+ <div class="tabs-content" data-tabs-content="assembly-special_features-tabs">
829
+ <div class="tabs-panel is-active" id="assembly-special_features-tabs-special_features-panel-0" aria-hidden="false" role="tabpanel" aria-labelledby="assembly-special_features-tabs-special_features-panel-0-label">
830
+ <div class="editor" id="assembly_special_features_en">
831
+ <input aria-label="special_features" label="false" autocomplete="off" type="hidden" name="assembly[special_features_en]">undefined<div class="editor-container" data-controller="editor" data-toolbar="full" data-disabled="false" data-options="{&quot;context&quot;:&quot;admin&quot;,&quot;contentTypes&quot;:{&quot;image&quot;:[&quot;image/jpeg&quot;,&quot;image/png&quot;,&quot;image/webp&quot;]},&quot;uploadImagesPath&quot;:&quot;/editor_images&quot;,&quot;dragAndDropHelpText&quot;:&quot;Add images by dragging \u0026 dropping or pasting them.&quot;,&quot;uploadDialogSelector&quot;:&quot;#upload&quot;}">undefined<div class="editor-toolbar">undefined<div class="editor-toolbar-group">undefined<select class="editor-toolbar-control !pr-8" data-editor-type="heading" data-editor-selection-type="heading" aria-label="Text style" title="Text style">undefined<option value="normal" selected="selected">Normal</option>undefined<option value="2">Heading 2</option>undefined<option value="3">Heading 3</option>undefined<option value="4">Heading 4</option>undefined<option value="5">Heading 5</option>undefined<option value="6">Heading 6</option>undefined</select>undefined</div>undefined<div class="editor-toolbar-group">undefined<button class="editor-toolbar-control" data-editor-type="bold" data-editor-selection-type="bold" type="button" aria-label="Bold" title="Bold">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-bold"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="italic" data-editor-selection-type="italic" type="button" aria-label="Italic" title="Italic">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-italic"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="underline" data-editor-selection-type="underline" type="button" aria-label="Underline" title="Underline">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-underline"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="hardBreak" type="button" aria-label="Line break" title="Line break">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-text-wrap"></use>undefined</svg>undefined</button>undefined</div>undefined<div class="editor-toolbar-group">undefined<button class="editor-toolbar-control" data-editor-type="orderedList" data-editor-selection-type="orderedList" type="button" aria-label="Ordered list" title="Ordered list">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-list-ordered"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="bulletList" data-editor-selection-type="bulletList" type="button" aria-label="Unordered list" title="Unordered list">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-list-unordered"></use>undefined</svg>undefined</button>undefined</div>undefined<div class="editor-toolbar-group">undefined<button class="editor-toolbar-control" data-editor-type="link" data-editor-selection-type="link" type="button" aria-label="Link" title="Link">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-link"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="common:eraseStyles" type="button" aria-label="Erase styles" title="Erase styles">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-eraser-line"></use>undefined</svg>undefined</button>undefined</div>undefined<div class="editor-toolbar-group">undefined<button class="editor-toolbar-control" data-editor-type="codeBlock" data-editor-selection-type="codeBlock" type="button" aria-label="Code block" title="Code block">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-code-line"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="blockquote" data-editor-selection-type="blockquote" type="button" aria-label="Blockquote" title="Blockquote">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-double-quotes-l"></use>undefined</svg>undefined</button>undefined</div>undefined<div class="editor-toolbar-group">undefined<button class="editor-toolbar-control" data-editor-type="indent:indent" type="button" aria-label="Indent" title="Indent">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-indent-increase"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="indent:outdent" type="button" aria-label="Outdent" title="Outdent">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-indent-decrease"></use>undefined</svg>undefined</button>undefined</div>undefined<div class="editor-toolbar-group">undefined<button class="editor-toolbar-control" data-editor-type="videoEmbed" data-editor-selection-type="videoEmbed" type="button" aria-label="Video embed" title="Video embed">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-video-line"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="image" data-editor-selection-type="image" type="button" aria-label="Image" title="Image">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-image-line"></use>undefined</svg>undefined</button>undefined</div>undefined</div>undefined<div class="editor-input" style="height: 8rem">undefined<div contenteditable="true" role="textbox" aria-multiline="true" aria-labelledby="editorlabel-1757589301350-c25b114d9ca25" translate="no" class="tiptap ProseMirror" tabindex="0">undefined<p>undefined<br class="ProseMirror-trailingBreak">undefined</p>undefined</div>undefined</div>undefined</div>undefined
832
+ </div>
833
+ </div>
834
+ <div class="tabs-panel" id="assembly-special_features-tabs-special_features-panel-1" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-special_features-tabs-special_features-panel-1-label">undefined<div class="editor" id="assembly_special_features_es">undefined<input aria-label="special_features" label="false" autocomplete="off" type="hidden" name="assembly[special_features_es]">undefined<div class="editor-container" data-controller="editor" data-toolbar="full" data-disabled="false" data-options="{&quot;context&quot;:&quot;admin&quot;,&quot;contentTypes&quot;:{&quot;image&quot;:[&quot;image/jpeg&quot;,&quot;image/png&quot;,&quot;image/webp&quot;]},&quot;uploadImagesPath&quot;:&quot;/editor_images&quot;,&quot;dragAndDropHelpText&quot;:&quot;Add images by dragging \u0026 dropping or pasting them.&quot;,&quot;uploadDialogSelector&quot;:&quot;#upload_2&quot;}">undefined<div class="editor-toolbar">undefined<div class="editor-toolbar-group">undefined<select class="editor-toolbar-control !pr-8" data-editor-type="heading" data-editor-selection-type="heading" aria-label="Text style" title="Text style">undefined<option value="normal" selected="selected">Normal</option>undefined<option value="2">Heading 2</option>undefined<option value="3">Heading 3</option>undefined<option value="4">Heading 4</option>undefined<option value="5">Heading 5</option>undefined<option value="6">Heading 6</option>undefined</select>undefined</div>undefined<div class="editor-toolbar-group">undefined<button class="editor-toolbar-control" data-editor-type="bold" data-editor-selection-type="bold" type="button" aria-label="Bold" title="Bold">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-bold"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="italic" data-editor-selection-type="italic" type="button" aria-label="Italic" title="Italic">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-italic"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="underline" data-editor-selection-type="underline" type="button" aria-label="Underline" title="Underline">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-underline"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="hardBreak" type="button" aria-label="Line break" title="Line break">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-text-wrap"></use>undefined</svg>undefined</button>undefined</div>undefined<div class="editor-toolbar-group">undefined<button class="editor-toolbar-control" data-editor-type="orderedList" data-editor-selection-type="orderedList" type="button" aria-label="Ordered list" title="Ordered list">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-list-ordered"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="bulletList" data-editor-selection-type="bulletList" type="button" aria-label="Unordered list" title="Unordered list">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-list-unordered"></use>undefined</svg>undefined</button>undefined</div>undefined<div class="editor-toolbar-group">undefined<button class="editor-toolbar-control" data-editor-type="link" data-editor-selection-type="link" type="button" aria-label="Link" title="Link">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-link"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="common:eraseStyles" type="button" aria-label="Erase styles" title="Erase styles">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-eraser-line"></use>undefined</svg>undefined</button>undefined</div>undefined<div class="editor-toolbar-group">undefined<button class="editor-toolbar-control" data-editor-type="codeBlock" data-editor-selection-type="codeBlock" type="button" aria-label="Code block" title="Code block">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-code-line"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="blockquote" data-editor-selection-type="blockquote" type="button" aria-label="Blockquote" title="Blockquote">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-double-quotes-l"></use>undefined</svg>undefined</button>undefined</div>undefined<div class="editor-toolbar-group">undefined<button class="editor-toolbar-control" data-editor-type="indent:indent" type="button" aria-label="Indent" title="Indent">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-indent-increase"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="indent:outdent" type="button" aria-label="Outdent" title="Outdent">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-indent-decrease"></use>undefined</svg>undefined</button>undefined</div>undefined<div class="editor-toolbar-group">undefined<button class="editor-toolbar-control" data-editor-type="videoEmbed" data-editor-selection-type="videoEmbed" type="button" aria-label="Video embed" title="Video embed">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-video-line"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="image" data-editor-selection-type="image" type="button" aria-label="Image" title="Image">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-image-line"></use>undefined</svg>undefined</button>undefined</div>undefined</div>undefined<div class="editor-input" style="height: 8rem">undefined<div contenteditable="true" role="textbox" aria-multiline="true" aria-labelledby="editorlabel-1757589301351-e9d0948dc3741" translate="no" class="tiptap ProseMirror" tabindex="0">undefined<p>undefined<br class="ProseMirror-trailingBreak">undefined</p>undefined</div>undefined</div>undefined</div>undefined</div>undefined</div>undefined<div class="tabs-panel" id="assembly-special_features-tabs-special_features-panel-2" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-special_features-tabs-special_features-panel-2-label">undefined<div class="editor" id="assembly_special_features_ca">undefined<input aria-label="special_features" label="false" autocomplete="off" type="hidden" name="assembly[special_features_ca]">undefined<div class="editor-container" data-controller="editor" data-toolbar="full" data-disabled="false" data-options="{&quot;context&quot;:&quot;admin&quot;,&quot;contentTypes&quot;:{&quot;image&quot;:[&quot;image/jpeg&quot;,&quot;image/png&quot;,&quot;image/webp&quot;]},&quot;uploadImagesPath&quot;:&quot;/editor_images&quot;,&quot;dragAndDropHelpText&quot;:&quot;Add images by dragging \u0026 dropping or pasting them.&quot;,&quot;uploadDialogSelector&quot;:&quot;#upload_3&quot;}">undefined<div class="editor-toolbar">undefined<div class="editor-toolbar-group">undefined<select class="editor-toolbar-control !pr-8" data-editor-type="heading" data-editor-selection-type="heading" aria-label="Text style" title="Text style">undefined<option value="normal" selected="selected">Normal</option>undefined<option value="2">Heading 2</option>undefined<option value="3">Heading 3</option>undefined<option value="4">Heading 4</option>undefined<option value="5">Heading 5</option>undefined<option value="6">Heading 6</option>undefined</select>undefined</div>undefined<div class="editor-toolbar-group">undefined<button class="editor-toolbar-control" data-editor-type="bold" data-editor-selection-type="bold" type="button" aria-label="Bold" title="Bold">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-bold"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="italic" data-editor-selection-type="italic" type="button" aria-label="Italic" title="Italic">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-italic"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="underline" data-editor-selection-type="underline" type="button" aria-label="Underline" title="Underline">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-underline"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="hardBreak" type="button" aria-label="Line break" title="Line break">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-text-wrap"></use>undefined</svg>undefined</button>undefined</div>undefined<div class="editor-toolbar-group">undefined<button class="editor-toolbar-control" data-editor-type="orderedList" data-editor-selection-type="orderedList" type="button" aria-label="Ordered list" title="Ordered list">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-list-ordered"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="bulletList" data-editor-selection-type="bulletList" type="button" aria-label="Unordered list" title="Unordered list">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-list-unordered"></use>undefined</svg>undefined</button>undefined</div>undefined<div class="editor-toolbar-group">undefined<button class="editor-toolbar-control" data-editor-type="link" data-editor-selection-type="link" type="button" aria-label="Link" title="Link">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-link"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="common:eraseStyles" type="button" aria-label="Erase styles" title="Erase styles">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-eraser-line"></use>undefined</svg>undefined</button>undefined</div>undefined<div class="editor-toolbar-group">undefined<button class="editor-toolbar-control" data-editor-type="codeBlock" data-editor-selection-type="codeBlock" type="button" aria-label="Code block" title="Code block">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-code-line"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="blockquote" data-editor-selection-type="blockquote" type="button" aria-label="Blockquote" title="Blockquote">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-double-quotes-l"></use>undefined</svg>undefined</button>undefined</div>undefined<div class="editor-toolbar-group">undefined<button class="editor-toolbar-control" data-editor-type="indent:indent" type="button" aria-label="Indent" title="Indent">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-indent-increase"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="indent:outdent" type="button" aria-label="Outdent" title="Outdent">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-indent-decrease"></use>undefined</svg>undefined</button>undefined</div>undefined<div class="editor-toolbar-group">undefined<button class="editor-toolbar-control" data-editor-type="videoEmbed" data-editor-selection-type="videoEmbed" type="button" aria-label="Video embed" title="Video embed">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-video-line"></use>undefined</svg>undefined</button>undefined<button class="editor-toolbar-control" data-editor-type="image" data-editor-selection-type="image" type="button" aria-label="Image" title="Image">undefined<svg class="editor-toolbar-icon" role="img" aria-hidden="true">undefined<use href="/decidim-packs/media/images/remixicon.symbol-e643e553623ffcd49f94.svg#ri-image-line"></use>undefined</svg>undefined</button>undefined</div>undefined</div>undefined<div class="editor-input" style="height: 8rem">undefined<div contenteditable="true" role="textbox" aria-multiline="true" aria-labelledby="editorlabel-1757589301353-9ef017c6dc32d8" translate="no" class="tiptap ProseMirror" tabindex="0">undefined<p>undefined<br class="ProseMirror-trailingBreak">undefined</p>undefined</div>undefined</div>undefined</div>undefined</div>undefined</div>undefined
835
+ </div>
836
+
837
+ </div>
838
+ <div class="row column">undefined<div class="label--tabs">undefined<label for="assembly_social_handlers">Social</label>undefined<ul class="tabs tabs--lang" id="assembly-social_handlers-tabs" data-tabs="true" role="tablist">undefined<li class="tabs-title is-active" role="presentation">undefined<a href="#assembly-social_handlers-tabs-social_handlers-panel-0" role="tab" aria-controls="assembly-social_handlers-tabs-social_handlers-panel-0" aria-selected="true" id="assembly-social_handlers-tabs-social_handlers-panel-0-label" tabindex="0">X</a>undefined</li>undefined<li class="tabs-title" role="presentation">undefined<a href="#assembly-social_handlers-tabs-social_handlers-panel-1" role="tab" aria-controls="assembly-social_handlers-tabs-social_handlers-panel-1" aria-selected="false" id="assembly-social_handlers-tabs-social_handlers-panel-1-label" tabindex="-1">Facebook</a>undefined</li>undefined<li class="tabs-title" role="presentation">undefined<a href="#assembly-social_handlers-tabs-social_handlers-panel-2" role="tab" aria-controls="assembly-social_handlers-tabs-social_handlers-panel-2" aria-selected="false" id="assembly-social_handlers-tabs-social_handlers-panel-2-label" tabindex="-1">Instagram</a>undefined</li>undefined<li class="tabs-title" role="presentation">undefined<a href="#assembly-social_handlers-tabs-social_handlers-panel-3" role="tab" aria-controls="assembly-social_handlers-tabs-social_handlers-panel-3" aria-selected="false" id="assembly-social_handlers-tabs-social_handlers-panel-3-label" tabindex="-1">YouTube</a>undefined</li>undefined<li class="tabs-title" role="presentation">undefined<a href="#assembly-social_handlers-tabs-social_handlers-panel-4" role="tab" aria-controls="assembly-social_handlers-tabs-social_handlers-panel-4" aria-selected="false" id="assembly-social_handlers-tabs-social_handlers-panel-4-label" tabindex="-1">GitHub</a>undefined</li>undefined</ul>undefined</div>undefined<div class="tabs-content" data-tabs-content="assembly-social_handlers-tabs">undefined<div class="tabs-panel is-active" id="assembly-social_handlers-tabs-social_handlers-panel-0" aria-hidden="false" role="tabpanel" aria-labelledby="assembly-social_handlers-tabs-social_handlers-panel-0-label">undefined<input type="text" name="assembly[twitter_handler]" id="assembly_twitter_handler" data-accessibility-violation="true">undefined</div>undefined<div class="tabs-panel" id="assembly-social_handlers-tabs-social_handlers-panel-1" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-social_handlers-tabs-social_handlers-panel-1-label">undefined<input type="text" name="assembly[facebook_handler]" id="assembly_facebook_handler">undefined</div>undefined<div class="tabs-panel" id="assembly-social_handlers-tabs-social_handlers-panel-2" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-social_handlers-tabs-social_handlers-panel-2-label">undefined<input type="text" name="assembly[instagram_handler]" id="assembly_instagram_handler">undefined</div>undefined<div class="tabs-panel" id="assembly-social_handlers-tabs-social_handlers-panel-3" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-social_handlers-tabs-social_handlers-panel-3-label">undefined<input type="text" name="assembly[youtube_handler]" id="assembly_youtube_handler">undefined</div>undefined<div class="tabs-panel" id="assembly-social_handlers-tabs-social_handlers-panel-4" aria-hidden="true" role="tabpanel" aria-labelledby="assembly-social_handlers-tabs-social_handlers-panel-4-label">undefined<input type="text" name="assembly[github_handler]" id="assembly_github_handler">undefined</div>undefined</div>undefined</div>undefined
839
+ </div>
840
+
841
+ </div>
842
+
843
+ </div>
844
+ <div class="item__edit-sticky">undefined<div class="item__edit-sticky-container">undefined<button type="submit" name="commit" class="button button__sm button__secondary">Create</button>undefined</div>undefined</div>undefined
845
+ </form>
846
+
847
+ </div>
848
+ `;
849
+
850
+ // Set up Stimulus
851
+ application = Application.start();
852
+ application.register("assembly-admin", Controller);
853
+ element = document.getElementById("new_assembly");
854
+
855
+ // Wait for controller to be initialized
856
+ await new Promise((resolve) => {
857
+ setTimeout(() => {
858
+ controller = application.getControllerForElementAndIdentifier(element, "assembly-admin");
859
+ resolve();
860
+ }, 10);
861
+ });
862
+ });
863
+
864
+ afterEach(() => {
865
+ application.stop();
866
+ document.body.innerHTML = "";
867
+ });
868
+
869
+ describe("connect", () => {
870
+ it("should initialize the controller and set up event listeners", () => {
871
+ expect(controller).toBeDefined();
872
+ expect(element).toBeDefined();
873
+
874
+ // Test that initial state is set correctly
875
+ const isTransparentCheckbox = element.querySelector("#is_transparent input[type='checkbox']");
876
+ const specialFeatures = element.querySelector("#special_features");
877
+
878
+ expect(isTransparentCheckbox.disabled).toBe(true);
879
+ expect(specialFeatures.style.display).toBe("none");
880
+ });
881
+
882
+ it("should call assignBehavior for assembly_type and created_by fields", () => {
883
+ const assemblyType = element.querySelector("#assembly_assembly_type");
884
+ const createdBy = element.querySelector("#assembly_created_by");
885
+
886
+ expect(assemblyType).toBeDefined();
887
+ expect(createdBy).toBeDefined();
888
+
889
+ // Verify that event listeners are attached by triggering changes
890
+ // const assemblyTypeOther = element.querySelector("#assembly_type_other");
891
+ const createdByOther = element.querySelector("#created_by_other");
892
+
893
+ // expect(assemblyTypeOther.style.display).toBe("none");
894
+ expect(createdByOther.style.display).toBe("none");
895
+ });
896
+ });
897
+
898
+ describe("assignBehavior", () => {
899
+
900
+ it("should set up behavior for created_by field", () => {
901
+ const createdBy = element.querySelector("#assembly_created_by");
902
+ const createdByOther = element.querySelector("#created_by_other");
903
+
904
+ // Test initial state
905
+ expect(createdByOther.style.display).toBe("none");
906
+
907
+ // Test showing other field when "others" is selected
908
+ createdBy.value = "others";
909
+ createdBy.dispatchEvent(new Event("change"));
910
+
911
+ expect(createdByOther.style.display).toBe("block");
912
+
913
+ // Test hiding other field when different option is selected
914
+ createdBy.value = "city_council";
915
+ createdBy.dispatchEvent(new Event("change"));
916
+
917
+ expect(createdByOther.style.display).toBe("none");
918
+ });
919
+ });
920
+
921
+ describe("attachVisibility", () => {
922
+ it("should attach event listener and set initial state", () => {
923
+ const select = element.querySelector("#assembly_created_by");
924
+ const targetDiv = element.querySelector("#created_by_other");
925
+
926
+ // Reset to initial state
927
+ targetDiv.style.display = "block";
928
+
929
+ controller.attachVisibility(select, targetDiv);
930
+
931
+ // Should hide initially if value is not "others"
932
+ expect(targetDiv.style.display).toBe("none");
933
+ });
934
+
935
+ it("should handle null elements gracefully", () => {
936
+ expect(() => {
937
+ controller.attachVisibility(null, null);
938
+ }).not.toThrow();
939
+
940
+ expect(() => {
941
+ controller.attachVisibility(element.querySelector("#assembly_assembly_type"), null);
942
+ }).not.toThrow();
943
+ });
944
+ });
945
+
946
+ describe("toggleDependsOnSelect", () => {
947
+ it("should show div when target value is 'others'", () => {
948
+ const select = element.querySelector("#assembly_created_by");
949
+ const targetDiv = element.querySelector("#created_by_other");
950
+
951
+ select.value = "others";
952
+ controller.toggleDependsOnSelect(select, targetDiv);
953
+
954
+ expect(targetDiv.style.display).toBe("block");
955
+ });
956
+
957
+ it("should hide div when target value is not 'others'", () => {
958
+ const select = element.querySelector("#assembly_created_by");
959
+ const targetDiv = element.querySelector("#created_by_other");
960
+
961
+ select.value = "standard";
962
+ controller.toggleDependsOnSelect(select, targetDiv);
963
+
964
+ expect(targetDiv.style.display).toBe("none");
965
+ });
966
+
967
+ it("should return early if target or showDiv is null", () => {
968
+ const select = element.querySelector("#assembly_assembly_type");
969
+
970
+ expect(() => {
971
+ controller.toggleDependsOnSelect(null, null);
972
+ }).not.toThrow();
973
+
974
+ expect(() => {
975
+ controller.toggleDependsOnSelect(select, null);
976
+ }).not.toThrow();
977
+ });
978
+ });
979
+
980
+ describe("toggleDisabledHiddenFields", () => {
981
+ it("should initially disable transparent checkbox and hide special features", () => {
982
+ controller.toggleDisabledHiddenFields();
983
+
984
+ const isTransparentCheckbox = element.querySelector("#is_transparent input[type='checkbox']");
985
+ const specialFeatures = element.querySelector("#special_features");
986
+
987
+ expect(isTransparentCheckbox.disabled).toBe(true);
988
+ expect(specialFeatures.style.display).toBe("none");
989
+ });
990
+
991
+ it("should enable transparent checkbox and show special features when private space is checked", () => {
992
+ const privateSpaceCheckbox = element.querySelector("#private_space input[type='checkbox']");
993
+ const isTransparentCheckbox = element.querySelector("#is_transparent input[type='checkbox']");
994
+ const specialFeatures = element.querySelector("#special_features");
995
+
996
+ // Check private space checkbox
997
+ privateSpaceCheckbox.checked = true;
998
+
999
+ controller.toggleDisabledHiddenFields();
1000
+
1001
+ expect(isTransparentCheckbox.disabled).toBe(false);
1002
+ expect(specialFeatures.style.display).toBe("block");
1003
+ });
1004
+
1005
+ it("should disable transparent checkbox and hide special features when private space is unchecked", () => {
1006
+ const privateSpaceCheckbox = element.querySelector("#private_space input[type='checkbox']");
1007
+ const isTransparentCheckbox = element.querySelector("#is_transparent input[type='checkbox']");
1008
+ const specialFeatures = element.querySelector("#special_features");
1009
+
1010
+ // Uncheck private space checkbox
1011
+ privateSpaceCheckbox.checked = false;
1012
+
1013
+ controller.toggleDisabledHiddenFields();
1014
+
1015
+ expect(isTransparentCheckbox.disabled).toBe(true);
1016
+ expect(specialFeatures.style.display).toBe("none");
1017
+ });
1018
+
1019
+ it("should handle missing elements gracefully", () => {
1020
+ // Remove elements to test graceful handling
1021
+ element.querySelector("#private_space").remove();
1022
+ element.querySelector("#is_transparent").remove();
1023
+ element.querySelector("#special_features").remove();
1024
+
1025
+ expect(() => {
1026
+ controller.toggleDisabledHiddenFields();
1027
+ }).not.toThrow();
1028
+ });
1029
+
1030
+ it("should handle missing checkbox inside transparent div", () => {
1031
+ // Remove checkbox from transparent div
1032
+ const isTransparent = element.querySelector("#is_transparent");
1033
+ isTransparent.innerHTML = "";
1034
+
1035
+ expect(() => {
1036
+ controller.toggleDisabledHiddenFields();
1037
+ }).not.toThrow();
1038
+ });
1039
+ });
1040
+
1041
+ describe("integration tests", () => {
1042
+ it("should maintain correct state when toggling between options", () => {
1043
+ const assemblyType = element.querySelector("#assembly_created_by");
1044
+ const assemblyTypeOther = element.querySelector("#created_by_other");
1045
+
1046
+ // Initially hidden
1047
+ expect(assemblyTypeOther.style.display).toBe("none");
1048
+
1049
+ // Show by selecting "others"
1050
+ assemblyType.value = "others";
1051
+ assemblyType.dispatchEvent(new Event("change"));
1052
+ expect(assemblyTypeOther.style.display).toBe("block");
1053
+
1054
+ // Hide by selecting different option
1055
+ assemblyType.value = "consultative";
1056
+ assemblyType.dispatchEvent(new Event("change"));
1057
+ expect(assemblyTypeOther.style.display).toBe("none");
1058
+
1059
+ // Show again by selecting "others"
1060
+ assemblyType.value = "others";
1061
+ assemblyType.dispatchEvent(new Event("change"));
1062
+ expect(assemblyTypeOther.style.display).toBe("block");
1063
+ });
1064
+ });
1065
+
1066
+ describe("edge cases", () => {
1067
+ it("should handle elements with no checkbox inside", () => {
1068
+ // Replace private space with div that has no checkbox
1069
+ const privateSpace = element.querySelector("#private_space");
1070
+ privateSpace.innerHTML = "<div>No checkbox here</div>";
1071
+
1072
+ expect(() => {
1073
+ controller.toggleDisabledHiddenFields();
1074
+ }).not.toThrow();
1075
+ });
1076
+ });
1077
+ });