pageflow 17.0.5 → 17.1.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +362 -35
- data/README.md +0 -1
- data/admins/pageflow/accounts.rb +16 -14
- data/admins/pageflow/entry.rb +68 -20
- data/admins/pageflow/entry_templates.rb +10 -9
- data/admins/pageflow/folder.rb +1 -1
- data/admins/pageflow/membership.rb +4 -4
- data/admins/pageflow/revisions.rb +5 -5
- data/admins/pageflow/site_root_entry.rb +64 -0
- data/admins/pageflow/sites.rb +12 -3
- data/admins/pageflow/translations.rb +75 -0
- data/admins/pageflow/user.rb +21 -35
- data/app/assets/javascripts/pageflow/admin/entries.js +30 -5
- data/app/assets/javascripts/pageflow/dist/ui.js +2865 -257
- data/app/assets/stylesheets/pageflow/admin/entries/index_table.scss +2 -1
- data/app/assets/stylesheets/pageflow/admin/permalink_input.scss +2 -1
- data/app/assets/stylesheets/pageflow/editor/background_positioning.scss +6 -0
- data/app/assets/stylesheets/pageflow/editor/base.scss +2 -0
- data/app/assets/stylesheets/pageflow/editor/drop_down_button.scss +7 -1
- data/app/assets/stylesheets/pageflow/editor/file_meta_data.scss +5 -1
- data/app/assets/stylesheets/pageflow/editor/files.scss +28 -16
- data/app/assets/stylesheets/pageflow/editor/filtered_files.scss +24 -0
- data/app/assets/stylesheets/pageflow/editor/info_box.scss +11 -3
- data/app/assets/stylesheets/pageflow/editor/list.scss +6 -4
- data/app/assets/stylesheets/pageflow/editor/list_search_field.scss +52 -0
- data/app/assets/stylesheets/pageflow/editor/outline.scss +0 -13
- data/app/assets/stylesheets/pageflow/editor/select_button.scss +1 -1
- data/app/assets/stylesheets/pageflow/editor/sortable.scss +12 -0
- data/app/assets/stylesheets/pageflow/mixins/buttons.scss +4 -4
- data/app/assets/stylesheets/pageflow/ui/forms.scss +4 -0
- data/app/assets/stylesheets/pageflow/ui/input/color_input.scss +8 -0
- data/app/assets/stylesheets/pageflow/ui/input/file_name_input.scss +37 -0
- data/app/assets/stylesheets/pageflow/ui/properties.scss +5 -0
- data/app/assets/stylesheets/pageflow/ui.scss +1 -0
- data/app/controllers/concerns/pageflow/controller_delegation.rb +1 -1
- data/app/controllers/concerns/pageflow/edit_locking.rb +17 -10
- data/app/controllers/concerns/pageflow/entry_password_protection.rb +1 -0
- data/app/controllers/concerns/pageflow/public_https_mode.rb +2 -1
- data/app/controllers/concerns/pageflow/quota_verification.rb +5 -4
- data/app/controllers/pageflow/admin/initial_passwords_controller.rb +1 -0
- data/app/controllers/pageflow/application_controller.rb +19 -19
- data/app/controllers/pageflow/chapters_controller.rb +3 -2
- data/app/controllers/pageflow/edit_locks_controller.rb +3 -2
- data/app/controllers/pageflow/editor/encoding_confirmations_controller.rb +1 -0
- data/app/controllers/pageflow/editor/entries_controller.rb +2 -1
- data/app/controllers/pageflow/editor/entry_publications_controller.rb +1 -0
- data/app/controllers/pageflow/editor/file_import_controller.rb +3 -3
- data/app/controllers/pageflow/editor/files_controller.rb +7 -6
- data/app/controllers/pageflow/editor/widgets_controller.rb +1 -0
- data/app/controllers/pageflow/entries_controller.rb +77 -17
- data/app/controllers/pageflow/feeds_controller.rb +1 -1
- data/app/controllers/pageflow/files_controller.rb +1 -0
- data/app/controllers/pageflow/pages_controller.rb +4 -2
- data/app/controllers/pageflow/revisions_controller.rb +2 -1
- data/app/controllers/pageflow/sitemaps_controller.rb +1 -1
- data/app/controllers/pageflow/storylines_controller.rb +1 -0
- data/app/helpers/pageflow/admin/cutoff_modes_helper.rb +12 -0
- data/app/helpers/pageflow/admin/entries_helper.rb +1 -1
- data/app/helpers/pageflow/admin/entry_translations_helper.rb +18 -0
- data/app/helpers/pageflow/admin/features_helper.rb +1 -1
- data/app/helpers/pageflow/admin/form_helper.rb +3 -3
- data/app/helpers/pageflow/admin/locales_helper.rb +10 -2
- data/app/helpers/pageflow/admin/memberships_helper.rb +32 -32
- data/app/helpers/pageflow/admin/revisions_helper.rb +1 -1
- data/app/helpers/pageflow/admin/sites_helper.rb +22 -0
- data/app/helpers/pageflow/admin/users_helper.rb +7 -5
- data/app/helpers/pageflow/admin/widgets_helper.rb +3 -3
- data/app/helpers/pageflow/asset_urls_helper.rb +1 -1
- data/app/helpers/pageflow/audio_files_helper.rb +5 -2
- data/app/helpers/pageflow/background_image_helper.rb +7 -6
- data/app/helpers/pageflow/common_entry_seed_helper.rb +2 -4
- data/app/helpers/pageflow/editor/config_helper.rb +1 -1
- data/app/helpers/pageflow/editor/files_helper.rb +1 -1
- data/app/helpers/pageflow/embed_code_helper.rb +3 -3
- data/app/helpers/pageflow/entries_helper.rb +58 -34
- data/app/helpers/pageflow/entry_json_seed_helper.rb +3 -2
- data/app/helpers/pageflow/feeds_helper.rb +2 -2
- data/app/helpers/pageflow/file_background_images_helper.rb +2 -2
- data/app/helpers/pageflow/file_thumbnails_helper.rb +4 -3
- data/app/helpers/pageflow/files_helper.rb +5 -4
- data/app/helpers/pageflow/folders_helper.rb +8 -5
- data/app/helpers/pageflow/help_entries_helper.rb +2 -2
- data/app/helpers/pageflow/hreflang_links_helper.rb +37 -0
- data/app/helpers/pageflow/info_box_helper.rb +7 -11
- data/app/helpers/pageflow/media_query_helper.rb +3 -3
- data/app/helpers/pageflow/navigation_bar_helper.rb +1 -1
- data/app/helpers/pageflow/overview_helper.rb +1 -1
- data/app/helpers/pageflow/page_types_helper.rb +5 -5
- data/app/helpers/pageflow/pages_helper.rb +29 -15
- data/app/helpers/pageflow/public_i18n_helper.rb +1 -1
- data/app/helpers/pageflow/quota_helper.rb +4 -4
- data/app/helpers/pageflow/render_json_helper.rb +6 -3
- data/app/helpers/pageflow/revision_file_helper.rb +2 -1
- data/app/helpers/pageflow/sites_helper.rb +3 -3
- data/app/helpers/pageflow/social_share_helper.rb +24 -10
- data/app/helpers/pageflow/social_share_links_helper.rb +12 -9
- data/app/helpers/pageflow/structured_data_helper.rb +1 -1
- data/app/helpers/pageflow/stub_page_configuration.rb +7 -3
- data/app/helpers/pageflow/text_direction_helper.rb +1 -1
- data/app/helpers/pageflow/themes_helper.rb +1 -1
- data/app/helpers/pageflow/video_files_helper.rb +29 -13
- data/app/helpers/pageflow/widgets_helper.rb +7 -6
- data/app/inputs/pageflow_permalink_input.rb +3 -2
- data/app/jobs/pageflow/application_job.rb +1 -0
- data/app/jobs/pageflow/entry_export_import/upload_and_publish_file_job.rb +1 -1
- data/app/jobs/pageflow/poll_meta_data_from_zencoder_job.rb +1 -0
- data/app/jobs/pageflow/poll_zencoder_job.rb +3 -2
- data/app/jobs/pageflow/process_image_or_text_track_job.rb +1 -0
- data/app/jobs/pageflow/prune_auto_snapshots_job.rb +1 -0
- data/app/jobs/pageflow/request_meta_data_from_zencoder_job.rb +1 -0
- data/app/jobs/pageflow/submit_file_to_zencoder_job.rb +1 -0
- data/app/mailers/pageflow/user_mailer.rb +1 -0
- data/app/models/concerns/pageflow/auto_generated_perma_id.rb +13 -1
- data/app/models/concerns/pageflow/entry_publication_states.rb +7 -3
- data/app/models/concerns/pageflow/feature_target.rb +8 -4
- data/app/models/concerns/pageflow/output_source.rb +3 -3
- data/app/models/concerns/pageflow/permalinkable.rb +2 -1
- data/app/models/concerns/pageflow/reusable_file.rb +23 -23
- data/app/models/concerns/pageflow/serialization_blacklist.rb +1 -1
- data/app/models/concerns/pageflow/suspendable.rb +5 -3
- data/app/models/concerns/pageflow/theme_referencer.rb +1 -1
- data/app/models/concerns/pageflow/translatable.rb +62 -0
- data/app/models/concerns/pageflow/uploadable_file.rb +6 -6
- data/app/models/pageflow/account.rb +6 -5
- data/app/models/pageflow/account_member_query.rb +1 -1
- data/app/models/pageflow/account_role_query.rb +1 -1
- data/app/models/pageflow/application_query.rb +1 -1
- data/app/models/pageflow/application_record.rb +1 -1
- data/app/models/pageflow/audio_file.rb +4 -4
- data/app/models/pageflow/audio_file_url_templates.rb +1 -1
- data/app/models/pageflow/authentication_token.rb +2 -2
- data/app/models/pageflow/chapter.rb +6 -1
- data/app/models/pageflow/chapter_scaffold.rb +2 -4
- data/app/models/pageflow/cname_site_request_scope.rb +1 -1
- data/app/models/pageflow/customized_theme.rb +6 -6
- data/app/models/pageflow/draft_entry.rb +37 -9
- data/app/models/pageflow/edit_lock.rb +19 -21
- data/app/models/pageflow/encoding_confirmation.rb +2 -2
- data/app/models/pageflow/entries_feed.rb +2 -2
- data/app/models/pageflow/entry.rb +44 -30
- data/app/models/pageflow/entry_at_revision.rb +5 -1
- data/app/models/pageflow/entry_duplicate.rb +8 -5
- data/app/models/pageflow/entry_publication.rb +2 -2
- data/app/models/pageflow/entry_role_query.rb +4 -4
- data/app/models/pageflow/entry_template.rb +4 -4
- data/app/models/pageflow/entry_title_or_account_name_query.rb +2 -2
- data/app/models/pageflow/entry_translation_group.rb +42 -0
- data/app/models/pageflow/file_reuse.rb +2 -2
- data/app/models/pageflow/file_usage.rb +10 -3
- data/app/models/pageflow/folder.rb +2 -2
- data/app/models/pageflow/home_button.rb +7 -7
- data/app/models/pageflow/image_file.rb +20 -5
- data/app/models/pageflow/image_file_url_templates.rb +1 -1
- data/app/models/pageflow/invitation_form.rb +2 -1
- data/app/models/pageflow/managed_user_query.rb +1 -1
- data/app/models/pageflow/membership.rb +5 -5
- data/app/models/pageflow/nested_revision_component_copy.rb +263 -0
- data/app/models/pageflow/null_user.rb +1 -1
- data/app/models/pageflow/overview_button.rb +1 -1
- data/app/models/pageflow/page.rb +7 -3
- data/app/models/pageflow/permalink.rb +23 -2
- data/app/models/pageflow/permalink_directory.rb +7 -0
- data/app/models/pageflow/permalink_redirect.rb +7 -0
- data/app/models/pageflow/positioned_file.rb +5 -5
- data/app/models/pageflow/potential_entry_translations.rb +55 -0
- data/app/models/pageflow/potential_memberships.rb +5 -4
- data/app/models/pageflow/published_entry.rb +62 -11
- data/app/models/pageflow/revision.rb +24 -15
- data/app/models/pageflow/roles.rb +14 -18
- data/app/models/pageflow/site.rb +36 -3
- data/app/models/pageflow/site_root_entry_form.rb +27 -0
- data/app/models/pageflow/sitemaps.rb +10 -1
- data/app/models/pageflow/storyline.rb +5 -2
- data/app/models/pageflow/storyline_scaffold.rb +1 -1
- data/app/models/pageflow/text_track_file.rb +1 -1
- data/app/models/pageflow/text_track_file_url_templates.rb +1 -1
- data/app/models/pageflow/theme_customization_file.rb +3 -2
- data/app/models/pageflow/thumbnail_file_resolver.rb +1 -1
- data/app/models/pageflow/url_template.rb +1 -1
- data/app/models/pageflow/used_file.rb +7 -3
- data/app/models/pageflow/user_name_query.rb +2 -2
- data/app/models/pageflow/video_file.rb +22 -15
- data/app/models/pageflow/video_file_url_templates.rb +6 -4
- data/app/models/pageflow/widget.rb +4 -3
- data/app/models/pageflow/with_file_usage_extension.rb +1 -1
- data/app/models/pageflow/zencoder_attachment.rb +8 -8
- data/app/policies/pageflow/account_policy.rb +3 -1
- data/app/policies/pageflow/admin/admin_only_tab_policy.rb +1 -0
- data/app/policies/pageflow/admin/entry_tab_policy.rb +1 -0
- data/app/policies/pageflow/application_policy.rb +2 -0
- data/app/policies/pageflow/entry_policy.rb +7 -1
- data/app/policies/pageflow/entry_template_policy.rb +2 -1
- data/app/policies/pageflow/file_policy.rb +4 -7
- data/app/policies/pageflow/folder_policy.rb +18 -8
- data/app/policies/pageflow/membership_policy.rb +6 -4
- data/app/policies/pageflow/site_policy.rb +10 -3
- data/app/policies/pageflow/user_policy.rb +6 -4
- data/app/state_machines/pageflow/image_and_text_track_processing_state_machine.rb +3 -2
- data/app/state_machines/pageflow/media_encoding_state_machine.rb +5 -4
- data/app/views/admin/accounts/_entry_template_details.html.arb +2 -2
- data/app/views/admin/entries/_attributes_table.html.arb +6 -5
- data/app/views/admin/entries/_form.html.erb +2 -1
- data/app/views/admin/entries/_permalink_inputs.html.erb +9 -2
- data/app/views/admin/entry_templates/_form.html.erb +1 -3
- data/app/views/admin/site_root_entry/choose.html.erb +19 -0
- data/app/views/admin/sites/_fields.html.erb +14 -1
- data/app/views/admin/translations/_form.html.erb +31 -0
- data/app/views/admin/users/_attributes_table.html.arb +13 -0
- data/app/views/components/pageflow/admin/add_membership_button.rb +13 -12
- data/app/views/components/pageflow/admin/custom_scopes_renderer.rb +1 -0
- data/app/views/components/pageflow/admin/embed_code_field.rb +1 -0
- data/app/views/components/pageflow/admin/embedded_index_table.rb +9 -10
- data/app/views/components/pageflow/admin/entries_tab.rb +1 -0
- data/app/views/components/pageflow/admin/entry_publication_state_indicator.rb +6 -5
- data/app/views/components/pageflow/admin/entry_templates_tab.rb +2 -1
- data/app/views/components/pageflow/admin/entry_translations_tab.rb +102 -0
- data/app/views/components/pageflow/admin/entry_user_badge_list.rb +1 -0
- data/app/views/components/pageflow/admin/extensible_attributes_table.rb +9 -8
- data/app/views/components/pageflow/admin/features_tab.rb +1 -0
- data/app/views/components/pageflow/admin/grouped_folder_list.rb +1 -0
- data/app/views/components/pageflow/admin/icon_link_to.rb +1 -0
- data/app/views/components/pageflow/admin/members_tab.rb +4 -3
- data/app/views/components/pageflow/admin/membership_role_with_tooltip.rb +3 -2
- data/app/views/components/pageflow/admin/revisions_tab.rb +14 -10
- data/app/views/components/pageflow/admin/sites_tab.rb +1 -0
- data/app/views/components/pageflow/admin/tabs_view.rb +1 -0
- data/app/views/components/pageflow/admin/timestamp.rb +6 -5
- data/app/views/components/pageflow/admin/user_account_badge_list.rb +2 -3
- data/app/views/components/pageflow/admin/user_accounts_tab.rb +1 -0
- data/app/views/components/pageflow/admin/user_entries_tab.rb +1 -0
- data/app/views/components/pageflow/admin/users_tab.rb +1 -0
- data/app/views/pageflow/editor/config/_seeds.json.jbuilder +1 -1
- data/app/views/pageflow/editor/entries/index.json.jbuilder +1 -1
- data/app/views/pageflow/editor/entries/show.json.jbuilder +1 -1
- data/app/views/pageflow/editor/entry_publications/check.json.jbuilder +2 -2
- data/app/views/pageflow/editor/files/_file.json.jbuilder +5 -13
- data/app/views/pageflow/editor/files/create.json.jbuilder +1 -1
- data/app/views/pageflow/editor/files/index.json.jbuilder +1 -1
- data/app/views/pageflow/editor/sites/_site.json.jbuilder +1 -0
- data/app/views/pageflow/editor/video_files/_video_file.json.jbuilder +1 -3
- data/app/views/pageflow/entries/share_menu/_bluesky_link.html.erb +8 -0
- data/app/views/pageflow/entries/share_menu/_threads_link.html.erb +8 -0
- data/app/views/pageflow/files/_file.json.jbuilder +3 -3
- data/app/views/pageflow/sitemaps/index.xml.builder +9 -1
- data/app/views/pageflow/social_share/_entry_meta_tags.html.erb +1 -1
- data/app/views/pageflow/social_share/_page_meta_tags.html.erb +1 -1
- data/config/initializers/active_admin_patches.rb +3 -6
- data/config/initializers/admin_resource_tabs.rb +3 -0
- data/config/initializers/paperclip.rb +1 -0
- data/config/initializers/symmetric_encryption.rb +1 -1
- data/config/initializers/zencoder.rb +24 -13
- data/config/locales/de.yml +110 -4
- data/config/locales/en.yml +109 -7
- data/config/routes.rb +15 -13
- data/config/spring.rb +2 -1
- data/db/migrate/20140418225525_setup_schema.rb +2 -2
- data/db/migrate/20190306161431_copy_file_attributes_of_failed_uploads.rb +2 -2
- data/db/migrate/20190820152900_drop_accounts_themes.rb +2 -1
- data/db/migrate/20191202145757_create_pageflow_scrolled_sections.rb +11 -11
- data/db/migrate/20191202150657_create_pageflow_scrolled_chapters.rb +1 -1
- data/db/migrate/20191202154723_create_pageflow_scrolled_content_elements.rb +9 -9
- data/db/migrate/20191219143450_add_position_to_content_elements.rb +2 -1
- data/db/migrate/20200117133200_change_revision_appearance_option_default_and_null.rb +2 -1
- data/db/migrate/20200122115400_create_pageflow_entry_templates.rb +25 -25
- data/db/migrate/20200206134400_convert_legacy_scrolled_content_element_types.rb +3 -3
- data/db/migrate/20221215120856_associate_entry_templates_with_sites.rb +2 -2
- data/db/migrate/20230120092923_create_other_files.rb +2 -1
- data/db/migrate/20230419083307_create_pageflow_entry_translation_group.rb +9 -0
- data/db/migrate/20240612110434_add_cutoff_mode_name_to_sites.rb +5 -0
- data/db/migrate/20240918084059_create_pageflow_permalink_redirects.rb +14 -0
- data/db/migrate/20250508172234_ensure_scrolled_entries_have_main_storyline.rb +14 -0
- data/db/migrate/20250617090048_add_custom404_entry_to_sites.rb +5 -0
- data/db/migrate/20250617100000_add_perma_id_counter_to_entries.rb +28 -0
- data/db/migrate/20250722174123_add_perma_id_to_chapters.rb +10 -0
- data/db/migrate/20250725080603_add_perma_id_indexes_to_revision_components.rb +13 -0
- data/db/migrate/20250726000000_add_display_name_to_file_usages.rb +5 -0
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +3912 -1486
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +468 -1161
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-client.js +28125 -22
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-server.js +26589 -19
- data/entry_types/paged/app/controllers/pageflow_paged/entries_controller.rb +1 -0
- data/entry_types/paged/app/helpers/pageflow_paged/page_background_asset_helper.rb +1 -1
- data/entry_types/paged/app/helpers/pageflow_paged/third_party_embed_consent_helper.rb +7 -7
- data/entry_types/paged/app/views/pageflow_paged/editor/entries/_seed.json.jbuilder +1 -0
- data/entry_types/paged/app/views/pageflow_paged/entries/show.html.erb +1 -0
- data/entry_types/paged/lib/pageflow_paged/plugin.rb +4 -0
- data/entry_types/paged/lib/pageflow_paged/react/page_type.rb +1 -1
- data/entry_types/paged/lib/pageflow_paged/react/widget_type.rb +3 -3
- data/entry_types/paged/lib/pageflow_paged.rb +1 -1
- data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/chapters_controller.rb +5 -3
- data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/content_elements_controller.rb +2 -2
- data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/sections_controller.rb +2 -2
- data/entry_types/scrolled/app/controllers/pageflow_scrolled/entries_controller.rb +2 -1
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/cache_helper.rb +2 -2
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/entry_json_seed_helper.rb +1 -0
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/seed_html_helper.rb +2 -1
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/entry_json_seed_helper.rb +60 -6
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/packs_helper.rb +16 -2
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/react_server_side_rendering_helper.rb +21 -23
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/themes_helper.rb +16 -1
- data/entry_types/scrolled/app/models/pageflow_scrolled/chapter.rb +15 -14
- data/entry_types/scrolled/app/models/pageflow_scrolled/content_element.rb +12 -0
- data/entry_types/scrolled/app/models/pageflow_scrolled/section.rb +12 -1
- data/entry_types/scrolled/app/models/pageflow_scrolled/storyline.rb +19 -1
- data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_head.html.erb +1 -0
- data/entry_types/scrolled/app/views/pageflow_scrolled/editor/sections/_section_with_content_elements.json.jbuilder +2 -2
- data/entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb +2 -0
- data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry.json.jbuilder +17 -9
- data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry_translations.json.jbuilder +14 -0
- data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_theme.json.jbuilder +25 -5
- data/entry_types/scrolled/app/views/pageflow_scrolled/storylines/_storyline.json.jbuilder +7 -0
- data/entry_types/scrolled/config/locales/de.yml +614 -45
- data/entry_types/scrolled/config/locales/en.yml +586 -47
- data/entry_types/scrolled/config/routes.rb +18 -8
- data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/install_generator.rb +11 -11
- data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/logoDarkVariantDesktop.svg +56 -0
- data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/logoDarkVariantMobile.svg +22 -0
- data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/themes_plugin.rb.tt +26 -11
- data/entry_types/scrolled/lib/pageflow_scrolled/additional_packs.rb +27 -8
- data/entry_types/scrolled/lib/pageflow_scrolled/additional_seed_data.rb +1 -1
- data/entry_types/scrolled/lib/pageflow_scrolled/additional_theme_assets.rb +27 -0
- data/entry_types/scrolled/lib/pageflow_scrolled/configuration.rb +16 -4
- data/entry_types/scrolled/lib/pageflow_scrolled/content_element_consent_vendors.rb +1 -1
- data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +24 -4
- data/entry_types/scrolled/lib/pageflow_scrolled/seeds.rb +24 -22
- data/entry_types/scrolled/lib/pageflow_scrolled.rb +1 -1
- data/entry_types/scrolled/lib/tasks/pageflow_scrolled/storybook.rake +6 -5
- data/entry_types/scrolled/package/config/webpack.js +22 -0
- data/entry_types/scrolled/package/contentElements/hotspots-frontend.css +1 -0
- data/entry_types/scrolled/package/contentElements/hotspots-frontend.js +1529 -0
- data/entry_types/scrolled/package/contentElements/tikTokEmbed-frontend.css +1 -0
- data/entry_types/scrolled/package/contentElements/tikTokEmbed-frontend.js +59 -0
- data/entry_types/scrolled/package/contentElements-editor.js +2075 -321
- data/entry_types/scrolled/package/contentElements-frontend.css +1 -1
- data/entry_types/scrolled/package/contentElements-frontend.js +1019 -643
- data/entry_types/scrolled/package/editor.js +2086 -1091
- data/entry_types/scrolled/package/frontend/{EditableInlineText.module-ebd22921.js → FloatingPortalRootProvider-51914be7.js} +1200 -1258
- data/entry_types/scrolled/package/frontend/{PhonePlatformContext-4ec6b2de.js → PhonePlatformContext-9f76033e.js} +7 -8
- data/entry_types/scrolled/package/frontend/ThemeIcon-81f2f066.js +1932 -0
- data/entry_types/scrolled/package/frontend/ToggleFullscreenCornerButton-788e9cdb.js +39 -0
- data/entry_types/scrolled/package/frontend/{Viewer-1bb5597c.js → Viewer-0345ce57.js} +36 -63
- data/entry_types/scrolled/package/frontend/{Viewer-1ecf3375.js → Viewer-cdc549cc.js} +15 -22
- data/entry_types/scrolled/package/frontend/{Wavesurfer-7d9cf1b7.js → Wavesurfer-1cdc3925.js} +54 -74
- data/entry_types/scrolled/package/frontend/{components-024a9893.js → components-96660ffd.js} +1791 -841
- data/entry_types/scrolled/package/frontend/{index-11f32f10.js → index-eb670c2f.js} +11 -18
- data/entry_types/scrolled/package/frontend/index.css +1 -1
- data/entry_types/scrolled/package/frontend/index.js +517 -903
- data/entry_types/scrolled/package/frontend/{createSuper-d0f30da3.js → inherits-539844a6.js} +40 -56
- data/entry_types/scrolled/package/frontend/{useContentElementEditorState-4f4c3cf6.js → useContentElementEditorState-77fe6c79.js} +7 -8
- data/entry_types/scrolled/package/frontend/usePhonePlatform-c2ba875d.js +8 -0
- data/entry_types/scrolled/package/frontend-server.js +0 -1
- data/entry_types/scrolled/package/package.json +18 -10
- data/entry_types/scrolled/package/testHelpers.js +306 -70
- data/entry_types/scrolled/package/values/widgets.module.css +18 -0
- data/entry_types/scrolled/package/widgets/consentBar.css +1 -1
- data/entry_types/scrolled/package/widgets/consentBar.js +47 -66
- data/entry_types/scrolled/package/widgets/defaultNavigation.css +2 -2
- data/entry_types/scrolled/package/widgets/defaultNavigation.js +177 -207
- data/entry_types/scrolled/package/widgets/excursionDialog.css +1 -0
- data/entry_types/scrolled/package/widgets/excursionDialog.js +109 -0
- data/entry_types/scrolled/package/widgets/excursionSheet.css +1 -0
- data/entry_types/scrolled/package/widgets/excursionSheet.js +262 -0
- data/entry_types/scrolled/package/widgets/iconInlineFileRights.css +1 -1
- data/entry_types/scrolled/package/widgets/iconInlineFileRights.js +6 -9
- data/entry_types/scrolled/package/widgets/iconScrollIndicator.css +1 -0
- data/entry_types/scrolled/package/widgets/iconScrollIndicator.js +48 -0
- data/entry_types/scrolled/package/widgets/mainStorylineSheet.css +1 -0
- data/entry_types/scrolled/package/widgets/mainStorylineSheet.js +144 -0
- data/entry_types/scrolled/package/widgets/textInlineFileRights.css +1 -1
- data/entry_types/scrolled/package/widgets/textInlineFileRights.js +26 -9
- data/entry_types/scrolled/package/widgets-server.js +1 -0
- data/entry_types/scrolled/spec/factories/chapters.rb +14 -1
- data/entry_types/scrolled/spec/factories/content_elements.rb +1 -1
- data/lib/generators/pageflow/active_admin_initializer/active_admin_initializer_generator.rb +5 -3
- data/lib/generators/pageflow/assets/assets_generator.rb +7 -5
- data/lib/generators/pageflow/cancan/cancan_generator.rb +2 -1
- data/lib/generators/pageflow/cancan/templates/ability.rb +1 -1
- data/lib/generators/pageflow/error_pages/error_pages_generator.rb +2 -1
- data/lib/generators/pageflow/initializer/initializer_generator.rb +3 -2
- data/lib/generators/pageflow/install/install_generator.rb +2 -2
- data/lib/generators/pageflow/procfile/procfile_generator.rb +2 -1
- data/lib/generators/pageflow/resque/resque_generator.rb +6 -4
- data/lib/generators/pageflow/resque/templates/resque.rake +1 -1
- data/lib/generators/pageflow/routes/routes_generator.rb +4 -2
- data/lib/generators/pageflow/seeds/seeds_generator.rb +3 -2
- data/lib/generators/pageflow/seeds/templates/seeds.rb +6 -6
- data/lib/generators/pageflow/theme/theme_generator.rb +2 -1
- data/lib/generators/pageflow/user/user_generator.rb +2 -1
- data/lib/pageflow/ability_mixin.rb +25 -15
- data/lib/pageflow/active_admin_patches/views/attributes_table.rb +1 -0
- data/lib/pageflow/active_admin_patches/views/pages/base.rb +3 -2
- data/lib/pageflow/active_admin_patches/views/table_for.rb +1 -0
- data/lib/pageflow/additional_headers.rb +27 -0
- data/lib/pageflow/admin/attributes_table_rows.rb +3 -3
- data/lib/pageflow/admin/tabs.rb +1 -1
- data/lib/pageflow/built_in_file_type.rb +1 -1
- data/lib/pageflow/built_in_page_types_plugin.rb +1 -1
- data/lib/pageflow/built_in_widget_type.rb +2 -2
- data/lib/pageflow/built_in_widget_types_plugin.rb +2 -1
- data/lib/pageflow/configuration.rb +141 -18
- data/lib/pageflow/cutoff_modes.rb +39 -0
- data/lib/pageflow/editor_controller.rb +6 -10
- data/lib/pageflow/engine.rb +4 -5
- data/lib/pageflow/entry_export_import/attachment_files.rb +1 -1
- data/lib/pageflow/entry_export_import/entry_serialization.rb +5 -4
- data/lib/pageflow/entry_export_import/file_mappings.rb +1 -0
- data/lib/pageflow/entry_export_import/revision_serialization/import.rb +1 -1
- data/lib/pageflow/entry_export_import.rb +3 -3
- data/lib/pageflow/entry_types.rb +2 -2
- data/lib/pageflow/feature.rb +1 -1
- data/lib/pageflow/features.rb +4 -6
- data/lib/pageflow/file_importers.rb +4 -4
- data/lib/pageflow/file_type.rb +3 -3
- data/lib/pageflow/file_types.rb +3 -3
- data/lib/pageflow/global_config_api.rb +5 -6
- data/lib/pageflow/help_entries.rb +7 -7
- data/lib/pageflow/help_entry.rb +1 -1
- data/lib/pageflow/hooks.rb +1 -1
- data/lib/pageflow/nested_revision_component.rb +9 -27
- data/lib/pageflow/news_item_api.rb +1 -1
- data/lib/pageflow/page_type.rb +2 -3
- data/lib/pageflow/page_types.rb +3 -3
- data/lib/pageflow/paperclip_interpolations/support.rb +1 -1
- data/lib/pageflow/paperclip_processors/vtt.rb +1 -0
- data/lib/pageflow/paperclip_processors/webp.rb +2 -2
- data/lib/pageflow/partial_editor_fragment_renderer.rb +2 -2
- data/lib/pageflow/plugin.rb +1 -2
- data/lib/pageflow/quota.rb +9 -5
- data/lib/pageflow/quotas.rb +1 -1
- data/lib/pageflow/rails_version.rb +1 -0
- data/lib/pageflow/react.rb +1 -1
- data/lib/pageflow/revision_component.rb +8 -40
- data/lib/pageflow/revision_components.rb +16 -6
- data/lib/pageflow/seeds.rb +12 -16
- data/lib/pageflow/theme.rb +1 -1
- data/lib/pageflow/theme_customizations.rb +10 -10
- data/lib/pageflow/themes.rb +3 -3
- data/lib/pageflow/user_mixin.rb +6 -6
- data/lib/pageflow/version.rb +1 -1
- data/lib/pageflow/widget_type.rb +4 -4
- data/lib/pageflow/widget_types.rb +9 -9
- data/lib/pageflow/zencoder_api.rb +32 -42
- data/lib/pageflow/zencoder_audio_output_definition.rb +14 -13
- data/lib/pageflow/zencoder_meta_data_output_definition.rb +3 -2
- data/lib/pageflow/zencoder_output_definition.rb +16 -14
- data/lib/pageflow/zencoder_video_output_definition.rb +140 -88
- data/lib/pageflow.rb +7 -2
- data/lib/tasks/pageflow_tasks.rake +1 -1
- data/package/editor.js +954 -868
- data/package/frontend.js +113 -387
- data/package/package.json +2 -1
- data/package/testHelpers.js +10 -56
- data/package/ui.js +209 -251
- data/spec/factories/accounts.rb +37 -22
- data/spec/factories/audio_files.rb +2 -2
- data/spec/factories/authentication_tokens.rb +4 -4
- data/spec/factories/chapters.rb +4 -4
- data/spec/factories/draft_entries.rb +14 -6
- data/spec/factories/edit_locks.rb +1 -1
- data/spec/factories/entries.rb +28 -19
- data/spec/factories/entry_translation_groups.rb +6 -0
- data/spec/factories/file_usages.rb +2 -1
- data/spec/factories/folders.rb +1 -1
- data/spec/factories/image_files.rb +2 -2
- data/spec/factories/pages.rb +3 -3
- data/spec/factories/published_entries.rb +26 -8
- data/spec/factories/revisions.rb +1 -1
- data/spec/factories/sites.rb +6 -0
- data/spec/factories/test_multi_attachment_files.rb +1 -1
- data/spec/factories/text_track_files.rb +1 -1
- data/spec/factories/uploadable_files.rb +1 -1
- data/spec/factories/users.rb +6 -6
- data/spec/factories/video_files.rb +2 -2
- data/spec/factories/widgets.rb +1 -1
- data/spec/fixtures/7x15_rotated.jpg +0 -0
- data/vendor/assets/javascripts/wysihtml-toolbar.js +19288 -0
- metadata +98 -45
- data/config/initializers/revision_components.rb +0 -5
- data/config/locales/twitter_to_x.de.yml +0 -6
- data/config/locales/twitter_to_x.en.yml +0 -6
- data/entry_types/scrolled/config/locales/twitter_to_x.de.yml +0 -12
- data/entry_types/scrolled/config/locales/twitter_to_x.en.yml +0 -12
- data/entry_types/scrolled/config/locales/vr_image_projection.de.yml +0 -24
- data/entry_types/scrolled/config/locales/vr_image_projection.en.yml +0 -24
- data/entry_types/scrolled/package/frontend/ToggleFullscreenCornerButton-b79159cc.js +0 -107
- data/entry_types/scrolled/package/frontend/arrowRight-62998af9.js +0 -77
- data/entry_types/scrolled/package/frontend/i18n-ce13a8bf.js +0 -1129
@@ -1,8 +1,11 @@
|
|
1
|
-
import React, { useEffect } from 'react';
|
2
|
-
import {
|
1
|
+
import React, { useEffect, useState, useContext } from 'react';
|
2
|
+
import { DndProvider } from 'react-dnd';
|
3
|
+
import { HTML5Backend } from 'react-dnd-html5-backend';
|
4
|
+
import BackboneEvents from 'backbone-events-standalone';
|
5
|
+
import { render, act } from '@testing-library/react';
|
6
|
+
import { RootProviders, useEntryStateDispatch, ContentElementLifecycleContext, ContentElementEditorStateContext, PhonePlatformContext, ContentElementAttributesProvider, ContentElementEditorCommandEmitterContext } from 'pageflow-scrolled/frontend';
|
3
7
|
import { renderHook } from '@testing-library/react-hooks/dom';
|
4
8
|
import { Consent } from 'pageflow/frontend';
|
5
|
-
import { RootProviders, useEntryStateDispatch } from 'pageflow-scrolled/frontend';
|
6
9
|
|
7
10
|
function _defineProperty(obj, key, value) {
|
8
11
|
if (key in obj) {
|
@@ -73,6 +76,7 @@ function _objectSpread2(target) {
|
|
73
76
|
* @param {Array} [options.videoFiles] - Array of objects with video file attributes of entry.
|
74
77
|
* @param {Array} [options.audioFiles] - Array of objects with audio file attributes of entry.
|
75
78
|
* @param {Array} [options.textTrackFiles] - Array of objects with text track file attributes of entry.
|
79
|
+
* @param {Array} [options.storylines] - Array of objects with storyline attributes of entry.
|
76
80
|
* @param {Array} [options.chapters] - Array of objects with chapter attributes of entry.
|
77
81
|
* @param {Array} [options.sections] - Array of objects with section attributes of entry.
|
78
82
|
* @param {Array} [options.contentElements] - Array of objects with content element attributes of entry.
|
@@ -81,37 +85,43 @@ function _objectSpread2(target) {
|
|
81
85
|
*/
|
82
86
|
function normalizeSeed() {
|
83
87
|
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
88
|
+
imageFileUrlTemplates = _ref.imageFileUrlTemplates,
|
89
|
+
fileUrlTemplates = _ref.fileUrlTemplates,
|
90
|
+
fileModelTypes = _ref.fileModelTypes,
|
91
|
+
prettyUrl = _ref.prettyUrl,
|
92
|
+
shareUrlTemplates = _ref.shareUrlTemplates,
|
93
|
+
defaultFileRights = _ref.defaultFileRights,
|
94
|
+
legalInfo = _ref.legalInfo,
|
95
|
+
themeOptions = _ref.themeOptions,
|
96
|
+
themeAssets = _ref.themeAssets,
|
97
|
+
entry = _ref.entry,
|
98
|
+
imageFiles = _ref.imageFiles,
|
99
|
+
videoFiles = _ref.videoFiles,
|
100
|
+
audioFiles = _ref.audioFiles,
|
101
|
+
textTrackFiles = _ref.textTrackFiles,
|
102
|
+
storylines = _ref.storylines,
|
103
|
+
chapters = _ref.chapters,
|
104
|
+
sections = _ref.sections,
|
105
|
+
contentElements = _ref.contentElements,
|
106
|
+
widgets = _ref.widgets,
|
107
|
+
additionalSeedData = _ref.additionalSeedData,
|
108
|
+
consentVendors = _ref.consentVendors,
|
109
|
+
contentElementConsentVendors = _ref.contentElementConsentVendors,
|
110
|
+
cutOff = _ref.cutOff,
|
111
|
+
fileLicenses = _ref.fileLicenses,
|
112
|
+
entryTranslations = _ref.entryTranslations;
|
107
113
|
var entries = entry ? [entry] : [{}];
|
108
|
-
var normalizedEntries = normalizeCollection(entries
|
114
|
+
var normalizedEntries = normalizeCollection(entries, {
|
115
|
+
locale: 'en',
|
116
|
+
configuration: {}
|
117
|
+
});
|
109
118
|
var normalizedContentElements = normalizeCollection(contentElements, {
|
110
119
|
typeName: 'textBlock',
|
111
120
|
configuration: {}
|
112
121
|
});
|
113
122
|
var normalizedSections = normalizeSections(sections, normalizedContentElements);
|
114
123
|
var normalizedChapters = normalizeChapters(chapters, normalizedSections);
|
124
|
+
var normalizedStorylines = normalizeStorylines(storylines, normalizedChapters);
|
115
125
|
return {
|
116
126
|
config: {
|
117
127
|
fileUrlTemplates: _objectSpread2({
|
@@ -139,7 +149,9 @@ function normalizeSeed() {
|
|
139
149
|
},
|
140
150
|
consentVendors: consentVendors || [],
|
141
151
|
contentElementConsentVendors: contentElementConsentVendors || {},
|
142
|
-
|
152
|
+
cutOff: cutOff,
|
153
|
+
fileLicenses: fileLicenses || {},
|
154
|
+
entryTranslations: entryTranslations || []
|
143
155
|
},
|
144
156
|
collections: {
|
145
157
|
entries: normalizedEntries,
|
@@ -166,6 +178,7 @@ function normalizeSeed() {
|
|
166
178
|
parentFileType: null,
|
167
179
|
configuration: {}
|
168
180
|
}),
|
181
|
+
storylines: normalizedStorylines,
|
169
182
|
chapters: normalizedChapters,
|
170
183
|
sections: normalizedSections,
|
171
184
|
contentElements: normalizedContentElements,
|
@@ -173,7 +186,6 @@ function normalizeSeed() {
|
|
173
186
|
}
|
174
187
|
};
|
175
188
|
}
|
176
|
-
|
177
189
|
function normalizeSections() {
|
178
190
|
var sections = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
179
191
|
var contentElements = arguments.length > 1 ? arguments[1] : undefined;
|
@@ -185,7 +197,6 @@ function normalizeSections() {
|
|
185
197
|
}
|
186
198
|
}
|
187
199
|
};
|
188
|
-
|
189
200
|
if (contentElements.length && !sections.length) {
|
190
201
|
contentElements.forEach(function (contentElement) {
|
191
202
|
return contentElement.sectionId = 10;
|
@@ -195,7 +206,6 @@ function normalizeSections() {
|
|
195
206
|
permaId: 1
|
196
207
|
}, sectionDefaults)];
|
197
208
|
}
|
198
|
-
|
199
209
|
return normalizeCollection(sections, sectionDefaults).map(function (section) {
|
200
210
|
return _objectSpread2(_objectSpread2({}, section), {}, {
|
201
211
|
configuration: _objectSpread2({
|
@@ -204,14 +214,12 @@ function normalizeSections() {
|
|
204
214
|
});
|
205
215
|
});
|
206
216
|
}
|
207
|
-
|
208
217
|
function normalizeChapters() {
|
209
218
|
var chapters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
210
219
|
var sections = arguments.length > 1 ? arguments[1] : undefined;
|
211
220
|
var chapterDefaults = {
|
212
221
|
configuration: {}
|
213
222
|
};
|
214
|
-
|
215
223
|
if (sections.length && !chapters.length) {
|
216
224
|
sections.forEach(function (section) {
|
217
225
|
return section.chapterId = 100;
|
@@ -221,26 +229,42 @@ function normalizeChapters() {
|
|
221
229
|
permaId: 10
|
222
230
|
}, chapterDefaults)];
|
223
231
|
}
|
224
|
-
|
225
232
|
return normalizeCollection(chapters, chapterDefaults);
|
226
233
|
}
|
227
|
-
|
234
|
+
function normalizeStorylines() {
|
235
|
+
var storylines = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
236
|
+
var chapters = arguments.length > 1 ? arguments[1] : undefined;
|
237
|
+
if (!storylines.length) {
|
238
|
+
chapters.forEach(function (chapter) {
|
239
|
+
return chapter.storylineId = 1000;
|
240
|
+
});
|
241
|
+
return [{
|
242
|
+
id: 1000,
|
243
|
+
permaId: 100,
|
244
|
+
configuration: {
|
245
|
+
main: true
|
246
|
+
}
|
247
|
+
}];
|
248
|
+
}
|
249
|
+
return normalizeCollection(storylines, {
|
250
|
+
configuration: {}
|
251
|
+
});
|
252
|
+
}
|
228
253
|
function normalizeShareUrlTemplates(shareUrlTemplates) {
|
229
254
|
if (shareUrlTemplates) {
|
230
255
|
return shareUrlTemplates;
|
231
256
|
} else {
|
232
257
|
return {
|
233
|
-
email: 'mailto:?body
|
234
|
-
facebook: 'http://www.facebook.com/sharer/sharer.php?u
|
235
|
-
google: 'https://plus.google.com/share?url
|
236
|
-
linked_in: 'https://www.linkedin.com/shareArticle?mini=true&url
|
237
|
-
telegram: 'tg://msg?text
|
238
|
-
twitter: 'https://x.com/intent/post?url
|
239
|
-
whats_app: 'WhatsApp://send?text
|
258
|
+
email: 'mailto:?body=%<url>s',
|
259
|
+
facebook: 'http://www.facebook.com/sharer/sharer.php?u=%<url>s',
|
260
|
+
google: 'https://plus.google.com/share?url=%<url>s',
|
261
|
+
linked_in: 'https://www.linkedin.com/shareArticle?mini=true&url=%<url>s',
|
262
|
+
telegram: 'tg://msg?text=%<url>s',
|
263
|
+
twitter: 'https://x.com/intent/post?url=%<url>s',
|
264
|
+
whats_app: 'WhatsApp://send?text=%<url>s'
|
240
265
|
};
|
241
266
|
}
|
242
267
|
}
|
243
|
-
|
244
268
|
function normalizeLegalInfo(legalInfo) {
|
245
269
|
if (legalInfo) {
|
246
270
|
return legalInfo;
|
@@ -261,10 +285,9 @@ function normalizeLegalInfo(legalInfo) {
|
|
261
285
|
};
|
262
286
|
}
|
263
287
|
}
|
264
|
-
|
265
288
|
function normalizeTheme(_ref2) {
|
266
289
|
var themeAssets = _ref2.themeAssets,
|
267
|
-
|
290
|
+
themeOptions = _ref2.themeOptions;
|
268
291
|
return {
|
269
292
|
assets: _objectSpread2({
|
270
293
|
icons: {}
|
@@ -274,7 +297,6 @@ function normalizeTheme(_ref2) {
|
|
274
297
|
}, themeOptions)
|
275
298
|
};
|
276
299
|
}
|
277
|
-
|
278
300
|
function normalizeWidgets() {
|
279
301
|
var widgets = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
280
302
|
return widgets.map(function (widget) {
|
@@ -284,7 +306,6 @@ function normalizeWidgets() {
|
|
284
306
|
}, widget);
|
285
307
|
});
|
286
308
|
}
|
287
|
-
|
288
309
|
function normalizeCollection() {
|
289
310
|
var collection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
290
311
|
var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
@@ -330,6 +351,67 @@ function _objectWithoutProperties(source, excluded) {
|
|
330
351
|
return target;
|
331
352
|
}
|
332
353
|
|
354
|
+
function _arrayWithHoles(arr) {
|
355
|
+
if (Array.isArray(arr)) return arr;
|
356
|
+
}
|
357
|
+
|
358
|
+
function _iterableToArrayLimit(arr, i) {
|
359
|
+
if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
|
360
|
+
var _arr = [];
|
361
|
+
var _n = true;
|
362
|
+
var _d = false;
|
363
|
+
var _e = undefined;
|
364
|
+
|
365
|
+
try {
|
366
|
+
for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
|
367
|
+
_arr.push(_s.value);
|
368
|
+
|
369
|
+
if (i && _arr.length === i) break;
|
370
|
+
}
|
371
|
+
} catch (err) {
|
372
|
+
_d = true;
|
373
|
+
_e = err;
|
374
|
+
} finally {
|
375
|
+
try {
|
376
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
377
|
+
} finally {
|
378
|
+
if (_d) throw _e;
|
379
|
+
}
|
380
|
+
}
|
381
|
+
|
382
|
+
return _arr;
|
383
|
+
}
|
384
|
+
|
385
|
+
function _arrayLikeToArray(arr, len) {
|
386
|
+
if (len == null || len > arr.length) len = arr.length;
|
387
|
+
|
388
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) {
|
389
|
+
arr2[i] = arr[i];
|
390
|
+
}
|
391
|
+
|
392
|
+
return arr2;
|
393
|
+
}
|
394
|
+
|
395
|
+
function _unsupportedIterableToArray(o, minLen) {
|
396
|
+
if (!o) return;
|
397
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
398
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
399
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
400
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
401
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
402
|
+
}
|
403
|
+
|
404
|
+
function _nonIterableRest() {
|
405
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
406
|
+
}
|
407
|
+
|
408
|
+
function _slicedToArray(arr, i) {
|
409
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
410
|
+
}
|
411
|
+
|
412
|
+
var _excluded = ["seed", "setup", "wrapper", "consent"],
|
413
|
+
_excluded2 = ["seed", "setup", "wrapper"];
|
414
|
+
|
333
415
|
/**
|
334
416
|
* Render a component that depends on entry state. Accepts all options
|
335
417
|
* supported by [`render` of
|
@@ -366,20 +448,17 @@ function _objectWithoutProperties(source, excluded) {
|
|
366
448
|
* function. The normalized seed constructed from the `seed` option
|
367
449
|
* is passed as a second parameter.
|
368
450
|
*/
|
369
|
-
|
370
451
|
function renderInEntry(ui) {
|
371
452
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
453
|
+
seed = _ref.seed,
|
454
|
+
setup = _ref.setup,
|
455
|
+
wrapper = _ref.wrapper,
|
456
|
+
_ref$consent = _ref.consent,
|
457
|
+
consent = _ref$consent === void 0 ? Consent.create() : _ref$consent,
|
458
|
+
options = _objectWithoutProperties(_ref, _excluded);
|
379
459
|
options = _objectSpread2({
|
380
460
|
wrapper: createWrapper(seed, setup, wrapper, consent)
|
381
461
|
}, options);
|
382
|
-
|
383
462
|
if (typeof ui === 'function') {
|
384
463
|
// Evaluate `ui` inside a React component to allow using hooks in
|
385
464
|
// the test. We also could have used `ui` as a React component
|
@@ -398,7 +477,6 @@ function renderInEntry(ui) {
|
|
398
477
|
var ui = _ref2.ui;
|
399
478
|
return ui();
|
400
479
|
};
|
401
|
-
|
402
480
|
var result = render( /*#__PURE__*/React.createElement(HooksWrapper, {
|
403
481
|
ui: ui
|
404
482
|
}), options);
|
@@ -413,6 +491,7 @@ function renderInEntry(ui) {
|
|
413
491
|
return render(ui, options);
|
414
492
|
}
|
415
493
|
}
|
494
|
+
|
416
495
|
/**
|
417
496
|
* Render a hook that depends on entry state. Accepts all options
|
418
497
|
* supported by [`renderHook` of
|
@@ -426,27 +505,22 @@ function renderInEntry(ui) {
|
|
426
505
|
* @param {Object} [options.seed] - Seed data for entry state. Passed through {@link normalizeSeed}.
|
427
506
|
* @param {Function} [options.setup] - See {@link renderInEntry}.
|
428
507
|
*/
|
429
|
-
|
430
508
|
function renderHookInEntry(callback) {
|
431
509
|
var _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
510
|
+
seed = _ref3.seed,
|
511
|
+
setup = _ref3.setup,
|
512
|
+
wrapper = _ref3.wrapper,
|
513
|
+
options = _objectWithoutProperties(_ref3, _excluded2);
|
437
514
|
return renderHook(callback, _objectSpread2({
|
438
515
|
wrapper: createWrapper(seed, setup, wrapper)
|
439
516
|
}, options));
|
440
517
|
}
|
441
|
-
|
442
518
|
function createWrapper(seed, setup, originalWrapper, consent) {
|
443
519
|
var normalizedSeed = normalizeSeed(seed);
|
444
|
-
|
445
520
|
var OriginalWrapper = originalWrapper || function Noop(_ref4) {
|
446
521
|
var children = _ref4.children;
|
447
522
|
return children;
|
448
523
|
};
|
449
|
-
|
450
524
|
return function Wrapper(_ref5) {
|
451
525
|
var children = _ref5.children;
|
452
526
|
return /*#__PURE__*/React.createElement(RootProviders, {
|
@@ -458,11 +532,10 @@ function createWrapper(seed, setup, originalWrapper, consent) {
|
|
458
532
|
}, /*#__PURE__*/React.createElement(OriginalWrapper, null, children)));
|
459
533
|
};
|
460
534
|
}
|
461
|
-
|
462
535
|
function Dispatcher(_ref6) {
|
463
536
|
var children = _ref6.children,
|
464
|
-
|
465
|
-
|
537
|
+
seed = _ref6.seed,
|
538
|
+
callback = _ref6.callback;
|
466
539
|
var dispatch = useEntryStateDispatch();
|
467
540
|
useEffect(function () {
|
468
541
|
if (callback) {
|
@@ -472,4 +545,167 @@ function Dispatcher(_ref6) {
|
|
472
545
|
return children;
|
473
546
|
}
|
474
547
|
|
475
|
-
|
548
|
+
var _excluded$1 = ["lifecycleContext", "wrapper"];
|
549
|
+
|
550
|
+
/**
|
551
|
+
* Takes the same options as {@link renderInEntry} but returns
|
552
|
+
* additional helper function to the return value of the
|
553
|
+
* {@link `useContentElementLifecycle`} hook:
|
554
|
+
*
|
555
|
+
* const {simulateScrollPosition} = renderInEntry(...)
|
556
|
+
* simulateScrollPosition('near viewport')
|
557
|
+
* // => Turns `shouldLoad` and `shouldPrepare` to true
|
558
|
+
*/
|
559
|
+
function renderInEntryWithContentElementLifecycle(ui, options) {
|
560
|
+
return renderInEntryWithScrollPositionLifecycle(ui, _objectSpread2({
|
561
|
+
lifecycleContext: ContentElementLifecycleContext
|
562
|
+
}, options));
|
563
|
+
}
|
564
|
+
function renderInEntryWithScrollPositionLifecycle(ui) {
|
565
|
+
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
566
|
+
lifecycleContext = _ref.lifecycleContext,
|
567
|
+
wrapper = _ref.wrapper,
|
568
|
+
options = _objectWithoutProperties(_ref, _excluded$1);
|
569
|
+
var emitter = createEmitter();
|
570
|
+
return withSimulateScrollPositionHelper(emitter, renderInEntry(ui, _objectSpread2({
|
571
|
+
wrapper: createScrollPositionProvider(lifecycleContext, emitter, wrapper)
|
572
|
+
}, options)));
|
573
|
+
}
|
574
|
+
function createScrollPositionProvider(Context, emitter, originalWrapper) {
|
575
|
+
var OriginalWrapper = originalWrapper || function Noop(_ref2) {
|
576
|
+
var children = _ref2.children;
|
577
|
+
return children;
|
578
|
+
};
|
579
|
+
return function ScrollPositionProvider(_ref3) {
|
580
|
+
var children = _ref3.children;
|
581
|
+
var _useState = useState({
|
582
|
+
shouldLoad: false,
|
583
|
+
shouldPrepare: false,
|
584
|
+
isVisible: false,
|
585
|
+
isActive: false
|
586
|
+
}),
|
587
|
+
_useState2 = _slicedToArray(_useState, 2),
|
588
|
+
value = _useState2[0],
|
589
|
+
setValue = _useState2[1];
|
590
|
+
useEffect(function () {
|
591
|
+
function handle(scrollPosition) {
|
592
|
+
switch (scrollPosition) {
|
593
|
+
case 'near viewport':
|
594
|
+
setValue({
|
595
|
+
shouldLoad: true,
|
596
|
+
shouldPrepare: true,
|
597
|
+
isVisible: false,
|
598
|
+
isActive: false
|
599
|
+
});
|
600
|
+
break;
|
601
|
+
case 'in viewport':
|
602
|
+
setValue({
|
603
|
+
shouldLoad: true,
|
604
|
+
shouldPrepare: true,
|
605
|
+
isVisible: true,
|
606
|
+
isActive: false
|
607
|
+
});
|
608
|
+
break;
|
609
|
+
case 'center of viewport':
|
610
|
+
setValue({
|
611
|
+
shouldLoad: true,
|
612
|
+
shouldPrepare: true,
|
613
|
+
isVisible: true,
|
614
|
+
isActive: true
|
615
|
+
});
|
616
|
+
break;
|
617
|
+
default:
|
618
|
+
setValue({
|
619
|
+
isVisible: false,
|
620
|
+
isActive: false
|
621
|
+
});
|
622
|
+
break;
|
623
|
+
}
|
624
|
+
}
|
625
|
+
emitter.on('scroll', handle);
|
626
|
+
return function () {
|
627
|
+
return emitter.off('scroll', handle);
|
628
|
+
};
|
629
|
+
});
|
630
|
+
return /*#__PURE__*/React.createElement(OriginalWrapper, null, /*#__PURE__*/React.createElement(Context.Provider, {
|
631
|
+
value: value
|
632
|
+
}, children));
|
633
|
+
};
|
634
|
+
}
|
635
|
+
var allowedScrollPositions = ['outside viewport', 'near viewport', 'in viewport', 'center of viewport'];
|
636
|
+
function withSimulateScrollPositionHelper(emitter, result) {
|
637
|
+
return _objectSpread2(_objectSpread2({}, result), {}, {
|
638
|
+
simulateScrollPosition: function simulateScrollPosition(scrollPosition) {
|
639
|
+
if (!allowedScrollPositions.includes(scrollPosition)) {
|
640
|
+
throw new Error("Invalid scrollPosition '".concat(scrollPosition, "'. ") + "Allowed values: ".concat(allowedScrollPositions.join(', ')));
|
641
|
+
}
|
642
|
+
act(function () {
|
643
|
+
emitter.trigger('scroll', scrollPosition);
|
644
|
+
});
|
645
|
+
}
|
646
|
+
});
|
647
|
+
}
|
648
|
+
function createEmitter() {
|
649
|
+
return _objectSpread2({}, BackboneEvents);
|
650
|
+
}
|
651
|
+
|
652
|
+
var _excluded$2 = ["editorState", "phonePlatform", "wrapper"];
|
653
|
+
|
654
|
+
/**
|
655
|
+
* Provide context as if component was rendered inside of a content element.
|
656
|
+
*
|
657
|
+
* Returns two additionals functions to control content element scroll
|
658
|
+
* lifecycle and editor commands: `simulateScrollPosition` and `triggerEditorCommand`.
|
659
|
+
*
|
660
|
+
* @param {Function} callback - React component or function returning a React component.
|
661
|
+
* @param {Object} [options] - Supports all options supported by {@link `renderInEntry`}.
|
662
|
+
* @param {Object} [options.editorState] - Fake result of `useContentElementEditorState`.
|
663
|
+
* @param {Object} [options.phonePlatform] - Fake result of `usePhonePlatform`.
|
664
|
+
*
|
665
|
+
* @example
|
666
|
+
*
|
667
|
+
* const {getByRole, simulateScrollPosition, triggerEditorCommand} =
|
668
|
+
* renderInContentElement(<MyContentElement />, {
|
669
|
+
* seed: {...}
|
670
|
+
* });
|
671
|
+
* simulateScrollPosition('near viewport');
|
672
|
+
* triggerEditorCommand({type: 'HIGHLIGHT'});
|
673
|
+
*/
|
674
|
+
function renderInContentElement(ui) {
|
675
|
+
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
676
|
+
editorState = _ref.editorState,
|
677
|
+
_ref$phonePlatform = _ref.phonePlatform,
|
678
|
+
phonePlatform = _ref$phonePlatform === void 0 ? false : _ref$phonePlatform,
|
679
|
+
OriginalWrapper = _ref.wrapper,
|
680
|
+
options = _objectWithoutProperties(_ref, _excluded$2);
|
681
|
+
var emitter = Object.assign({}, BackboneEvents);
|
682
|
+
function Wrapper(_ref2) {
|
683
|
+
var children = _ref2.children;
|
684
|
+
var defaultEditorState = useContext(ContentElementEditorStateContext);
|
685
|
+
return /*#__PURE__*/React.createElement(PhonePlatformContext.Provider, {
|
686
|
+
value: phonePlatform
|
687
|
+
}, /*#__PURE__*/React.createElement(DndProvider, {
|
688
|
+
backend: HTML5Backend
|
689
|
+
}, /*#__PURE__*/React.createElement(ContentElementAttributesProvider, {
|
690
|
+
id: 42
|
691
|
+
}, /*#__PURE__*/React.createElement(ContentElementEditorCommandEmitterContext.Provider, {
|
692
|
+
value: emitter
|
693
|
+
}, /*#__PURE__*/React.createElement(ContentElementEditorStateContext.Provider, {
|
694
|
+
value: _objectSpread2(_objectSpread2({}, defaultEditorState), editorState)
|
695
|
+
}, OriginalWrapper ? /*#__PURE__*/React.createElement(OriginalWrapper, {
|
696
|
+
children: children
|
697
|
+
}) : children)))));
|
698
|
+
}
|
699
|
+
return _objectSpread2(_objectSpread2({}, renderInEntryWithScrollPositionLifecycle(ui, _objectSpread2({
|
700
|
+
lifecycleContext: ContentElementLifecycleContext,
|
701
|
+
wrapper: Wrapper
|
702
|
+
}, options))), {}, {
|
703
|
+
triggerEditorCommand: function triggerEditorCommand(command) {
|
704
|
+
act(function () {
|
705
|
+
emitter.trigger("command:42", command);
|
706
|
+
});
|
707
|
+
}
|
708
|
+
});
|
709
|
+
}
|
710
|
+
|
711
|
+
export { normalizeSeed, renderHookInEntry, renderInContentElement, renderInEntry, renderInEntryWithContentElementLifecycle, renderInEntryWithScrollPositionLifecycle };
|
@@ -0,0 +1,18 @@
|
|
1
|
+
.translucentWidgetSurface {
|
2
|
+
color: var(--theme-widget-on-surface-color);
|
3
|
+
}
|
4
|
+
|
5
|
+
.translucentWidgetSurface::before {
|
6
|
+
content: "";
|
7
|
+
position: absolute;
|
8
|
+
top: 0;
|
9
|
+
left: 0;
|
10
|
+
right: 0;
|
11
|
+
bottom: 0;
|
12
|
+
z-index: -1;
|
13
|
+
--translucent-widget-surface-color:
|
14
|
+
color-mix(in srgb,
|
15
|
+
var(--theme-widget-surface-color) var(--theme-widget-surface-opacity), transparent);
|
16
|
+
background-color: var(--translucent-widget-surface-color, var(--theme-widget-surface-color));
|
17
|
+
backdrop-filter: blur(var(--theme-widget-surface-backdrop-blur));
|
18
|
+
}
|
@@ -1 +1 @@
|
|
1
|
-
.Toggle-module_toggle__2N5XY{border:none;background:transparent;padding:0;position:absolute;top:3px;right:40px;cursor:pointer}.Toggle-module_toggle__2N5XY svg{display:block;fill:var(--theme-widget-on-surface-color);color:var(--theme-widget-surface-color)}.Toggle-module_toggle__2N5XY[aria-checked=true] svg{fill:var(--theme-widget-primary-color);color:var(--theme-widget-on-primary-color)}.ConsentBar-module_bar__YiYoC{position:fixed;bottom:0;left:0;width:100%;box-sizing:border-box;z-index:10;padding:10px 20px;font-family:var(--theme-widget-font-family);font-size:15px
|
1
|
+
.Toggle-module_toggle__2N5XY{border:none;background:transparent;padding:0;position:absolute;top:3px;right:40px;cursor:pointer}.Toggle-module_toggle__2N5XY svg{display:block;fill:var(--theme-widget-on-surface-color);color:var(--theme-widget-surface-color)}.Toggle-module_toggle__2N5XY[aria-checked=true] svg{fill:var(--theme-widget-primary-color);color:var(--theme-widget-on-primary-color)}.widgets-module_translucentWidgetSurface__2WEIa{color:var(--theme-widget-on-surface-color)}.widgets-module_translucentWidgetSurface__2WEIa:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;--translucent-widget-surface-color:color-mix(in srgb,var(--theme-widget-surface-color) var(--theme-widget-surface-opacity),transparent);background-color:var(--translucent-widget-surface-color,var(--theme-widget-surface-color));-webkit-backdrop-filter:blur(var(--theme-widget-surface-backdrop-blur));backdrop-filter:blur(var(--theme-widget-surface-backdrop-blur))}.ConsentBar-module_bar__YiYoC{position:fixed;bottom:0;left:0;width:100%;box-sizing:border-box;z-index:10;padding:10px 20px;font-family:var(--theme-widget-font-family);font-size:15px}.ConsentBar-module_text__2GSPP{margin-top:10px;margin-bottom:10px}.ConsentBar-module_text__2GSPP a{color:var(--theme-accent-color)}.ConsentBar-module_button__2LVnY{border:none;border-radius:5px;margin:10px 5px 5px;padding:10px 15px;font:inherit;cursor:pointer;background-color:transparent;--translucent-widget-border-color:color-mix(in srgb,currentColor,transparent);border:1px solid var(--translucent-widget-border-color,currentColor);color:inherit}.ConsentBar-module_acceptAllButton__1rSdh{background-color:var(--theme-widget-primary-color);border-color:var(--theme-widget-primary-color);color:var(--theme-widget-on-primary-color)}.ConsentBar-module_configureButton__1VBqX{margin-left:0}.ConsentBar-module_configureButton__1VBqX svg{fill:currentColor;margin-right:6px;margin-bottom:1px;vertical-align:bottom}.ConsentBar-module_vendorsBox__Jckbl h3{margin:.5em 0;font-size:1em}.ConsentBar-module_vendorList__3Z4jU{overflow:auto;max-height:40vh;padding-right:5px;margin:5px 0}.ConsentBar-module_vendor__2hPAk{position:relative;margin-bottom:5px;padding:8px 0;min-height:20px}.ConsentBar-module_vendor__2hPAk p{font-size:13px}.ConsentBar-module_vendor__2hPAk a{color:inherit}.ConsentBar-module_expandVendor__hSkAD{border:none;background:transparent;color:inherit;position:absolute;right:5px;top:3px;padding:0;cursor:pointer}.ConsentBar-module_expandVendor__hSkAD svg{fill:currentColor;display:block}.ConsentBar-module_expandVendor__hSkAD:active svg,.ConsentBar-module_expandVendor__hSkAD:focus svg,.ConsentBar-module_expandVendor__hSkAD:hover svg{fill:var(--theme-widget-primary-color)}@media (max-width:780px){.ConsentBar-module_button__2LVnY{display:block;width:100%;margin:10px 0}}@media (min-width:781px){.ConsentBar-module_vendorsBox__Jckbl{position:absolute;bottom:100%;right:5px;margin-bottom:5px;max-width:400px;width:90%;box-sizing:border-box;padding:10px 20px;background-color:var(--theme-widget-surface-color);color:var(--theme-widget-on-surface-color);border-radius:5px}.ConsentBar-module_saveButton__16b97{float:right}.ConsentBar-module_decisionButtons__I4T8q{float:right;display:inline-block;white-space:nowrap}}
|