pageflow 16.0.0 → 16.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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}