pageflow 16.0.0 → 16.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (188) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +86 -33
  3. data/README.md +6 -6
  4. data/Rakefile +1 -1
  5. data/admins/pageflow/entry.rb +0 -1
  6. data/admins/pageflow/sites.rb +3 -0
  7. data/app/assets/images/pageflow/admin/icons/published_with_noindex.svg +4 -0
  8. data/app/assets/javascripts/pageflow/dist/ui.js +299 -72
  9. data/app/assets/stylesheets/pageflow/admin/active_admin_patches.scss +1 -1
  10. data/app/assets/stylesheets/pageflow/admin/entries.scss +4 -0
  11. data/app/assets/stylesheets/pageflow/admin/permalink_input.scss +10 -0
  12. data/app/assets/stylesheets/pageflow/admin/publication_state_indicator.scss +4 -0
  13. data/app/assets/stylesheets/pageflow/editor/base.scss +0 -1
  14. data/app/assets/stylesheets/pageflow/editor/drop_down_button.scss +61 -7
  15. data/app/assets/stylesheets/pageflow/editor/file_meta_data.scss +12 -1
  16. data/app/assets/stylesheets/pageflow/editor/file_thumbnails.scss +4 -0
  17. data/app/assets/stylesheets/pageflow/editor/help.scss +3 -3
  18. data/app/assets/stylesheets/pageflow/editor/info_box.scss +7 -0
  19. data/app/assets/stylesheets/pageflow/editor/inputs/file_input.scss +0 -5
  20. data/app/assets/stylesheets/pageflow/ui/forms.scss +4 -4
  21. data/app/assets/stylesheets/pageflow/{editor/wysihtml5.scss → ui/input/text_area_input.scss} +13 -1
  22. data/app/assets/stylesheets/pageflow/ui.scss +1 -0
  23. data/app/controllers/pageflow/chapters_controller.rb +2 -2
  24. data/app/controllers/pageflow/editor/entry_publications_controller.rb +5 -1
  25. data/app/controllers/pageflow/editor/file_import_controller.rb +1 -1
  26. data/app/controllers/pageflow/editor/files_controller.rb +1 -1
  27. data/app/controllers/pageflow/entries_controller.rb +12 -2
  28. data/app/controllers/pageflow/feeds_controller.rb +18 -0
  29. data/app/controllers/pageflow/pages_controller.rb +2 -2
  30. data/app/controllers/pageflow/sitemaps_controller.rb +15 -0
  31. data/app/controllers/pageflow/storylines_controller.rb +2 -2
  32. data/app/helpers/pageflow/entries_helper.rb +4 -1
  33. data/app/helpers/pageflow/feeds_helper.rb +66 -0
  34. data/app/helpers/pageflow/meta_tags_helper.rb +2 -1
  35. data/app/helpers/pageflow/page_types_helper.rb +10 -10
  36. data/app/helpers/pageflow/revision_file_helper.rb +3 -3
  37. data/app/helpers/pageflow/social_share_helper.rb +2 -2
  38. data/app/inputs/pageflow_permalink_input.rb +15 -3
  39. data/app/models/concerns/pageflow/entry_publication_states.rb +9 -0
  40. data/app/models/concerns/pageflow/reusable_file.rb +3 -3
  41. data/app/models/concerns/pageflow/uploadable_file.rb +5 -0
  42. data/app/models/pageflow/account.rb +8 -0
  43. data/app/models/pageflow/audio_file_url_templates.rb +2 -1
  44. data/app/models/pageflow/draft_entry.rb +1 -1
  45. data/app/models/pageflow/entries_feed.rb +32 -0
  46. data/app/models/pageflow/entry.rb +7 -5
  47. data/app/models/pageflow/entry_at_revision.rb +2 -0
  48. data/app/models/pageflow/image_file.rb +34 -8
  49. data/app/models/pageflow/image_file_url_templates.rb +7 -1
  50. data/app/models/pageflow/membership.rb +3 -2
  51. data/app/models/pageflow/other_file.rb +5 -0
  52. data/app/models/pageflow/other_file_url_templates.rb +16 -0
  53. data/app/models/pageflow/published_entry.rb +6 -0
  54. data/app/models/pageflow/revision.rb +6 -0
  55. data/app/models/pageflow/site.rb +8 -0
  56. data/app/models/pageflow/sitemaps.rb +14 -0
  57. data/app/models/pageflow/used_file.rb +10 -2
  58. data/app/models/pageflow/video_file_url_templates.rb +3 -1
  59. data/app/models/pageflow/widget.rb +9 -1
  60. data/app/views/admin/entries/_permalink_inputs.html.erb +1 -2
  61. data/app/views/admin/sites/_attributes_table.html.arb +3 -0
  62. data/app/views/admin/sites/_fields.html.erb +6 -0
  63. data/app/views/components/pageflow/admin/extensible_attributes_table.rb +2 -2
  64. data/app/views/components/pageflow/admin/revisions_tab.rb +8 -0
  65. data/app/views/components/pageflow/admin/sites_tab.rb +3 -0
  66. data/app/views/pageflow/editor/config/_seeds.json.jbuilder +2 -0
  67. data/app/views/pageflow/editor/entries/_entry.json.jbuilder +1 -0
  68. data/app/views/pageflow/editor/entry_publications/check.json.jbuilder +1 -0
  69. data/app/views/pageflow/feeds/index.atom.builder +20 -0
  70. data/app/views/pageflow/image_files/_image_file.json.jbuilder +1 -0
  71. data/app/views/pageflow/meta_tags/_entry.html.erb +1 -0
  72. data/app/views/pageflow/sitemaps/index.xml.builder +9 -0
  73. data/config/initializers/features.rb +3 -0
  74. data/config/initializers/paperclip.rb +8 -0
  75. data/config/locales/de.yml +77 -6
  76. data/config/locales/en.yml +79 -4
  77. data/config/routes.rb +3 -0
  78. data/config/spring.rb +1 -1
  79. data/db/migrate/20230120092923_create_other_files.rb +23 -0
  80. data/db/migrate/20230323115745_add_feeds_enabled_to_sites.rb +5 -0
  81. data/db/migrate/20230323154323_add_sitemap_enabled_to_sites.rb +5 -0
  82. data/db/migrate/20230331103823_add_title_to_sites.rb +5 -0
  83. data/db/migrate/20230405103612_add_custom_feed_url_to_sites.rb +5 -0
  84. data/db/migrate/20231024062501_add_output_presences_to_image_files.rb +5 -0
  85. data/db/migrate/20231128124523_add_noindex_to_revisions.rb +5 -0
  86. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +710 -259
  87. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +34 -5
  88. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-client.js +1 -1
  89. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-server.js +1 -1
  90. data/entry_types/paged/app/controllers/pageflow_paged/editor/entries_controller.rb +0 -2
  91. data/entry_types/paged/app/controllers/pageflow_paged/entries_controller.rb +2 -1
  92. data/entry_types/paged/app/views/pageflow_paged/entries/show.html.erb +1 -0
  93. data/entry_types/paged/config/initializers/features.rb +0 -1
  94. data/entry_types/paged/lib/pageflow_paged/engine.rb +13 -1
  95. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/chapters_controller.rb +2 -2
  96. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/content_elements_controller.rb +3 -4
  97. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/sections_controller.rb +13 -6
  98. data/entry_types/scrolled/app/controllers/pageflow_scrolled/entries_controller.rb +11 -3
  99. data/entry_types/scrolled/app/helpers/pageflow_scrolled/cache_helper.rb +11 -0
  100. data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/entry_json_seed_helper.rb +42 -0
  101. data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/seed_html_helper.rb +8 -5
  102. data/entry_types/scrolled/app/helpers/pageflow_scrolled/packs_helper.rb +17 -12
  103. data/entry_types/scrolled/app/helpers/pageflow_scrolled/react_server_side_rendering_helper.rb +9 -1
  104. data/entry_types/scrolled/app/helpers/pageflow_scrolled/themes_helper.rb +1 -1
  105. data/entry_types/scrolled/app/models/pageflow_scrolled/chapter.rb +23 -0
  106. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_head.html.erb +1 -1
  107. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_seed.json.jbuilder +1 -5
  108. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/sections/_section_with_content_elements.json.jbuilder +10 -0
  109. data/entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb +44 -41
  110. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_consent_vendors.json.jbuilder +16 -0
  111. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry.json.jbuilder +7 -0
  112. data/entry_types/scrolled/config/initializers/features.rb +5 -0
  113. data/entry_types/scrolled/config/locales/consent_widget.de.yml +4 -0
  114. data/entry_types/scrolled/config/locales/consent_widget.en.yml +4 -0
  115. data/entry_types/scrolled/config/locales/de.yml +225 -8
  116. data/entry_types/scrolled/config/locales/en.yml +239 -2
  117. data/entry_types/scrolled/config/routes.rb +4 -0
  118. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/install_generator.rb +69 -44
  119. data/entry_types/scrolled/lib/pageflow_scrolled/additional_packs.rb +2 -1
  120. data/entry_types/scrolled/lib/pageflow_scrolled/additional_seed_data.rb +1 -1
  121. data/entry_types/scrolled/lib/pageflow_scrolled/configuration.rb +96 -0
  122. data/entry_types/scrolled/lib/pageflow_scrolled/content_element_consent_vendors.rb +38 -0
  123. data/entry_types/scrolled/lib/pageflow_scrolled/engine.rb +13 -1
  124. data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +30 -0
  125. data/entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb +6 -1
  126. data/entry_types/scrolled/lib/pageflow_scrolled/web_app_manifest.rb +1 -1
  127. data/entry_types/scrolled/lib/tasks/pageflow_scrolled/dummy.rake +1 -1
  128. data/entry_types/scrolled/lib/tasks/pageflow_scrolled/storybook.rake +1 -2
  129. data/entry_types/scrolled/package/config/webpack.js +26 -0
  130. data/entry_types/scrolled/package/contentElements-editor.js +330 -32
  131. data/entry_types/scrolled/package/contentElements-frontend.css +1 -1
  132. data/entry_types/scrolled/package/contentElements-frontend.js +920 -145
  133. data/entry_types/scrolled/package/editor.js +819 -239
  134. data/entry_types/scrolled/package/frontend/{EditableInlineText.module-14c7b097.js → EditableInlineText.module-6ee0e024.js} +1975 -1792
  135. data/entry_types/scrolled/package/frontend/PhonePlatformContext-b28d991a.js +32 -0
  136. data/entry_types/scrolled/package/frontend/ToggleFullscreenCornerButton-8242f213.js +107 -0
  137. data/entry_types/scrolled/package/frontend/Viewer-32cd1ac1.js +154 -0
  138. data/entry_types/scrolled/package/frontend/{Viewer-b6becc57.js → Viewer-6e4d14ed.js} +32 -161
  139. data/entry_types/scrolled/package/frontend/arrowRight-e42e6011.js +77 -0
  140. data/entry_types/scrolled/package/frontend/{components-b3160dd7.js → components-24363f97.js} +188 -47
  141. data/entry_types/scrolled/package/frontend/{PhonePlatformContext-f6093cc6.js → i18n-71c39823.js} +191 -111
  142. data/entry_types/scrolled/package/frontend/index-fc4b13e6.js +118 -0
  143. data/entry_types/scrolled/package/frontend/index.css +1 -1
  144. data/entry_types/scrolled/package/frontend/index.js +252 -76
  145. data/entry_types/scrolled/package/frontend/useContentElementEditorState-245f1986.js +52 -0
  146. data/entry_types/scrolled/package/package.json +6 -4
  147. data/entry_types/scrolled/package/testHelpers.js +11 -2
  148. data/entry_types/scrolled/package/values/colors.module.css +15 -0
  149. data/entry_types/scrolled/package/widgets/consentBar.css +1 -0
  150. data/entry_types/scrolled/package/widgets/consentBar.js +426 -0
  151. data/entry_types/scrolled/package/widgets/defaultNavigation.css +2 -2
  152. data/entry_types/scrolled/package/widgets/defaultNavigation.js +39 -4
  153. data/entry_types/scrolled/package/widgets/iconInlineFileRights.css +1 -0
  154. data/entry_types/scrolled/package/widgets/iconInlineFileRights.js +49 -0
  155. data/entry_types/scrolled/package/widgets/textInlineFileRights.css +1 -0
  156. data/entry_types/scrolled/package/widgets/textInlineFileRights.js +37 -0
  157. data/lib/generators/pageflow/resque/resque_generator.rb +1 -1
  158. data/lib/generators/pageflow/resque/templates/resque.rake +1 -1
  159. data/lib/generators/pageflow/resque/templates/resque.rb +1 -1
  160. data/lib/generators/pageflow/routes/routes_generator.rb +1 -1
  161. data/lib/pageflow/ability_mixin.rb +5 -5
  162. data/lib/pageflow/active_admin_can_can_fix.rb +2 -2
  163. data/lib/pageflow/built_in_file_type.rb +7 -0
  164. data/lib/pageflow/configuration.rb +29 -1
  165. data/lib/pageflow/engine.rb +18 -40
  166. data/lib/pageflow/entry_export_import/revision_serialization.rb +1 -1
  167. data/lib/pageflow/file_type.rb +2 -2
  168. data/lib/pageflow/global_config_api.rb +2 -2
  169. data/lib/pageflow/nested_revision_component.rb +23 -5
  170. data/lib/pageflow/page_type.rb +1 -1
  171. data/lib/pageflow/paperclip_processors/webp.rb +63 -0
  172. data/lib/pageflow/rails_version.rb +19 -0
  173. data/lib/pageflow/seeds.rb +10 -7
  174. data/lib/pageflow/user_mixin.rb +1 -1
  175. data/lib/pageflow/version.rb +1 -1
  176. data/lib/pageflow/widget_types.rb +4 -0
  177. data/package/config/jest/index.js +3 -1
  178. data/package/config/webpack5.js +14 -0
  179. data/package/editor.js +410 -181
  180. data/package/frontend.js +34 -4
  181. data/package/testHelpers.js +1 -1
  182. data/package/ui.js +297 -71
  183. data/spec/factories/entries.rb +34 -3
  184. data/spec/factories/sites.rb +3 -0
  185. data/vendor/assets/javascripts/iscroll.js +4 -7
  186. metadata +118 -80
  187. data/app/helpers/pageflow/admin/permalinks_helper.rb +0 -15
  188. data/entry_types/scrolled/package/frontend/arrowRight-78a7cee4.js +0 -42
@@ -1,8 +1,8 @@
1
1
  import I18n from 'i18n-js';
2
- import { editor, NoOptionsHintView, buttonStyles } from 'pageflow-scrolled/editor';
3
- import { SelectInputView, SeparatorView, LabelOnlyView, ColorInputView, UrlInputView, CheckBoxInputView as CheckBoxInputView$1, TextInputView, SliderInputView, ConfigurationEditorView, cssModulesUtils } from 'pageflow/ui';
2
+ import { editor, InlineFileRightsMenuItem, NoOptionsHintView, buttonStyles } from 'pageflow-scrolled/editor';
3
+ import { contentElementWidths, utils } from 'pageflow-scrolled/frontend';
4
+ import { SelectInputView, SeparatorView, LabelOnlyView, ColorInputView, UrlInputView, CheckBoxInputView as CheckBoxInputView$1, TextInputView, SliderInputView, ConfigurationEditorView, cssModulesUtils, NumberInputView } from 'pageflow/ui';
4
5
  import { InfoBoxView, FileInputView, CheckBoxInputView, ColorInputView as ColorInputView$1, editor as editor$1, transientReferences, ListView, SliderInputView as SliderInputView$1, SelectInputView as SelectInputView$1, EnumTableCellView } from 'pageflow/editor';
5
- import { utils } from 'pageflow-scrolled/frontend';
6
6
  import Marionette from 'backbone.marionette';
7
7
  import Backbone from 'backbone';
8
8
  import _ from 'underscore';
@@ -60,20 +60,26 @@ var img = "data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox=
60
60
 
61
61
  editor.contentElementTypes.register('heading', {
62
62
  pictogram: img,
63
- supportedPositions: ['inline', 'wide'],
63
+ supportedPositions: ['inline'],
64
+ supportedWidthRange: ['md', 'xl'],
64
65
  defaultConfig: {
65
- position: 'wide',
66
+ width: contentElementWidths.xl,
66
67
  marginTop: 'none'
67
68
  },
68
69
  configurationEditor: function configurationEditor(_ref) {
69
70
  var entry = _ref.entry;
70
71
  this.listenTo(this.model, 'change:hyphens', this.refresh);
72
+ var modelDelegator = entry.createLegacyTypographyVariantDelegator({
73
+ model: this.model,
74
+ paletteColorPropertyName: 'color'
75
+ });
71
76
  this.tab('general', function () {
72
77
  this.input('textSize', SelectInputView, {
73
78
  values: ['auto', 'large', 'medium', 'small']
74
79
  });
75
80
  this.group('ContentElementTypographyVariant', {
76
81
  entry: entry,
82
+ model: modelDelegator,
77
83
  getPreviewConfiguration: function getPreviewConfiguration(configuration, typographyVariant) {
78
84
  return _objectSpread2(_objectSpread2({}, configuration), {}, {
79
85
  textSize: 'small',
@@ -81,7 +87,14 @@ editor.contentElementTypes.register('heading', {
81
87
  });
82
88
  }
83
89
  });
84
- this.group('ContentElementPosition');
90
+ this.group('PaletteColor', {
91
+ entry: entry,
92
+ model: modelDelegator,
93
+ propertyName: 'color'
94
+ });
95
+ this.input('entranceAnimation', SelectInputView, {
96
+ values: ['none', 'fadeInSlow', 'fadeIn', 'fadeInFast']
97
+ });
85
98
  this.input('hyphens', SelectInputView, {
86
99
  values: ['auto', 'manual']
87
100
  });
@@ -91,6 +104,9 @@ editor.contentElementTypes.register('heading', {
91
104
  text: I18n.t('pageflow_scrolled.editor.content_elements.heading.help_texts.shortcuts')
92
105
  });
93
106
  }
107
+
108
+ this.view(SeparatorView);
109
+ this.group('ContentElementPosition');
94
110
  });
95
111
  }
96
112
  });
@@ -110,9 +126,13 @@ editor.contentElementTypes.register('textBlock', {
110
126
  });
111
127
  this.tab('general', function () {
112
128
  var exampleNode = ensureTextContent(contentElement.transientState.get('exampleNode'));
129
+ var modelDelegator = entry.createLegacyTypographyVariantDelegator({
130
+ model: contentElement.transientState,
131
+ paletteColorPropertyName: 'color'
132
+ });
113
133
  this.group('ContentElementTypographyVariant', {
114
134
  entry: entry,
115
- model: contentElement.transientState,
135
+ model: modelDelegator,
116
136
  prefix: exampleNode ? utils.camelize(exampleNode.type) : 'none',
117
137
  getPreviewConfiguration: function getPreviewConfiguration(configuration, variant) {
118
138
  return exampleNode ? _objectSpread2(_objectSpread2({}, configuration), {}, {
@@ -134,6 +154,11 @@ editor.contentElementTypes.register('textBlock', {
134
154
  }) : configuration;
135
155
  }
136
156
  });
157
+ this.group('PaletteColor', {
158
+ entry: entry,
159
+ model: modelDelegator,
160
+ propertyName: 'color'
161
+ });
137
162
  this.view(SeparatorView);
138
163
  this.view(InfoBoxView, {
139
164
  text: I18n.t('pageflow_scrolled.editor.content_elements.textBlock.help_texts.shortcuts')
@@ -196,20 +221,29 @@ var img$2 = "data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBo
196
221
  editor.contentElementTypes.register('inlineImage', {
197
222
  pictogram: img$2,
198
223
  category: 'media',
199
- supportedPositions: ['inline', 'sticky', 'left', 'right', 'wide', 'full'],
200
- configurationEditor: function configurationEditor() {
224
+ supportedPositions: ['inline', 'sticky', 'standAlone', 'left', 'right'],
225
+ supportedWidthRange: ['xxs', 'full'],
226
+ configurationEditor: function configurationEditor(_ref) {
227
+ var contentElement = _ref.contentElement;
201
228
  this.tab('general', function () {
202
229
  this.input('id', FileInputView, {
203
230
  collection: 'image_files',
204
231
  fileSelectionHandler: 'contentElementConfiguration',
205
- positioning: false
232
+ positioning: false,
233
+ dropDownMenuItems: [InlineFileRightsMenuItem]
206
234
  });
207
235
  this.input('portraitId', FileInputView, {
208
236
  collection: 'image_files',
209
237
  fileSelectionHandler: 'contentElementConfiguration',
210
238
  positioning: false
211
239
  });
212
- this.group('ContentElementCaption');
240
+ this.input('enableFullscreen', CheckBoxInputView, {
241
+ disabledBinding: ['position', 'width'],
242
+ disabled: function disabled() {
243
+ return contentElement.getWidth() === contentElementWidths.full;
244
+ },
245
+ displayUncheckedIfDisabled: true
246
+ });
213
247
  this.group('ContentElementPosition');
214
248
  });
215
249
  }
@@ -278,20 +312,42 @@ var img$3 = "data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBo
278
312
  editor.contentElementTypes.register('inlineVideo', {
279
313
  pictogram: img$3,
280
314
  category: 'media',
281
- supportedPositions: ['inline', 'sticky', 'left', 'right', 'wide', 'full'],
315
+ supportedPositions: ['inline', 'sticky', 'standAlone', 'left', 'right'],
316
+ supportedWidthRange: ['xxs', 'full'],
282
317
  configurationEditor: function configurationEditor() {
283
318
  migrateLegacyAutoplay(this.model);
284
319
  this.tab('general', function () {
320
+ var _this = this;
321
+
285
322
  this.input('id', FileInputView, {
286
323
  collection: 'video_files',
287
324
  fileSelectionHandler: 'contentElementConfiguration',
288
325
  positioning: false,
289
- defaultTextTrackFilePropertyName: 'defaultTextTrackFileId'
326
+ defaultTextTrackFilePropertyName: 'defaultTextTrackFileId',
327
+ dropDownMenuItems: [InlineFileRightsMenuItem]
290
328
  });
291
329
  this.input('posterId', FileInputView, {
292
330
  collection: 'image_files',
293
331
  fileSelectionHandler: 'contentElementConfiguration',
294
- positioning: false
332
+ positioning: false,
333
+ dropDownMenuItems: [InlineFileRightsMenuItem]
334
+ });
335
+ this.input('portraitId', FileInputView, {
336
+ collection: 'video_files',
337
+ fileSelectionHandler: 'contentElementConfiguration',
338
+ positioning: false,
339
+ defaultTextTrackFilePropertyName: 'defaultTextTrackFileId',
340
+ dropDownMenuItems: [InlineFileRightsMenuItem]
341
+ });
342
+ this.input('portraitPosterId', FileInputView, {
343
+ collection: 'image_files',
344
+ fileSelectionHandler: 'contentElementConfiguration',
345
+ positioning: false,
346
+ visibleBinding: 'portraitId',
347
+ visible: function visible() {
348
+ return _this.model.getReference('portraitId', 'video_files');
349
+ },
350
+ dropDownMenuItems: [InlineFileRightsMenuItem]
295
351
  });
296
352
  this.view(SeparatorView);
297
353
  this.input('playbackMode', SelectInputView, {
@@ -324,7 +380,6 @@ editor.contentElementTypes.register('inlineVideo', {
324
380
  values: ['play', 'mute', 'turnDown']
325
381
  });
326
382
  this.view(SeparatorView);
327
- this.group('ContentElementCaption');
328
383
  this.group('ContentElementPosition');
329
384
  });
330
385
  }
@@ -343,7 +398,8 @@ var img$4 = "data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBo
343
398
  editor.contentElementTypes.register('inlineAudio', {
344
399
  pictogram: img$4,
345
400
  category: 'media',
346
- supportedPositions: ['inline', 'sticky', 'left', 'right', 'full'],
401
+ supportedPositions: ['inline', 'sticky', 'standAlone', 'left', 'right'],
402
+ supportedWidthRange: ['xxs', 'full'],
347
403
  defaultConfig: {
348
404
  playerControlVariant: 'waveformBars'
349
405
  },
@@ -354,12 +410,14 @@ editor.contentElementTypes.register('inlineAudio', {
354
410
  collection: 'audio_files',
355
411
  fileSelectionHandler: 'contentElementConfiguration',
356
412
  positioning: false,
357
- defaultTextTrackFilePropertyName: 'defaultTextTrackFileId'
413
+ defaultTextTrackFilePropertyName: 'defaultTextTrackFileId',
414
+ dropDownMenuItems: [InlineFileRightsMenuItem]
358
415
  });
359
416
  this.input('posterId', FileInputView, {
360
417
  collection: 'image_files',
361
418
  fileSelectionHandler: 'contentElementConfiguration',
362
- positioning: false
419
+ positioning: false,
420
+ dropDownMenuItems: [InlineFileRightsMenuItem]
363
421
  });
364
422
  this.view(SeparatorView);
365
423
  this.input('autoplay', CheckBoxInputView);
@@ -379,7 +437,6 @@ editor.contentElementTypes.register('inlineAudio', {
379
437
  defaultValue: entry.getTheme().get('options').colors.accent
380
438
  });
381
439
  this.view(SeparatorView);
382
- this.group('ContentElementCaption');
383
440
  this.group('ContentElementPosition');
384
441
  });
385
442
  }
@@ -390,7 +447,8 @@ var img$5 = "data:image/svg+xml,%3c%3fxml version='1.0' encoding='utf-8'%3f%3e%3
390
447
  editor.contentElementTypes.register('videoEmbed', {
391
448
  pictogram: img$5,
392
449
  category: 'media',
393
- supportedPositions: ['inline', 'sticky', 'left', 'right', 'wide', 'full'],
450
+ supportedPositions: ['inline', 'sticky', 'standAlone', 'left', 'right'],
451
+ supportedWidthRange: ['xxs', 'full'],
394
452
  configurationEditor: function configurationEditor() {
395
453
  this.tab('general', function () {
396
454
  this.input('videoSource', UrlInputView, {
@@ -414,7 +472,6 @@ editor.contentElementTypes.register('videoEmbed', {
414
472
  values: ['play', 'mute', 'turnDown']
415
473
  });
416
474
  this.view(SeparatorView);
417
- this.group('ContentElementCaption');
418
475
  this.group('ContentElementPosition');
419
476
  });
420
477
  }
@@ -445,7 +502,8 @@ var img$7 = "data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBo
445
502
  editor.contentElementTypes.register('dataWrapperChart', {
446
503
  category: 'data',
447
504
  pictogram: img$7,
448
- supportedPositions: ['inline', 'sticky', 'left', 'right', 'wide', 'full'],
505
+ supportedPositions: ['inline', 'sticky', 'standAlone', 'left', 'right'],
506
+ supportedWidthRange: ['xxs', 'full'],
449
507
  configurationEditor: function configurationEditor() {
450
508
  this.tab('general', function () {
451
509
  this.input('url', UrlInputView, {
@@ -461,7 +519,6 @@ editor.contentElementTypes.register('dataWrapperChart', {
461
519
  this.input('backgroundColor', ColorInputView, {
462
520
  defaultValue: '#323d4d'
463
521
  });
464
- this.group('ContentElementCaption');
465
522
  this.group('ContentElementPosition');
466
523
  });
467
524
  }
@@ -472,19 +529,22 @@ var img$8 = "data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBo
472
529
  editor.contentElementTypes.register('inlineBeforeAfter', {
473
530
  pictogram: img$8,
474
531
  category: 'interactive',
475
- supportedPositions: ['inline', 'sticky', 'left', 'right', 'wide', 'full'],
532
+ supportedPositions: ['inline', 'sticky', 'standAlone', 'left', 'right'],
533
+ supportedWidthRange: ['xxs', 'full'],
476
534
  configurationEditor: function configurationEditor() {
477
535
  this.tab('general', function () {
478
536
  this.input('before_id', FileInputView, {
479
537
  collection: 'image_files',
480
538
  fileSelectionHandler: 'contentElementConfiguration',
481
- positioning: false
539
+ positioning: false,
540
+ dropDownMenuItems: [InlineFileRightsMenuItem]
482
541
  });
483
542
  this.input('before_label', TextInputView);
484
543
  this.input('after_id', FileInputView, {
485
544
  collection: 'image_files',
486
545
  fileSelectionHandler: 'contentElementConfiguration',
487
- positioning: false
546
+ positioning: false,
547
+ dropDownMenuItems: [InlineFileRightsMenuItem]
488
548
  });
489
549
  this.input('after_label', TextInputView);
490
550
  this.input('initial_slider_position', SliderInputView);
@@ -746,13 +806,16 @@ var img$a = "data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBo
746
806
  editor.contentElementTypes.register('vrImage', {
747
807
  pictogram: img$a,
748
808
  category: 'interactive',
809
+ supportedPositions: ['inline', 'sticky', 'standAlone', 'left', 'right'],
810
+ supportedWidthRange: ['xxs', 'full'],
749
811
  configurationEditor: function configurationEditor() {
750
812
  this.tab('general', function () {
751
813
  this.input('image', FileInputView, {
752
814
  collection: 'image_files',
753
815
  fileSelectionHandler: 'contentElementConfiguration',
754
816
  filter: 'with_projection',
755
- positioning: false
817
+ positioning: false,
818
+ dropDownMenuItems: [InlineFileRightsMenuItem]
756
819
  });
757
820
  this.input('initialYaw', SliderInputView$1, {
758
821
  unit: '°',
@@ -764,7 +827,6 @@ editor.contentElementTypes.register('vrImage', {
764
827
  minValue: -60,
765
828
  maxValue: 60
766
829
  });
767
- this.group('ContentElementCaption');
768
830
  this.group('ContentElementPosition');
769
831
  });
770
832
  }
@@ -800,10 +862,25 @@ editor.contentElementTypes.register('iframeEmbed', {
800
862
  pictogram: img$b,
801
863
  category: 'interactive',
802
864
  featureName: 'iframe_embed_content_element',
803
- supportedPositions: ['inline', 'sticky', 'left', 'right', 'wide', 'full'],
804
- configurationEditor: function configurationEditor() {
865
+ supportedPositions: ['inline', 'sticky', 'standAlone', 'left', 'right'],
866
+ supportedWidthRange: ['xxs', 'full'],
867
+ configurationEditor: function configurationEditor(_ref) {
868
+ var entry = _ref.entry;
805
869
  this.tab('general', function () {
806
870
  this.input('source', TextInputView);
871
+ this.input('requireConsent', CheckBoxInputView$1);
872
+ this.view(InfoBoxView, {
873
+ level: 'error',
874
+ text: I18n.t('pageflow_scrolled.editor.content_elements.iframeEmbed.help_texts.missingConsentVendor'),
875
+ visibleBinding: ['source', 'requireConsent'],
876
+ visible: function visible(_ref2) {
877
+ var _ref3 = _slicedToArray(_ref2, 2),
878
+ source = _ref3[0],
879
+ requireConsent = _ref3[1];
880
+
881
+ return source && requireConsent && !entry.consentVendors.fromUrl(source);
882
+ }
883
+ });
807
884
  this.input('title', TextInputView);
808
885
  this.input('aspectRatio', SelectInputView, {
809
886
  values: aspectRatios
@@ -816,7 +893,6 @@ editor.contentElementTypes.register('iframeEmbed', {
816
893
  this.input('scale', SelectInputView, {
817
894
  values: ['p100', 'p75', 'p50', 'p33']
818
895
  });
819
- this.group('ContentElementCaption');
820
896
  this.group('ContentElementPosition');
821
897
  });
822
898
  }
@@ -827,7 +903,7 @@ var img$c = "data:image/svg+xml,%3csvg version='1.1' xmlns='http://www.w3.org/20
827
903
  editor.contentElementTypes.register('twitterEmbed', {
828
904
  pictogram: img$c,
829
905
  category: 'media',
830
- supportedPositions: ['inline', 'sticky', 'left', 'right'],
906
+ supportedPositions: ['inline', 'sticky', 'standAlone', 'left', 'right'],
831
907
  configurationEditor: function configurationEditor() {
832
908
  this.tab('general', function () {
833
909
  this.input('url', UrlInputView, {
@@ -859,3 +935,225 @@ editor.contentElementTypes.register('question', {
859
935
  });
860
936
  }
861
937
  });
938
+
939
+ var img$e = "data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3e%3cpath fill='white' d='M181.3 32.4c17.4 2.9 29.2 19.4 26.3 36.8L197.8 128h95.1l11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3s29.2 19.4 26.3 36.8L357.8 128H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H347.1L325.8 320H384c17.7 0 32 14.3 32 32s-14.3 32-32 32H315.1l-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l9.8-58.7H155.1l-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8L90.2 384H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l21.3-128H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3zM187.1 192L165.8 320h95.1l21.3-128H187.1z'/%3e%3c/svg%3e";
940
+
941
+ editor.contentElementTypes.register('counter', {
942
+ category: 'data',
943
+ pictogram: img$e,
944
+ supportedPositions: ['inline', 'sticky', 'standAlone', 'left', 'right'],
945
+ supportedWidthRange: ['xxs', 'full'],
946
+ defaultConfig: {
947
+ targetValue: 100,
948
+ countingSpeed: 'medium',
949
+ textSize: 'medium'
950
+ },
951
+ configurationEditor: function configurationEditor(_ref) {
952
+ var entry = _ref.entry;
953
+ var locale = entry.metadata.get('locale');
954
+ this.tab('general', function () {
955
+ this.input('targetValue', NumberInputView, {
956
+ locale: locale
957
+ });
958
+ this.input('decimalPlaces', SelectInputView, {
959
+ values: [0, 1, 2, 3],
960
+ texts: [0, 1, 2, 3].map(function (i) {
961
+ return 0 .toLocaleString(locale, {
962
+ minimumFractionDigits: i
963
+ });
964
+ })
965
+ });
966
+ this.input('unit', TextInputView);
967
+ this.input('unitPlacement', SelectInputView, {
968
+ values: ['trailing', 'leading']
969
+ });
970
+ this.view(SeparatorView);
971
+ this.input('entranceAnimation', SelectInputView, {
972
+ values: ['none', 'fadeIn', 'fadeInFromBelow', 'fadeInFromAbove', 'fadeInScaleUp', 'fadeInScaleDown']
973
+ });
974
+ this.input('countingSpeed', SelectInputView, {
975
+ values: ['none', 'slow', 'medium', 'fast']
976
+ });
977
+ this.input('startValue', NumberInputView, {
978
+ locale: locale,
979
+ visibleBinding: 'countingSpeed',
980
+ visible: function visible(countingSpeed) {
981
+ return countingSpeed !== 'none';
982
+ }
983
+ });
984
+ this.view(SeparatorView);
985
+ this.input('textSize', SelectInputView, {
986
+ values: ['large', 'medium', 'small', 'verySmall']
987
+ });
988
+ this.group('ContentElementTypographyVariant', {
989
+ entry: entry,
990
+ getPreviewConfiguration: function getPreviewConfiguration(configuration, typographyVariant) {
991
+ return _objectSpread2(_objectSpread2({}, configuration), {}, {
992
+ typographyVariant: typographyVariant,
993
+ entranceAnimation: 'none',
994
+ countingSpeed: 'none',
995
+ textSize: 'small',
996
+ position: 'inline'
997
+ });
998
+ }
999
+ });
1000
+ this.group('PaletteColor', {
1001
+ propertyName: 'numberColor',
1002
+ entry: entry
1003
+ });
1004
+ this.group('ContentElementPosition');
1005
+ });
1006
+ }
1007
+ });
1008
+
1009
+ var img$f = "data:image/svg+xml,%3csvg aria-hidden='true' focusable='false' data-prefix='fas' data-icon='quote-right' class='svg-inline--fa fa-quote-right fa-w-16' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='-50 -50 612 612'%3e%3cpath fill='white' d='M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z'%3e%3c/path%3e%3c/svg%3e";
1010
+
1011
+ editor.contentElementTypes.register('quote', {
1012
+ pictogram: img$f,
1013
+ supportedPositions: ['inline', 'sticky', 'standAlone', 'left', 'right'],
1014
+ supportedWidthRange: ['xs', 'xl'],
1015
+ defaultConfig: {
1016
+ textSize: 'medium'
1017
+ },
1018
+ configurationEditor: function configurationEditor(_ref) {
1019
+ var entry = _ref.entry;
1020
+ this.tab('general', function () {
1021
+ this.group('ContentElementVariant', {
1022
+ entry: entry
1023
+ });
1024
+ this.input('textSize', SelectInputView, {
1025
+ values: ['large', 'medium', 'small', 'verySmall']
1026
+ });
1027
+ this.group('ContentElementPosition');
1028
+ this.group('PaletteColor', {
1029
+ propertyName: 'color',
1030
+ entry: entry
1031
+ });
1032
+ this.view(SeparatorView);
1033
+ this.view(InfoBoxView, {
1034
+ text: I18n.t('pageflow_scrolled.editor.content_elements.textBlock.help_texts.shortcuts')
1035
+ });
1036
+ });
1037
+ }
1038
+ });
1039
+
1040
+ var css$1 = ".ItemsListView-module_listContainer__2XDCy {\n}\n";
1041
+ var styles$1 = {"listContainer":"ItemsListView-module_listContainer__2XDCy"};
1042
+ styleInject(css$1);
1043
+
1044
+ var ItemsListView = Marionette.Layout.extend({
1045
+ template: function template(data) {
1046
+ return "\n <div class='".concat(styles$1.listContainer, "'></div>\n <button class=\"").concat(buttonStyles.addButton, "\">\n ").concat(I18n.t('pageflow_scrolled.editor.content_elements.imageGallery.items.add'), "\n </button>\n ");
1047
+ },
1048
+ regions: cssModulesUtils.ui(styles$1, 'listContainer'),
1049
+ events: cssModulesUtils.events(buttonStyles, {
1050
+ 'click addButton': function clickAddButton() {
1051
+ this.collection.selectImage();
1052
+ }
1053
+ }),
1054
+ onRender: function onRender() {
1055
+ var _this = this;
1056
+
1057
+ this.listContainer.show(new ListView({
1058
+ label: I18n.t('pageflow_scrolled.editor.content_elements.imageGallery.items.label'),
1059
+ collection: this.collection,
1060
+ sortable: true,
1061
+ onRemove: function onRemove(model) {
1062
+ return _this.collection.remove(model);
1063
+ }
1064
+ }));
1065
+ }
1066
+ });
1067
+
1068
+ var Item = Backbone.Model.extend({
1069
+ mixins: [transientReferences],
1070
+ thumbnailFile: function thumbnailFile() {
1071
+ var _this$imageFile;
1072
+
1073
+ return (_this$imageFile = this.imageFile()) === null || _this$imageFile === void 0 ? void 0 : _this$imageFile.thumbnailFile();
1074
+ },
1075
+ title: function title() {
1076
+ var _this$imageFile2;
1077
+
1078
+ return (_this$imageFile2 = this.imageFile()) === null || _this$imageFile2 === void 0 ? void 0 : _this$imageFile2.title();
1079
+ },
1080
+ imageFile: function imageFile() {
1081
+ return this.collection.entry.imageFiles.getByPermaId(this.get('image'));
1082
+ }
1083
+ });
1084
+
1085
+ var ItemsCollection = Backbone.Collection.extend({
1086
+ model: Item,
1087
+ comparator: 'position',
1088
+ initialize: function initialize(models, options) {
1089
+ this.entry = options.entry;
1090
+ this.contentElement = options.contentElement;
1091
+ this.listenTo(this, 'add remove sort', this.updateConfiguration);
1092
+ this.listenTo(this, 'remove', this.pruneCaptions);
1093
+ },
1094
+ updateConfiguration: function updateConfiguration() {
1095
+ this.contentElement.configuration.set('items', this.toJSON());
1096
+ },
1097
+ pruneCaptions: function pruneCaptions() {
1098
+ this.contentElement.configuration.set('captions', _.pick.apply(_, [this.contentElement.configuration.get('captions') || {}].concat(_toConsumableArray(this.pluck('id')))));
1099
+ },
1100
+ selectImage: function selectImage() {
1101
+ editor$1.selectFile('image_files', 'newImageGalleryItem', {
1102
+ id: this.contentElement.id
1103
+ });
1104
+ },
1105
+ addWithId: function addWithId(imageFile) {
1106
+ this.add({
1107
+ id: this.length ? Math.max.apply(Math, _toConsumableArray(this.pluck('id'))) + 1 : 1,
1108
+ image: imageFile.get('perma_id')
1109
+ });
1110
+ },
1111
+ saveOrder: function saveOrder() {}
1112
+ });
1113
+
1114
+ ItemsCollection.forContentElement = function (contentElement, entry) {
1115
+ return new ItemsCollection(contentElement.configuration.get('items') || [], {
1116
+ entry: entry,
1117
+ contentElement: contentElement
1118
+ });
1119
+ };
1120
+
1121
+ var FileSelectionHandler = function FileSelectionHandler(options) {
1122
+ var contentElement = options.entry.contentElements.get(options.id);
1123
+
1124
+ this.call = function (file) {
1125
+ ItemsCollection.forContentElement(contentElement).addWithId(file);
1126
+ };
1127
+
1128
+ this.getReferer = function () {
1129
+ return '/scrolled/content_elements/' + contentElement.id;
1130
+ };
1131
+ };
1132
+
1133
+ editor$1.registerFileSelectionHandler('newImageGalleryItem', FileSelectionHandler);
1134
+
1135
+ var img$g = "data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3e%3c!--! Font Awesome Pro 6.4.0 by %40fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons%2c Inc. --%3e%3cpath fill='white' d='M160 32c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160zM396 138.7l96 144c4.9 7.4 5.4 16.8 1.2 24.6S480.9 320 472 320H328 280 200c-9.2 0-17.6-5.3-21.6-13.6s-2.9-18.2 2.9-25.4l64-80c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l17.3 21.6 56-84C360.5 132 368 128 376 128s15.5 4 20 10.7zM192 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V344c0 75.1 60.9 136 136 136H456c13.3 0 24-10.7 24-24s-10.7-24-24-24H136c-48.6 0-88-39.4-88-88V120z'/%3e%3c/svg%3e";
1136
+
1137
+ editor.contentElementTypes.register('imageGallery', {
1138
+ pictogram: img$g,
1139
+ category: 'media',
1140
+ supportedPositions: ['inline', 'sticky', 'standAlone', 'left', 'right'],
1141
+ supportedWidthRange: ['xxs', 'full'],
1142
+ configurationEditor: function configurationEditor(_ref) {
1143
+ var entry = _ref.entry,
1144
+ contentElement = _ref.contentElement;
1145
+ this.tab('general', function () {
1146
+ this.view(ItemsListView, {
1147
+ collection: ItemsCollection.forContentElement(this.model.parent, entry)
1148
+ });
1149
+ this.input('enableFullscreenOnDesktop', CheckBoxInputView, {
1150
+ disabledBinding: ['position', 'width'],
1151
+ disabled: function disabled() {
1152
+ return contentElement.getWidth() === contentElementWidths.full;
1153
+ },
1154
+ displayUncheckedIfDisabled: true
1155
+ });
1156
+ this.group('ContentElementPosition');
1157
+ });
1158
+ }
1159
+ });
@@ -1 +1 @@
1
- .Heading-module_root__33TFw{margin-top:.2em;margin-bottom:0;padding-top:.3em}@media (min-width:951px){.Heading-module_right__1TJKF{text-align:right}}.Heading-module_center__38lDY,.Heading-module_centerRagged__388sq{text-align:center}@media (orientation:landscape){.Heading-module_forcePaddingTop__30Juh{padding-top:var(--theme-first-heading-landscape-padding-top,25%)}}.BeforeAfter-module_sliderStart__2C5cN{background-color:#fff;position:absolute;z-index:1}.BeforeAfter-module_container__2Lm06{height:100%;--frame1pos:-8;--frame2pos:16;--frame3pos:-32;--frame4pos:32;--frame1px:calc(var(--frame1pos)*1px);--frame2px:calc(var(--frame2pos)*1px);--frame3px:calc(var(--frame3pos)*1px);--frame4px:calc(var(--frame4pos)*1px)}.BeforeAfter-module_container__2Lm06>div{height:100%!important}.BeforeAfter-module_container__2Lm06.BeforeAfter-module_wiggle__3nVSe>div>div:nth-child(3){-webkit-animation:BeforeAfter-module_SliderLeftRightShake__2mcn5 1.5s cubic-bezier(.36,.07,.19,.97);animation:BeforeAfter-module_SliderLeftRightShake__2mcn5 1.5s cubic-bezier(.36,.07,.19,.97)}.BeforeAfter-module_container__2Lm06.BeforeAfter-module_wiggle__3nVSe div img:nth-child(2){-webkit-animation:BeforeAfter-module_BeforeImageLeftRightShake__38m9V 1.5s cubic-bezier(.36,.07,.19,.97);animation:BeforeAfter-module_BeforeImageLeftRightShake__38m9V 1.5s cubic-bezier(.36,.07,.19,.97)}.BeforeAfter-module_container__2Lm06 div div:nth-child(4) div{transition:opacity .1s ease-out .3s!important}.BeforeAfter-module_container__2Lm06.BeforeAfter-module_wiggle__3nVSe div img:first-child{-webkit-animation:BeforeAfter-module_AfterImageLeftRightShake__3WMf1 1.5s cubic-bezier(.36,.07,.19,.97);animation:BeforeAfter-module_AfterImageLeftRightShake__3WMf1 1.5s cubic-bezier(.36,.07,.19,.97)}.BeforeAfter-module_container__2Lm06 div div:nth-child(5) div{transition:opacity .1s ease-out .3s!important}@-webkit-keyframes BeforeAfter-module_BeforeImageLeftRightShake__38m9V{0%,to{clip:rect(auto,var(--initial-rect-width),auto,auto)}10%,90%{clip:rect(auto,calc(var(--initial-rect-width) + var(--frame1px)),auto,auto)}20%,80%{clip:rect(auto,calc(var(--initial-rect-width) + var(--frame2px)),auto,auto)}30%,50%,70%{clip:rect(auto,calc(var(--initial-rect-width) + var(--frame3px)),auto,auto)}40%,60%{clip:rect(auto,calc(var(--initial-rect-width) + var(--frame4px)),auto,auto)}}@keyframes BeforeAfter-module_BeforeImageLeftRightShake__38m9V{0%,to{clip:rect(auto,var(--initial-rect-width),auto,auto)}10%,90%{clip:rect(auto,calc(var(--initial-rect-width) + var(--frame1px)),auto,auto)}20%,80%{clip:rect(auto,calc(var(--initial-rect-width) + var(--frame2px)),auto,auto)}30%,50%,70%{clip:rect(auto,calc(var(--initial-rect-width) + var(--frame3px)),auto,auto)}40%,60%{clip:rect(auto,calc(var(--initial-rect-width) + var(--frame4px)),auto,auto)}}@-webkit-keyframes BeforeAfter-module_AfterImageLeftRightShake__3WMf1{0%,to{clip:rect(auto,auto,auto,var(--initial-rect-width))}10%,90%{clip:rect(auto,auto,auto,calc(var(--initial-rect-width) + var(--frame1px)))}20%,80%{clip:rect(auto,auto,auto,calc(var(--initial-rect-width) + var(--frame2px)))}30%,50%,70%{clip:rect(auto,auto,auto,calc(var(--initial-rect-width) + var(--frame3px)))}40%,60%{clip:rect(auto,auto,auto,calc(var(--initial-rect-width) + var(--frame4px)))}}@keyframes BeforeAfter-module_AfterImageLeftRightShake__3WMf1{0%,to{clip:rect(auto,auto,auto,var(--initial-rect-width))}10%,90%{clip:rect(auto,auto,auto,calc(var(--initial-rect-width) + var(--frame1px)))}20%,80%{clip:rect(auto,auto,auto,calc(var(--initial-rect-width) + var(--frame2px)))}30%,50%,70%{clip:rect(auto,auto,auto,calc(var(--initial-rect-width) + var(--frame3px)))}40%,60%{clip:rect(auto,auto,auto,calc(var(--initial-rect-width) + var(--frame4px)))}}@-webkit-keyframes BeforeAfter-module_SliderLeftRightShake__2mcn5{0%,to{margin-left:0}10%,90%{margin-left:var(--frame1px)}20%,80%{margin-left:var(--frame2px)}30%,50%,70%{margin-left:var(--frame3px)}40%,60%{margin-left:var(--frame4px)}}@keyframes BeforeAfter-module_SliderLeftRightShake__2mcn5{0%,to{margin-left:0}10%,90%{margin-left:var(--frame1px)}20%,80%{margin-left:var(--frame2px)}30%,50%,70%{margin-left:var(--frame3px)}40%,60%{margin-left:var(--frame4px)}}.MutedIndicator-module_wrapper__17JUY{position:absolute;right:0;top:0;color:#fff;background:linear-gradient(30deg,transparent,transparent 60%,rgba(0,0,0,.65));padding:5px 5px 40px 70px;pointer-events:none;opacity:0;transition:opacity .2s;z-index:1;will-change:transform}.MutedIndicator-module_visible__3qARn{opacity:1}.MutedIndicator-module_eqBar__1cMDE{transform:scaleY(-1) translateY(-24px);fill:#fff}.MutedIndicator-module_eqBar1__2Ap_R{-webkit-animation-name:MutedIndicator-module_short-eq__1OYlk;animation-name:MutedIndicator-module_short-eq__1OYlk;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-delay:0s;animation-delay:0s}.MutedIndicator-module_eqBar2__2QTgX{-webkit-animation-name:MutedIndicator-module_tall-eq__6gm0B;animation-name:MutedIndicator-module_tall-eq__6gm0B;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-delay:.17s;animation-delay:.17s}.MutedIndicator-module_eqBar3__2S-y3{-webkit-animation-name:MutedIndicator-module_short-eq__1OYlk;animation-name:MutedIndicator-module_short-eq__1OYlk;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-delay:.34s;animation-delay:.34s}@-webkit-keyframes MutedIndicator-module_short-eq__1OYlk{0%{height:8px}50%{height:4px}to{height:8px}}@keyframes MutedIndicator-module_short-eq__1OYlk{0%{height:8px}50%{height:4px}to{height:8px}}@-webkit-keyframes MutedIndicator-module_tall-eq__6gm0B{0%{height:16px}50%{height:6px}to{height:16px}}@keyframes MutedIndicator-module_tall-eq__6gm0B{0%{height:16px}50%{height:6px}to{height:16px}}.SoundDisclaimer-module_soundDisclaimer__31hWh{display:grid;border:1px solid;border-radius:4px;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.SoundDisclaimer-module_unmute__1V4Ab,.SoundDisclaimer-module_unmuted__22CJ5{grid-column:1;grid-row:1;display:flex;align-items:center;transition-property:opacity,visibility;transition-duration:.09s;transition-timing-function:ease-out;opacity:0;visibility:hidden;padding:0 15px}.SoundDisclaimer-module_unmute__1V4Ab{position:relative;border:0;background-color:transparent;font:inherit;color:currentColor;text-align:initial;width:100%;z-index:1;cursor:pointer}.SoundDisclaimer-module_active__11_kc{opacity:1;visibility:visible;transition-delay:.09s;transition-duration:.21s;transition-timing-function:ease-in}.SoundDisclaimer-module_soundDisclaimer__31hWh svg{flex:0 0 25px;fill:currentColor;margin-right:15px}.TextBlock-module_text__21Hk4 li,.TextBlock-module_text__21Hk4 p{margin:1.375rem 0 0}.TextBlock-module_text__21Hk4 a{color:var(--theme-text-block-dark-link-color,var(--theme-text-block-link-color,currentColor));word-wrap:break-word}.TextBlock-module_darkBackground__22pEl a{color:var(--theme-text-block-light-link-color,var(--theme-text-block-link-color,currentColor))}.TextBlock-module_text__21Hk4 ol,.TextBlock-module_text__21Hk4 ul{margin:0;padding-left:20px;clear:both}.TextBlock-module_text__21Hk4 ul{list-style-type:var(--theme-text-block-unordered-list-style-type)}.TextBlock-module_text__21Hk4 blockquote{padding:.5em .5em .5em 1.6em;margin:1.375rem 0 0;position:relative;overflow:hidden}.TextBlock-module_text__21Hk4 blockquote:before{content:"\201C";font-size:2.5em;font-weight:700;position:absolute;top:.1em;left:0;line-height:1em;opacity:.5}@media screen and (min-width:640px){.TextBlock-module_text__21Hk4 blockquote{margin-left:.6875rem;padding-left:2em;padding-right:1.375rem}.TextBlock-module_text__21Hk4 blockquote:before{font-size:3em;top:0}}.TextBlock-module_layout-centerRagged__1tjoI{text-align:center}.TextBlock-module_layout-centerRagged__1tjoI ol,.TextBlock-module_layout-centerRagged__1tjoI ul{padding-left:0;list-style-position:inside}.VideoEmbed-module_embedPlayer__54NKG{position:absolute;top:0;left:0;bottom:0;right:0;background-color:#000;color:#fff}.ExternalLink-module_hidden__3jer0{display:none}.ExternalLink-module_link_item__Blypv{width:45%;vertical-align:top;margin:2% auto;background-color:var(--theme-light-content-surface-color,#fff);color:var(--theme-dark-content-text-color,#222);text-decoration:none;transition:transform .3s;border-radius:var(--theme-content-element-box-border-radius);overflow:hidden;will-change:transform}.ExternalLink-module_link_item__Blypv.ExternalLink-module_invert__1zrgN{background-color:var(--theme-dark-content-surface-color,#101010);color:var(--theme-light-content-text-color,#fff)}.ExternalLink-module_link_item__Blypv.ExternalLink-module_layout_center__3NRpQ{width:29%}.ExternalLink-module_link_item__Blypv:hover{transform:scale(1.05)}.ExternalLink-module_link_item__Blypv:hover .ExternalLink-module_link_title__FZJ-0{text-decoration:underline}.ExternalLink-module_link_thumbnail__2_BHq{width:auto;background-repeat:no-repeat;background-size:cover;padding-top:56.25%;position:relative}.ExternalLink-module_link_details__lRhKU{margin:20px}.ExternalLink-module_link_details__lRhKU>.ExternalLink-module_link_title__FZJ-0{font-size:1.2em;font-weight:700;margin-bottom:20px}.ExternalLink-module_link_details__lRhKU>p{width:100%;white-space:normal;line-height:1.3em}.ExternalLink-module_tooltip__18MpC{position:absolute;left:50%;top:80px;width:180px;padding:5px;margin-left:-95px;background-color:#444;color:#fff;opacity:.9;font-size:13px;text-align:center;white-space:normal}.ExternalLink-module_tooltip__18MpC>span{display:block;color:#fff;text-decoration:underline}@media only screen and (max-width:600px){.ExternalLink-module_link_item__Blypv.ExternalLink-module_layout_center__3NRpQ{width:45%}}@media only screen and (max-width:350px){.ExternalLink-module_link_item__Blypv,.ExternalLink-module_link_item__Blypv.ExternalLink-module_layout_center__3NRpQ{width:85%}}.ExternalLinkList-module_ext_links_container__16IIo{display:flex;flex-wrap:wrap;border-collapse:separate;border-spacing:10px;min-height:240px;width:auto;height:auto;pointer-events:auto;position:relative;transition:opacity .5s;transition-timing-function:cubic-bezier(.1,.57,.1,1);transition-duration:0ms}.DataWrapperChart-module_container__2eZ15{min-height:200px;padding:20px 5%}.DataWrapperChart-module_container__2eZ15>iframe{width:100%;height:100%;position:relative;top:0;border:0}.IframeEmbed-module_wrapper__3w_LN{overflow:hidden}.IframeEmbed-module_iframe__3QVCA{width:100%;height:100%;border:none;transform-origin:0 0}.IframeEmbed-module_scale-p33__MRjVy{width:300%;height:300%;transform:scale(.333)}.IframeEmbed-module_scale-p50__1EKxu{width:200%;height:200%;transform:scale(.5)}.IframeEmbed-module_scale-p75__1yT4D{width:133.333%;height:133.333%;transform:scale(.75)}.Placeholder-module_wrapper__jRFYE{border-radius:12px;background-color:#fff;color:#000;display:flex;flex-direction:column;padding:12px 16px 30px;margin:10px auto;border:1px solid #cfd9de;max-width:550px;box-sizing:border-box}.Placeholder-module_wrapper__jRFYE svg{fill:#eee}.Placeholder-module_row__1SBRB{display:flex;margin-bottom:12px}.Placeholder-module_item__RozmQ{-webkit-animation:Placeholder-module_load__uFpxr 2s linear infinite;animation:Placeholder-module_load__uFpxr 2s linear infinite;background:linear-gradient(-75deg,transparent 30%,#ddd 50%,transparent 70%) 0 0/200% 100%,#eee;background-attachment:fixed}.Placeholder-module_avatar__2VeHz{width:48px;height:48px;border-radius:100%}.Placeholder-module_info__37csK{flex:1;margin-left:7px}.Placeholder-module_handle__2WwoF,.Placeholder-module_name__2T6as,.Placeholder-module_text__DWLME{border-radius:2px}.Placeholder-module_handle__2WwoF,.Placeholder-module_name__2T6as{height:14px;margin:6px 0}.Placeholder-module_name__2T6as{width:40%}.Placeholder-module_handle__2WwoF{width:35%}.Placeholder-module_text__DWLME{height:200px;flex-grow:1;margin-bottom:10px}@-webkit-keyframes Placeholder-module_load__uFpxr{to{background-position:-200% 0}}@keyframes Placeholder-module_load__uFpxr{to{background-position:-200% 0}}.TwitterEmbed-module_loadingContainer__3Ozs_>div{margin-top:0!important;margin-bottom:0!important}.TwitterEmbed-module_container__380cX>div{margin:0 auto}.Question-module_details__3FxH-{position:relative;padding-left:22px;margin:1.375rem 0 0}.Question-module_details__3FxH- summary{display:inline-flex;oveflow:hidden;font-weight:700;cursor:pointer}.Question-module_details__3FxH- summary::-webkit-details-marker{display:none}.Question-module_details__3FxH- summary>svg{position:absolute;left:-11px;top:0;width:30px;height:30px;transition:transform .2s ease}.Question-module_details__3FxH-[open] summary>svg{transform:rotate(90deg)}.Question-module_details__3FxH- p{margin:1.375rem 0 0}.Question-module_layout-centerRagged__1hovs{text-align:center}
1
+ .colors-module_contentColorScope__7XjIS{--theme-light-content-surface-color:var(--root-light-content-surface-color);--theme-dark-content-surface-color:var(--root-dark-content-surface-color);--theme-light-content-text-color:var(--root-light-content-text-color);--theme-dark-content-text-color:var(--root-dark-content-text-color)}.Heading-module_root__33TFw{margin-top:.3em;margin-bottom:0;padding-top:.45em}.Heading-module_animation-fadeIn__3jlOG{--fade-in-duration:2s;--fade-in-delay:0.4s}.Heading-module_animation-fadeInFast__b41KH{--fade-in-duration:1s;--fade-in-delay:0.4s}.Heading-module_animation-fadeInSlow__1G1o5{--fade-in-duration:3s;--fade-in-delay:0.8s}.Heading-module_animation-fadeIn__3jlOG .Heading-module_main__35wWK,.Heading-module_animation-fadeIn__3jlOG .Heading-module_subtitle__19eD8,.Heading-module_animation-fadeIn__3jlOG .Heading-module_tagline__pvHO5{opacity:0}.Heading-module_animation-fadeIn__3jlOG.Heading-module_animating__1ziJR .Heading-module_main__35wWK,.Heading-module_animation-fadeIn__3jlOG.Heading-module_animating__1ziJR .Heading-module_subtitle__19eD8,.Heading-module_animation-fadeIn__3jlOG.Heading-module_animating__1ziJR .Heading-module_tagline__pvHO5{transition:opacity var(--fade-in-duration) ease;opacity:1}.Heading-module_animation-fadeIn__3jlOG.Heading-module_animating__1ziJR .Heading-module_subtitle__19eD8,.Heading-module_animation-fadeIn__3jlOG.Heading-module_hasTagline__Pgn8c.Heading-module_animating__1ziJR .Heading-module_main__35wWK{transition-delay:var(--fade-in-delay)}.Heading-module_animation-fadeIn__3jlOG.Heading-module_hasTagline__Pgn8c.Heading-module_animating__1ziJR .Heading-module_subtitle__19eD8{transition-delay:calc(var(--fade-in-delay)*2)}.Heading-module_main__35wWK{margin:0}.Heading-module_tagline__pvHO5{margin-bottom:.8em}.Heading-module_subtitle__19eD8{margin-top:.6em;margin-bottom:2em}@media (max-width:600px){.Heading-module_tagline__pvHO5{margin-bottom:.4em}.Heading-module_subtitle__19eD8{margin-top:.4em}}@media (min-width:951px){.Heading-module_right__1TJKF{text-align:right}}.Heading-module_light__1TQE8{color:var(--theme-light-content-text-color,#fff)}.Heading-module_dark__18iWa{color:var(--theme-dark-content-text-color,#222)}.Heading-module_center__38lDY,.Heading-module_centerRagged__388sq{text-align:center}@media (orientation:landscape){.Heading-module_forcePaddingTop__30Juh{padding-top:var(--theme-first-heading-landscape-padding-top,25%)}}.BeforeAfter-module_sliderStart__2C5cN{background-color:#fff;position:absolute;z-index:1}.BeforeAfter-module_container__2Lm06{height:100%;--frame1pos:-8;--frame2pos:16;--frame3pos:-32;--frame4pos:32;--frame1px:calc(var(--frame1pos)*1px);--frame2px:calc(var(--frame2pos)*1px);--frame3px:calc(var(--frame3pos)*1px);--frame4px:calc(var(--frame4pos)*1px)}.BeforeAfter-module_container__2Lm06>div{height:100%!important}.BeforeAfter-module_container__2Lm06.BeforeAfter-module_wiggle__3nVSe>div>div:nth-child(3){-webkit-animation:BeforeAfter-module_SliderLeftRightShake__2mcn5 1.5s cubic-bezier(.36,.07,.19,.97);animation:BeforeAfter-module_SliderLeftRightShake__2mcn5 1.5s cubic-bezier(.36,.07,.19,.97)}.BeforeAfter-module_container__2Lm06.BeforeAfter-module_wiggle__3nVSe div img:nth-child(2){-webkit-animation:BeforeAfter-module_BeforeImageLeftRightShake__38m9V 1.5s cubic-bezier(.36,.07,.19,.97);animation:BeforeAfter-module_BeforeImageLeftRightShake__38m9V 1.5s cubic-bezier(.36,.07,.19,.97)}.BeforeAfter-module_container__2Lm06 div div:nth-child(4) div{transition:opacity .1s ease-out .3s!important}.BeforeAfter-module_container__2Lm06.BeforeAfter-module_wiggle__3nVSe div img:first-child{-webkit-animation:BeforeAfter-module_AfterImageLeftRightShake__3WMf1 1.5s cubic-bezier(.36,.07,.19,.97);animation:BeforeAfter-module_AfterImageLeftRightShake__3WMf1 1.5s cubic-bezier(.36,.07,.19,.97)}.BeforeAfter-module_container__2Lm06 div div:nth-child(5) div{transition:opacity .1s ease-out .3s!important}@-webkit-keyframes BeforeAfter-module_BeforeImageLeftRightShake__38m9V{0%,to{clip:rect(auto,calc(var(--initial-rect-width)),auto,auto)}10%,90%{clip:rect(auto,calc(var(--initial-rect-width) + var(--frame1px)),auto,auto)}20%,80%{clip:rect(auto,calc(var(--initial-rect-width) + var(--frame2px)),auto,auto)}30%,50%,70%{clip:rect(auto,calc(var(--initial-rect-width) + var(--frame3px)),auto,auto)}40%,60%{clip:rect(auto,calc(var(--initial-rect-width) + var(--frame4px)),auto,auto)}}@keyframes BeforeAfter-module_BeforeImageLeftRightShake__38m9V{0%,to{clip:rect(auto,calc(var(--initial-rect-width)),auto,auto)}10%,90%{clip:rect(auto,calc(var(--initial-rect-width) + var(--frame1px)),auto,auto)}20%,80%{clip:rect(auto,calc(var(--initial-rect-width) + var(--frame2px)),auto,auto)}30%,50%,70%{clip:rect(auto,calc(var(--initial-rect-width) + var(--frame3px)),auto,auto)}40%,60%{clip:rect(auto,calc(var(--initial-rect-width) + var(--frame4px)),auto,auto)}}@-webkit-keyframes BeforeAfter-module_AfterImageLeftRightShake__3WMf1{0%,to{clip:rect(auto,auto,auto,calc(var(--initial-rect-width)))}10%,90%{clip:rect(auto,auto,auto,calc(var(--initial-rect-width) + var(--frame1px)))}20%,80%{clip:rect(auto,auto,auto,calc(var(--initial-rect-width) + var(--frame2px)))}30%,50%,70%{clip:rect(auto,auto,auto,calc(var(--initial-rect-width) + var(--frame3px)))}40%,60%{clip:rect(auto,auto,auto,calc(var(--initial-rect-width) + var(--frame4px)))}}@keyframes BeforeAfter-module_AfterImageLeftRightShake__3WMf1{0%,to{clip:rect(auto,auto,auto,calc(var(--initial-rect-width)))}10%,90%{clip:rect(auto,auto,auto,calc(var(--initial-rect-width) + var(--frame1px)))}20%,80%{clip:rect(auto,auto,auto,calc(var(--initial-rect-width) + var(--frame2px)))}30%,50%,70%{clip:rect(auto,auto,auto,calc(var(--initial-rect-width) + var(--frame3px)))}40%,60%{clip:rect(auto,auto,auto,calc(var(--initial-rect-width) + var(--frame4px)))}}@-webkit-keyframes BeforeAfter-module_SliderLeftRightShake__2mcn5{0%,to{margin-left:0}10%,90%{margin-left:var(--frame1px)}20%,80%{margin-left:var(--frame2px)}30%,50%,70%{margin-left:var(--frame3px)}40%,60%{margin-left:var(--frame4px)}}@keyframes BeforeAfter-module_SliderLeftRightShake__2mcn5{0%,to{margin-left:0}10%,90%{margin-left:var(--frame1px)}20%,80%{margin-left:var(--frame2px)}30%,50%,70%{margin-left:var(--frame3px)}40%,60%{margin-left:var(--frame4px)}}.MutedIndicator-module_wrapper__17JUY{position:absolute;right:0;top:0;color:#fff;background:linear-gradient(30deg,transparent,transparent 60%,rgba(0,0,0,.65));padding:5px 5px 40px 70px;pointer-events:none;opacity:0;transition:opacity .2s;z-index:1;will-change:transform}.MutedIndicator-module_visible__3qARn{opacity:1}.MutedIndicator-module_eqBar__1cMDE{transform:scaleY(-1) translateY(-24px);fill:#fff}.MutedIndicator-module_eqBar1__2Ap_R{-webkit-animation-name:MutedIndicator-module_short-eq__1OYlk;animation-name:MutedIndicator-module_short-eq__1OYlk;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-delay:0s;animation-delay:0s}.MutedIndicator-module_eqBar2__2QTgX{-webkit-animation-name:MutedIndicator-module_tall-eq__6gm0B;animation-name:MutedIndicator-module_tall-eq__6gm0B;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-delay:.17s;animation-delay:.17s}.MutedIndicator-module_eqBar3__2S-y3{-webkit-animation-name:MutedIndicator-module_short-eq__1OYlk;animation-name:MutedIndicator-module_short-eq__1OYlk;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-delay:.34s;animation-delay:.34s}@-webkit-keyframes MutedIndicator-module_short-eq__1OYlk{0%{height:8px}50%{height:4px}to{height:8px}}@keyframes MutedIndicator-module_short-eq__1OYlk{0%{height:8px}50%{height:4px}to{height:8px}}@-webkit-keyframes MutedIndicator-module_tall-eq__6gm0B{0%{height:16px}50%{height:6px}to{height:16px}}@keyframes MutedIndicator-module_tall-eq__6gm0B{0%{height:16px}50%{height:6px}to{height:16px}}.SoundDisclaimer-module_soundDisclaimer__31hWh{display:grid;border:1px solid;border-radius:4px;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.SoundDisclaimer-module_unmute__1V4Ab,.SoundDisclaimer-module_unmuted__22CJ5{grid-column:1;grid-row:1;display:flex;align-items:center;transition-property:opacity,visibility;transition-duration:.09s;transition-timing-function:ease-out;opacity:0;visibility:hidden;padding:0 15px}.SoundDisclaimer-module_unmute__1V4Ab{position:relative;border:0;background-color:transparent;font:inherit;color:currentColor;text-align:initial;width:100%;z-index:1;cursor:pointer}.SoundDisclaimer-module_active__11_kc{opacity:1;visibility:visible;transition-delay:.09s;transition-duration:.21s;transition-timing-function:ease-in}.SoundDisclaimer-module_soundDisclaimer__31hWh svg{flex:0 0 25px;fill:currentColor;margin-right:15px}.colors-module_contentColorScope__2zqbk{--theme-light-content-surface-color:var(--root-light-content-surface-color);--theme-dark-content-surface-color:var(--root-dark-content-surface-color);--theme-light-content-text-color:var(--root-light-content-text-color);--theme-dark-content-text-color:var(--root-dark-content-text-color)}.TextBlock-module_text__21Hk4{--block-quote-padding-left:0}.TextBlock-module_quoteDesign-hanging__1c9AW{--block-quote-padding-left:var(--theme-text-block-block-quote-hanging-indent,1em)}.TextBlock-module_quoteDesign-largeHanging__2VkIW{--block-quote-padding-left:var(--theme-text-block-block-quote-hanging-indent,1.6em)}.TextBlock-module_text__21Hk4 p{margin:1.375rem 0 0}.TextBlock-module_text__21Hk4 li{margin:var(--theme-text-block-first-list-item-margin-top,1.375rem) 0 0 0}.TextBlock-module_text__21Hk4 li+li{margin-top:var(--theme-text-block-list-item-margin-top,.6875rem)}.TextBlock-module_text__21Hk4 a{color:var(--content-link-color);word-wrap:break-word}.TextBlock-module_text__21Hk4 ol,.TextBlock-module_text__21Hk4 ul{margin:0;padding-left:0;padding-right:var(--list-indent,25px);position:relative;left:var(--list-indent,25px)}.TextBlock-module_text__21Hk4 ul{list-style-type:var(--theme-text-block-unordered-list-style-type);--list-indent:var(--theme-text-block-unordered-list-indent)}.TextBlock-module_text__21Hk4 ol{--list-indent:var(--theme-text-block-ordered-list-indent)}.TextBlock-module_text__21Hk4 ul li::marker{color:var(--theme-text-block-unordered-list-marker-color)}.TextBlock-module_text__21Hk4 blockquote{padding:.5em .5em .5em var(--block-quote-padding-left);margin:1.375rem 0 0;position:relative;overflow:hidden}.TextBlock-module_text__21Hk4 blockquote:after,.TextBlock-module_text__21Hk4 blockquote:before{font-weight:var(--theme-quote-mark-font-weight,bold);opacity:var(--theme-quote-mark-opacity,.5);width:var(--theme-quote-mark-width)}.TextBlock-module_text__21Hk4 blockquote:before{content:var(--theme-quote-left-mark,"\201C")}.TextBlock-module_text__21Hk4 blockquote:after{content:var(--theme-quote-right-mark,"\201D")}.TextBlock-module_quoteDesign-hanging__1c9AW blockquote:before,.TextBlock-module_quoteDesign-largeHanging__2VkIW blockquote:before{position:absolute}.TextBlock-module_quoteDesign-largeHanging__2VkIW blockquote:before{font-size:var(--theme-quote-large-mark-font-size,2.5em);line-height:1em;top:calc(var(--theme-quote-large-mark-top, -.2em));padding-top:inherit;left:0}.TextBlock-module_quoteDesign-largeHanging__2VkIW blockquote:after{display:none}.TextBlock-module_quoteDesign-hanging__1c9AW blockquote:before{right:calc(100% - var(--block-quote-padding-left) + var(--theme-quote-hanging-mark-spacing, .05em))}.TextBlock-module_quoteDesign-hanging__1c9AW blockquote:after{padding-left:var(--theme-quote-hanging-mark-spacing,.05em)}@media screen and (min-width:640px){.TextBlock-module_quoteDesign-largeHanging__2VkIW{--block-quote-padding-left:var(--theme-text-block-block-quote-hanging-indent,2em)}.TextBlock-module_text__21Hk4 blockquote{margin-left:.6875rem;padding-right:1.375rem}.TextBlock-module_quoteDesign-largeHanging__2VkIW blockquote:before{font-size:var(--theme-quote-large-mark-font-size,3em)}}.TextBlock-module_layout-centerRagged__1tjoI{text-align:center}.TextBlock-module_layout-centerRagged__1tjoI ol,.TextBlock-module_layout-centerRagged__1tjoI ul{padding-left:0;list-style-position:inside}.VideoEmbed-module_embedPlayer__54NKG{position:absolute;top:0;left:0;bottom:0;right:0;background-color:#000;color:#fff}.ExternalLink-module_hidden__3jer0{display:none}.ExternalLink-module_link_item__Blypv{display:flex;flex-direction:column;width:45%;vertical-align:top;margin:2% auto;text-decoration:none;transition:transform .3s;border-radius:var(--theme-content-element-box-border-radius);overflow:hidden;will-change:transform}.ExternalLink-module_link_item__Blypv.ExternalLink-module_layout_center__3NRpQ{width:29%}.ExternalLink-module_link_item__Blypv:hover{transform:scale(1.05)}.ExternalLink-module_link_item__Blypv:hover .ExternalLink-module_link_title__FZJ-0{text-decoration:underline}.ExternalLink-module_link_thumbnail__2_BHq{width:auto;background-repeat:no-repeat;background-size:cover;padding-top:56.25%;position:relative}.ExternalLink-module_link_details__lRhKU{flex:1;padding:20px;color:var(--theme-dark-content-text-color,#222);background-color:var(--theme-light-content-surface-color,#fff)}.ExternalLink-module_invert__1zrgN>.ExternalLink-module_link_details__lRhKU{background-color:var(--theme-dark-content-surface-color,#101010);color:var(--theme-light-content-text-color,#fff)}.ExternalLink-module_link_details__lRhKU>.ExternalLink-module_link_title__FZJ-0{font-weight:700;margin:0 0 20px}@media screen and (min-width:640px){.ExternalLink-module_link_details__lRhKU>.ExternalLink-module_link_title__FZJ-0{font-size:1.2em}}.ExternalLink-module_link_details__lRhKU>p{width:100%;white-space:normal;line-height:1.3em;margin-bottom:0}.ExternalLink-module_tooltip__18MpC{position:absolute;left:50%;top:80px;width:180px;padding:5px;margin-left:-95px;background-color:#444;color:#fff;opacity:.9;font-size:13px;text-align:center;white-space:normal}.ExternalLink-module_tooltip__18MpC>span{display:block;color:#fff;text-decoration:underline}@media only screen and (max-width:600px){.ExternalLink-module_link_item__Blypv.ExternalLink-module_layout_center__3NRpQ{width:45%}}@media only screen and (max-width:350px){.ExternalLink-module_link_item__Blypv,.ExternalLink-module_link_item__Blypv.ExternalLink-module_layout_center__3NRpQ{width:85%}}.colors-module_contentColorScope__3zLO1{--theme-light-content-surface-color:var(--root-light-content-surface-color);--theme-dark-content-surface-color:var(--root-dark-content-surface-color);--theme-light-content-text-color:var(--root-light-content-text-color);--theme-dark-content-text-color:var(--root-dark-content-text-color)}.ExternalLinkList-module_ext_links_container__16IIo{display:flex;flex-wrap:wrap;border-collapse:separate;border-spacing:10px;min-height:240px;width:auto;height:auto;pointer-events:auto;position:relative;transition:opacity .5s;transition-timing-function:cubic-bezier(.1,.57,.1,1);transition-duration:0ms}.DataWrapperChart-module_container__2eZ15{min-height:200px;padding:20px 5%}.DataWrapperChart-module_container__2eZ15>iframe{width:100%;height:100%;position:relative;top:0;border:0}.IframeEmbed-module_wrapper__3w_LN{overflow:hidden}.IframeEmbed-module_iframe__3QVCA{width:100%;height:100%;border:none;transform-origin:0 0}.IframeEmbed-module_scale-p33__MRjVy{width:300%;height:300%;transform:scale(.333)}.IframeEmbed-module_scale-p50__1EKxu{width:200%;height:200%;transform:scale(.5)}.IframeEmbed-module_scale-p75__1yT4D{width:133.333%;height:133.333%;transform:scale(.75)}.Placeholder-module_wrapper__jRFYE{border-radius:12px;background-color:#fff;color:#000;display:flex;flex-direction:column;padding:12px 16px 30px;margin:10px auto;border:1px solid #cfd9de;max-width:550px;box-sizing:border-box}.Placeholder-module_wrapper__jRFYE svg{fill:#eee}.Placeholder-module_row__1SBRB{display:flex;margin-bottom:12px}.Placeholder-module_item__RozmQ{-webkit-animation:Placeholder-module_load__uFpxr 2s linear infinite;animation:Placeholder-module_load__uFpxr 2s linear infinite;background:linear-gradient(-75deg,transparent 30%,#ddd 50%,transparent 70%) 0 0/200% 100%,#eee;background-attachment:fixed}.Placeholder-module_avatar__2VeHz{width:48px;height:48px;border-radius:100%}.Placeholder-module_info__37csK{flex:1;margin-left:7px}.Placeholder-module_handle__2WwoF,.Placeholder-module_name__2T6as,.Placeholder-module_text__DWLME{border-radius:2px}.Placeholder-module_handle__2WwoF,.Placeholder-module_name__2T6as{height:14px;margin:6px 0}.Placeholder-module_name__2T6as{width:40%}.Placeholder-module_handle__2WwoF{width:35%}.Placeholder-module_text__DWLME{height:200px;flex-grow:1;margin-bottom:10px}@-webkit-keyframes Placeholder-module_load__uFpxr{to{background-position:-200% 0}}@keyframes Placeholder-module_load__uFpxr{to{background-position:-200% 0}}.TwitterEmbed-module_loadingContainer__3Ozs_>div{margin-top:0!important;margin-bottom:0!important}.TwitterEmbed-module_container__380cX>div{margin:0 auto}.colors-module_contentColorScope__33Qhb{--theme-light-content-surface-color:var(--root-light-content-surface-color);--theme-dark-content-surface-color:var(--root-dark-content-surface-color);--theme-light-content-text-color:var(--root-light-content-text-color);--theme-dark-content-text-color:var(--root-dark-content-text-color)}.Question-module_details__3FxH-{position:relative;padding-left:22px;margin:1.375rem 0 0}.Question-module_details__3FxH- summary{display:inline-flex;oveflow:hidden;font-weight:700;cursor:pointer}.Question-module_details__3FxH- summary::-webkit-details-marker{display:none}.Question-module_details__3FxH- summary>svg{position:absolute;left:-11px;top:0;width:30px;height:30px;transition:transform .2s ease}.Question-module_details__3FxH-[open] summary>svg{transform:rotate(90deg)}.Question-module_answer__2jMt6 p{margin:1.375rem 0 0}.Question-module_answer__2jMt6 a{color:var(--content-link-color)}.Question-module_layout-centerRagged__1hovs{text-align:center}.colors-module_contentColorScope__1IORS{--theme-light-content-surface-color:var(--root-light-content-surface-color);--theme-dark-content-surface-color:var(--root-dark-content-surface-color);--theme-light-content-text-color:var(--root-light-content-text-color);--theme-dark-content-text-color:var(--root-dark-content-text-color)}.Counter-module_wrapper__3XTil p{margin:0}.Counter-module_wrapper__3XTil a{color:var(--content-link-color)}.Counter-module_number__1Y4AV{display:inline-block;word-break:break-word;color:var(--palette-color)}.Counter-module_centerRagged__3Va0Y{text-align:center}.Counter-module_center__1SCJY,.Counter-module_center__1SCJY .Counter-module_wrapper__3XTil{display:flex;flex-direction:column;align-items:center}.Counter-module_animation-fadeIn__3Hyky{opacity:0}.Counter-module_animation-fadeIn-active__16DIk{transition:opacity 1s linear;opacity:1}.Counter-module_animation-fadeInFromBelow__3l1qX{opacity:0;transform:translateY(20px)}.Counter-module_animation-fadeInFromAbove__3iGf-{opacity:0;transform:translateY(-20px)}.Counter-module_animation-fadeInFromAbove-active__37UsW,.Counter-module_animation-fadeInFromBelow-active__2CSjv{transition:opacity 1s linear,transform 1s ease-out;transform:translateY(0);opacity:1}.Counter-module_animation-fadeInScaleUp__1ngk5{opacity:0;transform:scale(.8)}.Counter-module_animation-fadeInScaleDown__SpNGu{opacity:0;transform:scale(1.2)}.Counter-module_animation-fadeInScaleDown-active__3gaYM,.Counter-module_animation-fadeInScaleUp-active__1GEXn{transition:opacity 1s linear,transform var(--counting-duration) ease-out;transform:scale(1);opacity:1}.colors-module_contentColorScope__26MUe{--theme-light-content-surface-color:var(--root-light-content-surface-color);--theme-dark-content-surface-color:var(--root-dark-content-surface-color);--theme-light-content-text-color:var(--root-light-content-text-color);--theme-dark-content-text-color:var(--root-dark-content-text-color)}.Quote-module_figure__1Q3tJ{margin:0;display:flex;flex-direction:column;align-items:flex-end;padding-bottom:1.375rem;color:var(--palette-color)}.Quote-module_design-largeCentered__2f6qW{text-align:center;align-items:center}.Quote-module_figure__1Q3tJ a{color:var(--palette-color,var(--content-link-color))}.Quote-module_text__C0md2{--quote-indent:var(--theme-quote-indent,0);--quote-large-mark-font-size:var(--theme-quote-large-mark-font-size,2em);width:100%;box-sizing:border-box;margin:0;padding:1em 0 var(--theme-quote-text-padding-bottom,.5em) 0}.Quote-module_design-hanging__4aDVU .Quote-module_text__C0md2,.Quote-module_design-largeHanging__1TVQh .Quote-module_text__C0md2{--quote-indent:var(--theme-quote-indent,1em)}.Quote-module_text__C0md2 p{margin:1.375rem 0 0 var(--quote-indent)}.Quote-module_text__C0md2 br{display:none}.Quote-module_centerRagged__1CeFH .Quote-module_text__C0md2 p{text-align:center;margin-right:var(--quote-indent)}.Quote-module_text__C0md2 p:first-child{position:relative}.Quote-module_text__C0md2 p:first-child:before,.Quote-module_text__C0md2 p:last-child:after{font-family:var(--theme-quote-mark-font-family);font-weight:var(--theme-quote-mark-font-weight,bold);opacity:var(--theme-quote-mark-opacity,.5);color:var(--theme-quote-mark-color);width:var(--theme-quote-mark-width)}.Quote-module_text__C0md2 p:first-child:before{content:var(--theme-quote-left-mark,"\201C")}.Quote-module_maskedMark__2n08e .Quote-module_text__C0md2 p:first-child:before{-webkit-mask:var(--theme-quote-left-mark-mask-image) 50% 50% no-repeat;mask:var(--theme-quote-left-mark-mask-image) 50% 50% no-repeat;background-color:var(--palette-color,var(--theme-quote-mark-color));color:transparent}.Quote-module_text__C0md2 p:last-child:after{content:var(--theme-quote-right-mark,"\201D")}.Quote-module_design-hanging__4aDVU .Quote-module_text__C0md2 p:first-child:before,.Quote-module_design-largeHanging__1TVQh .Quote-module_text__C0md2 p:first-child:before{position:absolute;right:calc(100% + var(--theme-quote-hanging-mark-spacing, .05em))}.Quote-module_design-largeCentered__2f6qW .Quote-module_text__C0md2 p:first-child:before,.Quote-module_design-largeHanging__1TVQh .Quote-module_text__C0md2 p:first-child:before{font-size:var(--quote-large-mark-font-size);line-height:1em}.Quote-module_design-largeCentered__2f6qW .Quote-module_text__C0md2 p:first-child:before{font-size:var(--quote-large-mark-font-size);margin-top:var(--theme-quote-large-mark-margin-top,-.1em);margin-bottom:var(--theme-quote-large-mark-margin-bottom,-.3em);display:block}.Quote-module_design-largeHanging__1TVQh .Quote-module_text__C0md2 p:first-child:before{top:var(--theme-quote-large-mark-top,-.2em)}.Quote-module_design-largeCentered__2f6qW .Quote-module_text__C0md2 p:last-child:after,.Quote-module_design-largeHanging__1TVQh .Quote-module_text__C0md2 p:last-child:after{display:none}.Quote-module_design-hanging__4aDVU .Quote-module_text__C0md2 p:first-child:after{padding-left:var(--theme-quote-hanging-mark-spacing,.05em)}.Quote-module_attribution__3iXxu{min-width:var(--theme-quote-attribution-min-width)}.Quote-module_attribution__3iXxu p:first-child{position:relative}.Quote-module_attribution__3iXxu p:first-child:before{content:var(--quote-attribution-prefix,"\2014");position:absolute;right:100%;margin-right:.5em}.Quote-module_design-largeCentered__2f6qW .Quote-module_attribution__3iXxu p:first-child:before{display:none}.Quote-module_attribution__3iXxu p{margin:0}.Quote-module_attribution__3iXxu p:first-child{font-weight:700}@media screen and (min-width:640px){.Quote-module_design-largeHanging__1TVQh .Quote-module_text__C0md2{--quote-indent:var(--theme-quote-indent,1.5em);--quote-large-mark-font-size:var(--theme-quote-large-mark-font-size,2.5em)}}.ScrollButton-module_button__3DeL7{padding:0;background-color:transparent;border:0;color:inherit}.ScrollButton-module_left__3uACk{text-align:left}.ScrollButton-module_right__25CLO{text-align:right}.ScrollButton-module_button__3DeL7 svg{transition:transform .2s ease}.ScrollButton-module_button__3DeL7:not(.ScrollButton-module_disabled__3fQR1):focus svg,.ScrollButton-module_button__3DeL7:not(.ScrollButton-module_disabled__3fQR1):hover svg{transform:scale(1.2)}.ScrollButton-module_icon__35w1l{display:inline-block;position:relative;transition:opacity .2s linear}.ScrollButton-module_disabled__3fQR1 .ScrollButton-module_icon__35w1l{opacity:0}.ScrollButton-module_icon__35w1l:before{content:" ";position:absolute;top:50%;left:50%;width:50px;height:50px;transform:translate(-50%,-50%);background:radial-gradient(rgba(0,0,0,.3),transparent 60%);z-index:-1}.colors-module_contentColorScope__39my1{--theme-light-content-surface-color:var(--root-light-content-surface-color);--theme-dark-content-surface-color:var(--root-dark-content-surface-color);--theme-light-content-text-color:var(--root-light-content-text-color);--theme-dark-content-text-color:var(--root-dark-content-text-color)}.ImageGallery-module_wrapper__2H9en{--overlap:20px;--gutter:8%;display:grid;grid-template-columns:1fr 84% 1fr;align-items:center;height:100%;margin:0 auto;color:var(--theme-light-content-text-color,#fff)}@media (min-width:1000px){.ImageGallery-module_wide__xGLuJ{--overlap:40px}}.ImageGallery-module_customMargin__1VxM6{--gutter:max(var(--content-margin),(100% - var(--content-max-width))/2);grid-template-columns:var(--content-margin) minmax(0,var(--content-max-width)) var(--content-margin);justify-content:center}.ImageGallery-module_button__35bDf{grid-row:1;z-index:2;display:flex;justify-content:center;overflow:hidden}.ImageGallery-module_leftButton__3V-J6{grid-column:1}.ImageGallery-module_rightButton__ba0q5{grid-column:3}.ImageGallery-module_items__1q4QG{grid-row:1;grid-column:1/-1;display:grid;grid-auto-columns:100%;grid-auto-flow:column;align-items:center;overflow-x:auto;overscroll-behavior-x:contain;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:0 calc(var(--overlap) + var(--gutter));scrollbar-width:none}.ImageGallery-module_items__1q4QG::-webkit-scrollbar{display:none}.ImageGallery-module_item__iqvfP{scroll-snap-stop:always;scroll-snap-align:center;margin:0 calc(var(--overlap)*-1)}.ImageGallery-module_current__2Mm11{z-index:1}.ImageGallery-module_figure__3zkJb{transition:transform .2s ease,filter .2s linear;transform:scale(.9);filter:brightness(.5)}.ImageGallery-module_current__2Mm11 .ImageGallery-module_figure__3zkJb{transform:scale(1);filter:none}.ImageGallery-module_placeholder__39Vq4{opacity:.2}