decidim 0.4.4 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of decidim might be problematic. Click here for more details.

Files changed (1154) hide show
  1. checksums.yaml +4 -4
  2. data/.babelrc +1 -1
  3. data/.circleci/config.yml +1 -1
  4. data/.codeclimate.yml +4 -11
  5. data/.dockerignore +1 -1
  6. data/.editorconfig +9 -0
  7. data/.gitattributes +2 -0
  8. data/.rubocop.yml +1 -0
  9. data/.simplecov +12 -0
  10. data/.yardopts +1 -1
  11. data/CHANGELOG.md +31 -1
  12. data/Gemfile.lock +91 -87
  13. data/Rakefile +0 -1
  14. data/codecov.yml +3 -0
  15. data/decidim-admin/app/assets/javascripts/decidim/admin/application.js.es6 +3 -0
  16. data/decidim-admin/app/assets/javascripts/decidim/admin/participatory_processes.js.es6 +12 -0
  17. data/decidim-admin/app/assets/javascripts/decidim/admin/scopes.js.es6 +20 -0
  18. data/decidim-admin/app/assets/javascripts/decidim/admin/select2.js.es6 +8 -0
  19. data/decidim-admin/app/assets/stylesheets/decidim/admin/_decidim.scss +2 -0
  20. data/decidim-admin/app/assets/stylesheets/decidim/admin/extra/_categories.scss +1 -1
  21. data/decidim-admin/app/assets/stylesheets/decidim/admin/extra/_login.scss +1 -1
  22. data/decidim-admin/app/assets/stylesheets/decidim/admin/extra/_sort.scss +1 -1
  23. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_buttons.scss +3 -0
  24. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_callouts.scss +0 -1
  25. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_cards.scss +47 -0
  26. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_secondary-nav.scss +2 -2
  27. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_typography.scss +1 -1
  28. data/decidim-admin/app/assets/stylesheets/decidim/admin/plugins/_select2.scss +27 -0
  29. data/decidim-admin/app/assets/stylesheets/decidim/admin/utils/_toggle-expand.scss +1 -1
  30. data/decidim-admin/app/commands/decidim/admin/close_session_managed_user.rb +44 -0
  31. data/decidim-admin/app/commands/decidim/admin/create_feature.rb +2 -1
  32. data/decidim-admin/app/commands/decidim/admin/create_managed_user.rb +61 -0
  33. data/decidim-admin/app/commands/decidim/admin/create_scope.rb +7 -2
  34. data/decidim-admin/app/commands/decidim/admin/create_scope_type.rb +40 -0
  35. data/decidim-admin/app/commands/decidim/admin/impersonate_managed_user.rb +61 -0
  36. data/decidim-admin/app/commands/decidim/admin/promote_managed_user.rb +56 -0
  37. data/decidim-admin/app/commands/decidim/admin/update_participatory_process.rb +3 -1
  38. data/decidim-admin/app/commands/decidim/admin/update_scope.rb +4 -1
  39. data/decidim-admin/app/commands/decidim/admin/update_scope_type.rb +45 -0
  40. data/decidim-admin/app/controllers/decidim/admin/application_controller.rb +2 -1
  41. data/decidim-admin/app/controllers/decidim/admin/categories_controller.rb +3 -3
  42. data/decidim-admin/app/controllers/decidim/admin/exports_controller.rb +1 -1
  43. data/decidim-admin/app/controllers/decidim/admin/managed_users/impersonations_controller.rb +78 -0
  44. data/decidim-admin/app/controllers/decidim/admin/managed_users/promotions_controller.rb +43 -0
  45. data/decidim-admin/app/controllers/decidim/admin/managed_users_controller.rb +69 -0
  46. data/decidim-admin/app/controllers/decidim/admin/moderations_controller.rb +4 -4
  47. data/decidim-admin/app/controllers/decidim/admin/newsletters_controller.rb +1 -1
  48. data/decidim-admin/app/controllers/decidim/admin/participatory_processes_controller.rb +0 -5
  49. data/decidim-admin/app/controllers/decidim/admin/scope_types_controller.rb +79 -0
  50. data/decidim-admin/app/controllers/decidim/admin/scopes_controller.rb +22 -7
  51. data/decidim-admin/app/controllers/decidim/admin/user_groups_controller.rb +1 -1
  52. data/decidim-admin/app/controllers/decidim/admin/users_controller.rb +1 -2
  53. data/decidim-admin/app/forms/decidim/admin/impersonate_managed_user_form.rb +20 -0
  54. data/decidim-admin/app/forms/decidim/admin/managed_user_form.rb +35 -0
  55. data/decidim-admin/app/forms/decidim/admin/managed_user_promotion_form.rb +13 -0
  56. data/decidim-admin/app/forms/decidim/admin/participatory_process_form.rb +2 -0
  57. data/decidim-admin/app/forms/decidim/admin/scope_form.rb +17 -6
  58. data/decidim-admin/app/forms/decidim/admin/scope_type_form.rb +21 -0
  59. data/decidim-admin/app/helpers/decidim/admin/scopes_helper.rb +46 -0
  60. data/decidim-admin/app/helpers/decidim/admin/settings_helper.rb +12 -1
  61. data/decidim-admin/app/jobs/decidim/admin/expire_impersonation_job.rb +16 -0
  62. data/decidim-admin/app/models/decidim/admin/abilities/admin_ability.rb +17 -0
  63. data/decidim-admin/app/models/decidim/admin/abilities/user_manager_ability.rb +30 -0
  64. data/decidim-admin/app/views/decidim/admin/categories/_form.html.erb +1 -1
  65. data/decidim-admin/app/views/decidim/admin/categories/edit.html.erb +1 -1
  66. data/decidim-admin/app/views/decidim/admin/categories/index.html.erb +7 -7
  67. data/decidim-admin/app/views/decidim/admin/categories/new.html.erb +1 -1
  68. data/decidim-admin/app/views/decidim/admin/features/_form.html.erb +6 -3
  69. data/decidim-admin/app/views/decidim/admin/features/_settings_fields.html.erb +2 -1
  70. data/decidim-admin/app/views/decidim/admin/managed_users/_form.html.erb +12 -0
  71. data/decidim-admin/app/views/decidim/admin/managed_users/impersonations/_form.html.erb +10 -0
  72. data/decidim-admin/app/views/decidim/admin/managed_users/impersonations/index.html.erb +34 -0
  73. data/decidim-admin/app/views/decidim/admin/managed_users/impersonations/new.html.erb +15 -0
  74. data/decidim-admin/app/views/decidim/admin/managed_users/index.html.erb +44 -0
  75. data/decidim-admin/app/views/decidim/admin/managed_users/new.html.erb +47 -0
  76. data/decidim-admin/app/views/decidim/admin/managed_users/promotions/_form.html.erb +3 -0
  77. data/decidim-admin/app/views/decidim/admin/managed_users/promotions/new.html.erb +21 -0
  78. data/decidim-admin/app/views/decidim/admin/moderations/index.html.erb +4 -4
  79. data/decidim-admin/app/views/decidim/admin/participatory_process_copies/_form.html.erb +1 -1
  80. data/decidim-admin/app/views/decidim/admin/participatory_process_user_roles/edit.html.erb +1 -1
  81. data/decidim-admin/app/views/decidim/admin/participatory_processes/_form.html.erb +13 -8
  82. data/decidim-admin/app/views/decidim/admin/participatory_processes/index.html.erb +1 -1
  83. data/decidim-admin/app/views/decidim/admin/scope_types/_form.html.erb +7 -0
  84. data/decidim-admin/app/views/decidim/admin/scope_types/edit.html.erb +13 -0
  85. data/decidim-admin/app/views/decidim/admin/scope_types/index.html.erb +40 -0
  86. data/decidim-admin/app/views/decidim/admin/scope_types/new.html.erb +13 -0
  87. data/decidim-admin/app/views/decidim/admin/scopes/_form.html.erb +12 -2
  88. data/decidim-admin/app/views/decidim/admin/scopes/index.html.erb +19 -7
  89. data/decidim-admin/app/views/decidim/admin/scopes/new.html.erb +1 -1
  90. data/decidim-admin/app/views/decidim/admin/users/_form.html.erb +4 -0
  91. data/decidim-admin/app/views/decidim/admin/users/index.html.erb +2 -0
  92. data/decidim-admin/app/views/layouts/decidim/admin/newsletters.erb +1 -1
  93. data/decidim-admin/app/views/layouts/decidim/admin/pages.html.erb +1 -1
  94. data/decidim-admin/app/views/layouts/decidim/admin/participatory_process.html.erb +4 -4
  95. data/decidim-admin/app/views/layouts/decidim/admin/participatory_process_groups.html.erb +1 -1
  96. data/decidim-admin/app/views/layouts/decidim/admin/settings.html.erb +4 -1
  97. data/decidim-admin/app/views/layouts/decidim/admin/users.html.erb +8 -3
  98. data/decidim-admin/config/i18n-tasks.yml +2 -1
  99. data/decidim-admin/config/locales/ca.yml +80 -3
  100. data/decidim-admin/config/locales/en.yml +82 -2
  101. data/decidim-admin/config/locales/es.yml +80 -3
  102. data/decidim-admin/config/locales/eu.yml +44 -7
  103. data/decidim-admin/config/locales/fi.yml +0 -7
  104. data/decidim-admin/config/locales/fr.yml +21 -6
  105. data/decidim-admin/config/locales/it.yml +0 -10
  106. data/decidim-admin/config/locales/nl.yml +1 -1
  107. data/decidim-admin/config/locales/pl.yml +7 -0
  108. data/decidim-admin/config/routes.rb +24 -11
  109. data/decidim-admin/decidim-admin.gemspec +1 -0
  110. data/decidim-admin/lib/decidim/admin/engine.rb +6 -3
  111. data/decidim-admin/lib/decidim/admin/test/manage_attachments_examples.rb +77 -79
  112. data/decidim-admin/spec/commands/close_session_managed_user_spec.rb +33 -0
  113. data/decidim-admin/spec/commands/create_category_spec.rb +1 -1
  114. data/decidim-admin/spec/commands/create_feature_spec.rb +6 -0
  115. data/decidim-admin/spec/commands/create_managed_user_spec.rb +68 -0
  116. data/decidim-admin/spec/commands/create_newsletter_spec.rb +1 -1
  117. data/decidim-admin/spec/commands/create_scope_spec.rb +35 -2
  118. data/decidim-admin/spec/commands/create_scope_type_spec.rb +39 -0
  119. data/decidim-admin/spec/commands/create_static_page_spec.rb +1 -1
  120. data/decidim-admin/spec/commands/deliver_newsletter_spec.rb +1 -1
  121. data/decidim-admin/spec/commands/destroy_category_spec.rb +1 -1
  122. data/decidim-admin/spec/commands/impersonate_managed_user_spec.rb +75 -0
  123. data/decidim-admin/spec/commands/promote_managed_user_spec.rb +66 -0
  124. data/decidim-admin/spec/commands/update_category_spec.rb +1 -1
  125. data/decidim-admin/spec/commands/update_newsletter_spec.rb +1 -1
  126. data/decidim-admin/spec/commands/update_organization_spec.rb +1 -2
  127. data/decidim-admin/spec/commands/update_participatory_process_spec.rb +2 -2
  128. data/decidim-admin/spec/commands/update_scope_spec.rb +26 -2
  129. data/decidim-admin/spec/commands/update_scope_type_spec.rb +44 -0
  130. data/decidim-admin/spec/commands/update_static_page_spec.rb +1 -1
  131. data/decidim-admin/spec/features/admin_invite_spec.rb +1 -3
  132. data/decidim-admin/spec/features/admin_manages_features_spec.rb +52 -0
  133. data/decidim-admin/spec/features/admin_manages_managed_users_spec.rb +15 -0
  134. data/decidim-admin/spec/features/admin_manages_organization_admins_spec.rb +24 -1
  135. data/decidim-admin/spec/features/admin_manages_organization_scopes_spec.rb +39 -5
  136. data/decidim-admin/spec/features/admin_manages_participatory_process_groups_spec.rb +1 -2
  137. data/decidim-admin/spec/features/admin_manages_participatory_processes_spec.rb +2 -2
  138. data/decidim-admin/spec/features/admin_manages_user_groups_spec.rb +3 -2
  139. data/decidim-admin/spec/features/participatory_process_admin_manages_participatory_process_admins_spec.rb +1 -1
  140. data/decidim-admin/spec/features/participatory_process_admin_manages_participatory_processes_spec.rb +3 -2
  141. data/decidim-admin/spec/features/static_pages_spec.rb +1 -1
  142. data/decidim-admin/spec/features/user_manager_managed_users_spec.rb +14 -0
  143. data/decidim-admin/spec/forms/impersonate_managed_user_form_spec.rb +33 -0
  144. data/decidim-admin/spec/forms/managed_user_form_spec.rb +53 -0
  145. data/decidim-admin/spec/forms/managed_user_promotion_form_spec.rb +30 -0
  146. data/decidim-admin/spec/forms/organization_form_spec.rb +1 -6
  147. data/decidim-admin/spec/forms/participatory_process_form_spec.rb +0 -3
  148. data/decidim-admin/spec/forms/participatory_process_group_form_spec.rb +0 -4
  149. data/decidim-admin/spec/forms/scope_form_spec.rb +15 -11
  150. data/decidim-admin/spec/helpers/settings_helper_spec.rb +1 -1
  151. data/decidim-admin/spec/i18n_spec.rb +1 -1
  152. data/decidim-admin/spec/jobs/expire_impersonation_job_spec.rb +29 -0
  153. data/decidim-admin/spec/models/abilities/admin_ability_spec.rb +1 -0
  154. data/decidim-admin/spec/models/abilities/participatory_process_admin_ability_spec.rb +3 -9
  155. data/decidim-admin/spec/models/abilities/user_manager_ability_spec.rb +20 -0
  156. data/decidim-admin/spec/shared/manage_managed_users_examples.rb +173 -0
  157. data/decidim-admin/spec/shared/manage_process_admins_examples.rb +2 -2
  158. data/decidim-admin/spec/shared/manage_process_attachments_examples.rb +1 -2
  159. data/decidim-admin/spec/shared/manage_process_categories_examples.rb +3 -4
  160. data/decidim-admin/spec/shared/manage_process_steps_examples.rb +2 -2
  161. data/decidim-admin/spec/shared/manage_processes_examples.rb +54 -26
  162. data/decidim-admin/spec/shared/participatory_process_administration_by_admin_shared_context.rb +1 -1
  163. data/decidim-admin/spec/shared/participatory_process_administration_by_process_admin_shared_context.rb +1 -1
  164. data/decidim-admin/spec/shared/participatory_process_administration_shared_context.rb +1 -1
  165. data/decidim-api/app/controllers/decidim/api/application_controller.rb +8 -0
  166. data/decidim-api/app/controllers/decidim/api/documentation_controller.rb +2 -0
  167. data/decidim-api/app/controllers/decidim/api/queries_controller.rb +2 -0
  168. data/decidim-api/lib/decidim/api/test/type_context.rb +1 -1
  169. data/decidim-api/spec/i18n_spec.rb +1 -1
  170. data/decidim-api/spec/spec_helper.rb +0 -2
  171. data/decidim-budgets/app/assets/stylesheets/decidim/budgets/_budgets.scss +1 -1
  172. data/decidim-budgets/app/forms/decidim/budgets/admin/project_form.rb +1 -1
  173. data/decidim-budgets/app/views/decidim/budgets/admin/projects/_form.html.erb +3 -3
  174. data/decidim-budgets/app/views/decidim/budgets/projects/_budget_excess.html.erb +1 -1
  175. data/decidim-budgets/app/views/decidim/budgets/projects/_filters.html.erb +2 -2
  176. data/decidim-budgets/app/views/decidim/budgets/projects/_filters_small_view.html.erb +1 -1
  177. data/decidim-budgets/app/views/decidim/budgets/projects/_project.html.erb +1 -1
  178. data/decidim-budgets/app/views/decidim/budgets/projects/index.html.erb +2 -0
  179. data/decidim-budgets/app/views/decidim/budgets/projects/show.html.erb +1 -1
  180. data/decidim-budgets/config/i18n-tasks.yml +2 -1
  181. data/decidim-budgets/config/locales/ca.yml +2 -1
  182. data/decidim-budgets/config/locales/en.yml +3 -0
  183. data/decidim-budgets/config/locales/es.yml +2 -1
  184. data/decidim-budgets/config/locales/eu.yml +2 -1
  185. data/decidim-budgets/config/locales/fi.yml +1 -1
  186. data/decidim-budgets/config/locales/fr.yml +1 -1
  187. data/decidim-budgets/config/locales/it.yml +1 -1
  188. data/decidim-budgets/config/locales/nl.yml +1 -1
  189. data/decidim-budgets/config/locales/pl.yml +5 -0
  190. data/decidim-budgets/lib/decidim/budgets/feature.rb +2 -0
  191. data/decidim-budgets/spec/features/admin_manages_projects_spec.rb +1 -0
  192. data/decidim-budgets/spec/features/orders_spec.rb +5 -5
  193. data/decidim-budgets/spec/features/process_admin_manages_projects_spec.rb +1 -0
  194. data/decidim-budgets/spec/i18n_spec.rb +1 -1
  195. data/decidim-budgets/spec/shared/manage_attachments_examples.rb +1 -1
  196. data/decidim-budgets/spec/shared/manage_projects_examples.rb +3 -4
  197. data/decidim-comments/app/assets/javascripts/decidim/comments/bundle.js +0 -0
  198. data/decidim-comments/app/frontend/fragments/add_comment_form_commentable.fragment.graphql +1 -1
  199. data/decidim-comments/app/frontend/fragments/add_comment_form_session.fragment.graphql +1 -1
  200. data/decidim-comments/app/frontend/fragments/comment.fragment.graphql +1 -1
  201. data/decidim-comments/app/frontend/fragments/comment_data.fragment.graphql +1 -1
  202. data/decidim-comments/app/frontend/fragments/comment_thread.fragment.graphql +1 -1
  203. data/decidim-comments/app/frontend/fragments/down_vote_button.fragment.graphql +1 -1
  204. data/decidim-comments/app/frontend/fragments/up_vote_button.fragment.graphql +1 -1
  205. data/decidim-comments/app/frontend/mutations/add_comment.mutation.graphql +1 -1
  206. data/decidim-comments/app/frontend/mutations/down_vote.mutation.graphql +1 -1
  207. data/decidim-comments/app/frontend/mutations/up_vote.mutation.graphql +1 -1
  208. data/decidim-comments/app/frontend/queries/comments.query.graphql +1 -1
  209. data/decidim-comments/app/views/decidim/comments/comment_notification_mailer/reply_created.html.erb +1 -1
  210. data/decidim-comments/config/locales/ca.yml +1 -1
  211. data/decidim-comments/config/locales/es.yml +1 -1
  212. data/decidim-comments/config/locales/eu.yml +1 -1
  213. data/decidim-comments/config/locales/fi.yml +1 -1
  214. data/decidim-comments/config/locales/fr.yml +1 -1
  215. data/decidim-comments/config/locales/it.yml +1 -1
  216. data/decidim-comments/config/locales/nl.yml +1 -1
  217. data/decidim-comments/config/locales/pl.yml +6 -0
  218. data/decidim-comments/spec/commands/create_comment_spec.rb +1 -1
  219. data/decidim-comments/spec/commands/vote_comment_spec.rb +1 -1
  220. data/decidim-comments/spec/features/notifications_spec.rb +2 -8
  221. data/decidim-comments/spec/i18n_spec.rb +1 -1
  222. data/decidim-comments/spec/mailers/comment_notification_mailer_spec.rb +0 -1
  223. data/decidim-core/README.md +28 -0
  224. data/decidim-core/Rakefile +3 -0
  225. data/decidim-core/app/assets/config/decidim_core_manifest.js +10 -0
  226. data/decidim-core/app/assets/fonts/decidim/Source_Sans_Pro_400.eot +0 -0
  227. data/decidim-core/app/assets/fonts/decidim/Source_Sans_Pro_400.svg +345 -0
  228. data/decidim-core/app/assets/fonts/decidim/Source_Sans_Pro_400.ttf +0 -0
  229. data/decidim-core/app/assets/fonts/decidim/Source_Sans_Pro_400.woff +0 -0
  230. data/decidim-core/app/assets/fonts/decidim/Source_Sans_Pro_400.woff2 +0 -0
  231. data/decidim-core/app/assets/fonts/decidim/Source_Sans_Pro_600.eot +0 -0
  232. data/decidim-core/app/assets/fonts/decidim/Source_Sans_Pro_600.svg +339 -0
  233. data/decidim-core/app/assets/fonts/decidim/Source_Sans_Pro_600.ttf +0 -0
  234. data/decidim-core/app/assets/fonts/decidim/Source_Sans_Pro_600.woff +0 -0
  235. data/decidim-core/app/assets/fonts/decidim/Source_Sans_Pro_600.woff2 +0 -0
  236. data/decidim-core/app/assets/fonts/decidim/Source_Sans_Pro_900.eot +0 -0
  237. data/decidim-core/app/assets/fonts/decidim/Source_Sans_Pro_900.svg +342 -0
  238. data/decidim-core/app/assets/fonts/decidim/Source_Sans_Pro_900.ttf +0 -0
  239. data/decidim-core/app/assets/fonts/decidim/Source_Sans_Pro_900.woff +0 -0
  240. data/decidim-core/app/assets/fonts/decidim/Source_Sans_Pro_900.woff2 +0 -0
  241. data/decidim-core/app/assets/images/decidim/.keep +0 -0
  242. data/decidim-core/app/assets/images/decidim/cc-badge.png +0 -0
  243. data/{decidim-dev/spec/support/avatar.svg → decidim-core/app/assets/images/decidim/default-avatar.svg} +0 -0
  244. data/decidim-core/app/assets/images/decidim/icons.svg +1 -0
  245. data/decidim-core/app/assets/images/decidim/process.svg +10 -0
  246. data/decidim-core/app/assets/javascripts/decidim.js.es6 +27 -0
  247. data/decidim-core/app/assets/javascripts/decidim/account_form.js.es6 +27 -0
  248. data/decidim-core/app/assets/javascripts/decidim/append_elements.js.es6 +8 -0
  249. data/decidim-core/app/assets/javascripts/decidim/editor.js.es6 +51 -0
  250. data/decidim-core/app/assets/javascripts/decidim/filters.js.es6 +16 -0
  251. data/decidim-core/app/assets/javascripts/decidim/form_filter.component.js.es6 +237 -0
  252. data/decidim-core/app/assets/javascripts/decidim/form_filter.component.test.js +112 -0
  253. data/decidim-core/app/assets/javascripts/decidim/foundation.js.es6 +18 -0
  254. data/decidim-core/app/assets/javascripts/decidim/history.js.es6 +38 -0
  255. data/decidim-core/app/assets/javascripts/decidim/impersonation.js.es6 +16 -0
  256. data/decidim-core/app/assets/javascripts/decidim/map.js.es6.erb +95 -0
  257. data/decidim-core/app/assets/javascripts/decidim/orders.js.es6 +28 -0
  258. data/decidim-core/app/assets/javascripts/decidim/select2.field.js.es6 +47 -0
  259. data/decidim-core/app/assets/javascripts/decidim/select2.js.es6 +8 -0
  260. data/decidim-core/app/assets/javascripts/decidim/user_registrations.js.es6 +21 -0
  261. data/decidim-core/app/assets/javascripts/decidim/widget.js.es6 +14 -0
  262. data/decidim-core/app/assets/stylesheets/decidim/_decidim.scss +12 -0
  263. data/decidim-core/app/assets/stylesheets/decidim/_variables.scss +16 -0
  264. data/decidim-core/app/assets/stylesheets/decidim/application.scss.erb +6 -0
  265. data/decidim-core/app/assets/stylesheets/decidim/editor.sass +4 -0
  266. data/decidim-core/app/assets/stylesheets/decidim/email.css +1395 -0
  267. data/decidim-core/app/assets/stylesheets/decidim/extras/_add_comments.scss +9 -0
  268. data/decidim-core/app/assets/stylesheets/decidim/extras/_announcement.scss +3 -0
  269. data/decidim-core/app/assets/stylesheets/decidim/extras/_callout.scss +5 -0
  270. data/decidim-core/app/assets/stylesheets/decidim/extras/_collection-sort-controls.scss +5 -0
  271. data/decidim-core/app/assets/stylesheets/decidim/extras/_embed.scss +32 -0
  272. data/decidim-core/app/assets/stylesheets/decidim/extras/_impersonation-bar.scss +22 -0
  273. data/decidim-core/app/assets/stylesheets/decidim/extras/_label-required.scss +3 -0
  274. data/decidim-core/app/assets/stylesheets/decidim/extras/_leaflet.scss +15 -0
  275. data/decidim-core/app/assets/stylesheets/decidim/extras/_process_stats.scss +38 -0
  276. data/decidim-core/app/assets/stylesheets/decidim/extras/_proposal_form.scss +7 -0
  277. data/decidim-core/app/assets/stylesheets/decidim/extras/_quill.scss +8 -0
  278. data/decidim-core/app/assets/stylesheets/decidim/extras/_reference.scss +3 -0
  279. data/decidim-core/app/assets/stylesheets/decidim/extras/_register_form.scss +9 -0
  280. data/decidim-core/app/assets/stylesheets/decidim/extras/_results-per-page.scss +66 -0
  281. data/decidim-core/app/assets/stylesheets/decidim/extras/_social_icons_mini.scss +10 -0
  282. data/decidim-core/app/assets/stylesheets/decidim/extras/_status-labels.scss +3 -0
  283. data/decidim-core/app/assets/stylesheets/decidim/layouts/_home.scss +244 -0
  284. data/decidim-core/app/assets/stylesheets/decidim/layouts/_user.scss +24 -0
  285. data/decidim-core/app/assets/stylesheets/decidim/layouts/_view.scss +22 -0
  286. data/decidim-core/app/assets/stylesheets/decidim/map.css +3 -0
  287. data/decidim-core/app/assets/stylesheets/decidim/modules/_address.scss +26 -0
  288. data/decidim-core/app/assets/stylesheets/decidim/modules/_author-avatar.scss +119 -0
  289. data/decidim-core/app/assets/stylesheets/decidim/modules/_buttons.scss +142 -0
  290. data/decidim-core/app/assets/stylesheets/decidim/modules/_callout.scss +25 -0
  291. data/decidim-core/app/assets/stylesheets/decidim/modules/_card-grid.scss +25 -0
  292. data/decidim-core/app/assets/stylesheets/decidim/modules/_cards.scss +504 -0
  293. data/decidim-core/app/assets/stylesheets/decidim/modules/_comments.scss +141 -0
  294. data/decidim-core/app/assets/stylesheets/decidim/modules/_cookie-bar.scss +22 -0
  295. data/decidim-core/app/assets/stylesheets/decidim/modules/_datepicker.scss +224 -0
  296. data/decidim-core/app/assets/stylesheets/decidim/modules/_definition-data.scss +54 -0
  297. data/decidim-core/app/assets/stylesheets/decidim/modules/_extra.scss +43 -0
  298. data/decidim-core/app/assets/stylesheets/decidim/modules/_filter-tags.scss +24 -0
  299. data/decidim-core/app/assets/stylesheets/decidim/modules/_filters.scss +96 -0
  300. data/decidim-core/app/assets/stylesheets/decidim/modules/_flag.scss +9 -0
  301. data/decidim-core/app/assets/stylesheets/decidim/modules/_footer.scss +90 -0
  302. data/decidim-core/app/assets/stylesheets/decidim/modules/_forms.scss +30 -0
  303. data/decidim-core/app/assets/stylesheets/decidim/modules/_help.scss +14 -0
  304. data/decidim-core/app/assets/stylesheets/decidim/modules/_icons.scss +32 -0
  305. data/decidim-core/app/assets/stylesheets/decidim/modules/_layout.scss +56 -0
  306. data/decidim-core/app/assets/stylesheets/decidim/modules/_list-docs.scss +30 -0
  307. data/decidim-core/app/assets/stylesheets/decidim/modules/_main-container.scss +66 -0
  308. data/decidim-core/app/assets/stylesheets/decidim/modules/_map.scss +72 -0
  309. data/decidim-core/app/assets/stylesheets/decidim/modules/_margins.scss +16 -0
  310. data/decidim-core/app/assets/stylesheets/decidim/modules/_modules.scss +58 -0
  311. data/decidim-core/app/assets/stylesheets/decidim/modules/_navbar.scss +270 -0
  312. data/decidim-core/app/assets/stylesheets/decidim/modules/_opinion-toggle.scss +50 -0
  313. data/decidim-core/app/assets/stylesheets/decidim/modules/_order-by.scss +66 -0
  314. data/decidim-core/app/assets/stylesheets/decidim/modules/_pagination.scss +5 -0
  315. data/decidim-core/app/assets/stylesheets/decidim/modules/_process-header.scss +88 -0
  316. data/decidim-core/app/assets/stylesheets/decidim/modules/_process-info.scss +44 -0
  317. data/decidim-core/app/assets/stylesheets/decidim/modules/_process-nav.scss +97 -0
  318. data/decidim-core/app/assets/stylesheets/decidim/modules/_process-phase.scss +83 -0
  319. data/decidim-core/app/assets/stylesheets/decidim/modules/_reference.scss +6 -0
  320. data/decidim-core/app/assets/stylesheets/decidim/modules/_reveal.scss +20 -0
  321. data/decidim-core/app/assets/stylesheets/decidim/modules/_share.scss +28 -0
  322. data/decidim-core/app/assets/stylesheets/decidim/modules/_signup.scss +39 -0
  323. data/decidim-core/app/assets/stylesheets/decidim/modules/_static-pages.scss +46 -0
  324. data/decidim-core/app/assets/stylesheets/decidim/modules/_status-labels.scss +20 -0
  325. data/decidim-core/app/assets/stylesheets/decidim/modules/_tags.scss +29 -0
  326. data/decidim-core/app/assets/stylesheets/decidim/modules/_timeline.scss +171 -0
  327. data/decidim-core/app/assets/stylesheets/decidim/modules/_title-action.scss +28 -0
  328. data/decidim-core/app/assets/stylesheets/decidim/modules/_typography.scss +122 -0
  329. data/decidim-core/app/assets/stylesheets/decidim/modules/_user-form.scss +14 -0
  330. data/decidim-core/app/assets/stylesheets/decidim/modules/_video.scss +18 -0
  331. data/decidim-core/app/assets/stylesheets/decidim/plugins/_select2.scss +63 -0
  332. data/decidim-core/app/assets/stylesheets/decidim/utils/_fontface.scss +27 -0
  333. data/decidim-core/app/assets/stylesheets/decidim/utils/_helpers.scss +25 -0
  334. data/decidim-core/app/assets/stylesheets/decidim/utils/_keyframes.scss +21 -0
  335. data/decidim-core/app/assets/stylesheets/decidim/utils/_mixins.scss +41 -0
  336. data/decidim-core/app/assets/stylesheets/decidim/utils/_settings.scss +575 -0
  337. data/decidim-core/app/assets/stylesheets/decidim/utils/_toggle-expand.scss +8 -0
  338. data/decidim-core/app/commands/decidim/authorize_user.rb +59 -0
  339. data/decidim-core/app/commands/decidim/create_omniauth_registration.rb +96 -0
  340. data/decidim-core/app/commands/decidim/create_registration.rb +55 -0
  341. data/decidim-core/app/commands/decidim/create_report.rb +91 -0
  342. data/decidim-core/app/commands/decidim/destroy_account.rb +47 -0
  343. data/decidim-core/app/commands/decidim/invite_user.rb +56 -0
  344. data/decidim-core/app/commands/decidim/invite_user_again.rb +26 -0
  345. data/decidim-core/app/commands/decidim/remove_admin.rb +25 -0
  346. data/decidim-core/app/commands/decidim/update_account.rb +52 -0
  347. data/decidim-core/app/commands/decidim/update_notifications_settings.rb +32 -0
  348. data/decidim-core/app/constraints/decidim/current_feature.rb +42 -0
  349. data/decidim-core/app/constraints/decidim/current_participatory_process.rb +35 -0
  350. data/decidim-core/app/controllers/concerns/decidim/action_authorization.rb +74 -0
  351. data/decidim-core/app/controllers/concerns/decidim/devise_controllers.rb +36 -0
  352. data/decidim-core/app/controllers/concerns/decidim/filter_resource.rb +71 -0
  353. data/decidim-core/app/controllers/concerns/decidim/form_factory.rb +83 -0
  354. data/decidim-core/app/controllers/concerns/decidim/impersonate_users.rb +67 -0
  355. data/decidim-core/app/controllers/concerns/decidim/locale_switcher.rb +60 -0
  356. data/decidim-core/app/controllers/concerns/decidim/needs_authorization.rb +46 -0
  357. data/decidim-core/app/controllers/concerns/decidim/needs_organization.rb +42 -0
  358. data/decidim-core/app/controllers/concerns/decidim/needs_participatory_process.rb +46 -0
  359. data/decidim-core/app/controllers/concerns/decidim/paginable.rb +24 -0
  360. data/decidim-core/app/controllers/concerns/decidim/payload_info.rb +23 -0
  361. data/decidim-core/app/controllers/concerns/decidim/settings.rb +23 -0
  362. data/decidim-core/app/controllers/concerns/decidim/user_profile.rb +33 -0
  363. data/decidim-core/app/controllers/decidim/account_controller.rb +70 -0
  364. data/decidim-core/app/controllers/decidim/application_controller.rb +56 -0
  365. data/decidim-core/app/controllers/decidim/authorizations_controller.rb +90 -0
  366. data/decidim-core/app/controllers/decidim/cookie_policy_controller.rb +19 -0
  367. data/decidim-core/app/controllers/decidim/devise/confirmations_controller.rb +10 -0
  368. data/decidim-core/app/controllers/decidim/devise/invitations_controller.rb +30 -0
  369. data/decidim-core/app/controllers/decidim/devise/omniauth_registrations_controller.rb +95 -0
  370. data/decidim-core/app/controllers/decidim/devise/passwords_controller.rb +25 -0
  371. data/decidim-core/app/controllers/decidim/devise/registrations_controller.rb +67 -0
  372. data/decidim-core/app/controllers/decidim/devise/sessions_controller.rb +32 -0
  373. data/decidim-core/app/controllers/decidim/errors_controller.rb +15 -0
  374. data/decidim-core/app/controllers/decidim/features/base_controller.rb +56 -0
  375. data/decidim-core/app/controllers/decidim/locales_controller.rb +27 -0
  376. data/decidim-core/app/controllers/decidim/notifications_settings_controller.rb +30 -0
  377. data/decidim-core/app/controllers/decidim/own_user_groups_controller.rb +13 -0
  378. data/decidim-core/app/controllers/decidim/pages_controller.rb +42 -0
  379. data/decidim-core/app/controllers/decidim/participatory_process_groups_controller.rb +26 -0
  380. data/decidim-core/app/controllers/decidim/participatory_process_steps_controller.rb +18 -0
  381. data/decidim-core/app/controllers/decidim/participatory_process_widgets_controller.rb +19 -0
  382. data/decidim-core/app/controllers/decidim/participatory_processes_controller.rb +49 -0
  383. data/decidim-core/app/controllers/decidim/reports_controller.rb +33 -0
  384. data/decidim-core/app/controllers/decidim/scopes_controller.rb +29 -0
  385. data/decidim-core/app/controllers/decidim/static_map_controller.rb +17 -0
  386. data/decidim-core/app/controllers/decidim/widgets_controller.rb +34 -0
  387. data/decidim-core/app/forms/decidim/account_form.rb +42 -0
  388. data/decidim-core/app/forms/decidim/attachment_form.rb +14 -0
  389. data/decidim-core/app/forms/decidim/delete_account_form.rb +8 -0
  390. data/decidim-core/app/forms/decidim/form.rb +16 -0
  391. data/decidim-core/app/forms/decidim/invite_user_form.rb +48 -0
  392. data/decidim-core/app/forms/decidim/notifications_settings_form.rb +17 -0
  393. data/decidim-core/app/forms/decidim/omniauth_registration_form.rb +24 -0
  394. data/decidim-core/app/forms/decidim/registration_form.rb +55 -0
  395. data/decidim-core/app/forms/decidim/report_form.rb +13 -0
  396. data/decidim-core/app/forms/translatable_presence_validator.rb +31 -0
  397. data/decidim-core/app/helpers/decidim/action_authorization_helper.rb +88 -0
  398. data/decidim-core/app/helpers/decidim/application_helper.rb +28 -0
  399. data/decidim-core/app/helpers/decidim/aria_selected_link_to_helper.rb +27 -0
  400. data/decidim-core/app/helpers/decidim/attachments_helper.rb +27 -0
  401. data/decidim-core/app/helpers/decidim/authorization_form_helper.rb +26 -0
  402. data/decidim-core/app/helpers/decidim/cookies_helper.rb +11 -0
  403. data/decidim-core/app/helpers/decidim/decidim_form_helper.rb +116 -0
  404. data/decidim-core/app/helpers/decidim/feature_path_helper.rb +35 -0
  405. data/decidim-core/app/helpers/decidim/feature_reference_helper.rb +25 -0
  406. data/decidim-core/app/helpers/decidim/filters_helper.rb +21 -0
  407. data/decidim-core/app/helpers/decidim/humanize_booleans_helper.rb +15 -0
  408. data/decidim-core/app/helpers/decidim/icon_helper.rb +30 -0
  409. data/decidim-core/app/helpers/decidim/language_chooser_helper.rb +19 -0
  410. data/decidim-core/app/helpers/decidim/layout_helper.rb +78 -0
  411. data/decidim-core/app/helpers/decidim/localized_locales_helper.rb +44 -0
  412. data/decidim-core/app/helpers/decidim/map_helper.rb +42 -0
  413. data/decidim-core/app/helpers/decidim/menu_helper.rb +16 -0
  414. data/decidim-core/app/helpers/decidim/meta_tags_helper.rb +105 -0
  415. data/decidim-core/app/helpers/decidim/omniauth_helper.rb +24 -0
  416. data/decidim-core/app/helpers/decidim/orders_helper.rb +29 -0
  417. data/decidim-core/app/helpers/decidim/paginate_helper.rb +22 -0
  418. data/decidim-core/app/helpers/decidim/participatory_process_helper.rb +17 -0
  419. data/decidim-core/app/helpers/decidim/participatory_process_steps_helper.rb +18 -0
  420. data/decidim-core/app/helpers/decidim/replace_buttons_helper.rb +43 -0
  421. data/decidim-core/app/helpers/decidim/resource_helper.rb +73 -0
  422. data/decidim-core/app/helpers/decidim/scopes_helper.rb +15 -0
  423. data/decidim-core/app/helpers/decidim/translations_helper.rb +34 -0
  424. data/decidim-core/app/helpers/decidim/user_profile_helper.rb +24 -0
  425. data/decidim-core/app/helpers/decidim/widget_urls_helper.rb +11 -0
  426. data/decidim-core/app/jobs/decidim/application_job.rb +6 -0
  427. data/decidim-core/app/jobs/decidim/export_job.rb +22 -0
  428. data/decidim-core/app/mailers/concerns/decidim/localised_mailer.rb +30 -0
  429. data/decidim-core/app/mailers/decidim/application_mailer.rb +12 -0
  430. data/decidim-core/app/mailers/decidim/decidim_devise_mailer.rb +39 -0
  431. data/decidim-core/app/mailers/decidim/export_mailer.rb +30 -0
  432. data/decidim-core/app/mailers/decidim/newsletter_mailer.rb +25 -0
  433. data/decidim-core/app/mailers/decidim/reported_mailer.rb +42 -0
  434. data/decidim-core/app/middleware/decidim/current_organization.rb +55 -0
  435. data/decidim-core/app/models/decidim/abilities/admin_ability.rb +30 -0
  436. data/decidim-core/app/models/decidim/abilities/base_ability.rb +34 -0
  437. data/decidim-core/app/models/decidim/abilities/everyone_ability.rb +26 -0
  438. data/decidim-core/app/models/decidim/abilities/participatory_process_admin_ability.rb +28 -0
  439. data/decidim-core/app/models/decidim/abilities/participatory_process_collaborator_ability.rb +28 -0
  440. data/decidim-core/app/models/decidim/abilities/participatory_process_moderator_ability.rb +15 -0
  441. data/decidim-core/app/models/decidim/abilities/user_manager_ability.rb +35 -0
  442. data/decidim-core/app/models/decidim/application_record.rb +8 -0
  443. data/decidim-core/app/models/decidim/attachment.rb +57 -0
  444. data/decidim-core/app/models/decidim/authorization.rb +26 -0
  445. data/decidim-core/app/models/decidim/categorization.rb +8 -0
  446. data/decidim-core/app/models/decidim/category.rb +41 -0
  447. data/decidim-core/app/models/decidim/feature.rb +39 -0
  448. data/decidim-core/app/models/decidim/identity.rb +21 -0
  449. data/decidim-core/app/models/decidim/impersonation_log.rb +35 -0
  450. data/decidim-core/app/models/decidim/moderation.rb +12 -0
  451. data/decidim-core/app/models/decidim/newsletter.rb +26 -0
  452. data/decidim-core/app/models/decidim/organization.rb +37 -0
  453. data/decidim-core/app/models/decidim/participatory_process.rb +61 -0
  454. data/decidim-core/app/models/decidim/participatory_process_group.rb +15 -0
  455. data/decidim-core/app/models/decidim/participatory_process_step.rb +39 -0
  456. data/decidim-core/app/models/decidim/participatory_process_user_role.rb +22 -0
  457. data/decidim-core/app/models/decidim/report.rb +24 -0
  458. data/decidim-core/app/models/decidim/resource_link.rb +28 -0
  459. data/decidim-core/app/models/decidim/scope.rb +79 -0
  460. data/decidim-core/app/models/decidim/scope_type.rb +16 -0
  461. data/decidim-core/app/models/decidim/static_page.rb +57 -0
  462. data/decidim-core/app/models/decidim/user.rb +106 -0
  463. data/decidim-core/app/models/decidim/user_group.rb +45 -0
  464. data/decidim-core/app/models/decidim/user_group_membership.rb +9 -0
  465. data/decidim-core/app/presenters/decidim/home_stats_presenter.rb +81 -0
  466. data/decidim-core/app/presenters/decidim/menu_item_presenter.rb +57 -0
  467. data/decidim-core/app/presenters/decidim/menu_presenter.rb +47 -0
  468. data/decidim-core/app/presenters/decidim/participatory_process_stats_presenter.rb +50 -0
  469. data/decidim-core/app/presenters/decidim/resource_locator_presenter.rb +90 -0
  470. data/decidim-core/app/queries/decidim/freetext_scopes.rb +39 -0
  471. data/decidim-core/app/queries/decidim/highlighted_participatory_processes.rb +10 -0
  472. data/decidim-core/app/queries/decidim/organization_participatory_process_groups.rb +14 -0
  473. data/decidim-core/app/queries/decidim/organization_participatory_processes.rb +14 -0
  474. data/decidim-core/app/queries/decidim/organization_prioritized_participatory_processes.rb +18 -0
  475. data/decidim-core/app/queries/decidim/organization_published_participatory_processes.rb +17 -0
  476. data/decidim-core/app/queries/decidim/participatory_processes_with_user_role.rb +46 -0
  477. data/decidim-core/app/queries/decidim/prioritized_participatory_processes.rb +11 -0
  478. data/decidim-core/app/queries/decidim/promoted_participatory_processes.rb +10 -0
  479. data/decidim-core/app/queries/decidim/published_participatory_processes.rb +10 -0
  480. data/decidim-core/app/queries/decidim/stats_users_count.rb +25 -0
  481. data/decidim-core/app/services/decidim/action_authorizer.rb +103 -0
  482. data/decidim-core/app/services/decidim/authorization_handler.rb +92 -0
  483. data/decidim-core/app/services/decidim/resource_search.rb +69 -0
  484. data/decidim-core/app/services/decidim/static_map_generator.rb +48 -0
  485. data/decidim-core/app/uploaders/decidim/application_uploader.rb +17 -0
  486. data/decidim-core/app/uploaders/decidim/attachment_uploader.rb +73 -0
  487. data/decidim-core/app/uploaders/decidim/avatar_uploader.rb +22 -0
  488. data/decidim-core/app/uploaders/decidim/banner_image_uploader.rb +8 -0
  489. data/decidim-core/app/uploaders/decidim/hero_image_uploader.rb +8 -0
  490. data/decidim-core/app/uploaders/decidim/homepage_image_uploader.rb +16 -0
  491. data/decidim-core/app/uploaders/decidim/image_uploader.rb +47 -0
  492. data/decidim-core/app/uploaders/decidim/official_image_footer_uploader.rb +9 -0
  493. data/decidim-core/app/uploaders/decidim/official_image_header_uploader.rb +9 -0
  494. data/decidim-core/app/uploaders/decidim/organization_favicon_uploader.rb +18 -0
  495. data/decidim-core/app/uploaders/decidim/organization_logo_uploader.rb +10 -0
  496. data/decidim-core/app/validators/etiquette_validator.rb +42 -0
  497. data/decidim-core/app/validators/geocoding_validator.rb +22 -0
  498. data/decidim-core/app/views/decidim/account/_password_fields.html.erb +2 -0
  499. data/decidim-core/app/views/decidim/account/_user_groups.html.erb +0 -0
  500. data/decidim-core/app/views/decidim/account/delete.html.erb +30 -0
  501. data/decidim-core/app/views/decidim/account/show.html.erb +25 -0
  502. data/decidim-core/app/views/decidim/application/_attachments.html.erb +8 -0
  503. data/decidim-core/app/views/decidim/application/_documents.html.erb +28 -0
  504. data/decidim-core/app/views/decidim/application/_photos.html.erb +16 -0
  505. data/decidim-core/app/views/decidim/authorizations/first_login.html.erb +22 -0
  506. data/decidim-core/app/views/decidim/authorizations/index.html.erb +49 -0
  507. data/decidim-core/app/views/decidim/authorizations/new.html.erb +31 -0
  508. data/decidim-core/app/views/decidim/cookie_policy/accept.js.erb +3 -0
  509. data/decidim-core/app/views/decidim/devise/confirmations/new.html.erb +33 -0
  510. data/decidim-core/app/views/decidim/devise/invitations/edit.html.erb +29 -0
  511. data/decidim-core/app/views/decidim/devise/omniauth_registrations/new.html.erb +40 -0
  512. data/decidim-core/app/views/decidim/devise/passwords/edit.html.erb +35 -0
  513. data/decidim-core/app/views/decidim/devise/passwords/new.html.erb +31 -0
  514. data/decidim-core/app/views/decidim/devise/registrations/edit.html.erb +40 -0
  515. data/decidim-core/app/views/decidim/devise/registrations/new.html.erb +87 -0
  516. data/decidim-core/app/views/decidim/devise/sessions/new.html.erb +45 -0
  517. data/decidim-core/app/views/decidim/devise/shared/_links.html.erb +29 -0
  518. data/decidim-core/app/views/decidim/devise/shared/_omniauth_buttons.html.erb +21 -0
  519. data/decidim-core/app/views/decidim/devise/shared/_omniauth_buttons_mini.html.erb +20 -0
  520. data/decidim-core/app/views/decidim/errors/internal_server_error.html.erb +10 -0
  521. data/decidim-core/app/views/decidim/errors/not_found.html.erb +13 -0
  522. data/decidim-core/app/views/decidim/export_mailer/export.html.erb +1 -0
  523. data/decidim-core/app/views/decidim/newsletter_mailer/newsletter.html.erb +5 -0
  524. data/decidim-core/app/views/decidim/notifications_settings/show.html.erb +26 -0
  525. data/decidim-core/app/views/decidim/own_user_groups/index.html.erb +26 -0
  526. data/decidim-core/app/views/decidim/pages/index.html.erb +34 -0
  527. data/decidim-core/app/views/decidim/participatory_process_groups/_participatory_process_group.html.erb +22 -0
  528. data/decidim-core/app/views/decidim/participatory_process_groups/show.html.erb +11 -0
  529. data/decidim-core/app/views/decidim/participatory_process_steps/_participatory_process_step.html.erb +16 -0
  530. data/decidim-core/app/views/decidim/participatory_process_steps/_timeline.html.erb +7 -0
  531. data/decidim-core/app/views/decidim/participatory_process_steps/index.html.erb +14 -0
  532. data/decidim-core/app/views/decidim/participatory_process_widgets/show.html.erb +17 -0
  533. data/decidim-core/app/views/decidim/participatory_processes/_no_processes_yet.html.erb +3 -0
  534. data/decidim-core/app/views/decidim/participatory_processes/_order_by_processes.html.erb +3 -0
  535. data/decidim-core/app/views/decidim/participatory_processes/_participatory_process.html.erb +28 -0
  536. data/decidim-core/app/views/decidim/participatory_processes/_promoted_process.html.erb +32 -0
  537. data/decidim-core/app/views/decidim/participatory_processes/_statistics.html.erb +10 -0
  538. data/decidim-core/app/views/decidim/participatory_processes/index.html.erb +17 -0
  539. data/decidim-core/app/views/decidim/participatory_processes/show.html.erb +85 -0
  540. data/decidim-core/app/views/decidim/reported_mailer/hide.html.erb +9 -0
  541. data/decidim-core/app/views/decidim/reported_mailer/report.html.erb +9 -0
  542. data/decidim-core/app/views/decidim/shared/_action_authorization_modal.html.erb +55 -0
  543. data/decidim-core/app/views/decidim/shared/_address_details.html.erb +9 -0
  544. data/decidim-core/app/views/decidim/shared/_announcement.html.erb +5 -0
  545. data/decidim-core/app/views/decidim/shared/_comments.html.erb +0 -0
  546. data/decidim-core/app/views/decidim/shared/_embed_modal.html.erb +19 -0
  547. data/decidim-core/app/views/decidim/shared/_feature_announcement.html.erb +5 -0
  548. data/decidim-core/app/views/decidim/shared/_flag_modal.html.erb +20 -0
  549. data/decidim-core/app/views/decidim/shared/_login_modal.html.erb +33 -0
  550. data/decidim-core/app/views/decidim/shared/_orders.html.erb +16 -0
  551. data/decidim-core/app/views/decidim/shared/_results_per_page.html.erb +18 -0
  552. data/decidim-core/app/views/decidim/shared/_share_modal.html.erb +33 -0
  553. data/decidim-core/app/views/decidim/shared/_static_map.html.erb +17 -0
  554. data/decidim-core/app/views/decidim/shared/_tags.html.erb +10 -0
  555. data/decidim-core/app/views/decidim/widgets/show.js.erb +32 -0
  556. data/decidim-core/app/views/devise/mailer/confirmation_instructions.html.erb +4 -0
  557. data/decidim-core/app/views/devise/mailer/invitation_instructions.html.erb +13 -0
  558. data/decidim-core/app/views/devise/mailer/invitation_instructions.text.erb +11 -0
  559. data/decidim-core/app/views/devise/mailer/invite_admin.html.erb +17 -0
  560. data/decidim-core/app/views/devise/mailer/invite_admin.text.erb +15 -0
  561. data/decidim-core/app/views/devise/mailer/invite_collaborator.html.erb +17 -0
  562. data/decidim-core/app/views/devise/mailer/invite_collaborator.text.erb +15 -0
  563. data/decidim-core/app/views/devise/mailer/organization_admin_invitation_instructions.html.erb +10 -0
  564. data/decidim-core/app/views/devise/mailer/organization_admin_invitation_instructions.text.erb +11 -0
  565. data/decidim-core/app/views/devise/mailer/password_change.html.erb +3 -0
  566. data/decidim-core/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  567. data/decidim-core/app/views/kaminari/decidim/_first_page.html.erb +11 -0
  568. data/decidim-core/app/views/kaminari/decidim/_gap.html.erb +8 -0
  569. data/decidim-core/app/views/kaminari/decidim/_last_page.html.erb +11 -0
  570. data/decidim-core/app/views/kaminari/decidim/_next_page.html.erb +11 -0
  571. data/decidim-core/app/views/kaminari/decidim/_page.html.erb +12 -0
  572. data/decidim-core/app/views/kaminari/decidim/_paginator.html.erb +25 -0
  573. data/decidim-core/app/views/kaminari/decidim/_prev_page.html.erb +11 -0
  574. data/decidim-core/app/views/layouts/decidim/_application.html.erb +26 -0
  575. data/decidim-core/app/views/layouts/decidim/_cookie_warning.html.erb +8 -0
  576. data/decidim-core/app/views/layouts/decidim/_head.html.erb +24 -0
  577. data/decidim-core/app/views/layouts/decidim/_head_extra.html.erb +7 -0
  578. data/decidim-core/app/views/layouts/decidim/_impersonation_warning.html.erb +10 -0
  579. data/decidim-core/app/views/layouts/decidim/_language_chooser.html.erb +14 -0
  580. data/decidim-core/app/views/layouts/decidim/_logo.html.erb +31 -0
  581. data/decidim-core/app/views/layouts/decidim/_mailer_logo.html.erb +31 -0
  582. data/decidim-core/app/views/layouts/decidim/_process_header.html.erb +65 -0
  583. data/decidim-core/app/views/layouts/decidim/_process_header_steps.html.erb +27 -0
  584. data/decidim-core/app/views/layouts/decidim/_social_media_links.html.erb +39 -0
  585. data/decidim-core/app/views/layouts/decidim/_user_menu.html.erb +5 -0
  586. data/decidim-core/app/views/layouts/decidim/_wrapper.html.erb +110 -0
  587. data/decidim-core/app/views/layouts/decidim/application.html.erb +3 -0
  588. data/decidim-core/app/views/layouts/decidim/mailer.html.erb +119 -0
  589. data/decidim-core/app/views/layouts/decidim/participatory_process.html.erb +30 -0
  590. data/decidim-core/app/views/layouts/decidim/user_profile.html.erb +37 -0
  591. data/decidim-core/app/views/layouts/decidim/widget.html.erb +69 -0
  592. data/decidim-core/app/views/pages/decidim_page.html.erb +17 -0
  593. data/decidim-core/app/views/pages/home.html.erb +17 -0
  594. data/decidim-core/app/views/pages/home/_extended.html.erb +48 -0
  595. data/decidim-core/app/views/pages/home/_footer_sub_hero.html.erb +12 -0
  596. data/decidim-core/app/views/pages/home/_hero.html.erb +20 -0
  597. data/decidim-core/app/views/pages/home/_highlighted_processes.html.erb +37 -0
  598. data/decidim-core/app/views/pages/home/_statistics.html.erb +14 -0
  599. data/decidim-core/app/views/pages/home/_sub_hero.html.erb +11 -0
  600. data/decidim-core/bin/rails +15 -0
  601. data/decidim-core/config/i18n-tasks.yml +138 -0
  602. data/decidim-core/config/initializers/devise.rb +342 -0
  603. data/decidim-core/config/initializers/foundation_rails_helper.rb +3 -0
  604. data/decidim-core/config/initializers/invisible_captcha.rb +11 -0
  605. data/decidim-core/config/initializers/mail_previews.rb +5 -0
  606. data/decidim-core/config/locales/ca.yml +449 -0
  607. data/decidim-core/config/locales/en.yml +450 -0
  608. data/decidim-core/config/locales/es.yml +449 -0
  609. data/decidim-core/config/locales/eu.yml +404 -0
  610. data/decidim-core/config/locales/fi.yml +361 -0
  611. data/decidim-core/config/locales/fr.yml +443 -0
  612. data/decidim-core/config/locales/it.yml +325 -0
  613. data/decidim-core/config/locales/nl.yml +361 -0
  614. data/decidim-core/config/locales/pl.yml +91 -0
  615. data/decidim-core/config/routes.rb +69 -0
  616. data/decidim-core/config/secrets.yml +36 -0
  617. data/decidim-core/db/migrate/20160817115213_devise_create_decidim_users.rb +43 -0
  618. data/decidim-core/db/migrate/20160919104837_create_decidim_organizations.rb +19 -0
  619. data/decidim-core/db/migrate/20160920140207_devise_invitable_add_to_decidim_users.rb +25 -0
  620. data/decidim-core/db/migrate/20160920141039_user_belongs_to_organization.rb +7 -0
  621. data/decidim-core/db/migrate/20160920141151_user_has_roles.rb +7 -0
  622. data/decidim-core/db/migrate/20161005130108_add_participatory_processes.rb +19 -0
  623. data/decidim-core/db/migrate/20161005153007_add_description_to_organizations.rb +9 -0
  624. data/decidim-core/db/migrate/20161006085629_add_confirmable_to_devise.rb +16 -0
  625. data/decidim-core/db/migrate/20161010085443_add_name_to_users.rb +7 -0
  626. data/decidim-core/db/migrate/20161010102356_translate_processes.rb +17 -0
  627. data/decidim-core/db/migrate/20161010131544_add_locale_to_users.rb +7 -0
  628. data/decidim-core/db/migrate/20161011125616_add_hero_image_to_processes.rb +7 -0
  629. data/decidim-core/db/migrate/20161011141033_add_banner_image_to_processes.rb +7 -0
  630. data/decidim-core/db/migrate/20161013134732_add_promoted_flag_to_processes.rb +7 -0
  631. data/decidim-core/db/migrate/20161017085822_add_participatory_process_steps.rb +18 -0
  632. data/decidim-core/db/migrate/20161018091013_create_decidim_authorizations.rb +15 -0
  633. data/decidim-core/db/migrate/20161019072016_add_active_flag_to_step.rb +13 -0
  634. data/decidim-core/db/migrate/20161020080756_add_position_to_steps.rb +9 -0
  635. data/decidim-core/db/migrate/20161025125300_add_published_at_to_processes.rb +7 -0
  636. data/decidim-core/db/migrate/20161107152228_remove_not_null_on_step_position.rb +7 -0
  637. data/decidim-core/db/migrate/20161108093802_create_decidim_static_pages.rb +13 -0
  638. data/decidim-core/db/migrate/20161110092735_add_index_for_process_slug_organization.rb +10 -0
  639. data/decidim-core/db/migrate/20161110105712_create_decidim_features.rb +11 -0
  640. data/decidim-core/db/migrate/20161116115156_create_attachments.rb +18 -0
  641. data/decidim-core/db/migrate/20161123085134_add_categories.rb +12 -0
  642. data/decidim-core/db/migrate/20161130105257_create_decidim_scopes.rb +11 -0
  643. data/decidim-core/db/migrate/20161209134715_make_organization_description_optional.rb +7 -0
  644. data/decidim-core/db/migrate/20161213094244_add_avatar_to_users.rb +7 -0
  645. data/decidim-core/db/migrate/20161214152811_add_logo_to_organizations.rb +7 -0
  646. data/decidim-core/db/migrate/20170110133113_add_configuration_to_features.rb +9 -0
  647. data/decidim-core/db/migrate/20170110153807_add_handler_to_organization.rb +7 -0
  648. data/decidim-core/db/migrate/20170113150627_create_resource_links.rb +12 -0
  649. data/decidim-core/db/migrate/20170116110851_create_identities.rb +13 -0
  650. data/decidim-core/db/migrate/20170116135237_loosen_step_requirements.rb +8 -0
  651. data/decidim-core/db/migrate/20170117142904_add_uniqueness_field_to_authorizations.rb +9 -0
  652. data/decidim-core/db/migrate/20170119145359_create_user_groups.rb +13 -0
  653. data/decidim-core/db/migrate/20170119150255_create_user_group_memberships.rb +14 -0
  654. data/decidim-core/db/migrate/20170119150649_add_show_statistics_to_organization.rb +7 -0
  655. data/decidim-core/db/migrate/20170120120733_add_user_groups_verified.rb +7 -0
  656. data/decidim-core/db/migrate/20170123134023_make_attachments_polymorphic.rb +20 -0
  657. data/decidim-core/db/migrate/20170123140857_add_avatar_to_user_groups.rb +7 -0
  658. data/decidim-core/db/migrate/20170125135937_rename_attachable_to_attached_to.rb +13 -0
  659. data/decidim-core/db/migrate/20170125152026_add_weight_to_features.rb +7 -0
  660. data/decidim-core/db/migrate/20170126151123_add_extra_info_to_processes.rb +10 -0
  661. data/decidim-core/db/migrate/20170128140553_add_timestamps_to_identities.rb +7 -0
  662. data/decidim-core/db/migrate/20170130132833_add_favicon_to_decidim_organizations.rb +7 -0
  663. data/decidim-core/db/migrate/20170131134349_add_action_permissions_to_decidim_features.rb +7 -0
  664. data/decidim-core/db/migrate/20170202084913_add_comments_and_replies_notifications_to_users.rb +8 -0
  665. data/decidim-core/db/migrate/20170203150545_add_newsletter_notifications_to_users.rb +7 -0
  666. data/decidim-core/db/migrate/20170206083118_rename_extra_info_on_processes.rb +14 -0
  667. data/decidim-core/db/migrate/20170206142116_add_published_at_to_decidim_features.rb +8 -0
  668. data/decidim-core/db/migrate/20170207091021_add_social_media_handlers_to_organization.rb +10 -0
  669. data/decidim-core/db/migrate/20170207093048_add_organization_logo_and_url.rb +9 -0
  670. data/decidim-core/db/migrate/20170213081133_create_decidim_newsletters.rb +17 -0
  671. data/decidim-core/db/migrate/20170215115407_add_organization_custom_reference.rb +13 -0
  672. data/decidim-core/db/migrate/20170220110740_remove_steps_short_description.rb +23 -0
  673. data/decidim-core/db/migrate/20170221094835_add_scopes_to_processes.rb +8 -0
  674. data/decidim-core/db/migrate/20170228142440_add_participatory_process_groups.rb +17 -0
  675. data/decidim-core/db/migrate/20170306144354_add_secondary_hosts_to_organizations.rb +7 -0
  676. data/decidim-core/db/migrate/20170307084957_create_reports.rb +17 -0
  677. data/decidim-core/db/migrate/20170308091316_create_moderations.rb +14 -0
  678. data/decidim-core/db/migrate/20170313095436_add_available_authorizations_to_organization.rb +12 -0
  679. data/decidim-core/db/migrate/20170404132616_change_steps_end_and_start_date_to_date.rb +8 -0
  680. data/decidim-core/db/migrate/20170405091801_change_decidim_user_email_index_uniqueness.rb +8 -0
  681. data/decidim-core/db/migrate/20170405094028_add_organization_to_identities.rb +7 -0
  682. data/decidim-core/db/migrate/20170405094258_change_decidim_identities_provider_uid_index_uniqueness.rb +14 -0
  683. data/decidim-core/db/migrate/20170529150743_add_rejected_at_to_user_groups.rb +7 -0
  684. data/decidim-core/db/migrate/20170605140421_add_deleted_fields_to_users.rb +8 -0
  685. data/decidim-core/db/migrate/20170605162500_add_hierarchy_to_scopes.rb +70 -0
  686. data/decidim-core/db/migrate/20170606102659_set_email_unique_in_organization_conditional.rb +8 -0
  687. data/decidim-core/db/migrate/20170608142521_add_organization_to_user_groups.rb +27 -0
  688. data/decidim-core/db/migrate/20170612070905_add_uniqueness_to_name_and_document_number_to_user_groups.rb +8 -0
  689. data/decidim-core/db/migrate/20170612100253_create_decidim_categorizations.rb +12 -0
  690. data/decidim-core/db/migrate/20170713131206_add_admin_to_users.rb +13 -0
  691. data/decidim-core/db/migrate/20170713131308_migrate_user_roles_to_participatory_process_roles.rb +28 -0
  692. data/decidim-core/db/migrate/20170720135441_add_managed_to_users.rb +7 -0
  693. data/decidim-core/db/migrate/20170720140610_set_email_unique_in_organization_condition_for_managed_users.rb +12 -0
  694. data/decidim-core/db/migrate/20170724130558_create_impersonation_logs.rb +15 -0
  695. data/decidim-core/db/migrate/20170725085104_add_show_statistics_to_participatory_processes.rb +7 -0
  696. data/decidim-core/db/migrate/20170727125445_add_roles_to_users.rb +7 -0
  697. data/decidim-core/db/migrate/20170804125402_attachment_description_nullable.rb +7 -0
  698. data/decidim-core/db/migrate/20170808080905_add_announcement_to_participatory_processes.rb +7 -0
  699. data/decidim-core/db/migrate/20170809084005_add_scopes_enabled_to_participatory_processes.rb +7 -0
  700. data/decidim-core/db/seeds.rb +200 -0
  701. data/{decidim-dev/spec/support → decidim-core/db/seeds}/Exampledocument.pdf +0 -0
  702. data/{decidim-dev/spec/support → decidim-core/db/seeds}/city.jpeg +0 -0
  703. data/{decidim-dev/spec/support → decidim-core/db/seeds}/city2.jpeg +0 -0
  704. data/decidim-core/db/seeds/homepage_image.jpg +0 -0
  705. data/decidim-core/decidim-core.gemspec +60 -0
  706. data/decidim-core/lib/decidim/abilities.rb +7 -0
  707. data/decidim-core/lib/decidim/abilities/participatory_process_role_ability.rb +62 -0
  708. data/decidim-core/lib/decidim/attributes.rb +7 -0
  709. data/decidim-core/lib/decidim/attributes/time_with_zone.rb +14 -0
  710. data/decidim-core/lib/decidim/authorable.rb +33 -0
  711. data/decidim-core/lib/decidim/authorization_form_builder.rb +71 -0
  712. data/decidim-core/lib/decidim/core.rb +204 -0
  713. data/decidim-core/lib/decidim/core/api.rb +13 -0
  714. data/decidim-core/lib/decidim/core/api/author_interface.rb +18 -0
  715. data/decidim-core/lib/decidim/core/api/decidim_type.rb +17 -0
  716. data/decidim-core/lib/decidim/core/api/localized_string_type.rb +12 -0
  717. data/decidim-core/lib/decidim/core/api/process_step_type.rb +19 -0
  718. data/decidim-core/lib/decidim/core/api/process_type.rb +17 -0
  719. data/decidim-core/lib/decidim/core/api/session_type.rb +17 -0
  720. data/decidim-core/lib/decidim/core/api/translated_field_type.rb +43 -0
  721. data/decidim-core/lib/decidim/core/api/user_group_type.rb +35 -0
  722. data/decidim-core/lib/decidim/core/api/user_type.rb +33 -0
  723. data/decidim-core/lib/decidim/core/engine.rb +161 -0
  724. data/decidim-core/lib/decidim/core/test.rb +18 -0
  725. data/decidim-core/lib/decidim/core/test/factories.rb +360 -0
  726. data/decidim-core/lib/decidim/core/test/shared_examples/announcements_examples.rb +58 -0
  727. data/decidim-core/lib/decidim/core/test/shared_examples/authorable.rb +32 -0
  728. data/decidim-core/lib/decidim/core/test/shared_examples/comments_examples.rb +203 -0
  729. data/decidim-core/lib/decidim/core/test/shared_examples/errors.rb +21 -0
  730. data/decidim-core/lib/decidim/core/test/shared_examples/has_attachments.rb +25 -0
  731. data/decidim-core/lib/decidim/core/test/shared_examples/has_category.rb +11 -0
  732. data/decidim-core/lib/decidim/core/test/shared_examples/has_feature.rb +21 -0
  733. data/decidim-core/lib/decidim/core/test/shared_examples/has_reference.rb +43 -0
  734. data/decidim-core/lib/decidim/core/test/shared_examples/has_scope.rb +11 -0
  735. data/decidim-core/lib/decidim/core/test/shared_examples/localised_email.rb +25 -0
  736. data/decidim-core/lib/decidim/core/test/shared_examples/manage_moderations_examples.rb +69 -0
  737. data/decidim-core/lib/decidim/core/test/shared_examples/paginated_resource_examples.rb +26 -0
  738. data/decidim-core/lib/decidim/core/test/shared_examples/process_announcements_examples.rb +33 -0
  739. data/decidim-core/lib/decidim/core/test/shared_examples/publicable.rb +27 -0
  740. data/decidim-core/lib/decidim/core/test/shared_examples/reportable.rb +45 -0
  741. data/decidim-core/lib/decidim/core/test/shared_examples/reports_examples.rb +64 -0
  742. data/decidim-core/lib/decidim/core/version.rb +25 -0
  743. data/decidim-core/lib/decidim/devise_failure_app.rb +36 -0
  744. data/decidim-core/lib/decidim/exporters.rb +11 -0
  745. data/decidim-core/lib/decidim/exporters/csv.rb +55 -0
  746. data/decidim-core/lib/decidim/exporters/export_data.rb +23 -0
  747. data/decidim-core/lib/decidim/exporters/exporter.rb +29 -0
  748. data/decidim-core/lib/decidim/exporters/json.rb +23 -0
  749. data/decidim-core/lib/decidim/exporters/serializer.rb +30 -0
  750. data/decidim-core/lib/decidim/faker/localized.rb +163 -0
  751. data/decidim-core/lib/decidim/feature_manifest.rb +193 -0
  752. data/decidim-core/lib/decidim/feature_validator.rb +22 -0
  753. data/decidim-core/lib/decidim/features.rb +9 -0
  754. data/decidim-core/lib/decidim/features/export_manifest.rb +52 -0
  755. data/decidim-core/lib/decidim/features/namer.rb +35 -0
  756. data/decidim-core/lib/decidim/file_zipper.rb +29 -0
  757. data/decidim-core/lib/decidim/filter_form_builder.rb +64 -0
  758. data/decidim-core/lib/decidim/form_builder.rb +499 -0
  759. data/decidim-core/lib/decidim/has_attachments.rb +33 -0
  760. data/decidim-core/lib/decidim/has_category.rb +24 -0
  761. data/decidim-core/lib/decidim/has_feature.rb +22 -0
  762. data/decidim-core/lib/decidim/has_reference.rb +40 -0
  763. data/decidim-core/lib/decidim/has_scope.rb +25 -0
  764. data/decidim-core/lib/decidim/has_settings.rb +66 -0
  765. data/decidim-core/lib/decidim/i18n_exceptions.rb +17 -0
  766. data/decidim-core/lib/decidim/manifest_registry.rb +45 -0
  767. data/decidim-core/lib/decidim/menu.rb +61 -0
  768. data/decidim-core/lib/decidim/menu_item.rb +31 -0
  769. data/decidim-core/lib/decidim/menu_registry.rb +65 -0
  770. data/decidim-core/lib/decidim/notifiable.rb +22 -0
  771. data/decidim-core/lib/decidim/page_finder.rb +49 -0
  772. data/decidim-core/lib/decidim/publicable.rb +49 -0
  773. data/decidim-core/lib/decidim/query_extensions.rb +38 -0
  774. data/decidim-core/lib/decidim/reportable.rb +47 -0
  775. data/decidim-core/lib/decidim/resource_manifest.rb +74 -0
  776. data/decidim-core/lib/decidim/resourceable.rb +112 -0
  777. data/decidim-core/lib/decidim/scopable.rb +33 -0
  778. data/decidim-core/lib/decidim/settings_manifest.rb +104 -0
  779. data/decidim-core/lib/decidim/stats_registry.rb +111 -0
  780. data/decidim-core/lib/decidim/translatable_attributes.rb +64 -0
  781. data/decidim-core/lib/devise/models/decidim_validatable.rb +68 -0
  782. data/decidim-core/lib/tasks/decidim_tasks.rake +6 -0
  783. data/decidim-core/spec/assets/avatar.jpg +0 -0
  784. data/decidim-core/spec/commands/decidim/authorize_user_spec.rb +74 -0
  785. data/decidim-core/spec/commands/decidim/create_omniauth_registration_spec.rb +131 -0
  786. data/decidim-core/spec/commands/decidim/create_registration_spec.rb +131 -0
  787. data/decidim-core/spec/commands/decidim/create_report_spec.rb +99 -0
  788. data/decidim-core/spec/commands/decidim/destroy_account_spec.rb +74 -0
  789. data/decidim-core/spec/commands/decidim/invite_user_again_spec.rb +43 -0
  790. data/decidim-core/spec/commands/decidim/invite_user_spec.rb +100 -0
  791. data/decidim-core/spec/commands/decidim/remove_admin_spec.rb +31 -0
  792. data/decidim-core/spec/commands/decidim/update_account_spec.rb +122 -0
  793. data/decidim-core/spec/commands/decidim/update_notifications_settings_spec.rb +49 -0
  794. data/decidim-core/spec/controllers/authorizations_controller_spec.rb +36 -0
  795. data/decidim-core/spec/controllers/concerns/form_factory_spec.rb +92 -0
  796. data/decidim-core/spec/controllers/concerns/settings_spec.rb +45 -0
  797. data/decidim-core/spec/controllers/locales_controller_spec.rb +70 -0
  798. data/decidim-core/spec/controllers/omniauth_registrations_controller_spec.rb +44 -0
  799. data/decidim-core/spec/controllers/pages_controller_spec.rb +38 -0
  800. data/decidim-core/spec/controllers/participatory_processes_controller_spec.rb +117 -0
  801. data/decidim-core/spec/controllers/registrations_controller_spec.rb +57 -0
  802. data/decidim-core/spec/controllers/scopes_controller_spec.rb +97 -0
  803. data/decidim-core/spec/controllers/sessions_controller_spec.rb +60 -0
  804. data/decidim-core/spec/controllers/static_map_controller_spec.rb +37 -0
  805. data/decidim-core/spec/factories.rb +7 -0
  806. data/decidim-core/spec/factory_lint_spec.rb +9 -0
  807. data/decidim-core/spec/features/account_spec.rb +159 -0
  808. data/decidim-core/spec/features/authentication_spec.rb +433 -0
  809. data/decidim-core/spec/features/authorizations_spec.rb +139 -0
  810. data/decidim-core/spec/features/components_spec.rb +23 -0
  811. data/decidim-core/spec/features/cookies_spec.rb +25 -0
  812. data/decidim-core/spec/features/homepage_spec.rb +172 -0
  813. data/decidim-core/spec/features/locales_spec.rb +53 -0
  814. data/decidim-core/spec/features/menu_spec.rb +59 -0
  815. data/decidim-core/spec/features/participatory_process_groups_spec.rb +80 -0
  816. data/decidim-core/spec/features/participatory_process_steps_spec.rb +34 -0
  817. data/decidim-core/spec/features/participatory_processes_spec.rb +151 -0
  818. data/decidim-core/spec/features/user_groups_spec.rb +65 -0
  819. data/decidim-core/spec/forms/account_form_spec.rb +71 -0
  820. data/decidim-core/spec/forms/attachment_form_spec.rb +43 -0
  821. data/decidim-core/spec/forms/invite_user_form_spec.rb +64 -0
  822. data/decidim-core/spec/forms/notifications_settings_form_spec.rb +53 -0
  823. data/decidim-core/spec/forms/omniauth_registration_form_spec.rb +57 -0
  824. data/decidim-core/spec/forms/registration_form_spec.rb +125 -0
  825. data/decidim-core/spec/forms/report_form_spec.rb +29 -0
  826. data/decidim-core/spec/forms/translatable_presence_validator_spec.rb +52 -0
  827. data/decidim-core/spec/helpers/decidim/action_authorization_helper_spec.rb +151 -0
  828. data/decidim-core/spec/helpers/decidim/application_helper_spec.rb +40 -0
  829. data/decidim-core/spec/helpers/decidim/authorization_form_helper_spec.rb +44 -0
  830. data/decidim-core/spec/helpers/decidim/decidim_form_helper_spec.rb +51 -0
  831. data/decidim-core/spec/helpers/decidim/feature_path_helper_spec.rb +26 -0
  832. data/decidim-core/spec/helpers/decidim/filters_helper_spec.rb +44 -0
  833. data/decidim-core/spec/helpers/decidim/icon_helper_spec.rb +31 -0
  834. data/decidim-core/spec/helpers/decidim/omniauth_helper_spec.rb +50 -0
  835. data/decidim-core/spec/helpers/decidim/participatory_process_helper_spec.rb +41 -0
  836. data/decidim-core/spec/helpers/decidim/replace_buttons_helper_spec.rb +26 -0
  837. data/decidim-core/spec/helpers/decidim/resource_helper_spec.rb +76 -0
  838. data/decidim-core/spec/helpers/decidim/scopes_helper_spec.rb +40 -0
  839. data/decidim-core/spec/helpers/decidim/translations_helper_spec.rb +49 -0
  840. data/decidim-core/spec/helpers/decidim/widget_urls_helper_spec.rb +14 -0
  841. data/decidim-core/spec/i18n_spec.rb +7 -0
  842. data/decidim-core/spec/lib/attributes/time_with_timezone_spec.rb +41 -0
  843. data/decidim-core/spec/lib/authorization_form_builder_spec.rb +63 -0
  844. data/decidim-core/spec/lib/decidim_spec.rb +9 -0
  845. data/decidim-core/spec/lib/exporters/csv_spec.rb +39 -0
  846. data/decidim-core/spec/lib/exporters/json_spec.rb +34 -0
  847. data/decidim-core/spec/lib/exporters/serializer_spec.rb +14 -0
  848. data/decidim-core/spec/lib/faker_localized_spec.rb +70 -0
  849. data/decidim-core/spec/lib/feature_manifest_spec.rb +109 -0
  850. data/decidim-core/spec/lib/features/current_feature_spec.rb +102 -0
  851. data/decidim-core/spec/lib/features/export_manifest_spec.rb +42 -0
  852. data/decidim-core/spec/lib/file_zipper_spec.rb +29 -0
  853. data/decidim-core/spec/lib/filter_form_builder_spec.rb +68 -0
  854. data/decidim-core/spec/lib/form_builder_spec.rb +479 -0
  855. data/decidim-core/spec/lib/page_finder_spec.rb +58 -0
  856. data/decidim-core/spec/lib/resource_manifest_spec.rb +58 -0
  857. data/decidim-core/spec/lib/resourceable_spec.rb +105 -0
  858. data/decidim-core/spec/lib/seed_spec.rb +40 -0
  859. data/decidim-core/spec/lib/settings_manifest_spec.rb +79 -0
  860. data/decidim-core/spec/lib/stats_registry_spec.rb +111 -0
  861. data/decidim-core/spec/lib/translatable_attributes_spec.rb +58 -0
  862. data/decidim-core/spec/mailers/decidim_devise_mailer_spec.rb +54 -0
  863. data/decidim-core/spec/mailers/export_mailer_spec.rb +40 -0
  864. data/decidim-core/spec/mailers/newsletter_mailer_spec.rb +37 -0
  865. data/decidim-core/spec/mailers/previews/devise_mailer_preview.rb +13 -0
  866. data/decidim-core/spec/mailers/reported_mailer_spec.rb +38 -0
  867. data/decidim-core/spec/middleware/decidim/current_organization_spec.rb +42 -0
  868. data/decidim-core/spec/models/decidim/abilities/admin_ability_spec.rb +23 -0
  869. data/decidim-core/spec/models/decidim/abilities/base_ability_spec.rb +45 -0
  870. data/decidim-core/spec/models/decidim/abilities/everyone_ability_spec.rb +17 -0
  871. data/decidim-core/spec/models/decidim/abilities/participatory_process_admin_ability_spec.rb +23 -0
  872. data/decidim-core/spec/models/decidim/abilities/participatory_process_collaborator_ability_spec.rb +25 -0
  873. data/decidim-core/spec/models/decidim/attachment_spec.rb +89 -0
  874. data/decidim-core/spec/models/decidim/authorization_spec.rb +13 -0
  875. data/decidim-core/spec/models/decidim/category_spec.rb +40 -0
  876. data/decidim-core/spec/models/decidim/feature_spec.rb +14 -0
  877. data/decidim-core/spec/models/decidim/identity_spec.rb +56 -0
  878. data/decidim-core/spec/models/decidim/impersonation_log_spec.rb +28 -0
  879. data/decidim-core/spec/models/decidim/organization_spec.rb +39 -0
  880. data/decidim-core/spec/models/decidim/participatory_process_spec.rb +29 -0
  881. data/decidim-core/spec/models/decidim/participatory_process_step_spec.rb +120 -0
  882. data/decidim-core/spec/models/decidim/participatory_process_user_role_spec.rb +62 -0
  883. data/decidim-core/spec/models/decidim/resource_link_spec.rb +56 -0
  884. data/decidim-core/spec/models/decidim/scope_spec.rb +87 -0
  885. data/decidim-core/spec/models/decidim/scope_type_spec.rb +28 -0
  886. data/decidim-core/spec/models/decidim/static_page_spec.rb +104 -0
  887. data/decidim-core/spec/models/decidim/user_group_membership_spec.rb +21 -0
  888. data/decidim-core/spec/models/decidim/user_group_spec.rb +59 -0
  889. data/decidim-core/spec/models/decidim/user_spec.rb +91 -0
  890. data/decidim-core/spec/presenters/decidim/home_stats_presenter_spec.rb +76 -0
  891. data/decidim-core/spec/presenters/decidim/menu_item_presenter_spec.rb +19 -0
  892. data/decidim-core/spec/presenters/decidim/menu_presenter_spec.rb +60 -0
  893. data/decidim-core/spec/presenters/decidim/participatory_process_stats_presenter.spec.rb +44 -0
  894. data/decidim-core/spec/presenters/decidim/resource_locator_presenter_spec.rb +33 -0
  895. data/decidim-core/spec/queries/decidim/organization_participatory_process_groups_spec.rb +27 -0
  896. data/decidim-core/spec/queries/decidim/organization_participatory_processes_spec.rb +26 -0
  897. data/decidim-core/spec/queries/decidim/organization_prioritized_participatory_processes_spec.rb +48 -0
  898. data/decidim-core/spec/queries/decidim/organization_published_participatory_processes_spec.rb +40 -0
  899. data/decidim-core/spec/queries/decidim/participatory_processes_with_user_role_spec.rb +31 -0
  900. data/decidim-core/spec/queries/decidim/stats_users_count_spec.rb +42 -0
  901. data/decidim-core/spec/routing/feature_routes_spec.rb +15 -0
  902. data/decidim-core/spec/services/decidim/action_authorizer_spec.rb +130 -0
  903. data/decidim-core/spec/services/decidim/authorization_handler_spec.rb +72 -0
  904. data/decidim-core/spec/services/decidim/dummy_authorization_handler_spec.rb +43 -0
  905. data/decidim-core/spec/services/decidim/static_map_generator_spec.rb +28 -0
  906. data/decidim-core/spec/shared/with_promoted_participatory_processes_examples.rb +58 -0
  907. data/decidim-core/spec/spec_helper.rb +9 -0
  908. data/decidim-core/spec/types/decidim_type_spec.rb +30 -0
  909. data/decidim-core/spec/types/localized_string_type_spec.rb +30 -0
  910. data/decidim-core/spec/types/process_step_type_spec.rb +42 -0
  911. data/decidim-core/spec/types/process_type_spec.rb +39 -0
  912. data/decidim-core/spec/types/translated_field_type_spec.rb +68 -0
  913. data/decidim-core/spec/types/user_group_type_spec.rb +56 -0
  914. data/decidim-core/spec/types/user_type_spec.rb +44 -0
  915. data/decidim-core/spec/validators/etiquette_validator_spec.rb +63 -0
  916. data/decidim-core/spec/validators/geocoding_validator_spec.rb +57 -0
  917. data/decidim-core/spec/views/decidim/authorizations/new.html.erb_spec.rb +37 -0
  918. data/decidim-core/vendor/assets/javascripts/appendAround.js +41 -0
  919. data/decidim-core/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.ca.js +17 -0
  920. data/decidim-core/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.es.js +14 -0
  921. data/decidim-core/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.eu.js +15 -0
  922. data/decidim-core/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.fi.js +14 -0
  923. data/decidim-core/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.fr.js +14 -0
  924. data/decidim-core/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.it.js +14 -0
  925. data/decidim-core/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.nl.js +14 -0
  926. data/decidim-core/vendor/assets/javascripts/form_datepicker.js.es6 +32 -0
  927. data/decidim-core/vendor/assets/javascripts/foundation-datepicker.js +1417 -0
  928. data/decidim-core/vendor/assets/javascripts/leaflet-svg-icon.js +179 -0
  929. data/decidim-core/vendor/assets/javascripts/leaflet-tilelayer-here.js +166 -0
  930. data/decidim-core/vendor/assets/javascripts/leaflet.js +9 -0
  931. data/decidim-core/vendor/assets/javascripts/leaflet.markercluster.js +7 -0
  932. data/decidim-core/vendor/assets/javascripts/modernizr.js +3 -0
  933. data/decidim-core/vendor/assets/javascripts/morphdom.js +679 -0
  934. data/decidim-core/vendor/assets/javascripts/quill.min.js +8 -0
  935. data/decidim-core/vendor/assets/javascripts/quill.min.js.map +1 -0
  936. data/decidim-core/vendor/assets/javascripts/svg4everybody.min.js +2 -0
  937. data/decidim-core/vendor/assets/stylesheets/MarkerCluster.Default.css +60 -0
  938. data/decidim-core/vendor/assets/stylesheets/MarkerCluster.css +14 -0
  939. data/decidim-core/vendor/assets/stylesheets/leaflet.css +624 -0
  940. data/decidim-core/vendor/assets/stylesheets/quill.bubble.css +938 -0
  941. data/decidim-core/vendor/assets/stylesheets/quill.core.css +387 -0
  942. data/decidim-core/vendor/assets/stylesheets/quill.snow.css +931 -0
  943. data/decidim-dev/config/locales/ca.yml +1 -1
  944. data/decidim-dev/config/locales/es.yml +1 -1
  945. data/decidim-dev/config/locales/eu.yml +1 -1
  946. data/decidim-dev/config/locales/fi.yml +1 -1
  947. data/decidim-dev/config/locales/fr.yml +1 -1
  948. data/decidim-dev/config/locales/it.yml +1 -1
  949. data/decidim-dev/config/locales/nl.yml +1 -1
  950. data/decidim-dev/config/locales/pl.yml +6 -0
  951. data/decidim-dev/decidim-dev.gemspec +1 -1
  952. data/decidim-dev/lib/decidim/dev/test/authorization_shared_examples.rb +1 -7
  953. data/decidim-dev/lib/decidim/dev/test/base_spec_helper.rb +5 -27
  954. data/decidim-dev/lib/decidim/dev/test/i18n_shared_examples.rb +1 -1
  955. data/decidim-dev/lib/decidim/dev/test/rspec_support/attachments.rb +13 -0
  956. data/decidim-dev/lib/decidim/dev/test/rspec_support/authenticated_controller_context.rb +1 -1
  957. data/decidim-dev/lib/decidim/dev/test/rspec_support/capybara.rb +3 -9
  958. data/decidim-dev/lib/decidim/dev/test/rspec_support/capybara_select2.rb +35 -0
  959. data/decidim-dev/lib/decidim/dev/test/rspec_support/comments.rb +19 -0
  960. data/decidim-dev/lib/decidim/dev/test/rspec_support/feature.rb +2 -0
  961. data/decidim-dev/lib/decidim/dev/test/rspec_support/feature_context.rb +12 -3
  962. data/decidim-dev/lib/decidim/dev/test/rspec_support/helpers.rb +0 -10
  963. data/decidim-dev/lib/decidim/dev/test/rspec_support/phantomjs_polyfills/phantomjs-getOwnPropertyNames.js +1 -1
  964. data/decidim-dev/lib/decidim/dev/test/rspec_support/phantomjs_polyfills/phantomjs-shim.js +10 -0
  965. data/decidim-dev/lib/decidim/dev/test/rspec_support/translation_helpers.rb +21 -5
  966. data/decidim-dev/lib/decidim/dev/test/spec_helper.rb +2 -1
  967. data/decidim-dev/lib/generators/decidim/dummy_generator.rb +12 -0
  968. data/decidim-dev/lib/generators/decidim/templates/no_animations.rb +54 -0
  969. data/decidim-dev/spec/i18n_spec.rb +1 -1
  970. data/decidim-meetings/app/assets/images/decidim/meetings/icon.svg +1 -1
  971. data/decidim-meetings/app/controllers/decidim/meetings/admin/meeting_closes_controller.rb +0 -1
  972. data/decidim-meetings/app/controllers/decidim/meetings/meeting_widgets_controller.rb +0 -5
  973. data/decidim-meetings/app/forms/decidim/meetings/admin/meeting_form.rb +3 -5
  974. data/decidim-meetings/app/views/decidim/meetings/admin/meetings/_form.html.erb +3 -3
  975. data/decidim-meetings/app/views/decidim/meetings/meetings/_datetime.html.erb +1 -1
  976. data/decidim-meetings/app/views/decidim/meetings/meetings/_filters.html.erb +2 -2
  977. data/decidim-meetings/app/views/decidim/meetings/meetings/_filters_small_view.html.erb +1 -1
  978. data/decidim-meetings/app/views/decidim/meetings/meetings/_meetings.html.erb +1 -1
  979. data/decidim-meetings/app/views/decidim/meetings/meetings/index.html.erb +2 -0
  980. data/decidim-meetings/app/views/decidim/meetings/meetings/index.js.erb +4 -0
  981. data/decidim-meetings/app/views/decidim/meetings/meetings/show.html.erb +1 -1
  982. data/decidim-meetings/config/i18n-tasks.yml +3 -0
  983. data/decidim-meetings/config/locales/ca.yml +2 -1
  984. data/decidim-meetings/config/locales/en.yml +6 -0
  985. data/decidim-meetings/config/locales/es.yml +2 -1
  986. data/decidim-meetings/config/locales/eu.yml +1 -1
  987. data/decidim-meetings/config/locales/fi.yml +1 -1
  988. data/decidim-meetings/config/locales/fr.yml +1 -1
  989. data/decidim-meetings/config/locales/it.yml +1 -1
  990. data/decidim-meetings/config/locales/nl.yml +1 -1
  991. data/decidim-meetings/config/locales/pl.yml +63 -0
  992. data/decidim-meetings/lib/decidim/meetings/feature.rb +17 -1
  993. data/decidim-meetings/spec/features/admin_manages_meetings_spec.rb +1 -0
  994. data/decidim-meetings/spec/features/explore_meetings_spec.rb +5 -5
  995. data/decidim-meetings/spec/features/process_admin_manages_meetings_spec.rb +1 -0
  996. data/decidim-meetings/spec/forms/close_meeting_form_spec.rb +0 -3
  997. data/decidim-meetings/spec/i18n_spec.rb +1 -1
  998. data/decidim-meetings/spec/shared/manage_attachments_examples.rb +1 -1
  999. data/decidim-meetings/spec/shared/manage_meetings_examples.rb +4 -5
  1000. data/decidim-pages/app/assets/images/decidim/pages/icon.svg +1 -1
  1001. data/decidim-pages/app/views/decidim/pages/admin/pages/_form.html.erb +1 -1
  1002. data/decidim-pages/app/views/decidim/pages/application/show.html.erb +2 -0
  1003. data/decidim-pages/config/locales/ca.yml +1 -1
  1004. data/decidim-pages/config/locales/en.yml +2 -0
  1005. data/decidim-pages/config/locales/es.yml +1 -1
  1006. data/decidim-pages/config/locales/eu.yml +1 -1
  1007. data/decidim-pages/config/locales/fi.yml +1 -1
  1008. data/decidim-pages/config/locales/fr.yml +1 -1
  1009. data/decidim-pages/config/locales/it.yml +1 -1
  1010. data/decidim-pages/config/locales/nl.yml +1 -1
  1011. data/decidim-pages/config/locales/pl.yml +5 -0
  1012. data/decidim-pages/lib/decidim/pages/feature.rb +2 -0
  1013. data/decidim-pages/spec/commands/copy_page_spec.rb +1 -1
  1014. data/decidim-pages/spec/commands/create_page_spec.rb +1 -1
  1015. data/decidim-pages/spec/commands/destroy_page_spec.rb +1 -1
  1016. data/decidim-pages/spec/commands/update_page_spec.rb +1 -1
  1017. data/decidim-pages/spec/features/admin_spec.rb +8 -0
  1018. data/decidim-pages/spec/i18n_spec.rb +1 -1
  1019. data/decidim-proposals/app/assets/images/decidim/proposals/icon.svg +1 -1
  1020. data/decidim-proposals/app/assets/javascripts/decidim/proposals/add_proposal.js.es6 +2 -0
  1021. data/decidim-proposals/app/commands/decidim/proposals/admin/create_proposal.rb +44 -3
  1022. data/decidim-proposals/app/commands/decidim/proposals/create_proposal.rb +43 -2
  1023. data/decidim-proposals/app/controllers/decidim/proposals/admin/proposals_controller.rb +3 -1
  1024. data/decidim-proposals/app/controllers/decidim/proposals/proposals_controller.rb +3 -1
  1025. data/decidim-proposals/app/forms/decidim/proposals/admin/proposal_form.rb +2 -1
  1026. data/decidim-proposals/app/forms/decidim/proposals/proposal_form.rb +2 -1
  1027. data/decidim-proposals/app/models/decidim/proposals/proposal.rb +1 -0
  1028. data/decidim-proposals/app/views/decidim/proposals/admin/proposals/_form.html.erb +19 -2
  1029. data/decidim-proposals/app/views/decidim/proposals/admin/proposals/index.html.erb +12 -8
  1030. data/decidim-proposals/app/views/decidim/proposals/proposals/_filters.html.erb +2 -2
  1031. data/decidim-proposals/app/views/decidim/proposals/proposals/_filters_small_view.html.erb +1 -1
  1032. data/decidim-proposals/app/views/decidim/proposals/proposals/_proposal.html.erb +1 -1
  1033. data/decidim-proposals/app/views/decidim/proposals/proposals/index.html.erb +2 -0
  1034. data/decidim-proposals/app/views/decidim/proposals/proposals/index.js.erb +1 -1
  1035. data/decidim-proposals/app/views/decidim/proposals/proposals/new.html.erb +22 -2
  1036. data/decidim-proposals/app/views/decidim/proposals/proposals/show.html.erb +2 -1
  1037. data/decidim-proposals/config/i18n-tasks.yml +1 -1
  1038. data/decidim-proposals/config/locales/ca.yml +2 -1
  1039. data/decidim-proposals/config/locales/en.yml +7 -0
  1040. data/decidim-proposals/config/locales/es.yml +2 -1
  1041. data/decidim-proposals/config/locales/eu.yml +1 -1
  1042. data/decidim-proposals/config/locales/fi.yml +1 -1
  1043. data/decidim-proposals/config/locales/fr.yml +1 -1
  1044. data/decidim-proposals/config/locales/it.yml +1 -1
  1045. data/decidim-proposals/config/locales/nl.yml +1 -1
  1046. data/decidim-proposals/config/locales/pl.yml +5 -0
  1047. data/decidim-proposals/lib/decidim/proposals/feature.rb +13 -3
  1048. data/decidim-proposals/lib/decidim/proposals/test/factories.rb +8 -0
  1049. data/decidim-proposals/spec/controllers/concerns/{orderable_test.rb → orderable_spec.rb} +1 -1
  1050. data/decidim-proposals/spec/controllers/decidim/admin/proposal_answers_controller_spec.rb +0 -1
  1051. data/decidim-proposals/spec/features/admin_manages_proposals_spec.rb +2 -0
  1052. data/decidim-proposals/spec/features/process_admin_manages_proposals_spec.rb +2 -0
  1053. data/decidim-proposals/spec/features/proposals_spec.rb +97 -30
  1054. data/decidim-proposals/spec/i18n_spec.rb +1 -1
  1055. data/decidim-proposals/spec/services/decidim/proposals/proposal_search_spec.rb +25 -6
  1056. data/decidim-proposals/spec/shared/create_proposal_examples.rb +35 -3
  1057. data/decidim-proposals/spec/shared/export_proposals_examples.rb +1 -2
  1058. data/decidim-proposals/spec/shared/manage_proposals_examples.rb +37 -6
  1059. data/decidim-proposals/spec/shared/proposal_form_examples.rb +13 -3
  1060. data/decidim-proposals/spec/shared/proposals_help_texts_examples.rb +33 -0
  1061. data/decidim-results/app/assets/images/decidim/results/icon.svg +1 -1
  1062. data/decidim-results/app/forms/decidim/results/admin/result_form.rb +1 -1
  1063. data/decidim-results/app/views/decidim/results/admin/results/_form.html.erb +4 -4
  1064. data/decidim-results/app/views/decidim/results/results/_filters.html.erb +2 -2
  1065. data/decidim-results/app/views/decidim/results/results/_filters_small_view.html.erb +1 -1
  1066. data/decidim-results/app/views/decidim/results/results/_results.html.erb +1 -1
  1067. data/decidim-results/app/views/decidim/results/results/index.html.erb +2 -0
  1068. data/decidim-results/app/views/decidim/results/results/index.js.erb +3 -0
  1069. data/decidim-results/app/views/decidim/results/results/show.html.erb +1 -1
  1070. data/decidim-results/config/i18n-tasks.yml +2 -0
  1071. data/decidim-results/config/locales/ca.yml +2 -1
  1072. data/decidim-results/config/locales/en.yml +3 -0
  1073. data/decidim-results/config/locales/es.yml +2 -1
  1074. data/decidim-results/config/locales/eu.yml +1 -1
  1075. data/decidim-results/config/locales/fi.yml +1 -1
  1076. data/decidim-results/config/locales/fr.yml +1 -1
  1077. data/decidim-results/config/locales/it.yml +1 -1
  1078. data/decidim-results/config/locales/nl.yml +1 -1
  1079. data/decidim-results/config/locales/pl.yml +5 -0
  1080. data/decidim-results/lib/decidim/results/feature.rb +2 -0
  1081. data/decidim-results/spec/controllers/results_controller_spec.rb +0 -1
  1082. data/decidim-results/spec/features/admin_manages_results_spec.rb +1 -0
  1083. data/decidim-results/spec/features/explore_results_spec.rb +6 -6
  1084. data/decidim-results/spec/features/process_admin_manages_results_spec.rb +1 -0
  1085. data/decidim-results/spec/i18n_spec.rb +1 -1
  1086. data/decidim-results/spec/shared/manage_results_examples.rb +3 -4
  1087. data/decidim-surveys/app/assets/images/decidim/surveys/icon.svg +1 -1
  1088. data/decidim-surveys/app/views/decidim/surveys/admin/surveys/_answer_option.html.erb +7 -3
  1089. data/decidim-surveys/app/views/decidim/surveys/admin/surveys/_form.html.erb +1 -1
  1090. data/decidim-surveys/app/views/decidim/surveys/admin/surveys/_question.html.erb +12 -5
  1091. data/decidim-surveys/app/views/decidim/surveys/surveys/show.html.erb +2 -0
  1092. data/decidim-surveys/config/i18n-tasks.yml +0 -2
  1093. data/decidim-surveys/config/locales/ca.yml +1 -1
  1094. data/decidim-surveys/config/locales/en.yml +3 -0
  1095. data/decidim-surveys/config/locales/es.yml +1 -1
  1096. data/decidim-surveys/config/locales/eu.yml +67 -1
  1097. data/decidim-surveys/config/locales/fi.yml +1 -1
  1098. data/decidim-surveys/config/locales/fr.yml +64 -1
  1099. data/decidim-surveys/config/locales/it.yml +1 -1
  1100. data/decidim-surveys/config/locales/nl.yml +1 -1
  1101. data/decidim-surveys/config/locales/pl.yml +5 -0
  1102. data/decidim-surveys/lib/decidim/surveys/feature.rb +4 -5
  1103. data/decidim-surveys/spec/commands/decidim/surveys/admin/update_survey_spec.rb +1 -1
  1104. data/decidim-surveys/spec/commands/decidim/surveys/answer_survey_spec.rb +1 -1
  1105. data/decidim-surveys/spec/commands/decidim/surveys/create_survey_spec.rb +1 -1
  1106. data/decidim-surveys/spec/features/admin_manages_surveys_spec.rb +1 -0
  1107. data/decidim-surveys/spec/features/process_admin_manages_surveys_spec.rb +1 -0
  1108. data/decidim-surveys/spec/features/survey_spec.rb +12 -12
  1109. data/decidim-surveys/spec/shared/edit_survey_examples.rb +5 -6
  1110. data/decidim-surveys/spec/shared/export_survey_user_answers_examples.rb +1 -2
  1111. data/decidim-system/app/assets/stylesheets/decidim/system/_actions.scss +1 -1
  1112. data/decidim-system/app/assets/stylesheets/decidim/system/_layout.scss +1 -1
  1113. data/decidim-system/app/assets/stylesheets/decidim/system/_login.scss +1 -1
  1114. data/decidim-system/app/assets/stylesheets/decidim/system/_tables.scss +1 -1
  1115. data/decidim-system/app/commands/decidim/system/create_default_pages.rb +1 -1
  1116. data/decidim-system/app/commands/decidim/system/register_organization.rb +1 -1
  1117. data/decidim-system/config/locales/ca.yml +1 -1
  1118. data/decidim-system/config/locales/es.yml +1 -1
  1119. data/decidim-system/config/locales/eu.yml +5 -1
  1120. data/decidim-system/config/locales/fi.yml +1 -1
  1121. data/decidim-system/config/locales/fr.yml +1 -1
  1122. data/decidim-system/config/locales/it.yml +1 -1
  1123. data/decidim-system/config/locales/nl.yml +1 -1
  1124. data/decidim-system/config/locales/pl.yml +5 -0
  1125. data/decidim-system/spec/commands/decidim/system/create_admin_spec.rb +1 -1
  1126. data/decidim-system/spec/commands/decidim/system/register_organization_spec.rb +1 -1
  1127. data/decidim-system/spec/commands/decidim/system/update_organization_spec.rb +1 -1
  1128. data/decidim-system/spec/features/manage_admins_spec.rb +1 -1
  1129. data/decidim-system/spec/features/sessions_spec.rb +1 -1
  1130. data/decidim-system/spec/i18n_spec.rb +1 -1
  1131. data/decidim-system/spec/models/admin_spec.rb +1 -1
  1132. data/decidim-system/spec/spec_helper.rb +0 -2
  1133. data/decidim.gemspec +1 -1
  1134. data/jsconfig.json +1 -1
  1135. data/lib/generators/decidim/install_generator.rb +1 -0
  1136. data/lib/generators/decidim/templates/Gemfile.erb +1 -1
  1137. data/lib/generators/decidim/templates/initializer.rb +2 -3
  1138. data/package-lock.json +3947 -564
  1139. data/package.json +2 -1
  1140. metadata +809 -43
  1141. data/.mention-bot +0 -9
  1142. data/decidim-admin/app/views/decidim/admin/participatory_processes/show.html.erb +0 -54
  1143. data/decidim-admin/spec/controllers/participatory_processes_controller_spec.rb +0 -31
  1144. data/decidim-budgets/app/views/decidim/budgets/projects/_tags.html.erb +0 -10
  1145. data/decidim-dev/lib/decidim/dev/assets/Exampledocument.docx +0 -0
  1146. data/decidim-dev/lib/decidim/dev/assets/Exampledocument.odt +0 -0
  1147. data/decidim-dev/lib/decidim/dev/test/rspec_support/i18n.rb +0 -9
  1148. data/decidim-dev/spec/support/Exampledocument.docx +0 -0
  1149. data/decidim-dev/spec/support/Exampledocument.odt +0 -0
  1150. data/decidim-dev/spec/support/city3.jpeg +0 -0
  1151. data/decidim-dev/spec/support/malicious.jpg +0 -0
  1152. data/decidim-meetings/app/views/decidim/meetings/meetings/_tags.html.erb +0 -10
  1153. data/decidim-proposals/app/views/decidim/proposals/proposals/_tags.html.erb +0 -10
  1154. data/decidim-results/app/views/decidim/results/results/_tags.html.erb +0 -10
File without changes
@@ -0,0 +1 @@
1
+ <svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" style="display:none"><defs><style>.cls-1{fill:#777677;}</style></defs><symbol viewBox="0 0 8 8" id="icon-account-login"><title>account-login</title> <path d="M3 0v1h4v5h-4v1h5v-7h-5zm1 2v1h-4v1h4v1l2-1.5-2-1.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-account-logout"><title>account-logout</title> <path d="M3 0v1h4v5h-4v1h5v-7h-5zm-1 2l-2 1.5 2 1.5v-1h4v-1h-4v-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-action-redo"><title>action-redo</title> <path d="M3.5 0c-1.93 0-3.5 1.57-3.5 3.5 0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v.5h-1l2 2 2-2h-1v-.5c0-1.93-1.57-3.5-3.5-3.5z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-action-undo"><title>action-undo</title> <path d="M4.5 0c-1.93 0-3.5 1.57-3.5 3.5v.5h-1l2 2 2-2h-1v-.5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5c0-1.93-1.57-3.5-3.5-3.5z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 35 35" id="icon-actions"><title>actions</title><path d="M17.5 35A17.5 17.5 0 1 1 35 17.5 17.52 17.52 0 0 1 17.5 35zm0-33.06A15.56 15.56 0 1 0 33.06 17.5 15.57 15.57 0 0 0 17.5 1.94zM16 22.48a1 1 0 0 1-.68-.28l-4.08-4a1 1 0 0 1 1.36-1.39l3.4 3.3 8-8.8a1 1 0 0 1 1.44 1.31l-8.69 9.55a1 1 0 0 1-.69.32z"/></symbol><symbol viewBox="0 0 8 8" id="icon-align-center"><title>align-center</title> <path d="M0 0v1h8v-1h-8zm1 2v1h6v-1h-6zm-1 2v1h8v-1h-8zm1 2v1h6v-1h-6z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-align-left"><title>align-left</title> <path d="M0 0v1h8v-1h-8zm0 2v1h6v-1h-6zm0 2v1h8v-1h-8zm0 2v1h6v-1h-6z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-align-right"><title>align-right</title> <path d="M0 0v1h8v-1h-8zm2 2v1h6v-1h-6zm-2 2v1h8v-1h-8zm2 2v1h6v-1h-6z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-aperture"><title>aperture</title> <path d="M4 0c-.69 0-1.34.19-1.91.5l3.22 2.34.75-2.25c-.6-.36-1.31-.59-2.06-.59zm-2.75 1.13c-.76.73-1.25 1.74-1.25 2.88 0 .25.02.48.06.72l3.09-2.22-1.91-1.38zm5.63.13l-1.22 3.75h2.19c.08-.32.16-.65.16-1 0-1.07-.44-2.03-1.13-2.75zm-4.72 3.22l-1.75 1.25c.55 1.13 1.6 1.99 2.88 2.22l-1.13-3.47zm1.56 1.53l.63 1.97c1.33-.12 2.46-.88 3.09-1.97h-3.72z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-arrow-bottom"><title>arrow-bottom</title> <path d="M2 0v5h-2l2.53 3 2.47-3h-2v-5h-1z" transform="translate(1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-arrow-circle-bottom"><title>arrow-circle-bottom</title> <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1 1h2v3h2l-3 3-3-3h2v-3z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-arrow-circle-left"><title>arrow-circle-left</title> <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1v2h3v2h-3v2l-3-3 3-3z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-arrow-circle-right"><title>arrow-circle-right</title> <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1l3 3-3 3v-2h-3v-2h3v-2z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-arrow-circle-top"><title>arrow-circle-top</title> <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1l3 3h-2v3h-2v-3h-2l3-3z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-arrow-left"><title>arrow-left</title> <path d="M3 0l-3 2.53 3 2.47v-2h5v-1h-5v-2z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-arrow-right"><title>arrow-right</title> <path d="M5 0v2h-5v1h5v2l3-2.53-3-2.47z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-arrow-thick-bottom"><title>arrow-thick-bottom</title> <path d="M2 0v5h-2l3.03 3 2.97-3h-2v-5h-2z" transform="translate(1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-arrow-thick-left"><title>arrow-thick-left</title> <path d="M3 0l-3 3.03 3 2.97v-2h5v-2h-5v-2z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-arrow-thick-right"><title>arrow-thick-right</title> <path d="M5 0v2h-5v2h5v2l3-3.03-3-2.97z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-arrow-thick-top"><title>arrow-thick-top</title> <path d="M2.97 0l-2.97 3h2v5h2v-5h2l-3.03-3z" transform="translate(1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-arrow-top"><title>arrow-top</title> <path d="M2.47 0l-2.47 3h2v5h1v-5h2l-2.53-3z" transform="translate(1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-audio-spectrum"><title>audio-spectrum</title> <path d="M4 0v8h1v-8h-1zm-2 1v6h1v-6h-1zm4 1v4h1v-4h-1zm-6 1v2h1v-2h-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-audio"><title>audio</title> <path d="M1.16 0c-.72.72-1.16 1.71-1.16 2.81s.43 2.12 1.16 2.84l.72-.72c-.54-.54-.88-1.29-.88-2.13 0-.83.33-1.55.88-2.09l-.72-.72zm5.69 0l-.72.72c.54.54.88 1.26.88 2.09 0 .83-.33 1.58-.88 2.13l.72.72c.72-.72 1.16-1.74 1.16-2.84 0-1.1-.43-2.09-1.16-2.81zm-4.25 1.41c-.36.36-.59.86-.59 1.41 0 .55.23 1.08.59 1.44l.69-.72c-.18-.18-.28-.44-.28-.72 0-.28.1-.5.28-.69l-.69-.72zm2.81 0l-.69.72c.18.18.28.41.28.69 0 .28-.1.54-.28.72l.69.72c.36-.36.59-.89.59-1.44 0-.55-.23-1.05-.59-1.41z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-badge"><title>badge</title> <path d="M2 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-1 4.81v3.19l1-1 1 1v-3.19c-.31.11-.65.19-1 .19s-.69-.08-1-.19z" transform="translate(2)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-ban"><title>ban</title> <path d="M4 0c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm0 1c.66 0 1.26.21 1.75.56l-4.19 4.19c-.35-.49-.56-1.09-.56-1.75 0-1.66 1.34-3 3-3zm2.44 1.25c.35.49.56 1.09.56 1.75 0 1.66-1.34 3-3 3-.66 0-1.26-.21-1.75-.56l4.19-4.19z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-bar-chart"><title>bar-chart</title> <path d="M0 0v7h8v-1h-7v-6h-1zm5 0v5h2v-5h-2zm-3 2v3h2v-3h-2z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-basket"><title>basket</title> <path d="M3.97 0c-.13.01-.26.08-.34.19l-2.34 2.81h-1.28v1h1v3.66c0 .18.16.34.34.34h5.31c.18 0 .34-.16.34-.34v-3.66h1v-1h-1.28c-.27-.33-2.39-2.86-2.41-2.88-.11-.09-.22-.14-.34-.13zm.03 1.28l1.44 1.72h-2.88l1.44-1.72zm-1.5 3.72c.28 0 .5.22.5.5v1c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5zm3 0c.28 0 .5.22.5.5v1c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-battery-empty"><title>battery-empty</title> <path d="M.09 0c-.06 0-.09.04-.09.09v5.81c0 .05.04.09.09.09h6.81c.05 0 .09-.04.09-.09v-1.91h1v-2h-1v-1.91c0-.06-.04-.09-.09-.09h-6.81zm.91 1h5v4h-5v-4z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-battery-full"><title>battery-full</title> <path d="M.09 0c-.06 0-.09.04-.09.09v5.81c0 .05.04.09.09.09h6.81c.05 0 .09-.04.09-.09v-1.91h1v-2h-1v-1.91c0-.06-.04-.09-.09-.09h-6.81z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-beaker"><title>beaker</title> <path d="M1.34 0a.5.5 0 0 0 .16 1h.5v1.41c-.09.17-1.2 2.31-1.66 3.09-.16.26-.34.61-.34 1.06 0 .39.15.77.41 1.03s.64.41 1.03.41h5.13c.38 0 .74-.16 1-.41h.03c.26-.26.41-.64.41-1.03 0-.45-.19-.8-.34-1.06-.46-.78-1.57-2.92-1.66-3.09v-1.41h.5a.5.5 0 1 0 0-1h-5a.5.5 0 0 0-.09 0 .5.5 0 0 0-.06 0zm1.66 1h2v1.63l.06.09s.63 1.23 1.19 2.28h-4.5c.56-1.05 1.19-2.28 1.19-2.28l.06-.09v-1.63z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-bell"><title>bell</title> <path d="M4 0c-1.1 0-2 .9-2 2 0 1.04-.52 1.98-1.34 2.66-.41.34-.66.82-.66 1.34h8c0-.52-.24-1-.66-1.34-.82-.68-1.34-1.62-1.34-2.66 0-1.1-.89-2-2-2zm-1 7c0 .55.45 1 1 1s1-.45 1-1h-2z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-bluetooth"><title>bluetooth</title> <path d="M1.5 0v2.5l-.75-.75-.75.75 1.5 1.5-1.5 1.5.75.75.75-.75v2.5h.5l3.5-2.5-2.25-1.53 2.25-1.47-3.5-2.5h-.5zm1 1.5l1.5 1-1.5 1v-2zm0 3l1.5 1-1.5 1v-2z" transform="translate(1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-bold"><title>bold</title> <path d="M0 0v1c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1v1h5.5c1.38 0 2.5-1.12 2.5-2.5 0-1-.59-1.85-1.44-2.25.27-.34.44-.78.44-1.25 0-1.1-.89-2-2-2h-5zm3 1h1c.55 0 1 .45 1 1s-.45 1-1 1h-1v-2zm0 3h1.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-1.5v-3z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-bolt"><title>bolt</title> <path d="M3 0l-3 5h2v3l3-5h-2v-3z" transform="translate(1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-book"><title>book</title> <path d="M1 0c-.07 0-.13.01-.19.03-.39.08-.7.39-.78.78-.03.06-.03.12-.03.19v5.5c0 .83.67 1.5 1.5 1.5h5.5v-1h-5.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h5.5v-5.5c0-.28-.22-.5-.5-.5h-.5v3l-1-1-1 1v-3h-3z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-bookmark"><title>bookmark</title> <path d="M0 0v8l2-2 2 2v-8h-4z" transform="translate(2)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-box"><title>box</title> <path d="M0 0v1h8v-1h-8zm0 2v5.91c0 .05.04.09.09.09h7.81c.05 0 .09-.04.09-.09v-5.91h-2.97v1.03h-2.03v-1.03h-3z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-briefcase"><title>briefcase</title> <path d="M3 0c-.55 0-1 .45-1 1v1h-1.91c-.06 0-.09.04-.09.09v2.41c0 .28.22.5.5.5h7c.28 0 .5-.22.5-.5v-2.41c0-.06-.04-.09-.09-.09h-1.91v-1c0-.55-.45-1-1-1h-2zm0 1h2v1h-2v-1zm-3 4.91v2c0 .05.04.09.09.09h7.81c.05 0 .09-.04.09-.09v-2c-.16.06-.32.09-.5.09h-7c-.18 0-.34-.04-.5-.09z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-british-pound"><title>british-pound</title> <path d="M3 0c-.62 0-1.16.26-1.5.69-.34.43-.5.99-.5 1.56 0 .69.16 1.25.25 1.75h-1.25v1h1.22c-.11.45-.37.96-1.06 1.66l-.16.13v1.22h6v-1h-4.91c.64-.73.98-1.4 1.13-2h1.78v-1h-1.72c-.08-.68-.28-1.24-.28-1.75 0-.39.11-.73.28-.94.17-.21.37-.31.72-.31.39 0 .61.11.75.25s.25.36.25.75h1c0-.58-.17-1.1-.53-1.47-.37-.37-.89-.53-1.47-.53z" transform="translate(1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-browser"><title>browser</title> <path d="M.34 0a.5.5 0 0 0-.34.5v7a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.5-.5h-7a.5.5 0 0 0-.09 0 .5.5 0 0 0-.06 0zm1.16 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zm2 0h3c.28 0 .5.22.5.5s-.22.5-.5.5h-3c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm-2.5 2h6v4h-6v-4z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-brush"><title>brush</title> <path d="M7.44.03c-.03 0-.04.02-.06.03l-3.75 2.66c-.04.03-.1.11-.13.16l-.13.25c.72.23 1.27.78 1.5 1.5l.25-.13c.05-.03.12-.08.16-.13l2.66-3.75c.03-.05.04-.09 0-.13l-.44-.44c-.02-.02-.04-.03-.06-.03zm-4.78 3.97c-.74 0-1.31.61-1.31 1.34 0 .99-.55 1.85-1.34 2.31.39.22.86.34 1.34.34 1.47 0 2.66-1.18 2.66-2.66 0-.74-.61-1.34-1.34-1.34z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-bug"><title>bug</title> <path d="M3.5 0c-1.19 0-1.98 1.69-1.19 2.5-.09.07-.2.14-.28.22l-1.31-.66a.5.5 0 0 0-.34-.06.5.5 0 0 0-.09.94l1.16.56c-.09.16-.19.33-.25.5h-.69a.5.5 0 0 0-.09 0 .5.5 0 1 0 .09 1h.5c0 .23.02.45.06.66l-.78.41a.5.5 0 1 0 .44.88l.66-.34c.25.46.62.85 1.03 1.09.35-.19.59-.44.59-.72v-1.44a.5.5 0 0 0 0-.09v-.81a.5.5 0 0 0 0-.22c.05-.23.26-.41.5-.41.28 0 .5.22.5.5v.88a.5.5 0 0 0 0 .09v.06a.5.5 0 0 0 0 .09v1.34c0 .27.24.53.59.72.41-.25.79-.63 1.03-1.09l.66.34a.5.5 0 1 0 .44-.88l-.78-.41c.04-.21.06-.43.06-.66h.5a.5.5 0 1 0 0-1h-.69c-.06-.17-.16-.34-.25-.5l1.16-.56a.5.5 0 0 0-.31-.94.5.5 0 0 0-.13.06l-1.31.66c-.09-.08-.19-.15-.28-.22.78-.83 0-2.5-1.19-2.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-bullhorn"><title>bullhorn</title> <path d="M6 0v6c.03.01.07 0 .09 0h.81c.05 0 .09-.04.09-.09v-5.81c0-.06-.04-.09-.09-.09h-.91zm-1 .5l-2.91 1.47c-.05.02-.13.03-.19.03h-1.81c-.06 0-.09.04-.09.09v1.81c0 .06.04.09.09.09h.91l1.03 2.72c.11.25.44.36.69.25.25-.11.36-.44.25-.69l-.75-1.78c.03-.14.13-.22.28-.22v-.03l2.5 1.25v-5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-calculator"><title>calculator</title> <path d="M.09 0c-.06 0-.09.04-.09.09v7.81c0 .05.04.09.09.09h6.81c.05 0 .09-.04.09-.09v-7.81c0-.06-.04-.09-.09-.09h-6.81zm.91 1h5v2h-5v-2zm0 3h1v1h-1v-1zm2 0h1v1h-1v-1zm2 0h1v3h-1v-3zm-4 2h1v1h-1v-1zm2 0h1v1h-1v-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-calendar"><title>calendar</title> <path d="M0 0v2h7v-2h-7zm0 3v4.91c0 .05.04.09.09.09h6.81c.05 0 .09-.04.09-.09v-4.91h-7zm1 1h1v1h-1v-1zm2 0h1v1h-1v-1zm2 0h1v1h-1v-1zm-4 2h1v1h-1v-1zm2 0h1v1h-1v-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-camera-slr"><title>camera-slr</title> <path d="M4.09 0c-.05 0-.1.04-.13.09l-.94 1.81c-.02.05-.07.09-.13.09h-1.41c-.83 0-1.5.67-1.5 1.5v4.41c0 .05.04.09.09.09h7.81c.05 0 .09-.04.09-.09v-5.81c0-.06-.04-.09-.09-.09h-.81c-.05 0-.1-.04-.13-.09l-.94-1.81c-.03-.05-.07-.09-.13-.09h-1.81zm-2.59 3c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zm3.5 0c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0 1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-caret-bottom"><title>caret-bottom</title> <path d="M0 0l4 4 4-4h-8z" transform="translate(0 2)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-caret-left"><title>caret-left</title> <path d="M4 0l-4 4 4 4v-8z" transform="translate(2)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-caret-right"><title>caret-right</title> <path d="M0 0v8l4-4-4-4z" transform="translate(2)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-caret-top"><title>caret-top</title> <path d="M4 0l-4 4h8l-4-4z" transform="translate(0 2)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-cart"><title>cart</title> <path d="M.34 0a.5.5 0 0 0 .16 1h1.5l.09.25.41 1.25.41 1.25c.04.13.21.25.34.25h3.5c.14 0 .3-.12.34-.25l.81-2.5c.04-.13-.02-.25-.16-.25h-4.44l-.38-.72a.5.5 0 0 0-.44-.28h-2a.5.5 0 0 0-.09 0 .5.5 0 0 0-.06 0zm3.16 5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm3 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-chat"><title>chat</title> <path d="M0 0v5l1-1h1v-3h3v-1h-5zm3 2v4h4l1 1v-5h-5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-check"><title>check</title> <path d="M6.41 0l-.69.72-2.78 2.78-.81-.78-.72-.72-1.41 1.41.72.72 1.5 1.5.69.72.72-.72 3.5-3.5.72-.72-1.44-1.41z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-chevron-bottom"><title>chevron-bottom</title> <path d="M1.5 0l-1.5 1.5 4 4 4-4-1.5-1.5-2.5 2.5-2.5-2.5z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-chevron-left"><title>chevron-left</title> <path d="M4 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z" transform="translate(1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-chevron-right"><title>chevron-right</title> <path d="M1.5 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z" transform="translate(1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-chevron-top"><title>chevron-top</title> <path d="M4 0l-4 4 1.5 1.5 2.5-2.5 2.5 2.5 1.5-1.5-4-4z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-circle-check"><title>circle-check</title> <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm2 1.78l.72.72-3.22 3.22-1.72-1.72.72-.72 1 1 2.5-2.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-circle-x"><title>circle-x</title> <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1.5 1.78l1.5 1.5 1.5-1.5.72.72-1.5 1.5 1.5 1.5-.72.72-1.5-1.5-1.5 1.5-.72-.72 1.5-1.5-1.5-1.5.72-.72z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-clipboard"><title>clipboard</title> <path d="M3.5 0c-.28 0-.5.22-.5.5v.5h-.75c-.14 0-.25.11-.25.25v.75h3v-.75c0-.14-.11-.25-.25-.25h-.75v-.5c0-.28-.22-.5-.5-.5zm-3.25 1c-.14 0-.25.11-.25.25v6.5c0 .14.11.25.25.25h6.5c.14 0 .25-.11.25-.25v-6.5c0-.14-.11-.25-.25-.25h-.75v2h-5v-2h-.75z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-clock"><title>clock</title> <path d="M4 0c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm0 1c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm-.5 1v2.22l.16.13.5.5.34.38.72-.72-.38-.34-.34-.34v-1.81h-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-cloud-download"><title>cloud-download</title> <path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .37.11.71.28 1h2.72v-.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v.5h1.91c.06-.16.09-.32.09-.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm-.16 4a.5.5 0 0 0-.34.5v1.5h-1.5l2 2 2-2h-1.5v-1.5a.5.5 0 0 0-.59-.5.5.5 0 0 0-.06 0z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-cloud-upload"><title>cloud-upload</title> <path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .37.11.71.28 1h2.22l2-2 2 2h1.41c.06-.16.09-.32.09-.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm0 4.5l-2.5 2.5h2v.5a.5.5 0 1 0 1 0v-.5h2l-2.5-2.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-cloud"><title>cloud</title> <path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2s.9 2 2 2h4.5c.83 0 1.5-.67 1.5-1.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-cloudy"><title>cloudy</title> <path d="M2.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .39.09.74.25 1.06.3-.21.64-.37 1-.47.55-1.25 1.82-2.09 3.25-2.09-.46-.6-1.18-1-2-1zm2 2c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2s.9 2 2 2h4.5c.83 0 1.5-.67 1.5-1.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-code"><title>code</title> <path d="M5 0l-3 6h1l3-6h-1zm-4 1l-1 2 1 2h1l-1-2 1-2h-1zm5 0l1 2-1 2h1l1-2-1-2h-1z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-cog"><title>cog</title> <path d="M3.5 0l-.5 1.19c-.1.03-.19.08-.28.13l-1.19-.5-.72.72.5 1.19c-.05.1-.09.18-.13.28l-1.19.5v1l1.19.5c.04.1.08.18.13.28l-.5 1.19.72.72 1.19-.5c.09.04.18.09.28.13l.5 1.19h1l.5-1.19c.09-.04.19-.08.28-.13l1.19.5.72-.72-.5-1.19c.04-.09.09-.19.13-.28l1.19-.5v-1l-1.19-.5c-.03-.09-.08-.19-.13-.28l.5-1.19-.72-.72-1.19.5c-.09-.04-.19-.09-.28-.13l-.5-1.19h-1zm.5 2.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5.67-1.5 1.5-1.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-collapse-down"><title>collapse-down</title> <path d="M0 0v2h8v-2h-8zm2 3l2 2 2-2h-4zm-2 4v1h8v-1h-8z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-collapse-left"><title>collapse-left</title> <path d="M0 0v8h1v-8h-1zm6 0v8h2v-8h-2zm-1 2l-2 2 2 2v-4z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-collapse-right"><title>collapse-right</title> <path d="M0 0v8h2v-8h-2zm7 0v8h1v-8h-1zm-4 2v4l2-2-2-2z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-collapse-up"><title>collapse-up</title> <path d="M0 0v1h8v-1h-8zm4 3l-2 2h4l-2-2zm-4 3v2h8v-2h-8z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-command"><title>command</title> <path d="M1.5 0c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5h.5v1h-.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5v-.5h1v.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5h-.5v-1h.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5v.5h-1v-.5c0-.83-.67-1.5-1.5-1.5zm0 1c.28 0 .5.22.5.5v.5h-.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm4 0c.28 0 .5.22.5.5s-.22.5-.5.5h-.5v-.5c0-.28.22-.5.5-.5zm-2.5 2h1v1h-1v-1zm-1.5 2h.5v.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5.22-.5.5-.5zm3.5 0h.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5v-.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-comment-square"><title>comment-square</title> <path d="M.09 0c-.06 0-.09.04-.09.09v5.81c0 .05.04.09.09.09h5.91l2 2v-7.91c0-.06-.04-.09-.09-.09h-7.81z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-compass"><title>compass</title> <path d="M4 0c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm0 1c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm2 1l-3 1-1 3 3-1 1-3zm-2 1.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-contrast"><title>contrast</title> <path d="M4 0c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm0 1c1.66 0 3 1.34 3 3s-1.34 3-3 3v-6z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-copywriting"><title>copywriting</title> <path d="M0 0v1h8v-1h-8zm0 2v1h5v-1h-5zm0 3v1h8v-1h-8zm0 2v1h6v-1h-6zm7.5 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-credit-card"><title>credit-card</title> <path d="M.25 0c-.14 0-.25.11-.25.25v.75h8v-.75c0-.14-.11-.25-.25-.25h-7.5zm-.25 2v3.75c0 .14.11.25.25.25h7.5c.14 0 .25-.11.25-.25v-3.75h-8zm1 2h1v1h-1v-1zm2 0h1v1h-1v-1z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-crop"><title>crop</title> <path d="M1 0v1h-1v1h1v5h5v1h1v-1h1v-1h-1v-4.5l1-1-.5-.5-1 1h-4.5v-1h-1zm1 2h3.5l-3.5 3.5v-3.5zm4 .5v3.5h-3.5l3.5-3.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-dashboard"><title>dashboard</title> <path d="M4 0c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm0 1c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 1c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-1.66 1a.5.5 0 0 0-.19.84l.91.91c-.02.08-.06.16-.06.25 0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1c-.09 0-.17.04-.25.06l-.91-.91a.5.5 0 0 0-.44-.16.5.5 0 0 0-.06 0zm3.16 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-data-transfer-download"><title>data-transfer-download</title> <path d="M3 0v3h-2l3 3 3-3h-2v-3h-2zm-3 7v1h8v-1h-8z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-data-transfer-upload"><title>data-transfer-upload</title> <path d="M0 0v1h8v-1h-8zm4 2l-3 3h2v3h2v-3h2l-3-3z"/> </symbol><symbol viewBox="0 0 35 35" id="icon-debates"><title>debates</title><path d="M17.5 35A17.5 17.5 0 1 1 35 17.5 17.52 17.52 0 0 1 17.5 35zm0-33.06A15.56 15.56 0 1 0 33.06 17.5 15.57 15.57 0 0 0 17.5 1.94zm6.44 24.29a1 1 0 0 1-.34-.06l-3.78-1.42a10.75 10.75 0 0 1-2.32.25c-4.95 0-9-3.36-9-7.5s4-7.5 9-7.5 9 3.36 9 7.5a6.75 6.75 0 0 1-1.88 4.6l.32 3.06a1 1 0 0 1-1 1.07zm-4.06-3.47a1 1 0 0 1 .34.06l2.59 1-.2-2a1 1 0 0 1 .3-.8 4.91 4.91 0 0 0 1.62-3.54c0-3.06-3.15-5.55-7-5.55s-7 2.49-7 5.55 3.15 5.55 7 5.55a8.74 8.74 0 0 0 2.14-.26 1 1 0 0 1 .21-.01z"/></symbol><symbol viewBox="0 0 8 8" id="icon-delete"><title>delete</title> <path d="M2 0l-2 3 2 3h6v-6h-6zm1.5.78l1.5 1.5 1.5-1.5.72.72-1.5 1.5 1.5 1.5-.72.72-1.5-1.5-1.5 1.5-.72-.72 1.5-1.5-1.5-1.5.72-.72z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-dial"><title>dial</title> <path d="M4 0c-2.2 0-4 1.8-4 4h1c0-1.66 1.34-3 3-3s3 1.34 3 3h1c0-2.2-1.8-4-4-4zm-.59 2.09c-.81.25-1.41 1.01-1.41 1.91 0 1.11.9 2 2 2 1.11 0 2-.89 2-2 0-.9-.59-1.65-1.41-1.91l-.59.88-.59-.88z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-document"><title>document</title> <path d="M0 0v8h7v-4h-4v-4h-3zm4 0v3h3l-3-3zm-3 2h1v1h-1v-1zm0 2h1v1h-1v-1zm0 2h4v1h-4v-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-dollar"><title>dollar</title> <path d="M2 0v1h-.75c-.68 0-1.25.57-1.25 1.25v.5c0 .68.44 1.24 1.09 1.41l2.56.66c.14.04.34.29.34.44v.5c0 .14-.11.25-.25.25h-2.5c-.12 0-.21-.04-.25-.06v-.94h-1v1c0 .34.2.63.44.78.23.16.52.22.81.22h.75v1h1v-1h.75c.69 0 1.25-.56 1.25-1.25v-.5c0-.68-.44-1.24-1.09-1.41l-2.56-.66c-.14-.04-.34-.29-.34-.44v-.5c0-.14.11-.25.25-.25h2.5c.11 0 .21.04.25.06v.94h1v-1c0-.34-.2-.63-.44-.78-.23-.16-.52-.22-.81-.22h-.75v-1h-1z" transform="translate(1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-double-quote-sans-left"><title>double-quote-sans-left</title> <path d="M0 0v6l3-3v-3h-3zm5 0v6l3-3v-3h-3z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-double-quote-sans-right"><title>double-quote-sans-right</title> <path d="M3 0l-3 3v3h3v-6zm5 0l-3 3v3h3v-6z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-double-quote-serif-left"><title>double-quote-serif-left</title> <path d="M3 0c-1.65 0-3 1.35-3 3v3h3v-3h-2c0-1.11.89-2 2-2v-1zm5 0c-1.65 0-3 1.35-3 3v3h3v-3h-2c0-1.11.89-2 2-2v-1z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-double-quote-serif-right"><title>double-quote-serif-right</title> <path d="M0 0v3h2c0 1.11-.89 2-2 2v1c1.65 0 3-1.35 3-3v-3h-3zm5 0v3h2c0 1.11-.89 2-2 2v1c1.65 0 3-1.35 3-3v-3h-3z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-droplet"><title>droplet</title> <path d="M3 0l-.34.34c-.11.11-2.66 2.69-2.66 4.88 0 1.65 1.35 3 3 3s3-1.35 3-3c0-2.18-2.55-4.77-2.66-4.88l-.34-.34zm-1.5 4.72c.28 0 .5.22.5.5 0 .55.45 1 1 1 .28 0 .5.22.5.5s-.22.5-.5.5c-1.1 0-2-.9-2-2 0-.28.22-.5.5-.5z" transform="translate(1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-eject"><title>eject</title> <path d="M4 0l-4 5h8l-4-5zm-4 6v2h8v-2h-8z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-elevator"><title>elevator</title> <path d="M3 0l-3 3h6l-3-3zm-3 5l3 3 3-3h-6z" transform="translate(1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-ellipses"><title>ellipses</title> <path d="M0 0v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2z" transform="translate(0 3)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-envelope-closed"><title>envelope-closed</title> <path d="M0 0v1l4 2 4-2v-1h-8zm0 2v4h8v-4l-4 2-4-2z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-envelope-open"><title>envelope-open</title> <path d="M4 0l-4 2v6h8v-6l-4-2zm0 1.13l3 1.5v1.88l-3 1.5-3-1.5v-1.88l3-1.5zm-2 1.88v1l2 1 2-1v-1h-4z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-euro"><title>euro</title> <path d="M6 0c-1.86 0-3.4 1.28-3.84 3h-1.91l-.25 1h2.01c0 .35.07.68.16 1h-1.97l-.19 1h2.56c.7 1.19 1.97 2 3.44 2 .73 0 1.41-.21 2-.56v-1.22c-.53.48-1.22.78-2 .78-.89 0-1.67-.39-2.22-1h2.22l.16-1h-2.97c-.11-.32-.19-.64-.19-1h3.34l.16-1h-3.31c.41-1.16 1.51-2 2.81-2 .66 0 1.26.21 1.75.56l.16-1.06c-.57-.31-1.21-.5-1.91-.5z" transform="translate(-1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-excerpt"><title>excerpt</title> <path d="M0 0v1h7v-1h-7zm0 2v1h5v-1h-5zm0 2v1h8v-1h-8zm0 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-expand-down"><title>expand-down</title> <path d="M0 0v1h8v-1h-8zm2 2l2 2 2-2h-4zm-2 4v2h8v-2h-8z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-expand-left"><title>expand-left</title> <path d="M0 0v8h1v-8h-1zm6 0v8h2v-8h-2zm-4 2v4l2-2-2-2z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-expand-right"><title>expand-right</title> <path d="M0 0v8h2v-8h-2zm7 0v8h1v-8h-1zm-1 2l-2 2 2 2v-4z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-expand-up"><title>expand-up</title> <path d="M0 0v2h8v-2h-8zm4 4l-2 2h4l-2-2zm-4 3v1h8v-1h-8z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-external-link"><title>external-link</title> <path d="M0 0v8h8v-2h-1v1h-6v-6h1v-1h-2zm4 0l1.5 1.5-2.5 2.5 1 1 2.5-2.5 1.5 1.5v-4h-4z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-eye"><title>eye</title> <path d="M4.03 0c-2.53 0-4.03 3-4.03 3s1.5 3 4.03 3c2.47 0 3.97-3 3.97-3s-1.5-3-3.97-3zm-.03 1c1.11 0 2 .9 2 2 0 1.11-.89 2-2 2-1.1 0-2-.89-2-2 0-1.1.9-2 2-2zm0 1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.04-.19-.06-.28-.08.16-.24.28-.44.28-.28 0-.5-.22-.5-.5 0-.2.12-.36.28-.44-.09-.03-.18-.06-.28-.06z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-eyedropper"><title>eyedropper</title> <path d="M3.31 0a.5.5 0 0 0-.19.84l.63.63-3.59 3.66-.16.16v2.7199999999999998h2.69l.16-.16 3.66-3.66.63.66a.5.5 0 1 0 .72-.69l-.94-.94.66-.66c.59-.58.59-1.54 0-2.13-.57-.57-1.56-.57-2.13 0l-.66.66-.94-.94a.5.5 0 0 0-.47-.16.5.5 0 0 0-.06 0zm1.16 2.19l1.31 1.31-3.16 3.16-1.28-1.31 3.13-3.16z"/> </symbol><symbol viewBox="0 0 470.513 470.513" id="icon-facebook"><title>facebook</title><path d="M271.52 154.17v-40.54c0-6.087.28-10.8.85-14.13.567-3.336 1.857-6.616 3.86-9.854 1.998-3.236 5.235-5.47 9.705-6.708 4.476-1.24 10.424-1.858 17.85-1.858h40.54V0h-64.81c-37.5 0-64.433 8.897-80.803 26.69-16.368 17.8-24.55 44.015-24.55 78.66v48.82H125.62v81.085h48.537V470.51h97.362V235.257h64.8l8.563-81.086h-73.37z"/></symbol><symbol viewBox="0 0 8 8" id="icon-file"><title>file</title> <path d="M0 0v8h7v-4h-4v-4h-3zm4 0v3h3l-3-3z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-fire"><title>fire</title> <path d="M2 0c1 2-2 3-2 5s2 3 2 3c-.98-1.98 2-3 2-5s-2-3-2-3zm3 3c1 2-2 3-2 5h3c.4 0 1-.5 1-2 0-2-2-3-2-3z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-flag"><title>flag</title> <path d="M0 0v8h1v-8h-1zm2 0v4h2v1h4l-2-1.97 2-2.03h-3v-1h-3z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-flash"><title>flash</title> <path d="M1.5 0l-1.5 3h2l-.66 2h-1.34l1 3 3-3h-1.5l1.5-3h-2l1-2h-1.5z" transform="translate(2)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-folder"><title>folder</title> <path d="M0 0v2h8v-1h-5v-1h-3zm0 3v4.5c0 .28.22.5.5.5h7c.28 0 .5-.22.5-.5v-4.5h-8z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-fork"><title>fork</title> <path d="M1.5 0c-.83 0-1.5.67-1.5 1.5 0 .66.41 1.2 1 1.41v2.19c-.59.2-1 .75-1 1.41 0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5c0-.6-.34-1.1-.84-1.34.09-.09.21-.16.34-.16h2c.82 0 1.5-.68 1.5-1.5v-.59c.59-.2 1-.75 1-1.41 0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5c0 .66.41 1.2 1 1.41v.59c0 .28-.22.5-.5.5h-2c-.17 0-.35.04-.5.09v-1.19c.59-.2 1-.75 1-1.41 0-.83-.67-1.5-1.5-1.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-fullscreen-enter"><title>fullscreen-enter</title> <path d="M0 0v4l1.5-1.5 1.5 1.5 1-1-1.5-1.5 1.5-1.5h-4zm5 4l-1 1 1.5 1.5-1.5 1.5h4v-4l-1.5 1.5-1.5-1.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-fullscreen-exit"><title>fullscreen-exit</title> <path d="M1 0l-1 1 1.5 1.5-1.5 1.5h4v-4l-1.5 1.5-1.5-1.5zm3 4v4l1.5-1.5 1.5 1.5 1-1-1.5-1.5 1.5-1.5h-4z"/> </symbol><symbol viewBox="0 0 438.549 438.549" id="icon-github"><title>github</title><path d="M409.132 114.573c-19.608-33.596-46.205-60.194-79.798-79.8C295.736 15.166 259.057 5.365 219.27 5.365c-39.78 0-76.47 9.804-110.062 29.408-33.596 19.605-60.192 46.204-79.8 79.8C9.803 148.168 0 184.853 0 224.63c0 47.78 13.94 90.745 41.827 128.906 27.884 38.164 63.906 64.572 108.063 79.227 5.14.954 8.945.283 11.42-1.996 2.474-2.282 3.71-5.14 3.71-8.562 0-.57-.05-5.708-.144-15.417-.098-9.71-.144-18.18-.144-25.406l-6.567 1.136c-4.187.767-9.47 1.092-15.846 1-6.38-.09-13-.757-19.85-2-6.855-1.23-13.23-4.085-19.13-8.558-5.9-4.473-10.086-10.328-12.56-17.556l-2.856-6.57c-1.903-4.374-4.9-9.233-8.99-14.56-4.095-5.33-8.234-8.944-12.42-10.847l-2-1.43c-1.33-.952-2.568-2.1-3.71-3.43-1.143-1.33-1.998-2.663-2.57-3.997-.57-1.335-.097-2.43 1.43-3.29 1.523-.858 4.28-1.275 8.28-1.275l5.706.853c3.808.763 8.517 3.042 14.134 6.85 5.614 3.807 10.23 8.755 13.846 14.843 4.38 7.81 9.658 13.76 15.847 17.85 6.183 4.1 12.42 6.14 18.7 6.14 6.28 0 11.702-.474 16.272-1.42 4.562-.95 8.845-2.383 12.844-4.285 1.712-12.76 6.376-22.56 13.987-29.41-10.844-1.14-20.6-2.857-29.26-5.14-8.66-2.286-17.605-5.996-26.835-11.14-9.234-5.137-16.895-11.516-22.984-19.126-6.09-7.615-11.09-17.61-14.99-29.98-3.9-12.374-5.85-26.648-5.85-42.826 0-23.035 7.52-42.637 22.558-58.817-7.044-17.316-6.38-36.73 1.997-58.24 5.52-1.713 13.706-.426 24.554 3.855 10.85 4.285 18.793 7.954 23.84 10.996 5.045 3.04 9.09 5.617 12.134 7.707 17.706-4.948 35.977-7.42 54.82-7.42s37.116 2.472 54.822 7.42l10.85-6.85c7.418-4.57 16.18-8.758 26.26-12.565 10.09-3.806 17.803-4.854 23.135-3.14 8.56 21.51 9.325 40.923 2.28 58.24 15.035 16.18 22.558 35.788 22.558 58.818 0 16.18-1.96 30.5-5.854 42.968-3.9 12.47-8.94 22.46-15.126 29.98-6.19 7.52-13.9 13.85-23.13 18.987-9.233 5.14-18.183 8.85-26.84 11.137-8.663 2.285-18.416 4.003-29.264 5.145 9.894 8.564 14.842 22.08 14.842 40.54v60.23c0 3.42 1.19 6.28 3.572 8.56 2.38 2.28 6.133 2.95 11.273 1.995 44.164-14.653 80.186-41.062 108.07-79.226 27.88-38.16 41.83-81.13 41.83-128.91-.01-39.77-9.82-76.455-29.417-110.05z"/></symbol><symbol viewBox="0 0 8 8" id="icon-globe"><title>globe</title> <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1c.33 0 .64.09.94.19-.21.2-.45.38-.41.56.04.18.69.13.69.5 0 .27-.42.35-.13.66.35.35-.64.98-.66 1.44-.03.83.84.97 1.53.97.42 0 .53.2.5.44-.54.77-1.46 1.25-2.47 1.25-.38 0-.73-.09-1.06-.22.22-.44-.28-1.31-.75-1.59-.23-.23-.72-.14-1-.25-.09-.27-.18-.54-.19-.84.03-.05.08-.09.16-.09.19 0 .45.38.59.34.18-.04-.74-1.31-.31-1.56.2-.12.6.39.47-.16-.12-.51.36-.28.66-.41.26-.11.45-.41.13-.59-.06-.03-.13-.1-.22-.19.45-.27.97-.44 1.53-.44zm2.31 1.09c.18.22.32.46.44.72 0 .01 0 .02 0 .03-.04.07-.11.11-.22.22-.28.28-.32-.21-.44-.31-.13-.12-.6.02-.66-.13-.07-.18.5-.42.88-.53z"/> </symbol><symbol viewBox="0 0 475.092 475.092" id="icon-google"><title>google</title><path d="M273.372 302.498c-5.04-6.762-10.608-13.045-16.7-18.842-6.09-5.804-12.183-11.088-18.27-15.845-6.093-4.75-11.66-9.32-16.703-13.7-5.05-4.374-9.14-8.945-12.28-13.702-3.14-4.756-4.71-9.61-4.71-14.557 0-6.855 2.19-13.28 6.562-19.274 4.376-5.996 9.706-11.8 15.985-17.417 6.28-5.617 12.56-11.753 18.844-18.415 6.276-6.665 11.604-15.465 15.985-26.412 4.372-10.943 6.562-23.457 6.562-37.54 0-16.75-3.713-32.836-11.136-48.25-7.42-15.42-17.89-27.413-31.403-35.977h38.54L303.2 0H178.44c-17.698 0-35.497 1.906-53.383 5.72-26.453 5.9-48.723 19.368-66.806 40.397-18.08 21.033-27.12 44.873-27.12 71.52 0 28.17 10.14 51.583 30.41 70.233 20.27 18.65 44.588 27.978 72.948 27.978 5.71 0 12.37-.478 19.986-1.427-.38 1.53-1.043 3.57-1.997 6.14s-1.715 4.62-2.286 6.14c-.57 1.52-1.047 3.38-1.425 5.57-.38 2.19-.57 4.43-.57 6.71 0 12.564 6.086 26.745 18.27 42.54-14.464.39-28.736 1.67-42.824 3.86-14.083 2.19-28.832 5.618-44.25 10.28-15.417 4.66-29.217 11.42-41.396 20.27-12.182 8.856-21.317 19.368-27.41 31.55C3.534 361.56.01 374.41.01 386.02c0 12.75 2.857 24.313 8.565 34.69 5.708 10.37 13.035 18.84 21.982 25.405 8.945 6.57 19.273 12.083 30.978 16.562 11.704 4.47 23.315 7.66 34.83 9.562 11.515 1.903 22.887 2.854 34.118 2.854 51.007 0 90.98-12.46 119.91-37.39 26.647-23.222 39.97-50.06 39.97-80.516 0-10.855-1.57-20.984-4.712-30.41-3.14-9.43-7.23-17.513-12.27-24.27zm-110.06-103.776c-9.708 0-18.938-2.475-27.695-7.426-8.757-4.95-16.18-11.374-22.27-19.273-6.088-7.898-11.418-16.796-15.987-26.695-4.567-9.896-7.944-19.792-10.135-29.692-2.19-9.895-3.284-19.318-3.284-28.265 0-18.27 4.86-33.97 14.57-47.1 9.706-13.133 23.41-19.7 41.11-19.7 12.565 0 23.937 3.9 34.12 11.704 10.183 7.804 18.177 17.7 23.984 29.69C203.52 73.95 208 86.37 211.14 99.22c3.14 12.847 4.71 24.983 4.71 36.403 0 19.035-4.138 34.316-12.418 45.83-8.283 11.516-21.65 17.274-40.116 17.274zm78.94 214.4c-5.23 8.95-12.32 15.94-21.268 20.982-8.946 5.048-18.51 8.758-28.693 11.14-10.18 2.385-20.88 3.572-32.12 3.572-12.18 0-24.27-1.43-36.25-4.284-11.99-2.85-23.46-7.187-34.402-12.99-10.943-5.8-19.794-13.8-26.55-23.983-6.757-10.19-10.135-21.75-10.135-34.69 0-11.42 2.568-21.61 7.708-30.55 5.143-8.95 11.71-16.09 19.703-21.41 7.992-5.33 17.32-9.72 27.98-13.13 10.66-3.44 20.934-5.81 30.83-7.14 9.894-1.34 19.984-2 30.26-2 6.283 0 11.043.19 14.277.565 1.142.767 4.042 2.76 8.707 5.996s7.804 5.428 9.423 6.57c1.614 1.137 4.566 3.326 8.85 6.563 4.28 3.235 7.326 5.66 9.134 7.28 1.804 1.615 4.422 4.042 7.85 7.276 3.424 3.237 5.948 6.043 7.566 8.422 1.613 2.377 3.614 5.28 5.994 8.7 2.38 3.434 4.043 6.716 4.998 9.856.948 3.14 1.854 6.564 2.707 10.274.85 3.72 1.28 7.57 1.28 11.57.003 11.987-2.615 22.456-7.85 31.397zM401.998 73.09V0h-36.55v73.09h-73.09v36.546h73.09v73.09H402v-73.09h73.083V73.09z"/></symbol><symbol viewBox="0 0 8 8" id="icon-graph"><title>graph</title> <path d="M7.03 0l-3.03 3-1-1-3 3.03 1 1 2-2.03 1 1 4-4-.97-1zm-7.03 7v1h8v-1h-8z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-grid-four-up"><title>grid-four-up</title> <path d="M0 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-grid-three-up"><title>grid-three-up</title> <path d="M0 0v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2zm-6 3v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2zm-6 3v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-grid-two-up"><title>grid-two-up</title> <path d="M0 0v3h3v-3h-3zm5 0v3h3v-3h-3zm-5 5v3h3v-3h-3zm5 0v3h3v-3h-3z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-hard-drive"><title>hard-drive</title> <path d="M.19 0c-.11 0-.19.08-.19.19v3.31c0 .28.22.5.5.5h6c.28 0 .5-.22.5-.5v-3.31c0-.11-.08-.19-.19-.19h-6.63zm-.19 4.91v2.91c0 .11.08.19.19.19h6.63c.11 0 .19-.08.19-.19v-2.91c-.16.06-.32.09-.5.09h-6c-.18 0-.34-.04-.5-.09zm5.5 1.09c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-header"><title>header</title> <path d="M0 0v1h.5c.28 0 .5.22.5.5v4c0 .28-.22.5-.5.5h-.5v1h3v-1h-.5c-.28 0-.5-.22-.5-.5v-1.5h3v1.5c0 .28-.22.5-.5.5h-.5v1h3v-1h-.5c-.28 0-.5-.22-.5-.5v-4c0-.28.22-.5.5-.5h.5v-1h-3v1h.5c.28 0 .5.22.5.5v1.5h-3v-1.5c0-.28.22-.5.5-.5h.5v-1h-3z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-headphones"><title>headphones</title> <path d="M4 0c-1.65 0-3 1.35-3 3v1h-.5a.5.5 0 0 0-.5.5v2a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-3.5c0-1.11.89-2 2-2 1.11 0 2 .89 2 2v3.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-2a.5.5 0 0 0-.5-.5h-.5v-1c0-1.65-1.35-3-3-3z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-heart"><title>heart</title> <path d="M2 0c-.55 0-1.04.23-1.41.59-.36.36-.59.85-.59 1.41 0 .55.23 1.04.59 1.41l3.41 3.41 3.41-3.41c.36-.36.59-.85.59-1.41 0-.55-.23-1.04-.59-1.41-.36-.36-.85-.59-1.41-.59-.55 0-1.04.23-1.41.59-.36.36-.59.85-.59 1.41 0-.55-.23-1.04-.59-1.41-.36-.36-.85-.59-1.41-.59z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-home"><title>home</title> <path d="M4 0l-4 3h1v4h2v-2h2v2h2v-4.03l1 .03-4-3z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-image"><title>image</title> <path d="M0 0v8h8v-8h-8zm1 1h6v3l-1-1-1 1 2 2v1h-1l-4-4-1 1v-3z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-inbox"><title>inbox</title> <path d="M.19 0c-.11 0-.19.08-.19.19v7.63c0 .11.08.19.19.19h7.63c.11 0 .19-.08.19-.19v-7.63c0-.11-.08-.19-.19-.19h-7.63zm.81 2h6v3h-1l-1 1h-2l-1-1h-1v-3z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-infinity"><title>infinity</title> <path d="M2 0c-1.31 0-2 1.01-2 2s.69 2 2 2c.79 0 1.42-.56 2-1.22.58.66 1.19 1.22 2 1.22 1.31 0 2-1.01 2-2s-.69-2-2-2c-.81 0-1.42.56-2 1.22-.58-.66-1.21-1.22-2-1.22zm0 1c.42 0 .88.47 1.34 1-.46.53-.92 1-1.34 1-.74 0-1-.54-1-1 0-.46.26-1 1-1zm4 0c.74 0 1 .54 1 1 0 .46-.26 1-1 1-.43 0-.89-.47-1.34-1 .46-.53.91-1 1.34-1z" transform="translate(0 2)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-info"><title>info</title> <path d="M3 0c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-1.5 2.5c-.83 0-1.5.67-1.5 1.5h1c0-.28.22-.5.5-.5s.5.22.5.5-1 1.64-1 2.5c0 .86.67 1.5 1.5 1.5s1.5-.67 1.5-1.5h-1c0 .28-.22.5-.5.5s-.5-.22-.5-.5c0-.36 1-1.84 1-2.5 0-.81-.67-1.5-1.5-1.5z" transform="translate(2)"/> </symbol><symbol viewBox="0 0 36.02 36.02" id="icon-information"><title>information</title><path d="M373,545.54a18,18,0,1,1,18-18A18,18,0,0,1,373,545.54Zm0-34a16,16,0,1,0,16,16A16,16,0,0,0,373,511.53Z" transform="translate(-354.99 -509.53)"/><path d="M377.73,536.41h-9.46a1,1,0,1,1,0-2h9.46A1,1,0,0,1,377.73,536.41Z" transform="translate(-354.99 -509.53)"/><path d="M375,525.54h-6.73a1,1,0,1,1,0-2H375A1,1,0,1,1,375,525.54Z" transform="translate(-354.99 -509.53)"/><path d="M375,535.41a1,1,0,0,1-1-1v-9.87a1,1,0,1,1,2,0v9.87A1,1,0,0,1,375,535.41Z" transform="translate(-354.99 -509.53)"/><path d="M373,523a3,3,0,1,1,3-3A3,3,0,0,1,373,523Zm0-4a1,1,0,1,0,1,1A1,1,0,0,0,373,519Z" transform="translate(-354.99 -509.53)"/><path d="M371,535.41a1,1,0,0,1-1-1v-9.87a1,1,0,1,1,2,0v9.87A1,1,0,0,1,371,535.41Z" transform="translate(-354.99 -509.53)"/></symbol><symbol viewBox="0 0 438.536 438.536" id="icon-instagram"><title>instagram</title><path d="M421.98 16.562C410.94 5.52 397.71 0 382.3 0H56.248C40.83 0 27.604 5.52 16.56 16.562 5.52 27.6 0 40.828 0 56.242V382.29c0 15.413 5.52 28.644 16.56 39.683 11.044 11.04 24.273 16.563 39.688 16.563h326.046c15.41 0 28.644-5.523 39.684-16.563 11.043-11.04 16.557-24.27 16.557-39.683V56.243c0-15.418-5.514-28.64-16.554-39.68zM157.463 158.025c17.224-16.652 37.924-24.982 62.097-24.982 24.36 0 45.152 8.33 62.38 24.982 17.228 16.655 25.837 36.785 25.837 60.386 0 23.6-8.61 43.73-25.837 60.38-17.228 16.66-38.014 24.99-62.38 24.99-24.173 0-44.87-8.33-62.098-24.99s-25.84-36.78-25.84-60.38 8.612-43.73 25.84-60.38zM388.865 370.59c0 4.944-1.718 9.082-5.14 12.415-3.434 3.33-7.52 4.996-12.283 4.996h-305.2c-4.948 0-9.09-1.66-12.42-4.99-3.332-3.323-4.997-7.47-4.997-12.413v-185.02H89.08c-3.805 11.994-5.708 24.463-5.708 37.403 0 36.552 13.322 67.714 39.97 93.51 26.65 25.786 58.72 38.685 96.216 38.685 24.744 0 47.583-5.903 68.527-17.703 20.937-11.81 37.486-27.84 49.676-48.113 12.19-20.274 18.28-42.4 18.28-66.38 0-12.94-1.91-25.408-5.712-37.404h38.548V370.59zm0-254.964c0 5.52-1.903 10.184-5.716 13.99-3.81 3.81-8.47 5.71-13.99 5.71h-49.68c-5.52 0-10.19-1.902-13.99-5.71-3.81-3.806-5.71-8.47-5.71-13.99V68.522c0-5.33 1.9-9.945 5.71-13.848 3.8-3.9 8.47-5.854 13.99-5.854h49.67c5.523 0 10.185 1.952 13.99 5.854 3.81 3.903 5.715 8.518 5.715 13.848v47.104z"/></symbol><symbol viewBox="0 0 8 8" id="icon-italic"><title>italic</title> <path d="M2 0v1h1.63l-.06.13-2 5-.34.88h-1.22v1h5v-1h-1.63l.06-.13 2-5 .34-.88h1.22v-1h-5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-justify-center"><title>justify-center</title> <path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm1 2v1h6v-1h-6z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-justify-left"><title>justify-left</title> <path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h6v-1h-6z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-justify-right"><title>justify-right</title> <path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm2 2v1h6v-1h-6z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-key"><title>key</title> <path d="M5.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .16 0 .32.03.47l-3.03 3.03v2h3v-2h2v-1l.03-.03c.15.03.31.03.47.03 1.38 0 2.5-1.12 2.5-2.5s-1.12-2.5-2.5-2.5zm.5 1c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-laptop"><title>laptop</title> <path d="M1.34 0a.5.5 0 0 0-.34.5v3.5h-1v1.5c0 .28.22.5.5.5h7.010000000000001c.28 0 .5-.22.5-.5v-1.5h-1v-3.5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0-.09 0 .5.5 0 0 0-.06 0zm.66 1h4v3h-1v1h-2v-1h-1v-3z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-layers"><title>layers</title> <path d="M0 0v4h4v-4h-4zm5 2v3h-3v1h4v-4h-1zm2 2v3h-3v1h4v-4h-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-lightbulb"><title>lightbulb</title> <path d="M3.41 0a.5.5 0 0 0-.13.06l-3 1.5a.5.5 0 1 0 .44.88l3-1.5a.5.5 0 0 0-.31-.94zm1 1.5a.5.5 0 0 0-.13.06l-4 2a.5.5 0 1 0 .44.88l4-2a.5.5 0 0 0-.31-.94zm0 2a.5.5 0 0 0-.13.06l-3 1.5a.5.5 0 0 0 .22.94h2a.5.5 0 0 0 .16-1l1.06-.56a.5.5 0 0 0-.31-.94zm-2.56 3.5a.5.5 0 0 0 .16 1h1a.5.5 0 1 0 0-1h-1a.5.5 0 0 0-.09 0 .5.5 0 0 0-.06 0z" transform="translate(1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-link-broken"><title>link-broken</title> <path d="M2 0v1h-1v1h2v-2h-1zm3.88.03c-.18.01-.36.03-.53.09-.27.1-.53.25-.75.47l-.44.44a.5.5 0 1 0 .69.69l.44-.44c.11-.11.24-.17.38-.22.35-.12.78-.07 1.06.22.39.39.39 1.04 0 1.44l-1.5 1.5a.5.5 0 1 0 .69.69l1.5-1.5c.78-.78.78-2.04 0-2.81-.28-.28-.61-.45-.97-.53-.18-.04-.38-.04-.56-.03zm-3.59 2.91a.5.5 0 0 0-.19.16l-1.5 1.5c-.78.78-.78 2.04 0 2.81.56.56 1.36.72 2.06.47.27-.1.53-.25.75-.47l.44-.44a.5.5 0 1 0-.69-.69l-.44.44c-.11.11-.24.17-.38.22-.35.12-.78.07-1.06-.22-.39-.39-.39-1.04 0-1.44l1.5-1.5a.5.5 0 0 0-.44-.84.5.5 0 0 0-.06 0zm2.72 3.06v2h1v-1h1v-1h-2z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-link-intact"><title>link-intact</title> <path d="M5.88.03c-.18.01-.36.03-.53.09-.27.1-.53.25-.75.47a.5.5 0 1 0 .69.69c.11-.11.24-.17.38-.22.35-.12.78-.07 1.06.22.39.39.39 1.04 0 1.44l-1.5 1.5c-.44.44-.8.48-1.06.47-.26-.01-.41-.13-.41-.13a.5.5 0 1 0-.5.88s.34.22.84.25c.5.03 1.2-.16 1.81-.78l1.5-1.5c.78-.78.78-2.04 0-2.81-.28-.28-.61-.45-.97-.53-.18-.04-.38-.04-.56-.03zm-2 2.31c-.5-.02-1.19.15-1.78.75l-1.5 1.5c-.78.78-.78 2.04 0 2.81.56.56 1.36.72 2.06.47.27-.1.53-.25.75-.47a.5.5 0 1 0-.69-.69c-.11.11-.24.17-.38.22-.35.12-.78.07-1.06-.22-.39-.39-.39-1.04 0-1.44l1.5-1.5c.4-.4.75-.45 1.03-.44.28.01.47.09.47.09a.5.5 0 1 0 .44-.88s-.34-.2-.84-.22z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-list-rich"><title>list-rich</title> <path d="M0 0v3h3v-3h-3zm4 0v1h4v-1h-4zm0 2v1h3v-1h-3zm-4 2v3h3v-3h-3zm4 0v1h4v-1h-4zm0 2v1h3v-1h-3z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-list"><title>list</title> <path d="M.5 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm1.5 0v1h6v-1h-6z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-location"><title>location</title> <path d="M8 0l-8 4 3 1 1 3 4-8z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-lock-locked"><title>lock-locked</title> <path d="M3 0c-1.1 0-2 .9-2 2v1h-1v4h6v-4h-1v-1c0-1.1-.9-2-2-2zm0 1c.56 0 1 .44 1 1v1h-2v-1c0-.56.44-1 1-1z" transform="translate(1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-lock-unlocked"><title>lock-unlocked</title> <path d="M3 0c-1.1 0-2 .9-2 2h1c0-.56.44-1 1-1s1 .44 1 1v2h-4v4h6v-4h-1v-2c0-1.1-.9-2-2-2z" transform="translate(1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-loop-circular"><title>loop-circular</title> <path d="M4 0c-1.65 0-3 1.35-3 3h-1l1.5 2 1.5-2h-1c0-1.11.89-2 2-2v-1zm2.5 1l-1.5 2h1c0 1.11-.89 2-2 2v1c1.65 0 3-1.35 3-3h1l-1.5-2z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-loop-square"><title>loop-square</title> <path d="M1 0v2h1v-1h4v2h-1l1.5 2.5 1.5-2.5h-1v-3h-6zm.5 2.5l-1.5 2.5h1v3h6v-2h-1v1h-4v-2h1l-1.5-2.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-loop"><title>loop</title> <path d="M6 0v1h-5c-.55 0-1 .45-1 1v1h1v-1h5v1l2-1.5-2-1.5zm-4 4l-2 1.5 2 1.5v-1h5c.55 0 1-.45 1-1v-1h-1v1h-5v-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-magnifying-glass"><title>magnifying-glass</title> <path d="M3.5 0c-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5c.59 0 1.17-.14 1.66-.41a1 1 0 0 0 .13.13l1 1a1.02 1.02 0 1 0 1.44-1.44l-1-1a1 1 0 0 0-.16-.13c.27-.49.44-1.06.44-1.66 0-1.93-1.57-3.5-3.5-3.5zm0 1c1.39 0 2.5 1.11 2.5 2.5 0 .66-.24 1.27-.66 1.72-.01.01-.02.02-.03.03a1 1 0 0 0-.13.13c-.44.4-1.04.63-1.69.63-1.39 0-2.5-1.11-2.5-2.5s1.11-2.5 2.5-2.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-map-marker"><title>map-marker</title> <path d="M3 0c-1.66 0-3 1.34-3 3 0 2 3 5 3 5s3-3 3-5c0-1.66-1.34-3-3-3zm0 1c1.11 0 2 .9 2 2 0 1.11-.89 2-2 2-1.1 0-2-.89-2-2 0-1.1.9-2 2-2z" transform="translate(1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-map"><title>map</title> <path d="M0 0v8h8v-2.38a.5.5 0 0 0 0-.22v-5.41h-8zm1 1h6v4h-1.5a.5.5 0 0 0-.09 0 .5.5 0 1 0 .09 1h1.5v1h-6v-6zm2.5 1c-.83 0-1.5.67-1.5 1.5 0 1 1.5 2.5 1.5 2.5s1.5-1.5 1.5-2.5c0-.83-.67-1.5-1.5-1.5zm0 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-media-pause"><title>media-pause</title> <path d="M0 0v6h2v-6h-2zm4 0v6h2v-6h-2z" transform="translate(1 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-media-play"><title>media-play</title> <path d="M0 0v6l6-3-6-3z" transform="translate(1 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-media-record"><title>media-record</title> <path d="M3 0c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z" transform="translate(1 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-media-skip-backward"><title>media-skip-backward</title> <path d="M4 0l-4 3 4 3v-6zm0 3l4 3v-6l-4 3z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-media-skip-forward"><title>media-skip-forward</title> <path d="M0 0v6l4-3-4-3zm4 3v3l4-3-4-3v3z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-media-step-backward"><title>media-step-backward</title> <path d="M0 0v6h2v-6h-2zm2 3l5 3v-6l-5 3z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-media-step-forward"><title>media-step-forward</title> <path d="M0 0v6l5-3-5-3zm5 3v3h2v-6h-2v3z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-media-stop"><title>media-stop</title> <path d="M0 0v6h6v-6h-6z" transform="translate(1 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-medical-cross"><title>medical-cross</title> <path d="M2 0v2h-2v4h2v2h4v-2h2v-4h-2v-2h-4z"/> </symbol><symbol viewBox="0 0 36.02 36.02" id="icon-meetings"><title>meetings</title><path d="M693.07,543.84a18,18,0,1,1,18-18A18,18,0,0,1,693.07,543.84Zm0-34a16,16,0,1,0,16,16A16,16,0,0,0,693.07,509.83Z" transform="translate(-675.07 -507.83)"/><path d="M693.07,526.93a4.1,4.1,0,1,1,4.1-4.1A4.1,4.1,0,0,1,693.07,526.93Zm0-6.19a2.1,2.1,0,1,0,2.1,2.1A2.1,2.1,0,0,0,693.07,520.74Z" transform="translate(-675.07 -507.83)"/><path d="M693.07,536.65a1,1,0,0,1-.67-0.26c-0.29-.26-7.11-6.5-7.11-14a7.78,7.78,0,0,1,15.57,0c0,7.46-6.82,13.71-7.11,14A1,1,0,0,1,693.07,536.65Zm0-20a5.79,5.79,0,0,0-5.78,5.78c0,5.29,4.13,10.11,5.78,11.82,1.65-1.72,5.78-6.54,5.78-11.82A5.79,5.79,0,0,0,693.07,516.64Z" transform="translate(-675.07 -507.83)"/></symbol><symbol viewBox="0 0 8 8" id="icon-menu"><title>menu</title> <path d="M0 0v1h8v-1h-8zm0 2.97v1h8v-1h-8zm0 3v1h8v-1h-8z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-microphone"><title>microphone</title> <path d="M2.91-.03a1 1 0 0 0-.13.03 1 1 0 0 0-.78 1v2a1 1 0 1 0 2 0v-2a1 1 0 0 0-1.09-1.03zm-2.56 2.03a.5.5 0 0 0-.34.5v.5c0 1.48 1.09 2.69 2.5 2.94v1.06h-.5c-.55 0-1 .45-1 1h4.01c0-.55-.45-1-1-1h-.5v-1.06c1.41-.24 2.5-1.46 2.5-2.94v-.5a.5.5 0 1 0-1 0v.5c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2v-.5a.5.5 0 0 0-.59-.5.5.5 0 0 0-.06 0z" transform="translate(1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-minus"><title>minus</title> <path d="M0 0v2h8v-2h-8z" transform="translate(0 3)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-monitor"><title>monitor</title> <path d="M.34 0a.5.5 0 0 0-.34.5v5a.5.5 0 0 0 .5.5h2.5v1h-1c-.55 0-1 .45-1 1h6c0-.55-.45-1-1-1h-1v-1h2.5a.5.5 0 0 0 .5-.5v-5a.5.5 0 0 0-.5-.5h-7a.5.5 0 0 0-.09 0 .5.5 0 0 0-.06 0zm.66 1h6v4h-6v-4z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-moon"><title>moon</title> <path d="M2.72 0c-1.58.53-2.72 2.02-2.72 3.78 0 2.21 1.79 4 4 4 1.76 0 3.25-1.14 3.78-2.72-.4.13-.83.22-1.28.22-2.21 0-4-1.79-4-4 0-.45.08-.88.22-1.28z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-move"><title>move</title> <path d="M3.5 0l-1.5 1.5h1v1.5h-1.5v-1l-1.5 1.5 1.5 1.5v-1h1.5v1.5h-1l1.5 1.5 1.5-1.5h-1v-1.5h1.5v1l1.5-1.5-1.5-1.5v1h-1.5v-1.5h1l-1.5-1.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-musical-note"><title>musical-note</title> <path d="M8 0c-5 0-6 1-6 1v4.09c-.15-.05-.33-.09-.5-.09-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5v-3.97c.73-.23 1.99-.44 4-.5v2.06c-.15-.05-.33-.09-.5-.09-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5v-5.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-paperclip"><title>paperclip</title> <path d="M5 0c-.51 0-1.02.21-1.41.59l-2.78 2.72c-1.07 1.07-1.07 2.8 0 3.88 1.07 1.07 2.8 1.07 3.88 0l1.25-1.25-.69-.69-1.16 1.13-.09.13c-.69.69-1.81.69-2.5 0-.68-.68-.66-1.78 0-2.47l2.78-2.75c.39-.39 1.04-.39 1.44 0 .39.39.37 1.01 0 1.41l-2.5 2.47c-.1.1-.27.1-.38 0-.1-.1-.1-.27 0-.38l.06-.03.91-.94-.69-.69-.97.97c-.48.48-.48 1.27 0 1.75s1.27.49 1.75 0l2.5-2.44c.78-.78.78-2.04 0-2.81-.39-.39-.89-.59-1.41-.59z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-pencil"><title>pencil</title> <path d="M6 0l-1 1 2 2 1-1-2-2zm-2 2l-4 4v2h2l4-4-2-2z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-people"><title>people</title> <path d="M5.5 0c-.51 0-.95.35-1.22.88.45.54.72 1.28.72 2.13 0 .29-.03.55-.09.81.19.11.38.19.59.19.83 0 1.5-.9 1.5-2s-.67-2-1.5-2zm-3 1c-.83 0-1.5.9-1.5 2s.67 2 1.5 2 1.5-.9 1.5-2-.67-2-1.5-2zm4.75 3.16c-.43.51-1.02.82-1.69.84.27.38.44.84.44 1.34v.66h2v-1.66c0-.52-.31-.97-.75-1.19zm-6.5 1c-.44.22-.75.67-.75 1.19v1.66h5v-1.66c0-.52-.31-.97-.75-1.19-.45.53-1.06.84-1.75.84s-1.3-.32-1.75-.84z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-person"><title>person</title> <path d="M4 0c-1.1 0-2 1.12-2 2.5s.9 2.5 2 2.5 2-1.12 2-2.5-.9-2.5-2-2.5zm-2.09 5c-1.06.05-1.91.92-1.91 2v1h8v-1c0-1.08-.84-1.95-1.91-2-.54.61-1.28 1-2.09 1-.81 0-1.55-.39-2.09-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-phone"><title>phone</title> <path d="M.19 0c-.11 0-.19.08-.19.19v7.63c0 .11.08.19.19.19h4.63c.11 0 .19-.08.19-.19v-7.63c0-.11-.08-.19-.19-.19h-4.63zm.81 1h3v5h-3v-5zm1.5 5.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" transform="translate(1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-pie-chart"><title>pie-chart</title> <path d="M3.5 0c-.97 0-1.84.4-2.47 1.03l2.97 2.97v-3.97c-.16-.02-.33-.03-.5-.03zm1.5 1.06v3.41l-2.72 2.72c.61.5 1.37.81 2.22.81 1.93 0 3.5-1.57 3.5-3.5 0-1.76-1.31-3.19-3-3.44zm-4.09 1.31c-.56.54-.91 1.29-.91 2.13 0 .96.46 1.79 1.16 2.34l2.13-2.13-2.38-2.34z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-pin"><title>pin</title> <path d="M1.34 0a.5.5 0 0 0 .16 1h.5v2h-1c-.55 0-1 .45-1 1h3v3l.44 1 .56-1v-3h3c0-.55-.45-1-1-1h-1v-2h.5a.5.5 0 1 0 0-1h-4a.5.5 0 0 0-.09 0 .5.5 0 0 0-.06 0z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-play-circle"><title>play-circle</title> <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1 2l3 2-3 2v-4z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-plus"><title>plus</title> <path d="M3 0v3h-3v2h3v3h2v-3h3v-2h-3v-3h-2z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-power-standby"><title>power-standby</title> <path d="M3 0v4h1v-4h-1zm-1.28 1.44l-.38.31c-.81.64-1.34 1.64-1.34 2.75 0 1.93 1.57 3.5 3.5 3.5s3.5-1.57 3.5-3.5c0-1.11-.53-2.11-1.34-2.75l-.38-.31-.63.78.38.31c.58.46.97 1.17.97 1.97 0 1.39-1.11 2.5-2.5 2.5s-2.5-1.11-2.5-2.5c0-.8.36-1.51.94-1.97l.41-.31-.63-.78z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-print"><title>print</title> <path d="M2 0v2h4v-2h-4zm-1.91 3c-.06 0-.09.04-.09.09v2.81c0 .05.04.09.09.09h.91v-2h6v2h.91c.05 0 .09-.04.09-.09v-2.81c0-.06-.04-.09-.09-.09h-7.81zm1.91 2v3h4v-3h-4z"/> </symbol><symbol viewBox="0 0 36.02 36.02" id="icon-process"><title>icono-process</title><path class="cls-1" d="M883.8,543.84a18,18,0,1,1,18-18A18,18,0,0,1,883.8,543.84Zm0-34a16,16,0,1,0,16,16A16,16,0,0,0,883.8,509.83Z" transform="translate(-865.8 -507.83)"/><path class="cls-1" d="M883.8,528.75a2.91,2.91,0,1,1,2.91-2.91A2.92,2.92,0,0,1,883.8,528.75Zm0-3.83a0.91,0.91,0,1,0,.91.92A0.92,0.92,0,0,0,883.8,524.92Z" transform="translate(-865.8 -507.83)"/><path class="cls-1" d="M883.8,521.18a2.91,2.91,0,1,1,2.91-2.91A2.92,2.92,0,0,1,883.8,521.18Zm0-3.83a0.91,0.91,0,1,0,.91.92A0.92,0.92,0,0,0,883.8,517.35Z" transform="translate(-865.8 -507.83)"/><path class="cls-1" d="M883.8,536.32a2.92,2.92,0,1,1,2.91-2.91A2.92,2.92,0,0,1,883.8,536.32Zm0-3.83a0.92,0.92,0,1,0,.91.92A0.92,0.92,0,0,0,883.8,532.49Z" transform="translate(-865.8 -507.83)"/><path class="cls-1" d="M881.52,526.85a4.79,4.79,0,1,1,0-9.59,1,1,0,0,1,0,2,2.79,2.79,0,1,0,0,5.59A1,1,0,0,1,881.52,526.85Z" transform="translate(-865.8 -507.83)"/><path class="cls-1" d="M886.09,534.47a1,1,0,0,1,0-2,2.79,2.79,0,0,0,0-5.59,1,1,0,0,1,0-2A4.79,4.79,0,0,1,886.09,534.47Z" transform="translate(-865.8 -507.83)"/></symbol><symbol viewBox="0 0 8 8" id="icon-project"><title>project</title> <path d="M0 0v7h1v-7h-1zm7 0v7h1v-7h-1zm-5 1v1h2v-1h-2zm1 2v1h2v-1h-2zm1 2v1h2v-1h-2z"/> </symbol><symbol viewBox="0 0 35 35" id="icon-proposals"><title>proposals</title><path d="M17.5 35A17.5 17.5 0 1 1 35 17.5 17.52 17.52 0 0 1 17.5 35zm0-33.06A15.56 15.56 0 1 0 33.06 17.5 15.57 15.57 0 0 0 17.5 1.94zm9.5 13.7H8a1 1 0 0 1 0-1.94h19a1 1 0 0 1 0 1.94zm0 3.68H8a1 1 0 0 1 0-1.94h19a1 1 0 0 1 0 1.94zM22.26 23H8a1 1 0 0 1 0-1.94h14.26a1 1 0 0 1 0 1.94z"/></symbol><symbol viewBox="0 0 8 8" id="icon-pulse"><title>pulse</title> <path d="M3.25 0l-.47 1.53-.78 2.56-.03-.06-.09-.34h-1.88v1h1.1600000000000001l.38 1.16.47 1.47.47-1.5.78-2.5.78 2.5.41 1.34.53-1.28.59-1.47.13.28h2.31v-1h-1.69l-.38-.75-.5-.97-.41 1.03-.47 1.19-.84-2.66-.47-1.53z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-puzzle-piece"><title>puzzle-piece</title> <path d="M3 0c-.28 0-.54.1-.72.28-.18.18-.28.44-.28.72 0 .28.18.48.28.72.03.06.03.16.03.28h-2.31v6h2.31c0-.12-.01-.22-.03-.28-.1-.24-.28-.44-.28-.72 0-.28.1-.54.28-.72.18-.18.44-.28.72-.28.28 0 .54.1.72.28.18.18.28.44.28.72 0 .28-.18.48-.28.72-.03.06-.03.16-.03.28h2.31v-2.31c.12 0 .22.01.28.03.24.1.44.28.72.28.28 0 .54-.1.72-.28.18-.18.28-.44.28-.72 0-.28-.1-.54-.28-.72-.18-.18-.44-.28-.72-.28-.28 0-.48.18-.72.28-.06.03-.16.03-.28.03v-2.31h-2.31c0-.12.01-.22.03-.28.1-.24.28-.44.28-.72 0-.28-.1-.54-.28-.72-.18-.18-.44-.28-.72-.28z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-question-mark"><title>question-mark</title> <path d="M2.47 0c-.85 0-1.48.26-1.88.66-.4.4-.54.9-.59 1.28l1 .13c.04-.25.12-.5.31-.69.19-.19.49-.38 1.16-.38.66 0 1.02.16 1.22.34.2.18.28.4.28.66 0 .83-.34 1.06-.84 1.5-.5.44-1.16 1.08-1.16 2.25v.25h1v-.25c0-.83.31-1.06.81-1.5.5-.44 1.19-1.08 1.19-2.25 0-.48-.17-1.02-.59-1.41-.43-.39-1.07-.59-1.91-.59zm-.5 7v1h1v-1h-1z" transform="translate(2)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-rain"><title>rain</title> <path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .53.2.99.53 1.34.26-.22.6-.34.97-.34.2 0 .39.05.56.13.17-.64.74-1.13 1.44-1.13.69 0 1.27.49 1.44 1.13.17-.07.36-.13.56-.13.63 0 1.15.39 1.38.94.64-.17 1.13-.75 1.13-1.44 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm-1.16 5a.5.5 0 0 0-.34.5v2a.5.5 0 1 0 1 0v-2a.5.5 0 0 0-.59-.5.5.5 0 0 0-.06 0zm-2 1a.5.5 0 0 0-.34.5v1a.5.5 0 1 0 1 0v-1a.5.5 0 0 0-.59-.5.5.5 0 0 0-.06 0zm4 0a.5.5 0 0 0-.34.5v1a.5.5 0 1 0 1 0v-1a.5.5 0 0 0-.59-.5.5.5 0 0 0-.06 0z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-random"><title>random</title> <path d="M6 0v1h-.5c-.35 0-.56.1-.78.38l-1.41 1.78-1.53-1.78c-.22-.26-.44-.38-.78-.38h-1v1h1c-.05 0 .01.04.03.03l1.63 1.91-1.66 2.06h-1v1h1c.35 0 .56-.1.78-.38l1.53-1.91 1.66 1.91c.22.26.44.38.78.38h.25v1l2-1.5-2-1.5v1h-.22c-.01-.01-.05-.04-.06-.03l-1.75-2.06 1.53-1.91h.5v1l2-1.5-2-1.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-reload"><title>reload</title> <path d="M4 0c-2.2 0-4 1.8-4 4s1.8 4 4 4c1.1 0 2.12-.43 2.84-1.16l-.72-.72c-.54.54-1.29.88-2.13.88-1.66 0-3-1.34-3-3s1.34-3 3-3c.83 0 1.55.36 2.09.91l-1.09 1.09h3v-3l-1.19 1.19c-.72-.72-1.71-1.19-2.81-1.19z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-resize-both"><title>resize-both</title> <path d="M4 0l1.66 1.66-4 4-1.66-1.66v4h4l-1.66-1.66 4-4 1.66 1.66v-4h-4z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-resize-height"><title>resize-height</title> <path d="M2.5 0l-2.5 3h2v2h-2l2.5 3 2.5-3h-2v-2h2l-2.5-3z" transform="translate(1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-resize-width"><title>resize-width</title> <path d="M3 0l-3 2.5 3 2.5v-2h2v2l3-2.5-3-2.5v2h-2v-2z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-rss-alt"><title>rss-alt</title> <path d="M0 0v2c3.33 0 6 2.67 6 6h2c0-4.41-3.59-8-8-8zm0 3v2c1.67 0 3 1.33 3 3h2c0-2.75-2.25-5-5-5zm0 3v2h2c0-1.11-.9-2-2-2z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-rss"><title>rss</title> <path d="M1 0v1c3.32 0 6 2.68 6 6h1c0-3.86-3.14-7-7-7zm0 2v1c2.21 0 4 1.79 4 4h1c0-2.76-2.24-5-5-5zm0 2v1c1.11 0 2 .89 2 2h1c0-1.65-1.35-3-3-3zm0 2c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-script"><title>script</title> <path d="M3 0c-.55 0-1 .45-1 1v5.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1.5h-1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-3h-4v-2.5c0-.28.22-.5.5-.5s.5.22.5.5v1.5h4v-2c0-.55-.45-1-1-1h-4z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-share-boxed"><title>share-boxed</title> <path d="M.75 0c-.41 0-.75.34-.75.75v5.5c0 .41.34.75.75.75h4.5c.41 0 .75-.34.75-.75v-1.25h-1v1h-4v-5h2v-1h-2.25zm5.25 0v1c-2.05 0-3.7 1.54-3.94 3.53.21-.88.99-1.53 1.94-1.53h2v1l2-2-2-2z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-share"><title>share</title> <path d="M5 0v2c-4 0-5 2.05-5 5 .52-1.98 2-3 4-3h1v2l3-3.16-3-2.84z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-shield"><title>shield</title> <path d="M4 0l-.19.09-3.5 1.47-.31.13v.31c0 1.66.67 3.12 1.47 4.19.4.53.83.97 1.25 1.28.42.31.83.53 1.28.53.46 0 .86-.22 1.28-.53.42-.31.85-.75 1.25-1.28.8-1.07 1.47-2.53 1.47-4.19v-.31l-.31-.13-3.5-1.47-.19-.09zm0 1.09v5.91c-.04 0-.33-.07-.66-.31s-.71-.63-1.06-1.09c-.64-.85-1.14-2.03-1.22-3.28l2.94-1.22z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-signal"><title>signal</title> <path d="M6 0v8h1v-8h-1zm-2 1v7h1v-7h-1zm-2 2v5h1v-5h-1zm-2 2v3h1v-3h-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-signpost"><title>signpost</title> <path d="M3 0v1h-2l-1 1 1 1h2v5h1v-4h2l1-1-1-1h-2v-2h-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-sort-ascending"><title>sort-ascending</title> <path d="M2 0v6h-2l2.5 2 2.5-2h-2v-6h-1zm2 0v1h2v-1h-2zm0 2v1h3v-1h-3zm0 2v1h4v-1h-4z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-sort-descending"><title>sort-descending</title> <path d="M2 0v6h-2l2.5 2 2.5-2h-2v-6h-1zm2 0v1h4v-1h-4zm0 2v1h3v-1h-3zm0 2v1h2v-1h-2z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-spreadsheet"><title>spreadsheet</title> <path d="M.75 0c-.41 0-.75.34-.75.75v5.5c0 .41.34.75.75.75h6.5c.41 0 .75-.34.75-.75v-5.5c0-.41-.34-.75-.75-.75h-6.5zm.25 1h1v1h-1v-1zm2 0h4v1h-4v-1zm-2 2h1v1h-1v-1zm2 0h4v1h-4v-1zm-2 2h1v1h-1v-1zm2 0h4v1h-4v-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-star"><title>star</title> <path d="M4 0l-1 3h-3l2.5 2-1 3 2.5-2 2.5 2-1-3 2.5-2h-3l-1-3z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-sun"><title>sun</title> <path d="M4 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-2.5 1c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm5 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-2.5 1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-3.5 1.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-6 2.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm5 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-2.5 1c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-tablet"><title>tablet</title> <path d="M.34 0c-.18 0-.34.16-.34.34v7.31c0 .18.16.34.34.34h6.31c.18 0 .34-.16.34-.34v-7.31c0-.18-.16-.34-.34-.34h-6.31zm.66 1h5v5h-5v-5zm2.5 5.5c.38 0 .63.42.44.75s-.68.33-.88 0c-.19-.33.05-.75.44-.75z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-tag"><title>tag</title> <path d="M0 0v3l5 5 3-3-5-5h-3zm2 1c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-tags"><title>tags</title> <path d="M0 0v2l3 3 1.5-1.5.5-.5-2-2-1-1h-2zm3.41 0l3 3-1.19 1.22.78.78 2-2-3-3h-1.59zm-1.91 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-target"><title>target</title> <path d="M4 0c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm0 1c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 1c.56 0 1 .44 1 1s-.44 1-1 1-1-.44-1-1 .44-1 1-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-task"><title>task</title> <path d="M0 0v7h7v-3.59l-1 1v1.59h-5v-5h3.59l1-1h-5.59zm7 0l-3 3-1-1-1 1 2 2 4-4-1-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-terminal"><title>terminal</title> <path d="M.09 0c-.06 0-.09.04-.09.09v7.81c0 .05.04.09.09.09h7.81c.05 0 .09-.04.09-.09v-7.81c0-.06-.04-.09-.09-.09h-7.81zm1.41.78l1.72 1.72-1.72 1.72-.72-.72 1-1-1-1 .72-.72zm2.5 2.22h3v1h-3v-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-text"><title>text</title> <path d="M0 0v2h.5c0-.55.45-1 1-1h1.5v5.5c0 .28-.22.5-.5.5h-.5v1h4v-1h-.5c-.28 0-.5-.22-.5-.5v-5.5h1.5c.55 0 1 .45 1 1h.5v-2h-8z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-thumb-down"><title>thumb-down</title> <path d="M0 0v4h1v-4h-1zm2 0v4c.28 0 .53.09.72.28.19.19 1.15 2.12 1.28 2.38.13.26.39.39.66.31.26-.08.4-.36.31-.63-.08-.26-.47-1.59-.47-1.84s.22-.5.5-.5h1.5c.28 0 .5-.22.5-.5s-1.03-3.19-1.03-3.19c-.08-.18-.26-.31-.47-.31h-3.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-thumb-up"><title>thumb-up</title> <path d="M4.47 0c-.19.02-.37.15-.47.34-.13.26-1.09 2.19-1.28 2.38-.19.19-.44.28-.72.28v4h3.5c.21 0 .39-.13.47-.31 0 0 1.03-2.91 1.03-3.19 0-.28-.22-.5-.5-.5h-1.5c-.28 0-.5-.25-.5-.5s.39-1.58.47-1.84c.08-.26-.05-.54-.31-.63-.07-.02-.12-.04-.19-.03zm-4.47 3v4h1v-4h-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-timer"><title>timer</title> <path d="M2 0v1h1v.03c-1.7.24-3 1.71-3 3.47 0 1.93 1.57 3.5 3.5 3.5s3.5-1.57 3.5-3.5c0-.45-.1-.87-.25-1.25l-.91.38c.11.29.16.57.16.88 0 1.39-1.11 2.5-2.5 2.5s-2.5-1.11-2.5-2.5 1.11-2.5 2.5-2.5c.3 0 .59.05.88.16l.34-.94c-.23-.08-.47-.12-.72-.16v-.06h1v-1h-3zm5 1.16s-3.65 2.81-3.84 3c-.19.2-.19.49 0 .69.19.2.49.2.69 0 .2-.2 3.16-3.69 3.16-3.69z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-transfer"><title>transfer</title> <path d="M6 0v1h-6v1h6v1l2-1.5-2-1.5zm-4 4l-2 1.5 2 1.5v-1h6v-1h-6v-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-trash"><title>trash</title> <path d="M3 0c-.55 0-1 .45-1 1h-1c-.55 0-1 .45-1 1h7c0-.55-.45-1-1-1h-1c0-.55-.45-1-1-1h-1zm-2 3v4.81c0 .11.08.19.19.19h4.63c.11 0 .19-.08.19-.19v-4.81h-1v3.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-3.5h-1v3.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-3.5h-1z"/> </symbol><symbol viewBox="0 0 449.956 449.956" id="icon-twitter"><title>twitter</title><path d="M449.956 85.657c-17.702 7.614-35.408 12.37-53.102 14.28 19.985-11.992 33.503-28.932 40.546-50.82-18.28 10.847-37.787 18.268-58.532 22.267-18.274-19.414-40.73-29.125-67.383-29.125-25.502 0-47.246 8.99-65.24 26.98-17.984 17.98-26.977 39.73-26.977 65.23 0 6.85.76 13.892 2.284 21.13-37.688-1.908-73.042-11.37-106.068-28.41-33.024-17.035-61.05-39.73-84.08-68.09-8.376 14.27-12.564 29.785-12.564 46.534 0 15.798 3.71 30.456 11.136 43.97 7.422 13.512 17.417 24.455 29.98 32.83-14.85-.57-28.743-4.474-41.684-11.707v1.14c0 22.27 6.995 41.825 20.983 58.675C53.245 247.395 70.9 258 92.215 262.38c-7.993 2.09-16.084 3.137-24.267 3.137-5.33 0-11.136-.475-17.416-1.42 5.9 18.46 16.75 33.633 32.546 45.535 15.8 11.896 33.69 18.028 53.677 18.418-33.498 26.262-71.66 39.393-114.486 39.393-8.19 0-15.61-.373-22.27-1.14C42.82 393.9 90.03 407.7 141.61 407.7c32.74 0 63.48-5.18 92.21-15.557 28.747-10.368 53.298-24.266 73.666-41.685 20.362-17.415 37.925-37.448 52.674-60.097 14.75-22.65 25.738-46.29 32.977-70.94 7.23-24.65 10.848-49.342 10.848-74.09 0-5.33-.096-9.325-.287-11.99 18.087-13.13 33.504-29.024 46.258-47.673z"/></symbol><symbol viewBox="0 0 8 8" id="icon-underline"><title>underline</title> <path d="M1 0v4c0 1.1 1.12 2 2.5 2h.5c1.1 0 2-.9 2-2v-4h-1v4c0 .55-.45 1-1 1s-1-.45-1-1v-4h-2zm-1 7v1h7v-1h-7z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-vertical-align-bottom"><title>vertical-align-bottom</title> <path d="M.09 0c-.06 0-.09.04-.09.09v4.81c0 .05.04.09.09.09h1.81c.05 0 .09-.04.09-.09v-4.81c0-.06-.04-.09-.09-.09h-1.81zm6 0c-.05 0-.09.04-.09.09v4.81c0 .05.04.09.09.09h1.81c.05 0 .09-.04.09-.09v-4.81c0-.06-.04-.09-.09-.09h-1.81zm-3 2c-.06 0-.09.04-.09.09v2.81c0 .05.04.09.09.09h1.81c.05 0 .09-.04.09-.09v-2.81c0-.06-.04-.09-.09-.09h-1.81zm-3.09 4v1h8v-1h-8z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-vertical-align-center"><title>vertical-align-center</title> <path d="M.09 0c-.06 0-.09.04-.09.09v1.91h2v-1.91c0-.06-.04-.09-.09-.09h-1.81zm6 0c-.05 0-.09.04-.09.09v1.91h2v-1.91c0-.06-.04-.09-.09-.09h-1.81zm-3 1c-.06 0-.09.04-.09.09v.91h2v-.91c0-.05-.04-.09-.09-.09h-1.81zm-3.09 2v1h8v-1h-8zm0 2v1.91c0 .05.04.09.09.09h1.81c.05 0 .09-.04.09-.09v-1.91h-2zm3 0v.91c0 .05.04.09.09.09h1.81c.05 0 .09-.04.09-.09v-.91h-2zm3 0v1.91c0 .05.04.09.09.09h1.81c.05 0 .09-.04.09-.09v-1.91h-2z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-vertical-align-top"><title>vertical-align-top</title> <path d="M0 0v1h8v-1h-8zm.09 2c-.06 0-.09.04-.09.09v4.81c0 .05.04.09.09.09h1.81c.05 0 .09-.04.09-.09v-4.81c0-.06-.04-.09-.09-.09h-1.81zm3 0c-.06 0-.09.04-.09.09v2.81c0 .05.04.09.09.09h1.81c.05 0 .09-.04.09-.09v-2.81c0-.06-.04-.09-.09-.09h-1.81zm3 0c-.05 0-.09.04-.09.09v4.81c0 .05.04.09.09.09h1.81c.05 0 .09-.04.09-.09v-4.81c0-.06-.04-.09-.09-.09h-1.81z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-video"><title>video</title> <path d="M.5 0c-.28 0-.5.23-.5.5v4c0 .28.23.5.5.5h5c.28 0 .5-.22.5-.5v-1.5l1 1h1v-3h-1l-1 1v-1.5c0-.28-.22-.5-.5-.5h-5z" transform="translate(0 1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-volume-high"><title>volume-high</title> <path d="M3.34 0l-1.34 2h-2v4h2l1.34 2h.66v-8h-.66zm1.66 1v1c.17 0 .34.02.5.06.86.22 1.5 1 1.5 1.94s-.63 1.72-1.5 1.94c-.16.04-.33.06-.5.06v1c.25 0 .48-.04.72-.09h.03c1.3-.33 2.25-1.51 2.25-2.91 0-1.4-.95-2.58-2.25-2.91-.23-.06-.49-.09-.75-.09zm0 2v2c.09 0 .18-.01.25-.03.43-.11.75-.51.75-.97 0-.46-.31-.86-.75-.97-.08-.02-.17-.03-.25-.03z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-volume-low"><title>volume-low</title> <path d="M3.34 0l-1.34 2h-2v4h2l1.34 2h.66v-8h-.66zm1.66 3v2c.09 0 .18-.01.25-.03.43-.11.75-.51.75-.97 0-.46-.31-.86-.75-.97-.08-.02-.17-.03-.25-.03z" transform="translate(1)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-volume-off"><title>volume-off</title> <path d="M3.34 0l-1.34 2h-2v4h2l1.34 2h.66v-8h-.66z" transform="translate(2)"/> </symbol><symbol viewBox="0 0 8 8" id="icon-warning"><title>warning</title> <path d="M3.09 0c-.06 0-.1.04-.13.09l-2.94 6.81c-.02.05-.03.13-.03.19v.81c0 .05.04.09.09.09h6.81c.05 0 .09-.04.09-.09v-.81c0-.05-.01-.14-.03-.19l-2.94-6.81c-.02-.05-.07-.09-.13-.09h-.81zm-.09 3h1v2h-1v-2zm0 3h1v1h-1v-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-wifi"><title>wifi</title> <path d="M3.75 0c-1.38 0-2.66.4-3.75 1.09l.53.81c.93-.59 2.03-.91 3.22-.91 1.2 0 2.32.31 3.25.91l.53-.81c-1.09-.7-2.4-1.09-3.78-1.09zm0 3c-.79 0-1.5.23-2.13.63l.53.84c.47-.3 1-.47 1.59-.47.59 0 1.16.17 1.63.47l.53-.84c-.62-.39-1.37-.63-2.16-.63zm0 3c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-wrench"><title>wrench</title> <path d="M5.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .32.08.62.19.91l-2.91 2.88c-.39.39-.39 1.05 0 1.44.2.2.46.28.72.28.26 0 .52-.09.72-.28l2.88-2.91c.28.11.58.19.91.19 1.38 0 2.5-1.12 2.5-2.5 0-.16 0-.32-.03-.47l-.97.97h-2v-2l.97-.97c-.15-.03-.31-.03-.47-.03zm-4.5 6.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-x"><title>x</title> <path d="M1.41 0l-1.41 1.41.72.72 1.78 1.81-1.78 1.78-.72.69 1.41 1.44.72-.72 1.81-1.81 1.78 1.81.69.72 1.44-1.44-.72-.69-1.81-1.78 1.81-1.81.72-.72-1.44-1.41-.69.72-1.78 1.78-1.81-1.78-.72-.72z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-yen"><title>yen</title> <path d="M0 0l2.25 3h-2.25v1h3v1h-3v1h3v2h1v-2h3v-1h-3v-1h3v-1h-2.25l2.25-3h-1l-2.31 3h-.38l-2.31-3h-1z"/> </symbol><symbol viewBox="0 0 511.627 511.627" id="icon-youtube"><title>youtube</title><path d="M459.954 264.376c-2.47-11.233-7.95-20.653-16.416-28.264-8.474-7.61-18.227-12.085-29.27-13.418-35.02-3.806-87.837-5.708-158.457-5.708-70.61 0-123.34 1.903-158.17 5.708-11.222 1.333-21.03 5.807-29.402 13.418-8.375 7.614-13.895 17.035-16.56 28.264-4.95 22.083-7.424 55.39-7.424 99.93 0 45.3 2.475 78.61 7.423 99.93 2.478 11.226 7.95 20.654 16.42 28.262 8.47 7.614 18.226 11.99 29.264 13.134 35.026 3.997 87.847 5.996 158.46 5.996 70.61 0 123.44-2 158.454-5.996 11.044-1.143 20.75-5.52 29.127-13.134 8.378-7.607 13.898-17.036 16.56-28.26 4.95-22.084 7.427-55.392 7.427-99.93 0-45.3-2.48-78.613-7.425-99.932zm-294.93 28.842h-30.548v162.45h-28.55v-162.45h-29.98V266.38h89.08v26.838zm77.086 162.45H216.7v-15.42c-10.278 11.614-19.99 17.418-29.125 17.418-8.754 0-14.275-3.524-16.556-10.564-1.53-4.568-2.29-11.52-2.29-20.844v-111.63h25.41V418.55c0 6.09.09 9.422.29 9.994.57 3.997 2.57 5.995 5.99 5.995 5.14 0 10.566-4 16.274-12V314.62h25.41v141.04zm97.073-42.257c0 13.9-.855 23.42-2.56 28.56-3.244 10.46-9.996 15.7-20.273 15.7-9.137 0-17.986-5.23-26.556-15.693v13.7h-25.406V266.38h25.406v61.956c8.19-10.273 17.036-15.413 26.556-15.413 10.277 0 17.03 5.33 20.273 15.988 1.704 4.95 2.56 14.37 2.56 28.27v56.24zm96.502-23.4H384.58v24.84c0 13.134 4.375 19.697 13.132 19.697 6.28 0 10.09-3.422 11.42-10.28.376-1.902.57-7.706.57-17.412h25.982v3.71c0 9.33-.195 14.847-.572 16.564-.567 5.133-2.56 10.273-5.995 15.413-6.852 10.09-17.14 15.134-30.84 15.134-13.128 0-23.408-4.854-30.834-14.557-5.517-7.045-8.275-18.085-8.275-33.12v-49.4c0-15.037 2.662-26.077 7.987-33.12 7.427-9.705 17.61-14.558 30.557-14.558 12.755 0 22.85 4.852 30.263 14.557 5.146 7.04 7.71 18.08 7.71 33.12v29.41zm-133.05-53.96c-4.38 0-8.66 2.1-12.848 6.28v85.936c4.188 4.187 8.467 6.28 12.847 6.28 7.42 0 11.14-6.372 11.14-19.13V355.18c0-12.756-3.713-19.13-11.14-19.13zm94.793 0c-8.565 0-12.847 6.475-12.847 19.41v13.134h25.7V355.46c0-12.943-4.282-19.41-12.844-19.41zM148.473 113.92v77.375h28.55V113.92L211.563 0h-29.12l-19.41 75.09L142.757 0h-30.263c5.33 15.99 11.516 33.785 18.56 53.39 8.946 26.266 14.748 46.445 17.416 60.527zm101.347 79.37c13.134 0 23.22-4.853 30.262-14.56 5.332-7.043 7.994-18.274 7.994-33.69V95.076c0-15.225-2.67-26.363-7.994-33.406-7.043-9.708-17.128-14.562-30.262-14.562-12.756 0-22.75 4.854-29.98 14.56-5.327 7.044-7.992 18.182-7.992 33.407v49.965c0 15.225 2.662 26.457 7.992 33.69 7.233 9.707 17.223 14.56 29.98 14.56zM237.54 89.936c0-13.134 4.094-19.7 12.28-19.7s12.275 6.566 12.275 19.7v59.955c0 13.33-4.09 19.99-12.275 19.99s-12.28-6.66-12.28-19.982v-59.96zm90.788 103.354c9.523 0 19.328-5.9 29.413-17.704v15.703h25.99V48.82h-25.98V157.6c-5.713 8.185-11.134 12.274-16.28 12.274-3.43 0-5.43-2.093-5.996-6.28-.19-.38-.287-3.715-.287-9.994V48.822H309.2v112.492c0 9.705.766 16.84 2.285 21.41 2.477 7.044 8.09 10.567 16.844 10.567z"/></symbol><symbol viewBox="0 0 8 8" id="icon-zoom-in"><title>zoom-in</title> <path d="M3.5 0c-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5c.61 0 1.19-.16 1.69-.44a1 1 0 0 0 .09.13l1 1.03a1.02 1.02 0 1 0 1.44-1.44l-1.03-1a1 1 0 0 0-.13-.09c.27-.5.44-1.08.44-1.69 0-1.93-1.57-3.5-3.5-3.5zm0 1c1.39 0 2.5 1.11 2.5 2.5 0 .59-.2 1.14-.53 1.56-.01.01-.02.02-.03.03a1 1 0 0 0-.06.03 1 1 0 0 0-.25.28c-.44.37-1.01.59-1.63.59-1.39 0-2.5-1.11-2.5-2.5s1.11-2.5 2.5-2.5zm-.5 1v1h-1v1h1v1h1v-1h1v-1h-1v-1h-1z"/> </symbol><symbol viewBox="0 0 8 8" id="icon-zoom-out"><title>zoom-out</title> <path d="M3.5 0c-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5c.61 0 1.19-.16 1.69-.44a1 1 0 0 0 .09.13l1 1.03a1.02 1.02 0 1 0 1.44-1.44l-1.03-1a1 1 0 0 0-.13-.09c.27-.5.44-1.08.44-1.69 0-1.93-1.57-3.5-3.5-3.5zm0 1c1.39 0 2.5 1.11 2.5 2.5 0 .59-.2 1.14-.53 1.56-.01.01-.02.02-.03.03a1 1 0 0 0-.06.03 1 1 0 0 0-.25.28c-.44.37-1.01.59-1.63.59-1.39 0-2.5-1.11-2.5-2.5s1.11-2.5 2.5-2.5zm-1.5 2v1h3v-1h-3z"/> </symbol></svg>
@@ -0,0 +1,10 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36.02 36.02">
2
+ <path d="M883.8,543.84a18,18,0,1,1,18-18A18,18,0,0,1,883.8,543.84Zm0-34a16,16,0,1,0,16,16A16,16,0,0,0,883.8,509.83Z" transform="translate(-865.8 -507.83)"/>
3
+ <g transform="rotate(60 18.1 18.1)">
4
+ <path d="M883.8,528.75a2.91,2.91,0,1,1,2.91-2.91A2.92,2.92,0,0,1,883.8,528.75Zm0-3.83a0.91,0.91,0,1,0,.91.92A0.92,0.92,0,0,0,883.8,524.92Z" transform="translate(-865.8 -507.83)"/>
5
+ <path d="M883.8,521.18a2.91,2.91,0,1,1,2.91-2.91A2.92,2.92,0,0,1,883.8,521.18Zm0-3.83a0.91,0.91,0,1,0,.91.92A0.92,0.92,0,0,0,883.8,517.35Z" transform="translate(-865.8 -507.83)"/>
6
+ <path d="M883.8,536.32a2.92,2.92,0,1,1,2.91-2.91A2.92,2.92,0,0,1,883.8,536.32Zm0-3.83a0.92,0.92,0,1,0,.91.92A0.92,0.92,0,0,0,883.8,532.49Z" transform="translate(-865.8 -507.83)"/>
7
+ <path d="M881.52,526.85a4.79,4.79,0,1,1,0-9.59,1,1,0,0,1,0,2,2.79,2.79,0,1,0,0,5.59A1,1,0,0,1,881.52,526.85Z" transform="translate(-865.8 -507.83)"/>
8
+ <path d="M886.09,534.47a1,1,0,0,1,0-2,2.79,2.79,0,0,0,0-5.59,1,1,0,0,1,0-2A4.79,4.79,0,0,1,886.09,534.47Z" transform="translate(-865.8 -507.83)"/>
9
+ </g>
10
+ </svg>
@@ -0,0 +1,27 @@
1
+ // = require jquery
2
+ // = require decidim/foundation
3
+ // = require modernizr
4
+ // = require svg4everybody.min
5
+ // = require morphdom
6
+ // = require moment.min
7
+ // = require foundation-datepicker
8
+ // = require form_datepicker
9
+
10
+ // = require decidim/history
11
+ // = require decidim/append_elements
12
+ // = require decidim/user_registrations
13
+ // = require decidim/account_form
14
+ // = require decidim/select2
15
+ // = require decidim/select2.field
16
+
17
+ /* globals svg4everybody */
18
+
19
+ window.Decidim = window.Decidim || {};
20
+
21
+ $(() => {
22
+ $(document).foundation();
23
+ svg4everybody();
24
+ if (window.Decidim.formDatePicker) {
25
+ window.Decidim.formDatePicker();
26
+ }
27
+ });
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Since the delete account has a modal to confirm it we need to copy the content of the
3
+ * reason field to the hidden field in the form inside the modal.
4
+ */
5
+ $(() => {
6
+ const $deleteAccountForm = $('.delete-account');
7
+ const $deleteAccountModalForm = $('.delete-account-modal');
8
+
9
+ if ($deleteAccountForm.length > 0) {
10
+ const $openModalButton = $('.open-modal-button');
11
+ const $modal = $('#deleteConfirm');
12
+
13
+ $openModalButton.on('click', (event) => {
14
+ try {
15
+ const reasonValue = $deleteAccountForm.find('textarea#delete_account_delete_reason').val();
16
+ $deleteAccountModalForm.find('input#delete_account_delete_reason').val(reasonValue);
17
+ $modal.foundation('open');
18
+ } catch (error) {
19
+ console.error(error); // eslint-disable-line no-console
20
+ }
21
+
22
+ event.preventDefault();
23
+ event.stopPropagation();
24
+ return false;
25
+ });
26
+ }
27
+ });
@@ -0,0 +1,8 @@
1
+ // = require appendAround
2
+
3
+ (function() {
4
+ $(() => {
5
+ let $appendableElements = $('.js-append');
6
+ $appendableElements.appendAround();
7
+ })
8
+ }(window));
@@ -0,0 +1,51 @@
1
+ // = require quill.min
2
+ // = require_self
3
+
4
+ $(() => {
5
+ const $container = $('.editor-container');
6
+ const quillFormats = ['bold', 'italic', 'link', 'underline', 'header', 'list', 'video'];
7
+
8
+ const createQuillEditor = (container) => {
9
+ const toolbar = $(container).data('toolbar');
10
+
11
+ let quillToolbar = [
12
+ ['bold', 'italic', 'underline'],
13
+ [{ list: 'ordered' }, { list: 'bullet' }],
14
+ ['link', 'video', 'clean']
15
+ ];
16
+
17
+ if (toolbar === 'full') {
18
+ quillToolbar = [
19
+ [{ header: [1, 2, 3, 4, 5, 6, false] }],
20
+ ...quillToolbar
21
+ ];
22
+ }
23
+
24
+ const $input = $(container).siblings('input[type="hidden"]');
25
+ const quill = new Quill(container, {
26
+ modules: {
27
+ toolbar: quillToolbar
28
+ },
29
+ formats: quillFormats,
30
+ theme: 'snow'
31
+ });
32
+
33
+ quill.on('text-change', () => {
34
+ const text = quill.getText();
35
+ if (text === '\n') {
36
+ $input.val('');
37
+ } else {
38
+ $input.val(quill.root.innerHTML);
39
+ }
40
+ });
41
+
42
+ quill.root.innerHTML = $input.val() || '';
43
+ };
44
+
45
+ $container.each((idx, container) => {
46
+ createQuillEditor(container);
47
+ });
48
+
49
+ window.Decidim = window.Decidim || {};
50
+ window.Decidim.createQuillEditor = createQuillEditor;
51
+ });
@@ -0,0 +1,16 @@
1
+ /* eslint-disable no-invalid-this */
2
+ // = require ./form_filter.component
3
+ // = require_self
4
+
5
+ // Initializes the form filter.
6
+ ((exports) => {
7
+ const { Decidim: { FormFilterComponent } } = exports;
8
+
9
+ $(() => {
10
+ $('form.new_filter').each(function () {
11
+ const formFilter = new FormFilterComponent($(this));
12
+
13
+ formFilter.mountComponent();
14
+ })
15
+ });
16
+ })(window);
@@ -0,0 +1,237 @@
1
+ /* eslint-disable no-div-regex, no-useless-escape, no-param-reassign, id-length */
2
+
3
+ /**
4
+ * A plain Javascript component that handles the form filter.
5
+ * @class
6
+ * @augments Component
7
+ */
8
+ ((exports) => {
9
+ class FormFilterComponent {
10
+ constructor($form) {
11
+ this.$form = $form;
12
+ this.id = this.$form.attr('id') || this._getUID();
13
+ this.mounted = false;
14
+ this.select2Filters = [];
15
+
16
+ this._onFormChange = this._onFormChange.bind(this);
17
+ this._onPopState = this._onPopState.bind(this);
18
+
19
+ if (window.Decidim.PopStateHandler) {
20
+ this.popStateSubmiter = false;
21
+ } else {
22
+ this.popStateSubmiter = true;
23
+ window.Decidim.PopStateHandler = this.id;
24
+ }
25
+ }
26
+
27
+ /**
28
+ * Handles the logic for unmounting the component
29
+ * @public
30
+ * @returns {Void} - Returns nothing
31
+ */
32
+ unmountComponent() {
33
+ if (this.mounted) {
34
+ this.mounted = false;
35
+ this.$form.off('change', 'input:not(.select2-search__field), select', this._onFormChange);
36
+ this.select2Filters.forEach((select) => {
37
+ select.destroy();
38
+ });
39
+
40
+ exports.Decidim.History.unregisterCallback(`filters-${this.id}`)
41
+ }
42
+ }
43
+
44
+ /**
45
+ * Handles the logic for mounting the component
46
+ * @public
47
+ * @returns {Void} - Returns nothing
48
+ */
49
+ mountComponent() {
50
+ if (this.$form.length > 0 && !this.mounted) {
51
+ this.mounted = true;
52
+ let select2Filters = this.select2Filters;
53
+ this.$form.find('select.select2').each(function(index, select) {
54
+ select2Filters.push(new window.Decidim.Select2Field(select));
55
+ });
56
+ this.$form.on('change', 'input:not(.select2-search__field), select', this._onFormChange);
57
+
58
+ exports.Decidim.History.registerCallback(`filters-${this.id}`, () => {
59
+ this._onPopState();
60
+ });
61
+ }
62
+ }
63
+
64
+ /**
65
+ * Finds the current location.
66
+ * @private
67
+ * @returns {String} - Returns the current location.
68
+ */
69
+ _getLocation() {
70
+ return exports.location.toString();
71
+ }
72
+
73
+ /**
74
+ * Finds the values of the location params that match the given regexp.
75
+ * @private
76
+ * @param {Regexp} regex - a Regexp to match the params.
77
+ * @returns {String[]} - An array of values of the params that match the regexp.
78
+ */
79
+ _getLocationParams(regex) {
80
+ const location = decodeURIComponent(this._getLocation());
81
+ let values = location.match(regex);
82
+ if (values) {
83
+ values = values.map((val) => val.match(/=(.*)/)[1]);
84
+ }
85
+ return values;
86
+ }
87
+
88
+ /**
89
+ * Parse current location and get filter values.
90
+ * @private
91
+ * @returns {Object} - An object where a key correspond to a filter field
92
+ * and the value is the current value for the filter.
93
+ */
94
+ _parseLocationFilterValues() {
95
+ // Every location param is constructed like this: filter[key]=value
96
+ let regexpResult = decodeURIComponent(this._getLocation()).match(/filter\[([^\]]*)\](?:\[\])?=([^&]*)/g);
97
+
98
+ // The RegExp g flag returns null or an array of coincidences. It doesn't return the match groups
99
+ if (regexpResult) {
100
+ const filterParams = regexpResult.reduce((acc, result) => {
101
+ const [, key, array, value] = result.match(/filter\[([^\]]*)\](\[\])?=([^&]*)/);
102
+ if (array) {
103
+ if (!acc[key]) {
104
+ acc[key]=[];
105
+ }
106
+ acc[key].push(value);
107
+ } else {
108
+ acc[key] = value;
109
+ }
110
+ return acc;
111
+ }, {});
112
+
113
+ return filterParams;
114
+ }
115
+
116
+ return null;
117
+ }
118
+
119
+ /**
120
+ * Parse current location and get the current order.
121
+ * @private
122
+ * @returns {string} - The current order
123
+ */
124
+ _parseLocationOrderValue() {
125
+ const url = this._getLocation();
126
+ const match = url.match(/order=([^&]*)/);
127
+ const $orderMenu = this.$form.find('.order-by .menu');
128
+ let order = $orderMenu.find('.menu a:first').data('order');
129
+
130
+ if (match) {
131
+ order = match[1];
132
+ }
133
+
134
+ return order;
135
+ }
136
+
137
+ /**
138
+ * Clears the form to start with a clean state.
139
+ * @private
140
+ * @returns {Void} - Returns nothing.
141
+ */
142
+ _clearForm() {
143
+ this.$form.find('input[type=checkbox]').attr('checked', false);
144
+ this.$form.find('input[type=radio]').attr('checked', false);
145
+ this.$form.find('select.select2').val(null).trigger('change.select2');
146
+
147
+ // This ensure the form is reset in a valid state where a fieldset of
148
+ // radio buttons has the first selected.
149
+ this.$form.find('fieldset input[type=radio]:first').each(function () {
150
+ // I need the this to iterate a jQuery collection
151
+ $(this)[0].checked = true; // eslint-disable-line no-invalid-this
152
+ });
153
+ }
154
+
155
+ /**
156
+ * Handles the logic when going back to a previous state in the filter form.
157
+ * @private
158
+ * @returns {Void} - Returns nothing.
159
+ */
160
+ _onPopState() {
161
+ this._clearForm();
162
+
163
+ const filterParams = this._parseLocationFilterValues();
164
+ const currentOrder = this._parseLocationOrderValue();
165
+
166
+ this.$form.find('input.order_filter').val(currentOrder);
167
+
168
+ if (filterParams) {
169
+ const fieldIds = Object.keys(filterParams);
170
+
171
+ // Iterate the filter params and set the correct form values
172
+ fieldIds.forEach((fieldId) => {
173
+ let field = null;
174
+
175
+ // Since we are using Ruby on Rails generated forms the field ids for a
176
+ // checkbox or a radio button has the following form: filter_${key}_${value}
177
+ field = this.$form.find(`input#filter_${fieldId}_${filterParams[fieldId]}`);
178
+
179
+ if (field.length > 0) {
180
+ field[0].checked = true;
181
+ } else {
182
+ // If the field is not a checkbox neither a radio it means is a input or a select.
183
+ // Ruby on Rails ensure the ids are constructed like this: filter_${key}
184
+ field = this.$form.find(`input#filter_${fieldId},select#filter_${fieldId}`);
185
+
186
+ if (field.length > 0) {
187
+ if (field.hasClass("select2")) {
188
+ field.val(filterParams[fieldId]).trigger('change.select2');
189
+ } else {
190
+ field.val(filterParams[fieldId]);
191
+ }
192
+ }
193
+ }
194
+ });
195
+ }
196
+
197
+ // Only one instance should submit the form on browser history navigation
198
+ if (this.popStateSubmiter) {
199
+ this.$form.submit();
200
+ }
201
+ }
202
+
203
+ /**
204
+ * Handles the logic to update the current location after a form change event.
205
+ * @private
206
+ * @returns {Void} - Returns nothing.
207
+ */
208
+ _onFormChange() {
209
+ const formAction = this.$form.attr('action');
210
+ const params = this.$form.serialize();
211
+
212
+ let newUrl = '';
213
+
214
+ this.$form.submit();
215
+
216
+ if (formAction.indexOf('?') < 0) {
217
+ newUrl = `${formAction}?${params}`;
218
+ } else {
219
+ newUrl = `${formAction}&${params}`;
220
+ }
221
+
222
+ exports.Decidim.History.pushState(newUrl);
223
+ }
224
+
225
+ /**
226
+ * Generates a unique identifier for the form.
227
+ * @private
228
+ * @returns {String} - Returns a unique identifier
229
+ */
230
+ _getUID() {
231
+ return `filter-form-${new Date().setUTCMilliseconds()}-${Math.floor(Math.random() * 10000000)}`;
232
+ }
233
+ }
234
+
235
+ exports.Decidim = exports.Decidim || {};
236
+ exports.Decidim.FormFilterComponent = FormFilterComponent;
237
+ })(window);
@@ -0,0 +1,112 @@
1
+ /* global spyOn */
2
+ /* eslint-disable id-length */
3
+ window.$ = require('jquery');
4
+ require('select2');
5
+
6
+ require('./history.js.es6');
7
+ require('./select2.field.js.es6');
8
+ require('./form_filter.component.js.es6');
9
+
10
+ const { Decidim: { FormFilterComponent } } = window;
11
+
12
+ describe('FormFilterComponent', () => {
13
+ const selector = 'form#new_filter';
14
+ let subject = null;
15
+
16
+ beforeEach(() => {
17
+ let form = `
18
+ <form id="new_filter" action="/filters" method="get">
19
+ <fieldset>
20
+ <select id="filter_scope_id" name="filter[scope_id]" class="select2" multiple>
21
+ <option value="1">Scope 1</option>
22
+ <option value="2">Scope 2</option>
23
+ <option value="3">Scope 3</option>
24
+ </select>
25
+ </fieldset>
26
+
27
+ <fieldset>
28
+ <select id="filter_category_id" name="filter[category_id]">
29
+ <option value="1">Category 1</option>
30
+ <option value="2">Category 2</option>
31
+ </select>
32
+ </fieldset>
33
+ </form>
34
+ `;
35
+ $('body').append(form);
36
+
37
+ subject = new FormFilterComponent($(document).find('form'));
38
+ });
39
+
40
+ it('exists', () => {
41
+ expect(FormFilterComponent).toBeDefined();
42
+ });
43
+
44
+ it('initializes unmounted', () => {
45
+ expect(subject.mounted).toBeFalsy();
46
+ });
47
+
48
+ it('initializes the formSelector with the given selector', () => {
49
+ expect(subject.$form).toEqual($(selector));
50
+ });
51
+
52
+ describe('when mounted', () => {
53
+ beforeEach(() => {
54
+ spyOn(subject.$form, 'on');
55
+ subject.mountComponent();
56
+ });
57
+
58
+ afterEach(() => {
59
+ subject.unmountComponent();
60
+ });
61
+
62
+ it('mounts the component', () => {
63
+ expect(subject.mounted).toBeTruthy();
64
+ });
65
+
66
+ it('binds the form change event', () => {
67
+ expect(subject.$form.on).toHaveBeenCalledWith('change', 'input:not(.select2-search__field), select', subject._onFormChange);
68
+ });
69
+
70
+ describe('onpopstate event', () => {
71
+ beforeEach(() => {
72
+ spyOn(subject.$form, 'submit');
73
+ });
74
+
75
+ it('clears the form data', () => {
76
+ spyOn(subject, '_clearForm');
77
+
78
+ window.onpopstate({ isTrusted: true });
79
+
80
+ expect(subject._clearForm).toHaveBeenCalled();
81
+ });
82
+
83
+ it('sets the correct form fields based on the current location', () => {
84
+ spyOn(subject, '_getLocation').and.returnValue('/filters?filter[scope_id][]=1&scope_id[]=2&filter[category_id]=2');
85
+ window.onpopstate({ isTrusted: true });
86
+
87
+ expect($(selector).find('select#filter_category_id').val()).toEqual('2');
88
+ expect($(selector).find('select#filter_scope_id').val()).toEqual(['1']);
89
+ });
90
+ });
91
+ });
92
+
93
+ describe('when unmounted', () => {
94
+ beforeEach(() => {
95
+ spyOn(subject.$form, 'off');
96
+ subject.mountComponent();
97
+ subject.unmountComponent();
98
+ });
99
+
100
+ it('mounts the component', () => {
101
+ expect(subject.mounted).toBeFalsy();
102
+ });
103
+
104
+ it('unbinds the form change event', () => {
105
+ expect(subject.$form.off).toHaveBeenCalledWith('change', 'input:not(.select2-search__field), select', subject._onFormChange);
106
+ });
107
+ });
108
+
109
+ afterEach(() => {
110
+ $(selector).remove();
111
+ })
112
+ });