Version Description
Release Date: April 28th, 2020
Today is a special day. Today, a project weve been working on for a year sees the light of day. Yoast SEO 14.0 rewrites the playbook on how a WordPress SEO plugin can work. Thanks to an approach we call indexables, we bring you a much faster experience and a new foundation that helps us get ready for an exciting future! Read more about this release in our release post!
Bugfixes:
- Fixes a bug where the Open Graph image would be set as Twitter image when Open Graph was disabled.
- Fixes a bug where the
article:publisher
meta tag would not contain the Person's Facebook account if the Knowledge Graph was set to Person. - Fixes a bug where no
title
meta tag would be output when no post or page-specific title was specified. - Fixes a bug where the date archive description from the Search Appearance settings would not be used for the
og:description
meta tag. - Fixes a bug where a notice would be thrown when a field in the FAQ or HowTo block was left empty.
- Fixes a bug where the Help Scout beacon was aligned to the right on settings pages on installations with a right-to-left language.
- Fixes a bug where UTF-8 encoded urls were not always readable in the snippet preview.
- Fixes a bug where the embedding of posts on LinkedIn was broken.
Enhancements:
- Adds a notification that appears when your content hasn't been fully indexed yet.
- Adds a button to the SEO > Tools page to index all your content.
- Adds a feature toggle to disable the headless REST routes.
- No longer outputs the
og:type
meta tag on 404 pages. - No longer outputs a
twitter:title
,twitter:image
and/ortwitter:description
meta tag when there is already anog:title
,og:image
and/orog:description
meta tag specified in the frontend output and theyre not specifically set to something else. - No longer outputs an
article:section
andarticle:tag
meta tag as none of the Open Graph consumers seems to use it. - No longer outputs an
og:updated_time
meta tag as it was the same asarticle:modified_time
and all Open Graph consumers seem to prefer that. - No longer outputs an
og:image:secure_url
meta tag as it was the same asog:image
and all Open Graph consumers seem to prefer that. - Strips all HTML tags from text fields in the schema output.
- Adds
Term hierarchy
as a taxonomy snippet variable. - Uses the Gravatar image as a fallback for author archive's
og:image
andtwitter:image
. - Improves the way gallery images are retrieved . Props to stodorovic.
- Bing has added support for the same opt-in
meta robots
values as Google has, see their announcement post. We have decided to opt-in users of Yoast SEO by default to Bingbot crawling. - No longer removes the default robots meta values.
Other:
- Deprecates the
wpseo_twitter_taxonomy_image
andwpseo_twitter_metatag_key
filters. - Deprecates the
wp_seo_get_bc_ancestors
filter. Developers should use thewpseo_breadcrumb_links
filter instead to add and/or replace breadcrumbs. - Deprecates the
wpseo_opengraph
andwpseo_twitter
actions. - Adds the following filters:
-
wpseo_debug_markers
, which allows users to disable the debug markers. -
wpseo_frontend_presenter_classes
, which enables the filtering of presenters. -
wpseo_frontend_presenters
, which enables the filtering of presenter instances. -
wpseo_googlebot
, which enables the filtering of the googlebot meta output. -
wpseo_og_article_publisher
, which enables the filtering of the article publishers Facebook URL. -
wpseo_og_locale
, which enables the filtering of the Open Graph locale. -
wpseo_post_indexation_limit
, which enables the filtering of the amount of posts indexed during each indexing pass. -
wpseo_post_type_archive_indexation_limit
, which enables the filtering of the amount of post type archives indexed during each indexing pass. -
wpseo_term_indexation_limit
, which enables the filtering of the amount of terms indexed during each indexing pass. -
wpseo_post_types_reset_permalinks
, which enables the filtering of the post types to reset permalinks for. -
wpseo_public_post_statuses
, which enables the filtering of the list of public post statuses.
-
- No longer calls the third-party
thematic_doctitle
andwoo_title
filters. - Adds the
/wp-json/yoast/v1/get_head
endpoint to get the our head for an URL. This endpoint takes a single parameter,url
which should be the absolute URL of the page to get the head for. - Removes the minimum and maximum size requirements when outputting
og:image
meta tags.
Download this release
Release Info
Developer | Yoast |
Plugin | Yoast SEO |
Version | 14.0 |
Comparing to | |
See all releases |
Code changes from version 13.5 to 14.0
- admin/class-admin-asset-manager.php +23 -3
- admin/class-admin-editor-specific-replace-vars.php +3 -3
- admin/class-admin-init.php +20 -0
- admin/class-admin-recommended-replace-vars.php +2 -2
- admin/class-admin.php +1 -0
- admin/class-gutenberg-compatibility.php +2 -2
- admin/metabox/class-metabox.php +1 -0
- admin/taxonomy/class-taxonomy.php +4 -3
- admin/tracking/class-tracking-settings-data.php +0 -1
- admin/tracking/class-tracking.php +8 -1
- admin/views/class-yoast-feature-toggles.php +10 -0
- config/dependency-injection/container-compiler.php +4 -0
- config/dependency-injection/custom-loader.php +0 -25
- config/dependency-injection/loader-pass.php +12 -13
- config/dependency-injection/services.php +19 -11
- css/dist/{admin-global-1350-rtl.css → admin-global-1400-rtl.css} +0 -0
- css/dist/{admin-global-1350.css → admin-global-1400.css} +0 -0
- css/dist/{adminbar-1350-rtl.css → adminbar-1400-rtl.css} +0 -0
- css/dist/{adminbar-1350.css → adminbar-1400.css} +0 -0
- css/dist/{alerts-1350-rtl.css → alerts-1400-rtl.css} +0 -0
- css/dist/{alerts-1350.css → alerts-1400.css} +0 -0
- css/dist/{dashboard-1350-rtl.css → dashboard-1400-rtl.css} +0 -0
- css/dist/{dashboard-1350.css → dashboard-1400.css} +0 -0
- css/dist/{edit-page-1350-rtl.css → edit-page-1400-rtl.css} +0 -0
- css/dist/{edit-page-1350.css → edit-page-1400.css} +0 -0
- css/dist/{featured-image-1350-rtl.css → featured-image-1400-rtl.css} +0 -0
- css/dist/{featured-image-1350.css → featured-image-1400.css} +0 -0
- css/dist/{filter-explanation-1350-rtl.css → filter-explanation-1400-rtl.css} +0 -0
- css/dist/{filter-explanation-1350.css → filter-explanation-1400.css} +0 -0
- css/dist/{inside-editor-1350-rtl.css → inside-editor-1400-rtl.css} +0 -0
- css/dist/{inside-editor-1350.css → inside-editor-1400.css} +0 -0
- css/dist/{metabox-1350-rtl.css → metabox-1400-rtl.css} +0 -0
- css/dist/{metabox-1350.css → metabox-1400.css} +0 -0
- css/dist/{metabox-primary-category-1350-rtl.css → metabox-primary-category-1400-rtl.css} +0 -0
- css/dist/{metabox-primary-category-1350.css → metabox-primary-category-1400.css} +0 -0
- css/dist/monorepo-1400-rtl.css +1 -0
- css/dist/monorepo-1400.css +1 -0
- css/dist/{search-appearance-1350-rtl.css → search-appearance-1400-rtl.css} +0 -0
- css/dist/{search-appearance-1350.css → search-appearance-1400.css} +0 -0
- css/dist/{structured-data-blocks-1350-rtl.css → structured-data-blocks-1400-rtl.css} +0 -0
- css/dist/{structured-data-blocks-1350.css → structured-data-blocks-1400.css} +0 -0
- css/dist/{toggle-switch-1350-rtl.css → toggle-switch-1400-rtl.css} +0 -0
- css/dist/{toggle-switch-1350.css → toggle-switch-1400.css} +0 -0
- css/dist/{wpseo-dismissible-1350-rtl.css → wpseo-dismissible-1400-rtl.css} +0 -0
- css/dist/{wpseo-dismissible-1350.css → wpseo-dismissible-1400.css} +0 -0
- css/dist/{yoast-components-1350-rtl.css → yoast-components-1400-rtl.css} +0 -0
- css/dist/{yoast-components-1350.css → yoast-components-1400.css} +0 -0
- css/dist/{yoast-extensions-1350-rtl.css → yoast-extensions-1400-rtl.css} +0 -0
- css/dist/{yoast-extensions-1350.css → yoast-extensions-1400.css} +0 -0
- css/dist/{yst_plugin_tools-1350-rtl.css → yst_plugin_tools-1400-rtl.css} +0 -0
- css/dist/{yst_plugin_tools-1350.css → yst_plugin_tools-1400.css} +0 -0
- css/dist/{yst_seo_score-1350-rtl.css → yst_seo_score-1400-rtl.css} +0 -0
- css/dist/{yst_seo_score-1350.css → yst_seo_score-1400.css} +0 -0
- deprecated/frontend/class-handle-404.php +46 -0
- deprecated/frontend/class-opengraph-image.php +38 -0
- deprecated/frontend/class-opengraph-oembed.php +46 -0
- deprecated/frontend/class-opengraph.php +314 -0
- deprecated/frontend/class-primary-category.php +39 -0
- deprecated/frontend/class-twitter.php +64 -0
- deprecated/frontend/schema/class-schema-article.php +87 -0
- deprecated/frontend/schema/class-schema-author.php +137 -0
- deprecated/frontend/schema/class-schema-breadcrumb.php +65 -0
- deprecated/frontend/schema/class-schema-faq-question-list.php +43 -0
- deprecated/frontend/schema/class-schema-faq-questions.php +69 -0
- {frontend → deprecated/frontend}/schema/class-schema-faq.php +40 -37
- deprecated/frontend/schema/class-schema-howto.php +122 -0
- {frontend → deprecated/frontend}/schema/class-schema-ids.php +2 -0
- deprecated/frontend/schema/class-schema-image.php +88 -0
- deprecated/frontend/schema/class-schema-main-image.php +115 -0
- deprecated/frontend/schema/class-schema-organization.php +63 -0
- deprecated/frontend/schema/class-schema-person.php +151 -0
- {frontend → deprecated/frontend}/schema/class-schema-utils.php +18 -19
- deprecated/frontend/schema/class-schema-webpage.php +102 -0
- deprecated/frontend/schema/class-schema-website.php +67 -0
- deprecated/frontend/schema/class-schema.php +54 -0
- {frontend → deprecated/frontend}/schema/interface-wpseo-graph-piece.php +2 -0
- frontend/class-breadcrumbs.php +0 -1050
- frontend/class-frontend.php +0 -1960
- frontend/class-handle-404.php +0 -92
- frontend/class-opengraph-image.php +0 -674
- frontend/class-opengraph-oembed.php +0 -72
- frontend/class-opengraph.php +0 -771
- frontend/class-primary-category.php +0 -71
- frontend/class-remove-reply-to-com.php +0 -83
- frontend/class-twitter.php +0 -676
- frontend/class-woocommerce-shop-page.php +19 -29
- frontend/schema/class-schema-article.php +0 -216
- frontend/schema/class-schema-author.php +0 -145
- frontend/schema/class-schema-breadcrumb.php +0 -153
- frontend/schema/class-schema-context.php +0 -243
- frontend/schema/class-schema-faq-question-list.php +0 -115
- frontend/schema/class-schema-faq-questions.php +0 -112
- frontend/schema/class-schema-howto.php +0 -244
- frontend/schema/class-schema-image.php +0 -156
- frontend/schema/class-schema-main-image.php +0 -146
- frontend/schema/class-schema-organization.php +0 -114
- frontend/schema/class-schema-webpage.php +0 -202
- frontend/schema/class-schema-website.php +0 -120
- frontend/schema/class-schema.php +0 -198
- inc/class-wpseo-admin-bar-menu.php +7 -1
- inc/class-wpseo-custom-fields.php +2 -4
- inc/class-wpseo-replace-vars.php +45 -70
- inc/class-wpseo-utils.php +24 -28
- inc/options/class-wpseo-option-ms.php +11 -10
- inc/options/class-wpseo-option-titles.php +0 -5
- inc/options/class-wpseo-option-wpseo.php +12 -8
- inc/sitemaps/class-sitemaps-renderer.php +0 -27
- inc/wpseo-functions-deprecated.php +12 -0
- inc/wpseo-functions.php +6 -12
- js/dist/{analysis-1350.js → analysis-1400.js} +0 -0
- js/dist/{babel-polyfill-1350.js → babel-polyfill-1400.js} +0 -0
- js/dist/{commons-1350.js → commons-1400.js} +0 -0
- js/dist/{components-1350.js → components-1400.js} +4 -4
admin/class-admin-asset-manager.php
CHANGED
@@ -267,12 +267,13 @@ class WPSEO_Admin_Asset_Manager {
|
|
267 |
],
|
268 |
],
|
269 |
[
|
270 |
-
'name'
|
271 |
-
'src'
|
272 |
-
'deps'
|
273 |
'jquery',
|
274 |
self::PREFIX . 'commons',
|
275 |
],
|
|
|
276 |
],
|
277 |
[
|
278 |
'name' => 'metabox',
|
@@ -436,6 +437,17 @@ class WPSEO_Admin_Asset_Manager {
|
|
436 |
self::PREFIX . 'commons',
|
437 |
],
|
438 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
439 |
[
|
440 |
'name' => 'edit-page-script',
|
441 |
'src' => 'wp-seo-edit-page-' . $flat_version,
|
@@ -631,6 +643,14 @@ class WPSEO_Admin_Asset_Manager {
|
|
631 |
'name' => 'search-appearance',
|
632 |
'src' => 'search-appearance-' . $flat_version,
|
633 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
634 |
[
|
635 |
'name' => 'structured-data-blocks',
|
636 |
'src' => 'structured-data-blocks-' . $flat_version,
|
267 |
],
|
268 |
],
|
269 |
[
|
270 |
+
'name' => 'admin-global-script',
|
271 |
+
'src' => 'wp-seo-admin-global-' . $flat_version,
|
272 |
+
'deps' => [
|
273 |
'jquery',
|
274 |
self::PREFIX . 'commons',
|
275 |
],
|
276 |
+
'in_footer' => false,
|
277 |
],
|
278 |
[
|
279 |
'name' => 'metabox',
|
437 |
self::PREFIX . 'commons',
|
438 |
],
|
439 |
],
|
440 |
+
[
|
441 |
+
'name' => 'indexation',
|
442 |
+
'src' => 'wp-seo-indexation-' . $flat_version,
|
443 |
+
'deps' => [
|
444 |
+
'jquery',
|
445 |
+
'jquery-ui-core',
|
446 |
+
'jquery-ui-progressbar',
|
447 |
+
self::PREFIX . 'admin-global-script',
|
448 |
+
self::PREFIX . 'commons',
|
449 |
+
],
|
450 |
+
],
|
451 |
[
|
452 |
'name' => 'edit-page-script',
|
453 |
'src' => 'wp-seo-edit-page-' . $flat_version,
|
643 |
'name' => 'search-appearance',
|
644 |
'src' => 'search-appearance-' . $flat_version,
|
645 |
],
|
646 |
+
|
647 |
+
/*
|
648 |
+
* Temporarily commented out to prevent unwanted monorepo styles seeping through.
|
649 |
+
* [
|
650 |
+
* 'name' => 'monorepo',
|
651 |
+
* 'src' => 'monorepo-' . $flat_version,
|
652 |
+
* ],
|
653 |
+
*/
|
654 |
[
|
655 |
'name' => 'structured-data-blocks',
|
656 |
'src' => 'structured-data-blocks-' . $flat_version,
|
admin/class-admin-editor-specific-replace-vars.php
CHANGED
@@ -25,11 +25,11 @@ class WPSEO_Admin_Editor_Specific_Replace_Vars {
|
|
25 |
'custom-post-type_archive' => [ 'pt_single', 'pt_plural' ],
|
26 |
|
27 |
// Taxonomies.
|
28 |
-
'category' => [ 'term_title', 'term_description', 'category_description', 'parent_title' ],
|
29 |
'post_tag' => [ 'term_title', 'term_description', 'tag_description' ],
|
30 |
'post_format' => [],
|
31 |
// Custom taxonomy.
|
32 |
-
'term-in-custom-taxonomy' => [ 'term_title', 'term_description', 'category_description', 'parent_title' ],
|
33 |
|
34 |
// Settings - special pages.
|
35 |
'search' => [ 'searchphrase' ],
|
@@ -45,7 +45,7 @@ class WPSEO_Admin_Editor_Specific_Replace_Vars {
|
|
45 |
);
|
46 |
|
47 |
$this->add_for_page_types(
|
48 |
-
[ 'post', 'term-in-custom-
|
49 |
WPSEO_Custom_Taxonomies::get_custom_taxonomies()
|
50 |
);
|
51 |
}
|
25 |
'custom-post-type_archive' => [ 'pt_single', 'pt_plural' ],
|
26 |
|
27 |
// Taxonomies.
|
28 |
+
'category' => [ 'term_title', 'term_description', 'category_description', 'parent_title', 'term_hierarchy' ],
|
29 |
'post_tag' => [ 'term_title', 'term_description', 'tag_description' ],
|
30 |
'post_format' => [],
|
31 |
// Custom taxonomy.
|
32 |
+
'term-in-custom-taxonomy' => [ 'term_title', 'term_description', 'category_description', 'parent_title', 'term_hierarchy' ],
|
33 |
|
34 |
// Settings - special pages.
|
35 |
'search' => [ 'searchphrase' ],
|
45 |
);
|
46 |
|
47 |
$this->add_for_page_types(
|
48 |
+
[ 'post', 'term-in-custom-taxonomy' ],
|
49 |
WPSEO_Custom_Taxonomies::get_custom_taxonomies()
|
50 |
);
|
51 |
}
|
admin/class-admin-init.php
CHANGED
@@ -440,6 +440,26 @@ class WPSEO_Admin_Init {
|
|
440 |
'version' => '9.4',
|
441 |
'alternative' => null,
|
442 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
443 |
];
|
444 |
|
445 |
// Determine which filters have been registered.
|
440 |
'version' => '9.4',
|
441 |
'alternative' => null,
|
442 |
],
|
443 |
+
'wpseo_opengraph' => [
|
444 |
+
'version' => '14.0',
|
445 |
+
'alternative' => null,
|
446 |
+
],
|
447 |
+
'wpseo_twitter' => [
|
448 |
+
'version' => '14.0',
|
449 |
+
'alternative' => null,
|
450 |
+
],
|
451 |
+
'wpseo_twitter_taxonomy_image' => [
|
452 |
+
'version' => '14.0',
|
453 |
+
'alternative' => null,
|
454 |
+
],
|
455 |
+
'wpseo_twitter_metatag_key' => [
|
456 |
+
'version' => '14.0',
|
457 |
+
'alternative' => null,
|
458 |
+
],
|
459 |
+
'wp_seo_get_bc_ancestors' => [
|
460 |
+
'version' => '14.0',
|
461 |
+
'alternative' => 'wpseo_breadcrumb_links',
|
462 |
+
],
|
463 |
];
|
464 |
|
465 |
// Determine which filters have been registered.
|
admin/class-admin-recommended-replace-vars.php
CHANGED
@@ -25,12 +25,12 @@ class WPSEO_Admin_Recommended_Replace_Vars {
|
|
25 |
'custom_post_type' => [ 'sitename', 'title', 'sep' ],
|
26 |
|
27 |
// Taxonomies.
|
28 |
-
'category' => [ 'sitename', 'term_title', 'sep' ],
|
29 |
'post_tag' => [ 'sitename', 'term_title', 'sep' ],
|
30 |
'post_format' => [ 'sitename', 'term_title', 'sep', 'page' ],
|
31 |
|
32 |
// Custom taxonomy.
|
33 |
-
'term-in-custom-taxomomy' => [ 'sitename', 'term_title', 'sep' ],
|
34 |
|
35 |
// Settings - archive pages.
|
36 |
'author_archive' => [ 'sitename', 'title', 'sep', 'page' ],
|
25 |
'custom_post_type' => [ 'sitename', 'title', 'sep' ],
|
26 |
|
27 |
// Taxonomies.
|
28 |
+
'category' => [ 'sitename', 'term_title', 'sep', 'term_hierarchy' ],
|
29 |
'post_tag' => [ 'sitename', 'term_title', 'sep' ],
|
30 |
'post_format' => [ 'sitename', 'term_title', 'sep', 'page' ],
|
31 |
|
32 |
// Custom taxonomy.
|
33 |
+
'term-in-custom-taxomomy' => [ 'sitename', 'term_title', 'sep', 'term_hierarchy' ],
|
34 |
|
35 |
// Settings - archive pages.
|
36 |
'author_archive' => [ 'sitename', 'title', 'sep', 'page' ],
|
admin/class-admin.php
CHANGED
@@ -308,6 +308,7 @@ class WPSEO_Admin {
|
|
308 |
*/
|
309 |
private function localize_admin_global_script() {
|
310 |
return [
|
|
|
311 |
'variable_warning' => sprintf(
|
312 |
/* translators: %1$s: '%%term_title%%' variable used in titles and meta's template that's not compatible with the given template, %2$s: expands to 'HelpScout beacon' */
|
313 |
__( 'Warning: the variable %1$s cannot be used in this template. See the %2$s for more info.', 'wordpress-seo' ),
|
308 |
*/
|
309 |
private function localize_admin_global_script() {
|
310 |
return [
|
311 |
+
'isRtl' => is_rtl(),
|
312 |
'variable_warning' => sprintf(
|
313 |
/* translators: %1$s: '%%term_title%%' variable used in titles and meta's template that's not compatible with the given template, %2$s: expands to 'HelpScout beacon' */
|
314 |
__( 'Warning: the variable %1$s cannot be used in this template. See the %2$s for more info.', 'wordpress-seo' ),
|
admin/class-gutenberg-compatibility.php
CHANGED
@@ -15,14 +15,14 @@ class WPSEO_Gutenberg_Compatibility {
|
|
15 |
*
|
16 |
* @var string
|
17 |
*/
|
18 |
-
const CURRENT_RELEASE = '7.
|
19 |
|
20 |
/**
|
21 |
* The minimally supported version of Gutenberg by the plugin.
|
22 |
*
|
23 |
* @var string
|
24 |
*/
|
25 |
-
const MINIMUM_SUPPORTED = '7.
|
26 |
|
27 |
/**
|
28 |
* Holds the current version.
|
15 |
*
|
16 |
* @var string
|
17 |
*/
|
18 |
+
const CURRENT_RELEASE = '7.9.1';
|
19 |
|
20 |
/**
|
21 |
* The minimally supported version of Gutenberg by the plugin.
|
22 |
*
|
23 |
* @var string
|
24 |
*/
|
25 |
+
const MINIMUM_SUPPORTED = '7.9.1';
|
26 |
|
27 |
/**
|
28 |
* Holds the current version.
|
admin/metabox/class-metabox.php
CHANGED
@@ -834,6 +834,7 @@ class WPSEO_Metabox extends WPSEO_Meta {
|
|
834 |
$asset_manager->enqueue_style( 'metabox-css' );
|
835 |
$asset_manager->enqueue_style( 'scoring' );
|
836 |
$asset_manager->enqueue_style( 'select2' );
|
|
|
837 |
|
838 |
$asset_manager->enqueue_script( 'metabox' );
|
839 |
$asset_manager->enqueue_script( 'admin-media' );
|
834 |
$asset_manager->enqueue_style( 'metabox-css' );
|
835 |
$asset_manager->enqueue_style( 'scoring' );
|
836 |
$asset_manager->enqueue_style( 'select2' );
|
837 |
+
$asset_manager->enqueue_style( 'monorepo' );
|
838 |
|
839 |
$asset_manager->enqueue_script( 'metabox' );
|
840 |
$asset_manager->enqueue_script( 'admin-media' );
|
admin/taxonomy/class-taxonomy.php
CHANGED
@@ -125,6 +125,7 @@ class WPSEO_Taxonomy {
|
|
125 |
|
126 |
$asset_manager = new WPSEO_Admin_Asset_Manager();
|
127 |
$asset_manager->enqueue_style( 'scoring' );
|
|
|
128 |
|
129 |
$tag_id = filter_input( INPUT_GET, 'tag_ID' );
|
130 |
if (
|
@@ -377,6 +378,7 @@ class WPSEO_Taxonomy {
|
|
377 |
'page',
|
378 |
'term_title',
|
379 |
'term_description',
|
|
|
380 |
'category_description',
|
381 |
'tag_description',
|
382 |
'searchphrase',
|
@@ -434,9 +436,8 @@ class WPSEO_Taxonomy {
|
|
434 |
* @return string Content with shortcodes filtered out.
|
435 |
*/
|
436 |
public function custom_category_descriptions_add_shortcode_support( $desc ) {
|
437 |
-
_deprecated_function( __FUNCTION__, 'WPSEO 7.9.0'
|
438 |
|
439 |
-
|
440 |
-
return $frontend->custom_category_descriptions_add_shortcode_support( $desc );
|
441 |
}
|
442 |
}
|
125 |
|
126 |
$asset_manager = new WPSEO_Admin_Asset_Manager();
|
127 |
$asset_manager->enqueue_style( 'scoring' );
|
128 |
+
$asset_manager->enqueue_style( 'monorepo' );
|
129 |
|
130 |
$tag_id = filter_input( INPUT_GET, 'tag_ID' );
|
131 |
if (
|
378 |
'page',
|
379 |
'term_title',
|
380 |
'term_description',
|
381 |
+
'term_hierarchy',
|
382 |
'category_description',
|
383 |
'tag_description',
|
384 |
'searchphrase',
|
436 |
* @return string Content with shortcodes filtered out.
|
437 |
*/
|
438 |
public function custom_category_descriptions_add_shortcode_support( $desc ) {
|
439 |
+
_deprecated_function( __FUNCTION__, 'WPSEO 7.9.0' );
|
440 |
|
441 |
+
return '';
|
|
|
442 |
}
|
443 |
}
|
admin/tracking/class-tracking-settings-data.php
CHANGED
@@ -80,7 +80,6 @@ class WPSEO_Tracking_Settings_Data implements WPSEO_Collection {
|
|
80 |
'company_name',
|
81 |
'company_or_person',
|
82 |
'person_name',
|
83 |
-
'title_test',
|
84 |
'forcerewritetitle',
|
85 |
'separator',
|
86 |
'title-home-wpseo',
|
80 |
'company_name',
|
81 |
'company_or_person',
|
82 |
'person_name',
|
|
|
83 |
'forcerewritetitle',
|
84 |
'separator',
|
85 |
'title-home-wpseo',
|
admin/tracking/class-tracking.php
CHANGED
@@ -105,9 +105,16 @@ class WPSEO_Tracking implements WPSEO_WordPress_Integration {
|
|
105 |
return;
|
106 |
}
|
107 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
$collector = $this->get_collector();
|
109 |
|
110 |
-
$request = new WPSEO_Remote_Request( $this->endpoint );
|
111 |
$request->set_body( $collector->get_as_json() );
|
112 |
$request->send();
|
113 |
|
105 |
return;
|
106 |
}
|
107 |
|
108 |
+
// Set a 'content-type' header of 'application/json'.
|
109 |
+
$tracking_request_args = [
|
110 |
+
'headers' => [
|
111 |
+
'content-type:' => 'application/json',
|
112 |
+
],
|
113 |
+
];
|
114 |
+
|
115 |
$collector = $this->get_collector();
|
116 |
|
117 |
+
$request = new WPSEO_Remote_Request( $this->endpoint, $tracking_request_args );
|
118 |
$request->set_body( $collector->get_as_json() );
|
119 |
$request->send();
|
120 |
|
admin/views/class-yoast-feature-toggles.php
CHANGED
@@ -143,6 +143,16 @@ class Yoast_Feature_Toggles {
|
|
143 |
),
|
144 |
'order' => 90,
|
145 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
];
|
147 |
|
148 |
/**
|
143 |
),
|
144 |
'order' => 90,
|
145 |
],
|
146 |
+
(object) [
|
147 |
+
'name' => __( 'REST API: Head endpoint', 'wordpress-seo' ),
|
148 |
+
'setting' => 'enable_headless_rest_endpoints',
|
149 |
+
'label' => sprintf(
|
150 |
+
/* translators: 1: Yoast SEO */
|
151 |
+
__( 'This %1$s REST API endpoint gives you all the metadata you need for a specific URL. This will make it very easy for headless WordPress sites to use %1$s for all their SEO meta output.', 'wordpress-seo' ),
|
152 |
+
'Yoast SEO'
|
153 |
+
),
|
154 |
+
'order' => 100,
|
155 |
+
],
|
156 |
];
|
157 |
|
158 |
/**
|
config/dependency-injection/container-compiler.php
CHANGED
@@ -30,6 +30,10 @@ class Container_Compiler {
|
|
30 |
$cache = new ConfigCache( $file, $debug );
|
31 |
|
32 |
if ( ! $cache->isFresh() ) {
|
|
|
|
|
|
|
|
|
33 |
$container_builder = new ContainerBuilder();
|
34 |
$container_builder->addCompilerPass( new Loader_Pass() );
|
35 |
$loader = new Custom_Loader( $container_builder );
|
30 |
$cache = new ConfigCache( $file, $debug );
|
31 |
|
32 |
if ( ! $cache->isFresh() ) {
|
33 |
+
if ( ! defined( 'WPSEO_VERSION' ) ) {
|
34 |
+
define( 'WPSEO_VERSION', 'COMPILING' );
|
35 |
+
}
|
36 |
+
|
37 |
$container_builder = new ContainerBuilder();
|
38 |
$container_builder->addCompilerPass( new Loader_Pass() );
|
39 |
$loader = new Custom_Loader( $container_builder );
|
config/dependency-injection/custom-loader.php
CHANGED
@@ -105,31 +105,6 @@ class Custom_Loader extends PhpFileLoader {
|
|
105 |
}
|
106 |
}
|
107 |
|
108 |
-
/**
|
109 |
-
* Registers a definition in the container with its instanceof-conditionals.
|
110 |
-
*
|
111 |
-
* @param string $id The ID of the definition.
|
112 |
-
* @param \Symfony\Component\DependencyInjection\Definition $definition The definition.
|
113 |
-
*
|
114 |
-
* @throws InvalidArgumentException If invalid arguments were supplied.
|
115 |
-
*
|
116 |
-
* @return void
|
117 |
-
*/
|
118 |
-
protected function setDefinition( $id, Definition $definition ) {
|
119 |
-
$this->container->removeBindings( $id );
|
120 |
-
|
121 |
-
// @codingStandardsIgnoreLine WordPress.NamingConventions.ValidVariableName.NotSnakeCaseMemberVar This is from an inherited class not abiding by that standard.
|
122 |
-
if ( $this->isLoadingInstanceof ) {
|
123 |
-
if ( ! $definition instanceof ChildDefinition ) {
|
124 |
-
throw new InvalidArgumentException( \sprintf( 'Invalid type definition "%s": ChildDefinition expected, "%s" given.', $id, \get_class( $definition ) ) );
|
125 |
-
}
|
126 |
-
$this->instanceof[ $id ] = $definition;
|
127 |
-
}
|
128 |
-
else {
|
129 |
-
$this->container->setDefinition( $id, ( $definition instanceof ChildDefinition ) ? $definition : $definition->setInstanceofConditionals( $this->instanceof ) );
|
130 |
-
}
|
131 |
-
}
|
132 |
-
|
133 |
/**
|
134 |
* Finds classes based on a given pattern and exclude pattern.
|
135 |
*
|
105 |
}
|
106 |
}
|
107 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
/**
|
109 |
* Finds classes based on a given pattern and exclude pattern.
|
110 |
*
|
config/dependency-injection/loader-pass.php
CHANGED
@@ -10,11 +10,11 @@ namespace Yoast\WP\SEO\Dependency_Injection;
|
|
10 |
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
|
11 |
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
12 |
use Symfony\Component\DependencyInjection\Definition;
|
13 |
-
use
|
14 |
-
use Yoast\WP\SEO\
|
|
|
15 |
use Yoast\WP\SEO\Loader;
|
16 |
-
use Yoast\WP\SEO\
|
17 |
-
use Yoast\WP\SEO\WordPress\Integration;
|
18 |
|
19 |
/**
|
20 |
* A pass is a step in the compilation process of the container.
|
@@ -36,9 +36,6 @@ class Loader_Pass implements CompilerPassInterface {
|
|
36 |
}
|
37 |
|
38 |
$loader_definition = $container->getDefinition( Loader::class );
|
39 |
-
$loader_definition->setArgument( 0, new Reference( 'service_container' ) );
|
40 |
-
$loader_definition->setPublic( true );
|
41 |
-
|
42 |
$definitions = $container->getDefinitions();
|
43 |
|
44 |
foreach ( $definitions as $definition ) {
|
@@ -55,18 +52,20 @@ class Loader_Pass implements CompilerPassInterface {
|
|
55 |
private function process_definition( Definition $definition, Definition $loader_definition ) {
|
56 |
$class = $definition->getClass();
|
57 |
|
58 |
-
if ( \is_subclass_of( $class,
|
59 |
$loader_definition->addMethodCall( 'register_initializer', [ $class ] );
|
60 |
-
$definition->setPublic( true );
|
61 |
}
|
62 |
|
63 |
-
if ( \is_subclass_of( $class,
|
64 |
$loader_definition->addMethodCall( 'register_integration', [ $class ] );
|
65 |
-
$definition->setPublic( true );
|
66 |
}
|
67 |
|
68 |
-
if ( \is_subclass_of( $class,
|
69 |
-
$
|
|
|
|
|
|
|
|
|
70 |
}
|
71 |
}
|
72 |
}
|
10 |
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
|
11 |
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
12 |
use Symfony\Component\DependencyInjection\Definition;
|
13 |
+
use Yoast\WP\SEO\Commands\Command_Interface;
|
14 |
+
use Yoast\WP\SEO\Initializers\Initializer_Interface;
|
15 |
+
use Yoast\WP\SEO\Integrations\Integration_Interface;
|
16 |
use Yoast\WP\SEO\Loader;
|
17 |
+
use Yoast\WP\SEO\Routes\Route_Interface;
|
|
|
18 |
|
19 |
/**
|
20 |
* A pass is a step in the compilation process of the container.
|
36 |
}
|
37 |
|
38 |
$loader_definition = $container->getDefinition( Loader::class );
|
|
|
|
|
|
|
39 |
$definitions = $container->getDefinitions();
|
40 |
|
41 |
foreach ( $definitions as $definition ) {
|
52 |
private function process_definition( Definition $definition, Definition $loader_definition ) {
|
53 |
$class = $definition->getClass();
|
54 |
|
55 |
+
if ( \is_subclass_of( $class, Initializer_Interface::class ) ) {
|
56 |
$loader_definition->addMethodCall( 'register_initializer', [ $class ] );
|
|
|
57 |
}
|
58 |
|
59 |
+
if ( \is_subclass_of( $class, Integration_Interface::class ) ) {
|
60 |
$loader_definition->addMethodCall( 'register_integration', [ $class ] );
|
|
|
61 |
}
|
62 |
|
63 |
+
if ( \is_subclass_of( $class, Route_Interface::class ) ) {
|
64 |
+
$loader_definition->addMethodCall( 'register_route', [ $class ] );
|
65 |
+
}
|
66 |
+
|
67 |
+
if ( \is_subclass_of( $class, Command_Interface::class ) ) {
|
68 |
+
$loader_definition->addMethodCall( 'register_command', [ $class ] );
|
69 |
}
|
70 |
}
|
71 |
}
|
config/dependency-injection/services.php
CHANGED
@@ -8,23 +8,28 @@
|
|
8 |
namespace Yoast\WP\SEO\Dependency_Injection;
|
9 |
|
10 |
use Symfony\Component\DependencyInjection\Definition;
|
11 |
-
use
|
12 |
-
use
|
13 |
-
use
|
14 |
-
use
|
15 |
use Yoast\WP\SEO\WordPress\Wrapper;
|
|
|
16 |
|
17 |
/* @var $container \Symfony\Component\DependencyInjection\ContainerBuilder */
|
18 |
|
19 |
// WordPress factory functions.
|
20 |
$container->register( 'wpdb', 'wpdb' )->setFactory( [ Wrapper::class, 'get_wpdb' ] );
|
21 |
-
$container->register( 'wp_query', 'WP_Query' )->setFactory( [ Wrapper::class, 'get_wp_query' ] );
|
22 |
|
23 |
-
//
|
24 |
-
$container->register(
|
25 |
-
$container->register(
|
26 |
-
|
27 |
-
|
|
|
|
|
|
|
|
|
|
|
28 |
|
29 |
$excluded_files = [
|
30 |
'main.php',
|
@@ -36,6 +41,9 @@ $excluded_directories = [
|
|
36 |
'wordpress',
|
37 |
'generated',
|
38 |
'orm',
|
|
|
|
|
|
|
39 |
];
|
40 |
|
41 |
$excluded = \implode( ',', \array_merge( $excluded_directories, $excluded_files ) );
|
@@ -45,7 +53,7 @@ $base_definition = new Definition();
|
|
45 |
$base_definition
|
46 |
->setAutowired( true )
|
47 |
->setAutoconfigured( true )
|
48 |
-
->setPublic(
|
49 |
|
50 |
/* @var $loader \Yoast\WP\SEO\Dependency_Injection\Custom_Loader */
|
51 |
$loader->registerClasses( $base_definition, 'Yoast\\WP\\SEO\\', 'src/*', 'src/{' . $excluded . '}' );
|
8 |
namespace Yoast\WP\SEO\Dependency_Injection;
|
9 |
|
10 |
use Symfony\Component\DependencyInjection\Definition;
|
11 |
+
use WPSEO_Admin_Asset_Manager;
|
12 |
+
use WPSEO_Breadcrumbs;
|
13 |
+
use WPSEO_Frontend;
|
14 |
+
use WPSEO_Replace_Vars;
|
15 |
use Yoast\WP\SEO\WordPress\Wrapper;
|
16 |
+
use YoastSEO_Vendor\Symfony\Component\DependencyInjection\ContainerInterface;
|
17 |
|
18 |
/* @var $container \Symfony\Component\DependencyInjection\ContainerBuilder */
|
19 |
|
20 |
// WordPress factory functions.
|
21 |
$container->register( 'wpdb', 'wpdb' )->setFactory( [ Wrapper::class, 'get_wpdb' ] );
|
|
|
22 |
|
23 |
+
// Legacy classes.
|
24 |
+
$container->register( WPSEO_Replace_Vars::class, WPSEO_Replace_Vars::class )->setFactory( [ Wrapper::class, 'get_replace_vars' ] )->setPublic( true );
|
25 |
+
$container->register( WPSEO_Admin_Asset_Manager::class, WPSEO_Admin_Asset_Manager::class )->setFactory( [ Wrapper::class, 'get_admin_asset_manager' ] )->setPublic( true );
|
26 |
+
|
27 |
+
// Backwards-compatibility classes in the global namespace.
|
28 |
+
$container->register( WPSEO_Breadcrumbs::class, WPSEO_Breadcrumbs::class )->setAutowired( true )->setPublic( true );
|
29 |
+
$container->register( WPSEO_Frontend::class, WPSEO_Frontend::class )->setAutowired( true )->setPublic( true );
|
30 |
+
|
31 |
+
// The container itself.
|
32 |
+
$container->setAlias( ContainerInterface::class, 'service_container' );
|
33 |
|
34 |
$excluded_files = [
|
35 |
'main.php',
|
41 |
'wordpress',
|
42 |
'generated',
|
43 |
'orm',
|
44 |
+
'backwards-compatibility',
|
45 |
+
'surfaces/values',
|
46 |
+
'presenters',
|
47 |
];
|
48 |
|
49 |
$excluded = \implode( ',', \array_merge( $excluded_directories, $excluded_files ) );
|
53 |
$base_definition
|
54 |
->setAutowired( true )
|
55 |
->setAutoconfigured( true )
|
56 |
+
->setPublic( true );
|
57 |
|
58 |
/* @var $loader \Yoast\WP\SEO\Dependency_Injection\Custom_Loader */
|
59 |
$loader->registerClasses( $base_definition, 'Yoast\\WP\\SEO\\', 'src/*', 'src/{' . $excluded . '}' );
|
css/dist/{admin-global-1350-rtl.css → admin-global-1400-rtl.css}
RENAMED
File without changes
|
css/dist/{admin-global-1350.css → admin-global-1400.css}
RENAMED
File without changes
|
css/dist/{adminbar-1350-rtl.css → adminbar-1400-rtl.css}
RENAMED
File without changes
|
css/dist/{adminbar-1350.css → adminbar-1400.css}
RENAMED
File without changes
|
css/dist/{alerts-1350-rtl.css → alerts-1400-rtl.css}
RENAMED
File without changes
|
css/dist/{alerts-1350.css → alerts-1400.css}
RENAMED
File without changes
|
css/dist/{dashboard-1350-rtl.css → dashboard-1400-rtl.css}
RENAMED
File without changes
|
css/dist/{dashboard-1350.css → dashboard-1400.css}
RENAMED
File without changes
|
css/dist/{edit-page-1350-rtl.css → edit-page-1400-rtl.css}
RENAMED
File without changes
|
css/dist/{edit-page-1350.css → edit-page-1400.css}
RENAMED
File without changes
|
css/dist/{featured-image-1350-rtl.css → featured-image-1400-rtl.css}
RENAMED
File without changes
|
css/dist/{featured-image-1350.css → featured-image-1400.css}
RENAMED
File without changes
|
css/dist/{filter-explanation-1350-rtl.css → filter-explanation-1400-rtl.css}
RENAMED
File without changes
|
css/dist/{filter-explanation-1350.css → filter-explanation-1400.css}
RENAMED
File without changes
|
css/dist/{inside-editor-1350-rtl.css → inside-editor-1400-rtl.css}
RENAMED
File without changes
|
css/dist/{inside-editor-1350.css → inside-editor-1400.css}
RENAMED
File without changes
|
css/dist/{metabox-1350-rtl.css → metabox-1400-rtl.css}
RENAMED
File without changes
|
css/dist/{metabox-1350.css → metabox-1400.css}
RENAMED
File without changes
|
css/dist/{metabox-primary-category-1350-rtl.css → metabox-primary-category-1400-rtl.css}
RENAMED
File without changes
|
css/dist/{metabox-primary-category-1350.css → metabox-primary-category-1400.css}
RENAMED
File without changes
|
css/dist/monorepo-1400-rtl.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.yoast .yoast-button{display:inline-block;position:relative;padding:10px 16px 12px;text-decoration:none;border-radius:4px;border:1px solid rgba(0,0,0,.2);box-shadow:inset 0 -2px 0 rgba(0,0,0,.3);transition:background-color .15s ease-out 0s;line-height:1.2;font-size:14px;cursor:pointer}.yoast .yoast-button:active{box-shadow:none;padding-bottom:12px;top:2px}.yoast .yoast-button--primary{color:var(--color-white);background-color:var(--color-primary);border:1px solid rgba(0,0,0,.2)}.yoast .yoast-button--primary:visited{color:var(--color-white);border:1px solid rgba(0,0,0,.2)}.yoast .yoast-button--primary:active,.yoast .yoast-button--primary:hover{color:var(--color-white);background-color:var(--color-primary-darker);border:1px solid rgba(0,0,0,.2)}.yoast-close{display:flex;justify-content:center;align-items:center;border:none;background:none;height:44px;width:44px;cursor:pointer;box-shadow:none;padding:0}.yoast-close svg{fill:var(--color-default);width:14px}@media screen and (max-width:782px){.yoast-close svg{width:10px}}.yoast-data-model{padding:0;list-style:none;width:275px}.yoast-data-model li{line-height:1.4;padding:0 8px;position:relative;z-index:2;font-weight:var(--font-weight-bold)}.yoast-data-model span{float:left;font-weight:var(--font-weight-default)}.yoast-data-model li+li{margin-top:9px}.yoast-data-model li:after{position:absolute;right:0;height:20px;background:#f5d6e6;content:"";width:var(--width);z-index:-1}.yoast-field-group,.yoast fieldset{position:relative;border:none;padding:0;margin:0 0 24px}.yoast-field-group__title{display:flex;align-items:center;font-weight:var(--font-weight-bold);margin:0 0 8px;color:var(--color-label);line-height:1.2;float:right;padding:0}.yoast-field-group__help{border-radius:50%;padding:4px;width:12px;height:12px;display:block;float:right;margin-top:-5px}.yoast-field-group__help+*{clear:both}.yoast-field-group__help-icon svg{width:12px;height:12px;fill:var(--color-label-help);transition:var(--transition-default)}.yoast-field-group__help:hover svg{fill:var(--color-link)}.yoast-field-group .description{margin:0}:root{--color-placeholder:#707070}.yoast-field-group__inputfield,.yoast-field-group__textarea,.yoast input,.yoast textarea{width:100%;font-size:var(--font-size-default);padding:8px;background:#fff;border:var(--border-default);box-shadow:inset 0 2px 4px rgba(0,0,0,.1);box-sizing:border-box}.yoast-field-group__inputfield,.yoast input{height:40px}.yoast-field-group__textarea,.yoast textarea{min-height:200px}.yoast-field-group .description+.yoast-field-group__inputfield,.yoast-field-group .description+input,.yoast-field-group__inputfield+.description,.yoast input+.description{margin-top:8px;margin-bottom:24px}::-ms-input-placeholder,::-webkit-input-placeholder,::placeholder{color:var(--color-placeholder)}.yoast-field-group__radiobutton{display:flex;align-items:center}.yoast-field-group__radiobutton--vertical:not(:last-of-type){margin-bottom:8px}.yoast-field-group__radiobutton label{cursor:pointer;margin-left:16px}.yoast-field-group__radiobutton input[type=radio],.yoast input[type=radio]{-webkit-appearance:none;-moz-appearance:none;width:18px;height:18px;padding:2px;margin:0 0 0 8px;border-radius:50%;transition:all .15s ease-out 0s;border:var(--border-default);box-shadow:inset 0 2px 4px rgba(0,0,0,.1);position:relative;overflow:hidden;cursor:pointer}.yoast-field-group__radiobutton input[type=radio]:checked,.yoast input[type=radio]:checked{border-color:var(--color-primary)}.yoast-field-group__radiobutton input[type=radio]:checked:after,.yoast input[type=radio]:checked:after{width:10px;height:10px;background:var(--color-primary);position:absolute;right:3px;top:3px;content:"";display:block;border-radius:50%}.yoast-field-group__select{display:flex;cursor:pointer;align-items:center}.select2-container--default,.yoast-field-group__select select,.yoast select{-webkit-appearance:none;-moz-appearance:none;width:100%;font-size:var(--font-size-default);padding:10px 8px 11px;background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 8"><path d="M1.4 0L6 4.6 10.6 0 12 1.4 6 7.5 0 1.4z"/></svg>');background-position:left 15px center;background-repeat:no-repeat;background-size:10px auto;border-radius:0;border:var(--border-default);box-shadow:inset 0 2px 4px rgba(0,0,0,.1);position:relative;max-width:300px;display:block}.select2-container--default{background-image:none;padding:8px 8px 3px}.select2-container--default.select2-container--focus .select2-selection--multiple{outline:inherit;border:0}.select2-container--default .yoast-multiselect{border:0;min-height:0}.select2-container--default .yoast-multiselect ul{display:flex;margin:0;padding:0;list-style:none}.select2-container--default .yoast-multiselect .select2-selection__choice{background-color:var(--color-primary);border:0;border-radius:12px;color:var(--color-white);padding-top:0;padding-right:10px;padding-left:10px;margin-top:0;margin-left:8px;line-height:1.7;font-weight:500}.select2-container--default .yoast-multiselect .select2-selection__choice__remove{margin-left:8px;color:var(--color-white)}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:var(--color-white)}.select2-dropdown{border-color:var(--color-border--default);border-radius:0}.select2-container--open .select2-dropdown{top:-2px;right:-1px}.select2-results__option{padding:8px;border-top:var(--border-default)}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:var(--color-primary-lighter);color:var(--color-font-default)}.select2-container--default .select2-results__option[aria-selected=true]{background-color:var(--color-primary);color:var(--color-white)}.yoast-field-group__toggle{display:flex;align-items:center;width:600px;justify-content:space-between}.yoast-field-group__toggle input{position:absolute;right:0;opacity:0}.yoast-field-group__toggle label{position:relative;z-index:2;cursor:pointer}.yoast-field-group__toggle input:checked+label{color:var(--color-toggle-on)}.yoast-field-group__toggle input:not(:checked)+label{color:var(--color-toggle-off)}.yoast-field-group__toggle a{display:inline-block;width:34px;height:14px;border-radius:5px;background:#b6cf94;position:relative;margin:0 9px}.yoast-field-group__toggle input:first-of-type:checked~a{background:#9e9e9e}.yoast-field-group__toggle a:after{content:"";display:block;height:20px;width:20px;position:absolute;left:-2px;background:#6ea029;border-radius:50%;top:-3px;transition:all .1s ease-out}.yoast-field-group__toggle input:first-of-type:checked~a:after{left:calc(100% - 18px);background:#f1f1f1;box-shadow:0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.2),0 2px 1px -1px rgba(0,0,0,.12)}.yoast-field-group__checkbox{display:flex;cursor:pointer;align-items:center}.yoast-field-group__checkbox:not(.yoast-field-group__checkbox--horizontal)+.yoast-field-group__checkbox{margin-top:4px}.yoast-field-group__checkbox input[type=checkbox],.yoast input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;width:18px;height:18px;padding:2px;margin:2px 0 0 8px;border-radius:2px;transition:background-color .15s ease-out 0s;border:var(--border-default);box-shadow:inset 0 2px 4px rgba(0,0,0,.1);position:relative;overflow:hidden}.yoast label+input[type=checkbox]{margin-right:16px}.yoast-field-group__checkbox input[type=checkbox]:checked,.yoast input[type=checkbox]:checked{background:var(--checkmark--white) var(--color-primary) no-repeat 50%/13px;border:1px solid var(--color-primary);box-shadow:none}.yoast-modal__screen-overlay{position:fixed;top:0;left:0;bottom:0;right:0;background-color:rgba(164,40,106,.6);z-index:100000;animation:edit-post__fade-in-animation .2s ease-out 0s;animation-fill-mode:forwards}.yoast-modal{background:#fff;display:flex;flex-direction:column;overflow:hidden;position:fixed;height:calc(100% - 96px);top:48px;bottom:48px;right:calc(50% - 440px);max-width:880px;width:100%}.yoast-tabs .yoast-modal__content{display:grid;grid-template-areas:"heading heading" "menu content" "menu footer";grid-template-rows:72px 1fr 89px;grid-template-columns:280px 1fr}.yoast-modal__heading{padding:13px 24px 14px;display:flex;align-items:center;border-bottom:var(--border-default);grid-area:heading;background:var(--color-white);height:72px}.yoast-modal__heading .yoast-close{position:absolute;left:16px}.yoast-modal__heading h1{font-size:20px}.yoast-modal__heading-icon{fill:var(--color-primary);margin-left:16px;width:19px;height:20px;flex-shrink:0}.yoast-modal__menu{grid-area:menu;border-left:var(--border-default);overflow-y:auto}.yoast-modal__menu ul{padding:0;margin:0;list-style:none}.yoast-modal__menu li{padding:12px 16px 11px;border-bottom:var(--border-default);font-size:16px;cursor:pointer;text-decoration:none;color:var(--color-default);display:block}.yoast-modal__menu li:hover{background-color:#edd4e1}.yoast-modal__menu li.yoast-tabs__tab--selected{background-color:var(--color-primary);border-bottom:var(--border-default);color:#fff}.yoast-modal__content,.yoast-modal__section{grid-area:content;overflow-y:auto;flex-grow:1;position:relative;display:flex;flex-direction:column}.yoast-modal__section *{max-width:600px}.yoast-modal__section-header{position:-webkit-sticky;position:sticky;top:0;background:var(--color-white);padding:24px 24px 0;z-index:10}.yoast-modal__section .yoast-h2{border-bottom:var(--border-default);padding-bottom:24px}.yoast-modal__footer{grid-area:footer;padding:24px 0;border-top:var(--border-default);display:flex;align-self:flex-end;align-items:center;justify-content:flex-end;position:-webkit-sticky;position:sticky;bottom:0;background:var(--color-white);margin:0 24px;z-index:10;height:89px;width:calc(100% - 48px)}.yoast-modal__settings-saved{position:relative;margin-left:16px;display:inline-flex;align-items:center}.yoast-modal__settings-saved:before{content:"";background:var(--checkmark--green) no-repeat 50%;height:13px;width:14px;display:inline-block;margin-left:8px}.yoast-modal__footer .yoast-button{display:block}.yoast-modal__section-content{padding:24px;flex-grow:1}@media screen and (max-width:880px){.yoast-modal{position:fixed;top:0;bottom:0;right:0;left:0}}@media screen and (max-width:782px){.yoast-modal{overflow-y:initial;height:auto;padding-bottom:72px}.yoast-modal__heading{padding:14px 16px 15px;position:fixed;top:0;width:100%;z-index:11;height:auto}.yoast-close svg{width:10px}.yoast-modal__heading-icon{height:15px;margin-left:8px}.yoast .yoast-close{left:3px}.yoast-modal__heading .yoast-h2{font-size:var(--font-size-default)}.yoast-modal__section{overflow:initial;flex-grow:0}.yoast-modal__section-content{padding:24px 0;margin:0 16px}.yoast-modal__section:first-of-type{margin-top:46px}.yoast-modal__section:last-of-type{margin-bottom:72px}.yoast-modal__section-header{top:46px;position:-webkit-sticky;position:sticky;padding:0;margin:0}.yoast-modal__section-open .yoast-modal__section-header{padding-right:0;padding-left:0;margin-right:16px;margin-left:16px}.yoast-modal__section-open{border-bottom:var(--border-default)}.yoast-modal__footer{margin:0;width:100%;position:fixed;z-index:11;height:72px;padding:24px 16px}.yoast-modal-collapsible .yoast-modal__section-content{padding:24px 16px;border-bottom:var(--border-default);margin:0}.yoast-collapsible__hidden{display:none}.yoast-collapsible__trigger{padding:16px;border:none;border-bottom:var(--border-default);cursor:pointer;justify-content:space-between;font-size:var(--font-size-default);width:100%;text-align:right;background:#fff;color:var(--color-primary)}.yoast-collapsible__trigger[aria-expanded=true] .yoast-collapsible__icon{transform:rotate(-180deg)}.yoast-collapsible__trigger[aria-expanded=true]{padding:16px 0;width:calc(100% - 32px);margin:0 16px}.yoast-collapsible__icon{background-color:var(--color-white);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='%23404040'%3E%3Cpath d='M1.4 0L6 4.6 10.6 0 12 1.4 6 7.5 0 1.4z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:10px auto;width:19px;height:19px;border:none;display:block;float:left}.yoast-collapsible-block{width:100%;margin-top:46px}.yoast-collapsible-block+.yoast-collapsible-block{margin-top:0}}:root{--border-default:1px solid rgba(0,0,0,0.2);--color-default:#404040;--color-primary:#a4286a;--color-secondary:#f7f7f7;--color-white:#fff;--color-green:#6ea029;--color-primary-darker:#7b1e50;--color-primary-lighter:#f5d6e6;--color-secondary-darker:#d9d9d9;--color-button-upsell:#fec228;--color-button-upsell-hover:#f2ae01;--color-dark:#303030;--color-sale:#fec228;--color-label:#303030;--color-label-help:#707070;--color-toggle-on:#303030;--color-toggle-off:#707070;--transition-default:all 150ms ease-out;--color-link:#006dac;--color-border--default:rgba(0,0,0,0.2);--checkmark--white:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23FFF' viewBox='0 0 512 512'%3E%3Cpath d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3E%3C/svg%3E");--svg-icon-caret-right:url('data:image/svg+xml;charset=utf-8,<svg viewBox="0 0 192 512" xmlns="http://www.w3.org/2000/svg"><path d="M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z"/></svg>');--checkmark--green:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%236EA029' viewBox='0 0 512 512'%3E%3Cpath d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3E%3C/svg%3E");--exclamation-mark:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23DC3232' viewBox='0 0 512 512'%3E%3Cpath d='M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'/%3E%3C/svg%3E")}[class*=yoast-]{box-sizing:border-box}[class*=yoast-]:focus{box-shadow:0 0 0 2px #007fff,0 0 0 5px #bfdfff;border-radius:0;outline:none}:root{--font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;--font-size-default:14px;--font-weight-default:400;--font-weight-bold:600;--color-font-default:#404040}.yoast-h1,.yoast-h2,.yoast-h3,.yoast h1,.yoast h2,.yoast h3{font-weight:400;color:var(--color-primary);line-height:1.2;margin:0}.yoast-h1 a,.yoast-h2 a,.yoast-h3 a{color:var(--color-primary);text-decoration:none}.yoast-h1,.yoast h1{font-size:24px}.yoast-h2,.yoast h2{font-size:20px}.yoast-h3,.yoast h4{font-size:16px}.yoast-paragraph,.yoast p{font-size:var(--font-size-default);margin-top:0}.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}@media (max-width:782px){.yoast-show-on-mobile{display:initial!important}}@media (min-width:782px){.yoast-hide-on-desktop{display:none}}
|
css/dist/monorepo-1400.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.yoast .yoast-button{display:inline-block;position:relative;padding:10px 16px 12px;text-decoration:none;border-radius:4px;border:1px solid rgba(0,0,0,.2);box-shadow:inset 0 -2px 0 rgba(0,0,0,.3);transition:background-color .15s ease-out 0s;line-height:1.2;font-size:14px;cursor:pointer}.yoast .yoast-button:active{box-shadow:none;padding-bottom:12px;top:2px}.yoast .yoast-button--primary{color:var(--color-white);background-color:var(--color-primary);border:1px solid rgba(0,0,0,.2)}.yoast .yoast-button--primary:visited{color:var(--color-white);border:1px solid rgba(0,0,0,.2)}.yoast .yoast-button--primary:active,.yoast .yoast-button--primary:hover{color:var(--color-white);background-color:var(--color-primary-darker);border:1px solid rgba(0,0,0,.2)}.yoast-close{display:flex;justify-content:center;align-items:center;border:none;background:none;height:44px;width:44px;cursor:pointer;box-shadow:none;padding:0}.yoast-close svg{fill:var(--color-default);width:14px}@media screen and (max-width:782px){.yoast-close svg{width:10px}}.yoast-data-model{padding:0;list-style:none;width:275px}.yoast-data-model li{line-height:1.4;padding:0 8px;position:relative;z-index:2;font-weight:var(--font-weight-bold)}.yoast-data-model span{float:right;font-weight:var(--font-weight-default)}.yoast-data-model li+li{margin-top:9px}.yoast-data-model li:after{position:absolute;left:0;height:20px;background:#f5d6e6;content:"";width:var(--width);z-index:-1}.yoast-field-group,.yoast fieldset{position:relative;border:none;padding:0;margin:0 0 24px}.yoast-field-group__title{display:flex;align-items:center;font-weight:var(--font-weight-bold);margin:0 0 8px;color:var(--color-label);line-height:1.2;float:left;padding:0}.yoast-field-group__help{border-radius:50%;padding:4px;width:12px;height:12px;display:block;float:left;margin-top:-5px}.yoast-field-group__help+*{clear:both}.yoast-field-group__help-icon svg{width:12px;height:12px;fill:var(--color-label-help);transition:var(--transition-default)}.yoast-field-group__help:hover svg{fill:var(--color-link)}.yoast-field-group .description{margin:0}:root{--color-placeholder:#707070}.yoast-field-group__inputfield,.yoast-field-group__textarea,.yoast input,.yoast textarea{width:100%;font-size:var(--font-size-default);padding:8px;background:#fff;border:var(--border-default);box-shadow:inset 0 2px 4px rgba(0,0,0,.1);box-sizing:border-box}.yoast-field-group__inputfield,.yoast input{height:40px}.yoast-field-group__textarea,.yoast textarea{min-height:200px}.yoast-field-group .description+.yoast-field-group__inputfield,.yoast-field-group .description+input,.yoast-field-group__inputfield+.description,.yoast input+.description{margin-top:8px;margin-bottom:24px}::-ms-input-placeholder,::-webkit-input-placeholder,::placeholder{color:var(--color-placeholder)}.yoast-field-group__radiobutton{display:flex;align-items:center}.yoast-field-group__radiobutton--vertical:not(:last-of-type){margin-bottom:8px}.yoast-field-group__radiobutton label{cursor:pointer;margin-right:16px}.yoast-field-group__radiobutton input[type=radio],.yoast input[type=radio]{-webkit-appearance:none;-moz-appearance:none;width:18px;height:18px;padding:2px;margin:0 8px 0 0;border-radius:50%;transition:all .15s ease-out 0s;border:var(--border-default);box-shadow:inset 0 2px 4px rgba(0,0,0,.1);position:relative;overflow:hidden;cursor:pointer}.yoast-field-group__radiobutton input[type=radio]:checked,.yoast input[type=radio]:checked{border-color:var(--color-primary)}.yoast-field-group__radiobutton input[type=radio]:checked:after,.yoast input[type=radio]:checked:after{width:10px;height:10px;background:var(--color-primary);position:absolute;left:3px;top:3px;content:"";display:block;border-radius:50%}.yoast-field-group__select{display:flex;cursor:pointer;align-items:center}.select2-container--default,.yoast-field-group__select select,.yoast select{-webkit-appearance:none;-moz-appearance:none;width:100%;font-size:var(--font-size-default);padding:10px 8px 11px;background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 8"><path d="M1.4 0L6 4.6 10.6 0 12 1.4 6 7.5 0 1.4z"/></svg>');background-position:right 15px center;background-repeat:no-repeat;background-size:10px auto;border-radius:0;border:var(--border-default);box-shadow:inset 0 2px 4px rgba(0,0,0,.1);position:relative;max-width:300px;display:block}.select2-container--default{background-image:none;padding:8px 8px 3px}.select2-container--default.select2-container--focus .select2-selection--multiple{outline:inherit;border:0}.select2-container--default .yoast-multiselect{border:0;min-height:0}.select2-container--default .yoast-multiselect ul{display:flex;margin:0;padding:0;list-style:none}.select2-container--default .yoast-multiselect .select2-selection__choice{background-color:var(--color-primary);border:0;border-radius:12px;color:var(--color-white);padding-top:0;padding-left:10px;padding-right:10px;margin-top:0;margin-right:8px;line-height:1.7;font-weight:500}.select2-container--default .yoast-multiselect .select2-selection__choice__remove{margin-right:8px;color:var(--color-white)}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:var(--color-white)}.select2-dropdown{border-color:var(--color-border--default);border-radius:0}.select2-container--open .select2-dropdown{top:-2px;left:-1px}.select2-results__option{padding:8px;border-top:var(--border-default)}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:var(--color-primary-lighter);color:var(--color-font-default)}.select2-container--default .select2-results__option[aria-selected=true]{background-color:var(--color-primary);color:var(--color-white)}.yoast-field-group__toggle{display:flex;align-items:center;width:600px;justify-content:space-between}.yoast-field-group__toggle input{position:absolute;left:0;opacity:0}.yoast-field-group__toggle label{position:relative;z-index:2;cursor:pointer}.yoast-field-group__toggle input:checked+label{color:var(--color-toggle-on)}.yoast-field-group__toggle input:not(:checked)+label{color:var(--color-toggle-off)}.yoast-field-group__toggle a{display:inline-block;width:34px;height:14px;border-radius:5px;background:#b6cf94;position:relative;margin:0 9px}.yoast-field-group__toggle input:first-of-type:checked~a{background:#9e9e9e}.yoast-field-group__toggle a:after{content:"";display:block;height:20px;width:20px;position:absolute;right:-2px;background:#6ea029;border-radius:50%;top:-3px;transition:all .1s ease-out}.yoast-field-group__toggle input:first-of-type:checked~a:after{right:calc(100% - 18px);background:#f1f1f1;box-shadow:0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.2),0 2px 1px -1px rgba(0,0,0,.12)}.yoast-field-group__checkbox{display:flex;cursor:pointer;align-items:center}.yoast-field-group__checkbox:not(.yoast-field-group__checkbox--horizontal)+.yoast-field-group__checkbox{margin-top:4px}.yoast-field-group__checkbox input[type=checkbox],.yoast input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;width:18px;height:18px;padding:2px;margin:2px 8px 0 0;border-radius:2px;transition:background-color .15s ease-out 0s;border:var(--border-default);box-shadow:inset 0 2px 4px rgba(0,0,0,.1);position:relative;overflow:hidden}.yoast label+input[type=checkbox]{margin-left:16px}.yoast-field-group__checkbox input[type=checkbox]:checked,.yoast input[type=checkbox]:checked{background:var(--checkmark--white) var(--color-primary) no-repeat 50%/13px;border:1px solid var(--color-primary);box-shadow:none}.yoast-modal__screen-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:rgba(164,40,106,.6);z-index:100000;animation:edit-post__fade-in-animation .2s ease-out 0s;animation-fill-mode:forwards}.yoast-modal{background:#fff;display:flex;flex-direction:column;overflow:hidden;position:fixed;height:calc(100% - 96px);top:48px;bottom:48px;left:calc(50% - 440px);max-width:880px;width:100%}.yoast-tabs .yoast-modal__content{display:grid;grid-template-areas:"heading heading" "menu content" "menu footer";grid-template-rows:72px 1fr 89px;grid-template-columns:280px 1fr}.yoast-modal__heading{padding:13px 24px 14px;display:flex;align-items:center;border-bottom:var(--border-default);grid-area:heading;background:var(--color-white);height:72px}.yoast-modal__heading .yoast-close{position:absolute;right:16px}.yoast-modal__heading h1{font-size:20px}.yoast-modal__heading-icon{fill:var(--color-primary);margin-right:16px;width:19px;height:20px;flex-shrink:0}.yoast-modal__menu{grid-area:menu;border-right:var(--border-default);overflow-y:auto}.yoast-modal__menu ul{padding:0;margin:0;list-style:none}.yoast-modal__menu li{padding:12px 16px 11px;border-bottom:var(--border-default);font-size:16px;cursor:pointer;text-decoration:none;color:var(--color-default);display:block}.yoast-modal__menu li:hover{background-color:#edd4e1}.yoast-modal__menu li.yoast-tabs__tab--selected{background-color:var(--color-primary);border-bottom:var(--border-default);color:#fff}.yoast-modal__content,.yoast-modal__section{grid-area:content;overflow-y:auto;flex-grow:1;position:relative;display:flex;flex-direction:column}.yoast-modal__section *{max-width:600px}.yoast-modal__section-header{position:-webkit-sticky;position:sticky;top:0;background:var(--color-white);padding:24px 24px 0;z-index:10}.yoast-modal__section .yoast-h2{border-bottom:var(--border-default);padding-bottom:24px}.yoast-modal__footer{grid-area:footer;padding:24px 0;border-top:var(--border-default);display:flex;align-self:flex-end;align-items:center;justify-content:flex-end;position:-webkit-sticky;position:sticky;bottom:0;background:var(--color-white);margin:0 24px;z-index:10;height:89px;width:calc(100% - 48px)}.yoast-modal__settings-saved{position:relative;margin-right:16px;display:inline-flex;align-items:center}.yoast-modal__settings-saved:before{content:"";background:var(--checkmark--green) no-repeat 50%;height:13px;width:14px;display:inline-block;margin-right:8px}.yoast-modal__footer .yoast-button{display:block}.yoast-modal__section-content{padding:24px;flex-grow:1}@media screen and (max-width:880px){.yoast-modal{position:fixed;top:0;bottom:0;left:0;right:0}}@media screen and (max-width:782px){.yoast-modal{overflow-y:initial;height:auto;padding-bottom:72px}.yoast-modal__heading{padding:14px 16px 15px;position:fixed;top:0;width:100%;z-index:11;height:auto}.yoast-close svg{width:10px}.yoast-modal__heading-icon{height:15px;margin-right:8px}.yoast .yoast-close{right:3px}.yoast-modal__heading .yoast-h2{font-size:var(--font-size-default)}.yoast-modal__section{overflow:initial;flex-grow:0}.yoast-modal__section-content{padding:24px 0;margin:0 16px}.yoast-modal__section:first-of-type{margin-top:46px}.yoast-modal__section:last-of-type{margin-bottom:72px}.yoast-modal__section-header{top:46px;position:-webkit-sticky;position:sticky;padding:0;margin:0}.yoast-modal__section-open .yoast-modal__section-header{padding-left:0;padding-right:0;margin-left:16px;margin-right:16px}.yoast-modal__section-open{border-bottom:var(--border-default)}.yoast-modal__footer{margin:0;width:100%;position:fixed;z-index:11;height:72px;padding:24px 16px}.yoast-modal-collapsible .yoast-modal__section-content{padding:24px 16px;border-bottom:var(--border-default);margin:0}.yoast-collapsible__hidden{display:none}.yoast-collapsible__trigger{padding:16px;border:none;border-bottom:var(--border-default);cursor:pointer;justify-content:space-between;font-size:var(--font-size-default);width:100%;text-align:left;background:#fff;color:var(--color-primary)}.yoast-collapsible__trigger[aria-expanded=true] .yoast-collapsible__icon{transform:rotate(180deg)}.yoast-collapsible__trigger[aria-expanded=true]{padding:16px 0;width:calc(100% - 32px);margin:0 16px}.yoast-collapsible__icon{background-color:var(--color-white);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='%23404040'%3E%3Cpath d='M1.4 0L6 4.6 10.6 0 12 1.4 6 7.5 0 1.4z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:10px auto;width:19px;height:19px;border:none;display:block;float:right}.yoast-collapsible-block{width:100%;margin-top:46px}.yoast-collapsible-block+.yoast-collapsible-block{margin-top:0}}:root{--border-default:1px solid rgba(0,0,0,0.2);--color-default:#404040;--color-primary:#a4286a;--color-secondary:#f7f7f7;--color-white:#fff;--color-green:#6ea029;--color-primary-darker:#7b1e50;--color-primary-lighter:#f5d6e6;--color-secondary-darker:#d9d9d9;--color-button-upsell:#fec228;--color-button-upsell-hover:#f2ae01;--color-dark:#303030;--color-sale:#fec228;--color-label:#303030;--color-label-help:#707070;--color-toggle-on:#303030;--color-toggle-off:#707070;--transition-default:all 150ms ease-out;--color-link:#006dac;--color-border--default:rgba(0,0,0,0.2);--checkmark--white:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23FFF' viewBox='0 0 512 512'%3E%3Cpath d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3E%3C/svg%3E");--svg-icon-caret-right:url('data:image/svg+xml;charset=utf-8,<svg viewBox="0 0 192 512" xmlns="http://www.w3.org/2000/svg"><path d="M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z"/></svg>');--checkmark--green:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%236EA029' viewBox='0 0 512 512'%3E%3Cpath d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3E%3C/svg%3E");--exclamation-mark:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23DC3232' viewBox='0 0 512 512'%3E%3Cpath d='M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'/%3E%3C/svg%3E")}[class*=yoast-]{box-sizing:border-box}[class*=yoast-]:focus{box-shadow:0 0 0 2px #007fff,0 0 0 5px #bfdfff;border-radius:0;outline:none}:root{--font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;--font-size-default:14px;--font-weight-default:400;--font-weight-bold:600;--color-font-default:#404040}.yoast-h1,.yoast-h2,.yoast-h3,.yoast h1,.yoast h2,.yoast h3{font-weight:400;color:var(--color-primary);line-height:1.2;margin:0}.yoast-h1 a,.yoast-h2 a,.yoast-h3 a{color:var(--color-primary);text-decoration:none}.yoast-h1,.yoast h1{font-size:24px}.yoast-h2,.yoast h2{font-size:20px}.yoast-h3,.yoast h4{font-size:16px}.yoast-paragraph,.yoast p{font-size:var(--font-size-default);margin-top:0}.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}@media (max-width:782px){.yoast-show-on-mobile{display:initial!important}}@media (min-width:782px){.yoast-hide-on-desktop{display:none}}
|
css/dist/{search-appearance-1350-rtl.css → search-appearance-1400-rtl.css}
RENAMED
File without changes
|
css/dist/{search-appearance-1350.css → search-appearance-1400.css}
RENAMED
File without changes
|
css/dist/{structured-data-blocks-1350-rtl.css → structured-data-blocks-1400-rtl.css}
RENAMED
File without changes
|
css/dist/{structured-data-blocks-1350.css → structured-data-blocks-1400.css}
RENAMED
File without changes
|
css/dist/{toggle-switch-1350-rtl.css → toggle-switch-1400-rtl.css}
RENAMED
File without changes
|
css/dist/{toggle-switch-1350.css → toggle-switch-1400.css}
RENAMED
File without changes
|
css/dist/{wpseo-dismissible-1350-rtl.css → wpseo-dismissible-1400-rtl.css}
RENAMED
File without changes
|
css/dist/{wpseo-dismissible-1350.css → wpseo-dismissible-1400.css}
RENAMED
File without changes
|
css/dist/{yoast-components-1350-rtl.css → yoast-components-1400-rtl.css}
RENAMED
File without changes
|
css/dist/{yoast-components-1350.css → yoast-components-1400.css}
RENAMED
File without changes
|
css/dist/{yoast-extensions-1350-rtl.css → yoast-extensions-1400-rtl.css}
RENAMED
File without changes
|
css/dist/{yoast-extensions-1350.css → yoast-extensions-1400.css}
RENAMED
File without changes
|
css/dist/{yst_plugin_tools-1350-rtl.css → yst_plugin_tools-1400-rtl.css}
RENAMED
File without changes
|
css/dist/{yst_plugin_tools-1350.css → yst_plugin_tools-1400.css}
RENAMED
File without changes
|
css/dist/{yst_seo_score-1350-rtl.css → yst_seo_score-1400-rtl.css}
RENAMED
File without changes
|
css/dist/{yst_seo_score-1350.css → yst_seo_score-1400.css}
RENAMED
File without changes
|
deprecated/frontend/class-handle-404.php
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Frontend
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Class WPSEO_Handle_404
|
10 |
+
*
|
11 |
+
* Handles intercepting requests.
|
12 |
+
*
|
13 |
+
* @deprecated 14.0
|
14 |
+
*
|
15 |
+
* @since 9.4
|
16 |
+
*/
|
17 |
+
class WPSEO_Handle_404 implements WPSEO_WordPress_Integration {
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Registers all hooks to WordPress.
|
21 |
+
*
|
22 |
+
* @codeCoverageIgnore
|
23 |
+
* @deprecated 14.0
|
24 |
+
*
|
25 |
+
* @return void
|
26 |
+
*/
|
27 |
+
public function register_hooks() {
|
28 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Handle the 404 status code.
|
33 |
+
*
|
34 |
+
* @codeCoverageIgnore
|
35 |
+
* @deprecated 14.0
|
36 |
+
*
|
37 |
+
* @param bool $handled Whether we've handled the request.
|
38 |
+
*
|
39 |
+
* @return bool True if it's 404.
|
40 |
+
*/
|
41 |
+
public function handle_404( $handled ) {
|
42 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
43 |
+
|
44 |
+
return $handled;
|
45 |
+
}
|
46 |
+
}
|
deprecated/frontend/class-opengraph-image.php
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Frontend
|
6 |
+
*/
|
7 |
+
|
8 |
+
use Yoast\WP\SEO\Values\Open_Graph\Images;
|
9 |
+
|
10 |
+
_deprecated_file( basename( __FILE__ ), 'WPSEO 14.0' );
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Class WPSEO_OpenGraph_Image.
|
14 |
+
*
|
15 |
+
* @deprecated 14.0
|
16 |
+
*/
|
17 |
+
class WPSEO_OpenGraph_Image extends Images {
|
18 |
+
|
19 |
+
/**
|
20 |
+
* The image ID used when the image is external.
|
21 |
+
*
|
22 |
+
* @var string
|
23 |
+
*/
|
24 |
+
const EXTERNAL_IMAGE_ID = '-1';
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Constructor.
|
28 |
+
*
|
29 |
+
* @deprecated 14.0
|
30 |
+
* @codeCoverageIgnore
|
31 |
+
*
|
32 |
+
* @param null|string $image Optional. The Image to use.
|
33 |
+
* @param WPSEO_OpenGraph $opengraph Optional. The OpenGraph object.
|
34 |
+
*/
|
35 |
+
public function __construct( $image = null, WPSEO_OpenGraph $opengraph = null ) {
|
36 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
37 |
+
}
|
38 |
+
}
|
deprecated/frontend/class-opengraph-oembed.php
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Frontend
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Class WPSEO_OpenGraph_OEmbed.
|
10 |
+
*
|
11 |
+
* @deprecated 14.0
|
12 |
+
*/
|
13 |
+
class WPSEO_OpenGraph_OEmbed implements WPSEO_WordPress_Integration {
|
14 |
+
|
15 |
+
/**
|
16 |
+
* @inheritDoc
|
17 |
+
*
|
18 |
+
* @codeCoverageIgnore
|
19 |
+
* @deprecated 14.0
|
20 |
+
*/
|
21 |
+
public function register_hooks() {
|
22 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Callback function to pass to the oEmbed's response data that will enable
|
27 |
+
* support for using the image and title set by the WordPress SEO plugin's fields. This
|
28 |
+
* address the concern where some social channels/subscribed use oEmebed data over OpenGraph data
|
29 |
+
* if both are present.
|
30 |
+
*
|
31 |
+
* @codeCoverageIgnore
|
32 |
+
* @deprecated 14.0
|
33 |
+
*
|
34 |
+
* @param array $data The oEmbed data.
|
35 |
+
* @param WP_Post $post The current Post object.
|
36 |
+
*
|
37 |
+
* @link https://developer.wordpress.org/reference/hooks/oembed_response_data/ for hook info.
|
38 |
+
*
|
39 |
+
* @return array An array of oEmbed data with modified values where appropriate.
|
40 |
+
*/
|
41 |
+
public function set_oembed_data( $data, $post ) {
|
42 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
43 |
+
|
44 |
+
return $data;
|
45 |
+
}
|
46 |
+
}
|
deprecated/frontend/class-opengraph.php
ADDED
@@ -0,0 +1,314 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Frontend
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* This code adds the OpenGraph output.
|
10 |
+
*
|
11 |
+
* @deprecated 14.0
|
12 |
+
*/
|
13 |
+
class WPSEO_OpenGraph {
|
14 |
+
|
15 |
+
/* ********************* DEPRECATED METHODS ********************* */
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Class constructor.
|
19 |
+
*
|
20 |
+
* @deprecated 14.0
|
21 |
+
* @codeCoverageIgnore
|
22 |
+
*/
|
23 |
+
public function __construct() {
|
24 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
25 |
+
}
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Main OpenGraph output.
|
29 |
+
*
|
30 |
+
* @deprecated 14.0
|
31 |
+
* @codeCoverageIgnore
|
32 |
+
*/
|
33 |
+
public function opengraph() {
|
34 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Internal function to output FB tags. This also adds an output filter to each bit of output based on the property.
|
39 |
+
*
|
40 |
+
* @deprecated 14.0
|
41 |
+
* @codeCoverageIgnore
|
42 |
+
*
|
43 |
+
* @param string $property Property attribute value.
|
44 |
+
* @param string $content Content attribute value.
|
45 |
+
*
|
46 |
+
* @return boolean
|
47 |
+
*/
|
48 |
+
public function og_tag( $property, $content ) {
|
49 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Filter: 'wpseo_og_' . $og_property - Allow developers to change the content of specific OG meta tags.
|
53 |
+
*
|
54 |
+
* @deprecated 14.0
|
55 |
+
*
|
56 |
+
* @api string $content The content of the property.
|
57 |
+
*/
|
58 |
+
$content = apply_filters_deprecated( 'wpseo_og_' . $og_property, $content, 'WPSEO 14.0');
|
59 |
+
|
60 |
+
return true;
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Outputs the site owner.
|
65 |
+
*
|
66 |
+
* @link https://developers.facebook.com/docs/reference/opengraph/object-type/article/
|
67 |
+
*
|
68 |
+
* @return void
|
69 |
+
*
|
70 |
+
* @deprecated 7.1
|
71 |
+
* @codeCoverageIgnore
|
72 |
+
*/
|
73 |
+
public function site_owner() {
|
74 |
+
// As this is a frontend method, we want to make sure it is not displayed for non-logged in users.
|
75 |
+
if ( function_exists( 'wp_get_current_user' ) && current_user_can( 'manage_options' ) ) {
|
76 |
+
_deprecated_function( __METHOD__, '7.1', null );
|
77 |
+
}
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* Fallback method for plugins using image_output.
|
82 |
+
*
|
83 |
+
* @param string|bool $image Image URL.
|
84 |
+
*
|
85 |
+
* @deprecated 7.4
|
86 |
+
* @codeCoverageIgnore
|
87 |
+
*/
|
88 |
+
public function image_output( $image = false ) {
|
89 |
+
_deprecated_function( __METHOD__, '7.4', 'WPSEO_OpenGraph::image' );
|
90 |
+
}
|
91 |
+
|
92 |
+
/**
|
93 |
+
* Outputs the canonical URL as OpenGraph URL, which consolidates likes and shares.
|
94 |
+
*
|
95 |
+
* @deprecated 14.0
|
96 |
+
* @codeCoverageIgnore
|
97 |
+
*
|
98 |
+
* @link https://developers.facebook.com/docs/reference/opengraph/object-type/article/
|
99 |
+
*
|
100 |
+
* @return boolean
|
101 |
+
*/
|
102 |
+
public function url() {
|
103 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
104 |
+
|
105 |
+
return false;
|
106 |
+
}
|
107 |
+
|
108 |
+
/**
|
109 |
+
* Outputs the SEO title as OpenGraph title.
|
110 |
+
*
|
111 |
+
* @deprecated 14.0
|
112 |
+
* @codeCoverageIgnore
|
113 |
+
*
|
114 |
+
* @link https://developers.facebook.com/docs/reference/opengraph/object-type/article/
|
115 |
+
*
|
116 |
+
* @param bool $echo Whether or not to echo the output.
|
117 |
+
*
|
118 |
+
* @return string|boolean
|
119 |
+
*/
|
120 |
+
public function og_title( $echo = true ) {
|
121 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
122 |
+
|
123 |
+
return false;
|
124 |
+
}
|
125 |
+
|
126 |
+
/**
|
127 |
+
* Outputs the OpenGraph description, specific OG description first, if not, grabs the meta description.
|
128 |
+
*
|
129 |
+
* @deprecated 14.0
|
130 |
+
* @codeCoverageIgnore
|
131 |
+
*
|
132 |
+
* @param bool $echo Whether to echo or return the description.
|
133 |
+
*
|
134 |
+
* @return string $ogdesc
|
135 |
+
*/
|
136 |
+
public function description( $echo = true ) {
|
137 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
138 |
+
|
139 |
+
return '';
|
140 |
+
}
|
141 |
+
|
142 |
+
/**
|
143 |
+
* Outputs the author's FB page.
|
144 |
+
*
|
145 |
+
* @deprecated 14.0
|
146 |
+
* @codeCoverageIgnore
|
147 |
+
*
|
148 |
+
* @link https://developers.facebook.com/blog/post/2013/06/19/platform-updates--new-open-graph-tags-for-media-publishers-and-more/
|
149 |
+
* @link https://developers.facebook.com/docs/reference/opengraph/object-type/article/
|
150 |
+
*
|
151 |
+
* @return boolean
|
152 |
+
*/
|
153 |
+
public function article_author_facebook() {
|
154 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
155 |
+
|
156 |
+
return false;
|
157 |
+
}
|
158 |
+
|
159 |
+
/**
|
160 |
+
* Outputs the website's FB page.
|
161 |
+
*
|
162 |
+
* @deprecated 14.0
|
163 |
+
* @codeCoverageIgnore
|
164 |
+
*
|
165 |
+
* @link https://developers.facebook.com/blog/post/2013/06/19/platform-updates--new-open-graph-tags-for-media-publishers-and-more/
|
166 |
+
* @link https://developers.facebook.com/docs/reference/opengraph/object-type/article/
|
167 |
+
*
|
168 |
+
* @return boolean
|
169 |
+
*/
|
170 |
+
public function website_facebook() {
|
171 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
172 |
+
|
173 |
+
return false;
|
174 |
+
}
|
175 |
+
|
176 |
+
/**
|
177 |
+
* Outputs the OpenGraph type.
|
178 |
+
*
|
179 |
+
* @deprecated 14.0
|
180 |
+
* @codeCoverageIgnore
|
181 |
+
*
|
182 |
+
* @param boolean $echo Whether to echo or return the type.
|
183 |
+
*
|
184 |
+
* @return string $type
|
185 |
+
*/
|
186 |
+
public function type( $echo = true ) {
|
187 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
188 |
+
|
189 |
+
return '';
|
190 |
+
}
|
191 |
+
|
192 |
+
/**
|
193 |
+
* Outputs the locale, doing some conversions to make sure the proper Facebook locale is output.
|
194 |
+
*
|
195 |
+
* Last update/compare with FB list done on 2015-03-16 by Rarst.
|
196 |
+
*
|
197 |
+
* @deprecated 14.0
|
198 |
+
* @codeCoverageIgnore
|
199 |
+
*
|
200 |
+
* @link http://www.facebook.com/translations/FacebookLocales.xml for the list of supported locales.
|
201 |
+
* @link https://developers.facebook.com/docs/reference/opengraph/object-type/article/
|
202 |
+
*
|
203 |
+
* @param bool $echo Whether to echo or return the locale.
|
204 |
+
*
|
205 |
+
* @return string $locale
|
206 |
+
*/
|
207 |
+
public function locale( $echo = true ) {
|
208 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
209 |
+
|
210 |
+
return '';
|
211 |
+
}
|
212 |
+
|
213 |
+
/**
|
214 |
+
* Filters the Facebook plugins metadata.
|
215 |
+
*
|
216 |
+
* @deprecated 14.0
|
217 |
+
* @codeCoverageIgnore
|
218 |
+
*
|
219 |
+
* @param array $meta_tags The array to fix.
|
220 |
+
*
|
221 |
+
* @return array $meta_tags
|
222 |
+
*/
|
223 |
+
public function facebook_filter( $meta_tags ) {
|
224 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
225 |
+
|
226 |
+
return array();
|
227 |
+
}
|
228 |
+
|
229 |
+
/**
|
230 |
+
* Outputs the site name straight from the blog info.
|
231 |
+
*
|
232 |
+
* @deprecated 14.0
|
233 |
+
* @codeCoverageIgnore
|
234 |
+
*
|
235 |
+
* @return void
|
236 |
+
*/
|
237 |
+
public function site_name() {
|
238 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
239 |
+
}
|
240 |
+
|
241 |
+
/**
|
242 |
+
* Outputs the article publish and last modification date.
|
243 |
+
*
|
244 |
+
* @deprecated 14.0
|
245 |
+
* @codeCoverageIgnore
|
246 |
+
*
|
247 |
+
* @link https://developers.facebook.com/docs/reference/opengraph/object-type/article/
|
248 |
+
*
|
249 |
+
* @return boolean;
|
250 |
+
*/
|
251 |
+
public function publish_date() {
|
252 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
253 |
+
|
254 |
+
return true;
|
255 |
+
}
|
256 |
+
|
257 |
+
/**
|
258 |
+
* Creates new WPSEO_OpenGraph_Image class and get the images to set the og:image.
|
259 |
+
*
|
260 |
+
* @deprecated 14.0
|
261 |
+
* @codeCoverageIgnore
|
262 |
+
|
263 |
+
* @param string|bool $image Optional. Image URL.
|
264 |
+
*
|
265 |
+
* @return void
|
266 |
+
*/
|
267 |
+
public function image( $image = false ) {
|
268 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
269 |
+
}
|
270 |
+
|
271 |
+
/**
|
272 |
+
* Outputs the Facebook app_id.
|
273 |
+
*
|
274 |
+
* @deprecated 14.0
|
275 |
+
* @codeCoverageIgnore
|
276 |
+
*
|
277 |
+
* @return void
|
278 |
+
*/
|
279 |
+
public function app_id() {
|
280 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
281 |
+
}
|
282 |
+
|
283 |
+
/**
|
284 |
+
* Outputs the article tags as article:tag tags.
|
285 |
+
*
|
286 |
+
* @deprecated 14.0
|
287 |
+
* @codeCoverageIgnore
|
288 |
+
*
|
289 |
+
* @link https://developers.facebook.com/docs/reference/opengraph/object-type/article/
|
290 |
+
*
|
291 |
+
* @return boolean
|
292 |
+
*/
|
293 |
+
public function tags() {
|
294 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
295 |
+
|
296 |
+
return false;
|
297 |
+
}
|
298 |
+
|
299 |
+
/**
|
300 |
+
* Outputs the article category as an article:section tag.
|
301 |
+
*
|
302 |
+
* @deprecated 14.0
|
303 |
+
* @codeCoverageIgnore
|
304 |
+
*
|
305 |
+
* @link https://developers.facebook.com/docs/reference/opengraph/object-type/article/
|
306 |
+
*
|
307 |
+
* @return boolean;
|
308 |
+
*/
|
309 |
+
public function category() {
|
310 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
311 |
+
|
312 |
+
return false;
|
313 |
+
}
|
314 |
+
} /* End of class */
|
deprecated/frontend/class-primary-category.php
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Frontend
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Adds customizations to the front end for the primary category.
|
10 |
+
*
|
11 |
+
* @deprecated 14.0
|
12 |
+
*/
|
13 |
+
class WPSEO_Frontend_Primary_Category implements WPSEO_WordPress_Integration {
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Registers the hooks necessary for correct primary category behaviour.
|
17 |
+
*/
|
18 |
+
public function register_hooks() {
|
19 |
+
add_filter( 'post_link_category', array( $this, 'post_link_category' ), 10, 3 );
|
20 |
+
}
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Filters post_link_category to change the category to the chosen category by the user.
|
24 |
+
*
|
25 |
+
* @param stdClass $category The category that is now used for the post link.
|
26 |
+
* @param array $categories This parameter is not used.
|
27 |
+
* @param WP_Post $post The post in question.
|
28 |
+
*
|
29 |
+
* @codeCoverageIgnore
|
30 |
+
* @deprecated 14.0
|
31 |
+
*
|
32 |
+
* @return array|null|object|WP_Error The category we want to use for the post link.
|
33 |
+
*/
|
34 |
+
public function post_link_category( $category, $categories = null, $post = null ) {
|
35 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
36 |
+
|
37 |
+
return $category;
|
38 |
+
}
|
39 |
+
}
|
deprecated/frontend/class-twitter.php
ADDED
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Frontend
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* This class handles the Twitter card functionality.
|
10 |
+
*
|
11 |
+
* @deprecated 14.0
|
12 |
+
*
|
13 |
+
* @link https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/abouts-cards
|
14 |
+
*/
|
15 |
+
class WPSEO_Twitter {
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Instance of this class.
|
19 |
+
*
|
20 |
+
* @var object
|
21 |
+
*/
|
22 |
+
public static $instance;
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Images.
|
26 |
+
*
|
27 |
+
* @var array
|
28 |
+
*/
|
29 |
+
public $shown_images = array();
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Class constructor.
|
33 |
+
*
|
34 |
+
* @deprecated 14.0
|
35 |
+
* @codeCoverageIgnore
|
36 |
+
*/
|
37 |
+
public function __construct() {
|
38 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Outputs the Twitter Card code on singular pages.
|
43 |
+
*
|
44 |
+
* @deprecated 14.0
|
45 |
+
* @codeCoverageIgnore
|
46 |
+
*/
|
47 |
+
public function twitter() {
|
48 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
49 |
+
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Get the singleton instance of this class.
|
53 |
+
*
|
54 |
+
* @deprecated 14.0
|
55 |
+
* @codeCoverageIgnore
|
56 |
+
*
|
57 |
+
* @return object
|
58 |
+
*/
|
59 |
+
public static function get_instance() {
|
60 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
61 |
+
|
62 |
+
return null;
|
63 |
+
}
|
64 |
+
} /* End of class */
|
deprecated/frontend/schema/class-schema-article.php
ADDED
@@ -0,0 +1,87 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Frontend\Schema
|
6 |
+
*/
|
7 |
+
|
8 |
+
use Yoast\WP\SEO\Generators\Schema\Article;
|
9 |
+
use Yoast\WP\SEO\Memoizers\Meta_Tags_Context_Memoizer;
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Returns schema Article data.
|
13 |
+
*
|
14 |
+
* @deprecated 14.0
|
15 |
+
*
|
16 |
+
* @since 10.2
|
17 |
+
*/
|
18 |
+
class WPSEO_Schema_Article extends Article implements WPSEO_Graph_Piece {
|
19 |
+
|
20 |
+
/**
|
21 |
+
* The date helper.
|
22 |
+
*
|
23 |
+
* @var WPSEO_Date_Helper
|
24 |
+
*/
|
25 |
+
protected $date;
|
26 |
+
|
27 |
+
/**
|
28 |
+
* WPSEO_Schema_Article constructor.
|
29 |
+
*
|
30 |
+
* @param array $context The context. No longer used but present for BC.
|
31 |
+
*
|
32 |
+
* @codeCoverageIgnore
|
33 |
+
* @deprecated 14.0
|
34 |
+
*/
|
35 |
+
public function __construct( $context = null ) {
|
36 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Article' );
|
37 |
+
|
38 |
+
$memoizer = YoastSEO()->classes->get( Meta_Tags_Context_Memoizer::class );
|
39 |
+
$this->context = $memoizer->for_current_page();
|
40 |
+
$this->helpers = YoastSEO()->helpers;
|
41 |
+
$this->date = new WPSEO_Date_Helper();
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Determines whether or not a piece should be added to the graph.
|
46 |
+
*
|
47 |
+
* @codeCoverageIgnore
|
48 |
+
* @deprecated 14.0
|
49 |
+
*
|
50 |
+
* @return bool
|
51 |
+
*/
|
52 |
+
public function is_needed() {
|
53 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Article::is_needed' );
|
54 |
+
|
55 |
+
return parent::is_needed();
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Returns Article data.
|
60 |
+
*
|
61 |
+
* @codeCoverageIgnore
|
62 |
+
* @deprecated 14.0
|
63 |
+
*
|
64 |
+
* @return array $data Article data.
|
65 |
+
*/
|
66 |
+
public function generate() {
|
67 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Article::generate' );
|
68 |
+
|
69 |
+
return parent::generate();
|
70 |
+
}
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Determines whether a given post type should have Article schema.
|
74 |
+
*
|
75 |
+
* @codeCoverageIgnore
|
76 |
+
* @deprecated 14.0
|
77 |
+
*
|
78 |
+
* @param string $post_type Post type to check.
|
79 |
+
*
|
80 |
+
* @return bool True if it has article schema, false if not.
|
81 |
+
*/
|
82 |
+
public static function is_article_post_type( $post_type = null ) {
|
83 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'YoastSEO()->helpers->schema->article->is_article_post_type' );
|
84 |
+
|
85 |
+
return YoastSEO()->helpers->schema->article->is_article_post_type( $post_type );
|
86 |
+
}
|
87 |
+
}
|
deprecated/frontend/schema/class-schema-author.php
ADDED
@@ -0,0 +1,137 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Frontend\Schema
|
6 |
+
*/
|
7 |
+
|
8 |
+
use Yoast\WP\SEO\Config\Schema_IDs;
|
9 |
+
use Yoast\WP\SEO\Generators\Schema\Author;
|
10 |
+
use Yoast\WP\SEO\Memoizers\Meta_Tags_Context_Memoizer;
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Returns schema Person data.
|
14 |
+
*
|
15 |
+
* @deprecated 14.0
|
16 |
+
*
|
17 |
+
* @since 10.2
|
18 |
+
*/
|
19 |
+
class WPSEO_Schema_Author extends Author implements WPSEO_Graph_Piece {
|
20 |
+
|
21 |
+
/**
|
22 |
+
* The hash used for images.
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $image_hash = Schema_IDs::AUTHOR_LOGO_HASH;
|
27 |
+
|
28 |
+
/**
|
29 |
+
* The Schema type we use for this class.
|
30 |
+
*
|
31 |
+
* @var string[]
|
32 |
+
*/
|
33 |
+
protected $type = [ 'Person' ];
|
34 |
+
|
35 |
+
/**
|
36 |
+
* WPSEO_Schema_Author constructor.
|
37 |
+
*
|
38 |
+
* @param null $context The context. No longer used but present for BC.
|
39 |
+
*
|
40 |
+
* @codeCoverageIgnore
|
41 |
+
* @deprecated 14.0
|
42 |
+
*/
|
43 |
+
public function __construct( $context = null ) {
|
44 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Author' );
|
45 |
+
|
46 |
+
$memoizer = YoastSEO()->classes->get( Meta_Tags_Context_Memoizer::class );
|
47 |
+
$this->context = $memoizer->for_current_page();
|
48 |
+
$this->helpers = YoastSEO()->helpers;
|
49 |
+
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Determine whether we should return Person schema.
|
53 |
+
*
|
54 |
+
* @codeCoverageIgnore
|
55 |
+
* @deprecated 14.0
|
56 |
+
*
|
57 |
+
* @return bool
|
58 |
+
*/
|
59 |
+
public function is_needed() {
|
60 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Author::is_needed' );
|
61 |
+
|
62 |
+
if ( $this->context->indexable->object_type === 'user' ) {
|
63 |
+
return true;
|
64 |
+
}
|
65 |
+
|
66 |
+
// This call to `is_post_author` is why this whole block could not be replaced with a `parent::is_needed()` call.
|
67 |
+
if ( $this->is_post_author() ) {
|
68 |
+
// If the author is the user the site represents, no need for an extra author block.
|
69 |
+
if ( parent::is_needed() ) {
|
70 |
+
return (int) $this->context->post->post_author !== $this->context->site_user_id;
|
71 |
+
}
|
72 |
+
|
73 |
+
return true;
|
74 |
+
}
|
75 |
+
|
76 |
+
return false;
|
77 |
+
}
|
78 |
+
|
79 |
+
/**
|
80 |
+
* Returns Person Schema data.
|
81 |
+
*
|
82 |
+
* @codeCoverageIgnore
|
83 |
+
* @deprecated 14.0
|
84 |
+
*
|
85 |
+
* @return bool|array Person data on success, false on failure.
|
86 |
+
*/
|
87 |
+
public function generate() {
|
88 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Author::generate' );
|
89 |
+
|
90 |
+
return parent::generate();
|
91 |
+
}
|
92 |
+
|
93 |
+
/**
|
94 |
+
* Gets the Schema type we use for this class.
|
95 |
+
*
|
96 |
+
* @codeCoverageIgnore
|
97 |
+
* @deprecated 14.0
|
98 |
+
*
|
99 |
+
* @return string[] The schema type.
|
100 |
+
*/
|
101 |
+
public static function get_type() {
|
102 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
103 |
+
|
104 |
+
return [ 'Person' ];
|
105 |
+
}
|
106 |
+
|
107 |
+
/**
|
108 |
+
* Determine whether the current URL is worthy of Article schema.
|
109 |
+
*
|
110 |
+
* @codeCoverageIgnore
|
111 |
+
* @deprecated 14.0
|
112 |
+
*
|
113 |
+
* @return bool
|
114 |
+
*/
|
115 |
+
protected function is_post_author() {
|
116 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
117 |
+
|
118 |
+
return (
|
119 |
+
$this->context->indexable->object_type === 'post' &&
|
120 |
+
$this->helpers->schema->article->is_article_post_type( $this->context->indexable->object_sub_type )
|
121 |
+
);
|
122 |
+
}
|
123 |
+
|
124 |
+
/**
|
125 |
+
* Determines a User ID for the Person data.
|
126 |
+
*
|
127 |
+
* @codeCoverageIgnore
|
128 |
+
* @deprecated 14.0
|
129 |
+
*
|
130 |
+
* @return bool|int User ID or false upon return.
|
131 |
+
*/
|
132 |
+
protected function determine_user_id() {
|
133 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Author::determine_user_id' );
|
134 |
+
|
135 |
+
return parent::determine_user_id();
|
136 |
+
}
|
137 |
+
}
|
deprecated/frontend/schema/class-schema-breadcrumb.php
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Frontend\Schema
|
6 |
+
*/
|
7 |
+
|
8 |
+
use Yoast\WP\SEO\Generators\Schema\Breadcrumb;
|
9 |
+
use Yoast\WP\SEO\Memoizers\Meta_Tags_Context_Memoizer;
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Returns schema Breadcrumb data.
|
13 |
+
*
|
14 |
+
* @deprecated 14.0
|
15 |
+
*
|
16 |
+
* @since 10.2
|
17 |
+
*/
|
18 |
+
class WPSEO_Schema_Breadcrumb extends Breadcrumb implements WPSEO_Graph_Piece {
|
19 |
+
|
20 |
+
/**
|
21 |
+
* WPSEO_Schema_Breadcrumb constructor.
|
22 |
+
*
|
23 |
+
* @param null $context The context. No longer used but present for BC.
|
24 |
+
*
|
25 |
+
* @codeCoverageIgnore
|
26 |
+
* @deprecated 14.0
|
27 |
+
*/
|
28 |
+
public function __construct( $context = null ) {
|
29 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Breadcrumb' );
|
30 |
+
|
31 |
+
$memoizer = YoastSEO()->classes->get( Meta_Tags_Context_Memoizer::class );
|
32 |
+
$this->context = $memoizer->for_current_page();
|
33 |
+
$this->helpers = YoastSEO()->helpers;
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Determine if we should add a breadcrumb attribute.
|
38 |
+
*
|
39 |
+
* @codeCoverageIgnore
|
40 |
+
* @deprecated 14.0
|
41 |
+
*
|
42 |
+
* @return bool
|
43 |
+
*/
|
44 |
+
public function is_needed() {
|
45 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Breadcrumb::is_needed' );
|
46 |
+
|
47 |
+
return parent::is_needed();
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Returns Schema breadcrumb data to allow recognition of page's position in the site hierarchy.
|
52 |
+
*
|
53 |
+
* @link https://developers.google.com/search/docs/data-types/breadcrumb
|
54 |
+
*
|
55 |
+
* @codeCoverageIgnore
|
56 |
+
* @deprecated 14.0
|
57 |
+
*
|
58 |
+
* @return bool|array Array on success, false on failure.
|
59 |
+
*/
|
60 |
+
public function generate() {
|
61 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Breadcrumb::generate' );
|
62 |
+
|
63 |
+
return parent::generate();
|
64 |
+
}
|
65 |
+
}
|
deprecated/frontend/schema/class-schema-faq-question-list.php
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Frontend\Schema
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Returns a question object for each question in an FAQ block.
|
10 |
+
*
|
11 |
+
* @since 11.1
|
12 |
+
*
|
13 |
+
* @deprecated 14.0
|
14 |
+
*/
|
15 |
+
class WPSEO_Schema_FAQ_Question_List {
|
16 |
+
|
17 |
+
/**
|
18 |
+
* WPSEO_Schema_FAQ_Question_List constructor.
|
19 |
+
*
|
20 |
+
* @codeCoverageIgnore
|
21 |
+
* @deprecated 14.0
|
22 |
+
*
|
23 |
+
* @param WP_Block_Parser_Block[] $blocks An array of the FAQ blocks on this page.
|
24 |
+
* @param WPSEO_Schema_Context $context A value object with context variables.
|
25 |
+
*/
|
26 |
+
public function __construct( $blocks, $context ) {
|
27 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Find an image based on its URL and generate a Schema object for it.
|
32 |
+
*
|
33 |
+
* @codeCoverageIgnore
|
34 |
+
* @deprecated 14.0
|
35 |
+
*
|
36 |
+
* @return array The Schema with a question list added.
|
37 |
+
*/
|
38 |
+
public function generate() {
|
39 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
40 |
+
|
41 |
+
return [];
|
42 |
+
}
|
43 |
+
}
|
deprecated/frontend/schema/class-schema-faq-questions.php
ADDED
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Frontend\Schema
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Returns a question object for each question in an FAQ block.
|
10 |
+
*
|
11 |
+
* @deprecated 14.0
|
12 |
+
*
|
13 |
+
* @since 11.1
|
14 |
+
*/
|
15 |
+
class WPSEO_Schema_FAQ_Questions {
|
16 |
+
|
17 |
+
/**
|
18 |
+
* A value object with context variables.
|
19 |
+
* This property is public, because originally it was dynamically declared.
|
20 |
+
*
|
21 |
+
* @var WPSEO_Schema_Context
|
22 |
+
*/
|
23 |
+
public $context;
|
24 |
+
|
25 |
+
/**
|
26 |
+
* WPSEO_Schema_FAQ_Questions constructor.
|
27 |
+
*
|
28 |
+
* @codeCoverageIgnore
|
29 |
+
* @deprecated 14.0
|
30 |
+
*
|
31 |
+
* @param array $data Our schema graph.
|
32 |
+
* @param WP_Block_Parser_Block $block The FAQ block of this type.
|
33 |
+
* @param WPSEO_Schema_Context $context A value object with context variables.
|
34 |
+
*/
|
35 |
+
public function __construct( $data, $block, $context ) {
|
36 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
37 |
+
$this->context = $context;
|
38 |
+
}
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Find an image based on its URL and generate a Schema object for it.
|
42 |
+
*
|
43 |
+
* @codeCoverageIgnore
|
44 |
+
* @deprecated 14.0
|
45 |
+
*
|
46 |
+
* @return array The Schema with Questions added.
|
47 |
+
*/
|
48 |
+
public function generate() {
|
49 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
50 |
+
|
51 |
+
return [];
|
52 |
+
}
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Generate a Question piece.
|
56 |
+
*
|
57 |
+
* @codeCoverageIgnore
|
58 |
+
* @deprecated 14.0
|
59 |
+
*
|
60 |
+
* @param array $question The question to generate schema for.
|
61 |
+
*
|
62 |
+
* @return array Schema.org Question piece.
|
63 |
+
*/
|
64 |
+
protected function generate_question_block( $question ) {
|
65 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
66 |
+
|
67 |
+
return [];
|
68 |
+
}
|
69 |
+
}
|
{frontend → deprecated/frontend}/schema/class-schema-faq.php
RENAMED
@@ -5,65 +5,59 @@
|
|
5 |
* @package WPSEO\Frontend\Schema
|
6 |
*/
|
7 |
|
|
|
|
|
|
|
8 |
/**
|
9 |
* Returns schema FAQ data.
|
10 |
*
|
|
|
|
|
11 |
* @since 11.3
|
12 |
*/
|
13 |
-
class WPSEO_Schema_FAQ implements WPSEO_Graph_Piece {
|
14 |
-
|
15 |
-
/**
|
16 |
-
* Determine whether this graph piece is needed or not.
|
17 |
-
*
|
18 |
-
* @var bool
|
19 |
-
*/
|
20 |
-
private $is_needed = false;
|
21 |
-
|
22 |
-
/**
|
23 |
-
* The FAQ blocks on the current page.
|
24 |
-
*
|
25 |
-
* @var array
|
26 |
-
*/
|
27 |
-
private $blocks;
|
28 |
-
|
29 |
-
/**
|
30 |
-
* A value object with context variables.
|
31 |
-
*
|
32 |
-
* @var WPSEO_Schema_Context
|
33 |
-
*/
|
34 |
-
private $context;
|
35 |
|
36 |
/**
|
37 |
* WPSEO_Schema_FAQ constructor.
|
38 |
*
|
39 |
-
* @param
|
|
|
|
|
|
|
40 |
*/
|
41 |
-
public function __construct(
|
42 |
-
|
43 |
|
44 |
-
|
45 |
-
|
|
|
46 |
}
|
47 |
|
48 |
/**
|
49 |
* If this fires, we know there's an FAQ block ont he page, so filter the page type.
|
50 |
*
|
|
|
|
|
|
|
51 |
* @param array $blocks The blocks of this type on the current page.
|
52 |
*/
|
53 |
public function prepare_schema( $blocks ) {
|
54 |
-
|
55 |
-
$this->is_needed = true;
|
56 |
-
add_filter( 'wpseo_schema_webpage_type', [ $this, 'change_schema_page_type' ] );
|
57 |
}
|
58 |
|
59 |
/**
|
60 |
* Change the page type to an array if it isn't one, include FAQPage.
|
61 |
*
|
|
|
|
|
|
|
62 |
* @param array|string $page_type The page type.
|
63 |
*
|
64 |
* @return array $page_type The page type that's now an array.
|
65 |
*/
|
66 |
public function change_schema_page_type( $page_type ) {
|
|
|
|
|
67 |
if ( ! is_array( $page_type ) ) {
|
68 |
$page_type = [ $page_type ];
|
69 |
}
|
@@ -75,18 +69,23 @@ class WPSEO_Schema_FAQ implements WPSEO_Graph_Piece {
|
|
75 |
/**
|
76 |
* Render a list of questions, referencing them by ID.
|
77 |
*
|
|
|
|
|
|
|
78 |
* @return array $data Our Schema graph.
|
79 |
*/
|
80 |
public function generate() {
|
81 |
-
|
82 |
-
$graph = $question_list->generate();
|
83 |
|
84 |
-
return
|
85 |
}
|
86 |
|
87 |
/**
|
88 |
* Add the Questions in our FAQ blocks as separate pieces to the graph.
|
89 |
*
|
|
|
|
|
|
|
90 |
* @param array $graph Schema data for the current page.
|
91 |
* @param WP_Block_Parser_Block $block The block data array.
|
92 |
* @param WPSEO_Schema_Context $context A value object with context variables.
|
@@ -94,18 +93,22 @@ class WPSEO_Schema_FAQ implements WPSEO_Graph_Piece {
|
|
94 |
* @return array $data Our Schema graph.
|
95 |
*/
|
96 |
public function render_schema_questions( $graph, $block, $context ) {
|
97 |
-
|
98 |
-
$graph = $questions->generate();
|
99 |
|
100 |
-
return
|
101 |
}
|
102 |
|
103 |
/**
|
104 |
* Determines whether or not a piece should be added to the graph.
|
105 |
*
|
|
|
|
|
|
|
106 |
* @return bool
|
107 |
*/
|
108 |
public function is_needed() {
|
109 |
-
|
|
|
|
|
110 |
}
|
111 |
}
|
5 |
* @package WPSEO\Frontend\Schema
|
6 |
*/
|
7 |
|
8 |
+
use Yoast\WP\SEO\Generators\Schema\FAQ;
|
9 |
+
use Yoast\WP\SEO\Memoizers\Meta_Tags_Context_Memoizer;
|
10 |
+
|
11 |
/**
|
12 |
* Returns schema FAQ data.
|
13 |
*
|
14 |
+
* @deprecated 14.0
|
15 |
+
*
|
16 |
* @since 11.3
|
17 |
*/
|
18 |
+
class WPSEO_Schema_FAQ extends FAQ implements WPSEO_Graph_Piece {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
|
20 |
/**
|
21 |
* WPSEO_Schema_FAQ constructor.
|
22 |
*
|
23 |
+
* @param null $context The context. No longer used but present for BC.
|
24 |
+
*
|
25 |
+
* @codeCoverageIgnore
|
26 |
+
* @deprecated 14.0
|
27 |
*/
|
28 |
+
public function __construct( $context = null ) {
|
29 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\FAQ' );
|
30 |
|
31 |
+
$memoizer = YoastSEO()->classes->get( Meta_Tags_Context_Memoizer::class );
|
32 |
+
$this->context = $memoizer->for_current_page();
|
33 |
+
$this->helpers = YoastSEO()->helpers;
|
34 |
}
|
35 |
|
36 |
/**
|
37 |
* If this fires, we know there's an FAQ block ont he page, so filter the page type.
|
38 |
*
|
39 |
+
* @codeCoverageIgnore
|
40 |
+
* @deprecated 14.0
|
41 |
+
*
|
42 |
* @param array $blocks The blocks of this type on the current page.
|
43 |
*/
|
44 |
public function prepare_schema( $blocks ) {
|
45 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
|
|
|
|
46 |
}
|
47 |
|
48 |
/**
|
49 |
* Change the page type to an array if it isn't one, include FAQPage.
|
50 |
*
|
51 |
+
* @codeCoverageIgnore
|
52 |
+
* @deprecated 14.0
|
53 |
+
*
|
54 |
* @param array|string $page_type The page type.
|
55 |
*
|
56 |
* @return array $page_type The page type that's now an array.
|
57 |
*/
|
58 |
public function change_schema_page_type( $page_type ) {
|
59 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
60 |
+
|
61 |
if ( ! is_array( $page_type ) ) {
|
62 |
$page_type = [ $page_type ];
|
63 |
}
|
69 |
/**
|
70 |
* Render a list of questions, referencing them by ID.
|
71 |
*
|
72 |
+
* @codeCoverageIgnore
|
73 |
+
* @deprecated 14.0
|
74 |
+
*
|
75 |
* @return array $data Our Schema graph.
|
76 |
*/
|
77 |
public function generate() {
|
78 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\FAQ::generate' );
|
|
|
79 |
|
80 |
+
return parent::generate();
|
81 |
}
|
82 |
|
83 |
/**
|
84 |
* Add the Questions in our FAQ blocks as separate pieces to the graph.
|
85 |
*
|
86 |
+
* @codeCoverageIgnore
|
87 |
+
* @deprecated 14.0
|
88 |
+
*
|
89 |
* @param array $graph Schema data for the current page.
|
90 |
* @param WP_Block_Parser_Block $block The block data array.
|
91 |
* @param WPSEO_Schema_Context $context A value object with context variables.
|
93 |
* @return array $data Our Schema graph.
|
94 |
*/
|
95 |
public function render_schema_questions( $graph, $block, $context ) {
|
96 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
|
|
97 |
|
98 |
+
return [];
|
99 |
}
|
100 |
|
101 |
/**
|
102 |
* Determines whether or not a piece should be added to the graph.
|
103 |
*
|
104 |
+
* @codeCoverageIgnore
|
105 |
+
* @deprecated 14.0
|
106 |
+
*
|
107 |
* @return bool
|
108 |
*/
|
109 |
public function is_needed() {
|
110 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\FAQ::is_needed' );
|
111 |
+
|
112 |
+
return parent::is_needed();
|
113 |
}
|
114 |
}
|
deprecated/frontend/schema/class-schema-howto.php
ADDED
@@ -0,0 +1,122 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Frontend\Schema
|
6 |
+
*/
|
7 |
+
|
8 |
+
use Yoast\WP\SEO\Generators\Schema\HowTo;
|
9 |
+
use Yoast\WP\SEO\Memoizers\Meta_Tags_Context_Memoizer;
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Returns schema FAQ data.
|
13 |
+
*
|
14 |
+
* @deprecated 14.0
|
15 |
+
*
|
16 |
+
* @since 11.5
|
17 |
+
*/
|
18 |
+
class WPSEO_Schema_HowTo extends HowTo implements WPSEO_Graph_Piece {
|
19 |
+
|
20 |
+
/**
|
21 |
+
* The HowTo blocks count on the current page.
|
22 |
+
*
|
23 |
+
* @var int
|
24 |
+
*/
|
25 |
+
private $counter = 0;
|
26 |
+
|
27 |
+
/**
|
28 |
+
* WPSEO_Schema_FAQ constructor.
|
29 |
+
*
|
30 |
+
* @param null $context The context. No longer used but present for BC.
|
31 |
+
*
|
32 |
+
* @codeCoverageIgnore
|
33 |
+
* @deprecated 14.0
|
34 |
+
*/
|
35 |
+
public function __construct( $context = null ) {
|
36 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\HowTo' );
|
37 |
+
|
38 |
+
$memoizer = YoastSEO()->classes->get( Meta_Tags_Context_Memoizer::class );
|
39 |
+
$this->context = $memoizer->for_current_page();
|
40 |
+
$this->helpers = YoastSEO()->helpers;
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Renders a list of questions, referencing them by ID.
|
45 |
+
*
|
46 |
+
* @codeCoverageIgnore
|
47 |
+
* @deprecated 14.0
|
48 |
+
*
|
49 |
+
* @return array $data Our Schema graph.
|
50 |
+
*/
|
51 |
+
public function generate() {
|
52 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\HowTo::generate' );
|
53 |
+
|
54 |
+
return parent::generate();
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Renders the How-To block into our graph.
|
59 |
+
*
|
60 |
+
* @codeCoverageIgnore
|
61 |
+
* @deprecated 14.0
|
62 |
+
*
|
63 |
+
* @param array $graph Our Schema data.
|
64 |
+
* @param array $block The How-To block content.
|
65 |
+
*
|
66 |
+
* @return mixed
|
67 |
+
*/
|
68 |
+
public function render( $graph, $block ) {
|
69 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\HowTo::add_how_to' );
|
70 |
+
|
71 |
+
$this->counter++;
|
72 |
+
$this->add_how_to( $graph, $block, $this->counter );
|
73 |
+
|
74 |
+
return $graph;
|
75 |
+
}
|
76 |
+
|
77 |
+
/**
|
78 |
+
* Determines whether or not a piece should be added to the graph.
|
79 |
+
*
|
80 |
+
* @codeCoverageIgnore
|
81 |
+
* @deprecated 14.0
|
82 |
+
*
|
83 |
+
* @return bool
|
84 |
+
*/
|
85 |
+
public function is_needed() {
|
86 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\HowTo::is_needed' );
|
87 |
+
|
88 |
+
return parent::is_needed();
|
89 |
+
}
|
90 |
+
|
91 |
+
/**
|
92 |
+
* Determines whether we're part of an article or a webpage.
|
93 |
+
*
|
94 |
+
* @codeCoverageIgnore
|
95 |
+
* @deprecated 14.0
|
96 |
+
*
|
97 |
+
* @return string A reference URL.
|
98 |
+
*/
|
99 |
+
protected function get_main_schema_id() {
|
100 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
101 |
+
|
102 |
+
return $this->context->main_schema_id;
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* Generates the image schema from the attachment $url.
|
107 |
+
*
|
108 |
+
* @codeCoverageIgnore
|
109 |
+
* @deprecated 14.0
|
110 |
+
*
|
111 |
+
* @param string $url Attachment url.
|
112 |
+
*
|
113 |
+
* @return array Image schema.
|
114 |
+
*
|
115 |
+
* @codeCoverageIgnore
|
116 |
+
*/
|
117 |
+
protected function get_image_schema( $url ) {
|
118 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\HowTo::get_image_schema' );
|
119 |
+
|
120 |
+
return parent::get_image_schema( $url );
|
121 |
+
}
|
122 |
+
}
|
{frontend → deprecated/frontend}/schema/class-schema-ids.php
RENAMED
@@ -8,6 +8,8 @@
|
|
8 |
/**
|
9 |
* Constants used for @id variables.
|
10 |
*
|
|
|
|
|
11 |
* @since 10.2
|
12 |
*/
|
13 |
class WPSEO_Schema_IDs {
|
8 |
/**
|
9 |
* Constants used for @id variables.
|
10 |
*
|
11 |
+
* @deprecated 14.0
|
12 |
+
*
|
13 |
* @since 10.2
|
14 |
*/
|
15 |
class WPSEO_Schema_IDs {
|
deprecated/frontend/schema/class-schema-image.php
ADDED
@@ -0,0 +1,88 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Frontend\Schema
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Returns schema image data.
|
10 |
+
*
|
11 |
+
* @since 11.1
|
12 |
+
*
|
13 |
+
* @deprecated 14.0
|
14 |
+
*
|
15 |
+
* @property string $schema_id The `@id` to use for the returned image.
|
16 |
+
* @property array $data The ImageObject Schema array.
|
17 |
+
* @property int $attachment_id The ID of the attachment used to generate the object.
|
18 |
+
*/
|
19 |
+
class WPSEO_Schema_Image {
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Value to use as the image id.
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
private $schema_id;
|
27 |
+
|
28 |
+
/**
|
29 |
+
* WPSEO_Schema_Image constructor.
|
30 |
+
*
|
31 |
+
* @codeCoverageIgnore
|
32 |
+
* @deprecated 14.0
|
33 |
+
*
|
34 |
+
* @param string $schema_id The string to use in an image's `@id`.
|
35 |
+
*/
|
36 |
+
public function __construct( $schema_id ) {
|
37 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'YoastSEO()->helpers->schema->image' );
|
38 |
+
$this->schema_id = $schema_id;
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Find an image based on its URL and generate a Schema object for it.
|
43 |
+
*
|
44 |
+
* @codeCoverageIgnore
|
45 |
+
* @deprecated 14.0
|
46 |
+
*
|
47 |
+
* @param string $url The image URL to base our object on.
|
48 |
+
* @param string $caption An optional caption.
|
49 |
+
*
|
50 |
+
* @return array Schema ImageObject array.
|
51 |
+
*/
|
52 |
+
public function generate_from_url( $url, $caption = '' ) {
|
53 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'YoastSEO()->helpers->schema->image->generate_from_url' );
|
54 |
+
return YoastSEO()->helpers->schema->image->generate_from_url( $this->schema_id, $url, $caption );
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Retrieve data about an image from the database and use it to generate a Schema object.
|
59 |
+
*
|
60 |
+
* @codeCoverageIgnore
|
61 |
+
* @deprecated 14.0
|
62 |
+
*
|
63 |
+
* @param int $attachment_id The attachment to retrieve data from.
|
64 |
+
* @param string $caption The caption string, if there is one.
|
65 |
+
*
|
66 |
+
* @return array Schema ImageObject array.
|
67 |
+
*/
|
68 |
+
public function generate_from_attachment_id( $attachment_id, $caption = '' ) {
|
69 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'YoastSEO()->helpers->schema->image->generate_from_attachment_id' );
|
70 |
+
return YoastSEO()->helpers->schema->image->generate_from_attachment_id( $this->schema_id, $attachment_id, $caption );
|
71 |
+
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
* If we can't find $url in our database, we output a simple ImageObject.
|
75 |
+
*
|
76 |
+
* @codeCoverageIgnore
|
77 |
+
* @deprecated 14.0
|
78 |
+
*
|
79 |
+
* @param string $url The image URL.
|
80 |
+
* @param string $caption A caption, if set.
|
81 |
+
*
|
82 |
+
* @return array $data Schema ImageObject array.
|
83 |
+
*/
|
84 |
+
public function simple_image_object( $url, $caption = '' ) {
|
85 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'YoastSEO()->helpers->schema->image->simple_image_object' );
|
86 |
+
return YoastSEO()->helpers->schema->image->simple_image_object( $this->schema_id, $url, $caption );
|
87 |
+
}
|
88 |
+
}
|
deprecated/frontend/schema/class-schema-main-image.php
ADDED
@@ -0,0 +1,115 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Frontend\Schema
|
6 |
+
*/
|
7 |
+
|
8 |
+
use Yoast\WP\SEO\Generators\Schema\Main_Image;
|
9 |
+
use Yoast\WP\SEO\Memoizers\Meta_Tags_Context_Memoizer;
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Returns ImageObject schema data.
|
13 |
+
*
|
14 |
+
* @codeCoverageIgnore
|
15 |
+
* @deprecated 14.0
|
16 |
+
*
|
17 |
+
* @since 11.5
|
18 |
+
*/
|
19 |
+
class WPSEO_Schema_MainImage extends Main_Image implements WPSEO_Graph_Piece {
|
20 |
+
|
21 |
+
/**
|
22 |
+
* WPSEO_Schema_WebPage constructor.
|
23 |
+
*
|
24 |
+
* @param null $context The context. No longer used but present for BC.
|
25 |
+
*
|
26 |
+
* @codeCoverageIgnore
|
27 |
+
* @deprecated 14.0
|
28 |
+
*/
|
29 |
+
public function __construct( $context = null ) {
|
30 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Main_Image' );
|
31 |
+
|
32 |
+
$memoizer = YoastSEO()->classes->get( Meta_Tags_Context_Memoizer::class );
|
33 |
+
$this->context = $memoizer->for_current_page();
|
34 |
+
$this->helpers = YoastSEO()->helpers;
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Determines whether or not a piece should be added to the graph.
|
39 |
+
*
|
40 |
+
* @codeCoverageIgnore
|
41 |
+
* @deprecated 14.0
|
42 |
+
*
|
43 |
+
* @return bool
|
44 |
+
*/
|
45 |
+
public function is_needed() {
|
46 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Main_Image::is_needed' );
|
47 |
+
|
48 |
+
return parent::is_needed();
|
49 |
+
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Adds a main image for the current URL to the schema if there is one.
|
53 |
+
*
|
54 |
+
* This can be either the featured image, or fall back to the first image in the content of the page.
|
55 |
+
*
|
56 |
+
* @codeCoverageIgnore
|
57 |
+
* @deprecated 14.0
|
58 |
+
*
|
59 |
+
* @return false|array $data Image Schema.
|
60 |
+
*/
|
61 |
+
public function generate() {
|
62 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Main_Image::generate' );
|
63 |
+
|
64 |
+
return parent::generate();
|
65 |
+
}
|
66 |
+
|
67 |
+
/**
|
68 |
+
* Gets the post's first usable content image. Null if none is available.
|
69 |
+
*
|
70 |
+
* @codeCoverageIgnore
|
71 |
+
* @deprecated 14.0
|
72 |
+
*
|
73 |
+
* @param int $post_id The post id.
|
74 |
+
*
|
75 |
+
* @return string|null The image URL or null if there is no image.
|
76 |
+
*/
|
77 |
+
protected function get_first_usable_content_image_for_post( $post_id ) {
|
78 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
79 |
+
|
80 |
+
return WPSEO_Image_Utils::get_first_usable_content_image_for_post( $post_id );
|
81 |
+
}
|
82 |
+
|
83 |
+
/**
|
84 |
+
* Generates image schema from the attachment id.
|
85 |
+
*
|
86 |
+
* @codeCoverageIgnore
|
87 |
+
* @deprecated 14.0
|
88 |
+
*
|
89 |
+
* @param string $image_id The image schema id.
|
90 |
+
*
|
91 |
+
* @return array Schema ImageObject array.
|
92 |
+
*/
|
93 |
+
protected function generate_image_schema_from_attachment_id( $image_id ) {
|
94 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'YoastSEO()->helpers->schema->image->generate_from_attachment_id' );
|
95 |
+
|
96 |
+
return $this->helpers->schema->image->generate_from_attachment_id( $image_id, \get_post_thumbnail_id() );
|
97 |
+
}
|
98 |
+
|
99 |
+
/**
|
100 |
+
* Generates image schema from the url.
|
101 |
+
*
|
102 |
+
* @codeCoverageIgnore
|
103 |
+
* @deprecated 14.0
|
104 |
+
*
|
105 |
+
* @param string $image_id The image schema id.
|
106 |
+
* @param string $image_url The image URL.
|
107 |
+
*
|
108 |
+
* @return array Schema ImageObject array.
|
109 |
+
*/
|
110 |
+
protected function generate_image_schema_from_url( $image_id, $image_url ) {
|
111 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'YoastSEO()->helpers->schema->image->generate_from_url' );
|
112 |
+
|
113 |
+
return $this->helpers->schema->image->generate_from_url( $image_id, $image_url );
|
114 |
+
}
|
115 |
+
}
|
deprecated/frontend/schema/class-schema-organization.php
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Frontend\Schema
|
6 |
+
*/
|
7 |
+
|
8 |
+
use Yoast\WP\SEO\Generators\Schema\Organization;
|
9 |
+
use Yoast\WP\SEO\Memoizers\Meta_Tags_Context_Memoizer;
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Returns schema Organization data.
|
13 |
+
*
|
14 |
+
* @deprecated 14.0
|
15 |
+
*
|
16 |
+
* @since 10.2
|
17 |
+
*/
|
18 |
+
class WPSEO_Schema_Organization extends Organization implements WPSEO_Graph_Piece {
|
19 |
+
|
20 |
+
/**
|
21 |
+
* WPSEO_Schema_Organization constructor.
|
22 |
+
*
|
23 |
+
* @param null $context The context. No longer used but present for BC.
|
24 |
+
*
|
25 |
+
* @codeCoverageIgnore
|
26 |
+
* @deprecated 14.0
|
27 |
+
*/
|
28 |
+
public function __construct( $context = null ) {
|
29 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Organization' );
|
30 |
+
|
31 |
+
$memoizer = YoastSEO()->classes->get( Meta_Tags_Context_Memoizer::class );
|
32 |
+
$this->context = $memoizer->for_current_page();
|
33 |
+
$this->helpers = YoastSEO()->helpers;
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Determines whether an Organization graph piece should be added.
|
38 |
+
*
|
39 |
+
* @codeCoverageIgnore
|
40 |
+
* @deprecated 14.0
|
41 |
+
*
|
42 |
+
* @return bool
|
43 |
+
*/
|
44 |
+
public function is_needed() {
|
45 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Organization::is_needed' );
|
46 |
+
|
47 |
+
return parent::is_needed();
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Returns the Organization Schema data.
|
52 |
+
*
|
53 |
+
* @codeCoverageIgnore
|
54 |
+
* @deprecated 14.0
|
55 |
+
*
|
56 |
+
* @return array $data The Organization schema.
|
57 |
+
*/
|
58 |
+
public function generate() {
|
59 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Organization::generate' );
|
60 |
+
|
61 |
+
return parent::generate();
|
62 |
+
}
|
63 |
+
}
|
deprecated/frontend/schema/class-schema-person.php
ADDED
@@ -0,0 +1,151 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Frontend\Schema
|
6 |
+
*/
|
7 |
+
|
8 |
+
use Yoast\WP\SEO\Config\Schema_IDs;
|
9 |
+
use Yoast\WP\SEO\Generators\Schema\Person;
|
10 |
+
use Yoast\WP\SEO\Memoizers\Meta_Tags_Context_Memoizer;
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Returns schema Person data.
|
14 |
+
*
|
15 |
+
* @deprecated 14.0
|
16 |
+
*
|
17 |
+
* @since 10.2
|
18 |
+
*/
|
19 |
+
class WPSEO_Schema_Person extends Person implements WPSEO_Graph_Piece {
|
20 |
+
|
21 |
+
/**
|
22 |
+
* The hash used for images.
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $image_hash = Schema_IDs::PERSON_LOGO_HASH;
|
27 |
+
|
28 |
+
/**
|
29 |
+
* WPSEO_Schema_Person constructor.
|
30 |
+
*
|
31 |
+
* @param null $context The context. No longer used but present for BC.
|
32 |
+
*
|
33 |
+
* @codeCoverageIgnore
|
34 |
+
* @deprecated 14.0
|
35 |
+
*/
|
36 |
+
public function __construct( $context = null ) {
|
37 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Person' );
|
38 |
+
|
39 |
+
$memoizer = YoastSEO()->classes->get( Meta_Tags_Context_Memoizer::class );
|
40 |
+
$this->context = $memoizer->for_current_page();
|
41 |
+
$this->helpers = YoastSEO()->helpers;
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Determine whether we should return Person schema.
|
46 |
+
*
|
47 |
+
* @codeCoverageIgnore
|
48 |
+
* @deprecated 14.0
|
49 |
+
*
|
50 |
+
* @return bool
|
51 |
+
*/
|
52 |
+
public function is_needed() {
|
53 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Person::is_needed' );
|
54 |
+
|
55 |
+
return parent::is_needed();
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Returns Person Schema data.
|
60 |
+
*
|
61 |
+
* @codeCoverageIgnore
|
62 |
+
* @deprecated 14.0
|
63 |
+
*
|
64 |
+
* @return bool|array Person data on success, false on failure.
|
65 |
+
*/
|
66 |
+
public function generate() {
|
67 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Person::generate' );
|
68 |
+
|
69 |
+
return parent::generate();
|
70 |
+
}
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Determines a User ID for the Person data.
|
74 |
+
*
|
75 |
+
* @codeCoverageIgnore
|
76 |
+
* @deprecated 14.0
|
77 |
+
*
|
78 |
+
* @return bool|int User ID or false upon return.
|
79 |
+
*/
|
80 |
+
protected function determine_user_id() {
|
81 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Person::determine_user_id' );
|
82 |
+
|
83 |
+
return parent::determine_user_id();
|
84 |
+
}
|
85 |
+
|
86 |
+
/**
|
87 |
+
* Retrieve a list of social profile URLs for Person.
|
88 |
+
*
|
89 |
+
* @codeCoverageIgnore
|
90 |
+
* @deprecated 14.0
|
91 |
+
*
|
92 |
+
* @param int $user_id User ID.
|
93 |
+
*
|
94 |
+
* @return string[] $output A list of social profiles.
|
95 |
+
*/
|
96 |
+
protected function get_social_profiles( $user_id ) {
|
97 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Person::get_social_profiles' );
|
98 |
+
|
99 |
+
return parent::get_social_profiles( $user_id );
|
100 |
+
}
|
101 |
+
|
102 |
+
/**
|
103 |
+
* Builds our array of Schema Person data for a given user ID.
|
104 |
+
*
|
105 |
+
* @codeCoverageIgnore
|
106 |
+
* @deprecated 14.0
|
107 |
+
*
|
108 |
+
* @param int $user_id The user ID to use.
|
109 |
+
*
|
110 |
+
* @return array An array of Schema Person data.
|
111 |
+
*/
|
112 |
+
protected function build_person_data( $user_id ) {
|
113 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Person::build_person_data' );
|
114 |
+
|
115 |
+
return parent::build_person_data( $user_id );
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* Returns an ImageObject for the persons avatar.
|
120 |
+
*
|
121 |
+
* @codeCoverageIgnore
|
122 |
+
* @deprecated 14.0
|
123 |
+
*
|
124 |
+
* @param array $data The Person schema.
|
125 |
+
* @param \WP_User $user_data User data.
|
126 |
+
*
|
127 |
+
* @return array $data The Person schema.
|
128 |
+
*/
|
129 |
+
protected function add_image( $data, $user_data ) {
|
130 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Person::add_image' );
|
131 |
+
|
132 |
+
return parent::add_image( $data, $user_data );
|
133 |
+
}
|
134 |
+
|
135 |
+
/**
|
136 |
+
* Returns an author's social site URL.
|
137 |
+
*
|
138 |
+
* @codeCoverageIgnore
|
139 |
+
* @deprecated 14.0
|
140 |
+
*
|
141 |
+
* @param string $social_site The social site to retrieve the URL for.
|
142 |
+
* @param mixed $user_id The user ID to use function outside of the loop.
|
143 |
+
*
|
144 |
+
* @return string
|
145 |
+
*/
|
146 |
+
protected function url_social_site( $social_site, $user_id = false ) {
|
147 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Person::url_social_site' );
|
148 |
+
|
149 |
+
return parent::url_social_site( $social_site, $user_id );
|
150 |
+
}
|
151 |
+
}
|
{frontend → deprecated/frontend}/schema/class-schema-utils.php
RENAMED
@@ -8,6 +8,8 @@
|
|
8 |
/**
|
9 |
* Schema utility functions.
|
10 |
*
|
|
|
|
|
11 |
* @since 11.6
|
12 |
*/
|
13 |
class WPSEO_Schema_Utils {
|
@@ -15,32 +17,32 @@ class WPSEO_Schema_Utils {
|
|
15 |
/**
|
16 |
* Retrieves a user's Schema ID.
|
17 |
*
|
|
|
|
|
|
|
18 |
* @param int $user_id The ID of the User you need a Schema ID for.
|
19 |
* @param WPSEO_Schema_Context $context A value object with context variables.
|
20 |
*
|
21 |
* @return string The user's schema ID.
|
22 |
*/
|
23 |
public static function get_user_schema_id( $user_id, $context ) {
|
24 |
-
|
25 |
-
|
26 |
-
if ( is_object( $user ) && isset( $user->user_login ) ) {
|
27 |
-
return $context->site_url . WPSEO_Schema_IDs::PERSON_HASH . wp_hash( $user->user_login . $user_id );
|
28 |
-
}
|
29 |
-
return $context->site_url . WPSEO_Schema_IDs::PERSON_HASH;
|
30 |
}
|
31 |
|
32 |
/**
|
33 |
* Retrieves the post title with fallback to `No title`.
|
34 |
*
|
|
|
|
|
|
|
35 |
* @param int $post_id Optional. Post ID.
|
36 |
*
|
37 |
* @return string The post title with fallback to `No title`.
|
38 |
*/
|
39 |
public static function get_post_title_with_fallback( $post_id = 0 ) {
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
return $title;
|
44 |
}
|
45 |
|
46 |
/**
|
@@ -50,18 +52,15 @@ class WPSEO_Schema_Utils {
|
|
50 |
* language tag syntax is made of one or more subtags separated by a hyphen
|
51 |
* e.g. "en", "en-US", "zh-Hant-CN".
|
52 |
*
|
|
|
|
|
|
|
53 |
* @param array $data The Schema piece data.
|
54 |
*
|
55 |
-
* @return
|
56 |
*/
|
57 |
public static function add_piece_language( $data ) {
|
58 |
-
|
59 |
-
|
60 |
-
*
|
61 |
-
* @api string $type The Schema piece language.
|
62 |
-
*/
|
63 |
-
$data['inLanguage'] = apply_filters( 'wpseo_schema_piece_language', get_bloginfo( 'language' ), $data );
|
64 |
-
|
65 |
-
return $data;
|
66 |
}
|
67 |
}
|
8 |
/**
|
9 |
* Schema utility functions.
|
10 |
*
|
11 |
+
* @deprecated 14.0
|
12 |
+
*
|
13 |
* @since 11.6
|
14 |
*/
|
15 |
class WPSEO_Schema_Utils {
|
17 |
/**
|
18 |
* Retrieves a user's Schema ID.
|
19 |
*
|
20 |
+
* @codeCoverageIgnore
|
21 |
+
* @deprecated 14.0
|
22 |
+
*
|
23 |
* @param int $user_id The ID of the User you need a Schema ID for.
|
24 |
* @param WPSEO_Schema_Context $context A value object with context variables.
|
25 |
*
|
26 |
* @return string The user's schema ID.
|
27 |
*/
|
28 |
public static function get_user_schema_id( $user_id, $context ) {
|
29 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'YoastSEO()->helpers->schema->id->get_user_schema_id' );
|
30 |
+
return YoastSEO()->helpers->schema->id->get_user_schema_id( $user_id, $context );
|
|
|
|
|
|
|
|
|
31 |
}
|
32 |
|
33 |
/**
|
34 |
* Retrieves the post title with fallback to `No title`.
|
35 |
*
|
36 |
+
* @codeCoverageIgnore
|
37 |
+
* @deprecated 14.0
|
38 |
+
*
|
39 |
* @param int $post_id Optional. Post ID.
|
40 |
*
|
41 |
* @return string The post title with fallback to `No title`.
|
42 |
*/
|
43 |
public static function get_post_title_with_fallback( $post_id = 0 ) {
|
44 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', ' YoastSEO()->helpers->post->get_post_title_with_fallback' );
|
45 |
+
return YoastSEO()->helpers->post->get_post_title_with_fallback( $post_id );
|
|
|
|
|
46 |
}
|
47 |
|
48 |
/**
|
52 |
* language tag syntax is made of one or more subtags separated by a hyphen
|
53 |
* e.g. "en", "en-US", "zh-Hant-CN".
|
54 |
*
|
55 |
+
* @codeCoverageIgnore
|
56 |
+
* @deprecated 14.0
|
57 |
+
*
|
58 |
* @param array $data The Schema piece data.
|
59 |
*
|
60 |
+
* @return array The Schema piece data with added language property.
|
61 |
*/
|
62 |
public static function add_piece_language( $data ) {
|
63 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'YoastSEO()->helpers->schema->language->add_piece_language' );
|
64 |
+
return YoastSEO()->helpers->schema->language->add_piece_language( $data );
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
}
|
66 |
}
|
deprecated/frontend/schema/class-schema-webpage.php
ADDED
@@ -0,0 +1,102 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Frontend\Schema
|
6 |
+
*/
|
7 |
+
|
8 |
+
use Yoast\WP\SEO\Generators\Schema\WebPage;
|
9 |
+
use Yoast\WP\SEO\Memoizers\Meta_Tags_Context_Memoizer;
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Returns schema WebPage data.
|
13 |
+
*
|
14 |
+
* @deprecated 14.0
|
15 |
+
*
|
16 |
+
* @since 10.2
|
17 |
+
*/
|
18 |
+
class WPSEO_Schema_WebPage extends WebPage implements WPSEO_Graph_Piece {
|
19 |
+
|
20 |
+
/**
|
21 |
+
* The date helper.
|
22 |
+
*
|
23 |
+
* @var WPSEO_Date_Helper
|
24 |
+
*/
|
25 |
+
protected $date;
|
26 |
+
|
27 |
+
/**
|
28 |
+
* WPSEO_Schema_WebPage constructor.
|
29 |
+
*
|
30 |
+
* @param null $context The context. No longer used but present for BC.
|
31 |
+
*
|
32 |
+
* @codeCoverageIgnore
|
33 |
+
* @deprecated 14.0
|
34 |
+
*/
|
35 |
+
public function __construct( $context = null ) {
|
36 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\WebPage' );
|
37 |
+
|
38 |
+
$memoizer = YoastSEO()->classes->get( Meta_Tags_Context_Memoizer::class );
|
39 |
+
$this->context = $memoizer->for_current_page();
|
40 |
+
$this->helpers = YoastSEO()->helpers;
|
41 |
+
$this->date = new WPSEO_Date_Helper();
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Determines whether or not a piece should be added to the graph.
|
46 |
+
*
|
47 |
+
* @codeCoverageIgnore
|
48 |
+
* @deprecated 14.0
|
49 |
+
*
|
50 |
+
* @return bool
|
51 |
+
*/
|
52 |
+
public function is_needed() {
|
53 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\WebPage::is_needed' );
|
54 |
+
|
55 |
+
return parent::is_needed();
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Returns WebPage schema data.
|
60 |
+
*
|
61 |
+
* @codeCoverageIgnore
|
62 |
+
* @deprecated 14.0
|
63 |
+
*
|
64 |
+
* @return array WebPage schema data.
|
65 |
+
*/
|
66 |
+
public function generate() {
|
67 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\WebPage::generate' );
|
68 |
+
|
69 |
+
return parent::generate();
|
70 |
+
}
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Adds an author property to the $data if the WebPage is not represented.
|
74 |
+
*
|
75 |
+
* @codeCoverageIgnore
|
76 |
+
* @deprecated 14.0
|
77 |
+
*
|
78 |
+
* @param array $data The WebPage schema.
|
79 |
+
* @param WP_Post $post The post the context is representing.
|
80 |
+
*
|
81 |
+
* @return array The WebPage schema.
|
82 |
+
*/
|
83 |
+
public function add_author( $data, $post ) {
|
84 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\WebPage::add_author' );
|
85 |
+
|
86 |
+
return parent::add_author( $data, $post );
|
87 |
+
}
|
88 |
+
|
89 |
+
/**
|
90 |
+
* If we have an image, make it the primary image of the page.
|
91 |
+
*
|
92 |
+
* @codeCoverageIgnore
|
93 |
+
* @deprecated 14.0
|
94 |
+
*
|
95 |
+
* @param array $data WebPage schema data.
|
96 |
+
*/
|
97 |
+
public function add_image( &$data ) {
|
98 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\WebPage::add_image' );
|
99 |
+
|
100 |
+
parent::add_image( $data );
|
101 |
+
}
|
102 |
+
}
|
deprecated/frontend/schema/class-schema-website.php
ADDED
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Frontend\Schema
|
6 |
+
*/
|
7 |
+
|
8 |
+
use Yoast\WP\SEO\Generators\Schema\Website;
|
9 |
+
use Yoast\WP\SEO\Memoizers\Meta_Tags_Context_Memoizer;
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Returns schema Website data.
|
13 |
+
*
|
14 |
+
* @deprecated 14.0
|
15 |
+
*
|
16 |
+
* @since 10.2
|
17 |
+
*/
|
18 |
+
class WPSEO_Schema_Website extends Website implements WPSEO_Graph_Piece {
|
19 |
+
|
20 |
+
/**
|
21 |
+
* WPSEO_Schema_Website constructor.
|
22 |
+
*
|
23 |
+
* @param null $context The context. No longer used but present for BC.
|
24 |
+
*
|
25 |
+
* @codeCoverageIgnore
|
26 |
+
* @deprecated 14.0
|
27 |
+
*/
|
28 |
+
public function __construct( $context = null ) {
|
29 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Website' );
|
30 |
+
|
31 |
+
$memoizer = YoastSEO()->classes->get( Meta_Tags_Context_Memoizer::class );
|
32 |
+
$this->context = $memoizer->for_current_page();
|
33 |
+
$this->helpers = YoastSEO()->helpers;
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Determines whether or not a piece should be added to the graph.
|
38 |
+
*
|
39 |
+
* @codeCoverageIgnore
|
40 |
+
* @deprecated 14.0
|
41 |
+
*
|
42 |
+
* @return bool
|
43 |
+
*/
|
44 |
+
public function is_needed() {
|
45 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Website::is_needed' );
|
46 |
+
|
47 |
+
return parent::is_needed();
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Outputs code to allow recognition of the internal search engine.
|
52 |
+
*
|
53 |
+
* @codeCoverageIgnore
|
54 |
+
* @deprecated 14.0
|
55 |
+
*
|
56 |
+
* @since 1.5.7
|
57 |
+
*
|
58 |
+
* @link https://developers.google.com/structured-data/site-name
|
59 |
+
*
|
60 |
+
* @return array Website data blob.
|
61 |
+
*/
|
62 |
+
public function generate() {
|
63 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0', 'Yoast\WP\SEO\Generators\Schema\Website::generate' );
|
64 |
+
|
65 |
+
return parent::generate();
|
66 |
+
}
|
67 |
+
}
|
deprecated/frontend/schema/class-schema.php
ADDED
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Frontend\Schema
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Class WPSEO_Schema
|
10 |
+
*
|
11 |
+
* Outputs schema code specific for Google's JSON LD stuff.
|
12 |
+
*
|
13 |
+
* @deprecated 14.0
|
14 |
+
*
|
15 |
+
* @since 1.8
|
16 |
+
*/
|
17 |
+
class WPSEO_Schema implements WPSEO_WordPress_Integration {
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Registers the hooks.
|
21 |
+
*
|
22 |
+
* @codeCoverageIgnore
|
23 |
+
* @deprecated 14.0
|
24 |
+
*/
|
25 |
+
public function register_hooks() {
|
26 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
27 |
+
}
|
28 |
+
|
29 |
+
/**
|
30 |
+
* JSON LD output function that the functions for specific code can hook into.
|
31 |
+
*
|
32 |
+
* @codeCoverageIgnore
|
33 |
+
* @deprecated 14.0
|
34 |
+
*
|
35 |
+
* @since 1.8
|
36 |
+
*/
|
37 |
+
public function json_ld() {
|
38 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Outputs the JSON LD code in a valid JSON+LD wrapper.
|
43 |
+
*
|
44 |
+
* @codeCoverageIgnore
|
45 |
+
* @deprecated 14.0
|
46 |
+
*
|
47 |
+
* @since 10.2
|
48 |
+
*
|
49 |
+
* @return void
|
50 |
+
*/
|
51 |
+
public function generate() {
|
52 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
53 |
+
}
|
54 |
+
}
|
{frontend → deprecated/frontend}/schema/interface-wpseo-graph-piece.php
RENAMED
@@ -9,6 +9,8 @@ if ( ! interface_exists( 'WPSEO_Graph_Piece' ) ) {
|
|
9 |
/**
|
10 |
* An interface for registering Schema Graph Pieces.
|
11 |
*
|
|
|
|
|
12 |
* @since 10.2
|
13 |
*/
|
14 |
interface WPSEO_Graph_Piece {
|
9 |
/**
|
10 |
* An interface for registering Schema Graph Pieces.
|
11 |
*
|
12 |
+
* @deprecated 14.0
|
13 |
+
*
|
14 |
* @since 10.2
|
15 |
*/
|
16 |
interface WPSEO_Graph_Piece {
|
frontend/class-breadcrumbs.php
DELETED
@@ -1,1050 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Frontend
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* This class handles the Breadcrumbs generation and display.
|
10 |
-
*/
|
11 |
-
class WPSEO_Breadcrumbs {
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Instance of this class.
|
15 |
-
*
|
16 |
-
* @var object
|
17 |
-
*/
|
18 |
-
public static $instance;
|
19 |
-
|
20 |
-
/**
|
21 |
-
* Last used 'before' string.
|
22 |
-
*
|
23 |
-
* @var string
|
24 |
-
*/
|
25 |
-
public static $before = '';
|
26 |
-
|
27 |
-
/**
|
28 |
-
* Last used 'after' string.
|
29 |
-
*
|
30 |
-
* @var string
|
31 |
-
*/
|
32 |
-
public static $after = '';
|
33 |
-
|
34 |
-
/**
|
35 |
-
* The date helper.
|
36 |
-
*
|
37 |
-
* @var WPSEO_Date_Helper
|
38 |
-
*/
|
39 |
-
protected $date;
|
40 |
-
|
41 |
-
/**
|
42 |
-
* Blog's show on front setting, 'page' or 'posts'.
|
43 |
-
*
|
44 |
-
* @var string
|
45 |
-
*/
|
46 |
-
private $show_on_front;
|
47 |
-
|
48 |
-
/**
|
49 |
-
* Blog's page for posts setting, page id or false.
|
50 |
-
*
|
51 |
-
* @var mixed
|
52 |
-
*/
|
53 |
-
private $page_for_posts;
|
54 |
-
|
55 |
-
/**
|
56 |
-
* Current post object.
|
57 |
-
*
|
58 |
-
* @var mixed
|
59 |
-
*/
|
60 |
-
private $post;
|
61 |
-
|
62 |
-
/**
|
63 |
-
* HTML wrapper element for a single breadcrumb element.
|
64 |
-
*
|
65 |
-
* @var string
|
66 |
-
*/
|
67 |
-
private $element = 'span';
|
68 |
-
|
69 |
-
/**
|
70 |
-
* Yoast SEO breadcrumb separator.
|
71 |
-
*
|
72 |
-
* @var string
|
73 |
-
*/
|
74 |
-
private $separator = '';
|
75 |
-
|
76 |
-
/**
|
77 |
-
* HTML wrapper element for the Yoast SEO breadcrumbs output.
|
78 |
-
*
|
79 |
-
* @var string
|
80 |
-
*/
|
81 |
-
private $wrapper = 'span';
|
82 |
-
|
83 |
-
/**
|
84 |
-
* Array of crumbs.
|
85 |
-
*
|
86 |
-
* Each element of the crumbs array can either have one of these keys:
|
87 |
-
* "id" for post types;
|
88 |
-
* "ptarchive" for a post type archive;
|
89 |
-
* "term" for a taxonomy term.
|
90 |
-
* OR it consists of a predefined set of 'text', 'url' and 'allow_html'.
|
91 |
-
*
|
92 |
-
* @var array
|
93 |
-
*/
|
94 |
-
private $crumbs = [];
|
95 |
-
|
96 |
-
/**
|
97 |
-
* Count of the elements in the $crumbs property.
|
98 |
-
*
|
99 |
-
* @var int
|
100 |
-
*/
|
101 |
-
private $crumb_count = 0;
|
102 |
-
|
103 |
-
/**
|
104 |
-
* Array of individual (linked) html strings created from crumbs.
|
105 |
-
*
|
106 |
-
* @var array
|
107 |
-
*/
|
108 |
-
private $links = [];
|
109 |
-
|
110 |
-
/**
|
111 |
-
* Breadcrumb html string.
|
112 |
-
*
|
113 |
-
* @var string
|
114 |
-
*/
|
115 |
-
private $output;
|
116 |
-
|
117 |
-
/**
|
118 |
-
* Holds the WooCommerce shop page instance.
|
119 |
-
*
|
120 |
-
* @var WPSEO_WooCommerce_Shop_Page
|
121 |
-
*/
|
122 |
-
private $woocommerce_shop_page;
|
123 |
-
|
124 |
-
/**
|
125 |
-
* Create the breadcrumb.
|
126 |
-
*/
|
127 |
-
protected function __construct() {
|
128 |
-
$this->post = ( isset( $GLOBALS['post'] ) ? $GLOBALS['post'] : null );
|
129 |
-
$this->show_on_front = get_option( 'show_on_front' );
|
130 |
-
$this->page_for_posts = get_option( 'page_for_posts' );
|
131 |
-
$this->woocommerce_shop_page = new WPSEO_WooCommerce_Shop_Page();
|
132 |
-
$this->date = new WPSEO_Date_Helper();
|
133 |
-
|
134 |
-
$this->filter_element();
|
135 |
-
$this->filter_separator();
|
136 |
-
$this->filter_wrapper();
|
137 |
-
|
138 |
-
$this->set_crumbs();
|
139 |
-
$this->prepare_links();
|
140 |
-
$this->links_to_string();
|
141 |
-
$this->wrap_breadcrumb();
|
142 |
-
}
|
143 |
-
|
144 |
-
/**
|
145 |
-
* Get breadcrumb string using the singleton instance of this class.
|
146 |
-
*
|
147 |
-
* @param string $before Optional string to prepend.
|
148 |
-
* @param string $after Optional string to append.
|
149 |
-
* @param bool $display Echo or return flag.
|
150 |
-
*
|
151 |
-
* @return string Returns the breadcrumbs as a string.
|
152 |
-
*/
|
153 |
-
public static function breadcrumb( $before = '', $after = '', $display = true ) {
|
154 |
-
// Remember the last used before/after for use in case the object goes __toString().
|
155 |
-
self::$before = $before;
|
156 |
-
self::$after = $after;
|
157 |
-
|
158 |
-
$instance = self::get_instance();
|
159 |
-
$output = $before . $instance->output . $after;
|
160 |
-
|
161 |
-
if ( $display === true ) {
|
162 |
-
echo $output;
|
163 |
-
|
164 |
-
return '';
|
165 |
-
}
|
166 |
-
|
167 |
-
return $output;
|
168 |
-
}
|
169 |
-
|
170 |
-
/**
|
171 |
-
* Magic method to use in case the class would be send to string.
|
172 |
-
*
|
173 |
-
* @return string
|
174 |
-
*/
|
175 |
-
public function __toString() {
|
176 |
-
return self::$before . $this->output . self::$after;
|
177 |
-
}
|
178 |
-
|
179 |
-
/**
|
180 |
-
* Retrieves an instance of the class.
|
181 |
-
*
|
182 |
-
* @return WPSEO_Breadcrumbs The instance.
|
183 |
-
*/
|
184 |
-
public static function get_instance() {
|
185 |
-
if ( ! ( self::$instance instanceof self ) ) {
|
186 |
-
self::$instance = new self();
|
187 |
-
}
|
188 |
-
|
189 |
-
return self::$instance;
|
190 |
-
}
|
191 |
-
|
192 |
-
/**
|
193 |
-
* Returns the collected links for the breadcrumbs.
|
194 |
-
*
|
195 |
-
* @return array The collected links.
|
196 |
-
*/
|
197 |
-
public function get_links() {
|
198 |
-
return $this->links;
|
199 |
-
}
|
200 |
-
|
201 |
-
/**
|
202 |
-
* Returns the link url for a single id.
|
203 |
-
*
|
204 |
-
* When the target is private and the user isn't allowed to access it, just return an empty string.
|
205 |
-
*
|
206 |
-
* @param int $id The target id.
|
207 |
-
*
|
208 |
-
* @return string Empty string when post isn't accessible. An URL if accessible.
|
209 |
-
*/
|
210 |
-
protected function get_link_url_for_id( $id ) {
|
211 |
-
$post_status = get_post_status( $id );
|
212 |
-
$post_type = get_post_type_object( get_post_type( $id ) );
|
213 |
-
|
214 |
-
// Don't link if item is private and user does't have capability to read it.
|
215 |
-
if ( $post_status === 'private' && $post_type !== null && ! current_user_can( $post_type->cap->read_private_posts ) ) {
|
216 |
-
return '';
|
217 |
-
}
|
218 |
-
|
219 |
-
$url = get_permalink( $id );
|
220 |
-
if ( $url === false ) {
|
221 |
-
return '';
|
222 |
-
}
|
223 |
-
|
224 |
-
return $url;
|
225 |
-
}
|
226 |
-
|
227 |
-
/**
|
228 |
-
* Filter: 'wpseo_breadcrumb_single_link_wrapper' - Allows developer to change or wrap each breadcrumb element.
|
229 |
-
*
|
230 |
-
* @api string $element
|
231 |
-
*/
|
232 |
-
private function filter_element() {
|
233 |
-
$this->element = esc_attr( apply_filters( 'wpseo_breadcrumb_single_link_wrapper', $this->element ) );
|
234 |
-
}
|
235 |
-
|
236 |
-
/**
|
237 |
-
* Filter: 'wpseo_breadcrumb_separator' - Allow (theme) developer to change the Yoast SEO breadcrumb separator.
|
238 |
-
*
|
239 |
-
* @api string $breadcrumbs_sep Breadcrumbs separator.
|
240 |
-
*/
|
241 |
-
private function filter_separator() {
|
242 |
-
$separator = apply_filters( 'wpseo_breadcrumb_separator', WPSEO_Options::get( 'breadcrumbs-sep' ) );
|
243 |
-
$this->separator = ' ' . $separator . ' ';
|
244 |
-
}
|
245 |
-
|
246 |
-
/**
|
247 |
-
* Filter: 'wpseo_breadcrumb_output_wrapper' - Allow changing the HTML wrapper element for the Yoast SEO breadcrumbs output.
|
248 |
-
*
|
249 |
-
* @api string $wrapper The wrapper element.
|
250 |
-
*/
|
251 |
-
private function filter_wrapper() {
|
252 |
-
$wrapper = apply_filters( 'wpseo_breadcrumb_output_wrapper', $this->wrapper );
|
253 |
-
$wrapper = tag_escape( $wrapper );
|
254 |
-
if ( is_string( $wrapper ) && '' !== $wrapper ) {
|
255 |
-
$this->wrapper = $wrapper;
|
256 |
-
}
|
257 |
-
}
|
258 |
-
|
259 |
-
/**
|
260 |
-
* Get a term's parents.
|
261 |
-
*
|
262 |
-
* @param object $term Term to get the parents for.
|
263 |
-
*
|
264 |
-
* @return array
|
265 |
-
*/
|
266 |
-
private function get_term_parents( $term ) {
|
267 |
-
$tax = $term->taxonomy;
|
268 |
-
$parents = [];
|
269 |
-
while ( $term->parent !== 0 ) {
|
270 |
-
$term = get_term( $term->parent, $tax );
|
271 |
-
$parents[] = $term;
|
272 |
-
}
|
273 |
-
|
274 |
-
return array_reverse( $parents );
|
275 |
-
}
|
276 |
-
|
277 |
-
/**
|
278 |
-
* Find the deepest term in an array of term objects.
|
279 |
-
*
|
280 |
-
* @param array $terms Terms set.
|
281 |
-
*
|
282 |
-
* @return object
|
283 |
-
*/
|
284 |
-
private function find_deepest_term( $terms ) {
|
285 |
-
/*
|
286 |
-
* Let's find the deepest term in this array, by looping through and then
|
287 |
-
* unsetting every term that is used as a parent by another one in the array.
|
288 |
-
*/
|
289 |
-
$terms_by_id = [];
|
290 |
-
foreach ( $terms as $term ) {
|
291 |
-
$terms_by_id[ $term->term_id ] = $term;
|
292 |
-
}
|
293 |
-
foreach ( $terms as $term ) {
|
294 |
-
unset( $terms_by_id[ $term->parent ] );
|
295 |
-
}
|
296 |
-
unset( $term );
|
297 |
-
|
298 |
-
/*
|
299 |
-
* As we could still have two subcategories, from different parent categories,
|
300 |
-
* let's pick the one with the lowest ordered ancestor.
|
301 |
-
*/
|
302 |
-
$parents_count = 0;
|
303 |
-
$term_order = 9999; // Because ASC.
|
304 |
-
reset( $terms_by_id );
|
305 |
-
$deepest_term = current( $terms_by_id );
|
306 |
-
foreach ( $terms_by_id as $term ) {
|
307 |
-
$parents = $this->get_term_parents( $term );
|
308 |
-
|
309 |
-
if ( count( $parents ) >= $parents_count ) {
|
310 |
-
|
311 |
-
$parents_count = count( $parents );
|
312 |
-
|
313 |
-
$parent_order = 9999; // Set default order.
|
314 |
-
foreach ( $parents as $parent ) {
|
315 |
-
if ( $parent->parent === 0 && isset( $parent->term_order ) ) {
|
316 |
-
$parent_order = $parent->term_order;
|
317 |
-
}
|
318 |
-
}
|
319 |
-
unset( $parent );
|
320 |
-
|
321 |
-
// Check if parent has lowest order.
|
322 |
-
if ( $parent_order < $term_order ) {
|
323 |
-
$term_order = $parent_order;
|
324 |
-
$deepest_term = $term;
|
325 |
-
}
|
326 |
-
}
|
327 |
-
}
|
328 |
-
|
329 |
-
return $deepest_term;
|
330 |
-
}
|
331 |
-
|
332 |
-
/**
|
333 |
-
* Retrieve the hierachical ancestors for the current 'post'.
|
334 |
-
*
|
335 |
-
* @return array
|
336 |
-
*/
|
337 |
-
private function get_post_ancestors() {
|
338 |
-
$ancestors = [];
|
339 |
-
|
340 |
-
if ( isset( $this->post->ancestors ) ) {
|
341 |
-
if ( is_array( $this->post->ancestors ) ) {
|
342 |
-
$ancestors = array_values( $this->post->ancestors );
|
343 |
-
}
|
344 |
-
else {
|
345 |
-
$ancestors = [ $this->post->ancestors ];
|
346 |
-
}
|
347 |
-
}
|
348 |
-
elseif ( isset( $this->post->post_parent ) ) {
|
349 |
-
$ancestors = [ $this->post->post_parent ];
|
350 |
-
}
|
351 |
-
|
352 |
-
/**
|
353 |
-
* Filter: Allow changing the ancestors for the Yoast SEO breadcrumbs output.
|
354 |
-
*
|
355 |
-
* @api array $ancestors Ancestors.
|
356 |
-
*/
|
357 |
-
$ancestors = apply_filters( 'wp_seo_get_bc_ancestors', $ancestors );
|
358 |
-
|
359 |
-
if ( ! is_array( $ancestors ) ) {
|
360 |
-
trigger_error( 'The return value for the "wp_seo_get_bc_ancestors" filter should be an array.', E_USER_WARNING );
|
361 |
-
$ancestors = (array) $ancestors;
|
362 |
-
}
|
363 |
-
|
364 |
-
// Reverse the order so it's oldest to newest.
|
365 |
-
$ancestors = array_reverse( $ancestors );
|
366 |
-
|
367 |
-
return $ancestors;
|
368 |
-
}
|
369 |
-
|
370 |
-
/**
|
371 |
-
* Determine the crumbs which should form the breadcrumb.
|
372 |
-
*/
|
373 |
-
private function set_crumbs() {
|
374 |
-
global $wp_query;
|
375 |
-
|
376 |
-
$this->maybe_add_home_crumb();
|
377 |
-
$this->maybe_add_blog_crumb();
|
378 |
-
|
379 |
-
// Ignore coding standards for empty if statement.
|
380 |
-
// @codingStandardsIgnoreStart
|
381 |
-
if ( $this->is_front_page() ) {
|
382 |
-
// Do nothing.
|
383 |
-
// @codingStandardsIgnoreEnd
|
384 |
-
}
|
385 |
-
elseif ( $this->show_on_front === 'page' && is_home() ) {
|
386 |
-
$this->add_blog_crumb();
|
387 |
-
}
|
388 |
-
elseif ( is_singular() ) {
|
389 |
-
$this->maybe_add_pt_archive_crumb_for_post();
|
390 |
-
|
391 |
-
if ( isset( $this->post->post_parent ) && 0 === $this->post->post_parent ) {
|
392 |
-
$this->maybe_add_taxonomy_crumbs_for_post();
|
393 |
-
}
|
394 |
-
|
395 |
-
if ( isset( $this->post->post_parent ) && $this->post->post_parent !== 0 ) {
|
396 |
-
$this->add_post_ancestor_crumbs();
|
397 |
-
}
|
398 |
-
|
399 |
-
if ( isset( $this->post->ID ) ) {
|
400 |
-
$this->add_single_post_crumb( $this->post->ID );
|
401 |
-
}
|
402 |
-
}
|
403 |
-
elseif ( is_post_type_archive() ) {
|
404 |
-
if ( $this->woocommerce_shop_page->is_shop_page() &&
|
405 |
-
$this->woocommerce_shop_page->get_shop_page_id() !== -1
|
406 |
-
) {
|
407 |
-
$this->add_single_post_crumb( $this->woocommerce_shop_page->get_shop_page_id() );
|
408 |
-
}
|
409 |
-
else {
|
410 |
-
$post_type = $wp_query->get( 'post_type' );
|
411 |
-
|
412 |
-
if ( $post_type && is_string( $post_type ) ) {
|
413 |
-
$this->add_ptarchive_crumb( $post_type );
|
414 |
-
}
|
415 |
-
}
|
416 |
-
}
|
417 |
-
elseif ( is_tax() || is_tag() || is_category() ) {
|
418 |
-
$this->add_crumbs_for_taxonomy();
|
419 |
-
}
|
420 |
-
elseif ( is_date() ) {
|
421 |
-
if ( is_day() ) {
|
422 |
-
$this->add_linked_month_year_crumb();
|
423 |
-
$this->add_date_crumb();
|
424 |
-
}
|
425 |
-
elseif ( is_month() ) {
|
426 |
-
$this->add_month_crumb();
|
427 |
-
}
|
428 |
-
elseif ( is_year() ) {
|
429 |
-
$this->add_year_crumb();
|
430 |
-
}
|
431 |
-
}
|
432 |
-
elseif ( is_author() ) {
|
433 |
-
$user = $wp_query->get_queried_object();
|
434 |
-
$display_name = get_the_author_meta( 'display_name', $user->ID );
|
435 |
-
$this->add_predefined_crumb(
|
436 |
-
WPSEO_Options::get( 'breadcrumbs-archiveprefix' ) . ' ' . $display_name,
|
437 |
-
null,
|
438 |
-
true
|
439 |
-
);
|
440 |
-
}
|
441 |
-
elseif ( is_search() ) {
|
442 |
-
$this->add_predefined_crumb(
|
443 |
-
WPSEO_Options::get( 'breadcrumbs-searchprefix' ) . ' “' . esc_html( get_search_query() ) . '”',
|
444 |
-
null,
|
445 |
-
true
|
446 |
-
);
|
447 |
-
}
|
448 |
-
elseif ( is_404() ) {
|
449 |
-
$this->add_predefined_crumb(
|
450 |
-
WPSEO_Options::get( 'breadcrumbs-404crumb' ),
|
451 |
-
null,
|
452 |
-
true
|
453 |
-
);
|
454 |
-
}
|
455 |
-
|
456 |
-
$this->maybe_add_page_crumb();
|
457 |
-
|
458 |
-
/**
|
459 |
-
* Filter: 'wpseo_breadcrumb_links' - Allow the developer to filter the Yoast SEO breadcrumb links, add to them, change order, etc.
|
460 |
-
*
|
461 |
-
* @api array $crumbs The crumbs array.
|
462 |
-
*/
|
463 |
-
$this->crumbs = apply_filters( 'wpseo_breadcrumb_links', $this->crumbs );
|
464 |
-
|
465 |
-
$this->crumb_count = count( $this->crumbs );
|
466 |
-
}
|
467 |
-
|
468 |
-
/**
|
469 |
-
* Determine whether we are on the front page of the site.
|
470 |
-
*
|
471 |
-
* @return bool
|
472 |
-
*/
|
473 |
-
private function is_front_page() {
|
474 |
-
if ( $this->show_on_front === 'page' && is_front_page() ) {
|
475 |
-
return true;
|
476 |
-
}
|
477 |
-
|
478 |
-
if ( $this->show_on_front === 'posts' && is_home() ) {
|
479 |
-
return true;
|
480 |
-
}
|
481 |
-
|
482 |
-
return false;
|
483 |
-
}
|
484 |
-
|
485 |
-
/**
|
486 |
-
* Add a single id based crumb to the crumbs property.
|
487 |
-
*
|
488 |
-
* @param int $id Post ID.
|
489 |
-
*/
|
490 |
-
private function add_single_post_crumb( $id ) {
|
491 |
-
$this->crumbs[] = [
|
492 |
-
'id' => $id,
|
493 |
-
];
|
494 |
-
}
|
495 |
-
|
496 |
-
/**
|
497 |
-
* Add a term based crumb to the crumbs property.
|
498 |
-
*
|
499 |
-
* @param object $term Term data object.
|
500 |
-
*/
|
501 |
-
private function add_term_crumb( $term ) {
|
502 |
-
$this->crumbs[] = [
|
503 |
-
'term' => $term,
|
504 |
-
];
|
505 |
-
}
|
506 |
-
|
507 |
-
/**
|
508 |
-
* Add a ptarchive based crumb to the crumbs property.
|
509 |
-
*
|
510 |
-
* @param string $pt Post type.
|
511 |
-
*/
|
512 |
-
private function add_ptarchive_crumb( $pt ) {
|
513 |
-
$this->crumbs[] = [
|
514 |
-
'ptarchive' => $pt,
|
515 |
-
];
|
516 |
-
}
|
517 |
-
|
518 |
-
/**
|
519 |
-
* Add a predefined crumb to the crumbs property.
|
520 |
-
*
|
521 |
-
* @param string $text Text string.
|
522 |
-
* @param string $url URL string.
|
523 |
-
* @param bool $allow_html Flag to allow HTML.
|
524 |
-
*/
|
525 |
-
private function add_predefined_crumb( $text, $url = '', $allow_html = false ) {
|
526 |
-
$this->crumbs[] = [
|
527 |
-
'text' => $text,
|
528 |
-
'url' => $url,
|
529 |
-
'allow_html' => $allow_html,
|
530 |
-
];
|
531 |
-
}
|
532 |
-
|
533 |
-
/**
|
534 |
-
* Add Homepage crumb to the crumbs property.
|
535 |
-
*/
|
536 |
-
private function maybe_add_home_crumb() {
|
537 |
-
if ( WPSEO_Options::get( 'breadcrumbs-home' ) !== '' ) {
|
538 |
-
$this->add_predefined_crumb(
|
539 |
-
WPSEO_Options::get( 'breadcrumbs-home' ),
|
540 |
-
WPSEO_Utils::home_url(),
|
541 |
-
true
|
542 |
-
);
|
543 |
-
}
|
544 |
-
}
|
545 |
-
|
546 |
-
/**
|
547 |
-
* Add Blog crumb to the crumbs property.
|
548 |
-
*/
|
549 |
-
private function add_blog_crumb() {
|
550 |
-
$this->add_single_post_crumb( $this->page_for_posts );
|
551 |
-
}
|
552 |
-
|
553 |
-
/**
|
554 |
-
* Add Blog crumb to the crumbs property for single posts where Home != blogpage.
|
555 |
-
*
|
556 |
-
* @return void
|
557 |
-
*/
|
558 |
-
private function maybe_add_blog_crumb() {
|
559 |
-
// When the show blog page is not enabled.
|
560 |
-
if ( WPSEO_Options::get( 'breadcrumbs-display-blog-page' ) !== true ) {
|
561 |
-
return;
|
562 |
-
}
|
563 |
-
|
564 |
-
// When there is no page configured as blog page.
|
565 |
-
if ( 'page' !== $this->show_on_front || ! $this->page_for_posts ) {
|
566 |
-
return;
|
567 |
-
}
|
568 |
-
|
569 |
-
// When the current page is the home page, searchpage or isn't a singular post.
|
570 |
-
if ( is_home() || is_search() || ! is_singular( 'post' ) ) {
|
571 |
-
return;
|
572 |
-
}
|
573 |
-
|
574 |
-
$this->add_blog_crumb();
|
575 |
-
}
|
576 |
-
|
577 |
-
/**
|
578 |
-
* Add ptarchive crumb to the crumbs property if it can be linked to, for a single post.
|
579 |
-
*/
|
580 |
-
private function maybe_add_pt_archive_crumb_for_post() {
|
581 |
-
// Never do this for the Post type archive for posts, as that would break `maybe_add_blog_crumb`.
|
582 |
-
if ( $this->post->post_type === 'post' ) {
|
583 |
-
return;
|
584 |
-
}
|
585 |
-
|
586 |
-
if ( isset( $this->post->post_type ) && get_post_type_archive_link( $this->post->post_type ) ) {
|
587 |
-
$this->add_ptarchive_crumb( $this->post->post_type );
|
588 |
-
}
|
589 |
-
}
|
590 |
-
|
591 |
-
/**
|
592 |
-
* Add taxonomy crumbs to the crumbs property for a single post.
|
593 |
-
*/
|
594 |
-
private function maybe_add_taxonomy_crumbs_for_post() {
|
595 |
-
if ( WPSEO_Options::get( 'post_types-' . $this->post->post_type . '-maintax' ) && (string) WPSEO_Options::get( 'post_types-' . $this->post->post_type . '-maintax' ) !== '0' ) {
|
596 |
-
$main_tax = WPSEO_Options::get( 'post_types-' . $this->post->post_type . '-maintax' );
|
597 |
-
if ( isset( $this->post->ID ) ) {
|
598 |
-
$terms = get_the_terms( $this->post, $main_tax );
|
599 |
-
|
600 |
-
if ( is_array( $terms ) && $terms !== [] ) {
|
601 |
-
|
602 |
-
$primary_term = new WPSEO_Primary_Term( $main_tax, $this->post->ID );
|
603 |
-
if ( $primary_term->get_primary_term() ) {
|
604 |
-
$breadcrumb_term = get_term( $primary_term->get_primary_term(), $main_tax );
|
605 |
-
}
|
606 |
-
else {
|
607 |
-
$breadcrumb_term = $this->find_deepest_term( $terms );
|
608 |
-
}
|
609 |
-
|
610 |
-
if ( is_taxonomy_hierarchical( $main_tax ) && $breadcrumb_term->parent !== 0 ) {
|
611 |
-
$parent_terms = $this->get_term_parents( $breadcrumb_term );
|
612 |
-
foreach ( $parent_terms as $parent_term ) {
|
613 |
-
$this->add_term_crumb( $parent_term );
|
614 |
-
}
|
615 |
-
}
|
616 |
-
|
617 |
-
$this->add_term_crumb( $breadcrumb_term );
|
618 |
-
}
|
619 |
-
}
|
620 |
-
}
|
621 |
-
}
|
622 |
-
|
623 |
-
/**
|
624 |
-
* Add hierarchical ancestor crumbs to the crumbs property for a single post.
|
625 |
-
*/
|
626 |
-
private function add_post_ancestor_crumbs() {
|
627 |
-
$ancestors = $this->get_post_ancestors();
|
628 |
-
if ( is_array( $ancestors ) && $ancestors !== [] ) {
|
629 |
-
foreach ( $ancestors as $ancestor ) {
|
630 |
-
$this->add_single_post_crumb( $ancestor );
|
631 |
-
}
|
632 |
-
}
|
633 |
-
}
|
634 |
-
|
635 |
-
/**
|
636 |
-
* Add taxonomy parent crumbs to the crumbs property for a taxonomy.
|
637 |
-
*/
|
638 |
-
private function add_crumbs_for_taxonomy() {
|
639 |
-
$term = $GLOBALS['wp_query']->get_queried_object();
|
640 |
-
|
641 |
-
// @todo adjust function name.
|
642 |
-
$this->maybe_add_preferred_term_parent_crumb( $term );
|
643 |
-
|
644 |
-
$this->maybe_add_term_parent_crumbs( $term );
|
645 |
-
|
646 |
-
$this->add_term_crumb( $term );
|
647 |
-
}
|
648 |
-
|
649 |
-
/**
|
650 |
-
* Adds a page crumb to the visible breadcrumbs.
|
651 |
-
*
|
652 |
-
* @return void
|
653 |
-
*/
|
654 |
-
private function maybe_add_page_crumb() {
|
655 |
-
if ( ! is_paged() ) {
|
656 |
-
return;
|
657 |
-
}
|
658 |
-
|
659 |
-
$current_page = get_query_var( 'paged', 1 );
|
660 |
-
if ( $current_page <= 1 ) {
|
661 |
-
return;
|
662 |
-
}
|
663 |
-
|
664 |
-
$this->crumbs[] = [
|
665 |
-
'text' => sprintf(
|
666 |
-
/* translators: %s expands to the current page number */
|
667 |
-
__( 'Page %s', 'wordpress-seo' ),
|
668 |
-
$current_page
|
669 |
-
),
|
670 |
-
'url' => '',
|
671 |
-
'hide_in_schema' => true,
|
672 |
-
];
|
673 |
-
}
|
674 |
-
|
675 |
-
/**
|
676 |
-
* Add parent taxonomy crumb based on user defined preference.
|
677 |
-
*
|
678 |
-
* @param object $term Term data object.
|
679 |
-
*/
|
680 |
-
private function maybe_add_preferred_term_parent_crumb( $term ) {
|
681 |
-
if ( WPSEO_Options::get( 'taxonomy-' . $term->taxonomy . '-ptparent' ) && (string) WPSEO_Options::get( 'taxonomy-' . $term->taxonomy . '-ptparent' ) !== '0' ) {
|
682 |
-
if ( 'post' === WPSEO_Options::get( 'taxonomy-' . $term->taxonomy . '-ptparent' ) && $this->show_on_front === 'page' ) {
|
683 |
-
if ( $this->page_for_posts ) {
|
684 |
-
$this->add_blog_crumb();
|
685 |
-
}
|
686 |
-
return;
|
687 |
-
}
|
688 |
-
$this->add_ptarchive_crumb( WPSEO_Options::get( 'taxonomy-' . $term->taxonomy . '-ptparent' ) );
|
689 |
-
}
|
690 |
-
}
|
691 |
-
|
692 |
-
/**
|
693 |
-
* Add parent taxonomy crumbs to the crumb property for hierachical taxonomy.
|
694 |
-
*
|
695 |
-
* @param object $term Term data object.
|
696 |
-
*/
|
697 |
-
private function maybe_add_term_parent_crumbs( $term ) {
|
698 |
-
if ( is_taxonomy_hierarchical( $term->taxonomy ) && $term->parent !== 0 ) {
|
699 |
-
foreach ( $this->get_term_parents( $term ) as $parent_term ) {
|
700 |
-
$this->add_term_crumb( $parent_term );
|
701 |
-
}
|
702 |
-
}
|
703 |
-
}
|
704 |
-
|
705 |
-
/**
|
706 |
-
* Add month-year crumb to crumbs property.
|
707 |
-
*/
|
708 |
-
private function add_linked_month_year_crumb() {
|
709 |
-
$this->add_predefined_crumb(
|
710 |
-
$GLOBALS['wp_locale']->get_month( get_query_var( 'monthnum' ) ) . ' ' . get_query_var( 'year' ),
|
711 |
-
get_month_link( get_query_var( 'year' ), get_query_var( 'monthnum' ) )
|
712 |
-
);
|
713 |
-
}
|
714 |
-
|
715 |
-
/**
|
716 |
-
* Add (non-link) month crumb to crumbs property.
|
717 |
-
*/
|
718 |
-
private function add_month_crumb() {
|
719 |
-
$this->add_predefined_crumb(
|
720 |
-
WPSEO_Options::get( 'breadcrumbs-archiveprefix' ) . ' ' . esc_html( single_month_title( ' ', false ) ),
|
721 |
-
null,
|
722 |
-
true
|
723 |
-
);
|
724 |
-
}
|
725 |
-
|
726 |
-
/**
|
727 |
-
* Add (non-link) year crumb to crumbs property.
|
728 |
-
*/
|
729 |
-
private function add_year_crumb() {
|
730 |
-
$this->add_predefined_crumb(
|
731 |
-
WPSEO_Options::get( 'breadcrumbs-archiveprefix' ) . ' ' . esc_html( get_query_var( 'year' ) ),
|
732 |
-
null,
|
733 |
-
true
|
734 |
-
);
|
735 |
-
}
|
736 |
-
|
737 |
-
/**
|
738 |
-
* Add (non-link) date crumb to crumbs property.
|
739 |
-
*/
|
740 |
-
private function add_date_crumb() {
|
741 |
-
$date = get_the_date();
|
742 |
-
|
743 |
-
$this->add_predefined_crumb(
|
744 |
-
WPSEO_Options::get( 'breadcrumbs-archiveprefix' ) . ' ' . esc_html( $date ),
|
745 |
-
null,
|
746 |
-
true
|
747 |
-
);
|
748 |
-
}
|
749 |
-
|
750 |
-
/**
|
751 |
-
* Take the crumbs array and convert each crumb to a single breadcrumb string.
|
752 |
-
*
|
753 |
-
* @link http://support.google.com/webmasters/bin/answer.py?hl=en&answer=185417 Google documentation on RDFA
|
754 |
-
*/
|
755 |
-
private function prepare_links() {
|
756 |
-
if ( ! is_array( $this->crumbs ) || $this->crumbs === [] ) {
|
757 |
-
return;
|
758 |
-
}
|
759 |
-
|
760 |
-
foreach ( $this->crumbs as $index => $crumb ) {
|
761 |
-
$link_info = $crumb; // Keep pre-set url/text combis.
|
762 |
-
|
763 |
-
if ( isset( $crumb['id'] ) ) {
|
764 |
-
$link_info = $this->get_link_info_for_id( $crumb['id'] );
|
765 |
-
}
|
766 |
-
if ( isset( $crumb['term'] ) ) {
|
767 |
-
$link_info = $this->get_link_info_for_term( $crumb['term'] );
|
768 |
-
}
|
769 |
-
if ( isset( $crumb['ptarchive'] ) ) {
|
770 |
-
$link_info = $this->get_link_info_for_ptarchive( $crumb['ptarchive'] );
|
771 |
-
}
|
772 |
-
|
773 |
-
/**
|
774 |
-
* Filter: 'wpseo_breadcrumb_single_link_info' - Allow developers to filter the Yoast SEO Breadcrumb link information.
|
775 |
-
*
|
776 |
-
* @api array $link_info The breadcrumb link information.
|
777 |
-
*
|
778 |
-
* @param int $index The index of the breadcrumb in the list.
|
779 |
-
* @param array $crumbs The complete list of breadcrumbs.
|
780 |
-
*/
|
781 |
-
$link_info = apply_filters( 'wpseo_breadcrumb_single_link_info', $link_info, $index, $this->crumbs );
|
782 |
-
|
783 |
-
$this->links[ $index ] = $link_info;
|
784 |
-
}
|
785 |
-
}
|
786 |
-
|
787 |
-
/**
|
788 |
-
* Retrieve link url and text based on post id.
|
789 |
-
*
|
790 |
-
* @param int $id Post ID.
|
791 |
-
*
|
792 |
-
* @return array Array of link text and url.
|
793 |
-
*/
|
794 |
-
private function get_link_info_for_id( $id ) {
|
795 |
-
$link = [];
|
796 |
-
$link['url'] = $this->get_link_url_for_id( $id );
|
797 |
-
$link['text'] = WPSEO_Meta::get_value( 'bctitle', $id );
|
798 |
-
|
799 |
-
if ( $link['text'] === '' ) {
|
800 |
-
$link['text'] = wp_strip_all_tags( get_the_title( $id ), true );
|
801 |
-
}
|
802 |
-
|
803 |
-
return $link;
|
804 |
-
}
|
805 |
-
|
806 |
-
/**
|
807 |
-
* Retrieve link url and text based on term object.
|
808 |
-
*
|
809 |
-
* @param object $term Term object.
|
810 |
-
*
|
811 |
-
* @return array Array of link text and url.
|
812 |
-
*/
|
813 |
-
private function get_link_info_for_term( $term ) {
|
814 |
-
$link = [];
|
815 |
-
|
816 |
-
$bctitle = WPSEO_Taxonomy_Meta::get_term_meta( $term, $term->taxonomy, 'bctitle' );
|
817 |
-
if ( ! is_string( $bctitle ) || $bctitle === '' ) {
|
818 |
-
$bctitle = $term->name;
|
819 |
-
}
|
820 |
-
|
821 |
-
$link['url'] = get_term_link( $term );
|
822 |
-
$link['text'] = $bctitle;
|
823 |
-
|
824 |
-
return $link;
|
825 |
-
}
|
826 |
-
|
827 |
-
/**
|
828 |
-
* Retrieve link url and text based on post type.
|
829 |
-
*
|
830 |
-
* @param string $pt Post type.
|
831 |
-
*
|
832 |
-
* @return array Array of link text and url.
|
833 |
-
*/
|
834 |
-
private function get_link_info_for_ptarchive( $pt ) {
|
835 |
-
$link = [];
|
836 |
-
$archive_title = $this->get_archive_title( $pt );
|
837 |
-
|
838 |
-
$link['url'] = get_post_type_archive_link( $pt );
|
839 |
-
$link['text'] = $archive_title;
|
840 |
-
|
841 |
-
return $link;
|
842 |
-
}
|
843 |
-
|
844 |
-
/**
|
845 |
-
* Gets the custom set breadcrumb title for the passed post type.
|
846 |
-
*
|
847 |
-
* @param string $post_type The post type to check.
|
848 |
-
*
|
849 |
-
* @return string the breadcrumb title.
|
850 |
-
*/
|
851 |
-
private function get_post_type_archive_breadcrumb( $post_type ) {
|
852 |
-
return WPSEO_Options::get( 'bctitle-ptarchive-' . $post_type, '' );
|
853 |
-
}
|
854 |
-
|
855 |
-
/**
|
856 |
-
* Gets the breadcrumb for the passed post type if it's a WooCommerce product and has a breadcrumb title set.
|
857 |
-
*
|
858 |
-
* @param string $post_type The post type to check.
|
859 |
-
*
|
860 |
-
* @return string The breadcrumb title.
|
861 |
-
*/
|
862 |
-
private function get_woocommerce_breadcrumb( $post_type ) {
|
863 |
-
if ( $post_type !== 'product' || ! WPSEO_Utils::is_woocommerce_active() ) {
|
864 |
-
return '';
|
865 |
-
}
|
866 |
-
|
867 |
-
$shop_page_id = $this->woocommerce_shop_page->get_shop_page_id();
|
868 |
-
|
869 |
-
if ( $shop_page_id === -1 ) {
|
870 |
-
return '';
|
871 |
-
}
|
872 |
-
|
873 |
-
return WPSEO_Meta::get_value( 'bctitle', $shop_page_id );
|
874 |
-
}
|
875 |
-
|
876 |
-
/**
|
877 |
-
* Determines the archive title based on the passed post type.
|
878 |
-
*
|
879 |
-
* @param string $post_type The post type to determine the title for.
|
880 |
-
*
|
881 |
-
* @return string The archive title.
|
882 |
-
*/
|
883 |
-
private function get_archive_title( $post_type ) {
|
884 |
-
$woocommerce_breadcrumb = $this->get_woocommerce_breadcrumb( $post_type );
|
885 |
-
|
886 |
-
if ( $woocommerce_breadcrumb !== '' ) {
|
887 |
-
return $woocommerce_breadcrumb;
|
888 |
-
}
|
889 |
-
|
890 |
-
$post_type_archive_breadcrumb = $this->get_post_type_archive_breadcrumb( $post_type );
|
891 |
-
|
892 |
-
if ( $post_type_archive_breadcrumb !== '' ) {
|
893 |
-
return $post_type_archive_breadcrumb;
|
894 |
-
}
|
895 |
-
|
896 |
-
$post_type_obj = get_post_type_object( $post_type );
|
897 |
-
|
898 |
-
if ( ! is_object( $post_type_obj ) ) {
|
899 |
-
return '';
|
900 |
-
}
|
901 |
-
|
902 |
-
if ( isset( $post_type_obj->label ) && $post_type_obj->label !== '' ) {
|
903 |
-
return $post_type_obj->label;
|
904 |
-
}
|
905 |
-
|
906 |
-
if ( isset( $post_type_obj->labels->menu_name ) && $post_type_obj->labels->menu_name !== '' ) {
|
907 |
-
return $post_type_obj->labels->menu_name;
|
908 |
-
}
|
909 |
-
|
910 |
-
return $post_type_obj->name;
|
911 |
-
}
|
912 |
-
|
913 |
-
/**
|
914 |
-
* Create a breadcrumb element string.
|
915 |
-
*
|
916 |
-
* @todo The `$paged` variable only works for archives, not for paged articles, so this does not work
|
917 |
-
* for paged article at this moment.
|
918 |
-
*
|
919 |
-
* @param array $link Link info array containing the keys:
|
920 |
-
* 'text' => (string) link text.
|
921 |
-
* 'url' => (string) link url.
|
922 |
-
* (optional) 'title' => (string) link title attribute text.
|
923 |
-
* (optional) 'allow_html' => (bool) whether to (not) escape html in the link text.
|
924 |
-
* This prevents html stripping from the text strings set in the
|
925 |
-
* WPSEO -> Internal Links options page.
|
926 |
-
* @param int $i Index for the current breadcrumb.
|
927 |
-
*
|
928 |
-
* @return string
|
929 |
-
*/
|
930 |
-
private function crumb_to_link( $link, $i ) {
|
931 |
-
$link_output = '';
|
932 |
-
|
933 |
-
if ( isset( $link['text'] ) && ( is_string( $link['text'] ) && $link['text'] !== '' ) ) {
|
934 |
-
|
935 |
-
$link['text'] = trim( $link['text'] );
|
936 |
-
if ( ! isset( $link['allow_html'] ) || $link['allow_html'] !== true ) {
|
937 |
-
$link['text'] = esc_html( $link['text'] );
|
938 |
-
}
|
939 |
-
|
940 |
-
if ( ( $i < ( $this->crumb_count - 1 ) && ( isset( $link['url'] ) && ( is_string( $link['url'] ) && $link['url'] !== '' ) ) )
|
941 |
-
) {
|
942 |
-
$link_output .= '<' . $this->element . '>';
|
943 |
-
$title_attr = isset( $link['title'] ) ? ' title="' . esc_attr( $link['title'] ) . '"' : '';
|
944 |
-
$link_output .= '<a href="' . esc_url( $link['url'] ) . '" ' . $title_attr . '>' . $link['text'] . '</a>';
|
945 |
-
}
|
946 |
-
else {
|
947 |
-
$inner_elm = 'span';
|
948 |
-
if ( $i === ( $this->crumb_count - 1 ) && WPSEO_Options::get( 'breadcrumbs-boldlast' ) === true ) {
|
949 |
-
$inner_elm = 'strong';
|
950 |
-
}
|
951 |
-
|
952 |
-
$link_output .= '<' . $inner_elm . ' class="breadcrumb_last" aria-current="page">' . $link['text'] . '</' . $inner_elm . '>';
|
953 |
-
// This is the last element, now close all previous elements.
|
954 |
-
while ( $i > 0 ) {
|
955 |
-
$link_output .= '</' . $this->element . '>';
|
956 |
-
$i--;
|
957 |
-
}
|
958 |
-
}
|
959 |
-
}
|
960 |
-
|
961 |
-
/**
|
962 |
-
* Filter: 'wpseo_breadcrumb_single_link' - Allow changing of each link being put out by the Yoast SEO breadcrumbs class.
|
963 |
-
*
|
964 |
-
* @api string $link_output The output string.
|
965 |
-
*
|
966 |
-
* @param array $link The link array.
|
967 |
-
*/
|
968 |
-
|
969 |
-
return apply_filters( 'wpseo_breadcrumb_single_link', $link_output, $link );
|
970 |
-
}
|
971 |
-
|
972 |
-
/**
|
973 |
-
* Create a complete breadcrumb string from an array of breadcrumb element strings.
|
974 |
-
*/
|
975 |
-
private function links_to_string() {
|
976 |
-
if ( is_array( $this->links ) && $this->links !== [] ) {
|
977 |
-
// Converts info to an effective link.
|
978 |
-
$links = $this->links;
|
979 |
-
foreach ( $links as $key => $link ) {
|
980 |
-
$links[ $key ] = $this->crumb_to_link( $link, $key );
|
981 |
-
}
|
982 |
-
|
983 |
-
// Removes any effectively empty links.
|
984 |
-
$links = array_map( 'trim', $links );
|
985 |
-
$links = array_filter( $links );
|
986 |
-
|
987 |
-
$this->output = implode( $this->separator, $links );
|
988 |
-
}
|
989 |
-
}
|
990 |
-
|
991 |
-
/**
|
992 |
-
* Wrap a complete breadcrumb string in a wrapper.
|
993 |
-
*/
|
994 |
-
private function wrap_breadcrumb() {
|
995 |
-
if ( is_string( $this->output ) && $this->output !== '' ) {
|
996 |
-
$output = '<' . $this->wrapper . $this->get_output_id() . $this->get_output_class() . '>' . $this->output . '</' . $this->wrapper . '>';
|
997 |
-
|
998 |
-
/**
|
999 |
-
* Filter: 'wpseo_breadcrumb_output' - Allow changing the HTML output of the Yoast SEO breadcrumbs class.
|
1000 |
-
*
|
1001 |
-
* @api string $unsigned HTML output.
|
1002 |
-
*/
|
1003 |
-
$output = apply_filters( 'wpseo_breadcrumb_output', $output );
|
1004 |
-
|
1005 |
-
if ( WPSEO_Options::get( 'breadcrumbs-prefix' ) !== '' ) {
|
1006 |
-
$output = "\t" . WPSEO_Options::get( 'breadcrumbs-prefix' ) . "\n" . $output;
|
1007 |
-
}
|
1008 |
-
|
1009 |
-
$this->output = $output;
|
1010 |
-
}
|
1011 |
-
}
|
1012 |
-
|
1013 |
-
/**
|
1014 |
-
* Retrieves HTML ID attribute.
|
1015 |
-
*
|
1016 |
-
* @return string
|
1017 |
-
*/
|
1018 |
-
private function get_output_id() {
|
1019 |
-
/**
|
1020 |
-
* Filter: 'wpseo_breadcrumb_output_id' - Allow changing the HTML ID on the Yoast SEO breadcrumbs wrapper element.
|
1021 |
-
*
|
1022 |
-
* @api string $unsigned ID to add to the wrapper element.
|
1023 |
-
*/
|
1024 |
-
$id = apply_filters( 'wpseo_breadcrumb_output_id', '' );
|
1025 |
-
if ( is_string( $id ) && '' !== $id ) {
|
1026 |
-
$id = ' id="' . esc_attr( $id ) . '"';
|
1027 |
-
}
|
1028 |
-
|
1029 |
-
return $id;
|
1030 |
-
}
|
1031 |
-
|
1032 |
-
/**
|
1033 |
-
* Retrieves HTML Class attribute.
|
1034 |
-
*
|
1035 |
-
* @return string
|
1036 |
-
*/
|
1037 |
-
private function get_output_class() {
|
1038 |
-
/**
|
1039 |
-
* Filter: 'wpseo_breadcrumb_output_class' - Allow changing the HTML class on the Yoast SEO breadcrumbs wrapper element.
|
1040 |
-
*
|
1041 |
-
* @api string $unsigned Class to add to the wrapper element.
|
1042 |
-
*/
|
1043 |
-
$class = apply_filters( 'wpseo_breadcrumb_output_class', '' );
|
1044 |
-
if ( is_string( $class ) && '' !== $class ) {
|
1045 |
-
$class = ' class="' . esc_attr( $class ) . '"';
|
1046 |
-
}
|
1047 |
-
|
1048 |
-
return $class;
|
1049 |
-
}
|
1050 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/class-frontend.php
DELETED
@@ -1,1960 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Frontend
|
6 |
-
*/
|
7 |
-
|
8 |
-
use Yoast\WP\SEO\Helpers\Author_Archive_Helper;
|
9 |
-
|
10 |
-
/**
|
11 |
-
* Main frontend class for Yoast SEO, responsible for the SEO output as well as removing
|
12 |
-
* default WordPress output.
|
13 |
-
*/
|
14 |
-
class WPSEO_Frontend {
|
15 |
-
|
16 |
-
/**
|
17 |
-
* Instance of this class.
|
18 |
-
*
|
19 |
-
* @var object
|
20 |
-
*/
|
21 |
-
public static $instance;
|
22 |
-
|
23 |
-
/**
|
24 |
-
* Toggle indicating whether output buffering has been started.
|
25 |
-
*
|
26 |
-
* @var bool
|
27 |
-
*/
|
28 |
-
private $ob_started = false;
|
29 |
-
|
30 |
-
/**
|
31 |
-
* Holds the canonical URL for the current page.
|
32 |
-
*
|
33 |
-
* @var string
|
34 |
-
*/
|
35 |
-
private $canonical = null;
|
36 |
-
|
37 |
-
/**
|
38 |
-
* Holds the canonical URL for the current page that cannot be overriden by a manual canonical input.
|
39 |
-
*
|
40 |
-
* @var string
|
41 |
-
*/
|
42 |
-
private $canonical_no_override = null;
|
43 |
-
|
44 |
-
/**
|
45 |
-
* Holds the canonical URL for the current page without pagination.
|
46 |
-
*
|
47 |
-
* @var string
|
48 |
-
*/
|
49 |
-
private $canonical_unpaged = null;
|
50 |
-
|
51 |
-
/**
|
52 |
-
* Holds the pages meta description.
|
53 |
-
*
|
54 |
-
* @var string
|
55 |
-
*/
|
56 |
-
private $metadesc = null;
|
57 |
-
|
58 |
-
/**
|
59 |
-
* Holds the generated title for the page.
|
60 |
-
*
|
61 |
-
* @var string
|
62 |
-
*/
|
63 |
-
private $title = null;
|
64 |
-
|
65 |
-
/**
|
66 |
-
* An instance of the WPSEO_Frontend_Page_Type class.
|
67 |
-
*
|
68 |
-
* @var WPSEO_Frontend_Page_Type
|
69 |
-
*/
|
70 |
-
protected $frontend_page_type;
|
71 |
-
|
72 |
-
/**
|
73 |
-
* An instance of the WPSEO_WooCommerce_Shop_Page class.
|
74 |
-
*
|
75 |
-
* @var WPSEO_WooCommerce_Shop_Page
|
76 |
-
*/
|
77 |
-
protected $woocommerce_shop_page;
|
78 |
-
|
79 |
-
/**
|
80 |
-
* Default title with replace-vars.
|
81 |
-
*
|
82 |
-
* @var string
|
83 |
-
*/
|
84 |
-
public static $default_title = '%%title%% %%sep%% %%sitename%%';
|
85 |
-
|
86 |
-
/**
|
87 |
-
* Class constructor.
|
88 |
-
*
|
89 |
-
* Adds and removes a lot of filters.
|
90 |
-
*/
|
91 |
-
protected function __construct() {
|
92 |
-
|
93 |
-
add_action( 'wp_head', [ $this, 'front_page_specific_init' ], 0 );
|
94 |
-
add_action( 'wp_head', [ $this, 'head' ], 1 );
|
95 |
-
|
96 |
-
// The head function here calls action wpseo_head, to which we hook all our functionality.
|
97 |
-
add_action( 'wpseo_head', [ $this, 'debug_mark' ], 2 );
|
98 |
-
add_action( 'wpseo_head', [ $this, 'metadesc' ], 6 );
|
99 |
-
add_action( 'wpseo_head', [ $this, 'robots' ], 10 );
|
100 |
-
add_action( 'wpseo_head', [ $this, 'canonical' ], 20 );
|
101 |
-
add_action( 'wpseo_head', [ $this, 'adjacent_rel_links' ], 21 );
|
102 |
-
|
103 |
-
// Remove actions that we will handle through our wpseo_head call, and probably change the output of.
|
104 |
-
remove_action( 'wp_head', 'rel_canonical' );
|
105 |
-
remove_action( 'wp_head', 'index_rel_link' );
|
106 |
-
remove_action( 'wp_head', 'start_post_rel_link' );
|
107 |
-
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head' );
|
108 |
-
remove_action( 'wp_head', 'noindex', 1 );
|
109 |
-
|
110 |
-
// When using WP 4.4, just use the new hook.
|
111 |
-
add_filter( 'pre_get_document_title', [ $this, 'title' ], 15 );
|
112 |
-
add_filter( 'wp_title', [ $this, 'title' ], 15, 3 );
|
113 |
-
|
114 |
-
add_filter( 'thematic_doctitle', [ $this, 'title' ], 15 );
|
115 |
-
|
116 |
-
add_action( 'wp', [ $this, 'page_redirect' ], 99 );
|
117 |
-
|
118 |
-
add_action( 'template_redirect', [ $this, 'noindex_robots' ] );
|
119 |
-
|
120 |
-
add_filter( 'loginout', [ $this, 'nofollow_link' ] );
|
121 |
-
add_filter( 'register', [ $this, 'nofollow_link' ] );
|
122 |
-
|
123 |
-
// Add support for shortcodes to category descriptions.
|
124 |
-
add_filter( 'category_description', [ $this, 'custom_category_descriptions_add_shortcode_support' ] );
|
125 |
-
|
126 |
-
// Fix the WooThemes woo_title() output.
|
127 |
-
add_filter( 'woo_title', [ $this, 'fix_woo_title' ], 99 );
|
128 |
-
|
129 |
-
if ( WPSEO_Options::get( 'disable-date', false )
|
130 |
-
|| WPSEO_Options::get( 'disable-author', false )
|
131 |
-
|| WPSEO_Options::get( 'disable-post_format', false )
|
132 |
-
) {
|
133 |
-
add_action( 'wp', [ $this, 'archive_redirect' ] );
|
134 |
-
}
|
135 |
-
add_action( 'template_redirect', [ $this, 'attachment_redirect' ], 1 );
|
136 |
-
|
137 |
-
add_filter( 'the_content_feed', [ $this, 'embed_rssfooter' ] );
|
138 |
-
add_filter( 'the_excerpt_rss', [ $this, 'embed_rssfooter_excerpt' ] );
|
139 |
-
|
140 |
-
// For WordPress functions below 4.4.
|
141 |
-
if ( WPSEO_Options::get( 'forcerewritetitle', false ) && ! current_theme_supports( 'title-tag' ) ) {
|
142 |
-
add_action( 'template_redirect', [ $this, 'force_rewrite_output_buffer' ], 99999 );
|
143 |
-
add_action( 'wp_footer', [ $this, 'flush_cache' ], - 1 );
|
144 |
-
}
|
145 |
-
|
146 |
-
if ( WPSEO_Options::get( 'title_test', 0 ) > 0 ) {
|
147 |
-
add_filter( 'wpseo_title', [ $this, 'title_test_helper' ] );
|
148 |
-
}
|
149 |
-
|
150 |
-
$this->woocommerce_shop_page = new WPSEO_WooCommerce_Shop_Page();
|
151 |
-
|
152 |
-
$integrations = [
|
153 |
-
new WPSEO_Frontend_Primary_Category(),
|
154 |
-
new WPSEO_Schema(),
|
155 |
-
new WPSEO_Handle_404(),
|
156 |
-
new WPSEO_Remove_Reply_To_Com(),
|
157 |
-
new WPSEO_OpenGraph_OEmbed(),
|
158 |
-
$this->woocommerce_shop_page,
|
159 |
-
];
|
160 |
-
|
161 |
-
foreach ( $integrations as $integration ) {
|
162 |
-
$integration->register_hooks();
|
163 |
-
}
|
164 |
-
}
|
165 |
-
|
166 |
-
/**
|
167 |
-
* Initialize the functions that only need to run on the frontpage.
|
168 |
-
*/
|
169 |
-
public function front_page_specific_init() {
|
170 |
-
if ( ! is_front_page() ) {
|
171 |
-
return;
|
172 |
-
}
|
173 |
-
|
174 |
-
add_action( 'wpseo_head', [ $this, 'webmaster_tools_authentication' ], 90 );
|
175 |
-
}
|
176 |
-
|
177 |
-
/**
|
178 |
-
* Resets the entire class so canonicals, titles etc can be regenerated.
|
179 |
-
*/
|
180 |
-
public function reset() {
|
181 |
-
self::$instance = null;
|
182 |
-
foreach ( get_class_vars( __CLASS__ ) as $name => $default ) {
|
183 |
-
switch ( $name ) {
|
184 |
-
// Clear the class instance to be re-initialized.
|
185 |
-
case 'instance':
|
186 |
-
self::$instance = null;
|
187 |
-
break;
|
188 |
-
|
189 |
-
// Exclude these properties from being reset.
|
190 |
-
case 'woocommerce_shop_page':
|
191 |
-
case 'default_title':
|
192 |
-
break;
|
193 |
-
|
194 |
-
// Reset property to the class default.
|
195 |
-
default:
|
196 |
-
$this->$name = $default;
|
197 |
-
break;
|
198 |
-
}
|
199 |
-
}
|
200 |
-
WPSEO_Options::ensure_options_exist();
|
201 |
-
}
|
202 |
-
|
203 |
-
/**
|
204 |
-
* Get the singleton instance of this class.
|
205 |
-
*
|
206 |
-
* @return WPSEO_Frontend
|
207 |
-
*/
|
208 |
-
public static function get_instance() {
|
209 |
-
if ( ! ( self::$instance instanceof self ) ) {
|
210 |
-
self::$instance = new self();
|
211 |
-
}
|
212 |
-
|
213 |
-
return self::$instance;
|
214 |
-
}
|
215 |
-
|
216 |
-
/**
|
217 |
-
* Override Woo's title with our own.
|
218 |
-
*
|
219 |
-
* @param string $title Title string.
|
220 |
-
*
|
221 |
-
* @return string
|
222 |
-
*/
|
223 |
-
public function fix_woo_title( $title ) {
|
224 |
-
return $this->title( $title );
|
225 |
-
}
|
226 |
-
|
227 |
-
/**
|
228 |
-
* Used for static home and posts pages as well as singular titles.
|
229 |
-
*
|
230 |
-
* @param object|null $object If filled, object to get the title for.
|
231 |
-
*
|
232 |
-
* @return string
|
233 |
-
*/
|
234 |
-
public function get_content_title( $object = null ) {
|
235 |
-
if ( $object === null ) {
|
236 |
-
$object = $GLOBALS['wp_query']->get_queried_object();
|
237 |
-
}
|
238 |
-
|
239 |
-
$title = $this->get_seo_title( $object );
|
240 |
-
if ( $title !== '' ) {
|
241 |
-
return $title;
|
242 |
-
}
|
243 |
-
|
244 |
-
$post_type = ( isset( $object->post_type ) ? $object->post_type : $object->query_var );
|
245 |
-
|
246 |
-
return $this->get_title_from_options( 'title-' . $post_type, $object );
|
247 |
-
}
|
248 |
-
|
249 |
-
/**
|
250 |
-
* Retrieves the SEO title set in the SEO widget.
|
251 |
-
*
|
252 |
-
* @param null $object Object to retrieve the title from.
|
253 |
-
*
|
254 |
-
* @return string The SEO title for the specified object, or queried object if not supplied.
|
255 |
-
*/
|
256 |
-
public function get_seo_title( $object = null ) {
|
257 |
-
if ( $object === null ) {
|
258 |
-
$object = $GLOBALS['wp_query']->get_queried_object();
|
259 |
-
}
|
260 |
-
|
261 |
-
if ( ! is_object( $object ) ) {
|
262 |
-
return $this->get_title_from_options( 'title-404-wpseo' );
|
263 |
-
}
|
264 |
-
|
265 |
-
$title = $this->get_seo_meta_value( 'title', $object->ID );
|
266 |
-
|
267 |
-
if ( $title !== '' ) {
|
268 |
-
return $this->replace_vars( $title, $object );
|
269 |
-
}
|
270 |
-
|
271 |
-
return $title;
|
272 |
-
}
|
273 |
-
|
274 |
-
/**
|
275 |
-
* Used for category, tag, and tax titles.
|
276 |
-
*
|
277 |
-
* @return string
|
278 |
-
*/
|
279 |
-
public function get_taxonomy_title() {
|
280 |
-
$object = $GLOBALS['wp_query']->get_queried_object();
|
281 |
-
|
282 |
-
$title = WPSEO_Taxonomy_Meta::get_term_meta( $object, $object->taxonomy, 'title' );
|
283 |
-
|
284 |
-
if ( is_string( $title ) && $title !== '' ) {
|
285 |
-
return $this->replace_vars( $title, $object );
|
286 |
-
}
|
287 |
-
|
288 |
-
return $this->get_title_from_options( 'title-tax-' . $object->taxonomy, $object );
|
289 |
-
}
|
290 |
-
|
291 |
-
/**
|
292 |
-
* Used for author titles.
|
293 |
-
*
|
294 |
-
* @return string
|
295 |
-
*/
|
296 |
-
public function get_author_title() {
|
297 |
-
$author_id = get_query_var( 'author' );
|
298 |
-
$title = trim( get_the_author_meta( 'wpseo_title', $author_id ) );
|
299 |
-
|
300 |
-
if ( $title !== '' ) {
|
301 |
-
return $this->replace_vars( $title, [] );
|
302 |
-
}
|
303 |
-
|
304 |
-
return $this->get_title_from_options( 'title-author-wpseo' );
|
305 |
-
}
|
306 |
-
|
307 |
-
/**
|
308 |
-
* Simple function to use to pull data from $options.
|
309 |
-
*
|
310 |
-
* All titles pulled from options will be run through the $this->replace_vars function.
|
311 |
-
*
|
312 |
-
* @param string $index Name of the page to get the title from the settings for.
|
313 |
-
* @param object|array $var_source Possible object to pull variables from.
|
314 |
-
*
|
315 |
-
* @return string
|
316 |
-
*/
|
317 |
-
public function get_title_from_options( $index, $var_source = [] ) {
|
318 |
-
$template = WPSEO_Options::get( $index, '' );
|
319 |
-
if ( $template === '' ) {
|
320 |
-
if ( is_singular() ) {
|
321 |
-
return $this->replace_vars( self::$default_title, $var_source );
|
322 |
-
}
|
323 |
-
|
324 |
-
return '';
|
325 |
-
}
|
326 |
-
|
327 |
-
return $this->replace_vars( $template, $var_source );
|
328 |
-
}
|
329 |
-
|
330 |
-
/**
|
331 |
-
* Get the default title for the current page.
|
332 |
-
*
|
333 |
-
* This is the fallback title generator used when a title hasn't been set for the specific content, taxonomy, author
|
334 |
-
* details, or in the options. It scrubs off any present prefix before or after the title (based on $seplocation) in
|
335 |
-
* order to prevent duplicate seperations from appearing in the title (this happens when a prefix is supplied to the
|
336 |
-
* wp_title call on singular pages).
|
337 |
-
*
|
338 |
-
* @param string $sep The separator used between variables.
|
339 |
-
* @param string $seplocation Whether the separator should be left or right.
|
340 |
-
* @param string $title Possible title that's already set.
|
341 |
-
*
|
342 |
-
* @return string
|
343 |
-
*/
|
344 |
-
public function get_default_title( $sep, $seplocation, $title = '' ) {
|
345 |
-
if ( 'right' === $seplocation ) {
|
346 |
-
$regex = '`\s*' . preg_quote( trim( $sep ), '`' ) . '\s*`u';
|
347 |
-
}
|
348 |
-
else {
|
349 |
-
$regex = '`^\s*' . preg_quote( trim( $sep ), '`' ) . '\s*`u';
|
350 |
-
}
|
351 |
-
$title = preg_replace( $regex, '', $title );
|
352 |
-
|
353 |
-
if ( ! is_string( $title ) || ( is_string( $title ) && $title === '' ) ) {
|
354 |
-
$title = WPSEO_Utils::get_site_name();
|
355 |
-
$title = $this->add_paging_to_title( $sep, $seplocation, $title );
|
356 |
-
$title = $this->add_to_title( $sep, $seplocation, $title, wp_strip_all_tags( get_bloginfo( 'description' ), true ) );
|
357 |
-
|
358 |
-
return $title;
|
359 |
-
}
|
360 |
-
|
361 |
-
$title = $this->add_paging_to_title( $sep, $seplocation, $title );
|
362 |
-
$title = $this->add_to_title( $sep, $seplocation, $title, wp_strip_all_tags( get_bloginfo( 'name' ), true ) );
|
363 |
-
|
364 |
-
return $title;
|
365 |
-
}
|
366 |
-
|
367 |
-
/**
|
368 |
-
* This function adds paging details to the title.
|
369 |
-
*
|
370 |
-
* @param string $sep Separator used in the title.
|
371 |
-
* @param string $seplocation Whether the separator should be left or right.
|
372 |
-
* @param string $title The title to append the paging info to.
|
373 |
-
*
|
374 |
-
* @return string
|
375 |
-
*/
|
376 |
-
public function add_paging_to_title( $sep, $seplocation, $title ) {
|
377 |
-
global $wp_query;
|
378 |
-
|
379 |
-
if ( ! empty( $wp_query->query_vars['paged'] ) && $wp_query->query_vars['paged'] > 1 ) {
|
380 |
-
return $this->add_to_title( $sep, $seplocation, $title, $wp_query->query_vars['paged'] . '/' . $wp_query->max_num_pages );
|
381 |
-
}
|
382 |
-
|
383 |
-
return $title;
|
384 |
-
}
|
385 |
-
|
386 |
-
/**
|
387 |
-
* Add part to title, while ensuring that the $seplocation variable is respected.
|
388 |
-
*
|
389 |
-
* @param string $sep Separator used in the title.
|
390 |
-
* @param string $seplocation Whether the separator should be left or right.
|
391 |
-
* @param string $title The title to append the title_part to.
|
392 |
-
* @param string $title_part The part to append to the title.
|
393 |
-
*
|
394 |
-
* @return string
|
395 |
-
*/
|
396 |
-
public function add_to_title( $sep, $seplocation, $title, $title_part ) {
|
397 |
-
if ( 'right' === $seplocation ) {
|
398 |
-
return $title . $sep . $title_part;
|
399 |
-
}
|
400 |
-
|
401 |
-
return $title_part . $sep . $title;
|
402 |
-
}
|
403 |
-
|
404 |
-
/**
|
405 |
-
* Main title function.
|
406 |
-
*
|
407 |
-
* @param string $title Title that might have already been set.
|
408 |
-
* @param string $separator Separator determined in theme (unused).
|
409 |
-
* @param string $separator_location Whether the separator should be left or right.
|
410 |
-
*
|
411 |
-
* @return string
|
412 |
-
*/
|
413 |
-
public function title( $title, $separator = '', $separator_location = '' ) {
|
414 |
-
if ( is_null( $this->title ) ) {
|
415 |
-
$this->title = $this->generate_title( $title, $separator_location );
|
416 |
-
}
|
417 |
-
|
418 |
-
return $this->title;
|
419 |
-
}
|
420 |
-
|
421 |
-
/**
|
422 |
-
* Main title generation function.
|
423 |
-
*
|
424 |
-
* @param string $title Title that might have already been set.
|
425 |
-
* @param string $separator_location Whether the separator should be left or right.
|
426 |
-
*
|
427 |
-
* @return string
|
428 |
-
*/
|
429 |
-
private function generate_title( $title, $separator_location ) {
|
430 |
-
|
431 |
-
if ( is_feed() ) {
|
432 |
-
return $title;
|
433 |
-
}
|
434 |
-
|
435 |
-
$separator = $this->replace_vars( '%%sep%%', [] );
|
436 |
-
$separator = ' ' . trim( $separator ) . ' ';
|
437 |
-
|
438 |
-
if ( '' === trim( $separator_location ) ) {
|
439 |
-
$separator_location = ( is_rtl() ) ? 'left' : 'right';
|
440 |
-
}
|
441 |
-
|
442 |
-
// This needs to be kept track of in order to generate
|
443 |
-
// default titles for singular pages.
|
444 |
-
$original_title = $title;
|
445 |
-
|
446 |
-
// This flag is used to determine if any additional
|
447 |
-
// processing should be done to the title after the
|
448 |
-
// main section of title generation completes.
|
449 |
-
$modified_title = true;
|
450 |
-
|
451 |
-
// This variable holds the page-specific title part
|
452 |
-
// that is used to generate default titles.
|
453 |
-
$title_part = '';
|
454 |
-
|
455 |
-
if ( WPSEO_Frontend_Page_Type::is_home_static_page() ) {
|
456 |
-
$title = $this->get_content_title();
|
457 |
-
}
|
458 |
-
elseif ( WPSEO_Frontend_Page_Type::is_home_posts_page() ) {
|
459 |
-
$title = $this->get_title_from_options( 'title-home-wpseo' );
|
460 |
-
}
|
461 |
-
elseif ( $this->woocommerce_shop_page->is_shop_page() ) {
|
462 |
-
$title = $this->get_woocommerce_title();
|
463 |
-
|
464 |
-
if ( ! is_string( $title ) || $title === '' ) {
|
465 |
-
$title = $this->get_post_type_archive_title( $separator, $separator_location );
|
466 |
-
}
|
467 |
-
}
|
468 |
-
elseif ( WPSEO_Frontend_Page_Type::is_simple_page() ) {
|
469 |
-
$post = get_post( WPSEO_Frontend_Page_Type::get_simple_page_id() );
|
470 |
-
$title = $this->get_content_title( $post );
|
471 |
-
|
472 |
-
if ( ! is_string( $title ) || '' === $title ) {
|
473 |
-
$title_part = $original_title;
|
474 |
-
}
|
475 |
-
}
|
476 |
-
elseif ( is_search() ) {
|
477 |
-
$title = $this->get_title_from_options( 'title-search-wpseo' );
|
478 |
-
|
479 |
-
if ( ! is_string( $title ) || '' === $title ) {
|
480 |
-
/* translators: %s expands to the search phrase. */
|
481 |
-
$title_part = sprintf( __( 'Search for "%s"', 'wordpress-seo' ), esc_html( get_search_query() ) );
|
482 |
-
}
|
483 |
-
}
|
484 |
-
elseif ( is_category() || is_tag() || is_tax() ) {
|
485 |
-
$title = $this->get_taxonomy_title();
|
486 |
-
|
487 |
-
if ( ! is_string( $title ) || '' === $title ) {
|
488 |
-
if ( is_category() ) {
|
489 |
-
$title_part = single_cat_title( '', false );
|
490 |
-
}
|
491 |
-
elseif ( is_tag() ) {
|
492 |
-
$title_part = single_tag_title( '', false );
|
493 |
-
}
|
494 |
-
else {
|
495 |
-
$title_part = single_term_title( '', false );
|
496 |
-
if ( $title_part === '' ) {
|
497 |
-
$term = $GLOBALS['wp_query']->get_queried_object();
|
498 |
-
$title_part = $term->name;
|
499 |
-
}
|
500 |
-
}
|
501 |
-
}
|
502 |
-
}
|
503 |
-
elseif ( is_author() ) {
|
504 |
-
$title = $this->get_author_title();
|
505 |
-
|
506 |
-
if ( ! is_string( $title ) || '' === $title ) {
|
507 |
-
$title_part = get_the_author_meta( 'display_name', get_query_var( 'author' ) );
|
508 |
-
}
|
509 |
-
}
|
510 |
-
elseif ( is_post_type_archive() ) {
|
511 |
-
$title = $this->get_post_type_archive_title( $separator, $separator_location );
|
512 |
-
}
|
513 |
-
elseif ( is_archive() ) {
|
514 |
-
$title = $this->get_title_from_options( 'title-archive-wpseo' );
|
515 |
-
|
516 |
-
// @todo [JRF => Yoast] Should these not use the archive default if no title found ?
|
517 |
-
// WPSEO_Options::get_default( 'wpseo_titles', 'title-archive-wpseo' )
|
518 |
-
// Replacement would be needed!
|
519 |
-
if ( empty( $title ) ) {
|
520 |
-
if ( is_month() ) {
|
521 |
-
/* translators: %s expands to a time period, i.e. month name, year or specific date. */
|
522 |
-
$title_part = sprintf( __( '%s Archives', 'wordpress-seo' ), single_month_title( ' ', false ) );
|
523 |
-
}
|
524 |
-
elseif ( is_year() ) {
|
525 |
-
/* translators: %s expands to a time period, i.e. month name, year or specific date. */
|
526 |
-
$title_part = sprintf( __( '%s Archives', 'wordpress-seo' ), get_query_var( 'year' ) );
|
527 |
-
}
|
528 |
-
elseif ( is_day() ) {
|
529 |
-
/* translators: %s expands to a time period, i.e. month name, year or specific date. */
|
530 |
-
$title_part = sprintf( __( '%s Archives', 'wordpress-seo' ), get_the_date() );
|
531 |
-
}
|
532 |
-
else {
|
533 |
-
$title_part = __( 'Archives', 'wordpress-seo' );
|
534 |
-
}
|
535 |
-
}
|
536 |
-
}
|
537 |
-
elseif ( is_404() ) {
|
538 |
-
|
539 |
-
$title = $this->get_title_from_options( 'title-404-wpseo' );
|
540 |
-
|
541 |
-
// @todo [JRF => Yoast] Should these not use the 404 default if no title found ?
|
542 |
-
// WPSEO_Options::get_default( 'wpseo_titles', 'title-404-wpseo' )
|
543 |
-
// Replacement would be needed!
|
544 |
-
if ( empty( $title ) ) {
|
545 |
-
$title_part = __( 'Page not found', 'wordpress-seo' );
|
546 |
-
}
|
547 |
-
}
|
548 |
-
else {
|
549 |
-
// In case the page type is unknown, leave the title alone.
|
550 |
-
$modified_title = false;
|
551 |
-
|
552 |
-
// If you would like to generate a default title instead,
|
553 |
-
// the following code could be used
|
554 |
-
// $title_part = $title;
|
555 |
-
// instead of the line above.
|
556 |
-
}
|
557 |
-
|
558 |
-
if ( ( $modified_title && empty( $title ) ) || ! empty( $title_part ) ) {
|
559 |
-
$title = $this->get_default_title( $separator, $separator_location, $title_part );
|
560 |
-
}
|
561 |
-
|
562 |
-
if ( defined( 'ICL_LANGUAGE_CODE' ) && false !== strpos( $title, ICL_LANGUAGE_CODE ) ) {
|
563 |
-
$title = str_replace( ' @' . ICL_LANGUAGE_CODE, '', $title );
|
564 |
-
}
|
565 |
-
|
566 |
-
/**
|
567 |
-
* Filter: 'wpseo_title' - Allow changing the Yoast SEO <title> output.
|
568 |
-
*
|
569 |
-
* @api string $title The page title being put out.
|
570 |
-
*/
|
571 |
-
|
572 |
-
return esc_html( wp_strip_all_tags( stripslashes( apply_filters( 'wpseo_title', $title ) ), true ) );
|
573 |
-
}
|
574 |
-
|
575 |
-
/**
|
576 |
-
* Function used when title needs to be force overridden.
|
577 |
-
*
|
578 |
-
* @return string
|
579 |
-
*/
|
580 |
-
public function force_wp_title() {
|
581 |
-
global $wp_query;
|
582 |
-
$old_wp_query = null;
|
583 |
-
|
584 |
-
if ( ! $wp_query->is_main_query() ) {
|
585 |
-
$old_wp_query = $wp_query;
|
586 |
-
wp_reset_query();
|
587 |
-
}
|
588 |
-
|
589 |
-
$title = $this->title( '' );
|
590 |
-
|
591 |
-
if ( ! empty( $old_wp_query ) ) {
|
592 |
-
$GLOBALS['wp_query'] = $old_wp_query;
|
593 |
-
unset( $old_wp_query );
|
594 |
-
}
|
595 |
-
|
596 |
-
return $title;
|
597 |
-
}
|
598 |
-
|
599 |
-
/**
|
600 |
-
* Outputs or returns the debug marker, which is also used for title replacement when force rewrite is active.
|
601 |
-
*
|
602 |
-
* @return string The marker that will be echoed.
|
603 |
-
*/
|
604 |
-
public function debug_mark() {
|
605 |
-
$marker = $this->get_debug_mark();
|
606 |
-
|
607 |
-
echo "\n${marker}\n";
|
608 |
-
|
609 |
-
return '';
|
610 |
-
}
|
611 |
-
|
612 |
-
/**
|
613 |
-
* Returns the debug marker, which is also used for title replacement when force rewrite is active.
|
614 |
-
*
|
615 |
-
* @return string The generated marker.
|
616 |
-
*/
|
617 |
-
public function get_debug_mark() {
|
618 |
-
return sprintf(
|
619 |
-
'<!-- This site is optimized with the %1$s %2$s - https://yoast.com/wordpress/plugins/seo/ -->',
|
620 |
-
esc_html( $this->head_product_name() ),
|
621 |
-
/**
|
622 |
-
* Filter: 'wpseo_hide_version' - can be used to hide the Yoast SEO version in the debug marker (only available in Yoast SEO Premium).
|
623 |
-
*
|
624 |
-
* @api bool
|
625 |
-
*/
|
626 |
-
( ( apply_filters( 'wpseo_hide_version', false ) && $this->is_premium() ) ? '' : 'v' . WPSEO_VERSION )
|
627 |
-
);
|
628 |
-
}
|
629 |
-
|
630 |
-
/**
|
631 |
-
* Output Webmaster Tools authentication strings.
|
632 |
-
*/
|
633 |
-
public function webmaster_tools_authentication() {
|
634 |
-
// Baidu.
|
635 |
-
$this->webmaster_tools_helper( 'baiduverify', 'baidu-site-verification' );
|
636 |
-
|
637 |
-
// Bing.
|
638 |
-
$this->webmaster_tools_helper( 'msverify', 'msvalidate.01' );
|
639 |
-
|
640 |
-
// Google.
|
641 |
-
$this->webmaster_tools_helper( 'googleverify', 'google-site-verification' );
|
642 |
-
|
643 |
-
// Pinterest.
|
644 |
-
$this->webmaster_tools_helper( 'pinterestverify', 'p:domain_verify' );
|
645 |
-
|
646 |
-
// Yandex.
|
647 |
-
$this->webmaster_tools_helper( 'yandexverify', 'yandex-verification' );
|
648 |
-
}
|
649 |
-
|
650 |
-
/**
|
651 |
-
* Helper function for authentication.
|
652 |
-
*
|
653 |
-
* @param string $option_key Option key.
|
654 |
-
* @param string $tag_name The tag name.
|
655 |
-
*
|
656 |
-
* @return void
|
657 |
-
*/
|
658 |
-
private function webmaster_tools_helper( $option_key, $tag_name ) {
|
659 |
-
$auth = WPSEO_Options::get( $option_key, '' );
|
660 |
-
if ( $auth !== '' ) {
|
661 |
-
printf( '<meta name="%1$s" content="%2$s" />' . "\n", $tag_name, $auth );
|
662 |
-
}
|
663 |
-
}
|
664 |
-
|
665 |
-
/**
|
666 |
-
* Main wrapper function attached to wp_head. This combines all the output on the frontend of the Yoast SEO plugin.
|
667 |
-
*/
|
668 |
-
public function head() {
|
669 |
-
global $wp_query;
|
670 |
-
|
671 |
-
$old_wp_query = null;
|
672 |
-
|
673 |
-
if ( ! $wp_query->is_main_query() ) {
|
674 |
-
$old_wp_query = $wp_query;
|
675 |
-
wp_reset_query();
|
676 |
-
}
|
677 |
-
|
678 |
-
/**
|
679 |
-
* Action: 'wpseo_head' - Allow other plugins to output inside the Yoast SEO section of the head section.
|
680 |
-
*/
|
681 |
-
do_action( 'wpseo_head' );
|
682 |
-
|
683 |
-
echo $this->show_closing_debug_mark();
|
684 |
-
|
685 |
-
if ( ! empty( $old_wp_query ) ) {
|
686 |
-
$GLOBALS['wp_query'] = $old_wp_query;
|
687 |
-
unset( $old_wp_query );
|
688 |
-
}
|
689 |
-
}
|
690 |
-
|
691 |
-
/**
|
692 |
-
* Retrieves the meta robots value.
|
693 |
-
*
|
694 |
-
* @return string
|
695 |
-
*/
|
696 |
-
public function get_robots() {
|
697 |
-
global $wp_query, $post;
|
698 |
-
|
699 |
-
$robots = [];
|
700 |
-
$robots['index'] = 'index';
|
701 |
-
$robots['follow'] = 'follow';
|
702 |
-
$robots['other'] = [];
|
703 |
-
|
704 |
-
if ( is_object( $post ) && WPSEO_Frontend_Page_Type::is_simple_page() ) {
|
705 |
-
$private = 'private' === $post->post_status;
|
706 |
-
$noindex = ! WPSEO_Post_Type::is_post_type_indexable( $post->post_type );
|
707 |
-
|
708 |
-
if ( $noindex || $private ) {
|
709 |
-
$robots['index'] = 'noindex';
|
710 |
-
}
|
711 |
-
|
712 |
-
$robots = $this->robots_for_single_post( $robots, WPSEO_Frontend_Page_Type::get_simple_page_id() );
|
713 |
-
}
|
714 |
-
else {
|
715 |
-
if ( is_search() || is_404() ) {
|
716 |
-
$robots['index'] = 'noindex';
|
717 |
-
}
|
718 |
-
elseif ( is_tax() || is_tag() || is_category() ) {
|
719 |
-
$term = $wp_query->get_queried_object();
|
720 |
-
if ( is_object( $term ) && ( WPSEO_Options::get( 'noindex-tax-' . $term->taxonomy, false ) ) ) {
|
721 |
-
$robots['index'] = 'noindex';
|
722 |
-
}
|
723 |
-
|
724 |
-
// Three possible values, index, noindex and default, do nothing for default.
|
725 |
-
$term_meta = WPSEO_Taxonomy_Meta::get_term_meta( $term, $term->taxonomy, 'noindex' );
|
726 |
-
if ( is_string( $term_meta ) && 'default' !== $term_meta ) {
|
727 |
-
$robots['index'] = $term_meta;
|
728 |
-
}
|
729 |
-
|
730 |
-
if ( $this->is_multiple_terms_query() ) {
|
731 |
-
$robots['index'] = 'noindex';
|
732 |
-
}
|
733 |
-
}
|
734 |
-
elseif ( is_author() ) {
|
735 |
-
if ( WPSEO_Options::get( 'noindex-author-wpseo', false ) ) {
|
736 |
-
$robots['index'] = 'noindex';
|
737 |
-
}
|
738 |
-
$curauth = $wp_query->get_queried_object();
|
739 |
-
$author_archive = new Author_Archive_Helper();
|
740 |
-
$user_has_posts = ( (int) count_user_posts( $curauth->ID, $author_archive->get_author_archive_post_types(), true ) ) > 0;
|
741 |
-
if ( WPSEO_Options::get( 'noindex-author-noposts-wpseo', false ) && ! $user_has_posts ) {
|
742 |
-
$robots['index'] = 'noindex';
|
743 |
-
}
|
744 |
-
if ( get_user_meta( $curauth->ID, 'wpseo_noindex_author', true ) === 'on' ) {
|
745 |
-
$robots['index'] = 'noindex';
|
746 |
-
}
|
747 |
-
}
|
748 |
-
elseif ( is_date() && WPSEO_Options::get( 'noindex-archive-wpseo', false ) ) {
|
749 |
-
$robots['index'] = 'noindex';
|
750 |
-
}
|
751 |
-
elseif ( is_home() ) {
|
752 |
-
$page_for_posts = get_option( 'page_for_posts' );
|
753 |
-
if ( $page_for_posts ) {
|
754 |
-
$robots = $this->robots_for_single_post( $robots, $page_for_posts );
|
755 |
-
}
|
756 |
-
unset( $page_for_posts );
|
757 |
-
}
|
758 |
-
elseif ( is_post_type_archive() ) {
|
759 |
-
$post_type = $this->get_queried_post_type();
|
760 |
-
|
761 |
-
if ( WPSEO_Options::get( 'noindex-ptarchive-' . $post_type, false ) ) {
|
762 |
-
$robots['index'] = 'noindex';
|
763 |
-
}
|
764 |
-
}
|
765 |
-
|
766 |
-
unset( $robot );
|
767 |
-
}
|
768 |
-
|
769 |
-
// Force override to respect the WP settings.
|
770 |
-
if ( '0' === (string) get_option( 'blog_public' ) || isset( $_GET['replytocom'] ) ) {
|
771 |
-
$robots['index'] = 'noindex';
|
772 |
-
}
|
773 |
-
|
774 |
-
$robotsstr = $robots['index'] . ',' . $robots['follow'];
|
775 |
-
|
776 |
-
if ( $robots['other'] !== [] ) {
|
777 |
-
$robots['other'] = array_unique( $robots['other'] ); // @todo Most likely no longer needed, needs testing.
|
778 |
-
$robotsstr .= ',' . implode( ',', $robots['other'] );
|
779 |
-
}
|
780 |
-
|
781 |
-
$robotsstr = preg_replace( '`^index,follow,?`', '', $robotsstr );
|
782 |
-
$robotsstr = str_replace( [ 'noodp,', 'noodp' ], '', $robotsstr );
|
783 |
-
|
784 |
-
if ( strpos( $robotsstr, 'noindex' ) === false && strpos( $robotsstr, 'nosnippet' ) === false ) {
|
785 |
-
if ( $robotsstr !== '' ) {
|
786 |
-
$robotsstr .= ', ';
|
787 |
-
}
|
788 |
-
$robotsstr .= 'max-snippet:-1, max-image-preview:large, max-video-preview:-1';
|
789 |
-
}
|
790 |
-
|
791 |
-
/**
|
792 |
-
* Filter: 'wpseo_robots' - Allows filtering of the meta robots output of Yoast SEO.
|
793 |
-
*
|
794 |
-
* @api string $robotsstr The meta robots directives to be echoed.
|
795 |
-
*/
|
796 |
-
$robotsstr = apply_filters( 'wpseo_robots', $robotsstr );
|
797 |
-
|
798 |
-
return $robotsstr;
|
799 |
-
}
|
800 |
-
|
801 |
-
/**
|
802 |
-
* Outputs the meta robots value.
|
803 |
-
*
|
804 |
-
* @return string
|
805 |
-
*/
|
806 |
-
public function robots() {
|
807 |
-
$robotsstr = $this->get_robots();
|
808 |
-
|
809 |
-
if ( is_string( $robotsstr ) && $robotsstr !== '' ) {
|
810 |
-
echo '<meta name="robots" content="', esc_attr( $robotsstr ), '"/>', "\n";
|
811 |
-
}
|
812 |
-
|
813 |
-
// If a page has a noindex, it should _not_ have a canonical, as these are opposing indexing directives.
|
814 |
-
if ( strpos( $robotsstr, 'noindex' ) !== false ) {
|
815 |
-
remove_action( 'wpseo_head', [ $this, 'canonical' ], 20 );
|
816 |
-
}
|
817 |
-
|
818 |
-
return $robotsstr;
|
819 |
-
}
|
820 |
-
|
821 |
-
/**
|
822 |
-
* Determine $robots values for a single post.
|
823 |
-
*
|
824 |
-
* @param array $robots Robots data array.
|
825 |
-
* @param int $post_id The post ID for which to determine the $robots values, defaults to current post.
|
826 |
-
*
|
827 |
-
* @return array
|
828 |
-
*/
|
829 |
-
public function robots_for_single_post( $robots, $post_id = 0 ) {
|
830 |
-
$noindex = $this->get_seo_meta_value( 'meta-robots-noindex', $post_id );
|
831 |
-
if ( $noindex === '1' ) {
|
832 |
-
$robots['index'] = 'noindex';
|
833 |
-
}
|
834 |
-
elseif ( $noindex === '2' ) {
|
835 |
-
$robots['index'] = 'index';
|
836 |
-
}
|
837 |
-
|
838 |
-
if ( $this->get_seo_meta_value( 'meta-robots-nofollow', $post_id ) === '1' ) {
|
839 |
-
$robots['follow'] = 'nofollow';
|
840 |
-
}
|
841 |
-
|
842 |
-
$meta_robots_adv = $this->get_seo_meta_value( 'meta-robots-adv', $post_id );
|
843 |
-
|
844 |
-
if ( $meta_robots_adv !== '' && ( $meta_robots_adv !== '-' && $meta_robots_adv !== 'none' ) ) {
|
845 |
-
$meta_robots_adv = explode( ',', $meta_robots_adv );
|
846 |
-
foreach ( $meta_robots_adv as $robot ) {
|
847 |
-
$robots['other'][] = $robot;
|
848 |
-
}
|
849 |
-
unset( $robot );
|
850 |
-
}
|
851 |
-
unset( $meta_robots_adv );
|
852 |
-
|
853 |
-
return $robots;
|
854 |
-
}
|
855 |
-
|
856 |
-
/**
|
857 |
-
* This function normally outputs the canonical but is also used in other places to retrieve
|
858 |
-
* the canonical URL for the current page.
|
859 |
-
*
|
860 |
-
* @param bool $echo Whether or not to output the canonical element.
|
861 |
-
* @param bool $un_paged Whether or not to return the canonical with or without pagination added to the URL.
|
862 |
-
* @param bool $no_override Whether or not to return a manually overridden canonical.
|
863 |
-
*
|
864 |
-
* @return string $canonical
|
865 |
-
*/
|
866 |
-
public function canonical( $echo = true, $un_paged = false, $no_override = false ) {
|
867 |
-
if ( is_null( $this->canonical ) ) {
|
868 |
-
$this->generate_canonical();
|
869 |
-
}
|
870 |
-
|
871 |
-
$canonical = $this->canonical;
|
872 |
-
|
873 |
-
if ( $un_paged ) {
|
874 |
-
$canonical = $this->canonical_unpaged;
|
875 |
-
}
|
876 |
-
elseif ( $no_override ) {
|
877 |
-
$canonical = $this->canonical_no_override;
|
878 |
-
}
|
879 |
-
|
880 |
-
if ( $echo === false ) {
|
881 |
-
return $canonical;
|
882 |
-
}
|
883 |
-
|
884 |
-
if ( is_string( $canonical ) && '' !== $canonical ) {
|
885 |
-
echo '<link rel="canonical" href="' . esc_url( urldecode( $canonical ), null, 'other' ) . '" />' . "\n";
|
886 |
-
}
|
887 |
-
}
|
888 |
-
|
889 |
-
/**
|
890 |
-
* This function normally outputs the canonical but is also used in other places to retrieve
|
891 |
-
* the canonical URL for the current page.
|
892 |
-
*
|
893 |
-
* @return void
|
894 |
-
*/
|
895 |
-
private function generate_canonical() {
|
896 |
-
$canonical = false;
|
897 |
-
$canonical_override = false;
|
898 |
-
|
899 |
-
// Set decent canonicals for homepage, singulars and taxonomy pages.
|
900 |
-
if ( is_singular() ) {
|
901 |
-
$obj = get_queried_object();
|
902 |
-
$canonical = get_permalink( $obj->ID );
|
903 |
-
|
904 |
-
$this->canonical_unpaged = $canonical;
|
905 |
-
|
906 |
-
$canonical_override = $this->get_seo_meta_value( 'canonical' );
|
907 |
-
|
908 |
-
// Fix paginated pages canonical, but only if the page is truly paginated.
|
909 |
-
if ( get_query_var( 'page' ) > 1 ) {
|
910 |
-
$num_pages = ( substr_count( $obj->post_content, '<!--nextpage-->' ) + 1 );
|
911 |
-
if ( $num_pages && get_query_var( 'page' ) <= $num_pages ) {
|
912 |
-
if ( ! $GLOBALS['wp_rewrite']->using_permalinks() ) {
|
913 |
-
$canonical = add_query_arg( 'page', get_query_var( 'page' ), $canonical );
|
914 |
-
}
|
915 |
-
else {
|
916 |
-
$canonical = user_trailingslashit( trailingslashit( $canonical ) . get_query_var( 'page' ) );
|
917 |
-
}
|
918 |
-
}
|
919 |
-
}
|
920 |
-
}
|
921 |
-
else {
|
922 |
-
if ( is_search() ) {
|
923 |
-
$search_query = get_search_query();
|
924 |
-
|
925 |
-
// Regex catches case when /search/page/N without search term is itself mistaken for search term. R.
|
926 |
-
if ( ! empty( $search_query ) && ! preg_match( '|^page/\d+$|', $search_query ) ) {
|
927 |
-
$canonical = get_search_link();
|
928 |
-
}
|
929 |
-
}
|
930 |
-
elseif ( is_front_page() ) {
|
931 |
-
$canonical = WPSEO_Utils::home_url();
|
932 |
-
}
|
933 |
-
elseif ( WPSEO_Frontend_Page_Type::is_posts_page() ) {
|
934 |
-
|
935 |
-
$posts_page_id = get_option( 'page_for_posts' );
|
936 |
-
$canonical = $this->get_seo_meta_value( 'canonical', $posts_page_id );
|
937 |
-
|
938 |
-
if ( empty( $canonical ) ) {
|
939 |
-
$canonical = get_permalink( $posts_page_id );
|
940 |
-
}
|
941 |
-
}
|
942 |
-
elseif ( is_tax() || is_tag() || is_category() ) {
|
943 |
-
|
944 |
-
$term = get_queried_object();
|
945 |
-
|
946 |
-
if ( ! empty( $term ) && ! $this->is_multiple_terms_query() ) {
|
947 |
-
|
948 |
-
$canonical_override = WPSEO_Taxonomy_Meta::get_term_meta( $term, $term->taxonomy, 'canonical' );
|
949 |
-
$term_link = get_term_link( $term, $term->taxonomy );
|
950 |
-
|
951 |
-
if ( ! is_wp_error( $term_link ) ) {
|
952 |
-
$canonical = $term_link;
|
953 |
-
}
|
954 |
-
}
|
955 |
-
}
|
956 |
-
elseif ( is_post_type_archive() ) {
|
957 |
-
$post_type = $this->get_queried_post_type();
|
958 |
-
$canonical = get_post_type_archive_link( $post_type );
|
959 |
-
}
|
960 |
-
elseif ( is_author() ) {
|
961 |
-
$canonical = get_author_posts_url( get_query_var( 'author' ), get_query_var( 'author_name' ) );
|
962 |
-
}
|
963 |
-
elseif ( is_archive() ) {
|
964 |
-
if ( is_date() ) {
|
965 |
-
if ( is_day() ) {
|
966 |
-
$canonical = get_day_link( get_query_var( 'year' ), get_query_var( 'monthnum' ), get_query_var( 'day' ) );
|
967 |
-
}
|
968 |
-
elseif ( is_month() ) {
|
969 |
-
$canonical = get_month_link( get_query_var( 'year' ), get_query_var( 'monthnum' ) );
|
970 |
-
}
|
971 |
-
elseif ( is_year() ) {
|
972 |
-
$canonical = get_year_link( get_query_var( 'year' ) );
|
973 |
-
}
|
974 |
-
}
|
975 |
-
}
|
976 |
-
|
977 |
-
$this->canonical_unpaged = $canonical;
|
978 |
-
|
979 |
-
if ( $canonical && get_query_var( 'paged' ) > 1 ) {
|
980 |
-
global $wp_rewrite;
|
981 |
-
if ( ! $wp_rewrite->using_permalinks() ) {
|
982 |
-
if ( is_front_page() ) {
|
983 |
-
$canonical = trailingslashit( $canonical );
|
984 |
-
}
|
985 |
-
$canonical = add_query_arg( 'paged', get_query_var( 'paged' ), $canonical );
|
986 |
-
}
|
987 |
-
else {
|
988 |
-
if ( is_front_page() ) {
|
989 |
-
$canonical = WPSEO_Sitemaps_Router::get_base_url( '' );
|
990 |
-
}
|
991 |
-
$canonical = user_trailingslashit( trailingslashit( $canonical ) . trailingslashit( $wp_rewrite->pagination_base ) . get_query_var( 'paged' ) );
|
992 |
-
}
|
993 |
-
}
|
994 |
-
}
|
995 |
-
|
996 |
-
$this->canonical_no_override = $canonical;
|
997 |
-
|
998 |
-
if ( is_string( $canonical ) && $canonical !== '' ) {
|
999 |
-
// Force canonical links to be absolute, relative is NOT an option.
|
1000 |
-
if ( WPSEO_Utils::is_url_relative( $canonical ) === true ) {
|
1001 |
-
$canonical = $this->base_url( $canonical );
|
1002 |
-
}
|
1003 |
-
}
|
1004 |
-
|
1005 |
-
if ( is_string( $canonical_override ) && $canonical_override !== '' ) {
|
1006 |
-
$canonical = $canonical_override;
|
1007 |
-
}
|
1008 |
-
|
1009 |
-
/**
|
1010 |
-
* Filter: 'wpseo_canonical' - Allow filtering of the canonical URL put out by Yoast SEO.
|
1011 |
-
*
|
1012 |
-
* @api string $canonical The canonical URL.
|
1013 |
-
*/
|
1014 |
-
$this->canonical = apply_filters( 'wpseo_canonical', $canonical );
|
1015 |
-
}
|
1016 |
-
|
1017 |
-
/**
|
1018 |
-
* Parse the home URL setting to find the base URL for relative URLs.
|
1019 |
-
*
|
1020 |
-
* @param string $path Optional path string.
|
1021 |
-
*
|
1022 |
-
* @return string
|
1023 |
-
*/
|
1024 |
-
private function base_url( $path = null ) {
|
1025 |
-
$url = get_option( 'home' );
|
1026 |
-
|
1027 |
-
$parts = wp_parse_url( $url );
|
1028 |
-
|
1029 |
-
$base_url = trailingslashit( $parts['scheme'] . '://' . $parts['host'] );
|
1030 |
-
|
1031 |
-
if ( ! is_null( $path ) ) {
|
1032 |
-
$base_url .= ltrim( $path, '/' );
|
1033 |
-
}
|
1034 |
-
|
1035 |
-
return $base_url;
|
1036 |
-
}
|
1037 |
-
|
1038 |
-
/**
|
1039 |
-
* Adds 'prev' and 'next' links to archives.
|
1040 |
-
*
|
1041 |
-
* @link http://googlewebmastercentral.blogspot.com/2011/09/pagination-with-relnext-and-relprev.html
|
1042 |
-
* @since 1.0.3
|
1043 |
-
*/
|
1044 |
-
public function adjacent_rel_links() {
|
1045 |
-
/**
|
1046 |
-
* Filter: 'wpseo_disable_adjacent_rel_links' - Allows disabling of Yoast adjacent links if this is being handled by other code.
|
1047 |
-
*
|
1048 |
-
* @api bool $links_generated Indicates if other code has handled adjacent links.
|
1049 |
-
*/
|
1050 |
-
if ( true === apply_filters( 'wpseo_disable_adjacent_rel_links', false ) ) {
|
1051 |
-
return;
|
1052 |
-
}
|
1053 |
-
|
1054 |
-
if ( is_singular() ) {
|
1055 |
-
$this->rel_links_single();
|
1056 |
-
return;
|
1057 |
-
}
|
1058 |
-
|
1059 |
-
$this->rel_links_archive();
|
1060 |
-
}
|
1061 |
-
|
1062 |
-
/**
|
1063 |
-
* Output the rel next/prev links for a single post / page.
|
1064 |
-
*
|
1065 |
-
* @return void
|
1066 |
-
*/
|
1067 |
-
protected function rel_links_single() {
|
1068 |
-
$num_pages = 1;
|
1069 |
-
|
1070 |
-
$queried_object = get_queried_object();
|
1071 |
-
if ( ! empty( $queried_object ) ) {
|
1072 |
-
$num_pages = ( substr_count( $queried_object->post_content, '<!--nextpage-->' ) + 1 );
|
1073 |
-
}
|
1074 |
-
|
1075 |
-
if ( $num_pages === 1 ) {
|
1076 |
-
return;
|
1077 |
-
}
|
1078 |
-
|
1079 |
-
$page = max( 1, (int) get_query_var( 'page' ) );
|
1080 |
-
$url = get_permalink( get_queried_object_id() );
|
1081 |
-
|
1082 |
-
if ( $page > 1 ) {
|
1083 |
-
$this->adjacent_rel_link( 'prev', $url, ( $page - 1 ), 'page' );
|
1084 |
-
}
|
1085 |
-
|
1086 |
-
if ( $page < $num_pages ) {
|
1087 |
-
$this->adjacent_rel_link( 'next', $url, ( $page + 1 ), 'page' );
|
1088 |
-
}
|
1089 |
-
}
|
1090 |
-
|
1091 |
-
/**
|
1092 |
-
* Output the rel next/prev links for an archive page.
|
1093 |
-
*/
|
1094 |
-
protected function rel_links_archive() {
|
1095 |
-
$url = $this->canonical( false, true, true );
|
1096 |
-
|
1097 |
-
if ( ! is_string( $url ) || $url === '' ) {
|
1098 |
-
return;
|
1099 |
-
}
|
1100 |
-
|
1101 |
-
$paged = max( 1, (int) get_query_var( 'paged' ) );
|
1102 |
-
|
1103 |
-
if ( $paged === 2 ) {
|
1104 |
-
$this->adjacent_rel_link( 'prev', $url, ( $paged - 1 ) );
|
1105 |
-
}
|
1106 |
-
|
1107 |
-
// Make sure to use index.php when needed, done after paged == 2 check so the prev links to homepage will not have index.php erroneously.
|
1108 |
-
if ( is_front_page() ) {
|
1109 |
-
$url = WPSEO_Sitemaps_Router::get_base_url( '' );
|
1110 |
-
}
|
1111 |
-
|
1112 |
-
if ( $paged > 2 ) {
|
1113 |
-
$this->adjacent_rel_link( 'prev', $url, ( $paged - 1 ) );
|
1114 |
-
}
|
1115 |
-
|
1116 |
-
if ( $paged < $GLOBALS['wp_query']->max_num_pages ) {
|
1117 |
-
$this->adjacent_rel_link( 'next', $url, ( $paged + 1 ) );
|
1118 |
-
}
|
1119 |
-
}
|
1120 |
-
|
1121 |
-
/**
|
1122 |
-
* Get adjacent pages link for archives.
|
1123 |
-
*
|
1124 |
-
* @since 1.0.2
|
1125 |
-
* @since 7.1 Added $query_arg parameter for single post/page pagination.
|
1126 |
-
*
|
1127 |
-
* @param string $rel Link relationship, prev or next.
|
1128 |
-
* @param string $url The un-paginated URL of the current archive.
|
1129 |
-
* @param string $page The page number to add on to $url for the $link tag.
|
1130 |
-
* @param string $query_arg Optional. The argument to use to set for the page to load.
|
1131 |
-
*
|
1132 |
-
* @return void
|
1133 |
-
*/
|
1134 |
-
private function adjacent_rel_link( $rel, $url, $page, $query_arg = 'paged' ) {
|
1135 |
-
global $wp_rewrite;
|
1136 |
-
if ( ! $wp_rewrite->using_permalinks() ) {
|
1137 |
-
if ( $page > 1 ) {
|
1138 |
-
$url = add_query_arg( $query_arg, $page, $url );
|
1139 |
-
}
|
1140 |
-
}
|
1141 |
-
else {
|
1142 |
-
if ( $page > 1 ) {
|
1143 |
-
$url = user_trailingslashit( trailingslashit( $url ) . $this->get_pagination_base() . $page );
|
1144 |
-
}
|
1145 |
-
}
|
1146 |
-
|
1147 |
-
/**
|
1148 |
-
* Filter: 'wpseo_adjacent_rel_url' - Allow changing the URL for rel output by Yoast SEO.
|
1149 |
-
*
|
1150 |
-
* @api string $url The URL that's going to be output for $rel.
|
1151 |
-
*
|
1152 |
-
* @param string $rel Link relationship, prev or next.
|
1153 |
-
*/
|
1154 |
-
$url = apply_filters( 'wpseo_adjacent_rel_url', $url, $rel );
|
1155 |
-
|
1156 |
-
/**
|
1157 |
-
* Filter: 'wpseo_' . $rel . '_rel_link' - Allow changing link rel output by Yoast SEO.
|
1158 |
-
*
|
1159 |
-
* @api string $unsigned The full `<link` element.
|
1160 |
-
*/
|
1161 |
-
$link = apply_filters( 'wpseo_' . $rel . '_rel_link', '<link rel="' . esc_attr( $rel ) . '" href="' . esc_url( $url ) . "\" />\n" );
|
1162 |
-
|
1163 |
-
if ( is_string( $link ) && $link !== '' ) {
|
1164 |
-
echo $link;
|
1165 |
-
}
|
1166 |
-
}
|
1167 |
-
|
1168 |
-
/**
|
1169 |
-
* Return the base for pagination.
|
1170 |
-
*
|
1171 |
-
* @return string The pagination base.
|
1172 |
-
*/
|
1173 |
-
private function get_pagination_base() {
|
1174 |
-
// If the current page is the frontpage, pagination should use /base/.
|
1175 |
-
$base = '';
|
1176 |
-
if ( ! is_singular() || WPSEO_Frontend_Page_Type::is_home_static_page() ) {
|
1177 |
-
$base = trailingslashit( $GLOBALS['wp_rewrite']->pagination_base );
|
1178 |
-
}
|
1179 |
-
return $base;
|
1180 |
-
}
|
1181 |
-
|
1182 |
-
/**
|
1183 |
-
* Outputs the meta description element or returns the description text.
|
1184 |
-
*
|
1185 |
-
* @param bool $echo Echo or return output flag.
|
1186 |
-
*
|
1187 |
-
* @return string
|
1188 |
-
*/
|
1189 |
-
public function metadesc( $echo = true ) {
|
1190 |
-
if ( is_null( $this->metadesc ) ) {
|
1191 |
-
$this->generate_metadesc();
|
1192 |
-
}
|
1193 |
-
|
1194 |
-
if ( $echo === false ) {
|
1195 |
-
return $this->metadesc;
|
1196 |
-
}
|
1197 |
-
|
1198 |
-
if ( is_string( $this->metadesc ) && $this->metadesc !== '' ) {
|
1199 |
-
echo '<meta name="description" content="', esc_attr( wp_strip_all_tags( stripslashes( $this->metadesc ) ) ), '"/>', "\n";
|
1200 |
-
return '';
|
1201 |
-
}
|
1202 |
-
|
1203 |
-
if ( current_user_can( 'wpseo_manage_options' ) && is_singular() ) {
|
1204 |
-
echo '<!-- ';
|
1205 |
-
printf(
|
1206 |
-
/* Translators: %1$s resolves to the SEO menu item, %2$s resolves to the Search Appearance submenu item. */
|
1207 |
-
esc_html__( 'Admin only notice: this page does not show a meta description because it does not have one, either write it for this page specifically or go into the [%1$s - %2$s] menu and set up a template.', 'wordpress-seo' ),
|
1208 |
-
esc_html__( 'SEO', 'wordpress-seo' ),
|
1209 |
-
esc_html__( 'Search Appearance', 'wordpress-seo' )
|
1210 |
-
);
|
1211 |
-
echo ' -->' . "\n";
|
1212 |
-
}
|
1213 |
-
}
|
1214 |
-
|
1215 |
-
/**
|
1216 |
-
* Generates the meta description text.
|
1217 |
-
*/
|
1218 |
-
private function generate_metadesc() {
|
1219 |
-
global $post, $wp_query;
|
1220 |
-
|
1221 |
-
$metadesc = '';
|
1222 |
-
$metadesc_override = false;
|
1223 |
-
$post_type = '';
|
1224 |
-
$template = '';
|
1225 |
-
|
1226 |
-
if ( is_object( $post ) && ( isset( $post->post_type ) && $post->post_type !== '' ) ) {
|
1227 |
-
$post_type = $post->post_type;
|
1228 |
-
}
|
1229 |
-
|
1230 |
-
if ( $this->woocommerce_shop_page->is_shop_page() ) {
|
1231 |
-
$post = get_post( $this->woocommerce_shop_page->get_shop_page_id() );
|
1232 |
-
$post_type = $this->get_queried_post_type();
|
1233 |
-
|
1234 |
-
if ( ( $metadesc === '' && $post_type !== '' ) && WPSEO_Options::get( 'metadesc-ptarchive-' . $post_type, '' ) !== '' ) {
|
1235 |
-
$template = WPSEO_Options::get( 'metadesc-ptarchive-' . $post_type );
|
1236 |
-
$term = $post;
|
1237 |
-
}
|
1238 |
-
$metadesc_override = $this->get_seo_meta_value( 'metadesc', $post->ID );
|
1239 |
-
}
|
1240 |
-
elseif ( WPSEO_Frontend_Page_Type::is_simple_page() ) {
|
1241 |
-
$post = get_post( WPSEO_Frontend_Page_Type::get_simple_page_id() );
|
1242 |
-
$post_type = isset( $post->post_type ) ? $post->post_type : '';
|
1243 |
-
|
1244 |
-
if ( ( $metadesc === '' && $post_type !== '' ) && WPSEO_Options::get( 'metadesc-' . $post_type, '' ) !== '' ) {
|
1245 |
-
$template = WPSEO_Options::get( 'metadesc-' . $post_type );
|
1246 |
-
$term = $post;
|
1247 |
-
}
|
1248 |
-
|
1249 |
-
if ( is_object( $post ) ) {
|
1250 |
-
$metadesc_override = $this->get_seo_meta_value( 'metadesc', $post->ID );
|
1251 |
-
}
|
1252 |
-
}
|
1253 |
-
else {
|
1254 |
-
if ( is_search() ) {
|
1255 |
-
$metadesc = '';
|
1256 |
-
}
|
1257 |
-
elseif ( WPSEO_Frontend_Page_Type::is_home_posts_page() ) {
|
1258 |
-
$template = WPSEO_Options::get( 'metadesc-home-wpseo' );
|
1259 |
-
$term = [];
|
1260 |
-
|
1261 |
-
if ( empty( $template ) ) {
|
1262 |
-
$template = get_bloginfo( 'description' );
|
1263 |
-
}
|
1264 |
-
}
|
1265 |
-
elseif ( WPSEO_Frontend_Page_Type::is_home_static_page() ) {
|
1266 |
-
$metadesc = $this->get_seo_meta_value( 'metadesc' );
|
1267 |
-
if ( ( $metadesc === '' && $post_type !== '' ) && WPSEO_Options::get( 'metadesc-' . $post_type, '' ) !== '' ) {
|
1268 |
-
$template = WPSEO_Options::get( 'metadesc-' . $post_type );
|
1269 |
-
}
|
1270 |
-
}
|
1271 |
-
elseif ( is_category() || is_tag() || is_tax() ) {
|
1272 |
-
$term = $wp_query->get_queried_object();
|
1273 |
-
$metadesc_override = WPSEO_Taxonomy_Meta::get_term_meta( $term, $term->taxonomy, 'desc' );
|
1274 |
-
if ( is_object( $term ) && isset( $term->taxonomy ) && WPSEO_Options::get( 'metadesc-tax-' . $term->taxonomy, '' ) !== '' ) {
|
1275 |
-
$template = WPSEO_Options::get( 'metadesc-tax-' . $term->taxonomy );
|
1276 |
-
}
|
1277 |
-
}
|
1278 |
-
elseif ( is_author() ) {
|
1279 |
-
$author_id = get_query_var( 'author' );
|
1280 |
-
$metadesc = get_the_author_meta( 'wpseo_metadesc', $author_id );
|
1281 |
-
if ( ( ! is_string( $metadesc ) || $metadesc === '' ) && WPSEO_Options::get( 'metadesc-author-wpseo', '' ) !== '' ) {
|
1282 |
-
$template = WPSEO_Options::get( 'metadesc-author-wpseo' );
|
1283 |
-
}
|
1284 |
-
}
|
1285 |
-
elseif ( is_post_type_archive() ) {
|
1286 |
-
$post_type = $this->get_queried_post_type();
|
1287 |
-
if ( WPSEO_Options::get( 'metadesc-ptarchive-' . $post_type, '' ) !== '' ) {
|
1288 |
-
$template = WPSEO_Options::get( 'metadesc-ptarchive-' . $post_type );
|
1289 |
-
}
|
1290 |
-
}
|
1291 |
-
elseif ( is_archive() ) {
|
1292 |
-
$template = WPSEO_Options::get( 'metadesc-archive-wpseo' );
|
1293 |
-
}
|
1294 |
-
|
1295 |
-
// If we're on a paginated page, and the template doesn't change for paginated pages, bail.
|
1296 |
-
if ( ( ! is_string( $metadesc ) || $metadesc === '' ) && get_query_var( 'paged' ) && get_query_var( 'paged' ) > 1 && $template !== '' ) {
|
1297 |
-
if ( strpos( $template, '%%page' ) === false ) {
|
1298 |
-
$metadesc = '';
|
1299 |
-
}
|
1300 |
-
}
|
1301 |
-
}
|
1302 |
-
|
1303 |
-
$post_data = $post;
|
1304 |
-
|
1305 |
-
if ( is_string( $metadesc_override ) && '' !== $metadesc_override ) {
|
1306 |
-
$metadesc = $metadesc_override;
|
1307 |
-
if ( isset( $term ) ) {
|
1308 |
-
$post_data = $term;
|
1309 |
-
}
|
1310 |
-
}
|
1311 |
-
elseif ( ( ! is_string( $metadesc ) || '' === $metadesc ) && '' !== $template ) {
|
1312 |
-
if ( ! isset( $term ) ) {
|
1313 |
-
$term = $wp_query->get_queried_object();
|
1314 |
-
}
|
1315 |
-
|
1316 |
-
$metadesc = $template;
|
1317 |
-
$post_data = $term;
|
1318 |
-
}
|
1319 |
-
|
1320 |
-
$metadesc = $this->replace_vars( $metadesc, $post_data );
|
1321 |
-
|
1322 |
-
/**
|
1323 |
-
* Filter: 'wpseo_metadesc' - Allow changing the Yoast SEO meta description sentence.
|
1324 |
-
*
|
1325 |
-
* @api string $metadesc The description sentence.
|
1326 |
-
*/
|
1327 |
-
$this->metadesc = apply_filters( 'wpseo_metadesc', trim( $metadesc ) );
|
1328 |
-
}
|
1329 |
-
|
1330 |
-
/**
|
1331 |
-
* Based on the redirect meta value, this function determines whether it should redirect the current post / page.
|
1332 |
-
*
|
1333 |
-
* @return boolean
|
1334 |
-
*/
|
1335 |
-
public function page_redirect() {
|
1336 |
-
if ( is_singular() ) {
|
1337 |
-
global $post;
|
1338 |
-
if ( ! isset( $post ) || ! is_object( $post ) ) {
|
1339 |
-
return false;
|
1340 |
-
}
|
1341 |
-
|
1342 |
-
$redir = $this->get_seo_meta_value( 'redirect', $post->ID );
|
1343 |
-
if ( $redir !== '' ) {
|
1344 |
-
wp_redirect( $redir, 301, 'Yoast SEO' );
|
1345 |
-
exit;
|
1346 |
-
}
|
1347 |
-
}
|
1348 |
-
|
1349 |
-
return false;
|
1350 |
-
}
|
1351 |
-
|
1352 |
-
/**
|
1353 |
-
* Outputs noindex values for the current page.
|
1354 |
-
*/
|
1355 |
-
public function noindex_page() {
|
1356 |
-
remove_action( 'wpseo_head', [ $this, 'canonical' ], 20 );
|
1357 |
-
echo '<meta name="robots" content="noindex" />', "\n";
|
1358 |
-
}
|
1359 |
-
|
1360 |
-
/**
|
1361 |
-
* Send a Robots HTTP header preventing URL from being indexed in the search results while allowing search engines
|
1362 |
-
* to follow the links in the object at the URL.
|
1363 |
-
*
|
1364 |
-
* @since 1.1.7
|
1365 |
-
* @return boolean Boolean indicating whether the noindex header was sent.
|
1366 |
-
*/
|
1367 |
-
public function noindex_robots() {
|
1368 |
-
|
1369 |
-
if ( ( is_robots() ) && headers_sent() === false ) {
|
1370 |
-
header( 'X-Robots-Tag: noindex, follow', true );
|
1371 |
-
|
1372 |
-
return true;
|
1373 |
-
}
|
1374 |
-
|
1375 |
-
return false;
|
1376 |
-
}
|
1377 |
-
|
1378 |
-
/**
|
1379 |
-
* Adds rel="nofollow" to a link, only used for login / registration links.
|
1380 |
-
*
|
1381 |
-
* @param string $input The link element as a string.
|
1382 |
-
*
|
1383 |
-
* @return string
|
1384 |
-
*/
|
1385 |
-
public function nofollow_link( $input ) {
|
1386 |
-
return str_replace( '<a ', '<a rel="nofollow" ', $input );
|
1387 |
-
}
|
1388 |
-
|
1389 |
-
/**
|
1390 |
-
* When certain archives are disabled, this redirects those to the homepage.
|
1391 |
-
*
|
1392 |
-
* @return boolean False when no redirect was triggered.
|
1393 |
-
*/
|
1394 |
-
public function archive_redirect() {
|
1395 |
-
global $wp_query;
|
1396 |
-
|
1397 |
-
if (
|
1398 |
-
( WPSEO_Options::get( 'disable-date', false ) && $wp_query->is_date ) ||
|
1399 |
-
( WPSEO_Options::get( 'disable-author', false ) && $wp_query->is_author ) ||
|
1400 |
-
( WPSEO_Options::get( 'disable-post_format', false ) && $wp_query->is_tax( 'post_format' ) )
|
1401 |
-
) {
|
1402 |
-
$this->redirect( get_bloginfo( 'url' ), 301 );
|
1403 |
-
|
1404 |
-
return true;
|
1405 |
-
}
|
1406 |
-
|
1407 |
-
return false;
|
1408 |
-
}
|
1409 |
-
|
1410 |
-
/**
|
1411 |
-
* If the option to disable attachment URLs is checked, this performs the redirect to the attachment.
|
1412 |
-
*
|
1413 |
-
* @return bool Returns succes status.
|
1414 |
-
*/
|
1415 |
-
public function attachment_redirect() {
|
1416 |
-
if ( WPSEO_Options::get( 'disable-attachment', false ) === false ) {
|
1417 |
-
return false;
|
1418 |
-
}
|
1419 |
-
if ( ! is_attachment() ) {
|
1420 |
-
return false;
|
1421 |
-
}
|
1422 |
-
|
1423 |
-
/**
|
1424 |
-
* Allow the developer to change the target redirection URL for attachments.
|
1425 |
-
*
|
1426 |
-
* @api string $attachment_url The attachment URL for the queried object.
|
1427 |
-
* @api object $queried_object The queried object.
|
1428 |
-
*
|
1429 |
-
* @since 7.5.3
|
1430 |
-
*/
|
1431 |
-
$url = apply_filters( 'wpseo_attachment_redirect_url', wp_get_attachment_url( get_queried_object_id() ), get_queried_object() );
|
1432 |
-
|
1433 |
-
|
1434 |
-
if ( ! empty( $url ) ) {
|
1435 |
-
$this->do_attachment_redirect( $url );
|
1436 |
-
|
1437 |
-
return true;
|
1438 |
-
}
|
1439 |
-
|
1440 |
-
return false;
|
1441 |
-
}
|
1442 |
-
|
1443 |
-
/**
|
1444 |
-
* Performs the redirect from the attachment page to the image file itself.
|
1445 |
-
*
|
1446 |
-
* @param string $attachment_url The attachment image url.
|
1447 |
-
*
|
1448 |
-
* @return void
|
1449 |
-
*/
|
1450 |
-
public function do_attachment_redirect( $attachment_url ) {
|
1451 |
-
wp_redirect( $attachment_url, 301, 'Yoast SEO' );
|
1452 |
-
exit;
|
1453 |
-
}
|
1454 |
-
|
1455 |
-
/**
|
1456 |
-
* Replaces the possible RSS variables with their actual values.
|
1457 |
-
*
|
1458 |
-
* @param string $content The RSS content that should have the variables replaced.
|
1459 |
-
*
|
1460 |
-
* @return string
|
1461 |
-
*/
|
1462 |
-
public function rss_replace_vars( $content ) {
|
1463 |
-
global $post;
|
1464 |
-
|
1465 |
-
/**
|
1466 |
-
* Allow the developer to determine whether or not to follow the links
|
1467 |
-
* in the bits Yoast SEO adds to the RSS feed, defaults to true.
|
1468 |
-
*
|
1469 |
-
* @api bool $unsigned Whether or not to follow the links in RSS feed, defaults to true.
|
1470 |
-
*
|
1471 |
-
* @since 1.4.20
|
1472 |
-
*/
|
1473 |
-
$no_follow = apply_filters( 'nofollow_rss_links', true );
|
1474 |
-
$no_follow_attr = '';
|
1475 |
-
if ( $no_follow === true ) {
|
1476 |
-
$no_follow_attr = 'rel="nofollow" ';
|
1477 |
-
}
|
1478 |
-
|
1479 |
-
$author_link = '';
|
1480 |
-
if ( is_object( $post ) ) {
|
1481 |
-
$author_link = '<a ' . $no_follow_attr . 'href="' . esc_url( get_author_posts_url( $post->post_author ) ) . '">' . esc_html( get_the_author() ) . '</a>';
|
1482 |
-
}
|
1483 |
-
|
1484 |
-
$post_link = '<a ' . $no_follow_attr . 'href="' . esc_url( get_permalink() ) . '">' . esc_html( get_the_title() ) . '</a>';
|
1485 |
-
$blog_link = '<a ' . $no_follow_attr . 'href="' . esc_url( get_bloginfo( 'url' ) ) . '">' . esc_html( get_bloginfo( 'name' ) ) . '</a>';
|
1486 |
-
$blog_desc_link = '<a ' . $no_follow_attr . 'href="' . esc_url( get_bloginfo( 'url' ) ) . '">' . esc_html( get_bloginfo( 'name' ) ) . ' - ' . esc_html( get_bloginfo( 'description' ) ) . '</a>';
|
1487 |
-
|
1488 |
-
$content = stripslashes( trim( $content ) );
|
1489 |
-
$content = str_replace( '%%AUTHORLINK%%', $author_link, $content );
|
1490 |
-
$content = str_replace( '%%POSTLINK%%', $post_link, $content );
|
1491 |
-
$content = str_replace( '%%BLOGLINK%%', $blog_link, $content );
|
1492 |
-
$content = str_replace( '%%BLOGDESCLINK%%', $blog_desc_link, $content );
|
1493 |
-
|
1494 |
-
return $content;
|
1495 |
-
}
|
1496 |
-
|
1497 |
-
/**
|
1498 |
-
* Adds the RSS footer (or header) to the full RSS feed item.
|
1499 |
-
*
|
1500 |
-
* @param string $content Feed item content.
|
1501 |
-
*
|
1502 |
-
* @return string
|
1503 |
-
*/
|
1504 |
-
public function embed_rssfooter( $content ) {
|
1505 |
-
return $this->embed_rss( $content, 'full' );
|
1506 |
-
}
|
1507 |
-
|
1508 |
-
/**
|
1509 |
-
* Adds the RSS footer (or header) to the excerpt RSS feed item.
|
1510 |
-
*
|
1511 |
-
* @param string $content Feed item excerpt.
|
1512 |
-
*
|
1513 |
-
* @return string
|
1514 |
-
*/
|
1515 |
-
public function embed_rssfooter_excerpt( $content ) {
|
1516 |
-
return $this->embed_rss( $content, 'excerpt' );
|
1517 |
-
}
|
1518 |
-
|
1519 |
-
/**
|
1520 |
-
* Adds the RSS footer and/or header to an RSS feed item.
|
1521 |
-
*
|
1522 |
-
* @since 1.4.14
|
1523 |
-
*
|
1524 |
-
* @param string $content Feed item content.
|
1525 |
-
* @param string $context Feed item context, either 'excerpt' or 'full'.
|
1526 |
-
*
|
1527 |
-
* @return string
|
1528 |
-
*/
|
1529 |
-
public function embed_rss( $content, $context = 'full' ) {
|
1530 |
-
|
1531 |
-
/**
|
1532 |
-
* Filter: 'wpseo_include_rss_footer' - Allow the RSS footer to be dynamically shown/hidden.
|
1533 |
-
*
|
1534 |
-
* @api boolean $show_embed Indicates if the RSS footer should be shown or not.
|
1535 |
-
*
|
1536 |
-
* @param string $context The context of the RSS content - 'full' or 'excerpt'.
|
1537 |
-
*/
|
1538 |
-
if ( ! apply_filters( 'wpseo_include_rss_footer', true, $context ) ) {
|
1539 |
-
return $content;
|
1540 |
-
}
|
1541 |
-
|
1542 |
-
if ( is_feed() ) {
|
1543 |
-
$before = '';
|
1544 |
-
$after = '';
|
1545 |
-
|
1546 |
-
if ( WPSEO_Options::get( 'rssbefore', '' ) !== '' ) {
|
1547 |
-
$before = wpautop( $this->rss_replace_vars( WPSEO_Options::get( 'rssbefore' ) ) );
|
1548 |
-
}
|
1549 |
-
if ( WPSEO_Options::get( 'rssafter', '' ) !== '' ) {
|
1550 |
-
$after = wpautop( $this->rss_replace_vars( WPSEO_Options::get( 'rssafter' ) ) );
|
1551 |
-
}
|
1552 |
-
if ( $before !== '' || $after !== '' ) {
|
1553 |
-
if ( ( isset( $context ) && $context === 'excerpt' ) && trim( $content ) !== '' ) {
|
1554 |
-
$content = wpautop( $content );
|
1555 |
-
}
|
1556 |
-
$content = $before . $content . $after;
|
1557 |
-
}
|
1558 |
-
}
|
1559 |
-
|
1560 |
-
return $content;
|
1561 |
-
}
|
1562 |
-
|
1563 |
-
/**
|
1564 |
-
* Used in the force rewrite functionality this retrieves the output, replaces the title with the proper SEO
|
1565 |
-
* title and then flushes the output.
|
1566 |
-
*/
|
1567 |
-
public function flush_cache() {
|
1568 |
-
|
1569 |
-
global $wp_query;
|
1570 |
-
|
1571 |
-
if ( $this->ob_started !== true ) {
|
1572 |
-
return false;
|
1573 |
-
}
|
1574 |
-
|
1575 |
-
$content = ob_get_clean();
|
1576 |
-
$head_end = stripos( $content, '/head>' );
|
1577 |
-
|
1578 |
-
$old_wp_query = $wp_query;
|
1579 |
-
|
1580 |
-
wp_reset_query();
|
1581 |
-
|
1582 |
-
// Only replace the debug marker when it is hooked.
|
1583 |
-
if ( $head_end && $this->show_debug_marker() ) {
|
1584 |
-
$title = $this->title( '' );
|
1585 |
-
$debug_mark = $this->get_debug_mark();
|
1586 |
-
|
1587 |
-
/*
|
1588 |
-
* Find all titles in the head, strip them out and add the new one in within the debug marker,
|
1589 |
-
* so it's easily identified whether a site uses force rewrite.
|
1590 |
-
*/
|
1591 |
-
$head = preg_replace( '/<title.*?\/title>/si', '', substr( $content, 0, $head_end ) );
|
1592 |
-
$head = str_replace( $debug_mark, $debug_mark . PHP_EOL . '<title>' . esc_html( $title ) . '</title>', $head );
|
1593 |
-
|
1594 |
-
$content = $head . substr( $content, $head_end );
|
1595 |
-
}
|
1596 |
-
|
1597 |
-
$GLOBALS['wp_query'] = $old_wp_query;
|
1598 |
-
|
1599 |
-
echo $content;
|
1600 |
-
|
1601 |
-
return true;
|
1602 |
-
}
|
1603 |
-
|
1604 |
-
/**
|
1605 |
-
* Starts the output buffer so it can later be fixed by flush_cache().
|
1606 |
-
*/
|
1607 |
-
public function force_rewrite_output_buffer() {
|
1608 |
-
$this->ob_started = true;
|
1609 |
-
ob_start();
|
1610 |
-
}
|
1611 |
-
|
1612 |
-
/**
|
1613 |
-
* Get the product name in the head section.
|
1614 |
-
*
|
1615 |
-
* @return string
|
1616 |
-
*/
|
1617 |
-
private function head_product_name() {
|
1618 |
-
if ( $this->is_premium() ) {
|
1619 |
-
return 'Yoast SEO Premium plugin';
|
1620 |
-
}
|
1621 |
-
|
1622 |
-
return 'Yoast SEO plugin';
|
1623 |
-
}
|
1624 |
-
|
1625 |
-
/**
|
1626 |
-
* Check if this plugin is the premium version of WPSEO.
|
1627 |
-
*
|
1628 |
-
* @return bool
|
1629 |
-
*/
|
1630 |
-
protected function is_premium() {
|
1631 |
-
return WPSEO_Utils::is_yoast_seo_premium();
|
1632 |
-
}
|
1633 |
-
|
1634 |
-
/**
|
1635 |
-
* Check if term archive query is for multiple terms (/term-1,term2/ or /term-1+term-2/).
|
1636 |
-
*
|
1637 |
-
* @return bool
|
1638 |
-
*/
|
1639 |
-
protected function is_multiple_terms_query() {
|
1640 |
-
|
1641 |
-
global $wp_query;
|
1642 |
-
|
1643 |
-
if ( ! is_tax() && ! is_tag() && ! is_category() ) {
|
1644 |
-
return false;
|
1645 |
-
}
|
1646 |
-
|
1647 |
-
$term = get_queried_object();
|
1648 |
-
$queried_terms = $wp_query->tax_query->queried_terms;
|
1649 |
-
|
1650 |
-
if ( empty( $queried_terms[ $term->taxonomy ]['terms'] ) ) {
|
1651 |
-
return false;
|
1652 |
-
}
|
1653 |
-
|
1654 |
-
return count( $queried_terms[ $term->taxonomy ]['terms'] ) > 1;
|
1655 |
-
}
|
1656 |
-
|
1657 |
-
/**
|
1658 |
-
* Wraps wp_safe_redirect to allow testing for redirects.
|
1659 |
-
*
|
1660 |
-
* @param string $location The path to redirect to.
|
1661 |
-
* @param int $status Status code to use.
|
1662 |
-
*/
|
1663 |
-
public function redirect( $location, $status = 302 ) {
|
1664 |
-
wp_safe_redirect( $location, $status, 'Yoast SEO' );
|
1665 |
-
exit;
|
1666 |
-
}
|
1667 |
-
|
1668 |
-
/**
|
1669 |
-
* Checks if the debug mark action has been added.
|
1670 |
-
*
|
1671 |
-
* @return bool True when the action exists.
|
1672 |
-
*/
|
1673 |
-
protected function show_debug_marker() {
|
1674 |
-
return has_action( 'wpseo_head', [ $this, 'debug_mark' ] ) !== false;
|
1675 |
-
}
|
1676 |
-
|
1677 |
-
/**
|
1678 |
-
* Shows the closing debug mark.
|
1679 |
-
*
|
1680 |
-
* @return string The closing debug mark comment.
|
1681 |
-
*/
|
1682 |
-
protected function show_closing_debug_mark() {
|
1683 |
-
if ( ! $this->show_debug_marker() ) {
|
1684 |
-
return '';
|
1685 |
-
}
|
1686 |
-
|
1687 |
-
return sprintf(
|
1688 |
-
"<!-- / %s. -->\n\n",
|
1689 |
-
esc_html( $this->head_product_name() )
|
1690 |
-
);
|
1691 |
-
}
|
1692 |
-
|
1693 |
-
/**
|
1694 |
-
* Builds the title for a post type archive.
|
1695 |
-
*
|
1696 |
-
* @param string $separator The title separator.
|
1697 |
-
* @param string $separator_location The location of the title separator.
|
1698 |
-
*
|
1699 |
-
* @return string The title to use on a post type archive.
|
1700 |
-
*/
|
1701 |
-
protected function get_post_type_archive_title( $separator, $separator_location ) {
|
1702 |
-
$post_type = $this->get_queried_post_type();
|
1703 |
-
|
1704 |
-
$title = $this->get_title_from_options( 'title-ptarchive-' . $post_type );
|
1705 |
-
|
1706 |
-
if ( ! is_string( $title ) || '' === $title ) {
|
1707 |
-
$post_type_obj = get_post_type_object( $post_type );
|
1708 |
-
$title_part = '';
|
1709 |
-
|
1710 |
-
if ( isset( $post_type_obj->labels->menu_name ) ) {
|
1711 |
-
$title_part = $post_type_obj->labels->menu_name;
|
1712 |
-
}
|
1713 |
-
elseif ( isset( $post_type_obj->name ) ) {
|
1714 |
-
$title_part = $post_type_obj->name;
|
1715 |
-
}
|
1716 |
-
|
1717 |
-
$title = $this->get_default_title( $separator, $separator_location, $title_part );
|
1718 |
-
}
|
1719 |
-
|
1720 |
-
return $title;
|
1721 |
-
}
|
1722 |
-
|
1723 |
-
/**
|
1724 |
-
* Retrieves the WooCommerce title.
|
1725 |
-
*
|
1726 |
-
* @return string The WooCommerce title.
|
1727 |
-
*/
|
1728 |
-
protected function get_woocommerce_title() {
|
1729 |
-
$shop_page_id = $this->woocommerce_shop_page->get_shop_page_id();
|
1730 |
-
$post = get_post( $shop_page_id );
|
1731 |
-
$title = $this->get_seo_title( $post );
|
1732 |
-
|
1733 |
-
if ( is_string( $title ) && $title !== '' ) {
|
1734 |
-
return $title;
|
1735 |
-
}
|
1736 |
-
|
1737 |
-
if ( $shop_page_id !== -1 && is_archive() ) {
|
1738 |
-
$title = $this->get_template( 'title-' . $post->post_type );
|
1739 |
-
$title = $this->replace_vars( $title, $post );
|
1740 |
-
}
|
1741 |
-
|
1742 |
-
return $title;
|
1743 |
-
}
|
1744 |
-
|
1745 |
-
/**
|
1746 |
-
* Retrieves a template from the options.
|
1747 |
-
*
|
1748 |
-
* @param string $template The template to retrieve.
|
1749 |
-
*
|
1750 |
-
* @return string The set template.
|
1751 |
-
*/
|
1752 |
-
protected function get_template( $template ) {
|
1753 |
-
return WPSEO_Options::get( $template );
|
1754 |
-
}
|
1755 |
-
|
1756 |
-
/**
|
1757 |
-
* Retrieves the queried post type.
|
1758 |
-
*
|
1759 |
-
* @return string The queried post type.
|
1760 |
-
*/
|
1761 |
-
protected function get_queried_post_type() {
|
1762 |
-
$post_type = get_query_var( 'post_type' );
|
1763 |
-
if ( is_array( $post_type ) ) {
|
1764 |
-
$post_type = reset( $post_type );
|
1765 |
-
}
|
1766 |
-
|
1767 |
-
return $post_type;
|
1768 |
-
}
|
1769 |
-
|
1770 |
-
/**
|
1771 |
-
* Retrieves the SEO Meta value for the supplied key and optional post.
|
1772 |
-
*
|
1773 |
-
* @param string $key The key to retrieve.
|
1774 |
-
* @param int $post_id Optional. The post to retrieve the key for.
|
1775 |
-
*
|
1776 |
-
* @return string Meta value.
|
1777 |
-
*/
|
1778 |
-
protected function get_seo_meta_value( $key, $post_id = 0 ) {
|
1779 |
-
return WPSEO_Meta::get_value( $key, $post_id );
|
1780 |
-
}
|
1781 |
-
|
1782 |
-
/**
|
1783 |
-
* Replaces the dynamic variables in a string.
|
1784 |
-
*
|
1785 |
-
* @param string $string The string to replace the variables in.
|
1786 |
-
* @param array $args The object some of the replacement values might come from,
|
1787 |
-
* could be a post, taxonomy or term.
|
1788 |
-
* @param array $omit Variables that should not be replaced by this function.
|
1789 |
-
*
|
1790 |
-
* @return string The replaced string.
|
1791 |
-
*/
|
1792 |
-
protected function replace_vars( $string, $args, $omit = [] ) {
|
1793 |
-
$replacer = new WPSEO_Replace_Vars();
|
1794 |
-
|
1795 |
-
return $replacer->replace( $string, $args, $omit );
|
1796 |
-
}
|
1797 |
-
|
1798 |
-
/**
|
1799 |
-
* Adds shortcode support to category descriptions.
|
1800 |
-
*
|
1801 |
-
* @param string $desc String to add shortcodes in.
|
1802 |
-
*
|
1803 |
-
* @return string Content with shortcodes filtered out.
|
1804 |
-
*/
|
1805 |
-
public function custom_category_descriptions_add_shortcode_support( $desc ) {
|
1806 |
-
// Wrap in output buffering to prevent shortcodes that echo stuff instead of return from breaking things.
|
1807 |
-
ob_start();
|
1808 |
-
$desc = do_shortcode( $desc );
|
1809 |
-
ob_end_clean();
|
1810 |
-
return $desc;
|
1811 |
-
}
|
1812 |
-
|
1813 |
-
/* ********************* DEPRECATED METHODS ********************* */
|
1814 |
-
|
1815 |
-
/**
|
1816 |
-
* Outputs the meta keywords element.
|
1817 |
-
*
|
1818 |
-
* @deprecated 6.3
|
1819 |
-
* @codeCoverageIgnore
|
1820 |
-
*
|
1821 |
-
* @return void
|
1822 |
-
*/
|
1823 |
-
public function metakeywords() {
|
1824 |
-
if ( function_exists( 'wp_get_current_user' ) && current_user_can( 'manage_options' ) ) {
|
1825 |
-
_deprecated_function( 'WPSEO_Frontend::metakeywords', '6.3' );
|
1826 |
-
}
|
1827 |
-
}
|
1828 |
-
|
1829 |
-
/**
|
1830 |
-
* Removes unneeded query variables from the URL.
|
1831 |
-
*
|
1832 |
-
* @deprecated 7.0
|
1833 |
-
* @codeCoverageIgnore
|
1834 |
-
*
|
1835 |
-
* @return void
|
1836 |
-
*/
|
1837 |
-
public function clean_permalink() {
|
1838 |
-
// As this is a frontend method, we want to make sure it is not displayed for non-logged in users.
|
1839 |
-
if ( function_exists( 'wp_get_current_user' ) && current_user_can( 'manage_options' ) ) {
|
1840 |
-
_deprecated_function( 'WPSEO_Frontend::clean_permalink', '7.0' );
|
1841 |
-
}
|
1842 |
-
}
|
1843 |
-
|
1844 |
-
/**
|
1845 |
-
* Trailing slashes for everything except is_single().
|
1846 |
-
*
|
1847 |
-
* @deprecated 7.0
|
1848 |
-
* @codeCoverageIgnore
|
1849 |
-
*/
|
1850 |
-
public function add_trailingslash() {
|
1851 |
-
// As this is a frontend method, we want to make sure it is not displayed for non-logged in users.
|
1852 |
-
if ( function_exists( 'wp_get_current_user' ) && current_user_can( 'manage_options' ) ) {
|
1853 |
-
_deprecated_function( 'WPSEO_Frontend::add_trailingslash', '7.0', null );
|
1854 |
-
}
|
1855 |
-
}
|
1856 |
-
|
1857 |
-
/**
|
1858 |
-
* Removes the ?replytocom variable from the link, replacing it with a #comment-<number> anchor.
|
1859 |
-
*
|
1860 |
-
* @deprecated 7.0
|
1861 |
-
* @codeCoverageIgnore
|
1862 |
-
*
|
1863 |
-
* @param string $link The comment link as a string.
|
1864 |
-
*
|
1865 |
-
* @return string The modified link.
|
1866 |
-
*/
|
1867 |
-
public function remove_reply_to_com( $link ) {
|
1868 |
-
_deprecated_function( 'WPSEO_Frontend::remove_reply_to_com', '7.0', 'WPSEO_Remove_Reply_To_Com::remove_reply_to_com' );
|
1869 |
-
|
1870 |
-
$remove_replytocom = new WPSEO_Remove_Reply_To_Com();
|
1871 |
-
return $remove_replytocom->remove_reply_to_com( $link );
|
1872 |
-
}
|
1873 |
-
|
1874 |
-
/**
|
1875 |
-
* Redirects out the ?replytocom variables.
|
1876 |
-
*
|
1877 |
-
* @deprecated 7.0
|
1878 |
-
* @codeCoverageIgnore
|
1879 |
-
*
|
1880 |
-
* @return boolean True when redirect has been done.
|
1881 |
-
*/
|
1882 |
-
public function replytocom_redirect() {
|
1883 |
-
_deprecated_function( 'WPSEO_Frontend::replytocom_redirect', '7.0', 'WPSEO_Remove_Reply_To_Com::replytocom_redirect' );
|
1884 |
-
|
1885 |
-
$remove_replytocom = new WPSEO_Remove_Reply_To_Com();
|
1886 |
-
return $remove_replytocom->replytocom_redirect();
|
1887 |
-
}
|
1888 |
-
|
1889 |
-
/**
|
1890 |
-
* Determine whether this is the homepage and shows posts.
|
1891 |
-
*
|
1892 |
-
* @deprecated 7.7
|
1893 |
-
* @codeCoverageIgnore
|
1894 |
-
*
|
1895 |
-
* @return bool Whether or not the current page is the homepage that displays posts.
|
1896 |
-
*/
|
1897 |
-
public function is_home_posts_page() {
|
1898 |
-
_deprecated_function( __FUNCTION__, '7.7', 'WPSEO_Frontend_Page_Type::is_home_posts_page' );
|
1899 |
-
|
1900 |
-
return WPSEO_Frontend_Page_Type::is_home_posts_page();
|
1901 |
-
}
|
1902 |
-
|
1903 |
-
/**
|
1904 |
-
* Determine whether the this is the static frontpage.
|
1905 |
-
*
|
1906 |
-
* @deprecated 7.7
|
1907 |
-
* @codeCoverageIgnore
|
1908 |
-
*
|
1909 |
-
* @return bool Whether or not the current page is a static frontpage.
|
1910 |
-
*/
|
1911 |
-
public function is_home_static_page() {
|
1912 |
-
_deprecated_function( __FUNCTION__, '7.7', 'WPSEO_Frontend_Page_Type::is_home_static_page' );
|
1913 |
-
|
1914 |
-
return WPSEO_Frontend_Page_Type::is_home_static_page();
|
1915 |
-
}
|
1916 |
-
|
1917 |
-
/**
|
1918 |
-
* Determine whether this is the posts page, when it's not the frontpage.
|
1919 |
-
*
|
1920 |
-
* @deprecated 7.7
|
1921 |
-
* @codeCoverageIgnore
|
1922 |
-
*
|
1923 |
-
* @return bool Whether or not it's a non-frontpage, posts page.
|
1924 |
-
*/
|
1925 |
-
public function is_posts_page() {
|
1926 |
-
_deprecated_function( __FUNCTION__, '7.7', 'WPSEO_Frontend_Page_Type::is_posts_page' );
|
1927 |
-
|
1928 |
-
return WPSEO_Frontend_Page_Type::is_posts_page();
|
1929 |
-
}
|
1930 |
-
|
1931 |
-
/**
|
1932 |
-
* Function used in testing whether the title should be force rewritten or not.
|
1933 |
-
*
|
1934 |
-
* @deprecated 9.6
|
1935 |
-
* @codeCoverageIgnore
|
1936 |
-
*
|
1937 |
-
* @param string $title Title string.
|
1938 |
-
*
|
1939 |
-
* @return string
|
1940 |
-
*/
|
1941 |
-
public function title_test_helper( $title ) {
|
1942 |
-
_deprecated_function( __METHOD__, 'WPSEO 9.6' );
|
1943 |
-
|
1944 |
-
return $title;
|
1945 |
-
}
|
1946 |
-
|
1947 |
-
/**
|
1948 |
-
* Output the rel=publisher code on every page of the site.
|
1949 |
-
*
|
1950 |
-
* @deprecated 10.1.3
|
1951 |
-
* @codeCoverageIgnore
|
1952 |
-
*
|
1953 |
-
* @return boolean Boolean indicating whether the publisher link was printed.
|
1954 |
-
*/
|
1955 |
-
public function publisher() {
|
1956 |
-
_deprecated_function( __METHOD__, 'WPSEO 10.1.3' );
|
1957 |
-
|
1958 |
-
return false;
|
1959 |
-
}
|
1960 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/class-handle-404.php
DELETED
@@ -1,92 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Frontend
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Class WPSEO_Handle_404
|
10 |
-
*
|
11 |
-
* Handles intercepting requests.
|
12 |
-
*
|
13 |
-
* @since 9.4
|
14 |
-
*/
|
15 |
-
class WPSEO_Handle_404 implements WPSEO_WordPress_Integration {
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Registers all hooks to WordPress.
|
19 |
-
*
|
20 |
-
* @return void
|
21 |
-
*/
|
22 |
-
public function register_hooks() {
|
23 |
-
add_filter( 'pre_handle_404', [ $this, 'handle_404' ] );
|
24 |
-
}
|
25 |
-
|
26 |
-
/**
|
27 |
-
* Handle the 404 status code.
|
28 |
-
*
|
29 |
-
* @param bool $handled Whether we've handled the request.
|
30 |
-
*
|
31 |
-
* @return bool True if it's 404.
|
32 |
-
*/
|
33 |
-
public function handle_404( $handled ) {
|
34 |
-
|
35 |
-
if ( is_feed() ) {
|
36 |
-
return $this->is_feed_404( $handled );
|
37 |
-
}
|
38 |
-
|
39 |
-
return $handled;
|
40 |
-
}
|
41 |
-
|
42 |
-
/**
|
43 |
-
* If there are no posts in a feed, make it 404 instead of sending an empty RSS feed.
|
44 |
-
*
|
45 |
-
* @global WP_Query $wp_query
|
46 |
-
*
|
47 |
-
* @param bool $handled Whether we've handled the request.
|
48 |
-
*
|
49 |
-
* @return bool True if it's 404.
|
50 |
-
*/
|
51 |
-
protected function is_feed_404( $handled ) {
|
52 |
-
global $wp_query;
|
53 |
-
|
54 |
-
// Don't 404 if the query contains post(s) or an object.
|
55 |
-
if ( $wp_query->posts || $wp_query->get_queried_object() ) {
|
56 |
-
return $handled;
|
57 |
-
}
|
58 |
-
|
59 |
-
// Don't 404 if it isn't archive or singular.
|
60 |
-
if ( ! $wp_query->is_archive() && ! $wp_query->is_singular() ) {
|
61 |
-
return $handled;
|
62 |
-
}
|
63 |
-
|
64 |
-
$wp_query->is_feed = false;
|
65 |
-
$this->set_404();
|
66 |
-
|
67 |
-
add_filter( 'old_slug_redirect_url', '__return_false' );
|
68 |
-
add_filter( 'redirect_canonical', '__return_false' );
|
69 |
-
|
70 |
-
return true;
|
71 |
-
}
|
72 |
-
|
73 |
-
/**
|
74 |
-
* Sets the 404 status code.
|
75 |
-
*
|
76 |
-
* @global WP_Query $wp_query
|
77 |
-
*
|
78 |
-
* @return void
|
79 |
-
*/
|
80 |
-
private function set_404() {
|
81 |
-
global $wp_query;
|
82 |
-
|
83 |
-
// Overwrite Content-Type header.
|
84 |
-
if ( ! headers_sent() ) {
|
85 |
-
header( 'Content-Type: ' . get_option( 'html_type' ) . '; charset=' . get_option( 'blog_charset' ) );
|
86 |
-
}
|
87 |
-
|
88 |
-
$wp_query->set_404();
|
89 |
-
status_header( 404 );
|
90 |
-
nocache_headers();
|
91 |
-
}
|
92 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/class-opengraph-image.php
DELETED
@@ -1,674 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Frontend
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Class WPSEO_OpenGraph_Image.
|
10 |
-
*/
|
11 |
-
class WPSEO_OpenGraph_Image {
|
12 |
-
|
13 |
-
/**
|
14 |
-
* The image ID used when the image is external.
|
15 |
-
*
|
16 |
-
* @var string
|
17 |
-
*/
|
18 |
-
const EXTERNAL_IMAGE_ID = '-1';
|
19 |
-
|
20 |
-
/**
|
21 |
-
* Holds the images that have been put out as OG image.
|
22 |
-
*
|
23 |
-
* @var array
|
24 |
-
*/
|
25 |
-
protected $images = [];
|
26 |
-
|
27 |
-
/**
|
28 |
-
* Holds the WPSEO_OpenGraph instance, so we can call og_tag.
|
29 |
-
*
|
30 |
-
* @var WPSEO_OpenGraph
|
31 |
-
*/
|
32 |
-
private $opengraph;
|
33 |
-
|
34 |
-
/**
|
35 |
-
* Image tags that we output for each image.
|
36 |
-
*
|
37 |
-
* @var array
|
38 |
-
*/
|
39 |
-
private $image_tags = [
|
40 |
-
'width' => 'width',
|
41 |
-
'height' => 'height',
|
42 |
-
'mime-type' => 'type',
|
43 |
-
];
|
44 |
-
|
45 |
-
/**
|
46 |
-
* The parameters we have for Facebook images.
|
47 |
-
*
|
48 |
-
* @var array
|
49 |
-
*/
|
50 |
-
private $image_params = [
|
51 |
-
'min_width' => 200,
|
52 |
-
'max_width' => 2000,
|
53 |
-
'min_height' => 200,
|
54 |
-
'max_height' => 2000,
|
55 |
-
];
|
56 |
-
|
57 |
-
/**
|
58 |
-
* Image types that are supported by OpenGraph.
|
59 |
-
*
|
60 |
-
* @var array
|
61 |
-
*/
|
62 |
-
private $valid_image_types = [ 'image/jpeg', 'image/gif', 'image/png' ];
|
63 |
-
|
64 |
-
/**
|
65 |
-
* Image extensions that are supported by OpenGraph.
|
66 |
-
*
|
67 |
-
* @var array
|
68 |
-
*/
|
69 |
-
private $valid_image_extensions = [ 'jpeg', 'jpg', 'gif', 'png' ];
|
70 |
-
|
71 |
-
/**
|
72 |
-
* Constructor.
|
73 |
-
*
|
74 |
-
* @param null|string $image Optional. The Image to use.
|
75 |
-
* @param WPSEO_OpenGraph $opengraph Optional. The OpenGraph object.
|
76 |
-
*/
|
77 |
-
public function __construct( $image = null, WPSEO_OpenGraph $opengraph = null ) {
|
78 |
-
if ( $opengraph === null ) {
|
79 |
-
global $wpseo_og;
|
80 |
-
|
81 |
-
// Use the global if available.
|
82 |
-
if ( empty( $wpseo_og ) ) {
|
83 |
-
$wpseo_og = new WPSEO_OpenGraph();
|
84 |
-
}
|
85 |
-
|
86 |
-
$opengraph = $wpseo_og;
|
87 |
-
}
|
88 |
-
|
89 |
-
$this->opengraph = $opengraph;
|
90 |
-
|
91 |
-
if ( ! empty( $image ) && is_string( $image ) ) {
|
92 |
-
$this->add_image_by_url( $image );
|
93 |
-
}
|
94 |
-
|
95 |
-
if ( ! post_password_required() ) {
|
96 |
-
$this->set_images();
|
97 |
-
}
|
98 |
-
}
|
99 |
-
|
100 |
-
/**
|
101 |
-
* Outputs the images.
|
102 |
-
*
|
103 |
-
* @return void
|
104 |
-
*/
|
105 |
-
public function show() {
|
106 |
-
foreach ( $this->get_images() as $image => $image_meta ) {
|
107 |
-
$this->og_image_tag( $image );
|
108 |
-
$this->show_image_meta( $image_meta );
|
109 |
-
}
|
110 |
-
}
|
111 |
-
|
112 |
-
/**
|
113 |
-
* Output the image metadata.
|
114 |
-
*
|
115 |
-
* @param array $image_meta Image meta data to output.
|
116 |
-
*
|
117 |
-
* @return void
|
118 |
-
*/
|
119 |
-
private function show_image_meta( $image_meta ) {
|
120 |
-
foreach ( $this->image_tags as $key => $value ) {
|
121 |
-
if ( ! empty( $image_meta[ $key ] ) ) {
|
122 |
-
$this->opengraph->og_tag( 'og:image:' . $key, $image_meta[ $key ] );
|
123 |
-
}
|
124 |
-
}
|
125 |
-
}
|
126 |
-
|
127 |
-
/**
|
128 |
-
* Outputs an image tag based on whether it's https or not.
|
129 |
-
*
|
130 |
-
* @param string $image_url The image URL.
|
131 |
-
*
|
132 |
-
* @return void
|
133 |
-
*/
|
134 |
-
private function og_image_tag( $image_url ) {
|
135 |
-
$this->opengraph->og_tag( 'og:image', esc_url( $image_url ) );
|
136 |
-
|
137 |
-
// Add secure URL if detected. Not all services implement this, so the regular one also needs to be rendered.
|
138 |
-
if ( strpos( $image_url, 'https://' ) === 0 ) {
|
139 |
-
$this->opengraph->og_tag( 'og:image:secure_url', esc_url( $image_url ) );
|
140 |
-
}
|
141 |
-
}
|
142 |
-
|
143 |
-
/**
|
144 |
-
* Return the images array.
|
145 |
-
*
|
146 |
-
* @return array The images.
|
147 |
-
*/
|
148 |
-
public function get_images() {
|
149 |
-
return $this->images;
|
150 |
-
}
|
151 |
-
|
152 |
-
/**
|
153 |
-
* Check whether we have images or not.
|
154 |
-
*
|
155 |
-
* @return bool True if we have images, false if we don't.
|
156 |
-
*/
|
157 |
-
public function has_images() {
|
158 |
-
return ! empty( $this->images );
|
159 |
-
}
|
160 |
-
|
161 |
-
/**
|
162 |
-
* Display an OpenGraph image tag.
|
163 |
-
*
|
164 |
-
* @param string|array $attachment Attachment array.
|
165 |
-
*
|
166 |
-
* @return void
|
167 |
-
*/
|
168 |
-
public function add_image( $attachment ) {
|
169 |
-
// In the past `add_image` accepted an image url, so leave this for backwards compatibility.
|
170 |
-
if ( is_string( $attachment ) ) {
|
171 |
-
$attachment = [ 'url' => $attachment ];
|
172 |
-
}
|
173 |
-
|
174 |
-
if ( ! is_array( $attachment ) || empty( $attachment['url'] ) ) {
|
175 |
-
return;
|
176 |
-
}
|
177 |
-
|
178 |
-
// If the URL ends in `.svg`, we need to return.
|
179 |
-
if ( ! $this->is_valid_image_url( $attachment['url'] ) ) {
|
180 |
-
return;
|
181 |
-
}
|
182 |
-
|
183 |
-
/**
|
184 |
-
* Filter: 'wpseo_opengraph_image' - Allow changing the OpenGraph image.
|
185 |
-
*
|
186 |
-
* @api string - The URL of the OpenGraph image.
|
187 |
-
*/
|
188 |
-
$image_url = trim( apply_filters( 'wpseo_opengraph_image', $attachment['url'] ) );
|
189 |
-
if ( empty( $image_url ) ) {
|
190 |
-
return;
|
191 |
-
}
|
192 |
-
|
193 |
-
if ( WPSEO_Utils::is_url_relative( $image_url ) === true ) {
|
194 |
-
$image_url = WPSEO_Image_Utils::get_relative_path( $image_url );
|
195 |
-
}
|
196 |
-
|
197 |
-
if ( array_key_exists( $image_url, $this->images ) ) {
|
198 |
-
return;
|
199 |
-
}
|
200 |
-
|
201 |
-
$this->images[ $image_url ] = $attachment;
|
202 |
-
}
|
203 |
-
|
204 |
-
/**
|
205 |
-
* Adds an image by ID if possible and by URL if the ID isn't present.
|
206 |
-
*
|
207 |
-
* @param string $image_id The image ID as set in the database.
|
208 |
-
* @param string $image_url The saved URL for the image.
|
209 |
-
* @param callable $on_save_id Function to call to save the ID if it needs to be saved.
|
210 |
-
*
|
211 |
-
* @return void
|
212 |
-
*/
|
213 |
-
private function add_image_by_id_or_url( $image_id, $image_url, $on_save_id ) {
|
214 |
-
switch ( $image_id ) {
|
215 |
-
case self::EXTERNAL_IMAGE_ID:
|
216 |
-
// Add image by URL, but skip attachment_to_id call. We already know this is an external image.
|
217 |
-
$this->add_image( [ 'url' => $image_url ] );
|
218 |
-
break;
|
219 |
-
|
220 |
-
case '':
|
221 |
-
// Add image by URL, try to save the ID afterwards. So we can use the ID the next time.
|
222 |
-
$attachment_id = $this->add_image_by_url( $image_url );
|
223 |
-
|
224 |
-
if ( $attachment_id !== null ) {
|
225 |
-
call_user_func( $on_save_id, $attachment_id );
|
226 |
-
}
|
227 |
-
break;
|
228 |
-
|
229 |
-
default:
|
230 |
-
// Add the image by ID. This is our ideal scenario.
|
231 |
-
$this->add_image_by_id( $image_id );
|
232 |
-
break;
|
233 |
-
}
|
234 |
-
}
|
235 |
-
|
236 |
-
/**
|
237 |
-
* Saves the ID to the frontpage Open Graph image ID.
|
238 |
-
*
|
239 |
-
* @param string $attachment_id The ID to save.
|
240 |
-
*
|
241 |
-
* @return void
|
242 |
-
*/
|
243 |
-
private function save_frontpage_image_id( $attachment_id ) {
|
244 |
-
WPSEO_Options::set( 'og_frontpage_image_id', $attachment_id );
|
245 |
-
}
|
246 |
-
|
247 |
-
/**
|
248 |
-
* If the frontpage image exists, call add_image.
|
249 |
-
*
|
250 |
-
* @return void
|
251 |
-
*/
|
252 |
-
private function set_front_page_image() {
|
253 |
-
if ( get_option( 'show_on_front' ) === 'page' ) {
|
254 |
-
$this->set_user_defined_image();
|
255 |
-
|
256 |
-
// Don't fall back to the frontpage image below, as that's not set for this situation, so we should fall back to the default image.
|
257 |
-
return;
|
258 |
-
}
|
259 |
-
|
260 |
-
|
261 |
-
$frontpage_image_url = WPSEO_Options::get( 'og_frontpage_image' );
|
262 |
-
$frontpage_image_id = WPSEO_Options::get( 'og_frontpage_image_id' );
|
263 |
-
|
264 |
-
$this->add_image_by_id_or_url( $frontpage_image_id, $frontpage_image_url, [ $this, 'save_frontpage_image_id' ] );
|
265 |
-
}
|
266 |
-
|
267 |
-
/**
|
268 |
-
* Get the images of the posts page.
|
269 |
-
*
|
270 |
-
* @return void
|
271 |
-
*/
|
272 |
-
private function set_posts_page_image() {
|
273 |
-
$post_id = get_option( 'page_for_posts' );
|
274 |
-
|
275 |
-
$this->set_image_post_meta( $post_id );
|
276 |
-
|
277 |
-
if ( $this->has_images() ) {
|
278 |
-
return;
|
279 |
-
}
|
280 |
-
|
281 |
-
$this->set_featured_image( $post_id );
|
282 |
-
}
|
283 |
-
|
284 |
-
/**
|
285 |
-
* Get the images of the singular post.
|
286 |
-
*
|
287 |
-
* @param null|int $post_id The post id to get the images for.
|
288 |
-
*
|
289 |
-
* @return void
|
290 |
-
*/
|
291 |
-
private function set_singular_image( $post_id = null ) {
|
292 |
-
if ( $post_id === null ) {
|
293 |
-
$post_id = WPSEO_Frontend_Page_Type::get_simple_page_id();
|
294 |
-
}
|
295 |
-
|
296 |
-
$this->set_user_defined_image( $post_id );
|
297 |
-
|
298 |
-
if ( $this->has_images() ) {
|
299 |
-
return;
|
300 |
-
}
|
301 |
-
|
302 |
-
$this->add_first_usable_content_image( $post_id );
|
303 |
-
}
|
304 |
-
|
305 |
-
/**
|
306 |
-
* Gets the user-defined image of the post.
|
307 |
-
*
|
308 |
-
* @param null|int $post_id The post id to get the images for.
|
309 |
-
*
|
310 |
-
* @return void
|
311 |
-
*/
|
312 |
-
private function set_user_defined_image( $post_id = null ) {
|
313 |
-
if ( $post_id === null ) {
|
314 |
-
$post_id = WPSEO_Frontend_Page_Type::get_simple_page_id();
|
315 |
-
}
|
316 |
-
|
317 |
-
$this->set_image_post_meta( $post_id );
|
318 |
-
|
319 |
-
if ( $this->has_images() ) {
|
320 |
-
return;
|
321 |
-
}
|
322 |
-
|
323 |
-
$this->set_featured_image( $post_id );
|
324 |
-
}
|
325 |
-
|
326 |
-
/**
|
327 |
-
* Saves the default image ID for Open Graph images to the database.
|
328 |
-
*
|
329 |
-
* @param string $attachment_id The ID to save.
|
330 |
-
*
|
331 |
-
* @return void
|
332 |
-
*/
|
333 |
-
private function save_default_image_id( $attachment_id ) {
|
334 |
-
WPSEO_Options::set( 'og_default_image_id', $attachment_id );
|
335 |
-
}
|
336 |
-
|
337 |
-
/**
|
338 |
-
* Get default image and call add_image.
|
339 |
-
*
|
340 |
-
* @return void
|
341 |
-
*/
|
342 |
-
private function maybe_set_default_image() {
|
343 |
-
if ( $this->has_images() ) {
|
344 |
-
return;
|
345 |
-
}
|
346 |
-
|
347 |
-
$default_image_url = WPSEO_Options::get( 'og_default_image', '' );
|
348 |
-
$default_image_id = WPSEO_Options::get( 'og_default_image_id', '' );
|
349 |
-
|
350 |
-
if ( $default_image_url === '' && $default_image_id === '' ) {
|
351 |
-
return;
|
352 |
-
}
|
353 |
-
|
354 |
-
$this->add_image_by_id_or_url( $default_image_id, $default_image_url, [ $this, 'save_default_image_id' ] );
|
355 |
-
}
|
356 |
-
|
357 |
-
/**
|
358 |
-
* Saves the Open Graph image meta to the database for the current post.
|
359 |
-
*
|
360 |
-
* @param string $attachment_id The ID to save.
|
361 |
-
*
|
362 |
-
* @return void
|
363 |
-
*/
|
364 |
-
private function save_opengraph_image_id_meta( $attachment_id ) {
|
365 |
-
$post_id = WPSEO_Frontend_Page_Type::get_simple_page_id();
|
366 |
-
|
367 |
-
WPSEO_Meta::set_value( 'opengraph-image-id', (string) $attachment_id, $post_id );
|
368 |
-
}
|
369 |
-
|
370 |
-
/**
|
371 |
-
* If opengraph-image is set, call add_image and return true.
|
372 |
-
*
|
373 |
-
* @param int $post_id Optional post ID to use.
|
374 |
-
*
|
375 |
-
* @return void
|
376 |
-
*/
|
377 |
-
private function set_image_post_meta( $post_id = 0 ) {
|
378 |
-
$image_id = WPSEO_Meta::get_value( 'opengraph-image-id', $post_id );
|
379 |
-
$image_url = WPSEO_Meta::get_value( 'opengraph-image', $post_id );
|
380 |
-
|
381 |
-
$this->add_image_by_id_or_url( $image_id, $image_url, [ $this, 'save_opengraph_image_id_meta' ] );
|
382 |
-
}
|
383 |
-
|
384 |
-
/**
|
385 |
-
* Check if taxonomy has an image and add this image.
|
386 |
-
*
|
387 |
-
* @return void
|
388 |
-
*/
|
389 |
-
private function set_taxonomy_image() {
|
390 |
-
$image_url = WPSEO_Taxonomy_Meta::get_meta_without_term( 'opengraph-image' );
|
391 |
-
$this->add_image_by_url( $image_url );
|
392 |
-
}
|
393 |
-
|
394 |
-
/**
|
395 |
-
* If there is a featured image, check image size. If image size is correct, call add_image and return true.
|
396 |
-
*
|
397 |
-
* @param int $post_id The post ID.
|
398 |
-
*
|
399 |
-
* @return void
|
400 |
-
*/
|
401 |
-
private function set_featured_image( $post_id ) {
|
402 |
-
if ( has_post_thumbnail( $post_id ) ) {
|
403 |
-
$attachment_id = get_post_thumbnail_id( $post_id );
|
404 |
-
$this->add_image_by_id( $attachment_id );
|
405 |
-
}
|
406 |
-
}
|
407 |
-
|
408 |
-
/**
|
409 |
-
* If this is an attachment page, call add_image with the attachment.
|
410 |
-
*
|
411 |
-
* @return void
|
412 |
-
*/
|
413 |
-
private function set_attachment_page_image() {
|
414 |
-
$post_id = WPSEO_Frontend_Page_Type::get_simple_page_id();
|
415 |
-
if ( wp_attachment_is_image( $post_id ) ) {
|
416 |
-
$this->add_image_by_id( $post_id );
|
417 |
-
}
|
418 |
-
}
|
419 |
-
|
420 |
-
/**
|
421 |
-
* Adds an image based on a given URL, and attempts to be smart about it.
|
422 |
-
*
|
423 |
-
* @param string $url The given URL.
|
424 |
-
*
|
425 |
-
* @return null|number Returns the found attachment ID if it exists. Otherwise -1.
|
426 |
-
* If the URL is empty we return null.
|
427 |
-
*/
|
428 |
-
public function add_image_by_url( $url ) {
|
429 |
-
if ( empty( $url ) ) {
|
430 |
-
return null;
|
431 |
-
}
|
432 |
-
|
433 |
-
$attachment_id = WPSEO_Image_Utils::get_attachment_by_url( $url );
|
434 |
-
|
435 |
-
if ( $attachment_id > 0 ) {
|
436 |
-
$this->add_image_by_id( $attachment_id );
|
437 |
-
return $attachment_id;
|
438 |
-
}
|
439 |
-
|
440 |
-
$this->add_image( [ 'url' => $url ] );
|
441 |
-
|
442 |
-
return -1;
|
443 |
-
}
|
444 |
-
|
445 |
-
/**
|
446 |
-
* Returns the overridden image size if it has been overridden.
|
447 |
-
*
|
448 |
-
* @return null|string The overridden image size or null.
|
449 |
-
*/
|
450 |
-
protected function get_overridden_image_size() {
|
451 |
-
/**
|
452 |
-
* Filter: 'wpseo_opengraph_image_size' - Allow overriding the image size used
|
453 |
-
* for OpenGraph sharing. If this filter is used, the defined size will always be
|
454 |
-
* used for the og:image. The image will still be rejected if it is too small.
|
455 |
-
*
|
456 |
-
* Only use this filter if you manually want to determine the best image size
|
457 |
-
* for the `og:image` tag.
|
458 |
-
*
|
459 |
-
* Use the `wpseo_image_sizes` filter if you want to use our logic. That filter
|
460 |
-
* can be used to add an image size that needs to be taken into consideration
|
461 |
-
* within our own logic.
|
462 |
-
*
|
463 |
-
* @api string $size Size string.
|
464 |
-
*/
|
465 |
-
return apply_filters( 'wpseo_opengraph_image_size', null );
|
466 |
-
}
|
467 |
-
|
468 |
-
/**
|
469 |
-
* Determines if the OpenGraph image size should overridden.
|
470 |
-
*
|
471 |
-
* @return bool Whether the size should be overridden.
|
472 |
-
*/
|
473 |
-
protected function is_size_overridden() {
|
474 |
-
return $this->get_overridden_image_size() !== null;
|
475 |
-
}
|
476 |
-
|
477 |
-
/**
|
478 |
-
* Adds the possibility to short-circuit all the optimal variation logic with
|
479 |
-
* your own size.
|
480 |
-
*
|
481 |
-
* @param int $attachment_id The attachment ID that is used.
|
482 |
-
*
|
483 |
-
* @return void
|
484 |
-
*/
|
485 |
-
protected function get_overridden_image( $attachment_id ) {
|
486 |
-
$attachment = WPSEO_Image_Utils::get_image( $attachment_id, $this->get_overridden_image_size() );
|
487 |
-
|
488 |
-
if ( $attachment ) {
|
489 |
-
$this->add_image( $attachment );
|
490 |
-
}
|
491 |
-
}
|
492 |
-
|
493 |
-
/**
|
494 |
-
* Adds an image to the list by attachment ID.
|
495 |
-
*
|
496 |
-
* @param int $attachment_id The attachment ID to add.
|
497 |
-
*
|
498 |
-
* @return void
|
499 |
-
*/
|
500 |
-
public function add_image_by_id( $attachment_id ) {
|
501 |
-
if ( ! $this->is_valid_attachment( $attachment_id ) ) {
|
502 |
-
return;
|
503 |
-
}
|
504 |
-
|
505 |
-
if ( $this->is_size_overridden() ) {
|
506 |
-
$this->get_overridden_image( $attachment_id );
|
507 |
-
return;
|
508 |
-
}
|
509 |
-
|
510 |
-
$variations = WPSEO_Image_Utils::get_variations( $attachment_id );
|
511 |
-
$variations = WPSEO_Image_Utils::filter_usable_dimensions( $this->image_params, $variations );
|
512 |
-
$variations = WPSEO_Image_Utils::filter_usable_file_size( $variations );
|
513 |
-
|
514 |
-
// If we are left without variations, there is no valid variation for this attachment.
|
515 |
-
if ( empty( $variations ) ) {
|
516 |
-
return;
|
517 |
-
}
|
518 |
-
|
519 |
-
// The variations are ordered so the first variations is by definition the best one.
|
520 |
-
$attachment = $variations[0];
|
521 |
-
|
522 |
-
if ( $attachment ) {
|
523 |
-
$this->add_image( $attachment );
|
524 |
-
}
|
525 |
-
}
|
526 |
-
|
527 |
-
/**
|
528 |
-
* Sets the images based on the page type.
|
529 |
-
*
|
530 |
-
* @return void
|
531 |
-
*/
|
532 |
-
protected function set_images() {
|
533 |
-
/**
|
534 |
-
* Filter: wpseo_add_opengraph_images - Allow developers to add images to the OpenGraph tags.
|
535 |
-
*
|
536 |
-
* @api WPSEO_OpenGraph_Image The current object.
|
537 |
-
*/
|
538 |
-
do_action( 'wpseo_add_opengraph_images', $this );
|
539 |
-
|
540 |
-
switch ( true ) {
|
541 |
-
case is_front_page():
|
542 |
-
$this->set_front_page_image();
|
543 |
-
break;
|
544 |
-
case is_home():
|
545 |
-
$this->set_posts_page_image();
|
546 |
-
break;
|
547 |
-
case is_attachment():
|
548 |
-
$this->set_attachment_page_image();
|
549 |
-
break;
|
550 |
-
case WPSEO_Frontend_Page_Type::is_simple_page():
|
551 |
-
$this->set_singular_image();
|
552 |
-
break;
|
553 |
-
case is_category():
|
554 |
-
case is_tag():
|
555 |
-
case is_tax():
|
556 |
-
$this->set_taxonomy_image();
|
557 |
-
}
|
558 |
-
|
559 |
-
/**
|
560 |
-
* Filter: wpseo_add_opengraph_additional_images - Allows to add additional images to the OpenGraph tags.
|
561 |
-
*
|
562 |
-
* @api WPSEO_OpenGraph_Image The current object.
|
563 |
-
*/
|
564 |
-
do_action( 'wpseo_add_opengraph_additional_images', $this );
|
565 |
-
|
566 |
-
$this->maybe_set_default_image();
|
567 |
-
}
|
568 |
-
|
569 |
-
/**
|
570 |
-
* Determines whether or not the wanted attachment is considered valid.
|
571 |
-
*
|
572 |
-
* @param int $attachment_id The attachment ID to get the attachment by.
|
573 |
-
*
|
574 |
-
* @return bool Whether or not the attachment is valid.
|
575 |
-
*/
|
576 |
-
protected function is_valid_attachment( $attachment_id ) {
|
577 |
-
$attachment = get_post_mime_type( $attachment_id );
|
578 |
-
|
579 |
-
if ( $attachment === false ) {
|
580 |
-
return false;
|
581 |
-
}
|
582 |
-
|
583 |
-
return $this->is_valid_image_type( $attachment );
|
584 |
-
}
|
585 |
-
|
586 |
-
/**
|
587 |
-
* Determines whether the passed mime type is a valid image type.
|
588 |
-
*
|
589 |
-
* @param string $mime_type The detected mime type.
|
590 |
-
*
|
591 |
-
* @return bool Whether or not the attachment is a valid image type.
|
592 |
-
*/
|
593 |
-
protected function is_valid_image_type( $mime_type ) {
|
594 |
-
return in_array( $mime_type, $this->valid_image_types, true );
|
595 |
-
}
|
596 |
-
|
597 |
-
/**
|
598 |
-
* Determines whether the passed URL is considered valid.
|
599 |
-
*
|
600 |
-
* @param string $url The URL to check.
|
601 |
-
*
|
602 |
-
* @return bool Whether or not the URL is a valid image.
|
603 |
-
*/
|
604 |
-
protected function is_valid_image_url( $url ) {
|
605 |
-
if ( ! is_string( $url ) ) {
|
606 |
-
return false;
|
607 |
-
}
|
608 |
-
|
609 |
-
$image_extension = $this->get_extension_from_url( $url );
|
610 |
-
|
611 |
-
$is_valid = in_array( $image_extension, $this->valid_image_extensions, true );
|
612 |
-
|
613 |
-
/**
|
614 |
-
* Filter: 'wpseo_opengraph_is_valid_image_url' - Allows extra validation for an image url.
|
615 |
-
*
|
616 |
-
* @api bool - Current validation result.
|
617 |
-
*
|
618 |
-
* @param string $url The image url to validate.
|
619 |
-
*/
|
620 |
-
return apply_filters( 'wpseo_opengraph_is_valid_image_url', $is_valid, $url );
|
621 |
-
}
|
622 |
-
|
623 |
-
/**
|
624 |
-
* Gets the image path from the passed URL.
|
625 |
-
*
|
626 |
-
* @param string $url The URL to get the path from.
|
627 |
-
*
|
628 |
-
* @return string The path of the image URL. Returns an empty string if URL parsing fails.
|
629 |
-
*/
|
630 |
-
protected function get_image_url_path( $url ) {
|
631 |
-
return (string) wp_parse_url( $url, PHP_URL_PATH );
|
632 |
-
}
|
633 |
-
|
634 |
-
/**
|
635 |
-
* Determines the file extension of the passed URL.
|
636 |
-
*
|
637 |
-
* @param string $url The URL.
|
638 |
-
*
|
639 |
-
* @return string The extension.
|
640 |
-
*/
|
641 |
-
protected function get_extension_from_url( $url ) {
|
642 |
-
$extension = '';
|
643 |
-
$path = $this->get_image_url_path( $url );
|
644 |
-
|
645 |
-
if ( $path === '' ) {
|
646 |
-
return $extension;
|
647 |
-
}
|
648 |
-
|
649 |
-
$parts = explode( '.', $path );
|
650 |
-
|
651 |
-
if ( ! empty( $parts ) ) {
|
652 |
-
$extension = end( $parts );
|
653 |
-
}
|
654 |
-
|
655 |
-
return $extension;
|
656 |
-
}
|
657 |
-
|
658 |
-
/**
|
659 |
-
* Adds the first usable attachment image from the post content.
|
660 |
-
*
|
661 |
-
* @param int $post_id The post id.
|
662 |
-
*
|
663 |
-
* @return void
|
664 |
-
*/
|
665 |
-
private function add_first_usable_content_image( $post_id ) {
|
666 |
-
$image_url = WPSEO_Image_Utils::get_first_usable_content_image_for_post( $post_id );
|
667 |
-
|
668 |
-
if ( $image_url === null || empty( $image_url ) ) {
|
669 |
-
return;
|
670 |
-
}
|
671 |
-
|
672 |
-
$this->add_image( [ 'url' => $image_url ] );
|
673 |
-
}
|
674 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/class-opengraph-oembed.php
DELETED
@@ -1,72 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Frontend
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Class WPSEO_OpenGraph_OEmbed.
|
10 |
-
*/
|
11 |
-
class WPSEO_OpenGraph_OEmbed implements WPSEO_WordPress_Integration {
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Registers the hooks.
|
15 |
-
*/
|
16 |
-
public function register_hooks() {
|
17 |
-
// Check to make sure opengraph is enabled before adding filter.
|
18 |
-
if ( WPSEO_Options::get( 'opengraph' ) ) {
|
19 |
-
add_filter( 'oembed_response_data', [ $this, 'set_oembed_data' ], 10, 2 );
|
20 |
-
}
|
21 |
-
}
|
22 |
-
|
23 |
-
/**
|
24 |
-
* Callback function to pass to the oEmbed's response data that will enable
|
25 |
-
* support for using the image and title set by the WordPress SEO plugin's fields. This
|
26 |
-
* address the concern where some social channels/subscribed use oEmebed data over OpenGraph data
|
27 |
-
* if both are present.
|
28 |
-
*
|
29 |
-
* @param array $data The oEmbed data.
|
30 |
-
* @param WP_Post $post The current Post object.
|
31 |
-
*
|
32 |
-
* @link https://developer.wordpress.org/reference/hooks/oembed_response_data/ for hook info.
|
33 |
-
*
|
34 |
-
* @return array $filter_data - An array of oEmbed data with modified values where appropriate.
|
35 |
-
*/
|
36 |
-
public function set_oembed_data( $data, $post ) {
|
37 |
-
// Data to be returned.
|
38 |
-
$filter_data = $data;
|
39 |
-
|
40 |
-
// Look for the Yoast meta values (image and title)...
|
41 |
-
$opengraph_title = WPSEO_Meta::get_value( 'opengraph-title', $post->ID );
|
42 |
-
$opengraph_image = WPSEO_Meta::get_value( 'opengraph-image', $post->ID );
|
43 |
-
|
44 |
-
// If yoast has a title set, update oEmbed with Yoast's title.
|
45 |
-
if ( ! empty( $opengraph_title ) ) {
|
46 |
-
$filter_data['title'] = $opengraph_title;
|
47 |
-
}
|
48 |
-
|
49 |
-
// If WPSEO Image was _not_ set, return the `$filter_data` as it currently is.
|
50 |
-
if ( empty( $opengraph_image ) ) {
|
51 |
-
return $filter_data;
|
52 |
-
}
|
53 |
-
|
54 |
-
// Since the a WPSEO Image was set, update the oEmbed data with the Yoast Image's info.
|
55 |
-
// Get the image's ID from a URL.
|
56 |
-
$image_id = WPSEO_Image_Utils::get_attachment_by_url( $opengraph_image );
|
57 |
-
|
58 |
-
// Get the image's info from it's ID.
|
59 |
-
$image_info = wp_get_attachment_metadata( $image_id );
|
60 |
-
|
61 |
-
// Update the oEmbed data.
|
62 |
-
$filter_data['thumbnail_url'] = $opengraph_image;
|
63 |
-
if ( ! empty( $image_info['height'] ) ) {
|
64 |
-
$filter_data['thumbnail_height'] = $image_info['height'];
|
65 |
-
}
|
66 |
-
if ( ! empty( $image_info['width'] ) ) {
|
67 |
-
$filter_data['thumbnail_width'] = $image_info['width'];
|
68 |
-
}
|
69 |
-
|
70 |
-
return $filter_data;
|
71 |
-
}
|
72 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/class-opengraph.php
DELETED
@@ -1,771 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Frontend
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* This code adds the OpenGraph output.
|
10 |
-
*/
|
11 |
-
class WPSEO_OpenGraph {
|
12 |
-
|
13 |
-
/**
|
14 |
-
* The date helper.
|
15 |
-
*
|
16 |
-
* @var WPSEO_Date_Helper
|
17 |
-
*/
|
18 |
-
protected $date;
|
19 |
-
|
20 |
-
/**
|
21 |
-
* Class constructor.
|
22 |
-
*/
|
23 |
-
public function __construct() {
|
24 |
-
$this->date = new WPSEO_Date_Helper();
|
25 |
-
|
26 |
-
if ( isset( $GLOBALS['fb_ver'] ) || class_exists( 'Facebook_Loader', false ) ) {
|
27 |
-
add_filter( 'fb_meta_tags', [ $this, 'facebook_filter' ], 10, 1 );
|
28 |
-
}
|
29 |
-
else {
|
30 |
-
add_action( 'wpseo_opengraph', [ $this, 'locale' ], 1 );
|
31 |
-
add_action( 'wpseo_opengraph', [ $this, 'type' ], 5 );
|
32 |
-
add_action( 'wpseo_opengraph', [ $this, 'og_title' ], 10 );
|
33 |
-
add_action( 'wpseo_opengraph', [ $this, 'app_id' ], 20 );
|
34 |
-
add_action( 'wpseo_opengraph', [ $this, 'description' ], 11 );
|
35 |
-
add_action( 'wpseo_opengraph', [ $this, 'url' ], 12 );
|
36 |
-
add_action( 'wpseo_opengraph', [ $this, 'site_name' ], 13 );
|
37 |
-
add_action( 'wpseo_opengraph', [ $this, 'website_facebook' ], 14 );
|
38 |
-
if ( is_singular() && ! is_front_page() ) {
|
39 |
-
add_action( 'wpseo_opengraph', [ $this, 'article_author_facebook' ], 15 );
|
40 |
-
add_action( 'wpseo_opengraph', [ $this, 'tags' ], 16 );
|
41 |
-
add_action( 'wpseo_opengraph', [ $this, 'category' ], 17 );
|
42 |
-
add_action( 'wpseo_opengraph', [ $this, 'publish_date' ], 19 );
|
43 |
-
}
|
44 |
-
|
45 |
-
add_action( 'wpseo_opengraph', [ $this, 'image' ], 30 );
|
46 |
-
}
|
47 |
-
add_filter( 'jetpack_enable_open_graph', '__return_false' );
|
48 |
-
add_action( 'wpseo_head', [ $this, 'opengraph' ], 30 );
|
49 |
-
}
|
50 |
-
|
51 |
-
/**
|
52 |
-
* Main OpenGraph output.
|
53 |
-
*/
|
54 |
-
public function opengraph() {
|
55 |
-
wp_reset_query();
|
56 |
-
/**
|
57 |
-
* Action: 'wpseo_opengraph' - Hook to add all Facebook OpenGraph output to so they're close together.
|
58 |
-
*/
|
59 |
-
do_action( 'wpseo_opengraph' );
|
60 |
-
}
|
61 |
-
|
62 |
-
/**
|
63 |
-
* Internal function to output FB tags. This also adds an output filter to each bit of output based on the property.
|
64 |
-
*
|
65 |
-
* @param string $property Property attribute value.
|
66 |
-
* @param string $content Content attribute value.
|
67 |
-
*
|
68 |
-
* @return boolean
|
69 |
-
*/
|
70 |
-
public function og_tag( $property, $content ) {
|
71 |
-
$og_property = str_replace( ':', '_', $property );
|
72 |
-
/**
|
73 |
-
* Filter: 'wpseo_og_' . $og_property - Allow developers to change the content of specific OG meta tags.
|
74 |
-
*
|
75 |
-
* @api string $content The content of the property.
|
76 |
-
*/
|
77 |
-
$content = apply_filters( 'wpseo_og_' . $og_property, $content );
|
78 |
-
if ( empty( $content ) ) {
|
79 |
-
return false;
|
80 |
-
}
|
81 |
-
|
82 |
-
echo '<meta property="', esc_attr( $property ), '" content="', esc_attr( $content ), '" />', "\n";
|
83 |
-
|
84 |
-
return true;
|
85 |
-
}
|
86 |
-
|
87 |
-
/**
|
88 |
-
* Filter the Facebook plugins metadata.
|
89 |
-
*
|
90 |
-
* @param array $meta_tags The array to fix.
|
91 |
-
*
|
92 |
-
* @return array $meta_tags
|
93 |
-
*/
|
94 |
-
public function facebook_filter( $meta_tags ) {
|
95 |
-
$meta_tags['http://ogp.me/ns#type'] = $this->type( false );
|
96 |
-
$meta_tags['http://ogp.me/ns#title'] = $this->og_title( false );
|
97 |
-
|
98 |
-
// Filter the locale too because the Facebook plugin locale code is not as good as ours.
|
99 |
-
$meta_tags['http://ogp.me/ns#locale'] = $this->locale( false );
|
100 |
-
|
101 |
-
$ogdesc = $this->description( false );
|
102 |
-
if ( ! empty( $ogdesc ) ) {
|
103 |
-
$meta_tags['http://ogp.me/ns#description'] = $ogdesc;
|
104 |
-
}
|
105 |
-
|
106 |
-
return $meta_tags;
|
107 |
-
}
|
108 |
-
|
109 |
-
/**
|
110 |
-
* Outputs the authors FB page.
|
111 |
-
*
|
112 |
-
* @link https://developers.facebook.com/blog/post/2013/06/19/platform-updates--new-open-graph-tags-for-media-publishers-and-more/
|
113 |
-
* @link https://developers.facebook.com/docs/reference/opengraph/object-type/article/
|
114 |
-
*
|
115 |
-
* @return boolean
|
116 |
-
*/
|
117 |
-
public function article_author_facebook() {
|
118 |
-
if ( ! is_singular() ) {
|
119 |
-
return false;
|
120 |
-
}
|
121 |
-
|
122 |
-
/**
|
123 |
-
* Filter: 'wpseo_opengraph_author_facebook' - Allow developers to filter the Yoast SEO post authors facebook profile URL.
|
124 |
-
*
|
125 |
-
* @api bool|string $unsigned The Facebook author URL, return false to disable.
|
126 |
-
*/
|
127 |
-
$facebook = apply_filters( 'wpseo_opengraph_author_facebook', get_the_author_meta( 'facebook', $GLOBALS['post']->post_author ) );
|
128 |
-
|
129 |
-
if ( $facebook && ( is_string( $facebook ) && $facebook !== '' ) ) {
|
130 |
-
$this->og_tag( 'article:author', $facebook );
|
131 |
-
|
132 |
-
return true;
|
133 |
-
}
|
134 |
-
|
135 |
-
return false;
|
136 |
-
}
|
137 |
-
|
138 |
-
/**
|
139 |
-
* Outputs the websites FB page.
|
140 |
-
*
|
141 |
-
* @link https://developers.facebook.com/blog/post/2013/06/19/platform-updates--new-open-graph-tags-for-media-publishers-and-more/
|
142 |
-
* @link https://developers.facebook.com/docs/reference/opengraph/object-type/article/
|
143 |
-
*
|
144 |
-
* @return boolean
|
145 |
-
*/
|
146 |
-
public function website_facebook() {
|
147 |
-
|
148 |
-
if ( 'article' === $this->type( false ) && WPSEO_Options::get( 'facebook_site', '' ) !== '' ) {
|
149 |
-
$this->og_tag( 'article:publisher', WPSEO_Options::get( 'facebook_site' ) );
|
150 |
-
|
151 |
-
return true;
|
152 |
-
}
|
153 |
-
|
154 |
-
return false;
|
155 |
-
}
|
156 |
-
|
157 |
-
/**
|
158 |
-
* Outputs the SEO title as OpenGraph title.
|
159 |
-
*
|
160 |
-
* @link https://developers.facebook.com/docs/reference/opengraph/object-type/article/
|
161 |
-
*
|
162 |
-
* @param bool $echo Whether or not to echo the output.
|
163 |
-
*
|
164 |
-
* @return string|boolean
|
165 |
-
*/
|
166 |
-
public function og_title( $echo = true ) {
|
167 |
-
|
168 |
-
$frontend = WPSEO_Frontend::get_instance();
|
169 |
-
|
170 |
-
if ( WPSEO_Frontend_Page_Type::is_simple_page() ) {
|
171 |
-
$post_id = WPSEO_Frontend_Page_Type::get_simple_page_id();
|
172 |
-
$post = get_post( $post_id );
|
173 |
-
$title = WPSEO_Meta::get_value( 'opengraph-title', $post_id );
|
174 |
-
|
175 |
-
if ( $title === '' ) {
|
176 |
-
$title = $frontend->title( '' );
|
177 |
-
}
|
178 |
-
else {
|
179 |
-
// Replace Yoast SEO Variables.
|
180 |
-
$title = wpseo_replace_vars( $title, $post );
|
181 |
-
}
|
182 |
-
}
|
183 |
-
elseif ( is_front_page() ) {
|
184 |
-
$title = ( WPSEO_Options::get( 'og_frontpage_title', '' ) !== '' ) ? WPSEO_Options::get( 'og_frontpage_title' ) : $frontend->title( '' );
|
185 |
-
}
|
186 |
-
elseif ( is_category() || is_tax() || is_tag() ) {
|
187 |
-
$title = WPSEO_Taxonomy_Meta::get_meta_without_term( 'opengraph-title' );
|
188 |
-
if ( $title === '' ) {
|
189 |
-
$title = $frontend->title( '' );
|
190 |
-
}
|
191 |
-
else {
|
192 |
-
// Replace Yoast SEO Variables.
|
193 |
-
$title = wpseo_replace_vars( $title, $GLOBALS['wp_query']->get_queried_object() );
|
194 |
-
}
|
195 |
-
}
|
196 |
-
else {
|
197 |
-
$title = $frontend->title( '' );
|
198 |
-
}
|
199 |
-
|
200 |
-
/**
|
201 |
-
* Filter: 'wpseo_opengraph_title' - Allow changing the title specifically for OpenGraph.
|
202 |
-
*
|
203 |
-
* @api string $unsigned The title string.
|
204 |
-
*/
|
205 |
-
$title = trim( apply_filters( 'wpseo_opengraph_title', $title ) );
|
206 |
-
|
207 |
-
if ( is_string( $title ) && $title !== '' ) {
|
208 |
-
if ( $echo !== false ) {
|
209 |
-
$this->og_tag( 'og:title', $title );
|
210 |
-
|
211 |
-
return true;
|
212 |
-
}
|
213 |
-
}
|
214 |
-
|
215 |
-
if ( $echo === false ) {
|
216 |
-
return $title;
|
217 |
-
}
|
218 |
-
|
219 |
-
return false;
|
220 |
-
}
|
221 |
-
|
222 |
-
/**
|
223 |
-
* Outputs the canonical URL as OpenGraph URL, which consolidates likes and shares.
|
224 |
-
*
|
225 |
-
* @link https://developers.facebook.com/docs/reference/opengraph/object-type/article/
|
226 |
-
*
|
227 |
-
* @return boolean
|
228 |
-
*/
|
229 |
-
public function url() {
|
230 |
-
$url = WPSEO_Frontend::get_instance()->canonical( false, false );
|
231 |
-
$unpaged_url = WPSEO_Frontend::get_instance()->canonical( false, true );
|
232 |
-
|
233 |
-
/*
|
234 |
-
* If the unpaged URL is the same as the normal URL but just with pagination added, use that.
|
235 |
-
* This makes sure we always use the unpaged URL when we can, but doesn't break for overridden canonicals.
|
236 |
-
*/
|
237 |
-
if ( ! empty( $unpaged_url ) && is_string( $unpaged_url ) && strpos( $url, $unpaged_url ) === 0 ) {
|
238 |
-
$url = $unpaged_url;
|
239 |
-
}
|
240 |
-
|
241 |
-
/**
|
242 |
-
* Filter: 'wpseo_opengraph_url' - Allow changing the OpenGraph URL.
|
243 |
-
*
|
244 |
-
* @api string $unsigned Canonical URL.
|
245 |
-
*/
|
246 |
-
$url = urldecode( apply_filters( 'wpseo_opengraph_url', $url ) );
|
247 |
-
|
248 |
-
if ( is_string( $url ) && $url !== '' ) {
|
249 |
-
$this->og_tag( 'og:url', esc_url( $url ) );
|
250 |
-
|
251 |
-
return true;
|
252 |
-
}
|
253 |
-
|
254 |
-
return false;
|
255 |
-
}
|
256 |
-
|
257 |
-
/**
|
258 |
-
* Output the locale, doing some conversions to make sure the proper Facebook locale is outputted.
|
259 |
-
*
|
260 |
-
* Last update/compare with FB list done on 2015-03-16 by Rarst.
|
261 |
-
*
|
262 |
-
* @link http://www.facebook.com/translations/FacebookLocales.xml for the list of supported locales.
|
263 |
-
* @link https://developers.facebook.com/docs/reference/opengraph/object-type/article/
|
264 |
-
*
|
265 |
-
* @param bool $echo Whether to echo or return the locale.
|
266 |
-
*
|
267 |
-
* @return string $locale
|
268 |
-
*/
|
269 |
-
public function locale( $echo = true ) {
|
270 |
-
/**
|
271 |
-
* Filter: 'wpseo_locale' - Allow changing the locale output.
|
272 |
-
*
|
273 |
-
* @api string $unsigned Locale string.
|
274 |
-
*/
|
275 |
-
$locale = apply_filters( 'wpseo_locale', get_locale() );
|
276 |
-
|
277 |
-
// Catch some weird locales served out by WP that are not easily doubled up.
|
278 |
-
$fix_locales = [
|
279 |
-
'ca' => 'ca_ES',
|
280 |
-
'en' => 'en_US',
|
281 |
-
'el' => 'el_GR',
|
282 |
-
'et' => 'et_EE',
|
283 |
-
'ja' => 'ja_JP',
|
284 |
-
'sq' => 'sq_AL',
|
285 |
-
'uk' => 'uk_UA',
|
286 |
-
'vi' => 'vi_VN',
|
287 |
-
'zh' => 'zh_CN',
|
288 |
-
];
|
289 |
-
|
290 |
-
if ( isset( $fix_locales[ $locale ] ) ) {
|
291 |
-
$locale = $fix_locales[ $locale ];
|
292 |
-
}
|
293 |
-
|
294 |
-
// Convert locales like "es" to "es_ES", in case that works for the given locale (sometimes it does).
|
295 |
-
if ( strlen( $locale ) === 2 ) {
|
296 |
-
$locale = strtolower( $locale ) . '_' . strtoupper( $locale );
|
297 |
-
}
|
298 |
-
|
299 |
-
// These are the locales FB supports.
|
300 |
-
$fb_valid_fb_locales = [
|
301 |
-
'af_ZA', // Afrikaans.
|
302 |
-
'ak_GH', // Akan.
|
303 |
-
'am_ET', // Amharic.
|
304 |
-
'ar_AR', // Arabic.
|
305 |
-
'as_IN', // Assamese.
|
306 |
-
'ay_BO', // Aymara.
|
307 |
-
'az_AZ', // Azerbaijani.
|
308 |
-
'be_BY', // Belarusian.
|
309 |
-
'bg_BG', // Bulgarian.
|
310 |
-
'bp_IN', // Bhojpuri.
|
311 |
-
'bn_IN', // Bengali.
|
312 |
-
'br_FR', // Breton.
|
313 |
-
'bs_BA', // Bosnian.
|
314 |
-
'ca_ES', // Catalan.
|
315 |
-
'cb_IQ', // Sorani Kurdish.
|
316 |
-
'ck_US', // Cherokee.
|
317 |
-
'co_FR', // Corsican.
|
318 |
-
'cs_CZ', // Czech.
|
319 |
-
'cx_PH', // Cebuano.
|
320 |
-
'cy_GB', // Welsh.
|
321 |
-
'da_DK', // Danish.
|
322 |
-
'de_DE', // German.
|
323 |
-
'el_GR', // Greek.
|
324 |
-
'en_GB', // English (UK).
|
325 |
-
'en_PI', // English (Pirate).
|
326 |
-
'en_UD', // English (Upside Down).
|
327 |
-
'en_US', // English (US).
|
328 |
-
'em_ZM',
|
329 |
-
'eo_EO', // Esperanto.
|
330 |
-
'es_ES', // Spanish (Spain).
|
331 |
-
'es_LA', // Spanish.
|
332 |
-
'es_MX', // Spanish (Mexico).
|
333 |
-
'et_EE', // Estonian.
|
334 |
-
'eu_ES', // Basque.
|
335 |
-
'fa_IR', // Persian.
|
336 |
-
'fb_LT', // Leet Speak.
|
337 |
-
'ff_NG', // Fulah.
|
338 |
-
'fi_FI', // Finnish.
|
339 |
-
'fo_FO', // Faroese.
|
340 |
-
'fr_CA', // French (Canada).
|
341 |
-
'fr_FR', // French (France).
|
342 |
-
'fy_NL', // Frisian.
|
343 |
-
'ga_IE', // Irish.
|
344 |
-
'gl_ES', // Galician.
|
345 |
-
'gn_PY', // Guarani.
|
346 |
-
'gu_IN', // Gujarati.
|
347 |
-
'gx_GR', // Classical Greek.
|
348 |
-
'ha_NG', // Hausa.
|
349 |
-
'he_IL', // Hebrew.
|
350 |
-
'hi_IN', // Hindi.
|
351 |
-
'hr_HR', // Croatian.
|
352 |
-
'hu_HU', // Hungarian.
|
353 |
-
'ht_HT', // Haitian Creole.
|
354 |
-
'hy_AM', // Armenian.
|
355 |
-
'id_ID', // Indonesian.
|
356 |
-
'ig_NG', // Igbo.
|
357 |
-
'is_IS', // Icelandic.
|
358 |
-
'it_IT', // Italian.
|
359 |
-
'ik_US',
|
360 |
-
'iu_CA',
|
361 |
-
'ja_JP', // Japanese.
|
362 |
-
'ja_KS', // Japanese (Kansai).
|
363 |
-
'jv_ID', // Javanese.
|
364 |
-
'ka_GE', // Georgian.
|
365 |
-
'kk_KZ', // Kazakh.
|
366 |
-
'km_KH', // Khmer.
|
367 |
-
'kn_IN', // Kannada.
|
368 |
-
'ko_KR', // Korean.
|
369 |
-
'ks_IN', // Kashmiri.
|
370 |
-
'ku_TR', // Kurdish (Kurmanji).
|
371 |
-
'ky_KG', // Kyrgyz.
|
372 |
-
'la_VA', // Latin.
|
373 |
-
'lg_UG', // Ganda.
|
374 |
-
'li_NL', // Limburgish.
|
375 |
-
'ln_CD', // Lingala.
|
376 |
-
'lo_LA', // Lao.
|
377 |
-
'lt_LT', // Lithuanian.
|
378 |
-
'lv_LV', // Latvian.
|
379 |
-
'mg_MG', // Malagasy.
|
380 |
-
'mi_NZ', // Maori.
|
381 |
-
'mk_MK', // Macedonian.
|
382 |
-
'ml_IN', // Malayalam.
|
383 |
-
'mn_MN', // Mongolian.
|
384 |
-
'mr_IN', // Marathi.
|
385 |
-
'ms_MY', // Malay.
|
386 |
-
'mt_MT', // Maltese.
|
387 |
-
'my_MM', // Burmese.
|
388 |
-
'nb_NO', // Norwegian (bokmal).
|
389 |
-
'nd_ZW', // Ndebele.
|
390 |
-
'ne_NP', // Nepali.
|
391 |
-
'nl_BE', // Dutch (Belgie).
|
392 |
-
'nl_NL', // Dutch.
|
393 |
-
'nn_NO', // Norwegian (nynorsk).
|
394 |
-
'nr_ZA', // Southern Ndebele.
|
395 |
-
'ns_ZA', // Northern Sotho.
|
396 |
-
'ny_MW', // Chewa.
|
397 |
-
'om_ET', // Oromo.
|
398 |
-
'or_IN', // Oriya.
|
399 |
-
'pa_IN', // Punjabi.
|
400 |
-
'pl_PL', // Polish.
|
401 |
-
'ps_AF', // Pashto.
|
402 |
-
'pt_BR', // Portuguese (Brazil).
|
403 |
-
'pt_PT', // Portuguese (Portugal).
|
404 |
-
'qc_GT', // Quiché.
|
405 |
-
'qu_PE', // Quechua.
|
406 |
-
'qr_GR',
|
407 |
-
'qz_MM', // Burmese (Zawgyi).
|
408 |
-
'rm_CH', // Romansh.
|
409 |
-
'ro_RO', // Romanian.
|
410 |
-
'ru_RU', // Russian.
|
411 |
-
'rw_RW', // Kinyarwanda.
|
412 |
-
'sa_IN', // Sanskrit.
|
413 |
-
'sc_IT', // Sardinian.
|
414 |
-
'se_NO', // Northern Sami.
|
415 |
-
'si_LK', // Sinhala.
|
416 |
-
'su_ID', // Sundanese.
|
417 |
-
'sk_SK', // Slovak.
|
418 |
-
'sl_SI', // Slovenian.
|
419 |
-
'sn_ZW', // Shona.
|
420 |
-
'so_SO', // Somali.
|
421 |
-
'sq_AL', // Albanian.
|
422 |
-
'sr_RS', // Serbian.
|
423 |
-
'ss_SZ', // Swazi.
|
424 |
-
'st_ZA', // Southern Sotho.
|
425 |
-
'sv_SE', // Swedish.
|
426 |
-
'sw_KE', // Swahili.
|
427 |
-
'sy_SY', // Syriac.
|
428 |
-
'sz_PL', // Silesian.
|
429 |
-
'ta_IN', // Tamil.
|
430 |
-
'te_IN', // Telugu.
|
431 |
-
'tg_TJ', // Tajik.
|
432 |
-
'th_TH', // Thai.
|
433 |
-
'tk_TM', // Turkmen.
|
434 |
-
'tl_PH', // Filipino.
|
435 |
-
'tl_ST', // Klingon.
|
436 |
-
'tn_BW', // Tswana.
|
437 |
-
'tr_TR', // Turkish.
|
438 |
-
'ts_ZA', // Tsonga.
|
439 |
-
'tt_RU', // Tatar.
|
440 |
-
'tz_MA', // Tamazight.
|
441 |
-
'uk_UA', // Ukrainian.
|
442 |
-
'ur_PK', // Urdu.
|
443 |
-
'uz_UZ', // Uzbek.
|
444 |
-
've_ZA', // Venda.
|
445 |
-
'vi_VN', // Vietnamese.
|
446 |
-
'wo_SN', // Wolof.
|
447 |
-
'xh_ZA', // Xhosa.
|
448 |
-
'yi_DE', // Yiddish.
|
449 |
-
'yo_NG', // Yoruba.
|
450 |
-
'zh_CN', // Simplified Chinese (China).
|
451 |
-
'zh_HK', // Traditional Chinese (Hong Kong).
|
452 |
-
'zh_TW', // Traditional Chinese (Taiwan).
|
453 |
-
'zu_ZA', // Zulu.
|
454 |
-
'zz_TR', // Zazaki.
|
455 |
-
];
|
456 |
-
|
457 |
-
// Check to see if the locale is a valid FB one, if not, use en_US as a fallback.
|
458 |
-
if ( ! in_array( $locale, $fb_valid_fb_locales, true ) ) {
|
459 |
-
$locale = strtolower( substr( $locale, 0, 2 ) ) . '_' . strtoupper( substr( $locale, 0, 2 ) );
|
460 |
-
if ( ! in_array( $locale, $fb_valid_fb_locales, true ) ) {
|
461 |
-
$locale = 'en_US';
|
462 |
-
}
|
463 |
-
}
|
464 |
-
|
465 |
-
if ( $echo !== false ) {
|
466 |
-
$this->og_tag( 'og:locale', $locale );
|
467 |
-
}
|
468 |
-
|
469 |
-
return $locale;
|
470 |
-
}
|
471 |
-
|
472 |
-
/**
|
473 |
-
* Output the OpenGraph type.
|
474 |
-
*
|
475 |
-
* @param boolean $echo Whether to echo or return the type.
|
476 |
-
*
|
477 |
-
* @link https://developers.facebook.com/docs/reference/opengraph/object-type/object/
|
478 |
-
*
|
479 |
-
* @return string $type
|
480 |
-
*/
|
481 |
-
public function type( $echo = true ) {
|
482 |
-
|
483 |
-
if ( is_front_page() || is_home() ) {
|
484 |
-
$type = 'website';
|
485 |
-
}
|
486 |
-
elseif ( is_singular() ) {
|
487 |
-
|
488 |
-
// This'll usually only be changed by plugins right now.
|
489 |
-
$type = WPSEO_Meta::get_value( 'og_type' );
|
490 |
-
|
491 |
-
if ( $type === '' ) {
|
492 |
-
$type = 'article';
|
493 |
-
}
|
494 |
-
}
|
495 |
-
else {
|
496 |
-
// We use "object" for archives etc. as article doesn't apply there.
|
497 |
-
$type = 'object';
|
498 |
-
}
|
499 |
-
|
500 |
-
/**
|
501 |
-
* Filter: 'wpseo_opengraph_type' - Allow changing the OpenGraph type of the page.
|
502 |
-
*
|
503 |
-
* @api string $type The OpenGraph type string.
|
504 |
-
*/
|
505 |
-
$type = apply_filters( 'wpseo_opengraph_type', $type );
|
506 |
-
|
507 |
-
if ( is_string( $type ) && $type !== '' ) {
|
508 |
-
if ( $echo !== false ) {
|
509 |
-
$this->og_tag( 'og:type', $type );
|
510 |
-
}
|
511 |
-
else {
|
512 |
-
return $type;
|
513 |
-
}
|
514 |
-
}
|
515 |
-
|
516 |
-
return '';
|
517 |
-
}
|
518 |
-
|
519 |
-
/**
|
520 |
-
* Create new WPSEO_OpenGraph_Image class and get the images to set the og:image.
|
521 |
-
*
|
522 |
-
* @param string|bool $image Optional. Image URL.
|
523 |
-
*
|
524 |
-
* @return void
|
525 |
-
*/
|
526 |
-
public function image( $image = false ) {
|
527 |
-
$opengraph_image = new WPSEO_OpenGraph_Image( $image, $this );
|
528 |
-
$opengraph_image->show();
|
529 |
-
}
|
530 |
-
|
531 |
-
/**
|
532 |
-
* Output the OpenGraph description, specific OG description first, if not, grab the meta description.
|
533 |
-
*
|
534 |
-
* @param bool $echo Whether to echo or return the description.
|
535 |
-
*
|
536 |
-
* @return string $ogdesc
|
537 |
-
*/
|
538 |
-
public function description( $echo = true ) {
|
539 |
-
$ogdesc = '';
|
540 |
-
$frontend = WPSEO_Frontend::get_instance();
|
541 |
-
|
542 |
-
if ( is_front_page() ) {
|
543 |
-
if ( WPSEO_Options::get( 'og_frontpage_desc', '' ) !== '' ) {
|
544 |
-
$ogdesc = wpseo_replace_vars( WPSEO_Options::get( 'og_frontpage_desc' ), null );
|
545 |
-
}
|
546 |
-
else {
|
547 |
-
$ogdesc = $frontend->metadesc( false );
|
548 |
-
}
|
549 |
-
}
|
550 |
-
|
551 |
-
if ( WPSEO_Frontend_Page_Type::is_simple_page() ) {
|
552 |
-
$post_id = WPSEO_Frontend_Page_Type::get_simple_page_id();
|
553 |
-
$post = get_post( $post_id );
|
554 |
-
$ogdesc = WPSEO_Meta::get_value( 'opengraph-description', $post_id );
|
555 |
-
|
556 |
-
// Replace Yoast SEO Variables.
|
557 |
-
$ogdesc = wpseo_replace_vars( $ogdesc, $post );
|
558 |
-
|
559 |
-
// Use metadesc if $ogdesc is empty.
|
560 |
-
if ( $ogdesc === '' ) {
|
561 |
-
$ogdesc = $frontend->metadesc( false );
|
562 |
-
}
|
563 |
-
|
564 |
-
// Tag og:description is still blank so grab it from get_the_excerpt().
|
565 |
-
if ( ! is_string( $ogdesc ) || ( is_string( $ogdesc ) && $ogdesc === '' ) ) {
|
566 |
-
$ogdesc = str_replace( '[…]', '…', wp_strip_all_tags( get_the_excerpt() ) );
|
567 |
-
}
|
568 |
-
}
|
569 |
-
|
570 |
-
if ( is_author() ) {
|
571 |
-
$ogdesc = $frontend->metadesc( false );
|
572 |
-
}
|
573 |
-
|
574 |
-
if ( is_category() || is_tag() || is_tax() ) {
|
575 |
-
$ogdesc = WPSEO_Taxonomy_Meta::get_meta_without_term( 'opengraph-description' );
|
576 |
-
if ( $ogdesc === '' ) {
|
577 |
-
$ogdesc = $frontend->metadesc( false );
|
578 |
-
}
|
579 |
-
|
580 |
-
if ( $ogdesc === '' ) {
|
581 |
-
$ogdesc = wp_strip_all_tags( term_description() );
|
582 |
-
}
|
583 |
-
|
584 |
-
if ( $ogdesc === '' ) {
|
585 |
-
$ogdesc = WPSEO_Taxonomy_Meta::get_meta_without_term( 'desc' );
|
586 |
-
}
|
587 |
-
$ogdesc = wpseo_replace_vars( $ogdesc, get_queried_object() );
|
588 |
-
}
|
589 |
-
|
590 |
-
// Strip shortcodes if any.
|
591 |
-
$ogdesc = strip_shortcodes( $ogdesc );
|
592 |
-
|
593 |
-
/**
|
594 |
-
* Filter: 'wpseo_opengraph_desc' - Allow changing the OpenGraph description.
|
595 |
-
*
|
596 |
-
* @api string $ogdesc The description string.
|
597 |
-
*/
|
598 |
-
$ogdesc = trim( apply_filters( 'wpseo_opengraph_desc', $ogdesc ) );
|
599 |
-
|
600 |
-
if ( is_string( $ogdesc ) && $ogdesc !== '' ) {
|
601 |
-
if ( $echo !== false ) {
|
602 |
-
$this->og_tag( 'og:description', $ogdesc );
|
603 |
-
}
|
604 |
-
}
|
605 |
-
|
606 |
-
return $ogdesc;
|
607 |
-
}
|
608 |
-
|
609 |
-
/**
|
610 |
-
* Output the site name straight from the blog info.
|
611 |
-
*/
|
612 |
-
public function site_name() {
|
613 |
-
/**
|
614 |
-
* Filter: 'wpseo_opengraph_site_name' - Allow changing the OpenGraph site name.
|
615 |
-
*
|
616 |
-
* @api string $unsigned Blog name string.
|
617 |
-
*/
|
618 |
-
$name = apply_filters( 'wpseo_opengraph_site_name', get_bloginfo( 'name' ) );
|
619 |
-
if ( is_string( $name ) && $name !== '' ) {
|
620 |
-
$this->og_tag( 'og:site_name', $name );
|
621 |
-
}
|
622 |
-
}
|
623 |
-
|
624 |
-
/**
|
625 |
-
* Output the article tags as article:tag tags.
|
626 |
-
*
|
627 |
-
* @link https://developers.facebook.com/docs/reference/opengraph/object-type/article/
|
628 |
-
*
|
629 |
-
* @return boolean
|
630 |
-
*/
|
631 |
-
public function tags() {
|
632 |
-
if ( ! is_singular() ) {
|
633 |
-
return false;
|
634 |
-
}
|
635 |
-
|
636 |
-
$tags = get_the_tags();
|
637 |
-
if ( ! is_wp_error( $tags ) && ( is_array( $tags ) && $tags !== [] ) ) {
|
638 |
-
|
639 |
-
foreach ( $tags as $tag ) {
|
640 |
-
$this->og_tag( 'article:tag', $tag->name );
|
641 |
-
}
|
642 |
-
|
643 |
-
return true;
|
644 |
-
}
|
645 |
-
|
646 |
-
return false;
|
647 |
-
}
|
648 |
-
|
649 |
-
/**
|
650 |
-
* Output the article category as an article:section tag.
|
651 |
-
*
|
652 |
-
* @link https://developers.facebook.com/docs/reference/opengraph/object-type/article/
|
653 |
-
*
|
654 |
-
* @return boolean;
|
655 |
-
*/
|
656 |
-
public function category() {
|
657 |
-
|
658 |
-
if ( ! is_singular() ) {
|
659 |
-
return false;
|
660 |
-
}
|
661 |
-
|
662 |
-
$post = get_post();
|
663 |
-
if ( ! $post ) {
|
664 |
-
return false;
|
665 |
-
}
|
666 |
-
|
667 |
-
$primary_term = new WPSEO_Primary_Term( 'category', $post->ID );
|
668 |
-
$primary_category = $primary_term->get_primary_term();
|
669 |
-
|
670 |
-
if ( $primary_category ) {
|
671 |
-
// We can only show one section here, so we take the first one.
|
672 |
-
$this->og_tag( 'article:section', get_cat_name( $primary_category ) );
|
673 |
-
|
674 |
-
return true;
|
675 |
-
}
|
676 |
-
|
677 |
-
$terms = get_the_category();
|
678 |
-
|
679 |
-
if ( ! is_wp_error( $terms ) && is_array( $terms ) && ! empty( $terms ) ) {
|
680 |
-
// We can only show one section here, so we take the first one.
|
681 |
-
$term = reset( $terms );
|
682 |
-
$this->og_tag( 'article:section', $term->name );
|
683 |
-
return true;
|
684 |
-
}
|
685 |
-
|
686 |
-
return false;
|
687 |
-
}
|
688 |
-
|
689 |
-
/**
|
690 |
-
* Output the article publish and last modification date.
|
691 |
-
*
|
692 |
-
* @link https://developers.facebook.com/docs/reference/opengraph/object-type/article/
|
693 |
-
*
|
694 |
-
* @return boolean;
|
695 |
-
*/
|
696 |
-
public function publish_date() {
|
697 |
-
|
698 |
-
if ( ! is_singular( 'post' ) ) {
|
699 |
-
/**
|
700 |
-
* Filter: 'wpseo_opengraph_show_publish_date' - Allow showing publication date for other post types.
|
701 |
-
*
|
702 |
-
* @api bool $unsigned Whether or not to show publish date.
|
703 |
-
*
|
704 |
-
* @param string $post_type The current URL's post type.
|
705 |
-
*/
|
706 |
-
if ( false === apply_filters( 'wpseo_opengraph_show_publish_date', false, get_post_type() ) ) {
|
707 |
-
return false;
|
708 |
-
}
|
709 |
-
}
|
710 |
-
|
711 |
-
$post = get_post();
|
712 |
-
|
713 |
-
$pub = $this->date->format( $post->post_date_gmt );
|
714 |
-
$this->og_tag( 'article:published_time', $pub );
|
715 |
-
|
716 |
-
$mod = $this->date->format( $post->post_modified_gmt );
|
717 |
-
if ( $mod !== $pub ) {
|
718 |
-
$this->og_tag( 'article:modified_time', $mod );
|
719 |
-
$this->og_tag( 'og:updated_time', $mod );
|
720 |
-
}
|
721 |
-
|
722 |
-
return true;
|
723 |
-
}
|
724 |
-
|
725 |
-
/**
|
726 |
-
* Outputs the Facebook app_id.
|
727 |
-
*
|
728 |
-
* @link https://developers.facebook.com/docs/reference/opengraph/object-type/article/
|
729 |
-
*
|
730 |
-
* @return void
|
731 |
-
*/
|
732 |
-
public function app_id() {
|
733 |
-
$app_id = WPSEO_Options::get( 'fbadminapp', '' );
|
734 |
-
if ( $app_id !== '' ) {
|
735 |
-
$this->og_tag( 'fb:app_id', $app_id );
|
736 |
-
}
|
737 |
-
}
|
738 |
-
|
739 |
-
/* ********************* DEPRECATED METHODS ********************* */
|
740 |
-
|
741 |
-
/**
|
742 |
-
* Outputs the site owner.
|
743 |
-
*
|
744 |
-
* @link https://developers.facebook.com/docs/reference/opengraph/object-type/article/
|
745 |
-
*
|
746 |
-
* @return void
|
747 |
-
*
|
748 |
-
* @deprecated 7.1
|
749 |
-
* @codeCoverageIgnore
|
750 |
-
*/
|
751 |
-
public function site_owner() {
|
752 |
-
// As this is a frontend method, we want to make sure it is not displayed for non-logged in users.
|
753 |
-
if ( function_exists( 'wp_get_current_user' ) && current_user_can( 'manage_options' ) ) {
|
754 |
-
_deprecated_function( 'WPSEO_OpenGraph::site_owner', '7.1', null );
|
755 |
-
}
|
756 |
-
}
|
757 |
-
|
758 |
-
/**
|
759 |
-
* Fallback method for plugins using image_output.
|
760 |
-
*
|
761 |
-
* @param string|bool $image Image URL.
|
762 |
-
*
|
763 |
-
* @deprecated 7.4
|
764 |
-
* @codeCoverageIgnore
|
765 |
-
*/
|
766 |
-
public function image_output( $image = false ) {
|
767 |
-
_deprecated_function( 'WPSEO_OpenGraph::image_output', '7.4', 'WPSEO_OpenGraph::image' );
|
768 |
-
|
769 |
-
$this->image( $image );
|
770 |
-
}
|
771 |
-
} /* End of class */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/class-primary-category.php
DELETED
@@ -1,71 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Frontend
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Adds customizations to the front end for the primary category.
|
10 |
-
*/
|
11 |
-
class WPSEO_Frontend_Primary_Category implements WPSEO_WordPress_Integration {
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Registers the hooks necessary for correct primary category behaviour.
|
15 |
-
*/
|
16 |
-
public function register_hooks() {
|
17 |
-
add_filter( 'post_link_category', [ $this, 'post_link_category' ], 10, 3 );
|
18 |
-
}
|
19 |
-
|
20 |
-
/**
|
21 |
-
* Filters post_link_category to change the category to the chosen category by the user.
|
22 |
-
*
|
23 |
-
* @param stdClass $category The category that is now used for the post link.
|
24 |
-
* @param array $categories This parameter is not used.
|
25 |
-
* @param WP_Post $post The post in question.
|
26 |
-
*
|
27 |
-
* @return array|null|object|WP_Error The category we want to use for the post link.
|
28 |
-
*/
|
29 |
-
public function post_link_category( $category, $categories = null, $post = null ) {
|
30 |
-
$post = get_post( $post );
|
31 |
-
$primary_category = $this->get_primary_category( $post );
|
32 |
-
|
33 |
-
if ( false !== $primary_category && $primary_category !== $category->cat_ID ) {
|
34 |
-
$category = $this->get_category( $primary_category );
|
35 |
-
}
|
36 |
-
|
37 |
-
return $category;
|
38 |
-
}
|
39 |
-
|
40 |
-
/**
|
41 |
-
* Get the id of the primary category.
|
42 |
-
*
|
43 |
-
* @param WP_Post $post The post in question.
|
44 |
-
*
|
45 |
-
* @return int Primary category id.
|
46 |
-
*/
|
47 |
-
protected function get_primary_category( $post = null ) {
|
48 |
-
$post = get_post( $post );
|
49 |
-
|
50 |
-
if ( $post === null ) {
|
51 |
-
return false;
|
52 |
-
}
|
53 |
-
|
54 |
-
$primary_term = new WPSEO_Primary_Term( 'category', $post->ID );
|
55 |
-
|
56 |
-
return $primary_term->get_primary_term();
|
57 |
-
}
|
58 |
-
|
59 |
-
/**
|
60 |
-
* Wrapper for get category to make mocking easier.
|
61 |
-
*
|
62 |
-
* @param int $primary_category ID of primary category.
|
63 |
-
*
|
64 |
-
* @return array|null|object|WP_Error
|
65 |
-
*/
|
66 |
-
protected function get_category( $primary_category ) {
|
67 |
-
$category = get_category( $primary_category );
|
68 |
-
|
69 |
-
return $category;
|
70 |
-
}
|
71 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/class-remove-reply-to-com.php
DELETED
@@ -1,83 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Frontend
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Class WPSEO_Remove_Reply_To_Com.
|
10 |
-
*
|
11 |
-
* @since 7.0
|
12 |
-
*/
|
13 |
-
class WPSEO_Remove_Reply_To_Com implements WPSEO_WordPress_Integration {
|
14 |
-
|
15 |
-
/**
|
16 |
-
* Registers the hooks necessary to handle removing ?replytocom.
|
17 |
-
*
|
18 |
-
* @since 7.0
|
19 |
-
*
|
20 |
-
* @return void
|
21 |
-
*/
|
22 |
-
public function register_hooks() {
|
23 |
-
if ( $this->clean_reply_to_com() ) {
|
24 |
-
add_filter( 'comment_reply_link', [ $this, 'remove_reply_to_com' ] );
|
25 |
-
add_action( 'template_redirect', [ $this, 'replytocom_redirect' ], 1 );
|
26 |
-
}
|
27 |
-
}
|
28 |
-
|
29 |
-
/**
|
30 |
-
* Removes the ?replytocom variable from the link, replacing it with a #comment-<number> anchor.
|
31 |
-
*
|
32 |
-
* @todo Should this function also allow for relative urls ?
|
33 |
-
*
|
34 |
-
* @param string $link The comment link as a string.
|
35 |
-
*
|
36 |
-
* @return string The modified link.
|
37 |
-
*/
|
38 |
-
public function remove_reply_to_com( $link ) {
|
39 |
-
return preg_replace( '`href=(["\'])(?:.*(?:\?|&|&)replytocom=(\d+)#respond)`', 'href=$1#comment-$2', $link );
|
40 |
-
}
|
41 |
-
|
42 |
-
/**
|
43 |
-
* Redirects out the ?replytocom variables.
|
44 |
-
*
|
45 |
-
* @since 1.4.13
|
46 |
-
* @return boolean True when redirect has been done.
|
47 |
-
*/
|
48 |
-
public function replytocom_redirect() {
|
49 |
-
if ( isset( $_GET['replytocom'] ) && is_singular() ) {
|
50 |
-
$url = get_permalink( $GLOBALS['post']->ID );
|
51 |
-
$hash = sanitize_text_field( wp_unslash( $_GET['replytocom'] ) );
|
52 |
-
$query_string = '';
|
53 |
-
if ( isset( $_SERVER['QUERY_STRING'] ) ) {
|
54 |
-
$query_string = remove_query_arg( 'replytocom', sanitize_text_field( wp_unslash( $_SERVER['QUERY_STRING'] ) ) );
|
55 |
-
}
|
56 |
-
if ( ! empty( $query_string ) ) {
|
57 |
-
$url .= '?' . $query_string;
|
58 |
-
}
|
59 |
-
$url .= '#comment-' . $hash;
|
60 |
-
|
61 |
-
$front = WPSEO_Frontend::get_instance();
|
62 |
-
$front->redirect( $url, 301 );
|
63 |
-
|
64 |
-
return true;
|
65 |
-
}
|
66 |
-
|
67 |
-
return false;
|
68 |
-
}
|
69 |
-
|
70 |
-
/**
|
71 |
-
* Checks whether we can allow the feature that removes ?replytocom query parameters.
|
72 |
-
*
|
73 |
-
* @return bool True to remove, false not to remove.
|
74 |
-
*/
|
75 |
-
private function clean_reply_to_com() {
|
76 |
-
/**
|
77 |
-
* Filter: 'wpseo_remove_reply_to_com' - Allow disabling the feature that removes ?replytocom query parameters.
|
78 |
-
*
|
79 |
-
* @param bool $return True to remove, false not to remove.
|
80 |
-
*/
|
81 |
-
return (bool) apply_filters( 'wpseo_remove_reply_to_com', true );
|
82 |
-
}
|
83 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/class-twitter.php
DELETED
@@ -1,676 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Frontend
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* This class handles the Twitter card functionality.
|
10 |
-
*
|
11 |
-
* @link https://dev.twitter.com/docs/cards
|
12 |
-
*/
|
13 |
-
class WPSEO_Twitter {
|
14 |
-
|
15 |
-
/**
|
16 |
-
* Instance of this class.
|
17 |
-
*
|
18 |
-
* @var object
|
19 |
-
*/
|
20 |
-
public static $instance;
|
21 |
-
|
22 |
-
/**
|
23 |
-
* Images.
|
24 |
-
*
|
25 |
-
* @var array
|
26 |
-
*/
|
27 |
-
private $images = [];
|
28 |
-
|
29 |
-
/**
|
30 |
-
* Images.
|
31 |
-
*
|
32 |
-
* @var array
|
33 |
-
*/
|
34 |
-
public $shown_images = [];
|
35 |
-
|
36 |
-
/**
|
37 |
-
* Will hold the Twitter card type being created.
|
38 |
-
*
|
39 |
-
* @var string
|
40 |
-
*/
|
41 |
-
private $type;
|
42 |
-
|
43 |
-
/**
|
44 |
-
* Card types currently allowed by Twitter.
|
45 |
-
*
|
46 |
-
* @link https://dev.twitter.com/cards/types
|
47 |
-
*
|
48 |
-
* @var array
|
49 |
-
*/
|
50 |
-
private $valid_types = [
|
51 |
-
'summary',
|
52 |
-
'summary_large_image',
|
53 |
-
'app',
|
54 |
-
'player',
|
55 |
-
];
|
56 |
-
|
57 |
-
/**
|
58 |
-
* Class constructor.
|
59 |
-
*/
|
60 |
-
public function __construct() {
|
61 |
-
$this->twitter();
|
62 |
-
}
|
63 |
-
|
64 |
-
/**
|
65 |
-
* Outputs the Twitter Card code on singular pages.
|
66 |
-
*/
|
67 |
-
public function twitter() {
|
68 |
-
|
69 |
-
/**
|
70 |
-
* Filter: 'wpseo_output_twitter_card' - Allow disabling of the Twitter card.
|
71 |
-
*
|
72 |
-
* @api bool $enabled Enabled/disabled flag
|
73 |
-
*/
|
74 |
-
if ( false === apply_filters( 'wpseo_output_twitter_card', true ) ) {
|
75 |
-
return;
|
76 |
-
}
|
77 |
-
|
78 |
-
wp_reset_query();
|
79 |
-
|
80 |
-
$this->type();
|
81 |
-
$this->description();
|
82 |
-
$this->title();
|
83 |
-
$this->site_twitter();
|
84 |
-
|
85 |
-
if ( ! post_password_required() ) {
|
86 |
-
$this->image();
|
87 |
-
}
|
88 |
-
|
89 |
-
if ( is_singular() ) {
|
90 |
-
$this->author();
|
91 |
-
}
|
92 |
-
|
93 |
-
/**
|
94 |
-
* Action: 'wpseo_twitter' - Hook to add all Yoast SEO Twitter output to so they're close together.
|
95 |
-
*/
|
96 |
-
do_action( 'wpseo_twitter' );
|
97 |
-
}
|
98 |
-
|
99 |
-
/**
|
100 |
-
* Display the Twitter card type.
|
101 |
-
*
|
102 |
-
* This defaults to summary but can be filtered using the <code>wpseo_twitter_card_type</code> filter.
|
103 |
-
*
|
104 |
-
* @link https://dev.twitter.com/docs/cards
|
105 |
-
*/
|
106 |
-
protected function type() {
|
107 |
-
$this->determine_card_type();
|
108 |
-
$this->sanitize_card_type();
|
109 |
-
|
110 |
-
$this->output_metatag( 'card', $this->type );
|
111 |
-
}
|
112 |
-
|
113 |
-
/**
|
114 |
-
* Determines the twitter card type for the current page.
|
115 |
-
*/
|
116 |
-
private function determine_card_type() {
|
117 |
-
$this->type = WPSEO_Options::get( 'twitter_card_type' );
|
118 |
-
|
119 |
-
// @todo This should be reworked to use summary_large_image for any fitting image R.
|
120 |
-
if ( is_singular() && has_shortcode( $GLOBALS['post']->post_content, 'gallery' ) ) {
|
121 |
-
|
122 |
-
$this->images = get_post_gallery_images();
|
123 |
-
|
124 |
-
if ( count( $this->images ) > 0 ) {
|
125 |
-
$this->type = 'summary_large_image';
|
126 |
-
}
|
127 |
-
}
|
128 |
-
|
129 |
-
/**
|
130 |
-
* Filter: 'wpseo_twitter_card_type' - Allow changing the Twitter Card type as output in the Twitter card by Yoast SEO.
|
131 |
-
*
|
132 |
-
* @api string $unsigned The type string.
|
133 |
-
*/
|
134 |
-
$this->type = apply_filters( 'wpseo_twitter_card_type', $this->type );
|
135 |
-
}
|
136 |
-
|
137 |
-
/**
|
138 |
-
* Determines whether the card type is of a type currently allowed by Twitter.
|
139 |
-
*
|
140 |
-
* @link https://dev.twitter.com/cards/types
|
141 |
-
*/
|
142 |
-
private function sanitize_card_type() {
|
143 |
-
if ( ! in_array( $this->type, $this->valid_types, true ) ) {
|
144 |
-
$this->type = 'summary';
|
145 |
-
}
|
146 |
-
}
|
147 |
-
|
148 |
-
/**
|
149 |
-
* Output the metatag.
|
150 |
-
*
|
151 |
-
* @param string $name Tag name string.
|
152 |
-
* @param string $value Tag value string.
|
153 |
-
* @param bool $escaped Force escape flag.
|
154 |
-
*/
|
155 |
-
private function output_metatag( $name, $value, $escaped = false ) {
|
156 |
-
|
157 |
-
// Escape the value if not escaped.
|
158 |
-
if ( false === $escaped ) {
|
159 |
-
$value = esc_attr( $value );
|
160 |
-
}
|
161 |
-
|
162 |
-
/**
|
163 |
-
* Filter: 'wpseo_twitter_metatag_key' - Make the Twitter metatag key filterable.
|
164 |
-
*
|
165 |
-
* @api string $key The Twitter metatag key.
|
166 |
-
*/
|
167 |
-
$metatag_key = apply_filters( 'wpseo_twitter_metatag_key', 'name' );
|
168 |
-
|
169 |
-
// Output meta.
|
170 |
-
echo '<meta ', esc_attr( $metatag_key ), '="twitter:', esc_attr( $name ), '" content="', $value, '" />', "\n";
|
171 |
-
}
|
172 |
-
|
173 |
-
/**
|
174 |
-
* Displays the description for Twitter.
|
175 |
-
*
|
176 |
-
* Only used when OpenGraph is inactive.
|
177 |
-
*/
|
178 |
-
protected function description() {
|
179 |
-
if ( WPSEO_Frontend_Page_Type::is_simple_page() ) {
|
180 |
-
$meta_desc = $this->single_description( WPSEO_Frontend_Page_Type::get_simple_page_id() );
|
181 |
-
}
|
182 |
-
elseif ( is_category() || is_tax() || is_tag() ) {
|
183 |
-
$meta_desc = $this->taxonomy_description();
|
184 |
-
}
|
185 |
-
else {
|
186 |
-
$meta_desc = $this->fallback_description();
|
187 |
-
}
|
188 |
-
|
189 |
-
$meta_desc = wpseo_replace_vars( $meta_desc, get_queried_object() );
|
190 |
-
|
191 |
-
/**
|
192 |
-
* Filter: 'wpseo_twitter_description' - Allow changing the Twitter description as output in the Twitter card by Yoast SEO.
|
193 |
-
*
|
194 |
-
* @api string $twitter The description string.
|
195 |
-
*/
|
196 |
-
$meta_desc = apply_filters( 'wpseo_twitter_description', $meta_desc );
|
197 |
-
if ( is_string( $meta_desc ) && $meta_desc !== '' ) {
|
198 |
-
$this->output_metatag( 'description', $meta_desc );
|
199 |
-
}
|
200 |
-
}
|
201 |
-
|
202 |
-
/**
|
203 |
-
* Returns the description for a singular page.
|
204 |
-
*
|
205 |
-
* @param int $post_id Post ID.
|
206 |
-
*
|
207 |
-
* @return string
|
208 |
-
*/
|
209 |
-
private function single_description( $post_id = 0 ) {
|
210 |
-
$meta_desc = trim( WPSEO_Meta::get_value( 'twitter-description', $post_id ) );
|
211 |
-
|
212 |
-
if ( is_string( $meta_desc ) && '' !== $meta_desc ) {
|
213 |
-
return $meta_desc;
|
214 |
-
}
|
215 |
-
|
216 |
-
$meta_desc = $this->fallback_description();
|
217 |
-
if ( is_string( $meta_desc ) && '' !== $meta_desc ) {
|
218 |
-
return $meta_desc;
|
219 |
-
}
|
220 |
-
|
221 |
-
return wp_strip_all_tags( get_the_excerpt() );
|
222 |
-
}
|
223 |
-
|
224 |
-
/**
|
225 |
-
* Getting the description for the taxonomy.
|
226 |
-
*
|
227 |
-
* @return bool|mixed|string
|
228 |
-
*/
|
229 |
-
private function taxonomy_description() {
|
230 |
-
$meta_desc = WPSEO_Taxonomy_Meta::get_meta_without_term( 'twitter-description' );
|
231 |
-
|
232 |
-
if ( ! is_string( $meta_desc ) || $meta_desc === '' ) {
|
233 |
-
$meta_desc = $this->fallback_description();
|
234 |
-
}
|
235 |
-
|
236 |
-
if ( is_string( $meta_desc ) && $meta_desc !== '' ) {
|
237 |
-
return $meta_desc;
|
238 |
-
}
|
239 |
-
|
240 |
-
return wp_strip_all_tags( term_description() );
|
241 |
-
}
|
242 |
-
|
243 |
-
/**
|
244 |
-
* Returns a fallback description.
|
245 |
-
*
|
246 |
-
* @return string
|
247 |
-
*/
|
248 |
-
private function fallback_description() {
|
249 |
-
return trim( WPSEO_Frontend::get_instance()->metadesc( false ) );
|
250 |
-
}
|
251 |
-
|
252 |
-
/**
|
253 |
-
* Displays the title for Twitter.
|
254 |
-
*
|
255 |
-
* Only used when OpenGraph is inactive.
|
256 |
-
*/
|
257 |
-
protected function title() {
|
258 |
-
if ( WPSEO_Frontend_Page_Type::is_simple_page() ) {
|
259 |
-
$title = $this->single_title( WPSEO_Frontend_Page_Type::get_simple_page_id() );
|
260 |
-
}
|
261 |
-
elseif ( is_category() || is_tax() || is_tag() ) {
|
262 |
-
$title = $this->taxonomy_title();
|
263 |
-
}
|
264 |
-
else {
|
265 |
-
$title = $this->fallback_title();
|
266 |
-
}
|
267 |
-
|
268 |
-
$title = wpseo_replace_vars( $title, get_queried_object() );
|
269 |
-
|
270 |
-
/**
|
271 |
-
* Filter: 'wpseo_twitter_title' - Allow changing the Twitter title as output in the Twitter card by Yoast SEO.
|
272 |
-
*
|
273 |
-
* @api string $twitter The title string.
|
274 |
-
*/
|
275 |
-
$title = apply_filters( 'wpseo_twitter_title', $title );
|
276 |
-
if ( is_string( $title ) && $title !== '' ) {
|
277 |
-
$this->output_metatag( 'title', $title );
|
278 |
-
}
|
279 |
-
}
|
280 |
-
|
281 |
-
/**
|
282 |
-
* Returns the Twitter title for a single post.
|
283 |
-
*
|
284 |
-
* @param int $post_id Post ID.
|
285 |
-
*
|
286 |
-
* @return string
|
287 |
-
*/
|
288 |
-
private function single_title( $post_id = 0 ) {
|
289 |
-
$title = WPSEO_Meta::get_value( 'twitter-title', $post_id );
|
290 |
-
if ( ! is_string( $title ) || $title === '' ) {
|
291 |
-
return $this->fallback_title();
|
292 |
-
}
|
293 |
-
|
294 |
-
return $title;
|
295 |
-
}
|
296 |
-
|
297 |
-
/**
|
298 |
-
* Getting the title for the taxonomy.
|
299 |
-
*
|
300 |
-
* @return bool|mixed|string
|
301 |
-
*/
|
302 |
-
private function taxonomy_title() {
|
303 |
-
$title = WPSEO_Taxonomy_Meta::get_meta_without_term( 'twitter-title' );
|
304 |
-
|
305 |
-
if ( ! is_string( $title ) || $title === '' ) {
|
306 |
-
return $this->fallback_title();
|
307 |
-
}
|
308 |
-
|
309 |
-
return $title;
|
310 |
-
}
|
311 |
-
|
312 |
-
/**
|
313 |
-
* Returns the Twitter title for any page.
|
314 |
-
*
|
315 |
-
* @return string
|
316 |
-
*/
|
317 |
-
private function fallback_title() {
|
318 |
-
return WPSEO_Frontend::get_instance()->title( '' );
|
319 |
-
}
|
320 |
-
|
321 |
-
/**
|
322 |
-
* Displays the Twitter account for the site.
|
323 |
-
*/
|
324 |
-
protected function site_twitter() {
|
325 |
-
switch ( WPSEO_Options::get( 'company_or_person', '' ) ) {
|
326 |
-
case 'person':
|
327 |
-
$user_id = (int) WPSEO_Options::get( 'company_or_person_user_id', false );
|
328 |
-
$twitter = get_the_author_meta( 'twitter', $user_id );
|
329 |
-
// For backwards compat reasons, if there is no twitter ID for person, we fall back to site.
|
330 |
-
if ( empty( $twitter ) ) {
|
331 |
-
$twitter = WPSEO_Options::get( 'twitter_site' );
|
332 |
-
}
|
333 |
-
break;
|
334 |
-
case 'company':
|
335 |
-
default:
|
336 |
-
$twitter = WPSEO_Options::get( 'twitter_site' );
|
337 |
-
break;
|
338 |
-
}
|
339 |
-
|
340 |
-
/**
|
341 |
-
* Filter: 'wpseo_twitter_site' - Allow changing the Twitter site account as output in the Twitter card by Yoast SEO.
|
342 |
-
*
|
343 |
-
* @api string $unsigned Twitter site account string.
|
344 |
-
*/
|
345 |
-
$site = apply_filters( 'wpseo_twitter_site', $twitter );
|
346 |
-
$site = $this->get_twitter_id( $site );
|
347 |
-
|
348 |
-
if ( is_string( $site ) && $site !== '' ) {
|
349 |
-
$this->output_metatag( 'site', '@' . $site );
|
350 |
-
}
|
351 |
-
}
|
352 |
-
|
353 |
-
/**
|
354 |
-
* Checks if the given id is actually an id or a url and if url, distills the id from it.
|
355 |
-
*
|
356 |
-
* Solves issues with filters returning urls and theme's/other plugins also adding a user meta
|
357 |
-
* twitter field which expects url rather than an id (which is what we expect).
|
358 |
-
*
|
359 |
-
* @param string $id Twitter ID or url.
|
360 |
-
*
|
361 |
-
* @return string|bool Twitter ID or false if it failed to get a valid Twitter ID.
|
362 |
-
*/
|
363 |
-
private function get_twitter_id( $id ) {
|
364 |
-
if ( preg_match( '`([A-Za-z0-9_]{1,25})$`', $id, $match ) ) {
|
365 |
-
return $match[1];
|
366 |
-
}
|
367 |
-
|
368 |
-
return false;
|
369 |
-
}
|
370 |
-
|
371 |
-
/**
|
372 |
-
* Displays the image for Twitter.
|
373 |
-
*
|
374 |
-
* Only used when OpenGraph is inactive or Summary Large Image card is chosen.
|
375 |
-
*/
|
376 |
-
protected function image() {
|
377 |
-
if ( is_category() || is_tax() || is_tag() ) {
|
378 |
-
$this->taxonomy_image_output();
|
379 |
-
}
|
380 |
-
else {
|
381 |
-
$this->single_image_output();
|
382 |
-
}
|
383 |
-
|
384 |
-
if ( count( $this->shown_images ) === 0 && WPSEO_Options::get( 'og_default_image', '' ) !== '' ) {
|
385 |
-
$this->image_output( WPSEO_Options::get( 'og_default_image' ) );
|
386 |
-
}
|
387 |
-
}
|
388 |
-
|
389 |
-
/**
|
390 |
-
* Outputs the first image of a gallery.
|
391 |
-
*/
|
392 |
-
private function gallery_images_output() {
|
393 |
-
|
394 |
-
$this->image_output( reset( $this->images ) );
|
395 |
-
}
|
396 |
-
|
397 |
-
/**
|
398 |
-
* Outputs the Twitter image. Using the Facebook image as fallback.
|
399 |
-
*
|
400 |
-
* @return bool
|
401 |
-
*/
|
402 |
-
private function taxonomy_image_output() {
|
403 |
-
foreach ( [ 'twitter-image', 'opengraph-image' ] as $tag ) {
|
404 |
-
$img = WPSEO_Taxonomy_Meta::get_meta_without_term( $tag );
|
405 |
-
if ( is_string( $img ) && $img !== '' ) {
|
406 |
-
$this->image_output( $img );
|
407 |
-
|
408 |
-
return true;
|
409 |
-
}
|
410 |
-
}
|
411 |
-
|
412 |
-
/**
|
413 |
-
* Filter: wpseo_twitter_taxonomy_image - Allow developers to set a custom Twitter image for taxonomies.
|
414 |
-
*
|
415 |
-
* @api bool|string $unsigned Return string to supply image to use, false to use no image.
|
416 |
-
*/
|
417 |
-
$img = apply_filters( 'wpseo_twitter_taxonomy_image', false );
|
418 |
-
if ( is_string( $img ) && $img !== '' ) {
|
419 |
-
$this->image_output( $img );
|
420 |
-
|
421 |
-
return true;
|
422 |
-
}
|
423 |
-
|
424 |
-
return false;
|
425 |
-
}
|
426 |
-
|
427 |
-
/**
|
428 |
-
* Takes care of image output when we only need to display a single image.
|
429 |
-
*
|
430 |
-
* @return void
|
431 |
-
*/
|
432 |
-
private function single_image_output() {
|
433 |
-
if ( $this->homepage_image_output() ) {
|
434 |
-
return;
|
435 |
-
}
|
436 |
-
|
437 |
-
// Posts page, which won't be caught by is_singular() below.
|
438 |
-
if ( $this->posts_page_image_output() ) {
|
439 |
-
return;
|
440 |
-
}
|
441 |
-
|
442 |
-
if ( WPSEO_Frontend_Page_Type::is_simple_page() ) {
|
443 |
-
$post_id = WPSEO_Frontend_Page_Type::get_simple_page_id();
|
444 |
-
|
445 |
-
if ( $this->image_from_meta_values_output( $post_id ) ) {
|
446 |
-
return;
|
447 |
-
}
|
448 |
-
|
449 |
-
if ( $this->image_of_attachment_page_output( $post_id ) ) {
|
450 |
-
return;
|
451 |
-
}
|
452 |
-
|
453 |
-
if ( $this->image_thumbnail_output( $post_id ) ) {
|
454 |
-
return;
|
455 |
-
}
|
456 |
-
|
457 |
-
if ( count( $this->images ) > 0 ) {
|
458 |
-
$this->gallery_images_output();
|
459 |
-
return;
|
460 |
-
}
|
461 |
-
|
462 |
-
if ( $this->image_from_content_output( $post_id ) ) {
|
463 |
-
return;
|
464 |
-
}
|
465 |
-
}
|
466 |
-
}
|
467 |
-
|
468 |
-
/**
|
469 |
-
* Show the front page image.
|
470 |
-
*
|
471 |
-
* @return bool
|
472 |
-
*/
|
473 |
-
private function homepage_image_output() {
|
474 |
-
if ( is_front_page() ) {
|
475 |
-
if ( WPSEO_Options::get( 'og_frontpage_image', '' ) !== '' ) {
|
476 |
-
$this->image_output( WPSEO_Options::get( 'og_frontpage_image' ) );
|
477 |
-
|
478 |
-
return true;
|
479 |
-
}
|
480 |
-
}
|
481 |
-
|
482 |
-
return false;
|
483 |
-
}
|
484 |
-
|
485 |
-
/**
|
486 |
-
* Show the posts page image.
|
487 |
-
*
|
488 |
-
* @return bool
|
489 |
-
*/
|
490 |
-
private function posts_page_image_output() {
|
491 |
-
|
492 |
-
if ( is_front_page() || ! is_home() ) {
|
493 |
-
return false;
|
494 |
-
}
|
495 |
-
|
496 |
-
$post_id = get_option( 'page_for_posts' );
|
497 |
-
|
498 |
-
if ( $this->image_from_meta_values_output( $post_id ) ) {
|
499 |
-
return true;
|
500 |
-
}
|
501 |
-
|
502 |
-
if ( $this->image_thumbnail_output( $post_id ) ) {
|
503 |
-
return true;
|
504 |
-
}
|
505 |
-
|
506 |
-
return false;
|
507 |
-
}
|
508 |
-
|
509 |
-
/**
|
510 |
-
* Outputs a Twitter image tag for a given image.
|
511 |
-
*
|
512 |
-
* @param string $img The source URL to the image.
|
513 |
-
*
|
514 |
-
* @return bool
|
515 |
-
*/
|
516 |
-
protected function image_output( $img ) {
|
517 |
-
|
518 |
-
/**
|
519 |
-
* Filter: 'wpseo_twitter_image' - Allow changing the Twitter Card image.
|
520 |
-
*
|
521 |
-
* @api string $img Image URL string.
|
522 |
-
*/
|
523 |
-
$img = apply_filters( 'wpseo_twitter_image', $img );
|
524 |
-
|
525 |
-
if ( WPSEO_Utils::is_url_relative( $img ) === true && $img[0] === '/' ) {
|
526 |
-
$parsed_url = wp_parse_url( home_url() );
|
527 |
-
$img = $parsed_url['scheme'] . '://' . $parsed_url['host'] . $img;
|
528 |
-
}
|
529 |
-
|
530 |
-
$escaped_img = esc_url( $img );
|
531 |
-
|
532 |
-
if ( in_array( $escaped_img, $this->shown_images, true ) ) {
|
533 |
-
return false;
|
534 |
-
}
|
535 |
-
|
536 |
-
if ( is_string( $escaped_img ) && $escaped_img !== '' ) {
|
537 |
-
$this->output_metatag( 'image', $escaped_img, true );
|
538 |
-
array_push( $this->shown_images, $escaped_img );
|
539 |
-
|
540 |
-
return true;
|
541 |
-
}
|
542 |
-
|
543 |
-
return false;
|
544 |
-
}
|
545 |
-
|
546 |
-
/**
|
547 |
-
* Retrieve images from the post meta values.
|
548 |
-
*
|
549 |
-
* @param int $post_id Optional post ID to use.
|
550 |
-
*
|
551 |
-
* @return bool
|
552 |
-
*/
|
553 |
-
private function image_from_meta_values_output( $post_id = 0 ) {
|
554 |
-
foreach ( [ 'twitter-image', 'opengraph-image' ] as $tag ) {
|
555 |
-
$img = WPSEO_Meta::get_value( $tag, $post_id );
|
556 |
-
if ( $img !== '' ) {
|
557 |
-
$this->image_output( $img );
|
558 |
-
|
559 |
-
return true;
|
560 |
-
}
|
561 |
-
}
|
562 |
-
|
563 |
-
return false;
|
564 |
-
}
|
565 |
-
|
566 |
-
/**
|
567 |
-
* Retrieve an attachment page's attachment.
|
568 |
-
*
|
569 |
-
* @param string $attachment_id The ID of the attachment for which to retrieve the image.
|
570 |
-
*
|
571 |
-
* @return bool
|
572 |
-
*/
|
573 |
-
private function image_of_attachment_page_output( $attachment_id ) {
|
574 |
-
if ( get_post_type( $attachment_id ) === 'attachment' ) {
|
575 |
-
$mime_type = get_post_mime_type( $attachment_id );
|
576 |
-
switch ( $mime_type ) {
|
577 |
-
case 'image/jpeg':
|
578 |
-
case 'image/png':
|
579 |
-
case 'image/gif':
|
580 |
-
$this->image_output( wp_get_attachment_url( $attachment_id ) );
|
581 |
-
return true;
|
582 |
-
}
|
583 |
-
}
|
584 |
-
|
585 |
-
return false;
|
586 |
-
}
|
587 |
-
|
588 |
-
/**
|
589 |
-
* Retrieve the featured image.
|
590 |
-
*
|
591 |
-
* @param int $post_id Optional post ID to use.
|
592 |
-
*
|
593 |
-
* @return bool
|
594 |
-
*/
|
595 |
-
private function image_thumbnail_output( $post_id = 0 ) {
|
596 |
-
|
597 |
-
if ( empty( $post_id ) ) {
|
598 |
-
$post_id = get_the_ID();
|
599 |
-
}
|
600 |
-
|
601 |
-
if ( function_exists( 'has_post_thumbnail' ) && has_post_thumbnail( $post_id ) ) {
|
602 |
-
/**
|
603 |
-
* Filter: 'wpseo_twitter_image_size' - Allow changing the Twitter Card image size.
|
604 |
-
*
|
605 |
-
* @api string $featured_img Image size string.
|
606 |
-
*/
|
607 |
-
$featured_img = wp_get_attachment_image_src( get_post_thumbnail_id( $post_id ), apply_filters( 'wpseo_twitter_image_size', 'full' ) );
|
608 |
-
|
609 |
-
if ( $featured_img ) {
|
610 |
-
$this->image_output( $featured_img[0] );
|
611 |
-
|
612 |
-
return true;
|
613 |
-
}
|
614 |
-
}
|
615 |
-
|
616 |
-
return false;
|
617 |
-
}
|
618 |
-
|
619 |
-
/**
|
620 |
-
* Retrieve the image from the content.
|
621 |
-
*
|
622 |
-
* @param int $post_id The post id to extract the images from.
|
623 |
-
*
|
624 |
-
* @return bool True when images output succeeded.
|
625 |
-
*/
|
626 |
-
private function image_from_content_output( $post_id ) {
|
627 |
-
$image_url = WPSEO_Image_Utils::get_first_usable_content_image_for_post( $post_id );
|
628 |
-
|
629 |
-
if ( $image_url === null || empty( $image_url ) ) {
|
630 |
-
return false;
|
631 |
-
}
|
632 |
-
|
633 |
-
$this->image_output( $image_url );
|
634 |
-
|
635 |
-
return true;
|
636 |
-
}
|
637 |
-
|
638 |
-
/**
|
639 |
-
* Displays the authors Twitter account.
|
640 |
-
*/
|
641 |
-
protected function author() {
|
642 |
-
$post = get_post();
|
643 |
-
|
644 |
-
$twitter = null;
|
645 |
-
if ( is_object( $post ) ) {
|
646 |
-
$twitter = ltrim( trim( get_the_author_meta( 'twitter', $post->post_author ) ), '@' );
|
647 |
-
}
|
648 |
-
/**
|
649 |
-
* Filter: 'wpseo_twitter_creator_account' - Allow changing the Twitter account as output in the Twitter card by Yoast SEO.
|
650 |
-
*
|
651 |
-
* @api string $twitter The twitter account name string.
|
652 |
-
*/
|
653 |
-
$twitter = apply_filters( 'wpseo_twitter_creator_account', $twitter );
|
654 |
-
$twitter = $this->get_twitter_id( $twitter );
|
655 |
-
|
656 |
-
if ( is_string( $twitter ) && $twitter !== '' ) {
|
657 |
-
$this->output_metatag( 'creator', '@' . $twitter );
|
658 |
-
}
|
659 |
-
elseif ( WPSEO_Options::get( 'twitter_site', '' ) !== '' && is_string( WPSEO_Options::get( 'twitter_site' ) ) ) {
|
660 |
-
$this->output_metatag( 'creator', '@' . WPSEO_Options::get( 'twitter_site' ) );
|
661 |
-
}
|
662 |
-
}
|
663 |
-
|
664 |
-
/**
|
665 |
-
* Get the singleton instance of this class.
|
666 |
-
*
|
667 |
-
* @return object
|
668 |
-
*/
|
669 |
-
public static function get_instance() {
|
670 |
-
if ( ! ( self::$instance instanceof self ) ) {
|
671 |
-
self::$instance = new self();
|
672 |
-
}
|
673 |
-
|
674 |
-
return self::$instance;
|
675 |
-
}
|
676 |
-
} /* End of class */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/class-woocommerce-shop-page.php
CHANGED
@@ -8,7 +8,7 @@
|
|
8 |
/**
|
9 |
* Represents the logic to determine if the current page is a WooCommerce shop page.
|
10 |
*/
|
11 |
-
class WPSEO_WooCommerce_Shop_Page
|
12 |
|
13 |
/**
|
14 |
* Holds the shop page id.
|
@@ -24,19 +24,6 @@ class WPSEO_WooCommerce_Shop_Page implements WPSEO_WordPress_Integration {
|
|
24 |
*/
|
25 |
protected static $is_shop_page;
|
26 |
|
27 |
-
/**
|
28 |
-
* Registers the hooks.
|
29 |
-
*
|
30 |
-
* @return void
|
31 |
-
*/
|
32 |
-
public function register_hooks() {
|
33 |
-
if ( ! $this->is_woocommerce_active() ) {
|
34 |
-
return;
|
35 |
-
}
|
36 |
-
|
37 |
-
add_filter( 'wpseo_frontend_page_type_simple_page_id', [ $this, 'get_page_id' ] );
|
38 |
-
}
|
39 |
-
|
40 |
/**
|
41 |
* Determines whether or not WooCommerce is active.
|
42 |
*
|
@@ -46,21 +33,6 @@ class WPSEO_WooCommerce_Shop_Page implements WPSEO_WordPress_Integration {
|
|
46 |
return WPSEO_Utils::is_woocommerce_active();
|
47 |
}
|
48 |
|
49 |
-
/**
|
50 |
-
* Returns the ID of the WooCommerce shop page when the currently opened page is the shop page.
|
51 |
-
*
|
52 |
-
* @param int $page_id The page id.
|
53 |
-
*
|
54 |
-
* @return int The Page ID of the shop.
|
55 |
-
*/
|
56 |
-
public function get_page_id( $page_id ) {
|
57 |
-
if ( ! $this->is_shop_page() ) {
|
58 |
-
return $page_id;
|
59 |
-
}
|
60 |
-
|
61 |
-
return $this->get_shop_page_id();
|
62 |
-
}
|
63 |
-
|
64 |
/**
|
65 |
* Checks if the current page is the shop page.
|
66 |
*
|
@@ -93,4 +65,22 @@ class WPSEO_WooCommerce_Shop_Page implements WPSEO_WordPress_Integration {
|
|
93 |
|
94 |
return self::$shop_page_id;
|
95 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
}
|
8 |
/**
|
9 |
* Represents the logic to determine if the current page is a WooCommerce shop page.
|
10 |
*/
|
11 |
+
class WPSEO_WooCommerce_Shop_Page {
|
12 |
|
13 |
/**
|
14 |
* Holds the shop page id.
|
24 |
*/
|
25 |
protected static $is_shop_page;
|
26 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
/**
|
28 |
* Determines whether or not WooCommerce is active.
|
29 |
*
|
33 |
return WPSEO_Utils::is_woocommerce_active();
|
34 |
}
|
35 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
/**
|
37 |
* Checks if the current page is the shop page.
|
38 |
*
|
65 |
|
66 |
return self::$shop_page_id;
|
67 |
}
|
68 |
+
|
69 |
+
/* ********************* DEPRECATED METHODS ********************* */
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Returns the ID of the WooCommerce shop page when the currently opened page is the shop page.
|
73 |
+
*
|
74 |
+
* @codeCoverageIgnore
|
75 |
+
* @deprecated 14.0
|
76 |
+
*
|
77 |
+
* @param int $page_id The page id.
|
78 |
+
*
|
79 |
+
* @return int The Page ID of the shop.
|
80 |
+
*/
|
81 |
+
public function get_page_id( $page_id ) {
|
82 |
+
_deprecated_function( __METHOD__, 'WPSEO 14.0' );
|
83 |
+
|
84 |
+
return $page_id;
|
85 |
+
}
|
86 |
}
|
frontend/schema/class-schema-article.php
DELETED
@@ -1,216 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Frontend\Schema
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Returns schema Article data.
|
10 |
-
*
|
11 |
-
* @since 10.2
|
12 |
-
*/
|
13 |
-
class WPSEO_Schema_Article implements WPSEO_Graph_Piece {
|
14 |
-
|
15 |
-
/**
|
16 |
-
* The date helper.
|
17 |
-
*
|
18 |
-
* @var WPSEO_Date_Helper
|
19 |
-
*/
|
20 |
-
protected $date;
|
21 |
-
|
22 |
-
/**
|
23 |
-
* A value object with context variables.
|
24 |
-
*
|
25 |
-
* @var WPSEO_Schema_Context
|
26 |
-
*/
|
27 |
-
private $context;
|
28 |
-
|
29 |
-
/**
|
30 |
-
* WPSEO_Schema_Article constructor.
|
31 |
-
*
|
32 |
-
* @param WPSEO_Schema_Context $context A value object with context variables.
|
33 |
-
*/
|
34 |
-
public function __construct( WPSEO_Schema_Context $context ) {
|
35 |
-
$this->context = $context;
|
36 |
-
$this->date = new WPSEO_Date_Helper();
|
37 |
-
}
|
38 |
-
|
39 |
-
/**
|
40 |
-
* Determines whether or not a piece should be added to the graph.
|
41 |
-
*
|
42 |
-
* @return bool
|
43 |
-
*/
|
44 |
-
public function is_needed() {
|
45 |
-
if ( ! is_singular() ) {
|
46 |
-
return false;
|
47 |
-
}
|
48 |
-
|
49 |
-
if ( $this->context->site_represents === false ) {
|
50 |
-
return false;
|
51 |
-
}
|
52 |
-
|
53 |
-
return self::is_article_post_type( get_post_type() );
|
54 |
-
}
|
55 |
-
|
56 |
-
/**
|
57 |
-
* Returns Article data.
|
58 |
-
*
|
59 |
-
* @return array $data Article data.
|
60 |
-
*/
|
61 |
-
public function generate() {
|
62 |
-
$post = get_post( $this->context->id );
|
63 |
-
$comment_count = get_comment_count( $this->context->id );
|
64 |
-
$data = [
|
65 |
-
'@type' => 'Article',
|
66 |
-
'@id' => $this->context->canonical . WPSEO_Schema_IDs::ARTICLE_HASH,
|
67 |
-
'isPartOf' => [ '@id' => $this->context->canonical . WPSEO_Schema_IDs::WEBPAGE_HASH ],
|
68 |
-
'author' => [ '@id' => WPSEO_Schema_Utils::get_user_schema_id( $post->post_author, $this->context ) ],
|
69 |
-
'headline' => WPSEO_Schema_Utils::get_post_title_with_fallback( $this->context->id ),
|
70 |
-
'datePublished' => $this->date->format( $post->post_date_gmt ),
|
71 |
-
'dateModified' => $this->date->format( $post->post_modified_gmt ),
|
72 |
-
'commentCount' => $comment_count['approved'],
|
73 |
-
'mainEntityOfPage' => [ '@id' => $this->context->canonical . WPSEO_Schema_IDs::WEBPAGE_HASH ],
|
74 |
-
];
|
75 |
-
|
76 |
-
if ( $this->context->site_represents_reference ) {
|
77 |
-
$data['publisher'] = $this->context->site_represents_reference;
|
78 |
-
}
|
79 |
-
|
80 |
-
$data = $this->add_image( $data );
|
81 |
-
$data = $this->add_keywords( $data );
|
82 |
-
$data = $this->add_sections( $data );
|
83 |
-
$data = WPSEO_Schema_Utils::add_piece_language( $data );
|
84 |
-
|
85 |
-
if ( post_type_supports( $post->post_type, 'comments' ) && $post->comment_status === 'open' ) {
|
86 |
-
$data = $this->add_potential_action( $data );
|
87 |
-
}
|
88 |
-
|
89 |
-
return $data;
|
90 |
-
}
|
91 |
-
|
92 |
-
/**
|
93 |
-
* Determines whether a given post type should have Article schema.
|
94 |
-
*
|
95 |
-
* @param string $post_type Post type to check.
|
96 |
-
*
|
97 |
-
* @return bool True if it has article schema, false if not.
|
98 |
-
*/
|
99 |
-
public static function is_article_post_type( $post_type = null ) {
|
100 |
-
if ( is_null( $post_type ) ) {
|
101 |
-
$post_type = get_post_type();
|
102 |
-
}
|
103 |
-
|
104 |
-
/**
|
105 |
-
* Filter: 'wpseo_schema_article_post_types' - Allow changing for which post types we output Article schema.
|
106 |
-
*
|
107 |
-
* @api string[] $post_types The post types for which we output Article.
|
108 |
-
*/
|
109 |
-
$post_types = apply_filters( 'wpseo_schema_article_post_types', [ 'post' ] );
|
110 |
-
|
111 |
-
return in_array( $post_type, $post_types, true );
|
112 |
-
}
|
113 |
-
|
114 |
-
/**
|
115 |
-
* Adds tags as keywords, if tags are assigned.
|
116 |
-
*
|
117 |
-
* @param array $data Article data.
|
118 |
-
*
|
119 |
-
* @return array $data Article data.
|
120 |
-
*/
|
121 |
-
private function add_keywords( $data ) {
|
122 |
-
/**
|
123 |
-
* Filter: 'wpseo_schema_article_keywords_taxonomy' - Allow changing the taxonomy used to assign keywords to a post type Article data.
|
124 |
-
*
|
125 |
-
* @api string $taxonomy The chosen taxonomy.
|
126 |
-
*/
|
127 |
-
$taxonomy = apply_filters( 'wpseo_schema_article_keywords_taxonomy', 'post_tag' );
|
128 |
-
|
129 |
-
return $this->add_terms( $data, 'keywords', $taxonomy );
|
130 |
-
}
|
131 |
-
|
132 |
-
/**
|
133 |
-
* Adds categories as sections, if categories are assigned.
|
134 |
-
*
|
135 |
-
* @param array $data Article data.
|
136 |
-
*
|
137 |
-
* @return array $data Article data.
|
138 |
-
*/
|
139 |
-
private function add_sections( $data ) {
|
140 |
-
/**
|
141 |
-
* Filter: 'wpseo_schema_article_sections_taxonomy' - Allow changing the taxonomy used to assign keywords to a post type Article data.
|
142 |
-
*
|
143 |
-
* @api string $taxonomy The chosen taxonomy.
|
144 |
-
*/
|
145 |
-
$taxonomy = apply_filters( 'wpseo_schema_article_sections_taxonomy', 'category' );
|
146 |
-
|
147 |
-
return $this->add_terms( $data, 'articleSection', $taxonomy );
|
148 |
-
}
|
149 |
-
|
150 |
-
/**
|
151 |
-
* Adds a term or multiple terms, comma separated, to a field.
|
152 |
-
*
|
153 |
-
* @param array $data Article data.
|
154 |
-
* @param string $key The key in data to save the terms in.
|
155 |
-
* @param string $taxonomy The taxonomy to retrieve the terms from.
|
156 |
-
*
|
157 |
-
* @return mixed array $data Article data.
|
158 |
-
*/
|
159 |
-
private function add_terms( $data, $key, $taxonomy ) {
|
160 |
-
$terms = get_the_terms( $this->context->id, $taxonomy );
|
161 |
-
if ( is_array( $terms ) ) {
|
162 |
-
$keywords = [];
|
163 |
-
foreach ( $terms as $term ) {
|
164 |
-
// We are checking against the WordPress internal translation.
|
165 |
-
// @codingStandardsIgnoreLine
|
166 |
-
if ( $term->name !== __( 'Uncategorized', 'default' ) ) {
|
167 |
-
$keywords[] = $term->name;
|
168 |
-
}
|
169 |
-
}
|
170 |
-
$data[ $key ] = implode( ',', $keywords );
|
171 |
-
}
|
172 |
-
|
173 |
-
return $data;
|
174 |
-
}
|
175 |
-
|
176 |
-
/**
|
177 |
-
* Adds an image node if the post has a featured image.
|
178 |
-
*
|
179 |
-
* @param array $data The Article data.
|
180 |
-
*
|
181 |
-
* @return array $data The Article data.
|
182 |
-
*/
|
183 |
-
private function add_image( $data ) {
|
184 |
-
if ( $this->context->has_image ) {
|
185 |
-
$data['image'] = [
|
186 |
-
'@id' => $this->context->canonical . WPSEO_Schema_IDs::PRIMARY_IMAGE_HASH,
|
187 |
-
];
|
188 |
-
}
|
189 |
-
|
190 |
-
return $data;
|
191 |
-
}
|
192 |
-
|
193 |
-
/**
|
194 |
-
* Adds the potential action JSON LD code to an Article Schema piece.
|
195 |
-
*
|
196 |
-
* @param array $data The Article data array.
|
197 |
-
*
|
198 |
-
* @return array $data
|
199 |
-
*/
|
200 |
-
private function add_potential_action( $data ) {
|
201 |
-
/**
|
202 |
-
* Filter: 'wpseo_schema_article_potential_action_target' - Allows filtering of the schema Article potentialAction target.
|
203 |
-
*
|
204 |
-
* @api array $targets The URLs for the Article potentialAction target.
|
205 |
-
*/
|
206 |
-
$targets = apply_filters( 'wpseo_schema_article_potential_action_target', [ $this->context->canonical . '#respond' ] );
|
207 |
-
|
208 |
-
$data['potentialAction'][] = [
|
209 |
-
'@type' => 'CommentAction',
|
210 |
-
'name' => 'Comment',
|
211 |
-
'target' => $targets,
|
212 |
-
];
|
213 |
-
|
214 |
-
return $data;
|
215 |
-
}
|
216 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/schema/class-schema-author.php
DELETED
@@ -1,145 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Frontend\Schema
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Returns schema Person data.
|
10 |
-
*
|
11 |
-
* @since 10.2
|
12 |
-
*
|
13 |
-
* @property WPSEO_Schema_Context $context A value object with context variables.
|
14 |
-
*/
|
15 |
-
class WPSEO_Schema_Author extends WPSEO_Schema_Person implements WPSEO_Graph_Piece {
|
16 |
-
|
17 |
-
/**
|
18 |
-
* A value object with context variables.
|
19 |
-
*
|
20 |
-
* @var WPSEO_Schema_Context
|
21 |
-
*/
|
22 |
-
private $context;
|
23 |
-
|
24 |
-
/**
|
25 |
-
* The Schema type we use for this class.
|
26 |
-
*
|
27 |
-
* @var string[]
|
28 |
-
*/
|
29 |
-
protected $type = [ 'Person' ];
|
30 |
-
|
31 |
-
/**
|
32 |
-
* WPSEO_Schema_Author constructor.
|
33 |
-
*
|
34 |
-
* @param WPSEO_Schema_Context $context A value object with context variables.
|
35 |
-
*/
|
36 |
-
public function __construct( WPSEO_Schema_Context $context ) {
|
37 |
-
parent::__construct( $context );
|
38 |
-
$this->context = $context;
|
39 |
-
$this->image_hash = WPSEO_Schema_IDs::AUTHOR_LOGO_HASH;
|
40 |
-
}
|
41 |
-
|
42 |
-
/**
|
43 |
-
* Determine whether we should return Person schema.
|
44 |
-
*
|
45 |
-
* @return bool
|
46 |
-
*/
|
47 |
-
public function is_needed() {
|
48 |
-
if ( is_author() ) {
|
49 |
-
return true;
|
50 |
-
}
|
51 |
-
|
52 |
-
if ( $this->is_post_author() ) {
|
53 |
-
$post = get_post( $this->context->id );
|
54 |
-
// If the author is the user the site represents, no need for an extra author block.
|
55 |
-
if ( (int) $post->post_author === $this->context->site_user_id ) {
|
56 |
-
return false;
|
57 |
-
}
|
58 |
-
|
59 |
-
return true;
|
60 |
-
}
|
61 |
-
|
62 |
-
return false;
|
63 |
-
}
|
64 |
-
|
65 |
-
/**
|
66 |
-
* Returns Person Schema data.
|
67 |
-
*
|
68 |
-
* @return bool|array Person data on success, false on failure.
|
69 |
-
*/
|
70 |
-
public function generate() {
|
71 |
-
$user_id = $this->determine_user_id();
|
72 |
-
if ( ! $user_id ) {
|
73 |
-
return false;
|
74 |
-
}
|
75 |
-
|
76 |
-
$data = $this->build_person_data( $user_id );
|
77 |
-
|
78 |
-
// If this is an author page, the Person object is the main object, so we set it as such here.
|
79 |
-
if ( is_author() ) {
|
80 |
-
$data['mainEntityOfPage'] = [
|
81 |
-
'@id' => $this->context->canonical . WPSEO_Schema_IDs::WEBPAGE_HASH,
|
82 |
-
];
|
83 |
-
}
|
84 |
-
|
85 |
-
return $data;
|
86 |
-
}
|
87 |
-
|
88 |
-
/**
|
89 |
-
* Determine whether the current URL is worthy of Article schema.
|
90 |
-
*
|
91 |
-
* @return bool
|
92 |
-
*/
|
93 |
-
protected function is_post_author() {
|
94 |
-
if ( is_singular() && WPSEO_Schema_Article::is_article_post_type() ) {
|
95 |
-
return true;
|
96 |
-
}
|
97 |
-
|
98 |
-
return false;
|
99 |
-
}
|
100 |
-
|
101 |
-
/**
|
102 |
-
* Determines a User ID for the Person data.
|
103 |
-
*
|
104 |
-
* @return bool|int User ID or false upon return.
|
105 |
-
*/
|
106 |
-
protected function determine_user_id() {
|
107 |
-
switch ( true ) {
|
108 |
-
case is_author():
|
109 |
-
$user_id = get_queried_object_id();
|
110 |
-
break;
|
111 |
-
default:
|
112 |
-
$post = get_post( $this->context->id );
|
113 |
-
$user_id = (int) $post->post_author;
|
114 |
-
break;
|
115 |
-
}
|
116 |
-
|
117 |
-
/**
|
118 |
-
* Filter: 'wpseo_schema_person_user_id' - Allows filtering of user ID used for person output.
|
119 |
-
*
|
120 |
-
* @api int|bool $user_id The user ID currently determined.
|
121 |
-
*/
|
122 |
-
return apply_filters( 'wpseo_schema_person_user_id', $user_id );
|
123 |
-
}
|
124 |
-
|
125 |
-
/**
|
126 |
-
* An author should not have an image from options, this only applies to persons.
|
127 |
-
*
|
128 |
-
* @param array $data The Person schema.
|
129 |
-
* @param string $schema_id The string used in the `@id` for the schema.
|
130 |
-
*
|
131 |
-
* @return array The Person schema.
|
132 |
-
*/
|
133 |
-
private function set_image_from_options( $data, $schema_id ) {
|
134 |
-
return $data;
|
135 |
-
}
|
136 |
-
|
137 |
-
/**
|
138 |
-
* Gets the Schema type we use for this class.
|
139 |
-
*
|
140 |
-
* @return string[] The schema type.
|
141 |
-
*/
|
142 |
-
public static function get_type() {
|
143 |
-
return self::$type;
|
144 |
-
}
|
145 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/schema/class-schema-breadcrumb.php
DELETED
@@ -1,153 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Frontend\Schema
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Returns schema Breadcrumb data.
|
10 |
-
*
|
11 |
-
* @since 10.2
|
12 |
-
*/
|
13 |
-
class WPSEO_Schema_Breadcrumb implements WPSEO_Graph_Piece {
|
14 |
-
|
15 |
-
/**
|
16 |
-
* A value object with context variables.
|
17 |
-
*
|
18 |
-
* @var WPSEO_Schema_Context
|
19 |
-
*/
|
20 |
-
private $context;
|
21 |
-
|
22 |
-
/**
|
23 |
-
* Current position in the List.
|
24 |
-
*
|
25 |
-
* @var int
|
26 |
-
*/
|
27 |
-
private $index;
|
28 |
-
|
29 |
-
/**
|
30 |
-
* WPSEO_Schema_Breadcrumb constructor.
|
31 |
-
*
|
32 |
-
* @param WPSEO_Schema_Context $context A value object with context variables.
|
33 |
-
*/
|
34 |
-
public function __construct( WPSEO_Schema_Context $context ) {
|
35 |
-
$this->context = $context;
|
36 |
-
}
|
37 |
-
|
38 |
-
/**
|
39 |
-
* Determine if we should add a breadcrumb attribute.
|
40 |
-
*
|
41 |
-
* @return bool
|
42 |
-
*/
|
43 |
-
public function is_needed() {
|
44 |
-
if ( is_404() ) {
|
45 |
-
return false;
|
46 |
-
}
|
47 |
-
|
48 |
-
if ( is_front_page() ) {
|
49 |
-
return false;
|
50 |
-
}
|
51 |
-
|
52 |
-
if ( $this->context->breadcrumbs_enabled ) {
|
53 |
-
return true;
|
54 |
-
}
|
55 |
-
|
56 |
-
return false;
|
57 |
-
}
|
58 |
-
|
59 |
-
/**
|
60 |
-
* Returns Schema breadcrumb data to allow recognition of page's position in the site hierarchy.
|
61 |
-
*
|
62 |
-
* @link https://developers.google.com/search/docs/data-types/breadcrumb
|
63 |
-
*
|
64 |
-
* @return bool|array Array on success, false on failure.
|
65 |
-
*/
|
66 |
-
public function generate() {
|
67 |
-
$breadcrumbs_instance = WPSEO_Breadcrumbs::get_instance();
|
68 |
-
$breadcrumbs = $breadcrumbs_instance->get_links();
|
69 |
-
$broken = false;
|
70 |
-
$list_elements = [];
|
71 |
-
|
72 |
-
foreach ( $breadcrumbs as $index => $breadcrumb ) {
|
73 |
-
if ( ! empty( $breadcrumb['hide_in_schema'] ) ) {
|
74 |
-
continue;
|
75 |
-
}
|
76 |
-
|
77 |
-
if ( ! array_key_exists( 'url', $breadcrumb ) || ! array_key_exists( 'text', $breadcrumb ) ) {
|
78 |
-
$broken = true;
|
79 |
-
break;
|
80 |
-
}
|
81 |
-
$list_elements[] = $this->add_breadcrumb( $index, $breadcrumb );
|
82 |
-
$this->index = $index;
|
83 |
-
}
|
84 |
-
|
85 |
-
if ( is_paged() ) {
|
86 |
-
$list_elements[] = $this->add_paginated_state();
|
87 |
-
}
|
88 |
-
|
89 |
-
$data = [
|
90 |
-
'@type' => 'BreadcrumbList',
|
91 |
-
'@id' => $this->context->canonical . WPSEO_Schema_IDs::BREADCRUMB_HASH,
|
92 |
-
'itemListElement' => $list_elements,
|
93 |
-
];
|
94 |
-
|
95 |
-
// Only output if JSON is correctly formatted.
|
96 |
-
if ( ! $broken ) {
|
97 |
-
return $data;
|
98 |
-
}
|
99 |
-
|
100 |
-
return false;
|
101 |
-
}
|
102 |
-
|
103 |
-
/**
|
104 |
-
* Returns a breadcrumb array.
|
105 |
-
*
|
106 |
-
* @param int $index The position in the list.
|
107 |
-
* @param array $breadcrumb The breadcrumb array.
|
108 |
-
*
|
109 |
-
* @return array A breadcrumb listItem.
|
110 |
-
*/
|
111 |
-
private function add_breadcrumb( $index, $breadcrumb ) {
|
112 |
-
if ( empty( $breadcrumb['url'] ) ) {
|
113 |
-
if ( is_paged() ) {
|
114 |
-
// Retrieve the un-paginated state of the current page.
|
115 |
-
$breadcrumb['url'] = WPSEO_Frontend::get_instance()->canonical( false, true );
|
116 |
-
}
|
117 |
-
else {
|
118 |
-
$breadcrumb['url'] = $this->context->canonical;
|
119 |
-
}
|
120 |
-
}
|
121 |
-
|
122 |
-
if ( empty( $breadcrumb['text'] ) ) {
|
123 |
-
$breadcrumb['text'] = $this->context->title;
|
124 |
-
}
|
125 |
-
|
126 |
-
return [
|
127 |
-
'@type' => 'ListItem',
|
128 |
-
'position' => ( $index + 1 ),
|
129 |
-
'item' => [
|
130 |
-
'@type' => 'WebPage',
|
131 |
-
'@id' => $breadcrumb['url'],
|
132 |
-
'url' => $breadcrumb['url'], // For future proofing, we're trying to change the standard for this.
|
133 |
-
'name' => $breadcrumb['text'],
|
134 |
-
],
|
135 |
-
];
|
136 |
-
}
|
137 |
-
|
138 |
-
/**
|
139 |
-
* Adds the paginated state to the breadcrumb array.
|
140 |
-
*
|
141 |
-
* @return array A breadcrumb listItem.
|
142 |
-
*/
|
143 |
-
private function add_paginated_state() {
|
144 |
-
$this->index++;
|
145 |
-
return $this->add_breadcrumb(
|
146 |
-
$this->index,
|
147 |
-
[
|
148 |
-
'url' => $this->context->canonical,
|
149 |
-
'text' => $this->context->title,
|
150 |
-
]
|
151 |
-
);
|
152 |
-
}
|
153 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/schema/class-schema-context.php
DELETED
@@ -1,243 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Frontend\Schema
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Context variables for Schema generation.
|
10 |
-
*
|
11 |
-
* @property string $canonical The current page's canonical.
|
12 |
-
* @property string $company_name Holds the company name, if the site represents a company.
|
13 |
-
* @property int $company_logo_id Holds the company logo's ID, if the site represents a company.
|
14 |
-
* @property int $id The post ID, if there is one.
|
15 |
-
* @property string $site_name The site's name.
|
16 |
-
* @property string $site_description The site's tagline.
|
17 |
-
* @property string $site_represents Whether this site represents a `company` or a `person`.
|
18 |
-
* @property string $site_url The site's URL.
|
19 |
-
* @property int $site_user_id The site's user ID if a site represents a `person`.
|
20 |
-
* @property string $title Page title.
|
21 |
-
* @property string $description Page description.
|
22 |
-
* @property bool $breadcrumbs_enabled Whether or not this site has breadcrumbs enabled.
|
23 |
-
* @property array $site_represents_reference A schema @id reference to the piece the site represents.
|
24 |
-
* @property bool $has_image A boolean that determines whether the current URL has a primary image.
|
25 |
-
*
|
26 |
-
* @since 10.2
|
27 |
-
*/
|
28 |
-
class WPSEO_Schema_Context {
|
29 |
-
|
30 |
-
/**
|
31 |
-
* The current page's canonical.
|
32 |
-
*
|
33 |
-
* @var string
|
34 |
-
*/
|
35 |
-
public $canonical;
|
36 |
-
|
37 |
-
/**
|
38 |
-
* Holds the company name, if the site represents a company.
|
39 |
-
*
|
40 |
-
* @var string
|
41 |
-
*/
|
42 |
-
public $company_name;
|
43 |
-
|
44 |
-
/**
|
45 |
-
* Holds the company logo's ID, if the site represents a company.
|
46 |
-
*
|
47 |
-
* @var int
|
48 |
-
*/
|
49 |
-
public $company_logo_id;
|
50 |
-
|
51 |
-
/**
|
52 |
-
* The queried object ID, if there is one.
|
53 |
-
*
|
54 |
-
* @var int
|
55 |
-
*/
|
56 |
-
public $id;
|
57 |
-
|
58 |
-
/**
|
59 |
-
* Whether this site represents a `company` or a `person`.
|
60 |
-
*
|
61 |
-
* @var string
|
62 |
-
*/
|
63 |
-
public $site_represents;
|
64 |
-
|
65 |
-
/**
|
66 |
-
* The site's Name.
|
67 |
-
*
|
68 |
-
* @var string
|
69 |
-
*/
|
70 |
-
public $site_name;
|
71 |
-
|
72 |
-
/**
|
73 |
-
* The site's tagline.
|
74 |
-
*
|
75 |
-
* @var string
|
76 |
-
*/
|
77 |
-
public $site_description;
|
78 |
-
|
79 |
-
/**
|
80 |
-
* The site's URL.
|
81 |
-
*
|
82 |
-
* @var string
|
83 |
-
*/
|
84 |
-
public $site_url;
|
85 |
-
|
86 |
-
/**
|
87 |
-
* Page title.
|
88 |
-
*
|
89 |
-
* @var string
|
90 |
-
*/
|
91 |
-
public $title;
|
92 |
-
|
93 |
-
/**
|
94 |
-
* User ID when the site represents a Person.
|
95 |
-
*
|
96 |
-
* @var int
|
97 |
-
*/
|
98 |
-
public $site_user_id;
|
99 |
-
|
100 |
-
/**
|
101 |
-
* Page description.
|
102 |
-
*
|
103 |
-
* @var string
|
104 |
-
*/
|
105 |
-
public $description;
|
106 |
-
|
107 |
-
/**
|
108 |
-
* Whether or not this site has breadcrumbs enabled.
|
109 |
-
*
|
110 |
-
* @var bool
|
111 |
-
*/
|
112 |
-
public $breadcrumbs_enabled;
|
113 |
-
|
114 |
-
/**
|
115 |
-
* A schema @id reference to the piece the site represents.
|
116 |
-
*
|
117 |
-
* @var array
|
118 |
-
*/
|
119 |
-
public $site_represents_reference;
|
120 |
-
|
121 |
-
/**
|
122 |
-
* A boolean that determines whether the current URL has a primary image.
|
123 |
-
*
|
124 |
-
* @var bool
|
125 |
-
*/
|
126 |
-
public $has_image = false;
|
127 |
-
|
128 |
-
/**
|
129 |
-
* WPSEO_Schema_Context constructor.
|
130 |
-
*/
|
131 |
-
public function __construct() {
|
132 |
-
$this->build_data();
|
133 |
-
}
|
134 |
-
|
135 |
-
/**
|
136 |
-
* Builds all the required data for the context object.
|
137 |
-
*/
|
138 |
-
private function build_data() {
|
139 |
-
// Page level variables.
|
140 |
-
$front = WPSEO_Frontend::get_instance();
|
141 |
-
$this->canonical = $front->canonical( false, false, true );
|
142 |
-
$this->title = $front->title( '' );
|
143 |
-
$this->description = $front->metadesc( false );
|
144 |
-
$this->id = get_queried_object_id();
|
145 |
-
|
146 |
-
// Site level variables.
|
147 |
-
$this->site_name = $this->set_site_name();
|
148 |
-
$this->site_description = get_bloginfo( 'description' );
|
149 |
-
$this->site_url = trailingslashit( WPSEO_Utils::home_url() );
|
150 |
-
|
151 |
-
$this->set_breadcrumbs_variables();
|
152 |
-
$this->set_site_represents_variables();
|
153 |
-
$this->set_site_represents_reference();
|
154 |
-
}
|
155 |
-
|
156 |
-
/**
|
157 |
-
* Retrieves the site's name from settings.
|
158 |
-
*
|
159 |
-
* @return string
|
160 |
-
*/
|
161 |
-
private function set_site_name() {
|
162 |
-
if ( WPSEO_Options::get( 'website_name', '' ) !== '' ) {
|
163 |
-
return WPSEO_Options::get( 'website_name' );
|
164 |
-
}
|
165 |
-
|
166 |
-
return get_bloginfo( 'name' );
|
167 |
-
}
|
168 |
-
|
169 |
-
/**
|
170 |
-
* Sets our site represents reference for easy use.
|
171 |
-
*/
|
172 |
-
private function set_site_represents_reference() {
|
173 |
-
$this->site_represents_reference = false;
|
174 |
-
|
175 |
-
if ( $this->site_represents === 'person' ) {
|
176 |
-
$this->site_represents_reference = [ '@id' => WPSEO_Schema_Utils::get_user_schema_id( $this->site_user_id, $this ) ];
|
177 |
-
}
|
178 |
-
|
179 |
-
if ( $this->site_represents === 'company' ) {
|
180 |
-
$this->site_represents_reference = [ '@id' => $this->site_url . WPSEO_Schema_IDs::ORGANIZATION_HASH ];
|
181 |
-
}
|
182 |
-
}
|
183 |
-
|
184 |
-
/**
|
185 |
-
* Determines what our site represents, and grabs their values.
|
186 |
-
*/
|
187 |
-
private function set_site_represents_variables() {
|
188 |
-
$this->site_represents = WPSEO_Options::get( 'company_or_person', false );
|
189 |
-
|
190 |
-
switch ( $this->site_represents ) {
|
191 |
-
case 'company':
|
192 |
-
$company_name = WPSEO_Options::get( 'company_name' );
|
193 |
-
|
194 |
-
/**
|
195 |
-
* Filter: 'wpseo_schema_company_name' - Allows filtering company name
|
196 |
-
*
|
197 |
-
* @api string $company_name.
|
198 |
-
*/
|
199 |
-
$this->company_name = apply_filters( 'wpseo_schema_company_name', $company_name );
|
200 |
-
|
201 |
-
// Do not use a non-named company.
|
202 |
-
if ( empty( $this->company_name ) ) {
|
203 |
-
$this->site_represents = false;
|
204 |
-
break;
|
205 |
-
}
|
206 |
-
|
207 |
-
$company_logo_id = WPSEO_Image_Utils::get_attachment_id_from_settings( 'company_logo' );
|
208 |
-
|
209 |
-
/**
|
210 |
-
* Filter: 'wpseo_schema_company_logo_id' - Allows filtering company logo id
|
211 |
-
*
|
212 |
-
* @api integer $company_logo_id.
|
213 |
-
*/
|
214 |
-
$this->company_logo_id = apply_filters( 'wpseo_schema_company_logo_id', $company_logo_id );
|
215 |
-
|
216 |
-
/*
|
217 |
-
* Do not use a company without a logo.
|
218 |
-
* This is not a false check due to how `get_attachment_id_from_settings` works.
|
219 |
-
*/
|
220 |
-
if ( $this->company_logo_id < 1 ) {
|
221 |
-
$this->site_represents = false;
|
222 |
-
}
|
223 |
-
break;
|
224 |
-
case 'person':
|
225 |
-
$this->site_user_id = WPSEO_Options::get( 'company_or_person_user_id', false );
|
226 |
-
// Do not use a non-existing user.
|
227 |
-
if ( $this->site_user_id !== false && get_user_by( 'id', $this->site_user_id ) === false ) {
|
228 |
-
$this->site_represents = false;
|
229 |
-
}
|
230 |
-
break;
|
231 |
-
}
|
232 |
-
}
|
233 |
-
|
234 |
-
/**
|
235 |
-
* Determines whether the site uses Yoast SEO breadcrumbs.
|
236 |
-
*/
|
237 |
-
private function set_breadcrumbs_variables() {
|
238 |
-
$this->breadcrumbs_enabled = current_theme_supports( 'yoast-seo-breadcrumbs' );
|
239 |
-
if ( ! $this->breadcrumbs_enabled ) {
|
240 |
-
$this->breadcrumbs_enabled = WPSEO_Options::get( 'breadcrumbs-enable', false );
|
241 |
-
}
|
242 |
-
}
|
243 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/schema/class-schema-faq-question-list.php
DELETED
@@ -1,115 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Frontend\Schema
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Returns a question object for each question in an FAQ block.
|
10 |
-
*
|
11 |
-
* @since 11.1
|
12 |
-
*
|
13 |
-
* @property array $data The Schema array.
|
14 |
-
* @property WP_Block_Parser_Block[] $blocks The block we're taking the questions out of.
|
15 |
-
* @property WPSEO_Schema_Context context A value object with context variables.
|
16 |
-
* @property array ids
|
17 |
-
* @property int count
|
18 |
-
*/
|
19 |
-
class WPSEO_Schema_FAQ_Question_List {
|
20 |
-
|
21 |
-
/**
|
22 |
-
* The Schema array.
|
23 |
-
*
|
24 |
-
* @var array
|
25 |
-
*/
|
26 |
-
private $data = [];
|
27 |
-
|
28 |
-
/**
|
29 |
-
* All the blocks of this block-type.
|
30 |
-
*
|
31 |
-
* @var WP_Block_Parser_Block
|
32 |
-
*/
|
33 |
-
private $blocks;
|
34 |
-
|
35 |
-
/**
|
36 |
-
* Number of questions on the page.
|
37 |
-
*
|
38 |
-
* @var int
|
39 |
-
*/
|
40 |
-
private $count;
|
41 |
-
|
42 |
-
/**
|
43 |
-
* IDs of the questions on the page.
|
44 |
-
*
|
45 |
-
* @var array
|
46 |
-
*/
|
47 |
-
private $ids;
|
48 |
-
|
49 |
-
/**
|
50 |
-
* WPSEO_Schema_FAQ_Question_List constructor.
|
51 |
-
*
|
52 |
-
* @param WP_Block_Parser_Block[] $blocks An array of the FAQ blocks on this page.
|
53 |
-
* @param WPSEO_Schema_Context $context A value object with context variables.
|
54 |
-
*/
|
55 |
-
public function __construct( $blocks, $context ) {
|
56 |
-
$this->blocks = $blocks;
|
57 |
-
$this->context = $context;
|
58 |
-
$this->count = 1;
|
59 |
-
}
|
60 |
-
|
61 |
-
/**
|
62 |
-
* Find an image based on its URL and generate a Schema object for it.
|
63 |
-
*
|
64 |
-
* @return array The Schema with a question list added.
|
65 |
-
*/
|
66 |
-
public function generate() {
|
67 |
-
$this->prepare_blocks();
|
68 |
-
|
69 |
-
$this->data[] = [
|
70 |
-
'@type' => 'ItemList',
|
71 |
-
'mainEntityOfPage' => [ '@id' => $this->get_schema_id() ],
|
72 |
-
'numberOfItems' => $this->count,
|
73 |
-
'itemListElement' => $this->ids,
|
74 |
-
];
|
75 |
-
|
76 |
-
return $this->data;
|
77 |
-
}
|
78 |
-
|
79 |
-
/**
|
80 |
-
* Determine whether we're part of an article or a webpage.
|
81 |
-
*
|
82 |
-
* @return string A reference URL.
|
83 |
-
*/
|
84 |
-
private function get_schema_id() {
|
85 |
-
if ( $this->context->site_represents !== false && WPSEO_Schema_Article::is_article_post_type() ) {
|
86 |
-
return $this->context->canonical . WPSEO_Schema_IDs::ARTICLE_HASH;
|
87 |
-
}
|
88 |
-
|
89 |
-
return $this->context->canonical . WPSEO_Schema_IDs::WEBPAGE_HASH;
|
90 |
-
}
|
91 |
-
|
92 |
-
/**
|
93 |
-
* Loop through the blocks of our type.
|
94 |
-
*/
|
95 |
-
private function prepare_blocks() {
|
96 |
-
foreach ( $this->blocks as $block ) {
|
97 |
-
$this->prepare_questions( $block );
|
98 |
-
}
|
99 |
-
}
|
100 |
-
|
101 |
-
/**
|
102 |
-
* Prepare our data.
|
103 |
-
*
|
104 |
-
* @param WP_Block_Parser_Block[] $block The block to prepare the questions for.
|
105 |
-
*/
|
106 |
-
private function prepare_questions( $block ) {
|
107 |
-
foreach ( $block['attrs']['questions'] as $question ) {
|
108 |
-
if ( ! isset( $question['jsonAnswer'] ) || empty( $question['jsonAnswer'] ) ) {
|
109 |
-
continue;
|
110 |
-
}
|
111 |
-
$this->count ++;
|
112 |
-
$this->ids[] = [ '@id' => $this->context->canonical . '#' . esc_attr( $question['id'] ) ];
|
113 |
-
}
|
114 |
-
}
|
115 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/schema/class-schema-faq-questions.php
DELETED
@@ -1,112 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Frontend\Schema
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Returns a question object for each question in an FAQ block.
|
10 |
-
*
|
11 |
-
* @since 11.1
|
12 |
-
*
|
13 |
-
* @property array $data The Schema array.
|
14 |
-
* @property WP_Block_Parser_Block $block The block we're taking the questions out of.
|
15 |
-
* @property WPSEO_Schema_Context $context A value object with context variables.
|
16 |
-
* @property int $position The position in the list.
|
17 |
-
*/
|
18 |
-
class WPSEO_Schema_FAQ_Questions {
|
19 |
-
|
20 |
-
/**
|
21 |
-
* The Schema array.
|
22 |
-
*
|
23 |
-
* @var array
|
24 |
-
*/
|
25 |
-
private $data;
|
26 |
-
|
27 |
-
/**
|
28 |
-
* All the blocks of this block-type.
|
29 |
-
*
|
30 |
-
* @var WP_Block_Parser_Block
|
31 |
-
*/
|
32 |
-
private $block;
|
33 |
-
|
34 |
-
/**
|
35 |
-
* Position in the list.
|
36 |
-
*
|
37 |
-
* @var int
|
38 |
-
*/
|
39 |
-
private $position;
|
40 |
-
|
41 |
-
/**
|
42 |
-
* WPSEO_Schema_FAQ_Questions constructor.
|
43 |
-
*
|
44 |
-
* @param array $data Our schema graph.
|
45 |
-
* @param WP_Block_Parser_Block $block The FAQ block of this type.
|
46 |
-
* @param WPSEO_Schema_Context $context A value object with context variables.
|
47 |
-
*/
|
48 |
-
public function __construct( $data, $block, $context ) {
|
49 |
-
$this->data = $data;
|
50 |
-
$this->block = $block;
|
51 |
-
$this->context = $context;
|
52 |
-
$this->position = 0;
|
53 |
-
}
|
54 |
-
|
55 |
-
/**
|
56 |
-
* Returns the Question and Answers schema data.
|
57 |
-
*
|
58 |
-
* @return array The Schema with Questions and Answers added.
|
59 |
-
*/
|
60 |
-
public function generate() {
|
61 |
-
foreach ( $this->block['attrs']['questions'] as $question ) {
|
62 |
-
if ( ! isset( $question['jsonAnswer'] ) || empty( $question['jsonAnswer'] ) ) {
|
63 |
-
continue;
|
64 |
-
}
|
65 |
-
$this->data[] = $this->generate_question_block( $question );
|
66 |
-
}
|
67 |
-
return $this->data;
|
68 |
-
}
|
69 |
-
|
70 |
-
/**
|
71 |
-
* Generates a Question and Answer piece.
|
72 |
-
*
|
73 |
-
* @param array $question The question to generate schema for.
|
74 |
-
*
|
75 |
-
* @return array Schema.org Question piece.
|
76 |
-
*/
|
77 |
-
protected function generate_question_block( $question ) {
|
78 |
-
$url = $this->context->canonical . '#' . esc_attr( $question['id'] );
|
79 |
-
|
80 |
-
$data = [
|
81 |
-
'@type' => 'Question',
|
82 |
-
'@id' => $url,
|
83 |
-
'position' => $this->position ++,
|
84 |
-
'url' => $url,
|
85 |
-
'name' => wp_strip_all_tags( $question['jsonQuestion'] ),
|
86 |
-
'answerCount' => 1,
|
87 |
-
'acceptedAnswer' => $this->add_accepted_answer_property( $question ),
|
88 |
-
];
|
89 |
-
|
90 |
-
$data = WPSEO_Schema_Utils::add_piece_language( $data );
|
91 |
-
|
92 |
-
return $data;
|
93 |
-
}
|
94 |
-
|
95 |
-
/**
|
96 |
-
* Adds the Questions `acceptedAnswer` property.
|
97 |
-
*
|
98 |
-
* @param array $question The question to add the acceptedAnswer to.
|
99 |
-
*
|
100 |
-
* @return array Schema.org Question piece.
|
101 |
-
*/
|
102 |
-
protected function add_accepted_answer_property( $question ) {
|
103 |
-
$data = [
|
104 |
-
'@type' => 'Answer',
|
105 |
-
'text' => strip_tags( $question['jsonAnswer'], '<h1><h2><h3><h4><h5><h6><br><ol><ul><li><a><p><b><strong><i><em>' ),
|
106 |
-
];
|
107 |
-
|
108 |
-
$data = WPSEO_Schema_Utils::add_piece_language( $data );
|
109 |
-
|
110 |
-
return $data;
|
111 |
-
}
|
112 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/schema/class-schema-howto.php
DELETED
@@ -1,244 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Frontend\Schema
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Returns schema HowTo data.
|
10 |
-
*
|
11 |
-
* @since 11.5
|
12 |
-
*/
|
13 |
-
class WPSEO_Schema_HowTo implements WPSEO_Graph_Piece {
|
14 |
-
|
15 |
-
/**
|
16 |
-
* Determine whether this graph piece is needed or not.
|
17 |
-
*
|
18 |
-
* Always false, because this graph piece adds itself using the filter API.
|
19 |
-
*
|
20 |
-
* @var bool
|
21 |
-
*/
|
22 |
-
private $is_needed = false;
|
23 |
-
|
24 |
-
/**
|
25 |
-
* The HowTo blocks count on the current page.
|
26 |
-
*
|
27 |
-
* @var int
|
28 |
-
*/
|
29 |
-
private $counter;
|
30 |
-
|
31 |
-
/**
|
32 |
-
* A value object with context variables.
|
33 |
-
*
|
34 |
-
* @var WPSEO_Schema_Context
|
35 |
-
*/
|
36 |
-
private $context;
|
37 |
-
|
38 |
-
/**
|
39 |
-
* Holds the allowed HTML tags for the jsonText.
|
40 |
-
*
|
41 |
-
* @var string
|
42 |
-
*/
|
43 |
-
private $allowed_json_text_tags = '<h1><h2><h3><h4><h5><h6><br><ol><ul><li><a><p><b><strong><i><em>';
|
44 |
-
|
45 |
-
/**
|
46 |
-
* WPSEO_Schema_HowTo constructor.
|
47 |
-
*
|
48 |
-
* @param WPSEO_Schema_Context $context A value object with context variables.
|
49 |
-
*
|
50 |
-
* @codeCoverageIgnore
|
51 |
-
*/
|
52 |
-
public function __construct( WPSEO_Schema_Context $context ) {
|
53 |
-
$this->counter = 0;
|
54 |
-
$this->context = $context;
|
55 |
-
|
56 |
-
add_filter( 'wpseo_schema_block_yoast/how-to-block', [ $this, 'render' ], 10, 2 );
|
57 |
-
}
|
58 |
-
|
59 |
-
/**
|
60 |
-
* Renders a list of questions, referencing them by ID.
|
61 |
-
*
|
62 |
-
* @return array $data Our Schema graph.
|
63 |
-
*/
|
64 |
-
public function generate() {
|
65 |
-
return [];
|
66 |
-
}
|
67 |
-
|
68 |
-
/**
|
69 |
-
* Renders the How-To block into our graph.
|
70 |
-
*
|
71 |
-
* @param array $graph Our Schema data.
|
72 |
-
* @param array $block The How-To block content.
|
73 |
-
*
|
74 |
-
* @return mixed
|
75 |
-
*/
|
76 |
-
public function render( $graph, $block ) {
|
77 |
-
$this->counter++;
|
78 |
-
$data = [
|
79 |
-
'@type' => 'HowTo',
|
80 |
-
'@id' => $this->context->canonical . '#howto-' . $this->counter,
|
81 |
-
'name' => WPSEO_Schema_Utils::get_post_title_with_fallback( $this->context->id ),
|
82 |
-
'mainEntityOfPage' => [ '@id' => $this->get_main_schema_id() ],
|
83 |
-
'description' => '',
|
84 |
-
];
|
85 |
-
|
86 |
-
$json_description = strip_tags( $block['attrs']['jsonDescription'], '<h1><h2><h3><h4><h5><h6><br><ol><ul><li><a><p><b><strong><i><em>' );
|
87 |
-
|
88 |
-
if ( isset( $json_description ) ) {
|
89 |
-
$data['description'] = $json_description;
|
90 |
-
}
|
91 |
-
|
92 |
-
$this->add_duration( $data, $block['attrs'] );
|
93 |
-
$this->add_steps( $data, $block['attrs']['steps'] );
|
94 |
-
$data = WPSEO_Schema_Utils::add_piece_language( $data );
|
95 |
-
|
96 |
-
$graph[] = $data;
|
97 |
-
|
98 |
-
return $graph;
|
99 |
-
}
|
100 |
-
|
101 |
-
/**
|
102 |
-
* Adds the duration of the task to the Schema.
|
103 |
-
*
|
104 |
-
* @param array $data Our How-To schema data.
|
105 |
-
* @param array $attributes The block data attributes.
|
106 |
-
*
|
107 |
-
* @return array $data Our schema data.
|
108 |
-
*/
|
109 |
-
private function add_duration( &$data, $attributes ) {
|
110 |
-
if ( ! empty( $attributes['hasDuration'] ) && $attributes['hasDuration'] ) {
|
111 |
-
$days = empty( $attributes['days'] ) ? 0 : $attributes['days'];
|
112 |
-
$hours = empty( $attributes['hours'] ) ? 0 : $attributes['hours'];
|
113 |
-
$minutes = empty( $attributes['minutes'] ) ? 0 : $attributes['minutes'];
|
114 |
-
|
115 |
-
if ( ( $days + $hours + $minutes ) > 0 ) {
|
116 |
-
$data['totalTime'] = esc_attr( 'P' . $days . 'DT' . $hours . 'H' . $minutes . 'M' );
|
117 |
-
}
|
118 |
-
}
|
119 |
-
|
120 |
-
return $data;
|
121 |
-
}
|
122 |
-
|
123 |
-
/**
|
124 |
-
* Determines whether we're part of an article or a webpage.
|
125 |
-
*
|
126 |
-
* @return string A reference URL.
|
127 |
-
*/
|
128 |
-
protected function get_main_schema_id() {
|
129 |
-
if ( $this->context->site_represents !== false && WPSEO_Schema_Article::is_article_post_type() ) {
|
130 |
-
return $this->context->canonical . WPSEO_Schema_IDs::ARTICLE_HASH;
|
131 |
-
}
|
132 |
-
|
133 |
-
return $this->context->canonical . WPSEO_Schema_IDs::WEBPAGE_HASH;
|
134 |
-
}
|
135 |
-
|
136 |
-
/**
|
137 |
-
* Determines whether or not a piece should be added to the graph.
|
138 |
-
*
|
139 |
-
* @return bool
|
140 |
-
*/
|
141 |
-
public function is_needed() {
|
142 |
-
return $this->is_needed;
|
143 |
-
}
|
144 |
-
|
145 |
-
/**
|
146 |
-
* Adds the steps to our How-To output.
|
147 |
-
*
|
148 |
-
* @param array $data Our How-To schema data.
|
149 |
-
* @param array $steps Our How-To block's steps.
|
150 |
-
*/
|
151 |
-
private function add_steps( &$data, $steps ) {
|
152 |
-
foreach ( $steps as $step ) {
|
153 |
-
$schema_id = $this->context->canonical . '#' . esc_attr( $step['id'] );
|
154 |
-
$schema_step = [
|
155 |
-
'@type' => 'HowToStep',
|
156 |
-
'url' => $schema_id,
|
157 |
-
];
|
158 |
-
|
159 |
-
$json_text = strip_tags( $step['jsonText'], $this->allowed_json_text_tags );
|
160 |
-
$json_name = wp_strip_all_tags( $step['jsonName'] );
|
161 |
-
|
162 |
-
if ( empty( $json_name ) ) {
|
163 |
-
if ( empty( $step['text'] ) ) {
|
164 |
-
continue;
|
165 |
-
}
|
166 |
-
|
167 |
-
$schema_step['text'] = '';
|
168 |
-
|
169 |
-
$this->add_step_image( $schema_step, $step );
|
170 |
-
|
171 |
-
// If there is no text and no image, don't output the step.
|
172 |
-
if ( empty( $json_text ) && empty( $schema_step['image'] ) ) {
|
173 |
-
continue;
|
174 |
-
}
|
175 |
-
|
176 |
-
if ( ! empty( $json_text ) ) {
|
177 |
-
$schema_step['text'] = $json_text;
|
178 |
-
}
|
179 |
-
}
|
180 |
-
|
181 |
-
elseif ( empty( $json_text ) ) {
|
182 |
-
$schema_step['text'] = $json_name;
|
183 |
-
}
|
184 |
-
else {
|
185 |
-
$schema_step['name'] = $json_name;
|
186 |
-
|
187 |
-
$this->add_step_description( $schema_step, $step );
|
188 |
-
$this->add_step_image( $schema_step, $step );
|
189 |
-
}
|
190 |
-
|
191 |
-
$data['step'][] = $schema_step;
|
192 |
-
}
|
193 |
-
}
|
194 |
-
|
195 |
-
/**
|
196 |
-
* Checks if we have a step description, if we do, add it.
|
197 |
-
*
|
198 |
-
* @param array $schema_step Our Schema output for the Step.
|
199 |
-
* @param array $step The step block data.
|
200 |
-
*/
|
201 |
-
private function add_step_description( &$schema_step, $step ) {
|
202 |
-
$json_text = strip_tags( $step['jsonText'], $this->allowed_json_text_tags );
|
203 |
-
|
204 |
-
if ( empty( $json_text ) ) {
|
205 |
-
return;
|
206 |
-
}
|
207 |
-
|
208 |
-
$schema_step['itemListElement'] = [];
|
209 |
-
|
210 |
-
$schema_step['itemListElement'][] = [
|
211 |
-
'@type' => 'HowToDirection',
|
212 |
-
'text' => $json_text,
|
213 |
-
];
|
214 |
-
}
|
215 |
-
|
216 |
-
/**
|
217 |
-
* Checks if we have a step image, if we do, add it.
|
218 |
-
*
|
219 |
-
* @param array $schema_step Our Schema output for the Step.
|
220 |
-
* @param array $step The step block data.
|
221 |
-
*/
|
222 |
-
private function add_step_image( &$schema_step, $step ) {
|
223 |
-
foreach ( $step['text'] as $line ) {
|
224 |
-
if ( is_array( $line ) && isset( $line['type'] ) && $line['type'] === 'img' ) {
|
225 |
-
$schema_step['image'] = $this->get_image_schema( esc_url( $line['props']['src'] ) );
|
226 |
-
}
|
227 |
-
}
|
228 |
-
}
|
229 |
-
|
230 |
-
/**
|
231 |
-
* Generates the image schema from the attachment $url.
|
232 |
-
*
|
233 |
-
* @param string $url Attachment url.
|
234 |
-
*
|
235 |
-
* @return array Image schema.
|
236 |
-
*
|
237 |
-
* @codeCoverageIgnore
|
238 |
-
*/
|
239 |
-
protected function get_image_schema( $url ) {
|
240 |
-
$image = new WPSEO_Schema_Image( $this->context->canonical . '#schema-image-' . md5( $url ) );
|
241 |
-
|
242 |
-
return $image->generate_from_url( $url );
|
243 |
-
}
|
244 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/schema/class-schema-image.php
DELETED
@@ -1,156 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Frontend\Schema
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Returns schema image data.
|
10 |
-
*
|
11 |
-
* @since 11.1
|
12 |
-
*
|
13 |
-
* @property string $schema_id The `@id` to use for the returned image.
|
14 |
-
* @property array $data The ImageObject Schema array.
|
15 |
-
* @property int $attachment_id The ID of the attachment used to generate the object.
|
16 |
-
*/
|
17 |
-
class WPSEO_Schema_Image {
|
18 |
-
|
19 |
-
/**
|
20 |
-
* The `@id` to use for the returned image.
|
21 |
-
*
|
22 |
-
* @var string
|
23 |
-
*/
|
24 |
-
private $schema_id;
|
25 |
-
|
26 |
-
/**
|
27 |
-
* The ImageObject Schema array.
|
28 |
-
*
|
29 |
-
* @var array
|
30 |
-
*/
|
31 |
-
private $data;
|
32 |
-
|
33 |
-
/**
|
34 |
-
* The ID of the attachment used to generate the object.
|
35 |
-
*
|
36 |
-
* @var int
|
37 |
-
*/
|
38 |
-
private $attachment_id;
|
39 |
-
|
40 |
-
/**
|
41 |
-
* WPSEO_Schema_Image constructor.
|
42 |
-
*
|
43 |
-
* @param string $schema_id The string to use in an image's `@id`.
|
44 |
-
*/
|
45 |
-
public function __construct( $schema_id ) {
|
46 |
-
$this->schema_id = $schema_id;
|
47 |
-
$this->generate_object();
|
48 |
-
}
|
49 |
-
|
50 |
-
/**
|
51 |
-
* Find an image based on its URL and generate a Schema object for it.
|
52 |
-
*
|
53 |
-
* @param string $url The image URL to base our object on.
|
54 |
-
* @param string $caption An optional caption.
|
55 |
-
*
|
56 |
-
* @return array Schema ImageObject array.
|
57 |
-
*/
|
58 |
-
public function generate_from_url( $url, $caption = '' ) {
|
59 |
-
$attachment_id = WPSEO_Image_Utils::get_attachment_by_url( $url );
|
60 |
-
if ( $attachment_id > 0 ) {
|
61 |
-
return $this->generate_from_attachment_id( $attachment_id, $caption );
|
62 |
-
}
|
63 |
-
|
64 |
-
return $this->simple_image_object( $url, $caption );
|
65 |
-
}
|
66 |
-
|
67 |
-
/**
|
68 |
-
* Retrieve data about an image from the database and use it to generate a Schema object.
|
69 |
-
*
|
70 |
-
* @param int $attachment_id The attachment to retrieve data from.
|
71 |
-
* @param string $caption The caption string, if there is one.
|
72 |
-
*
|
73 |
-
* @return array Schema ImageObject array.
|
74 |
-
*/
|
75 |
-
public function generate_from_attachment_id( $attachment_id, $caption = '' ) {
|
76 |
-
$this->attachment_id = $attachment_id;
|
77 |
-
$this->data['url'] = wp_get_attachment_image_url( $this->attachment_id, 'full' );
|
78 |
-
$this->add_image_size();
|
79 |
-
$this->add_caption( $caption );
|
80 |
-
|
81 |
-
return $this->data;
|
82 |
-
}
|
83 |
-
|
84 |
-
/**
|
85 |
-
* If we can't find $url in our database, we output a simple ImageObject.
|
86 |
-
*
|
87 |
-
* @param string $url The image URL.
|
88 |
-
* @param string $caption A caption, if set.
|
89 |
-
*
|
90 |
-
* @return array $data Schema ImageObject array.
|
91 |
-
*/
|
92 |
-
public function simple_image_object( $url, $caption = '' ) {
|
93 |
-
$this->data['url'] = $url;
|
94 |
-
|
95 |
-
if ( ! empty( $caption ) ) {
|
96 |
-
$this->data['caption'] = $caption;
|
97 |
-
}
|
98 |
-
|
99 |
-
return $this->data;
|
100 |
-
}
|
101 |
-
|
102 |
-
/**
|
103 |
-
* Retrieves an image's caption if set, or uses the alt tag if that's set.
|
104 |
-
*
|
105 |
-
* @param string $caption The caption string, if there is one.
|
106 |
-
*
|
107 |
-
* @return void
|
108 |
-
*/
|
109 |
-
private function add_caption( $caption = '' ) {
|
110 |
-
if ( ! empty( $caption ) ) {
|
111 |
-
$this->data['caption'] = $caption;
|
112 |
-
|
113 |
-
return;
|
114 |
-
}
|
115 |
-
|
116 |
-
$caption = wp_get_attachment_caption();
|
117 |
-
if ( ! empty( $caption ) ) {
|
118 |
-
$this->data['caption'] = $caption;
|
119 |
-
|
120 |
-
return;
|
121 |
-
}
|
122 |
-
|
123 |
-
$caption = get_post_meta( $this->attachment_id, '_wp_attachment_image_alt', true );
|
124 |
-
if ( ! empty( $caption ) ) {
|
125 |
-
$this->data['caption'] = $caption;
|
126 |
-
}
|
127 |
-
}
|
128 |
-
|
129 |
-
/**
|
130 |
-
* Generates our bare bone ImageObject.
|
131 |
-
*
|
132 |
-
* @return void
|
133 |
-
*/
|
134 |
-
private function generate_object() {
|
135 |
-
$this->data = [
|
136 |
-
'@type' => 'ImageObject',
|
137 |
-
'@id' => $this->schema_id,
|
138 |
-
];
|
139 |
-
|
140 |
-
$this->data = WPSEO_Schema_Utils::add_piece_language( $this->data );
|
141 |
-
}
|
142 |
-
|
143 |
-
/**
|
144 |
-
* Adds image's width and height.
|
145 |
-
*
|
146 |
-
* @return void
|
147 |
-
*/
|
148 |
-
private function add_image_size() {
|
149 |
-
$image_meta = wp_get_attachment_metadata( $this->attachment_id );
|
150 |
-
if ( empty( $image_meta['width'] ) || empty( $image_meta['height'] ) ) {
|
151 |
-
return;
|
152 |
-
}
|
153 |
-
$this->data['width'] = $image_meta['width'];
|
154 |
-
$this->data['height'] = $image_meta['height'];
|
155 |
-
}
|
156 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/schema/class-schema-main-image.php
DELETED
@@ -1,146 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Frontend\Schema
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Returns ImageObject schema data.
|
10 |
-
*
|
11 |
-
* @since 11.5
|
12 |
-
*/
|
13 |
-
class WPSEO_Schema_MainImage implements WPSEO_Graph_Piece {
|
14 |
-
|
15 |
-
/**
|
16 |
-
* A value object with context variables.
|
17 |
-
*
|
18 |
-
* @var WPSEO_Schema_Context
|
19 |
-
*/
|
20 |
-
private $context;
|
21 |
-
|
22 |
-
/**
|
23 |
-
* WPSEO_Schema_WebPage constructor.
|
24 |
-
*
|
25 |
-
* @codeCoverageIgnore
|
26 |
-
*
|
27 |
-
* @param WPSEO_Schema_Context $context A value object with context variables.
|
28 |
-
*/
|
29 |
-
public function __construct( WPSEO_Schema_Context $context ) {
|
30 |
-
$this->context = $context;
|
31 |
-
}
|
32 |
-
|
33 |
-
/**
|
34 |
-
* Determines whether or not a piece should be added to the graph.
|
35 |
-
*
|
36 |
-
* @return bool
|
37 |
-
*/
|
38 |
-
public function is_needed() {
|
39 |
-
if ( is_singular() ) {
|
40 |
-
return true;
|
41 |
-
}
|
42 |
-
|
43 |
-
return false;
|
44 |
-
}
|
45 |
-
|
46 |
-
/**
|
47 |
-
* Adds a main image for the current URL to the schema if there is one.
|
48 |
-
*
|
49 |
-
* This can be either the featured image, or fall back to the first image in the content of the page.
|
50 |
-
*
|
51 |
-
* @return false|array $data Image Schema.
|
52 |
-
*/
|
53 |
-
public function generate() {
|
54 |
-
$image_id = $this->context->canonical . WPSEO_Schema_IDs::PRIMARY_IMAGE_HASH;
|
55 |
-
|
56 |
-
$image_schema = $this->get_featured_image( $this->context->id, $image_id );
|
57 |
-
|
58 |
-
if ( $image_schema === null ) {
|
59 |
-
$image_schema = $this->get_first_content_image( $this->context->id, $image_id );
|
60 |
-
}
|
61 |
-
|
62 |
-
if ( $image_schema === null ) {
|
63 |
-
return false;
|
64 |
-
}
|
65 |
-
|
66 |
-
$this->context->has_image = true;
|
67 |
-
|
68 |
-
return $image_schema;
|
69 |
-
}
|
70 |
-
|
71 |
-
/**
|
72 |
-
* Gets the image schema for the web page based on the featured image.
|
73 |
-
*
|
74 |
-
* @param int $post_id The post id.
|
75 |
-
* @param string $image_id The image schema id.
|
76 |
-
*
|
77 |
-
* @return array|null The image schema object or null if there is no featured image.
|
78 |
-
*/
|
79 |
-
private function get_featured_image( $post_id, $image_id ) {
|
80 |
-
if ( ! has_post_thumbnail( $post_id ) ) {
|
81 |
-
return null;
|
82 |
-
}
|
83 |
-
|
84 |
-
return $this->generate_image_schema_from_attachment_id( $image_id );
|
85 |
-
}
|
86 |
-
|
87 |
-
/**
|
88 |
-
* Gets the image schema for the web page based on the first content image image.
|
89 |
-
*
|
90 |
-
* @param int $post_id The post id.
|
91 |
-
* @param string $image_id The image schema id.
|
92 |
-
*
|
93 |
-
* @return array|null The image schema object or null if there is no image in the content.
|
94 |
-
*/
|
95 |
-
private function get_first_content_image( $post_id, $image_id ) {
|
96 |
-
$image_url = $this->get_first_usable_content_image_for_post( $post_id );
|
97 |
-
|
98 |
-
if ( $image_url === null ) {
|
99 |
-
return null;
|
100 |
-
}
|
101 |
-
|
102 |
-
return $this->generate_image_schema_from_url( $image_id, $image_url );
|
103 |
-
}
|
104 |
-
|
105 |
-
/**
|
106 |
-
* Gets the post's first usable content image. Null if none is available.
|
107 |
-
*
|
108 |
-
* @codeCoverageIgnore
|
109 |
-
*
|
110 |
-
* @param int $post_id The post id.
|
111 |
-
*
|
112 |
-
* @return string|null The image URL or null if there is no image.
|
113 |
-
*/
|
114 |
-
protected function get_first_usable_content_image_for_post( $post_id ) {
|
115 |
-
return WPSEO_Image_Utils::get_first_usable_content_image_for_post( $post_id );
|
116 |
-
}
|
117 |
-
|
118 |
-
/**
|
119 |
-
* Generates image schema from the attachment id.
|
120 |
-
*
|
121 |
-
* @codeCoverageIgnore
|
122 |
-
*
|
123 |
-
* @param string $image_id The image schema id.
|
124 |
-
*
|
125 |
-
* @return array Schema ImageObject array.
|
126 |
-
*/
|
127 |
-
protected function generate_image_schema_from_attachment_id( $image_id ) {
|
128 |
-
$schema_image = new WPSEO_Schema_Image( $image_id );
|
129 |
-
return $schema_image->generate_from_attachment_id( get_post_thumbnail_id() );
|
130 |
-
}
|
131 |
-
|
132 |
-
/**
|
133 |
-
* Generates image schema from the url.
|
134 |
-
*
|
135 |
-
* @codeCoverageIgnore
|
136 |
-
*
|
137 |
-
* @param string $image_id The image schema id.
|
138 |
-
* @param string $image_url The image URL.
|
139 |
-
*
|
140 |
-
* @return array Schema ImageObject array.
|
141 |
-
*/
|
142 |
-
protected function generate_image_schema_from_url( $image_id, $image_url ) {
|
143 |
-
$schema_image = new WPSEO_Schema_Image( $image_id );
|
144 |
-
return $schema_image->generate_from_url( $image_url );
|
145 |
-
}
|
146 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/schema/class-schema-organization.php
DELETED
@@ -1,114 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Frontend\Schema
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Returns schema Organization data.
|
10 |
-
*
|
11 |
-
* @since 10.2
|
12 |
-
*/
|
13 |
-
class WPSEO_Schema_Organization implements WPSEO_Graph_Piece {
|
14 |
-
|
15 |
-
/**
|
16 |
-
* A value object with context variables.
|
17 |
-
*
|
18 |
-
* @var WPSEO_Schema_Context
|
19 |
-
*/
|
20 |
-
private $context;
|
21 |
-
|
22 |
-
/**
|
23 |
-
* WPSEO_Schema_Organization constructor.
|
24 |
-
*
|
25 |
-
* @param WPSEO_Schema_Context $context A value object with context variables.
|
26 |
-
*/
|
27 |
-
public function __construct( WPSEO_Schema_Context $context ) {
|
28 |
-
$this->context = $context;
|
29 |
-
}
|
30 |
-
|
31 |
-
/**
|
32 |
-
* Determines whether an Organization graph piece should be added.
|
33 |
-
*
|
34 |
-
* @return bool
|
35 |
-
*/
|
36 |
-
public function is_needed() {
|
37 |
-
return ( $this->context->site_represents === 'company' );
|
38 |
-
}
|
39 |
-
|
40 |
-
/**
|
41 |
-
* Returns the Organization Schema data.
|
42 |
-
*
|
43 |
-
* @return array $data The Organization schema.
|
44 |
-
*/
|
45 |
-
public function generate() {
|
46 |
-
$data = [
|
47 |
-
'@type' => 'Organization',
|
48 |
-
'@id' => $this->context->site_url . WPSEO_Schema_IDs::ORGANIZATION_HASH,
|
49 |
-
'name' => $this->context->company_name,
|
50 |
-
'url' => $this->context->site_url,
|
51 |
-
'sameAs' => $this->fetch_social_profiles(),
|
52 |
-
];
|
53 |
-
$data = $this->add_logo( $data );
|
54 |
-
|
55 |
-
return $data;
|
56 |
-
}
|
57 |
-
|
58 |
-
/**
|
59 |
-
* Adds a site's logo.
|
60 |
-
*
|
61 |
-
* @param array $data The Organization schema.
|
62 |
-
*
|
63 |
-
* @return array $data The Organization schema.
|
64 |
-
*/
|
65 |
-
private function add_logo( $data ) {
|
66 |
-
$schema_id = $this->context->site_url . WPSEO_Schema_IDs::ORGANIZATION_LOGO_HASH;
|
67 |
-
$schema_image = new WPSEO_Schema_Image( $schema_id );
|
68 |
-
$data['logo'] = $schema_image->generate_from_attachment_id( $this->context->company_logo_id, $this->context->company_name );
|
69 |
-
$data['image'] = [ '@id' => $schema_id ];
|
70 |
-
|
71 |
-
return $data;
|
72 |
-
}
|
73 |
-
|
74 |
-
/**
|
75 |
-
* Retrieve the social profiles to display in the organization schema.
|
76 |
-
*
|
77 |
-
* @since 1.8
|
78 |
-
*
|
79 |
-
* @link https://developers.google.com/webmasters/structured-data/customize/social-profiles
|
80 |
-
*
|
81 |
-
* @return array $profiles An array of social profiles.
|
82 |
-
*/
|
83 |
-
private function fetch_social_profiles() {
|
84 |
-
$profiles = [];
|
85 |
-
$social_profiles = [
|
86 |
-
'facebook_site',
|
87 |
-
'instagram_url',
|
88 |
-
'linkedin_url',
|
89 |
-
'myspace_url',
|
90 |
-
'youtube_url',
|
91 |
-
'pinterest_url',
|
92 |
-
'wikipedia_url',
|
93 |
-
];
|
94 |
-
foreach ( $social_profiles as $profile ) {
|
95 |
-
if ( WPSEO_Options::get( $profile, '' ) !== '' ) {
|
96 |
-
$profiles[] = urldecode( WPSEO_Options::get( $profile ) );
|
97 |
-
}
|
98 |
-
}
|
99 |
-
|
100 |
-
if ( WPSEO_Options::get( 'twitter_site', '' ) !== '' ) {
|
101 |
-
$profiles[] = 'https://twitter.com/' . WPSEO_Options::get( 'twitter_site' );
|
102 |
-
}
|
103 |
-
|
104 |
-
/**
|
105 |
-
* Filter: 'wpseo_schema_organization_social_profiles' - Allows filtering social profiles for the
|
106 |
-
* represented organization.
|
107 |
-
*
|
108 |
-
* @api string[] $profiles
|
109 |
-
*/
|
110 |
-
$profiles = apply_filters( 'wpseo_schema_organization_social_profiles', $profiles );
|
111 |
-
|
112 |
-
return $profiles;
|
113 |
-
}
|
114 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/schema/class-schema-webpage.php
DELETED
@@ -1,202 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Frontend\Schema
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Returns schema WebPage data.
|
10 |
-
*
|
11 |
-
* @since 10.2
|
12 |
-
*/
|
13 |
-
class WPSEO_Schema_WebPage implements WPSEO_Graph_Piece {
|
14 |
-
|
15 |
-
/**
|
16 |
-
* The date helper.
|
17 |
-
*
|
18 |
-
* @var WPSEO_Date_Helper
|
19 |
-
*/
|
20 |
-
protected $date;
|
21 |
-
|
22 |
-
/**
|
23 |
-
* A value object with context variables.
|
24 |
-
*
|
25 |
-
* @var WPSEO_Schema_Context
|
26 |
-
*/
|
27 |
-
private $context;
|
28 |
-
|
29 |
-
/**
|
30 |
-
* WPSEO_Schema_WebPage constructor.
|
31 |
-
*
|
32 |
-
* @param WPSEO_Schema_Context $context A value object with context variables.
|
33 |
-
*/
|
34 |
-
public function __construct( WPSEO_Schema_Context $context ) {
|
35 |
-
$this->context = $context;
|
36 |
-
$this->date = new WPSEO_Date_Helper();
|
37 |
-
}
|
38 |
-
|
39 |
-
/**
|
40 |
-
* Determines whether or not a piece should be added to the graph.
|
41 |
-
*
|
42 |
-
* @return bool
|
43 |
-
*/
|
44 |
-
public function is_needed() {
|
45 |
-
if ( is_404() ) {
|
46 |
-
return false;
|
47 |
-
}
|
48 |
-
|
49 |
-
return true;
|
50 |
-
}
|
51 |
-
|
52 |
-
/**
|
53 |
-
* Returns WebPage schema data.
|
54 |
-
*
|
55 |
-
* @return array WebPage schema data.
|
56 |
-
*/
|
57 |
-
public function generate() {
|
58 |
-
$data = [
|
59 |
-
'@type' => $this->determine_page_type(),
|
60 |
-
'@id' => $this->context->canonical . WPSEO_Schema_IDs::WEBPAGE_HASH,
|
61 |
-
'url' => $this->context->canonical,
|
62 |
-
'name' => $this->context->title,
|
63 |
-
'isPartOf' => [
|
64 |
-
'@id' => $this->context->site_url . WPSEO_Schema_IDs::WEBSITE_HASH,
|
65 |
-
],
|
66 |
-
];
|
67 |
-
|
68 |
-
$data = WPSEO_Schema_Utils::add_piece_language( $data );
|
69 |
-
|
70 |
-
if ( is_front_page() ) {
|
71 |
-
if ( $this->context->site_represents_reference ) {
|
72 |
-
$data['about'] = $this->context->site_represents_reference;
|
73 |
-
}
|
74 |
-
}
|
75 |
-
|
76 |
-
if ( is_singular() ) {
|
77 |
-
$this->add_image( $data );
|
78 |
-
|
79 |
-
$post = get_post( $this->context->id );
|
80 |
-
$data['datePublished'] = $this->date->format( $post->post_date_gmt );
|
81 |
-
$data['dateModified'] = $this->date->format( $post->post_modified_gmt );
|
82 |
-
|
83 |
-
if ( get_post_type( $post ) === 'post' ) {
|
84 |
-
$data = $this->add_author( $data, $post );
|
85 |
-
}
|
86 |
-
}
|
87 |
-
|
88 |
-
if ( ! empty( $this->context->description ) ) {
|
89 |
-
$data['description'] = strip_tags( $this->context->description, '<h1><h2><h3><h4><h5><h6><br><ol><ul><li><a><p><b><strong><i><em>' );
|
90 |
-
}
|
91 |
-
|
92 |
-
if ( $this->add_breadcrumbs() ) {
|
93 |
-
$data['breadcrumb'] = [
|
94 |
-
'@id' => $this->context->canonical . WPSEO_Schema_IDs::BREADCRUMB_HASH,
|
95 |
-
];
|
96 |
-
}
|
97 |
-
|
98 |
-
$data = $this->add_potential_action( $data );
|
99 |
-
|
100 |
-
return $data;
|
101 |
-
}
|
102 |
-
|
103 |
-
/**
|
104 |
-
* Adds an author property to the $data if the WebPage is not represented.
|
105 |
-
*
|
106 |
-
* @param array $data The WebPage schema.
|
107 |
-
* @param WP_Post $post The post the context is representing.
|
108 |
-
*
|
109 |
-
* @return array The WebPage schema.
|
110 |
-
*/
|
111 |
-
public function add_author( $data, $post ) {
|
112 |
-
if ( $this->context->site_represents === false ) {
|
113 |
-
$data['author'] = [ '@id' => WPSEO_Schema_Utils::get_user_schema_id( $post->post_author, $this->context ) ];
|
114 |
-
}
|
115 |
-
return $data;
|
116 |
-
}
|
117 |
-
|
118 |
-
/**
|
119 |
-
* If we have an image, make it the primary image of the page.
|
120 |
-
*
|
121 |
-
* @param array $data WebPage schema data.
|
122 |
-
*/
|
123 |
-
public function add_image( &$data ) {
|
124 |
-
if ( $this->context->has_image ) {
|
125 |
-
$data['primaryImageOfPage'] = [ '@id' => $this->context->canonical . WPSEO_Schema_IDs::PRIMARY_IMAGE_HASH ];
|
126 |
-
}
|
127 |
-
}
|
128 |
-
|
129 |
-
/**
|
130 |
-
* Determine if we should add a breadcrumb attribute.
|
131 |
-
*
|
132 |
-
* @return bool
|
133 |
-
*/
|
134 |
-
private function add_breadcrumbs() {
|
135 |
-
if ( is_front_page() ) {
|
136 |
-
return false;
|
137 |
-
}
|
138 |
-
|
139 |
-
if ( $this->context->breadcrumbs_enabled ) {
|
140 |
-
return true;
|
141 |
-
}
|
142 |
-
|
143 |
-
return false;
|
144 |
-
}
|
145 |
-
|
146 |
-
/**
|
147 |
-
* Determine the page type for the current page.
|
148 |
-
*
|
149 |
-
* @return string
|
150 |
-
*/
|
151 |
-
private function determine_page_type() {
|
152 |
-
switch ( true ) {
|
153 |
-
case is_search():
|
154 |
-
$type = 'SearchResultsPage';
|
155 |
-
break;
|
156 |
-
case is_author():
|
157 |
-
$type = 'ProfilePage';
|
158 |
-
break;
|
159 |
-
case WPSEO_Frontend_Page_Type::is_posts_page():
|
160 |
-
case WPSEO_Frontend_Page_Type::is_home_posts_page():
|
161 |
-
case is_archive():
|
162 |
-
$type = 'CollectionPage';
|
163 |
-
break;
|
164 |
-
default:
|
165 |
-
$type = 'WebPage';
|
166 |
-
}
|
167 |
-
|
168 |
-
/**
|
169 |
-
* Filter: 'wpseo_schema_webpage_type' - Allow changing the WebPage type.
|
170 |
-
*
|
171 |
-
* @api string $type The WebPage type.
|
172 |
-
*/
|
173 |
-
return apply_filters( 'wpseo_schema_webpage_type', $type );
|
174 |
-
}
|
175 |
-
|
176 |
-
/**
|
177 |
-
* Adds the potential action JSON LD code to a WebPage Schema piece.
|
178 |
-
*
|
179 |
-
* @param array $data The WebPage data array.
|
180 |
-
*
|
181 |
-
* @return array $data
|
182 |
-
*/
|
183 |
-
private function add_potential_action( $data ) {
|
184 |
-
if ( $this->determine_page_type() !== 'WebPage' ) {
|
185 |
-
return $data;
|
186 |
-
}
|
187 |
-
|
188 |
-
/**
|
189 |
-
* Filter: 'wpseo_schema_webpage_potential_action_target' - Allows filtering of the schema WebPage potentialAction target.
|
190 |
-
*
|
191 |
-
* @api array $targets The URLs for the WebPage potentialAction target.
|
192 |
-
*/
|
193 |
-
$targets = apply_filters( 'wpseo_schema_webpage_potential_action_target', [ $this->context->canonical ] );
|
194 |
-
|
195 |
-
$data['potentialAction'][] = [
|
196 |
-
'@type' => 'ReadAction',
|
197 |
-
'target' => $targets,
|
198 |
-
];
|
199 |
-
|
200 |
-
return $data;
|
201 |
-
}
|
202 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/schema/class-schema-website.php
DELETED
@@ -1,120 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Frontend\Schema
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Returns schema Website data.
|
10 |
-
*
|
11 |
-
* @since 10.2
|
12 |
-
*/
|
13 |
-
class WPSEO_Schema_Website implements WPSEO_Graph_Piece {
|
14 |
-
|
15 |
-
/**
|
16 |
-
* A value object with context variables.
|
17 |
-
*
|
18 |
-
* @var WPSEO_Schema_Context
|
19 |
-
*/
|
20 |
-
private $context;
|
21 |
-
|
22 |
-
/**
|
23 |
-
* WPSEO_Schema_Website constructor.
|
24 |
-
*
|
25 |
-
* @param WPSEO_Schema_Context $context A value object with context variables.
|
26 |
-
*/
|
27 |
-
public function __construct( WPSEO_Schema_Context $context ) {
|
28 |
-
$this->context = $context;
|
29 |
-
}
|
30 |
-
|
31 |
-
/**
|
32 |
-
* Determines whether or not a piece should be added to the graph.
|
33 |
-
*
|
34 |
-
* @return bool
|
35 |
-
*/
|
36 |
-
public function is_needed() {
|
37 |
-
return true;
|
38 |
-
}
|
39 |
-
|
40 |
-
/**
|
41 |
-
* Outputs code to allow recognition of the internal search engine.
|
42 |
-
*
|
43 |
-
* @since 1.5.7
|
44 |
-
*
|
45 |
-
* @link https://developers.google.com/structured-data/site-name
|
46 |
-
*
|
47 |
-
* @return array Website data blob.
|
48 |
-
*/
|
49 |
-
public function generate() {
|
50 |
-
$data = [
|
51 |
-
'@type' => 'WebSite',
|
52 |
-
'@id' => $this->context->site_url . WPSEO_Schema_IDs::WEBSITE_HASH,
|
53 |
-
'url' => $this->context->site_url,
|
54 |
-
'name' => $this->context->site_name,
|
55 |
-
];
|
56 |
-
|
57 |
-
$data = WPSEO_Schema_Utils::add_piece_language( $data );
|
58 |
-
|
59 |
-
if ( $this->context->site_description ) {
|
60 |
-
$data['description'] = $this->context->site_description;
|
61 |
-
}
|
62 |
-
|
63 |
-
if ( $this->context->site_represents_reference ) {
|
64 |
-
$data['publisher'] = $this->context->site_represents_reference;
|
65 |
-
}
|
66 |
-
|
67 |
-
$data = $this->add_alternate_name( $data );
|
68 |
-
$data = $this->internal_search_section( $data );
|
69 |
-
|
70 |
-
return $data;
|
71 |
-
}
|
72 |
-
|
73 |
-
/**
|
74 |
-
* Returns an alternate name if one was specified in the Yoast SEO settings.
|
75 |
-
*
|
76 |
-
* @param array $data The website data array.
|
77 |
-
*
|
78 |
-
* @return array $data
|
79 |
-
*/
|
80 |
-
private function add_alternate_name( $data ) {
|
81 |
-
if ( WPSEO_Options::get( 'alternate_website_name', '' ) !== '' ) {
|
82 |
-
$data['alternateName'] = WPSEO_Options::get( 'alternate_website_name' );
|
83 |
-
}
|
84 |
-
|
85 |
-
return $data;
|
86 |
-
}
|
87 |
-
|
88 |
-
/**
|
89 |
-
* Adds the internal search JSON LD code to the homepage if it's not disabled.
|
90 |
-
*
|
91 |
-
* @link https://developers.google.com/structured-data/slsb-overview
|
92 |
-
*
|
93 |
-
* @param array $data The website data array.
|
94 |
-
*
|
95 |
-
* @return array $data
|
96 |
-
*/
|
97 |
-
private function internal_search_section( $data ) {
|
98 |
-
/**
|
99 |
-
* Filter: 'disable_wpseo_json_ld_search' - Allow disabling of the json+ld output.
|
100 |
-
*
|
101 |
-
* @api bool $display_search Whether or not to display json+ld search on the frontend.
|
102 |
-
*/
|
103 |
-
if ( ! apply_filters( 'disable_wpseo_json_ld_search', false ) ) {
|
104 |
-
/**
|
105 |
-
* Filter: 'wpseo_json_ld_search_url' - Allows filtering of the search URL for Yoast SEO.
|
106 |
-
*
|
107 |
-
* @api string $search_url The search URL for this site with a `{search_term_string}` variable.
|
108 |
-
*/
|
109 |
-
$search_url = apply_filters( 'wpseo_json_ld_search_url', $this->context->site_url . '?s={search_term_string}' );
|
110 |
-
|
111 |
-
$data['potentialAction'][] = [
|
112 |
-
'@type' => 'SearchAction',
|
113 |
-
'target' => $search_url,
|
114 |
-
'query-input' => 'required name=search_term_string',
|
115 |
-
];
|
116 |
-
}
|
117 |
-
|
118 |
-
return $data;
|
119 |
-
}
|
120 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/schema/class-schema.php
DELETED
@@ -1,198 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Frontend\Schema
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Class WPSEO_Schema
|
10 |
-
*
|
11 |
-
* Outputs schema code specific for Google's JSON LD stuff.
|
12 |
-
*
|
13 |
-
* @since 1.8
|
14 |
-
*/
|
15 |
-
class WPSEO_Schema implements WPSEO_WordPress_Integration {
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Holds the parsed blocks for the current page.
|
19 |
-
*
|
20 |
-
* @var array
|
21 |
-
*/
|
22 |
-
private $parsed_blocks = [];
|
23 |
-
|
24 |
-
/**
|
25 |
-
* Holds context variables about the current page and site.
|
26 |
-
*
|
27 |
-
* @var WPSEO_Schema_Context
|
28 |
-
*/
|
29 |
-
private $context;
|
30 |
-
|
31 |
-
/**
|
32 |
-
* Registers the hooks.
|
33 |
-
*/
|
34 |
-
public function register_hooks() {
|
35 |
-
add_action( 'wpseo_head', [ $this, 'json_ld' ], 91 );
|
36 |
-
add_action( 'wpseo_json_ld', [ $this, 'generate' ], 1 );
|
37 |
-
|
38 |
-
// This AMP hook is only used in Reader (formerly Classic) mode.
|
39 |
-
add_action( 'amp_post_template_head', [ $this, 'json_ld' ], 9 );
|
40 |
-
}
|
41 |
-
|
42 |
-
/**
|
43 |
-
* JSON LD output function that the functions for specific code can hook into.
|
44 |
-
*
|
45 |
-
* @since 1.8
|
46 |
-
*/
|
47 |
-
public function json_ld() {
|
48 |
-
$deprecated_data = [
|
49 |
-
'_deprecated' => 'Please use the "wpseo_schema_*" filters to extend the Yoast SEO schema data - see the WPSEO_Schema class.',
|
50 |
-
];
|
51 |
-
|
52 |
-
/**
|
53 |
-
* Filter: 'wpseo_json_ld_output' - Allows disabling Yoast's schema output entirely.
|
54 |
-
*
|
55 |
-
* @api mixed If false or an empty array is returned, disable our output.
|
56 |
-
*/
|
57 |
-
$return = apply_filters( 'wpseo_json_ld_output', $deprecated_data, '' );
|
58 |
-
if ( $return === [] || $return === false ) {
|
59 |
-
return;
|
60 |
-
}
|
61 |
-
|
62 |
-
// Remove the AMP hook that also outputs Schema metadata on AMP pages.
|
63 |
-
remove_action( 'amp_post_template_head', 'amp_print_schemaorg_metadata' );
|
64 |
-
do_action( 'wpseo_json_ld' );
|
65 |
-
}
|
66 |
-
|
67 |
-
/**
|
68 |
-
* Outputs the JSON LD code in a valid JSON+LD wrapper.
|
69 |
-
*
|
70 |
-
* @since 10.2
|
71 |
-
*
|
72 |
-
* @return void
|
73 |
-
*/
|
74 |
-
public function generate() {
|
75 |
-
$graph = [];
|
76 |
-
|
77 |
-
$this->context = new WPSEO_Schema_Context();
|
78 |
-
$pieces = $this->get_graph_pieces();
|
79 |
-
|
80 |
-
// Parse the Gutenberg blocks so we know whether to show pieces for those.
|
81 |
-
$this->parse_blocks();
|
82 |
-
|
83 |
-
foreach ( $pieces as $piece ) {
|
84 |
-
$identifier = str_replace( 'wpseo_schema_', '', strtolower( get_class( $piece ) ) );
|
85 |
-
if ( property_exists( $piece, 'identifier' ) ) {
|
86 |
-
$identifier = $piece->identifier;
|
87 |
-
}
|
88 |
-
|
89 |
-
/**
|
90 |
-
* Filter: 'wpseo_schema_needs_<identifier>' - Allows changing which graph pieces we output.
|
91 |
-
*
|
92 |
-
* @api bool $is_needed Whether or not to show a graph piece.
|
93 |
-
*/
|
94 |
-
$is_needed = apply_filters( 'wpseo_schema_needs_' . $identifier, $piece->is_needed() );
|
95 |
-
if ( ! $is_needed ) {
|
96 |
-
continue;
|
97 |
-
}
|
98 |
-
|
99 |
-
$graph_piece = $piece->generate();
|
100 |
-
|
101 |
-
/**
|
102 |
-
* Filter: 'wpseo_schema_<identifier>' - Allows changing graph piece output.
|
103 |
-
*
|
104 |
-
* @api array $graph_piece The graph piece to filter.
|
105 |
-
*/
|
106 |
-
$graph_piece = apply_filters( 'wpseo_schema_' . $identifier, $graph_piece );
|
107 |
-
if ( is_array( $graph_piece ) ) {
|
108 |
-
$graph[] = $graph_piece;
|
109 |
-
}
|
110 |
-
}
|
111 |
-
|
112 |
-
foreach ( $this->parsed_blocks as $block_type => $blocks ) {
|
113 |
-
foreach ( $blocks as $block ) {
|
114 |
-
/**
|
115 |
-
* Filter: 'wpseo_schema_block_<block-type>' - Allows filtering graph output per block.
|
116 |
-
*
|
117 |
-
* @param WP_Block_Parser_Block $block The block.
|
118 |
-
* @param WPSEO_Schema_Context $context A value object with context variables.
|
119 |
-
*
|
120 |
-
* @api array $graph Our Schema output.
|
121 |
-
*/
|
122 |
-
$block_type = strtolower( $block['blockName'] );
|
123 |
-
$graph = apply_filters( 'wpseo_schema_block_' . $block_type, $graph, $block, $this->context );
|
124 |
-
}
|
125 |
-
}
|
126 |
-
|
127 |
-
WPSEO_Utils::schema_output( $graph, 'yoast-schema-graph yoast-schema-graph--main' );
|
128 |
-
}
|
129 |
-
|
130 |
-
/**
|
131 |
-
* Gets all the graph pieces we need.
|
132 |
-
*
|
133 |
-
* @return array A filtered array of graph pieces.
|
134 |
-
*/
|
135 |
-
private function get_graph_pieces() {
|
136 |
-
$pieces = [
|
137 |
-
new WPSEO_Schema_Organization( $this->context ),
|
138 |
-
new WPSEO_Schema_Person( $this->context ),
|
139 |
-
new WPSEO_Schema_Website( $this->context ),
|
140 |
-
new WPSEO_Schema_MainImage( $this->context ),
|
141 |
-
new WPSEO_Schema_WebPage( $this->context ),
|
142 |
-
new WPSEO_Schema_Breadcrumb( $this->context ),
|
143 |
-
new WPSEO_Schema_Article( $this->context ),
|
144 |
-
new WPSEO_Schema_Author( $this->context ),
|
145 |
-
new WPSEO_Schema_FAQ( $this->context ),
|
146 |
-
new WPSEO_Schema_HowTo( $this->context ),
|
147 |
-
];
|
148 |
-
|
149 |
-
/**
|
150 |
-
* Filter: 'wpseo_schema_graph_pieces' - Allows adding pieces to the graph.
|
151 |
-
*
|
152 |
-
* @param WPSEO_Schema_Context $context An object with context variables.
|
153 |
-
*
|
154 |
-
* @api array $pieces The schema pieces.
|
155 |
-
*/
|
156 |
-
return apply_filters( 'wpseo_schema_graph_pieces', $pieces, $this->context );
|
157 |
-
}
|
158 |
-
|
159 |
-
/**
|
160 |
-
* Parse the blocks and pass them on to our head.
|
161 |
-
*/
|
162 |
-
private function parse_blocks() {
|
163 |
-
if ( ! function_exists( 'parse_blocks' ) ) {
|
164 |
-
return;
|
165 |
-
}
|
166 |
-
|
167 |
-
if ( ! is_singular() ) {
|
168 |
-
return;
|
169 |
-
}
|
170 |
-
|
171 |
-
$this->get_parsed_blocks();
|
172 |
-
foreach ( array_keys( $this->parsed_blocks ) as $block_type ) {
|
173 |
-
/**
|
174 |
-
* Filter: 'wpseo_pre_schema_block_type_<block-type>' - Allows hooking things to change graph output based on the blocks on the page.
|
175 |
-
*
|
176 |
-
* @param string $block_type The block type.
|
177 |
-
* @param array $blocks All the blocks of this block type.
|
178 |
-
* @param WPSEO_Schema_Context $context A value object with context variables.
|
179 |
-
*/
|
180 |
-
do_action( 'wpseo_pre_schema_block_type_' . $block_type, $this->parsed_blocks[ $block_type ], $this->context );
|
181 |
-
}
|
182 |
-
}
|
183 |
-
|
184 |
-
/**
|
185 |
-
* Parse the blocks and loop through them.
|
186 |
-
*/
|
187 |
-
private function get_parsed_blocks() {
|
188 |
-
$post = get_post();
|
189 |
-
$parsed_blocks = parse_blocks( $post->post_content );
|
190 |
-
|
191 |
-
foreach ( $parsed_blocks as $block ) {
|
192 |
-
if ( ! isset( $this->parsed_blocks[ $block['blockName'] ] ) || ! is_array( $this->parsed_blocks[ $block['blockName'] ] ) ) {
|
193 |
-
$this->parsed_blocks[ $block['blockName'] ] = [];
|
194 |
-
}
|
195 |
-
$this->parsed_blocks[ $block['blockName'] ][] = $block;
|
196 |
-
}
|
197 |
-
}
|
198 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inc/class-wpseo-admin-bar-menu.php
CHANGED
@@ -280,7 +280,13 @@ class WPSEO_Admin_Bar_Menu implements WPSEO_WordPress_Integration {
|
|
280 |
* @return void
|
281 |
*/
|
282 |
protected function add_analysis_submenu( WP_Admin_Bar $wp_admin_bar ) {
|
283 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
284 |
$focus_keyword = '';
|
285 |
|
286 |
if ( ! $url ) {
|
280 |
* @return void
|
281 |
*/
|
282 |
protected function add_analysis_submenu( WP_Admin_Bar $wp_admin_bar ) {
|
283 |
+
try {
|
284 |
+
$url = YoastSEO()->meta->for_current_page()->canonical;
|
285 |
+
} catch ( Exception $e ) {
|
286 |
+
// This is not the type of error we can handle here.
|
287 |
+
return;
|
288 |
+
}
|
289 |
+
|
290 |
$focus_keyword = '';
|
291 |
|
292 |
if ( ! $url ) {
|
inc/class-wpseo-custom-fields.php
CHANGED
@@ -43,11 +43,9 @@ class WPSEO_Custom_Fields {
|
|
43 |
$limit = apply_filters( 'postmeta_form_limit', 30 );
|
44 |
$sql = "SELECT DISTINCT meta_key
|
45 |
FROM $wpdb->postmeta
|
46 |
-
WHERE meta_key NOT BETWEEN '_' AND '_z'
|
47 |
-
HAVING meta_key NOT LIKE %s
|
48 |
-
ORDER BY meta_key
|
49 |
LIMIT %d";
|
50 |
-
$fields = $wpdb->get_col( $wpdb->prepare( $sql, $
|
51 |
|
52 |
if ( is_array( $fields ) ) {
|
53 |
self::$custom_fields = array_map( [ 'WPSEO_Custom_Fields', 'add_custom_field_prefix' ], $fields );
|
43 |
$limit = apply_filters( 'postmeta_form_limit', 30 );
|
44 |
$sql = "SELECT DISTINCT meta_key
|
45 |
FROM $wpdb->postmeta
|
46 |
+
WHERE meta_key NOT BETWEEN '_' AND '_z' AND SUBSTRING(meta_key, 1, 1) != '_'
|
|
|
|
|
47 |
LIMIT %d";
|
48 |
+
$fields = $wpdb->get_col( $wpdb->prepare( $sql, $limit ) );
|
49 |
|
50 |
if ( is_array( $fields ) ) {
|
51 |
self::$custom_fields = array_map( [ 'WPSEO_Custom_Fields', 'add_custom_field_prefix' ], $fields );
|
inc/class-wpseo-replace-vars.php
CHANGED
@@ -1193,76 +1193,6 @@ class WPSEO_Replace_Vars {
|
|
1193 |
];
|
1194 |
}
|
1195 |
|
1196 |
-
/**
|
1197 |
-
* Retrieves the custom field names as an array.
|
1198 |
-
*
|
1199 |
-
* @link WordPress core: wp-admin/includes/template.php. Reused query from it.
|
1200 |
-
*
|
1201 |
-
* @return array The custom fields.
|
1202 |
-
*/
|
1203 |
-
private function get_custom_fields() {
|
1204 |
-
global $wpdb;
|
1205 |
-
|
1206 |
-
/**
|
1207 |
-
* Filters the number of custom fields to retrieve for the drop-down
|
1208 |
-
* in the Custom Fields meta box.
|
1209 |
-
*
|
1210 |
-
* @since 2.1.0
|
1211 |
-
*
|
1212 |
-
* @param int $limit Number of custom fields to retrieve. Default 30.
|
1213 |
-
*/
|
1214 |
-
$limit = apply_filters( 'postmeta_form_limit', 30 );
|
1215 |
-
$sql = "SELECT DISTINCT meta_key
|
1216 |
-
FROM $wpdb->postmeta
|
1217 |
-
WHERE meta_key NOT BETWEEN '_' AND '_z'
|
1218 |
-
HAVING meta_key NOT LIKE %s
|
1219 |
-
ORDER BY meta_key
|
1220 |
-
LIMIT %d";
|
1221 |
-
$fields = $wpdb->get_col( $wpdb->prepare( $sql, $wpdb->esc_like( '_' ) . '%', $limit ) );
|
1222 |
-
|
1223 |
-
if ( is_array( $fields ) ) {
|
1224 |
-
return array_map( [ $this, 'add_custom_field_prefix' ], $fields );
|
1225 |
-
}
|
1226 |
-
|
1227 |
-
return [];
|
1228 |
-
}
|
1229 |
-
|
1230 |
-
/**
|
1231 |
-
* Adds the cf_ prefix to a field.
|
1232 |
-
*
|
1233 |
-
* @param string $field The field to prefix.
|
1234 |
-
*
|
1235 |
-
* @return string The prefixed field.
|
1236 |
-
*/
|
1237 |
-
private function add_custom_field_prefix( $field ) {
|
1238 |
-
return 'cf_' . $field;
|
1239 |
-
}
|
1240 |
-
|
1241 |
-
/**
|
1242 |
-
* Gets the names of the custom taxonomies, prepends 'ct_' and 'ct_desc', and returns them in an array.
|
1243 |
-
*
|
1244 |
-
* @return array The custom taxonomy prefixed names.
|
1245 |
-
*/
|
1246 |
-
private function get_custom_taxonomies() {
|
1247 |
-
$args = [
|
1248 |
-
'public' => true,
|
1249 |
-
'_builtin' => false,
|
1250 |
-
];
|
1251 |
-
$output = 'names';
|
1252 |
-
$operator = 'and';
|
1253 |
-
$custom_taxonomies = get_taxonomies( $args, $output, $operator );
|
1254 |
-
|
1255 |
-
if ( is_array( $custom_taxonomies ) ) {
|
1256 |
-
$ct_replace_vars = [];
|
1257 |
-
foreach ( $custom_taxonomies as $custom_taxonomy ) {
|
1258 |
-
array_push( $ct_replace_vars, 'ct_' . $custom_taxonomy, 'ct_desc_' . $custom_taxonomy );
|
1259 |
-
}
|
1260 |
-
return $ct_replace_vars;
|
1261 |
-
}
|
1262 |
-
|
1263 |
-
return [];
|
1264 |
-
}
|
1265 |
-
|
1266 |
/**
|
1267 |
* Set/translate the help texts for the WPSEO standard basic variables.
|
1268 |
*/
|
@@ -1292,6 +1222,7 @@ class WPSEO_Replace_Vars {
|
|
1292 |
new WPSEO_Replacement_Variable( 'term_description', __( 'Term description', 'wordpress-seo' ), __( 'Replaced with the term description', 'wordpress-seo' ) ),
|
1293 |
new WPSEO_Replacement_Variable( 'term_title', __( 'Term title', 'wordpress-seo' ), __( 'Replaced with the term name', 'wordpress-seo' ) ),
|
1294 |
new WPSEO_Replacement_Variable( 'searchphrase', __( 'Search phrase', 'wordpress-seo' ), __( 'Replaced with the current search phrase', 'wordpress-seo' ) ),
|
|
|
1295 |
new WPSEO_Replacement_Variable( 'sep', __( 'Separator', 'wordpress-seo' ), $separator_description ),
|
1296 |
];
|
1297 |
|
@@ -1395,4 +1326,48 @@ class WPSEO_Replace_Vars {
|
|
1395 |
*/
|
1396 |
return apply_filters( 'wpseo_terms', $output, $taxonomy );
|
1397 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1398 |
} /* End of class WPSEO_Replace_Vars */
|
1193 |
];
|
1194 |
}
|
1195 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1196 |
/**
|
1197 |
* Set/translate the help texts for the WPSEO standard basic variables.
|
1198 |
*/
|
1222 |
new WPSEO_Replacement_Variable( 'term_description', __( 'Term description', 'wordpress-seo' ), __( 'Replaced with the term description', 'wordpress-seo' ) ),
|
1223 |
new WPSEO_Replacement_Variable( 'term_title', __( 'Term title', 'wordpress-seo' ), __( 'Replaced with the term name', 'wordpress-seo' ) ),
|
1224 |
new WPSEO_Replacement_Variable( 'searchphrase', __( 'Search phrase', 'wordpress-seo' ), __( 'Replaced with the current search phrase', 'wordpress-seo' ) ),
|
1225 |
+
new WPSEO_Replacement_Variable( 'term_hierarchy', __( 'Term hierarchy', 'wordpress-seo' ), __( 'Replaced with the term ancestors hierarchy', 'wordpress-seo' ) ),
|
1226 |
new WPSEO_Replacement_Variable( 'sep', __( 'Separator', 'wordpress-seo' ), $separator_description ),
|
1227 |
];
|
1228 |
|
1326 |
*/
|
1327 |
return apply_filters( 'wpseo_terms', $output, $taxonomy );
|
1328 |
}
|
1329 |
+
|
1330 |
+
/**
|
1331 |
+
* Gets a taxonomy term hierarchy including the term to get the parents for.
|
1332 |
+
*
|
1333 |
+
* @return string
|
1334 |
+
*/
|
1335 |
+
private function get_term_hierarchy() {
|
1336 |
+
if ( ! is_taxonomy_hierarchical( $this->args->taxonomy ) ) {
|
1337 |
+
return '';
|
1338 |
+
}
|
1339 |
+
|
1340 |
+
$separator = ' ' . $this->retrieve_sep() . ' ';
|
1341 |
+
|
1342 |
+
$args = [
|
1343 |
+
'format' => 'name',
|
1344 |
+
'separator' => $separator,
|
1345 |
+
'link' => false,
|
1346 |
+
'inclusive' => true,
|
1347 |
+
];
|
1348 |
+
|
1349 |
+
return rtrim(
|
1350 |
+
get_term_parents_list( $this->args->term_id, $this->args->taxonomy, $args ),
|
1351 |
+
$separator
|
1352 |
+
);
|
1353 |
+
}
|
1354 |
+
|
1355 |
+
/**
|
1356 |
+
* Retrieves the term ancestors hierarchy.
|
1357 |
+
*
|
1358 |
+
* @return string|null The term ancestors hierarchy.
|
1359 |
+
*/
|
1360 |
+
private function retrieve_term_hierarchy() {
|
1361 |
+
$replacement = null;
|
1362 |
+
|
1363 |
+
if ( ! isset( $replacement ) && isset( $this->args->term_id ) && ! empty( $this->args->taxonomy ) ) {
|
1364 |
+
$hierarchy = $this->get_term_hierarchy();
|
1365 |
+
|
1366 |
+
if ( $hierarchy !== '' ) {
|
1367 |
+
$replacement = esc_html( $hierarchy );
|
1368 |
+
}
|
1369 |
+
}
|
1370 |
+
|
1371 |
+
return $replacement;
|
1372 |
+
}
|
1373 |
} /* End of class WPSEO_Replace_Vars */
|
inc/class-wpseo-utils.php
CHANGED
@@ -902,7 +902,10 @@ class WPSEO_Utils {
|
|
902 |
public static function is_development_mode() {
|
903 |
$development_mode = false;
|
904 |
|
905 |
-
if ( defined( '
|
|
|
|
|
|
|
906 |
$development_mode = WPSEO_DEBUG;
|
907 |
}
|
908 |
elseif ( site_url() && strpos( site_url(), '.' ) === false ) {
|
@@ -1168,44 +1171,37 @@ SVG;
|
|
1168 |
}
|
1169 |
|
1170 |
/**
|
1171 |
-
* Returns the home
|
1172 |
*
|
|
|
1173 |
* In case of a multisite setup we return the network_home_url.
|
1174 |
-
* In case of no multisite setup we return the home_url while overriding the WPML filter.
|
1175 |
-
*
|
1176 |
-
* @codeCoverageIgnore
|
1177 |
*
|
1178 |
* @return string The home url.
|
1179 |
*/
|
1180 |
-
public static function get_home_url() {
|
1181 |
-
// Add a new filter to undo WPML's changing of home url.
|
1182 |
-
add_filter( 'wpml_get_home_url', [ 'WPSEO_Utils', 'wpml_get_home_url' ], 10, 2 );
|
1183 |
-
|
1184 |
-
$url = home_url();
|
1185 |
-
|
1186 |
-
// If the plugin is network activated, use the network home URL.
|
1187 |
-
if ( self::is_plugin_network_active() ) {
|
1188 |
-
$url = network_home_url();
|
1189 |
-
}
|
1190 |
-
|
1191 |
-
remove_filter( 'wpml_get_home_url', [ 'WPSEO_Utils', 'wpml_get_home_url' ], 10 );
|
1192 |
-
|
1193 |
-
return $url;
|
1194 |
-
}
|
1195 |
|
1196 |
/**
|
1197 |
-
* Returns the
|
1198 |
-
* This method gets automatically triggered by the wpml_get_home_url filter.
|
1199 |
*
|
1200 |
-
*
|
|
|
1201 |
*
|
1202 |
-
* @
|
1203 |
-
* @param string $url The url that isn't altered by WPML.
|
1204 |
*
|
1205 |
-
* @
|
1206 |
*/
|
1207 |
-
public static function
|
1208 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1209 |
}
|
1210 |
|
1211 |
/**
|
902 |
public static function is_development_mode() {
|
903 |
$development_mode = false;
|
904 |
|
905 |
+
if ( defined( 'YOAST_ENVIRONMENT' ) && YOAST_ENVIRONMENT === 'development' ) {
|
906 |
+
$development_mode = true;
|
907 |
+
}
|
908 |
+
elseif ( defined( 'WPSEO_DEBUG' ) ) {
|
909 |
$development_mode = WPSEO_DEBUG;
|
910 |
}
|
911 |
elseif ( site_url() && strpos( site_url(), '.' ) === false ) {
|
1171 |
}
|
1172 |
|
1173 |
/**
|
1174 |
+
* Returns the unfiltered home URL.
|
1175 |
*
|
1176 |
+
* In case WPML is installed, returns the original home_url and not the WPML version.
|
1177 |
* In case of a multisite setup we return the network_home_url.
|
|
|
|
|
|
|
1178 |
*
|
1179 |
* @return string The home url.
|
1180 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1181 |
|
1182 |
/**
|
1183 |
+
* Returns the unfiltered home URL.
|
|
|
1184 |
*
|
1185 |
+
* In case WPML is installed, returns the original home_url and not the WPML version.
|
1186 |
+
* In case of a multisite setup we return the network_home_url.
|
1187 |
*
|
1188 |
+
* @return string The home url.
|
|
|
1189 |
*
|
1190 |
+
* @codeCoverageIgnore
|
1191 |
*/
|
1192 |
+
public static function get_home_url() {
|
1193 |
+
|
1194 |
+
/**
|
1195 |
+
* Action: 'wpseo_home_url' - Allows overriding of the home URL.
|
1196 |
+
*/
|
1197 |
+
do_action( 'wpseo_home_url' );
|
1198 |
+
|
1199 |
+
// If the plugin is network-activated, use the network home URL.
|
1200 |
+
if ( WPSEO_Utils::is_plugin_network_active() ) {
|
1201 |
+
return network_home_url();
|
1202 |
+
}
|
1203 |
+
|
1204 |
+
return home_url();
|
1205 |
}
|
1206 |
|
1207 |
/**
|
inc/options/class-wpseo-option-ms.php
CHANGED
@@ -83,16 +83,17 @@ class WPSEO_Option_MS extends WPSEO_Option {
|
|
83 |
public function __construct() {
|
84 |
$allow_prefix = self::ALLOW_KEY_PREFIX;
|
85 |
$this->defaults = [
|
86 |
-
'access'
|
87 |
-
'defaultblog'
|
88 |
-
"{$allow_prefix}disableadvanced_meta"
|
89 |
-
"{$allow_prefix}ryte_indexability"
|
90 |
-
"{$allow_prefix}content_analysis_active"
|
91 |
-
"{$allow_prefix}keyword_analysis_active"
|
92 |
-
"{$allow_prefix}enable_admin_bar_menu"
|
93 |
-
"{$allow_prefix}enable_cornerstone_content"
|
94 |
-
"{$allow_prefix}enable_xml_sitemap"
|
95 |
-
"{$allow_prefix}enable_text_link_counter"
|
|
|
96 |
];
|
97 |
|
98 |
if ( is_multisite() ) {
|
83 |
public function __construct() {
|
84 |
$allow_prefix = self::ALLOW_KEY_PREFIX;
|
85 |
$this->defaults = [
|
86 |
+
'access' => 'admin',
|
87 |
+
'defaultblog' => '', // Numeric blog ID or empty.
|
88 |
+
"{$allow_prefix}disableadvanced_meta" => true,
|
89 |
+
"{$allow_prefix}ryte_indexability" => true,
|
90 |
+
"{$allow_prefix}content_analysis_active" => true,
|
91 |
+
"{$allow_prefix}keyword_analysis_active" => true,
|
92 |
+
"{$allow_prefix}enable_admin_bar_menu" => true,
|
93 |
+
"{$allow_prefix}enable_cornerstone_content" => true,
|
94 |
+
"{$allow_prefix}enable_xml_sitemap" => true,
|
95 |
+
"{$allow_prefix}enable_text_link_counter" => true,
|
96 |
+
"{$allow_prefix}enable_headless_rest_endpoints" => true,
|
97 |
];
|
98 |
|
99 |
if ( is_multisite() ) {
|
inc/options/class-wpseo-option-titles.php
CHANGED
@@ -27,8 +27,6 @@ class WPSEO_Option_Titles extends WPSEO_Option {
|
|
27 |
* @var array
|
28 |
*/
|
29 |
protected $defaults = [
|
30 |
-
// Non-form fields, set via (ajax) function.
|
31 |
-
'title_test' => 0,
|
32 |
// Form fields.
|
33 |
'forcerewritetitle' => false,
|
34 |
'separator' => 'sc-dash',
|
@@ -126,8 +124,6 @@ class WPSEO_Option_Titles extends WPSEO_Option {
|
|
126 |
* @var array
|
127 |
*/
|
128 |
public $ms_exclude = [
|
129 |
-
/* Theme dependent. */
|
130 |
-
'title_test',
|
131 |
'forcerewritetitle',
|
132 |
];
|
133 |
|
@@ -489,7 +485,6 @@ class WPSEO_Option_Titles extends WPSEO_Option {
|
|
489 |
case 'company_or_person_user_id':
|
490 |
case 'company_logo_id':
|
491 |
case 'person_logo_id':
|
492 |
-
case 'title_test': /* Integer field - not in form. */
|
493 |
if ( isset( $dirty[ $key ] ) ) {
|
494 |
$int = WPSEO_Utils::validate_int( $dirty[ $key ] );
|
495 |
if ( $int !== false && $int >= 0 ) {
|
27 |
* @var array
|
28 |
*/
|
29 |
protected $defaults = [
|
|
|
|
|
30 |
// Form fields.
|
31 |
'forcerewritetitle' => false,
|
32 |
'separator' => 'sc-dash',
|
124 |
* @var array
|
125 |
*/
|
126 |
public $ms_exclude = [
|
|
|
|
|
127 |
'forcerewritetitle',
|
128 |
];
|
129 |
|
485 |
case 'company_or_person_user_id':
|
486 |
case 'company_logo_id':
|
487 |
case 'person_logo_id':
|
|
|
488 |
if ( isset( $dirty[ $key ] ) ) {
|
489 |
$int = WPSEO_Utils::validate_int( $dirty[ $key ] );
|
490 |
if ( $int !== false && $int >= 0 ) {
|
inc/options/class-wpseo-option-wpseo.php
CHANGED
@@ -27,11 +27,13 @@ class WPSEO_Option_Wpseo extends WPSEO_Option {
|
|
27 |
protected $defaults = [
|
28 |
// Non-form fields, set via (ajax) function.
|
29 |
'ms_defaults_set' => false,
|
|
|
30 |
// Non-form field, should only be set via validation routine.
|
31 |
'version' => '', // Leave default as empty to ensure activation/upgrade works.
|
32 |
|
33 |
// Form fields.
|
34 |
'disableadvanced_meta' => true,
|
|
|
35 |
'ryte_indexability' => true,
|
36 |
'baiduverify' => '', // Text field.
|
37 |
'googleverify' => '', // Text field.
|
@@ -304,6 +306,7 @@ class WPSEO_Option_Wpseo extends WPSEO_Option {
|
|
304 |
/*
|
305 |
* Covers:
|
306 |
* 'disableadvanced_meta'
|
|
|
307 |
* 'yoast_tracking'
|
308 |
*/
|
309 |
default:
|
@@ -329,14 +332,15 @@ class WPSEO_Option_Wpseo extends WPSEO_Option {
|
|
329 |
|
330 |
// For the feature variables, set their values to off in case they are disabled.
|
331 |
$feature_vars = [
|
332 |
-
'disableadvanced_meta'
|
333 |
-
'ryte_indexability'
|
334 |
-
'content_analysis_active'
|
335 |
-
'keyword_analysis_active'
|
336 |
-
'enable_admin_bar_menu'
|
337 |
-
'enable_cornerstone_content'
|
338 |
-
'enable_xml_sitemap'
|
339 |
-
'enable_text_link_counter'
|
|
|
340 |
];
|
341 |
|
342 |
// We can reuse this logic from the base class with the above defaults to parse with the correct feature values.
|
27 |
protected $defaults = [
|
28 |
// Non-form fields, set via (ajax) function.
|
29 |
'ms_defaults_set' => false,
|
30 |
+
'ignore_indexation_warning' => false,
|
31 |
// Non-form field, should only be set via validation routine.
|
32 |
'version' => '', // Leave default as empty to ensure activation/upgrade works.
|
33 |
|
34 |
// Form fields.
|
35 |
'disableadvanced_meta' => true,
|
36 |
+
'enable_headless_rest_endpoints' => true,
|
37 |
'ryte_indexability' => true,
|
38 |
'baiduverify' => '', // Text field.
|
39 |
'googleverify' => '', // Text field.
|
306 |
/*
|
307 |
* Covers:
|
308 |
* 'disableadvanced_meta'
|
309 |
+
* 'enable_headless_rest_endpoints'
|
310 |
* 'yoast_tracking'
|
311 |
*/
|
312 |
default:
|
332 |
|
333 |
// For the feature variables, set their values to off in case they are disabled.
|
334 |
$feature_vars = [
|
335 |
+
'disableadvanced_meta' => false,
|
336 |
+
'ryte_indexability' => false,
|
337 |
+
'content_analysis_active' => false,
|
338 |
+
'keyword_analysis_active' => false,
|
339 |
+
'enable_admin_bar_menu' => false,
|
340 |
+
'enable_cornerstone_content' => false,
|
341 |
+
'enable_xml_sitemap' => false,
|
342 |
+
'enable_text_link_counter' => false,
|
343 |
+
'enable_headless_rest_endpoints' => false,
|
344 |
];
|
345 |
|
346 |
// We can reuse this logic from the base class with the above defaults to parse with the correct feature values.
|
inc/sitemaps/class-sitemaps-renderer.php
CHANGED
@@ -158,7 +158,6 @@ class WPSEO_Sitemaps_Renderer {
|
|
158 |
|
159 |
$output .= $sitemap;
|
160 |
$output .= "\n<!-- XML Sitemap generated by Yoast SEO -->";
|
161 |
-
$output .= $this->get_debug( $transient );
|
162 |
|
163 |
return $output;
|
164 |
}
|
@@ -349,30 +348,4 @@ class WPSEO_Sitemaps_Renderer {
|
|
349 |
|
350 |
return plugin_dir_url( WPSEO_FILE ) . 'css/main-sitemap.xsl';
|
351 |
}
|
352 |
-
|
353 |
-
/**
|
354 |
-
* Adds debugging information to the output.
|
355 |
-
*
|
356 |
-
* @param bool $transient Transient cache was used or not.
|
357 |
-
*
|
358 |
-
* @return string Information about the functionality used to build the sitemap.
|
359 |
-
*/
|
360 |
-
protected function get_debug( $transient ) {
|
361 |
-
$debug = defined( 'YOAST_SEO_DEBUG_SITEMAPS' ) && YOAST_SEO_DEBUG_SITEMAPS === true;
|
362 |
-
if ( ! $debug ) {
|
363 |
-
return '';
|
364 |
-
}
|
365 |
-
|
366 |
-
$memory_used = number_format( ( memory_get_peak_usage() / 1048576 ), 2 );
|
367 |
-
$queries_run = ( $transient ) ? 'Served from transient cache' : 'Queries executed ' . absint( $GLOBALS['wpdb']->num_queries );
|
368 |
-
|
369 |
-
$output = "\n<!-- {$memory_used}MB | {$queries_run} -->";
|
370 |
-
|
371 |
-
if ( defined( 'SAVEQUERIES' ) && SAVEQUERIES ) {
|
372 |
-
$queries = print_r( $GLOBALS['wpdb']->queries, true );
|
373 |
-
$output .= "\n<!-- {$queries} -->";
|
374 |
-
}
|
375 |
-
|
376 |
-
return $output;
|
377 |
-
}
|
378 |
}
|
158 |
|
159 |
$output .= $sitemap;
|
160 |
$output .= "\n<!-- XML Sitemap generated by Yoast SEO -->";
|
|
|
161 |
|
162 |
return $output;
|
163 |
}
|
348 |
|
349 |
return plugin_dir_url( WPSEO_FILE ) . 'css/main-sitemap.xsl';
|
350 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
351 |
}
|
inc/wpseo-functions-deprecated.php
CHANGED
@@ -34,3 +34,15 @@ function wpseo_add_template_variables_helpcenter() {
|
|
34 |
|
35 |
return '';
|
36 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
|
35 |
return '';
|
36 |
}
|
37 |
+
|
38 |
+
if ( ! function_exists( 'initialize_wpseo_front' ) ) {
|
39 |
+
/**
|
40 |
+
* Wraps frontend class.
|
41 |
+
*
|
42 |
+
* @deprecated 14.0
|
43 |
+
* @codeCoverageIgnore
|
44 |
+
*/
|
45 |
+
function initialize_wpseo_front() {
|
46 |
+
_deprecated_function( __FUNCTION__, 'WPSEO 14.0' );
|
47 |
+
}
|
48 |
+
}
|
inc/wpseo-functions.php
CHANGED
@@ -11,15 +11,6 @@ if ( ! defined( 'WPSEO_VERSION' ) ) {
|
|
11 |
exit();
|
12 |
}
|
13 |
|
14 |
-
if ( ! function_exists( 'initialize_wpseo_front' ) ) {
|
15 |
-
/**
|
16 |
-
* Wraps frontend class.
|
17 |
-
*/
|
18 |
-
function initialize_wpseo_front() {
|
19 |
-
WPSEO_Frontend::get_instance();
|
20 |
-
}
|
21 |
-
}
|
22 |
-
|
23 |
if ( ! function_exists( 'yoast_breadcrumb' ) ) {
|
24 |
/**
|
25 |
* Template tag for breadcrumbs.
|
@@ -195,13 +186,16 @@ add_filter( 'icl_wpml_config_array', 'wpseo_wpml_config' );
|
|
195 |
* Yoast SEO breadcrumb shortcode.
|
196 |
* [wpseo_breadcrumb]
|
197 |
*
|
|
|
|
|
|
|
198 |
* @return string
|
199 |
*/
|
200 |
function wpseo_shortcode_yoast_breadcrumb() {
|
201 |
-
|
202 |
-
}
|
203 |
|
204 |
-
|
|
|
205 |
|
206 |
if ( ! extension_loaded( 'ctype' ) || ! function_exists( 'ctype_digit' ) ) {
|
207 |
/**
|
11 |
exit();
|
12 |
}
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
if ( ! function_exists( 'yoast_breadcrumb' ) ) {
|
15 |
/**
|
16 |
* Template tag for breadcrumbs.
|
186 |
* Yoast SEO breadcrumb shortcode.
|
187 |
* [wpseo_breadcrumb]
|
188 |
*
|
189 |
+
* @deprecated 14.0
|
190 |
+
* @codeCoverageIgnore
|
191 |
+
*
|
192 |
* @return string
|
193 |
*/
|
194 |
function wpseo_shortcode_yoast_breadcrumb() {
|
195 |
+
_deprecated_function( __FUNCTION__, 'WPSEO 14.0' );
|
|
|
196 |
|
197 |
+
return '';
|
198 |
+
}
|
199 |
|
200 |
if ( ! extension_loaded( 'ctype' ) || ! function_exists( 'ctype_digit' ) ) {
|
201 |
/**
|
js/dist/{analysis-1350.js → analysis-1400.js}
RENAMED
File without changes
|
js/dist/{babel-polyfill-1350.js → babel-polyfill-1400.js}
RENAMED
File without changes
|
js/dist/{commons-1350.js → commons-1400.js}
RENAMED
File without changes
|
js/dist/{components-1350.js → components-1400.js}
RENAMED
@@ -1,9 +1,9 @@
|
|
1 |
-
!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=387)}([function(e,t){e.exports=React},function(e,t){e.exports=window.yoast.styledComponents},function(e,t,n){e.exports=n(427)()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.rgba=t.breakpoints=t.colors=void 0;var r=a(n(388)),o=a(n(389)),i=n(390);function a(e){return e&&e.__esModule?e:{default:e}}t.colors=r.default,t.breakpoints=o.default,t.rgba=i.rgba},function(e,t,n){e.exports=function(){"use strict";var e=Array.prototype.slice;function t(e,t){t&&(e.prototype=Object.create(t.prototype)),e.prototype.constructor=e}function n(e){return a(e)?e:H(e)}function r(e){return s(e)?e:V(e)}function o(e){return u(e)?e:G(e)}function i(e){return a(e)&&!l(e)?e:Y(e)}function a(e){return!(!e||!e[f])}function s(e){return!(!e||!e[d])}function u(e){return!(!e||!e[p])}function l(e){return s(e)||u(e)}function c(e){return!(!e||!e[h])}t(r,n),t(o,n),t(i,n),n.isIterable=a,n.isKeyed=s,n.isIndexed=u,n.isAssociative=l,n.isOrdered=c,n.Keyed=r,n.Indexed=o,n.Set=i;var f="@@__IMMUTABLE_ITERABLE__@@",d="@@__IMMUTABLE_KEYED__@@",p="@@__IMMUTABLE_INDEXED__@@",h="@@__IMMUTABLE_ORDERED__@@",g=5,y=1<<g,m=y-1,v={},b={value:!1},_={value:!1};function x(e){return e.value=!1,e}function w(e){e&&(e.value=!0)}function S(){}function C(e,t){t=t||0;for(var n=Math.max(0,e.length-t),r=new Array(n),o=0;o<n;o++)r[o]=e[o+t];return r}function k(e){return void 0===e.size&&(e.size=e.__iterate(E)),e.size}function O(e,t){if("number"!=typeof t){var n=t>>>0;if(""+n!==t||4294967295===n)return NaN;t=n}return t<0?k(e)+t:t}function E(){return!0}function T(e,t,n){return(0===e||void 0!==n&&e<=-n)&&(void 0===t||void 0!==n&&t>=n)}function M(e,t){return j(e,t,0)}function P(e,t){return j(e,t,t)}function j(e,t,n){return void 0===e?n:e<0?Math.max(0,t+e):void 0===t?e:Math.min(t,e)}var A=0,I=1,R=2,D="function"==typeof Symbol&&Symbol.iterator,N="@@iterator",B=D||N;function L(e){this.next=e}function F(e,t,n,r){var o=0===e?t:1===e?n:[t,n];return r?r.value=o:r={value:o,done:!1},r}function z(){return{value:void 0,done:!0}}function q(e){return!!U(e)}function K(e){return e&&"function"==typeof e.next}function W(e){var t=U(e);return t&&t.call(e)}function U(e){var t=e&&(D&&e[D]||e[N]);if("function"==typeof t)return t}function $(e){return e&&"number"==typeof e.length}function H(e){return null===e||void 0===e?ie():a(e)?e.toSeq():function(e){var t=ue(e)||"object"==typeof e&&new te(e);if(!t)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+e);return t}(e)}function V(e){return null===e||void 0===e?ie().toKeyedSeq():a(e)?s(e)?e.toSeq():e.fromEntrySeq():ae(e)}function G(e){return null===e||void 0===e?ie():a(e)?s(e)?e.entrySeq():e.toIndexedSeq():se(e)}function Y(e){return(null===e||void 0===e?ie():a(e)?s(e)?e.entrySeq():e:se(e)).toSetSeq()}L.prototype.toString=function(){return"[Iterator]"},L.KEYS=A,L.VALUES=I,L.ENTRIES=R,L.prototype.inspect=L.prototype.toSource=function(){return this.toString()},L.prototype[B]=function(){return this},t(H,n),H.of=function(){return H(arguments)},H.prototype.toSeq=function(){return this},H.prototype.toString=function(){return this.__toString("Seq {","}")},H.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},H.prototype.__iterate=function(e,t){return le(this,e,t,!0)},H.prototype.__iterator=function(e,t){return ce(this,e,t,!0)},t(V,H),V.prototype.toKeyedSeq=function(){return this},t(G,H),G.of=function(){return G(arguments)},G.prototype.toIndexedSeq=function(){return this},G.prototype.toString=function(){return this.__toString("Seq [","]")},G.prototype.__iterate=function(e,t){return le(this,e,t,!1)},G.prototype.__iterator=function(e,t){return ce(this,e,t,!1)},t(Y,H),Y.of=function(){return Y(arguments)},Y.prototype.toSetSeq=function(){return this},H.isSeq=oe,H.Keyed=V,H.Set=Y,H.Indexed=G;var X,J,Z,Q="@@__IMMUTABLE_SEQ__@@";function ee(e){this._array=e,this.size=e.length}function te(e){var t=Object.keys(e);this._object=e,this._keys=t,this.size=t.length}function ne(e){this._iterable=e,this.size=e.length||e.size}function re(e){this._iterator=e,this._iteratorCache=[]}function oe(e){return!(!e||!e[Q])}function ie(){return X||(X=new ee([]))}function ae(e){var t=Array.isArray(e)?new ee(e).fromEntrySeq():K(e)?new re(e).fromEntrySeq():q(e)?new ne(e).fromEntrySeq():"object"==typeof e?new te(e):void 0;if(!t)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+e);return t}function se(e){var t=ue(e);if(!t)throw new TypeError("Expected Array or iterable object of values: "+e);return t}function ue(e){return $(e)?new ee(e):K(e)?new re(e):q(e)?new ne(e):void 0}function le(e,t,n,r){var o=e._cache;if(o){for(var i=o.length-1,a=0;a<=i;a++){var s=o[n?i-a:a];if(!1===t(s[1],r?s[0]:a,e))return a+1}return a}return e.__iterateUncached(t,n)}function ce(e,t,n,r){var o=e._cache;if(o){var i=o.length-1,a=0;return new L(function(){var e=o[n?i-a:a];return a++>i?{value:void 0,done:!0}:F(t,r?e[0]:a-1,e[1])})}return e.__iteratorUncached(t,n)}function fe(e,t){return t?function e(t,n,r,o){return Array.isArray(n)?t.call(o,r,G(n).map(function(r,o){return e(t,r,o,n)})):pe(n)?t.call(o,r,V(n).map(function(r,o){return e(t,r,o,n)})):n}(t,e,"",{"":e}):de(e)}function de(e){return Array.isArray(e)?G(e).map(de).toList():pe(e)?V(e).map(de).toMap():e}function pe(e){return e&&(e.constructor===Object||void 0===e.constructor)}function he(e,t){if(e===t||e!=e&&t!=t)return!0;if(!e||!t)return!1;if("function"==typeof e.valueOf&&"function"==typeof t.valueOf){if(e=e.valueOf(),t=t.valueOf(),e===t||e!=e&&t!=t)return!0;if(!e||!t)return!1}return!("function"!=typeof e.equals||"function"!=typeof t.equals||!e.equals(t))}function ge(e,t){if(e===t)return!0;if(!a(t)||void 0!==e.size&&void 0!==t.size&&e.size!==t.size||void 0!==e.__hash&&void 0!==t.__hash&&e.__hash!==t.__hash||s(e)!==s(t)||u(e)!==u(t)||c(e)!==c(t))return!1;if(0===e.size&&0===t.size)return!0;var n=!l(e);if(c(e)){var r=e.entries();return t.every(function(e,t){var o=r.next().value;return o&&he(o[1],e)&&(n||he(o[0],t))})&&r.next().done}var o=!1;if(void 0===e.size)if(void 0===t.size)"function"==typeof e.cacheResult&&e.cacheResult();else{o=!0;var i=e;e=t,t=i}var f=!0,d=t.__iterate(function(t,r){if(n?!e.has(t):o?!he(t,e.get(r,v)):!he(e.get(r,v),t))return f=!1,!1});return f&&e.size===d}function ye(e,t){if(!(this instanceof ye))return new ye(e,t);if(this._value=e,this.size=void 0===t?1/0:Math.max(0,t),0===this.size){if(J)return J;J=this}}function me(e,t){if(!e)throw new Error(t)}function ve(e,t,n){if(!(this instanceof ve))return new ve(e,t,n);if(me(0!==n,"Cannot step a Range by 0"),e=e||0,void 0===t&&(t=1/0),n=void 0===n?1:Math.abs(n),t<e&&(n=-n),this._start=e,this._end=t,this._step=n,this.size=Math.max(0,Math.ceil((t-e)/n-1)+1),0===this.size){if(Z)return Z;Z=this}}function be(){throw TypeError("Abstract")}function _e(){}function xe(){}function we(){}H.prototype[Q]=!0,t(ee,G),ee.prototype.get=function(e,t){return this.has(e)?this._array[O(this,e)]:t},ee.prototype.__iterate=function(e,t){for(var n=this._array,r=n.length-1,o=0;o<=r;o++)if(!1===e(n[t?r-o:o],o,this))return o+1;return o},ee.prototype.__iterator=function(e,t){var n=this._array,r=n.length-1,o=0;return new L(function(){return o>r?{value:void 0,done:!0}:F(e,o,n[t?r-o++:o++])})},t(te,V),te.prototype.get=function(e,t){return void 0===t||this.has(e)?this._object[e]:t},te.prototype.has=function(e){return this._object.hasOwnProperty(e)},te.prototype.__iterate=function(e,t){for(var n=this._object,r=this._keys,o=r.length-1,i=0;i<=o;i++){var a=r[t?o-i:i];if(!1===e(n[a],a,this))return i+1}return i},te.prototype.__iterator=function(e,t){var n=this._object,r=this._keys,o=r.length-1,i=0;return new L(function(){var a=r[t?o-i:i];return i++>o?{value:void 0,done:!0}:F(e,a,n[a])})},te.prototype[h]=!0,t(ne,G),ne.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);var n=this._iterable,r=W(n),o=0;if(K(r))for(var i;!(i=r.next()).done&&!1!==e(i.value,o++,this););return o},ne.prototype.__iteratorUncached=function(e,t){if(t)return this.cacheResult().__iterator(e,t);var n=this._iterable,r=W(n);if(!K(r))return new L(z);var o=0;return new L(function(){var t=r.next();return t.done?t:F(e,o++,t.value)})},t(re,G),re.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);for(var n,r=this._iterator,o=this._iteratorCache,i=0;i<o.length;)if(!1===e(o[i],i++,this))return i;for(;!(n=r.next()).done;){var a=n.value;if(o[i]=a,!1===e(a,i++,this))break}return i},re.prototype.__iteratorUncached=function(e,t){if(t)return this.cacheResult().__iterator(e,t);var n=this._iterator,r=this._iteratorCache,o=0;return new L(function(){if(o>=r.length){var t=n.next();if(t.done)return t;r[o]=t.value}return F(e,o,r[o++])})},t(ye,G),ye.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},ye.prototype.get=function(e,t){return this.has(e)?this._value:t},ye.prototype.includes=function(e){return he(this._value,e)},ye.prototype.slice=function(e,t){var n=this.size;return T(e,t,n)?this:new ye(this._value,P(t,n)-M(e,n))},ye.prototype.reverse=function(){return this},ye.prototype.indexOf=function(e){return he(this._value,e)?0:-1},ye.prototype.lastIndexOf=function(e){return he(this._value,e)?this.size:-1},ye.prototype.__iterate=function(e,t){for(var n=0;n<this.size;n++)if(!1===e(this._value,n,this))return n+1;return n},ye.prototype.__iterator=function(e,t){var n=this,r=0;return new L(function(){return r<n.size?F(e,r++,n._value):{value:void 0,done:!0}})},ye.prototype.equals=function(e){return e instanceof ye?he(this._value,e._value):ge(e)},t(ve,G),ve.prototype.toString=function(){return 0===this.size?"Range []":"Range [ "+this._start+"..."+this._end+(this._step>1?" by "+this._step:"")+" ]"},ve.prototype.get=function(e,t){return this.has(e)?this._start+O(this,e)*this._step:t},ve.prototype.includes=function(e){var t=(e-this._start)/this._step;return t>=0&&t<this.size&&t===Math.floor(t)},ve.prototype.slice=function(e,t){return T(e,t,this.size)?this:(e=M(e,this.size),(t=P(t,this.size))<=e?new ve(0,0):new ve(this.get(e,this._end),this.get(t,this._end),this._step))},ve.prototype.indexOf=function(e){var t=e-this._start;if(t%this._step==0){var n=t/this._step;if(n>=0&&n<this.size)return n}return-1},ve.prototype.lastIndexOf=function(e){return this.indexOf(e)},ve.prototype.__iterate=function(e,t){for(var n=this.size-1,r=this._step,o=t?this._start+n*r:this._start,i=0;i<=n;i++){if(!1===e(o,i,this))return i+1;o+=t?-r:r}return i},ve.prototype.__iterator=function(e,t){var n=this.size-1,r=this._step,o=t?this._start+n*r:this._start,i=0;return new L(function(){var a=o;return o+=t?-r:r,i>n?{value:void 0,done:!0}:F(e,i++,a)})},ve.prototype.equals=function(e){return e instanceof ve?this._start===e._start&&this._end===e._end&&this._step===e._step:ge(this,e)},t(be,n),t(_e,be),t(xe,be),t(we,be),be.Keyed=_e,be.Indexed=xe,be.Set=we;var Se="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(e,t){var n=65535&(e|=0),r=65535&(t|=0);return n*r+((e>>>16)*r+n*(t>>>16)<<16>>>0)|0};function Ce(e){return e>>>1&1073741824|3221225471&e}function ke(e){if(!1===e||null===e||void 0===e)return 0;if("function"==typeof e.valueOf&&(!1===(e=e.valueOf())||null===e||void 0===e))return 0;if(!0===e)return 1;var t=typeof e;if("number"===t){var n=0|e;for(n!==e&&(n^=4294967295*e);e>4294967295;)n^=e/=4294967295;return Ce(n)}if("string"===t)return e.length>Ie?function(e){var t=Ne[e];return void 0===t&&(t=Oe(e),De===Re&&(De=0,Ne={}),De++,Ne[e]=t),t}(e):Oe(e);if("function"==typeof e.hashCode)return e.hashCode();if("object"===t)return function(e){var t;if(Pe&&void 0!==(t=Ee.get(e)))return t;if(void 0!==(t=e[Ae]))return t;if(!Me){if(void 0!==(t=e.propertyIsEnumerable&&e.propertyIsEnumerable[Ae]))return t;if(void 0!==(t=function(e){if(e&&e.nodeType>0)switch(e.nodeType){case 1:return e.uniqueID;case 9:return e.documentElement&&e.documentElement.uniqueID}}(e)))return t}if(t=++je,1073741824&je&&(je=0),Pe)Ee.set(e,t);else{if(void 0!==Te&&!1===Te(e))throw new Error("Non-extensible objects are not allowed as keys.");if(Me)Object.defineProperty(e,Ae,{enumerable:!1,configurable:!1,writable:!1,value:t});else if(void 0!==e.propertyIsEnumerable&&e.propertyIsEnumerable===e.constructor.prototype.propertyIsEnumerable)e.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},e.propertyIsEnumerable[Ae]=t;else{if(void 0===e.nodeType)throw new Error("Unable to set a non-enumerable property on object.");e[Ae]=t}}return t}(e);if("function"==typeof e.toString)return Oe(e.toString());throw new Error("Value type "+t+" cannot be hashed.")}function Oe(e){for(var t=0,n=0;n<e.length;n++)t=31*t+e.charCodeAt(n)|0;return Ce(t)}var Ee,Te=Object.isExtensible,Me=function(){try{return Object.defineProperty({},"@",{}),!0}catch(e){return!1}}(),Pe="function"==typeof WeakMap;Pe&&(Ee=new WeakMap);var je=0,Ae="__immutablehash__";"function"==typeof Symbol&&(Ae=Symbol(Ae));var Ie=16,Re=255,De=0,Ne={};function Be(e){me(e!==1/0,"Cannot perform this action with an infinite size.")}function Le(e){return null===e||void 0===e?Ze():Fe(e)&&!c(e)?e:Ze().withMutations(function(t){var n=r(e);Be(n.size),n.forEach(function(e,n){return t.set(n,e)})})}function Fe(e){return!(!e||!e[qe])}t(Le,_e),Le.prototype.toString=function(){return this.__toString("Map {","}")},Le.prototype.get=function(e,t){return this._root?this._root.get(0,void 0,e,t):t},Le.prototype.set=function(e,t){return Qe(this,e,t)},Le.prototype.setIn=function(e,t){return this.updateIn(e,v,function(){return t})},Le.prototype.remove=function(e){return Qe(this,e,v)},Le.prototype.deleteIn=function(e){return this.updateIn(e,function(){return v})},Le.prototype.update=function(e,t,n){return 1===arguments.length?e(this):this.updateIn([e],t,n)},Le.prototype.updateIn=function(e,t,n){n||(n=t,t=void 0);var r=function e(t,n,r,o){var i=t===v,a=n.next();if(a.done){var s=i?r:t,u=o(s);return u===s?t:u}me(i||t&&t.set,"invalid keyPath");var l=a.value,c=i?v:t.get(l,v),f=e(c,n,r,o);return f===c?t:f===v?t.remove(l):(i?Ze():t).set(l,f)}(this,nn(e),t,n);return r===v?void 0:r},Le.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):Ze()},Le.prototype.merge=function(){return rt(this,void 0,arguments)},Le.prototype.mergeWith=function(t){var n=e.call(arguments,1);return rt(this,t,n)},Le.prototype.mergeIn=function(t){var n=e.call(arguments,1);return this.updateIn(t,Ze(),function(e){return"function"==typeof e.merge?e.merge.apply(e,n):n[n.length-1]})},Le.prototype.mergeDeep=function(){return rt(this,ot,arguments)},Le.prototype.mergeDeepWith=function(t){var n=e.call(arguments,1);return rt(this,it(t),n)},Le.prototype.mergeDeepIn=function(t){var n=e.call(arguments,1);return this.updateIn(t,Ze(),function(e){return"function"==typeof e.mergeDeep?e.mergeDeep.apply(e,n):n[n.length-1]})},Le.prototype.sort=function(e){return Mt($t(this,e))},Le.prototype.sortBy=function(e,t){return Mt($t(this,t,e))},Le.prototype.withMutations=function(e){var t=this.asMutable();return e(t),t.wasAltered()?t.__ensureOwner(this.__ownerID):this},Le.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new S)},Le.prototype.asImmutable=function(){return this.__ensureOwner()},Le.prototype.wasAltered=function(){return this.__altered},Le.prototype.__iterator=function(e,t){return new Ge(this,e,t)},Le.prototype.__iterate=function(e,t){var n=this,r=0;return this._root&&this._root.iterate(function(t){return r++,e(t[1],t[0],n)},t),r},Le.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?Je(this.size,this._root,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},Le.isMap=Fe;var ze,qe="@@__IMMUTABLE_MAP__@@",Ke=Le.prototype;function We(e,t){this.ownerID=e,this.entries=t}function Ue(e,t,n){this.ownerID=e,this.bitmap=t,this.nodes=n}function $e(e,t,n){this.ownerID=e,this.count=t,this.nodes=n}function He(e,t,n){this.ownerID=e,this.keyHash=t,this.entries=n}function Ve(e,t,n){this.ownerID=e,this.keyHash=t,this.entry=n}function Ge(e,t,n){this._type=t,this._reverse=n,this._stack=e._root&&Xe(e._root)}function Ye(e,t){return F(e,t[0],t[1])}function Xe(e,t){return{node:e,index:0,__prev:t}}function Je(e,t,n,r){var o=Object.create(Ke);return o.size=e,o._root=t,o.__ownerID=n,o.__hash=r,o.__altered=!1,o}function Ze(){return ze||(ze=Je(0))}function Qe(e,t,n){var r,o;if(e._root){var i=x(b),a=x(_);if(r=et(e._root,e.__ownerID,0,void 0,t,n,i,a),!a.value)return e;o=e.size+(i.value?n===v?-1:1:0)}else{if(n===v)return e;o=1,r=new We(e.__ownerID,[[t,n]])}return e.__ownerID?(e.size=o,e._root=r,e.__hash=void 0,e.__altered=!0,e):r?Je(o,r):Ze()}function et(e,t,n,r,o,i,a,s){return e?e.update(t,n,r,o,i,a,s):i===v?e:(w(s),w(a),new Ve(t,r,[o,i]))}function tt(e){return e.constructor===Ve||e.constructor===He}function nt(e,t,n,r,o){if(e.keyHash===r)return new He(t,r,[e.entry,o]);var i,a=(0===n?e.keyHash:e.keyHash>>>n)&m,s=(0===n?r:r>>>n)&m,u=a===s?[nt(e,t,n+g,r,o)]:(i=new Ve(t,r,o),a<s?[e,i]:[i,e]);return new Ue(t,1<<a|1<<s,u)}function rt(e,t,n){for(var o=[],i=0;i<n.length;i++){var s=n[i],u=r(s);a(s)||(u=u.map(function(e){return fe(e)})),o.push(u)}return at(e,t,o)}function ot(e,t,n){return e&&e.mergeDeep&&a(t)?e.mergeDeep(t):he(e,t)?e:t}function it(e){return function(t,n,r){if(t&&t.mergeDeepWith&&a(n))return t.mergeDeepWith(e,n);var o=e(t,n,r);return he(t,o)?t:o}}function at(e,t,n){return 0===(n=n.filter(function(e){return 0!==e.size})).length?e:0!==e.size||e.__ownerID||1!==n.length?e.withMutations(function(e){for(var r=t?function(n,r){e.update(r,v,function(e){return e===v?n:t(e,n,r)})}:function(t,n){e.set(n,t)},o=0;o<n.length;o++)n[o].forEach(r)}):e.constructor(n[0])}function st(e){return e=(e=(858993459&(e-=e>>1&1431655765))+(e>>2&858993459))+(e>>4)&252645135,e+=e>>8,127&(e+=e>>16)}function ut(e,t,n,r){var o=r?e:C(e);return o[t]=n,o}Ke[qe]=!0,Ke.delete=Ke.remove,Ke.removeIn=Ke.deleteIn,We.prototype.get=function(e,t,n,r){for(var o=this.entries,i=0,a=o.length;i<a;i++)if(he(n,o[i][0]))return o[i][1];return r},We.prototype.update=function(e,t,n,r,o,i,a){for(var s=o===v,u=this.entries,l=0,c=u.length;l<c&&!he(r,u[l][0]);l++);var f=l<c;if(f?u[l][1]===o:s)return this;if(w(a),(s||!f)&&w(i),!s||1!==u.length){if(!f&&!s&&u.length>=lt)return function(e,t,n,r){e||(e=new S);for(var o=new Ve(e,ke(n),[n,r]),i=0;i<t.length;i++){var a=t[i];o=o.update(e,0,void 0,a[0],a[1])}return o}(e,u,r,o);var d=e&&e===this.ownerID,p=d?u:C(u);return f?s?l===c-1?p.pop():p[l]=p.pop():p[l]=[r,o]:p.push([r,o]),d?(this.entries=p,this):new We(e,p)}},Ue.prototype.get=function(e,t,n,r){void 0===t&&(t=ke(n));var o=1<<((0===e?t:t>>>e)&m),i=this.bitmap;return 0==(i&o)?r:this.nodes[st(i&o-1)].get(e+g,t,n,r)},Ue.prototype.update=function(e,t,n,r,o,i,a){void 0===n&&(n=ke(r));var s=(0===t?n:n>>>t)&m,u=1<<s,l=this.bitmap,c=0!=(l&u);if(!c&&o===v)return this;var f=st(l&u-1),d=this.nodes,p=c?d[f]:void 0,h=et(p,e,t+g,n,r,o,i,a);if(h===p)return this;if(!c&&h&&d.length>=ct)return function(e,t,n,r,o){for(var i=0,a=new Array(y),s=0;0!==n;s++,n>>>=1)a[s]=1&n?t[i++]:void 0;return a[r]=o,new $e(e,i+1,a)}(e,d,l,s,h);if(c&&!h&&2===d.length&&tt(d[1^f]))return d[1^f];if(c&&h&&1===d.length&&tt(h))return h;var b=e&&e===this.ownerID,_=c?h?l:l^u:l|u,x=c?h?ut(d,f,h,b):function(e,t,n){var r=e.length-1;if(n&&t===r)return e.pop(),e;for(var o=new Array(r),i=0,a=0;a<r;a++)a===t&&(i=1),o[a]=e[a+i];return o}(d,f,b):function(e,t,n,r){var o=e.length+1;if(r&&t+1===o)return e[t]=n,e;for(var i=new Array(o),a=0,s=0;s<o;s++)s===t?(i[s]=n,a=-1):i[s]=e[s+a];return i}(d,f,h,b);return b?(this.bitmap=_,this.nodes=x,this):new Ue(e,_,x)},$e.prototype.get=function(e,t,n,r){void 0===t&&(t=ke(n));var o=(0===e?t:t>>>e)&m,i=this.nodes[o];return i?i.get(e+g,t,n,r):r},$e.prototype.update=function(e,t,n,r,o,i,a){void 0===n&&(n=ke(r));var s=(0===t?n:n>>>t)&m,u=o===v,l=this.nodes,c=l[s];if(u&&!c)return this;var f=et(c,e,t+g,n,r,o,i,a);if(f===c)return this;var d=this.count;if(c){if(!f&&--d<ft)return function(e,t,n,r){for(var o=0,i=0,a=new Array(n),s=0,u=1,l=t.length;s<l;s++,u<<=1){var c=t[s];void 0!==c&&s!==r&&(o|=u,a[i++]=c)}return new Ue(e,o,a)}(e,l,d,s)}else d++;var p=e&&e===this.ownerID,h=ut(l,s,f,p);return p?(this.count=d,this.nodes=h,this):new $e(e,d,h)},He.prototype.get=function(e,t,n,r){for(var o=this.entries,i=0,a=o.length;i<a;i++)if(he(n,o[i][0]))return o[i][1];return r},He.prototype.update=function(e,t,n,r,o,i,a){void 0===n&&(n=ke(r));var s=o===v;if(n!==this.keyHash)return s?this:(w(a),w(i),nt(this,e,t,n,[r,o]));for(var u=this.entries,l=0,c=u.length;l<c&&!he(r,u[l][0]);l++);var f=l<c;if(f?u[l][1]===o:s)return this;if(w(a),(s||!f)&&w(i),s&&2===c)return new Ve(e,this.keyHash,u[1^l]);var d=e&&e===this.ownerID,p=d?u:C(u);return f?s?l===c-1?p.pop():p[l]=p.pop():p[l]=[r,o]:p.push([r,o]),d?(this.entries=p,this):new He(e,this.keyHash,p)},Ve.prototype.get=function(e,t,n,r){return he(n,this.entry[0])?this.entry[1]:r},Ve.prototype.update=function(e,t,n,r,o,i,a){var s=o===v,u=he(r,this.entry[0]);return(u?o===this.entry[1]:s)?this:(w(a),s?void w(i):u?e&&e===this.ownerID?(this.entry[1]=o,this):new Ve(e,this.keyHash,[r,o]):(w(i),nt(this,e,t,ke(r),[r,o])))},We.prototype.iterate=He.prototype.iterate=function(e,t){for(var n=this.entries,r=0,o=n.length-1;r<=o;r++)if(!1===e(n[t?o-r:r]))return!1},Ue.prototype.iterate=$e.prototype.iterate=function(e,t){for(var n=this.nodes,r=0,o=n.length-1;r<=o;r++){var i=n[t?o-r:r];if(i&&!1===i.iterate(e,t))return!1}},Ve.prototype.iterate=function(e,t){return e(this.entry)},t(Ge,L),Ge.prototype.next=function(){for(var e=this._type,t=this._stack;t;){var n,r=t.node,o=t.index++;if(r.entry){if(0===o)return Ye(e,r.entry)}else if(r.entries){if(n=r.entries.length-1,o<=n)return Ye(e,r.entries[this._reverse?n-o:o])}else if(n=r.nodes.length-1,o<=n){var i=r.nodes[this._reverse?n-o:o];if(i){if(i.entry)return Ye(e,i.entry);t=this._stack=Xe(i,t)}continue}t=this._stack=this._stack.__prev}return{value:void 0,done:!0}};var lt=y/4,ct=y/2,ft=y/4;function dt(e){var t=wt();if(null===e||void 0===e)return t;if(pt(e))return e;var n=o(e),r=n.size;return 0===r?t:(Be(r),r>0&&r<y?xt(0,r,g,null,new yt(n.toArray())):t.withMutations(function(e){e.setSize(r),n.forEach(function(t,n){return e.set(n,t)})}))}function pt(e){return!(!e||!e[ht])}t(dt,xe),dt.of=function(){return this(arguments)},dt.prototype.toString=function(){return this.__toString("List [","]")},dt.prototype.get=function(e,t){if((e=O(this,e))>=0&&e<this.size){var n=kt(this,e+=this._origin);return n&&n.array[e&m]}return t},dt.prototype.set=function(e,t){return function(e,t,n){if((t=O(e,t))!=t)return e;if(t>=e.size||t<0)return e.withMutations(function(e){t<0?Ot(e,t).set(0,n):Ot(e,0,t+1).set(t,n)});t+=e._origin;var r=e._tail,o=e._root,i=x(_);return t>=Tt(e._capacity)?r=St(r,e.__ownerID,0,t,n,i):o=St(o,e.__ownerID,e._level,t,n,i),i.value?e.__ownerID?(e._root=o,e._tail=r,e.__hash=void 0,e.__altered=!0,e):xt(e._origin,e._capacity,e._level,o,r):e}(this,e,t)},dt.prototype.remove=function(e){return this.has(e)?0===e?this.shift():e===this.size-1?this.pop():this.splice(e,1):this},dt.prototype.insert=function(e,t){return this.splice(e,0,t)},dt.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=g,this._root=this._tail=null,this.__hash=void 0,this.__altered=!0,this):wt()},dt.prototype.push=function(){var e=arguments,t=this.size;return this.withMutations(function(n){Ot(n,0,t+e.length);for(var r=0;r<e.length;r++)n.set(t+r,e[r])})},dt.prototype.pop=function(){return Ot(this,0,-1)},dt.prototype.unshift=function(){var e=arguments;return this.withMutations(function(t){Ot(t,-e.length);for(var n=0;n<e.length;n++)t.set(n,e[n])})},dt.prototype.shift=function(){return Ot(this,1)},dt.prototype.merge=function(){return Et(this,void 0,arguments)},dt.prototype.mergeWith=function(t){var n=e.call(arguments,1);return Et(this,t,n)},dt.prototype.mergeDeep=function(){return Et(this,ot,arguments)},dt.prototype.mergeDeepWith=function(t){var n=e.call(arguments,1);return Et(this,it(t),n)},dt.prototype.setSize=function(e){return Ot(this,0,e)},dt.prototype.slice=function(e,t){var n=this.size;return T(e,t,n)?this:Ot(this,M(e,n),P(t,n))},dt.prototype.__iterator=function(e,t){var n=0,r=_t(this,t);return new L(function(){var t=r();return t===bt?{value:void 0,done:!0}:F(e,n++,t)})},dt.prototype.__iterate=function(e,t){for(var n,r=0,o=_t(this,t);(n=o())!==bt&&!1!==e(n,r++,this););return r},dt.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?xt(this._origin,this._capacity,this._level,this._root,this._tail,e,this.__hash):(this.__ownerID=e,this)},dt.isList=pt;var ht="@@__IMMUTABLE_LIST__@@",gt=dt.prototype;function yt(e,t){this.array=e,this.ownerID=t}gt[ht]=!0,gt.delete=gt.remove,gt.setIn=Ke.setIn,gt.deleteIn=gt.removeIn=Ke.removeIn,gt.update=Ke.update,gt.updateIn=Ke.updateIn,gt.mergeIn=Ke.mergeIn,gt.mergeDeepIn=Ke.mergeDeepIn,gt.withMutations=Ke.withMutations,gt.asMutable=Ke.asMutable,gt.asImmutable=Ke.asImmutable,gt.wasAltered=Ke.wasAltered,yt.prototype.removeBefore=function(e,t,n){if(n===t?1<<t:0===this.array.length)return this;var r=n>>>t&m;if(r>=this.array.length)return new yt([],e);var o,i=0===r;if(t>0){var a=this.array[r];if((o=a&&a.removeBefore(e,t-g,n))===a&&i)return this}if(i&&!o)return this;var s=Ct(this,e);if(!i)for(var u=0;u<r;u++)s.array[u]=void 0;return o&&(s.array[r]=o),s},yt.prototype.removeAfter=function(e,t,n){if(n===(t?1<<t:0)||0===this.array.length)return this;var r,o=n-1>>>t&m;if(o>=this.array.length)return this;if(t>0){var i=this.array[o];if((r=i&&i.removeAfter(e,t-g,n))===i&&o===this.array.length-1)return this}var a=Ct(this,e);return a.array.splice(o+1),r&&(a.array[o]=r),a};var mt,vt,bt={};function _t(e,t){var n=e._origin,r=e._capacity,o=Tt(r),i=e._tail;return a(e._root,e._level,0);function a(e,s,u){return 0===s?function(e,a){var s=a===o?i&&i.array:e&&e.array,u=a>n?0:n-a,l=r-a;return l>y&&(l=y),function(){if(u===l)return bt;var e=t?--l:u++;return s&&s[e]}}(e,u):function(e,o,i){var s,u=e&&e.array,l=i>n?0:n-i>>o,c=1+(r-i>>o);return c>y&&(c=y),function(){for(;;){if(s){var e=s();if(e!==bt)return e;s=null}if(l===c)return bt;var n=t?--c:l++;s=a(u&&u[n],o-g,i+(n<<o))}}}(e,s,u)}}function xt(e,t,n,r,o,i,a){var s=Object.create(gt);return s.size=t-e,s._origin=e,s._capacity=t,s._level=n,s._root=r,s._tail=o,s.__ownerID=i,s.__hash=a,s.__altered=!1,s}function wt(){return mt||(mt=xt(0,0,g))}function St(e,t,n,r,o,i){var a,s=r>>>n&m,u=e&&s<e.array.length;if(!u&&void 0===o)return e;if(n>0){var l=e&&e.array[s],c=St(l,t,n-g,r,o,i);return c===l?e:((a=Ct(e,t)).array[s]=c,a)}return u&&e.array[s]===o?e:(w(i),a=Ct(e,t),void 0===o&&s===a.array.length-1?a.array.pop():a.array[s]=o,a)}function Ct(e,t){return t&&e&&t===e.ownerID?e:new yt(e?e.array.slice():[],t)}function kt(e,t){if(t>=Tt(e._capacity))return e._tail;if(t<1<<e._level+g){for(var n=e._root,r=e._level;n&&r>0;)n=n.array[t>>>r&m],r-=g;return n}}function Ot(e,t,n){void 0!==t&&(t|=0),void 0!==n&&(n|=0);var r=e.__ownerID||new S,o=e._origin,i=e._capacity,a=o+t,s=void 0===n?i:n<0?i+n:o+n;if(a===o&&s===i)return e;if(a>=s)return e.clear();for(var u=e._level,l=e._root,c=0;a+c<0;)l=new yt(l&&l.array.length?[void 0,l]:[],r),c+=1<<(u+=g);c&&(a+=c,o+=c,s+=c,i+=c);for(var f=Tt(i),d=Tt(s);d>=1<<u+g;)l=new yt(l&&l.array.length?[l]:[],r),u+=g;var p=e._tail,h=d<f?kt(e,s-1):d>f?new yt([],r):p;if(p&&d>f&&a<i&&p.array.length){for(var y=l=Ct(l,r),v=u;v>g;v-=g){var b=f>>>v&m;y=y.array[b]=Ct(y.array[b],r)}y.array[f>>>g&m]=p}if(s<i&&(h=h&&h.removeAfter(r,0,s)),a>=d)a-=d,s-=d,u=g,l=null,h=h&&h.removeBefore(r,0,a);else if(a>o||d<f){for(c=0;l;){var _=a>>>u&m;if(_!==d>>>u&m)break;_&&(c+=(1<<u)*_),u-=g,l=l.array[_]}l&&a>o&&(l=l.removeBefore(r,u,a-c)),l&&d<f&&(l=l.removeAfter(r,u,d-c)),c&&(a-=c,s-=c)}return e.__ownerID?(e.size=s-a,e._origin=a,e._capacity=s,e._level=u,e._root=l,e._tail=h,e.__hash=void 0,e.__altered=!0,e):xt(a,s,u,l,h)}function Et(e,t,n){for(var r=[],i=0,s=0;s<n.length;s++){var u=n[s],l=o(u);l.size>i&&(i=l.size),a(u)||(l=l.map(function(e){return fe(e)})),r.push(l)}return i>e.size&&(e=e.setSize(i)),at(e,t,r)}function Tt(e){return e<y?0:e-1>>>g<<g}function Mt(e){return null===e||void 0===e?At():Pt(e)?e:At().withMutations(function(t){var n=r(e);Be(n.size),n.forEach(function(e,n){return t.set(n,e)})})}function Pt(e){return Fe(e)&&c(e)}function jt(e,t,n,r){var o=Object.create(Mt.prototype);return o.size=e?e.size:0,o._map=e,o._list=t,o.__ownerID=n,o.__hash=r,o}function At(){return vt||(vt=jt(Ze(),wt()))}function It(e,t,n){var r,o,i=e._map,a=e._list,s=i.get(t),u=void 0!==s;if(n===v){if(!u)return e;a.size>=y&&a.size>=2*i.size?(o=a.filter(function(e,t){return void 0!==e&&s!==t}),r=o.toKeyedSeq().map(function(e){return e[0]}).flip().toMap(),e.__ownerID&&(r.__ownerID=o.__ownerID=e.__ownerID)):(r=i.remove(t),o=s===a.size-1?a.pop():a.set(s,void 0))}else if(u){if(n===a.get(s)[1])return e;r=i,o=a.set(s,[t,n])}else r=i.set(t,a.size),o=a.set(a.size,[t,n]);return e.__ownerID?(e.size=r.size,e._map=r,e._list=o,e.__hash=void 0,e):jt(r,o)}function Rt(e,t){this._iter=e,this._useKeys=t,this.size=e.size}function Dt(e){this._iter=e,this.size=e.size}function Nt(e){this._iter=e,this.size=e.size}function Bt(e){this._iter=e,this.size=e.size}function Lt(e){var t=Qt(e);return t._iter=e,t.size=e.size,t.flip=function(){return e},t.reverse=function(){var t=e.reverse.apply(this);return t.flip=function(){return e.reverse()},t},t.has=function(t){return e.includes(t)},t.includes=function(t){return e.has(t)},t.cacheResult=en,t.__iterateUncached=function(t,n){var r=this;return e.__iterate(function(e,n){return!1!==t(n,e,r)},n)},t.__iteratorUncached=function(t,n){if(t===R){var r=e.__iterator(t,n);return new L(function(){var e=r.next();if(!e.done){var t=e.value[0];e.value[0]=e.value[1],e.value[1]=t}return e})}return e.__iterator(t===I?A:I,n)},t}function Ft(e,t,n){var r=Qt(e);return r.size=e.size,r.has=function(t){return e.has(t)},r.get=function(r,o){var i=e.get(r,v);return i===v?o:t.call(n,i,r,e)},r.__iterateUncached=function(r,o){var i=this;return e.__iterate(function(e,o,a){return!1!==r(t.call(n,e,o,a),o,i)},o)},r.__iteratorUncached=function(r,o){var i=e.__iterator(R,o);return new L(function(){var o=i.next();if(o.done)return o;var a=o.value,s=a[0];return F(r,s,t.call(n,a[1],s,e),o)})},r}function zt(e,t){var n=Qt(e);return n._iter=e,n.size=e.size,n.reverse=function(){return e},e.flip&&(n.flip=function(){var t=Lt(e);return t.reverse=function(){return e.flip()},t}),n.get=function(n,r){return e.get(t?n:-1-n,r)},n.has=function(n){return e.has(t?n:-1-n)},n.includes=function(t){return e.includes(t)},n.cacheResult=en,n.__iterate=function(t,n){var r=this;return e.__iterate(function(e,n){return t(e,n,r)},!n)},n.__iterator=function(t,n){return e.__iterator(t,!n)},n}function qt(e,t,n,r){var o=Qt(e);return r&&(o.has=function(r){var o=e.get(r,v);return o!==v&&!!t.call(n,o,r,e)},o.get=function(r,o){var i=e.get(r,v);return i!==v&&t.call(n,i,r,e)?i:o}),o.__iterateUncached=function(o,i){var a=this,s=0;return e.__iterate(function(e,i,u){if(t.call(n,e,i,u))return s++,o(e,r?i:s-1,a)},i),s},o.__iteratorUncached=function(o,i){var a=e.__iterator(R,i),s=0;return new L(function(){for(;;){var i=a.next();if(i.done)return i;var u=i.value,l=u[0],c=u[1];if(t.call(n,c,l,e))return F(o,r?l:s++,c,i)}})},o}function Kt(e,t,n,r){var o=e.size;if(void 0!==t&&(t|=0),void 0!==n&&(n|=0),T(t,n,o))return e;var i=M(t,o),a=P(n,o);if(i!=i||a!=a)return Kt(e.toSeq().cacheResult(),t,n,r);var s,u=a-i;u==u&&(s=u<0?0:u);var l=Qt(e);return l.size=0===s?s:e.size&&s||void 0,!r&&oe(e)&&s>=0&&(l.get=function(t,n){return(t=O(this,t))>=0&&t<s?e.get(t+i,n):n}),l.__iterateUncached=function(t,n){var o=this;if(0===s)return 0;if(n)return this.cacheResult().__iterate(t,n);var a=0,u=!0,l=0;return e.__iterate(function(e,n){if(!u||!(u=a++<i))return l++,!1!==t(e,r?n:l-1,o)&&l!==s}),l},l.__iteratorUncached=function(t,n){if(0!==s&&n)return this.cacheResult().__iterator(t,n);var o=0!==s&&e.__iterator(t,n),a=0,u=0;return new L(function(){for(;a++<i;)o.next();if(++u>s)return{value:void 0,done:!0};var e=o.next();return r||t===I?e:F(t,u-1,t===A?void 0:e.value[1],e)})},l}function Wt(e,t,n,r){var o=Qt(e);return o.__iterateUncached=function(o,i){var a=this;if(i)return this.cacheResult().__iterate(o,i);var s=!0,u=0;return e.__iterate(function(e,i,l){if(!s||!(s=t.call(n,e,i,l)))return u++,o(e,r?i:u-1,a)}),u},o.__iteratorUncached=function(o,i){var a=this;if(i)return this.cacheResult().__iterator(o,i);var s=e.__iterator(R,i),u=!0,l=0;return new L(function(){var e,i,c;do{if((e=s.next()).done)return r||o===I?e:F(o,l++,o===A?void 0:e.value[1],e);var f=e.value;i=f[0],c=f[1],u&&(u=t.call(n,c,i,a))}while(u);return o===R?e:F(o,i,c,e)})},o}function Ut(e,t,n){var r=Qt(e);return r.__iterateUncached=function(r,o){var i=0,s=!1;return function e(u,l){var c=this;u.__iterate(function(o,u){return(!t||l<t)&&a(o)?e(o,l+1):!1===r(o,n?u:i++,c)&&(s=!0),!s},o)}(e,0),i},r.__iteratorUncached=function(r,o){var i=e.__iterator(r,o),s=[],u=0;return new L(function(){for(;i;){var e=i.next();if(!1===e.done){var l=e.value;if(r===R&&(l=l[1]),t&&!(s.length<t)||!a(l))return n?e:F(r,u++,l,e);s.push(i),i=l.__iterator(r,o)}else i=s.pop()}return{value:void 0,done:!0}})},r}function $t(e,t,n){t||(t=tn);var r=s(e),o=0,i=e.toSeq().map(function(t,r){return[r,t,o++,n?n(t,r,e):t]}).toArray();return i.sort(function(e,n){return t(e[3],n[3])||e[2]-n[2]}).forEach(r?function(e,t){i[t].length=2}:function(e,t){i[t]=e[1]}),r?V(i):u(e)?G(i):Y(i)}function Ht(e,t,n){if(t||(t=tn),n){var r=e.toSeq().map(function(t,r){return[t,n(t,r,e)]}).reduce(function(e,n){return Vt(t,e[1],n[1])?n:e});return r&&r[0]}return e.reduce(function(e,n){return Vt(t,e,n)?n:e})}function Vt(e,t,n){var r=e(n,t);return 0===r&&n!==t&&(void 0===n||null===n||n!=n)||r>0}function Gt(e,t,r){var o=Qt(e);return o.size=new ee(r).map(function(e){return e.size}).min(),o.__iterate=function(e,t){for(var n,r=this.__iterator(I,t),o=0;!(n=r.next()).done&&!1!==e(n.value,o++,this););return o},o.__iteratorUncached=function(e,o){var i=r.map(function(e){return e=n(e),W(o?e.reverse():e)}),a=0,s=!1;return new L(function(){var n;return s||(n=i.map(function(e){return e.next()}),s=n.some(function(e){return e.done})),s?{value:void 0,done:!0}:F(e,a++,t.apply(null,n.map(function(e){return e.value})))})},o}function Yt(e,t){return oe(e)?t:e.constructor(t)}function Xt(e){if(e!==Object(e))throw new TypeError("Expected [K, V] tuple: "+e)}function Jt(e){return Be(e.size),k(e)}function Zt(e){return s(e)?r:u(e)?o:i}function Qt(e){return Object.create((s(e)?V:u(e)?G:Y).prototype)}function en(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):H.prototype.cacheResult.call(this)}function tn(e,t){return e>t?1:e<t?-1:0}function nn(e){var t=W(e);if(!t){if(!$(e))throw new TypeError("Expected iterable or array-like: "+e);t=W(n(e))}return t}function rn(e,t){var n,r=function(i){if(i instanceof r)return i;if(!(this instanceof r))return new r(i);if(!n){n=!0;var a=Object.keys(e);!function(e,t){try{t.forEach(function(e,t){Object.defineProperty(e,t,{get:function(){return this.get(t)},set:function(e){me(this.__ownerID,"Cannot set on an immutable record."),this.set(t,e)}})}.bind(void 0,e))}catch(e){}}(o,a),o.size=a.length,o._name=t,o._keys=a,o._defaultValues=e}this._map=Le(i)},o=r.prototype=Object.create(on);return o.constructor=r,r}t(Mt,Le),Mt.of=function(){return this(arguments)},Mt.prototype.toString=function(){return this.__toString("OrderedMap {","}")},Mt.prototype.get=function(e,t){var n=this._map.get(e);return void 0!==n?this._list.get(n)[1]:t},Mt.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):At()},Mt.prototype.set=function(e,t){return It(this,e,t)},Mt.prototype.remove=function(e){return It(this,e,v)},Mt.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},Mt.prototype.__iterate=function(e,t){var n=this;return this._list.__iterate(function(t){return t&&e(t[1],t[0],n)},t)},Mt.prototype.__iterator=function(e,t){return this._list.fromEntrySeq().__iterator(e,t)},Mt.prototype.__ensureOwner=function(e){if(e===this.__ownerID)return this;var t=this._map.__ensureOwner(e),n=this._list.__ensureOwner(e);return e?jt(t,n,e,this.__hash):(this.__ownerID=e,this._map=t,this._list=n,this)},Mt.isOrderedMap=Pt,Mt.prototype[h]=!0,Mt.prototype.delete=Mt.prototype.remove,t(Rt,V),Rt.prototype.get=function(e,t){return this._iter.get(e,t)},Rt.prototype.has=function(e){return this._iter.has(e)},Rt.prototype.valueSeq=function(){return this._iter.valueSeq()},Rt.prototype.reverse=function(){var e=this,t=zt(this,!0);return this._useKeys||(t.valueSeq=function(){return e._iter.toSeq().reverse()}),t},Rt.prototype.map=function(e,t){var n=this,r=Ft(this,e,t);return this._useKeys||(r.valueSeq=function(){return n._iter.toSeq().map(e,t)}),r},Rt.prototype.__iterate=function(e,t){var n,r=this;return this._iter.__iterate(this._useKeys?function(t,n){return e(t,n,r)}:(n=t?Jt(this):0,function(o){return e(o,t?--n:n++,r)}),t)},Rt.prototype.__iterator=function(e,t){if(this._useKeys)return this._iter.__iterator(e,t);var n=this._iter.__iterator(I,t),r=t?Jt(this):0;return new L(function(){var o=n.next();return o.done?o:F(e,t?--r:r++,o.value,o)})},Rt.prototype[h]=!0,t(Dt,G),Dt.prototype.includes=function(e){return this._iter.includes(e)},Dt.prototype.__iterate=function(e,t){var n=this,r=0;return this._iter.__iterate(function(t){return e(t,r++,n)},t)},Dt.prototype.__iterator=function(e,t){var n=this._iter.__iterator(I,t),r=0;return new L(function(){var t=n.next();return t.done?t:F(e,r++,t.value,t)})},t(Nt,Y),Nt.prototype.has=function(e){return this._iter.includes(e)},Nt.prototype.__iterate=function(e,t){var n=this;return this._iter.__iterate(function(t){return e(t,t,n)},t)},Nt.prototype.__iterator=function(e,t){var n=this._iter.__iterator(I,t);return new L(function(){var t=n.next();return t.done?t:F(e,t.value,t.value,t)})},t(Bt,V),Bt.prototype.entrySeq=function(){return this._iter.toSeq()},Bt.prototype.__iterate=function(e,t){var n=this;return this._iter.__iterate(function(t){if(t){Xt(t);var r=a(t);return e(r?t.get(1):t[1],r?t.get(0):t[0],n)}},t)},Bt.prototype.__iterator=function(e,t){var n=this._iter.__iterator(I,t);return new L(function(){for(;;){var t=n.next();if(t.done)return t;var r=t.value;if(r){Xt(r);var o=a(r);return F(e,o?r.get(0):r[0],o?r.get(1):r[1],t)}}})},Dt.prototype.cacheResult=Rt.prototype.cacheResult=Nt.prototype.cacheResult=Bt.prototype.cacheResult=en,t(rn,_e),rn.prototype.toString=function(){return this.__toString(sn(this)+" {","}")},rn.prototype.has=function(e){return this._defaultValues.hasOwnProperty(e)},rn.prototype.get=function(e,t){if(!this.has(e))return t;var n=this._defaultValues[e];return this._map?this._map.get(e,n):n},rn.prototype.clear=function(){if(this.__ownerID)return this._map&&this._map.clear(),this;var e=this.constructor;return e._empty||(e._empty=an(this,Ze()))},rn.prototype.set=function(e,t){if(!this.has(e))throw new Error('Cannot set unknown key "'+e+'" on '+sn(this));var n=this._map&&this._map.set(e,t);return this.__ownerID||n===this._map?this:an(this,n)},rn.prototype.remove=function(e){if(!this.has(e))return this;var t=this._map&&this._map.remove(e);return this.__ownerID||t===this._map?this:an(this,t)},rn.prototype.wasAltered=function(){return this._map.wasAltered()},rn.prototype.__iterator=function(e,t){var n=this;return r(this._defaultValues).map(function(e,t){return n.get(t)}).__iterator(e,t)},rn.prototype.__iterate=function(e,t){var n=this;return r(this._defaultValues).map(function(e,t){return n.get(t)}).__iterate(e,t)},rn.prototype.__ensureOwner=function(e){if(e===this.__ownerID)return this;var t=this._map&&this._map.__ensureOwner(e);return e?an(this,t,e):(this.__ownerID=e,this._map=t,this)};var on=rn.prototype;function an(e,t,n){var r=Object.create(Object.getPrototypeOf(e));return r._map=t,r.__ownerID=n,r}function sn(e){return e._name||e.constructor.name||"Record"}function un(e){return null===e||void 0===e?gn():ln(e)&&!c(e)?e:gn().withMutations(function(t){var n=i(e);Be(n.size),n.forEach(function(e){return t.add(e)})})}function ln(e){return!(!e||!e[fn])}on.delete=on.remove,on.deleteIn=on.removeIn=Ke.removeIn,on.merge=Ke.merge,on.mergeWith=Ke.mergeWith,on.mergeIn=Ke.mergeIn,on.mergeDeep=Ke.mergeDeep,on.mergeDeepWith=Ke.mergeDeepWith,on.mergeDeepIn=Ke.mergeDeepIn,on.setIn=Ke.setIn,on.update=Ke.update,on.updateIn=Ke.updateIn,on.withMutations=Ke.withMutations,on.asMutable=Ke.asMutable,on.asImmutable=Ke.asImmutable,t(un,we),un.of=function(){return this(arguments)},un.fromKeys=function(e){return this(r(e).keySeq())},un.prototype.toString=function(){return this.__toString("Set {","}")},un.prototype.has=function(e){return this._map.has(e)},un.prototype.add=function(e){return pn(this,this._map.set(e,!0))},un.prototype.remove=function(e){return pn(this,this._map.remove(e))},un.prototype.clear=function(){return pn(this,this._map.clear())},un.prototype.union=function(){var t=e.call(arguments,0);return 0===(t=t.filter(function(e){return 0!==e.size})).length?this:0!==this.size||this.__ownerID||1!==t.length?this.withMutations(function(e){for(var n=0;n<t.length;n++)i(t[n]).forEach(function(t){return e.add(t)})}):this.constructor(t[0])},un.prototype.intersect=function(){var t=e.call(arguments,0);if(0===t.length)return this;t=t.map(function(e){return i(e)});var n=this;return this.withMutations(function(e){n.forEach(function(n){t.every(function(e){return e.includes(n)})||e.remove(n)})})},un.prototype.subtract=function(){var t=e.call(arguments,0);if(0===t.length)return this;t=t.map(function(e){return i(e)});var n=this;return this.withMutations(function(e){n.forEach(function(n){t.some(function(e){return e.includes(n)})&&e.remove(n)})})},un.prototype.merge=function(){return this.union.apply(this,arguments)},un.prototype.mergeWith=function(t){var n=e.call(arguments,1);return this.union.apply(this,n)},un.prototype.sort=function(e){return yn($t(this,e))},un.prototype.sortBy=function(e,t){return yn($t(this,t,e))},un.prototype.wasAltered=function(){return this._map.wasAltered()},un.prototype.__iterate=function(e,t){var n=this;return this._map.__iterate(function(t,r){return e(r,r,n)},t)},un.prototype.__iterator=function(e,t){return this._map.map(function(e,t){return t}).__iterator(e,t)},un.prototype.__ensureOwner=function(e){if(e===this.__ownerID)return this;var t=this._map.__ensureOwner(e);return e?this.__make(t,e):(this.__ownerID=e,this._map=t,this)},un.isSet=ln;var cn,fn="@@__IMMUTABLE_SET__@@",dn=un.prototype;function pn(e,t){return e.__ownerID?(e.size=t.size,e._map=t,e):t===e._map?e:0===t.size?e.__empty():e.__make(t)}function hn(e,t){var n=Object.create(dn);return n.size=e?e.size:0,n._map=e,n.__ownerID=t,n}function gn(){return cn||(cn=hn(Ze()))}function yn(e){return null===e||void 0===e?xn():mn(e)?e:xn().withMutations(function(t){var n=i(e);Be(n.size),n.forEach(function(e){return t.add(e)})})}function mn(e){return ln(e)&&c(e)}dn[fn]=!0,dn.delete=dn.remove,dn.mergeDeep=dn.merge,dn.mergeDeepWith=dn.mergeWith,dn.withMutations=Ke.withMutations,dn.asMutable=Ke.asMutable,dn.asImmutable=Ke.asImmutable,dn.__empty=gn,dn.__make=hn,t(yn,un),yn.of=function(){return this(arguments)},yn.fromKeys=function(e){return this(r(e).keySeq())},yn.prototype.toString=function(){return this.__toString("OrderedSet {","}")},yn.isOrderedSet=mn;var vn,bn=yn.prototype;function _n(e,t){var n=Object.create(bn);return n.size=e?e.size:0,n._map=e,n.__ownerID=t,n}function xn(){return vn||(vn=_n(At()))}function wn(e){return null===e||void 0===e?Tn():Sn(e)?e:Tn().unshiftAll(e)}function Sn(e){return!(!e||!e[kn])}bn[h]=!0,bn.__empty=xn,bn.__make=_n,t(wn,xe),wn.of=function(){return this(arguments)},wn.prototype.toString=function(){return this.__toString("Stack [","]")},wn.prototype.get=function(e,t){var n=this._head;for(e=O(this,e);n&&e--;)n=n.next;return n?n.value:t},wn.prototype.peek=function(){return this._head&&this._head.value},wn.prototype.push=function(){if(0===arguments.length)return this;for(var e=this.size+arguments.length,t=this._head,n=arguments.length-1;n>=0;n--)t={value:arguments[n],next:t};return this.__ownerID?(this.size=e,this._head=t,this.__hash=void 0,this.__altered=!0,this):En(e,t)},wn.prototype.pushAll=function(e){if(0===(e=o(e)).size)return this;Be(e.size);var t=this.size,n=this._head;return e.reverse().forEach(function(e){t++,n={value:e,next:n}}),this.__ownerID?(this.size=t,this._head=n,this.__hash=void 0,this.__altered=!0,this):En(t,n)},wn.prototype.pop=function(){return this.slice(1)},wn.prototype.unshift=function(){return this.push.apply(this,arguments)},wn.prototype.unshiftAll=function(e){return this.pushAll(e)},wn.prototype.shift=function(){return this.pop.apply(this,arguments)},wn.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):Tn()},wn.prototype.slice=function(e,t){if(T(e,t,this.size))return this;var n=M(e,this.size),r=P(t,this.size);if(r!==this.size)return xe.prototype.slice.call(this,e,t);for(var o=this.size-n,i=this._head;n--;)i=i.next;return this.__ownerID?(this.size=o,this._head=i,this.__hash=void 0,this.__altered=!0,this):En(o,i)},wn.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?En(this.size,this._head,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},wn.prototype.__iterate=function(e,t){if(t)return this.reverse().__iterate(e);for(var n=0,r=this._head;r&&!1!==e(r.value,n++,this);)r=r.next;return n},wn.prototype.__iterator=function(e,t){if(t)return this.reverse().__iterator(e);var n=0,r=this._head;return new L(function(){if(r){var t=r.value;return r=r.next,F(e,n++,t)}return{value:void 0,done:!0}})},wn.isStack=Sn;var Cn,kn="@@__IMMUTABLE_STACK__@@",On=wn.prototype;function En(e,t,n,r){var o=Object.create(On);return o.size=e,o._head=t,o.__ownerID=n,o.__hash=r,o.__altered=!1,o}function Tn(){return Cn||(Cn=En(0))}function Mn(e,t){var n=function(n){e.prototype[n]=t[n]};return Object.keys(t).forEach(n),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach(n),e}On[kn]=!0,On.withMutations=Ke.withMutations,On.asMutable=Ke.asMutable,On.asImmutable=Ke.asImmutable,On.wasAltered=Ke.wasAltered,n.Iterator=L,Mn(n,{toArray:function(){Be(this.size);var e=new Array(this.size||0);return this.valueSeq().__iterate(function(t,n){e[n]=t}),e},toIndexedSeq:function(){return new Dt(this)},toJS:function(){return this.toSeq().map(function(e){return e&&"function"==typeof e.toJS?e.toJS():e}).__toJS()},toJSON:function(){return this.toSeq().map(function(e){return e&&"function"==typeof e.toJSON?e.toJSON():e}).__toJS()},toKeyedSeq:function(){return new Rt(this,!0)},toMap:function(){return Le(this.toKeyedSeq())},toObject:function(){Be(this.size);var e={};return this.__iterate(function(t,n){e[n]=t}),e},toOrderedMap:function(){return Mt(this.toKeyedSeq())},toOrderedSet:function(){return yn(s(this)?this.valueSeq():this)},toSet:function(){return un(s(this)?this.valueSeq():this)},toSetSeq:function(){return new Nt(this)},toSeq:function(){return u(this)?this.toIndexedSeq():s(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return wn(s(this)?this.valueSeq():this)},toList:function(){return dt(s(this)?this.valueSeq():this)},toString:function(){return"[Iterable]"},__toString:function(e,t){return 0===this.size?e+t:e+" "+this.toSeq().map(this.__toStringMapper).join(", ")+" "+t},concat:function(){var t=e.call(arguments,0);return Yt(this,function(e,t){var n=s(e),o=[e].concat(t).map(function(e){return a(e)?n&&(e=r(e)):e=n?ae(e):se(Array.isArray(e)?e:[e]),e}).filter(function(e){return 0!==e.size});if(0===o.length)return e;if(1===o.length){var i=o[0];if(i===e||n&&s(i)||u(e)&&u(i))return i}var l=new ee(o);return n?l=l.toKeyedSeq():u(e)||(l=l.toSetSeq()),(l=l.flatten(!0)).size=o.reduce(function(e,t){if(void 0!==e){var n=t.size;if(void 0!==n)return e+n}},0),l}(this,t))},includes:function(e){return this.some(function(t){return he(t,e)})},entries:function(){return this.__iterator(R)},every:function(e,t){Be(this.size);var n=!0;return this.__iterate(function(r,o,i){if(!e.call(t,r,o,i))return n=!1,!1}),n},filter:function(e,t){return Yt(this,qt(this,e,t,!0))},find:function(e,t,n){var r=this.findEntry(e,t);return r?r[1]:n},findEntry:function(e,t){var n;return this.__iterate(function(r,o,i){if(e.call(t,r,o,i))return n=[o,r],!1}),n},findLastEntry:function(e,t){return this.toSeq().reverse().findEntry(e,t)},forEach:function(e,t){return Be(this.size),this.__iterate(t?e.bind(t):e)},join:function(e){Be(this.size),e=void 0!==e?""+e:",";var t="",n=!0;return this.__iterate(function(r){n?n=!1:t+=e,t+=null!==r&&void 0!==r?r.toString():""}),t},keys:function(){return this.__iterator(A)},map:function(e,t){return Yt(this,Ft(this,e,t))},reduce:function(e,t,n){var r,o;return Be(this.size),arguments.length<2?o=!0:r=t,this.__iterate(function(t,i,a){o?(o=!1,r=t):r=e.call(n,r,t,i,a)}),r},reduceRight:function(e,t,n){var r=this.toKeyedSeq().reverse();return r.reduce.apply(r,arguments)},reverse:function(){return Yt(this,zt(this,!0))},slice:function(e,t){return Yt(this,Kt(this,e,t,!0))},some:function(e,t){return!this.every(Rn(e),t)},sort:function(e){return Yt(this,$t(this,e))},values:function(){return this.__iterator(I)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return void 0!==this.size?0===this.size:!this.some(function(){return!0})},count:function(e,t){return k(e?this.toSeq().filter(e,t):this)},countBy:function(e,t){return function(e,t,n){var r=Le().asMutable();return e.__iterate(function(o,i){r.update(t.call(n,o,i,e),0,function(e){return e+1})}),r.asImmutable()}(this,e,t)},equals:function(e){return ge(this,e)},entrySeq:function(){var e=this;if(e._cache)return new ee(e._cache);var t=e.toSeq().map(In).toIndexedSeq();return t.fromEntrySeq=function(){return e.toSeq()},t},filterNot:function(e,t){return this.filter(Rn(e),t)},findLast:function(e,t,n){return this.toKeyedSeq().reverse().find(e,t,n)},first:function(){return this.find(E)},flatMap:function(e,t){return Yt(this,function(e,t,n){var r=Zt(e);return e.toSeq().map(function(o,i){return r(t.call(n,o,i,e))}).flatten(!0)}(this,e,t))},flatten:function(e){return Yt(this,Ut(this,e,!0))},fromEntrySeq:function(){return new Bt(this)},get:function(e,t){return this.find(function(t,n){return he(n,e)},void 0,t)},getIn:function(e,t){for(var n,r=this,o=nn(e);!(n=o.next()).done;){var i=n.value;if((r=r&&r.get?r.get(i,v):v)===v)return t}return r},groupBy:function(e,t){return function(e,t,n){var r=s(e),o=(c(e)?Mt():Le()).asMutable();e.__iterate(function(i,a){o.update(t.call(n,i,a,e),function(e){return(e=e||[]).push(r?[a,i]:i),e})});var i=Zt(e);return o.map(function(t){return Yt(e,i(t))})}(this,e,t)},has:function(e){return this.get(e,v)!==v},hasIn:function(e){return this.getIn(e,v)!==v},isSubset:function(e){return e="function"==typeof e.includes?e:n(e),this.every(function(t){return e.includes(t)})},isSuperset:function(e){return(e="function"==typeof e.isSubset?e:n(e)).isSubset(this)},keySeq:function(){return this.toSeq().map(An).toIndexedSeq()},last:function(){return this.toSeq().reverse().first()},max:function(e){return Ht(this,e)},maxBy:function(e,t){return Ht(this,t,e)},min:function(e){return Ht(this,e?Dn(e):Ln)},minBy:function(e,t){return Ht(this,t?Dn(t):Ln,e)},rest:function(){return this.slice(1)},skip:function(e){return this.slice(Math.max(0,e))},skipLast:function(e){return Yt(this,this.toSeq().reverse().skip(e).reverse())},skipWhile:function(e,t){return Yt(this,Wt(this,e,t,!0))},skipUntil:function(e,t){return this.skipWhile(Rn(e),t)},sortBy:function(e,t){return Yt(this,$t(this,t,e))},take:function(e){return this.slice(0,Math.max(0,e))},takeLast:function(e){return Yt(this,this.toSeq().reverse().take(e).reverse())},takeWhile:function(e,t){return Yt(this,function(e,t,n){var r=Qt(e);return r.__iterateUncached=function(r,o){var i=this;if(o)return this.cacheResult().__iterate(r,o);var a=0;return e.__iterate(function(e,o,s){return t.call(n,e,o,s)&&++a&&r(e,o,i)}),a},r.__iteratorUncached=function(r,o){var i=this;if(o)return this.cacheResult().__iterator(r,o);var a=e.__iterator(R,o),s=!0;return new L(function(){if(!s)return{value:void 0,done:!0};var e=a.next();if(e.done)return e;var o=e.value,u=o[0],l=o[1];return t.call(n,l,u,i)?r===R?e:F(r,u,l,e):(s=!1,{value:void 0,done:!0})})},r}(this,e,t))},takeUntil:function(e,t){return this.takeWhile(Rn(e),t)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=function(e){if(e.size===1/0)return 0;var t=c(e),n=s(e),r=t?1:0;return function(e,t){return t=Se(t,3432918353),t=Se(t<<15|t>>>-15,461845907),t=Se(t<<13|t>>>-13,5),t=Se((t=(t+3864292196|0)^e)^t>>>16,2246822507),t=Ce((t=Se(t^t>>>13,3266489909))^t>>>16)}(e.__iterate(n?t?function(e,t){r=31*r+Fn(ke(e),ke(t))|0}:function(e,t){r=r+Fn(ke(e),ke(t))|0}:t?function(e){r=31*r+ke(e)|0}:function(e){r=r+ke(e)|0}),r)}(this))}});var Pn=n.prototype;Pn[f]=!0,Pn[B]=Pn.values,Pn.__toJS=Pn.toArray,Pn.__toStringMapper=Nn,Pn.inspect=Pn.toSource=function(){return this.toString()},Pn.chain=Pn.flatMap,Pn.contains=Pn.includes,function(){try{Object.defineProperty(Pn,"length",{get:function(){if(!n.noLengthWarning){var e;try{throw new Error}catch(t){e=t.stack}if(-1===e.indexOf("_wrapObject"))return console&&console.warn&&console.warn("iterable.length has been deprecated, use iterable.size or iterable.count(). This warning will become a silent error in a future version. "+e),this.size}}})}catch(e){}}(),Mn(r,{flip:function(){return Yt(this,Lt(this))},findKey:function(e,t){var n=this.findEntry(e,t);return n&&n[0]},findLastKey:function(e,t){return this.toSeq().reverse().findKey(e,t)},keyOf:function(e){return this.findKey(function(t){return he(t,e)})},lastKeyOf:function(e){return this.findLastKey(function(t){return he(t,e)})},mapEntries:function(e,t){var n=this,r=0;return Yt(this,this.toSeq().map(function(o,i){return e.call(t,[i,o],r++,n)}).fromEntrySeq())},mapKeys:function(e,t){var n=this;return Yt(this,this.toSeq().flip().map(function(r,o){return e.call(t,r,o,n)}).flip())}});var jn=r.prototype;function An(e,t){return t}function In(e,t){return[t,e]}function Rn(e){return function(){return!e.apply(this,arguments)}}function Dn(e){return function(){return-e.apply(this,arguments)}}function Nn(e){return"string"==typeof e?JSON.stringify(e):e}function Bn(){return C(arguments)}function Ln(e,t){return e<t?1:e>t?-1:0}function Fn(e,t){return e^t+2654435769+(e<<6)+(e>>2)|0}return jn[d]=!0,jn[B]=Pn.entries,jn.__toJS=Pn.toObject,jn.__toStringMapper=function(e,t){return JSON.stringify(t)+": "+Nn(e)},Mn(o,{toKeyedSeq:function(){return new Rt(this,!1)},filter:function(e,t){return Yt(this,qt(this,e,t,!1))},findIndex:function(e,t){var n=this.findEntry(e,t);return n?n[0]:-1},indexOf:function(e){var t=this.toKeyedSeq().keyOf(e);return void 0===t?-1:t},lastIndexOf:function(e){var t=this.toKeyedSeq().reverse().keyOf(e);return void 0===t?-1:t},reverse:function(){return Yt(this,zt(this,!1))},slice:function(e,t){return Yt(this,Kt(this,e,t,!1))},splice:function(e,t){var n=arguments.length;if(t=Math.max(0|t,0),0===n||2===n&&!t)return this;e=M(e,e<0?this.count():this.size);var r=this.slice(0,e);return Yt(this,1===n?r:r.concat(C(arguments,2),this.slice(e+t)))},findLastIndex:function(e,t){var n=this.toKeyedSeq().findLastKey(e,t);return void 0===n?-1:n},first:function(){return this.get(0)},flatten:function(e){return Yt(this,Ut(this,e,!1))},get:function(e,t){return(e=O(this,e))<0||this.size===1/0||void 0!==this.size&&e>this.size?t:this.find(function(t,n){return n===e},void 0,t)},has:function(e){return(e=O(this,e))>=0&&(void 0!==this.size?this.size===1/0||e<this.size:-1!==this.indexOf(e))},interpose:function(e){return Yt(this,function(e,t){var n=Qt(e);return n.size=e.size&&2*e.size-1,n.__iterateUncached=function(n,r){var o=this,i=0;return e.__iterate(function(e,r){return(!i||!1!==n(t,i++,o))&&!1!==n(e,i++,o)},r),i},n.__iteratorUncached=function(n,r){var o,i=e.__iterator(I,r),a=0;return new L(function(){return(!o||a%2)&&(o=i.next()).done?o:a%2?F(n,a++,t):F(n,a++,o.value,o)})},n}(this,e))},interleave:function(){var e=[this].concat(C(arguments)),t=Gt(this.toSeq(),G.of,e),n=t.flatten(!0);return t.size&&(n.size=t.size*e.length),Yt(this,n)},last:function(){return this.get(-1)},skipWhile:function(e,t){return Yt(this,Wt(this,e,t,!1))},zip:function(){return Yt(this,Gt(this,Bn,[this].concat(C(arguments))))},zipWith:function(e){var t=C(arguments);return t[0]=this,Yt(this,Gt(this,e,t))}}),o.prototype[p]=!0,o.prototype[h]=!0,Mn(i,{get:function(e,t){return this.has(e)?e:t},includes:function(e){return this.has(e)},keySeq:function(){return this.valueSeq()}}),i.prototype.has=Pn.includes,Mn(V,r.prototype),Mn(G,o.prototype),Mn(Y,i.prototype),Mn(_e,r.prototype),Mn(xe,o.prototype),Mn(we,i.prototype),{Iterable:n,Seq:H,Collection:be,Map:Le,OrderedMap:Mt,List:dt,Stack:wn,Set:un,OrderedSet:yn,Record:rn,Range:ve,Repeat:ye,is:he,fromJS:fe}}()},function(e,t,n){"use strict";var r=function(e){};e.exports=function(e,t,n,o,i,a,s,u){if(r(t),!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,o,i,a,s,u],f=0;(l=new Error(t.replace(/%s/g,function(){return c[f++]}))).name="Invariant Violation"}throw l.framesToPop=1,l}}},function(e,t,n){"use strict";var r=n(26)||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};var o=n(317),i=n(184),a=n(758),s=n(4),u=n(71),l=s.OrderedSet,c=s.Record,f=s.Stack,d=c({allowUndo:!0,currentContent:null,decorator:null,directionMap:null,forceSelection:!1,inCompositionMode:!1,inlineStyleOverride:null,lastChangeType:null,nativelyRenderedContent:null,redoStack:f(),selection:null,treeMap:null,undoStack:f()}),p=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._immutable=t}return e.createEmpty=function(t){return e.createWithContent(i.createFromText(""),t)},e.createWithContent=function(t,n){var r=t.getBlockMap().first().getKey();return e.create({currentContent:t,undoStack:f(),redoStack:f(),decorator:n||null,selection:u.createEmpty(r)})},e.create=function(t){var n=t.currentContent,o=t.decorator,i=r({},t,{treeMap:g(n,o),directionMap:a.getDirectionMap(n)});return new e(new d(i))},e.set=function(t,n){return new e(t.getImmutable().withMutations(function(e){var r=e.get("decorator"),i=r;null===n.decorator?i=null:n.decorator&&(i=n.decorator);var a=n.currentContent||t.getCurrentContent();if(i!==r){var s,u=e.get("treeMap");return s=i&&r?function(e,t,n,r,i){return n.merge(t.toSeq().filter(function(t){return r.getDecorations(t,e)!==i.getDecorations(t,e)}).map(function(t){return o.generate(e,t,r)}))}(a,a.getBlockMap(),u,i,r):g(a,i),void e.merge({decorator:i,treeMap:s,nativelyRenderedContent:null})}a!==t.getCurrentContent()&&e.set("treeMap",function(e,t,n,r){var i=e.getCurrentContent().set("entityMap",n),a=i.getBlockMap();return e.getImmutable().get("treeMap").merge(t.toSeq().filter(function(e,t){return e!==a.get(t)}).map(function(e){return o.generate(i,e,r)}))}(t,a.getBlockMap(),a.getEntityMap(),i)),e.merge(n)}))},e.prototype.toJS=function(){return this.getImmutable().toJS()},e.prototype.getAllowUndo=function(){return this.getImmutable().get("allowUndo")},e.prototype.getCurrentContent=function(){return this.getImmutable().get("currentContent")},e.prototype.getUndoStack=function(){return this.getImmutable().get("undoStack")},e.prototype.getRedoStack=function(){return this.getImmutable().get("redoStack")},e.prototype.getSelection=function(){return this.getImmutable().get("selection")},e.prototype.getDecorator=function(){return this.getImmutable().get("decorator")},e.prototype.isInCompositionMode=function(){return this.getImmutable().get("inCompositionMode")},e.prototype.mustForceSelection=function(){return this.getImmutable().get("forceSelection")},e.prototype.getNativelyRenderedContent=function(){return this.getImmutable().get("nativelyRenderedContent")},e.prototype.getLastChangeType=function(){return this.getImmutable().get("lastChangeType")},e.prototype.getInlineStyleOverride=function(){return this.getImmutable().get("inlineStyleOverride")},e.setInlineStyleOverride=function(t,n){return e.set(t,{inlineStyleOverride:n})},e.prototype.getCurrentInlineStyle=function(){var e=this.getInlineStyleOverride();if(null!=e)return e;var t=this.getCurrentContent(),n=this.getSelection();return n.isCollapsed()?function(e,t){var n=t.getStartKey(),r=t.getStartOffset(),o=e.getBlockForKey(n);if(r>0)return o.getInlineStyleAt(r-1);if(o.getLength())return o.getInlineStyleAt(0);return y(e,n)}(t,n):function(e,t){var n=t.getStartKey(),r=t.getStartOffset(),o=e.getBlockForKey(n);if(r<o.getLength())return o.getInlineStyleAt(r);if(r>0)return o.getInlineStyleAt(r-1);return y(e,n)}(t,n)},e.prototype.getBlockTree=function(e){return this.getImmutable().getIn(["treeMap",e])},e.prototype.isSelectionAtStartOfContent=function(){var e=this.getCurrentContent().getBlockMap().first().getKey();return this.getSelection().hasEdgeWithin(e,0,0)},e.prototype.isSelectionAtEndOfContent=function(){var e=this.getCurrentContent().getBlockMap().last(),t=e.getLength();return this.getSelection().hasEdgeWithin(e.getKey(),t,t)},e.prototype.getDirectionMap=function(){return this.getImmutable().get("directionMap")},e.acceptSelection=function(e,t){return h(e,t,!1)},e.forceSelection=function(e,t){return t.getHasFocus()||(t=t.set("hasFocus",!0)),h(e,t,!0)},e.moveSelectionToEnd=function(t){var n=t.getCurrentContent().getLastBlock(),r=n.getKey(),o=n.getLength();return e.acceptSelection(t,new u({anchorKey:r,anchorOffset:o,focusKey:r,focusOffset:o,isBackward:!1}))},e.moveFocusToEnd=function(t){var n=e.moveSelectionToEnd(t);return e.forceSelection(n,n.getSelection())},e.push=function(t,n,r){if(t.getCurrentContent()===n)return t;var o="insert-characters"!==r,i=a.getDirectionMap(n,t.getDirectionMap());if(!t.getAllowUndo())return e.set(t,{currentContent:n,directionMap:i,lastChangeType:r,selection:n.getSelectionAfter(),forceSelection:o,inlineStyleOverride:null});var s=t.getSelection(),u=t.getCurrentContent(),l=t.getUndoStack(),c=n;s!==u.getSelectionAfter()||function(e,t){var n=e.getLastChangeType();return t!==n||"insert-characters"!==t&&"backspace-character"!==t&&"delete-character"!==t}(t,r)?(l=l.push(u),c=c.set("selectionBefore",s)):"insert-characters"!==r&&"backspace-character"!==r&&"delete-character"!==r||(c=c.set("selectionBefore",u.getSelectionBefore()));var d=t.getInlineStyleOverride();-1===["adjust-depth","change-block-type","split-block"].indexOf(r)&&(d=null);var p={currentContent:c,directionMap:i,undoStack:l,redoStack:f(),lastChangeType:r,selection:n.getSelectionAfter(),forceSelection:o,inlineStyleOverride:d};return e.set(t,p)},e.undo=function(t){if(!t.getAllowUndo())return t;var n=t.getUndoStack(),r=n.peek();if(!r)return t;var o=t.getCurrentContent(),i=a.getDirectionMap(r,t.getDirectionMap());return e.set(t,{currentContent:r,directionMap:i,undoStack:n.shift(),redoStack:t.getRedoStack().push(o),forceSelection:!0,inlineStyleOverride:null,lastChangeType:"undo",nativelyRenderedContent:null,selection:o.getSelectionBefore()})},e.redo=function(t){if(!t.getAllowUndo())return t;var n=t.getRedoStack(),r=n.peek();if(!r)return t;var o=t.getCurrentContent(),i=a.getDirectionMap(r,t.getDirectionMap());return e.set(t,{currentContent:r,directionMap:i,undoStack:t.getUndoStack().push(o),redoStack:n.shift(),forceSelection:!0,inlineStyleOverride:null,lastChangeType:"redo",nativelyRenderedContent:null,selection:r.getSelectionAfter()})},e.prototype.getImmutable=function(){return this._immutable},e}();function h(e,t,n){return p.set(e,{selection:t,forceSelection:n,nativelyRenderedContent:null,inlineStyleOverride:null})}function g(e,t){return e.getBlockMap().map(function(n){return o.generate(e,n,t)}).toOrderedMap()}function y(e,t){var n=e.getBlockMap().reverse().skipUntil(function(e,n){return n===t}).skip(1).skipUntil(function(e,t){return e.getLength()}).first();return n?n.getInlineStyleAt(n.getLength()-1):l()}e.exports=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.makeOutboundLink=t.getFeed=t.getCourseFeed=t.getPostFeed=t.decodeHTML=t.sendRequest=t.getDirectionalStyle=t.createSvgIconComponent=void 0;var r=n(391);Object.defineProperty(t,"makeOutboundLink",{enumerable:!0,get:function(){return r.makeOutboundLink}});var o=n(395),i=f(n(396)),a=f(n(398)),s=f(n(130)),u=f(n(400)),l=f(n(223)),c=f(n(401));function f(e){return e&&e.__esModule?e:{default:e}}t.createSvgIconComponent=c.default,t.getDirectionalStyle=o.getDirectionalStyle,t.sendRequest=i.default,t.decodeHTML=a.default,t.getPostFeed=l.default,t.getCourseFeed=u.default,t.getFeed=s.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ScreenReaderShortcut=t.ScreenReaderText=t.Row=t.ZebrafiedListTable=t.ListTable=t.Checkbox=t.WordOccurrences=t.WordList=t.YouTubeVideo=t.Warning=t.Tabs=t.YoastSeoIcon=t.Modal=t.Logo=t.YoastLinkButton=t.InputField=t.YoastButton=t.UpsellLinkButton=t.UpsellButton=t.Toggle=t.Textfield=t.Textarea=t.SynonymsInput=t.icons=t.SvgIcon=t.StackedProgressBar=t.ScoreAssessments=t.SectionTitle=t.Section=t.ProgressBar=t.Paper=t.Notification=t.MultiStepProgress=t.Loader=t.languageNoticePropType=t.LanguageNotice=t.Label=t.KeywordSuggestions=t.Input=t.IFrame=t.IconButtonToggle=t.Icon=t.HelpText=t.Heading=t.ErrorBoundary=t.IconsButton=t.IconButton=t.IconLabeledButton=t.CourseDetails=t.CardBanner=t.FullHeightCard=t.Card=t.ArticleList=t.Alert=t.wrapInHeading=t.StyledContainerTopLevel=t.StyledContainer=t.StyledIconsButton=t.CollapsibleStateless=t.Collapsible=t.addButtonStyles=t.addBaseStyle=t.addFocusStyle=t.addActiveStyle=t.addHoverStyle=t.BaseButton=t.Button=t.LinkButton=t.StyledHeading=t.StyledSectionBase=t.StyledSection=void 0;var r=n(60);Object.defineProperty(t,"Button",{enumerable:!0,get:function(){return oe(r).default}}),Object.defineProperty(t,"BaseButton",{enumerable:!0,get:function(){return r.BaseButton}}),Object.defineProperty(t,"addHoverStyle",{enumerable:!0,get:function(){return r.addHoverStyle}}),Object.defineProperty(t,"addActiveStyle",{enumerable:!0,get:function(){return r.addActiveStyle}}),Object.defineProperty(t,"addFocusStyle",{enumerable:!0,get:function(){return r.addFocusStyle}}),Object.defineProperty(t,"addBaseStyle",{enumerable:!0,get:function(){return r.addBaseStyle}}),Object.defineProperty(t,"addButtonStyles",{enumerable:!0,get:function(){return r.addButtonStyles}});var o=n(429);Object.defineProperty(t,"Collapsible",{enumerable:!0,get:function(){return oe(o).default}}),Object.defineProperty(t,"CollapsibleStateless",{enumerable:!0,get:function(){return o.CollapsibleStateless}}),Object.defineProperty(t,"StyledIconsButton",{enumerable:!0,get:function(){return o.StyledIconsButton}}),Object.defineProperty(t,"StyledContainer",{enumerable:!0,get:function(){return o.StyledContainer}}),Object.defineProperty(t,"StyledContainerTopLevel",{enumerable:!0,get:function(){return o.StyledContainerTopLevel}}),Object.defineProperty(t,"wrapInHeading",{enumerable:!0,get:function(){return o.wrapInHeading}});var i=n(497);Object.defineProperty(t,"Alert",{enumerable:!0,get:function(){return oe(i).default}});var a=n(498);Object.defineProperty(t,"ArticleList",{enumerable:!0,get:function(){return oe(a).default}});var s=n(499);Object.defineProperty(t,"Card",{enumerable:!0,get:function(){return oe(s).default}}),Object.defineProperty(t,"FullHeightCard",{enumerable:!0,get:function(){return s.FullHeightCard}});var u=n(254);Object.defineProperty(t,"CardBanner",{enumerable:!0,get:function(){return oe(u).default}});var l=n(500);Object.defineProperty(t,"CourseDetails",{enumerable:!0,get:function(){return oe(l).default}});var c=n(501);Object.defineProperty(t,"IconLabeledButton",{enumerable:!0,get:function(){return oe(c).default}});var f=n(502);Object.defineProperty(t,"IconButton",{enumerable:!0,get:function(){return oe(f).default}});var d=n(253);Object.defineProperty(t,"IconsButton",{enumerable:!0,get:function(){return oe(d).default}});var p=n(503);Object.defineProperty(t,"ErrorBoundary",{enumerable:!0,get:function(){return oe(p).default}});var h=n(152);Object.defineProperty(t,"Heading",{enumerable:!0,get:function(){return oe(h).default}});var g=n(522);Object.defineProperty(t,"HelpText",{enumerable:!0,get:function(){return oe(g).default}});var y=n(523);Object.defineProperty(t,"Icon",{enumerable:!0,get:function(){return oe(y).default}});var m=n(524);Object.defineProperty(t,"IconButtonToggle",{enumerable:!0,get:function(){return oe(m).default}});var v=n(258);Object.defineProperty(t,"IFrame",{enumerable:!0,get:function(){return oe(v).default}});var b=n(259);Object.defineProperty(t,"Input",{enumerable:!0,get:function(){return oe(b).default}});var _=n(525);Object.defineProperty(t,"KeywordSuggestions",{enumerable:!0,get:function(){return oe(_).default}});var x=n(263);Object.defineProperty(t,"Label",{enumerable:!0,get:function(){return oe(x).default}});var w=n(531);Object.defineProperty(t,"LanguageNotice",{enumerable:!0,get:function(){return oe(w).default}}),Object.defineProperty(t,"languageNoticePropType",{enumerable:!0,get:function(){return w.languageNoticePropType}});var S=n(532);Object.defineProperty(t,"Loader",{enumerable:!0,get:function(){return oe(S).default}});var C=n(533);Object.defineProperty(t,"MultiStepProgress",{enumerable:!0,get:function(){return oe(C).default}});var k=n(534);Object.defineProperty(t,"Notification",{enumerable:!0,get:function(){return oe(k).default}});var O=n(264);Object.defineProperty(t,"Paper",{enumerable:!0,get:function(){return oe(O).default}});var E=n(535);Object.defineProperty(t,"ProgressBar",{enumerable:!0,get:function(){return oe(E).default}});var T=n(265);Object.defineProperty(t,"Section",{enumerable:!0,get:function(){return oe(T).default}});var M=n(250);Object.defineProperty(t,"SectionTitle",{enumerable:!0,get:function(){return M.SectionTitle}});var P=n(536);Object.defineProperty(t,"ScoreAssessments",{enumerable:!0,get:function(){return oe(P).default}});var j=n(537);Object.defineProperty(t,"StackedProgressBar",{enumerable:!0,get:function(){return oe(j).default}});var A=n(39);Object.defineProperty(t,"SvgIcon",{enumerable:!0,get:function(){return oe(A).default}}),Object.defineProperty(t,"icons",{enumerable:!0,get:function(){return A.icons}});var I=n(538);Object.defineProperty(t,"SynonymsInput",{enumerable:!0,get:function(){return oe(I).default}});var R=n(267);Object.defineProperty(t,"Textarea",{enumerable:!0,get:function(){return oe(R).default}});var D=n(541);Object.defineProperty(t,"Textfield",{enumerable:!0,get:function(){return oe(D).default}});var N=n(542);Object.defineProperty(t,"Toggle",{enumerable:!0,get:function(){return oe(N).default}});var B=n(543);Object.defineProperty(t,"UpsellButton",{enumerable:!0,get:function(){return B.UpsellButton}});var L=n(544);Object.defineProperty(t,"UpsellLinkButton",{enumerable:!0,get:function(){return L.UpsellLinkButton}});var F=n(153);Object.defineProperty(t,"YoastButton",{enumerable:!0,get:function(){return F.YoastButton}});var z=n(266);Object.defineProperty(t,"InputField",{enumerable:!0,get:function(){return z.InputField}});var q=n(545);Object.defineProperty(t,"YoastLinkButton",{enumerable:!0,get:function(){return q.YoastLinkButton}});var K=n(546);Object.defineProperty(t,"Logo",{enumerable:!0,get:function(){return oe(K).default}});var W=n(547);Object.defineProperty(t,"Modal",{enumerable:!0,get:function(){return oe(W).default}});var U=n(559);Object.defineProperty(t,"YoastSeoIcon",{enumerable:!0,get:function(){return oe(U).default}});var $=n(560);Object.defineProperty(t,"Tabs",{enumerable:!0,get:function(){return oe($).default}});var H=n(563);Object.defineProperty(t,"Warning",{enumerable:!0,get:function(){return oe(H).default}});var V=n(565);Object.defineProperty(t,"YouTubeVideo",{enumerable:!0,get:function(){return oe(V).default}});var G=n(261);Object.defineProperty(t,"WordList",{enumerable:!0,get:function(){return oe(G).default}});var Y=n(262);Object.defineProperty(t,"WordOccurrences",{enumerable:!0,get:function(){return oe(Y).default}});var X=n(566);Object.defineProperty(t,"Checkbox",{enumerable:!0,get:function(){return oe(X).default}});var J=n(567);Object.defineProperty(t,"ListTable",{enumerable:!0,get:function(){return J.ListTable}}),Object.defineProperty(t,"ZebrafiedListTable",{enumerable:!0,get:function(){return J.ZebrafiedListTable}});var Z=n(568);Object.defineProperty(t,"Row",{enumerable:!0,get:function(){return Z.Row}});var Q=n(251);Object.defineProperty(t,"ScreenReaderText",{enumerable:!0,get:function(){return oe(Q).default}});var ee=n(569);Object.defineProperty(t,"ScreenReaderShortcut",{enumerable:!0,get:function(){return oe(ee).default}});var te=n(570),ne=oe(te),re=n(571);function oe(e){return e&&e.__esModule?e:{default:e}}t.StyledSection=ne.default,t.StyledSectionBase=te.StyledSectionBase,t.StyledHeading=te.StyledHeading,t.LinkButton=re.LinkButton},function(e,t,n){e.exports=n(550)()},function(e,t){e.exports=window.wp.i18n},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){e.exports={default:n(589),__esModule:!0}},function(e,t,n){"use strict";t.__esModule=!0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(591));t.default=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),(0,r.default)(e,o.key,o)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}()},function(e,t,n){"use strict";t.__esModule=!0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(167));t.default=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":(0,r.default)(t))&&"function"!=typeof t?e:t}},function(e,t,n){"use strict";t.__esModule=!0;var r=a(n(613)),o=a(n(617)),i=a(n(167));function a(e){return e&&e.__esModule?e:{default:e}}t.default=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":(0,i.default)(t)));e.prototype=(0,o.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(r.default?(0,r.default)(e,t):e.__proto__=t)}},function(e,t){e.exports=function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}},function(e,t,n){e.exports=n(708)()},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";t.__esModule=!0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(582));t.default=r.default||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}},function(e,t){var n=e.exports={version:"2.5.7"};"number"==typeof __e&&(__e=n)},function(e,t,n){"use strict";var r=n(25),o=n(747),i=n(46),a=n(4),s=n(748),u=n(750),l=n(109),c=n(753),f=n(754),d=n(5),p=n(755),h=n(314),g=n(756),y=n(757),m=a.OrderedSet,v={replaceText:function(e,t,n,o,i){var a=h(e,t),s=g(a,t),u=r.create({style:o||m(),entity:i||null});return f(s,s.getSelectionAfter(),n,u)},insertText:function(e,t,n,r,o){return t.isCollapsed()||d(!1),v.replaceText(e,t,n,r,o)},moveText:function(e,t,n){var r=l(e,t),o=v.removeRange(e,t,"backward");return v.replaceWithFragment(o,n,r)},replaceWithFragment:function(e,t,n){var r=h(e,t),o=g(r,t);return c(o,o.getSelectionAfter(),n)},removeRange:function(e,t,n){var r,o,a=void 0,s=void 0;t.getIsBackward()&&(t=t.merge({anchorKey:t.getFocusKey(),anchorOffset:t.getFocusOffset(),focusKey:t.getAnchorKey(),focusOffset:t.getAnchorOffset(),isBackward:!1})),r=t.getAnchorKey(),o=t.getFocusKey(),a=e.getBlockForKey(r),s=e.getBlockForKey(o);var l=t.getStartOffset(),c=t.getEndOffset(),f=a.getEntityAt(l),d=s.getEntityAt(c-1);if(r===o&&f&&f===d){var p=u(e.getEntityMap(),a,s,t,n);return g(e,p)}var y=t;i.draft_segmented_entities_behavior&&(y=u(e.getEntityMap(),a,s,t,n));var m=h(e,y);return g(m,y)},splitBlock:function(e,t){var n=h(e,t),r=g(n,t);return y(r,r.getSelectionAfter())},applyInlineStyle:function(e,t,n){return o.add(e,t,n)},removeInlineStyle:function(e,t,n){return o.remove(e,t,n)},setBlockType:function(e,t,n){return p(e,t,function(e){return e.merge({type:n,depth:0})})},setBlockData:function(e,t,n){return p(e,t,function(e){return e.merge({data:n})})},mergeBlockData:function(e,t,n){return p(e,t,function(e){return e.merge({data:e.getData().merge(n)})})},applyEntity:function(e,t,n){var r=h(e,t);return s(r,t,n)}};e.exports=v},function(e,t){e.exports=ReactDOM},function(e,t,n){"use strict";var r=n(745),o=n(84),i=n(25),a=n(761),s=n(56),u=n(184),l=n(187),c=n(320),f=n(762),d=n(322),p=n(110),h=n(22),g=n(318),y=n(6),m=n(194),v=n(336),b=n(71),_=n(825),x={Editor:f,EditorBlock:d,EditorState:y,CompositeDecorator:a,Entity:p,EntityInstance:g,BlockMapBuilder:o,CharacterMetadata:i,ContentBlock:s,ContentState:u,SelectionState:b,AtomicBlockUtils:r,KeyBindingUtil:m,Modifier:h,RichUtils:v,DefaultDraftBlockRenderMap:l,DefaultDraftInlineStyle:c,convertFromHTML:n(334),convertFromRaw:n(828),convertToRaw:_,genKey:n(40),getDefaultKeyBinding:n(337),getVisibleSelectionRect:n(833)};e.exports=x},function(e,t,n){"use strict";var r=n(4),o=r.Map,i=r.OrderedSet,a=r.Record,s=i(),u={style:s,entity:null},l=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.getStyle=function(){return this.get("style")},t.prototype.getEntity=function(){return this.get("entity")},t.prototype.hasStyle=function(e){return this.getStyle().includes(e)},t.applyStyle=function(e,n){var r=e.set("style",e.getStyle().add(n));return t.create(r)},t.removeStyle=function(e,n){var r=e.set("style",e.getStyle().remove(n));return t.create(r)},t.applyEntity=function(e,n){var r=e.getEntity()===n?e:e.set("entity",n);return t.create(r)},t.create=function(e){if(!e)return c;var n=o({style:s,entity:null}).merge(e),r=f.get(n);if(r)return r;var i=new t(n);return f=f.set(n,i),i},t}(a(u)),c=new l,f=o([[o(u),c]]);l.EMPTY=c,e.exports=l},function(e,t,n){"use strict";
|
2 |
/*
|
3 |
object-assign
|
4 |
(c) Sindre Sorhus
|
5 |
@license MIT
|
6 |
-
*/var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,a,s=function(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),u=1;u<arguments.length;u++){for(var l in n=Object(arguments[u]))o.call(n,l)&&(s[l]=n[l]);if(r){a=r(n);for(var c=0;c<a.length;c++)i.call(n,a[c])&&(s[a[c]]=n[a[c]])}}return s}},function(e,t,n){"use strict";var r=n(25),o=n(4),i=n(85),a=o.List,s=o.Map,u=o.OrderedSet,l=o.Record,c=o.Repeat,f=u(),d={parent:null,characterList:a(),data:s(),depth:0,key:"",text:"",type:"unstyled",children:a(),prevSibling:null,nextSibling:null},p=function(e,t){return e.getStyle()===t.getStyle()},h=function(e,t){return e.getEntity()===t.getEntity()},g=function(e){if(!e)return e;var t=e.characterList,n=e.text;return n&&!t&&(e.characterList=a(c(r.EMPTY,n.length))),e},y=function(e){function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:d;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,g(n)))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.getKey=function(){return this.get("key")},t.prototype.getType=function(){return this.get("type")},t.prototype.getText=function(){return this.get("text")},t.prototype.getCharacterList=function(){return this.get("characterList")},t.prototype.getLength=function(){return this.getText().length},t.prototype.getDepth=function(){return this.get("depth")},t.prototype.getData=function(){return this.get("data")},t.prototype.getInlineStyleAt=function(e){var t=this.getCharacterList().get(e);return t?t.getStyle():f},t.prototype.getEntityAt=function(e){var t=this.getCharacterList().get(e);return t?t.getEntity():null},t.prototype.getChildKeys=function(){return this.get("children")},t.prototype.getParentKey=function(){return this.get("parent")},t.prototype.getPrevSiblingKey=function(){return this.get("prevSibling")},t.prototype.getNextSiblingKey=function(){return this.get("nextSibling")},t.prototype.findStyleRanges=function(e,t){i(this.getCharacterList(),p,e,t)},t.prototype.findEntityRanges=function(e,t){i(this.getCharacterList(),h,e,t)},t}(l(d));e.exports=y},function(e,t,n){var r=n(164)("wks"),o=n(102),i=n(44).Symbol,a="function"==typeof i;(e.exports=function(e){return r[e]||(r[e]=a&&i[e]||(a?i:o)("Symbol."+e))}).store=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={easeOutFunction:"cubic-bezier(0.23, 1, 0.32, 1)",easeInOutFunction:"cubic-bezier(0.445, 0.05, 0.55, 0.95)",easeOut:function(e,t,n,r){if(r=r||this.easeOutFunction,t&&"[object Array]"===Object.prototype.toString.call(t)){for(var o="",i=0;i<t.length;i++)o&&(o+=","),o+=this.create(e,t[i],n,r);return o}return this.create(e,t,n,r)},create:function(e,t,n,r){return e=e||"450ms",t=t||"all",n=n||"0ms",t+" "+e+" "+(r=r||"linear")+" "+n}}},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){"use strict";e.exports=function(e){if(null!=e)return e;throw new Error("Got unexpected null or undefined")}},function(e,t,n){var r=n(226),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},function(e,t){var n=Array.isArray;e.exports=n},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){var r=n(301),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},function(e,t,n){"use strict";var r=n(768),o=n(771),i=n(772),a=n(773);function s(e,t,n,r){if(e===n)return!0;if(!n.startsWith(e))return!1;var i=n.slice(e.length);return!!t&&(i=r?r(i):i,o.contains(i,t))}function u(e){return"Windows"===r.platformName?e.replace(/^\s*NT/,""):e}var l={isBrowser:function(e){return s(r.browserName,r.browserFullVersion,e)},isBrowserArchitecture:function(e){return s(r.browserArchitecture,null,e)},isDevice:function(e){return s(r.deviceName,null,e)},isEngine:function(e){return s(r.engineName,r.engineVersion,e)},isPlatform:function(e){return s(r.platformName,r.platformFullVersion,e,u)},isPlatformArchitecture:function(e){return s(r.platformArchitecture,null,e)}};e.exports=i(l,a)},function(e,t,n){var r=n(365),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.icons=void 0;var r=a(n(0)),o=a(n(1)),i=n(7);function a(e){return e&&e.__esModule?e:{default:e}}const s=o.default.svg.withConfig({displayName:"SvgIcon__StyledSvgSpinner",componentId:"w0wn5g-0"})(["width:",";height:",";flex:none;animation:loadingSpinnerRotator 1.4s linear infinite;& .path{stroke:",";stroke-dasharray:187;stroke-dashoffset:0;transform-origin:center;animation:loadingSpinnerDash 1.4s ease-in-out infinite;}@keyframes loadingSpinnerRotator{0%{transform:rotate( 0deg );}100%{transform:rotate( 270deg );}}@keyframes loadingSpinnerDash{0%{stroke-dashoffset:187;}50%{stroke-dashoffset:47;transform:rotate( 135deg );}100%{stroke-dashoffset:187;transform:rotate( 450deg );}}"],e=>e.size,e=>e.size,e=>e.fill),u=t.icons={"chevron-down":{viewbox:"0 0 24 24",width:"24px",path:[r.default.createElement("g",{key:"1"},r.default.createElement("path",{fill:"none",d:"M0,0h24v24H0V0z"})),r.default.createElement("g",{key:"2"},r.default.createElement("path",{d:"M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"}))]},"chevron-up":{viewbox:"0 0 24 24",width:"24px",path:[r.default.createElement("g",{key:"1"},r.default.createElement("path",{fill:"none",d:"M0,0h24v24H0V0z"})),r.default.createElement("g",{key:"2"},r.default.createElement("path",{d:"M12,8l-6,6l1.41,1.41L12,10.83l4.59,4.58L18,14L12,8z"}))]},clipboard:{viewbox:"0 0 1792 1792",path:"M768 1664h896v-640h-416q-40 0-68-28t-28-68v-416h-384v1152zm256-1440v-64q0-13-9.5-22.5t-22.5-9.5h-704q-13 0-22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h704q13 0 22.5-9.5t9.5-22.5zm256 672h299l-299-299v299zm512 128v672q0 40-28 68t-68 28h-960q-40 0-68-28t-28-68v-160h-544q-40 0-68-28t-28-68v-1344q0-40 28-68t68-28h1088q40 0 68 28t28 68v328q21 13 36 28l408 408q28 28 48 76t20 88z"},check:{viewbox:"0 0 1792 1792",path:"M249.2,431.2c-23,0-45.6,9.4-61.8,25.6L25.6,618.6C9.4,634.8,0,657.4,0,680.4c0,23,9.4,45.6,25.6,61.8 l593.1,593.1c16.2,16.2,38.8,25.6,61.8,25.6c23,0,45.6-9.4,61.8-25.6L1766.4,311c16.2-16.2,25.6-38.8,25.6-61.8 s-9.4-45.6-25.6-61.8L1604.5,25.6C1588.3,9.4,1565.8,0,1542.8,0c-23,0-45.6,9.4-61.8,25.6L680.4,827L311,456.3 C294.8,440.5,272.3,431.2,249.2,431.2z"},"angle-down":{viewbox:"0 0 1792 1792",path:"M1395 736q0 13-10 23l-466 466q-10 10-23 10t-23-10l-466-466q-10-10-10-23t10-23l50-50q10-10 23-10t23 10l393 393 393-393q10-10 23-10t23 10l50 50q10 10 10 23z"},"angle-left":{viewbox:"0 0 1792 1792",path:"M1203 544q0 13-10 23l-393 393 393 393q10 10 10 23t-10 23l-50 50q-10 10-23 10t-23-10l-466-466q-10-10-10-23t10-23l466-466q10-10 23-10t23 10l50 50q10 10 10 23z"},"angle-right":{viewbox:"0 0 1792 1792",path:"M1171 960q0 13-10 23l-466 466q-10 10-23 10t-23-10l-50-50q-10-10-10-23t10-23l393-393-393-393q-10-10-10-23t10-23l50-50q10-10 23-10t23 10l466 466q10 10 10 23z"},"angle-up":{viewbox:"0 0 1792 1792",path:"M1395 1184q0 13-10 23l-50 50q-10 10-23 10t-23-10l-393-393-393 393q-10 10-23 10t-23-10l-50-50q-10-10-10-23t10-23l466-466q10-10 23-10t23 10l466 466q10 10 10 23z"},"arrow-down":{viewbox:"0 0 1792 1792",path:"M896 1791L120.91 448.5L1671.09 448.5z"},"arrow-left":{viewbox:"0 0 1792 1792",path:"M1343.5 1671.09L1 896L1343.5 120.91z"},"arrow-right":{viewbox:"0 0 1792 1792",path:"M1791 896L448.5 1671.09L448.5 120.91z"},"arrow-up":{viewbox:"0 0 1792 1792",path:"M1671.09 1343.5L120.91 1343.5L896 1z"},"caret-right":{viewbox:"0 0 192 512",path:"M 0 384.662 V 127.338 c 0 -17.818 21.543 -26.741 34.142 -14.142 l 128.662 128.662 c 7.81 7.81 7.81 20.474 0 28.284 L 34.142 398.804 C 21.543 411.404 0 402.48 0 384.662 Z"},circle:{viewbox:"0 0 1792 1792",path:"M1664 896q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"},desktop:{viewbox:"0 0 1792 1792",path:"M1728 992v-832q0-13-9.5-22.5t-22.5-9.5h-1600q-13 0-22.5 9.5t-9.5 22.5v832q0 13 9.5 22.5t22.5 9.5h1600q13 0 22.5-9.5t9.5-22.5zm128-832v1088q0 66-47 113t-113 47h-544q0 37 16 77.5t32 71 16 43.5q0 26-19 45t-45 19h-512q-26 0-45-19t-19-45q0-14 16-44t32-70 16-78h-544q-66 0-113-47t-47-113v-1088q0-66 47-113t113-47h1600q66 0 113 47t47 113z"},edit:{viewbox:"0 0 1792 1792",path:"M491 1536l91-91-235-235-91 91v107h128v128h107zm523-928q0-22-22-22-10 0-17 7l-542 542q-7 7-7 17 0 22 22 22 10 0 17-7l542-542q7-7 7-17zm-54-192l416 416-832 832h-416v-416zm683 96q0 53-37 90l-166 166-416-416 166-165q36-38 90-38 53 0 91 38l235 234q37 39 37 91z"},eye:{viewbox:"0 0 1792 1792",path:"M1664 960q-152-236-381-353 61 104 61 225 0 185-131.5 316.5t-316.5 131.5-316.5-131.5-131.5-316.5q0-121 61-225-229 117-381 353 133 205 333.5 326.5t434.5 121.5 434.5-121.5 333.5-326.5zm-720-384q0-20-14-34t-34-14q-125 0-214.5 89.5t-89.5 214.5q0 20 14 34t34 14 34-14 14-34q0-86 61-147t147-61q20 0 34-14t14-34zm848 384q0 34-20 69-140 230-376.5 368.5t-499.5 138.5-499.5-139-376.5-368q-20-35-20-69t20-69q140-229 376.5-368t499.5-139 499.5 139 376.5 368q20 35 20 69z"},"exclamation-triangle":{viewbox:"0 0 1792 1792",path:"M1024 1375v-190q0-14-9.5-23.5T992 1152H800q-13 0-22.5 9.5T768 1185v190q0 14 9.5 23.5t22.5 9.5h192q13 0 22.5-9.5t9.5-23.5zm-2-374l18-459q0-12-10-19-13-11-24-11H786q-11 0-24 11-10 7-10 21l17 457q0 10 10 16.5t24 6.5h185q14 0 23.5-6.5t10.5-16.5zm-14-934l768 1408q35 63-2 126-17 29-46.5 46t-63.5 17H128q-34 0-63.5-17T18 1601q-37-63-2-126L784 67q17-31 47-49t65-18 65 18 47 49z"},"file-text":{viewbox:"0 0 1792 1792",path:"M1596 380q28 28 48 76t20 88v1152q0 40-28 68t-68 28h-1344q-40 0-68-28t-28-68v-1600q0-40 28-68t68-28h896q40 0 88 20t76 48zm-444-244v376h376q-10-29-22-41l-313-313q-12-12-41-22zm384 1528v-1024h-416q-40 0-68-28t-28-68v-416h-768v1536h1280zm-1024-864q0-14 9-23t23-9h704q14 0 23 9t9 23v64q0 14-9 23t-23 9h-704q-14 0-23-9t-9-23v-64zm736 224q14 0 23 9t9 23v64q0 14-9 23t-23 9h-704q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h704zm0 256q14 0 23 9t9 23v64q0 14-9 23t-23 9h-704q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h704z"},gear:{viewbox:"0 0 1792 1792",path:"M1800 800h-218q-26 -107 -81 -193l154 -154l-210 -210l-154 154q-88 -55 -191 -79v-218h-300v218q-103 24 -191 79l-154 -154l-212 212l154 154q-55 88 -79 191h-218v297h217q23 101 80 194l-154 154l210 210l154 -154q85 54 193 81v218h300v-218q103 -24 191 -79 l154 154l212 -212l-154 -154q57 -93 80 -194h217v-297zM950 650q124 0 212 88t88 212t-88 212t-212 88t-212 -88t-88 -212t88 -212t212 -88z"},key:{viewbox:"0 0 1792 1792",path:"M832 512q0-80-56-136t-136-56-136 56-56 136q0 42 19 83-41-19-83-19-80 0-136 56t-56 136 56 136 136 56 136-56 56-136q0-42-19-83 41 19 83 19 80 0 136-56t56-136zm851 704q0 17-49 66t-66 49q-9 0-28.5-16t-36.5-33-38.5-40-24.5-26l-96 96 220 220q28 28 28 68 0 42-39 81t-81 39q-40 0-68-28l-671-671q-176 131-365 131-163 0-265.5-102.5t-102.5-265.5q0-160 95-313t248-248 313-95q163 0 265.5 102.5t102.5 265.5q0 189-131 365l355 355 96-96q-3-3-26-24.5t-40-38.5-33-36.5-16-28.5q0-17 49-66t66-49q13 0 23 10 6 6 46 44.5t82 79.5 86.5 86 73 78 28.5 41z"},list:{viewbox:"0 0 1792 1792",path:"M384 1408q0 80-56 136t-136 56-136-56-56-136 56-136 136-56 136 56 56 136zm0-512q0 80-56 136t-136 56-136-56-56-136 56-136 136-56 136 56 56 136zm1408 416v192q0 13-9.5 22.5t-22.5 9.5h-1216q-13 0-22.5-9.5t-9.5-22.5v-192q0-13 9.5-22.5t22.5-9.5h1216q13 0 22.5 9.5t9.5 22.5zm-1408-928q0 80-56 136t-136 56-136-56-56-136 56-136 136-56 136 56 56 136zm1408 416v192q0 13-9.5 22.5t-22.5 9.5h-1216q-13 0-22.5-9.5t-9.5-22.5v-192q0-13 9.5-22.5t22.5-9.5h1216q13 0 22.5 9.5t9.5 22.5zm0-512v192q0 13-9.5 22.5t-22.5 9.5h-1216q-13 0-22.5-9.5t-9.5-22.5v-192q0-13 9.5-22.5t22.5-9.5h1216q13 0 22.5 9.5t9.5 22.5z"},"loading-spinner":{viewbox:"0 0 66 66",CustomComponent:s,path:[r.default.createElement("circle",{key:"5",className:"path",fill:"none",strokeWidth:"6",strokeLinecap:"round",cx:"33",cy:"33",r:"30"})]},mobile:{viewbox:"0 0 1792 1792",path:"M976 1408q0-33-23.5-56.5t-56.5-23.5-56.5 23.5-23.5 56.5 23.5 56.5 56.5 23.5 56.5-23.5 23.5-56.5zm208-160v-704q0-13-9.5-22.5t-22.5-9.5h-512q-13 0-22.5 9.5t-9.5 22.5v704q0 13 9.5 22.5t22.5 9.5h512q13 0 22.5-9.5t9.5-22.5zm-192-848q0-16-16-16h-160q-16 0-16 16t16 16h160q16 0 16-16zm288-16v1024q0 52-38 90t-90 38h-512q-52 0-90-38t-38-90v-1024q0-52 38-90t90-38h512q52 0 90 38t38 90z"},"pencil-square":{viewbox:"0 0 1792 1792",path:"M888 1184l116-116-152-152-116 116v56h96v96h56zm440-720q-16-16-33 1l-350 350q-17 17-1 33t33-1l350-350q17-17 1-33zm80 594v190q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h832q63 0 117 25 15 7 18 23 3 17-9 29l-49 49q-14 14-32 8-23-6-45-6h-832q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113v-126q0-13 9-22l64-64q15-15 35-7t20 29zm-96-738l288 288-672 672h-288v-288zm444 132l-92 92-288-288 92-92q28-28 68-28t68 28l152 152q28 28 28 68t-28 68z"},plus:{viewbox:"0 0 1792 1792",path:"M1600 736v192q0 40-28 68t-68 28h-416v416q0 40-28 68t-68 28h-192q-40 0-68-28t-28-68v-416h-416q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h416v-416q0-40 28-68t68-28h192q40 0 68 28t28 68v416h416q40 0 68 28t28 68z"},"plus-circle":{viewbox:"0 0 1792 1792",path:"M1344 960v-128q0-26-19-45t-45-19h-256v-256q0-26-19-45t-45-19h-128q-26 0-45 19t-19 45v256h-256q-26 0-45 19t-19 45v128q0 26 19 45t45 19h256v256q0 26 19 45t45 19h128q26 0 45-19t19-45v-256h256q26 0 45-19t19-45zm320-64q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"},"question-circle":{viewbox:"0 0 1792 1792",path:"M1024 1376v-192q0-14-9-23t-23-9h-192q-14 0-23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23-9t9-23zm256-672q0-88-55.5-163t-138.5-116-170-41q-243 0-371 213-15 24 8 42l132 100q7 6 19 6 16 0 25-12 53-68 86-92 34-24 86-24 48 0 85.5 26t37.5 59q0 38-20 61t-68 45q-63 28-115.5 86.5t-52.5 125.5v36q0 14 9 23t23 9h192q14 0 23-9t9-23q0-19 21.5-49.5t54.5-49.5q32-18 49-28.5t46-35 44.5-48 28-60.5 12.5-81zm384 192q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"},search:{viewbox:"0 0 1792 1792",path:"M1216 832q0-185-131.5-316.5t-316.5-131.5-316.5 131.5-131.5 316.5 131.5 316.5 316.5 131.5 316.5-131.5 131.5-316.5zm512 832q0 52-38 90t-90 38q-54 0-90-38l-343-342q-179 124-399 124-143 0-273.5-55.5t-225-150-150-225-55.5-273.5 55.5-273.5 150-225 225-150 273.5-55.5 273.5 55.5 225 150 150 225 55.5 273.5q0 220-124 399l343 343q37 37 37 90z"},"seo-score-bad":{viewbox:"0 0 496 512",path:"M248 8C111 8 0 119 0 256s111 248 248 248s248-111 248-248S385 8 248 8z M328 176c17.7 0 32 14.3 32 32 s-14.3 32-32 32s-32-14.3-32-32S310.3 176 328 176z M168 176c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32S150.3 176 168 176 z M338.2 394.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320 s86.3 19.6 114.7 53.8C376.3 390 351.7 410.5 338.2 394.2L338.2 394.2z"},"seo-score-good":{viewbox:"0 0 496 512",path:"M248 8C111 8 0 119 0 256s111 248 248 248s248-111 248-248S385 8 248 8z M328 176c17.7 0 32 14.3 32 32 s-14.3 32-32 32s-32-14.3-32-32S310.3 176 328 176z M168 176c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32S150.3 176 168 176 z M362.8 346.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5c22.4 26.9 55.2 42.2 90.2 42.2 s67.8-15.4 90.2-42.2C351.6 309.5 376.3 329.9 362.8 346.2L362.8 346.2z"},"seo-score-none":{viewbox:"0 0 496 512",path:"M248 8C111 8 0 119 0 256s111 248 248 248s248-111 248-248S385 8 248 8z"},"seo-score-ok":{viewbox:"0 0 496 512",path:[r.default.createElement("path",{key:"1",fill:"#000000",d:"M344 336c21.2 0 21.2 32 0 32H152c-21.2 0-21.2-32 0-32H344z"}),r.default.createElement("circle",{key:"2",fill:"#000000",cx:"328",cy:"208",r:"32"}),r.default.createElement("circle",{key:"3",fill:"#000000",cx:"168",cy:"208",r:"32"}),r.default.createElement("path",{key:"4",d:"M248 8c137 0 248 111 248 248S385 504 248 504S0 393 0 256S111 8 248 8z M360 208c0-17.7-14.3-32-32-32 s-32 14.3-32 32s14.3 32 32 32S360 225.7 360 208z M344 368c21.2 0 21.2-32 0-32H152c-21.2 0-21.2 32 0 32H344z M200 208 c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32S200 225.7 200 208z"})]},times:{viewbox:"0 0 1792 1792",path:"M1490 1322q0 40-28 68l-136 136q-28 28-68 28t-68-28l-294-294-294 294q-28 28-68 28t-68-28l-136-136q-28-28-28-68t28-68l294-294-294-294q-28-28-28-68t28-68l136-136q28-28 68-28t68 28l294 294 294-294q28-28 68-28t68 28l136 136q28 28 28 68t-28 68l-294 294 294 294q28 28 28 68z"},"times-circle":{viewbox:"0 0 20 20",path:"M10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8 3.58-8 8-8zm5 11l-3-3 3-3-2-2-3 3-3-3-2 2 3 3-3 3 2 2 3-3 3 3z"},"alert-info":{viewbox:"0 0 512 512",path:"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"},"alert-error":{viewbox:"0 0 512 512",path:"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z"},"alert-success":{viewbox:"0 0 512 512",path:"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"},"alert-warning":{viewbox:"0 0 576 512",path:"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"}};t.default=(0,i.createSvgIconComponent)(u)},function(e,t,n){"use strict";var r={},o=Math.pow(2,24);e.exports=function(){for(var e=void 0;void 0===e||r.hasOwnProperty(e)||!isNaN(+e);)e=Math.floor(Math.random()*o).toString(32);return r[e]=!0,e}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,n){e.exports=n(573)()},function(e,t,n){var r=n(44),o=n(21),i=n(158),a=n(64),s=n(53),u=function(e,t,n){var l,c,f,d=e&u.F,p=e&u.G,h=e&u.S,g=e&u.P,y=e&u.B,m=e&u.W,v=p?o:o[t]||(o[t]={}),b=v.prototype,_=p?r:h?r[t]:(r[t]||{}).prototype;for(l in p&&(n=t),n)(c=!d&&_&&void 0!==_[l])&&s(v,l)||(f=c?_[l]:n[l],v[l]=p&&"function"!=typeof _[l]?n[l]:y&&c?i(f,r):m&&_[l]==f?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(f):g&&"function"==typeof f?i(Function.call,f):f,g&&((v.virtual||(v.virtual={}))[l]=f,e&u.R&&b&&!b[l]&&a(b,l,f)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){var r=n(51),o=n(273),i=n(159),a=Object.defineProperty;t.f=n(52)?Object.defineProperty:function(e,t,n){if(r(e),t=i(t,!0),r(n),o)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){"use strict";var r=n(746);e.exports=r},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,n){var r;
|
7 |
/*!
|
8 |
Copyright (c) 2017 Jed Watson.
|
9 |
Licensed under the MIT License (MIT), see
|
@@ -14,7 +14,7 @@ object-assign
|
|
14 |
Licensed under the MIT License (MIT), see
|
15 |
http://jedwatson.github.io/classnames
|
16 |
*/
|
17 |
-
!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var i=typeof r;if("string"===i||"number"===i)e.push(r);else if(Array.isArray(r)&&r.length){var a=o.apply(null,r);a&&e.push(a)}else if("object"===i)for(var s in r)n.call(r,s)&&r[s]&&e.push(s)}}return e.join(" ")}void 0!==e&&e.exports?(o.default=o,e.exports=o):void 0===(r=function(){return o}.apply(t,[]))||(e.exports=r)}()},function(e,t,n){var r=n(415),o=n(418);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},function(e,t,n){var r=n(65);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){e.exports=!n(66)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(107),o=n(711),i=n(712),a="[object Null]",s="[object Undefined]",u=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?s:a:u&&u in Object(e)?o(e):i(e)}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,n){"use strict";var r=n(25),o=n(4),i=n(85),a=o.List,s=o.Map,u=o.OrderedSet,l=o.Record,c=o.Repeat,f=u(),d=function(e){if(!e)return e;var t=e.characterList,n=e.text;return n&&!t&&(e.characterList=a(c(r.EMPTY,n.length))),e},p=function(e){function t(n){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,d(n)))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.getKey=function(){return this.get("key")},t.prototype.getType=function(){return this.get("type")},t.prototype.getText=function(){return this.get("text")},t.prototype.getCharacterList=function(){return this.get("characterList")},t.prototype.getLength=function(){return this.getText().length},t.prototype.getDepth=function(){return this.get("depth")},t.prototype.getData=function(){return this.get("data")},t.prototype.getInlineStyleAt=function(e){var t=this.getCharacterList().get(e);return t?t.getStyle():f},t.prototype.getEntityAt=function(e){var t=this.getCharacterList().get(e);return t?t.getEntity():null},t.prototype.findStyleRanges=function(e,t){i(this.getCharacterList(),h,e,t)},t.prototype.findEntityRanges=function(e,t){i(this.getCharacterList(),g,e,t)},t}(l({key:"",type:"unstyled",text:"",characterList:a(),depth:0,data:s()}));function h(e,t){return e.getStyle()===t.getStyle()}function g(e,t){return e.getEntity()===t.getEntity()}e.exports=p},function(e,t,n){"use strict";var r=n(5),o=55296,i=56319,a=56320,s=57343,u=/[\uD800-\uDFFF]/;function l(e){return o<=e&&e<=s}function c(e){return u.test(e)}function f(e,t){return 1+l(e.charCodeAt(t))}function d(e,t,n){if(t=t||0,n=void 0===n?1/0:n||0,!c(e))return e.substr(t,n);var r=e.length;if(r<=0||t>r||n<=0)return"";var o=0;if(t>0){for(;t>0&&o<r;t--)o+=f(e,o);if(o>=r)return""}else if(t<0){for(o=r;t<0&&0<o;t++)o-=f(e,o-1);o<0&&(o=0)}var i=r;if(n<r)for(i=o;n>0&&i<r;n--)i+=f(e,i);return e.substring(o,i)}var p={getCodePoints:function(e){for(var t=[],n=0;n<e.length;n+=f(e,n))t.push(e.codePointAt(n));return t},getUTF16Length:f,hasSurrogateUnit:c,isCodeUnitInSurrogateRange:l,isSurrogatePair:function(e,t){if(0<=t&&t<e.length||r(!1),t+1===e.length)return!1;var n=e.charCodeAt(t),u=e.charCodeAt(t+1);return o<=n&&n<=i&&a<=u&&u<=s},strlen:function(e){if(!c(e))return e.length;for(var t=0,n=0;n<e.length;n+=f(e,n))t++;return t},substring:function(e,t,n){t=t||0,n=void 0===n?1/0:n||0,t<0&&(t=0),n<0&&(n=0);var r=Math.abs(n-t);return d(e,t=t<n?t:n,r)},substr:d};e.exports=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.recommendedReplacementVariablesShape=t.replacementVariablesShape=t.lengthProgressShape=void 0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(17));t.lengthProgressShape=r.default.shape({max:r.default.number,actual:r.default.number,score:r.default.number}),t.replacementVariablesShape=r.default.arrayOf(r.default.shape({name:r.default.string.isRequired,value:r.default.string.isRequired,label:r.default.string,description:r.default.string})),t.recommendedReplacementVariablesShape=r.default.arrayOf(r.default.string)},function(e,t,n){var r=n(976),o=n(981);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BaseButton=t.addButtonStyles=void 0,t.addBaseStyle=f,t.addFocusStyle=d,t.addHoverStyle=p,t.addActiveStyle=h;var r=u(n(1)),o=u(n(224)),i=u(n(2)),a=n(3),s=n(7);function u(e){return e&&e.__esModule?e:{default:e}}const l={minHeight:32,verticalPadding:4,borderWidth:1},c=l.minHeight-2*l.verticalPadding-2*l.borderWidth;function f(e){return(0,r.default)(e).withConfig({displayName:"Button",componentId:"grb41s-0"})(["display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;border-width:",";border-style:solid;margin:0;padding:"," 10px;border-radius:3px;cursor:pointer;box-sizing:border-box;font-size:inherit;font-family:inherit;font-weight:inherit;text-align:",";overflow:visible;min-height:",';svg{align-self:center;}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){::after{display:inline-block;content:"";min-height:',";}}"],`${l.borderWidth}px`,`${l.verticalPadding}px`,(0,s.getDirectionalStyle)("left","right"),`${l.minHeight}px`,`${c}px`)}function d(e){return(0,r.default)(e).withConfig({displayName:"Button",componentId:"grb41s-1"})(["&::-moz-focus-inner{border-width:0;}&:focus{outline:none;border-color:",";color:",";background-color:",";box-shadow:0 0 3px ",";}"],e=>e.focusBorderColor,e=>e.focusColor,e=>e.focusBackgroundColor,(0,a.rgba)(a.colors.$color_blue_dark,.8))}function p(e){return(0,r.default)(e).withConfig({displayName:"Button",componentId:"grb41s-2"})(["&:hover{color:",";background-color:",";border-color:",";}"],e=>e.hoverColor,e=>e.hoverBackgroundColor,e=>e.hoverBorderColor)}function h(e){return(0,r.default)(e).withConfig({displayName:"Button",componentId:"grb41s-3"})(["&:active{color:",";background-color:",";border-color:",";box-shadow:inset 0 2px 5px -3px ",";}"],e=>e.activeColor,e=>e.activeBackgroundColor,e=>e.activeBorderColor,(0,a.rgba)(a.colors.$color_button_border_active,.5))}const g=t.addButtonStyles=(0,o.default)([h,d,p,f]),y=t.BaseButton=g(r.default.button.withConfig({displayName:"Button__BaseButton",componentId:"grb41s-4"})(["color:",";border-color:",";background:",";box-shadow:0 1px 0 ",";"],e=>e.textColor,e=>e.borderColor,e=>e.backgroundColor,e=>(0,a.rgba)(e.boxShadowColor,1)));y.propTypes={type:i.default.string,backgroundColor:i.default.string,textColor:i.default.string,borderColor:i.default.string,boxShadowColor:i.default.string,hoverColor:i.default.string,hoverBackgroundColor:i.default.string,hoverBorderColor:i.default.string,activeColor:i.default.string,activeBackgroundColor:i.default.string,activeBorderColor:i.default.string,focusColor:i.default.string,focusBackgroundColor:i.default.string,focusBorderColor:i.default.string},y.defaultProps={type:"button",backgroundColor:a.colors.$color_button,textColor:a.colors.$color_button_text,borderColor:a.colors.$color_button_border,boxShadowColor:a.colors.$color_button_border,hoverColor:a.colors.$color_button_text_hover,hoverBackgroundColor:a.colors.$color_button_hover,hoverBorderColor:a.colors.$color_button_border_hover,activeColor:a.colors.$color_button_text_hover,activeBackgroundColor:a.colors.$color_button,activeBorderColor:a.colors.$color_button_border_hover,focusColor:a.colors.$color_button_text_hover,focusBackgroundColor:a.colors.$color_white,focusBorderColor:a.colors.$color_blue},t.default=y},function(e,t,n){var r=n(78),o=n(408),i=n(409),a="[object Null]",s="[object Undefined]",u=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?s:a:u&&u in Object(e)?o(e):i(e)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=s(n(0)),i=s(n(526)),a=s(n(529));function s(e){return e&&e.__esModule?e:{default:e}}var u=void 0;function l(e,t){var n,a,s,c,f,d,p,h,g=[],y={};for(d=0;d<e.length;d++)if("string"!==(f=e[d]).type){if(!t.hasOwnProperty(f.value)||void 0===t[f.value])throw new Error("Invalid interpolation, missing component node: `"+f.value+"`");if("object"!==r(t[f.value]))throw new Error("Invalid interpolation, component node must be a ReactElement or null: `"+f.value+"`","\n> "+u);if("componentClose"===f.type)throw new Error("Missing opening component token: `"+f.value+"`");if("componentOpen"===f.type){n=t[f.value],s=d;break}g.push(t[f.value])}else g.push(f.value);return n&&(c=function(e,t){var n,r,o=t[e],i=0;for(r=e+1;r<t.length;r++)if((n=t[r]).value===o.value){if("componentOpen"===n.type){i++;continue}if("componentClose"===n.type){if(0===i)return r;i--}}throw new Error("Missing closing component token `"+o.value+"`")}(s,e),p=l(e.slice(s+1,c),t),a=o.default.cloneElement(n,{},p),g.push(a),c<e.length-1&&(h=l(e.slice(c+1),t),g=g.concat(h))),1===g.length?g[0]:(g.forEach(function(e,t){e&&(y["interpolation-child-"+t]=e)}),(0,i.default)(y))}t.default=function(e){var t=e.mixedString,n=e.components,o=e.throwErrors;if(u=t,!n)return t;if("object"!==(void 0===n?"undefined":r(n))){if(o)throw new Error("Interpolation Error: unable to process `"+t+"` because components is not an object");return t}var i=(0,a.default)(t);try{return l(i,n)}catch(e){if(o)throw new Error("Interpolation Error: unable to process `"+t+"` because of error `"+e.message+"`");return t}}},function(e,t,n){"use strict";e.exports=function(){}},function(e,t,n){var r=n(45),o=n(81);e.exports=n(52)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){var r=n(276),o=n(161);e.exports=function(e){return r(o(e))}},function(e,t){e.exports={}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){if(n)return[e,t];return e},e.exports=t.default},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){"use strict";var r=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.serialize=function(){return"Anchor: "+this.getAnchorKey()+":"+this.getAnchorOffset()+", Focus: "+this.getFocusKey()+":"+this.getFocusOffset()+", Is Backward: "+String(this.getIsBackward())+", Has Focus: "+String(this.getHasFocus())},t.prototype.getAnchorKey=function(){return this.get("anchorKey")},t.prototype.getAnchorOffset=function(){return this.get("anchorOffset")},t.prototype.getFocusKey=function(){return this.get("focusKey")},t.prototype.getFocusOffset=function(){return this.get("focusOffset")},t.prototype.getIsBackward=function(){return this.get("isBackward")},t.prototype.getHasFocus=function(){return this.get("hasFocus")},t.prototype.hasEdgeWithin=function(e,t,n){var r=this.getAnchorKey(),o=this.getFocusKey();if(r===o&&r===e){var i=this.getStartOffset();return t<=this.getEndOffset()&&i<=n}if(e!==r&&e!==o)return!1;var a=e===r?this.getAnchorOffset():this.getFocusOffset();return t<=a&&n>=a},t.prototype.isCollapsed=function(){return this.getAnchorKey()===this.getFocusKey()&&this.getAnchorOffset()===this.getFocusOffset()},t.prototype.getStartKey=function(){return this.getIsBackward()?this.getFocusKey():this.getAnchorKey()},t.prototype.getStartOffset=function(){return this.getIsBackward()?this.getFocusOffset():this.getAnchorOffset()},t.prototype.getEndKey=function(){return this.getIsBackward()?this.getAnchorKey():this.getFocusKey()},t.prototype.getEndOffset=function(){return this.getIsBackward()?this.getAnchorOffset():this.getFocusOffset()},t.createEmpty=function(e){return new t({anchorKey:e,anchorOffset:0,focusKey:e,focusOffset:0,isBackward:!1,hasFocus:!1})},t}((0,n(4).Record)({anchorKey:"",anchorOffset:0,focusKey:"",focusOffset:0,isBackward:!1,hasFocus:!1}));e.exports=r},function(e,t,n){"use strict";function r(e){return e.replace(/\//g,"-")}e.exports=function(e){return"object"==typeof e?Object.keys(e).filter(function(t){return e[t]}).map(r).join(" "):Array.prototype.map.call(arguments,r).join(" ")}},function(e,t,n){var r=n(872),o=n(875);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},function(e,t,n){var r=n(75),o=n(977),i=n(978),a="[object Null]",s="[object Undefined]",u=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?s:a:u&&u in Object(e)?o(e):i(e)}},function(e,t,n){var r=n(37).Symbol;e.exports=r},function(e,t,n){var r=n(204),o=n(362);e.exports=function(e,t,n,i){var a=!n;n||(n={});for(var s=-1,u=t.length;++s<u;){var l=t[s],c=i?i(n[l],e[l],l,n,e):void 0;void 0===c&&(c=e[l]),a?o(n,l,c):r(n,l,c)}return n}},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){var r=n(32).Symbol;e.exports=r},function(e,t,n){var r=n(237),o=n(238);e.exports=function(e,t,n,i){var a=!n;n||(n={});for(var s=-1,u=t.length;++s<u;){var l=t[s],c=i?i(n[l],e[l],l,n,e):void 0;void 0===c&&(c=e[l]),a?o(n,l,c):r(n,l,c)}return n}},function(e,t,n){e.exports=n(561)()},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var r=n(275),o=n(165);e.exports=Object.keys||function(e){return r(e,o)}},function(e,t,n){var r=n(161);e.exports=function(e){return Object(r(e))}},function(e,t,n){"use strict";var r=n(4).OrderedMap,o={createFromArray:function(e){return r(e.map(function(e){return[e.getKey(),e]}))}};e.exports=o},function(e,t,n){"use strict";e.exports=function(e,t,n,r){if(e.size){var o=0;e.reduce(function(e,i,a){return t(e,i)||(n(e)&&r(o,a),o=a),i}),n(e.last())&&r(o,e.count())}}},function(e,t,n){"use strict";e.exports=function(e){return"handled"===e||!0===e}},function(e,t,n){"use strict";var r=n(22);e.exports=function(e,t,n){var o=e.getSelection(),i=e.getCurrentContent(),a=o;if(o.isCollapsed()){if("forward"===n){if(e.isSelectionAtEndOfContent())return i}else if(e.isSelectionAtStartOfContent())return i;if((a=t(e))===o)return i}return r.removeRange(i,a,n)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SiteSEOReport=t.renderRatingToColor=t.AnalysisList=t.AnalysisResult=t.ContentAnalysis=void 0;var r=n(360),o=u(r),i=u(n(965)),a=u(n(361)),s=u(n(966));function u(e){return e&&e.__esModule?e:{default:e}}t.ContentAnalysis=i.default,t.AnalysisResult=a.default,t.AnalysisList=o.default,t.renderRatingToColor=r.renderRatingToColor,t.SiteSEOReport=s.default},function(e,t,n){var r=n(369),o=n(993),i=n(121);e.exports=function(e){return i(e)?r(e):o(e)}},function(e,t,n){var r=n(129),o=1/0;e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-o?"-0":t}},function(e,t,n){e.exports=n(1091)()},function(e,t,n){var r=n(234),o=n(430),i=n(484),a=n(146),s=n(79),u=n(495),l=n(225),c=n(248),f=l(function(e,t){var n={};if(null==e)return n;var l=!1;t=r(t,function(t){return t=a(t,e),l||(l=t.length>1),t}),s(e,c(e),n),l&&(n=o(n,7,u));for(var f=t.length;f--;)i(n,t[f]);return n});e.exports=f},function(e,t,n){var r=n(432),o=n(433),i=n(434),a=n(435),s=n(436);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},function(e,t,n){var r=n(235);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},function(e,t,n){var r=n(50)(Object,"create");e.exports=r},function(e,t,n){var r=n(450);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},function(e,t){var n=Object.prototype;e.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||n)}},function(e,t,n){var r=n(469),o=n(137),i=n(470),a=n(471),s=n(231),u=n(61),l=n(229),c=l(r),f=l(o),d=l(i),p=l(a),h=l(s),g=u;(r&&"[object DataView]"!=g(new r(new ArrayBuffer(1)))||o&&"[object Map]"!=g(new o)||i&&"[object Promise]"!=g(i.resolve())||a&&"[object Set]"!=g(new a)||s&&"[object WeakMap]"!=g(new s))&&(g=function(e){var t=u(e),n="[object Object]"==t?e.constructor:void 0,r=n?l(n):"";if(r)switch(r){case c:return"[object DataView]";case f:return"[object Map]";case d:return"[object Promise]";case p:return"[object Set]";case h:return"[object WeakMap]"}return t}),e.exports=g},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(581));t.default=r.default},function(e,t){e.exports=!0},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){"use strict";var r=n(596)(!0);n(280)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={set:function(e,t,n){e[t]=n}}},function(e,t,n){var r=n(54),o=n(55),i="[object Symbol]";e.exports=function(e){return"symbol"==typeof e||o(e)&&r(e)==i}},function(e,t,n){var r=n(35).Symbol;e.exports=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TriggerReplacementVariableSuggestionsButton=t.SimulatedLabel=t.StyledEditor=t.FormSection=t.DescriptionInputContainer=t.TitleInputContainer=t.withCaretStyles=t.InputContainer=t.angleLeft=t.angleRight=void 0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(1)),o=n(8),i=n(3),a=n(7);const s=t.angleRight=(e=>"data:image/svg+xml;charset=utf8,"+encodeURIComponent('<svg width="1792" height="1792" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path fill="'+e+'" d="M1152 896q0 26-19 45l-448 448q-19 19-45 19t-45-19-19-45v-896q0-26 19-45t45-19 45 19l448 448q19 19 19 45z" /></svg>')),u=t.angleLeft=(e=>"data:image/svg+xml;charset=utf8,"+encodeURIComponent('<svg width="1792" height="1792" viewBox="0 0 192 512" xmlns="http://www.w3.org/2000/svg"><path fill="'+e+'" d="M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"/></svg>'));function l(e){switch(!0){case e.isActive:return i.colors.$color_snippet_focus;case e.isHovered:return i.colors.$color_snippet_hover;default:return"transparent"}}const c=t.InputContainer=r.default.div.attrs({}).withConfig({displayName:"shared__InputContainer",componentId:"sc-1qsmlb9-0"})(["flex:0 1 100%;border:1px solid ",";padding:3px 5px;box-sizing:border-box;box-shadow:",";background-color:#fff;color:#32373c;outline:0;transition:50ms border-color ease-in-out;position:relative;font-family:Arial,Roboto-Regular,HelveticaNeue,sans-serif;font-size:14px;cursor:text;"],e=>e.isActive?"#5b9dd9":"#ddd",e=>e.isActive?"0 0 2px rgba(30,140,190,.8);":"inset 0 1px 2px rgba(0,0,0,.07)");function f(e){return(0,a.getDirectionalStyle)(s(l(e)),u(l(e)))(e)}t.withCaretStyles=(e=>(0,r.default)(e).withConfig({displayName:"shared",componentId:"sc-1qsmlb9-1"})(["&::before{display:block;position:absolute;top:-1px;",":-25px;width:24px;height:24px;background-image:url( ",' );background-size:25px;content:"";}'],(0,a.getDirectionalStyle)("left","right"),f)),t.TitleInputContainer=(0,r.default)(c).withConfig({displayName:"shared__TitleInputContainer",componentId:"sc-1qsmlb9-2"})([".public-DraftStyleDefault-block{line-height:24px;}"]),t.DescriptionInputContainer=(0,r.default)(c).withConfig({displayName:"shared__DescriptionInputContainer",componentId:"sc-1qsmlb9-3"})(["min-height:72px;padding:2px 6px;line-height:24px;.public-DraftEditorPlaceholder-root{color:",";}.public-DraftEditorPlaceholder-hasFocus{color:",";}"],i.colors.$color_grey_text,i.colors.$color_grey_text),t.FormSection=r.default.div.withConfig({displayName:"shared__FormSection",componentId:"sc-1qsmlb9-4"})(["display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;margin:24px 0 0 0;"]),t.StyledEditor=r.default.section.withConfig({displayName:"shared__StyledEditor",componentId:"sc-1qsmlb9-5"})(["padding:",";"],e=>e.padding?e.padding:"0 20px"),t.SimulatedLabel=r.default.div.withConfig({displayName:"shared__SimulatedLabel",componentId:"sc-1qsmlb9-6"})(["flex:1 1 200px;min-width:200px;cursor:pointer;font-size:16px;font-family:Arial,Roboto-Regular,HelveticaNeue,sans-serif;margin:4px 0;"]),t.TriggerReplacementVariableSuggestionsButton=(0,r.default)(o.Button).withConfig({displayName:"shared__TriggerReplacementVariableSuggestionsButton",componentId:"sc-1qsmlb9-7"})(["box-shadow:none;font-family:Arial,Roboto-Regular,HelveticaNeue,sans-serif;padding-left:8px;height:33px;border:1px solid #dbdbdb;font-size:13px;& svg{",":7px;fill:",";}"],(0,a.getDirectionalStyle)("margin-right","margin-left"),i.colors.$color_grey_dark)},function(e,t,n){"use strict";var r=n(313),o=n(314);e.exports=function(e,t){var n=t.getStartKey(),i=t.getStartOffset(),a=t.getEndKey(),s=t.getEndOffset(),u=o(e,t).getBlockMap(),l=u.keySeq(),c=l.indexOf(n),f=l.indexOf(a)+1;return r(u.slice(c,f).map(function(e,t){var r=e.getText(),o=e.getCharacterList();return n===a?e.merge({text:r.slice(i,s),characterList:o.slice(i,s)}):t===n?e.merge({text:r.slice(i),characterList:o.slice(i)}):t===a?e.merge({text:r.slice(0,s),characterList:o.slice(0,s)}):e}))}},function(e,t,n){"use strict";var r=n(26)||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=n(318),i=n(4),a=n(5),s=(0,i.Map)(),u=0;function l(e,t){console.warn("WARNING: "+e+' will be deprecated soon!\nPlease use "'+t+'" instead.')}var c={getLastCreatedEntityKey:function(){return l("DraftEntity.getLastCreatedEntityKey","contentState.getLastCreatedEntityKey"),c.__getLastCreatedEntityKey()},create:function(e,t,n){return l("DraftEntity.create","contentState.createEntity"),c.__create(e,t,n)},add:function(e){return l("DraftEntity.add","contentState.addEntity"),c.__add(e)},get:function(e){return l("DraftEntity.get","contentState.getEntity"),c.__get(e)},mergeData:function(e,t){return l("DraftEntity.mergeData","contentState.mergeEntityData"),c.__mergeData(e,t)},replaceData:function(e,t){return l("DraftEntity.replaceData","contentState.replaceEntityData"),c.__replaceData(e,t)},__getLastCreatedEntityKey:function(){return""+u},__create:function(e,t,n){return c.__add(new o({type:e,mutability:t,data:n||{}}))},__add:function(e){var t=""+ ++u;return s=s.set(t,e),t},__get:function(e){var t=s.get(e);return t||a(!1),t},__mergeData:function(e,t){var n=c.__get(e),o=r({},n.getData(),t),i=n.set("data",o);return s=s.set(e,i),i},__replaceData:function(e,t){var n=c.__get(e).set("data",t);return s=s.set(e,n),n}};e.exports=c},function(e,t,n){"use strict";var r={encode:function(e,t,n){return e+"-"+t+"-"+n},decode:function(e){var t=e.split("-"),n=t[0],r=t[1],o=t[2];return{blockKey:n,decoratorKey:parseInt(r,10),leafKey:parseInt(o,10)}}};e.exports=r},function(e,t,n){var r=n(347),o=n(198);e.exports=function(e){return null!=e&&o(e.length)&&!r(e)}},function(e,t,n){var r=n(888),o=n(344),i=n(112);e.exports=function(e){return i(e)?r(e):o(e)}},function(e,t,n){var r=n(894),o=n(895),i=n(896),a=n(897),s=n(898);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},function(e,t,n){var r=n(352);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},function(e,t,n){var r=n(73)(Object,"create");e.exports=r},function(e,t,n){var r=n(912);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},function(e,t,n){var r=n(106),o=1/0;e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-o?"-0":t}},function(e,t,n){e.exports=n(962)()},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t,n){var r=n(364),o=n(206);e.exports=function(e){return null!=e&&o(e.length)&&!r(e)}},function(e,t){var n=Object.prototype;e.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||n)}},function(e,t,n){var r=n(1001),o=n(1002),i=n(1003),a=n(1004),s=n(1005);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},function(e,t,n){var r=n(120);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},function(e,t,n){var r=n(59)(Object,"create");e.exports=r},function(e,t,n){var r=n(1019);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},function(e,t,n){var r=n(1034),o=n(214),i=n(1035),a=n(1036),s=n(1037),u=n(74),l=n(366),c=l(r),f=l(o),d=l(i),p=l(a),h=l(s),g=u;(r&&"[object DataView]"!=g(new r(new ArrayBuffer(1)))||o&&"[object Map]"!=g(new o)||i&&"[object Promise]"!=g(i.resolve())||a&&"[object Set]"!=g(new a)||s&&"[object WeakMap]"!=g(new s))&&(g=function(e){var t=u(e),n="[object Object]"==t?e.constructor:void 0,r=n?l(n):"";if(r)switch(r){case c:return"[object DataView]";case f:return"[object Map]";case d:return"[object Promise]";case p:return"[object Set]";case h:return"[object WeakMap]"}return t}),e.exports=g},function(e,t,n){var r=n(38),o=n(219),i=n(1041),a=n(1044);e.exports=function(e,t){return r(e)?e:o(e,t)?[e]:i(a(e))}},function(e,t,n){var r=n(74),o=n(48),i="[object Symbol]";e.exports=function(e){return"symbol"==typeof e||o(e)&&r(e)==i}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getXPathText=i,t.parseFeed=s,t.default=function(e,t=0,n=o.parseFeedItem){return fetch(e).then(function(e){return e.text()}).then(function(e){return s(e,t,n)})};var r=function(e){return e&&e.__esModule?e:{default:e}}(n(399)),o=n(223);function i(e,t,n=null,r=null){if(0===t.evaluate("count("+e+")",n||t,r,XPathResult.ANY_TYPE,null).numberValue)return;const o=t.evaluate(e,n||t,r,XPathResult.STRING_TYPE,null);return o.stringValue?o.stringValue:null}function a(e,t,n,r){const o=function(e,t,n=null,r=null){return t.evaluate(e,n||t,r,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null)}("/rss/channel/item",e);let i=o.snapshotLength;const a=[];0!==n&&(i=Math.min(i,n));for(let n=0;n<i;n++){const i=o.snapshotItem(n);a.push(r(e,i,t))}return a}function s(e,t=0,n){return new Promise(function(o,s){try{"evaluate"in document==!1&&r.default.install();const u=(new DOMParser).parseFromString(e,"application/xml"),l=u.createNSResolver(u.documentElement),c=function(e){const t={};return t.title=i("/rss/channel/title",e),t.description=i("/rss/channel/description",e),t.link=i("/rss/channel/link",e),t}(u);c.items=a(u,l,t,n),o(c)}catch(e){s(e)}})}},function(e,t,n){var r=n(132),o=n(133);function i(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}i.prototype=r(o.prototype),i.prototype.constructor=i,e.exports=i},function(e,t,n){var r=n(77),o=Object.create,i=function(){function e(){}return function(t){if(!r(t))return{};if(o)return o(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=i},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}},function(e,t,n){var r=n(407),o=n(41),i=Object.prototype,a=i.hasOwnProperty,s=i.propertyIsEnumerable,u=r(function(){return arguments}())?r:function(e){return o(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=u},function(e,t,n){var r=n(132),o=n(133),i=4294967295;function a(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=i,this.__views__=[]}a.prototype=r(o.prototype),a.prototype.constructor=a,e.exports=a},function(e,t,n){var r=n(50)(n(32),"Map");e.exports=r},function(e,t,n){var r=n(239),o=n(242),i=n(142);e.exports=function(e){return i(e)?r(e):o(e)}},function(e,t,n){(function(e){var r=n(32),o=n(457),i="object"==typeof t&&t&&!t.nodeType&&t,a=i&&"object"==typeof e&&e&&!e.nodeType&&e,s=a&&a.exports===i?r.Buffer:void 0,u=(s?s.isBuffer:void 0)||o;e.exports=u}).call(this,n(34)(e))},function(e,t){e.exports=function(e){return function(t){return e(t)}}},function(e,t,n){(function(e){var r=n(226),o="object"==typeof t&&t&&!t.nodeType&&t,i=o&&"object"==typeof e&&e&&!e.nodeType&&e,a=i&&i.exports===o&&r.process,s=function(){try{var e=i&&i.require&&i.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(e){}}();e.exports=s}).call(this,n(34)(e))},function(e,t,n){var r=n(228),o=n(241);e.exports=function(e){return null!=e&&o(e.length)&&!r(e)}},function(e,t,n){var r=n(466),o=n(245),i=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(e){return null==e?[]:(e=Object(e),r(a(e),function(t){return i.call(e,t)}))}:o;e.exports=s},function(e,t,n){var r=n(243)(Object.getPrototypeOf,Object);e.exports=r},function(e,t,n){var r=n(474);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},function(e,t,n){var r=n(33),o=n(485),i=n(486),a=n(489);e.exports=function(e,t){return r(e)?e:o(e,t)?[e]:i(a(e))}},function(e,t,n){var r=n(61),o=n(41),i="[object Symbol]";e.exports=function(e){return"symbol"==typeof e||o(e)&&r(e)==i}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.speak=t.setup=void 0;var r=s(n(504)),o=s(n(505)),i=s(n(506)),a=s(n(507));function s(e){return e&&e.__esModule?e:{default:e}}var u=t.setup=function(){var e=document.getElementById("a11y-speak-polite"),t=document.getElementById("a11y-speak-assertive");null===e&&(e=(0,r.default)("polite")),null===t&&(t=(0,r.default)("assertive"))};(0,i.default)(u);t.speak=function(e,t){(0,o.default)(),e=(0,a.default)(e);var n=document.getElementById("a11y-speak-polite"),r=document.getElementById("a11y-speak-assertive");r&&"assertive"===t?r.textContent=e:n&&(n.textContent=e)}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){e.exports=!n(151)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(n(0)),o=i(n(2));function i(e){return e&&e.__esModule?e:{default:e}}const a=e=>{const t=`h${e.level}`;return r.default.createElement(t,{className:e.className},e.children)};a.propTypes={level:o.default.number,className:o.default.string,children:o.default.any},a.defaultProps={level:1},t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.YoastButton=t.YoastButtonBase=void 0,t.addButtonStyles=c;var r=s(n(0)),o=s(n(2)),i=s(n(1)),a=n(3);function s(e){return e&&e.__esModule?e:{default:e}}const u={minHeight:48,verticalPadding:0,borderWidth:0},l=u.minHeight-2*u.verticalPadding-2*u.borderWidth;function c(e){return(0,i.default)(e).withConfig({displayName:"YoastButton",componentId:"v1c803-0"})(["display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;min-height:",";margin:0;padding:0 16px;padding:",' 16px;border:0;border-radius:4px;box-sizing:border-box;font:400 14px/24px "Open Sans",sans-serif;text-transform:uppercase;box-shadow:0 2px 8px 0 ',";transition:box-shadow 150ms ease-out;&:hover,&:focus,&:active{box-shadow:0 4px 10px 0 ",",inset 0 0 0 100px ",";color:",';}&:active{transform:translateY( 1px );box-shadow:none;}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){::after{display:inline-block;content:"";min-height:',";}}"],`${u.minHeight}px`,`${u.verticalPadding}px`,(0,a.rgba)(a.colors.$color_black,.3),(0,a.rgba)(a.colors.$color_black,.2),(0,a.rgba)(a.colors.$color_black,.1),e=>e.textColor,`${l}px`)}const f=t.YoastButtonBase=(({className:e,onClick:t,type:n,children:o,isExpanded:i})=>r.default.createElement("button",{className:e,onClick:t,type:n,"aria-expanded":i},r.default.createElement("span",null,o)));f.propTypes={className:o.default.string,onClick:o.default.func,type:o.default.string,isExpanded:o.default.bool,children:o.default.oneOfType([o.default.arrayOf(o.default.node),o.default.node,o.default.string])},f.defaultProps={type:"button"};const d=t.YoastButton=c((0,i.default)(f).withConfig({displayName:"YoastButton",componentId:"v1c803-1"})(["color:",";background:",";min-width:152px;",";overflow:visible;cursor:pointer;&::-moz-focus-inner{border-width:0;}span{display:inherit;align-items:inherit;justify-content:inherit;width:100%;}"],e=>e.textColor,e=>e.backgroundColor,e=>e.withTextShadow?`text-shadow: 0 0 2px ${a.colors.$color_black}`:""));d.propTypes={backgroundColor:o.default.string,textColor:o.default.string,withTextShadow:o.default.bool},d.defaultProps={backgroundColor:a.colors.$color_green_medium_light,textColor:a.colors.$color_white,withTextShadow:!0}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.canUseDOM=void 0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(557)).default,o=r.canUseDOM?window.HTMLElement:{};t.canUseDOM=r.canUseDOM;t.default=o},function(e,t,n){"use strict";function r(){var e=this.constructor.getDerivedStateFromProps(this.props,this.state);null!==e&&void 0!==e&&this.setState(e)}function o(e){this.setState(function(t){var n=this.constructor.getDerivedStateFromProps(e,t);return null!==n&&void 0!==n?n:null}.bind(this))}function i(e,t){try{var n=this.props,r=this.state;this.props=e,this.state=t,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(n,r)}finally{this.props=n,this.state=r}}function a(e){var t=e.prototype;if(!t||!t.isReactComponent)throw new Error("Can only polyfill class components");if("function"!=typeof e.getDerivedStateFromProps&&"function"!=typeof t.getSnapshotBeforeUpdate)return e;var n=null,a=null,s=null;if("function"==typeof t.componentWillMount?n="componentWillMount":"function"==typeof t.UNSAFE_componentWillMount&&(n="UNSAFE_componentWillMount"),"function"==typeof t.componentWillReceiveProps?a="componentWillReceiveProps":"function"==typeof t.UNSAFE_componentWillReceiveProps&&(a="UNSAFE_componentWillReceiveProps"),"function"==typeof t.componentWillUpdate?s="componentWillUpdate":"function"==typeof t.UNSAFE_componentWillUpdate&&(s="UNSAFE_componentWillUpdate"),null!==n||null!==a||null!==s){var u=e.displayName||e.name,l="function"==typeof e.getDerivedStateFromProps?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n"+u+" uses "+l+" but also contains the following legacy lifecycles:"+(null!==n?"\n "+n:"")+(null!==a?"\n "+a:"")+(null!==s?"\n "+s:"")+"\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks")}if("function"==typeof e.getDerivedStateFromProps&&(t.componentWillMount=r,t.componentWillReceiveProps=o),"function"==typeof t.getSnapshotBeforeUpdate){if("function"!=typeof t.componentDidUpdate)throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");t.componentWillUpdate=i;var c=t.componentDidUpdate;t.componentDidUpdate=function(e,t,n){var r=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:n;c.call(this,e,t,r)}}return e}n.r(t),n.d(t,"polyfill",function(){return a}),r.__suppressDeprecationWarning=!0,o.__suppressDeprecationWarning=!0,i.__suppressDeprecationWarning=!0},function(e,t,n){"use strict";t.__esModule=!0;var r=i(n(577)),o=i(n(157));i(n(271)),i(n(272));function i(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){return(0,r.default)(function(e,t){return!(0,o.default)(e,t)})(e)}},function(e,t,n){"use strict";t.__esModule=!0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(580));t.default=r.default},function(e,t,n){var r=n(585);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){var r=n(65);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t,n){var r=n(164)("keys"),o=n(102);e.exports=function(e){return r[e]||(r[e]=o(e))}},function(e,t,n){var r=n(21),o=n(44),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(101)?"pure":"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){"use strict";t.__esModule=!0;var r=a(n(594)),o=a(n(603)),i="function"==typeof o.default&&"symbol"==typeof r.default?function(e){return typeof e}:function(e){return e&&"function"==typeof o.default&&e.constructor===o.default&&e!==o.default.prototype?"symbol":typeof e};function a(e){return e&&e.__esModule?e:{default:e}}t.default="function"==typeof o.default&&"symbol"===i(r.default)?function(e){return void 0===e?"undefined":i(e)}:function(e){return e&&"function"==typeof o.default&&e.constructor===o.default&&e!==o.default.prototype?"symbol":void 0===e?"undefined":i(e)}},function(e,t,n){var r=n(51),o=n(598),i=n(165),a=n(163)("IE_PROTO"),s=function(){},u=function(){var e,t=n(274)("iframe"),r=i.length;for(t.style.display="none",n(599).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),u=e.F;r--;)delete u.prototype[i[r]];return u()};e.exports=Object.create||function(e,t){var n;return null!==e?(s.prototype=r(e),n=new s,s.prototype=null,n[a]=e):n=u(),void 0===t?n:o(n,t)}},function(e,t,n){var r=n(45).f,o=n(53),i=n(28)("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},function(e,t,n){n(600);for(var r=n(44),o=n(64),i=n(68),a=n(28)("toStringTag"),s="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),u=0;u<s.length;u++){var l=s[u],c=r[l],f=c&&c.prototype;f&&!f[a]&&o(f,a,l),i[l]=i.Array}},function(e,t,n){t.f=n(28)},function(e,t,n){var r=n(44),o=n(21),i=n(101),a=n(171),s=n(45).f;e.exports=function(e){var t=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||s(t,e,{value:a.f(e)})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.red50="#ffebee",t.red100="#ffcdd2",t.red200="#ef9a9a",t.red300="#e57373",t.red400="#ef5350",t.red500="#f44336",t.red600="#e53935",t.red700="#d32f2f",t.red800="#c62828",t.red900="#b71c1c",t.redA100="#ff8a80",t.redA200="#ff5252",t.redA400="#ff1744",t.redA700="#d50000",t.pink50="#fce4ec",t.pink100="#f8bbd0",t.pink200="#f48fb1",t.pink300="#f06292",t.pink400="#ec407a",t.pink500="#e91e63",t.pink600="#d81b60",t.pink700="#c2185b",t.pink800="#ad1457",t.pink900="#880e4f",t.pinkA100="#ff80ab",t.pinkA200="#ff4081",t.pinkA400="#f50057",t.pinkA700="#c51162",t.purple50="#f3e5f5",t.purple100="#e1bee7",t.purple200="#ce93d8",t.purple300="#ba68c8",t.purple400="#ab47bc",t.purple500="#9c27b0",t.purple600="#8e24aa",t.purple700="#7b1fa2",t.purple800="#6a1b9a",t.purple900="#4a148c",t.purpleA100="#ea80fc",t.purpleA200="#e040fb",t.purpleA400="#d500f9",t.purpleA700="#aa00ff",t.deepPurple50="#ede7f6",t.deepPurple100="#d1c4e9",t.deepPurple200="#b39ddb",t.deepPurple300="#9575cd",t.deepPurple400="#7e57c2",t.deepPurple500="#673ab7",t.deepPurple600="#5e35b1",t.deepPurple700="#512da8",t.deepPurple800="#4527a0",t.deepPurple900="#311b92",t.deepPurpleA100="#b388ff",t.deepPurpleA200="#7c4dff",t.deepPurpleA400="#651fff",t.deepPurpleA700="#6200ea",t.indigo50="#e8eaf6",t.indigo100="#c5cae9",t.indigo200="#9fa8da",t.indigo300="#7986cb",t.indigo400="#5c6bc0",t.indigo500="#3f51b5",t.indigo600="#3949ab",t.indigo700="#303f9f",t.indigo800="#283593",t.indigo900="#1a237e",t.indigoA100="#8c9eff",t.indigoA200="#536dfe",t.indigoA400="#3d5afe",t.indigoA700="#304ffe",t.blue50="#e3f2fd",t.blue100="#bbdefb",t.blue200="#90caf9",t.blue300="#64b5f6",t.blue400="#42a5f5",t.blue500="#2196f3",t.blue600="#1e88e5",t.blue700="#1976d2",t.blue800="#1565c0",t.blue900="#0d47a1",t.blueA100="#82b1ff",t.blueA200="#448aff",t.blueA400="#2979ff",t.blueA700="#2962ff",t.lightBlue50="#e1f5fe",t.lightBlue100="#b3e5fc",t.lightBlue200="#81d4fa",t.lightBlue300="#4fc3f7",t.lightBlue400="#29b6f6",t.lightBlue500="#03a9f4",t.lightBlue600="#039be5",t.lightBlue700="#0288d1",t.lightBlue800="#0277bd",t.lightBlue900="#01579b",t.lightBlueA100="#80d8ff",t.lightBlueA200="#40c4ff",t.lightBlueA400="#00b0ff",t.lightBlueA700="#0091ea",t.cyan50="#e0f7fa",t.cyan100="#b2ebf2",t.cyan200="#80deea",t.cyan300="#4dd0e1",t.cyan400="#26c6da",t.cyan500="#00bcd4",t.cyan600="#00acc1",t.cyan700="#0097a7",t.cyan800="#00838f",t.cyan900="#006064",t.cyanA100="#84ffff",t.cyanA200="#18ffff",t.cyanA400="#00e5ff",t.cyanA700="#00b8d4",t.teal50="#e0f2f1",t.teal100="#b2dfdb",t.teal200="#80cbc4",t.teal300="#4db6ac",t.teal400="#26a69a",t.teal500="#009688",t.teal600="#00897b",t.teal700="#00796b",t.teal800="#00695c",t.teal900="#004d40",t.tealA100="#a7ffeb",t.tealA200="#64ffda",t.tealA400="#1de9b6",t.tealA700="#00bfa5",t.green50="#e8f5e9",t.green100="#c8e6c9",t.green200="#a5d6a7",t.green300="#81c784",t.green400="#66bb6a",t.green500="#4caf50",t.green600="#43a047",t.green700="#388e3c",t.green800="#2e7d32",t.green900="#1b5e20",t.greenA100="#b9f6ca",t.greenA200="#69f0ae",t.greenA400="#00e676",t.greenA700="#00c853",t.lightGreen50="#f1f8e9",t.lightGreen100="#dcedc8",t.lightGreen200="#c5e1a5",t.lightGreen300="#aed581",t.lightGreen400="#9ccc65",t.lightGreen500="#8bc34a",t.lightGreen600="#7cb342",t.lightGreen700="#689f38",t.lightGreen800="#558b2f",t.lightGreen900="#33691e",t.lightGreenA100="#ccff90",t.lightGreenA200="#b2ff59",t.lightGreenA400="#76ff03",t.lightGreenA700="#64dd17",t.lime50="#f9fbe7",t.lime100="#f0f4c3",t.lime200="#e6ee9c",t.lime300="#dce775",t.lime400="#d4e157",t.lime500="#cddc39",t.lime600="#c0ca33",t.lime700="#afb42b",t.lime800="#9e9d24",t.lime900="#827717",t.limeA100="#f4ff81",t.limeA200="#eeff41",t.limeA400="#c6ff00",t.limeA700="#aeea00",t.yellow50="#fffde7",t.yellow100="#fff9c4",t.yellow200="#fff59d",t.yellow300="#fff176",t.yellow400="#ffee58",t.yellow500="#ffeb3b",t.yellow600="#fdd835",t.yellow700="#fbc02d",t.yellow800="#f9a825",t.yellow900="#f57f17",t.yellowA100="#ffff8d",t.yellowA200="#ffff00",t.yellowA400="#ffea00",t.yellowA700="#ffd600",t.amber50="#fff8e1",t.amber100="#ffecb3",t.amber200="#ffe082",t.amber300="#ffd54f",t.amber400="#ffca28",t.amber500="#ffc107",t.amber600="#ffb300",t.amber700="#ffa000",t.amber800="#ff8f00",t.amber900="#ff6f00",t.amberA100="#ffe57f",t.amberA200="#ffd740",t.amberA400="#ffc400",t.amberA700="#ffab00",t.orange50="#fff3e0",t.orange100="#ffe0b2",t.orange200="#ffcc80",t.orange300="#ffb74d",t.orange400="#ffa726",t.orange500="#ff9800",t.orange600="#fb8c00",t.orange700="#f57c00",t.orange800="#ef6c00",t.orange900="#e65100",t.orangeA100="#ffd180",t.orangeA200="#ffab40",t.orangeA400="#ff9100",t.orangeA700="#ff6d00",t.deepOrange50="#fbe9e7",t.deepOrange100="#ffccbc",t.deepOrange200="#ffab91",t.deepOrange300="#ff8a65",t.deepOrange400="#ff7043",t.deepOrange500="#ff5722",t.deepOrange600="#f4511e",t.deepOrange700="#e64a19",t.deepOrange800="#d84315",t.deepOrange900="#bf360c",t.deepOrangeA100="#ff9e80",t.deepOrangeA200="#ff6e40",t.deepOrangeA400="#ff3d00",t.deepOrangeA700="#dd2c00",t.brown50="#efebe9",t.brown100="#d7ccc8",t.brown200="#bcaaa4",t.brown300="#a1887f",t.brown400="#8d6e63",t.brown500="#795548",t.brown600="#6d4c41",t.brown700="#5d4037",t.brown800="#4e342e",t.brown900="#3e2723",t.blueGrey50="#eceff1",t.blueGrey100="#cfd8dc",t.blueGrey200="#b0bec5",t.blueGrey300="#90a4ae",t.blueGrey400="#78909c",t.blueGrey500="#607d8b",t.blueGrey600="#546e7a",t.blueGrey700="#455a64",t.blueGrey800="#37474f",t.blueGrey900="#263238",t.grey50="#fafafa",t.grey100="#f5f5f5",t.grey200="#eeeeee",t.grey300="#e0e0e0",t.grey400="#bdbdbd",t.grey500="#9e9e9e",t.grey600="#757575",t.grey700="#616161",t.grey800="#424242",t.grey900="#212121",t.black="#000000",t.white="#ffffff",t.transparent="rgba(0, 0, 0, 0)",t.fullBlack="rgba(0, 0, 0, 1)",t.darkBlack="rgba(0, 0, 0, 0.87)",t.lightBlack="rgba(0, 0, 0, 0.54)",t.minBlack="rgba(0, 0, 0, 0.26)",t.faintBlack="rgba(0, 0, 0, 0.12)",t.fullWhite="rgba(255, 255, 255, 1)",t.darkWhite="rgba(255, 255, 255, 0.87)",t.lightWhite="rgba(255, 255, 255, 0.54)"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return"string"==typeof e&&r.test(e)};var r=/-webkit-|-moz-|-ms-/;e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0;var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=u(n(673)),i=u(n(0)),a=u(n(9)),s=(u(n(63)),n(674));function u(e){return e&&e.__esModule?e:{default:e}}a.default.any,a.default.func,a.default.node;var l=function(e){function t(n,o){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var i=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,o));return i.performAppear=function(e,t){i.currentlyTransitioningKeys[e]=!0,t.componentWillAppear?t.componentWillAppear(i._handleDoneAppearing.bind(i,e,t)):i._handleDoneAppearing(e,t)},i._handleDoneAppearing=function(e,t){t.componentDidAppear&&t.componentDidAppear(),delete i.currentlyTransitioningKeys[e];var n=(0,s.getChildMapping)(i.props.children);n&&n.hasOwnProperty(e)||i.performLeave(e,t)},i.performEnter=function(e,t){i.currentlyTransitioningKeys[e]=!0,t.componentWillEnter?t.componentWillEnter(i._handleDoneEntering.bind(i,e,t)):i._handleDoneEntering(e,t)},i._handleDoneEntering=function(e,t){t.componentDidEnter&&t.componentDidEnter(),delete i.currentlyTransitioningKeys[e];var n=(0,s.getChildMapping)(i.props.children);n&&n.hasOwnProperty(e)||i.performLeave(e,t)},i.performLeave=function(e,t){i.currentlyTransitioningKeys[e]=!0,t.componentWillLeave?t.componentWillLeave(i._handleDoneLeaving.bind(i,e,t)):i._handleDoneLeaving(e,t)},i._handleDoneLeaving=function(e,t){t.componentDidLeave&&t.componentDidLeave(),delete i.currentlyTransitioningKeys[e];var n=(0,s.getChildMapping)(i.props.children);n&&n.hasOwnProperty(e)?i.keysToEnter.push(e):i.setState(function(t){var n=r({},t.children);return delete n[e],{children:n}})},i.childRefs=Object.create(null),i.state={children:(0,s.getChildMapping)(n.children)},i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.componentWillMount=function(){this.currentlyTransitioningKeys={},this.keysToEnter=[],this.keysToLeave=[]},t.prototype.componentDidMount=function(){var e=this.state.children;for(var t in e)e[t]&&this.performAppear(t,this.childRefs[t])},t.prototype.componentWillReceiveProps=function(e){var t=(0,s.getChildMapping)(e.children),n=this.state.children;for(var r in this.setState({children:(0,s.mergeChildMappings)(n,t)}),t){var o=n&&n.hasOwnProperty(r);!t[r]||o||this.currentlyTransitioningKeys[r]||this.keysToEnter.push(r)}for(var i in n){var a=t&&t.hasOwnProperty(i);!n[i]||a||this.currentlyTransitioningKeys[i]||this.keysToLeave.push(i)}},t.prototype.componentDidUpdate=function(){var e=this,t=this.keysToEnter;this.keysToEnter=[],t.forEach(function(t){return e.performEnter(t,e.childRefs[t])});var n=this.keysToLeave;this.keysToLeave=[],n.forEach(function(t){return e.performLeave(t,e.childRefs[t])})},t.prototype.render=function(){var e=this,t=[],n=function(n){var r=e.state.children[n];if(r){var a="string"!=typeof r.ref,s=e.props.childFactory(r),u=function(t){e.childRefs[n]=t};s===r&&a&&(u=(0,o.default)(r.ref,u)),t.push(i.default.cloneElement(s,{key:n,ref:u}))}};for(var a in this.state.children)n(a);var s=r({},this.props);return delete s.transitionLeave,delete s.transitionName,delete s.transitionAppear,delete s.transitionEnter,delete s.childFactory,delete s.transitionLeaveTimeout,delete s.transitionEnterTimeout,delete s.transitionAppearTimeout,delete s.component,i.default.createElement(this.props.component,s,t)},t}(i.default.Component);l.displayName="TransitionGroup",l.propTypes={},l.defaultProps={component:"span",childFactory:function(e){return e}},t.default=l,e.exports=t.default},function(e,t,n){var r=n(178),o=0;e.exports=function(e){var t=++o;return r(e)+t}},function(e,t,n){var r=n(303);e.exports=function(e){return null==e?"":r(e)}},function(e,t){var n=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return n.test(e)}},function(e,t){e.exports=window.yoast.analysis},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=t.MODE_MOBILE="mobile",o=t.MODE_DESKTOP="desktop",i=t.MODES=[o,r],a=t.DEFAULT_MODE=r;t.default={MODE_MOBILE:r,MODE_DESKTOP:o,MODES:i,DEFAULT_MODE:a}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=f(n(0)),o=f(n(17)),i=f(n(177)),a=n(10),s=n(8),u=f(n(742)),l=n(108),c=n(58);function f(e){return e&&e.__esModule?e:{default:e}}class d extends r.default.Component{constructor(e){switch(super(e),this.uniqueId=(0,i.default)(),e.type){case"description":this.InputContainer=l.DescriptionInputContainer;break;case"title":this.InputContainer=l.TitleInputContainer;break;default:this.InputContainer=l.TitleInputContainer}e.withCaret&&(this.InputContainer=(0,l.withCaretStyles)(this.InputContainer)),this.triggerReplacementVariableSuggestions=this.triggerReplacementVariableSuggestions.bind(this)}triggerReplacementVariableSuggestions(){this.ref.triggerReplacementVariableSuggestions()}render(){var e=this.props;const t=e.label,n=e.onChange,o=e.content,i=e.onFocus,c=e.onBlur,f=e.isActive,d=e.isHovered,p=e.replacementVariables,h=e.recommendedReplacementVariables,g=e.editorRef,y=e.placeholder,m=e.fieldId,v=this.InputContainer,b=r.default.createElement(l.TriggerReplacementVariableSuggestionsButton,{onClick:()=>this.triggerReplacementVariableSuggestions()},r.default.createElement(s.SvgIcon,{icon:"plus-circle"}),(0,a.__)("Insert snippet variable","yoast-components"));return r.default.createElement(r.default.Fragment,null,r.default.createElement(l.SimulatedLabel,{id:this.uniqueId,onClick:i},t),b,r.default.createElement(v,{onClick:i,isActive:f,isHovered:d},r.default.createElement(u.default,{fieldId:m,placeholder:y,content:o,onChange:n,onFocus:i,onBlur:c,replacementVariables:p,recommendedReplacementVariables:h,ref:e=>{this.ref=e,g(e)},ariaLabelledBy:this.uniqueId})))}}d.propTypes={editorRef:o.default.func,content:o.default.string.isRequired,onChange:o.default.func.isRequired,onBlur:o.default.func,replacementVariables:c.replacementVariablesShape,recommendedReplacementVariables:c.recommendedReplacementVariablesShape,isActive:o.default.bool,isHovered:o.default.bool,withCaret:o.default.bool,onFocus:o.default.func,label:o.default.string,placeholder:o.default.string,type:o.default.oneOf(["title","description"]),fieldId:o.default.string},d.defaultProps={replacementVariables:[]},t.default=d},function(e,t,n){"use strict";function r(e){return function(){return e}}var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},e.exports=o},function(e,t,n){"use strict";var r=n(84),o=n(25),i=n(56),a=n(27),s=n(110),u=n(46),l=n(4),c=n(71),f=n(40),d=n(185),p=l.List,h=l.Record,g=l.Repeat,y=u.draft_tree_data_support?a:i,m=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.getEntityMap=function(){return s},t.prototype.getBlockMap=function(){return this.get("blockMap")},t.prototype.getSelectionBefore=function(){return this.get("selectionBefore")},t.prototype.getSelectionAfter=function(){return this.get("selectionAfter")},t.prototype.getBlockForKey=function(e){return this.getBlockMap().get(e)},t.prototype.getKeyBefore=function(e){return this.getBlockMap().reverse().keySeq().skipUntil(function(t){return t===e}).skip(1).first()},t.prototype.getKeyAfter=function(e){return this.getBlockMap().keySeq().skipUntil(function(t){return t===e}).skip(1).first()},t.prototype.getBlockAfter=function(e){return this.getBlockMap().skipUntil(function(t,n){return n===e}).skip(1).first()},t.prototype.getBlockBefore=function(e){return this.getBlockMap().reverse().skipUntil(function(t,n){return n===e}).skip(1).first()},t.prototype.getBlocksAsArray=function(){return this.getBlockMap().toArray()},t.prototype.getFirstBlock=function(){return this.getBlockMap().first()},t.prototype.getLastBlock=function(){return this.getBlockMap().last()},t.prototype.getPlainText=function(e){return this.getBlockMap().map(function(e){return e?e.getText():""}).join(e||"\n")},t.prototype.getLastCreatedEntityKey=function(){return s.__getLastCreatedEntityKey()},t.prototype.hasText=function(){var e=this.getBlockMap();return e.size>1||e.first().getLength()>0},t.prototype.createEntity=function(e,t,n){return s.__create(e,t,n),this},t.prototype.mergeEntityData=function(e,t){return s.__mergeData(e,t),this},t.prototype.replaceEntityData=function(e,t){return s.__replaceData(e,t),this},t.prototype.addEntity=function(e){return s.__add(e),this},t.prototype.getEntity=function(e){return s.__get(e)},t.createFromBlockArray=function(e,n){var o=Array.isArray(e)?e:e.contentBlocks,i=r.createFromArray(o),a=i.isEmpty()?new c:c.createEmpty(i.first().getKey());return new t({blockMap:i,entityMap:n||s,selectionBefore:a,selectionAfter:a})},t.createFromText=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:/\r\n?|\n/g,r=e.split(n).map(function(e){return e=d(e),new y({key:f(),text:e,type:"unstyled",characterList:p(g(o.EMPTY,e.length))})});return t.createFromBlockArray(r)},t}(h({entityMap:null,blockMap:null,selectionBefore:null,selectionAfter:null}));e.exports=m},function(e,t,n){"use strict";var r=new RegExp("\r","g");e.exports=function(e){return e.replace(r,"")}},function(e,t,n){"use strict";var r=n(5),o="LTR",i="RTL",a=null;function s(e){return e===o||e===i}function u(e){return s(e)||r(!1),e===o?"ltr":"rtl"}function l(e){a=e}var c={NEUTRAL:"NEUTRAL",LTR:o,RTL:i,isStrong:s,getHTMLDir:u,getHTMLDirIfDifferent:function(e,t){return s(e)||r(!1),s(t)||r(!1),e===t?null:u(e)},setGlobalDir:l,initGlobalDir:function(){l(o)},getGlobalDir:function(){return a||this.initGlobalDir(),a||r(!1),a}};e.exports=c},function(e,t,n){"use strict";var r=n(4).Map,o=n(0),i=n(72),a=r({"header-one":{element:"h1"},"header-two":{element:"h2"},"header-three":{element:"h3"},"header-four":{element:"h4"},"header-five":{element:"h5"},"header-six":{element:"h6"},"unordered-list-item":{element:"li",wrapper:o.createElement("ul",{className:i("public/DraftStyleDefault/ul")})},"ordered-list-item":{element:"li",wrapper:o.createElement("ol",{className:i("public/DraftStyleDefault/ol")})},blockquote:{element:"blockquote"},atomic:{element:"figure"},"code-block":{element:"pre",wrapper:o.createElement("pre",{className:i("public/DraftStyleDefault/pre")})},unstyled:{element:"div",aliasedElements:["p"]}});e.exports=a},function(e,t,n){"use strict";e.exports={BACKSPACE:8,TAB:9,RETURN:13,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46,COMMA:188,PERIOD:190,A:65,Z:90,ZERO:48,NUMPAD_0:96,NUMPAD_9:105}},function(e,t,n){"use strict";function r(e,t){return t&&"MUTABLE"===e.__get(t).getMutability()?t:null}e.exports=function(e,t){var n;if(t.isCollapsed()){var o=t.getAnchorKey(),i=t.getAnchorOffset();return i>0?(n=e.getBlockForKey(o).getEntityAt(i-1))!==e.getBlockForKey(o).getEntityAt(i)?null:r(e.getEntityMap(),n):null}var a=t.getStartKey(),s=t.getStartOffset(),u=e.getBlockForKey(a);return n=s===u.getLength()?null:u.getEntityAt(s),r(e.getEntityMap(),n)}},function(e,t,n){"use strict";var r=n(776);e.exports=function e(t,n){return!(!t||!n)&&(t===n||!r(t)&&(r(n)?e(t,n.parentNode):"contains"in t?t.contains(n):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(n))))}},function(e,t,n){"use strict";function r(e,t){var n=o.get(e,t);return"auto"===n||"scroll"===n}var o={get:n(778),getScrollParent:function(e){if(!e)return null;for(var t=e.ownerDocument;e&&e!==t.body;){if(r(e,"overflow")||r(e,"overflowY")||r(e,"overflowX"))return e;e=e.parentNode}return t.defaultView||t.parentWindow}};e.exports=o},function(e,t,n){"use strict";var r=n(783),o=n(784);e.exports=function(e){var t=r(e.ownerDocument||e.document);e.Window&&e instanceof e.Window&&(e=t);var n=o(e),i=e===t?e.ownerDocument.documentElement:e,a=e.scrollWidth-i.clientWidth,s=e.scrollHeight-i.clientHeight;return n.x=Math.max(0,Math.min(n.x,a)),n.y=Math.max(0,Math.min(n.y,s)),n}},function(e,t,n){"use strict";var r=n(326);e.exports=function(e){for(var t=e;t&&t!==document.documentElement;){var n=r(t);if(null!=n)return n;t=t.parentNode}return null}},function(e,t,n){"use strict";var r=n(36).isPlatform("Mac OS X"),o={isCtrlKeyCommand:function(e){return!!e.ctrlKey&&!e.altKey},isOptionKeyCommand:function(e){return r&&e.altKey},hasCommandModifier:function(e){return r?!!e.metaKey&&!e.altKey:o.isCtrlKeyCommand(e)}};e.exports=o},function(e,t,n){"use strict";e.exports=function(e,t){var n=e.getSelection(),r=e.getCurrentContent(),o=n.getStartKey(),i=n.getStartOffset(),a=o,s=0;if(t>i){var u=r.getKeyBefore(o);null==u?a=o:(a=u,s=r.getBlockForKey(u).getText().length)}else s=i-t;return n.merge({focusKey:a,focusOffset:s,isBackward:!0})}},function(e,t,n){var r=n(73)(n(35),"Map");e.exports=r},function(e,t,n){var r=n(879),o=n(55),i=Object.prototype,a=i.hasOwnProperty,s=i.propertyIsEnumerable,u=r(function(){return arguments}())?r:function(e){return o(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=u},function(e,t){var n=9007199254740991;e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}},function(e,t,n){(function(e){var r=n(35),o=n(880),i="object"==typeof t&&t&&!t.nodeType&&t,a=i&&"object"==typeof e&&e&&!e.nodeType&&e,s=a&&a.exports===i?r.Buffer:void 0,u=(s?s.isBuffer:void 0)||o;e.exports=u}).call(this,n(34)(e))},function(e,t,n){var r=n(881),o=n(309),i=n(310),a=i&&i.isTypedArray,s=a?o(a):r;e.exports=s},function(e,t,n){var r=n(904),o=n(911),i=n(913),a=n(914),s=n(915);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},function(e,t,n){var r=n(30),o=n(106),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!o(e))||a.test(e)||!i.test(e)||null!=t&&e in Object(t)}},function(e,t){e.exports=window.lodash},function(e,t,n){var r=n(362),o=n(120),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var a=e[t];i.call(e,t)&&o(a,n)&&(void 0!==n||t in e)||r(e,t,n)}},function(e,t){e.exports=function(e){return e}},function(e,t){var n=9007199254740991;e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}},function(e,t){var n=9007199254740991,r=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var o=typeof e;return!!(t=null==t?n:t)&&("number"==o||"symbol"!=o&&r.test(e))&&e>-1&&e%1==0&&e<t}},function(e,t,n){var r=n(990),o=n(48),i=Object.prototype,a=i.hasOwnProperty,s=i.propertyIsEnumerable,u=r(function(){return arguments}())?r:function(e){return o(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=u},function(e,t,n){(function(e){var r=n(37),o=n(991),i="object"==typeof t&&t&&!t.nodeType&&t,a=i&&"object"==typeof e&&e&&!e.nodeType&&e,s=a&&a.exports===i?r.Buffer:void 0,u=(s?s.isBuffer:void 0)||o;e.exports=u}).call(this,n(34)(e))},function(e,t){e.exports=function(e){return function(t){return e(t)}}},function(e,t,n){(function(e){var r=n(365),o="object"==typeof t&&t&&!t.nodeType&&t,i=o&&"object"==typeof e&&e&&!e.nodeType&&e,a=i&&i.exports===o&&r.process,s=function(){try{var e=i&&i.require&&i.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(e){}}();e.exports=s}).call(this,n(34)(e))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setSeoResultsForKeyword=function(e,t){return{type:i,keyword:e,results:t}},t.setSeoResults=function(e){return{type:o,resultsPerKeyword:e}},t.updateSeoResult=function(e,t){return{type:a,keyword:e,result:t}},t.removeKeyword=function(e){return{type:s,keyword:e}},t.setReadabilityResults=function(e){return{type:u,results:e}},t.updateReadabilityResult=function(e){return{type:l,result:e}},t.setOverallReadabilityScore=function(e){return{type:c,overallScore:e}},t.setOverallSeoScore=function(e,t){return{type:f,keyword:t,overallScore:e}};const r="CONTENT_ANALYSIS_",o=t.SET_SEO_RESULTS=`${r}SET_SEO_RESULTS`,i=t.SET_SEO_RESULTS_FOR_KEYWORD=`${r}SET_SEO_RESULTS_FOR_KEYWORD`,a=t.UPDATE_SEO_RESULT=`${r}UPDATE_SEO_RESULT`,s=t.REMOVE_KEYWORD=`${r}REMOVE_KEYWORD`,u=t.SET_READABILITY_RESULTS=`${r}SET_READABILITY_RESULTS`,l=t.UPDATE_READABILITY_RESULT=`${r}UPDATE_READABILITY_RESULT`,c=t.SET_OVERALL_READABILITY_SCORE=`${r}SET_OVERALL_READABILITY_SCORE`,f=t.SET_OVERALL_SEO_SCORE=`${r}SET_OVERALL_SEO_SCORE`},function(e,t,n){var r=n(123),o=n(1006),i=n(1007),a=n(1008),s=n(1009),u=n(1010);function l(e){var t=this.__data__=new r(e);this.size=t.size}l.prototype.clear=o,l.prototype.delete=i,l.prototype.get=a,l.prototype.has=s,l.prototype.set=u,e.exports=l},function(e,t,n){var r=n(59)(n(37),"Map");e.exports=r},function(e,t,n){var r=n(1011),o=n(1018),i=n(1020),a=n(1021),s=n(1022);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},function(e,t){e.exports=function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}},function(e,t,n){var r=n(1033),o=n(378),i=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(e){return null==e?[]:(e=Object(e),r(a(e),function(t){return i.call(e,t)}))}:o;e.exports=s},function(e,t,n){var r=n(128),o=n(90);e.exports=function(e,t){for(var n=0,i=(t=r(t,e)).length;null!=e&&n<i;)e=e[o(t[n++])];return n&&n==i?e:void 0}},function(e,t,n){var r=n(38),o=n(129),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!o(e))||a.test(e)||!i.test(e)||null!=t&&e in Object(t)}},function(e,t,n){var r=n(371)(Object.getPrototypeOf,Object);e.exports=r},function(e,t,n){var r=n(375);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},function(e,t,n){e.exports=n(392)()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseFeedItem=i,t.default=function(e,t){return(0,o.default)(e,t,i)};var r=n(130),o=function(e){return e&&e.__esModule?e:{default:e}}(r);function i(e,t,n){const o={};return o.title=(0,r.getXPathText)("child::title",e,t),o.link=(0,r.getXPathText)("child::link",e,t),o.content=(0,r.getXPathText)("child::content:encoded",e,t,n),o.description=(0,r.getXPathText)("child::description",e,t),o.creator=(0,r.getXPathText)("child::dc:creator",e,t,n),o.date=(0,r.getXPathText)("child::pubDate",e,t),o}},function(e,t,n){var r=n(403)();e.exports=r},function(e,t,n){var r=n(404),o=n(410),i=n(412);e.exports=function(e){return i(o(e,void 0,r),e+"")}},function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(this,n(18))},function(e,t,n){var r=n(50),o=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=o},function(e,t,n){var r=n(61),o=n(77),i="[object AsyncFunction]",a="[object Function]",s="[object GeneratorFunction]",u="[object Proxy]";e.exports=function(e){if(!o(e))return!1;var t=r(e);return t==a||t==s||t==i||t==u}},function(e,t){var n=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return n.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},function(e,t,n){var r=n(421),o=n(422),i=r?function(e){return r.get(e)}:o;e.exports=i},function(e,t,n){var r=n(50)(n(32),"WeakMap");e.exports=r},function(e,t,n){var r=n(423),o=Object.prototype.hasOwnProperty;e.exports=function(e){for(var t=e.name+"",n=r[t],i=o.call(r,t)?n.length:0;i--;){var a=n[i],s=a.func;if(null==s||s==e)return a.name}return t}},function(e,t){e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t,n){var r=n(442),o=n(449),i=n(451),a=n(452),s=n(453);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},function(e,t,n){var r=n(238),o=n(235),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var a=e[t];i.call(e,t)&&o(a,n)&&(void 0!==n||t in e)||r(e,t,n)}},function(e,t,n){var r=n(227);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},function(e,t,n){var r=n(456),o=n(135),i=n(33),a=n(139),s=n(458),u=n(240),l=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=i(e),c=!n&&o(e),f=!n&&!c&&a(e),d=!n&&!c&&!f&&u(e),p=n||c||f||d,h=p?r(e.length,String):[],g=h.length;for(var y in e)!t&&!l.call(e,y)||p&&("length"==y||f&&("offset"==y||"parent"==y)||d&&("buffer"==y||"byteLength"==y||"byteOffset"==y)||s(y,g))||h.push(y);return h}},function(e,t,n){var r=n(459),o=n(140),i=n(141),a=i&&i.isTypedArray,s=a?o(a):r;e.exports=s},function(e,t){var n=9007199254740991;e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}},function(e,t,n){var r=n(97),o=n(460),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=[];for(var n in Object(e))i.call(e,n)&&"constructor"!=n&&t.push(n);return t}},function(e,t){e.exports=function(e,t){return function(n){return e(t(n))}}},function(e,t,n){var r=n(239),o=n(462),i=n(142);e.exports=function(e){return i(e)?r(e,!0):o(e)}},function(e,t){e.exports=function(){return[]}},function(e,t,n){var r=n(134),o=n(144),i=n(143),a=n(245),s=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,i(e)),e=o(e);return t}:a;e.exports=s},function(e,t,n){var r=n(134),o=n(33);e.exports=function(e,t,n){var i=t(e);return o(e)?i:r(i,n(e))}},function(e,t,n){var r=n(247),o=n(246),i=n(244);e.exports=function(e){return r(e,i,o)}},function(e,t,n){var r=n(147),o=1/0;e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-o?"-0":t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SectionTitle=t.StyledSubTitle=t.StyledTitle=t.StyledTitleContainer=void 0;var r=u(n(0)),o=u(n(2)),i=u(n(1)),a=n(3),s=u(n(251));function u(e){return e&&e.__esModule?e:{default:e}}const l=t.StyledTitleContainer=i.default.span.withConfig({displayName:"SectionTitle__StyledTitleContainer",componentId:"nlobus-0"})(["flex-grow:1;overflow-x:hidden;line-height:normal;"]),c=t.StyledTitle=i.default.span.withConfig({displayName:"SectionTitle__StyledTitle",componentId:"nlobus-1"})(["display:block;white-space:nowrap;text-overflow:ellipsis;overflow-x:hidden;color:",";"],a.colors.$color_headings),f=t.StyledSubTitle=i.default.span.withConfig({displayName:"SectionTitle__StyledSubTitle",componentId:"nlobus-2"})(["display:block;white-space:nowrap;text-overflow:ellipsis;overflow-x:hidden;font-size:0.8125rem;margin-top:2px;"]);(t.SectionTitle=(e=>r.default.createElement(l,null,r.default.createElement(c,null,e.title,e.titleScreenReaderText&&r.default.createElement(s.default,null," "+e.titleScreenReaderText)),e.subTitle&&r.default.createElement(f,null,e.subTitle)))).propTypes={title:o.default.string.isRequired,titleScreenReaderText:o.default.string,subTitle:o.default.string}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=a(n(0)),o=a(n(2)),i=a(n(252));function a(e){return e&&e.__esModule?e:{default:e}}const s=e=>r.default.createElement("span",{className:"screen-reader-text",style:i.default.ScreenReaderText.default},e.children);s.propTypes={children:o.default.string.isRequired},t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={ScreenReaderText:{default:{clip:"rect(1px, 1px, 1px, 1px)",position:"absolute",height:"1px",width:"1px",overflow:"hidden"},focused:{clip:"auto",display:"block",left:"5px",top:"5px",height:"auto",width:"auto",zIndex:"100000",position:"absolute",backgroundColor:"#eeeeee ",padding:"10px"}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=u(n(0)),i=u(n(2)),a=u(n(60)),s=n(8);function u(e){return e&&e.__esModule?e:{default:e}}const l=e=>{const t=e.children,n=e.className,i=e.prefixIcon,u=e.suffixIcon,l=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["children","className","prefixIcon","suffixIcon"]);return o.default.createElement(a.default,r({className:n},l),i&&i.icon&&o.default.createElement(s.SvgIcon,{icon:i.icon,color:i.color,size:i.size}),t,u&&u.icon&&o.default.createElement(s.SvgIcon,{icon:u.icon,color:u.color,size:u.size}))};l.propTypes={className:i.default.string,prefixIcon:i.default.shape({icon:i.default.string,color:i.default.string,size:i.default.string}),suffixIcon:i.default.shape({icon:i.default.string,color:i.default.string,size:i.default.string}),children:i.default.oneOfType([i.default.arrayOf(i.default.node),i.default.node,i.default.string])},t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=f;var r=n(0),o=u(r),i=u(n(2)),a=u(n(1)),s=n(3);function u(e){return e&&e.__esModule?e:{default:e}}const l=a.default.span.withConfig({displayName:"CardBanner__BannerContents",componentId:"oi8gid-0"})(["position:absolute;top:8px;left:-8px;font-weight:500;color:",";line-height:16px;background-color:",";padding:8px 16px;box-shadow:0 2px 4px 0 rgba(0,0,0,0.2);"],e=>e.textColor,e=>e.backgroundColor),c=a.default.span.withConfig({displayName:"CardBanner__BannerTriangle",componentId:"oi8gid-1"})(["position:absolute;top:40px;left:-8px;border-top:8px solid ",";border-left:8px solid transparent;"],s.colors.$color_purple_dark);function f(e){return o.default.createElement(r.Fragment,null,o.default.createElement(l,{backgroundColor:e.backgroundColor,textColor:e.textColor},e.children),o.default.createElement(c,null))}f.propTypes={backgroundColor:i.default.string,textColor:i.default.string,children:i.default.any},f.defaultProps={backgroundColor:s.colors.$color_pink_dark,textColor:s.colors.$color_white,children:null}},function(e,t,n){var r=n(510),o=n(515);e.exports=n(150)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t){var n=e.exports={version:"2.5.7"};"number"==typeof __e&&(__e=n)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t.default=s;var o=a(n(0)),i=a(n(2));function a(e){return e&&e.__esModule?e:{default:e}}function s(e){return o.default.createElement("iframe",r({title:e.title},e))}s.propTypes={title:i.default.string.isRequired}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=a(n(0)),i=a(n(2));function a(e){return e&&e.__esModule?e:{default:e}}class s extends o.default.Component{componentDidUpdate(){this.props.hasFocus&&this.ref.focus()}setReference(e){this.ref=e}render(){return o.default.createElement("input",r({ref:this.setReference.bind(this),type:this.props.type,name:this.props.name,defaultValue:this.props.value,onChange:this.props.onChange,autoComplete:this.props.autoComplete,className:this.props.className},this.props.optionalAttributes))}}s.propTypes={name:i.default.string.isRequired,type:i.default.oneOf(["button","checkbox","number","password","progress","radio","submit","text"]).isRequired,value:i.default.any,onChange:i.default.func,optionalAttributes:i.default.object,hasFocus:i.default.bool,autoComplete:i.default.string,className:i.default.string},s.defaultProps={name:"input",type:"text",value:"",hasFocus:!1,className:""},t.default=s},function(e,t,n){"use strict";function r(e){return function(){return e}}var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},e.exports=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(n(0)),o=i(n(2));function i(e){return e&&e.__esModule?e:{default:e}}const a=e=>{const t=e.title,n=e.classNamePrefix,o=e.words,i=e.header,a=e.footer,s=r.default.createElement("ol",{className:n+"__list"},o.map(e=>r.default.createElement("li",{key:e,className:n+"__item"},e)));return r.default.createElement("div",{className:n},r.default.createElement("p",null,r.default.createElement("strong",null,t)),i,s,a)};a.propTypes={words:o.default.array.isRequired,title:o.default.string.isRequired,header:o.default.string,footer:o.default.string,classNamePrefix:o.default.string},a.defaultProps={classNamePrefix:"",header:"",footer:""},t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=s(n(0)),o=s(n(2)),i=s(n(1)),a=n(10);function s(e){return e&&e.__esModule?e:{default:e}}const u=i.default.span.withConfig({displayName:"WordOccurrences__ProminentWordOccurrence",componentId:"v5jj49-0"})(["display:inline-block;margin:2px 8px;"]),l=(0,i.default)(u).withConfig({displayName:"WordOccurrences__ProminentWord",componentId:"v5jj49-1"})(["font-weight:bold;overflow:hidden;text-overflow:ellipsis;"]),c=i.default.ol.withConfig({displayName:"WordOccurrences__WordOccurrencesList",componentId:"v5jj49-2"})(["list-style:none;padding:0;width:100%;margin:0;"]),f=i.default.li.withConfig({displayName:"WordOccurrences__WordBarContainer",componentId:"v5jj49-3"})(["margin:8px 0;height:calc( 1.375em + 4px );display:flex;max-width:600px;justify-content:space-between;background:linear-gradient( to right,rgba(164,40,106,0.2) ",",",",transparent );"],e=>e.barWidth,e=>e.barWidth),d=({word:e,occurrence:t,width:n})=>r.default.createElement(f,{barWidth:n},r.default.createElement(l,null,e),r.default.createElement(u,null,r.default.createElement("span",{"aria-hidden":!0},t),r.default.createElement("span",{className:"screen-reader-text"},(0,a.sprintf)((0,a.__)("%d occurrences","yoast-components"),t))));d.propTypes={word:o.default.string.isRequired,occurrence:o.default.number.isRequired,width:o.default.string.isRequired};class p extends r.default.Component{constructor(e){super(e),this.state={words:[...e.words]||[],occurrences:{min:0,max:0}}}static getDerivedStateFromProps(e){const t=[...e.words];t.sort((e,t)=>t.getOccurrences()-e.getOccurrences());const n=t.map(e=>e.getOccurrences());return{occurrences:{min:Math.min(...n),max:Math.max(...n)},words:t}}render(){return r.default.createElement(r.default.Fragment,null,this.props.header,r.default.createElement(c,{"aria-label":(0,a.__)("Prominent words","yoast-components")},this.state.words.map(e=>{const t=e.getWord(),n=e.getOccurrences(),o=`${n/this.state.occurrences.max*100}%`;return r.default.createElement(d,{key:`wordbar-${t}`,word:t,width:o,occurrence:n})})),this.props.footer)}}p.propTypes={words:o.default.array.isRequired,header:o.default.element,footer:o.default.element},p.defaultProps={header:null,footer:null},t.default=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=a(n(0)),i=a(n(2));function a(e){return e&&e.__esModule?e:{default:e}}const s=e=>o.default.createElement("label",r({htmlFor:e.for,className:e.className},e.optionalAttributes),e.children);s.propTypes={for:i.default.string.isRequired,optionalAttributes:i.default.shape({"aria-label":i.default.string,onClick:i.default.func,className:i.default.string}),children:i.default.any.isRequired,className:i.default.string},s.defaultProps={className:"",optionalAttributes:{}},t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=a(n(2)),o=a(n(1)),i=n(3);function a(e){return e&&e.__esModule?e:{default:e}}const s=o.default.div.withConfig({displayName:"Paper",componentId:"sc-1fchzjl-0"})(["box-shadow:0 1px 2px rgba(0,0,0,0.2);background-color:",";min-height:",";"],e=>e.backgroundColor,e=>e.minHeight);s.propTypes={backgroundColor:r.default.string,minHeight:r.default.string},s.defaultProps={backgroundColor:i.colors.$color_white,minHeight:"0"},t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=a(n(0)),o=a(n(2)),i=a(n(152));function a(e){return e&&e.__esModule?e:{default:e}}const s=e=>r.default.createElement("section",{className:e.className},e.headingText&&r.default.createElement(i.default,{level:e.headingLevel,className:e.headingClassName},e.headingText),e.children);s.propTypes={className:o.default.string,headingText:o.default.string,headingLevel:o.default.number,headingClassName:o.default.string,children:o.default.any},s.defaultProps={headingLevel:1},t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InputField=void 0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(1)),o=n(3);t.InputField=r.default.input.withConfig({displayName:"InputField",componentId:"sc-12z9z15-0"})(["&&&{padding:0 8px;min-height:34px;font-size:1em;box-shadow:inset 0 1px 2px ",";border:1px solid ",";border-radius:0;&:focus{border-color:#5b9dd9;box-shadow:0 0 2px ",";}}"],(0,o.rgba)(o.colors.$color_black,.07),o.colors.$color_input_border,(0,o.rgba)(o.colors.$color_snippet_focus,.8))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=a(n(0)),i=a(n(2));function a(e){return e&&e.__esModule?e:{default:e}}class s extends o.default.Component{render(){return o.default.createElement("textarea",r({ref:this.setReference.bind(this),name:this.props.name,value:this.props.value,onChange:this.props.onChange},this.props.optionalAttributes))}setReference(e){this.ref=e}componentDidUpdate(){this.props.hasFocus&&this.ref.focus()}}s.propTypes={name:i.default.string.isRequired,value:i.default.string,onChange:i.default.func,optionalAttributes:i.default.object,hasFocus:i.default.bool},s.defaultProps={name:"textarea",value:"",hasFocus:!1},t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return[].slice.call(e.querySelectorAll("*"),0).filter(a)};
|
18 |
/*!
|
19 |
* Adapted from jQuery UI core
|
20 |
*
|
@@ -26,7 +26,7 @@ object-assign
|
|
26 |
*
|
27 |
* http://api.jqueryui.com/category/ui-core/
|
28 |
*/
|
29 |
-
var r=/input|select|textarea|button|object/;function o(e){var t=e.offsetWidth<=0&&e.offsetHeight<=0;if(t&&!e.innerHTML)return!0;var n=window.getComputedStyle(e);return t?"visible"!==n.getPropertyValue("overflow"):"none"==n.getPropertyValue("display")}function i(e,t){var n=e.nodeName.toLowerCase();return(r.test(n)&&!e.disabled||"a"===n&&e.href||t)&&function(e){for(var t=e;t&&t!==document.body;){if(o(t))return!1;t=t.parentNode}return!0}(e)}function a(e){var t=e.getAttribute("tabindex");null===t&&(t=void 0);var n=isNaN(t);return(n||t>=0)&&i(e,!n)}e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assertNodeList=a,t.setElement=function(e){var t=e;if("string"==typeof t&&o.canUseDOM){var n=document.querySelectorAll(t);a(n,t),t="length"in n?n[0]:n}return i=t||i},t.validateElement=s,t.hide=function(e){s(e)&&(e||i).setAttribute("aria-hidden","true")},t.show=function(e){s(e)&&(e||i).removeAttribute("aria-hidden")},t.documentNotReadyOrSSRTesting=function(){i=null},t.resetForTesting=function(){i=null};var r=function(e){return e&&e.__esModule?e:{default:e}}(n(63)),o=n(154);var i=null;function a(e,t){if(!e||!e.length)throw new Error("react-modal: No elements were found for selector "+t+".")}function s(e){return!(!e&&!i)||((0,r.default)(!1,["react-modal: App element is not defined.","Please use `Modal.setAppElement(el)` or set `appElement={el}`.","This is needed so screen readers don't see main content","when modal is opened. It is not recommended, but you can opt-out","by setting `ariaHideApp={false}`."].join(" ")),!1)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LoadingIndicator=t.MessageBox=void 0;var r=a(n(572)),o=a(n(575)),i=a(n(297));function a(e){return e&&e.__esModule?e:{default:e}}t.MessageBox=r.default,t.LoadingIndicator=i.default,t.default=o.default},function(e,t,n){"use strict";t.__esModule=!0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(578));t.default=function(e){return(0,r.default)("displayName",e)}},function(e,t,n){"use strict";t.__esModule=!0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(579));t.default=function(e,t){return t+"("+(0,r.default)(e)+")"}},function(e,t,n){e.exports=!n(52)&&!n(66)(function(){return 7!=Object.defineProperty(n(274)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){var r=n(65),o=n(44).document,i=r(o)&&r(o.createElement);e.exports=function(e){return i?o.createElement(e):{}}},function(e,t,n){var r=n(53),o=n(67),i=n(587)(!1),a=n(163)("IE_PROTO");e.exports=function(e,t){var n,s=o(e),u=0,l=[];for(n in s)n!=a&&r(s,n)&&l.push(n);for(;t.length>u;)r(s,n=t[u++])&&(~i(l,n)||l.push(n));return l}},function(e,t,n){var r=n(160);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t,n){var r=n(162),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},function(e,t,n){var r=n(53),o=n(83),i=n(163)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=o(e),r(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},function(e,t,n){var r=n(43),o=n(21),i=n(66);e.exports=function(e,t){var n=(o.Object||{})[e]||Object[e],a={};a[e]=t(n),r(r.S+r.F*i(function(){n(1)}),"Object",a)}},function(e,t,n){"use strict";var r=n(101),o=n(43),i=n(281),a=n(64),s=n(68),u=n(597),l=n(169),c=n(278),f=n(28)("iterator"),d=!([].keys&&"next"in[].keys()),p=function(){return this};e.exports=function(e,t,n,h,g,y,m){u(n,t,h);var v,b,_,x=function(e){if(!d&&e in k)return k[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},w=t+" Iterator",S="values"==g,C=!1,k=e.prototype,O=k[f]||k["@@iterator"]||g&&k[g],E=O||x(g),T=g?S?x("entries"):E:void 0,M="Array"==t&&k.entries||O;if(M&&(_=c(M.call(new e)))!==Object.prototype&&_.next&&(l(_,w,!0),r||"function"==typeof _[f]||a(_,f,p)),S&&O&&"values"!==O.name&&(C=!0,E=function(){return O.call(this)}),r&&!m||!d&&!C&&k[f]||a(k,f,E),s[t]=E,s[w]=p,g)if(v={values:S?E:x("values"),keys:y?E:x("keys"),entries:T},m)for(b in v)b in k||i(k,b,v[b]);else o(o.P+o.F*(d||C),t,v);return v}},function(e,t,n){e.exports=n(64)},function(e,t,n){var r=n(275),o=n(165).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,o)}},function(e,t,n){var r=n(103),o=n(81),i=n(67),a=n(159),s=n(53),u=n(273),l=Object.getOwnPropertyDescriptor;t.f=n(52)?l:function(e,t){if(e=i(e),t=a(t,!0),u)try{return l(e,t)}catch(e){}if(s(e,t))return o(!r.f.call(e,t),e[t])}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=h(n(285));t.default=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),h=1;h<t;h++)n[h-1]=arguments[h];var g=e=o.default.apply(void 0,[{zIndex:s.default,isRtl:!1,userAgent:void 0},a.default,e].concat(n)),y=g.spacing,m=g.fontFamily,v=g.palette,b={spacing:y,fontFamily:m,palette:v};e=(0,o.default)({appBar:{color:v.primary1Color,textColor:v.alternateTextColor,height:y.desktopKeylineIncrement,titleFontWeight:d.default.fontWeightNormal,padding:y.desktopGutter},avatar:{color:v.canvasColor,backgroundColor:(0,i.emphasize)(v.canvasColor,.26)},badge:{color:v.alternateTextColor,textColor:v.textColor,primaryColor:v.primary1Color,primaryTextColor:v.alternateTextColor,secondaryColor:v.accent1Color,secondaryTextColor:v.alternateTextColor,fontWeight:d.default.fontWeightMedium},bottomNavigation:{backgroundColor:v.canvasColor,unselectedColor:(0,i.fade)(v.textColor,.54),selectedColor:v.primary1Color,height:56,unselectedFontSize:12,selectedFontSize:14},button:{height:36,minWidth:88,iconButtonSize:2*y.iconSize},card:{titleColor:(0,i.fade)(v.textColor,.87),subtitleColor:(0,i.fade)(v.textColor,.54),fontWeight:d.default.fontWeightMedium},cardMedia:{color:p.darkWhite,overlayContentBackground:p.lightBlack,titleColor:p.darkWhite,subtitleColor:p.lightWhite},cardText:{textColor:v.textColor},checkbox:{boxColor:v.textColor,checkedColor:v.primary1Color,requiredColor:v.primary1Color,disabledColor:v.disabledColor,labelColor:v.textColor,labelDisabledColor:v.disabledColor},chip:{backgroundColor:(0,i.emphasize)(v.canvasColor,.12),deleteIconColor:(0,i.fade)(v.textColor,.26),textColor:(0,i.fade)(v.textColor,.87),fontSize:14,fontWeight:d.default.fontWeightNormal,shadow:"0 1px 6px "+(0,i.fade)(v.shadowColor,.12)+",\n 0 1px 4px "+(0,i.fade)(v.shadowColor,.12)},datePicker:{color:v.primary1Color,textColor:v.alternateTextColor,calendarTextColor:v.textColor,selectColor:v.primary2Color,selectTextColor:v.alternateTextColor,calendarYearBackgroundColor:v.canvasColor,headerColor:v.pickerHeaderColor||v.primary1Color},dialog:{titleFontSize:22,bodyFontSize:16,bodyColor:(0,i.fade)(v.textColor,.6)},dropDownMenu:{accentColor:v.borderColor},enhancedButton:{tapHighlightColor:p.transparent},flatButton:{color:p.transparent,buttonFilterColor:"#999999",disabledTextColor:(0,i.fade)(v.textColor,.3),textColor:v.textColor,primaryTextColor:v.primary1Color,secondaryTextColor:v.accent1Color,fontSize:d.default.fontStyleButtonFontSize,fontWeight:d.default.fontWeightMedium},floatingActionButton:{buttonSize:56,miniSize:40,color:v.primary1Color,iconColor:v.alternateTextColor,secondaryColor:v.accent1Color,secondaryIconColor:v.alternateTextColor,disabledTextColor:v.disabledColor,disabledColor:(0,i.emphasize)(v.canvasColor,.12)},gridTile:{textColor:p.white},icon:{color:v.canvasColor,backgroundColor:v.primary1Color},inkBar:{backgroundColor:v.accent1Color},drawer:{width:4*y.desktopKeylineIncrement,color:v.canvasColor},listItem:{nestedLevelDepth:18,secondaryTextColor:v.secondaryTextColor,leftIconColor:p.grey600,rightIconColor:p.grey600},menu:{backgroundColor:v.canvasColor,containerBackgroundColor:v.canvasColor},menuItem:{dataHeight:32,height:48,hoverColor:(0,i.fade)(v.textColor,.1),padding:y.desktopGutter,selectedTextColor:v.accent1Color,rightIconDesktopFill:p.grey600},menuSubheader:{padding:y.desktopGutter,borderColor:v.borderColor,textColor:v.primary1Color},overlay:{backgroundColor:p.lightBlack},paper:{color:v.textColor,backgroundColor:v.canvasColor,zDepthShadows:[[1,6,.12,1,4,.12],[3,10,.16,3,10,.23],[10,30,.19,6,10,.23],[14,45,.25,10,18,.22],[19,60,.3,15,20,.22]].map(function(e){return"0 "+e[0]+"px "+e[1]+"px "+(0,i.fade)(v.shadowColor,e[2])+",\n 0 "+e[3]+"px "+e[4]+"px "+(0,i.fade)(v.shadowColor,e[5])})},radioButton:{borderColor:v.textColor,backgroundColor:v.alternateTextColor,checkedColor:v.primary1Color,requiredColor:v.primary1Color,disabledColor:v.disabledColor,size:24,labelColor:v.textColor,labelDisabledColor:v.disabledColor},raisedButton:{color:v.alternateTextColor,textColor:v.textColor,primaryColor:v.primary1Color,primaryTextColor:v.alternateTextColor,secondaryColor:v.accent1Color,secondaryTextColor:v.alternateTextColor,disabledColor:(0,i.darken)(v.alternateTextColor,.1),disabledTextColor:(0,i.fade)(v.textColor,.3),fontSize:d.default.fontStyleButtonFontSize,fontWeight:d.default.fontWeightMedium},refreshIndicator:{strokeColor:v.borderColor,loadingStrokeColor:v.primary1Color},ripple:{color:(0,i.fade)(v.textColor,.87)},slider:{trackSize:2,trackColor:v.primary3Color,trackColorSelected:v.accent3Color,handleSize:12,handleSizeDisabled:8,handleSizeActive:18,handleColorZero:v.primary3Color,handleFillColor:v.alternateTextColor,selectionColor:v.primary1Color,rippleColor:v.primary1Color},snackbar:{textColor:v.alternateTextColor,backgroundColor:v.textColor,actionColor:v.accent1Color},subheader:{color:(0,i.fade)(v.textColor,.54),fontWeight:d.default.fontWeightMedium},stepper:{backgroundColor:"transparent",hoverBackgroundColor:(0,i.fade)(p.black,.06),iconColor:v.primary1Color,hoveredIconColor:p.grey700,inactiveIconColor:p.grey500,textColor:(0,i.fade)(p.black,.87),disabledTextColor:(0,i.fade)(p.black,.26),connectorLineColor:p.grey400},svgIcon:{color:v.textColor},table:{backgroundColor:v.canvasColor},tableFooter:{borderColor:v.borderColor,textColor:v.accent3Color},tableHeader:{borderColor:v.borderColor},tableHeaderColumn:{textColor:v.accent3Color,height:56,spacing:24},tableRow:{hoverColor:v.accent2Color,stripeColor:(0,i.fade)((0,i.lighten)(v.primary1Color,.5),.4),selectedColor:v.borderColor,textColor:v.textColor,borderColor:v.borderColor,height:48},tableRowColumn:{height:48,spacing:24},tabs:{backgroundColor:v.primary1Color,textColor:(0,i.fade)(v.alternateTextColor,.7),selectedTextColor:v.alternateTextColor},textField:{textColor:v.textColor,hintColor:v.disabledColor,floatingLabelColor:v.disabledColor,disabledTextColor:v.disabledColor,errorColor:p.red500,focusColor:v.primary1Color,backgroundColor:"transparent",borderColor:v.borderColor},timePicker:{color:v.alternateTextColor,textColor:v.alternateTextColor,accentColor:v.primary1Color,clockColor:v.textColor,clockCircleColor:v.clockCircleColor,headerColor:v.pickerHeaderColor||v.primary1Color,selectColor:v.primary2Color,selectTextColor:v.alternateTextColor},toggle:{thumbOnColor:v.primary1Color,thumbOffColor:v.accent2Color,thumbDisabledColor:v.borderColor,thumbRequiredColor:v.primary1Color,trackOnColor:(0,i.fade)(v.primary1Color,.5),trackOffColor:v.primary3Color,trackDisabledColor:v.primary3Color,labelColor:v.textColor,labelDisabledColor:v.disabledColor,trackRequiredColor:(0,i.fade)(v.primary1Color,.5)},toolbar:{color:(0,i.fade)(v.textColor,.54),hoverColor:(0,i.fade)(v.textColor,.87),backgroundColor:(0,i.darken)(v.accent2Color,.05),height:56,titleFontSize:20,iconColor:(0,i.fade)(v.textColor,.4),separatorColor:(0,i.fade)(v.textColor,.175),menuHoverColor:(0,i.fade)(v.textColor,.1)},tooltip:{color:p.white,rippleBackgroundColor:p.grey700,opacity:.9}},e,{baseTheme:b,rawTheme:b});var _=[u.default,c.default,l.default].map(function(t){return t(e)}).filter(function(e){return e});return e.prepareStyles=f.default.apply(void 0,(0,r.default)(_)),e};var o=h(n(628)),i=n(289),a=h(n(629)),s=h(n(631)),u=h(n(632)),l=h(n(657)),c=h(n(658)),f=h(n(662)),d=h(n(663)),p=n(173);function h(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";t.__esModule=!0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(286));t.default=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return(0,r.default)(e)}},function(e,t,n){e.exports={default:n(622),__esModule:!0}},function(e,t,n){var r=n(288),o=n(28)("iterator"),i=n(68);e.exports=n(21).getIteratorMethod=function(e){if(void 0!=e)return e[o]||e["@@iterator"]||i[r(e)]}},function(e,t,n){var r=n(160),o=n(28)("toStringTag"),i="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:i?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.convertColorToString=o,t.convertHexToRGB=i,t.decomposeColor=a,t.getContrastRatio=function(e,t){var n=s(e),r=s(t),o=(Math.max(n,r)+.05)/(Math.min(n,r)+.05);return Number(o.toFixed(2))},t.getLuminance=s,t.emphasize=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.15;return s(e)>.5?u(e,t):l(e,t)},t.fade=function(e,t){e=a(e),t=r(t,0,1),("rgb"===e.type||"hsl"===e.type)&&(e.type+="a");return e.values[3]=t,o(e)},t.darken=u,t.lighten=l;!function(e){e&&e.__esModule}(n(63));function r(e,t,n){return e<t?t:e>n?n:e}function o(e){var t=e.type,n=e.values;if(t.indexOf("rgb")>-1)for(var r=0;r<3;r++)n[r]=parseInt(n[r]);var o=void 0;return o=t.indexOf("hsl")>-1?e.type+"("+n[0]+", "+n[1]+"%, "+n[2]+"%":e.type+"("+n[0]+", "+n[1]+", "+n[2],4===n.length?o+=", "+e.values[3]+")":o+=")",o}function i(e){if(4===e.length){for(var t="#",n=1;n<e.length;n++)t+=e.charAt(n)+e.charAt(n);e=t}return"rgb("+parseInt(e.substr(1,2),16)+", "+parseInt(e.substr(3,2),16)+", "+parseInt(e.substr(5,2),16)+")"}function a(e){if("#"===e.charAt(0))return a(i(e));var t=e.indexOf("("),n=e.substring(0,t),r=e.substring(t+1,e.length-1).split(",");return{type:n,values:r=r.map(function(e){return parseFloat(e)})}}function s(e){if((e=a(e)).type.indexOf("rgb")>-1){var t=e.values.map(function(e){return(e/=255)<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)});return Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}if(e.type.indexOf("hsl")>-1)return e.values[2]/100}function u(e,t){if(e=a(e),t=r(t,0,1),e.type.indexOf("hsl")>-1)e.values[2]*=1-t;else if(e.type.indexOf("rgb")>-1)for(var n=0;n<3;n++)e.values[n]*=1-t;return o(e)}function l(e,t){if(e=a(e),t=r(t,0,1),e.type.indexOf("hsl")>-1)e.values[2]+=(100-e.values[2])*t;else if(e.type.indexOf("rgb")>-1)for(var n=0;n<3;n++)e.values[n]+=(255-e.values[n])*t;return o(e)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n,r,o){for(var i=0,a=e.length;i<a;++i){var s=e[i](t,n,r,o);if(s)return s}},e.exports=t.default},function(e,t,n){"use strict";function r(e,t){-1===e.indexOf(t)&&e.push(t)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if(Array.isArray(t))for(var n=0,o=t.length;n<o;++n)r(e,t[n]);else r(e,t)},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e instanceof Object&&!Array.isArray(e)},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,r.default)(e)};var r=function(e){return e&&e.__esModule?e:{default:e}}(n(648));e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=v(n(19)),o=v(n(20)),i=v(n(12)),a=v(n(11)),s=v(n(13)),u=v(n(14)),l=v(n(15)),c=v(n(16)),f=n(0),d=v(f),p=v(n(9)),h=v(n(669)),g=v(n(670)),y=v(n(671)),m=v(n(676));function v(e){return e&&e.__esModule?e:{default:e}}var b=!1,_=!1,x=!1;var w=function(e){function t(){var e,n,r,o;(0,a.default)(this,t);for(var s=arguments.length,l=Array(s),c=0;c<s;c++)l[c]=arguments[c];return n=r=(0,u.default)(this,(e=t.__proto__||(0,i.default)(t)).call.apply(e,[this].concat(l))),r.state={isKeyboardFocused:!1},r.handleKeyDown=function(e){r.props.disabled||r.props.disableKeyboardFocus||("enter"===(0,g.default)(e)&&r.state.isKeyboardFocused&&r.handleClick(e),"esc"===(0,g.default)(e)&&r.state.isKeyboardFocused&&r.removeKeyboardFocus(e)),r.props.onKeyDown(e)},r.handleKeyUp=function(e){r.props.disabled||r.props.disableKeyboardFocus||"space"===(0,g.default)(e)&&r.state.isKeyboardFocused&&r.handleClick(e),r.props.onKeyUp(e)},r.handleBlur=function(e){r.cancelFocusTimeout(),r.removeKeyboardFocus(e),r.props.onBlur(e)},r.handleFocus=function(e){e&&e.persist(),r.props.disabled||r.props.disableKeyboardFocus||(r.focusTimeout=setTimeout(function(){x&&(r.setKeyboardFocus(e),x=!1)},150),r.props.onFocus(e))},r.handleClick=function(e){r.cancelFocusTimeout(),r.props.disabled||(x=!1,r.removeKeyboardFocus(e),r.props.onClick(e))},o=n,(0,u.default)(r,o)}return(0,l.default)(t,e),(0,s.default)(t,[{key:"componentWillMount",value:function(){var e=this.props,t=e.disabled,n=e.disableKeyboardFocus,r=e.keyboardFocused;t||!r||n||this.setState({isKeyboardFocused:!0})}},{key:"componentDidMount",value:function(){!function(){if(!b){var e=document.createElement("style");e.innerHTML="\n button::-moz-focus-inner,\n input::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n ",document.body.appendChild(e),b=!0}}(),_||(h.default.on(window,"keydown",function(e){x="tab"===(0,g.default)(e)}),_=!0),this.state.isKeyboardFocused&&(this.button.focus(),this.props.onKeyboardFocus(null,!0))}},{key:"componentWillReceiveProps",value:function(e){(e.disabled||e.disableKeyboardFocus)&&this.state.isKeyboardFocused&&(this.setState({isKeyboardFocused:!1}),e.onKeyboardFocus&&e.onKeyboardFocus(null,!1))}},{key:"componentWillUnmount",value:function(){this.focusTimeout&&clearTimeout(this.focusTimeout)}},{key:"isKeyboardFocused",value:function(){return this.state.isKeyboardFocused}},{key:"removeKeyboardFocus",value:function(e){this.state.isKeyboardFocused&&(this.setState({isKeyboardFocused:!1}),this.props.onKeyboardFocus(e,!1))}},{key:"setKeyboardFocus",value:function(e){this.state.isKeyboardFocused||(this.setState({isKeyboardFocused:!0}),this.props.onKeyboardFocus(e,!0))}},{key:"cancelFocusTimeout",value:function(){this.focusTimeout&&(clearTimeout(this.focusTimeout),this.focusTimeout=null)}},{key:"createButtonChildren",value:function(){var e=this.props,t=e.centerRipple,n=e.children,r=e.disabled,o=e.disableFocusRipple,i=e.disableKeyboardFocus,a=e.disableTouchRipple,s=e.focusRippleColor,u=e.focusRippleOpacity,l=e.touchRippleColor,c=e.touchRippleOpacity,f=this.state.isKeyboardFocused,p=!f||r||o||i?void 0:d.default.createElement(y.default,{color:s,opacity:u,show:f,style:{overflow:"hidden"},key:"focusRipple"}),h=r||a?void 0:d.default.createElement(m.default,{centerRipple:t,color:l,opacity:c,key:"touchRipple"},n);return[p,h,h?void 0:n]}},{key:"render",value:function(){var e=this,t=this.props,n=(t.centerRipple,t.children),i=t.containerElement,a=t.disabled,s=(t.disableFocusRipple,t.disableKeyboardFocus),u=(t.disableTouchRipple,t.focusRippleColor,t.focusRippleOpacity,t.href),l=(t.keyboardFocused,t.touchRippleColor,t.touchRippleOpacity,t.onBlur,t.onClick,t.onFocus,t.onKeyUp,t.onKeyDown,t.onKeyboardFocus,t.style),f=t.tabIndex,p=t.type,h=(0,o.default)(t,["centerRipple","children","containerElement","disabled","disableFocusRipple","disableKeyboardFocus","disableTouchRipple","focusRippleColor","focusRippleOpacity","href","keyboardFocused","touchRippleColor","touchRippleOpacity","onBlur","onClick","onFocus","onKeyUp","onKeyDown","onKeyboardFocus","style","tabIndex","type"]),g=this.context.muiTheme,y=g.prepareStyles,m=g.enhancedButton,v=(0,c.default)({border:10,boxSizing:"border-box",display:"inline-block",fontFamily:this.context.muiTheme.baseTheme.fontFamily,WebkitTapHighlightColor:m.tapHighlightColor,cursor:a?"default":"pointer",textDecoration:"none",margin:0,padding:0,outline:"none",fontSize:"inherit",fontWeight:"inherit",position:"relative",verticalAlign:u?"middle":null},l);if(v.backgroundColor||v.background||(v.background="none"),a&&u)return d.default.createElement("span",(0,r.default)({},h,{style:v}),n);var b=(0,r.default)({},h,{style:y(v),ref:function(t){return e.button=t},disabled:a,onBlur:this.handleBlur,onFocus:this.handleFocus,onKeyUp:this.handleKeyUp,onKeyDown:this.handleKeyDown,onClick:this.handleClick,tabIndex:a||s?-1:f});u&&(b.href=u);var _=this.createButtonChildren();return d.default.isValidElement(i)?d.default.cloneElement(i,b,_):(u||"button"!==i||(b.type=p),d.default.createElement(u?"a":i,b,_))}}]),t}(f.Component);w.defaultProps={containerElement:"button",onBlur:function(){},onClick:function(){},onFocus:function(){},onKeyDown:function(){},onKeyUp:function(){},onKeyboardFocus:function(){},tabIndex:0,type:"button"},w.contextTypes={muiTheme:p.default.object.isRequired},w.propTypes={},t.default=w},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=f(n(19)),o=f(n(20)),i=f(n(167)),a=f(n(16)),s=f(n(0)),u=f(n(9)),l=f(n(680)),c=f(n(100));function f(e){return e&&e.__esModule?e:{default:e}}var d=function(e,t){e.active;var n=e.children,u=e.completed,f=e.icon,d=e.iconContainerStyle,p=(e.last,e.style),h=(0,o.default)(e,["active","children","completed","icon","iconContainerStyle","last","style"]),g=t.muiTheme.prepareStyles,y=function(e,t){var n=e.active,r=e.completed,o=e.disabled,i=t.muiTheme,a=t.stepper,s=i.stepper,u=s.textColor,l=s.disabledTextColor,c=s.iconColor,f=s.inactiveIconColor,d=i.baseTheme,p={root:{height:"horizontal"===a.orientation?72:64,color:u,display:"flex",alignItems:"center",fontFamily:d.fontFamily,fontSize:14,paddingLeft:14,paddingRight:14},icon:{color:c,display:"block",fontSize:24,width:24,height:24},iconContainer:{paddingRight:8}};return n&&(p.root.fontWeight=500),r||n||(p.icon.color=f),o&&(p.icon.color=f,p.root.color=l,p.root.cursor="default"),p}(e,t),m=function(e,t,n){var r=void 0===t?"undefined":(0,i.default)(t);return"number"===r||"string"===r?e?s.default.createElement(l.default,{color:n.icon.color,style:n.icon}):s.default.createElement(c.default,{color:n.icon.color,style:n.icon},s.default.createElement("circle",{cx:"12",cy:"12",r:"10"}),s.default.createElement("text",{x:"12",y:"16",textAnchor:"middle",fontSize:"12",fill:"#fff"},t)):t}(u,f,y);return s.default.createElement("span",(0,r.default)({style:g((0,a.default)(y.root,p))},h),m&&s.default.createElement("span",{style:g((0,a.default)(y.iconContainer,d))},m),n)};d.muiName="StepLabel",d.propTypes={},d.contextTypes={muiTheme:u.default.object.isRequired,stepper:u.default.object},t.default=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(9));var o=r.default.oneOf(["left","middle","right"]),i=r.default.oneOf(["top","center","bottom"]);t.default={corners:r.default.oneOf(["bottom-left","bottom-right","top-left","top-right"]),horizontal:o,vertical:i,origin:r.default.shape({horizontal:o,vertical:i}),cornersAndCenter:r.default.oneOf(["bottom-center","bottom-left","bottom-right","top-center","top-left","top-right"]),stringOrNumber:r.default.oneOfType([r.default.string,r.default.number]),zDepth:r.default.oneOf([0,1,2,3,4,5])}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(n(0)),o=i(n(693));function i(e){return e&&e.__esModule?e:{default:e}}const a={refresh:{display:"inline-block",position:"relative"}};t.default=(()=>r.default.createElement("div",{className:"yoast-wizard-overlay-loader"},r.default.createElement(o.default,{size:40,left:10,top:100,status:"loading",style:a.refresh})))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(299);Object.defineProperty(t,"FixedWidthContainer",{enumerable:!0,get:function(){return c(r).default}});var o=n(713);Object.defineProperty(t,"HelpTextWrapper",{enumerable:!0,get:function(){return c(o).default}});var i=n(308);Object.defineProperty(t,"SnippetPreview",{enumerable:!0,get:function(){return c(i).default}});var a=n(182);Object.defineProperty(t,"ReplacementVariableEditor",{enumerable:!0,get:function(){return c(a).default}});var s=n(956);Object.defineProperty(t,"SettingsSnippetEditor",{enumerable:!0,get:function(){return c(s).default}});var u=n(958);Object.defineProperty(t,"SnippetEditor",{enumerable:!0,get:function(){return c(u).default}});var l=n(58);function c(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"lengthProgressShape",{enumerable:!0,get:function(){return l.lengthProgressShape}}),Object.defineProperty(t,"recommendedReplacementVariablesShape",{enumerable:!0,get:function(){return l.recommendedReplacementVariablesShape}}),Object.defineProperty(t,"replacementVariablesShape",{enumerable:!0,get:function(){return l.replacementVariablesShape}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),o=l(r),i=l(n(1)),a=l(n(17)),s=l(n(300)),u=n(10);function l(e){return e&&e.__esModule?e:{default:e}}const c=i.default.div.withConfig({displayName:"FixedWidthContainer__FixedWidth",componentId:"sc-12v6gqu-0"})(["overflow:auto;width:","px;padding:0 ","px;max-width:100%;box-sizing:border-box;"],e=>e.widthValue,e=>e.paddingValue),f=i.default.div.withConfig({displayName:"FixedWidthContainer__Inner",componentId:"sc-12v6gqu-1"})(["width:","px;"],e=>e.widthValue),d=i.default.div.withConfig({displayName:"FixedWidthContainer__ScrollHintContainer",componentId:"sc-12v6gqu-2"})(["text-align:center;margin:1em 0 5px;"]),p=i.default.div.withConfig({displayName:"FixedWidthContainer__ScrollHint",componentId:"sc-12v6gqu-3"})(['display:inline-block;box-sizing:border-box;&:before{display:inline-block;margin-right:10px;font-size:20px;line-height:inherit;vertical-align:text-top;content:"\\21c4";box-sizing:border-box;}']);class h extends r.Component{constructor(e){super(e),this.state={showScrollHint:!1},this.setContainerRef=this.setContainerRef.bind(this),this.determineSize=(0,s.default)(this.determineSize.bind(this),100)}setContainerRef(e){if(!e)return null;this._container=e,this.determineSize(),window.addEventListener("resize",this.determineSize)}determineSize(){const e=this._container.offsetWidth;this.setState({showScrollHint:e<this.props.width})}componentWillUnmount(){window.removeEventListener("resize",this.determineSize)}render(){var e=this.props;const t=e.width,n=e.padding,r=e.children,i=e.className,a=e.id,s=t-2*n;return o.default.createElement(o.default.Fragment,null,o.default.createElement(c,{id:a,className:i,widthValue:t,paddingValue:n,ref:this.setContainerRef},o.default.createElement(f,{widthValue:s},r)),this.state.showScrollHint&&o.default.createElement(d,null,o.default.createElement(p,null,(0,u.__)("Scroll to see the preview content.","yoast-components"))))}}t.default=h,h.propTypes={id:a.default.string,width:a.default.number.isRequired,padding:a.default.number,children:a.default.node.isRequired,className:a.default.string},h.defaultProps={id:"",padding:0,className:""}},function(e,t,n){var r=n(70),o=n(710),i=n(302),a="Expected a function",s=Math.max,u=Math.min;e.exports=function(e,t,n){var l,c,f,d,p,h,g=0,y=!1,m=!1,v=!0;if("function"!=typeof e)throw new TypeError(a);function b(t){var n=l,r=c;return l=c=void 0,g=t,d=e.apply(r,n)}function _(e){var n=e-h;return void 0===h||n>=t||n<0||m&&e-g>=f}function x(){var e=o();if(_(e))return w(e);p=setTimeout(x,function(e){var n=t-(e-h);return m?u(n,f-(e-g)):n}(e))}function w(e){return p=void 0,v&&l?b(e):(l=c=void 0,d)}function S(){var e=o(),n=_(e);if(l=arguments,c=this,h=e,n){if(void 0===p)return function(e){return g=e,p=setTimeout(x,t),y?b(e):d}(h);if(m)return p=setTimeout(x,t),b(h)}return void 0===p&&(p=setTimeout(x,t)),d}return t=i(t)||0,r(n)&&(y=!!n.leading,f=(m="maxWait"in n)?s(i(n.maxWait)||0,t):f,v="trailing"in n?!!n.trailing:v),S.cancel=function(){void 0!==p&&clearTimeout(p),g=0,l=h=c=p=void 0},S.flush=function(){return void 0===p?d:w(o())},S}},function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(this,n(18))},function(e,t,n){var r=n(70),o=n(106),i=NaN,a=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(o(e))return i;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(a,"");var n=u.test(e);return n||l.test(e)?c(e.slice(2),n?2:8):s.test(e)?i:+e}},function(e,t,n){var r=n(107),o=n(304),i=n(30),a=n(106),s=1/0,u=r?r.prototype:void 0,l=u?u.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(i(t))return o(t,e)+"";if(a(t))return l?l.call(t):"";var n=t+"";return"0"==n&&1/t==-s?"-0":n}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}},function(e,t,n){"use strict";t.__esModule=!0,t.default=t.EXITING=t.ENTERED=t.ENTERING=t.EXITED=t.UNMOUNTED=void 0;var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}(n(17)),o=s(n(0)),i=s(n(23)),a=n(155);n(306);function s(e){return e&&e.__esModule?e:{default:e}}var u="unmounted";t.UNMOUNTED=u;var l="exited";t.EXITED=l;var c="entering";t.ENTERING=c;var f="entered";t.ENTERED=f;t.EXITING="exiting";var d=function(e){function t(t,n){var r;r=e.call(this,t,n)||this;var o,i=n.transitionGroup,a=i&&!i.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?a?(o=l,r.appearStatus=c):o=f:o=t.unmountOnExit||t.mountOnEnter?u:l,r.state={status:o},r.nextCallback=null,r}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}(t,e);var n=t.prototype;return n.getChildContext=function(){return{transitionGroup:null}},t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===u?{status:l}:null},n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==c&&n!==f&&(t=c):n!==c&&n!==f||(t="exiting")}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e,t,n,r=this.props.timeout;return e=t=n=r,null!=r&&"number"!=typeof r&&(e=r.exit,t=r.enter,n=void 0!==r.appear?r.appear:t),{exit:e,enter:t,appear:n}},n.updateStatus=function(e,t){if(void 0===e&&(e=!1),null!==t){this.cancelNextCallback();var n=i.default.findDOMNode(this);t===c?this.performEnter(n,e):this.performExit(n)}else this.props.unmountOnExit&&this.state.status===l&&this.setState({status:u})},n.performEnter=function(e,t){var n=this,r=this.props.enter,o=this.context.transitionGroup?this.context.transitionGroup.isMounting:t,i=this.getTimeouts(),a=o?i.appear:i.enter;t||r?(this.props.onEnter(e,o),this.safeSetState({status:c},function(){n.props.onEntering(e,o),n.onTransitionEnd(e,a,function(){n.safeSetState({status:f},function(){n.props.onEntered(e,o)})})})):this.safeSetState({status:f},function(){n.props.onEntered(e)})},n.performExit=function(e){var t=this,n=this.props.exit,r=this.getTimeouts();n?(this.props.onExit(e),this.safeSetState({status:"exiting"},function(){t.props.onExiting(e),t.onTransitionEnd(e,r.exit,function(){t.safeSetState({status:l},function(){t.props.onExited(e)})})})):this.safeSetState({status:l},function(){t.props.onExited(e)})},n.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},n.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(e,t,n){this.setNextCallback(n);var r=null==t&&!this.props.addEndListener;e&&!r?(this.props.addEndListener&&this.props.addEndListener(e,this.nextCallback),null!=t&&setTimeout(this.nextCallback,t)):setTimeout(this.nextCallback,0)},n.render=function(){var e=this.state.status;if(e===u)return null;var t=this.props,n=t.children,r=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(t,["children"]);if(delete r.in,delete r.mountOnEnter,delete r.unmountOnExit,delete r.appear,delete r.enter,delete r.exit,delete r.timeout,delete r.addEndListener,delete r.onEnter,delete r.onEntering,delete r.onEntered,delete r.onExit,delete r.onExiting,delete r.onExited,"function"==typeof n)return n(e,r);var i=o.default.Children.only(n);return o.default.cloneElement(i,r)},t}(o.default.Component);function p(){}d.contextTypes={transitionGroup:r.object},d.childContextTypes={transitionGroup:function(){}},d.propTypes={},d.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:p,onEntering:p,onEntered:p,onExit:p,onExiting:p,onExited:p},d.UNMOUNTED=0,d.EXITED=1,d.ENTERING=2,d.ENTERED=3,d.EXITING=4;var h=(0,a.polyfill)(d);t.default=h},function(e,t,n){"use strict";t.__esModule=!0,t.classNamesShape=t.timeoutsShape=void 0;!function(e){e&&e.__esModule}(n(17));t.timeoutsShape=null;t.classNamesShape=null},function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=s(n(17)),o=s(n(0)),i=n(155),a=n(722);function s(e){return e&&e.__esModule?e:{default:e}}function u(){return(u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function l(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var c=Object.values||function(e){return Object.keys(e).map(function(t){return e[t]})},f=function(e){function t(t,n){var r,o=(r=e.call(this,t,n)||this).handleExited.bind(l(l(r)));return r.state={handleExited:o,firstRender:!0},r}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}(t,e);var n=t.prototype;return n.getChildContext=function(){return{transitionGroup:{isMounting:!this.appeared}}},n.componentDidMount=function(){this.appeared=!0,this.mounted=!0},n.componentWillUnmount=function(){this.mounted=!1},t.getDerivedStateFromProps=function(e,t){var n=t.children,r=t.handleExited;return{children:t.firstRender?(0,a.getInitialChildMapping)(e,r):(0,a.getNextChildMapping)(e,n,r),firstRender:!1}},n.handleExited=function(e,t){var n=(0,a.getChildMapping)(this.props.children);e.key in n||(e.props.onExited&&e.props.onExited(t),this.mounted&&this.setState(function(t){var n=u({},t.children);return delete n[e.key],{children:n}}))},n.render=function(){var e=this.props,t=e.component,n=e.childFactory,r=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,["component","childFactory"]),i=c(this.state.children).map(n);return delete r.appear,delete r.enter,delete r.exit,null===t?i:o.default.createElement(t,r,i)},t}(o.default.Component);f.childContextTypes={transitionGroup:r.default.object.isRequired},f.propTypes={},f.defaultProps={component:"div",childFactory:function(e){return e}};var d=(0,i.polyfill)(f);t.default=d,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=n(0),i=b(o),a=b(n(1)),s=b(n(62)),u=b(n(17)),l=b(n(724)),c=n(736),f=n(10),d=n(3),p=n(180),h=n(7),g=n(8),y=b(n(299)),m=n(181),v=n(108);function b(e){return e&&e.__esModule?e:{default:e}}const _=p.string.transliterate,x=p.string.createRegexFromArray,w=p.string.replaceDiacritics,S=600,C=20,k=156,O=(0,a.default)(y.default).withConfig({displayName:"SnippetPreview__DesktopContainer",componentId:"waz8ku-0"})(["background-color:#fff;font-family:arial,sans-serif;box-sizing:border-box;"]),E=a.default.div.withConfig({displayName:"SnippetPreview__MobileContainer",componentId:"waz8ku-1"})(["border-bottom:1px hidden #fff;border-radius:8px;box-shadow:0 1px 6px rgba(32,33,36,0.28);font-family:Arial,Roboto-Regular,HelveticaNeue,sans-serif;max-width:","px;box-sizing:border-box;font-size:14px;"],400),T=a.default.div.withConfig({displayName:"SnippetPreview__BaseTitle",componentId:"waz8ku-2"})(["cursor:pointer;position:relative;"]);function M(e,t,n){return(0,a.default)(e).withConfig({displayName:"SnippetPreview",componentId:"waz8ku-3"})(["&::before{display:block;position:absolute;top:0;",":",";width:22px;height:22px;background-image:url( ",' );background-size:24px;background-repeat:no-repeat;background-position:center;content:"";}'],(0,h.getDirectionalStyle)("left","right"),()=>n===m.MODE_DESKTOP?"-22px":"-40px",(0,h.getDirectionalStyle)((0,v.angleRight)(t),(0,v.angleLeft)(t)))}const P=a.default.div.withConfig({displayName:"SnippetPreview__Title",componentId:"waz8ku-4"})(["color:",";text-decoration:none;font-size:",";line-height:",";font-weight:normal;margin:0;display:inline-block;overflow:hidden;max-width:","px;vertical-align:top;text-overflow:ellipsis;"],e=>e.screenMode===m.MODE_DESKTOP?"#1a0dab":"#1967d2",e=>e.screenMode===m.MODE_DESKTOP?"20px":"16px",e=>e.screenMode===m.MODE_DESKTOP?"1.3":"20px",S),j=(0,a.default)(P).withConfig({displayName:"SnippetPreview__TitleBounded",componentId:"waz8ku-5"})(["max-width:","px;vertical-align:top;text-overflow:ellipsis;"],S),A=a.default.span.withConfig({displayName:"SnippetPreview__TitleUnboundedDesktop",componentId:"waz8ku-6"})(["white-space:nowrap;"]),I=a.default.span.withConfig({displayName:"SnippetPreview__TitleUnboundedMobile",componentId:"waz8ku-7"})(["display:inline-block;max-height:40px;padding-top:1px;vertical-align:top;overflow:hidden;text-overflow:ellipsis;"]),R=a.default.div.withConfig({displayName:"SnippetPreview__BaseUrl",componentId:"waz8ku-8"})(["display:inline-block;cursor:pointer;position:relative;max-width:90%;white-space:nowrap;font-size:14px;vertical-align:top;"]),D=(0,a.default)(R).withConfig({displayName:"SnippetPreview__BaseUrlOverflowContainer",componentId:"waz8ku-9"})(["overflow:hidden;text-overflow:ellipsis;max-width:100%;margin-bottom:",";padding-top:1px;line-height:",";vertical-align:",";"],e=>e.screenMode===m.MODE_DESKTOP?"0":"12px",e=>e.screenMode===m.MODE_DESKTOP?"1.5":"20px",e=>e.screenMode===m.MODE_DESKTOP?"baseline":"top"),N=a.default.span.withConfig({displayName:"SnippetPreview__UrlContentContainer",componentId:"waz8ku-10"})(["font-size:",";color:",";"],e=>e.screenMode===m.MODE_DESKTOP?"16px":"12px",e=>e.screenMode===m.MODE_DESKTOP?"#006621":"#3c4043");D.displayName="SnippetPreview__BaseUrlOverflowContainer";const B=a.default.div.withConfig({displayName:"SnippetPreview__DesktopDescription",componentId:"waz8ku-11"})(["color:",";cursor:pointer;position:relative;max-width:","px;padding-top:",";font-size:14px;line-height:1.57;"],e=>e.isDescriptionPlaceholder?"#767676":"#545454",S,e=>e.screenMode===m.MODE_DESKTOP?"0":"1px"),L=a.default.div.withConfig({displayName:"SnippetPreview__MobileDescription",componentId:"waz8ku-12"})(["color:",";font-size:14px;line-height:20px;cursor:pointer;position:relative;max-width:",'px;&:after{display:table;content:"";clear:both;}'],"#3c4043",S),F=a.default.div.withConfig({displayName:"SnippetPreview__MobileDescriptionImageContainer",componentId:"waz8ku-13"})(["float:right;width:104px;height:104px;margin:4px 0 4px 16px;border-radius:8px;overflow:hidden;"]),z=a.default.img.withConfig({displayName:"SnippetPreview__MobileDescriptionImage",componentId:"waz8ku-14"})(["&&&{display:block;width:104px;height:104px;object-fit:cover;}"]),q=a.default.div.withConfig({displayName:"SnippetPreview__MobilePartContainer",componentId:"waz8ku-15"})(["padding:12px 16px;&:first-child{margin-bottom:-16px;}"]),K=a.default.div.withConfig({displayName:"SnippetPreview__DesktopPartContainer",componentId:"waz8ku-16"})([""]),W=a.default.div.withConfig({displayName:"SnippetPreview__UrlDownArrow",componentId:"waz8ku-17"})(["display:inline-block;margin-top:9px;margin-left:6px;border-top:5px solid #006621;border-right:4px solid transparent;border-left:4px solid transparent;vertical-align:top;"]),U=a.default.span.withConfig({displayName:"SnippetPreview__DatePreview",componentId:"waz8ku-18"})(["color:",";"],e=>e.screenMode===m.MODE_DESKTOP?"#777":"#70757a"),$="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABs0lEQVR4AWL4//8/RRjO8Iucx+noO0MWUDo16FYABMGP6ZfUcRnWtm27jVPbtm3bttuH2t3eFPcY9pLz7NxiLjCyVd87pKnHyqXyxtCs8APd0rnyxiu4qSeA3QEDrAwBDrT1s1Rc/OrjLZwqVmOSu6+Lamcpp2KKMA9PH1BYXMe1mUP5qotvXTywsOEEYHXxrY+3cqk6TMkYpNr2FeoY3KIr0RPtn9wQ2unlA+GMkRw6+9TFw4YTwDUzx/JVvARj9KaedXRO8P5B1Du2S32smzqUrcKGEyA+uAgQjKX7zf0boWHGfn71jIKj2689gxp7OAGShNcBUmLMPVjZuiKcA2vuWHHDCQxMCz629kXAIU4ApY15QwggAFbfOP9DhgBJ+nWVJ1AZAfICAj1pAlY6hCADZnveQf7bQIwzVONGJonhLIlS9gr5mFg44Xd+4S3XHoGNPdJl1INIwKyEgHckEhgTe1bGiFY9GSFBYUwLh1IkiJUbY407E7syBSFxKTszEoiE/YdrgCEayDmtaJwCI9uu8TKMuZSVfSa4BpGgzvomBR/INhLGzrqDotp01ZR8pn/1L0JN9d9XNyx0AAAAAElFTkSuQmCC",H=a.default.img.withConfig({displayName:"SnippetPreview__Favicon",componentId:"waz8ku-19"})(["width:16px;height:16px;margin-right:12px;vertical-align:middle;"]),V=a.default.div.withConfig({displayName:"SnippetPreview__Amp",componentId:"waz8ku-20"})(["background-size:100% 100%;display:inline-block;height:12px;width:12px;margin-bottom:-1px;opacity:0.46;margin-right:6px;background-image:url( "," )"],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAQAAABLCVATAAABr0lEQVR4AbWWJYCUURhFD04Zi7hrLzgFd4nzV9x6wKHinmYb7g4zq71gIw2LWBnZ3Q8df/fh96Tn/t2HVIw4CVKk+fSFNCkSxInxW1pFkhLmoMRjVvFLmkEX5ocuZuBVPw5jv8hh+iEU5QEmuMK+prz7RN3dPMMEGQYzxpH/lGjzou5jgl7mAvOdZfcbF+jbm3MAbFZ7VX9SJnlL1D8UMyjLe+BrAYDb+jJUr59JrlNWRtcqX9GkrPCR4QBAf4qYJAkQoyQrbKKs8RiaEjEI0GvvQ1mLMC9xaBFFBaZS1TbMSwJSomg39erDF+TxpCCNOXjGQJTCvG6qn4ZPzkcxA61Tjhaf4KMj+6Q3XvW6Lopraa8IozRQxIi0a7NXorULc5JyHX/3F3q+0PsFYytVTaGgjz/AvCyiegE69IUsPxHNBMpa738i6tGWlzkAABjKe/+j9YeRHGVd9oWRnwe2ewDASp/L/UqoPQ5AmFeYZMavBP8dAJz0GWWDHQlzXApMdz4KYUfKICcxkKeOfGmQyrIPcgE9m+g/+kT812/Nr3+0kqzitxQjoKXh6xfor99nlEdFjyvH15gAAAAASUVORK5CYII=");function G(e,t,n,r){if(0===t.length)return n;let o=r||n;const a=[];t.forEach(function(t){t=r?w(t):t,a.push(t);const n=_(t,e);n!==t&&a.push(n)});const u=x(a,!1,"",!1);return o=o.replace(u,function(e){return`{{strong}}${e}{{/strong}}`}),(0,s.default)({mixedString:o,components:{strong:i.default.createElement("strong",null)}})}class Y extends o.PureComponent{constructor(e){super(e),this.state={title:e.title,description:e.description,isDescriptionPlaceholder:!0},this.setTitleRef=this.setTitleRef.bind(this),this.setDescriptionRef=this.setDescriptionRef.bind(this)}setTitleRef(e){this._titleElement=e}setDescriptionRef(e){this._descriptionElement=e}hasOverflowedContent(e){return Math.abs(e.clientHeight-e.scrollHeight)>=2}fitTitle(){const e=this._titleElement;if(this.hasOverflowedContent(e)){let t=this.state.title;const n=e.clientWidth/3;t.length>n&&(t=t.substring(0,n));const r=this.dropLastWord(t);this.setState({title:r})}}dropLastWord(e){const t=e.split(" ");return t.pop(),t.join(" ")}getTitle(){return this.props.title!==this.state.title?this.state.title+" ...":this.props.title}getDescription(){return this.props.description?(0,l.default)(this.props.description,{length:k,separator:" ",omission:" ..."}):(0,f.__)("Please provide a meta description by editing the snippet below. If you don’t, Google will try to find a relevant part of your post to show in the search results.","yoast-components")}renderDate(){const e=this.props.mode===m.MODE_DESKTOP?"-":"⋅";return this.props.date&&i.default.createElement(U,{screenMode:this.props.mode},this.props.date," ",e," ")}addCaretStyles(e,t){var n=this.props;const r=n.mode,o=n.hoveredField;return n.activeField===e?M(t,d.colors.$color_snippet_active,r):o===e?M(t,d.colors.$color_snippet_hover,r):t}getBreadcrumbs(e){const t=this.props.breadcrumbs,n=encodeURI(e.replace(/\?|#/g,""));var r=(0,c.parse)(n);const o=r.protocol,i=r.hostname,a=r.pathname,s=["https:"===o?o+"//"+i:i,...t||a.split("/")].filter(e=>!!e).join(" › ");return decodeURI(s)}renderUrl(){var e=this.props;const t=e.url,n=e.onMouseUp,r=e.onMouseEnter,o=e.onMouseLeave,a=e.mode,s=e.faviconSrc,u=a===m.MODE_MOBILE;let l=w(t);u?l=this.getBreadcrumbs(l):function(e){return e.lastIndexOf("/")===e.length-1}(l)||(l+="/");const c=this.addCaretStyles("url",R);return i.default.createElement(i.default.Fragment,null,i.default.createElement(g.ScreenReaderText,null,(0,f.__)("Url preview","yoast-components")+":"),i.default.createElement(c,null,i.default.createElement(D,{onMouseUp:n.bind(null,"url"),onMouseEnter:r.bind(null,"url"),onMouseLeave:o.bind(null),screenMode:a},u&&i.default.createElement(H,{src:s||$,alt:""}),i.default.createElement(N,{screenMode:a},l))))}componentWillReceiveProps(e){const t={};this.props.title!==e.title&&(t.title=e.title),this.props.description!==e.description&&(t.description=e.description),this.setState(t)}componentDidUpdate(){this.setState({isDescriptionPlaceholder:!this.props.description}),this.props.mode===m.MODE_MOBILE&&(clearTimeout(this.fitTitleTimeout),this.fitTitleTimeout=setTimeout(()=>{this.fitTitle()},10))}componentDidMount(){this.setState({isDescriptionPlaceholder:!this.props.description})}renderDescription(){var e=this.props;const t=e.wordsToHighlight,n=e.locale,o=e.onMouseUp,a=e.onMouseLeave,s=e.onMouseEnter,u=e.mode,l=e.mobileImageSrc,c=this.renderDate(),f={isDescriptionPlaceholder:this.state.isDescriptionPlaceholder,onMouseUp:o.bind(null,"description"),onMouseEnter:s.bind(null,"description"),onMouseLeave:a.bind(null)};if(u===m.MODE_DESKTOP){const e=this.addCaretStyles("description",B);return i.default.createElement(e,r({},f,{ref:this.setDescriptionRef}),c,G(n,t,this.getDescription()))}if(u===m.MODE_MOBILE){const e=this.addCaretStyles("description",L);return i.default.createElement(e,f,i.default.createElement(L,{isDescriptionPlaceholder:this.state.isDescriptionPlaceholder,ref:this.setDescriptionRef},l&&i.default.createElement(F,null,i.default.createElement(z,{src:l,alt:""})),c,G(n,t,this.getDescription())))}return null}render(){var e=this.props;const t=e.onMouseUp,n=e.onMouseLeave,r=e.onMouseEnter,o=e.mode,a=e.isAmp;var s=this.getPreparedComponents(o);const u=s.PartContainer,l=s.Container,c=s.TitleUnbounded,d=s.SnippetTitle,p=o===m.MODE_DESKTOP,h=p?i.default.createElement(W,null):null,y=p||!a?null:i.default.createElement(V,null);return i.default.createElement("section",null,i.default.createElement(l,{id:"yoast-snippet-preview-container",onMouseLeave:this.onMouseLeave,width:p?S+2*C:null,padding:C},i.default.createElement(u,null,!p&&this.renderUrl(),i.default.createElement(g.ScreenReaderText,null,(0,f.__)("SEO title preview","yoast-components")+":"),i.default.createElement(d,{onMouseUp:t.bind(null,"title"),onMouseEnter:r.bind(null,"title"),onMouseLeave:n.bind(null)},i.default.createElement(j,{screenMode:o},i.default.createElement(c,{ref:this.setTitleRef},this.getTitle()))),y,p&&this.renderUrl(),h),i.default.createElement(u,null,i.default.createElement(g.ScreenReaderText,null,(0,f.__)("Meta description preview","yoast-components")+":"),this.renderDescription())))}getPreparedComponents(e){return{PartContainer:e===m.MODE_DESKTOP?K:q,Container:e===m.MODE_DESKTOP?O:E,TitleUnbounded:e===m.MODE_DESKTOP?A:I,SnippetTitle:this.addCaretStyles("title",T)}}}t.default=Y,Y.propTypes={title:u.default.string.isRequired,url:u.default.string.isRequired,description:u.default.string.isRequired,date:u.default.string,breadcrumbs:u.default.array,hoveredField:u.default.string,activeField:u.default.string,keyword:u.default.string,wordsToHighlight:u.default.array,locale:u.default.string,mode:u.default.oneOf(m.MODES),isAmp:u.default.bool,faviconSrc:u.default.string,mobileImageSrc:u.default.string,onMouseUp:u.default.func.isRequired,onHover:u.default.func,onMouseEnter:u.default.func,onMouseLeave:u.default.func},Y.defaultProps={date:"",keyword:"",wordsToHighlight:[],breadcrumbs:null,locale:"en",hoveredField:"",activeField:"",mode:m.DEFAULT_MODE,isAmp:!1,faviconSrc:"",mobileImageSrc:"",onHover:()=>{},onMouseEnter:()=>{},onMouseLeave:()=>{}}},function(e,t){e.exports=function(e){return function(t){return e(t)}}},function(e,t,n){(function(e){var r=n(301),o="object"==typeof t&&t&&!t.nodeType&&t,i=o&&"object"==typeof e&&e&&!e.nodeType&&e,a=i&&i.exports===o&&r.process,s=function(){try{var e=i&&i.require&&i.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(e){}}();e.exports=s}).call(this,n(34)(e))},function(e,t){e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},function(e,t,n){var r=n(735);e.exports=function(e){var t=r(e),n=t%1;return t==t?n?t-n:t:0}},function(e,t,n){"use strict";var r=n(27),o=n(4),i=n(40),a=o.OrderedMap;e.exports=function(e){return e.first()instanceof r?function(e){var t={},n=void 0;return a(e.withMutations(function(e){e.forEach(function(r,o){var a=r.getKey(),s=r.getNextSiblingKey(),u=r.getPrevSiblingKey(),l=r.getChildKeys(),c=r.getParentKey(),f=i();if(t[a]=f,s&&(e.get(s)?e.setIn([s,"prevSibling"],f):e.setIn([a,"nextSibling"],null)),u&&(e.get(u)?e.setIn([u,"nextSibling"],f):e.setIn([a,"prevSibling"],null)),c&&e.get(c)){var d=e.get(c).getChildKeys();e.setIn([c,"children"],d.set(d.indexOf(r.getKey()),f))}else e.setIn([a,"parent"],null),n&&(e.setIn([n.getKey(),"nextSibling"],f),e.setIn([a,"prevSibling"],t[n.getKey()])),n=e.get(a);l.forEach(function(t){e.get(t)?e.setIn([t,"parent"],f):e.setIn([a,"children"],r.getChildKeys().filter(function(e){return e!==t}))})})}).toArray().map(function(e){return[t[e.getKey()],e.set("key",t[e.getKey()])]}))}(e):function(e){return a(e.toArray().map(function(e){var t=i();return[t,e.set("key",t)]}))}(e)}},function(e,t,n){"use strict";var r=n(25),o=n(85),i=n(5);function a(e,t,n){var a=t.getCharacterList(),s=n>0?a.get(n-1):void 0,u=n<a.count()?a.get(n):void 0,l=s?s.getEntity():void 0,c=u?u.getEntity():void 0;if(c&&c===l&&"MUTABLE"!==e.__get(c).getMutability()){for(var f,d=function(e,t,n){var r;return o(e,function(e,t){return e.getEntity()===t.getEntity()},function(e){return e.getEntity()===t},function(e,t){e<=n&&t>=n&&(r={start:e,end:t})}),"object"!=typeof r&&i(!1),r}(a,c,n),p=d.start,h=d.end;p<h;)f=a.get(p),a=a.set(p,r.applyEntity(f,null)),p++;return t.set("characterList",a)}return t}e.exports=function(e,t){var n=e.getBlockMap(),r=e.getEntityMap(),o={},i=t.getStartKey(),s=t.getStartOffset(),u=n.get(i),l=a(r,u,s);l!==u&&(o[i]=l);var c=t.getEndKey(),f=t.getEndOffset(),d=n.get(c);i===c&&(d=l);var p=a(r,d,f);return p!==d&&(o[c]=p),Object.keys(o).length?e.merge({blockMap:n.merge(o),selectionAfter:t}):e.set("selectionAfter",t)}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(n===e.count())t.forEach(function(t){e=e.push(t)});else if(0===n)t.reverse().forEach(function(t){e=e.unshift(t)});else{var r=e.slice(0,n),o=e.slice(n);e=r.concat(t,o).toList()}return e}},function(e,t,n){"use strict";var r=n(27);e.exports=function(e,t){if(!(e instanceof r))return null;var n=e.getNextSiblingKey();if(n)return n;var o=e.getParentKey();if(!o)return null;for(var i=t.get(o);i&&!i.getNextSiblingKey();){var a=i.getParentKey();i=a?t.get(a):null}return i?i.getNextSiblingKey():null}},function(e,t,n){"use strict";var r=n(4),o=n(183),i=n(85),a=r.List,s=r.Repeat,u=r.Record,l=o.thatReturnsTrue,c=u({start:null,end:null}),f=u({start:null,end:null,decoratorKey:null,leaves:null}),d={generate:function(e,t,n){var r=t.getLength();if(!r)return a.of(new f({start:0,end:0,decoratorKey:null,leaves:a.of(new c({start:0,end:0}))}));var o=[],u=n?n.getDecorations(t,e):a(s(null,r)),d=t.getCharacterList();return i(u,p,l,function(e,t){o.push(new f({start:e,end:t,decoratorKey:u.get(e),leaves:function(e,t){var n=[],r=e.map(function(e){return e.getStyle()}).toList();return i(r,p,l,function(e,r){n.push(new c({start:e+t,end:r+t}))}),a(n)}(d.slice(e,t).toList(),e)}))}),a(o)},getFingerprint:function(e){return e.map(function(e){var t=e.get("decoratorKey");return(null!==t?t+"."+(e.get("end")-e.get("start")):"")+"."+e.get("leaves").size}).join("-")}};function p(e,t){return e===t}e.exports=d},function(e,t,n){"use strict";var r=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.getType=function(){return this.get("type")},t.prototype.getMutability=function(){return this.get("mutability")},t.prototype.getData=function(){return this.get("data")},t}((0,n(4).Record)({type:"TOKEN",mutability:"IMMUTABLE",data:Object}));e.exports=r},function(e,t,n){"use strict";var r=n(186),o=n(5),i="־׀׃׆-א-ת-ׯװ-ײ׳-״-߀-߉ߊ-ߪߴ-ߵߺ-߿ࠀ-ࠕࠚࠤࠨ-࠰-࠾ࡀ-ࡘ-࡞-࢟יִײַ-ﬨשׁ-זּטּ-לּמּנּ-סּףּ-פּצּ-ﭏ",a="؈؋؍؛؝؞-؟ؠ-ؿـف-ي٭ٮ-ٯٱ-ۓ۔ەۥ-ۦۮ-ۯۺ-ۼ۽-۾ۿ܀-܍ܐܒ-ܯ-ݍ-ޥޱ-ࢠ-ࢲࢳ-ࣣﭐ-ﮱ﮲-﯁﯂-ﯓ-ﴽ﵀-﵏ﵐ-ﶏ-ﶒ-ﷇ-﷏ﷰ-ﷻ﷼﷾-﷿ﹰ-ﹴﹶ-ﻼ-",s=new RegExp("["+"A-Za-zªµºÀ-ÖØ-öø-ƺƻƼ-ƿǀ-ǃDŽ-ʓʔʕ-ʯʰ-ʸʻ-ˁː-ˑˠ-ˤˮͰ-ͳͶ-ͷͺͻ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҂Ҋ-ԯԱ-Ֆՙ՚-՟ա-և։ःऄ-हऻऽा-ीॉ-ौॎ-ॏॐक़-ॡ।-॥०-९॰ॱॲ-ঀং-ঃঅ-ঌএ-ঐও-নপ-রলশ-হঽা-ীে-ৈো-ৌৎৗড়-ঢ়য়-ৡ০-৯ৰ-ৱ৴-৹৺ਃਅ-ਊਏ-ਐਓ-ਨਪ-ਰਲ-ਲ਼ਵ-ਸ਼ਸ-ਹਾ-ੀਖ਼-ੜਫ਼੦-੯ੲ-ੴઃઅ-ઍએ-ઑઓ-નપ-રલ-ળવ-હઽા-ીૉો-ૌૐૠ-ૡ૦-૯૰ଂ-ଃଅ-ଌଏ-ଐଓ-ନପ-ରଲ-ଳଵ-ହଽାୀେ-ୈୋ-ୌୗଡ଼-ଢ଼ୟ-ୡ୦-୯୰ୱ୲-୷ஃஅ-ஊஎ-ஐஒ-கங-சஜஞ-டண-தந-பம-ஹா-ிு-ூெ-ைொ-ௌௐௗ௦-௯௰-௲ఁ-ఃఅ-ఌఎ-ఐఒ-నప-హఽు-ౄౘ-ౙౠ-ౡ౦-౯౿ಂ-ಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽಾಿೀ-ೄೆೇ-ೈೊ-ೋೕ-ೖೞೠ-ೡ೦-೯ೱ-ೲം-ഃഅ-ഌഎ-ഐഒ-ഺഽാ-ീെ-ൈൊ-ൌൎൗൠ-ൡ൦-൯൰-൵൹ൺ-ൿං-ඃඅ-ඖක-නඳ-රලව-ෆා-ෑෘ-ෟ෦-෯ෲ-ෳ෴ก-ะา-ำเ-ๅๆ๏๐-๙๚-๛ກ-ຂຄງ-ຈຊຍດ-ທນ-ຟມ-ຣລວສ-ຫອ-ະາ-ຳຽເ-ໄໆ໐-໙ໜ-ໟༀ༁-༃༄-༒༓༔༕-༗༚-༟༠-༩༪-༳༴༶༸༾-༿ཀ-ཇཉ-ཬཿ྅ྈ-ྌ྾-࿅࿇-࿌࿎-࿏࿐-࿔࿕-࿘࿙-࿚က-ဪါ-ာေးျ-ြဿ၀-၉၊-၏ၐ-ၕၖ-ၗၚ-ၝၡၢ-ၤၥ-ၦၧ-ၭၮ-ၰၵ-ႁႃ-ႄႇ-ႌႎႏ႐-႙ႚ-ႜ႞-႟Ⴀ-ჅჇჍა-ჺ჻ჼჽ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፠-፨፩-፼ᎀ-ᎏᎠ-Ᏼᐁ-ᙬ᙭-᙮ᙯ-ᙿᚁ-ᚚᚠ-ᛪ᛫-᛭ᛮ-ᛰᛱ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱ᜵-᜶ᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳាើ-ៅះ-ៈ។-៖ៗ៘-៚ៜ០-៩᠐-᠙ᠠ-ᡂᡃᡄ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᤣ-ᤦᤩ-ᤫᤰ-ᤱᤳ-ᤸ᥆-᥏ᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧀᧁ-ᧇᧈ-ᧉ᧐-᧙᧚ᨀ-ᨖᨙ-ᨚ᨞-᨟ᨠ-ᩔᩕᩗᩡᩣ-ᩤᩭ-ᩲ᪀-᪉᪐-᪙᪠-᪦ᪧ᪨-᪭ᬄᬅ-ᬳᬵᬻᬽ-ᭁᭃ-᭄ᭅ-ᭋ᭐-᭙᭚-᭠᭡-᭪᭴-᭼ᮂᮃ-ᮠᮡᮦ-ᮧ᮪ᮮ-ᮯ᮰-᮹ᮺ-ᯥᯧᯪ-ᯬᯮ᯲-᯳᯼-᯿ᰀ-ᰣᰤ-ᰫᰴ-ᰵ᰻-᰿᱀-᱉ᱍ-ᱏ᱐-᱙ᱚ-ᱷᱸ-ᱽ᱾-᱿᳀-᳇᳓᳡ᳩ-ᳬᳮ-ᳱᳲ-ᳳᳵ-ᳶᴀ-ᴫᴬ-ᵪᵫ-ᵷᵸᵹ-ᶚᶛ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℴℵ-ℸℹℼ-ℿⅅ-ⅉⅎ⅏Ⅰ-ↂↃ-ↄↅ-ↈ⌶-⍺⎕⒜-ⓩ⚬⠀-⣿Ⰰ-Ⱞⰰ-ⱞⱠ-ⱻⱼ-ⱽⱾ-ⳤⳫ-ⳮⳲ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵰ⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々〆〇〡-〩〮-〯〱-〵〸-〺〻〼ぁ-ゖゝ-ゞゟァ-ヺー-ヾヿㄅ-ㄭㄱ-ㆎ㆐-㆑㆒-㆕㆖-㆟ㆠ-ㆺㇰ-ㇿ㈀-㈜㈠-㈩㈪-㉇㉈-㉏㉠-㉻㉿㊀-㊉㊊-㊰㋀-㋋㋐-㋾㌀-㍶㍻-㏝㏠-㏾㐀-䶵一-鿌ꀀ-ꀔꀕꀖ-ꒌꓐ-ꓷꓸ-ꓽ꓾-꓿ꔀ-ꘋꘌꘐ-ꘟ꘠-꘩ꘪ-ꘫꙀ-ꙭꙮꚀ-ꚛꚜ-ꚝꚠ-ꛥꛦ-ꛯ꛲-꛷Ꜣ-ꝯꝰꝱ-ꞇ꞉-꞊Ꞌ-ꞎꞐ-ꞭꞰ-Ʇꟷꟸ-ꟹꟺꟻ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꠣ-ꠤꠧ꠰-꠵꠶-꠷ꡀ-ꡳꢀ-ꢁꢂ-ꢳꢴ-ꣃ꣎-꣏꣐-꣙ꣲ-ꣷ꣸-꣺ꣻ꤀-꤉ꤊ-ꤥ꤮-꤯ꤰ-ꥆꥒ-꥓꥟ꥠ-ꥼꦃꦄ-ꦲꦴ-ꦵꦺ-ꦻꦽ-꧀꧁-꧍ꧏ꧐-꧙꧞-꧟ꧠ-ꧤꧦꧧ-ꧯ꧰-꧹ꧺ-ꧾꨀ-ꨨꨯ-ꨰꨳ-ꨴꩀ-ꩂꩄ-ꩋꩍ꩐-꩙꩜-꩟ꩠ-ꩯꩰꩱ-ꩶ꩷-꩹ꩺꩻꩽꩾ-ꪯꪱꪵ-ꪶꪹ-ꪽꫀꫂꫛ-ꫜꫝ꫞-꫟ꫠ-ꫪꫫꫮ-ꫯ꫰-꫱ꫲꫳ-ꫴꫵꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚ꭛ꭜ-ꭟꭤ-ꭥꯀ-ꯢꯣ-ꯤꯦ-ꯧꯩ-ꯪ꯫꯬꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ-豈-舘並-龎ff-stﬓ-ﬗA-Za-zヲ-ッーア-ン゙-゚ᅠ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ"+i+a+"]"),u=new RegExp("["+i+a+"]");function l(e){var t=s.exec(e);return null==t?null:t[0]}function c(e){var t=l(e);return null==t?r.NEUTRAL:u.exec(t)?r.RTL:r.LTR}function f(e,t){if(t=t||r.NEUTRAL,!e.length)return t;var n=c(e);return n===r.NEUTRAL?t:n}function d(e,t){return t||(t=r.getGlobalDir()),r.isStrong(t)||o(!1),f(e,t)}var p={firstStrongChar:l,firstStrongCharDir:c,resolveBlockDir:f,getDirection:d,isDirectionLTR:function(e,t){return d(e,t)===r.LTR},isDirectionRTL:function(e,t){return d(e,t)===r.RTL}};e.exports=p},function(e,t,n){"use strict";e.exports={BOLD:{fontWeight:"bold"},CODE:{fontFamily:"monospace",wordWrap:"break-word"},ITALIC:{fontStyle:"italic"},STRIKETHROUGH:{textDecoration:"line-through"},UNDERLINE:{textDecoration:"underline"}}},function(e,t,n){"use strict";e.exports=function(e){var t=e.getSelection(),n=t.getAnchorKey(),r=e.getBlockTree(n),o=t.getStartOffset(),i=!1;return r.some(function(e){return o===e.get("start")?(i=!0,!0):o<e.get("end")&&e.get("leaves").some(function(e){var t=e.get("start");return o===t&&(i=!0,!0)})}),i}},function(e,t,n){"use strict";var r=n(26)||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};var o=n(766),i=n(111),a=n(0),s=n(23),u=n(324),l=n(191),c=n(319),f=n(186),d=n(72),p=n(781),h=n(192),g=n(785),y=n(5),m=n(31),v=function(e,t){return e.getAnchorKey()===t||e.getFocusKey()===t},b=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.shouldComponentUpdate=function(e){return this.props.block!==e.block||this.props.tree!==e.tree||this.props.direction!==e.direction||v(e.selection,e.block.getKey())&&e.forceSelection},t.prototype.componentDidMount=function(){var e=this.props.selection,t=e.getEndKey();if(e.getHasFocus()&&t===this.props.block.getKey()){var n=s.findDOMNode(this),r=l.getScrollParent(n),o=h(r),i=void 0;if(r===window){var a=p(n);(i=a.y+a.height-g().height)>0&&window.scrollTo(o.x,o.y+i+10)}else{n instanceof HTMLElement||y(!1),(i=n.offsetHeight+n.offsetTop-(r.offsetHeight+o.y))>0&&u.setTop(r,u.getTop(r)+i+10)}}},t.prototype._renderChildren=function(){var e=this,t=this.props.block,n=t.getKey(),s=t.getText(),u=this.props.tree.size-1,l=v(this.props.selection,n);return this.props.tree.map(function(d,p){var h=d.get("leaves"),g=h.size-1,y=h.map(function(r,c){var f=i.encode(n,p,c),d=r.get("start"),h=r.get("end");return a.createElement(o,{key:f,offsetKey:f,block:t,start:d,selection:l?e.props.selection:null,forceSelection:e.props.forceSelection,text:s.slice(d,h),styleSet:t.getInlineStyleAt(d),customStyleMap:e.props.customStyleMap,customStyleFn:e.props.customStyleFn,isLast:p===u&&c===g})}).toArray(),v=d.get("decoratorKey");if(null==v)return y;if(!e.props.decorator)return y;var b=m(e.props.decorator),_=b.getComponentForKey(v);if(!_)return y;var x=b.getPropsForKey(v),w=i.encode(n,p,0),S=s.slice(h.first().get("start"),h.last().get("end")),C=f.getHTMLDirIfDifferent(c.getDirection(S),e.props.direction);return a.createElement(_,r({},x,{contentState:e.props.contentState,decoratedText:S,dir:C,key:w,entityKey:t.getEntityAt(d.get("start")),offsetKey:w}),y)}).toArray()},t.prototype.render=function(){var e=this.props,t=e.direction,n=e.offsetKey,r=d({"public/DraftStyleDefault/block":!0,"public/DraftStyleDefault/ltr":"LTR"===t,"public/DraftStyleDefault/rtl":"RTL"===t});return a.createElement("div",{"data-offset-key":n,className:r},this._renderChildren())},t}(a.Component);e.exports=b},function(e,t,n){"use strict";e.exports=function(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}},function(e,t,n){"use strict";function r(e,t){return!!t&&(e===t.documentElement||e===t.body)}var o={getTop:function(e){var t=e.ownerDocument;return r(e,t)?t.body.scrollTop||t.documentElement.scrollTop:e.scrollTop},setTop:function(e,t){var n=e.ownerDocument;r(e,n)?n.body.scrollTop=n.documentElement.scrollTop=t:e.scrollTop=t},getLeft:function(e){var t=e.ownerDocument;return r(e,t)?t.body.scrollLeft||t.documentElement.scrollLeft:e.scrollLeft},setLeft:function(e,t){var n=e.ownerDocument;r(e,n)?n.body.scrollLeft=n.documentElement.scrollLeft=t:e.scrollLeft=t}};e.exports=o},function(e,t,n){"use strict";var r=n(788),o=n(789),i=n(183),a=new RegExp("\r\n","g"),s={"text/rtf":1,"text/html":1};function u(e){if("file"==e.kind)return e.getAsFile()}var l=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.data=t,this.types=t.types?o(t.types):[]}return e.prototype.isRichText=function(){return!(!this.getHTML()||!this.getText())||!this.isImage()&&this.types.some(function(e){return s[e]})},e.prototype.getText=function(){var e;return this.data.getData&&(this.types.length?-1!=this.types.indexOf("text/plain")&&(e=this.data.getData("text/plain")):e=this.data.getData("Text")),e?e.replace(a,"\n"):null},e.prototype.getHTML=function(){if(this.data.getData){if(!this.types.length)return this.data.getData("Text");if(-1!=this.types.indexOf("text/html"))return this.data.getData("text/html")}},e.prototype.isLink=function(){return this.types.some(function(e){return-1!=e.indexOf("Url")||-1!=e.indexOf("text/uri-list")||e.indexOf("text/x-moz-url")})},e.prototype.getLink=function(){return this.data.getData?-1!=this.types.indexOf("text/x-moz-url")?this.data.getData("text/x-moz-url").split("\n")[0]:-1!=this.types.indexOf("text/uri-list")?this.data.getData("text/uri-list"):this.data.getData("url"):null},e.prototype.isImage=function(){var e=this.types.some(function(e){return-1!=e.indexOf("application/x-moz-file")});if(e)return!0;for(var t=this.getFiles(),n=0;n<t.length;n++){var o=t[n].type;if(!r.isImage(o))return!1}return!0},e.prototype.getCount=function(){return this.data.hasOwnProperty("items")?this.data.items.length:this.data.hasOwnProperty("mozItemCount")?this.data.mozItemCount:this.data.files?this.data.files.length:null},e.prototype.getFiles=function(){return this.data.items?Array.prototype.slice.call(this.data.items).map(u).filter(i.thatReturnsArgument):this.data.files?Array.prototype.slice.call(this.data.files):[]},e.prototype.hasFiles=function(){return this.getFiles().length>0},e}();e.exports=l},function(e,t,n){"use strict";e.exports=function e(t){if(t instanceof Element){var n=t.getAttribute("data-offset-key");if(n)return n;for(var r=0;r<t.childNodes.length;r++){var o=e(t.childNodes[r]);if(o)return o}}return null}},function(e,t,n){"use strict";(function(t){var r=n(5),o=/\.textClipping$/,i={"text/plain":!0,"text/html":!0,"text/rtf":!0},a=5e3;e.exports=function(e,n){var s=0,u=[];e.forEach(function(l){!function(e,n){if(t.FileReader&&(!e.type||e.type in i)){if(""===e.type){var a="";return o.test(e.name)&&(a=e.name.replace(o,"")),void n(a)}var s=new FileReader;s.onload=function(){var e=s.result;"string"!=typeof e&&r(!1),n(e)},s.onerror=function(){n("")},s.readAsText(e)}else n("")}(l,function(t){s++,t&&u.push(t.slice(0,a)),s==e.length&&n(u.join("\r"))})})}}).call(this,n(18))},function(e,t,n){"use strict";var r=n(111),o=n(31);e.exports=function(e,t,n,i,a){var s=o(e.getSelection()),u=r.decode(t),l=u.blockKey,c=e.getBlockTree(l).getIn([u.decoratorKey,"leaves",u.leafKey]),f=r.decode(i),d=f.blockKey,p=e.getBlockTree(d).getIn([f.decoratorKey,"leaves",f.leafKey]),h=c.get("start"),g=p.get("start"),y=c?h+n:null,m=p?g+a:null;if(s.getAnchorKey()===l&&s.getAnchorOffset()===y&&s.getFocusKey()===d&&s.getFocusOffset()===m)return s;var v=!1;if(l===d){var b=c.get("end"),_=p.get("end");v=g===h&&_===b?a<n:g<h}else v=e.getCurrentContent().getBlockMap().keySeq().skipUntil(function(e){return e===l||e===d}).first()===d;return s.merge({anchorKey:l,anchorOffset:y,focusKey:d,focusOffset:m,isBackward:v})}},function(e,t,n){"use strict";var r=n(109);e.exports=function(e){var t=e.getSelection();return t.isCollapsed()?null:r(e.getCurrentContent(),t)}},function(e,t,n){"use strict";var r=n(36),o=n(5);var i=r.isBrowser("Chrome")?function(e){for(var t=e.cloneRange(),n=[],r=e.endContainer;null!=r;r=r.parentNode){var i=r===e.commonAncestorContainer;i?t.setStart(e.startContainer,e.startOffset):t.setStart(t.endContainer,0);var a,s=Array.from(t.getClientRects());if(n.push(s),i)return n.reverse(),(a=[]).concat.apply(a,n);t.setEndBefore(r)}o(!1)}:function(e){return Array.from(e.getClientRects())};e.exports=i},function(e,t,n){"use strict";var r=n(193),o=n(326),i=n(328),a=n(5),s=n(31);function u(e,t,n){var i=t,u=r(i);if(null!=u||e&&(e===i||e.firstChild===i)||a(!1),e===i&&((i=i.firstChild)instanceof Element&&"true"===i.getAttribute("data-contents")||a(!1),n>0&&(n=i.childNodes.length)),0===n){var c=null;if(null!=u)c=u;else{var f=function(e){for(;e.firstChild&&(e.firstChild instanceof Element&&"true"===e.firstChild.getAttribute("data-blocks")||o(e.firstChild));)e=e.firstChild;return e}(i);c=s(o(f))}return{key:c,offset:0}}var d=i.childNodes[n-1],p=null,h=null;if(o(d)){var g=function(e){for(;e.lastChild&&(e.lastChild instanceof Element&&"true"===e.lastChild.getAttribute("data-blocks")||o(e.lastChild));)e=e.lastChild;return e}(d);p=s(o(g)),h=l(g)}else p=s(u),h=l(d);return{key:p,offset:h}}function l(e){var t=e.textContent;return"\n"===t?0:t.length}e.exports=function(e,t,n,o,a,l){var c=n.nodeType===Node.TEXT_NODE,f=a.nodeType===Node.TEXT_NODE;if(c&&f)return{selectionState:i(e,s(r(n)),o,s(r(a)),l),needsRecovery:!1};var d=null,p=null,h=!0;return c?(d={key:s(r(n)),offset:o},p=u(t,a,l)):f?(p={key:s(r(a)),offset:l},d=u(t,n,o)):(d=u(t,n,o),p=u(t,a,l),n===a&&o===l&&(h=!!n.firstChild&&"BR"!==n.firstChild.nodeName)),{selectionState:i(e,d.key,d.offset,p.key,p.offset),needsRecovery:h}}},function(e,t,n){"use strict";var r="\\s|(?![_])"+n(808).getPunctuation(),o=new RegExp("^(?:"+r+")*(?:['‘’]|(?!"+r+").)*(?:(?!"+r+").)"),i=new RegExp("(?:(?!"+r+").)(?:['‘’]|(?!"+r+").)*(?:"+r+")*$");function a(e,t){var n=t?i.exec(e):o.exec(e);return n?n[0]:e}var s={getBackward:function(e){return a(e,!0)},getForward:function(e){return a(e,!1)}};e.exports=s},function(e,t,n){"use strict";e.exports=function(e,t){var n,r=e.getSelection(),o=r.getStartKey(),i=r.getStartOffset(),a=e.getCurrentContent(),s=o;return t>a.getBlockForKey(o).getText().length-i?(s=a.getKeyAfter(o),n=0):n=i+t,r.merge({focusKey:s,focusOffset:n})}},function(e,t,n){"use strict";var r,o=i||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(26);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s=n(25),u=n(56),l=n(27),c=n(187),f=n(110),d=n(46),p=n(4),h=n(4).Set,g=n(819),y=n(72),m=n(40),v=n(335),b=n(5),_=n(185),x=d.draft_tree_data_support,w=p.List,S=p.OrderedSet,C=new RegExp("\r","g"),k=new RegExp("\n","g"),O=new RegExp(" ","g"),E=new RegExp(" ?","g"),T=new RegExp("​?","g"),M=["bold","bolder","500","600","700","800","900"],P=["light","lighter","100","200","300","400"],j={b:"BOLD",code:"CODE",del:"STRIKETHROUGH",em:"ITALIC",i:"ITALIC",s:"STRIKETHROUGH",strike:"STRIKETHROUGH",strong:"BOLD",u:"UNDERLINE"},A=(a(r={},y("public/DraftStyleDefault/depth0"),0),a(r,y("public/DraftStyleDefault/depth1"),1),a(r,y("public/DraftStyleDefault/depth2"),2),a(r,y("public/DraftStyleDefault/depth3"),3),a(r,y("public/DraftStyleDefault/depth4"),4),r),I=["className","href","rel","target","title"],R=["alt","className","height","src","width"],D=void 0,N={text:"",inlines:[],entities:[],blocks:[]},B={children:w(),depth:0,key:"",type:""},L=function(e,t){return"li"===e?"ol"===t?"ordered-list-item":"unordered-list-item":null},F=function(e,t,n){var r=n.filter(function(t){return t.element===e||t.wrapper===e||t.aliasedElements&&t.aliasedElements.some(function(t){return t===e})}).keySeq().toSet().toArray().sort();switch(r.length){case 0:return"unstyled";case 1:return r[0];default:return function(e,t,n){for(var r=0;r<n.length;r++){var o=n[r](e,t);if(o)return o}return null}(e,t,[L])||"unstyled"}},z=function(e,t,n){var r=e.text.slice(-1),o=t.text.slice(0,1);if("\r"!==r||"\r"!==o||n||(e.text=e.text.slice(0,-1),e.inlines.pop(),e.entities.pop(),e.blocks.pop()),"\r"===r){if(" "===t.text||"\n"===t.text)return e;" "!==o&&"\n"!==o||(t.text=t.text.slice(1),t.inlines.shift(),t.entities.shift())}return{text:e.text+t.text,inlines:e.inlines.concat(t.inlines),entities:e.entities.concat(t.entities),blocks:e.blocks.concat(t.blocks)}},q=function(e){e instanceof HTMLAnchorElement||b(!1);var t=e.protocol;return"http:"===t||"https:"===t||"mailto:"===t},K=function(){return o({},N,{text:"\n",inlines:[S()],entities:new Array(1)})},W=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return{text:"\r",inlines:[S()],entities:new Array(1),blocks:[function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return o({},B,e)}({parent:n,key:m(),type:e,depth:Math.max(0,Math.min(4,t))})]}},U=function e(t,n,r,i,a,s,u,l,c,d){var p=D,h=n.nodeName.toLowerCase(),y=t,m="unstyled",v=!1,b=a&&F(a,i,l),_=o({},N),w=void 0;if("#text"===h){var C=n.textContent,O=C.trim();if(i&&""===O&&n.parentElement){var E=n.parentElement.nodeName.toLowerCase();if("ol"===E||"ul"===E)return{chunk:o({},N),entityMap:t}}return""===O&&"pre"!==a?{chunk:function(e){var t=new Array(1);return e&&(t[0]=e),o({},N,{text:" ",inlines:[S()],entities:t})}(c),entityMap:t}:("pre"!==a&&(C=C.replace(k," ")),D=h,{chunk:{text:C,inlines:Array(C.length).fill(r),entities:Array(C.length).fill(c),blocks:[]},entityMap:t})}if(D=h,"br"===h)return"br"!==p||a&&"unstyled"!==b?{chunk:K(),entityMap:t}:{chunk:W("unstyled",u,d),entityMap:t};if("img"===h&&n instanceof HTMLImageElement&&n.attributes.getNamedItem("src")&&n.attributes.getNamedItem("src").value){var T=n,B={};R.forEach(function(e){var t=T.getAttribute(e);t&&(B[e]=t)}),n.textContent="📷",c=f.__create("IMAGE","MUTABLE",B||{})}r=function(e,t,n){var r=j[e];if(r)n=n.add(r).toOrderedSet();else if(t instanceof HTMLElement){var o=t;n=n.withMutations(function(e){var t=o.style.fontWeight,n=o.style.fontStyle,r=o.style.textDecoration;M.indexOf(t)>=0?e.add("BOLD"):P.indexOf(t)>=0&&e.remove("BOLD"),"italic"===n?e.add("ITALIC"):"normal"===n&&e.remove("ITALIC"),"underline"===r&&e.add("UNDERLINE"),"line-through"===r&&e.add("STRIKETHROUGH"),"none"===r&&(e.remove("UNDERLINE"),e.remove("STRIKETHROUGH"))}).toOrderedSet()}return n}(h,n,r),"ul"!==h&&"ol"!==h||(i&&(u+=1),i=h),!x&&"li"===h&&n instanceof HTMLElement&&(u=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return Object.keys(A).some(function(n){e.classList.contains(n)&&(t=A[n])}),t}(n,u));var L=F(h,i,l),U=i&&"li"===a&&"li"===h,$=(!a||x)&&-1!==s.indexOf(h);(U||$)&&(w=(_=W(L,u,d)).blocks[0].key,a=h,v=!x),U&&(m="ul"===i?"unordered-list-item":"ordered-list-item");var H=n.firstChild;null!=H&&(h=H.nodeName.toLowerCase());for(var V=null;H;){H instanceof HTMLAnchorElement&&H.href&&q(H)?function(){var e=H,t={};I.forEach(function(n){var r=e.getAttribute(n);r&&(t[n]=r)}),t.url=new g(e.href).toString(),V=f.__create("LINK","MUTABLE",t||{})}():V=void 0;var G=e(y,H,r,i,a,s,u,l,V||c,x?w:null),Y=G.chunk;y=G.entityMap,_=z(_,Y,x);var X=H.nextSibling;!d&&X&&s.indexOf(h)>=0&&a&&(_=z(_,K())),X&&(h=X.nodeName.toLowerCase()),H=X}return v&&(_=z(_,W(m,u,d))),{chunk:_,entityMap:y}},$=function(e,t,n,r){e=e.trim().replace(C,"").replace(O," ").replace(E,"").replace(T,"");var i=function(e){var t=e.get("unstyled").element,n=h([]);return e.forEach(function(e){e.aliasedElements&&e.aliasedElements.forEach(function(e){n=n.add(e)}),n=n.add(e.element)}),n.filter(function(e){return e&&e!==t}).toArray().sort()}(n),a=t(e);if(!a)return null;D=null;var s=function(e,t){return t.some(function(t){return-1!==e.indexOf("<"+t)})}(e,i)?i:["div"],u=U(r,a,S(),"ul",null,s,-1,n),l=u.chunk,c=u.entityMap;return 0===l.text.indexOf("\r")&&(l={text:l.text.slice(1),inlines:l.inlines.slice(1),entities:l.entities.slice(1),blocks:l.blocks}),"\r"===l.text.slice(-1)&&(l.text=l.text.slice(0,-1),l.inlines=l.inlines.slice(0,-1),l.entities=l.entities.slice(0,-1),l.blocks.pop()),0===l.blocks.length&&l.blocks.push(o({},N,{type:"unstyled",depth:0})),l.text.split("\r").length===l.blocks.length+1&&l.blocks.unshift({type:"unstyled",depth:0}),{chunk:l,entityMap:c}};e.exports=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:v,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:c,r=$(e,t,n,f);if(null==r)return null;var o=r.chunk,i=r.entityMap;return{contentBlocks:function(e){if(!e||!e.text||!Array.isArray(e.blocks))return null;var t=0,n=e.blocks,r=e.inlines,o=e.entities,i=x?l:u;return e.text.split("\r").reduce(function(e,a,u){a=_(a);var c=n[u],f=t+a.length,d=r.slice(t,f),p=o.slice(t,f),h=w(d.map(function(e,t){var n={style:e,entity:null};return p[t]&&(n.entity=p[t]),s.create(n)}));t=f+1;var g=c.depth,y=c.type,v=c.parent,b=c.key||m(),x=null;if(v){var S=e.cacheRef[v],C=e.contentBlocks[S];if(C.getChildKeys().isEmpty()&&C.getText()){var k=C.getCharacterList(),O=C.getText();x=m();var E=new l({key:x,text:O,characterList:k,parent:v,nextSibling:b});e.contentBlocks.push(E),C=C.withMutations(function(e){e.set("characterList",w()).set("text","").set("children",C.children.push(E.getKey()))})}e.contentBlocks[S]=C.set("children",C.children.push(b))}var T=new i({key:b,parent:v,type:y,depth:g,text:a,characterList:h,prevSibling:x||(0===u||n[u-1].parent!==v?null:n[u-1].key),nextSibling:u===n.length-1||n[u+1].parent!==v?null:n[u+1].key});return e.contentBlocks.push(T),e.cacheRef[T.key]=u,e},{cacheRef:{},contentBlocks:[]}).contentBlocks}(o),entityMap:i}}},function(e,t,n){"use strict";var r=n(36),o=n(5),i=r.isBrowser("IE <= 9");e.exports=function(e){var t,n=null;return!i&&document.implementation&&document.implementation.createHTMLDocument&&((t=document.implementation.createHTMLDocument("foo")).documentElement||o(!1),t.documentElement.innerHTML=e,n=t.getElementsByTagName("body")[0]),n}},function(e,t,n){"use strict";var r=n(22),o=n(6),i=(n(71),n(820)),a=n(31),s={currentBlockContainsLink:function(e){var t=e.getSelection(),n=e.getCurrentContent(),r=n.getEntityMap();return n.getBlockForKey(t.getAnchorKey()).getCharacterList().slice(t.getStartOffset(),t.getEndOffset()).some(function(e){var t=e.getEntity();return!!t&&"LINK"===r.__get(t).getType()})},getCurrentBlockType:function(e){var t=e.getSelection();return e.getCurrentContent().getBlockForKey(t.getStartKey()).getType()},getDataObjectForLinkURL:function(e){return{url:e.toString()}},handleKeyCommand:function(e,t){switch(t){case"bold":return s.toggleInlineStyle(e,"BOLD");case"italic":return s.toggleInlineStyle(e,"ITALIC");case"underline":return s.toggleInlineStyle(e,"UNDERLINE");case"code":return s.toggleCode(e);case"backspace":case"backspace-word":case"backspace-to-start-of-line":return s.onBackspace(e);case"delete":case"delete-word":case"delete-to-end-of-block":return s.onDelete(e);default:return null}},insertSoftNewline:function(e){var t=r.insertText(e.getCurrentContent(),e.getSelection(),"\n",e.getCurrentInlineStyle(),null),n=o.push(e,t,"insert-characters");return o.forceSelection(n,t.getSelectionAfter())},onBackspace:function(e){var t=e.getSelection();if(!t.isCollapsed()||t.getAnchorOffset()||t.getFocusOffset())return null;var n=e.getCurrentContent(),r=t.getStartKey(),i=n.getBlockBefore(r);if(i&&"atomic"===i.getType()){var a=n.getBlockMap().delete(i.getKey()),u=n.merge({blockMap:a,selectionAfter:t});if(u!==n)return o.push(e,u,"remove-range")}var l=s.tryToRemoveBlockStyle(e);return l?o.push(e,l,"change-block-type"):null},onDelete:function(e){var t=e.getSelection();if(!t.isCollapsed())return null;var n=e.getCurrentContent(),i=t.getStartKey(),a=n.getBlockForKey(i).getLength();if(t.getStartOffset()<a)return null;var s=n.getBlockAfter(i);if(!s||"atomic"!==s.getType())return null;var u=t.merge({focusKey:s.getKey(),focusOffset:s.getLength()}),l=r.removeRange(n,u,"forward");return l!==n?o.push(e,l,"remove-range"):null},onTab:function(e,t,n){var r=t.getSelection(),a=r.getAnchorKey();if(a!==r.getFocusKey())return t;var s=t.getCurrentContent(),u=s.getBlockForKey(a),l=u.getType();if("unordered-list-item"!==l&&"ordered-list-item"!==l)return t;e.preventDefault();var c=s.getBlockBefore(a);if(!c)return t;var f=c.getType();if("unordered-list-item"!==f&&"ordered-list-item"!==f)return t;var d=u.getDepth();if(!e.shiftKey&&d===n)return t;n=Math.min(c.getDepth()+1,n);var p=i(s,r,e.shiftKey?-1:1,n);return o.push(t,p,"adjust-depth")},toggleBlockType:function(e,t){var n=e.getSelection(),i=n.getStartKey(),s=n.getEndKey(),u=e.getCurrentContent(),l=n;if(i!==s&&0===n.getEndOffset()){var c=a(u.getBlockBefore(s));s=c.getKey(),l=l.merge({anchorKey:i,anchorOffset:n.getStartOffset(),focusKey:s,focusOffset:c.getLength(),isBackward:!1})}if(u.getBlockMap().skipWhile(function(e,t){return t!==i}).reverse().skipWhile(function(e,t){return t!==s}).some(function(e){return"atomic"===e.getType()}))return e;var f=u.getBlockForKey(i).getType()===t?"unstyled":t;return o.push(e,r.setBlockType(u,l,f),"change-block-type")},toggleCode:function(e){var t=e.getSelection(),n=t.getAnchorKey(),r=t.getFocusKey();return t.isCollapsed()||n!==r?s.toggleBlockType(e,"code-block"):s.toggleInlineStyle(e,"CODE")},toggleInlineStyle:function(e,t){var n=e.getSelection(),i=e.getCurrentInlineStyle();if(n.isCollapsed())return o.setInlineStyleOverride(e,i.has(t)?i.remove(t):i.add(t));var a,s=e.getCurrentContent();return a=i.has(t)?r.removeInlineStyle(s,n,t):r.applyInlineStyle(s,n,t),o.push(e,a,"change-inline-style")},toggleLink:function(e,t,n){var i=r.applyEntity(e.getCurrentContent(),t,n);return o.push(e,i,"apply-entity")},tryToRemoveBlockStyle:function(e){var t=e.getSelection(),n=t.getAnchorOffset();if(t.isCollapsed()&&0===n){var o=t.getAnchorKey(),i=e.getCurrentContent(),a=i.getBlockForKey(o),s=i.getFirstBlock();if(a.getLength()>0&&a!==s)return null;var u=a.getType(),l=i.getBlockBefore(o);if("code-block"===u&&l&&"code-block"===l.getType()&&0!==l.getLength())return null;if("unstyled"!==u)return r.setBlockType(i,t,"unstyled")}return null}};e.exports=s},function(e,t,n){"use strict";var r=n(194),o=n(188),i=n(36),a=i.isPlatform("Mac OS X"),s=i.isPlatform("Windows"),u=a&&i.isBrowser("Firefox < 29"),l=r.hasCommandModifier,c=r.isCtrlKeyCommand;function f(e){return a&&e.altKey||c(e)}e.exports=function(e){switch(e.keyCode){case 66:return l(e)?"bold":null;case 68:return c(e)?"delete":null;case 72:return c(e)?"backspace":null;case 73:return l(e)?"italic":null;case 74:return l(e)?"code":null;case 75:return!s&&c(e)?"secondary-cut":null;case 77:case 79:return c(e)?"split-block":null;case 84:return a&&c(e)?"transpose-characters":null;case 85:return l(e)?"underline":null;case 87:return a&&c(e)?"backspace-word":null;case 89:return c(e)?s?"redo":"secondary-paste":null;case 90:return function(e){return l(e)?e.shiftKey?"redo":"undo":null}(e)||null;case o.RETURN:return"split-block";case o.DELETE:return function(e){return s&&e.shiftKey?null:f(e)?"delete-word":"delete"}(e);case o.BACKSPACE:return function(e){return l(e)&&a?"backspace-to-start-of-line":f(e)?"backspace-word":"backspace"}(e);case o.LEFT:return u&&l(e)?"move-selection-to-start-of-block":null;case o.RIGHT:return u&&l(e)?"move-selection-to-end-of-block":null;default:return null}}},function(e,t,n){"use strict";var r={stringify:function(e){return"_"+String(e)},unstringify:function(e){return e.slice(1)}};e.exports=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0),a=function(e){return e&&e.__esModule?e:{default:e}}(i);t.default=function(e,t){var n,s;return s=n=function(n){function s(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(s.__proto__||Object.getPrototypeOf(s)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(s,i.Component),o(s,[{key:"render",value:function(){return a.default.createElement(e,r({},this.props,t))}}]),s}(),n.displayName="Decorated("+function(e){return e.displayName||e.name||"Component"}(e)+")",s}},function(e,t,n){e.exports=n(849)()},function(e,t,n){(function(t){var n=1/0,r="[object Symbol]",o=/[\\^$.*+?()[\]{}|]/g,i=RegExp(o.source),a="object"==typeof t&&t&&t.Object===Object&&t,s="object"==typeof self&&self&&self.Object===Object&&self,u=a||s||Function("return this")(),l=Object.prototype.toString,c=u.Symbol,f=c?c.prototype:void 0,d=f?f.toString:void 0;function p(e){if("string"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&l.call(e)==r}(e))return d?d.call(e):"";var t=e+"";return"0"==t&&1/e==-n?"-0":t}e.exports=function(e){return(e=function(e){return null==e?"":p(e)}(e))&&i.test(e)?e.replace(o,"\\$&"):e}}).call(this,n(18))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(853));t.default=function(e,t,n){var o=t.getAnchorKey(),i=t.getAnchorOffset()-n.length,a=e.getCurrentContent().getBlockForKey(o).getText();return(0,r.default)(a,i)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default=function(e){return"@"===e?"mention":e+"mention"}},function(e,t,n){var r=n(345),o=n(869),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=[];for(var n in Object(e))i.call(e,n)&&"constructor"!=n&&t.push(n);return t}},function(e,t){var n=Object.prototype;e.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||n)}},function(e,t,n){var r=n(871),o=n(196),i=n(876),a=n(877),s=n(878),u=n(54),l=n(348),c=l(r),f=l(o),d=l(i),p=l(a),h=l(s),g=u;(r&&"[object DataView]"!=g(new r(new ArrayBuffer(1)))||o&&"[object Map]"!=g(new o)||i&&"[object Promise]"!=g(i.resolve())||a&&"[object Set]"!=g(new a)||s&&"[object WeakMap]"!=g(new s))&&(g=function(e){var t=u(e),n="[object Object]"==t?e.constructor:void 0,r=n?l(n):"";if(r)switch(r){case c:return"[object DataView]";case f:return"[object Map]";case d:return"[object Promise]";case p:return"[object Set]";case h:return"[object WeakMap]"}return t}),e.exports=g},function(e,t,n){var r=n(54),o=n(70),i="[object AsyncFunction]",a="[object Function]",s="[object GeneratorFunction]",u="[object Proxy]";e.exports=function(e){if(!o(e))return!1;var t=r(e);return t==a||t==s||t==i||t==u}},function(e,t){var n=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return n.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,i=[];++n<r;){var a=e[n];t(a,n,e)&&(i[o++]=a)}return i}},function(e,t){var n=9007199254740991,r=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var o=typeof e;return!!(t=null==t?n:t)&&("number"==o||"symbol"!=o&&r.test(e))&&e>-1&&e%1==0&&e<t}},function(e,t,n){var r=n(114),o=n(899),i=n(900),a=n(901),s=n(902),u=n(903);function l(e){var t=this.__data__=new r(e);this.size=t.size}l.prototype.clear=o,l.prototype.delete=i,l.prototype.get=a,l.prototype.has=s,l.prototype.set=u,e.exports=l},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t,n){var r=n(916),o=n(55);e.exports=function e(t,n,i,a,s){return t===n||(null==t||null==n||!o(t)&&!o(n)?t!=t&&n!=n:r(t,n,i,a,e,s))}},function(e,t,n){var r=n(917),o=n(920),i=n(921),a=1,s=2;e.exports=function(e,t,n,u,l,c){var f=n&a,d=e.length,p=t.length;if(d!=p&&!(f&&p>d))return!1;var h=c.get(e);if(h&&c.get(t))return h==t;var g=-1,y=!0,m=n&s?new r:void 0;for(c.set(e,t),c.set(t,e);++g<d;){var v=e[g],b=t[g];if(u)var _=f?u(b,v,g,t,e,c):u(v,b,g,e,t,c);if(void 0!==_){if(_)continue;y=!1;break}if(m){if(!o(t,function(e,t){if(!i(m,t)&&(v===e||l(v,e,n,u,c)))return m.push(t)})){y=!1;break}}else if(v!==b&&!l(v,b,n,u,c)){y=!1;break}}return c.delete(e),c.delete(t),y}},function(e,t,n){var r=n(70);e.exports=function(e){return e==e&&!r(e)}},function(e,t){e.exports=function(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}},function(e,t,n){var r=n(358);e.exports=function(e,t,n){var o=null==e?void 0:r(e,t);return void 0===o?n:o}},function(e,t,n){var r=n(359),o=n(118);e.exports=function(e,t){for(var n=0,i=(t=r(t,e)).length;null!=e&&n<i;)e=e[o(t[n++])];return n&&n==i?e:void 0}},function(e,t,n){var r=n(30),o=n(202),i=n(934),a=n(178);e.exports=function(e,t){return r(e)?e:o(e,t)?[e]:i(a(e))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.renderRatingToColor=d,t.default=p;var r=n(10),o=c(n(0)),i=c(n(1)),a=c(n(119)),s=c(n(964)),u=n(3),l=c(n(361));function c(e){return e&&e.__esModule?e:{default:e}}const f=i.default.ul.withConfig({displayName:"AnalysisList__AnalysisListBase",componentId:"sc-1ozeatw-0"})(["margin:8px 0;padding:0;list-style:none;"]);function d(e){switch(e){case"good":return u.colors.$color_good;case"OK":return u.colors.$color_ok;case"bad":return u.colors.$color_bad;default:return u.colors.$color_score_icon}}function p({results:e,marksButtonActivatedResult:t,marksButtonStatus:n,marksButtonClassName:i,onMarksButtonClick:a}){return o.default.createElement(f,{role:"list"},e.map(e=>{const s=d(e.rating),u=e.markerId===t;let c="";return c="disabled"===n?(0,r.__)("Marks are disabled in current view","yoast-components"):u?(0,r.__)("Remove highlight from the text","yoast-components"):(0,r.__)("Highlight this result in the text","yoast-components"),o.default.createElement(l.default,{key:e.id,text:e.text,bulletColor:s,hasMarksButton:e.hasMarks,ariaLabel:c,pressed:u,buttonId:e.id,onButtonClick:()=>a(e.id,e.marker),marksButtonClassName:i,marksButtonStatus:n})}))}p.propTypes={results:a.default.array.isRequired,marksButtonActivatedResult:a.default.string,marksButtonStatus:a.default.string,marksButtonClassName:a.default.string,onMarksButtonClick:a.default.func},p.defaultProps={marksButtonActivatedResult:"",marksButtonStatus:"enabled",marksButtonClassName:"",onMarksButtonClick:s.default}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AnalysisResult=void 0;var r=s(n(0)),o=s(n(119)),i=s(n(1)),a=n(8);function s(e){return e&&e.__esModule?e:{default:e}}const u=i.default.li.withConfig({displayName:"AnalysisResult__AnalysisResultBase",componentId:"pf0ln6-0"})(["min-height:24px;padding:0;display:flex;align-items:flex-start;"]),l=(0,i.default)(a.SvgIcon).withConfig({displayName:"AnalysisResult__ScoreIcon",componentId:"pf0ln6-1"})(["margin:3px 11px 0 0;"]),c=i.default.p.withConfig({displayName:"AnalysisResult__AnalysisResultText",componentId:"pf0ln6-2"})(["margin:0 16px 0 0;flex:1 1 auto;"]),f=t.AnalysisResult=(e=>r.default.createElement(u,null,r.default.createElement(l,{icon:"circle",color:e.bulletColor,size:"13px"}),r.default.createElement(c,{dangerouslySetInnerHTML:{__html:e.text}}),e.hasMarksButton&&!function(e){return"hidden"===e.marksButtonStatus}(e)&&r.default.createElement(a.IconButtonToggle,{marksButtonStatus:e.marksButtonStatus,className:e.marksButtonClassName,onClick:e.onButtonClick,id:e.buttonId,icon:"eye",pressed:e.pressed,ariaLabel:e.ariaLabel})));f.propTypes={text:o.default.string.isRequired,bulletColor:o.default.string.isRequired,hasMarksButton:o.default.bool.isRequired,buttonId:o.default.string.isRequired,pressed:o.default.bool.isRequired,ariaLabel:o.default.string.isRequired,onButtonClick:o.default.func.isRequired,marksButtonStatus:o.default.string,marksButtonClassName:o.default.string},f.defaultProps={marksButtonStatus:"enabled",marksButtonClassName:""},t.default=f},function(e,t,n){var r=n(363);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},function(e,t,n){var r=n(59),o=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=o},function(e,t,n){var r=n(74),o=n(47),i="[object AsyncFunction]",a="[object Function]",s="[object GeneratorFunction]",u="[object Proxy]";e.exports=function(e){if(!o(e))return!1;var t=r(e);return t==a||t==s||t==i||t==u}},function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(this,n(18))},function(e,t){var n=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return n.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},function(e,t,n){var r=n(984),o=Math.max;e.exports=function(e,t,n){return t=o(void 0===t?e.length-1:t,0),function(){for(var i=arguments,a=-1,s=o(i.length-t,0),u=Array(s);++a<s;)u[a]=i[t+a];a=-1;for(var l=Array(t+1);++a<t;)l[a]=i[a];return l[t]=n(u),r(e,this,l)}}},function(e,t,n){var r=n(985),o=n(987)(r);e.exports=o},function(e,t,n){var r=n(989),o=n(208),i=n(38),a=n(209),s=n(207),u=n(370),l=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=i(e),c=!n&&o(e),f=!n&&!c&&a(e),d=!n&&!c&&!f&&u(e),p=n||c||f||d,h=p?r(e.length,String):[],g=h.length;for(var y in e)!t&&!l.call(e,y)||p&&("length"==y||f&&("offset"==y||"parent"==y)||d&&("buffer"==y||"byteLength"==y||"byteOffset"==y)||s(y,g))||h.push(y);return h}},function(e,t,n){var r=n(992),o=n(210),i=n(211),a=i&&i.isTypedArray,s=a?o(a):r;e.exports=s},function(e,t){e.exports=function(e,t){return function(n){return e(t(n))}}},function(e,t,n){var r=n(997),o=n(998),i=n(1052),a=Math.max;e.exports=function(e,t,n){var s=null==e?0:e.length;if(!s)return-1;var u=null==n?0:i(n);return u<0&&(u=a(s+u,0)),r(e,o(t,3),u)}},function(e,t,n){var r=n(1023),o=n(48);e.exports=function e(t,n,i,a,s){return t===n||(null==t||null==n||!o(t)&&!o(n)?t!=t&&n!=n:r(t,n,i,a,e,s))}},function(e,t,n){var r=n(1024),o=n(1027),i=n(1028),a=1,s=2;e.exports=function(e,t,n,u,l,c){var f=n&a,d=e.length,p=t.length;if(d!=p&&!(f&&p>d))return!1;var h=c.get(e);if(h&&c.get(t))return h==t;var g=-1,y=!0,m=n&s?new r:void 0;for(c.set(e,t),c.set(t,e);++g<d;){var v=e[g],b=t[g];if(u)var _=f?u(b,v,g,t,e,c):u(v,b,g,e,t,c);if(void 0!==_){if(_)continue;y=!1;break}if(m){if(!o(t,function(e,t){if(!i(m,t)&&(v===e||l(v,e,n,u,c)))return m.push(t)})){y=!1;break}}else if(v!==b&&!l(v,b,n,u,c)){y=!1;break}}return c.delete(e),c.delete(t),y}},function(e,t,n){var r=n(37).Uint8Array;e.exports=r},function(e,t,n){var r=n(377),o=n(217),i=n(89);e.exports=function(e){return r(e,i,o)}},function(e,t,n){var r=n(216),o=n(38);e.exports=function(e,t,n){var i=t(e);return o(e)?i:r(i,n(e))}},function(e,t){e.exports=function(){return[]}},function(e,t,n){var r=n(47);e.exports=function(e){return e==e&&!r(e)}},function(e,t){e.exports=function(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}},function(e,t,n){var r=n(369),o=n(1062),i=n(121);e.exports=function(e){return i(e)?r(e,!0):o(e)}},function(e,t,n){var r=n(216),o=n(220),i=n(217),a=n(378),s=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,i(e)),e=o(e);return t}:a;e.exports=s},function(e,t,n){var r=n(377),o=n(383),i=n(382);e.exports=function(e){return r(e,i,o)}},function(e,t){e.exports=window.yoast.redux},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setProminentWords=function(e){return{type:r,prominentWords:e}};const r=t.SET_PROMINENT_WORDS="INSIGHTS_SET_PROMINENT_WORDS"},function(e,t,n){"use strict";window.yoast=window.yoast||{},window.yoast.styleGuide=n(3),window.yoast.helpers=n(7),window.yoast.componentsNew=n(8),window.yoast.configurationWizard=n(270),window.yoast.searchMetadataPreviews=n(298),window.yoast.analysisReport=n(88),window.yoast.components=n(967)},function(e){e.exports={$palette_white:"#fff",$palette_grey_ultra_light:"#f7f7f7",$palette_grey_light:"#f1f1f1",$palette_grey_medium_light:"#e2e4e7",$palette_grey:"#ddd",$palette_grey_medium:"#ccc",$palette_grey_disabled:"#a0a5aa",$palette_grey_medium_dark:"#888",$palette_grey_text_light:"#767676",$palette_grey_text:"#616161",$palette_grey_dark:"#555",$palette_black:"#000",$palette_purple:"#5d237a",$palette_purple_dark:"#6c2548",$palette_pink:"#d73763",$palette_pink_light:"#e1bee7",$palette_pink_dark:"#a4286a",$palette_blue:"#0066cd",$palette_blue_light:"#a9a9ce",$palette_blue_medium:"#1e8cbe",$palette_blue_link:"#0073aa",$palette_blue_focus:"#5b9dd9",$palette_yoast_focus:"#007fff",$palette_blue_dark:"#084a67",$palette_green:"#77b227",$palette_green_light:"#7ad03a",$palette_green_medium_light:"#64a60a",$palette_green_medium:"#008a00",$palette_green_blue:"#009288",$palette_orange:"#dc5c04",$palette_orange_light:"#ee7c1b",$palette_red:"#dc3232",$palette_red_light:"#f9bdbd",$palette_yellow:"#ffeb3b",$palette_yellow_score:"#f5c819",$palette_button_upsell:"#fec228",$palette_button_upsell_hover:"#f2ae01",$palette_link_text:"#004973",$palette_error_background:"#f9dcdc",$palette_error_text:"#8f1919",$palette_error_emphasis:"#dc3232",$palette_info_background:"#cce5ff",$palette_info_text:"#00468f",$palette_info_emphasis:"#007dff",$palette_success_background:"#e2f2cc",$palette_success_text:"#395315",$palette_success_emphasis:"#6ea029",$palette_warning_background:"#fff3cd",$palette_warning_text:"#674e00",$palette_warning_emphasis:"#ffc201",$color_bad:"#dc3232",$color_ok:"#ee7c1b",$color_good:"#7ad03a",$color_noindex:"#1e8cbe",$color_score_icon:"#888",$color_white:"#fff",$color_black:"#000",$color_green:"#77b227",$color_green_medium:"#008a00",$color_green_blue:"#009288",$color_grey:"#ddd",$color_grey_dark:"#555",$color_purple:"#5d237a",$color_purple_dark:"#6c2548",$color_pink:"#d73763",$color_pink_light:"#e1bee7",$color_pink_dark:"#a4286a",$color_blue:"#0066cd",$color_blue_light:"#a9a9ce",$color_blue_dark:"#084a67",$color_red:"#dc3232",$color_border_light:"#f7f7f7",$color_border_gutenberg:"#e2e4e7",$color_border:"#ccc",$color_input_border:"#ddd",$color_help_text:"#767676",$color_upsell_text:"#767676",$color_background_light:"#f7f7f7",$color_button:"#f7f7f7",$color_button_text:"#555",$color_button_border:"#ccc",$color_button_hover:"#fff",$color_button_border_hover:"#888",$color_button_text_hover:"#000",$color_button_border_active:"#000",$color_button_upsell:"#fec228",$color_button_upsell_hover:"#f2ae01",$color_headings:"#555",$color_marker_inactive:"#555",$color_marker_active:"#fff",$color_marker_disabled:"#a0a5aa",$color_error:"#dc3232",$color_orange:"#dc5c04",$color_orange_hover:"#c35204",$color_grey_hover:"#cecece",$color_pink_hover:"#cc2956",$color_grey_cta:"#ddd",$color_grey_line:"#ddd",$color_grey_quote:"#616161",$color_grey_text:"#616161",$color_grey_text_light:"#767676",$color_snippet_focus:"#1e8cbe",$color_snippet_hover:"#ccc",$color_snippet_active:"#555",$color_blue_link:"#0073aa",$color_blue_focus:"#5b9dd9",$color_blue_focus_shadow:"#1e8cbe",$color_yoast_focus:"#007fff",$color_yoast_focus_outer:"rgba(0,127,255,0.25)",$color_grey_medium_dark:"#888",$color_green_medium_light:"#64a60a",$color_grey_disabled:"#a0a5aa",$color_grey_medium:"#ccc",$color_grey_light:"#f1f1f1",$color_yellow:"#ffeb3b",$color_yellow_score:"#f5c819",$color_error_message:"#f9bdbd",$color_alert_link_text:"#004973",$color_alert_error_text:"#8f1919",$color_alert_error_background:"#f9dcdc",$color_alert_info_text:"#00468f",$color_alert_info_background:"#cce5ff",$color_alert_success_text:"#395315",$color_alert_success_background:"#e2f2cc",$color_alert_warning_text:"#674e00",$color_alert_warning_background:"#fff3cd"}},function(e){e.exports={mobile:"768px",tablet:"1224px"}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.rgba=function(e,t){return"rgba( "+function(e){if("string"!=typeof e)throw new Error("Please pass a string representation of a color in hex notation.");if(e.match(/^#[a-fA-F0-9]{6}$/))return parseInt(`${e[1]}${e[2]}`,16)+", "+parseInt(`${e[3]}${e[4]}`,16)+", "+parseInt(`${e[5]}${e[6]}`,16);if(e.match(/^#[a-fA-F0-9]{3}$/))return parseInt(`${e[1]}${e[1]}`,16)+", "+parseInt(`${e[2]}${e[2]}`,16)+", "+parseInt(` ${e[3]}${e[3]}`,16);throw new Error("Couldn't parse the color string. Please provide the color as a string in hex notation.")}(e)+", "+t+" )"}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.makeOutboundLink=void 0;var r=s(n(0)),o=s(n(222)),i=n(10),a=n(394);function s(e){return e&&e.__esModule?e:{default:e}}t.makeOutboundLink=((e="a")=>{class t extends r.default.Component{constructor(e){super(e),this.isYoastLink=this.isYoastLink.bind(this)}isYoastLink(e){return/yoast\.com|yoast\.test|yoa\.st/.test(e)}render(){if(!this.props.href)return null;const t=this.isYoastLink(this.props.href),n=Object.assign({},this.props,{target:"_blank",rel:t?this.props.rel:"noopener"});return r.default.createElement(e,n,this.props.children,r.default.createElement(a.A11yNotice,null,(0,i.__)("(Opens in a new browser tab)","yoast-components")))}}return t.propTypes={children:o.default.oneOfType([o.default.node]),href:o.default.string,rel:o.default.string},t.defaultProps={children:null,href:null,rel:null},t})},function(e,t,n){"use strict";var r=n(393);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,a){if(a!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.A11yNotice=void 0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(1));t.A11yNotice=r.default.span.withConfig({displayName:"A11yNotice",componentId:"u1v0gg-0"})(["border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute !important;width:1px;word-wrap:normal !important;transform:translateY(1em);"])},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getDirectionalStyle=function(e,t){return n=>n.theme.isRtl?t:e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(397);const r=(e,t)=>{const n=((e,t)=>{for(const n in t)t.hasOwnProperty(n)&&(void 0!==e[n]&&""!==e[n]||(e[n]=t[n]));return e})(e,{dataType:"json",method:"POST",contentType:"application/json"});return void 0===n.headers&&""===n.headers||((e,t)=>{"jquery"===e&&Object.assign(t,{beforeSend:e=>{jQuery.each(t.headers,(t,n)=>{e.setRequestHeader(t,n)})}}),"fetch"===e&&"json"===t.dataType&&Object.assign(t.headers,{Accepts:"application/json","Content-Type":"application/json"})})(t,n),"json"===n.dataType&&(n.data=JSON.stringify(n.data)),"fetch"===t&&Object.assign(n,{body:n.data}),n};t.default=((e,t)=>{if("undefined"==typeof jQuery||!jQuery||!jQuery.ajax)return((e,t)=>{const n=fetch(e,t);return new Promise((e,t)=>{n.then(n=>200===n.status?e(n.json()):t("Response status is not 200")).catch(()=>t("Wrong request"))})})(e,r(t,"fetch"));return((e,t)=>(Object.assign(t,{url:e}),new Promise((e,n)=>{jQuery.ajax(t).done(t=>{e(t)}).fail(()=>{n("Wrong request")})})))(e,r(t,"jquery"))})},function(e,t){!function(e){"use strict";if(!e.fetch){var t={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(t.arrayBuffer)var n=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],r=function(e){return e&&DataView.prototype.isPrototypeOf(e)},o=ArrayBuffer.isView||function(e){return e&&n.indexOf(Object.prototype.toString.call(e))>-1};c.prototype.append=function(e,t){e=s(e),t=u(t);var n=this.map[e];n||(n=[],this.map[e]=n),n.push(t)},c.prototype.delete=function(e){delete this.map[s(e)]},c.prototype.get=function(e){var t=this.map[s(e)];return t?t[0]:null},c.prototype.getAll=function(e){return this.map[s(e)]||[]},c.prototype.has=function(e){return this.map.hasOwnProperty(s(e))},c.prototype.set=function(e,t){this.map[s(e)]=[u(t)]},c.prototype.forEach=function(e,t){Object.getOwnPropertyNames(this.map).forEach(function(n){this.map[n].forEach(function(r){e.call(t,r,n,this)},this)},this)},c.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),l(e)},c.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),l(e)},c.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),l(e)},t.iterable&&(c.prototype[Symbol.iterator]=c.prototype.entries);var i=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];y.prototype.clone=function(){return new y(this,{body:this._bodyInit})},g.call(y.prototype),g.call(v.prototype),v.prototype.clone=function(){return new v(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new c(this.headers),url:this.url})},v.error=function(){var e=new v(null,{status:0,statusText:""});return e.type="error",e};var a=[301,302,303,307,308];v.redirect=function(e,t){if(-1===a.indexOf(t))throw new RangeError("Invalid status code");return new v(null,{status:t,headers:{location:e}})},e.Headers=c,e.Request=y,e.Response=v,e.fetch=function(e,n){return new Promise(function(r,o){var i=new y(e,n),a=new XMLHttpRequest;a.onload=function(){var e={status:a.status,statusText:a.statusText,headers:function(e){var t=new c;return e.split("\r\n").forEach(function(e){var n=e.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();t.append(r,o)}}),t}(a.getAllResponseHeaders()||"")};e.url="responseURL"in a?a.responseURL:e.headers.get("X-Request-URL");var t="response"in a?a.response:a.responseText;r(new v(t,e))},a.onerror=function(){o(new TypeError("Network request failed"))},a.ontimeout=function(){o(new TypeError("Network request failed"))},a.open(i.method,i.url,!0),"include"===i.credentials&&(a.withCredentials=!0),"responseType"in a&&t.blob&&(a.responseType="blob"),i.headers.forEach(function(e,t){a.setRequestHeader(t,e)}),a.send(void 0===i._bodyInit?null:i._bodyInit)})},e.fetch.polyfill=!0}function s(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function u(e){return"string"!=typeof e&&(e=String(e)),e}function l(e){var n={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return t.iterable&&(n[Symbol.iterator]=function(){return n}),n}function c(e){this.map={},e instanceof c?e.forEach(function(e,t){this.append(t,e)},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function f(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function d(e){return new Promise(function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}})}function p(e){var t=new FileReader,n=d(t);return t.readAsArrayBuffer(e),n}function h(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function g(){return this.bodyUsed=!1,this._initBody=function(e){if(this._bodyInit=e,e)if("string"==typeof e)this._bodyText=e;else if(t.blob&&Blob.prototype.isPrototypeOf(e))this._bodyBlob=e;else if(t.formData&&FormData.prototype.isPrototypeOf(e))this._bodyFormData=e;else if(t.searchParams&&URLSearchParams.prototype.isPrototypeOf(e))this._bodyText=e.toString();else if(t.arrayBuffer&&t.blob&&r(e))this._bodyArrayBuffer=h(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer]);else{if(!t.arrayBuffer||!ArrayBuffer.prototype.isPrototypeOf(e)&&!o(e))throw new Error("unsupported BodyInit type");this._bodyArrayBuffer=h(e)}else this._bodyText="";this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):t.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},t.blob&&(this.blob=function(){var e=f(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?f(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(p)}),this.text=function(){var e=f(this);if(e)return e;if(this._bodyBlob)return function(e){var t=new FileReader,n=d(t);return t.readAsText(e),n}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),n=new Array(t.length),r=0;r<t.length;r++)n[r]=String.fromCharCode(t[r]);return n.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},t.formData&&(this.formData=function(){return this.text().then(m)}),this.json=function(){return this.text().then(JSON.parse)},this}function y(e,t){var n=(t=t||{}).body;if("string"==typeof e)this.url=e;else{if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new c(e.headers)),this.method=e.method,this.mode=e.mode,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new c(t.headers)),this.method=function(e){var t=e.toUpperCase();return i.indexOf(t)>-1?t:e}(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function m(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}}),t}function v(e,t){t||(t={}),this.type="default",this.status="status"in t?t.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new c(t.headers),this.url=t.url||"",this._initBody(e)}}("undefined"!=typeof self?self:this)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default=(e=>{var t=document.createElement("textarea");return t.innerHTML=e,t.value})},function(e,t,n){(function(t){(function(){"use strict";var t=this;function n(e){return"string"==typeof e}function r(e,t,n){return e.call.apply(e.bind,arguments)}function o(e,t,n){if(!e)throw Error();if(2<arguments.length){var r=Array.prototype.slice.call(arguments,2);return function(){var n=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(n,r),e.apply(t,n)}}return function(){return e.apply(t,arguments)}}function i(e,t,n){return(i=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?r:o).apply(null,arguments)}function a(e){var t=te;function n(){}n.prototype=t.prototype,e.G=t.prototype,e.prototype=new n,e.prototype.constructor=e,e.F=function(e,n,r){for(var o=Array(arguments.length-2),i=2;i<arguments.length;i++)o[i-2]=arguments[i];return t.prototype[n].apply(e,o)}}var s=String.prototype.trim?function(e){return e.trim()}:function(e){return e.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};function u(e,t){return-1!=e.indexOf(t)}function l(e,t){return e<t?-1:e>t?1:0}var c,f=Array.prototype.indexOf?function(e,t,n){return Array.prototype.indexOf.call(e,t,n)}:function(e,t,r){if(r=null==r?0:0>r?Math.max(0,e.length+r):r,n(e))return n(t)&&1==t.length?e.indexOf(t,r):-1;for(;r<e.length;r++)if(r in e&&e[r]===t)return r;return-1},d=Array.prototype.forEach?function(e,t,n){Array.prototype.forEach.call(e,t,n)}:function(e,t,r){for(var o=e.length,i=n(e)?e.split(""):e,a=0;a<o;a++)a in i&&t.call(r,i[a],a,e)},p=Array.prototype.filter?function(e,t,n){return Array.prototype.filter.call(e,t,n)}:function(e,t,r){for(var o=e.length,i=[],a=0,s=n(e)?e.split(""):e,u=0;u<o;u++)if(u in s){var l=s[u];t.call(r,l,u,e)&&(i[a++]=l)}return i},h=Array.prototype.reduce?function(e,t,n,r){return r&&(t=i(t,r)),Array.prototype.reduce.call(e,t,n)}:function(e,t,n,r){var o=n;return d(e,function(n,i){o=t.call(r,o,n,i,e)}),o},g=Array.prototype.some?function(e,t,n){return Array.prototype.some.call(e,t,n)}:function(e,t,r){for(var o=e.length,i=n(e)?e.split(""):e,a=0;a<o;a++)if(a in i&&t.call(r,i[a],a,e))return!0;return!1};e:{var y=t.navigator;if(y){var m=y.userAgent;if(m){c=m;break e}}c=""}var v,b=u(c,"Opera")||u(c,"OPR"),_=u(c,"Trident")||u(c,"MSIE"),x=u(c,"Edge"),w=u(c,"Gecko")&&!(u(c.toLowerCase(),"webkit")&&!u(c,"Edge"))&&!(u(c,"Trident")||u(c,"MSIE"))&&!u(c,"Edge"),S=u(c.toLowerCase(),"webkit")&&!u(c,"Edge");function C(){var e=t.document;return e?e.documentMode:void 0}e:{var k="",O=function(){var e=c;return w?/rv\:([^\);]+)(\)|;)/.exec(e):x?/Edge\/([\d\.]+)/.exec(e):_?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(e):S?/WebKit\/(\S+)/.exec(e):b?/(?:Version)[ \/]?(\S+)/.exec(e):void 0}();if(O&&(k=O?O[1]:""),_){var E=C();if(null!=E&&E>parseFloat(k)){v=String(E);break e}}v=k}var T={};function M(e){if(!T[e]){for(var t=0,n=s(String(v)).split("."),r=s(String(e)).split("."),o=Math.max(n.length,r.length),i=0;0==t&&i<o;i++){var a=n[i]||"",u=r[i]||"",c=/(\d*)(\D*)/g,f=/(\d*)(\D*)/g;do{var d=c.exec(a)||["","",""],p=f.exec(u)||["","",""];if(0==d[0].length&&0==p[0].length)break;t=l(0==d[1].length?0:parseInt(d[1],10),0==p[1].length?0:parseInt(p[1],10))||l(0==d[2].length,0==p[2].length)||l(d[2],p[2])}while(0==t)}T[e]=0<=t}}var P=t.document,j=P&&_?C()||("CSS1Compat"==P.compatMode?parseInt(v,10):5):void 0,A=_&&!(9<=Number(j)),I=_&&!(8<=Number(j));function R(e,t,n,r){this.a=e,this.nodeName=n,this.nodeValue=r,this.nodeType=2,this.parentNode=this.ownerElement=t}function D(e,t){var n=I&&"href"==t.nodeName?e.getAttribute(t.nodeName,2):t.nodeValue;return new R(t,e,t.nodeName,n)}function N(e){var t=null;if(1==(n=e.nodeType)&&(t=void 0==(t=void 0==(t=e.textContent)||null==t?e.innerText:t)||null==t?"":t),"string"!=typeof t)if(A&&"title"==e.nodeName.toLowerCase()&&1==n)t=e.text;else if(9==n||1==n){e=9==n?e.documentElement:e.firstChild;var n=0,r=[];for(t="";e;){do{1!=e.nodeType&&(t+=e.nodeValue),A&&"title"==e.nodeName.toLowerCase()&&(t+=e.text),r[n++]=e}while(e=e.firstChild);for(;n&&!(e=r[--n].nextSibling););}}else t=e.nodeValue;return""+t}function B(e,t,n){if(null===t)return!0;try{if(!e.getAttribute)return!1}catch(e){return!1}return I&&"class"==t&&(t="className"),null==n?!!e.getAttribute(t):e.getAttribute(t,2)==n}function L(e,t,r,o,i){return(A?function(e,t,n,r,o){if(e instanceof Te||8==e.b||n&&null===e.b){var i=t.all;if(!i)return o;if("*"!=(e=q(e))&&!(i=t.getElementsByTagName(e)))return o;if(n){for(var a=[],s=0;t=i[s++];)B(t,n,r)&&a.push(t);i=a}for(s=0;t=i[s++];)"*"==e&&"!"==t.tagName||X(o,t);return o}return z(e,t,n,r,o),o}:function(e,t,n,r,o){return t.getElementsByName&&r&&"name"==n&&!_?(t=t.getElementsByName(r),d(t,function(t){e.a(t)&&X(o,t)})):t.getElementsByClassName&&r&&"class"==n?(t=t.getElementsByClassName(r),d(t,function(t){t.className==r&&e.a(t)&&X(o,t)})):e instanceof _e?z(e,t,n,r,o):t.getElementsByTagName&&(t=t.getElementsByTagName(e.f()),d(t,function(e){B(e,n,r)&&X(o,e)})),o}).call(null,e,t,n(r)?r:null,n(o)?o:null,i||new H)}function F(e,t,n,r,o){for(t=t.firstChild;t;t=t.nextSibling)B(t,n,r)&&e.a(t)&&X(o,t);return o}function z(e,t,n,r,o){for(t=t.firstChild;t;t=t.nextSibling)B(t,n,r)&&e.a(t)&&X(o,t),z(e,t,n,r,o)}function q(e){if(e instanceof _e){if(8==e.b)return"!";if(null===e.b)return"*"}return e.f()}function K(e,t){if(!e||!t)return!1;if(e.contains&&1==t.nodeType)return e==t||e.contains(t);if(void 0!==e.compareDocumentPosition)return e==t||!!(16&e.compareDocumentPosition(t));for(;t&&e!=t;)t=t.parentNode;return t==e}function W(e,n){if(e==n)return 0;if(e.compareDocumentPosition)return 2&e.compareDocumentPosition(n)?1:-1;if(_&&!(9<=Number(j))){if(9==e.nodeType)return-1;if(9==n.nodeType)return 1}if("sourceIndex"in e||e.parentNode&&"sourceIndex"in e.parentNode){var r=1==e.nodeType,o=1==n.nodeType;if(r&&o)return e.sourceIndex-n.sourceIndex;var i=e.parentNode,a=n.parentNode;return i==a?$(e,n):!r&&K(i,n)?-1*U(e,n):!o&&K(a,e)?U(n,e):(r?e.sourceIndex:i.sourceIndex)-(o?n.sourceIndex:a.sourceIndex)}return(r=(o=9==e.nodeType?e:e.ownerDocument||e.document).createRange()).selectNode(e),r.collapse(!0),(o=o.createRange()).selectNode(n),o.collapse(!0),r.compareBoundaryPoints(t.Range.START_TO_END,o)}function U(e,t){var n=e.parentNode;if(n==t)return-1;for(var r=t;r.parentNode!=n;)r=r.parentNode;return $(r,e)}function $(e,t){for(var n=t;n=n.previousSibling;)if(n==e)return-1;return 1}function H(){this.b=this.a=null,this.l=0}function V(e){this.node=e,this.a=this.b=null}function G(e,t){if(!e.a)return t;if(!t.a)return e;for(var n=e.a,r=t.a,o=null,i=null,a=0;n&&r;){i=n.node;var s=r.node;i==s||i instanceof R&&s instanceof R&&i.a==s.a?(i=n,n=n.a,r=r.a):0<W(n.node,r.node)?(i=r,r=r.a):(i=n,n=n.a),(i.b=o)?o.a=i:e.a=i,o=i,a++}for(i=n||r;i;)i.b=o,o=o.a=i,a++,i=i.a;return e.b=o,e.l=a,e}function Y(e,t){var n=new V(t);n.a=e.a,e.b?e.a.b=n:e.a=e.b=n,e.a=n,e.l++}function X(e,t){var n=new V(t);n.b=e.b,e.a?e.b.a=n:e.a=e.b=n,e.b=n,e.l++}function J(e){return(e=e.a)?e.node:null}function Z(e){return(e=J(e))?N(e):""}function Q(e,t){return new function(e,t){this.f=e,this.b=(this.c=t)?e.b:e.a,this.a=null}(e,!!t)}function ee(e){var t=e.b;if(null==t)return null;var n=e.a=t;return e.b=e.c?t.b:t.a,n.node}function te(e){this.i=e,this.b=this.g=!1,this.f=null}function ne(e){return"\n "+e.toString().split("\n").join("\n ")}function re(e,t){e.g=t}function oe(e,t){e.b=t}function ie(e,t){var n=e.a(t);return n instanceof H?+Z(n):+n}function ae(e,t){var n=e.a(t);return n instanceof H?Z(n):""+n}function se(e,t){var n=e.a(t);return n instanceof H?!!n.l:!!n}function ue(e,t,n){te.call(this,e.i),this.c=e,this.h=t,this.o=n,this.g=t.g||n.g,this.b=t.b||n.b,this.c==pe&&(n.b||n.g||4==n.i||0==n.i||!t.f?t.b||t.g||4==t.i||0==t.i||!n.f||(this.f={name:n.f.name,s:t}):this.f={name:t.f.name,s:n})}function le(e,t,n,r,o){var i;if(t=t.a(r),n=n.a(r),t instanceof H&&n instanceof H){for(r=ee(t=Q(t));r;r=ee(t))for(i=ee(o=Q(n));i;i=ee(o))if(e(N(r),N(i)))return!0;return!1}if(t instanceof H||n instanceof H){t instanceof H?(o=t,r=n):(o=n,r=t);for(var a=typeof r,s=ee(i=Q(o));s;s=ee(i)){switch(a){case"number":s=+N(s);break;case"boolean":s=!!N(s);break;case"string":s=N(s);break;default:throw Error("Illegal primitive type for comparison.")}if(o==t&&e(s,r)||o==n&&e(r,s))return!0}return!1}return o?"boolean"==typeof t||"boolean"==typeof n?e(!!t,!!n):"number"==typeof t||"number"==typeof n?e(+t,+n):e(t,n):e(+t,+n)}function ce(e,t,n,r){this.a=e,this.w=t,this.i=n,this.m=r}!w&&!_||_&&9<=Number(j)||w&&M("1.9.1"),_&&M("9"),a(ue),ue.prototype.a=function(e){return this.c.m(this.h,this.o,e)},ue.prototype.toString=function(){return"Binary Expression: "+this.c+ne(this.h)+ne(this.o)},ce.prototype.toString=function(){return this.a};var fe={};function de(e,t,n,r){if(fe.hasOwnProperty(e))throw Error("Binary operator already created: "+e);return e=new ce(e,t,n,r),fe[e.toString()]=e}de("div",6,1,function(e,t,n){return ie(e,n)/ie(t,n)}),de("mod",6,1,function(e,t,n){return ie(e,n)%ie(t,n)}),de("*",6,1,function(e,t,n){return ie(e,n)*ie(t,n)}),de("+",5,1,function(e,t,n){return ie(e,n)+ie(t,n)}),de("-",5,1,function(e,t,n){return ie(e,n)-ie(t,n)}),de("<",4,2,function(e,t,n){return le(function(e,t){return e<t},e,t,n)}),de(">",4,2,function(e,t,n){return le(function(e,t){return e>t},e,t,n)}),de("<=",4,2,function(e,t,n){return le(function(e,t){return e<=t},e,t,n)}),de(">=",4,2,function(e,t,n){return le(function(e,t){return e>=t},e,t,n)});var pe=de("=",3,2,function(e,t,n){return le(function(e,t){return e==t},e,t,n,!0)});function he(e,t,n){this.a=e,this.b=t||1,this.f=n||1}function ge(e,t){if(t.a.length&&4!=e.i)throw Error("Primary expression must evaluate to nodeset if filter has predicate(s).");te.call(this,e.i),this.c=e,this.h=t,this.g=e.g,this.b=e.b}function ye(e,t){if(t.length<e.A)throw Error("Function "+e.j+" expects at least"+e.A+" arguments, "+t.length+" given");if(null!==e.v&&t.length>e.v)throw Error("Function "+e.j+" expects at most "+e.v+" arguments, "+t.length+" given");e.B&&d(t,function(t,n){if(4!=t.i)throw Error("Argument "+n+" to function "+e.j+" is not of type Nodeset: "+t)}),te.call(this,e.i),this.h=e,this.c=t,re(this,e.g||g(t,function(e){return e.g})),oe(this,e.D&&!t.length||e.C&&!!t.length||g(t,function(e){return e.b}))}function me(e,t,n,r,o,i,a,s,u){this.j=e,this.i=t,this.g=n,this.D=r,this.C=o,this.m=i,this.A=a,this.v=void 0!==s?s:a,this.B=!!u}de("!=",3,2,function(e,t,n){return le(function(e,t){return e!=t},e,t,n,!0)}),de("and",2,2,function(e,t,n){return se(e,n)&&se(t,n)}),de("or",1,2,function(e,t,n){return se(e,n)||se(t,n)}),a(ge),ge.prototype.a=function(e){return e=this.c.a(e),De(this.h,e)},ge.prototype.toString=function(){return"Filter:"+ne(this.c)+ne(this.h)},a(ye),ye.prototype.a=function(e){return this.h.m.apply(null,function(e){return Array.prototype.concat.apply(Array.prototype,arguments)}(e,this.c))},ye.prototype.toString=function(){var e="Function: "+this.h;if(this.c.length)e=e+ne(h(this.c,function(e,t){return e+ne(t)},"Arguments:"));return e},me.prototype.toString=function(){return this.j};var ve={};function be(e,t,n,r,o,i,a,s){if(ve.hasOwnProperty(e))throw Error("Function already created: "+e+".");ve[e]=new me(e,t,n,r,!1,o,i,a,s)}function _e(e,t){switch(this.h=e,this.c=void 0!==t?t:null,this.b=null,e){case"comment":this.b=8;break;case"text":this.b=3;break;case"processing-instruction":this.b=7;break;case"node":break;default:throw Error("Unexpected argument")}}function xe(e){return"comment"==e||"text"==e||"processing-instruction"==e||"node"==e}be("boolean",2,!1,!1,function(e,t){return se(t,e)},1),be("ceiling",1,!1,!1,function(e,t){return Math.ceil(ie(t,e))},1),be("concat",3,!1,!1,function(e,t){return h(function(e,t,n){return 2>=arguments.length?Array.prototype.slice.call(e,t):Array.prototype.slice.call(e,t,n)}(arguments,1),function(t,n){return t+ae(n,e)},"")},2,null),be("contains",2,!1,!1,function(e,t,n){return u(ae(t,e),ae(n,e))},2),be("count",1,!1,!1,function(e,t){return t.a(e).l},1,1,!0),be("false",2,!1,!1,function(){return!1},0),be("floor",1,!1,!1,function(e,t){return Math.floor(ie(t,e))},1),be("id",4,!1,!1,function(e,t){function r(e){if(A){var t=o.all[e];if(t){if(t.nodeType&&e==t.id)return t;if(t.length)return function(e,t){var r;e:{r=e.length;for(var o=n(e)?e.split(""):e,i=0;i<r;i++)if(i in o&&t.call(void 0,o[i],i,e)){r=i;break e}r=-1}return 0>r?null:n(e)?e.charAt(r):e[r]}(t,function(t){return e==t.id})}return null}return o.getElementById(e)}var o=9==(i=e.a).nodeType?i:i.ownerDocument,i=ae(t,e).split(/\s+/),a=[];d(i,function(e){!(e=r(e))||0<=f(a,e)||a.push(e)}),a.sort(W);var s=new H;return d(a,function(e){X(s,e)}),s},1),be("lang",2,!1,!1,function(){return!1},1),be("last",1,!0,!1,function(e){if(1!=arguments.length)throw Error("Function last expects ()");return e.f},0),be("local-name",3,!1,!0,function(e,t){var n=t?J(t.a(e)):e.a;return n?n.localName||n.nodeName.toLowerCase():""},0,1,!0),be("name",3,!1,!0,function(e,t){var n=t?J(t.a(e)):e.a;return n?n.nodeName.toLowerCase():""},0,1,!0),be("namespace-uri",3,!0,!1,function(){return""},0,1,!0),be("normalize-space",3,!1,!0,function(e,t){return(t?ae(t,e):N(e.a)).replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")},0,1),be("not",2,!1,!1,function(e,t){return!se(t,e)},1),be("number",1,!1,!0,function(e,t){return t?ie(t,e):+N(e.a)},0,1),be("position",1,!0,!1,function(e){return e.b},0),be("round",1,!1,!1,function(e,t){return Math.round(ie(t,e))},1),be("starts-with",2,!1,!1,function(e,t,n){return t=ae(t,e),e=ae(n,e),0==t.lastIndexOf(e,0)},2),be("string",3,!1,!0,function(e,t){return t?ae(t,e):N(e.a)},0,1),be("string-length",1,!1,!0,function(e,t){return(t?ae(t,e):N(e.a)).length},0,1),be("substring",3,!1,!1,function(e,t,n,r){if(n=ie(n,e),isNaN(n)||1/0==n||-1/0==n)return"";if(r=r?ie(r,e):1/0,isNaN(r)||-1/0===r)return"";n=Math.round(n)-1;var o=Math.max(n,0);return e=ae(t,e),1/0==r?e.substring(o):e.substring(o,n+Math.round(r))},2,3),be("substring-after",3,!1,!1,function(e,t,n){return t=ae(t,e),e=ae(n,e),-1==(n=t.indexOf(e))?"":t.substring(n+e.length)},2),be("substring-before",3,!1,!1,function(e,t,n){return t=ae(t,e),e=ae(n,e),-1==(e=t.indexOf(e))?"":t.substring(0,e)},2),be("sum",1,!1,!1,function(e,t){for(var n=Q(t.a(e)),r=0,o=ee(n);o;o=ee(n))r+=+N(o);return r},1,1,!0),be("translate",3,!1,!1,function(e,t,n,r){t=ae(t,e),n=ae(n,e);var o=ae(r,e);for(e={},r=0;r<n.length;r++){var i=n.charAt(r);i in e||(e[i]=o.charAt(r))}for(n="",r=0;r<t.length;r++)n+=(i=t.charAt(r))in e?e[i]:i;return n},3),be("true",2,!1,!1,function(){return!0},0),_e.prototype.a=function(e){return null===this.b||this.b==e.nodeType},_e.prototype.f=function(){return this.h},_e.prototype.toString=function(){var e="Kind Test: "+this.h;return null===this.c||(e+=ne(this.c)),e};var we=/\$?(?:(?![0-9-\.])(?:\*|[\w-\.]+):)?(?![0-9-\.])(?:\*|[\w-\.]+)|\/\/|\.\.|::|\d+(?:\.\d*)?|\.\d+|"[^"]*"|'[^']*'|[!<>]=|\s+|./g,Se=/^\s/;function Ce(e,t){return e.b[e.a+(t||0)]}function ke(e){return e.b[e.a++]}function Oe(e){return e.b.length<=e.a}function Ee(e){te.call(this,3),this.c=e.substring(1,e.length-1)}function Te(e,t){var n;this.j=e.toLowerCase(),n="*"==this.j?"*":"http://www.w3.org/1999/xhtml",this.c=t?t.toLowerCase():n}function Me(e,t){if(te.call(this,e.i),this.h=e,this.c=t,this.g=e.g,this.b=e.b,1==this.c.length){var n=this.c[0];n.u||n.c!=ze||"*"!=(n=n.o).f()&&(this.f={name:n.f(),s:null})}}function Pe(){te.call(this,4)}function je(){te.call(this,4)}function Ae(e){return"/"==e||"//"==e}function Ie(e){te.call(this,4),this.c=e,re(this,g(this.c,function(e){return e.g})),oe(this,g(this.c,function(e){return e.b}))}function Re(e,t){this.a=e,this.b=!!t}function De(e,t,n){for(n=n||0;n<e.a.length;n++)for(var r,o=e.a[n],i=Q(t),a=t.l,s=0;r=ee(i);s++){var u=e.b?a-s:s+1;if("number"==typeof(r=o.a(new he(r,u,a))))u=u==r;else if("string"==typeof r||"boolean"==typeof r)u=!!r;else{if(!(r instanceof H))throw Error("Predicate.evaluate returned an unexpected type.");u=0<r.l}if(!u){if(r=(u=i).f,!(c=u.a))throw Error("Next must be called at least once before remove.");var l=c.b,c=c.a;l?l.a=c:r.a=c,c?c.b=l:r.b=l,r.l--,u.a=null}}return t}function Ne(e,t,n,r){te.call(this,4),this.c=e,this.o=t,this.h=n||new Re([]),this.u=!!r,t=0<(t=this.h).a.length?t.a[0].f:null,e.b&&t&&(e=t.name,e=A?e.toLowerCase():e,this.f={name:e,s:t.s});e:{for(e=this.h,t=0;t<e.a.length;t++)if((n=e.a[t]).g||1==n.i||0==n.i){e=!0;break e}e=!1}this.g=e}function Be(e,t,n,r){this.j=e,this.f=t,this.a=n,this.b=r}a(Ee),Ee.prototype.a=function(){return this.c},Ee.prototype.toString=function(){return"Literal: "+this.c},Te.prototype.a=function(e){var t=e.nodeType;return(1==t||2==t)&&(t=void 0!==e.localName?e.localName:e.nodeName,("*"==this.j||this.j==t.toLowerCase())&&("*"==this.c||this.c==(e.namespaceURI?e.namespaceURI.toLowerCase():"http://www.w3.org/1999/xhtml")))},Te.prototype.f=function(){return this.j},Te.prototype.toString=function(){return"Name Test: "+("http://www.w3.org/1999/xhtml"==this.c?"":this.c+":")+this.j},a(Me),a(Pe),Pe.prototype.a=function(e){var t=new H;return 9==(e=e.a).nodeType?X(t,e):X(t,e.ownerDocument),t},Pe.prototype.toString=function(){return"Root Helper Expression"},a(je),je.prototype.a=function(e){var t=new H;return X(t,e.a),t},je.prototype.toString=function(){return"Context Helper Expression"},Me.prototype.a=function(e){var t=this.h.a(e);if(!(t instanceof H))throw Error("Filter expression must evaluate to nodeset.");for(var n=0,r=(e=this.c).length;n<r&&t.l;n++){var o,i=e[n],a=Q(t,i.c.a);if(i.g||i.c!=We)if(i.g||i.c!=$e)for(o=ee(a),t=i.a(new he(o));null!=(o=ee(a));)t=G(t,o=i.a(new he(o)));else o=ee(a),t=i.a(new he(o));else{for(o=ee(a);(t=ee(a))&&(!o.contains||o.contains(t))&&8&t.compareDocumentPosition(o);o=t);t=i.a(new he(o))}}return t},Me.prototype.toString=function(){var e;(e="Path Expression:"+ne(this.h),this.c.length)&&(e+=ne(h(this.c,function(e,t){return e+ne(t)},"Steps:")));return e},a(Ie),Ie.prototype.a=function(e){var t=new H;return d(this.c,function(n){if(!((n=n.a(e))instanceof H))throw Error("Path expression must evaluate to NodeSet.");t=G(t,n)}),t},Ie.prototype.toString=function(){return h(this.c,function(e,t){return e+ne(t)},"Union Expression:")},Re.prototype.toString=function(){return h(this.a,function(e,t){return e+ne(t)},"Predicates:")},a(Ne),Ne.prototype.a=function(e){var t=e.a,n=null,r=null,o=null,i=0;if((n=this.f)&&(r=n.name,o=n.s?ae(n.s,e):null,i=1),this.u)if(this.g||this.c!=qe)if(t=ee(e=Q(new Ne(Ke,new _e("node")).a(e))))for(n=this.m(t,r,o,i);null!=(t=ee(e));)n=G(n,this.m(t,r,o,i));else n=new H;else n=L(this.o,t,r,o),n=De(this.h,n,i);else n=this.m(e.a,r,o,i);return n},Ne.prototype.m=function(e,t,n,r){return e=this.c.f(this.o,e,t,n),De(this.h,e,r)},Ne.prototype.toString=function(){var e;(e="Step:"+ne("Operator: "+(this.u?"//":"/")),this.c.j&&(e+=ne("Axis: "+this.c)),e+=ne(this.o),this.h.a.length)&&(e+=ne(h(this.h.a,function(e,t){return e+ne(t)},"Predicates:")));return e},Be.prototype.toString=function(){return this.j};var Le={};function Fe(e,t,n,r){if(Le.hasOwnProperty(e))throw Error("Axis already created: "+e);return t=new Be(e,t,n,!!r),Le[e]=t}Fe("ancestor",function(e,t){for(var n=new H,r=t;r=r.parentNode;)e.a(r)&&Y(n,r);return n},!0),Fe("ancestor-or-self",function(e,t){var n=new H,r=t;do{e.a(r)&&Y(n,r)}while(r=r.parentNode);return n},!0);var ze=Fe("attribute",function(e,t){var n=new H;if("style"==(i=e.f())&&A&&t.style)return X(n,new R(t.style,t,"style",t.style.cssText)),n;var r=t.attributes;if(r)if(e instanceof _e&&null===e.b||"*"==i)for(var o,i=0;o=r[i];i++)A?o.nodeValue&&X(n,D(t,o)):X(n,o);else(o=r.getNamedItem(i))&&(A?o.nodeValue&&X(n,D(t,o)):X(n,o));return n},!1),qe=Fe("child",function(e,t,r,o,i){return(A?function(e,t,n,r,o){var i;if((e instanceof Te||8==e.b||n&&null===e.b)&&(i=t.childNodes)){var a=q(e);return"*"==a||(i=p(i,function(e){return e.tagName&&e.tagName.toLowerCase()==a}))?(n&&(i=p(i,function(e){return B(e,n,r)})),d(i,function(e){"*"==a&&("!"==e.tagName||"*"==a&&1!=e.nodeType)||X(o,e)}),o):o}return F(e,t,n,r,o)}:F).call(null,e,t,n(r)?r:null,n(o)?o:null,i||new H)},!1,!0);Fe("descendant",L,!1,!0);var Ke=Fe("descendant-or-self",function(e,t,n,r){var o=new H;return B(t,n,r)&&e.a(t)&&X(o,t),L(e,t,n,r,o)},!1,!0),We=Fe("following",function(e,t,n,r){var o=new H;do{for(var i=t;i=i.nextSibling;)B(i,n,r)&&e.a(i)&&X(o,i),o=L(e,i,n,r,o)}while(t=t.parentNode);return o},!1,!0);Fe("following-sibling",function(e,t){for(var n=new H,r=t;r=r.nextSibling;)e.a(r)&&X(n,r);return n},!1),Fe("namespace",function(){return new H},!1);var Ue=Fe("parent",function(e,t){var n=new H;if(9==t.nodeType)return n;if(2==t.nodeType)return X(n,t.ownerElement),n;var r=t.parentNode;return e.a(r)&&X(n,r),n},!1),$e=Fe("preceding",function(e,t,n,r){var o=new H,i=[];do{i.unshift(t)}while(t=t.parentNode);for(var a=1,s=i.length;a<s;a++){var u=[];for(t=i[a];t=t.previousSibling;)u.unshift(t);for(var l=0,c=u.length;l<c;l++)B(t=u[l],n,r)&&e.a(t)&&X(o,t),o=L(e,t,n,r,o)}return o},!0,!0);Fe("preceding-sibling",function(e,t){for(var n=new H,r=t;r=r.previousSibling;)e.a(r)&&Y(n,r);return n},!0);var He=Fe("self",function(e,t){var n=new H;return e.a(t)&&X(n,t),n},!1);function Ve(e){te.call(this,1),this.c=e,this.g=e.g,this.b=e.b}function Ge(e){te.call(this,1),this.c=e}function Ye(e){for(var t,n=[];;){Xe(e,"Missing right hand side of binary expression."),t=rt(e);var r=ke(e.a);if(!r)break;var o=(r=fe[r]||null)&&r.w;if(!o){e.a.a--;break}for(;n.length&&o<=n[n.length-1].w;)t=new ue(n.pop(),n.pop(),t);n.push(t,r)}for(;n.length;)t=new ue(n.pop(),n.pop(),t);return t}function Xe(e,t){if(Oe(e.a))throw Error(t)}function Je(e,t){var n=ke(e.a);if(n!=t)throw Error("Bad token, expected: "+t+" got: "+n)}function Ze(e){if(")"!=(e=ke(e.a)))throw Error("Bad token: "+e)}function Qe(e){if(2>(e=ke(e.a)).length)throw Error("Unclosed literal string");return new Ee(e)}function et(e){var t,n,r=[];if(Ae(Ce(e.a))){if(t=ke(e.a),n=Ce(e.a),"/"==t&&(Oe(e.a)||"."!=n&&".."!=n&&"@"!=n&&"*"!=n&&!/(?![0-9])[\w]/.test(n)))return new Pe;n=new Pe,Xe(e,"Missing next location step."),t=tt(e,t),r.push(t)}else{e:{switch(n=(t=Ce(e.a)).charAt(0)){case"$":throw Error("Variable reference not allowed in HTML XPath");case"(":ke(e.a),t=Ye(e),Xe(e,'unclosed "("'),Je(e,")");break;case'"':case"'":t=Qe(e);break;default:if(isNaN(+t)){if(xe(t)||!/(?![0-9])[\w]/.test(n)||"("!=Ce(e.a,1)){t=null;break e}for(t=ke(e.a),t=ve[t]||null,ke(e.a),n=[];")"!=Ce(e.a)&&(Xe(e,"Missing function argument list."),n.push(Ye(e)),","==Ce(e.a));)ke(e.a);Xe(e,"Unclosed function argument list."),Ze(e),t=new ye(t,n)}else t=new Ge(+ke(e.a))}"["==Ce(e.a)&&(t=new ge(t,n=new Re(nt(e))))}if(t){if(!Ae(Ce(e.a)))return t;n=t}else t=tt(e,"/"),n=new je,r.push(t)}for(;Ae(Ce(e.a));)t=ke(e.a),Xe(e,"Missing next location step."),t=tt(e,t),r.push(t);return new Me(n,r)}function tt(e,t){var n,r,o,i;if("/"!=t&&"//"!=t)throw Error('Step op should be "/" or "//"');if("."==Ce(e.a))return r=new Ne(He,new _e("node")),ke(e.a),r;if(".."==Ce(e.a))return r=new Ne(Ue,new _e("node")),ke(e.a),r;if("@"==Ce(e.a))i=ze,ke(e.a),Xe(e,"Missing attribute name");else if("::"==Ce(e.a,1)){if(!/(?![0-9])[\w]/.test(Ce(e.a).charAt(0)))throw Error("Bad token: "+ke(e.a));if(n=ke(e.a),!(i=Le[n]||null))throw Error("No axis with name: "+n);ke(e.a),Xe(e,"Missing node name")}else i=qe;if(n=Ce(e.a),!/(?![0-9])[\w\*]/.test(n.charAt(0)))throw Error("Bad token: "+ke(e.a));if("("==Ce(e.a,1)){if(!xe(n))throw Error("Invalid node type: "+n);if(!xe(n=ke(e.a)))throw Error("Invalid type name: "+n);Je(e,"("),Xe(e,"Bad nodetype");var a=null;'"'!=(o=Ce(e.a).charAt(0))&&"'"!=o||(a=Qe(e)),Xe(e,"Bad nodetype"),Ze(e),n=new _e(n,a)}else if(-1==(o=(n=ke(e.a)).indexOf(":")))n=new Te(n);else{var s;if("*"==(a=n.substring(0,o)))s="*";else if(!(s=e.b(a)))throw Error("Namespace prefix not declared: "+a);n=new Te(n=n.substr(o+1),s)}return o=new Re(nt(e),i.a),r||new Ne(i,n,o,"//"==t)}function nt(e){for(var t=[];"["==Ce(e.a);){ke(e.a),Xe(e,"Missing predicate expression.");var n=Ye(e);t.push(n),Xe(e,"Unclosed predicate expression."),Je(e,"]")}return t}function rt(e){if("-"==Ce(e.a))return ke(e.a),new Ve(rt(e));var t=et(e);if("|"!=Ce(e.a))e=t;else{for(t=[t];"|"==ke(e.a);)Xe(e,"Missing next union location path."),t.push(et(e));e.a.a--,e=new Ie(t)}return e}function ot(e){switch(e.nodeType){case 1:return function(e,t){var n=Array.prototype.slice.call(arguments,1);return function(){var t=n.slice();return t.push.apply(t,arguments),e.apply(this,t)}}(at,e);case 9:return ot(e.documentElement);case 11:case 10:case 6:case 12:return it;default:return e.parentNode?ot(e.parentNode):it}}function it(){return null}function at(e,t){if(e.prefix==t)return e.namespaceURI||"http://www.w3.org/1999/xhtml";var n=e.getAttributeNode("xmlns:"+t);return n&&n.specified?n.value||null:e.parentNode&&9!=e.parentNode.nodeType?at(e.parentNode,t):null}function st(e,t){if(!e.length)throw Error("Empty XPath expression.");var n=function(e){e=e.match(we);for(var t=0;t<e.length;t++)Se.test(e[t])&&e.splice(t,1);return new function(e){this.b=e,this.a=0}(e)}(e);if(Oe(n))throw Error("Invalid XPath expression.");t?"function"==function(e){var t=typeof e;if("object"==t){if(!e)return"null";if(e instanceof Array)return"array";if(e instanceof Object)return t;var n=Object.prototype.toString.call(e);if("[object Window]"==n)return"object";if("[object Array]"==n||"number"==typeof e.length&&void 0!==e.splice&&void 0!==e.propertyIsEnumerable&&!e.propertyIsEnumerable("splice"))return"array";if("[object Function]"==n||void 0!==e.call&&void 0!==e.propertyIsEnumerable&&!e.propertyIsEnumerable("call"))return"function"}else if("function"==t&&void 0===e.call)return"object";return t}(t)||(t=i(t.lookupNamespaceURI,t)):t=function(){return null};var r=Ye(new function(e,t){this.a=e,this.b=t}(n,t));if(!Oe(n))throw Error("Bad token: "+ke(n));this.evaluate=function(e,t){return new ut(r.a(new he(e)),t)}}function ut(e,t){if(0==t)if(e instanceof H)t=4;else if("string"==typeof e)t=2;else if("number"==typeof e)t=1;else{if("boolean"!=typeof e)throw Error("Unexpected evaluation result.");t=3}if(2!=t&&1!=t&&3!=t&&!(e instanceof H))throw Error("value could not be converted to the specified type");var n;switch(this.resultType=t,t){case 2:this.stringValue=e instanceof H?Z(e):""+e;break;case 1:this.numberValue=e instanceof H?+Z(e):+e;break;case 3:this.booleanValue=e instanceof H?0<e.l:!!e;break;case 4:case 5:case 6:case 7:var r=Q(e);n=[];for(var o=ee(r);o;o=ee(r))n.push(o instanceof R?o.a:o);this.snapshotLength=e.l,this.invalidIteratorState=!1;break;case 8:case 9:r=J(e),this.singleNodeValue=r instanceof R?r.a:r;break;default:throw Error("Unknown XPathResult type.")}var i=0;this.iterateNext=function(){if(4!=t&&5!=t)throw Error("iterateNext called with wrong result type");return i>=n.length?null:n[i++]},this.snapshotItem=function(e){if(6!=t&&7!=t)throw Error("snapshotItem called with wrong result type");return e>=n.length||0>e?null:n[e]}}function lt(e,n){var r=e||t,o=r.Document&&r.Document.prototype||r.document;o.evaluate&&!n||(r.XPathResult=ut,o.evaluate=function(e,t,n,r){return new st(e,n).evaluate(t,r)},o.createExpression=function(e,t){return new st(e,t)},o.createNSResolver=function(e){return new function(e){this.lookupNamespaceURI=ot(e)}(e)})}a(Ve),Ve.prototype.a=function(e){return-ie(this.c,e)},Ve.prototype.toString=function(){return"Unary Expression: -"+ne(this.c)},a(Ge),Ge.prototype.a=function(){return this.c},Ge.prototype.toString=function(){return"Number: "+this.c},ut.ANY_TYPE=0,ut.NUMBER_TYPE=1,ut.STRING_TYPE=2,ut.BOOLEAN_TYPE=3,ut.UNORDERED_NODE_ITERATOR_TYPE=4,ut.ORDERED_NODE_ITERATOR_TYPE=5,ut.UNORDERED_NODE_SNAPSHOT_TYPE=6,ut.ORDERED_NODE_SNAPSHOT_TYPE=7,ut.ANY_UNORDERED_NODE_TYPE=8,ut.FIRST_ORDERED_NODE_TYPE=9;var ct,ft=["wgxpath","install"],dt=t;ft[0]in dt||!dt.execScript||dt.execScript("var "+ft[0]);for(;ft.length&&(ct=ft.shift());)ft.length||void 0===lt?dt=dt[ct]?dt[ct]:dt[ct]={}:dt[ct]=lt;e.exports.install=lt,e.exports.XPathResultType={ANY_TYPE:0,NUMBER_TYPE:1,STRING_TYPE:2,BOOLEAN_TYPE:3,UNORDERED_NODE_ITERATOR_TYPE:4,ORDERED_NODE_ITERATOR_TYPE:5,UNORDERED_NODE_SNAPSHOT_TYPE:6,ORDERED_NODE_SNAPSHOT_TYPE:7,ANY_UNORDERED_NODE_TYPE:8,FIRST_ORDERED_NODE_TYPE:9}}).call(t)}).call(this,n(18))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,o.default)(e,t,i)};var r=n(130),o=function(e){return e&&e.__esModule?e:{default:e}}(r);function i(e,t,n){const o={};return o.id=(0,r.getXPathText)("child::content:slug",e,t,n),o.title=(0,r.getXPathText)("child::title",e,t),o.link=(0,r.getXPathText)("child::link",e,t),o.content=(0,r.getXPathText)("child::content:encoded",e,t,n),o.image=(0,r.getXPathText)("child::content:image",e,t,n),o.ctaButtonCopy=(0,r.getXPathText)("child::content:cta_button_copy",e,t,n),o.ctaButtonType=(0,r.getXPathText)("child::content:cta_button_type",e,t,n),o.ctaButtonUrl=(0,r.getXPathText)("child::content:cta_button_url",e,t,n),o.readMoreLinkText=(0,r.getXPathText)("child::content:read_more_link_text",e,t,n),o.isFree=(0,r.getXPathText)("child::content:is_free",e,t,n),o.isBundle=(0,r.getXPathText)("child::content:is_bundle",e,t,n),o}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StyledSvg=void 0;var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=u(n(222)),i=u(n(0)),a=u(n(1)),s=u(n(402));function u(e){return e&&e.__esModule?e:{default:e}}const l=t.StyledSvg=a.default.svg.withConfig({displayName:"createSvgIconComponent__StyledSvg",componentId:"f1towz-0"})(["width:",";height:",";flex:none;"],e=>e.size,e=>e.size);class c extends i.default.Component{render(){var e=this.props;const t=e.iconSet,n=e.icon,r=e.className,o=e.color,a=e.size,u=t[n];if(!u)return console.warn(`Invalid icon name ("${n}") passed to the SvgIcon component.`),null;const c=u.path,f=u.viewbox,d=["yoast-svg-icon","yoast-svg-icon-"+n,r].filter(Boolean).join(" "),p=u.CustomComponent?u.CustomComponent:l;return i.default.createElement(p,{"aria-hidden":!0,role:"img",focusable:"false",size:a,className:d,xmlns:"http://www.w3.org/2000/svg",viewBox:f,fill:o},(0,s.default)(c)?c:i.default.createElement("path",{d:c}))}}c.propTypes={icon:o.default.string.isRequired,iconSet:o.default.object.isRequired,color:o.default.string,size:o.default.string,className:o.default.string},c.defaultProps={size:"16px",color:"currentColor",className:""},t.default=(e=>{const t=t=>i.default.createElement(c,r({},t,{iconSet:e}));return t.propTypes={icon:o.default.string.isRequired,color:o.default.string,size:o.default.string,className:o.default.string},t.defaultProps={size:"16px",color:"currentColor",className:""},t})},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){var r=n(131),o=n(225),i=n(230),a=n(232),s=n(33),u=n(424),l="Expected a function",c=8,f=32,d=128,p=256;e.exports=function(e){return o(function(t){var n=t.length,o=n,h=r.prototype.thru;for(e&&t.reverse();o--;){var g=t[o];if("function"!=typeof g)throw new TypeError(l);if(h&&!y&&"wrapper"==a(g))var y=new r([],!0)}for(o=y?o:n;++o<n;){g=t[o];var m=a(g),v="wrapper"==m?i(g):void 0;y=v&&u(v[0])&&v[1]==(d|c|f|p)&&!v[4].length&&1==v[9]?y[a(v[0])].apply(y,v[3]):1==g.length&&u(g)?y[m]():y.thru(g)}return function(){var e=arguments,r=e[0];if(y&&1==e.length&&s(r))return y.plant(r).value();for(var o=0,i=n?t[o].apply(this,e):r;++o<n;)i=t[o].call(this,i);return i}})}},function(e,t,n){var r=n(405);e.exports=function(e){return null!=e&&e.length?r(e,1):[]}},function(e,t,n){var r=n(134),o=n(406);e.exports=function e(t,n,i,a,s){var u=-1,l=t.length;for(i||(i=o),s||(s=[]);++u<l;){var c=t[u];n>0&&i(c)?n>1?e(c,n-1,i,a,s):r(s,c):a||(s[s.length]=c)}return s}},function(e,t,n){var r=n(78),o=n(135),i=n(33),a=r?r.isConcatSpreadable:void 0;e.exports=function(e){return i(e)||o(e)||!!(a&&e&&e[a])}},function(e,t,n){var r=n(61),o=n(41),i="[object Arguments]";e.exports=function(e){return o(e)&&r(e)==i}},function(e,t,n){var r=n(78),o=Object.prototype,i=o.hasOwnProperty,a=o.toString,s=r?r.toStringTag:void 0;e.exports=function(e){var t=i.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(e){}var o=a.call(e);return r&&(t?e[s]=n:delete e[s]),o}},function(e,t){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},function(e,t,n){var r=n(411),o=Math.max;e.exports=function(e,t,n){return t=o(void 0===t?e.length-1:t,0),function(){for(var i=arguments,a=-1,s=o(i.length-t,0),u=Array(s);++a<s;)u[a]=i[t+a];a=-1;for(var l=Array(t+1);++a<t;)l[a]=i[a];return l[t]=n(u),r(e,this,l)}}},function(e,t){e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},function(e,t,n){var r=n(413),o=n(420)(r);e.exports=o},function(e,t,n){var r=n(414),o=n(227),i=n(419),a=o?function(e,t){return o(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:i;e.exports=a},function(e,t){e.exports=function(e){return function(){return e}}},function(e,t,n){var r=n(228),o=n(416),i=n(77),a=n(229),s=/^\[object .+?Constructor\]$/,u=Function.prototype,l=Object.prototype,c=u.toString,f=l.hasOwnProperty,d=RegExp("^"+c.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!i(e)||o(e))&&(r(e)?d:s).test(a(e))}},function(e,t,n){var r=n(417),o=function(){var e=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=function(e){return!!o&&o in e}},function(e,t,n){var r=n(32)["__core-js_shared__"];e.exports=r},function(e,t){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t){e.exports=function(e){return e}},function(e,t){var n=800,r=16,o=Date.now;e.exports=function(e){var t=0,i=0;return function(){var a=o(),s=r-(a-i);if(i=a,s>0){if(++t>=n)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}},function(e,t,n){var r=n(231),o=r&&new r;e.exports=o},function(e,t){e.exports=function(){}},function(e,t){e.exports={}},function(e,t,n){var r=n(136),o=n(230),i=n(232),a=n(425);e.exports=function(e){var t=i(e),n=a[t];if("function"!=typeof n||!(t in r.prototype))return!1;if(e===n)return!0;var s=o(n);return!!s&&e===s[0]}},function(e,t,n){var r=n(136),o=n(131),i=n(133),a=n(33),s=n(41),u=n(426),l=Object.prototype.hasOwnProperty;function c(e){if(s(e)&&!a(e)&&!(e instanceof r)){if(e instanceof o)return e;if(l.call(e,"__wrapped__"))return u(e)}return new o(e)}c.prototype=i.prototype,c.prototype.constructor=c,e.exports=c},function(e,t,n){var r=n(136),o=n(131),i=n(233);e.exports=function(e){if(e instanceof r)return e.clone();var t=new o(e.__wrapped__,e.__chain__);return t.__actions__=i(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}},function(e,t,n){"use strict";var r=n(428);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,a){if(a!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Collapsible=t.CollapsibleStateless=t.StyledIconsButton=t.StyledContainerTopLevel=t.StyledContainer=void 0;var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t.wrapInHeading=m;var o=d(n(2)),i=d(n(0)),a=d(n(1)),s=d(n(92)),u=n(3),l=n(7),c=n(250),f=d(n(253));function d(e){return e&&e.__esModule?e:{default:e}}const p=a.default.div.withConfig({displayName:"Collapsible__Content",componentId:"sc-13a0b13-0"})(["padding:0 16px;margin-bottom:16px;"]),h=t.StyledContainer=a.default.div.withConfig({displayName:"Collapsible__StyledContainer",componentId:"sc-13a0b13-1"})(["background-color:",";"],u.colors.$color_white),g=t.StyledContainerTopLevel=(0,a.default)(h).withConfig({displayName:"Collapsible__StyledContainerTopLevel",componentId:"sc-13a0b13-2"})(["border-top:1px solid ",";border-bottom:1px solid ",";margin-top:-1px;"],u.colors.$color_border_gutenberg,u.colors.$color_border_gutenberg),y=t.StyledIconsButton=(0,a.default)(f.default).withConfig({displayName:"Collapsible__StyledIconsButton",componentId:"sc-13a0b13-3"})(["width:100%;background-color:",";padding:16px;justify-content:flex-start;border-color:transparent;border:none;border-radius:0;box-shadow:none;font-weight:normal;:focus{outline:1px solid ",";outline-offset:-1px;}:active{box-shadow:none;background-color:",";}svg{"," &:first-child{",";}&:last-child{",";}}"],u.colors.$color_white,u.colors.$color_blue,u.colors.$color_white,e=>e.hasSubTitle?"align-self: flex-start;":"",(0,l.getDirectionalStyle)("margin-right: 8px","margin-left: 8px"),(0,l.getDirectionalStyle)("margin-left: 8px","margin-right: 8px"));function m(e,t){const n=`h${t.level}`,r=(0,a.default)(n).withConfig({displayName:"Collapsible__StyledHeadingLevel",componentId:"sc-13a0b13-4"})(["margin:0 !important;padding:0 !important;font-size:"," !important;font-weight:"," !important;"],t.fontSize,t.fontWeight);return function(t){return i.default.createElement(r,null,i.default.createElement(e,t))}}const v=m(y,{level:2,fontSize:"1rem",fontWeight:"normal"}),b=t.CollapsibleStateless=(e=>{let t=null;e.isOpen&&(t=e.hasPadding?i.default.createElement(p,null,e.children):e.children);const n=e.hasSeparator?g:h;return i.default.createElement(n,{className:e.className},i.default.createElement(e.Heading,{id:e.id,"aria-expanded":e.isOpen,onClick:e.onToggle,prefixIcon:e.isOpen?e.prefixIcon:e.prefixIconCollapsed,suffixIcon:e.isOpen?e.suffixIcon:e.suffixIconCollapsed,hasSubTitle:!!e.subTitle},i.default.createElement(c.SectionTitle,{title:e.title,titleScreenReaderText:e.titleScreenReaderText,subTitle:e.subTitle})),t)});b.propTypes={children:o.default.oneOfType([o.default.arrayOf(o.default.node),o.default.node]),className:o.default.string,Heading:o.default.func,isOpen:o.default.bool.isRequired,hasSeparator:o.default.bool,hasPadding:o.default.bool,initialIsOpen:o.default.bool,onToggle:o.default.func.isRequired,prefixIcon:o.default.shape({icon:o.default.string,color:o.default.string,size:o.default.string}),prefixIconCollapsed:o.default.shape({icon:o.default.string,color:o.default.string,size:o.default.string}),subTitle:o.default.string,suffixIcon:o.default.shape({icon:o.default.string,color:o.default.string,size:o.default.string}),suffixIconCollapsed:o.default.shape({icon:o.default.string,color:o.default.string,size:o.default.string}),title:o.default.string.isRequired,titleScreenReaderText:o.default.string,id:o.default.string},b.defaultProps={Heading:v,id:null,children:null,className:null,subTitle:null,titleScreenReaderText:null,hasSeparator:!1,hasPadding:!1,initialIsOpen:!1,prefixIcon:null,prefixIconCollapsed:null,suffixIcon:null,suffixIconCollapsed:null,headingProps:null};class _ extends i.default.Component{constructor(e){super(e),this.state={isOpen:e.initialIsOpen},this.Heading=_.getHeading(e),this.toggleCollapse=this.toggleCollapse.bind(this)}componentWillReceiveProps(e){const t=this.props.headingProps.level;e.headingProps.level!==t&&(this.Heading=_.getHeading(e))}toggleCollapse(){const e=this.state.isOpen;this.setState({isOpen:!e})}static getHeading(e){return m(y,e.headingProps)}render(){const e=this.state.isOpen,t=this.props.children,n=(0,s.default)(this.props,["children"]);return i.default.createElement(b,r({Heading:this.Heading,isOpen:e,onToggle:this.toggleCollapse},n),e&&t)}}t.Collapsible=_,_.propTypes={children:o.default.oneOfType([o.default.arrayOf(o.default.node),o.default.node]),className:o.default.string,initialIsOpen:o.default.bool,hasSeparator:o.default.bool,hasPadding:o.default.bool,prefixIcon:o.default.shape({icon:o.default.string,color:o.default.string,size:o.default.string}),prefixIconCollapsed:o.default.shape({icon:o.default.string,color:o.default.string,size:o.default.string}),suffixIcon:o.default.shape({icon:o.default.string,color:o.default.string,size:o.default.string}),suffixIconCollapsed:o.default.shape({icon:o.default.string,color:o.default.string,size:o.default.string}),title:o.default.string.isRequired,titleScreenReaderText:o.default.string,subTitle:o.default.string,headingProps:o.default.shape({level:o.default.number,fontSize:o.default.string,fontWeight:o.default.string})},_.defaultProps={hasSeparator:!1,hasPadding:!1,initialIsOpen:!1,subTitle:null,titleScreenReaderText:null,children:null,className:null,prefixIcon:null,prefixIconCollapsed:null,suffixIcon:{icon:"chevron-up",color:u.colors.$black,size:"24px"},suffixIconCollapsed:{icon:"chevron-down",color:u.colors.$black,size:"24px"},headingProps:{level:2,fontSize:"1rem",fontWeight:"normal"}},t.default=_},function(e,t,n){var r=n(431),o=n(454),i=n(237),a=n(455),s=n(461),u=n(464),l=n(233),c=n(465),f=n(467),d=n(468),p=n(248),h=n(98),g=n(472),y=n(473),m=n(479),v=n(33),b=n(139),_=n(480),x=n(77),w=n(482),S=n(138),C=1,k=2,O=4,E="[object Arguments]",T="[object Function]",M="[object GeneratorFunction]",P="[object Object]",j={};j[E]=j["[object Array]"]=j["[object ArrayBuffer]"]=j["[object DataView]"]=j["[object Boolean]"]=j["[object Date]"]=j["[object Float32Array]"]=j["[object Float64Array]"]=j["[object Int8Array]"]=j["[object Int16Array]"]=j["[object Int32Array]"]=j["[object Map]"]=j["[object Number]"]=j[P]=j["[object RegExp]"]=j["[object Set]"]=j["[object String]"]=j["[object Symbol]"]=j["[object Uint8Array]"]=j["[object Uint8ClampedArray]"]=j["[object Uint16Array]"]=j["[object Uint32Array]"]=!0,j["[object Error]"]=j[T]=j["[object WeakMap]"]=!1,e.exports=function e(t,n,A,I,R,D){var N,B=n&C,L=n&k,F=n&O;if(A&&(N=R?A(t,I,R,D):A(t)),void 0!==N)return N;if(!x(t))return t;var z=v(t);if(z){if(N=g(t),!B)return l(t,N)}else{var q=h(t),K=q==T||q==M;if(b(t))return u(t,B);if(q==P||q==E||K&&!R){if(N=L||K?{}:m(t),!B)return L?f(t,s(N,t)):c(t,a(N,t))}else{if(!j[q])return R?t:{};N=y(t,q,B)}}D||(D=new r);var W=D.get(t);if(W)return W;if(D.set(t,N),w(t))return t.forEach(function(r){N.add(e(r,n,A,r,t,D))}),N;if(_(t))return t.forEach(function(r,o){N.set(o,e(r,n,A,o,t,D))}),N;var U=F?L?p:d:L?keysIn:S,$=z?void 0:U(t);return o($||t,function(r,o){$&&(r=t[o=r]),i(N,o,e(r,n,A,o,t,D))}),N}},function(e,t,n){var r=n(93),o=n(437),i=n(438),a=n(439),s=n(440),u=n(441);function l(e){var t=this.__data__=new r(e);this.size=t.size}l.prototype.clear=o,l.prototype.delete=i,l.prototype.get=a,l.prototype.has=s,l.prototype.set=u,e.exports=l},function(e,t){e.exports=function(){this.__data__=[],this.size=0}},function(e,t,n){var r=n(94),o=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0||(n==t.length-1?t.pop():o.call(t,n,1),--this.size,0))}},function(e,t,n){var r=n(94);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},function(e,t,n){var r=n(94);e.exports=function(e){return r(this.__data__,e)>-1}},function(e,t,n){var r=n(94);e.exports=function(e,t){var n=this.__data__,o=r(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}},function(e,t,n){var r=n(93);e.exports=function(){this.__data__=new r,this.size=0}},function(e,t){e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},function(e,t){e.exports=function(e){return this.__data__.get(e)}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t,n){var r=n(93),o=n(137),i=n(236),a=200;e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var s=n.__data__;if(!o||s.length<a-1)return s.push([e,t]),this.size=++n.size,this;n=this.__data__=new i(s)}return n.set(e,t),this.size=n.size,this}},function(e,t,n){var r=n(443),o=n(93),i=n(137);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(i||o),string:new r}}},function(e,t,n){var r=n(444),o=n(445),i=n(446),a=n(447),s=n(448);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},function(e,t,n){var r=n(95);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},function(e,t){e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},function(e,t,n){var r=n(95),o="__lodash_hash_undefined__",i=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return n===o?void 0:n}return i.call(t,e)?t[e]:void 0}},function(e,t,n){var r=n(95),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:o.call(t,e)}},function(e,t,n){var r=n(95),o="__lodash_hash_undefined__";e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?o:t,this}},function(e,t,n){var r=n(96);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},function(e,t){e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},function(e,t,n){var r=n(96);e.exports=function(e){return r(this,e).get(e)}},function(e,t,n){var r=n(96);e.exports=function(e){return r(this,e).has(e)}},function(e,t,n){var r=n(96);e.exports=function(e,t){var n=r(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}},function(e,t,n){var r=n(79),o=n(138);e.exports=function(e,t){return e&&r(t,o(t),e)}},function(e,t){e.exports=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}},function(e,t){e.exports=function(){return!1}},function(e,t){var n=9007199254740991,r=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var o=typeof e;return!!(t=null==t?n:t)&&("number"==o||"symbol"!=o&&r.test(e))&&e>-1&&e%1==0&&e<t}},function(e,t,n){var r=n(61),o=n(241),i=n(41),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,e.exports=function(e){return i(e)&&o(e.length)&&!!a[r(e)]}},function(e,t,n){var r=n(243)(Object.keys,Object);e.exports=r},function(e,t,n){var r=n(79),o=n(244);e.exports=function(e,t){return e&&r(t,o(t),e)}},function(e,t,n){var r=n(77),o=n(97),i=n(463),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return i(e);var t=o(e),n=[];for(var s in e)("constructor"!=s||!t&&a.call(e,s))&&n.push(s);return n}},function(e,t){e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},function(e,t,n){(function(e){var r=n(32),o="object"==typeof t&&t&&!t.nodeType&&t,i=o&&"object"==typeof e&&e&&!e.nodeType&&e,a=i&&i.exports===o?r.Buffer:void 0,s=a?a.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=s?s(n):new e.constructor(n);return e.copy(r),r}}).call(this,n(34)(e))},function(e,t,n){var r=n(79),o=n(143);e.exports=function(e,t){return r(e,o(e),t)}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,i=[];++n<r;){var a=e[n];t(a,n,e)&&(i[o++]=a)}return i}},function(e,t,n){var r=n(79),o=n(246);e.exports=function(e,t){return r(e,o(e),t)}},function(e,t,n){var r=n(247),o=n(143),i=n(138);e.exports=function(e){return r(e,i,o)}},function(e,t,n){var r=n(50)(n(32),"DataView");e.exports=r},function(e,t,n){var r=n(50)(n(32),"Promise");e.exports=r},function(e,t,n){var r=n(50)(n(32),"Set");e.exports=r},function(e,t){var n=Object.prototype.hasOwnProperty;e.exports=function(e){var t=e.length,r=new e.constructor(t);return t&&"string"==typeof e[0]&&n.call(e,"index")&&(r.index=e.index,r.input=e.input),r}},function(e,t,n){var r=n(145),o=n(475),i=n(476),a=n(477),s=n(478),u="[object Boolean]",l="[object Date]",c="[object Map]",f="[object Number]",d="[object RegExp]",p="[object Set]",h="[object String]",g="[object Symbol]",y="[object ArrayBuffer]",m="[object DataView]",v="[object Float32Array]",b="[object Float64Array]",_="[object Int8Array]",x="[object Int16Array]",w="[object Int32Array]",S="[object Uint8Array]",C="[object Uint8ClampedArray]",k="[object Uint16Array]",O="[object Uint32Array]";e.exports=function(e,t,n){var E=e.constructor;switch(t){case y:return r(e);case u:case l:return new E(+e);case m:return o(e,n);case v:case b:case _:case x:case w:case S:case C:case k:case O:return s(e,n);case c:return new E;case f:case h:return new E(e);case d:return i(e);case p:return new E;case g:return a(e)}}},function(e,t,n){var r=n(32).Uint8Array;e.exports=r},function(e,t,n){var r=n(145);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},function(e,t){var n=/\w*$/;e.exports=function(e){var t=new e.constructor(e.source,n.exec(e));return t.lastIndex=e.lastIndex,t}},function(e,t,n){var r=n(78),o=r?r.prototype:void 0,i=o?o.valueOf:void 0;e.exports=function(e){return i?Object(i.call(e)):{}}},function(e,t,n){var r=n(145);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},function(e,t,n){var r=n(132),o=n(144),i=n(97);e.exports=function(e){return"function"!=typeof e.constructor||i(e)?{}:r(o(e))}},function(e,t,n){var r=n(481),o=n(140),i=n(141),a=i&&i.isMap,s=a?o(a):r;e.exports=s},function(e,t,n){var r=n(98),o=n(41),i="[object Map]";e.exports=function(e){return o(e)&&r(e)==i}},function(e,t,n){var r=n(483),o=n(140),i=n(141),a=i&&i.isSet,s=a?o(a):r;e.exports=s},function(e,t,n){var r=n(98),o=n(41),i="[object Set]";e.exports=function(e){return o(e)&&r(e)==i}},function(e,t,n){var r=n(146),o=n(491),i=n(492),a=n(249);e.exports=function(e,t){return t=r(t,e),null==(e=i(e,t))||delete e[a(o(t))]}},function(e,t,n){var r=n(33),o=n(147),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!o(e))||a.test(e)||!i.test(e)||null!=t&&e in Object(t)}},function(e,t,n){var r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,i=n(487)(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(r,function(e,n,r,i){t.push(r?i.replace(o,"$1"):n||e)}),t});e.exports=i},function(e,t,n){var r=n(488),o=500;e.exports=function(e){var t=r(e,function(e){return n.size===o&&n.clear(),e}),n=t.cache;return t}},function(e,t,n){var r=n(236),o="Expected a function";function i(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(o);var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var a=e.apply(this,r);return n.cache=i.set(o,a)||i,a};return n.cache=new(i.Cache||r),n}i.Cache=r,e.exports=i},function(e,t,n){var r=n(490);e.exports=function(e){return null==e?"":r(e)}},function(e,t,n){var r=n(78),o=n(234),i=n(33),a=n(147),s=1/0,u=r?r.prototype:void 0,l=u?u.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(i(t))return o(t,e)+"";if(a(t))return l?l.call(t):"";var n=t+"";return"0"==n&&1/t==-s?"-0":n}},function(e,t){e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},function(e,t,n){var r=n(493),o=n(494);e.exports=function(e,t){return t.length<2?e:r(e,o(t,0,-1))}},function(e,t,n){var r=n(146),o=n(249);e.exports=function(e,t){for(var n=0,i=(t=r(t,e)).length;null!=e&&n<i;)e=e[o(t[n++])];return n&&n==i?e:void 0}},function(e,t){e.exports=function(e,t,n){var r=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var i=Array(o);++r<o;)i[r]=e[r+t];return i}},function(e,t,n){var r=n(496);e.exports=function(e){return r(e)?void 0:e}},function(e,t,n){var r=n(61),o=n(144),i=n(41),a="[object Object]",s=Function.prototype,u=Object.prototype,l=s.toString,c=u.hasOwnProperty,f=l.call(Object);e.exports=function(e){if(!i(e)||r(e)!=a)return!1;var t=o(e);if(null===t)return!0;var n=c.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&l.call(n)==f}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=f(n(2)),o=f(n(0)),i=f(n(1)),a=n(10),s=n(7),u=n(3),l=f(n(60)),c=f(n(39));function f(e){return e&&e.__esModule?e:{default:e}}const d=i.default.div.withConfig({displayName:"Alert__AlertContainer",componentId:"sc-6o5k96-0"})(["display:flex;align-items:flex-start;font-size:14px;line-height:1.5;border:1px solid rgba(0,0,0,0.2);padding:16px;color:",";background:",";margin-bottom:20px;"],e=>e.alertColor,e=>e.alertBackground),p=i.default.div.withConfig({displayName:"Alert__AlertContent",componentId:"sc-6o5k96-1"})(["flex-grow:1;a{color:",";}"],u.colors.$color_alert_link_text),h=(0,i.default)(c.default).withConfig({displayName:"Alert__AlertIcon",componentId:"sc-6o5k96-2"})(["margin-top:0.125rem;",";"],(0,s.getDirectionalStyle)("margin-right: 8px","margin-left: 8px")),g=(0,i.default)(l.default).withConfig({displayName:"Alert__AlertDismiss",componentId:"sc-6o5k96-3"})(["",";font-size:24px;line-height:1.4;color:",";flex-shrink:0;min-width:36px;height:36px;padding:0;&,&:hover,&:active{border:2px solid transparent;background:transparent;box-shadow:none;color:",";}&:focus{background:transparent;color:",";border-color:",";box-shadow:0px 0px 0px 3px ",";}"],(0,s.getDirectionalStyle)("margin: -8px -12px -8px 8px","margin: -8px 8px -12px -8px"),e=>e.alertDismissColor,e=>e.alertDismissColor,e=>e.alertDismissColor,u.colors.$color_yoast_focus,u.colors.$color_yoast_focus_outer);class y extends o.default.Component{getTypeDisplayOptions(e){switch(e){case"error":return{color:u.colors.$color_alert_error_text,background:u.colors.$color_alert_error_background,icon:"alert-error"};case"info":return{color:u.colors.$color_alert_info_text,background:u.colors.$color_alert_info_background,icon:"alert-info"};case"success":return{color:u.colors.$color_alert_success_text,background:u.colors.$color_alert_success_background,icon:"alert-success"};case"warning":return{color:u.colors.$color_alert_warning_text,background:u.colors.$color_alert_warning_background,icon:"alert-warning"}}}render(){const e=this.getTypeDisplayOptions(this.props.type),t=this.props.dismissAriaLabel||(0,a.__)("Dismiss this alert","yoast-components");return o.default.createElement(d,{alertColor:e.color,alertBackground:e.background,className:this.props.className},o.default.createElement(h,{icon:e.icon,color:e.color}),o.default.createElement(p,null,this.props.children),"function"==typeof this.props.onDismissed?o.default.createElement(g,{alertDismissColor:e.color,onClick:this.props.onDismissed,"aria-label":t},"×"):null)}}y.propTypes={children:r.default.any.isRequired,type:r.default.oneOf(["error","info","success","warning"]).isRequired,onDismissed:r.default.func,dismissAriaLabel:r.default.string,className:r.default.string},y.defaultProps={onDismissed:null,dismissAriaLabel:"",className:""},t.default=y},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=s(n(0)),o=s(n(2)),i=s(n(1)),a=n(7);function s(e){return e&&e.__esModule?e:{default:e}}const u=i.default.div.withConfig({displayName:"ArticleList__ArticleListContainer",componentId:"w5i6df-0"})(["box-sizing:border-box;p{margin:0;font-size:14px;}"]),l=i.default.h3.withConfig({displayName:"ArticleList__ArticleListHeader",componentId:"w5i6df-1"})(["margin:8px 0;font-size:1em;"]),c=i.default.ul.withConfig({displayName:"ArticleList__FeedList",componentId:"w5i6df-2"})(["margin:0;list-style:none;padding:0;"]),f=(0,a.makeOutboundLink)(i.default.a.withConfig({displayName:"ArticleList__ArticleListLink",componentId:"w5i6df-3"})(["display:inline-block;margin-bottom:4px;font-size:14px;"])),d=i.default.li.withConfig({displayName:"ArticleList__ArticleListItemContainer",componentId:"w5i6df-4"})(["margin:8px 0;"]),p=i.default.div.withConfig({displayName:"ArticleList__ArticleListFooter",componentId:"w5i6df-5"})(["a{margin:8px 0 0;}"]),h=e=>r.default.createElement(d,{className:e.className},r.default.createElement(f,{className:`${e.className}-link`,href:e.link},e.title),r.default.createElement("p",{className:`${e.className}-description`},e.description));h.propTypes={className:o.default.string.isRequired,title:o.default.string.isRequired,link:o.default.string.isRequired,description:o.default.string.isRequired};const g=e=>r.default.createElement(u,{className:e.className},r.default.createElement(l,{className:`${e.className}__header`},e.title?e.title:e.feed.title),r.default.createElement(c,{className:`${e.className}__posts`,role:"list"},e.feed.items.map(t=>r.default.createElement(h,{className:`${e.className}__post`,key:t.link,title:t.title,link:t.link,description:t.description}))),e.footerLinkText&&r.default.createElement(p,{className:`${e.className}__footer`},r.default.createElement(f,{className:`${e.className}__footer-link`,href:e.feedLink?e.feedLink:e.feed.link},e.footerLinkText)));g.propTypes={className:o.default.string,feed:o.default.object.isRequired,title:o.default.string,footerLinkText:o.default.string,feedLink:o.default.string},g.defaultProps={className:"articlelist-feed"},t.default=g},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FullHeightCard=void 0;var r=n(0),o=c(r),i=c(n(2)),a=c(n(1)),s=n(3),u=n(7),l=c(n(254));function c(e){return e&&e.__esModule?e:{default:e}}const f=a.default.div.withConfig({displayName:"Card__Container",componentId:"ha1cvx-0"})(["position:relative;display:flex;flex-direction:column;background-color:",";width:100%;box-shadow:0 2px 4px 0 rgba(0,0,0,0.2);"],s.colors.$color_white),d=a.default.img.withConfig({displayName:"Card__HeaderImage",componentId:"ha1cvx-1"})(["width:100%;vertical-align:bottom;"]),p=a.default.div.withConfig({displayName:"Card__Content",componentId:"ha1cvx-2"})(["padding:12px 16px;display:flex;flex-direction:column;flex-grow:1;"]),h=a.default.a.withConfig({displayName:"Card__HeaderLink",componentId:"ha1cvx-3"})(["text-decoration:none;color:",";overflow:hidden;&:hover,&:focus,&:active{text-decoration:underline;color:",";}&:focus,&:active{box-shadow:none;}"],s.colors.$color_pink_dark,s.colors.$color_pink_dark),g=a.default.h2.withConfig({displayName:"Card__HeaderTitle",componentId:"ha1cvx-4"})(["margin:16px 16px 0 16px;font-weight:400;font-size:1.5em;line-height:1.2;color:currentColor;"]),y=(0,u.makeOutboundLink)(h);class m extends o.default.Component{getHeader(){return this.props.header?this.props.header.link?o.default.createElement(y,{href:this.props.header.link},o.default.createElement(d,{src:this.props.header.image,alt:""}),o.default.createElement(g,null,this.props.header.title)):o.default.createElement(r.Fragment,null,o.default.createElement(d,{src:this.props.header.image,alt:""}),";",o.default.createElement(g,null,this.props.header.title)):null}getBanner(){return this.props.banner?o.default.createElement(l.default,this.props.banner,this.props.banner.text):null}render(){return o.default.createElement(f,{className:this.props.className,id:this.props.id},this.getHeader(),this.getBanner(),o.default.createElement(p,null,this.props.children))}}t.default=m;t.FullHeightCard=(0,a.default)(m).withConfig({displayName:"Card__FullHeightCard",componentId:"ha1cvx-5"})(["height:100%;"]);m.propTypes={className:i.default.string,id:i.default.string,header:i.default.shape({title:i.default.string,image:i.default.string.isRequired,link:i.default.string}),banner:i.default.shape({text:i.default.string.isRequired,textColor:i.default.string,backgroundColor:i.default.string}),children:i.default.any},m.defaultProps={className:"",id:"",header:null,banner:null,children:null}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),o=l(r),i=l(n(2)),a=l(n(1)),s=n(3),u=n(7);function l(e){return e&&e.__esModule?e:{default:e}}const c=a.default.a.withConfig({displayName:"CourseDetails__CardRegularButton",componentId:"sc-9ma0lz-0"})(["color:",";white-space:nowrap;display:block;border-radius:4px;background-color:",";padding:12px 16px;box-shadow:inset 0 -4px 0 rgba(0,0,0,0.2);border:none;text-decoration:none;font-weight:bold;font-size:inherit;margin-bottom:8px;&:hover,&:focus,&:active{color:",";background-color:",";}&:active{background-color:",";transform:translateY( 1px );box-shadow:none;filter:none;}"],s.colors.$color_black,s.colors.$color_grey_cta,s.colors.$color_black,s.colors.$color_grey_hover,s.colors.$color_grey_hover),f=a.default.a.withConfig({displayName:"CourseDetails__CardUpsellButton",componentId:"sc-9ma0lz-1"})(["cursor:pointer;color:",";white-space:nowrap;display:block;border-radius:4px;background-color:",";padding:12px 16px;box-shadow:inset 0 -4px 0 rgba(0,0,0,0.2);border:none;text-decoration:none;font-weight:bold;font-size:inherit;margin-top:0;margin-bottom:8px;&:hover,&:focus,&:active{color:",";background:",";}&:active{background-color:",";transform:translateY( 1px );box-shadow:none;filter:none;}"],s.colors.$color_black,s.colors.$color_button_upsell,s.colors.$color_black,s.colors.$color_button_upsell_hover,s.colors.$color_button_hover_upsell),d=a.default.a.withConfig({displayName:"CourseDetails__CardInfoLink",componentId:"sc-9ma0lz-2"})(["font-weight:bold;"]),p=(0,u.makeOutboundLink)(d),h=a.default.div.withConfig({displayName:"CourseDetails__ActionBlock",componentId:"sc-9ma0lz-3"})(["text-align:center;"]),g=a.default.div.withConfig({displayName:"CourseDetails__CourseFeatureList",componentId:"sc-9ma0lz-4"})(["ul{list-style-type:none;margin:0;padding:0;}li{position:relative;",':16px;&:before{content:"✓";color:',";position:absolute;font-weight:bold;display:inline-block;",":-16px;}}"],(0,u.getDirectionalStyle)("margin-left","margin-right"),s.colors.$color_green,(0,u.getDirectionalStyle)("left","right")),y=a.default.div.withConfig({displayName:"CourseDetails__Details",componentId:"sc-9ma0lz-5"})(["margin-bottom:12px;border-bottom:1px "," solid;flex-grow:1;"],s.colors.$color_grey);class m extends o.default.Component{getActionBlock(e,t){const n=(0,u.makeOutboundLink)(e);return"true"===t?o.default.createElement(h,null,o.default.createElement(n,{href:this.props.courseUrl},this.props.ctaButtonData.ctaButtonCopy)):o.default.createElement(h,null,o.default.createElement(n,{href:this.props.ctaButtonData.ctaButtonUrl},this.props.ctaButtonData.ctaButtonCopy),o.default.createElement(p,{href:this.props.courseUrl},this.props.readMoreLinkText))}render(){const e="regular"===this.props.ctaButtonData.ctaButtonType?c:f;return o.default.createElement(r.Fragment,null,o.default.createElement(y,null,o.default.createElement(g,{dangerouslySetInnerHTML:{__html:this.props.description}})),this.getActionBlock(e,this.props.isBundle))}}t.default=m,m.propTypes={description:i.default.string,courseUrl:i.default.string,ctaButtonData:i.default.object,readMoreLinkText:i.default.string,isBundle:i.default.string},m.defaultProps={description:"",courseUrl:"",ctaButtonData:{},readMoreLinkText:"",isBundle:""}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=f(n(0)),o=f(n(1)),i=f(n(2)),a=f(n(224)),s=f(n(92)),u=n(3),l=n(8),c=n(60);function f(e){return e&&e.__esModule?e:{default:e}}const d=(0,a.default)([c.addActiveStyle,c.addFocusStyle,c.addHoverStyle])(o.default.button.withConfig({displayName:"IconLabeledButton__IconLabelledBaseButton",componentId:"sc-1esdi7s-0"})(["display:inline-flex;flex-direction:column;justify-content:center;align-items:center;cursor:pointer;box-sizing:border-box;border:1px solid transparent;margin:0;padding:8px;overflow:visible;font-family:inherit;font-weight:inherit;color:",";background:",";font-size:",";svg{margin:0 0 8px;flex-shrink:0;fill:currentColor;align-self:center;}&:active{box-shadow:none;}"],e=>e.textColor,e=>e.backgroundColor,e=>e.textFontSize)),p=e=>{const t=e.children,n=e.icon,o=e.textColor,i=(0,s.default)(e,"icon");return r.default.createElement(d,i,r.default.createElement(l.SvgIcon,{icon:n,color:o}),t)};p.propTypes={type:i.default.string,icon:i.default.string.isRequired,textColor:i.default.string,textFontSize:i.default.string,backgroundColor:i.default.string,borderColor:i.default.string,hoverColor:i.default.string,hoverBackgroundColor:i.default.string,hoverBorderColor:i.default.string,activeColor:i.default.string,activeBackgroundColor:i.default.string,activeBorderColor:i.default.string,focusColor:i.default.string,focusBackgroundColor:i.default.string,focusBorderColor:i.default.string,children:i.default.oneOfType([i.default.arrayOf(i.default.node),i.default.node,i.default.string]).isRequired},p.defaultProps={type:"button",textColor:u.colors.$color_blue,textFontSize:"inherit",backgroundColor:"transparent",borderColor:"transparent",hoverColor:u.colors.$color_white,hoverBackgroundColor:u.colors.$color_blue,hoverBorderColor:null,activeColor:u.colors.$color_white,activeBackgroundColor:u.colors.$color_blue,activeBorderColor:null,focusColor:u.colors.$color_white,focusBackgroundColor:u.colors.$color_blue,focusBorderColor:u.colors.$color_blue},t.default=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=c(n(0)),o=c(n(2)),i=c(n(1)),a=c(n(92)),s=n(7),u=c(n(60)),l=n(8);function c(e){return e&&e.__esModule?e:{default:e}}const f=e=>{const t=e.children,n=e.icon,o=e.iconColor;let c=l.SvgIcon;t&&(c=function(e){return(0,i.default)(e).withConfig({displayName:"IconButton",componentId:"sc-1sqtgwg-0"})(["margin:",";flex-shrink:0;"],(0,s.getDirectionalStyle)("0 8px 0 0","0 0 0 8px"))}(c));const f=(0,a.default)(e,"icon");return r.default.createElement(u.default,f,r.default.createElement(c,{icon:n,color:o}),t)};f.propTypes={icon:o.default.string.isRequired,iconColor:o.default.string,children:o.default.oneOfType([o.default.arrayOf(o.default.node),o.default.node,o.default.string])},f.defaultProps={iconColor:"#000"},t.default=f},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=l(n(0)),o=l(n(2)),i=l(n(1)),a=n(10),s=n(148),u=n(3);function l(e){return e&&e.__esModule?e:{default:e}}const c=i.default.p.withConfig({displayName:"ErrorBoundary__ErrorContainer",componentId:"kuut53-0"})(["text-align:center;margin:0 0 16px;padding:16px 16px 8px 16px;border-bottom:4px solid ",";background:",";"],u.colors.$color_bad,u.colors.$color_white);class f extends r.default.Component{constructor(e){super(e),this.state={hasError:!1}}componentDidCatch(){this.setState({hasError:!0})}render(){if(this.state.hasError){const e=(0,a.__)("Something went wrong. Please reload the page.","yoast-components");return(0,s.speak)(e,"assertive"),r.default.createElement(c,null,e)}return this.props.children}}t.default=f,f.propTypes={children:o.default.any}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default=function(e){e=e||"polite";var t=document.createElement("div");return t.id="a11y-speak-"+e,t.className="a11y-speak-region",t.setAttribute("style","position: absolute;margin: -1px;padding: 0;height: 1px;width: 1px;overflow: hidden;clip: rect(1px, 1px, 1px, 1px);-webkit-clip-path: inset(50%);clip-path: inset(50%);border: 0;word-wrap: normal !important;"),t.setAttribute("aria-live",e),t.setAttribute("aria-relevant","additions text"),t.setAttribute("aria-atomic","true"),document.querySelector("body").appendChild(t),t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default=function(){for(var e=document.querySelectorAll(".a11y-speak-region"),t=0;t<e.length;t++)e[t].textContent=""}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default=function(e){if("complete"===document.readyState||"interactive"===document.readyState)return e();document.addEventListener("DOMContentLoaded",e)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(508);var r="";t.default=function(e){return e=e.replace(/<[^<>]+>/g," "),r===e&&(e+=" "),r=e,e}},function(e,t,n){n(509)("replace",2,function(e,t,n){return[function(r,o){"use strict";var i=e(this),a=void 0==r?void 0:r[t];return void 0!==a?a.call(r,i,o):n.call(String(i),r,o)},n]})},function(e,t,n){"use strict";var r=n(255),o=n(516),i=n(151),a=n(518),s=n(519);e.exports=function(e,t,n){var u=s(e),l=n(a,u,""[e]),c=l[0],f=l[1];i(function(){var t={};return t[u]=function(){return 7},7!=""[e](t)})&&(o(String.prototype,e,c),r(RegExp.prototype,u,2==t?function(e,t){return f.call(e,this,t)}:function(e){return f.call(e,this)}))}},function(e,t,n){var r=n(511),o=n(512),i=n(514),a=Object.defineProperty;t.f=n(150)?Object.defineProperty:function(e,t,n){if(r(e),t=i(t,!0),r(n),o)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){var r=n(149);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){e.exports=!n(150)&&!n(151)(function(){return 7!=Object.defineProperty(n(513)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){var r=n(149),o=n(99).document,i=r(o)&&r(o.createElement);e.exports=function(e){return i?o.createElement(e):{}}},function(e,t,n){var r=n(149);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var r=n(99),o=n(255),i=n(517),a=n(256)("src"),s=Function.toString,u=(""+s).split("toString");n(257).inspectSource=function(e){return s.call(e)},(e.exports=function(e,t,n,s){var l="function"==typeof n;l&&(i(n,"name")||o(n,"name",t)),e[t]!==n&&(l&&(i(n,a)||o(n,a,e[t]?""+e[t]:u.join(String(t)))),e===r?e[t]=n:s?e[t]?e[t]=n:o(e,t,n):(delete e[t],o(e,t,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[a]||s.call(this)})},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){var r=n(520)("wks"),o=n(256),i=n(99).Symbol,a="function"==typeof i;(e.exports=function(e){return r[e]||(r[e]=a&&i[e]||(a?i:o)("Symbol."+e))}).store=r},function(e,t,n){var r=n(257),o=n(99),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(521)?"pure":"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports=!1},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.helpTextPropType=void 0;var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=n(0),i=l(o),a=l(n(2)),s=l(n(1)),u=n(3);function l(e){return e&&e.__esModule?e:{default:e}}const c=s.default.p.withConfig({displayName:"HelpText__YoastHelpText",componentId:"sc-1ci0249-0"})(["color:",";font-size:",";margin-top:0;"],e=>e.textColor,e=>e.textFontSize);class f extends o.PureComponent{render(){var e=this.props;const t=e.children,n=e.textColor,r=e.textFontSize;return i.default.createElement(c,{textColor:n,textFontSize:r},t)}}t.default=f;const d=t.helpTextPropType={children:a.default.oneOfType([a.default.string,a.default.array]),textColor:a.default.string,textFontSize:a.default.string};f.propTypes=r({},d,{children:d.children.isRequired}),f.defaultProps={textColor:u.colors.$color_help_text}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=u(n(0)),i=u(n(2)),a=u(n(1)),s=u(n(92));function u(e){return e&&e.__esModule?e:{default:e}}const l=e=>{const t=(0,a.default)(e.icon).withConfig({displayName:"Icon__IconComponent",componentId:"ddktqk-0"})(["width:",";height:",";"," flex:0 0 auto;"],e.width,e.height,e.color?`fill: ${e.color};`:""),n=(0,s.default)(e,["icon","width","height","color"]);return o.default.createElement(t,r({role:"img","aria-hidden":"true",focusable:"false"},n))};l.propTypes={icon:i.default.func.isRequired,width:i.default.string,height:i.default.string,color:i.default.string},l.defaultProps={width:"16px",height:"16px"},t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n(0)),o=u(n(1)),i=u(n(2)),a=n(3),s=u(n(39));function u(e){return e&&e.__esModule?e:{default:e}}const l=o.default.button.withConfig({displayName:"IconButtonToggle__IconButtonBase",componentId:"v67d93-0"})(["box-sizing:border-box;min-width:32px;display:inline-block;border:1px solid ",";background-color:",";box-shadow:",";border-radius:3px;cursor:pointer;padding:0;height:",";&:hover{border-color:",";}&:disabled{background-color:",";box-shadow:none;border:none;cursor:default;}"],a.colors.$color_button_border,e=>e.pressed?e.pressedBackground:e.unpressedBackground,e=>e.pressed?`inset 0 2px 0 ${(0,a.rgba)(e.pressedBoxShadowColor,.7)}`:`0 1px 0 ${(0,a.rgba)(e.unpressedBoxShadowColor,.7)}`,e=>e.pressed?"23px":"24px",e=>e.hoverBorderColor,e=>e.unpressedBackground),c=function(e){return"disabled"===e.marksButtonStatus},f=e=>r.default.createElement(l,{disabled:c(e),type:"button",onClick:e.onClick,pressed:e.pressed,unpressedBoxShadowColor:e.unpressedBoxShadowColor,pressedBoxShadowColor:e.pressedBoxShadowColor,pressedBackground:e.pressedBackground,unpressedBackground:e.unpressedBackground,id:e.id,"aria-label":e.ariaLabel,"aria-pressed":e.pressed,unpressedIconColor:c(e)?e.disabledIconColor:e.unpressedIconColor,pressedIconColor:e.pressedIconColor,hoverBorderColor:e.hoverBorderColor,className:e.className},c(e)&&r.default.createElement(s.default,{icon:e.icon,color:e.disabledIconColor,size:"18px"}),!e.pressed&&!c(e)&&r.default.createElement(s.default,{icon:e.icon,color:e.unpressedIconColor,size:"18px"}),e.pressed&&!c(e)&&r.default.createElement(s.default,{icon:e.icon,color:e.pressedIconColor,size:"18px"}));f.propTypes={id:i.default.string.isRequired,ariaLabel:i.default.string.isRequired,onClick:i.default.func.isRequired,boxShadowColor:i.default.string,unpressedBoxShadowColor:i.default.string,pressedBoxShadowColor:i.default.string,pressedBackground:i.default.string,unpressedBackground:i.default.string,pressedIconColor:i.default.string,unpressedIconColor:i.default.string,icon:i.default.string.isRequired,pressed:i.default.bool.isRequired,hoverBorderColor:i.default.string,marksButtonStatus:i.default.string,disabledIconColor:i.default.string,className:i.default.string},f.defaultProps={unpressedBoxShadowColor:a.colors.$color_button_border,pressedBoxShadowColor:a.colors.$color_purple,pressedBackground:a.colors.$color_pink_dark,unpressedBackground:a.colors.$color_button,pressedIconColor:a.colors.$color_white,unpressedIconColor:a.colors.$color_button_text,hoverBorderColor:a.colors.$color_white,marksButtonStatus:"enabled",disabledIconColor:a.colors.$color_grey},t.default=f},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=c(n(0)),o=c(n(2)),i=c(n(62)),a=n(10),s=n(530),u=c(n(261)),l=c(n(262));function c(e){return e&&e.__esModule?e:{default:e}}const f=({relevantWords:e,keywordLimit:t})=>{const n=r.default.createElement("p",null,(e=>(0,s.isFeatureEnabled)("improvedInternalLinking")?0===e.length?(0,a.__)("Once you add a bit more copy, we'll give you a list of words that occur the most in the content. These give an indication of what your content focuses on.","yoast-components"):(0,a.__)("The following words occur the most in the content. These give an indication of what your content focuses on. If the words differ a lot from your topic, you might want to rewrite your content accordingly. ","yoast-components"):0===e.length?(0,a.__)("Once you add a bit more copy, we'll give you a list of words and word combinations that occur the most in the content. These give an indication of what your content focuses on.","yoast-components"):(0,a.__)("The following words and word combinations occur the most in the content. These give an indication of what your content focuses on. If the words differ a lot from your topic, you might want to rewrite your content accordingly. ","yoast-components"))(e)),o=r.default.createElement("p",null,(()=>{const e=(0,a.sprintf)((0,a.__)("Read our %1$sultimate guide to keyword research%2$s to learn more about keyword research and keyword strategy.","yoast-components"),"{{a}}","{{/a}}");return(0,i.default)({mixedString:e,components:{a:r.default.createElement("a",{href:"https://yoa.st/keyword-research-metabox"})}})})());if((0,s.isFeatureEnabled)("improvedInternalLinking"))return r.default.createElement(l.default,{words:e,header:n,footer:o});const c=e.slice(0,t).map(e=>e.getCombination());return r.default.createElement(u.default,{title:(0,a.__)("Prominent words","yoast-components"),words:c,classNamePrefix:"yoast-keyword-suggestions",header:n,footer:o})};f.propTypes={relevantWords:o.default.arrayOf(o.default.object).isRequired,keywordLimit:o.default.number},f.defaultProps={keywordLimit:5},t.default=f},function(e,t,n){"use strict";var r=n(0),o="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,i=n(260),a=n(527),s=n(528),u=".",l=":",c="function"==typeof Symbol&&Symbol.iterator,f="@@iterator";function d(e,t){return e&&"object"==typeof e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,function(e){return t[e]})}(e.key):t.toString(36)}function p(e,t,n,r){var i,s=typeof e;if("undefined"!==s&&"boolean"!==s||(e=null),null===e||"string"===s||"number"===s||"object"===s&&e.$$typeof===o)return n(r,e,""===t?u+d(e,0):t),1;var h=0,g=""===t?u:t+l;if(Array.isArray(e))for(var y=0;y<e.length;y++)h+=p(i=e[y],g+d(i,y),n,r);else{var m=function(e){var t=e&&(c&&e[c]||e[f]);if("function"==typeof t)return t}(e);if(m){0;for(var v,b=m.call(e),_=0;!(v=b.next()).done;)h+=p(i=v.value,g+d(i,_++),n,r)}else if("object"===s){0;var x=""+e;a(!1,"Objects are not valid as a React child (found: %s).%s","[object Object]"===x?"object with keys {"+Object.keys(e).join(", ")+"}":x,"")}}return h}var h=/\/+/g;function g(e){return(""+e).replace(h,"$&/")}var y=m,m=function(e){if(this.instancePool.length){var t=this.instancePool.pop();return this.call(t,e),t}return new this(e)},v=function(e){a(e instanceof this,"Trying to release an instance into a pool of a different type."),e.destructor(),this.instancePool.length<this.poolSize&&this.instancePool.push(e)};function b(e,t,n,r){this.result=e,this.keyPrefix=t,this.func=n,this.context=r,this.count=0}function _(e,t,n){var o=e.result,a=e.keyPrefix,s=e.func,u=e.context,l=s.call(u,t,e.count++);Array.isArray(l)?x(l,o,n,i.thatReturnsArgument):null!=l&&(r.isValidElement(l)&&(l=function(e,t){return r.cloneElement(e,{key:t},void 0!==e.props?e.props.children:void 0)}(l,a+(!l.key||t&&t.key===l.key?"":g(l.key)+"/")+n)),o.push(l))}function x(e,t,n,r,o){var i="";null!=n&&(i=g(n)+"/");var a=b.getPooled(t,i,r,o);!function(e,t,n){null==e||p(e,"",t,n)}(e,_,a),b.release(a)}b.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},function(e,t){var n=e;n.instancePool=[],n.getPooled=t||y,n.poolSize||(n.poolSize=10),n.release=v}(b,function(e,t,n,r){if(this.instancePool.length){var o=this.instancePool.pop();return this.call(o,e,t,n,r),o}return new this(e,t,n,r)});e.exports=function(e){if("object"!=typeof e||!e||Array.isArray(e))return s(!1,"React.addons.createFragment only accepts a single object. Got: %s",e),e;if(r.isValidElement(e))return s(!1,"React.addons.createFragment does not accept a ReactElement without a wrapper object."),e;a(1!==e.nodeType,"React.addons.createFragment(...): Encountered an invalid child; DOM elements are not valid children of React components.");var t=[];for(var n in e)x(e[n],t,n,i.thatReturnsArgument);return t}},function(e,t,n){"use strict";var r=function(e){};e.exports=function(e,t,n,o,i,a,s,u){if(r(t),!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,o,i,a,s,u],f=0;(l=new Error(t.replace(/%s/g,function(){return c[f++]}))).name="Invariant Violation"}throw l.framesToPop=1,l}}},function(e,t,n){"use strict";var r=n(260);e.exports=r},function(e,t,n){"use strict";function r(e){return e.match(/^\{\{\//)?{type:"componentClose",value:e.replace(/\W/g,"")}:e.match(/\/\}\}$/)?{type:"componentSelfClosing",value:e.replace(/\W/g,"")}:e.match(/^\{\{/)?{type:"componentOpen",value:e.replace(/\W/g,"")}:{type:"string",value:e}}e.exports=function(e){return e.split(/(\{\{\/?\s*\w+\s*\/?\}\})/g).map(r)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.isFeatureEnabled=function(e){return!!self.wpseoFeatureFlags&&self.wpseoFeatureFlags.includes(e)},t.enableFeatures=function(e){self.wpseoFeatureFlags||(self.wpseoFeatureFlags=[]),e.forEach(function(e){self.wpseoFeatureFlags.includes(e)||self.wpseoFeatureFlags.push(e)})},t.enabledFeatures=function(){return self.wpseoFeatureFlags||[]}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.languageNoticePropType=void 0;var r=n(0),o=c(r),i=c(n(2)),a=c(n(1)),s=n(10),u=c(n(62)),l=n(7);function c(e){return e&&e.__esModule?e:{default:e}}const f=a.default.p.withConfig({displayName:"LanguageNotice__YoastLanguageNotice",componentId:"rqos7w-0"})(["margin:1em 0;"]),d=(0,l.makeOutboundLink)(a.default.a.withConfig({displayName:"LanguageNotice__ChangeLanguageLink",componentId:"rqos7w-1"})(["margin-left:4px;"]));class p extends r.PureComponent{render(){var e=this.props;const t=e.changeLanguageLink,n=e.canChangeLanguage,r=e.language;if(!e.showLanguageNotice)return null;let i=(0,s.__)("Your site language is set to %s. ","yoast-components");return n||(i=(0,s.__)("Your site language is set to %s. If this is not correct, contact your site administrator.","yoast-components")),i=(0,s.sprintf)(i,`{{strong}}${r}{{/strong}}`),i=(0,u.default)({mixedString:i,components:{strong:o.default.createElement("strong",null)}}),o.default.createElement(f,null,i,n&&o.default.createElement(d,{href:t},(0,s.__)("Change language","yoast-components")))}}t.default=p;const h=t.languageNoticePropType={changeLanguageLink:i.default.string.isRequired,canChangeLanguage:i.default.bool,language:i.default.string.isRequired,showLanguageNotice:i.default.bool};p.propTypes=h,p.defaultProps={canChangeLanguage:!1,showLanguageNotice:!1}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=s(n(0)),o=s(n(2)),i=n(1),a=s(i);function s(e){return e&&e.__esModule?e:{default:e}}const u=({className:e})=>(""!==e&&(e+=" "),e+="yoast-loader",r.default.createElement("svg",{version:"1.1",id:"Y__x2B__bg",x:"0px",y:"0px",viewBox:"0 0 500 500",className:e},r.default.createElement("g",null,r.default.createElement("g",null,r.default.createElement("linearGradient",{id:"SVGID_1_",gradientUnits:"userSpaceOnUse",x1:"250",y1:"428.6121",x2:"250",y2:"77.122"},r.default.createElement("stop",{offset:"0",style:{stopColor:"#570732"}}),r.default.createElement("stop",{offset:"2.377558e-02",style:{stopColor:"#5D0936"}}),r.default.createElement("stop",{offset:"0.1559",style:{stopColor:"#771549"}}),r.default.createElement("stop",{offset:"0.3019",style:{stopColor:"#8B1D58"}}),r.default.createElement("stop",{offset:"0.4669",style:{stopColor:"#992362"}}),r.default.createElement("stop",{offset:"0.6671",style:{stopColor:"#A12768"}}),r.default.createElement("stop",{offset:"1",style:{stopColor:"#A4286A"}})),r.default.createElement("path",{fill:"url(#SVGID_1_)",d:"M454.7,428.6H118.4c-40.2,0-73.2-32.9-73.2-73.2V150.3c0-40.2,32.9-73.2,73.2-73.2h263.1 c40.2,0,73.2,32.9,73.2,73.2V428.6z"})),r.default.createElement("g",null,r.default.createElement("g",null,r.default.createElement("g",null,r.default.createElement("g",null,r.default.createElement("path",{fill:"#A4286A",d:"M357.1,102.4l-43.8,9.4L239.9,277l-47.2-147.8h-70.2l78.6,201.9c6.7,17.2,6.7,36.3,0,53.5 c-6.7,17.2,45.1-84.1,24.7-75.7c0,0,34.9,97.6,36.4,94.5c7-14.3,13.7-30.3,20.2-48.5L387.4,72 C387.4,72,358.4,102.4,357.1,102.4z"}))))),r.default.createElement("g",null,r.default.createElement("linearGradient",{id:"SVGID_2_",gradientUnits:"userSpaceOnUse",x1:"266.5665",y1:"-6.9686",x2:"266.5665",y2:"378.4586"},r.default.createElement("stop",{offset:"0",style:{stopColor:"#77B227"}}),r.default.createElement("stop",{offset:"0.4669",style:{stopColor:"#75B027"}}),r.default.createElement("stop",{offset:"0.635",style:{stopColor:"#6EAB27"}}),r.default.createElement("stop",{offset:"0.7549",style:{stopColor:"#63A027"}}),r.default.createElement("stop",{offset:"0.8518",style:{stopColor:"#529228"}}),r.default.createElement("stop",{offset:"0.9339",style:{stopColor:"#3C7F28"}}),r.default.createElement("stop",{offset:"1",style:{stopColor:"#246B29"}})),r.default.createElement("path",{fill:"url(#SVGID_2_)",d:"M337,6.1l-98.6,273.8l-47.2-147.8H121L199.6,334c6.7,17.2,6.7,36.3,0,53.5 c-8.8,22.5-23.4,41.8-59,46.6v59.9c69.4,0,106.9-42.6,140.3-136.1L412.1,6.1H337z"}),r.default.createElement("path",{fill:"#FFFFFF",d:"M140.6,500h-6.1v-71.4l5.3-0.7c34.8-4.7,46.9-24.2,54.1-42.7c6.2-15.8,6.2-33.2,0-49l-81.9-210.3h83.7 l43.1,134.9L332.7,0h88.3L286.7,359.9c-17.9,50-36.4,83.4-58.1,105.3C205,488.9,177,500,140.6,500z M146.7,439.2v48.3 c29.9-1.2,53.3-11.1,73.1-31.1c20.4-20.5,38-52.6,55.3-100.9L403.2,12.3h-61.9L238.1,299l-51.3-160.8H130l75.3,193.5 c7.3,18.7,7.3,39.2,0,57.9C197.7,409.3,184.1,432.4,146.7,439.2z"})))));u.propTypes={className:o.default.string},u.defaultProps={className:""};const l=(0,i.keyframes)(["0%{transform:scale( 0.70 );opacity:0.4;}80%{opacity:1}100%{transform:scale( 0.95 );opacity:1}"]);t.default=(0,a.default)(u).withConfig({displayName:"Loader",componentId:"s6p3fr-0"})(["animation:"," 1.15s infinite;animation-direction:alternate;animation-timing-function:cubic-bezier(0.96,0.02,0.63,0.86);"],l)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n(0)),o=u(n(2)),i=u(n(1)),a=n(3),s=u(n(39));function u(e){return e&&e.__esModule?e:{default:e}}const l=i.default.div.withConfig({displayName:"MultiStepProgress__MultiStepProgressContainer",componentId:"sc-116lfxz-0"})(["padding:8px;"]),c=i.default.ol.withConfig({displayName:"MultiStepProgress__MultiStepProgressList",componentId:"sc-116lfxz-1"})(["padding:0;margin:0;list-style:none;counter-reset:multi-step-progress-counter;li{counter-increment:multi-step-progress-counter;}"]),f=i.default.li.withConfig({displayName:"MultiStepProgress__MultiStepProgressListItem",componentId:"sc-116lfxz-2"})(["display:flex;align-items:baseline;margin:8px 0;:first-child{margin-top:0;}:last-child{margin-bottom:0;}span{margin:0 8px;}svg{position:relative;top:2px;}::before{content:counter( multi-step-progress-counter );font-size:12px;background:",";border-radius:50%;min-width:16px;height:16px;padding:4px;color:",";text-align:center;}"],a.colors.$color_pink_dark,a.colors.$color_white),d=(0,i.default)(f).withConfig({displayName:"MultiStepProgress__MultiStepProgressPendingStatus",componentId:"sc-116lfxz-3"})(["span{color:",";}::before{background-color:",";}"],a.colors.$palette_grey_text_light,a.colors.$palette_grey_medium_dark),p=(0,i.default)(f).withConfig({displayName:"MultiStepProgress__MultiStepProgressRunningStatus",componentId:"sc-116lfxz-4"})(["::before{background-color:",";}"],a.colors.$palette_grey_medium_dark);class h extends r.default.Component{render(){return r.default.createElement(l,{role:"status","aria-live":"polite","aria-relevant":"additions text","aria-atomic":!0},r.default.createElement(c,null,this.props.steps.map(e=>{switch(e.status){case"running":return this.renderRunningState(e);case"failed":return this.renderFailedState(e);case"finished":return this.renderFinishedState(e);case"pending":default:return this.renderPendingState(e)}})))}renderPendingState(e){return r.default.createElement(d,{key:e.id},r.default.createElement("span",null,e.text))}renderRunningState(e){return r.default.createElement(p,{key:e.id},r.default.createElement("span",null,e.text),r.default.createElement(s.default,{icon:"loading-spinner"}))}renderFinishedState(e){return r.default.createElement(f,{key:e.id},r.default.createElement("span",null,e.text),r.default.createElement(s.default,{icon:"check",color:a.colors.$color_green_medium_light}))}renderFailedState(e){return r.default.createElement(f,{key:e.id},r.default.createElement("span",null,e.text),r.default.createElement(s.default,{icon:"times",color:a.colors.$color_red}))}}h.defaultProps={steps:[]},h.propTypes={steps:o.default.arrayOf(o.default.shape({status:o.default.oneOf(["pending","running","finished","failed"]).isRequired,text:o.default.string.isRequired,id:o.default.string.isRequired}))},t.default=h},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=c(n(0)),o=c(n(2)),i=c(n(1)),a=n(10),s=n(3),u=c(n(264)),l=c(n(39));function c(e){return e&&e.__esModule?e:{default:e}}const f=i.default.div.withConfig({displayName:"Notification__NotificationContainer",componentId:"sc-13u3ytb-0"})(["display:flex;align-items:center;padding:24px;h1,h2,h3,h4,h5,h6{font-size:1.4em;line-height:1;margin:0 0 4px 0;@media screen and ( max-width:"," ){","}}p:last-child{margin:0;}@media screen and ( max-width:"," ){display:block;position:relative;padding:16px;}"],s.breakpoints.mobile,e=>e.isDismissable?"margin-right: 30px;":"",s.breakpoints.mobile),d=i.default.img.withConfig({displayName:"Notification__NotificationImage",componentId:"sc-13u3ytb-1"})(["flex:0 0 ",";height:",";margin-right:24px;@media screen and ( max-width:"," ){display:none;}"],e=>e.imageWidth?e.imageWidth:"auto",e=>e.imageHeight?e.imageHeight:"auto",s.breakpoints.mobile),p=i.default.div.withConfig({displayName:"Notification__NotificationContent",componentId:"sc-13u3ytb-2"})(["flex:1 1 auto;"]),h=i.default.button.withConfig({displayName:"Notification__DismissButton",componentId:"sc-13u3ytb-3"})(["flex:0 0 40px;height:40px;border:0;margin:0 0 0 10px;padding:0;background:transparent;cursor:pointer;@media screen and ( max-width:"," ){width:40px;position:absolute;top:5px;right:5px;margin:0;}"],s.breakpoints.mobile),g=(0,i.default)(l.default).withConfig({displayName:"Notification__StyledIcon",componentId:"sc-13u3ytb-4"})(["vertical-align:middle;"]);function y(e){const t=`${e.headingLevel}`;return r.default.createElement(u.default,null,r.default.createElement(f,{isDismissable:e.isDismissable},e.imageSrc&&r.default.createElement(d,{src:e.imageSrc,imageWidth:e.imageWidth,imageHeight:e.imageHeight,alt:""}),r.default.createElement(p,null,r.default.createElement(t,null,e.title),r.default.createElement("p",{className:"prova",dangerouslySetInnerHTML:{__html:e.html}})),e.isDismissable&&r.default.createElement(h,{onClick:e.onClick,type:"button","aria-label":(0,a.__)("Dismiss this notice","yoast-components")},r.default.createElement(g,{icon:"times",color:s.colors.$color_grey_text,size:"24px"}))))}y.propTypes={imageSrc:o.default.string,imageWidth:o.default.string,imageHeight:o.default.string,title:o.default.string,html:o.default.string,isDismissable:o.default.bool,onClick:o.default.func,headingLevel:o.default.string},y.defaultProps={isDismissable:!1,headingLevel:"h3"},t.default=y},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=a(n(2)),o=a(n(1)),i=n(3);function a(e){return e&&e.__esModule?e:{default:e}}const s=o.default.progress.withConfig({displayName:"ProgressBar",componentId:"sc-26so1b-0"})(["box-sizing:border-box;width:100%;height:8px;display:block;margin-top:8px;appearance:none;background-color:",";border:1px solid ",";::-webkit-progress-bar{background-color:",";}::-webkit-progress-value{background-color:",";transition:width 250ms;}::-moz-progress-bar{background-color:",";}::-ms-fill{background-color:",";border:0;}"],e=>e.backgroundColor,e=>e.borderColor,e=>e.backgroundColor,e=>e.progressColor,e=>e.progressColor,e=>e.progressColor);s.defaultProps={max:1,value:0,progressColor:i.colors.$color_good,backgroundColor:i.colors.$color_background_light,borderColor:i.colors.$color_input_border,"aria-hidden":"true"},s.propTypes={max:r.default.number,value:r.default.number,progressColor:r.default.string,backgroundColor:r.default.string,borderColor:r.default.string,"aria-hidden":r.default.string},t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=a(n(0)),o=a(n(2)),i=a(n(1));function a(e){return e&&e.__esModule?e:{default:e}}const s=i.default.li.withConfig({displayName:"ScoreAssessments__ScoreAssessmentItem",componentId:"io0gsa-0"})(["display:table-row;font-size:14px;"]),u=i.default.span.withConfig({displayName:"ScoreAssessments__ScoreAssessmentPart",componentId:"io0gsa-1"})(["display:table-cell;padding:2px;"]),l=(0,i.default)(u).withConfig({displayName:"ScoreAssessments__ScoreAssessmentBullet",componentId:"io0gsa-2"})(["position:relative;top:1px;display:inline-block;height:8px;width:8px;border-radius:50%;background-color:",";"],e=>e.scoreColor);l.propTypes={scoreColor:o.default.string.isRequired};const c=(0,i.default)(u).withConfig({displayName:"ScoreAssessments__ScoreAssessmentText",componentId:"io0gsa-3"})(["padding-left:8px;width:100%;"]),f=(0,i.default)(u).withConfig({displayName:"ScoreAssessments__ScoreAssessmentScore",componentId:"io0gsa-4"})(["font-weight:600;text-align:right;padding-left:16px;"]),d=e=>r.default.createElement(s,{className:`${e.className}`},r.default.createElement(l,{className:`${e.className}-bullet`,scoreColor:e.scoreColor}),r.default.createElement(c,{className:`${e.className}-text`,dangerouslySetInnerHTML:{__html:e.html}}),e.value&&r.default.createElement(f,{className:`${e.className}-score`},e.value));d.propTypes={className:o.default.string.isRequired,scoreColor:o.default.string.isRequired,html:o.default.string.isRequired,value:o.default.number};const p=i.default.ul.withConfig({displayName:"ScoreAssessments__ScoreAssessmentList",componentId:"io0gsa-5"})(["display:table;box-sizing:border-box;list-style:none;max-width:100%;min-width:200px;margin:8px 0;padding:0 8px;"]),h=e=>r.default.createElement(p,{className:e.className,role:"list"},e.items.map((t,n)=>r.default.createElement(d,{className:`${e.className}__item`,key:n,scoreColor:t.color,html:t.html,value:t.value})));h.propTypes={className:o.default.string,items:o.default.arrayOf(o.default.shape({color:o.default.string.isRequired,html:o.default.string.isRequired,value:o.default.number}))},h.defaultProps={className:"score-assessments"},t.default=h},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=a(n(0)),o=a(n(2)),i=a(n(1));function a(e){return e&&e.__esModule?e:{default:e}}const s=i.default.div.withConfig({displayName:"StackedProgressBar__StackedProgressBarContainer",componentId:"sc-11fbrwm-0"})(["margin:8px 0;height:",";overflow:hidden;"],e=>e.barHeight),u=i.default.span.withConfig({displayName:"StackedProgressBar__StackedProgressBarProgress",componentId:"sc-11fbrwm-1"})(["display:inline-block;vertical-align:top;width:",";background-color:",";height:100%;"],e=>`${e.progressWidth}%`,e=>e.progressColor);u.propTypes={progressWidth:o.default.number.isRequired,progressColor:o.default.string.isRequired};const l=e=>{let t=0;for(let n=0;n<e.items.length;n++)e.items[n].value=Math.max(e.items[n].value,0),t+=e.items[n].value;return t<=0?null:r.default.createElement(s,{className:e.className,barHeight:e.barHeight},e.items.map((n,o)=>r.default.createElement(u,{className:`${e.className}__part`,key:o,progressColor:n.color,progressWidth:n.value/t*100})))};l.propTypes={className:o.default.string,items:o.default.arrayOf(o.default.shape({value:o.default.number.isRequired,color:o.default.string.isRequired})),barHeight:o.default.string},l.defaultProps={className:"stacked-progress-bar",barHeight:"24px"},t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=f(n(0)),i=f(n(2)),a=f(n(1)),s=n(539),u=n(266),l=n(540),c=n(7);function f(e){return e&&e.__esModule?e:{default:e}}const d=a.default.span.withConfig({displayName:"SynonymsInput__SynonymsFieldLabelContainer",componentId:"yfp2mx-0"})(["margin-bottom:0.5em;"]),p=(0,a.default)(l.InputLabel).withConfig({displayName:"SynonymsInput__StyledYoastInputLabel",componentId:"yfp2mx-1"})(["display:inline-block;margin-bottom:0;",";"],(0,c.getDirectionalStyle)("margin-right: 4px","margin-left: 4px")),h=e=>{const t=e.label,n=e.helpLink,i=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["label","helpLink"]);return o.default.createElement(s.InputContainer,null,o.default.createElement(d,null,o.default.createElement(p,{htmlFor:i.id},t),n),o.default.createElement(u.InputField,r({},i,{autoComplete:"off"})))};h.propTypes={type:i.default.string,id:i.default.string.isRequired,label:i.default.string,helpLink:i.default.node},h.defaultProps={type:"text",label:"",helpLink:null},t.default=h},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InputContainer=void 0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(1));t.InputContainer=r.default.div.withConfig({displayName:"InputContainer",componentId:"fmvk3g-0"})(["display:flex;flex-direction:column;margin:1em 0;"])},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InputLabel=void 0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(1));t.InputLabel=r.default.label.withConfig({displayName:"InputLabel",componentId:"sc-16a9tjj-0"})(["font-size:1em;font-weight:bold;margin-bottom:0.5em;display:block;"])},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n(0)),o=u(n(2)),i=u(n(263)),a=u(n(259)),s=u(n(267));function u(e){return e&&e.__esModule?e:{default:e}}class l extends r.default.Component{constructor(e){super(e),this.optionalAttributes=this.parseOptionalAttributes()}render(){return this.optionalAttributes=this.parseOptionalAttributes(),this.props.class&&(this.optionalAttributes.container.className=this.props.class),r.default.createElement("div",this.optionalAttributes.container,r.default.createElement(i.default,{for:this.props.name,optionalAttributes:this.optionalAttributes.label},this.props.label),this.getTextField())}getTextField(){return!0===this.props.multiline?r.default.createElement("div",null,r.default.createElement(s.default,{name:this.props.name,id:this.props.name,onChange:this.props.onChange,optionalAttributes:this.optionalAttributes.field,hasFocus:this.props.hasFocus,value:this.props.value}),this.props.explanation&&r.default.createElement("p",null,this.props.explanation)):r.default.createElement("div",null,r.default.createElement(a.default,{name:this.props.name,id:this.props.name,type:"text",onChange:this.props.onChange,value:this.props.value,hasFocus:this.props.hasFocus,autoComplete:this.props.autoComplete,optionalAttributes:this.optionalAttributes.field}),this.props.explanation&&r.default.createElement("p",null,this.props.explanation))}parseOptionalAttributes(){const e={},t={},n={id:this.props.name};return Object.keys(this.props).forEach(function(r){r.startsWith("label-")&&(t[r.split("-").pop()]=this.props[r]),r.startsWith("field-")&&(n[r.split("-").pop()]=this.props[r]),r.startsWith("container-")&&(e[r.split("-").pop()]=this.props[r])}.bind(this)),{label:t,field:n,container:e}}}l.propTypes={label:o.default.string.isRequired,name:o.default.string.isRequired,onChange:o.default.func.isRequired,value:o.default.string,optionalAttributes:o.default.object,multiline:o.default.bool,hasFocus:o.default.bool,class:o.default.string,explanation:o.default.string,autoComplete:o.default.string},l.defaultProps={optionalAttributes:{},multiline:!1,hasFocus:!1},t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=l(n(2)),o=l(n(0)),i=l(n(1)),a=n(10),s=n(7),u=n(3);function l(e){return e&&e.__esModule?e:{default:e}}const c=i.default.div.withConfig({displayName:"Toggle__ToggleDiv",componentId:"sc-1o41823-0"})(["display:flex;width:100%;justify-content:space-between;align-items:center;"]),f=i.default.span.withConfig({displayName:"Toggle__ToggleLabel",componentId:"sc-1o41823-1"})(["",":16px;flex:1;cursor:pointer;"],(0,s.getDirectionalStyle)("margin-right","margin-left")),d=i.default.div.withConfig({displayName:"Toggle__ToggleBar",componentId:"sc-1o41823-2"})(["background-color:",";border-radius:7px;height:14px;width:30px;cursor:pointer;margin:0;outline:0;&:focus > span{box-shadow:inset 0 0 0 1px ",",0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);}"],e=>e.isEnabled?"#a5d6a7":u.colors.$color_button_border,u.colors.$color_white),p=i.default.span.withConfig({displayName:"Toggle__ToggleBullet",componentId:"sc-1o41823-3"})(["background-color:",";",";box-shadow:0 2px 2px 2px rgba(0,0,0,0.1);border-radius:100%;height:20px;width:20px;position:absolute;margin-top:-3px;"],e=>e.isEnabled?u.colors.$color_green_medium_light:u.colors.$color_grey_medium_dark,e=>e.isEnabled?(0,s.getDirectionalStyle)("margin-left: 12px;","margin-right: 12px;"):(0,s.getDirectionalStyle)("margin-left: -2px;","margin-right: -2px;")),h=i.default.span.withConfig({displayName:"Toggle__ToggleVisualLabel",componentId:"sc-1o41823-4"})(["font-size:14px;line-height:20px;",":8px;font-style:italic;"],(0,s.getDirectionalStyle)("margin-left","margin-right"));class g extends o.default.Component{constructor(e){super(e),this.onClick=this.props.onToggleDisabled,this.onKeyUp=this.props.onToggleDisabled,this.setToggleState=this.setToggleState.bind(this),this.handleOnKeyDown=this.handleOnKeyDown.bind(this),!0!==e.disable&&(this.onClick=this.setToggleState.bind(this),this.onKeyUp=this.setToggleState.bind(this))}setToggleState(e){"keyup"===e.type&&32!==e.keyCode||this.props.onSetToggleState(!this.props.isEnabled)}handleOnKeyDown(e){32===e.keyCode&&e.preventDefault()}render(){return o.default.createElement(c,null,o.default.createElement(f,{id:this.props.id,onClick:this.onClick},this.props.labelText),o.default.createElement(d,{isEnabled:this.props.isEnabled,onKeyDown:this.handleOnKeyDown,onClick:this.onClick,onKeyUp:this.onKeyUp,tabIndex:"0",role:"checkbox","aria-labelledby":this.props.id,"aria-checked":this.props.isEnabled,"aria-disabled":this.props.disable},o.default.createElement(p,{isEnabled:this.props.isEnabled})),o.default.createElement(h,{"aria-hidden":"true"},this.props.isEnabled?(0,a.__)("On","yoast-components"):(0,a.__)("Off","yoast-components")))}}g.propTypes={isEnabled:r.default.bool,onSetToggleState:r.default.func,disable:r.default.bool,onToggleDisabled:r.default.func,id:r.default.string.isRequired,labelText:r.default.string.isRequired},g.defaultProps={isEnabled:!1,onSetToggleState:()=>{},labelText:"",disable:!1,onToggleDisabled:()=>{}},t.default=g},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UpsellButton=t.UpsellButtonBase=void 0,t.addButtonStyles=p;var r=l(n(0)),o=l(n(2)),i=l(n(1)),a=n(3),s=l(n(39)),u=n(153);function l(e){return e&&e.__esModule?e:{default:e}}const c={minHeight:48,verticalPadding:8,borderWidth:0},f=c.minHeight-2*c.verticalPadding-2*c.borderWidth,d=(0,i.default)(s.default).withConfig({displayName:"UpsellButton__IconComponent",componentId:"eukx08-0"})(["margin:2px 4px 0 4px;flex-shrink:0;"]);function p(e){return(0,i.default)(e).withConfig({displayName:"UpsellButton",componentId:"eukx08-1"})(["display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;min-height:",";margin:0;overflow:auto;min-width:152px;padding:0 16px;padding:"," 8px ",' 16px;border:0;border-radius:4px;box-sizing:border-box;font:400 16px/24px "Open Sans",sans-serif;box-shadow:inset 0 -4px 0 rgba(0,0,0,0.2);filter:drop-shadow(0 2px 4px rgba(0,0,0,0.2));transition:box-shadow 150ms ease-out;&:hover,&:focus,&:active{background:',';}&:active{transform:translateY( 1px );box-shadow:none;filter:none;}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){::after{display:inline-block;content:"";min-height:',";}}"],`${c.minHeight}px`,`${c.verticalPadding}px`,`${c.verticalPadding}px`,a.colors.$color_button_upsell_hover,`${f}px`)}const h=t.UpsellButtonBase=p((0,i.default)(u.YoastButtonBase).withConfig({displayName:"UpsellButton__UpsellButtonBase",componentId:"eukx08-2"})(["color:",";background:",";overflow:visible;cursor:pointer;&::-moz-focus-inner{border-width:0;}span{display:inherit;align-items:inherit;justify-content:inherit;width:100%;}"],e=>e.textColor,e=>e.backgroundColor));h.propTypes={backgroundColor:o.default.string,hoverColor:o.default.string,textColor:o.default.string},h.defaultProps={backgroundColor:a.colors.$color_button_upsell,hoverColor:a.colors.$color_button_hover_upsell,textColor:a.colors.$color_black},(t.UpsellButton=(e=>{const t=e.children;return r.default.createElement(h,e,t,r.default.createElement(d,{icon:"caret-right",color:a.colors.$color_black,size:"16px"}))})).propTypes={backgroundColor:o.default.string,hoverColor:o.default.string,textColor:o.default.string,children:o.default.oneOfType([o.default.arrayOf(o.default.node),o.default.node])}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UpsellLinkButton=void 0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(1)),o=n(3);t.UpsellLinkButton=r.default.a.withConfig({displayName:"UpsellLinkButton",componentId:"sc-1velt6w-0"})(["align-items:center;justify-content:center;vertical-align:middle;color:",";white-space:nowrap;display:inline-flex;border-radius:4px;background-color:",";padding:4px 8px 8px;box-shadow:inset 0 -4px 0 rgba(0,0,0,0.2);border:none;text-decoration:none;font-size:inherit;&:hover,&:focus,&:active{color:",";background:",";}&:active{background-color:",";transform:translateY( 1px );box-shadow:none;filter:none;}"],o.colors.$color_black,o.colors.$color_button_upsell,o.colors.$color_black,o.colors.$color_button_upsell_hover,o.colors.$color_button_hover_upsell)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.YoastLinkButton=void 0;var r=s(n(2)),o=s(n(1)),i=n(3),a=n(153);function s(e){return e&&e.__esModule?e:{default:e}}const u=t.YoastLinkButton=(0,a.addButtonStyles)(o.default.a.withConfig({displayName:"YoastLinkButton",componentId:"sc-58aowg-0"})(["text-decoration:none;color:",";background:",";min-width:152px;",";"],e=>e.textColor,e=>e.backgroundColor,e=>e.withTextShadow?`text-shadow: 0 0 2px ${i.colors.$color_black}`:""));u.propTypes={backgroundColor:r.default.string,textColor:r.default.string,withTextShadow:r.default.bool},u.defaultProps={backgroundColor:i.colors.$color_green_medium_light,textColor:i.colors.$color_white,withTextShadow:!0}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=function(e){return e&&e.__esModule?e:{default:e}}(n(0));t.default=(e=>o.default.createElement("svg",r({},e,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 520 240"}),o.default.createElement("linearGradient",{id:"a",gradientUnits:"userSpaceOnUse",x1:"476.05",y1:"194.48",x2:"476.05",y2:"36.513"},o.default.createElement("stop",{offset:"0",style:{stopColor:"#570732"}}),o.default.createElement("stop",{offset:".038",style:{stopColor:"#610b39"}}),o.default.createElement("stop",{offset:".155",style:{stopColor:"#79164b"}}),o.default.createElement("stop",{offset:".287",style:{stopColor:"#8c1e59"}}),o.default.createElement("stop",{offset:".44",style:{stopColor:"#9a2463"}}),o.default.createElement("stop",{offset:".633",style:{stopColor:"#a22768"}}),o.default.createElement("stop",{offset:"1",style:{stopColor:"#a4286a"}})),o.default.createElement("path",{fill:"url(#a)",d:"M488.7 146.1v-56h20V65.9h-20V36.5h-30.9v29.3h-15.7v24.3h15.7v52.8c0 30 20.9 47.8 43 51.5l9.2-24.8c-12.9-1.6-21.2-11.2-21.3-23.5z"}),o.default.createElement("linearGradient",{id:"b",gradientUnits:"userSpaceOnUse",x1:"287.149",y1:"172.553",x2:"287.149",y2:"61.835"},o.default.createElement("stop",{offset:"0",style:{stopColor:"#570732"}}),o.default.createElement("stop",{offset:".038",style:{stopColor:"#610b39"}}),o.default.createElement("stop",{offset:".155",style:{stopColor:"#79164b"}}),o.default.createElement("stop",{offset:".287",style:{stopColor:"#8c1e59"}}),o.default.createElement("stop",{offset:".44",style:{stopColor:"#9a2463"}}),o.default.createElement("stop",{offset:".633",style:{stopColor:"#a22768"}}),o.default.createElement("stop",{offset:"1",style:{stopColor:"#a4286a"}})),o.default.createElement("path",{fill:"url(#b)",d:"M332.8 137.3V95.2c0-1.5-.1-3-.2-4.4-2.7-34-51-33.9-88.3-20.9L255 91.7c24.3-11.6 38.9-8.6 44-2.9l.4.4v.1c2.6 3.5 2 9 2 13.4-31.8 0-65.7 4.2-65.7 39.1 0 26.5 33.2 43.6 68 18.3l5.2 12.4h29.8c-2.8-14.5-5.9-27-5.9-35.2zm-31.2-.3c-24.5 27.4-46.9 1.6-23.9-9.6 6.8-2.3 15.9-2.4 23.9-2.4v12z"}),o.default.createElement("linearGradient",{id:"c",gradientUnits:"userSpaceOnUse",x1:"390.54",y1:"172.989",x2:"390.54",y2:"61.266"},o.default.createElement("stop",{offset:"0",style:{stopColor:"#570732"}}),o.default.createElement("stop",{offset:".038",style:{stopColor:"#610b39"}}),o.default.createElement("stop",{offset:".155",style:{stopColor:"#79164b"}}),o.default.createElement("stop",{offset:".287",style:{stopColor:"#8c1e59"}}),o.default.createElement("stop",{offset:".44",style:{stopColor:"#9a2463"}}),o.default.createElement("stop",{offset:".633",style:{stopColor:"#a22768"}}),o.default.createElement("stop",{offset:"1",style:{stopColor:"#a4286a"}})),o.default.createElement("path",{fill:"url(#c)",d:"M380.3 92.9c0-10.4 16.6-15.2 42.8-3.3l9.1-22C397 57 348.9 56 348.6 92.8c-.1 17.7 11.2 27.2 27.5 33.2 11.3 4.2 27.6 6.4 27.6 15.4-.1 11.8-25.3 13.6-48.4-2.3l-9.3 23.8c31.4 15.6 89.7 16.1 89.4-23.1-.4-38.5-55.1-31.9-55.1-46.9z"}),o.default.createElement("linearGradient",{id:"d",gradientUnits:"userSpaceOnUse",x1:"76.149",y1:"3.197",x2:"76.149",y2:"178.39"},o.default.createElement("stop",{offset:"0",style:{stopColor:"#77b227"}}),o.default.createElement("stop",{offset:".467",style:{stopColor:"#75b027"}}),o.default.createElement("stop",{offset:".635",style:{stopColor:"#6eab27"}}),o.default.createElement("stop",{offset:".755",style:{stopColor:"#63a027"}}),o.default.createElement("stop",{offset:".852",style:{stopColor:"#529228"}}),o.default.createElement("stop",{offset:".934",style:{stopColor:"#3c7f28"}}),o.default.createElement("stop",{offset:"1",style:{stopColor:"#246b29"}})),o.default.createElement("path",{fill:"url(#d)",d:"M108.2 9.2L63.4 133.6 41.9 66.4H10l35.7 91.8c3 7.8 3 16.5 0 24.3-4 10.2-10.6 19-26.8 21.2v27.2c31.5 0 48.6-19.4 63.8-61.9L142.3 9.2h-34.1z"}),o.default.createElement("linearGradient",{id:"e",gradientUnits:"userSpaceOnUse",x1:"175.228",y1:"172.923",x2:"175.228",y2:"62.17"},o.default.createElement("stop",{offset:"0",style:{stopColor:"#570732"}}),o.default.createElement("stop",{offset:".038",style:{stopColor:"#610b39"}}),o.default.createElement("stop",{offset:".155",style:{stopColor:"#79164b"}}),o.default.createElement("stop",{offset:".287",style:{stopColor:"#8c1e59"}}),o.default.createElement("stop",{offset:".44",style:{stopColor:"#9a2463"}}),o.default.createElement("stop",{offset:".633",style:{stopColor:"#a22768"}}),o.default.createElement("stop",{offset:"1",style:{stopColor:"#a4286a"}})),o.default.createElement("path",{fill:"url(#e)",d:"M175.2 62.2c-38.6 0-54 27.3-54 56.2 0 30 15.1 54.6 54 54.6 38.7 0 54.1-27.6 54-54.6-.1-33-16.8-56.2-54-56.2zm0 87.1c-15.7 0-23.4-11.7-23.4-30.9s8.3-32.9 23.4-32.9c15 0 23.2 13.7 23.2 32.9s-7.5 30.9-23.2 30.9z"})))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=l(n(0)),o=l(n(2)),i=l(n(548)),a=l(n(1)),s=n(3),u=l(n(39));function l(e){return e&&e.__esModule?e:{default:e}}const c=a.default.h1.withConfig({displayName:"Modal__StyledHeading",componentId:"sc-1ozx3rc-0"})(["float:left;margin:-4px 0 2rem;font-size:1rem;"]),f=a.default.button.withConfig({displayName:"Modal__StyledCloseIconButton",componentId:"sc-1ozx3rc-1"})(["float:right;width:44px;height:44px;background:transparent;border:0;margin:-16px -16px 0 0;padding:0;cursor:pointer;"]);class d extends r.default.Component{constructor(e){super(e)}render(){return r.default.createElement(i.default,{isOpen:this.props.isOpen,onRequestClose:this.props.onClose,role:"dialog",contentLabel:this.props.modalAriaLabel,overlayClassName:`yoast-modal__overlay ${this.props.className}`,className:`yoast-modal__content ${this.props.className}`,appElement:this.props.appElement,bodyOpenClassName:"yoast-modal_is-open"},this.props.heading&&r.default.createElement(c,{className:"yoast-modal__title"},this.props.heading),this.props.closeIconButton&&r.default.createElement(f,{type:"button",onClick:this.props.onClose,className:`yoast-modal__button-close-icon ${this.props.closeIconButtonClassName}`,"aria-label":this.props.closeIconButton},r.default.createElement(u.default,{icon:"times",color:s.colors.$color_grey_text})),r.default.createElement("div",{className:"yoast-modal__inside"},this.props.children),this.props.closeButton&&r.default.createElement("div",{className:"yoast-modal__actions"},r.default.createElement("button",{type:"button",onClick:this.props.onClose,className:`yoast-modal__button-close ${this.props.closeButtonClassName}`},this.props.closeButton)))}}d.propTypes={children:o.default.any,className:o.default.string,isOpen:o.default.bool,onClose:o.default.func.isRequired,modalAriaLabel:o.default.string.isRequired,appElement:o.default.object.isRequired,heading:o.default.string,closeIconButton:o.default.string,closeIconButtonClassName:o.default.string,closeButton:o.default.string,closeButtonClassName:o.default.string},d.defaultProps={children:null,className:"",heading:"",closeIconButton:"",closeIconButtonClassName:"",closeButton:"",closeButtonClassName:"",isOpen:!1};const p=(0,a.default)(d).withConfig({displayName:"Modal",componentId:"sc-1ozx3rc-2"})(["&.yoast-modal__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.6);transition:background 100ms ease-out;z-index:999999;}&.yoast-modal__content{position:absolute;top:50%;left:50%;right:auto;bottom:auto;width:auto;max-width:90%;max-height:90%;border:0;border-radius:0;margin-right:-50%;padding:24px;transform:translate(-50%,-50%);background-color:#fff;outline:none;@media screen and ( max-width:500px ){overflow-y:auto;}@media screen and ( max-height:640px ){overflow-y:auto;}}.yoast-modal__inside{clear:both;}.yoast-modal__actions{text-align:right;}.yoast-modal__actions button{margin:24px 0 0 8px;}"]);t.default=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(549));t.default=r.default,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.bodyOpenClassName=t.portalClassName=void 0;var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0),a=h(i),s=h(n(23)),u=h(n(9)),l=h(n(554)),c=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(269)),f=n(154),d=h(f),p=n(155);function h(e){return e&&e.__esModule?e:{default:e}}function g(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var y=t.portalClassName="ReactModalPortal",m=t.bodyOpenClassName="ReactModal__Body--open",v=void 0!==s.default.createPortal,b=function(){return v?s.default.createPortal:s.default.unstable_renderSubtreeIntoContainer};function _(e){return e()}var x=function(e){function t(){var e,n,o;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var i=arguments.length,u=Array(i),c=0;c<i;c++)u[c]=arguments[c];return n=o=g(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),o.removePortal=function(){!v&&s.default.unmountComponentAtNode(o.node),_(o.props.parentSelector).removeChild(o.node)},o.portalRef=function(e){o.portal=e},o.renderPortal=function(e){var n=b()(o,a.default.createElement(l.default,r({defaultStyles:t.defaultStyles},e)),o.node);o.portalRef(n)},g(o,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,i.Component),o(t,[{key:"componentDidMount",value:function(){f.canUseDOM&&(v||(this.node=document.createElement("div")),this.node.className=this.props.portalClassName,_(this.props.parentSelector).appendChild(this.node),!v&&this.renderPortal(this.props))}},{key:"getSnapshotBeforeUpdate",value:function(e){return{prevParent:_(e.parentSelector),nextParent:_(this.props.parentSelector)}}},{key:"componentDidUpdate",value:function(e,t,n){if(f.canUseDOM){var r=this.props,o=r.isOpen,i=r.portalClassName;e.portalClassName!==i&&(this.node.className=i);var a=n.prevParent,s=n.nextParent;s!==a&&(a.removeChild(this.node),s.appendChild(this.node)),(e.isOpen||o)&&!v&&this.renderPortal(this.props)}}},{key:"componentWillUnmount",value:function(){if(f.canUseDOM&&this.node&&this.portal){var e=this.portal.state,t=Date.now(),n=e.isOpen&&this.props.closeTimeoutMS&&(e.closesAt||t+this.props.closeTimeoutMS);n?(e.beforeClose||this.portal.closeWithTimeout(),setTimeout(this.removePortal,n-t)):this.removePortal()}}},{key:"render",value:function(){return f.canUseDOM&&v?(!this.node&&v&&(this.node=document.createElement("div")),b()(a.default.createElement(l.default,r({ref:this.portalRef,defaultStyles:t.defaultStyles},this.props)),this.node)):null}}],[{key:"setAppElement",value:function(e){c.setElement(e)}}]),t}();x.propTypes={isOpen:u.default.bool.isRequired,style:u.default.shape({content:u.default.object,overlay:u.default.object}),portalClassName:u.default.string,bodyOpenClassName:u.default.string,htmlOpenClassName:u.default.string,className:u.default.oneOfType([u.default.string,u.default.shape({base:u.default.string.isRequired,afterOpen:u.default.string.isRequired,beforeClose:u.default.string.isRequired})]),overlayClassName:u.default.oneOfType([u.default.string,u.default.shape({base:u.default.string.isRequired,afterOpen:u.default.string.isRequired,beforeClose:u.default.string.isRequired})]),appElement:u.default.instanceOf(d.default),onAfterOpen:u.default.func,onRequestClose:u.default.func,closeTimeoutMS:u.default.number,ariaHideApp:u.default.bool,shouldFocusAfterRender:u.default.bool,shouldCloseOnOverlayClick:u.default.bool,shouldReturnFocusAfterClose:u.default.bool,parentSelector:u.default.func,aria:u.default.object,data:u.default.object,role:u.default.string,contentLabel:u.default.string,shouldCloseOnEsc:u.default.bool,overlayRef:u.default.func,contentRef:u.default.func},x.defaultProps={isOpen:!1,portalClassName:y,bodyOpenClassName:m,role:"dialog",ariaHideApp:!0,closeTimeoutMS:0,shouldFocusAfterRender:!0,shouldCloseOnEsc:!0,shouldCloseOnOverlayClick:!0,shouldReturnFocusAfterClose:!0,parentSelector:function(){return document.body}},x.defaultStyles={overlay:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(255, 255, 255, 0.75)"},content:{position:"absolute",top:"40px",left:"40px",right:"40px",bottom:"40px",border:"1px solid #ccc",background:"#fff",overflow:"auto",WebkitOverflowScrolling:"touch",borderRadius:"4px",outline:"none",padding:"20px"}},(0,p.polyfill)(x),t.default=x},function(e,t,n){"use strict";var r=n(551),o=n(552),i=n(553);e.exports=function(){function e(e,t,n,r,a,s){s!==i&&o(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return n.checkPropTypes=r,n.PropTypes=n,n}},function(e,t,n){"use strict";function r(e){return function(){return e}}var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},e.exports=o},function(e,t,n){"use strict";var r=function(e){};e.exports=function(e,t,n,o,i,a,s,u){if(r(t),!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,o,i,a,s,u],f=0;(l=new Error(t.replace(/%s/g,function(){return c[f++]}))).name="Invariant Violation"}throw l.framesToPop=1,l}}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=n(0),s=g(a),u=g(n(9)),l=h(n(555)),c=g(n(556)),f=h(n(269)),d=h(n(558)),p=g(n(154));function h(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function g(e){return e&&e.__esModule?e:{default:e}}var y={overlay:"ReactModal__Overlay",content:"ReactModal__Content"},m=9,v=27,b=0,_=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.setOverlayRef=function(e){n.overlay=e,n.props.overlayRef&&n.props.overlayRef(e)},n.setContentRef=function(e){n.content=e,n.props.contentRef&&n.props.contentRef(e)},n.afterClose=function(){var e=n.props,t=e.appElement,r=e.ariaHideApp,o=e.htmlOpenClassName,i=e.bodyOpenClassName;i&&d.remove(document.body,i),o&&d.remove(document.getElementsByTagName("html")[0],o),r&&b>0&&0===(b-=1)&&f.show(t),n.props.shouldFocusAfterRender&&(n.props.shouldReturnFocusAfterClose?(l.returnFocus(),l.teardownScopedFocus()):l.popWithoutFocus()),n.props.onAfterClose&&n.props.onAfterClose()},n.open=function(){n.beforeOpen(),n.state.afterOpen&&n.state.beforeClose?(clearTimeout(n.closeTimer),n.setState({beforeClose:!1})):(n.props.shouldFocusAfterRender&&(l.setupScopedFocus(n.node),l.markForFocusLater()),n.setState({isOpen:!0},function(){n.setState({afterOpen:!0}),n.props.isOpen&&n.props.onAfterOpen&&n.props.onAfterOpen()}))},n.close=function(){n.props.closeTimeoutMS>0?n.closeWithTimeout():n.closeWithoutTimeout()},n.focusContent=function(){return n.content&&!n.contentHasFocus()&&n.content.focus()},n.closeWithTimeout=function(){var e=Date.now()+n.props.closeTimeoutMS;n.setState({beforeClose:!0,closesAt:e},function(){n.closeTimer=setTimeout(n.closeWithoutTimeout,n.state.closesAt-Date.now())})},n.closeWithoutTimeout=function(){n.setState({beforeClose:!1,isOpen:!1,afterOpen:!1,closesAt:null},n.afterClose)},n.handleKeyDown=function(e){e.keyCode===m&&(0,c.default)(n.content,e),n.props.shouldCloseOnEsc&&e.keyCode===v&&(e.stopPropagation(),n.requestClose(e))},n.handleOverlayOnClick=function(e){null===n.shouldClose&&(n.shouldClose=!0),n.shouldClose&&n.props.shouldCloseOnOverlayClick&&(n.ownerHandlesClose()?n.requestClose(e):n.focusContent()),n.shouldClose=null},n.handleContentOnMouseUp=function(){n.shouldClose=!1},n.handleOverlayOnMouseDown=function(e){n.props.shouldCloseOnOverlayClick||e.target!=n.overlay||e.preventDefault()},n.handleContentOnClick=function(){n.shouldClose=!1},n.handleContentOnMouseDown=function(){n.shouldClose=!1},n.requestClose=function(e){return n.ownerHandlesClose()&&n.props.onRequestClose(e)},n.ownerHandlesClose=function(){return n.props.onRequestClose},n.shouldBeClosed=function(){return!n.state.isOpen&&!n.state.beforeClose},n.contentHasFocus=function(){return document.activeElement===n.content||n.content.contains(document.activeElement)},n.buildClassName=function(e,t){var r="object"===(void 0===t?"undefined":o(t))?t:{base:y[e],afterOpen:y[e]+"--after-open",beforeClose:y[e]+"--before-close"},i=r.base;return n.state.afterOpen&&(i=i+" "+r.afterOpen),n.state.beforeClose&&(i=i+" "+r.beforeClose),"string"==typeof t&&t?i+" "+t:i},n.attributesFromObject=function(e,t){return Object.keys(t).reduce(function(n,r){return n[e+"-"+r]=t[r],n},{})},n.state={afterOpen:!1,beforeClose:!1},n.shouldClose=null,n.moveFromContentToOverlay=null,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,a.Component),i(t,[{key:"componentDidMount",value:function(){this.props.isOpen&&this.open()}},{key:"componentDidUpdate",value:function(e,t){this.props.isOpen&&!e.isOpen?this.open():!this.props.isOpen&&e.isOpen&&this.close(),this.props.shouldFocusAfterRender&&this.state.isOpen&&!t.isOpen&&this.focusContent()}},{key:"componentWillUnmount",value:function(){this.afterClose(),clearTimeout(this.closeTimer)}},{key:"beforeOpen",value:function(){var e=this.props,t=e.appElement,n=e.ariaHideApp,r=e.htmlOpenClassName,o=e.bodyOpenClassName;o&&d.add(document.body,o),r&&d.add(document.getElementsByTagName("html")[0],r),n&&(b+=1,f.hide(t))}},{key:"render",value:function(){var e=this.props,t=e.className,n=e.overlayClassName,o=e.defaultStyles,i=t?{}:o.content,a=n?{}:o.overlay;return this.shouldBeClosed()?null:s.default.createElement("div",{ref:this.setOverlayRef,className:this.buildClassName("overlay",n),style:r({},a,this.props.style.overlay),onClick:this.handleOverlayOnClick,onMouseDown:this.handleOverlayOnMouseDown},s.default.createElement("div",r({ref:this.setContentRef,style:r({},i,this.props.style.content),className:this.buildClassName("content",t),tabIndex:"-1",onKeyDown:this.handleKeyDown,onMouseDown:this.handleContentOnMouseDown,onMouseUp:this.handleContentOnMouseUp,onClick:this.handleContentOnClick,role:this.props.role,"aria-label":this.props.contentLabel},this.attributesFromObject("aria",this.props.aria||{}),this.attributesFromObject("data",this.props.data||{}),{"data-testid":this.props.testId}),this.props.children))}}]),t}();_.defaultProps={style:{overlay:{},content:{}},defaultStyles:{}},_.propTypes={isOpen:u.default.bool.isRequired,defaultStyles:u.default.shape({content:u.default.object,overlay:u.default.object}),style:u.default.shape({content:u.default.object,overlay:u.default.object}),className:u.default.oneOfType([u.default.string,u.default.object]),overlayClassName:u.default.oneOfType([u.default.string,u.default.object]),bodyOpenClassName:u.default.string,htmlOpenClassName:u.default.string,ariaHideApp:u.default.bool,appElement:u.default.instanceOf(p.default),onAfterOpen:u.default.func,onAfterClose:u.default.func,onRequestClose:u.default.func,closeTimeoutMS:u.default.number,shouldFocusAfterRender:u.default.bool,shouldCloseOnOverlayClick:u.default.bool,shouldReturnFocusAfterClose:u.default.bool,role:u.default.string,contentLabel:u.default.string,aria:u.default.object,data:u.default.object,children:u.default.node,shouldCloseOnEsc:u.default.bool,overlayRef:u.default.func,contentRef:u.default.func,testId:u.default.string},t.default=_,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.handleBlur=s,t.handleFocus=u,t.markForFocusLater=function(){o.push(document.activeElement)},t.returnFocus=function(){var e=null;try{return void(0!==o.length&&(e=o.pop()).focus())}catch(t){console.warn(["You tried to return focus to",e,"but it is not in the DOM anymore"].join(" "))}},t.popWithoutFocus=function(){o.length>0&&o.pop()},t.setupScopedFocus=function(e){i=e,window.addEventListener?(window.addEventListener("blur",s,!1),document.addEventListener("focus",u,!0)):(window.attachEvent("onBlur",s),document.attachEvent("onFocus",u))},t.teardownScopedFocus=function(){i=null,window.addEventListener?(window.removeEventListener("blur",s),document.removeEventListener("focus",u)):(window.detachEvent("onBlur",s),document.detachEvent("onFocus",u))};var r=function(e){return e&&e.__esModule?e:{default:e}}(n(268));var o=[],i=null,a=!1;function s(){a=!0}function u(){if(a){if(a=!1,!i)return;setTimeout(function(){i.contains(document.activeElement)||((0,r.default)(i)[0]||i).focus()},0)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=(0,r.default)(e);if(!n.length)return void t.preventDefault();var o,i=t.shiftKey,a=n[0],s=n[n.length-1];if(e===document.activeElement){if(!i)return;o=s}s!==document.activeElement||i||(o=a);a===document.activeElement&&i&&(o=s);if(o)return t.preventDefault(),void o.focus();var u=/(\bChrome\b|\bSafari\b)\//.exec(navigator.userAgent);if(null==u||"Chrome"==u[1]||null!=/\biPod\b|\biPad\b/g.exec(navigator.userAgent))return;var l=n.indexOf(document.activeElement);l>-1&&(l+=i?-1:1);if(void 0===n[l])return t.preventDefault(),void(o=i?s:a).focus();t.preventDefault(),n[l].focus()};var r=function(e){return e&&e.__esModule?e:{default:e}}(n(268));e.exports=t.default},function(e,t,n){var r;
|
1 |
+
!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=387)}([function(e,t){e.exports=React},function(e,t){e.exports=window.yoast.styledComponents},function(e,t,n){e.exports=n(445)()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.rgba=t.breakpoints=t.colors=void 0;var r=a(n(388)),o=a(n(389)),i=n(390);function a(e){return e&&e.__esModule?e:{default:e}}t.colors=r.default,t.breakpoints=o.default,t.rgba=i.rgba},function(e,t,n){e.exports=function(){"use strict";var e=Array.prototype.slice;function t(e,t){t&&(e.prototype=Object.create(t.prototype)),e.prototype.constructor=e}function n(e){return a(e)?e:H(e)}function r(e){return s(e)?e:V(e)}function o(e){return u(e)?e:G(e)}function i(e){return a(e)&&!l(e)?e:Y(e)}function a(e){return!(!e||!e[f])}function s(e){return!(!e||!e[d])}function u(e){return!(!e||!e[p])}function l(e){return s(e)||u(e)}function c(e){return!(!e||!e[h])}t(r,n),t(o,n),t(i,n),n.isIterable=a,n.isKeyed=s,n.isIndexed=u,n.isAssociative=l,n.isOrdered=c,n.Keyed=r,n.Indexed=o,n.Set=i;var f="@@__IMMUTABLE_ITERABLE__@@",d="@@__IMMUTABLE_KEYED__@@",p="@@__IMMUTABLE_INDEXED__@@",h="@@__IMMUTABLE_ORDERED__@@",g=5,y=1<<g,m=y-1,v={},b={value:!1},_={value:!1};function x(e){return e.value=!1,e}function w(e){e&&(e.value=!0)}function S(){}function C(e,t){t=t||0;for(var n=Math.max(0,e.length-t),r=new Array(n),o=0;o<n;o++)r[o]=e[o+t];return r}function k(e){return void 0===e.size&&(e.size=e.__iterate(E)),e.size}function O(e,t){if("number"!=typeof t){var n=t>>>0;if(""+n!==t||4294967295===n)return NaN;t=n}return t<0?k(e)+t:t}function E(){return!0}function T(e,t,n){return(0===e||void 0!==n&&e<=-n)&&(void 0===t||void 0!==n&&t>=n)}function M(e,t){return j(e,t,0)}function P(e,t){return j(e,t,t)}function j(e,t,n){return void 0===e?n:e<0?Math.max(0,t+e):void 0===t?e:Math.min(t,e)}var A=0,I=1,R=2,D="function"==typeof Symbol&&Symbol.iterator,N="@@iterator",B=D||N;function L(e){this.next=e}function F(e,t,n,r){var o=0===e?t:1===e?n:[t,n];return r?r.value=o:r={value:o,done:!1},r}function z(){return{value:void 0,done:!0}}function q(e){return!!U(e)}function K(e){return e&&"function"==typeof e.next}function W(e){var t=U(e);return t&&t.call(e)}function U(e){var t=e&&(D&&e[D]||e[N]);if("function"==typeof t)return t}function $(e){return e&&"number"==typeof e.length}function H(e){return null===e||void 0===e?ie():a(e)?e.toSeq():function(e){var t=ue(e)||"object"==typeof e&&new te(e);if(!t)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+e);return t}(e)}function V(e){return null===e||void 0===e?ie().toKeyedSeq():a(e)?s(e)?e.toSeq():e.fromEntrySeq():ae(e)}function G(e){return null===e||void 0===e?ie():a(e)?s(e)?e.entrySeq():e.toIndexedSeq():se(e)}function Y(e){return(null===e||void 0===e?ie():a(e)?s(e)?e.entrySeq():e:se(e)).toSetSeq()}L.prototype.toString=function(){return"[Iterator]"},L.KEYS=A,L.VALUES=I,L.ENTRIES=R,L.prototype.inspect=L.prototype.toSource=function(){return this.toString()},L.prototype[B]=function(){return this},t(H,n),H.of=function(){return H(arguments)},H.prototype.toSeq=function(){return this},H.prototype.toString=function(){return this.__toString("Seq {","}")},H.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},H.prototype.__iterate=function(e,t){return le(this,e,t,!0)},H.prototype.__iterator=function(e,t){return ce(this,e,t,!0)},t(V,H),V.prototype.toKeyedSeq=function(){return this},t(G,H),G.of=function(){return G(arguments)},G.prototype.toIndexedSeq=function(){return this},G.prototype.toString=function(){return this.__toString("Seq [","]")},G.prototype.__iterate=function(e,t){return le(this,e,t,!1)},G.prototype.__iterator=function(e,t){return ce(this,e,t,!1)},t(Y,H),Y.of=function(){return Y(arguments)},Y.prototype.toSetSeq=function(){return this},H.isSeq=oe,H.Keyed=V,H.Set=Y,H.Indexed=G;var X,J,Z,Q="@@__IMMUTABLE_SEQ__@@";function ee(e){this._array=e,this.size=e.length}function te(e){var t=Object.keys(e);this._object=e,this._keys=t,this.size=t.length}function ne(e){this._iterable=e,this.size=e.length||e.size}function re(e){this._iterator=e,this._iteratorCache=[]}function oe(e){return!(!e||!e[Q])}function ie(){return X||(X=new ee([]))}function ae(e){var t=Array.isArray(e)?new ee(e).fromEntrySeq():K(e)?new re(e).fromEntrySeq():q(e)?new ne(e).fromEntrySeq():"object"==typeof e?new te(e):void 0;if(!t)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+e);return t}function se(e){var t=ue(e);if(!t)throw new TypeError("Expected Array or iterable object of values: "+e);return t}function ue(e){return $(e)?new ee(e):K(e)?new re(e):q(e)?new ne(e):void 0}function le(e,t,n,r){var o=e._cache;if(o){for(var i=o.length-1,a=0;a<=i;a++){var s=o[n?i-a:a];if(!1===t(s[1],r?s[0]:a,e))return a+1}return a}return e.__iterateUncached(t,n)}function ce(e,t,n,r){var o=e._cache;if(o){var i=o.length-1,a=0;return new L(function(){var e=o[n?i-a:a];return a++>i?{value:void 0,done:!0}:F(t,r?e[0]:a-1,e[1])})}return e.__iteratorUncached(t,n)}function fe(e,t){return t?function e(t,n,r,o){return Array.isArray(n)?t.call(o,r,G(n).map(function(r,o){return e(t,r,o,n)})):pe(n)?t.call(o,r,V(n).map(function(r,o){return e(t,r,o,n)})):n}(t,e,"",{"":e}):de(e)}function de(e){return Array.isArray(e)?G(e).map(de).toList():pe(e)?V(e).map(de).toMap():e}function pe(e){return e&&(e.constructor===Object||void 0===e.constructor)}function he(e,t){if(e===t||e!=e&&t!=t)return!0;if(!e||!t)return!1;if("function"==typeof e.valueOf&&"function"==typeof t.valueOf){if(e=e.valueOf(),t=t.valueOf(),e===t||e!=e&&t!=t)return!0;if(!e||!t)return!1}return!("function"!=typeof e.equals||"function"!=typeof t.equals||!e.equals(t))}function ge(e,t){if(e===t)return!0;if(!a(t)||void 0!==e.size&&void 0!==t.size&&e.size!==t.size||void 0!==e.__hash&&void 0!==t.__hash&&e.__hash!==t.__hash||s(e)!==s(t)||u(e)!==u(t)||c(e)!==c(t))return!1;if(0===e.size&&0===t.size)return!0;var n=!l(e);if(c(e)){var r=e.entries();return t.every(function(e,t){var o=r.next().value;return o&&he(o[1],e)&&(n||he(o[0],t))})&&r.next().done}var o=!1;if(void 0===e.size)if(void 0===t.size)"function"==typeof e.cacheResult&&e.cacheResult();else{o=!0;var i=e;e=t,t=i}var f=!0,d=t.__iterate(function(t,r){if(n?!e.has(t):o?!he(t,e.get(r,v)):!he(e.get(r,v),t))return f=!1,!1});return f&&e.size===d}function ye(e,t){if(!(this instanceof ye))return new ye(e,t);if(this._value=e,this.size=void 0===t?1/0:Math.max(0,t),0===this.size){if(J)return J;J=this}}function me(e,t){if(!e)throw new Error(t)}function ve(e,t,n){if(!(this instanceof ve))return new ve(e,t,n);if(me(0!==n,"Cannot step a Range by 0"),e=e||0,void 0===t&&(t=1/0),n=void 0===n?1:Math.abs(n),t<e&&(n=-n),this._start=e,this._end=t,this._step=n,this.size=Math.max(0,Math.ceil((t-e)/n-1)+1),0===this.size){if(Z)return Z;Z=this}}function be(){throw TypeError("Abstract")}function _e(){}function xe(){}function we(){}H.prototype[Q]=!0,t(ee,G),ee.prototype.get=function(e,t){return this.has(e)?this._array[O(this,e)]:t},ee.prototype.__iterate=function(e,t){for(var n=this._array,r=n.length-1,o=0;o<=r;o++)if(!1===e(n[t?r-o:o],o,this))return o+1;return o},ee.prototype.__iterator=function(e,t){var n=this._array,r=n.length-1,o=0;return new L(function(){return o>r?{value:void 0,done:!0}:F(e,o,n[t?r-o++:o++])})},t(te,V),te.prototype.get=function(e,t){return void 0===t||this.has(e)?this._object[e]:t},te.prototype.has=function(e){return this._object.hasOwnProperty(e)},te.prototype.__iterate=function(e,t){for(var n=this._object,r=this._keys,o=r.length-1,i=0;i<=o;i++){var a=r[t?o-i:i];if(!1===e(n[a],a,this))return i+1}return i},te.prototype.__iterator=function(e,t){var n=this._object,r=this._keys,o=r.length-1,i=0;return new L(function(){var a=r[t?o-i:i];return i++>o?{value:void 0,done:!0}:F(e,a,n[a])})},te.prototype[h]=!0,t(ne,G),ne.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);var n=this._iterable,r=W(n),o=0;if(K(r))for(var i;!(i=r.next()).done&&!1!==e(i.value,o++,this););return o},ne.prototype.__iteratorUncached=function(e,t){if(t)return this.cacheResult().__iterator(e,t);var n=this._iterable,r=W(n);if(!K(r))return new L(z);var o=0;return new L(function(){var t=r.next();return t.done?t:F(e,o++,t.value)})},t(re,G),re.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);for(var n,r=this._iterator,o=this._iteratorCache,i=0;i<o.length;)if(!1===e(o[i],i++,this))return i;for(;!(n=r.next()).done;){var a=n.value;if(o[i]=a,!1===e(a,i++,this))break}return i},re.prototype.__iteratorUncached=function(e,t){if(t)return this.cacheResult().__iterator(e,t);var n=this._iterator,r=this._iteratorCache,o=0;return new L(function(){if(o>=r.length){var t=n.next();if(t.done)return t;r[o]=t.value}return F(e,o,r[o++])})},t(ye,G),ye.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},ye.prototype.get=function(e,t){return this.has(e)?this._value:t},ye.prototype.includes=function(e){return he(this._value,e)},ye.prototype.slice=function(e,t){var n=this.size;return T(e,t,n)?this:new ye(this._value,P(t,n)-M(e,n))},ye.prototype.reverse=function(){return this},ye.prototype.indexOf=function(e){return he(this._value,e)?0:-1},ye.prototype.lastIndexOf=function(e){return he(this._value,e)?this.size:-1},ye.prototype.__iterate=function(e,t){for(var n=0;n<this.size;n++)if(!1===e(this._value,n,this))return n+1;return n},ye.prototype.__iterator=function(e,t){var n=this,r=0;return new L(function(){return r<n.size?F(e,r++,n._value):{value:void 0,done:!0}})},ye.prototype.equals=function(e){return e instanceof ye?he(this._value,e._value):ge(e)},t(ve,G),ve.prototype.toString=function(){return 0===this.size?"Range []":"Range [ "+this._start+"..."+this._end+(this._step>1?" by "+this._step:"")+" ]"},ve.prototype.get=function(e,t){return this.has(e)?this._start+O(this,e)*this._step:t},ve.prototype.includes=function(e){var t=(e-this._start)/this._step;return t>=0&&t<this.size&&t===Math.floor(t)},ve.prototype.slice=function(e,t){return T(e,t,this.size)?this:(e=M(e,this.size),(t=P(t,this.size))<=e?new ve(0,0):new ve(this.get(e,this._end),this.get(t,this._end),this._step))},ve.prototype.indexOf=function(e){var t=e-this._start;if(t%this._step==0){var n=t/this._step;if(n>=0&&n<this.size)return n}return-1},ve.prototype.lastIndexOf=function(e){return this.indexOf(e)},ve.prototype.__iterate=function(e,t){for(var n=this.size-1,r=this._step,o=t?this._start+n*r:this._start,i=0;i<=n;i++){if(!1===e(o,i,this))return i+1;o+=t?-r:r}return i},ve.prototype.__iterator=function(e,t){var n=this.size-1,r=this._step,o=t?this._start+n*r:this._start,i=0;return new L(function(){var a=o;return o+=t?-r:r,i>n?{value:void 0,done:!0}:F(e,i++,a)})},ve.prototype.equals=function(e){return e instanceof ve?this._start===e._start&&this._end===e._end&&this._step===e._step:ge(this,e)},t(be,n),t(_e,be),t(xe,be),t(we,be),be.Keyed=_e,be.Indexed=xe,be.Set=we;var Se="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(e,t){var n=65535&(e|=0),r=65535&(t|=0);return n*r+((e>>>16)*r+n*(t>>>16)<<16>>>0)|0};function Ce(e){return e>>>1&1073741824|3221225471&e}function ke(e){if(!1===e||null===e||void 0===e)return 0;if("function"==typeof e.valueOf&&(!1===(e=e.valueOf())||null===e||void 0===e))return 0;if(!0===e)return 1;var t=typeof e;if("number"===t){var n=0|e;for(n!==e&&(n^=4294967295*e);e>4294967295;)n^=e/=4294967295;return Ce(n)}if("string"===t)return e.length>Ie?function(e){var t=Ne[e];return void 0===t&&(t=Oe(e),De===Re&&(De=0,Ne={}),De++,Ne[e]=t),t}(e):Oe(e);if("function"==typeof e.hashCode)return e.hashCode();if("object"===t)return function(e){var t;if(Pe&&void 0!==(t=Ee.get(e)))return t;if(void 0!==(t=e[Ae]))return t;if(!Me){if(void 0!==(t=e.propertyIsEnumerable&&e.propertyIsEnumerable[Ae]))return t;if(void 0!==(t=function(e){if(e&&e.nodeType>0)switch(e.nodeType){case 1:return e.uniqueID;case 9:return e.documentElement&&e.documentElement.uniqueID}}(e)))return t}if(t=++je,1073741824&je&&(je=0),Pe)Ee.set(e,t);else{if(void 0!==Te&&!1===Te(e))throw new Error("Non-extensible objects are not allowed as keys.");if(Me)Object.defineProperty(e,Ae,{enumerable:!1,configurable:!1,writable:!1,value:t});else if(void 0!==e.propertyIsEnumerable&&e.propertyIsEnumerable===e.constructor.prototype.propertyIsEnumerable)e.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},e.propertyIsEnumerable[Ae]=t;else{if(void 0===e.nodeType)throw new Error("Unable to set a non-enumerable property on object.");e[Ae]=t}}return t}(e);if("function"==typeof e.toString)return Oe(e.toString());throw new Error("Value type "+t+" cannot be hashed.")}function Oe(e){for(var t=0,n=0;n<e.length;n++)t=31*t+e.charCodeAt(n)|0;return Ce(t)}var Ee,Te=Object.isExtensible,Me=function(){try{return Object.defineProperty({},"@",{}),!0}catch(e){return!1}}(),Pe="function"==typeof WeakMap;Pe&&(Ee=new WeakMap);var je=0,Ae="__immutablehash__";"function"==typeof Symbol&&(Ae=Symbol(Ae));var Ie=16,Re=255,De=0,Ne={};function Be(e){me(e!==1/0,"Cannot perform this action with an infinite size.")}function Le(e){return null===e||void 0===e?Ze():Fe(e)&&!c(e)?e:Ze().withMutations(function(t){var n=r(e);Be(n.size),n.forEach(function(e,n){return t.set(n,e)})})}function Fe(e){return!(!e||!e[qe])}t(Le,_e),Le.prototype.toString=function(){return this.__toString("Map {","}")},Le.prototype.get=function(e,t){return this._root?this._root.get(0,void 0,e,t):t},Le.prototype.set=function(e,t){return Qe(this,e,t)},Le.prototype.setIn=function(e,t){return this.updateIn(e,v,function(){return t})},Le.prototype.remove=function(e){return Qe(this,e,v)},Le.prototype.deleteIn=function(e){return this.updateIn(e,function(){return v})},Le.prototype.update=function(e,t,n){return 1===arguments.length?e(this):this.updateIn([e],t,n)},Le.prototype.updateIn=function(e,t,n){n||(n=t,t=void 0);var r=function e(t,n,r,o){var i=t===v,a=n.next();if(a.done){var s=i?r:t,u=o(s);return u===s?t:u}me(i||t&&t.set,"invalid keyPath");var l=a.value,c=i?v:t.get(l,v),f=e(c,n,r,o);return f===c?t:f===v?t.remove(l):(i?Ze():t).set(l,f)}(this,nn(e),t,n);return r===v?void 0:r},Le.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):Ze()},Le.prototype.merge=function(){return rt(this,void 0,arguments)},Le.prototype.mergeWith=function(t){var n=e.call(arguments,1);return rt(this,t,n)},Le.prototype.mergeIn=function(t){var n=e.call(arguments,1);return this.updateIn(t,Ze(),function(e){return"function"==typeof e.merge?e.merge.apply(e,n):n[n.length-1]})},Le.prototype.mergeDeep=function(){return rt(this,ot,arguments)},Le.prototype.mergeDeepWith=function(t){var n=e.call(arguments,1);return rt(this,it(t),n)},Le.prototype.mergeDeepIn=function(t){var n=e.call(arguments,1);return this.updateIn(t,Ze(),function(e){return"function"==typeof e.mergeDeep?e.mergeDeep.apply(e,n):n[n.length-1]})},Le.prototype.sort=function(e){return Mt($t(this,e))},Le.prototype.sortBy=function(e,t){return Mt($t(this,t,e))},Le.prototype.withMutations=function(e){var t=this.asMutable();return e(t),t.wasAltered()?t.__ensureOwner(this.__ownerID):this},Le.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new S)},Le.prototype.asImmutable=function(){return this.__ensureOwner()},Le.prototype.wasAltered=function(){return this.__altered},Le.prototype.__iterator=function(e,t){return new Ge(this,e,t)},Le.prototype.__iterate=function(e,t){var n=this,r=0;return this._root&&this._root.iterate(function(t){return r++,e(t[1],t[0],n)},t),r},Le.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?Je(this.size,this._root,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},Le.isMap=Fe;var ze,qe="@@__IMMUTABLE_MAP__@@",Ke=Le.prototype;function We(e,t){this.ownerID=e,this.entries=t}function Ue(e,t,n){this.ownerID=e,this.bitmap=t,this.nodes=n}function $e(e,t,n){this.ownerID=e,this.count=t,this.nodes=n}function He(e,t,n){this.ownerID=e,this.keyHash=t,this.entries=n}function Ve(e,t,n){this.ownerID=e,this.keyHash=t,this.entry=n}function Ge(e,t,n){this._type=t,this._reverse=n,this._stack=e._root&&Xe(e._root)}function Ye(e,t){return F(e,t[0],t[1])}function Xe(e,t){return{node:e,index:0,__prev:t}}function Je(e,t,n,r){var o=Object.create(Ke);return o.size=e,o._root=t,o.__ownerID=n,o.__hash=r,o.__altered=!1,o}function Ze(){return ze||(ze=Je(0))}function Qe(e,t,n){var r,o;if(e._root){var i=x(b),a=x(_);if(r=et(e._root,e.__ownerID,0,void 0,t,n,i,a),!a.value)return e;o=e.size+(i.value?n===v?-1:1:0)}else{if(n===v)return e;o=1,r=new We(e.__ownerID,[[t,n]])}return e.__ownerID?(e.size=o,e._root=r,e.__hash=void 0,e.__altered=!0,e):r?Je(o,r):Ze()}function et(e,t,n,r,o,i,a,s){return e?e.update(t,n,r,o,i,a,s):i===v?e:(w(s),w(a),new Ve(t,r,[o,i]))}function tt(e){return e.constructor===Ve||e.constructor===He}function nt(e,t,n,r,o){if(e.keyHash===r)return new He(t,r,[e.entry,o]);var i,a=(0===n?e.keyHash:e.keyHash>>>n)&m,s=(0===n?r:r>>>n)&m,u=a===s?[nt(e,t,n+g,r,o)]:(i=new Ve(t,r,o),a<s?[e,i]:[i,e]);return new Ue(t,1<<a|1<<s,u)}function rt(e,t,n){for(var o=[],i=0;i<n.length;i++){var s=n[i],u=r(s);a(s)||(u=u.map(function(e){return fe(e)})),o.push(u)}return at(e,t,o)}function ot(e,t,n){return e&&e.mergeDeep&&a(t)?e.mergeDeep(t):he(e,t)?e:t}function it(e){return function(t,n,r){if(t&&t.mergeDeepWith&&a(n))return t.mergeDeepWith(e,n);var o=e(t,n,r);return he(t,o)?t:o}}function at(e,t,n){return 0===(n=n.filter(function(e){return 0!==e.size})).length?e:0!==e.size||e.__ownerID||1!==n.length?e.withMutations(function(e){for(var r=t?function(n,r){e.update(r,v,function(e){return e===v?n:t(e,n,r)})}:function(t,n){e.set(n,t)},o=0;o<n.length;o++)n[o].forEach(r)}):e.constructor(n[0])}function st(e){return e=(e=(858993459&(e-=e>>1&1431655765))+(e>>2&858993459))+(e>>4)&252645135,e+=e>>8,127&(e+=e>>16)}function ut(e,t,n,r){var o=r?e:C(e);return o[t]=n,o}Ke[qe]=!0,Ke.delete=Ke.remove,Ke.removeIn=Ke.deleteIn,We.prototype.get=function(e,t,n,r){for(var o=this.entries,i=0,a=o.length;i<a;i++)if(he(n,o[i][0]))return o[i][1];return r},We.prototype.update=function(e,t,n,r,o,i,a){for(var s=o===v,u=this.entries,l=0,c=u.length;l<c&&!he(r,u[l][0]);l++);var f=l<c;if(f?u[l][1]===o:s)return this;if(w(a),(s||!f)&&w(i),!s||1!==u.length){if(!f&&!s&&u.length>=lt)return function(e,t,n,r){e||(e=new S);for(var o=new Ve(e,ke(n),[n,r]),i=0;i<t.length;i++){var a=t[i];o=o.update(e,0,void 0,a[0],a[1])}return o}(e,u,r,o);var d=e&&e===this.ownerID,p=d?u:C(u);return f?s?l===c-1?p.pop():p[l]=p.pop():p[l]=[r,o]:p.push([r,o]),d?(this.entries=p,this):new We(e,p)}},Ue.prototype.get=function(e,t,n,r){void 0===t&&(t=ke(n));var o=1<<((0===e?t:t>>>e)&m),i=this.bitmap;return 0==(i&o)?r:this.nodes[st(i&o-1)].get(e+g,t,n,r)},Ue.prototype.update=function(e,t,n,r,o,i,a){void 0===n&&(n=ke(r));var s=(0===t?n:n>>>t)&m,u=1<<s,l=this.bitmap,c=0!=(l&u);if(!c&&o===v)return this;var f=st(l&u-1),d=this.nodes,p=c?d[f]:void 0,h=et(p,e,t+g,n,r,o,i,a);if(h===p)return this;if(!c&&h&&d.length>=ct)return function(e,t,n,r,o){for(var i=0,a=new Array(y),s=0;0!==n;s++,n>>>=1)a[s]=1&n?t[i++]:void 0;return a[r]=o,new $e(e,i+1,a)}(e,d,l,s,h);if(c&&!h&&2===d.length&&tt(d[1^f]))return d[1^f];if(c&&h&&1===d.length&&tt(h))return h;var b=e&&e===this.ownerID,_=c?h?l:l^u:l|u,x=c?h?ut(d,f,h,b):function(e,t,n){var r=e.length-1;if(n&&t===r)return e.pop(),e;for(var o=new Array(r),i=0,a=0;a<r;a++)a===t&&(i=1),o[a]=e[a+i];return o}(d,f,b):function(e,t,n,r){var o=e.length+1;if(r&&t+1===o)return e[t]=n,e;for(var i=new Array(o),a=0,s=0;s<o;s++)s===t?(i[s]=n,a=-1):i[s]=e[s+a];return i}(d,f,h,b);return b?(this.bitmap=_,this.nodes=x,this):new Ue(e,_,x)},$e.prototype.get=function(e,t,n,r){void 0===t&&(t=ke(n));var o=(0===e?t:t>>>e)&m,i=this.nodes[o];return i?i.get(e+g,t,n,r):r},$e.prototype.update=function(e,t,n,r,o,i,a){void 0===n&&(n=ke(r));var s=(0===t?n:n>>>t)&m,u=o===v,l=this.nodes,c=l[s];if(u&&!c)return this;var f=et(c,e,t+g,n,r,o,i,a);if(f===c)return this;var d=this.count;if(c){if(!f&&--d<ft)return function(e,t,n,r){for(var o=0,i=0,a=new Array(n),s=0,u=1,l=t.length;s<l;s++,u<<=1){var c=t[s];void 0!==c&&s!==r&&(o|=u,a[i++]=c)}return new Ue(e,o,a)}(e,l,d,s)}else d++;var p=e&&e===this.ownerID,h=ut(l,s,f,p);return p?(this.count=d,this.nodes=h,this):new $e(e,d,h)},He.prototype.get=function(e,t,n,r){for(var o=this.entries,i=0,a=o.length;i<a;i++)if(he(n,o[i][0]))return o[i][1];return r},He.prototype.update=function(e,t,n,r,o,i,a){void 0===n&&(n=ke(r));var s=o===v;if(n!==this.keyHash)return s?this:(w(a),w(i),nt(this,e,t,n,[r,o]));for(var u=this.entries,l=0,c=u.length;l<c&&!he(r,u[l][0]);l++);var f=l<c;if(f?u[l][1]===o:s)return this;if(w(a),(s||!f)&&w(i),s&&2===c)return new Ve(e,this.keyHash,u[1^l]);var d=e&&e===this.ownerID,p=d?u:C(u);return f?s?l===c-1?p.pop():p[l]=p.pop():p[l]=[r,o]:p.push([r,o]),d?(this.entries=p,this):new He(e,this.keyHash,p)},Ve.prototype.get=function(e,t,n,r){return he(n,this.entry[0])?this.entry[1]:r},Ve.prototype.update=function(e,t,n,r,o,i,a){var s=o===v,u=he(r,this.entry[0]);return(u?o===this.entry[1]:s)?this:(w(a),s?void w(i):u?e&&e===this.ownerID?(this.entry[1]=o,this):new Ve(e,this.keyHash,[r,o]):(w(i),nt(this,e,t,ke(r),[r,o])))},We.prototype.iterate=He.prototype.iterate=function(e,t){for(var n=this.entries,r=0,o=n.length-1;r<=o;r++)if(!1===e(n[t?o-r:r]))return!1},Ue.prototype.iterate=$e.prototype.iterate=function(e,t){for(var n=this.nodes,r=0,o=n.length-1;r<=o;r++){var i=n[t?o-r:r];if(i&&!1===i.iterate(e,t))return!1}},Ve.prototype.iterate=function(e,t){return e(this.entry)},t(Ge,L),Ge.prototype.next=function(){for(var e=this._type,t=this._stack;t;){var n,r=t.node,o=t.index++;if(r.entry){if(0===o)return Ye(e,r.entry)}else if(r.entries){if(n=r.entries.length-1,o<=n)return Ye(e,r.entries[this._reverse?n-o:o])}else if(n=r.nodes.length-1,o<=n){var i=r.nodes[this._reverse?n-o:o];if(i){if(i.entry)return Ye(e,i.entry);t=this._stack=Xe(i,t)}continue}t=this._stack=this._stack.__prev}return{value:void 0,done:!0}};var lt=y/4,ct=y/2,ft=y/4;function dt(e){var t=wt();if(null===e||void 0===e)return t;if(pt(e))return e;var n=o(e),r=n.size;return 0===r?t:(Be(r),r>0&&r<y?xt(0,r,g,null,new yt(n.toArray())):t.withMutations(function(e){e.setSize(r),n.forEach(function(t,n){return e.set(n,t)})}))}function pt(e){return!(!e||!e[ht])}t(dt,xe),dt.of=function(){return this(arguments)},dt.prototype.toString=function(){return this.__toString("List [","]")},dt.prototype.get=function(e,t){if((e=O(this,e))>=0&&e<this.size){var n=kt(this,e+=this._origin);return n&&n.array[e&m]}return t},dt.prototype.set=function(e,t){return function(e,t,n){if((t=O(e,t))!=t)return e;if(t>=e.size||t<0)return e.withMutations(function(e){t<0?Ot(e,t).set(0,n):Ot(e,0,t+1).set(t,n)});t+=e._origin;var r=e._tail,o=e._root,i=x(_);return t>=Tt(e._capacity)?r=St(r,e.__ownerID,0,t,n,i):o=St(o,e.__ownerID,e._level,t,n,i),i.value?e.__ownerID?(e._root=o,e._tail=r,e.__hash=void 0,e.__altered=!0,e):xt(e._origin,e._capacity,e._level,o,r):e}(this,e,t)},dt.prototype.remove=function(e){return this.has(e)?0===e?this.shift():e===this.size-1?this.pop():this.splice(e,1):this},dt.prototype.insert=function(e,t){return this.splice(e,0,t)},dt.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=g,this._root=this._tail=null,this.__hash=void 0,this.__altered=!0,this):wt()},dt.prototype.push=function(){var e=arguments,t=this.size;return this.withMutations(function(n){Ot(n,0,t+e.length);for(var r=0;r<e.length;r++)n.set(t+r,e[r])})},dt.prototype.pop=function(){return Ot(this,0,-1)},dt.prototype.unshift=function(){var e=arguments;return this.withMutations(function(t){Ot(t,-e.length);for(var n=0;n<e.length;n++)t.set(n,e[n])})},dt.prototype.shift=function(){return Ot(this,1)},dt.prototype.merge=function(){return Et(this,void 0,arguments)},dt.prototype.mergeWith=function(t){var n=e.call(arguments,1);return Et(this,t,n)},dt.prototype.mergeDeep=function(){return Et(this,ot,arguments)},dt.prototype.mergeDeepWith=function(t){var n=e.call(arguments,1);return Et(this,it(t),n)},dt.prototype.setSize=function(e){return Ot(this,0,e)},dt.prototype.slice=function(e,t){var n=this.size;return T(e,t,n)?this:Ot(this,M(e,n),P(t,n))},dt.prototype.__iterator=function(e,t){var n=0,r=_t(this,t);return new L(function(){var t=r();return t===bt?{value:void 0,done:!0}:F(e,n++,t)})},dt.prototype.__iterate=function(e,t){for(var n,r=0,o=_t(this,t);(n=o())!==bt&&!1!==e(n,r++,this););return r},dt.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?xt(this._origin,this._capacity,this._level,this._root,this._tail,e,this.__hash):(this.__ownerID=e,this)},dt.isList=pt;var ht="@@__IMMUTABLE_LIST__@@",gt=dt.prototype;function yt(e,t){this.array=e,this.ownerID=t}gt[ht]=!0,gt.delete=gt.remove,gt.setIn=Ke.setIn,gt.deleteIn=gt.removeIn=Ke.removeIn,gt.update=Ke.update,gt.updateIn=Ke.updateIn,gt.mergeIn=Ke.mergeIn,gt.mergeDeepIn=Ke.mergeDeepIn,gt.withMutations=Ke.withMutations,gt.asMutable=Ke.asMutable,gt.asImmutable=Ke.asImmutable,gt.wasAltered=Ke.wasAltered,yt.prototype.removeBefore=function(e,t,n){if(n===t?1<<t:0===this.array.length)return this;var r=n>>>t&m;if(r>=this.array.length)return new yt([],e);var o,i=0===r;if(t>0){var a=this.array[r];if((o=a&&a.removeBefore(e,t-g,n))===a&&i)return this}if(i&&!o)return this;var s=Ct(this,e);if(!i)for(var u=0;u<r;u++)s.array[u]=void 0;return o&&(s.array[r]=o),s},yt.prototype.removeAfter=function(e,t,n){if(n===(t?1<<t:0)||0===this.array.length)return this;var r,o=n-1>>>t&m;if(o>=this.array.length)return this;if(t>0){var i=this.array[o];if((r=i&&i.removeAfter(e,t-g,n))===i&&o===this.array.length-1)return this}var a=Ct(this,e);return a.array.splice(o+1),r&&(a.array[o]=r),a};var mt,vt,bt={};function _t(e,t){var n=e._origin,r=e._capacity,o=Tt(r),i=e._tail;return a(e._root,e._level,0);function a(e,s,u){return 0===s?function(e,a){var s=a===o?i&&i.array:e&&e.array,u=a>n?0:n-a,l=r-a;return l>y&&(l=y),function(){if(u===l)return bt;var e=t?--l:u++;return s&&s[e]}}(e,u):function(e,o,i){var s,u=e&&e.array,l=i>n?0:n-i>>o,c=1+(r-i>>o);return c>y&&(c=y),function(){for(;;){if(s){var e=s();if(e!==bt)return e;s=null}if(l===c)return bt;var n=t?--c:l++;s=a(u&&u[n],o-g,i+(n<<o))}}}(e,s,u)}}function xt(e,t,n,r,o,i,a){var s=Object.create(gt);return s.size=t-e,s._origin=e,s._capacity=t,s._level=n,s._root=r,s._tail=o,s.__ownerID=i,s.__hash=a,s.__altered=!1,s}function wt(){return mt||(mt=xt(0,0,g))}function St(e,t,n,r,o,i){var a,s=r>>>n&m,u=e&&s<e.array.length;if(!u&&void 0===o)return e;if(n>0){var l=e&&e.array[s],c=St(l,t,n-g,r,o,i);return c===l?e:((a=Ct(e,t)).array[s]=c,a)}return u&&e.array[s]===o?e:(w(i),a=Ct(e,t),void 0===o&&s===a.array.length-1?a.array.pop():a.array[s]=o,a)}function Ct(e,t){return t&&e&&t===e.ownerID?e:new yt(e?e.array.slice():[],t)}function kt(e,t){if(t>=Tt(e._capacity))return e._tail;if(t<1<<e._level+g){for(var n=e._root,r=e._level;n&&r>0;)n=n.array[t>>>r&m],r-=g;return n}}function Ot(e,t,n){void 0!==t&&(t|=0),void 0!==n&&(n|=0);var r=e.__ownerID||new S,o=e._origin,i=e._capacity,a=o+t,s=void 0===n?i:n<0?i+n:o+n;if(a===o&&s===i)return e;if(a>=s)return e.clear();for(var u=e._level,l=e._root,c=0;a+c<0;)l=new yt(l&&l.array.length?[void 0,l]:[],r),c+=1<<(u+=g);c&&(a+=c,o+=c,s+=c,i+=c);for(var f=Tt(i),d=Tt(s);d>=1<<u+g;)l=new yt(l&&l.array.length?[l]:[],r),u+=g;var p=e._tail,h=d<f?kt(e,s-1):d>f?new yt([],r):p;if(p&&d>f&&a<i&&p.array.length){for(var y=l=Ct(l,r),v=u;v>g;v-=g){var b=f>>>v&m;y=y.array[b]=Ct(y.array[b],r)}y.array[f>>>g&m]=p}if(s<i&&(h=h&&h.removeAfter(r,0,s)),a>=d)a-=d,s-=d,u=g,l=null,h=h&&h.removeBefore(r,0,a);else if(a>o||d<f){for(c=0;l;){var _=a>>>u&m;if(_!==d>>>u&m)break;_&&(c+=(1<<u)*_),u-=g,l=l.array[_]}l&&a>o&&(l=l.removeBefore(r,u,a-c)),l&&d<f&&(l=l.removeAfter(r,u,d-c)),c&&(a-=c,s-=c)}return e.__ownerID?(e.size=s-a,e._origin=a,e._capacity=s,e._level=u,e._root=l,e._tail=h,e.__hash=void 0,e.__altered=!0,e):xt(a,s,u,l,h)}function Et(e,t,n){for(var r=[],i=0,s=0;s<n.length;s++){var u=n[s],l=o(u);l.size>i&&(i=l.size),a(u)||(l=l.map(function(e){return fe(e)})),r.push(l)}return i>e.size&&(e=e.setSize(i)),at(e,t,r)}function Tt(e){return e<y?0:e-1>>>g<<g}function Mt(e){return null===e||void 0===e?At():Pt(e)?e:At().withMutations(function(t){var n=r(e);Be(n.size),n.forEach(function(e,n){return t.set(n,e)})})}function Pt(e){return Fe(e)&&c(e)}function jt(e,t,n,r){var o=Object.create(Mt.prototype);return o.size=e?e.size:0,o._map=e,o._list=t,o.__ownerID=n,o.__hash=r,o}function At(){return vt||(vt=jt(Ze(),wt()))}function It(e,t,n){var r,o,i=e._map,a=e._list,s=i.get(t),u=void 0!==s;if(n===v){if(!u)return e;a.size>=y&&a.size>=2*i.size?(o=a.filter(function(e,t){return void 0!==e&&s!==t}),r=o.toKeyedSeq().map(function(e){return e[0]}).flip().toMap(),e.__ownerID&&(r.__ownerID=o.__ownerID=e.__ownerID)):(r=i.remove(t),o=s===a.size-1?a.pop():a.set(s,void 0))}else if(u){if(n===a.get(s)[1])return e;r=i,o=a.set(s,[t,n])}else r=i.set(t,a.size),o=a.set(a.size,[t,n]);return e.__ownerID?(e.size=r.size,e._map=r,e._list=o,e.__hash=void 0,e):jt(r,o)}function Rt(e,t){this._iter=e,this._useKeys=t,this.size=e.size}function Dt(e){this._iter=e,this.size=e.size}function Nt(e){this._iter=e,this.size=e.size}function Bt(e){this._iter=e,this.size=e.size}function Lt(e){var t=Qt(e);return t._iter=e,t.size=e.size,t.flip=function(){return e},t.reverse=function(){var t=e.reverse.apply(this);return t.flip=function(){return e.reverse()},t},t.has=function(t){return e.includes(t)},t.includes=function(t){return e.has(t)},t.cacheResult=en,t.__iterateUncached=function(t,n){var r=this;return e.__iterate(function(e,n){return!1!==t(n,e,r)},n)},t.__iteratorUncached=function(t,n){if(t===R){var r=e.__iterator(t,n);return new L(function(){var e=r.next();if(!e.done){var t=e.value[0];e.value[0]=e.value[1],e.value[1]=t}return e})}return e.__iterator(t===I?A:I,n)},t}function Ft(e,t,n){var r=Qt(e);return r.size=e.size,r.has=function(t){return e.has(t)},r.get=function(r,o){var i=e.get(r,v);return i===v?o:t.call(n,i,r,e)},r.__iterateUncached=function(r,o){var i=this;return e.__iterate(function(e,o,a){return!1!==r(t.call(n,e,o,a),o,i)},o)},r.__iteratorUncached=function(r,o){var i=e.__iterator(R,o);return new L(function(){var o=i.next();if(o.done)return o;var a=o.value,s=a[0];return F(r,s,t.call(n,a[1],s,e),o)})},r}function zt(e,t){var n=Qt(e);return n._iter=e,n.size=e.size,n.reverse=function(){return e},e.flip&&(n.flip=function(){var t=Lt(e);return t.reverse=function(){return e.flip()},t}),n.get=function(n,r){return e.get(t?n:-1-n,r)},n.has=function(n){return e.has(t?n:-1-n)},n.includes=function(t){return e.includes(t)},n.cacheResult=en,n.__iterate=function(t,n){var r=this;return e.__iterate(function(e,n){return t(e,n,r)},!n)},n.__iterator=function(t,n){return e.__iterator(t,!n)},n}function qt(e,t,n,r){var o=Qt(e);return r&&(o.has=function(r){var o=e.get(r,v);return o!==v&&!!t.call(n,o,r,e)},o.get=function(r,o){var i=e.get(r,v);return i!==v&&t.call(n,i,r,e)?i:o}),o.__iterateUncached=function(o,i){var a=this,s=0;return e.__iterate(function(e,i,u){if(t.call(n,e,i,u))return s++,o(e,r?i:s-1,a)},i),s},o.__iteratorUncached=function(o,i){var a=e.__iterator(R,i),s=0;return new L(function(){for(;;){var i=a.next();if(i.done)return i;var u=i.value,l=u[0],c=u[1];if(t.call(n,c,l,e))return F(o,r?l:s++,c,i)}})},o}function Kt(e,t,n,r){var o=e.size;if(void 0!==t&&(t|=0),void 0!==n&&(n|=0),T(t,n,o))return e;var i=M(t,o),a=P(n,o);if(i!=i||a!=a)return Kt(e.toSeq().cacheResult(),t,n,r);var s,u=a-i;u==u&&(s=u<0?0:u);var l=Qt(e);return l.size=0===s?s:e.size&&s||void 0,!r&&oe(e)&&s>=0&&(l.get=function(t,n){return(t=O(this,t))>=0&&t<s?e.get(t+i,n):n}),l.__iterateUncached=function(t,n){var o=this;if(0===s)return 0;if(n)return this.cacheResult().__iterate(t,n);var a=0,u=!0,l=0;return e.__iterate(function(e,n){if(!u||!(u=a++<i))return l++,!1!==t(e,r?n:l-1,o)&&l!==s}),l},l.__iteratorUncached=function(t,n){if(0!==s&&n)return this.cacheResult().__iterator(t,n);var o=0!==s&&e.__iterator(t,n),a=0,u=0;return new L(function(){for(;a++<i;)o.next();if(++u>s)return{value:void 0,done:!0};var e=o.next();return r||t===I?e:F(t,u-1,t===A?void 0:e.value[1],e)})},l}function Wt(e,t,n,r){var o=Qt(e);return o.__iterateUncached=function(o,i){var a=this;if(i)return this.cacheResult().__iterate(o,i);var s=!0,u=0;return e.__iterate(function(e,i,l){if(!s||!(s=t.call(n,e,i,l)))return u++,o(e,r?i:u-1,a)}),u},o.__iteratorUncached=function(o,i){var a=this;if(i)return this.cacheResult().__iterator(o,i);var s=e.__iterator(R,i),u=!0,l=0;return new L(function(){var e,i,c;do{if((e=s.next()).done)return r||o===I?e:F(o,l++,o===A?void 0:e.value[1],e);var f=e.value;i=f[0],c=f[1],u&&(u=t.call(n,c,i,a))}while(u);return o===R?e:F(o,i,c,e)})},o}function Ut(e,t,n){var r=Qt(e);return r.__iterateUncached=function(r,o){var i=0,s=!1;return function e(u,l){var c=this;u.__iterate(function(o,u){return(!t||l<t)&&a(o)?e(o,l+1):!1===r(o,n?u:i++,c)&&(s=!0),!s},o)}(e,0),i},r.__iteratorUncached=function(r,o){var i=e.__iterator(r,o),s=[],u=0;return new L(function(){for(;i;){var e=i.next();if(!1===e.done){var l=e.value;if(r===R&&(l=l[1]),t&&!(s.length<t)||!a(l))return n?e:F(r,u++,l,e);s.push(i),i=l.__iterator(r,o)}else i=s.pop()}return{value:void 0,done:!0}})},r}function $t(e,t,n){t||(t=tn);var r=s(e),o=0,i=e.toSeq().map(function(t,r){return[r,t,o++,n?n(t,r,e):t]}).toArray();return i.sort(function(e,n){return t(e[3],n[3])||e[2]-n[2]}).forEach(r?function(e,t){i[t].length=2}:function(e,t){i[t]=e[1]}),r?V(i):u(e)?G(i):Y(i)}function Ht(e,t,n){if(t||(t=tn),n){var r=e.toSeq().map(function(t,r){return[t,n(t,r,e)]}).reduce(function(e,n){return Vt(t,e[1],n[1])?n:e});return r&&r[0]}return e.reduce(function(e,n){return Vt(t,e,n)?n:e})}function Vt(e,t,n){var r=e(n,t);return 0===r&&n!==t&&(void 0===n||null===n||n!=n)||r>0}function Gt(e,t,r){var o=Qt(e);return o.size=new ee(r).map(function(e){return e.size}).min(),o.__iterate=function(e,t){for(var n,r=this.__iterator(I,t),o=0;!(n=r.next()).done&&!1!==e(n.value,o++,this););return o},o.__iteratorUncached=function(e,o){var i=r.map(function(e){return e=n(e),W(o?e.reverse():e)}),a=0,s=!1;return new L(function(){var n;return s||(n=i.map(function(e){return e.next()}),s=n.some(function(e){return e.done})),s?{value:void 0,done:!0}:F(e,a++,t.apply(null,n.map(function(e){return e.value})))})},o}function Yt(e,t){return oe(e)?t:e.constructor(t)}function Xt(e){if(e!==Object(e))throw new TypeError("Expected [K, V] tuple: "+e)}function Jt(e){return Be(e.size),k(e)}function Zt(e){return s(e)?r:u(e)?o:i}function Qt(e){return Object.create((s(e)?V:u(e)?G:Y).prototype)}function en(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):H.prototype.cacheResult.call(this)}function tn(e,t){return e>t?1:e<t?-1:0}function nn(e){var t=W(e);if(!t){if(!$(e))throw new TypeError("Expected iterable or array-like: "+e);t=W(n(e))}return t}function rn(e,t){var n,r=function(i){if(i instanceof r)return i;if(!(this instanceof r))return new r(i);if(!n){n=!0;var a=Object.keys(e);!function(e,t){try{t.forEach(function(e,t){Object.defineProperty(e,t,{get:function(){return this.get(t)},set:function(e){me(this.__ownerID,"Cannot set on an immutable record."),this.set(t,e)}})}.bind(void 0,e))}catch(e){}}(o,a),o.size=a.length,o._name=t,o._keys=a,o._defaultValues=e}this._map=Le(i)},o=r.prototype=Object.create(on);return o.constructor=r,r}t(Mt,Le),Mt.of=function(){return this(arguments)},Mt.prototype.toString=function(){return this.__toString("OrderedMap {","}")},Mt.prototype.get=function(e,t){var n=this._map.get(e);return void 0!==n?this._list.get(n)[1]:t},Mt.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):At()},Mt.prototype.set=function(e,t){return It(this,e,t)},Mt.prototype.remove=function(e){return It(this,e,v)},Mt.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},Mt.prototype.__iterate=function(e,t){var n=this;return this._list.__iterate(function(t){return t&&e(t[1],t[0],n)},t)},Mt.prototype.__iterator=function(e,t){return this._list.fromEntrySeq().__iterator(e,t)},Mt.prototype.__ensureOwner=function(e){if(e===this.__ownerID)return this;var t=this._map.__ensureOwner(e),n=this._list.__ensureOwner(e);return e?jt(t,n,e,this.__hash):(this.__ownerID=e,this._map=t,this._list=n,this)},Mt.isOrderedMap=Pt,Mt.prototype[h]=!0,Mt.prototype.delete=Mt.prototype.remove,t(Rt,V),Rt.prototype.get=function(e,t){return this._iter.get(e,t)},Rt.prototype.has=function(e){return this._iter.has(e)},Rt.prototype.valueSeq=function(){return this._iter.valueSeq()},Rt.prototype.reverse=function(){var e=this,t=zt(this,!0);return this._useKeys||(t.valueSeq=function(){return e._iter.toSeq().reverse()}),t},Rt.prototype.map=function(e,t){var n=this,r=Ft(this,e,t);return this._useKeys||(r.valueSeq=function(){return n._iter.toSeq().map(e,t)}),r},Rt.prototype.__iterate=function(e,t){var n,r=this;return this._iter.__iterate(this._useKeys?function(t,n){return e(t,n,r)}:(n=t?Jt(this):0,function(o){return e(o,t?--n:n++,r)}),t)},Rt.prototype.__iterator=function(e,t){if(this._useKeys)return this._iter.__iterator(e,t);var n=this._iter.__iterator(I,t),r=t?Jt(this):0;return new L(function(){var o=n.next();return o.done?o:F(e,t?--r:r++,o.value,o)})},Rt.prototype[h]=!0,t(Dt,G),Dt.prototype.includes=function(e){return this._iter.includes(e)},Dt.prototype.__iterate=function(e,t){var n=this,r=0;return this._iter.__iterate(function(t){return e(t,r++,n)},t)},Dt.prototype.__iterator=function(e,t){var n=this._iter.__iterator(I,t),r=0;return new L(function(){var t=n.next();return t.done?t:F(e,r++,t.value,t)})},t(Nt,Y),Nt.prototype.has=function(e){return this._iter.includes(e)},Nt.prototype.__iterate=function(e,t){var n=this;return this._iter.__iterate(function(t){return e(t,t,n)},t)},Nt.prototype.__iterator=function(e,t){var n=this._iter.__iterator(I,t);return new L(function(){var t=n.next();return t.done?t:F(e,t.value,t.value,t)})},t(Bt,V),Bt.prototype.entrySeq=function(){return this._iter.toSeq()},Bt.prototype.__iterate=function(e,t){var n=this;return this._iter.__iterate(function(t){if(t){Xt(t);var r=a(t);return e(r?t.get(1):t[1],r?t.get(0):t[0],n)}},t)},Bt.prototype.__iterator=function(e,t){var n=this._iter.__iterator(I,t);return new L(function(){for(;;){var t=n.next();if(t.done)return t;var r=t.value;if(r){Xt(r);var o=a(r);return F(e,o?r.get(0):r[0],o?r.get(1):r[1],t)}}})},Dt.prototype.cacheResult=Rt.prototype.cacheResult=Nt.prototype.cacheResult=Bt.prototype.cacheResult=en,t(rn,_e),rn.prototype.toString=function(){return this.__toString(sn(this)+" {","}")},rn.prototype.has=function(e){return this._defaultValues.hasOwnProperty(e)},rn.prototype.get=function(e,t){if(!this.has(e))return t;var n=this._defaultValues[e];return this._map?this._map.get(e,n):n},rn.prototype.clear=function(){if(this.__ownerID)return this._map&&this._map.clear(),this;var e=this.constructor;return e._empty||(e._empty=an(this,Ze()))},rn.prototype.set=function(e,t){if(!this.has(e))throw new Error('Cannot set unknown key "'+e+'" on '+sn(this));var n=this._map&&this._map.set(e,t);return this.__ownerID||n===this._map?this:an(this,n)},rn.prototype.remove=function(e){if(!this.has(e))return this;var t=this._map&&this._map.remove(e);return this.__ownerID||t===this._map?this:an(this,t)},rn.prototype.wasAltered=function(){return this._map.wasAltered()},rn.prototype.__iterator=function(e,t){var n=this;return r(this._defaultValues).map(function(e,t){return n.get(t)}).__iterator(e,t)},rn.prototype.__iterate=function(e,t){var n=this;return r(this._defaultValues).map(function(e,t){return n.get(t)}).__iterate(e,t)},rn.prototype.__ensureOwner=function(e){if(e===this.__ownerID)return this;var t=this._map&&this._map.__ensureOwner(e);return e?an(this,t,e):(this.__ownerID=e,this._map=t,this)};var on=rn.prototype;function an(e,t,n){var r=Object.create(Object.getPrototypeOf(e));return r._map=t,r.__ownerID=n,r}function sn(e){return e._name||e.constructor.name||"Record"}function un(e){return null===e||void 0===e?gn():ln(e)&&!c(e)?e:gn().withMutations(function(t){var n=i(e);Be(n.size),n.forEach(function(e){return t.add(e)})})}function ln(e){return!(!e||!e[fn])}on.delete=on.remove,on.deleteIn=on.removeIn=Ke.removeIn,on.merge=Ke.merge,on.mergeWith=Ke.mergeWith,on.mergeIn=Ke.mergeIn,on.mergeDeep=Ke.mergeDeep,on.mergeDeepWith=Ke.mergeDeepWith,on.mergeDeepIn=Ke.mergeDeepIn,on.setIn=Ke.setIn,on.update=Ke.update,on.updateIn=Ke.updateIn,on.withMutations=Ke.withMutations,on.asMutable=Ke.asMutable,on.asImmutable=Ke.asImmutable,t(un,we),un.of=function(){return this(arguments)},un.fromKeys=function(e){return this(r(e).keySeq())},un.prototype.toString=function(){return this.__toString("Set {","}")},un.prototype.has=function(e){return this._map.has(e)},un.prototype.add=function(e){return pn(this,this._map.set(e,!0))},un.prototype.remove=function(e){return pn(this,this._map.remove(e))},un.prototype.clear=function(){return pn(this,this._map.clear())},un.prototype.union=function(){var t=e.call(arguments,0);return 0===(t=t.filter(function(e){return 0!==e.size})).length?this:0!==this.size||this.__ownerID||1!==t.length?this.withMutations(function(e){for(var n=0;n<t.length;n++)i(t[n]).forEach(function(t){return e.add(t)})}):this.constructor(t[0])},un.prototype.intersect=function(){var t=e.call(arguments,0);if(0===t.length)return this;t=t.map(function(e){return i(e)});var n=this;return this.withMutations(function(e){n.forEach(function(n){t.every(function(e){return e.includes(n)})||e.remove(n)})})},un.prototype.subtract=function(){var t=e.call(arguments,0);if(0===t.length)return this;t=t.map(function(e){return i(e)});var n=this;return this.withMutations(function(e){n.forEach(function(n){t.some(function(e){return e.includes(n)})&&e.remove(n)})})},un.prototype.merge=function(){return this.union.apply(this,arguments)},un.prototype.mergeWith=function(t){var n=e.call(arguments,1);return this.union.apply(this,n)},un.prototype.sort=function(e){return yn($t(this,e))},un.prototype.sortBy=function(e,t){return yn($t(this,t,e))},un.prototype.wasAltered=function(){return this._map.wasAltered()},un.prototype.__iterate=function(e,t){var n=this;return this._map.__iterate(function(t,r){return e(r,r,n)},t)},un.prototype.__iterator=function(e,t){return this._map.map(function(e,t){return t}).__iterator(e,t)},un.prototype.__ensureOwner=function(e){if(e===this.__ownerID)return this;var t=this._map.__ensureOwner(e);return e?this.__make(t,e):(this.__ownerID=e,this._map=t,this)},un.isSet=ln;var cn,fn="@@__IMMUTABLE_SET__@@",dn=un.prototype;function pn(e,t){return e.__ownerID?(e.size=t.size,e._map=t,e):t===e._map?e:0===t.size?e.__empty():e.__make(t)}function hn(e,t){var n=Object.create(dn);return n.size=e?e.size:0,n._map=e,n.__ownerID=t,n}function gn(){return cn||(cn=hn(Ze()))}function yn(e){return null===e||void 0===e?xn():mn(e)?e:xn().withMutations(function(t){var n=i(e);Be(n.size),n.forEach(function(e){return t.add(e)})})}function mn(e){return ln(e)&&c(e)}dn[fn]=!0,dn.delete=dn.remove,dn.mergeDeep=dn.merge,dn.mergeDeepWith=dn.mergeWith,dn.withMutations=Ke.withMutations,dn.asMutable=Ke.asMutable,dn.asImmutable=Ke.asImmutable,dn.__empty=gn,dn.__make=hn,t(yn,un),yn.of=function(){return this(arguments)},yn.fromKeys=function(e){return this(r(e).keySeq())},yn.prototype.toString=function(){return this.__toString("OrderedSet {","}")},yn.isOrderedSet=mn;var vn,bn=yn.prototype;function _n(e,t){var n=Object.create(bn);return n.size=e?e.size:0,n._map=e,n.__ownerID=t,n}function xn(){return vn||(vn=_n(At()))}function wn(e){return null===e||void 0===e?Tn():Sn(e)?e:Tn().unshiftAll(e)}function Sn(e){return!(!e||!e[kn])}bn[h]=!0,bn.__empty=xn,bn.__make=_n,t(wn,xe),wn.of=function(){return this(arguments)},wn.prototype.toString=function(){return this.__toString("Stack [","]")},wn.prototype.get=function(e,t){var n=this._head;for(e=O(this,e);n&&e--;)n=n.next;return n?n.value:t},wn.prototype.peek=function(){return this._head&&this._head.value},wn.prototype.push=function(){if(0===arguments.length)return this;for(var e=this.size+arguments.length,t=this._head,n=arguments.length-1;n>=0;n--)t={value:arguments[n],next:t};return this.__ownerID?(this.size=e,this._head=t,this.__hash=void 0,this.__altered=!0,this):En(e,t)},wn.prototype.pushAll=function(e){if(0===(e=o(e)).size)return this;Be(e.size);var t=this.size,n=this._head;return e.reverse().forEach(function(e){t++,n={value:e,next:n}}),this.__ownerID?(this.size=t,this._head=n,this.__hash=void 0,this.__altered=!0,this):En(t,n)},wn.prototype.pop=function(){return this.slice(1)},wn.prototype.unshift=function(){return this.push.apply(this,arguments)},wn.prototype.unshiftAll=function(e){return this.pushAll(e)},wn.prototype.shift=function(){return this.pop.apply(this,arguments)},wn.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):Tn()},wn.prototype.slice=function(e,t){if(T(e,t,this.size))return this;var n=M(e,this.size),r=P(t,this.size);if(r!==this.size)return xe.prototype.slice.call(this,e,t);for(var o=this.size-n,i=this._head;n--;)i=i.next;return this.__ownerID?(this.size=o,this._head=i,this.__hash=void 0,this.__altered=!0,this):En(o,i)},wn.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?En(this.size,this._head,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},wn.prototype.__iterate=function(e,t){if(t)return this.reverse().__iterate(e);for(var n=0,r=this._head;r&&!1!==e(r.value,n++,this);)r=r.next;return n},wn.prototype.__iterator=function(e,t){if(t)return this.reverse().__iterator(e);var n=0,r=this._head;return new L(function(){if(r){var t=r.value;return r=r.next,F(e,n++,t)}return{value:void 0,done:!0}})},wn.isStack=Sn;var Cn,kn="@@__IMMUTABLE_STACK__@@",On=wn.prototype;function En(e,t,n,r){var o=Object.create(On);return o.size=e,o._head=t,o.__ownerID=n,o.__hash=r,o.__altered=!1,o}function Tn(){return Cn||(Cn=En(0))}function Mn(e,t){var n=function(n){e.prototype[n]=t[n]};return Object.keys(t).forEach(n),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach(n),e}On[kn]=!0,On.withMutations=Ke.withMutations,On.asMutable=Ke.asMutable,On.asImmutable=Ke.asImmutable,On.wasAltered=Ke.wasAltered,n.Iterator=L,Mn(n,{toArray:function(){Be(this.size);var e=new Array(this.size||0);return this.valueSeq().__iterate(function(t,n){e[n]=t}),e},toIndexedSeq:function(){return new Dt(this)},toJS:function(){return this.toSeq().map(function(e){return e&&"function"==typeof e.toJS?e.toJS():e}).__toJS()},toJSON:function(){return this.toSeq().map(function(e){return e&&"function"==typeof e.toJSON?e.toJSON():e}).__toJS()},toKeyedSeq:function(){return new Rt(this,!0)},toMap:function(){return Le(this.toKeyedSeq())},toObject:function(){Be(this.size);var e={};return this.__iterate(function(t,n){e[n]=t}),e},toOrderedMap:function(){return Mt(this.toKeyedSeq())},toOrderedSet:function(){return yn(s(this)?this.valueSeq():this)},toSet:function(){return un(s(this)?this.valueSeq():this)},toSetSeq:function(){return new Nt(this)},toSeq:function(){return u(this)?this.toIndexedSeq():s(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return wn(s(this)?this.valueSeq():this)},toList:function(){return dt(s(this)?this.valueSeq():this)},toString:function(){return"[Iterable]"},__toString:function(e,t){return 0===this.size?e+t:e+" "+this.toSeq().map(this.__toStringMapper).join(", ")+" "+t},concat:function(){var t=e.call(arguments,0);return Yt(this,function(e,t){var n=s(e),o=[e].concat(t).map(function(e){return a(e)?n&&(e=r(e)):e=n?ae(e):se(Array.isArray(e)?e:[e]),e}).filter(function(e){return 0!==e.size});if(0===o.length)return e;if(1===o.length){var i=o[0];if(i===e||n&&s(i)||u(e)&&u(i))return i}var l=new ee(o);return n?l=l.toKeyedSeq():u(e)||(l=l.toSetSeq()),(l=l.flatten(!0)).size=o.reduce(function(e,t){if(void 0!==e){var n=t.size;if(void 0!==n)return e+n}},0),l}(this,t))},includes:function(e){return this.some(function(t){return he(t,e)})},entries:function(){return this.__iterator(R)},every:function(e,t){Be(this.size);var n=!0;return this.__iterate(function(r,o,i){if(!e.call(t,r,o,i))return n=!1,!1}),n},filter:function(e,t){return Yt(this,qt(this,e,t,!0))},find:function(e,t,n){var r=this.findEntry(e,t);return r?r[1]:n},findEntry:function(e,t){var n;return this.__iterate(function(r,o,i){if(e.call(t,r,o,i))return n=[o,r],!1}),n},findLastEntry:function(e,t){return this.toSeq().reverse().findEntry(e,t)},forEach:function(e,t){return Be(this.size),this.__iterate(t?e.bind(t):e)},join:function(e){Be(this.size),e=void 0!==e?""+e:",";var t="",n=!0;return this.__iterate(function(r){n?n=!1:t+=e,t+=null!==r&&void 0!==r?r.toString():""}),t},keys:function(){return this.__iterator(A)},map:function(e,t){return Yt(this,Ft(this,e,t))},reduce:function(e,t,n){var r,o;return Be(this.size),arguments.length<2?o=!0:r=t,this.__iterate(function(t,i,a){o?(o=!1,r=t):r=e.call(n,r,t,i,a)}),r},reduceRight:function(e,t,n){var r=this.toKeyedSeq().reverse();return r.reduce.apply(r,arguments)},reverse:function(){return Yt(this,zt(this,!0))},slice:function(e,t){return Yt(this,Kt(this,e,t,!0))},some:function(e,t){return!this.every(Rn(e),t)},sort:function(e){return Yt(this,$t(this,e))},values:function(){return this.__iterator(I)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return void 0!==this.size?0===this.size:!this.some(function(){return!0})},count:function(e,t){return k(e?this.toSeq().filter(e,t):this)},countBy:function(e,t){return function(e,t,n){var r=Le().asMutable();return e.__iterate(function(o,i){r.update(t.call(n,o,i,e),0,function(e){return e+1})}),r.asImmutable()}(this,e,t)},equals:function(e){return ge(this,e)},entrySeq:function(){var e=this;if(e._cache)return new ee(e._cache);var t=e.toSeq().map(In).toIndexedSeq();return t.fromEntrySeq=function(){return e.toSeq()},t},filterNot:function(e,t){return this.filter(Rn(e),t)},findLast:function(e,t,n){return this.toKeyedSeq().reverse().find(e,t,n)},first:function(){return this.find(E)},flatMap:function(e,t){return Yt(this,function(e,t,n){var r=Zt(e);return e.toSeq().map(function(o,i){return r(t.call(n,o,i,e))}).flatten(!0)}(this,e,t))},flatten:function(e){return Yt(this,Ut(this,e,!0))},fromEntrySeq:function(){return new Bt(this)},get:function(e,t){return this.find(function(t,n){return he(n,e)},void 0,t)},getIn:function(e,t){for(var n,r=this,o=nn(e);!(n=o.next()).done;){var i=n.value;if((r=r&&r.get?r.get(i,v):v)===v)return t}return r},groupBy:function(e,t){return function(e,t,n){var r=s(e),o=(c(e)?Mt():Le()).asMutable();e.__iterate(function(i,a){o.update(t.call(n,i,a,e),function(e){return(e=e||[]).push(r?[a,i]:i),e})});var i=Zt(e);return o.map(function(t){return Yt(e,i(t))})}(this,e,t)},has:function(e){return this.get(e,v)!==v},hasIn:function(e){return this.getIn(e,v)!==v},isSubset:function(e){return e="function"==typeof e.includes?e:n(e),this.every(function(t){return e.includes(t)})},isSuperset:function(e){return(e="function"==typeof e.isSubset?e:n(e)).isSubset(this)},keySeq:function(){return this.toSeq().map(An).toIndexedSeq()},last:function(){return this.toSeq().reverse().first()},max:function(e){return Ht(this,e)},maxBy:function(e,t){return Ht(this,t,e)},min:function(e){return Ht(this,e?Dn(e):Ln)},minBy:function(e,t){return Ht(this,t?Dn(t):Ln,e)},rest:function(){return this.slice(1)},skip:function(e){return this.slice(Math.max(0,e))},skipLast:function(e){return Yt(this,this.toSeq().reverse().skip(e).reverse())},skipWhile:function(e,t){return Yt(this,Wt(this,e,t,!0))},skipUntil:function(e,t){return this.skipWhile(Rn(e),t)},sortBy:function(e,t){return Yt(this,$t(this,t,e))},take:function(e){return this.slice(0,Math.max(0,e))},takeLast:function(e){return Yt(this,this.toSeq().reverse().take(e).reverse())},takeWhile:function(e,t){return Yt(this,function(e,t,n){var r=Qt(e);return r.__iterateUncached=function(r,o){var i=this;if(o)return this.cacheResult().__iterate(r,o);var a=0;return e.__iterate(function(e,o,s){return t.call(n,e,o,s)&&++a&&r(e,o,i)}),a},r.__iteratorUncached=function(r,o){var i=this;if(o)return this.cacheResult().__iterator(r,o);var a=e.__iterator(R,o),s=!0;return new L(function(){if(!s)return{value:void 0,done:!0};var e=a.next();if(e.done)return e;var o=e.value,u=o[0],l=o[1];return t.call(n,l,u,i)?r===R?e:F(r,u,l,e):(s=!1,{value:void 0,done:!0})})},r}(this,e,t))},takeUntil:function(e,t){return this.takeWhile(Rn(e),t)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=function(e){if(e.size===1/0)return 0;var t=c(e),n=s(e),r=t?1:0;return function(e,t){return t=Se(t,3432918353),t=Se(t<<15|t>>>-15,461845907),t=Se(t<<13|t>>>-13,5),t=Se((t=(t+3864292196|0)^e)^t>>>16,2246822507),t=Ce((t=Se(t^t>>>13,3266489909))^t>>>16)}(e.__iterate(n?t?function(e,t){r=31*r+Fn(ke(e),ke(t))|0}:function(e,t){r=r+Fn(ke(e),ke(t))|0}:t?function(e){r=31*r+ke(e)|0}:function(e){r=r+ke(e)|0}),r)}(this))}});var Pn=n.prototype;Pn[f]=!0,Pn[B]=Pn.values,Pn.__toJS=Pn.toArray,Pn.__toStringMapper=Nn,Pn.inspect=Pn.toSource=function(){return this.toString()},Pn.chain=Pn.flatMap,Pn.contains=Pn.includes,function(){try{Object.defineProperty(Pn,"length",{get:function(){if(!n.noLengthWarning){var e;try{throw new Error}catch(t){e=t.stack}if(-1===e.indexOf("_wrapObject"))return console&&console.warn&&console.warn("iterable.length has been deprecated, use iterable.size or iterable.count(). This warning will become a silent error in a future version. "+e),this.size}}})}catch(e){}}(),Mn(r,{flip:function(){return Yt(this,Lt(this))},findKey:function(e,t){var n=this.findEntry(e,t);return n&&n[0]},findLastKey:function(e,t){return this.toSeq().reverse().findKey(e,t)},keyOf:function(e){return this.findKey(function(t){return he(t,e)})},lastKeyOf:function(e){return this.findLastKey(function(t){return he(t,e)})},mapEntries:function(e,t){var n=this,r=0;return Yt(this,this.toSeq().map(function(o,i){return e.call(t,[i,o],r++,n)}).fromEntrySeq())},mapKeys:function(e,t){var n=this;return Yt(this,this.toSeq().flip().map(function(r,o){return e.call(t,r,o,n)}).flip())}});var jn=r.prototype;function An(e,t){return t}function In(e,t){return[t,e]}function Rn(e){return function(){return!e.apply(this,arguments)}}function Dn(e){return function(){return-e.apply(this,arguments)}}function Nn(e){return"string"==typeof e?JSON.stringify(e):e}function Bn(){return C(arguments)}function Ln(e,t){return e<t?1:e>t?-1:0}function Fn(e,t){return e^t+2654435769+(e<<6)+(e>>2)|0}return jn[d]=!0,jn[B]=Pn.entries,jn.__toJS=Pn.toObject,jn.__toStringMapper=function(e,t){return JSON.stringify(t)+": "+Nn(e)},Mn(o,{toKeyedSeq:function(){return new Rt(this,!1)},filter:function(e,t){return Yt(this,qt(this,e,t,!1))},findIndex:function(e,t){var n=this.findEntry(e,t);return n?n[0]:-1},indexOf:function(e){var t=this.toKeyedSeq().keyOf(e);return void 0===t?-1:t},lastIndexOf:function(e){var t=this.toKeyedSeq().reverse().keyOf(e);return void 0===t?-1:t},reverse:function(){return Yt(this,zt(this,!1))},slice:function(e,t){return Yt(this,Kt(this,e,t,!1))},splice:function(e,t){var n=arguments.length;if(t=Math.max(0|t,0),0===n||2===n&&!t)return this;e=M(e,e<0?this.count():this.size);var r=this.slice(0,e);return Yt(this,1===n?r:r.concat(C(arguments,2),this.slice(e+t)))},findLastIndex:function(e,t){var n=this.toKeyedSeq().findLastKey(e,t);return void 0===n?-1:n},first:function(){return this.get(0)},flatten:function(e){return Yt(this,Ut(this,e,!1))},get:function(e,t){return(e=O(this,e))<0||this.size===1/0||void 0!==this.size&&e>this.size?t:this.find(function(t,n){return n===e},void 0,t)},has:function(e){return(e=O(this,e))>=0&&(void 0!==this.size?this.size===1/0||e<this.size:-1!==this.indexOf(e))},interpose:function(e){return Yt(this,function(e,t){var n=Qt(e);return n.size=e.size&&2*e.size-1,n.__iterateUncached=function(n,r){var o=this,i=0;return e.__iterate(function(e,r){return(!i||!1!==n(t,i++,o))&&!1!==n(e,i++,o)},r),i},n.__iteratorUncached=function(n,r){var o,i=e.__iterator(I,r),a=0;return new L(function(){return(!o||a%2)&&(o=i.next()).done?o:a%2?F(n,a++,t):F(n,a++,o.value,o)})},n}(this,e))},interleave:function(){var e=[this].concat(C(arguments)),t=Gt(this.toSeq(),G.of,e),n=t.flatten(!0);return t.size&&(n.size=t.size*e.length),Yt(this,n)},last:function(){return this.get(-1)},skipWhile:function(e,t){return Yt(this,Wt(this,e,t,!1))},zip:function(){return Yt(this,Gt(this,Bn,[this].concat(C(arguments))))},zipWith:function(e){var t=C(arguments);return t[0]=this,Yt(this,Gt(this,e,t))}}),o.prototype[p]=!0,o.prototype[h]=!0,Mn(i,{get:function(e,t){return this.has(e)?e:t},includes:function(e){return this.has(e)},keySeq:function(){return this.valueSeq()}}),i.prototype.has=Pn.includes,Mn(V,r.prototype),Mn(G,o.prototype),Mn(Y,i.prototype),Mn(_e,r.prototype),Mn(xe,o.prototype),Mn(we,i.prototype),{Iterable:n,Seq:H,Collection:be,Map:Le,OrderedMap:Mt,List:dt,Stack:wn,Set:un,OrderedSet:yn,Record:rn,Range:ve,Repeat:ye,is:he,fromJS:fe}}()},function(e,t,n){"use strict";var r=function(e){};e.exports=function(e,t,n,o,i,a,s,u){if(r(t),!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,o,i,a,s,u],f=0;(l=new Error(t.replace(/%s/g,function(){return c[f++]}))).name="Invariant Violation"}throw l.framesToPop=1,l}}},function(e,t,n){"use strict";var r=n(26)||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};var o=n(317),i=n(184),a=n(783),s=n(4),u=n(71),l=s.OrderedSet,c=s.Record,f=s.Stack,d=c({allowUndo:!0,currentContent:null,decorator:null,directionMap:null,forceSelection:!1,inCompositionMode:!1,inlineStyleOverride:null,lastChangeType:null,nativelyRenderedContent:null,redoStack:f(),selection:null,treeMap:null,undoStack:f()}),p=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._immutable=t}return e.createEmpty=function(t){return e.createWithContent(i.createFromText(""),t)},e.createWithContent=function(t,n){var r=t.getBlockMap().first().getKey();return e.create({currentContent:t,undoStack:f(),redoStack:f(),decorator:n||null,selection:u.createEmpty(r)})},e.create=function(t){var n=t.currentContent,o=t.decorator,i=r({},t,{treeMap:g(n,o),directionMap:a.getDirectionMap(n)});return new e(new d(i))},e.set=function(t,n){return new e(t.getImmutable().withMutations(function(e){var r=e.get("decorator"),i=r;null===n.decorator?i=null:n.decorator&&(i=n.decorator);var a=n.currentContent||t.getCurrentContent();if(i!==r){var s,u=e.get("treeMap");return s=i&&r?function(e,t,n,r,i){return n.merge(t.toSeq().filter(function(t){return r.getDecorations(t,e)!==i.getDecorations(t,e)}).map(function(t){return o.generate(e,t,r)}))}(a,a.getBlockMap(),u,i,r):g(a,i),void e.merge({decorator:i,treeMap:s,nativelyRenderedContent:null})}a!==t.getCurrentContent()&&e.set("treeMap",function(e,t,n,r){var i=e.getCurrentContent().set("entityMap",n),a=i.getBlockMap();return e.getImmutable().get("treeMap").merge(t.toSeq().filter(function(e,t){return e!==a.get(t)}).map(function(e){return o.generate(i,e,r)}))}(t,a.getBlockMap(),a.getEntityMap(),i)),e.merge(n)}))},e.prototype.toJS=function(){return this.getImmutable().toJS()},e.prototype.getAllowUndo=function(){return this.getImmutable().get("allowUndo")},e.prototype.getCurrentContent=function(){return this.getImmutable().get("currentContent")},e.prototype.getUndoStack=function(){return this.getImmutable().get("undoStack")},e.prototype.getRedoStack=function(){return this.getImmutable().get("redoStack")},e.prototype.getSelection=function(){return this.getImmutable().get("selection")},e.prototype.getDecorator=function(){return this.getImmutable().get("decorator")},e.prototype.isInCompositionMode=function(){return this.getImmutable().get("inCompositionMode")},e.prototype.mustForceSelection=function(){return this.getImmutable().get("forceSelection")},e.prototype.getNativelyRenderedContent=function(){return this.getImmutable().get("nativelyRenderedContent")},e.prototype.getLastChangeType=function(){return this.getImmutable().get("lastChangeType")},e.prototype.getInlineStyleOverride=function(){return this.getImmutable().get("inlineStyleOverride")},e.setInlineStyleOverride=function(t,n){return e.set(t,{inlineStyleOverride:n})},e.prototype.getCurrentInlineStyle=function(){var e=this.getInlineStyleOverride();if(null!=e)return e;var t=this.getCurrentContent(),n=this.getSelection();return n.isCollapsed()?function(e,t){var n=t.getStartKey(),r=t.getStartOffset(),o=e.getBlockForKey(n);if(r>0)return o.getInlineStyleAt(r-1);if(o.getLength())return o.getInlineStyleAt(0);return y(e,n)}(t,n):function(e,t){var n=t.getStartKey(),r=t.getStartOffset(),o=e.getBlockForKey(n);if(r<o.getLength())return o.getInlineStyleAt(r);if(r>0)return o.getInlineStyleAt(r-1);return y(e,n)}(t,n)},e.prototype.getBlockTree=function(e){return this.getImmutable().getIn(["treeMap",e])},e.prototype.isSelectionAtStartOfContent=function(){var e=this.getCurrentContent().getBlockMap().first().getKey();return this.getSelection().hasEdgeWithin(e,0,0)},e.prototype.isSelectionAtEndOfContent=function(){var e=this.getCurrentContent().getBlockMap().last(),t=e.getLength();return this.getSelection().hasEdgeWithin(e.getKey(),t,t)},e.prototype.getDirectionMap=function(){return this.getImmutable().get("directionMap")},e.acceptSelection=function(e,t){return h(e,t,!1)},e.forceSelection=function(e,t){return t.getHasFocus()||(t=t.set("hasFocus",!0)),h(e,t,!0)},e.moveSelectionToEnd=function(t){var n=t.getCurrentContent().getLastBlock(),r=n.getKey(),o=n.getLength();return e.acceptSelection(t,new u({anchorKey:r,anchorOffset:o,focusKey:r,focusOffset:o,isBackward:!1}))},e.moveFocusToEnd=function(t){var n=e.moveSelectionToEnd(t);return e.forceSelection(n,n.getSelection())},e.push=function(t,n,r){if(t.getCurrentContent()===n)return t;var o="insert-characters"!==r,i=a.getDirectionMap(n,t.getDirectionMap());if(!t.getAllowUndo())return e.set(t,{currentContent:n,directionMap:i,lastChangeType:r,selection:n.getSelectionAfter(),forceSelection:o,inlineStyleOverride:null});var s=t.getSelection(),u=t.getCurrentContent(),l=t.getUndoStack(),c=n;s!==u.getSelectionAfter()||function(e,t){var n=e.getLastChangeType();return t!==n||"insert-characters"!==t&&"backspace-character"!==t&&"delete-character"!==t}(t,r)?(l=l.push(u),c=c.set("selectionBefore",s)):"insert-characters"!==r&&"backspace-character"!==r&&"delete-character"!==r||(c=c.set("selectionBefore",u.getSelectionBefore()));var d=t.getInlineStyleOverride();-1===["adjust-depth","change-block-type","split-block"].indexOf(r)&&(d=null);var p={currentContent:c,directionMap:i,undoStack:l,redoStack:f(),lastChangeType:r,selection:n.getSelectionAfter(),forceSelection:o,inlineStyleOverride:d};return e.set(t,p)},e.undo=function(t){if(!t.getAllowUndo())return t;var n=t.getUndoStack(),r=n.peek();if(!r)return t;var o=t.getCurrentContent(),i=a.getDirectionMap(r,t.getDirectionMap());return e.set(t,{currentContent:r,directionMap:i,undoStack:n.shift(),redoStack:t.getRedoStack().push(o),forceSelection:!0,inlineStyleOverride:null,lastChangeType:"undo",nativelyRenderedContent:null,selection:o.getSelectionBefore()})},e.redo=function(t){if(!t.getAllowUndo())return t;var n=t.getRedoStack(),r=n.peek();if(!r)return t;var o=t.getCurrentContent(),i=a.getDirectionMap(r,t.getDirectionMap());return e.set(t,{currentContent:r,directionMap:i,undoStack:t.getUndoStack().push(o),redoStack:n.shift(),forceSelection:!0,inlineStyleOverride:null,lastChangeType:"redo",nativelyRenderedContent:null,selection:r.getSelectionAfter()})},e.prototype.getImmutable=function(){return this._immutable},e}();function h(e,t,n){return p.set(e,{selection:t,forceSelection:n,nativelyRenderedContent:null,inlineStyleOverride:null})}function g(e,t){return e.getBlockMap().map(function(n){return o.generate(e,n,t)}).toOrderedMap()}function y(e,t){var n=e.getBlockMap().reverse().skipUntil(function(e,n){return n===t}).skip(1).skipUntil(function(e,t){return e.getLength()}).first();return n?n.getInlineStyleAt(n.getLength()-1):l()}e.exports=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.makeOutboundLink=t.getFeed=t.getCourseFeed=t.getPostFeed=t.decodeHTML=t.sendRequest=t.getDirectionalStyle=t.createSvgIconComponent=void 0;var r=n(391);Object.defineProperty(t,"makeOutboundLink",{enumerable:!0,get:function(){return r.makeOutboundLink}});var o=n(395),i=f(n(396)),a=f(n(398)),s=f(n(130)),u=f(n(400)),l=f(n(223)),c=f(n(401));function f(e){return e&&e.__esModule?e:{default:e}}t.createSvgIconComponent=c.default,t.getDirectionalStyle=o.getDirectionalStyle,t.sendRequest=i.default,t.decodeHTML=a.default,t.getPostFeed=l.default,t.getCourseFeed=u.default,t.getFeed=s.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ScreenReaderShortcut=t.ScreenReaderText=t.Row=t.ZebrafiedListTable=t.ListTable=t.Checkbox=t.WordOccurrences=t.WordList=t.YouTubeVideo=t.Warning=t.Tabs=t.YoastSeoIcon=t.Modal=t.Logo=t.YoastLinkButton=t.InputField=t.YoastButton=t.UpsellLinkButton=t.UpsellButton=t.Toggle=t.Textfield=t.Textarea=t.SynonymsInput=t.icons=t.SvgIcon=t.StackedProgressBar=t.ScoreAssessments=t.SectionTitle=t.Section=t.ProgressBar=t.Paper=t.Notification=t.MultiStepProgress=t.Loader=t.languageNoticePropType=t.LanguageNotice=t.Label=t.KeywordSuggestions=t.Input=t.IFrame=t.IconButtonToggle=t.Icon=t.HelpText=t.Heading=t.ErrorBoundary=t.IconsButton=t.IconButton=t.IconLabeledButton=t.CourseDetails=t.CardBanner=t.FullHeightCard=t.Card=t.ArticleList=t.Alert=t.wrapInHeading=t.StyledContainerTopLevel=t.StyledContainer=t.StyledIconsButton=t.CollapsibleStateless=t.Collapsible=t.addButtonStyles=t.addBaseStyle=t.addFocusStyle=t.addActiveStyle=t.addHoverStyle=t.BaseButton=t.Button=t.LinkButton=t.StyledHeading=t.StyledSectionBase=t.StyledSection=void 0;var r=n(403);Object.keys(r).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}})});var o=n(405);Object.keys(o).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}})});var i=n(407);Object.keys(i).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}})});var a=n(409);Object.keys(a).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}})});var s=n(411);Object.keys(s).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return s[e]}})});var u=n(413);Object.keys(u).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return u[e]}})});var l=n(415);Object.keys(l).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return l[e]}})});var c=n(417);Object.keys(c).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return c[e]}})});var f=n(419);Object.keys(f).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return f[e]}})});var d=n(60);Object.defineProperty(t,"Button",{enumerable:!0,get:function(){return pe(d).default}}),Object.defineProperty(t,"BaseButton",{enumerable:!0,get:function(){return d.BaseButton}}),Object.defineProperty(t,"addHoverStyle",{enumerable:!0,get:function(){return d.addHoverStyle}}),Object.defineProperty(t,"addActiveStyle",{enumerable:!0,get:function(){return d.addActiveStyle}}),Object.defineProperty(t,"addFocusStyle",{enumerable:!0,get:function(){return d.addFocusStyle}}),Object.defineProperty(t,"addBaseStyle",{enumerable:!0,get:function(){return d.addBaseStyle}}),Object.defineProperty(t,"addButtonStyles",{enumerable:!0,get:function(){return d.addButtonStyles}});var p=n(447);Object.defineProperty(t,"Collapsible",{enumerable:!0,get:function(){return pe(p).default}}),Object.defineProperty(t,"CollapsibleStateless",{enumerable:!0,get:function(){return p.CollapsibleStateless}}),Object.defineProperty(t,"StyledIconsButton",{enumerable:!0,get:function(){return p.StyledIconsButton}}),Object.defineProperty(t,"StyledContainer",{enumerable:!0,get:function(){return p.StyledContainer}}),Object.defineProperty(t,"StyledContainerTopLevel",{enumerable:!0,get:function(){return p.StyledContainerTopLevel}}),Object.defineProperty(t,"wrapInHeading",{enumerable:!0,get:function(){return p.wrapInHeading}});var h=n(515);Object.defineProperty(t,"Alert",{enumerable:!0,get:function(){return pe(h).default}});var g=n(516);Object.defineProperty(t,"ArticleList",{enumerable:!0,get:function(){return pe(g).default}});var y=n(517);Object.defineProperty(t,"Card",{enumerable:!0,get:function(){return pe(y).default}}),Object.defineProperty(t,"FullHeightCard",{enumerable:!0,get:function(){return y.FullHeightCard}});var m=n(254);Object.defineProperty(t,"CardBanner",{enumerable:!0,get:function(){return pe(m).default}});var v=n(518);Object.defineProperty(t,"CourseDetails",{enumerable:!0,get:function(){return pe(v).default}});var b=n(519);Object.defineProperty(t,"IconLabeledButton",{enumerable:!0,get:function(){return pe(b).default}});var _=n(520);Object.defineProperty(t,"IconButton",{enumerable:!0,get:function(){return pe(_).default}});var x=n(253);Object.defineProperty(t,"IconsButton",{enumerable:!0,get:function(){return pe(x).default}});var w=n(521);Object.defineProperty(t,"ErrorBoundary",{enumerable:!0,get:function(){return pe(w).default}});var S=n(152);Object.defineProperty(t,"Heading",{enumerable:!0,get:function(){return pe(S).default}});var C=n(540);Object.defineProperty(t,"HelpText",{enumerable:!0,get:function(){return pe(C).default}});var k=n(541);Object.defineProperty(t,"Icon",{enumerable:!0,get:function(){return pe(k).default}});var O=n(542);Object.defineProperty(t,"IconButtonToggle",{enumerable:!0,get:function(){return pe(O).default}});var E=n(258);Object.defineProperty(t,"IFrame",{enumerable:!0,get:function(){return pe(E).default}});var T=n(259);Object.defineProperty(t,"Input",{enumerable:!0,get:function(){return pe(T).default}});var M=n(543);Object.defineProperty(t,"KeywordSuggestions",{enumerable:!0,get:function(){return pe(M).default}});var P=n(263);Object.defineProperty(t,"Label",{enumerable:!0,get:function(){return pe(P).default}});var j=n(549);Object.defineProperty(t,"LanguageNotice",{enumerable:!0,get:function(){return pe(j).default}}),Object.defineProperty(t,"languageNoticePropType",{enumerable:!0,get:function(){return j.languageNoticePropType}});var A=n(550);Object.defineProperty(t,"Loader",{enumerable:!0,get:function(){return pe(A).default}});var I=n(551);Object.defineProperty(t,"MultiStepProgress",{enumerable:!0,get:function(){return pe(I).default}});var R=n(552);Object.defineProperty(t,"Notification",{enumerable:!0,get:function(){return pe(R).default}});var D=n(264);Object.defineProperty(t,"Paper",{enumerable:!0,get:function(){return pe(D).default}});var N=n(553);Object.defineProperty(t,"ProgressBar",{enumerable:!0,get:function(){return pe(N).default}});var B=n(265);Object.defineProperty(t,"Section",{enumerable:!0,get:function(){return pe(B).default}});var L=n(250);Object.defineProperty(t,"SectionTitle",{enumerable:!0,get:function(){return L.SectionTitle}});var F=n(554);Object.defineProperty(t,"ScoreAssessments",{enumerable:!0,get:function(){return pe(F).default}});var z=n(555);Object.defineProperty(t,"StackedProgressBar",{enumerable:!0,get:function(){return pe(z).default}});var q=n(39);Object.defineProperty(t,"SvgIcon",{enumerable:!0,get:function(){return pe(q).default}}),Object.defineProperty(t,"icons",{enumerable:!0,get:function(){return q.icons}});var K=n(556);Object.defineProperty(t,"SynonymsInput",{enumerable:!0,get:function(){return pe(K).default}});var W=n(267);Object.defineProperty(t,"Textarea",{enumerable:!0,get:function(){return pe(W).default}});var U=n(559);Object.defineProperty(t,"Textfield",{enumerable:!0,get:function(){return pe(U).default}});var $=n(560);Object.defineProperty(t,"Toggle",{enumerable:!0,get:function(){return pe($).default}});var H=n(561);Object.defineProperty(t,"UpsellButton",{enumerable:!0,get:function(){return H.UpsellButton}});var V=n(562);Object.defineProperty(t,"UpsellLinkButton",{enumerable:!0,get:function(){return V.UpsellLinkButton}});var G=n(153);Object.defineProperty(t,"YoastButton",{enumerable:!0,get:function(){return G.YoastButton}});var Y=n(266);Object.defineProperty(t,"InputField",{enumerable:!0,get:function(){return Y.InputField}});var X=n(563);Object.defineProperty(t,"YoastLinkButton",{enumerable:!0,get:function(){return X.YoastLinkButton}});var J=n(564);Object.defineProperty(t,"Logo",{enumerable:!0,get:function(){return pe(J).default}});var Z=n(565);Object.defineProperty(t,"Modal",{enumerable:!0,get:function(){return pe(Z).default}});var Q=n(577);Object.defineProperty(t,"YoastSeoIcon",{enumerable:!0,get:function(){return pe(Q).default}});var ee=n(578);Object.defineProperty(t,"Tabs",{enumerable:!0,get:function(){return pe(ee).default}});var te=n(581);Object.defineProperty(t,"Warning",{enumerable:!0,get:function(){return pe(te).default}});var ne=n(583);Object.defineProperty(t,"YouTubeVideo",{enumerable:!0,get:function(){return pe(ne).default}});var re=n(261);Object.defineProperty(t,"WordList",{enumerable:!0,get:function(){return pe(re).default}});var oe=n(262);Object.defineProperty(t,"WordOccurrences",{enumerable:!0,get:function(){return pe(oe).default}});var ie=n(584);Object.defineProperty(t,"Checkbox",{enumerable:!0,get:function(){return pe(ie).default}});var ae=n(585);Object.defineProperty(t,"ListTable",{enumerable:!0,get:function(){return ae.ListTable}}),Object.defineProperty(t,"ZebrafiedListTable",{enumerable:!0,get:function(){return ae.ZebrafiedListTable}});var se=n(586);Object.defineProperty(t,"Row",{enumerable:!0,get:function(){return se.Row}});var ue=n(251);Object.defineProperty(t,"ScreenReaderText",{enumerable:!0,get:function(){return pe(ue).default}});var le=n(587);Object.defineProperty(t,"ScreenReaderShortcut",{enumerable:!0,get:function(){return pe(le).default}}),n(588);var ce=n(595),fe=pe(ce),de=n(596);function pe(e){return e&&e.__esModule?e:{default:e}}t.StyledSection=fe.default,t.StyledSectionBase=ce.StyledSectionBase,t.StyledHeading=ce.StyledHeading,t.LinkButton=de.LinkButton},function(e,t,n){e.exports=n(568)()},function(e,t){e.exports=window.wp.i18n},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){e.exports={default:n(614),__esModule:!0}},function(e,t,n){"use strict";t.__esModule=!0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(616));t.default=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),(0,r.default)(e,o.key,o)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}()},function(e,t,n){"use strict";t.__esModule=!0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(167));t.default=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":(0,r.default)(t))&&"function"!=typeof t?e:t}},function(e,t,n){"use strict";t.__esModule=!0;var r=a(n(638)),o=a(n(642)),i=a(n(167));function a(e){return e&&e.__esModule?e:{default:e}}t.default=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":(0,i.default)(t)));e.prototype=(0,o.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(r.default?(0,r.default)(e,t):e.__proto__=t)}},function(e,t){e.exports=function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}},function(e,t,n){e.exports=n(733)()},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";t.__esModule=!0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(607));t.default=r.default||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}},function(e,t){var n=e.exports={version:"2.5.7"};"number"==typeof __e&&(__e=n)},function(e,t,n){"use strict";var r=n(25),o=n(772),i=n(46),a=n(4),s=n(773),u=n(775),l=n(109),c=n(778),f=n(779),d=n(5),p=n(780),h=n(314),g=n(781),y=n(782),m=a.OrderedSet,v={replaceText:function(e,t,n,o,i){var a=h(e,t),s=g(a,t),u=r.create({style:o||m(),entity:i||null});return f(s,s.getSelectionAfter(),n,u)},insertText:function(e,t,n,r,o){return t.isCollapsed()||d(!1),v.replaceText(e,t,n,r,o)},moveText:function(e,t,n){var r=l(e,t),o=v.removeRange(e,t,"backward");return v.replaceWithFragment(o,n,r)},replaceWithFragment:function(e,t,n){var r=h(e,t),o=g(r,t);return c(o,o.getSelectionAfter(),n)},removeRange:function(e,t,n){var r,o,a=void 0,s=void 0;t.getIsBackward()&&(t=t.merge({anchorKey:t.getFocusKey(),anchorOffset:t.getFocusOffset(),focusKey:t.getAnchorKey(),focusOffset:t.getAnchorOffset(),isBackward:!1})),r=t.getAnchorKey(),o=t.getFocusKey(),a=e.getBlockForKey(r),s=e.getBlockForKey(o);var l=t.getStartOffset(),c=t.getEndOffset(),f=a.getEntityAt(l),d=s.getEntityAt(c-1);if(r===o&&f&&f===d){var p=u(e.getEntityMap(),a,s,t,n);return g(e,p)}var y=t;i.draft_segmented_entities_behavior&&(y=u(e.getEntityMap(),a,s,t,n));var m=h(e,y);return g(m,y)},splitBlock:function(e,t){var n=h(e,t),r=g(n,t);return y(r,r.getSelectionAfter())},applyInlineStyle:function(e,t,n){return o.add(e,t,n)},removeInlineStyle:function(e,t,n){return o.remove(e,t,n)},setBlockType:function(e,t,n){return p(e,t,function(e){return e.merge({type:n,depth:0})})},setBlockData:function(e,t,n){return p(e,t,function(e){return e.merge({data:n})})},mergeBlockData:function(e,t,n){return p(e,t,function(e){return e.merge({data:e.getData().merge(n)})})},applyEntity:function(e,t,n){var r=h(e,t);return s(r,t,n)}};e.exports=v},function(e,t){e.exports=ReactDOM},function(e,t,n){"use strict";var r=n(770),o=n(84),i=n(25),a=n(786),s=n(56),u=n(184),l=n(187),c=n(320),f=n(787),d=n(322),p=n(110),h=n(22),g=n(318),y=n(6),m=n(194),v=n(336),b=n(71),_=n(850),x={Editor:f,EditorBlock:d,EditorState:y,CompositeDecorator:a,Entity:p,EntityInstance:g,BlockMapBuilder:o,CharacterMetadata:i,ContentBlock:s,ContentState:u,SelectionState:b,AtomicBlockUtils:r,KeyBindingUtil:m,Modifier:h,RichUtils:v,DefaultDraftBlockRenderMap:l,DefaultDraftInlineStyle:c,convertFromHTML:n(334),convertFromRaw:n(853),convertToRaw:_,genKey:n(40),getDefaultKeyBinding:n(337),getVisibleSelectionRect:n(858)};e.exports=x},function(e,t,n){"use strict";var r=n(4),o=r.Map,i=r.OrderedSet,a=r.Record,s=i(),u={style:s,entity:null},l=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.getStyle=function(){return this.get("style")},t.prototype.getEntity=function(){return this.get("entity")},t.prototype.hasStyle=function(e){return this.getStyle().includes(e)},t.applyStyle=function(e,n){var r=e.set("style",e.getStyle().add(n));return t.create(r)},t.removeStyle=function(e,n){var r=e.set("style",e.getStyle().remove(n));return t.create(r)},t.applyEntity=function(e,n){var r=e.getEntity()===n?e:e.set("entity",n);return t.create(r)},t.create=function(e){if(!e)return c;var n=o({style:s,entity:null}).merge(e),r=f.get(n);if(r)return r;var i=new t(n);return f=f.set(n,i),i},t}(a(u)),c=new l,f=o([[o(u),c]]);l.EMPTY=c,e.exports=l},function(e,t,n){"use strict";
|
2 |
/*
|
3 |
object-assign
|
4 |
(c) Sindre Sorhus
|
5 |
@license MIT
|
6 |
+
*/var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,a,s=function(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),u=1;u<arguments.length;u++){for(var l in n=Object(arguments[u]))o.call(n,l)&&(s[l]=n[l]);if(r){a=r(n);for(var c=0;c<a.length;c++)i.call(n,a[c])&&(s[a[c]]=n[a[c]])}}return s}},function(e,t,n){"use strict";var r=n(25),o=n(4),i=n(85),a=o.List,s=o.Map,u=o.OrderedSet,l=o.Record,c=o.Repeat,f=u(),d={parent:null,characterList:a(),data:s(),depth:0,key:"",text:"",type:"unstyled",children:a(),prevSibling:null,nextSibling:null},p=function(e,t){return e.getStyle()===t.getStyle()},h=function(e,t){return e.getEntity()===t.getEntity()},g=function(e){if(!e)return e;var t=e.characterList,n=e.text;return n&&!t&&(e.characterList=a(c(r.EMPTY,n.length))),e},y=function(e){function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:d;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,g(n)))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.getKey=function(){return this.get("key")},t.prototype.getType=function(){return this.get("type")},t.prototype.getText=function(){return this.get("text")},t.prototype.getCharacterList=function(){return this.get("characterList")},t.prototype.getLength=function(){return this.getText().length},t.prototype.getDepth=function(){return this.get("depth")},t.prototype.getData=function(){return this.get("data")},t.prototype.getInlineStyleAt=function(e){var t=this.getCharacterList().get(e);return t?t.getStyle():f},t.prototype.getEntityAt=function(e){var t=this.getCharacterList().get(e);return t?t.getEntity():null},t.prototype.getChildKeys=function(){return this.get("children")},t.prototype.getParentKey=function(){return this.get("parent")},t.prototype.getPrevSiblingKey=function(){return this.get("prevSibling")},t.prototype.getNextSiblingKey=function(){return this.get("nextSibling")},t.prototype.findStyleRanges=function(e,t){i(this.getCharacterList(),p,e,t)},t.prototype.findEntityRanges=function(e,t){i(this.getCharacterList(),h,e,t)},t}(l(d));e.exports=y},function(e,t,n){var r=n(164)("wks"),o=n(102),i=n(44).Symbol,a="function"==typeof i;(e.exports=function(e){return r[e]||(r[e]=a&&i[e]||(a?i:o)("Symbol."+e))}).store=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={easeOutFunction:"cubic-bezier(0.23, 1, 0.32, 1)",easeInOutFunction:"cubic-bezier(0.445, 0.05, 0.55, 0.95)",easeOut:function(e,t,n,r){if(r=r||this.easeOutFunction,t&&"[object Array]"===Object.prototype.toString.call(t)){for(var o="",i=0;i<t.length;i++)o&&(o+=","),o+=this.create(e,t[i],n,r);return o}return this.create(e,t,n,r)},create:function(e,t,n,r){return e=e||"450ms",t=t||"all",n=n||"0ms",t+" "+e+" "+(r=r||"linear")+" "+n}}},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){"use strict";e.exports=function(e){if(null!=e)return e;throw new Error("Got unexpected null or undefined")}},function(e,t,n){var r=n(226),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},function(e,t){var n=Array.isArray;e.exports=n},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){var r=n(301),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},function(e,t,n){"use strict";var r=n(793),o=n(796),i=n(797),a=n(798);function s(e,t,n,r){if(e===n)return!0;if(!n.startsWith(e))return!1;var i=n.slice(e.length);return!!t&&(i=r?r(i):i,o.contains(i,t))}function u(e){return"Windows"===r.platformName?e.replace(/^\s*NT/,""):e}var l={isBrowser:function(e){return s(r.browserName,r.browserFullVersion,e)},isBrowserArchitecture:function(e){return s(r.browserArchitecture,null,e)},isDevice:function(e){return s(r.deviceName,null,e)},isEngine:function(e){return s(r.engineName,r.engineVersion,e)},isPlatform:function(e){return s(r.platformName,r.platformFullVersion,e,u)},isPlatformArchitecture:function(e){return s(r.platformArchitecture,null,e)}};e.exports=i(l,a)},function(e,t,n){var r=n(365),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.icons=void 0;var r=a(n(0)),o=a(n(1)),i=n(7);function a(e){return e&&e.__esModule?e:{default:e}}const s=o.default.svg.withConfig({displayName:"SvgIcon__StyledSvgSpinner",componentId:"w0wn5g-0"})(["width:",";height:",";flex:none;animation:loadingSpinnerRotator 1.4s linear infinite;& .path{stroke:",";stroke-dasharray:187;stroke-dashoffset:0;transform-origin:center;animation:loadingSpinnerDash 1.4s ease-in-out infinite;}@keyframes loadingSpinnerRotator{0%{transform:rotate( 0deg );}100%{transform:rotate( 270deg );}}@keyframes loadingSpinnerDash{0%{stroke-dashoffset:187;}50%{stroke-dashoffset:47;transform:rotate( 135deg );}100%{stroke-dashoffset:187;transform:rotate( 450deg );}}"],e=>e.size,e=>e.size,e=>e.fill),u=t.icons={"chevron-down":{viewbox:"0 0 24 24",width:"24px",path:[r.default.createElement("g",{key:"1"},r.default.createElement("path",{fill:"none",d:"M0,0h24v24H0V0z"})),r.default.createElement("g",{key:"2"},r.default.createElement("path",{d:"M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"}))]},"chevron-up":{viewbox:"0 0 24 24",width:"24px",path:[r.default.createElement("g",{key:"1"},r.default.createElement("path",{fill:"none",d:"M0,0h24v24H0V0z"})),r.default.createElement("g",{key:"2"},r.default.createElement("path",{d:"M12,8l-6,6l1.41,1.41L12,10.83l4.59,4.58L18,14L12,8z"}))]},clipboard:{viewbox:"0 0 1792 1792",path:"M768 1664h896v-640h-416q-40 0-68-28t-28-68v-416h-384v1152zm256-1440v-64q0-13-9.5-22.5t-22.5-9.5h-704q-13 0-22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h704q13 0 22.5-9.5t9.5-22.5zm256 672h299l-299-299v299zm512 128v672q0 40-28 68t-68 28h-960q-40 0-68-28t-28-68v-160h-544q-40 0-68-28t-28-68v-1344q0-40 28-68t68-28h1088q40 0 68 28t28 68v328q21 13 36 28l408 408q28 28 48 76t20 88z"},check:{viewbox:"0 0 1792 1792",path:"M249.2,431.2c-23,0-45.6,9.4-61.8,25.6L25.6,618.6C9.4,634.8,0,657.4,0,680.4c0,23,9.4,45.6,25.6,61.8 l593.1,593.1c16.2,16.2,38.8,25.6,61.8,25.6c23,0,45.6-9.4,61.8-25.6L1766.4,311c16.2-16.2,25.6-38.8,25.6-61.8 s-9.4-45.6-25.6-61.8L1604.5,25.6C1588.3,9.4,1565.8,0,1542.8,0c-23,0-45.6,9.4-61.8,25.6L680.4,827L311,456.3 C294.8,440.5,272.3,431.2,249.2,431.2z"},"angle-down":{viewbox:"0 0 1792 1792",path:"M1395 736q0 13-10 23l-466 466q-10 10-23 10t-23-10l-466-466q-10-10-10-23t10-23l50-50q10-10 23-10t23 10l393 393 393-393q10-10 23-10t23 10l50 50q10 10 10 23z"},"angle-left":{viewbox:"0 0 1792 1792",path:"M1203 544q0 13-10 23l-393 393 393 393q10 10 10 23t-10 23l-50 50q-10 10-23 10t-23-10l-466-466q-10-10-10-23t10-23l466-466q10-10 23-10t23 10l50 50q10 10 10 23z"},"angle-right":{viewbox:"0 0 1792 1792",path:"M1171 960q0 13-10 23l-466 466q-10 10-23 10t-23-10l-50-50q-10-10-10-23t10-23l393-393-393-393q-10-10-10-23t10-23l50-50q10-10 23-10t23 10l466 466q10 10 10 23z"},"angle-up":{viewbox:"0 0 1792 1792",path:"M1395 1184q0 13-10 23l-50 50q-10 10-23 10t-23-10l-393-393-393 393q-10 10-23 10t-23-10l-50-50q-10-10-10-23t10-23l466-466q10-10 23-10t23 10l466 466q10 10 10 23z"},"arrow-down":{viewbox:"0 0 1792 1792",path:"M896 1791L120.91 448.5L1671.09 448.5z"},"arrow-left":{viewbox:"0 0 1792 1792",path:"M1343.5 1671.09L1 896L1343.5 120.91z"},"arrow-right":{viewbox:"0 0 1792 1792",path:"M1791 896L448.5 1671.09L448.5 120.91z"},"arrow-up":{viewbox:"0 0 1792 1792",path:"M1671.09 1343.5L120.91 1343.5L896 1z"},"caret-right":{viewbox:"0 0 192 512",path:"M 0 384.662 V 127.338 c 0 -17.818 21.543 -26.741 34.142 -14.142 l 128.662 128.662 c 7.81 7.81 7.81 20.474 0 28.284 L 34.142 398.804 C 21.543 411.404 0 402.48 0 384.662 Z"},circle:{viewbox:"0 0 1792 1792",path:"M1664 896q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"},desktop:{viewbox:"0 0 1792 1792",path:"M1728 992v-832q0-13-9.5-22.5t-22.5-9.5h-1600q-13 0-22.5 9.5t-9.5 22.5v832q0 13 9.5 22.5t22.5 9.5h1600q13 0 22.5-9.5t9.5-22.5zm128-832v1088q0 66-47 113t-113 47h-544q0 37 16 77.5t32 71 16 43.5q0 26-19 45t-45 19h-512q-26 0-45-19t-19-45q0-14 16-44t32-70 16-78h-544q-66 0-113-47t-47-113v-1088q0-66 47-113t113-47h1600q66 0 113 47t47 113z"},edit:{viewbox:"0 0 1792 1792",path:"M491 1536l91-91-235-235-91 91v107h128v128h107zm523-928q0-22-22-22-10 0-17 7l-542 542q-7 7-7 17 0 22 22 22 10 0 17-7l542-542q7-7 7-17zm-54-192l416 416-832 832h-416v-416zm683 96q0 53-37 90l-166 166-416-416 166-165q36-38 90-38 53 0 91 38l235 234q37 39 37 91z"},eye:{viewbox:"0 0 1792 1792",path:"M1664 960q-152-236-381-353 61 104 61 225 0 185-131.5 316.5t-316.5 131.5-316.5-131.5-131.5-316.5q0-121 61-225-229 117-381 353 133 205 333.5 326.5t434.5 121.5 434.5-121.5 333.5-326.5zm-720-384q0-20-14-34t-34-14q-125 0-214.5 89.5t-89.5 214.5q0 20 14 34t34 14 34-14 14-34q0-86 61-147t147-61q20 0 34-14t14-34zm848 384q0 34-20 69-140 230-376.5 368.5t-499.5 138.5-499.5-139-376.5-368q-20-35-20-69t20-69q140-229 376.5-368t499.5-139 499.5 139 376.5 368q20 35 20 69z"},"exclamation-triangle":{viewbox:"0 0 1792 1792",path:"M1024 1375v-190q0-14-9.5-23.5T992 1152H800q-13 0-22.5 9.5T768 1185v190q0 14 9.5 23.5t22.5 9.5h192q13 0 22.5-9.5t9.5-23.5zm-2-374l18-459q0-12-10-19-13-11-24-11H786q-11 0-24 11-10 7-10 21l17 457q0 10 10 16.5t24 6.5h185q14 0 23.5-6.5t10.5-16.5zm-14-934l768 1408q35 63-2 126-17 29-46.5 46t-63.5 17H128q-34 0-63.5-17T18 1601q-37-63-2-126L784 67q17-31 47-49t65-18 65 18 47 49z"},"file-text":{viewbox:"0 0 1792 1792",path:"M1596 380q28 28 48 76t20 88v1152q0 40-28 68t-68 28h-1344q-40 0-68-28t-28-68v-1600q0-40 28-68t68-28h896q40 0 88 20t76 48zm-444-244v376h376q-10-29-22-41l-313-313q-12-12-41-22zm384 1528v-1024h-416q-40 0-68-28t-28-68v-416h-768v1536h1280zm-1024-864q0-14 9-23t23-9h704q14 0 23 9t9 23v64q0 14-9 23t-23 9h-704q-14 0-23-9t-9-23v-64zm736 224q14 0 23 9t9 23v64q0 14-9 23t-23 9h-704q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h704zm0 256q14 0 23 9t9 23v64q0 14-9 23t-23 9h-704q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h704z"},gear:{viewbox:"0 0 1792 1792",path:"M1800 800h-218q-26 -107 -81 -193l154 -154l-210 -210l-154 154q-88 -55 -191 -79v-218h-300v218q-103 24 -191 79l-154 -154l-212 212l154 154q-55 88 -79 191h-218v297h217q23 101 80 194l-154 154l210 210l154 -154q85 54 193 81v218h300v-218q103 -24 191 -79 l154 154l212 -212l-154 -154q57 -93 80 -194h217v-297zM950 650q124 0 212 88t88 212t-88 212t-212 88t-212 -88t-88 -212t88 -212t212 -88z"},key:{viewbox:"0 0 1792 1792",path:"M832 512q0-80-56-136t-136-56-136 56-56 136q0 42 19 83-41-19-83-19-80 0-136 56t-56 136 56 136 136 56 136-56 56-136q0-42-19-83 41 19 83 19 80 0 136-56t56-136zm851 704q0 17-49 66t-66 49q-9 0-28.5-16t-36.5-33-38.5-40-24.5-26l-96 96 220 220q28 28 28 68 0 42-39 81t-81 39q-40 0-68-28l-671-671q-176 131-365 131-163 0-265.5-102.5t-102.5-265.5q0-160 95-313t248-248 313-95q163 0 265.5 102.5t102.5 265.5q0 189-131 365l355 355 96-96q-3-3-26-24.5t-40-38.5-33-36.5-16-28.5q0-17 49-66t66-49q13 0 23 10 6 6 46 44.5t82 79.5 86.5 86 73 78 28.5 41z"},list:{viewbox:"0 0 1792 1792",path:"M384 1408q0 80-56 136t-136 56-136-56-56-136 56-136 136-56 136 56 56 136zm0-512q0 80-56 136t-136 56-136-56-56-136 56-136 136-56 136 56 56 136zm1408 416v192q0 13-9.5 22.5t-22.5 9.5h-1216q-13 0-22.5-9.5t-9.5-22.5v-192q0-13 9.5-22.5t22.5-9.5h1216q13 0 22.5 9.5t9.5 22.5zm-1408-928q0 80-56 136t-136 56-136-56-56-136 56-136 136-56 136 56 56 136zm1408 416v192q0 13-9.5 22.5t-22.5 9.5h-1216q-13 0-22.5-9.5t-9.5-22.5v-192q0-13 9.5-22.5t22.5-9.5h1216q13 0 22.5 9.5t9.5 22.5zm0-512v192q0 13-9.5 22.5t-22.5 9.5h-1216q-13 0-22.5-9.5t-9.5-22.5v-192q0-13 9.5-22.5t22.5-9.5h1216q13 0 22.5 9.5t9.5 22.5z"},"loading-spinner":{viewbox:"0 0 66 66",CustomComponent:s,path:[r.default.createElement("circle",{key:"5",className:"path",fill:"none",strokeWidth:"6",strokeLinecap:"round",cx:"33",cy:"33",r:"30"})]},mobile:{viewbox:"0 0 1792 1792",path:"M976 1408q0-33-23.5-56.5t-56.5-23.5-56.5 23.5-23.5 56.5 23.5 56.5 56.5 23.5 56.5-23.5 23.5-56.5zm208-160v-704q0-13-9.5-22.5t-22.5-9.5h-512q-13 0-22.5 9.5t-9.5 22.5v704q0 13 9.5 22.5t22.5 9.5h512q13 0 22.5-9.5t9.5-22.5zm-192-848q0-16-16-16h-160q-16 0-16 16t16 16h160q16 0 16-16zm288-16v1024q0 52-38 90t-90 38h-512q-52 0-90-38t-38-90v-1024q0-52 38-90t90-38h512q52 0 90 38t38 90z"},"pencil-square":{viewbox:"0 0 1792 1792",path:"M888 1184l116-116-152-152-116 116v56h96v96h56zm440-720q-16-16-33 1l-350 350q-17 17-1 33t33-1l350-350q17-17 1-33zm80 594v190q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h832q63 0 117 25 15 7 18 23 3 17-9 29l-49 49q-14 14-32 8-23-6-45-6h-832q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113v-126q0-13 9-22l64-64q15-15 35-7t20 29zm-96-738l288 288-672 672h-288v-288zm444 132l-92 92-288-288 92-92q28-28 68-28t68 28l152 152q28 28 28 68t-28 68z"},plus:{viewbox:"0 0 1792 1792",path:"M1600 736v192q0 40-28 68t-68 28h-416v416q0 40-28 68t-68 28h-192q-40 0-68-28t-28-68v-416h-416q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h416v-416q0-40 28-68t68-28h192q40 0 68 28t28 68v416h416q40 0 68 28t28 68z"},"plus-circle":{viewbox:"0 0 1792 1792",path:"M1344 960v-128q0-26-19-45t-45-19h-256v-256q0-26-19-45t-45-19h-128q-26 0-45 19t-19 45v256h-256q-26 0-45 19t-19 45v128q0 26 19 45t45 19h256v256q0 26 19 45t45 19h128q26 0 45-19t19-45v-256h256q26 0 45-19t19-45zm320-64q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"},"question-circle":{viewbox:"0 0 1792 1792",path:"M1024 1376v-192q0-14-9-23t-23-9h-192q-14 0-23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23-9t9-23zm256-672q0-88-55.5-163t-138.5-116-170-41q-243 0-371 213-15 24 8 42l132 100q7 6 19 6 16 0 25-12 53-68 86-92 34-24 86-24 48 0 85.5 26t37.5 59q0 38-20 61t-68 45q-63 28-115.5 86.5t-52.5 125.5v36q0 14 9 23t23 9h192q14 0 23-9t9-23q0-19 21.5-49.5t54.5-49.5q32-18 49-28.5t46-35 44.5-48 28-60.5 12.5-81zm384 192q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"},search:{viewbox:"0 0 1792 1792",path:"M1216 832q0-185-131.5-316.5t-316.5-131.5-316.5 131.5-131.5 316.5 131.5 316.5 316.5 131.5 316.5-131.5 131.5-316.5zm512 832q0 52-38 90t-90 38q-54 0-90-38l-343-342q-179 124-399 124-143 0-273.5-55.5t-225-150-150-225-55.5-273.5 55.5-273.5 150-225 225-150 273.5-55.5 273.5 55.5 225 150 150 225 55.5 273.5q0 220-124 399l343 343q37 37 37 90z"},"seo-score-bad":{viewbox:"0 0 496 512",path:"M248 8C111 8 0 119 0 256s111 248 248 248s248-111 248-248S385 8 248 8z M328 176c17.7 0 32 14.3 32 32 s-14.3 32-32 32s-32-14.3-32-32S310.3 176 328 176z M168 176c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32S150.3 176 168 176 z M338.2 394.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320 s86.3 19.6 114.7 53.8C376.3 390 351.7 410.5 338.2 394.2L338.2 394.2z"},"seo-score-good":{viewbox:"0 0 496 512",path:"M248 8C111 8 0 119 0 256s111 248 248 248s248-111 248-248S385 8 248 8z M328 176c17.7 0 32 14.3 32 32 s-14.3 32-32 32s-32-14.3-32-32S310.3 176 328 176z M168 176c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32S150.3 176 168 176 z M362.8 346.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5c22.4 26.9 55.2 42.2 90.2 42.2 s67.8-15.4 90.2-42.2C351.6 309.5 376.3 329.9 362.8 346.2L362.8 346.2z"},"seo-score-none":{viewbox:"0 0 496 512",path:"M248 8C111 8 0 119 0 256s111 248 248 248s248-111 248-248S385 8 248 8z"},"seo-score-ok":{viewbox:"0 0 496 512",path:[r.default.createElement("path",{key:"1",fill:"#000000",d:"M344 336c21.2 0 21.2 32 0 32H152c-21.2 0-21.2-32 0-32H344z"}),r.default.createElement("circle",{key:"2",fill:"#000000",cx:"328",cy:"208",r:"32"}),r.default.createElement("circle",{key:"3",fill:"#000000",cx:"168",cy:"208",r:"32"}),r.default.createElement("path",{key:"4",d:"M248 8c137 0 248 111 248 248S385 504 248 504S0 393 0 256S111 8 248 8z M360 208c0-17.7-14.3-32-32-32 s-32 14.3-32 32s14.3 32 32 32S360 225.7 360 208z M344 368c21.2 0 21.2-32 0-32H152c-21.2 0-21.2 32 0 32H344z M200 208 c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32S200 225.7 200 208z"})]},times:{viewbox:"0 0 1792 1792",path:"M1490 1322q0 40-28 68l-136 136q-28 28-68 28t-68-28l-294-294-294 294q-28 28-68 28t-68-28l-136-136q-28-28-28-68t28-68l294-294-294-294q-28-28-28-68t28-68l136-136q28-28 68-28t68 28l294 294 294-294q28-28 68-28t68 28l136 136q28 28 28 68t-28 68l-294 294 294 294q28 28 28 68z"},"times-circle":{viewbox:"0 0 20 20",path:"M10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8 3.58-8 8-8zm5 11l-3-3 3-3-2-2-3 3-3-3-2 2 3 3-3 3 2 2 3-3 3 3z"},"alert-info":{viewbox:"0 0 512 512",path:"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"},"alert-error":{viewbox:"0 0 512 512",path:"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z"},"alert-success":{viewbox:"0 0 512 512",path:"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"},"alert-warning":{viewbox:"0 0 576 512",path:"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"}};t.default=(0,i.createSvgIconComponent)(u)},function(e,t,n){"use strict";var r={},o=Math.pow(2,24);e.exports=function(){for(var e=void 0;void 0===e||r.hasOwnProperty(e)||!isNaN(+e);)e=Math.floor(Math.random()*o).toString(32);return r[e]=!0,e}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,n){e.exports=n(598)()},function(e,t,n){var r=n(44),o=n(21),i=n(158),a=n(64),s=n(53),u=function(e,t,n){var l,c,f,d=e&u.F,p=e&u.G,h=e&u.S,g=e&u.P,y=e&u.B,m=e&u.W,v=p?o:o[t]||(o[t]={}),b=v.prototype,_=p?r:h?r[t]:(r[t]||{}).prototype;for(l in p&&(n=t),n)(c=!d&&_&&void 0!==_[l])&&s(v,l)||(f=c?_[l]:n[l],v[l]=p&&"function"!=typeof _[l]?n[l]:y&&c?i(f,r):m&&_[l]==f?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(f):g&&"function"==typeof f?i(Function.call,f):f,g&&((v.virtual||(v.virtual={}))[l]=f,e&u.R&&b&&!b[l]&&a(b,l,f)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){var r=n(51),o=n(273),i=n(159),a=Object.defineProperty;t.f=n(52)?Object.defineProperty:function(e,t,n){if(r(e),t=i(t,!0),r(n),o)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){"use strict";var r=n(771);e.exports=r},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,n){var r;
|
7 |
/*!
|
8 |
Copyright (c) 2017 Jed Watson.
|
9 |
Licensed under the MIT License (MIT), see
|
14 |
Licensed under the MIT License (MIT), see
|
15 |
http://jedwatson.github.io/classnames
|
16 |
*/
|
17 |
+
!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var i=typeof r;if("string"===i||"number"===i)e.push(r);else if(Array.isArray(r)&&r.length){var a=o.apply(null,r);a&&e.push(a)}else if("object"===i)for(var s in r)n.call(r,s)&&r[s]&&e.push(s)}}return e.join(" ")}void 0!==e&&e.exports?(o.default=o,e.exports=o):void 0===(r=function(){return o}.apply(t,[]))||(e.exports=r)}()},function(e,t,n){var r=n(433),o=n(436);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},function(e,t,n){var r=n(65);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){e.exports=!n(66)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(107),o=n(736),i=n(737),a="[object Null]",s="[object Undefined]",u=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?s:a:u&&u in Object(e)?o(e):i(e)}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,n){"use strict";var r=n(25),o=n(4),i=n(85),a=o.List,s=o.Map,u=o.OrderedSet,l=o.Record,c=o.Repeat,f=u(),d=function(e){if(!e)return e;var t=e.characterList,n=e.text;return n&&!t&&(e.characterList=a(c(r.EMPTY,n.length))),e},p=function(e){function t(n){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,d(n)))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.getKey=function(){return this.get("key")},t.prototype.getType=function(){return this.get("type")},t.prototype.getText=function(){return this.get("text")},t.prototype.getCharacterList=function(){return this.get("characterList")},t.prototype.getLength=function(){return this.getText().length},t.prototype.getDepth=function(){return this.get("depth")},t.prototype.getData=function(){return this.get("data")},t.prototype.getInlineStyleAt=function(e){var t=this.getCharacterList().get(e);return t?t.getStyle():f},t.prototype.getEntityAt=function(e){var t=this.getCharacterList().get(e);return t?t.getEntity():null},t.prototype.findStyleRanges=function(e,t){i(this.getCharacterList(),h,e,t)},t.prototype.findEntityRanges=function(e,t){i(this.getCharacterList(),g,e,t)},t}(l({key:"",type:"unstyled",text:"",characterList:a(),depth:0,data:s()}));function h(e,t){return e.getStyle()===t.getStyle()}function g(e,t){return e.getEntity()===t.getEntity()}e.exports=p},function(e,t,n){"use strict";var r=n(5),o=55296,i=56319,a=56320,s=57343,u=/[\uD800-\uDFFF]/;function l(e){return o<=e&&e<=s}function c(e){return u.test(e)}function f(e,t){return 1+l(e.charCodeAt(t))}function d(e,t,n){if(t=t||0,n=void 0===n?1/0:n||0,!c(e))return e.substr(t,n);var r=e.length;if(r<=0||t>r||n<=0)return"";var o=0;if(t>0){for(;t>0&&o<r;t--)o+=f(e,o);if(o>=r)return""}else if(t<0){for(o=r;t<0&&0<o;t++)o-=f(e,o-1);o<0&&(o=0)}var i=r;if(n<r)for(i=o;n>0&&i<r;n--)i+=f(e,i);return e.substring(o,i)}var p={getCodePoints:function(e){for(var t=[],n=0;n<e.length;n+=f(e,n))t.push(e.codePointAt(n));return t},getUTF16Length:f,hasSurrogateUnit:c,isCodeUnitInSurrogateRange:l,isSurrogatePair:function(e,t){if(0<=t&&t<e.length||r(!1),t+1===e.length)return!1;var n=e.charCodeAt(t),u=e.charCodeAt(t+1);return o<=n&&n<=i&&a<=u&&u<=s},strlen:function(e){if(!c(e))return e.length;for(var t=0,n=0;n<e.length;n+=f(e,n))t++;return t},substring:function(e,t,n){t=t||0,n=void 0===n?1/0:n||0,t<0&&(t=0),n<0&&(n=0);var r=Math.abs(n-t);return d(e,t=t<n?t:n,r)},substr:d};e.exports=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.recommendedReplacementVariablesShape=t.replacementVariablesShape=t.lengthProgressShape=void 0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(17));t.lengthProgressShape=r.default.shape({max:r.default.number,actual:r.default.number,score:r.default.number}),t.replacementVariablesShape=r.default.arrayOf(r.default.shape({name:r.default.string.isRequired,value:r.default.string.isRequired,label:r.default.string,description:r.default.string})),t.recommendedReplacementVariablesShape=r.default.arrayOf(r.default.string)},function(e,t,n){var r=n(1001),o=n(1006);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BaseButton=t.addButtonStyles=void 0,t.addBaseStyle=f,t.addFocusStyle=d,t.addHoverStyle=p,t.addActiveStyle=h;var r=u(n(1)),o=u(n(224)),i=u(n(2)),a=n(3),s=n(7);function u(e){return e&&e.__esModule?e:{default:e}}const l={minHeight:32,verticalPadding:4,borderWidth:1},c=l.minHeight-2*l.verticalPadding-2*l.borderWidth;function f(e){return(0,r.default)(e).withConfig({displayName:"Button",componentId:"grb41s-0"})(["display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;border-width:",";border-style:solid;margin:0;padding:"," 10px;border-radius:3px;cursor:pointer;box-sizing:border-box;font-size:inherit;font-family:inherit;font-weight:inherit;text-align:",";overflow:visible;min-height:",';svg{align-self:center;}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){::after{display:inline-block;content:"";min-height:',";}}"],`${l.borderWidth}px`,`${l.verticalPadding}px`,(0,s.getDirectionalStyle)("left","right"),`${l.minHeight}px`,`${c}px`)}function d(e){return(0,r.default)(e).withConfig({displayName:"Button",componentId:"grb41s-1"})(["&::-moz-focus-inner{border-width:0;}&:focus{outline:none;border-color:",";color:",";background-color:",";box-shadow:0 0 3px ",";}"],e=>e.focusBorderColor,e=>e.focusColor,e=>e.focusBackgroundColor,(0,a.rgba)(a.colors.$color_blue_dark,.8))}function p(e){return(0,r.default)(e).withConfig({displayName:"Button",componentId:"grb41s-2"})(["&:hover{color:",";background-color:",";border-color:",";}"],e=>e.hoverColor,e=>e.hoverBackgroundColor,e=>e.hoverBorderColor)}function h(e){return(0,r.default)(e).withConfig({displayName:"Button",componentId:"grb41s-3"})(["&:active{color:",";background-color:",";border-color:",";box-shadow:inset 0 2px 5px -3px ",";}"],e=>e.activeColor,e=>e.activeBackgroundColor,e=>e.activeBorderColor,(0,a.rgba)(a.colors.$color_button_border_active,.5))}const g=t.addButtonStyles=(0,o.default)([h,d,p,f]),y=t.BaseButton=g(r.default.button.withConfig({displayName:"Button__BaseButton",componentId:"grb41s-4"})(["color:",";border-color:",";background:",";box-shadow:0 1px 0 ",";"],e=>e.textColor,e=>e.borderColor,e=>e.backgroundColor,e=>(0,a.rgba)(e.boxShadowColor,1)));y.propTypes={type:i.default.string,backgroundColor:i.default.string,textColor:i.default.string,borderColor:i.default.string,boxShadowColor:i.default.string,hoverColor:i.default.string,hoverBackgroundColor:i.default.string,hoverBorderColor:i.default.string,activeColor:i.default.string,activeBackgroundColor:i.default.string,activeBorderColor:i.default.string,focusColor:i.default.string,focusBackgroundColor:i.default.string,focusBorderColor:i.default.string},y.defaultProps={type:"button",backgroundColor:a.colors.$color_button,textColor:a.colors.$color_button_text,borderColor:a.colors.$color_button_border,boxShadowColor:a.colors.$color_button_border,hoverColor:a.colors.$color_button_text_hover,hoverBackgroundColor:a.colors.$color_button_hover,hoverBorderColor:a.colors.$color_button_border_hover,activeColor:a.colors.$color_button_text_hover,activeBackgroundColor:a.colors.$color_button,activeBorderColor:a.colors.$color_button_border_hover,focusColor:a.colors.$color_button_text_hover,focusBackgroundColor:a.colors.$color_white,focusBorderColor:a.colors.$color_blue},t.default=y},function(e,t,n){var r=n(78),o=n(426),i=n(427),a="[object Null]",s="[object Undefined]",u=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?s:a:u&&u in Object(e)?o(e):i(e)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=s(n(0)),i=s(n(544)),a=s(n(547));function s(e){return e&&e.__esModule?e:{default:e}}var u=void 0;function l(e,t){var n,a,s,c,f,d,p,h,g=[],y={};for(d=0;d<e.length;d++)if("string"!==(f=e[d]).type){if(!t.hasOwnProperty(f.value)||void 0===t[f.value])throw new Error("Invalid interpolation, missing component node: `"+f.value+"`");if("object"!==r(t[f.value]))throw new Error("Invalid interpolation, component node must be a ReactElement or null: `"+f.value+"`","\n> "+u);if("componentClose"===f.type)throw new Error("Missing opening component token: `"+f.value+"`");if("componentOpen"===f.type){n=t[f.value],s=d;break}g.push(t[f.value])}else g.push(f.value);return n&&(c=function(e,t){var n,r,o=t[e],i=0;for(r=e+1;r<t.length;r++)if((n=t[r]).value===o.value){if("componentOpen"===n.type){i++;continue}if("componentClose"===n.type){if(0===i)return r;i--}}throw new Error("Missing closing component token `"+o.value+"`")}(s,e),p=l(e.slice(s+1,c),t),a=o.default.cloneElement(n,{},p),g.push(a),c<e.length-1&&(h=l(e.slice(c+1),t),g=g.concat(h))),1===g.length?g[0]:(g.forEach(function(e,t){e&&(y["interpolation-child-"+t]=e)}),(0,i.default)(y))}t.default=function(e){var t=e.mixedString,n=e.components,o=e.throwErrors;if(u=t,!n)return t;if("object"!==(void 0===n?"undefined":r(n))){if(o)throw new Error("Interpolation Error: unable to process `"+t+"` because components is not an object");return t}var i=(0,a.default)(t);try{return l(i,n)}catch(e){if(o)throw new Error("Interpolation Error: unable to process `"+t+"` because of error `"+e.message+"`");return t}}},function(e,t,n){"use strict";e.exports=function(){}},function(e,t,n){var r=n(45),o=n(81);e.exports=n(52)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){var r=n(276),o=n(161);e.exports=function(e){return r(o(e))}},function(e,t){e.exports={}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){if(n)return[e,t];return e},e.exports=t.default},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){"use strict";var r=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.serialize=function(){return"Anchor: "+this.getAnchorKey()+":"+this.getAnchorOffset()+", Focus: "+this.getFocusKey()+":"+this.getFocusOffset()+", Is Backward: "+String(this.getIsBackward())+", Has Focus: "+String(this.getHasFocus())},t.prototype.getAnchorKey=function(){return this.get("anchorKey")},t.prototype.getAnchorOffset=function(){return this.get("anchorOffset")},t.prototype.getFocusKey=function(){return this.get("focusKey")},t.prototype.getFocusOffset=function(){return this.get("focusOffset")},t.prototype.getIsBackward=function(){return this.get("isBackward")},t.prototype.getHasFocus=function(){return this.get("hasFocus")},t.prototype.hasEdgeWithin=function(e,t,n){var r=this.getAnchorKey(),o=this.getFocusKey();if(r===o&&r===e){var i=this.getStartOffset();return t<=this.getEndOffset()&&i<=n}if(e!==r&&e!==o)return!1;var a=e===r?this.getAnchorOffset():this.getFocusOffset();return t<=a&&n>=a},t.prototype.isCollapsed=function(){return this.getAnchorKey()===this.getFocusKey()&&this.getAnchorOffset()===this.getFocusOffset()},t.prototype.getStartKey=function(){return this.getIsBackward()?this.getFocusKey():this.getAnchorKey()},t.prototype.getStartOffset=function(){return this.getIsBackward()?this.getFocusOffset():this.getAnchorOffset()},t.prototype.getEndKey=function(){return this.getIsBackward()?this.getAnchorKey():this.getFocusKey()},t.prototype.getEndOffset=function(){return this.getIsBackward()?this.getAnchorOffset():this.getFocusOffset()},t.createEmpty=function(e){return new t({anchorKey:e,anchorOffset:0,focusKey:e,focusOffset:0,isBackward:!1,hasFocus:!1})},t}((0,n(4).Record)({anchorKey:"",anchorOffset:0,focusKey:"",focusOffset:0,isBackward:!1,hasFocus:!1}));e.exports=r},function(e,t,n){"use strict";function r(e){return e.replace(/\//g,"-")}e.exports=function(e){return"object"==typeof e?Object.keys(e).filter(function(t){return e[t]}).map(r).join(" "):Array.prototype.map.call(arguments,r).join(" ")}},function(e,t,n){var r=n(897),o=n(900);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},function(e,t,n){var r=n(75),o=n(1002),i=n(1003),a="[object Null]",s="[object Undefined]",u=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?s:a:u&&u in Object(e)?o(e):i(e)}},function(e,t,n){var r=n(37).Symbol;e.exports=r},function(e,t,n){var r=n(204),o=n(362);e.exports=function(e,t,n,i){var a=!n;n||(n={});for(var s=-1,u=t.length;++s<u;){var l=t[s],c=i?i(n[l],e[l],l,n,e):void 0;void 0===c&&(c=e[l]),a?o(n,l,c):r(n,l,c)}return n}},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){var r=n(32).Symbol;e.exports=r},function(e,t,n){var r=n(237),o=n(238);e.exports=function(e,t,n,i){var a=!n;n||(n={});for(var s=-1,u=t.length;++s<u;){var l=t[s],c=i?i(n[l],e[l],l,n,e):void 0;void 0===c&&(c=e[l]),a?o(n,l,c):r(n,l,c)}return n}},function(e,t,n){e.exports=n(579)()},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var r=n(275),o=n(165);e.exports=Object.keys||function(e){return r(e,o)}},function(e,t,n){var r=n(161);e.exports=function(e){return Object(r(e))}},function(e,t,n){"use strict";var r=n(4).OrderedMap,o={createFromArray:function(e){return r(e.map(function(e){return[e.getKey(),e]}))}};e.exports=o},function(e,t,n){"use strict";e.exports=function(e,t,n,r){if(e.size){var o=0;e.reduce(function(e,i,a){return t(e,i)||(n(e)&&r(o,a),o=a),i}),n(e.last())&&r(o,e.count())}}},function(e,t,n){"use strict";e.exports=function(e){return"handled"===e||!0===e}},function(e,t,n){"use strict";var r=n(22);e.exports=function(e,t,n){var o=e.getSelection(),i=e.getCurrentContent(),a=o;if(o.isCollapsed()){if("forward"===n){if(e.isSelectionAtEndOfContent())return i}else if(e.isSelectionAtStartOfContent())return i;if((a=t(e))===o)return i}return r.removeRange(i,a,n)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SiteSEOReport=t.renderRatingToColor=t.AnalysisList=t.AnalysisResult=t.ContentAnalysis=void 0;var r=n(360),o=u(r),i=u(n(990)),a=u(n(361)),s=u(n(991));function u(e){return e&&e.__esModule?e:{default:e}}t.ContentAnalysis=i.default,t.AnalysisResult=a.default,t.AnalysisList=o.default,t.renderRatingToColor=r.renderRatingToColor,t.SiteSEOReport=s.default},function(e,t,n){var r=n(369),o=n(1018),i=n(121);e.exports=function(e){return i(e)?r(e):o(e)}},function(e,t,n){var r=n(129),o=1/0;e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-o?"-0":t}},function(e,t,n){e.exports=n(1116)()},function(e,t,n){var r=n(234),o=n(448),i=n(502),a=n(146),s=n(79),u=n(513),l=n(225),c=n(248),f=l(function(e,t){var n={};if(null==e)return n;var l=!1;t=r(t,function(t){return t=a(t,e),l||(l=t.length>1),t}),s(e,c(e),n),l&&(n=o(n,7,u));for(var f=t.length;f--;)i(n,t[f]);return n});e.exports=f},function(e,t,n){var r=n(450),o=n(451),i=n(452),a=n(453),s=n(454);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},function(e,t,n){var r=n(235);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},function(e,t,n){var r=n(50)(Object,"create");e.exports=r},function(e,t,n){var r=n(468);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},function(e,t){var n=Object.prototype;e.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||n)}},function(e,t,n){var r=n(487),o=n(137),i=n(488),a=n(489),s=n(231),u=n(61),l=n(229),c=l(r),f=l(o),d=l(i),p=l(a),h=l(s),g=u;(r&&"[object DataView]"!=g(new r(new ArrayBuffer(1)))||o&&"[object Map]"!=g(new o)||i&&"[object Promise]"!=g(i.resolve())||a&&"[object Set]"!=g(new a)||s&&"[object WeakMap]"!=g(new s))&&(g=function(e){var t=u(e),n="[object Object]"==t?e.constructor:void 0,r=n?l(n):"";if(r)switch(r){case c:return"[object DataView]";case f:return"[object Map]";case d:return"[object Promise]";case p:return"[object Set]";case h:return"[object WeakMap]"}return t}),e.exports=g},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(606));t.default=r.default},function(e,t){e.exports=!0},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){"use strict";var r=n(621)(!0);n(280)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={set:function(e,t,n){e[t]=n}}},function(e,t,n){var r=n(54),o=n(55),i="[object Symbol]";e.exports=function(e){return"symbol"==typeof e||o(e)&&r(e)==i}},function(e,t,n){var r=n(35).Symbol;e.exports=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TriggerReplacementVariableSuggestionsButton=t.SimulatedLabel=t.StyledEditor=t.FormSection=t.DescriptionInputContainer=t.TitleInputContainer=t.withCaretStyles=t.InputContainer=t.angleLeft=t.angleRight=void 0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(1)),o=n(8),i=n(3),a=n(7);const s=t.angleRight=(e=>"data:image/svg+xml;charset=utf8,"+encodeURIComponent('<svg width="1792" height="1792" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path fill="'+e+'" d="M1152 896q0 26-19 45l-448 448q-19 19-45 19t-45-19-19-45v-896q0-26 19-45t45-19 45 19l448 448q19 19 19 45z" /></svg>')),u=t.angleLeft=(e=>"data:image/svg+xml;charset=utf8,"+encodeURIComponent('<svg width="1792" height="1792" viewBox="0 0 192 512" xmlns="http://www.w3.org/2000/svg"><path fill="'+e+'" d="M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"/></svg>'));function l(e){switch(!0){case e.isActive:return i.colors.$color_snippet_focus;case e.isHovered:return i.colors.$color_snippet_hover;default:return"transparent"}}const c=t.InputContainer=r.default.div.attrs({}).withConfig({displayName:"shared__InputContainer",componentId:"sc-1qsmlb9-0"})(["flex:0 1 100%;border:1px solid ",";padding:3px 5px;box-sizing:border-box;box-shadow:",";background-color:#fff;color:#32373c;outline:0;transition:50ms border-color ease-in-out;position:relative;font-family:Arial,Roboto-Regular,HelveticaNeue,sans-serif;font-size:14px;cursor:text;"],e=>e.isActive?"#5b9dd9":"#ddd",e=>e.isActive?"0 0 2px rgba(30,140,190,.8);":"inset 0 1px 2px rgba(0,0,0,.07)");function f(e){return(0,a.getDirectionalStyle)(s(l(e)),u(l(e)))(e)}t.withCaretStyles=(e=>(0,r.default)(e).withConfig({displayName:"shared",componentId:"sc-1qsmlb9-1"})(["&::before{display:block;position:absolute;top:-1px;",":-25px;width:24px;height:24px;background-image:url( ",' );background-size:25px;content:"";}'],(0,a.getDirectionalStyle)("left","right"),f)),t.TitleInputContainer=(0,r.default)(c).withConfig({displayName:"shared__TitleInputContainer",componentId:"sc-1qsmlb9-2"})([".public-DraftStyleDefault-block{line-height:24px;}"]),t.DescriptionInputContainer=(0,r.default)(c).withConfig({displayName:"shared__DescriptionInputContainer",componentId:"sc-1qsmlb9-3"})(["min-height:72px;padding:2px 6px;line-height:24px;.public-DraftEditorPlaceholder-root{color:",";}.public-DraftEditorPlaceholder-hasFocus{color:",";}"],i.colors.$color_grey_text,i.colors.$color_grey_text),t.FormSection=r.default.div.withConfig({displayName:"shared__FormSection",componentId:"sc-1qsmlb9-4"})(["display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;margin:24px 0 0 0;"]),t.StyledEditor=r.default.section.withConfig({displayName:"shared__StyledEditor",componentId:"sc-1qsmlb9-5"})(["padding:",";"],e=>e.padding?e.padding:"0 20px"),t.SimulatedLabel=r.default.div.withConfig({displayName:"shared__SimulatedLabel",componentId:"sc-1qsmlb9-6"})(["flex:1 1 200px;min-width:200px;cursor:pointer;font-size:16px;font-family:Arial,Roboto-Regular,HelveticaNeue,sans-serif;margin:4px 0;"]),t.TriggerReplacementVariableSuggestionsButton=(0,r.default)(o.Button).withConfig({displayName:"shared__TriggerReplacementVariableSuggestionsButton",componentId:"sc-1qsmlb9-7"})(["box-shadow:none;font-family:Arial,Roboto-Regular,HelveticaNeue,sans-serif;padding-left:8px;height:33px;border:1px solid #dbdbdb;font-size:13px;& svg{",":7px;fill:",";}"],(0,a.getDirectionalStyle)("margin-right","margin-left"),i.colors.$color_grey_dark)},function(e,t,n){"use strict";var r=n(313),o=n(314);e.exports=function(e,t){var n=t.getStartKey(),i=t.getStartOffset(),a=t.getEndKey(),s=t.getEndOffset(),u=o(e,t).getBlockMap(),l=u.keySeq(),c=l.indexOf(n),f=l.indexOf(a)+1;return r(u.slice(c,f).map(function(e,t){var r=e.getText(),o=e.getCharacterList();return n===a?e.merge({text:r.slice(i,s),characterList:o.slice(i,s)}):t===n?e.merge({text:r.slice(i),characterList:o.slice(i)}):t===a?e.merge({text:r.slice(0,s),characterList:o.slice(0,s)}):e}))}},function(e,t,n){"use strict";var r=n(26)||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=n(318),i=n(4),a=n(5),s=(0,i.Map)(),u=0;function l(e,t){console.warn("WARNING: "+e+' will be deprecated soon!\nPlease use "'+t+'" instead.')}var c={getLastCreatedEntityKey:function(){return l("DraftEntity.getLastCreatedEntityKey","contentState.getLastCreatedEntityKey"),c.__getLastCreatedEntityKey()},create:function(e,t,n){return l("DraftEntity.create","contentState.createEntity"),c.__create(e,t,n)},add:function(e){return l("DraftEntity.add","contentState.addEntity"),c.__add(e)},get:function(e){return l("DraftEntity.get","contentState.getEntity"),c.__get(e)},mergeData:function(e,t){return l("DraftEntity.mergeData","contentState.mergeEntityData"),c.__mergeData(e,t)},replaceData:function(e,t){return l("DraftEntity.replaceData","contentState.replaceEntityData"),c.__replaceData(e,t)},__getLastCreatedEntityKey:function(){return""+u},__create:function(e,t,n){return c.__add(new o({type:e,mutability:t,data:n||{}}))},__add:function(e){var t=""+ ++u;return s=s.set(t,e),t},__get:function(e){var t=s.get(e);return t||a(!1),t},__mergeData:function(e,t){var n=c.__get(e),o=r({},n.getData(),t),i=n.set("data",o);return s=s.set(e,i),i},__replaceData:function(e,t){var n=c.__get(e).set("data",t);return s=s.set(e,n),n}};e.exports=c},function(e,t,n){"use strict";var r={encode:function(e,t,n){return e+"-"+t+"-"+n},decode:function(e){var t=e.split("-"),n=t[0],r=t[1],o=t[2];return{blockKey:n,decoratorKey:parseInt(r,10),leafKey:parseInt(o,10)}}};e.exports=r},function(e,t,n){var r=n(347),o=n(198);e.exports=function(e){return null!=e&&o(e.length)&&!r(e)}},function(e,t,n){var r=n(913),o=n(344),i=n(112);e.exports=function(e){return i(e)?r(e):o(e)}},function(e,t,n){var r=n(919),o=n(920),i=n(921),a=n(922),s=n(923);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},function(e,t,n){var r=n(352);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},function(e,t,n){var r=n(73)(Object,"create");e.exports=r},function(e,t,n){var r=n(937);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},function(e,t,n){var r=n(106),o=1/0;e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-o?"-0":t}},function(e,t,n){e.exports=n(987)()},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t,n){var r=n(364),o=n(206);e.exports=function(e){return null!=e&&o(e.length)&&!r(e)}},function(e,t){var n=Object.prototype;e.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||n)}},function(e,t,n){var r=n(1026),o=n(1027),i=n(1028),a=n(1029),s=n(1030);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},function(e,t,n){var r=n(120);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},function(e,t,n){var r=n(59)(Object,"create");e.exports=r},function(e,t,n){var r=n(1044);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},function(e,t,n){var r=n(1059),o=n(214),i=n(1060),a=n(1061),s=n(1062),u=n(74),l=n(366),c=l(r),f=l(o),d=l(i),p=l(a),h=l(s),g=u;(r&&"[object DataView]"!=g(new r(new ArrayBuffer(1)))||o&&"[object Map]"!=g(new o)||i&&"[object Promise]"!=g(i.resolve())||a&&"[object Set]"!=g(new a)||s&&"[object WeakMap]"!=g(new s))&&(g=function(e){var t=u(e),n="[object Object]"==t?e.constructor:void 0,r=n?l(n):"";if(r)switch(r){case c:return"[object DataView]";case f:return"[object Map]";case d:return"[object Promise]";case p:return"[object Set]";case h:return"[object WeakMap]"}return t}),e.exports=g},function(e,t,n){var r=n(38),o=n(219),i=n(1066),a=n(1069);e.exports=function(e,t){return r(e)?e:o(e,t)?[e]:i(a(e))}},function(e,t,n){var r=n(74),o=n(48),i="[object Symbol]";e.exports=function(e){return"symbol"==typeof e||o(e)&&r(e)==i}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getXPathText=i,t.parseFeed=s,t.default=function(e,t=0,n=o.parseFeedItem){return fetch(e).then(function(e){return e.text()}).then(function(e){return s(e,t,n)})};var r=function(e){return e&&e.__esModule?e:{default:e}}(n(399)),o=n(223);function i(e,t,n=null,r=null){if(0===t.evaluate("count("+e+")",n||t,r,XPathResult.ANY_TYPE,null).numberValue)return;const o=t.evaluate(e,n||t,r,XPathResult.STRING_TYPE,null);return o.stringValue?o.stringValue:null}function a(e,t,n,r){const o=function(e,t,n=null,r=null){return t.evaluate(e,n||t,r,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null)}("/rss/channel/item",e);let i=o.snapshotLength;const a=[];0!==n&&(i=Math.min(i,n));for(let n=0;n<i;n++){const i=o.snapshotItem(n);a.push(r(e,i,t))}return a}function s(e,t=0,n){return new Promise(function(o,s){try{"evaluate"in document==!1&&r.default.install();const u=(new DOMParser).parseFromString(e,"application/xml"),l=u.createNSResolver(u.documentElement),c=function(e){const t={};return t.title=i("/rss/channel/title",e),t.description=i("/rss/channel/description",e),t.link=i("/rss/channel/link",e),t}(u);c.items=a(u,l,t,n),o(c)}catch(e){s(e)}})}},function(e,t,n){var r=n(132),o=n(133);function i(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}i.prototype=r(o.prototype),i.prototype.constructor=i,e.exports=i},function(e,t,n){var r=n(77),o=Object.create,i=function(){function e(){}return function(t){if(!r(t))return{};if(o)return o(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=i},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}},function(e,t,n){var r=n(425),o=n(41),i=Object.prototype,a=i.hasOwnProperty,s=i.propertyIsEnumerable,u=r(function(){return arguments}())?r:function(e){return o(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=u},function(e,t,n){var r=n(132),o=n(133),i=4294967295;function a(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=i,this.__views__=[]}a.prototype=r(o.prototype),a.prototype.constructor=a,e.exports=a},function(e,t,n){var r=n(50)(n(32),"Map");e.exports=r},function(e,t,n){var r=n(239),o=n(242),i=n(142);e.exports=function(e){return i(e)?r(e):o(e)}},function(e,t,n){(function(e){var r=n(32),o=n(475),i="object"==typeof t&&t&&!t.nodeType&&t,a=i&&"object"==typeof e&&e&&!e.nodeType&&e,s=a&&a.exports===i?r.Buffer:void 0,u=(s?s.isBuffer:void 0)||o;e.exports=u}).call(this,n(34)(e))},function(e,t){e.exports=function(e){return function(t){return e(t)}}},function(e,t,n){(function(e){var r=n(226),o="object"==typeof t&&t&&!t.nodeType&&t,i=o&&"object"==typeof e&&e&&!e.nodeType&&e,a=i&&i.exports===o&&r.process,s=function(){try{var e=i&&i.require&&i.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(e){}}();e.exports=s}).call(this,n(34)(e))},function(e,t,n){var r=n(228),o=n(241);e.exports=function(e){return null!=e&&o(e.length)&&!r(e)}},function(e,t,n){var r=n(484),o=n(245),i=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(e){return null==e?[]:(e=Object(e),r(a(e),function(t){return i.call(e,t)}))}:o;e.exports=s},function(e,t,n){var r=n(243)(Object.getPrototypeOf,Object);e.exports=r},function(e,t,n){var r=n(492);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},function(e,t,n){var r=n(33),o=n(503),i=n(504),a=n(507);e.exports=function(e,t){return r(e)?e:o(e,t)?[e]:i(a(e))}},function(e,t,n){var r=n(61),o=n(41),i="[object Symbol]";e.exports=function(e){return"symbol"==typeof e||o(e)&&r(e)==i}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.speak=t.setup=void 0;var r=s(n(522)),o=s(n(523)),i=s(n(524)),a=s(n(525));function s(e){return e&&e.__esModule?e:{default:e}}var u=t.setup=function(){var e=document.getElementById("a11y-speak-polite"),t=document.getElementById("a11y-speak-assertive");null===e&&(e=(0,r.default)("polite")),null===t&&(t=(0,r.default)("assertive"))};(0,i.default)(u);t.speak=function(e,t){(0,o.default)(),e=(0,a.default)(e);var n=document.getElementById("a11y-speak-polite"),r=document.getElementById("a11y-speak-assertive");r&&"assertive"===t?r.textContent=e:n&&(n.textContent=e)}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){e.exports=!n(151)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(n(0)),o=i(n(2));function i(e){return e&&e.__esModule?e:{default:e}}const a=e=>{const t=`h${e.level}`;return r.default.createElement(t,{className:e.className},e.children)};a.propTypes={level:o.default.number,className:o.default.string,children:o.default.any},a.defaultProps={level:1},t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.YoastButton=t.YoastButtonBase=void 0,t.addButtonStyles=c;var r=s(n(0)),o=s(n(2)),i=s(n(1)),a=n(3);function s(e){return e&&e.__esModule?e:{default:e}}const u={minHeight:48,verticalPadding:0,borderWidth:0},l=u.minHeight-2*u.verticalPadding-2*u.borderWidth;function c(e){return(0,i.default)(e).withConfig({displayName:"YoastButton",componentId:"v1c803-0"})(["display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;min-height:",";margin:0;padding:0 16px;padding:",' 16px;border:0;border-radius:4px;box-sizing:border-box;font:400 14px/24px "Open Sans",sans-serif;text-transform:uppercase;box-shadow:0 2px 8px 0 ',";transition:box-shadow 150ms ease-out;&:hover,&:focus,&:active{box-shadow:0 4px 10px 0 ",",inset 0 0 0 100px ",";color:",';}&:active{transform:translateY( 1px );box-shadow:none;}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){::after{display:inline-block;content:"";min-height:',";}}"],`${u.minHeight}px`,`${u.verticalPadding}px`,(0,a.rgba)(a.colors.$color_black,.3),(0,a.rgba)(a.colors.$color_black,.2),(0,a.rgba)(a.colors.$color_black,.1),e=>e.textColor,`${l}px`)}const f=t.YoastButtonBase=(({className:e,onClick:t,type:n,children:o,isExpanded:i})=>r.default.createElement("button",{className:e,onClick:t,type:n,"aria-expanded":i},r.default.createElement("span",null,o)));f.propTypes={className:o.default.string,onClick:o.default.func,type:o.default.string,isExpanded:o.default.bool,children:o.default.oneOfType([o.default.arrayOf(o.default.node),o.default.node,o.default.string])},f.defaultProps={type:"button"};const d=t.YoastButton=c((0,i.default)(f).withConfig({displayName:"YoastButton",componentId:"v1c803-1"})(["color:",";background:",";min-width:152px;",";overflow:visible;cursor:pointer;&::-moz-focus-inner{border-width:0;}span{display:inherit;align-items:inherit;justify-content:inherit;width:100%;}"],e=>e.textColor,e=>e.backgroundColor,e=>e.withTextShadow?`text-shadow: 0 0 2px ${a.colors.$color_black}`:""));d.propTypes={backgroundColor:o.default.string,textColor:o.default.string,withTextShadow:o.default.bool},d.defaultProps={backgroundColor:a.colors.$color_green_medium_light,textColor:a.colors.$color_white,withTextShadow:!0}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.canUseDOM=void 0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(575)).default,o=r.canUseDOM?window.HTMLElement:{};t.canUseDOM=r.canUseDOM;t.default=o},function(e,t,n){"use strict";function r(){var e=this.constructor.getDerivedStateFromProps(this.props,this.state);null!==e&&void 0!==e&&this.setState(e)}function o(e){this.setState(function(t){var n=this.constructor.getDerivedStateFromProps(e,t);return null!==n&&void 0!==n?n:null}.bind(this))}function i(e,t){try{var n=this.props,r=this.state;this.props=e,this.state=t,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(n,r)}finally{this.props=n,this.state=r}}function a(e){var t=e.prototype;if(!t||!t.isReactComponent)throw new Error("Can only polyfill class components");if("function"!=typeof e.getDerivedStateFromProps&&"function"!=typeof t.getSnapshotBeforeUpdate)return e;var n=null,a=null,s=null;if("function"==typeof t.componentWillMount?n="componentWillMount":"function"==typeof t.UNSAFE_componentWillMount&&(n="UNSAFE_componentWillMount"),"function"==typeof t.componentWillReceiveProps?a="componentWillReceiveProps":"function"==typeof t.UNSAFE_componentWillReceiveProps&&(a="UNSAFE_componentWillReceiveProps"),"function"==typeof t.componentWillUpdate?s="componentWillUpdate":"function"==typeof t.UNSAFE_componentWillUpdate&&(s="UNSAFE_componentWillUpdate"),null!==n||null!==a||null!==s){var u=e.displayName||e.name,l="function"==typeof e.getDerivedStateFromProps?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n"+u+" uses "+l+" but also contains the following legacy lifecycles:"+(null!==n?"\n "+n:"")+(null!==a?"\n "+a:"")+(null!==s?"\n "+s:"")+"\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks")}if("function"==typeof e.getDerivedStateFromProps&&(t.componentWillMount=r,t.componentWillReceiveProps=o),"function"==typeof t.getSnapshotBeforeUpdate){if("function"!=typeof t.componentDidUpdate)throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");t.componentWillUpdate=i;var c=t.componentDidUpdate;t.componentDidUpdate=function(e,t,n){var r=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:n;c.call(this,e,t,r)}}return e}n.r(t),n.d(t,"polyfill",function(){return a}),r.__suppressDeprecationWarning=!0,o.__suppressDeprecationWarning=!0,i.__suppressDeprecationWarning=!0},function(e,t,n){"use strict";t.__esModule=!0;var r=i(n(602)),o=i(n(157));i(n(271)),i(n(272));function i(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){return(0,r.default)(function(e,t){return!(0,o.default)(e,t)})(e)}},function(e,t,n){"use strict";t.__esModule=!0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(605));t.default=r.default},function(e,t,n){var r=n(610);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){var r=n(65);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t,n){var r=n(164)("keys"),o=n(102);e.exports=function(e){return r[e]||(r[e]=o(e))}},function(e,t,n){var r=n(21),o=n(44),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(101)?"pure":"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){"use strict";t.__esModule=!0;var r=a(n(619)),o=a(n(628)),i="function"==typeof o.default&&"symbol"==typeof r.default?function(e){return typeof e}:function(e){return e&&"function"==typeof o.default&&e.constructor===o.default&&e!==o.default.prototype?"symbol":typeof e};function a(e){return e&&e.__esModule?e:{default:e}}t.default="function"==typeof o.default&&"symbol"===i(r.default)?function(e){return void 0===e?"undefined":i(e)}:function(e){return e&&"function"==typeof o.default&&e.constructor===o.default&&e!==o.default.prototype?"symbol":void 0===e?"undefined":i(e)}},function(e,t,n){var r=n(51),o=n(623),i=n(165),a=n(163)("IE_PROTO"),s=function(){},u=function(){var e,t=n(274)("iframe"),r=i.length;for(t.style.display="none",n(624).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),u=e.F;r--;)delete u.prototype[i[r]];return u()};e.exports=Object.create||function(e,t){var n;return null!==e?(s.prototype=r(e),n=new s,s.prototype=null,n[a]=e):n=u(),void 0===t?n:o(n,t)}},function(e,t,n){var r=n(45).f,o=n(53),i=n(28)("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},function(e,t,n){n(625);for(var r=n(44),o=n(64),i=n(68),a=n(28)("toStringTag"),s="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),u=0;u<s.length;u++){var l=s[u],c=r[l],f=c&&c.prototype;f&&!f[a]&&o(f,a,l),i[l]=i.Array}},function(e,t,n){t.f=n(28)},function(e,t,n){var r=n(44),o=n(21),i=n(101),a=n(171),s=n(45).f;e.exports=function(e){var t=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||s(t,e,{value:a.f(e)})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.red50="#ffebee",t.red100="#ffcdd2",t.red200="#ef9a9a",t.red300="#e57373",t.red400="#ef5350",t.red500="#f44336",t.red600="#e53935",t.red700="#d32f2f",t.red800="#c62828",t.red900="#b71c1c",t.redA100="#ff8a80",t.redA200="#ff5252",t.redA400="#ff1744",t.redA700="#d50000",t.pink50="#fce4ec",t.pink100="#f8bbd0",t.pink200="#f48fb1",t.pink300="#f06292",t.pink400="#ec407a",t.pink500="#e91e63",t.pink600="#d81b60",t.pink700="#c2185b",t.pink800="#ad1457",t.pink900="#880e4f",t.pinkA100="#ff80ab",t.pinkA200="#ff4081",t.pinkA400="#f50057",t.pinkA700="#c51162",t.purple50="#f3e5f5",t.purple100="#e1bee7",t.purple200="#ce93d8",t.purple300="#ba68c8",t.purple400="#ab47bc",t.purple500="#9c27b0",t.purple600="#8e24aa",t.purple700="#7b1fa2",t.purple800="#6a1b9a",t.purple900="#4a148c",t.purpleA100="#ea80fc",t.purpleA200="#e040fb",t.purpleA400="#d500f9",t.purpleA700="#aa00ff",t.deepPurple50="#ede7f6",t.deepPurple100="#d1c4e9",t.deepPurple200="#b39ddb",t.deepPurple300="#9575cd",t.deepPurple400="#7e57c2",t.deepPurple500="#673ab7",t.deepPurple600="#5e35b1",t.deepPurple700="#512da8",t.deepPurple800="#4527a0",t.deepPurple900="#311b92",t.deepPurpleA100="#b388ff",t.deepPurpleA200="#7c4dff",t.deepPurpleA400="#651fff",t.deepPurpleA700="#6200ea",t.indigo50="#e8eaf6",t.indigo100="#c5cae9",t.indigo200="#9fa8da",t.indigo300="#7986cb",t.indigo400="#5c6bc0",t.indigo500="#3f51b5",t.indigo600="#3949ab",t.indigo700="#303f9f",t.indigo800="#283593",t.indigo900="#1a237e",t.indigoA100="#8c9eff",t.indigoA200="#536dfe",t.indigoA400="#3d5afe",t.indigoA700="#304ffe",t.blue50="#e3f2fd",t.blue100="#bbdefb",t.blue200="#90caf9",t.blue300="#64b5f6",t.blue400="#42a5f5",t.blue500="#2196f3",t.blue600="#1e88e5",t.blue700="#1976d2",t.blue800="#1565c0",t.blue900="#0d47a1",t.blueA100="#82b1ff",t.blueA200="#448aff",t.blueA400="#2979ff",t.blueA700="#2962ff",t.lightBlue50="#e1f5fe",t.lightBlue100="#b3e5fc",t.lightBlue200="#81d4fa",t.lightBlue300="#4fc3f7",t.lightBlue400="#29b6f6",t.lightBlue500="#03a9f4",t.lightBlue600="#039be5",t.lightBlue700="#0288d1",t.lightBlue800="#0277bd",t.lightBlue900="#01579b",t.lightBlueA100="#80d8ff",t.lightBlueA200="#40c4ff",t.lightBlueA400="#00b0ff",t.lightBlueA700="#0091ea",t.cyan50="#e0f7fa",t.cyan100="#b2ebf2",t.cyan200="#80deea",t.cyan300="#4dd0e1",t.cyan400="#26c6da",t.cyan500="#00bcd4",t.cyan600="#00acc1",t.cyan700="#0097a7",t.cyan800="#00838f",t.cyan900="#006064",t.cyanA100="#84ffff",t.cyanA200="#18ffff",t.cyanA400="#00e5ff",t.cyanA700="#00b8d4",t.teal50="#e0f2f1",t.teal100="#b2dfdb",t.teal200="#80cbc4",t.teal300="#4db6ac",t.teal400="#26a69a",t.teal500="#009688",t.teal600="#00897b",t.teal700="#00796b",t.teal800="#00695c",t.teal900="#004d40",t.tealA100="#a7ffeb",t.tealA200="#64ffda",t.tealA400="#1de9b6",t.tealA700="#00bfa5",t.green50="#e8f5e9",t.green100="#c8e6c9",t.green200="#a5d6a7",t.green300="#81c784",t.green400="#66bb6a",t.green500="#4caf50",t.green600="#43a047",t.green700="#388e3c",t.green800="#2e7d32",t.green900="#1b5e20",t.greenA100="#b9f6ca",t.greenA200="#69f0ae",t.greenA400="#00e676",t.greenA700="#00c853",t.lightGreen50="#f1f8e9",t.lightGreen100="#dcedc8",t.lightGreen200="#c5e1a5",t.lightGreen300="#aed581",t.lightGreen400="#9ccc65",t.lightGreen500="#8bc34a",t.lightGreen600="#7cb342",t.lightGreen700="#689f38",t.lightGreen800="#558b2f",t.lightGreen900="#33691e",t.lightGreenA100="#ccff90",t.lightGreenA200="#b2ff59",t.lightGreenA400="#76ff03",t.lightGreenA700="#64dd17",t.lime50="#f9fbe7",t.lime100="#f0f4c3",t.lime200="#e6ee9c",t.lime300="#dce775",t.lime400="#d4e157",t.lime500="#cddc39",t.lime600="#c0ca33",t.lime700="#afb42b",t.lime800="#9e9d24",t.lime900="#827717",t.limeA100="#f4ff81",t.limeA200="#eeff41",t.limeA400="#c6ff00",t.limeA700="#aeea00",t.yellow50="#fffde7",t.yellow100="#fff9c4",t.yellow200="#fff59d",t.yellow300="#fff176",t.yellow400="#ffee58",t.yellow500="#ffeb3b",t.yellow600="#fdd835",t.yellow700="#fbc02d",t.yellow800="#f9a825",t.yellow900="#f57f17",t.yellowA100="#ffff8d",t.yellowA200="#ffff00",t.yellowA400="#ffea00",t.yellowA700="#ffd600",t.amber50="#fff8e1",t.amber100="#ffecb3",t.amber200="#ffe082",t.amber300="#ffd54f",t.amber400="#ffca28",t.amber500="#ffc107",t.amber600="#ffb300",t.amber700="#ffa000",t.amber800="#ff8f00",t.amber900="#ff6f00",t.amberA100="#ffe57f",t.amberA200="#ffd740",t.amberA400="#ffc400",t.amberA700="#ffab00",t.orange50="#fff3e0",t.orange100="#ffe0b2",t.orange200="#ffcc80",t.orange300="#ffb74d",t.orange400="#ffa726",t.orange500="#ff9800",t.orange600="#fb8c00",t.orange700="#f57c00",t.orange800="#ef6c00",t.orange900="#e65100",t.orangeA100="#ffd180",t.orangeA200="#ffab40",t.orangeA400="#ff9100",t.orangeA700="#ff6d00",t.deepOrange50="#fbe9e7",t.deepOrange100="#ffccbc",t.deepOrange200="#ffab91",t.deepOrange300="#ff8a65",t.deepOrange400="#ff7043",t.deepOrange500="#ff5722",t.deepOrange600="#f4511e",t.deepOrange700="#e64a19",t.deepOrange800="#d84315",t.deepOrange900="#bf360c",t.deepOrangeA100="#ff9e80",t.deepOrangeA200="#ff6e40",t.deepOrangeA400="#ff3d00",t.deepOrangeA700="#dd2c00",t.brown50="#efebe9",t.brown100="#d7ccc8",t.brown200="#bcaaa4",t.brown300="#a1887f",t.brown400="#8d6e63",t.brown500="#795548",t.brown600="#6d4c41",t.brown700="#5d4037",t.brown800="#4e342e",t.brown900="#3e2723",t.blueGrey50="#eceff1",t.blueGrey100="#cfd8dc",t.blueGrey200="#b0bec5",t.blueGrey300="#90a4ae",t.blueGrey400="#78909c",t.blueGrey500="#607d8b",t.blueGrey600="#546e7a",t.blueGrey700="#455a64",t.blueGrey800="#37474f",t.blueGrey900="#263238",t.grey50="#fafafa",t.grey100="#f5f5f5",t.grey200="#eeeeee",t.grey300="#e0e0e0",t.grey400="#bdbdbd",t.grey500="#9e9e9e",t.grey600="#757575",t.grey700="#616161",t.grey800="#424242",t.grey900="#212121",t.black="#000000",t.white="#ffffff",t.transparent="rgba(0, 0, 0, 0)",t.fullBlack="rgba(0, 0, 0, 1)",t.darkBlack="rgba(0, 0, 0, 0.87)",t.lightBlack="rgba(0, 0, 0, 0.54)",t.minBlack="rgba(0, 0, 0, 0.26)",t.faintBlack="rgba(0, 0, 0, 0.12)",t.fullWhite="rgba(255, 255, 255, 1)",t.darkWhite="rgba(255, 255, 255, 0.87)",t.lightWhite="rgba(255, 255, 255, 0.54)"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return"string"==typeof e&&r.test(e)};var r=/-webkit-|-moz-|-ms-/;e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0;var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=u(n(698)),i=u(n(0)),a=u(n(9)),s=(u(n(63)),n(699));function u(e){return e&&e.__esModule?e:{default:e}}a.default.any,a.default.func,a.default.node;var l=function(e){function t(n,o){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var i=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,o));return i.performAppear=function(e,t){i.currentlyTransitioningKeys[e]=!0,t.componentWillAppear?t.componentWillAppear(i._handleDoneAppearing.bind(i,e,t)):i._handleDoneAppearing(e,t)},i._handleDoneAppearing=function(e,t){t.componentDidAppear&&t.componentDidAppear(),delete i.currentlyTransitioningKeys[e];var n=(0,s.getChildMapping)(i.props.children);n&&n.hasOwnProperty(e)||i.performLeave(e,t)},i.performEnter=function(e,t){i.currentlyTransitioningKeys[e]=!0,t.componentWillEnter?t.componentWillEnter(i._handleDoneEntering.bind(i,e,t)):i._handleDoneEntering(e,t)},i._handleDoneEntering=function(e,t){t.componentDidEnter&&t.componentDidEnter(),delete i.currentlyTransitioningKeys[e];var n=(0,s.getChildMapping)(i.props.children);n&&n.hasOwnProperty(e)||i.performLeave(e,t)},i.performLeave=function(e,t){i.currentlyTransitioningKeys[e]=!0,t.componentWillLeave?t.componentWillLeave(i._handleDoneLeaving.bind(i,e,t)):i._handleDoneLeaving(e,t)},i._handleDoneLeaving=function(e,t){t.componentDidLeave&&t.componentDidLeave(),delete i.currentlyTransitioningKeys[e];var n=(0,s.getChildMapping)(i.props.children);n&&n.hasOwnProperty(e)?i.keysToEnter.push(e):i.setState(function(t){var n=r({},t.children);return delete n[e],{children:n}})},i.childRefs=Object.create(null),i.state={children:(0,s.getChildMapping)(n.children)},i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.componentWillMount=function(){this.currentlyTransitioningKeys={},this.keysToEnter=[],this.keysToLeave=[]},t.prototype.componentDidMount=function(){var e=this.state.children;for(var t in e)e[t]&&this.performAppear(t,this.childRefs[t])},t.prototype.componentWillReceiveProps=function(e){var t=(0,s.getChildMapping)(e.children),n=this.state.children;for(var r in this.setState({children:(0,s.mergeChildMappings)(n,t)}),t){var o=n&&n.hasOwnProperty(r);!t[r]||o||this.currentlyTransitioningKeys[r]||this.keysToEnter.push(r)}for(var i in n){var a=t&&t.hasOwnProperty(i);!n[i]||a||this.currentlyTransitioningKeys[i]||this.keysToLeave.push(i)}},t.prototype.componentDidUpdate=function(){var e=this,t=this.keysToEnter;this.keysToEnter=[],t.forEach(function(t){return e.performEnter(t,e.childRefs[t])});var n=this.keysToLeave;this.keysToLeave=[],n.forEach(function(t){return e.performLeave(t,e.childRefs[t])})},t.prototype.render=function(){var e=this,t=[],n=function(n){var r=e.state.children[n];if(r){var a="string"!=typeof r.ref,s=e.props.childFactory(r),u=function(t){e.childRefs[n]=t};s===r&&a&&(u=(0,o.default)(r.ref,u)),t.push(i.default.cloneElement(s,{key:n,ref:u}))}};for(var a in this.state.children)n(a);var s=r({},this.props);return delete s.transitionLeave,delete s.transitionName,delete s.transitionAppear,delete s.transitionEnter,delete s.childFactory,delete s.transitionLeaveTimeout,delete s.transitionEnterTimeout,delete s.transitionAppearTimeout,delete s.component,i.default.createElement(this.props.component,s,t)},t}(i.default.Component);l.displayName="TransitionGroup",l.propTypes={},l.defaultProps={component:"span",childFactory:function(e){return e}},t.default=l,e.exports=t.default},function(e,t,n){var r=n(178),o=0;e.exports=function(e){var t=++o;return r(e)+t}},function(e,t,n){var r=n(303);e.exports=function(e){return null==e?"":r(e)}},function(e,t){var n=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return n.test(e)}},function(e,t){e.exports=window.yoast.analysis},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=t.MODE_MOBILE="mobile",o=t.MODE_DESKTOP="desktop",i=t.MODES=[o,r],a=t.DEFAULT_MODE=r;t.default={MODE_MOBILE:r,MODE_DESKTOP:o,MODES:i,DEFAULT_MODE:a}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=f(n(0)),o=f(n(17)),i=f(n(177)),a=n(10),s=n(8),u=f(n(767)),l=n(108),c=n(58);function f(e){return e&&e.__esModule?e:{default:e}}class d extends r.default.Component{constructor(e){switch(super(e),this.uniqueId=(0,i.default)(),e.type){case"description":this.InputContainer=l.DescriptionInputContainer;break;case"title":this.InputContainer=l.TitleInputContainer;break;default:this.InputContainer=l.TitleInputContainer}e.withCaret&&(this.InputContainer=(0,l.withCaretStyles)(this.InputContainer)),this.triggerReplacementVariableSuggestions=this.triggerReplacementVariableSuggestions.bind(this)}triggerReplacementVariableSuggestions(){this.ref.triggerReplacementVariableSuggestions()}render(){var e=this.props;const t=e.label,n=e.onChange,o=e.content,i=e.onFocus,c=e.onBlur,f=e.isActive,d=e.isHovered,p=e.replacementVariables,h=e.recommendedReplacementVariables,g=e.editorRef,y=e.placeholder,m=e.fieldId,v=this.InputContainer,b=r.default.createElement(l.TriggerReplacementVariableSuggestionsButton,{onClick:()=>this.triggerReplacementVariableSuggestions()},r.default.createElement(s.SvgIcon,{icon:"plus-circle"}),(0,a.__)("Insert snippet variable","yoast-components"));return r.default.createElement(r.default.Fragment,null,r.default.createElement(l.SimulatedLabel,{id:this.uniqueId,onClick:i},t),b,r.default.createElement(v,{onClick:i,isActive:f,isHovered:d},r.default.createElement(u.default,{fieldId:m,placeholder:y,content:o,onChange:n,onFocus:i,onBlur:c,replacementVariables:p,recommendedReplacementVariables:h,ref:e=>{this.ref=e,g(e)},ariaLabelledBy:this.uniqueId})))}}d.propTypes={editorRef:o.default.func,content:o.default.string.isRequired,onChange:o.default.func.isRequired,onBlur:o.default.func,replacementVariables:c.replacementVariablesShape,recommendedReplacementVariables:c.recommendedReplacementVariablesShape,isActive:o.default.bool,isHovered:o.default.bool,withCaret:o.default.bool,onFocus:o.default.func,label:o.default.string,placeholder:o.default.string,type:o.default.oneOf(["title","description"]),fieldId:o.default.string},d.defaultProps={replacementVariables:[]},t.default=d},function(e,t,n){"use strict";function r(e){return function(){return e}}var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},e.exports=o},function(e,t,n){"use strict";var r=n(84),o=n(25),i=n(56),a=n(27),s=n(110),u=n(46),l=n(4),c=n(71),f=n(40),d=n(185),p=l.List,h=l.Record,g=l.Repeat,y=u.draft_tree_data_support?a:i,m=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.getEntityMap=function(){return s},t.prototype.getBlockMap=function(){return this.get("blockMap")},t.prototype.getSelectionBefore=function(){return this.get("selectionBefore")},t.prototype.getSelectionAfter=function(){return this.get("selectionAfter")},t.prototype.getBlockForKey=function(e){return this.getBlockMap().get(e)},t.prototype.getKeyBefore=function(e){return this.getBlockMap().reverse().keySeq().skipUntil(function(t){return t===e}).skip(1).first()},t.prototype.getKeyAfter=function(e){return this.getBlockMap().keySeq().skipUntil(function(t){return t===e}).skip(1).first()},t.prototype.getBlockAfter=function(e){return this.getBlockMap().skipUntil(function(t,n){return n===e}).skip(1).first()},t.prototype.getBlockBefore=function(e){return this.getBlockMap().reverse().skipUntil(function(t,n){return n===e}).skip(1).first()},t.prototype.getBlocksAsArray=function(){return this.getBlockMap().toArray()},t.prototype.getFirstBlock=function(){return this.getBlockMap().first()},t.prototype.getLastBlock=function(){return this.getBlockMap().last()},t.prototype.getPlainText=function(e){return this.getBlockMap().map(function(e){return e?e.getText():""}).join(e||"\n")},t.prototype.getLastCreatedEntityKey=function(){return s.__getLastCreatedEntityKey()},t.prototype.hasText=function(){var e=this.getBlockMap();return e.size>1||e.first().getLength()>0},t.prototype.createEntity=function(e,t,n){return s.__create(e,t,n),this},t.prototype.mergeEntityData=function(e,t){return s.__mergeData(e,t),this},t.prototype.replaceEntityData=function(e,t){return s.__replaceData(e,t),this},t.prototype.addEntity=function(e){return s.__add(e),this},t.prototype.getEntity=function(e){return s.__get(e)},t.createFromBlockArray=function(e,n){var o=Array.isArray(e)?e:e.contentBlocks,i=r.createFromArray(o),a=i.isEmpty()?new c:c.createEmpty(i.first().getKey());return new t({blockMap:i,entityMap:n||s,selectionBefore:a,selectionAfter:a})},t.createFromText=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:/\r\n?|\n/g,r=e.split(n).map(function(e){return e=d(e),new y({key:f(),text:e,type:"unstyled",characterList:p(g(o.EMPTY,e.length))})});return t.createFromBlockArray(r)},t}(h({entityMap:null,blockMap:null,selectionBefore:null,selectionAfter:null}));e.exports=m},function(e,t,n){"use strict";var r=new RegExp("\r","g");e.exports=function(e){return e.replace(r,"")}},function(e,t,n){"use strict";var r=n(5),o="LTR",i="RTL",a=null;function s(e){return e===o||e===i}function u(e){return s(e)||r(!1),e===o?"ltr":"rtl"}function l(e){a=e}var c={NEUTRAL:"NEUTRAL",LTR:o,RTL:i,isStrong:s,getHTMLDir:u,getHTMLDirIfDifferent:function(e,t){return s(e)||r(!1),s(t)||r(!1),e===t?null:u(e)},setGlobalDir:l,initGlobalDir:function(){l(o)},getGlobalDir:function(){return a||this.initGlobalDir(),a||r(!1),a}};e.exports=c},function(e,t,n){"use strict";var r=n(4).Map,o=n(0),i=n(72),a=r({"header-one":{element:"h1"},"header-two":{element:"h2"},"header-three":{element:"h3"},"header-four":{element:"h4"},"header-five":{element:"h5"},"header-six":{element:"h6"},"unordered-list-item":{element:"li",wrapper:o.createElement("ul",{className:i("public/DraftStyleDefault/ul")})},"ordered-list-item":{element:"li",wrapper:o.createElement("ol",{className:i("public/DraftStyleDefault/ol")})},blockquote:{element:"blockquote"},atomic:{element:"figure"},"code-block":{element:"pre",wrapper:o.createElement("pre",{className:i("public/DraftStyleDefault/pre")})},unstyled:{element:"div",aliasedElements:["p"]}});e.exports=a},function(e,t,n){"use strict";e.exports={BACKSPACE:8,TAB:9,RETURN:13,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46,COMMA:188,PERIOD:190,A:65,Z:90,ZERO:48,NUMPAD_0:96,NUMPAD_9:105}},function(e,t,n){"use strict";function r(e,t){return t&&"MUTABLE"===e.__get(t).getMutability()?t:null}e.exports=function(e,t){var n;if(t.isCollapsed()){var o=t.getAnchorKey(),i=t.getAnchorOffset();return i>0?(n=e.getBlockForKey(o).getEntityAt(i-1))!==e.getBlockForKey(o).getEntityAt(i)?null:r(e.getEntityMap(),n):null}var a=t.getStartKey(),s=t.getStartOffset(),u=e.getBlockForKey(a);return n=s===u.getLength()?null:u.getEntityAt(s),r(e.getEntityMap(),n)}},function(e,t,n){"use strict";var r=n(801);e.exports=function e(t,n){return!(!t||!n)&&(t===n||!r(t)&&(r(n)?e(t,n.parentNode):"contains"in t?t.contains(n):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(n))))}},function(e,t,n){"use strict";function r(e,t){var n=o.get(e,t);return"auto"===n||"scroll"===n}var o={get:n(803),getScrollParent:function(e){if(!e)return null;for(var t=e.ownerDocument;e&&e!==t.body;){if(r(e,"overflow")||r(e,"overflowY")||r(e,"overflowX"))return e;e=e.parentNode}return t.defaultView||t.parentWindow}};e.exports=o},function(e,t,n){"use strict";var r=n(808),o=n(809);e.exports=function(e){var t=r(e.ownerDocument||e.document);e.Window&&e instanceof e.Window&&(e=t);var n=o(e),i=e===t?e.ownerDocument.documentElement:e,a=e.scrollWidth-i.clientWidth,s=e.scrollHeight-i.clientHeight;return n.x=Math.max(0,Math.min(n.x,a)),n.y=Math.max(0,Math.min(n.y,s)),n}},function(e,t,n){"use strict";var r=n(326);e.exports=function(e){for(var t=e;t&&t!==document.documentElement;){var n=r(t);if(null!=n)return n;t=t.parentNode}return null}},function(e,t,n){"use strict";var r=n(36).isPlatform("Mac OS X"),o={isCtrlKeyCommand:function(e){return!!e.ctrlKey&&!e.altKey},isOptionKeyCommand:function(e){return r&&e.altKey},hasCommandModifier:function(e){return r?!!e.metaKey&&!e.altKey:o.isCtrlKeyCommand(e)}};e.exports=o},function(e,t,n){"use strict";e.exports=function(e,t){var n=e.getSelection(),r=e.getCurrentContent(),o=n.getStartKey(),i=n.getStartOffset(),a=o,s=0;if(t>i){var u=r.getKeyBefore(o);null==u?a=o:(a=u,s=r.getBlockForKey(u).getText().length)}else s=i-t;return n.merge({focusKey:a,focusOffset:s,isBackward:!0})}},function(e,t,n){var r=n(73)(n(35),"Map");e.exports=r},function(e,t,n){var r=n(904),o=n(55),i=Object.prototype,a=i.hasOwnProperty,s=i.propertyIsEnumerable,u=r(function(){return arguments}())?r:function(e){return o(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=u},function(e,t){var n=9007199254740991;e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}},function(e,t,n){(function(e){var r=n(35),o=n(905),i="object"==typeof t&&t&&!t.nodeType&&t,a=i&&"object"==typeof e&&e&&!e.nodeType&&e,s=a&&a.exports===i?r.Buffer:void 0,u=(s?s.isBuffer:void 0)||o;e.exports=u}).call(this,n(34)(e))},function(e,t,n){var r=n(906),o=n(309),i=n(310),a=i&&i.isTypedArray,s=a?o(a):r;e.exports=s},function(e,t,n){var r=n(929),o=n(936),i=n(938),a=n(939),s=n(940);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},function(e,t,n){var r=n(30),o=n(106),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!o(e))||a.test(e)||!i.test(e)||null!=t&&e in Object(t)}},function(e,t){e.exports=window.lodash},function(e,t,n){var r=n(362),o=n(120),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var a=e[t];i.call(e,t)&&o(a,n)&&(void 0!==n||t in e)||r(e,t,n)}},function(e,t){e.exports=function(e){return e}},function(e,t){var n=9007199254740991;e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}},function(e,t){var n=9007199254740991,r=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var o=typeof e;return!!(t=null==t?n:t)&&("number"==o||"symbol"!=o&&r.test(e))&&e>-1&&e%1==0&&e<t}},function(e,t,n){var r=n(1015),o=n(48),i=Object.prototype,a=i.hasOwnProperty,s=i.propertyIsEnumerable,u=r(function(){return arguments}())?r:function(e){return o(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=u},function(e,t,n){(function(e){var r=n(37),o=n(1016),i="object"==typeof t&&t&&!t.nodeType&&t,a=i&&"object"==typeof e&&e&&!e.nodeType&&e,s=a&&a.exports===i?r.Buffer:void 0,u=(s?s.isBuffer:void 0)||o;e.exports=u}).call(this,n(34)(e))},function(e,t){e.exports=function(e){return function(t){return e(t)}}},function(e,t,n){(function(e){var r=n(365),o="object"==typeof t&&t&&!t.nodeType&&t,i=o&&"object"==typeof e&&e&&!e.nodeType&&e,a=i&&i.exports===o&&r.process,s=function(){try{var e=i&&i.require&&i.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(e){}}();e.exports=s}).call(this,n(34)(e))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setSeoResultsForKeyword=function(e,t){return{type:i,keyword:e,results:t}},t.setSeoResults=function(e){return{type:o,resultsPerKeyword:e}},t.updateSeoResult=function(e,t){return{type:a,keyword:e,result:t}},t.removeKeyword=function(e){return{type:s,keyword:e}},t.setReadabilityResults=function(e){return{type:u,results:e}},t.updateReadabilityResult=function(e){return{type:l,result:e}},t.setOverallReadabilityScore=function(e){return{type:c,overallScore:e}},t.setOverallSeoScore=function(e,t){return{type:f,keyword:t,overallScore:e}};const r="CONTENT_ANALYSIS_",o=t.SET_SEO_RESULTS=`${r}SET_SEO_RESULTS`,i=t.SET_SEO_RESULTS_FOR_KEYWORD=`${r}SET_SEO_RESULTS_FOR_KEYWORD`,a=t.UPDATE_SEO_RESULT=`${r}UPDATE_SEO_RESULT`,s=t.REMOVE_KEYWORD=`${r}REMOVE_KEYWORD`,u=t.SET_READABILITY_RESULTS=`${r}SET_READABILITY_RESULTS`,l=t.UPDATE_READABILITY_RESULT=`${r}UPDATE_READABILITY_RESULT`,c=t.SET_OVERALL_READABILITY_SCORE=`${r}SET_OVERALL_READABILITY_SCORE`,f=t.SET_OVERALL_SEO_SCORE=`${r}SET_OVERALL_SEO_SCORE`},function(e,t,n){var r=n(123),o=n(1031),i=n(1032),a=n(1033),s=n(1034),u=n(1035);function l(e){var t=this.__data__=new r(e);this.size=t.size}l.prototype.clear=o,l.prototype.delete=i,l.prototype.get=a,l.prototype.has=s,l.prototype.set=u,e.exports=l},function(e,t,n){var r=n(59)(n(37),"Map");e.exports=r},function(e,t,n){var r=n(1036),o=n(1043),i=n(1045),a=n(1046),s=n(1047);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},function(e,t){e.exports=function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}},function(e,t,n){var r=n(1058),o=n(378),i=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(e){return null==e?[]:(e=Object(e),r(a(e),function(t){return i.call(e,t)}))}:o;e.exports=s},function(e,t,n){var r=n(128),o=n(90);e.exports=function(e,t){for(var n=0,i=(t=r(t,e)).length;null!=e&&n<i;)e=e[o(t[n++])];return n&&n==i?e:void 0}},function(e,t,n){var r=n(38),o=n(129),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!o(e))||a.test(e)||!i.test(e)||null!=t&&e in Object(t)}},function(e,t,n){var r=n(371)(Object.getPrototypeOf,Object);e.exports=r},function(e,t,n){var r=n(375);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},function(e,t,n){e.exports=n(392)()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseFeedItem=i,t.default=function(e,t){return(0,o.default)(e,t,i)};var r=n(130),o=function(e){return e&&e.__esModule?e:{default:e}}(r);function i(e,t,n){const o={};return o.title=(0,r.getXPathText)("child::title",e,t),o.link=(0,r.getXPathText)("child::link",e,t),o.content=(0,r.getXPathText)("child::content:encoded",e,t,n),o.description=(0,r.getXPathText)("child::description",e,t),o.creator=(0,r.getXPathText)("child::dc:creator",e,t,n),o.date=(0,r.getXPathText)("child::pubDate",e,t),o}},function(e,t,n){var r=n(421)();e.exports=r},function(e,t,n){var r=n(422),o=n(428),i=n(430);e.exports=function(e){return i(o(e,void 0,r),e+"")}},function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(this,n(18))},function(e,t,n){var r=n(50),o=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=o},function(e,t,n){var r=n(61),o=n(77),i="[object AsyncFunction]",a="[object Function]",s="[object GeneratorFunction]",u="[object Proxy]";e.exports=function(e){if(!o(e))return!1;var t=r(e);return t==a||t==s||t==i||t==u}},function(e,t){var n=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return n.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},function(e,t,n){var r=n(439),o=n(440),i=r?function(e){return r.get(e)}:o;e.exports=i},function(e,t,n){var r=n(50)(n(32),"WeakMap");e.exports=r},function(e,t,n){var r=n(441),o=Object.prototype.hasOwnProperty;e.exports=function(e){for(var t=e.name+"",n=r[t],i=o.call(r,t)?n.length:0;i--;){var a=n[i],s=a.func;if(null==s||s==e)return a.name}return t}},function(e,t){e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t,n){var r=n(460),o=n(467),i=n(469),a=n(470),s=n(471);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},function(e,t,n){var r=n(238),o=n(235),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var a=e[t];i.call(e,t)&&o(a,n)&&(void 0!==n||t in e)||r(e,t,n)}},function(e,t,n){var r=n(227);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},function(e,t,n){var r=n(474),o=n(135),i=n(33),a=n(139),s=n(476),u=n(240),l=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=i(e),c=!n&&o(e),f=!n&&!c&&a(e),d=!n&&!c&&!f&&u(e),p=n||c||f||d,h=p?r(e.length,String):[],g=h.length;for(var y in e)!t&&!l.call(e,y)||p&&("length"==y||f&&("offset"==y||"parent"==y)||d&&("buffer"==y||"byteLength"==y||"byteOffset"==y)||s(y,g))||h.push(y);return h}},function(e,t,n){var r=n(477),o=n(140),i=n(141),a=i&&i.isTypedArray,s=a?o(a):r;e.exports=s},function(e,t){var n=9007199254740991;e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}},function(e,t,n){var r=n(97),o=n(478),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=[];for(var n in Object(e))i.call(e,n)&&"constructor"!=n&&t.push(n);return t}},function(e,t){e.exports=function(e,t){return function(n){return e(t(n))}}},function(e,t,n){var r=n(239),o=n(480),i=n(142);e.exports=function(e){return i(e)?r(e,!0):o(e)}},function(e,t){e.exports=function(){return[]}},function(e,t,n){var r=n(134),o=n(144),i=n(143),a=n(245),s=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,i(e)),e=o(e);return t}:a;e.exports=s},function(e,t,n){var r=n(134),o=n(33);e.exports=function(e,t,n){var i=t(e);return o(e)?i:r(i,n(e))}},function(e,t,n){var r=n(247),o=n(246),i=n(244);e.exports=function(e){return r(e,i,o)}},function(e,t,n){var r=n(147),o=1/0;e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-o?"-0":t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SectionTitle=t.StyledSubTitle=t.StyledTitle=t.StyledTitleContainer=void 0;var r=u(n(0)),o=u(n(2)),i=u(n(1)),a=n(3),s=u(n(251));function u(e){return e&&e.__esModule?e:{default:e}}const l=t.StyledTitleContainer=i.default.span.withConfig({displayName:"SectionTitle__StyledTitleContainer",componentId:"nlobus-0"})(["flex-grow:1;overflow-x:hidden;line-height:normal;"]),c=t.StyledTitle=i.default.span.withConfig({displayName:"SectionTitle__StyledTitle",componentId:"nlobus-1"})(["display:block;white-space:nowrap;text-overflow:ellipsis;overflow-x:hidden;color:",";"],a.colors.$color_headings),f=t.StyledSubTitle=i.default.span.withConfig({displayName:"SectionTitle__StyledSubTitle",componentId:"nlobus-2"})(["display:block;white-space:nowrap;text-overflow:ellipsis;overflow-x:hidden;font-size:0.8125rem;margin-top:2px;"]);(t.SectionTitle=(e=>r.default.createElement(l,null,r.default.createElement(c,null,e.title,e.titleScreenReaderText&&r.default.createElement(s.default,null," "+e.titleScreenReaderText)),e.subTitle&&r.default.createElement(f,null,e.subTitle)))).propTypes={title:o.default.string.isRequired,titleScreenReaderText:o.default.string,subTitle:o.default.string}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=a(n(0)),o=a(n(2)),i=a(n(252));function a(e){return e&&e.__esModule?e:{default:e}}const s=e=>r.default.createElement("span",{className:"screen-reader-text",style:i.default.ScreenReaderText.default},e.children);s.propTypes={children:o.default.string.isRequired},t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={ScreenReaderText:{default:{clip:"rect(1px, 1px, 1px, 1px)",position:"absolute",height:"1px",width:"1px",overflow:"hidden"},focused:{clip:"auto",display:"block",left:"5px",top:"5px",height:"auto",width:"auto",zIndex:"100000",position:"absolute",backgroundColor:"#eeeeee ",padding:"10px"}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=u(n(0)),i=u(n(2)),a=u(n(60)),s=n(8);function u(e){return e&&e.__esModule?e:{default:e}}const l=e=>{const t=e.children,n=e.className,i=e.prefixIcon,u=e.suffixIcon,l=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["children","className","prefixIcon","suffixIcon"]);return o.default.createElement(a.default,r({className:n},l),i&&i.icon&&o.default.createElement(s.SvgIcon,{icon:i.icon,color:i.color,size:i.size}),t,u&&u.icon&&o.default.createElement(s.SvgIcon,{icon:u.icon,color:u.color,size:u.size}))};l.propTypes={className:i.default.string,prefixIcon:i.default.shape({icon:i.default.string,color:i.default.string,size:i.default.string}),suffixIcon:i.default.shape({icon:i.default.string,color:i.default.string,size:i.default.string}),children:i.default.oneOfType([i.default.arrayOf(i.default.node),i.default.node,i.default.string])},t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=f;var r=n(0),o=u(r),i=u(n(2)),a=u(n(1)),s=n(3);function u(e){return e&&e.__esModule?e:{default:e}}const l=a.default.span.withConfig({displayName:"CardBanner__BannerContents",componentId:"oi8gid-0"})(["position:absolute;top:8px;left:-8px;font-weight:500;color:",";line-height:16px;background-color:",";padding:8px 16px;box-shadow:0 2px 4px 0 rgba(0,0,0,0.2);"],e=>e.textColor,e=>e.backgroundColor),c=a.default.span.withConfig({displayName:"CardBanner__BannerTriangle",componentId:"oi8gid-1"})(["position:absolute;top:40px;left:-8px;border-top:8px solid ",";border-left:8px solid transparent;"],s.colors.$color_purple_dark);function f(e){return o.default.createElement(r.Fragment,null,o.default.createElement(l,{backgroundColor:e.backgroundColor,textColor:e.textColor},e.children),o.default.createElement(c,null))}f.propTypes={backgroundColor:i.default.string,textColor:i.default.string,children:i.default.any},f.defaultProps={backgroundColor:s.colors.$color_pink_dark,textColor:s.colors.$color_white,children:null}},function(e,t,n){var r=n(528),o=n(533);e.exports=n(150)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t){var n=e.exports={version:"2.5.7"};"number"==typeof __e&&(__e=n)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t.default=s;var o=a(n(0)),i=a(n(2));function a(e){return e&&e.__esModule?e:{default:e}}function s(e){return o.default.createElement("iframe",r({title:e.title},e))}s.propTypes={title:i.default.string.isRequired}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=a(n(0)),i=a(n(2));function a(e){return e&&e.__esModule?e:{default:e}}class s extends o.default.Component{componentDidUpdate(){this.props.hasFocus&&this.ref.focus()}setReference(e){this.ref=e}render(){return o.default.createElement("input",r({ref:this.setReference.bind(this),type:this.props.type,name:this.props.name,defaultValue:this.props.value,onChange:this.props.onChange,autoComplete:this.props.autoComplete,className:this.props.className},this.props.optionalAttributes))}}s.propTypes={name:i.default.string.isRequired,type:i.default.oneOf(["button","checkbox","number","password","progress","radio","submit","text"]).isRequired,value:i.default.any,onChange:i.default.func,optionalAttributes:i.default.object,hasFocus:i.default.bool,autoComplete:i.default.string,className:i.default.string},s.defaultProps={name:"input",type:"text",value:"",hasFocus:!1,className:""},t.default=s},function(e,t,n){"use strict";function r(e){return function(){return e}}var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},e.exports=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(n(0)),o=i(n(2));function i(e){return e&&e.__esModule?e:{default:e}}const a=e=>{const t=e.title,n=e.classNamePrefix,o=e.words,i=e.header,a=e.footer,s=r.default.createElement("ol",{className:n+"__list"},o.map(e=>r.default.createElement("li",{key:e,className:n+"__item"},e)));return r.default.createElement("div",{className:n},r.default.createElement("p",null,r.default.createElement("strong",null,t)),i,s,a)};a.propTypes={words:o.default.array.isRequired,title:o.default.string.isRequired,header:o.default.string,footer:o.default.string,classNamePrefix:o.default.string},a.defaultProps={classNamePrefix:"",header:"",footer:""},t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=s(n(0)),o=s(n(2)),i=s(n(1)),a=n(10);function s(e){return e&&e.__esModule?e:{default:e}}const u=i.default.span.withConfig({displayName:"WordOccurrences__ProminentWordOccurrence",componentId:"v5jj49-0"})(["display:inline-block;margin:2px 8px;"]),l=(0,i.default)(u).withConfig({displayName:"WordOccurrences__ProminentWord",componentId:"v5jj49-1"})(["font-weight:bold;overflow:hidden;text-overflow:ellipsis;"]),c=i.default.ol.withConfig({displayName:"WordOccurrences__WordOccurrencesList",componentId:"v5jj49-2"})(["list-style:none;padding:0;width:100%;margin:0;"]),f=i.default.li.withConfig({displayName:"WordOccurrences__WordBarContainer",componentId:"v5jj49-3"})(["margin:8px 0;height:calc( 1.375em + 4px );display:flex;max-width:600px;justify-content:space-between;background:linear-gradient( to right,rgba(164,40,106,0.2) ",",",",transparent );"],e=>e.barWidth,e=>e.barWidth),d=({word:e,occurrence:t,width:n})=>r.default.createElement(f,{barWidth:n},r.default.createElement(l,null,e),r.default.createElement(u,null,r.default.createElement("span",{"aria-hidden":!0},t),r.default.createElement("span",{className:"screen-reader-text"},(0,a.sprintf)((0,a.__)("%d occurrences","yoast-components"),t))));d.propTypes={word:o.default.string.isRequired,occurrence:o.default.number.isRequired,width:o.default.string.isRequired};class p extends r.default.Component{constructor(e){super(e),this.state={words:[...e.words]||[],occurrences:{min:0,max:0}}}static getDerivedStateFromProps(e){const t=[...e.words];t.sort((e,t)=>t.getOccurrences()-e.getOccurrences());const n=t.map(e=>e.getOccurrences());return{occurrences:{min:Math.min(...n),max:Math.max(...n)},words:t}}render(){return r.default.createElement(r.default.Fragment,null,this.props.header,r.default.createElement(c,{"aria-label":(0,a.__)("Prominent words","yoast-components")},this.state.words.map(e=>{const t=e.getWord(),n=e.getOccurrences(),o=`${n/this.state.occurrences.max*100}%`;return r.default.createElement(d,{key:`wordbar-${t}`,word:t,width:o,occurrence:n})})),this.props.footer)}}p.propTypes={words:o.default.array.isRequired,header:o.default.element,footer:o.default.element},p.defaultProps={header:null,footer:null},t.default=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=a(n(0)),i=a(n(2));function a(e){return e&&e.__esModule?e:{default:e}}const s=e=>o.default.createElement("label",r({htmlFor:e.for,className:e.className},e.optionalAttributes),e.children);s.propTypes={for:i.default.string.isRequired,optionalAttributes:i.default.shape({"aria-label":i.default.string,onClick:i.default.func,className:i.default.string}),children:i.default.any.isRequired,className:i.default.string},s.defaultProps={className:"",optionalAttributes:{}},t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=a(n(2)),o=a(n(1)),i=n(3);function a(e){return e&&e.__esModule?e:{default:e}}const s=o.default.div.withConfig({displayName:"Paper",componentId:"sc-1fchzjl-0"})(["box-shadow:0 1px 2px rgba(0,0,0,0.2);background-color:",";min-height:",";"],e=>e.backgroundColor,e=>e.minHeight);s.propTypes={backgroundColor:r.default.string,minHeight:r.default.string},s.defaultProps={backgroundColor:i.colors.$color_white,minHeight:"0"},t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=a(n(0)),o=a(n(2)),i=a(n(152));function a(e){return e&&e.__esModule?e:{default:e}}const s=e=>r.default.createElement("section",{className:e.className},e.headingText&&r.default.createElement(i.default,{level:e.headingLevel,className:e.headingClassName},e.headingText),e.children);s.propTypes={className:o.default.string,headingText:o.default.string,headingLevel:o.default.number,headingClassName:o.default.string,children:o.default.any},s.defaultProps={headingLevel:1},t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InputField=void 0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(1)),o=n(3);t.InputField=r.default.input.withConfig({displayName:"InputField",componentId:"sc-12z9z15-0"})(["&&&{padding:0 8px;min-height:34px;font-size:1em;box-shadow:inset 0 1px 2px ",";border:1px solid ",";border-radius:0;&:focus{border-color:#5b9dd9;box-shadow:0 0 2px ",";}}"],(0,o.rgba)(o.colors.$color_black,.07),o.colors.$color_input_border,(0,o.rgba)(o.colors.$color_snippet_focus,.8))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=a(n(0)),i=a(n(2));function a(e){return e&&e.__esModule?e:{default:e}}class s extends o.default.Component{render(){return o.default.createElement("textarea",r({ref:this.setReference.bind(this),name:this.props.name,value:this.props.value,onChange:this.props.onChange},this.props.optionalAttributes))}setReference(e){this.ref=e}componentDidUpdate(){this.props.hasFocus&&this.ref.focus()}}s.propTypes={name:i.default.string.isRequired,value:i.default.string,onChange:i.default.func,optionalAttributes:i.default.object,hasFocus:i.default.bool},s.defaultProps={name:"textarea",value:"",hasFocus:!1},t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return[].slice.call(e.querySelectorAll("*"),0).filter(a)};
|
18 |
/*!
|
19 |
* Adapted from jQuery UI core
|
20 |
*
|
26 |
*
|
27 |
* http://api.jqueryui.com/category/ui-core/
|
28 |
*/
|
29 |
+
var r=/input|select|textarea|button|object/;function o(e){var t=e.offsetWidth<=0&&e.offsetHeight<=0;if(t&&!e.innerHTML)return!0;var n=window.getComputedStyle(e);return t?"visible"!==n.getPropertyValue("overflow"):"none"==n.getPropertyValue("display")}function i(e,t){var n=e.nodeName.toLowerCase();return(r.test(n)&&!e.disabled||"a"===n&&e.href||t)&&function(e){for(var t=e;t&&t!==document.body;){if(o(t))return!1;t=t.parentNode}return!0}(e)}function a(e){var t=e.getAttribute("tabindex");null===t&&(t=void 0);var n=isNaN(t);return(n||t>=0)&&i(e,!n)}e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assertNodeList=a,t.setElement=function(e){var t=e;if("string"==typeof t&&o.canUseDOM){var n=document.querySelectorAll(t);a(n,t),t="length"in n?n[0]:n}return i=t||i},t.validateElement=s,t.hide=function(e){s(e)&&(e||i).setAttribute("aria-hidden","true")},t.show=function(e){s(e)&&(e||i).removeAttribute("aria-hidden")},t.documentNotReadyOrSSRTesting=function(){i=null},t.resetForTesting=function(){i=null};var r=function(e){return e&&e.__esModule?e:{default:e}}(n(63)),o=n(154);var i=null;function a(e,t){if(!e||!e.length)throw new Error("react-modal: No elements were found for selector "+t+".")}function s(e){return!(!e&&!i)||((0,r.default)(!1,["react-modal: App element is not defined.","Please use `Modal.setAppElement(el)` or set `appElement={el}`.","This is needed so screen readers don't see main content","when modal is opened. It is not recommended, but you can opt-out","by setting `ariaHideApp={false}`."].join(" ")),!1)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LoadingIndicator=t.MessageBox=void 0;var r=a(n(597)),o=a(n(600)),i=a(n(297));function a(e){return e&&e.__esModule?e:{default:e}}t.MessageBox=r.default,t.LoadingIndicator=i.default,t.default=o.default},function(e,t,n){"use strict";t.__esModule=!0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(603));t.default=function(e){return(0,r.default)("displayName",e)}},function(e,t,n){"use strict";t.__esModule=!0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(604));t.default=function(e,t){return t+"("+(0,r.default)(e)+")"}},function(e,t,n){e.exports=!n(52)&&!n(66)(function(){return 7!=Object.defineProperty(n(274)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){var r=n(65),o=n(44).document,i=r(o)&&r(o.createElement);e.exports=function(e){return i?o.createElement(e):{}}},function(e,t,n){var r=n(53),o=n(67),i=n(612)(!1),a=n(163)("IE_PROTO");e.exports=function(e,t){var n,s=o(e),u=0,l=[];for(n in s)n!=a&&r(s,n)&&l.push(n);for(;t.length>u;)r(s,n=t[u++])&&(~i(l,n)||l.push(n));return l}},function(e,t,n){var r=n(160);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t,n){var r=n(162),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},function(e,t,n){var r=n(53),o=n(83),i=n(163)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=o(e),r(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},function(e,t,n){var r=n(43),o=n(21),i=n(66);e.exports=function(e,t){var n=(o.Object||{})[e]||Object[e],a={};a[e]=t(n),r(r.S+r.F*i(function(){n(1)}),"Object",a)}},function(e,t,n){"use strict";var r=n(101),o=n(43),i=n(281),a=n(64),s=n(68),u=n(622),l=n(169),c=n(278),f=n(28)("iterator"),d=!([].keys&&"next"in[].keys()),p=function(){return this};e.exports=function(e,t,n,h,g,y,m){u(n,t,h);var v,b,_,x=function(e){if(!d&&e in k)return k[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},w=t+" Iterator",S="values"==g,C=!1,k=e.prototype,O=k[f]||k["@@iterator"]||g&&k[g],E=O||x(g),T=g?S?x("entries"):E:void 0,M="Array"==t&&k.entries||O;if(M&&(_=c(M.call(new e)))!==Object.prototype&&_.next&&(l(_,w,!0),r||"function"==typeof _[f]||a(_,f,p)),S&&O&&"values"!==O.name&&(C=!0,E=function(){return O.call(this)}),r&&!m||!d&&!C&&k[f]||a(k,f,E),s[t]=E,s[w]=p,g)if(v={values:S?E:x("values"),keys:y?E:x("keys"),entries:T},m)for(b in v)b in k||i(k,b,v[b]);else o(o.P+o.F*(d||C),t,v);return v}},function(e,t,n){e.exports=n(64)},function(e,t,n){var r=n(275),o=n(165).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,o)}},function(e,t,n){var r=n(103),o=n(81),i=n(67),a=n(159),s=n(53),u=n(273),l=Object.getOwnPropertyDescriptor;t.f=n(52)?l:function(e,t){if(e=i(e),t=a(t,!0),u)try{return l(e,t)}catch(e){}if(s(e,t))return o(!r.f.call(e,t),e[t])}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=h(n(285));t.default=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),h=1;h<t;h++)n[h-1]=arguments[h];var g=e=o.default.apply(void 0,[{zIndex:s.default,isRtl:!1,userAgent:void 0},a.default,e].concat(n)),y=g.spacing,m=g.fontFamily,v=g.palette,b={spacing:y,fontFamily:m,palette:v};e=(0,o.default)({appBar:{color:v.primary1Color,textColor:v.alternateTextColor,height:y.desktopKeylineIncrement,titleFontWeight:d.default.fontWeightNormal,padding:y.desktopGutter},avatar:{color:v.canvasColor,backgroundColor:(0,i.emphasize)(v.canvasColor,.26)},badge:{color:v.alternateTextColor,textColor:v.textColor,primaryColor:v.primary1Color,primaryTextColor:v.alternateTextColor,secondaryColor:v.accent1Color,secondaryTextColor:v.alternateTextColor,fontWeight:d.default.fontWeightMedium},bottomNavigation:{backgroundColor:v.canvasColor,unselectedColor:(0,i.fade)(v.textColor,.54),selectedColor:v.primary1Color,height:56,unselectedFontSize:12,selectedFontSize:14},button:{height:36,minWidth:88,iconButtonSize:2*y.iconSize},card:{titleColor:(0,i.fade)(v.textColor,.87),subtitleColor:(0,i.fade)(v.textColor,.54),fontWeight:d.default.fontWeightMedium},cardMedia:{color:p.darkWhite,overlayContentBackground:p.lightBlack,titleColor:p.darkWhite,subtitleColor:p.lightWhite},cardText:{textColor:v.textColor},checkbox:{boxColor:v.textColor,checkedColor:v.primary1Color,requiredColor:v.primary1Color,disabledColor:v.disabledColor,labelColor:v.textColor,labelDisabledColor:v.disabledColor},chip:{backgroundColor:(0,i.emphasize)(v.canvasColor,.12),deleteIconColor:(0,i.fade)(v.textColor,.26),textColor:(0,i.fade)(v.textColor,.87),fontSize:14,fontWeight:d.default.fontWeightNormal,shadow:"0 1px 6px "+(0,i.fade)(v.shadowColor,.12)+",\n 0 1px 4px "+(0,i.fade)(v.shadowColor,.12)},datePicker:{color:v.primary1Color,textColor:v.alternateTextColor,calendarTextColor:v.textColor,selectColor:v.primary2Color,selectTextColor:v.alternateTextColor,calendarYearBackgroundColor:v.canvasColor,headerColor:v.pickerHeaderColor||v.primary1Color},dialog:{titleFontSize:22,bodyFontSize:16,bodyColor:(0,i.fade)(v.textColor,.6)},dropDownMenu:{accentColor:v.borderColor},enhancedButton:{tapHighlightColor:p.transparent},flatButton:{color:p.transparent,buttonFilterColor:"#999999",disabledTextColor:(0,i.fade)(v.textColor,.3),textColor:v.textColor,primaryTextColor:v.primary1Color,secondaryTextColor:v.accent1Color,fontSize:d.default.fontStyleButtonFontSize,fontWeight:d.default.fontWeightMedium},floatingActionButton:{buttonSize:56,miniSize:40,color:v.primary1Color,iconColor:v.alternateTextColor,secondaryColor:v.accent1Color,secondaryIconColor:v.alternateTextColor,disabledTextColor:v.disabledColor,disabledColor:(0,i.emphasize)(v.canvasColor,.12)},gridTile:{textColor:p.white},icon:{color:v.canvasColor,backgroundColor:v.primary1Color},inkBar:{backgroundColor:v.accent1Color},drawer:{width:4*y.desktopKeylineIncrement,color:v.canvasColor},listItem:{nestedLevelDepth:18,secondaryTextColor:v.secondaryTextColor,leftIconColor:p.grey600,rightIconColor:p.grey600},menu:{backgroundColor:v.canvasColor,containerBackgroundColor:v.canvasColor},menuItem:{dataHeight:32,height:48,hoverColor:(0,i.fade)(v.textColor,.1),padding:y.desktopGutter,selectedTextColor:v.accent1Color,rightIconDesktopFill:p.grey600},menuSubheader:{padding:y.desktopGutter,borderColor:v.borderColor,textColor:v.primary1Color},overlay:{backgroundColor:p.lightBlack},paper:{color:v.textColor,backgroundColor:v.canvasColor,zDepthShadows:[[1,6,.12,1,4,.12],[3,10,.16,3,10,.23],[10,30,.19,6,10,.23],[14,45,.25,10,18,.22],[19,60,.3,15,20,.22]].map(function(e){return"0 "+e[0]+"px "+e[1]+"px "+(0,i.fade)(v.shadowColor,e[2])+",\n 0 "+e[3]+"px "+e[4]+"px "+(0,i.fade)(v.shadowColor,e[5])})},radioButton:{borderColor:v.textColor,backgroundColor:v.alternateTextColor,checkedColor:v.primary1Color,requiredColor:v.primary1Color,disabledColor:v.disabledColor,size:24,labelColor:v.textColor,labelDisabledColor:v.disabledColor},raisedButton:{color:v.alternateTextColor,textColor:v.textColor,primaryColor:v.primary1Color,primaryTextColor:v.alternateTextColor,secondaryColor:v.accent1Color,secondaryTextColor:v.alternateTextColor,disabledColor:(0,i.darken)(v.alternateTextColor,.1),disabledTextColor:(0,i.fade)(v.textColor,.3),fontSize:d.default.fontStyleButtonFontSize,fontWeight:d.default.fontWeightMedium},refreshIndicator:{strokeColor:v.borderColor,loadingStrokeColor:v.primary1Color},ripple:{color:(0,i.fade)(v.textColor,.87)},slider:{trackSize:2,trackColor:v.primary3Color,trackColorSelected:v.accent3Color,handleSize:12,handleSizeDisabled:8,handleSizeActive:18,handleColorZero:v.primary3Color,handleFillColor:v.alternateTextColor,selectionColor:v.primary1Color,rippleColor:v.primary1Color},snackbar:{textColor:v.alternateTextColor,backgroundColor:v.textColor,actionColor:v.accent1Color},subheader:{color:(0,i.fade)(v.textColor,.54),fontWeight:d.default.fontWeightMedium},stepper:{backgroundColor:"transparent",hoverBackgroundColor:(0,i.fade)(p.black,.06),iconColor:v.primary1Color,hoveredIconColor:p.grey700,inactiveIconColor:p.grey500,textColor:(0,i.fade)(p.black,.87),disabledTextColor:(0,i.fade)(p.black,.26),connectorLineColor:p.grey400},svgIcon:{color:v.textColor},table:{backgroundColor:v.canvasColor},tableFooter:{borderColor:v.borderColor,textColor:v.accent3Color},tableHeader:{borderColor:v.borderColor},tableHeaderColumn:{textColor:v.accent3Color,height:56,spacing:24},tableRow:{hoverColor:v.accent2Color,stripeColor:(0,i.fade)((0,i.lighten)(v.primary1Color,.5),.4),selectedColor:v.borderColor,textColor:v.textColor,borderColor:v.borderColor,height:48},tableRowColumn:{height:48,spacing:24},tabs:{backgroundColor:v.primary1Color,textColor:(0,i.fade)(v.alternateTextColor,.7),selectedTextColor:v.alternateTextColor},textField:{textColor:v.textColor,hintColor:v.disabledColor,floatingLabelColor:v.disabledColor,disabledTextColor:v.disabledColor,errorColor:p.red500,focusColor:v.primary1Color,backgroundColor:"transparent",borderColor:v.borderColor},timePicker:{color:v.alternateTextColor,textColor:v.alternateTextColor,accentColor:v.primary1Color,clockColor:v.textColor,clockCircleColor:v.clockCircleColor,headerColor:v.pickerHeaderColor||v.primary1Color,selectColor:v.primary2Color,selectTextColor:v.alternateTextColor},toggle:{thumbOnColor:v.primary1Color,thumbOffColor:v.accent2Color,thumbDisabledColor:v.borderColor,thumbRequiredColor:v.primary1Color,trackOnColor:(0,i.fade)(v.primary1Color,.5),trackOffColor:v.primary3Color,trackDisabledColor:v.primary3Color,labelColor:v.textColor,labelDisabledColor:v.disabledColor,trackRequiredColor:(0,i.fade)(v.primary1Color,.5)},toolbar:{color:(0,i.fade)(v.textColor,.54),hoverColor:(0,i.fade)(v.textColor,.87),backgroundColor:(0,i.darken)(v.accent2Color,.05),height:56,titleFontSize:20,iconColor:(0,i.fade)(v.textColor,.4),separatorColor:(0,i.fade)(v.textColor,.175),menuHoverColor:(0,i.fade)(v.textColor,.1)},tooltip:{color:p.white,rippleBackgroundColor:p.grey700,opacity:.9}},e,{baseTheme:b,rawTheme:b});var _=[u.default,c.default,l.default].map(function(t){return t(e)}).filter(function(e){return e});return e.prepareStyles=f.default.apply(void 0,(0,r.default)(_)),e};var o=h(n(653)),i=n(289),a=h(n(654)),s=h(n(656)),u=h(n(657)),l=h(n(682)),c=h(n(683)),f=h(n(687)),d=h(n(688)),p=n(173);function h(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";t.__esModule=!0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(286));t.default=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return(0,r.default)(e)}},function(e,t,n){e.exports={default:n(647),__esModule:!0}},function(e,t,n){var r=n(288),o=n(28)("iterator"),i=n(68);e.exports=n(21).getIteratorMethod=function(e){if(void 0!=e)return e[o]||e["@@iterator"]||i[r(e)]}},function(e,t,n){var r=n(160),o=n(28)("toStringTag"),i="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:i?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.convertColorToString=o,t.convertHexToRGB=i,t.decomposeColor=a,t.getContrastRatio=function(e,t){var n=s(e),r=s(t),o=(Math.max(n,r)+.05)/(Math.min(n,r)+.05);return Number(o.toFixed(2))},t.getLuminance=s,t.emphasize=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.15;return s(e)>.5?u(e,t):l(e,t)},t.fade=function(e,t){e=a(e),t=r(t,0,1),("rgb"===e.type||"hsl"===e.type)&&(e.type+="a");return e.values[3]=t,o(e)},t.darken=u,t.lighten=l;!function(e){e&&e.__esModule}(n(63));function r(e,t,n){return e<t?t:e>n?n:e}function o(e){var t=e.type,n=e.values;if(t.indexOf("rgb")>-1)for(var r=0;r<3;r++)n[r]=parseInt(n[r]);var o=void 0;return o=t.indexOf("hsl")>-1?e.type+"("+n[0]+", "+n[1]+"%, "+n[2]+"%":e.type+"("+n[0]+", "+n[1]+", "+n[2],4===n.length?o+=", "+e.values[3]+")":o+=")",o}function i(e){if(4===e.length){for(var t="#",n=1;n<e.length;n++)t+=e.charAt(n)+e.charAt(n);e=t}return"rgb("+parseInt(e.substr(1,2),16)+", "+parseInt(e.substr(3,2),16)+", "+parseInt(e.substr(5,2),16)+")"}function a(e){if("#"===e.charAt(0))return a(i(e));var t=e.indexOf("("),n=e.substring(0,t),r=e.substring(t+1,e.length-1).split(",");return{type:n,values:r=r.map(function(e){return parseFloat(e)})}}function s(e){if((e=a(e)).type.indexOf("rgb")>-1){var t=e.values.map(function(e){return(e/=255)<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)});return Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}if(e.type.indexOf("hsl")>-1)return e.values[2]/100}function u(e,t){if(e=a(e),t=r(t,0,1),e.type.indexOf("hsl")>-1)e.values[2]*=1-t;else if(e.type.indexOf("rgb")>-1)for(var n=0;n<3;n++)e.values[n]*=1-t;return o(e)}function l(e,t){if(e=a(e),t=r(t,0,1),e.type.indexOf("hsl")>-1)e.values[2]+=(100-e.values[2])*t;else if(e.type.indexOf("rgb")>-1)for(var n=0;n<3;n++)e.values[n]+=(255-e.values[n])*t;return o(e)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n,r,o){for(var i=0,a=e.length;i<a;++i){var s=e[i](t,n,r,o);if(s)return s}},e.exports=t.default},function(e,t,n){"use strict";function r(e,t){-1===e.indexOf(t)&&e.push(t)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if(Array.isArray(t))for(var n=0,o=t.length;n<o;++n)r(e,t[n]);else r(e,t)},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e instanceof Object&&!Array.isArray(e)},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,r.default)(e)};var r=function(e){return e&&e.__esModule?e:{default:e}}(n(673));e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=v(n(19)),o=v(n(20)),i=v(n(12)),a=v(n(11)),s=v(n(13)),u=v(n(14)),l=v(n(15)),c=v(n(16)),f=n(0),d=v(f),p=v(n(9)),h=v(n(694)),g=v(n(695)),y=v(n(696)),m=v(n(701));function v(e){return e&&e.__esModule?e:{default:e}}var b=!1,_=!1,x=!1;var w=function(e){function t(){var e,n,r,o;(0,a.default)(this,t);for(var s=arguments.length,l=Array(s),c=0;c<s;c++)l[c]=arguments[c];return n=r=(0,u.default)(this,(e=t.__proto__||(0,i.default)(t)).call.apply(e,[this].concat(l))),r.state={isKeyboardFocused:!1},r.handleKeyDown=function(e){r.props.disabled||r.props.disableKeyboardFocus||("enter"===(0,g.default)(e)&&r.state.isKeyboardFocused&&r.handleClick(e),"esc"===(0,g.default)(e)&&r.state.isKeyboardFocused&&r.removeKeyboardFocus(e)),r.props.onKeyDown(e)},r.handleKeyUp=function(e){r.props.disabled||r.props.disableKeyboardFocus||"space"===(0,g.default)(e)&&r.state.isKeyboardFocused&&r.handleClick(e),r.props.onKeyUp(e)},r.handleBlur=function(e){r.cancelFocusTimeout(),r.removeKeyboardFocus(e),r.props.onBlur(e)},r.handleFocus=function(e){e&&e.persist(),r.props.disabled||r.props.disableKeyboardFocus||(r.focusTimeout=setTimeout(function(){x&&(r.setKeyboardFocus(e),x=!1)},150),r.props.onFocus(e))},r.handleClick=function(e){r.cancelFocusTimeout(),r.props.disabled||(x=!1,r.removeKeyboardFocus(e),r.props.onClick(e))},o=n,(0,u.default)(r,o)}return(0,l.default)(t,e),(0,s.default)(t,[{key:"componentWillMount",value:function(){var e=this.props,t=e.disabled,n=e.disableKeyboardFocus,r=e.keyboardFocused;t||!r||n||this.setState({isKeyboardFocused:!0})}},{key:"componentDidMount",value:function(){!function(){if(!b){var e=document.createElement("style");e.innerHTML="\n button::-moz-focus-inner,\n input::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n ",document.body.appendChild(e),b=!0}}(),_||(h.default.on(window,"keydown",function(e){x="tab"===(0,g.default)(e)}),_=!0),this.state.isKeyboardFocused&&(this.button.focus(),this.props.onKeyboardFocus(null,!0))}},{key:"componentWillReceiveProps",value:function(e){(e.disabled||e.disableKeyboardFocus)&&this.state.isKeyboardFocused&&(this.setState({isKeyboardFocused:!1}),e.onKeyboardFocus&&e.onKeyboardFocus(null,!1))}},{key:"componentWillUnmount",value:function(){this.focusTimeout&&clearTimeout(this.focusTimeout)}},{key:"isKeyboardFocused",value:function(){return this.state.isKeyboardFocused}},{key:"removeKeyboardFocus",value:function(e){this.state.isKeyboardFocused&&(this.setState({isKeyboardFocused:!1}),this.props.onKeyboardFocus(e,!1))}},{key:"setKeyboardFocus",value:function(e){this.state.isKeyboardFocused||(this.setState({isKeyboardFocused:!0}),this.props.onKeyboardFocus(e,!0))}},{key:"cancelFocusTimeout",value:function(){this.focusTimeout&&(clearTimeout(this.focusTimeout),this.focusTimeout=null)}},{key:"createButtonChildren",value:function(){var e=this.props,t=e.centerRipple,n=e.children,r=e.disabled,o=e.disableFocusRipple,i=e.disableKeyboardFocus,a=e.disableTouchRipple,s=e.focusRippleColor,u=e.focusRippleOpacity,l=e.touchRippleColor,c=e.touchRippleOpacity,f=this.state.isKeyboardFocused,p=!f||r||o||i?void 0:d.default.createElement(y.default,{color:s,opacity:u,show:f,style:{overflow:"hidden"},key:"focusRipple"}),h=r||a?void 0:d.default.createElement(m.default,{centerRipple:t,color:l,opacity:c,key:"touchRipple"},n);return[p,h,h?void 0:n]}},{key:"render",value:function(){var e=this,t=this.props,n=(t.centerRipple,t.children),i=t.containerElement,a=t.disabled,s=(t.disableFocusRipple,t.disableKeyboardFocus),u=(t.disableTouchRipple,t.focusRippleColor,t.focusRippleOpacity,t.href),l=(t.keyboardFocused,t.touchRippleColor,t.touchRippleOpacity,t.onBlur,t.onClick,t.onFocus,t.onKeyUp,t.onKeyDown,t.onKeyboardFocus,t.style),f=t.tabIndex,p=t.type,h=(0,o.default)(t,["centerRipple","children","containerElement","disabled","disableFocusRipple","disableKeyboardFocus","disableTouchRipple","focusRippleColor","focusRippleOpacity","href","keyboardFocused","touchRippleColor","touchRippleOpacity","onBlur","onClick","onFocus","onKeyUp","onKeyDown","onKeyboardFocus","style","tabIndex","type"]),g=this.context.muiTheme,y=g.prepareStyles,m=g.enhancedButton,v=(0,c.default)({border:10,boxSizing:"border-box",display:"inline-block",fontFamily:this.context.muiTheme.baseTheme.fontFamily,WebkitTapHighlightColor:m.tapHighlightColor,cursor:a?"default":"pointer",textDecoration:"none",margin:0,padding:0,outline:"none",fontSize:"inherit",fontWeight:"inherit",position:"relative",verticalAlign:u?"middle":null},l);if(v.backgroundColor||v.background||(v.background="none"),a&&u)return d.default.createElement("span",(0,r.default)({},h,{style:v}),n);var b=(0,r.default)({},h,{style:y(v),ref:function(t){return e.button=t},disabled:a,onBlur:this.handleBlur,onFocus:this.handleFocus,onKeyUp:this.handleKeyUp,onKeyDown:this.handleKeyDown,onClick:this.handleClick,tabIndex:a||s?-1:f});u&&(b.href=u);var _=this.createButtonChildren();return d.default.isValidElement(i)?d.default.cloneElement(i,b,_):(u||"button"!==i||(b.type=p),d.default.createElement(u?"a":i,b,_))}}]),t}(f.Component);w.defaultProps={containerElement:"button",onBlur:function(){},onClick:function(){},onFocus:function(){},onKeyDown:function(){},onKeyUp:function(){},onKeyboardFocus:function(){},tabIndex:0,type:"button"},w.contextTypes={muiTheme:p.default.object.isRequired},w.propTypes={},t.default=w},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=f(n(19)),o=f(n(20)),i=f(n(167)),a=f(n(16)),s=f(n(0)),u=f(n(9)),l=f(n(705)),c=f(n(100));function f(e){return e&&e.__esModule?e:{default:e}}var d=function(e,t){e.active;var n=e.children,u=e.completed,f=e.icon,d=e.iconContainerStyle,p=(e.last,e.style),h=(0,o.default)(e,["active","children","completed","icon","iconContainerStyle","last","style"]),g=t.muiTheme.prepareStyles,y=function(e,t){var n=e.active,r=e.completed,o=e.disabled,i=t.muiTheme,a=t.stepper,s=i.stepper,u=s.textColor,l=s.disabledTextColor,c=s.iconColor,f=s.inactiveIconColor,d=i.baseTheme,p={root:{height:"horizontal"===a.orientation?72:64,color:u,display:"flex",alignItems:"center",fontFamily:d.fontFamily,fontSize:14,paddingLeft:14,paddingRight:14},icon:{color:c,display:"block",fontSize:24,width:24,height:24},iconContainer:{paddingRight:8}};return n&&(p.root.fontWeight=500),r||n||(p.icon.color=f),o&&(p.icon.color=f,p.root.color=l,p.root.cursor="default"),p}(e,t),m=function(e,t,n){var r=void 0===t?"undefined":(0,i.default)(t);return"number"===r||"string"===r?e?s.default.createElement(l.default,{color:n.icon.color,style:n.icon}):s.default.createElement(c.default,{color:n.icon.color,style:n.icon},s.default.createElement("circle",{cx:"12",cy:"12",r:"10"}),s.default.createElement("text",{x:"12",y:"16",textAnchor:"middle",fontSize:"12",fill:"#fff"},t)):t}(u,f,y);return s.default.createElement("span",(0,r.default)({style:g((0,a.default)(y.root,p))},h),m&&s.default.createElement("span",{style:g((0,a.default)(y.iconContainer,d))},m),n)};d.muiName="StepLabel",d.propTypes={},d.contextTypes={muiTheme:u.default.object.isRequired,stepper:u.default.object},t.default=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(9));var o=r.default.oneOf(["left","middle","right"]),i=r.default.oneOf(["top","center","bottom"]);t.default={corners:r.default.oneOf(["bottom-left","bottom-right","top-left","top-right"]),horizontal:o,vertical:i,origin:r.default.shape({horizontal:o,vertical:i}),cornersAndCenter:r.default.oneOf(["bottom-center","bottom-left","bottom-right","top-center","top-left","top-right"]),stringOrNumber:r.default.oneOfType([r.default.string,r.default.number]),zDepth:r.default.oneOf([0,1,2,3,4,5])}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(n(0)),o=i(n(718));function i(e){return e&&e.__esModule?e:{default:e}}const a={refresh:{display:"inline-block",position:"relative"}};t.default=(()=>r.default.createElement("div",{className:"yoast-wizard-overlay-loader"},r.default.createElement(o.default,{size:40,left:10,top:100,status:"loading",style:a.refresh})))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(299);Object.defineProperty(t,"FixedWidthContainer",{enumerable:!0,get:function(){return c(r).default}});var o=n(738);Object.defineProperty(t,"HelpTextWrapper",{enumerable:!0,get:function(){return c(o).default}});var i=n(308);Object.defineProperty(t,"SnippetPreview",{enumerable:!0,get:function(){return c(i).default}});var a=n(182);Object.defineProperty(t,"ReplacementVariableEditor",{enumerable:!0,get:function(){return c(a).default}});var s=n(981);Object.defineProperty(t,"SettingsSnippetEditor",{enumerable:!0,get:function(){return c(s).default}});var u=n(983);Object.defineProperty(t,"SnippetEditor",{enumerable:!0,get:function(){return c(u).default}});var l=n(58);function c(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"lengthProgressShape",{enumerable:!0,get:function(){return l.lengthProgressShape}}),Object.defineProperty(t,"recommendedReplacementVariablesShape",{enumerable:!0,get:function(){return l.recommendedReplacementVariablesShape}}),Object.defineProperty(t,"replacementVariablesShape",{enumerable:!0,get:function(){return l.replacementVariablesShape}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),o=l(r),i=l(n(1)),a=l(n(17)),s=l(n(300)),u=n(10);function l(e){return e&&e.__esModule?e:{default:e}}const c=i.default.div.withConfig({displayName:"FixedWidthContainer__FixedWidth",componentId:"sc-12v6gqu-0"})(["overflow:auto;width:","px;padding:0 ","px;max-width:100%;box-sizing:border-box;"],e=>e.widthValue,e=>e.paddingValue),f=i.default.div.withConfig({displayName:"FixedWidthContainer__Inner",componentId:"sc-12v6gqu-1"})(["width:","px;"],e=>e.widthValue),d=i.default.div.withConfig({displayName:"FixedWidthContainer__ScrollHintContainer",componentId:"sc-12v6gqu-2"})(["text-align:center;margin:1em 0 5px;"]),p=i.default.div.withConfig({displayName:"FixedWidthContainer__ScrollHint",componentId:"sc-12v6gqu-3"})(['display:inline-block;box-sizing:border-box;&:before{display:inline-block;margin-right:10px;font-size:20px;line-height:inherit;vertical-align:text-top;content:"\\21c4";box-sizing:border-box;}']);class h extends r.Component{constructor(e){super(e),this.state={showScrollHint:!1},this.setContainerRef=this.setContainerRef.bind(this),this.determineSize=(0,s.default)(this.determineSize.bind(this),100)}setContainerRef(e){if(!e)return null;this._container=e,this.determineSize(),window.addEventListener("resize",this.determineSize)}determineSize(){const e=this._container.offsetWidth;this.setState({showScrollHint:e<this.props.width})}componentWillUnmount(){window.removeEventListener("resize",this.determineSize)}render(){var e=this.props;const t=e.width,n=e.padding,r=e.children,i=e.className,a=e.id,s=t-2*n;return o.default.createElement(o.default.Fragment,null,o.default.createElement(c,{id:a,className:i,widthValue:t,paddingValue:n,ref:this.setContainerRef},o.default.createElement(f,{widthValue:s},r)),this.state.showScrollHint&&o.default.createElement(d,null,o.default.createElement(p,null,(0,u.__)("Scroll to see the preview content.","yoast-components"))))}}t.default=h,h.propTypes={id:a.default.string,width:a.default.number.isRequired,padding:a.default.number,children:a.default.node.isRequired,className:a.default.string},h.defaultProps={id:"",padding:0,className:""}},function(e,t,n){var r=n(70),o=n(735),i=n(302),a="Expected a function",s=Math.max,u=Math.min;e.exports=function(e,t,n){var l,c,f,d,p,h,g=0,y=!1,m=!1,v=!0;if("function"!=typeof e)throw new TypeError(a);function b(t){var n=l,r=c;return l=c=void 0,g=t,d=e.apply(r,n)}function _(e){var n=e-h;return void 0===h||n>=t||n<0||m&&e-g>=f}function x(){var e=o();if(_(e))return w(e);p=setTimeout(x,function(e){var n=t-(e-h);return m?u(n,f-(e-g)):n}(e))}function w(e){return p=void 0,v&&l?b(e):(l=c=void 0,d)}function S(){var e=o(),n=_(e);if(l=arguments,c=this,h=e,n){if(void 0===p)return function(e){return g=e,p=setTimeout(x,t),y?b(e):d}(h);if(m)return p=setTimeout(x,t),b(h)}return void 0===p&&(p=setTimeout(x,t)),d}return t=i(t)||0,r(n)&&(y=!!n.leading,f=(m="maxWait"in n)?s(i(n.maxWait)||0,t):f,v="trailing"in n?!!n.trailing:v),S.cancel=function(){void 0!==p&&clearTimeout(p),g=0,l=h=c=p=void 0},S.flush=function(){return void 0===p?d:w(o())},S}},function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(this,n(18))},function(e,t,n){var r=n(70),o=n(106),i=NaN,a=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(o(e))return i;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(a,"");var n=u.test(e);return n||l.test(e)?c(e.slice(2),n?2:8):s.test(e)?i:+e}},function(e,t,n){var r=n(107),o=n(304),i=n(30),a=n(106),s=1/0,u=r?r.prototype:void 0,l=u?u.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(i(t))return o(t,e)+"";if(a(t))return l?l.call(t):"";var n=t+"";return"0"==n&&1/t==-s?"-0":n}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}},function(e,t,n){"use strict";t.__esModule=!0,t.default=t.EXITING=t.ENTERED=t.ENTERING=t.EXITED=t.UNMOUNTED=void 0;var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}(n(17)),o=s(n(0)),i=s(n(23)),a=n(155);n(306);function s(e){return e&&e.__esModule?e:{default:e}}var u="unmounted";t.UNMOUNTED=u;var l="exited";t.EXITED=l;var c="entering";t.ENTERING=c;var f="entered";t.ENTERED=f;t.EXITING="exiting";var d=function(e){function t(t,n){var r;r=e.call(this,t,n)||this;var o,i=n.transitionGroup,a=i&&!i.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?a?(o=l,r.appearStatus=c):o=f:o=t.unmountOnExit||t.mountOnEnter?u:l,r.state={status:o},r.nextCallback=null,r}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}(t,e);var n=t.prototype;return n.getChildContext=function(){return{transitionGroup:null}},t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===u?{status:l}:null},n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==c&&n!==f&&(t=c):n!==c&&n!==f||(t="exiting")}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e,t,n,r=this.props.timeout;return e=t=n=r,null!=r&&"number"!=typeof r&&(e=r.exit,t=r.enter,n=void 0!==r.appear?r.appear:t),{exit:e,enter:t,appear:n}},n.updateStatus=function(e,t){if(void 0===e&&(e=!1),null!==t){this.cancelNextCallback();var n=i.default.findDOMNode(this);t===c?this.performEnter(n,e):this.performExit(n)}else this.props.unmountOnExit&&this.state.status===l&&this.setState({status:u})},n.performEnter=function(e,t){var n=this,r=this.props.enter,o=this.context.transitionGroup?this.context.transitionGroup.isMounting:t,i=this.getTimeouts(),a=o?i.appear:i.enter;t||r?(this.props.onEnter(e,o),this.safeSetState({status:c},function(){n.props.onEntering(e,o),n.onTransitionEnd(e,a,function(){n.safeSetState({status:f},function(){n.props.onEntered(e,o)})})})):this.safeSetState({status:f},function(){n.props.onEntered(e)})},n.performExit=function(e){var t=this,n=this.props.exit,r=this.getTimeouts();n?(this.props.onExit(e),this.safeSetState({status:"exiting"},function(){t.props.onExiting(e),t.onTransitionEnd(e,r.exit,function(){t.safeSetState({status:l},function(){t.props.onExited(e)})})})):this.safeSetState({status:l},function(){t.props.onExited(e)})},n.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},n.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(e,t,n){this.setNextCallback(n);var r=null==t&&!this.props.addEndListener;e&&!r?(this.props.addEndListener&&this.props.addEndListener(e,this.nextCallback),null!=t&&setTimeout(this.nextCallback,t)):setTimeout(this.nextCallback,0)},n.render=function(){var e=this.state.status;if(e===u)return null;var t=this.props,n=t.children,r=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(t,["children"]);if(delete r.in,delete r.mountOnEnter,delete r.unmountOnExit,delete r.appear,delete r.enter,delete r.exit,delete r.timeout,delete r.addEndListener,delete r.onEnter,delete r.onEntering,delete r.onEntered,delete r.onExit,delete r.onExiting,delete r.onExited,"function"==typeof n)return n(e,r);var i=o.default.Children.only(n);return o.default.cloneElement(i,r)},t}(o.default.Component);function p(){}d.contextTypes={transitionGroup:r.object},d.childContextTypes={transitionGroup:function(){}},d.propTypes={},d.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:p,onEntering:p,onEntered:p,onExit:p,onExiting:p,onExited:p},d.UNMOUNTED=0,d.EXITED=1,d.ENTERING=2,d.ENTERED=3,d.EXITING=4;var h=(0,a.polyfill)(d);t.default=h},function(e,t,n){"use strict";t.__esModule=!0,t.classNamesShape=t.timeoutsShape=void 0;!function(e){e&&e.__esModule}(n(17));t.timeoutsShape=null;t.classNamesShape=null},function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=s(n(17)),o=s(n(0)),i=n(155),a=n(747);function s(e){return e&&e.__esModule?e:{default:e}}function u(){return(u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function l(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var c=Object.values||function(e){return Object.keys(e).map(function(t){return e[t]})},f=function(e){function t(t,n){var r,o=(r=e.call(this,t,n)||this).handleExited.bind(l(l(r)));return r.state={handleExited:o,firstRender:!0},r}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}(t,e);var n=t.prototype;return n.getChildContext=function(){return{transitionGroup:{isMounting:!this.appeared}}},n.componentDidMount=function(){this.appeared=!0,this.mounted=!0},n.componentWillUnmount=function(){this.mounted=!1},t.getDerivedStateFromProps=function(e,t){var n=t.children,r=t.handleExited;return{children:t.firstRender?(0,a.getInitialChildMapping)(e,r):(0,a.getNextChildMapping)(e,n,r),firstRender:!1}},n.handleExited=function(e,t){var n=(0,a.getChildMapping)(this.props.children);e.key in n||(e.props.onExited&&e.props.onExited(t),this.mounted&&this.setState(function(t){var n=u({},t.children);return delete n[e.key],{children:n}}))},n.render=function(){var e=this.props,t=e.component,n=e.childFactory,r=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,["component","childFactory"]),i=c(this.state.children).map(n);return delete r.appear,delete r.enter,delete r.exit,null===t?i:o.default.createElement(t,r,i)},t}(o.default.Component);f.childContextTypes={transitionGroup:r.default.object.isRequired},f.propTypes={},f.defaultProps={component:"div",childFactory:function(e){return e}};var d=(0,i.polyfill)(f);t.default=d,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=n(0),i=b(o),a=b(n(1)),s=b(n(62)),u=b(n(17)),l=b(n(749)),c=n(761),f=n(10),d=n(3),p=n(180),h=n(7),g=n(8),y=b(n(299)),m=n(181),v=n(108);function b(e){return e&&e.__esModule?e:{default:e}}const _=p.string.transliterate,x=p.string.createRegexFromArray,w=p.string.replaceDiacritics,S=600,C=20,k=156,O=(0,a.default)(y.default).withConfig({displayName:"SnippetPreview__DesktopContainer",componentId:"waz8ku-0"})(["background-color:#fff;font-family:arial,sans-serif;box-sizing:border-box;"]),E=a.default.div.withConfig({displayName:"SnippetPreview__MobileContainer",componentId:"waz8ku-1"})(["border-bottom:1px hidden #fff;border-radius:8px;box-shadow:0 1px 6px rgba(32,33,36,0.28);font-family:Arial,Roboto-Regular,HelveticaNeue,sans-serif;max-width:","px;box-sizing:border-box;font-size:14px;"],400),T=a.default.div.withConfig({displayName:"SnippetPreview__BaseTitle",componentId:"waz8ku-2"})(["cursor:pointer;position:relative;"]);function M(e,t,n){return(0,a.default)(e).withConfig({displayName:"SnippetPreview",componentId:"waz8ku-3"})(["&::before{display:block;position:absolute;top:0;",":",";width:22px;height:22px;background-image:url( ",' );background-size:24px;background-repeat:no-repeat;background-position:center;content:"";}'],(0,h.getDirectionalStyle)("left","right"),()=>n===m.MODE_DESKTOP?"-22px":"-40px",(0,h.getDirectionalStyle)((0,v.angleRight)(t),(0,v.angleLeft)(t)))}const P=a.default.div.withConfig({displayName:"SnippetPreview__Title",componentId:"waz8ku-4"})(["color:",";text-decoration:none;font-size:",";line-height:",";font-weight:normal;margin:0;display:inline-block;overflow:hidden;max-width:","px;vertical-align:top;text-overflow:ellipsis;"],e=>e.screenMode===m.MODE_DESKTOP?"#1a0dab":"#1967d2",e=>e.screenMode===m.MODE_DESKTOP?"20px":"16px",e=>e.screenMode===m.MODE_DESKTOP?"1.3":"20px",S),j=(0,a.default)(P).withConfig({displayName:"SnippetPreview__TitleBounded",componentId:"waz8ku-5"})(["max-width:","px;vertical-align:top;text-overflow:ellipsis;"],S),A=a.default.span.withConfig({displayName:"SnippetPreview__TitleUnboundedDesktop",componentId:"waz8ku-6"})(["white-space:nowrap;"]),I=a.default.span.withConfig({displayName:"SnippetPreview__TitleUnboundedMobile",componentId:"waz8ku-7"})(["display:inline-block;max-height:40px;padding-top:1px;vertical-align:top;overflow:hidden;text-overflow:ellipsis;"]),R=a.default.div.withConfig({displayName:"SnippetPreview__BaseUrl",componentId:"waz8ku-8"})(["display:inline-block;cursor:pointer;position:relative;max-width:90%;white-space:nowrap;font-size:14px;vertical-align:top;"]),D=(0,a.default)(R).withConfig({displayName:"SnippetPreview__BaseUrlOverflowContainer",componentId:"waz8ku-9"})(["overflow:hidden;text-overflow:ellipsis;max-width:100%;margin-bottom:",";padding-top:1px;line-height:",";vertical-align:",";"],e=>e.screenMode===m.MODE_DESKTOP?"0":"12px",e=>e.screenMode===m.MODE_DESKTOP?"1.5":"20px",e=>e.screenMode===m.MODE_DESKTOP?"baseline":"top"),N=a.default.span.withConfig({displayName:"SnippetPreview__UrlContentContainer",componentId:"waz8ku-10"})(["font-size:",";color:",";"],e=>e.screenMode===m.MODE_DESKTOP?"16px":"12px",e=>e.screenMode===m.MODE_DESKTOP?"#006621":"#3c4043");D.displayName="SnippetPreview__BaseUrlOverflowContainer";const B=a.default.div.withConfig({displayName:"SnippetPreview__DesktopDescription",componentId:"waz8ku-11"})(["color:",";cursor:pointer;position:relative;max-width:","px;padding-top:",";font-size:14px;line-height:1.57;"],e=>e.isDescriptionPlaceholder?"#767676":"#545454",S,e=>e.screenMode===m.MODE_DESKTOP?"0":"1px"),L=a.default.div.withConfig({displayName:"SnippetPreview__MobileDescription",componentId:"waz8ku-12"})(["color:",";font-size:14px;line-height:20px;cursor:pointer;position:relative;max-width:",'px;&:after{display:table;content:"";clear:both;}'],"#3c4043",S),F=a.default.div.withConfig({displayName:"SnippetPreview__MobileDescriptionImageContainer",componentId:"waz8ku-13"})(["float:right;width:104px;height:104px;margin:4px 0 4px 16px;border-radius:8px;overflow:hidden;"]),z=a.default.img.withConfig({displayName:"SnippetPreview__MobileDescriptionImage",componentId:"waz8ku-14"})(["&&&{display:block;width:104px;height:104px;object-fit:cover;}"]),q=a.default.div.withConfig({displayName:"SnippetPreview__MobilePartContainer",componentId:"waz8ku-15"})(["padding:12px 16px;&:first-child{margin-bottom:-16px;}"]),K=a.default.div.withConfig({displayName:"SnippetPreview__DesktopPartContainer",componentId:"waz8ku-16"})([""]),W=a.default.div.withConfig({displayName:"SnippetPreview__UrlDownArrow",componentId:"waz8ku-17"})(["display:inline-block;margin-top:9px;margin-left:6px;border-top:5px solid #006621;border-right:4px solid transparent;border-left:4px solid transparent;vertical-align:top;"]),U=a.default.span.withConfig({displayName:"SnippetPreview__DatePreview",componentId:"waz8ku-18"})(["color:",";"],e=>e.screenMode===m.MODE_DESKTOP?"#777":"#70757a"),$="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABs0lEQVR4AWL4//8/RRjO8Iucx+noO0MWUDo16FYABMGP6ZfUcRnWtm27jVPbtm3bttuH2t3eFPcY9pLz7NxiLjCyVd87pKnHyqXyxtCs8APd0rnyxiu4qSeA3QEDrAwBDrT1s1Rc/OrjLZwqVmOSu6+Lamcpp2KKMA9PH1BYXMe1mUP5qotvXTywsOEEYHXxrY+3cqk6TMkYpNr2FeoY3KIr0RPtn9wQ2unlA+GMkRw6+9TFw4YTwDUzx/JVvARj9KaedXRO8P5B1Du2S32smzqUrcKGEyA+uAgQjKX7zf0boWHGfn71jIKj2689gxp7OAGShNcBUmLMPVjZuiKcA2vuWHHDCQxMCz629kXAIU4ApY15QwggAFbfOP9DhgBJ+nWVJ1AZAfICAj1pAlY6hCADZnveQf7bQIwzVONGJonhLIlS9gr5mFg44Xd+4S3XHoGNPdJl1INIwKyEgHckEhgTe1bGiFY9GSFBYUwLh1IkiJUbY407E7syBSFxKTszEoiE/YdrgCEayDmtaJwCI9uu8TKMuZSVfSa4BpGgzvomBR/INhLGzrqDotp01ZR8pn/1L0JN9d9XNyx0AAAAAElFTkSuQmCC",H=a.default.img.withConfig({displayName:"SnippetPreview__Favicon",componentId:"waz8ku-19"})(["width:16px;height:16px;margin-right:12px;vertical-align:middle;"]),V=a.default.div.withConfig({displayName:"SnippetPreview__Amp",componentId:"waz8ku-20"})(["background-size:100% 100%;display:inline-block;height:12px;width:12px;margin-bottom:-1px;opacity:0.46;margin-right:6px;background-image:url( "," )"],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAQAAABLCVATAAABr0lEQVR4AbWWJYCUURhFD04Zi7hrLzgFd4nzV9x6wKHinmYb7g4zq71gIw2LWBnZ3Q8df/fh96Tn/t2HVIw4CVKk+fSFNCkSxInxW1pFkhLmoMRjVvFLmkEX5ocuZuBVPw5jv8hh+iEU5QEmuMK+prz7RN3dPMMEGQYzxpH/lGjzou5jgl7mAvOdZfcbF+jbm3MAbFZ7VX9SJnlL1D8UMyjLe+BrAYDb+jJUr59JrlNWRtcqX9GkrPCR4QBAf4qYJAkQoyQrbKKs8RiaEjEI0GvvQ1mLMC9xaBFFBaZS1TbMSwJSomg39erDF+TxpCCNOXjGQJTCvG6qn4ZPzkcxA61Tjhaf4KMj+6Q3XvW6Lopraa8IozRQxIi0a7NXorULc5JyHX/3F3q+0PsFYytVTaGgjz/AvCyiegE69IUsPxHNBMpa738i6tGWlzkAABjKe/+j9YeRHGVd9oWRnwe2ewDASp/L/UqoPQ5AmFeYZMavBP8dAJz0GWWDHQlzXApMdz4KYUfKICcxkKeOfGmQyrIPcgE9m+g/+kT812/Nr3+0kqzitxQjoKXh6xfor99nlEdFjyvH15gAAAAASUVORK5CYII=");function G(e,t,n,r){if(0===t.length)return n;let o=r||n;const a=[];t.forEach(function(t){t=r?w(t):t,a.push(t);const n=_(t,e);n!==t&&a.push(n)});const u=x(a,!1,"",!1);return o=o.replace(u,function(e){return`{{strong}}${e}{{/strong}}`}),(0,s.default)({mixedString:o,components:{strong:i.default.createElement("strong",null)}})}class Y extends o.PureComponent{constructor(e){super(e),this.state={title:e.title,description:e.description,isDescriptionPlaceholder:!0},this.setTitleRef=this.setTitleRef.bind(this),this.setDescriptionRef=this.setDescriptionRef.bind(this)}setTitleRef(e){this._titleElement=e}setDescriptionRef(e){this._descriptionElement=e}hasOverflowedContent(e){return Math.abs(e.clientHeight-e.scrollHeight)>=2}fitTitle(){const e=this._titleElement;if(this.hasOverflowedContent(e)){let t=this.state.title;const n=e.clientWidth/3;t.length>n&&(t=t.substring(0,n));const r=this.dropLastWord(t);this.setState({title:r})}}dropLastWord(e){const t=e.split(" ");return t.pop(),t.join(" ")}getTitle(){return this.props.title!==this.state.title?this.state.title+" ...":this.props.title}getDescription(){return this.props.description?(0,l.default)(this.props.description,{length:k,separator:" ",omission:" ..."}):(0,f.__)("Please provide a meta description by editing the snippet below. If you don’t, Google will try to find a relevant part of your post to show in the search results.","yoast-components")}renderDate(){const e=this.props.mode===m.MODE_DESKTOP?"-":"⋅";return this.props.date&&i.default.createElement(U,{screenMode:this.props.mode},this.props.date," ",e," ")}addCaretStyles(e,t){var n=this.props;const r=n.mode,o=n.hoveredField;return n.activeField===e?M(t,d.colors.$color_snippet_active,r):o===e?M(t,d.colors.$color_snippet_hover,r):t}getBreadcrumbs(e){const t=this.props.breadcrumbs,n=encodeURI(e.replace(/\?|#/g,""));var r=(0,c.parse)(n);const o=r.protocol,i=r.hostname,a=r.pathname,s=["https:"===o?o+"//"+i:i,...t||a.split("/")].filter(e=>!!e).join(" › ");return decodeURI(s)}renderUrl(){var e=this.props;const t=e.url,n=e.onMouseUp,r=e.onMouseEnter,o=e.onMouseLeave,a=e.mode,s=e.faviconSrc,u=a===m.MODE_MOBILE;let l=w(t);u?l=this.getBreadcrumbs(l):function(e){return e.lastIndexOf("/")===e.length-1}(l)||(l+="/");const c=this.addCaretStyles("url",R);return i.default.createElement(i.default.Fragment,null,i.default.createElement(g.ScreenReaderText,null,(0,f.__)("Url preview","yoast-components")+":"),i.default.createElement(c,null,i.default.createElement(D,{onMouseUp:n.bind(null,"url"),onMouseEnter:r.bind(null,"url"),onMouseLeave:o.bind(null),screenMode:a},u&&i.default.createElement(H,{src:s||$,alt:""}),i.default.createElement(N,{screenMode:a},l))))}componentWillReceiveProps(e){const t={};this.props.title!==e.title&&(t.title=e.title),this.props.description!==e.description&&(t.description=e.description),this.setState(t)}componentDidUpdate(){this.setState({isDescriptionPlaceholder:!this.props.description}),this.props.mode===m.MODE_MOBILE&&(clearTimeout(this.fitTitleTimeout),this.fitTitleTimeout=setTimeout(()=>{this.fitTitle()},10))}componentDidMount(){this.setState({isDescriptionPlaceholder:!this.props.description})}renderDescription(){var e=this.props;const t=e.wordsToHighlight,n=e.locale,o=e.onMouseUp,a=e.onMouseLeave,s=e.onMouseEnter,u=e.mode,l=e.mobileImageSrc,c=this.renderDate(),f={isDescriptionPlaceholder:this.state.isDescriptionPlaceholder,onMouseUp:o.bind(null,"description"),onMouseEnter:s.bind(null,"description"),onMouseLeave:a.bind(null)};if(u===m.MODE_DESKTOP){const e=this.addCaretStyles("description",B);return i.default.createElement(e,r({},f,{ref:this.setDescriptionRef}),c,G(n,t,this.getDescription()))}if(u===m.MODE_MOBILE){const e=this.addCaretStyles("description",L);return i.default.createElement(e,f,i.default.createElement(L,{isDescriptionPlaceholder:this.state.isDescriptionPlaceholder,ref:this.setDescriptionRef},l&&i.default.createElement(F,null,i.default.createElement(z,{src:l,alt:""})),c,G(n,t,this.getDescription())))}return null}render(){var e=this.props;const t=e.onMouseUp,n=e.onMouseLeave,r=e.onMouseEnter,o=e.mode,a=e.isAmp;var s=this.getPreparedComponents(o);const u=s.PartContainer,l=s.Container,c=s.TitleUnbounded,d=s.SnippetTitle,p=o===m.MODE_DESKTOP,h=p?i.default.createElement(W,null):null,y=p||!a?null:i.default.createElement(V,null);return i.default.createElement("section",null,i.default.createElement(l,{id:"yoast-snippet-preview-container",onMouseLeave:this.onMouseLeave,width:p?S+2*C:null,padding:C},i.default.createElement(u,null,!p&&this.renderUrl(),i.default.createElement(g.ScreenReaderText,null,(0,f.__)("SEO title preview","yoast-components")+":"),i.default.createElement(d,{onMouseUp:t.bind(null,"title"),onMouseEnter:r.bind(null,"title"),onMouseLeave:n.bind(null)},i.default.createElement(j,{screenMode:o},i.default.createElement(c,{ref:this.setTitleRef},this.getTitle()))),y,p&&this.renderUrl(),h),i.default.createElement(u,null,i.default.createElement(g.ScreenReaderText,null,(0,f.__)("Meta description preview","yoast-components")+":"),this.renderDescription())))}getPreparedComponents(e){return{PartContainer:e===m.MODE_DESKTOP?K:q,Container:e===m.MODE_DESKTOP?O:E,TitleUnbounded:e===m.MODE_DESKTOP?A:I,SnippetTitle:this.addCaretStyles("title",T)}}}t.default=Y,Y.propTypes={title:u.default.string.isRequired,url:u.default.string.isRequired,description:u.default.string.isRequired,date:u.default.string,breadcrumbs:u.default.array,hoveredField:u.default.string,activeField:u.default.string,keyword:u.default.string,wordsToHighlight:u.default.array,locale:u.default.string,mode:u.default.oneOf(m.MODES),isAmp:u.default.bool,faviconSrc:u.default.string,mobileImageSrc:u.default.string,onMouseUp:u.default.func.isRequired,onHover:u.default.func,onMouseEnter:u.default.func,onMouseLeave:u.default.func},Y.defaultProps={date:"",keyword:"",wordsToHighlight:[],breadcrumbs:null,locale:"en",hoveredField:"",activeField:"",mode:m.DEFAULT_MODE,isAmp:!1,faviconSrc:"",mobileImageSrc:"",onHover:()=>{},onMouseEnter:()=>{},onMouseLeave:()=>{}}},function(e,t){e.exports=function(e){return function(t){return e(t)}}},function(e,t,n){(function(e){var r=n(301),o="object"==typeof t&&t&&!t.nodeType&&t,i=o&&"object"==typeof e&&e&&!e.nodeType&&e,a=i&&i.exports===o&&r.process,s=function(){try{var e=i&&i.require&&i.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(e){}}();e.exports=s}).call(this,n(34)(e))},function(e,t){e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},function(e,t,n){var r=n(760);e.exports=function(e){var t=r(e),n=t%1;return t==t?n?t-n:t:0}},function(e,t,n){"use strict";var r=n(27),o=n(4),i=n(40),a=o.OrderedMap;e.exports=function(e){return e.first()instanceof r?function(e){var t={},n=void 0;return a(e.withMutations(function(e){e.forEach(function(r,o){var a=r.getKey(),s=r.getNextSiblingKey(),u=r.getPrevSiblingKey(),l=r.getChildKeys(),c=r.getParentKey(),f=i();if(t[a]=f,s&&(e.get(s)?e.setIn([s,"prevSibling"],f):e.setIn([a,"nextSibling"],null)),u&&(e.get(u)?e.setIn([u,"nextSibling"],f):e.setIn([a,"prevSibling"],null)),c&&e.get(c)){var d=e.get(c).getChildKeys();e.setIn([c,"children"],d.set(d.indexOf(r.getKey()),f))}else e.setIn([a,"parent"],null),n&&(e.setIn([n.getKey(),"nextSibling"],f),e.setIn([a,"prevSibling"],t[n.getKey()])),n=e.get(a);l.forEach(function(t){e.get(t)?e.setIn([t,"parent"],f):e.setIn([a,"children"],r.getChildKeys().filter(function(e){return e!==t}))})})}).toArray().map(function(e){return[t[e.getKey()],e.set("key",t[e.getKey()])]}))}(e):function(e){return a(e.toArray().map(function(e){var t=i();return[t,e.set("key",t)]}))}(e)}},function(e,t,n){"use strict";var r=n(25),o=n(85),i=n(5);function a(e,t,n){var a=t.getCharacterList(),s=n>0?a.get(n-1):void 0,u=n<a.count()?a.get(n):void 0,l=s?s.getEntity():void 0,c=u?u.getEntity():void 0;if(c&&c===l&&"MUTABLE"!==e.__get(c).getMutability()){for(var f,d=function(e,t,n){var r;return o(e,function(e,t){return e.getEntity()===t.getEntity()},function(e){return e.getEntity()===t},function(e,t){e<=n&&t>=n&&(r={start:e,end:t})}),"object"!=typeof r&&i(!1),r}(a,c,n),p=d.start,h=d.end;p<h;)f=a.get(p),a=a.set(p,r.applyEntity(f,null)),p++;return t.set("characterList",a)}return t}e.exports=function(e,t){var n=e.getBlockMap(),r=e.getEntityMap(),o={},i=t.getStartKey(),s=t.getStartOffset(),u=n.get(i),l=a(r,u,s);l!==u&&(o[i]=l);var c=t.getEndKey(),f=t.getEndOffset(),d=n.get(c);i===c&&(d=l);var p=a(r,d,f);return p!==d&&(o[c]=p),Object.keys(o).length?e.merge({blockMap:n.merge(o),selectionAfter:t}):e.set("selectionAfter",t)}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(n===e.count())t.forEach(function(t){e=e.push(t)});else if(0===n)t.reverse().forEach(function(t){e=e.unshift(t)});else{var r=e.slice(0,n),o=e.slice(n);e=r.concat(t,o).toList()}return e}},function(e,t,n){"use strict";var r=n(27);e.exports=function(e,t){if(!(e instanceof r))return null;var n=e.getNextSiblingKey();if(n)return n;var o=e.getParentKey();if(!o)return null;for(var i=t.get(o);i&&!i.getNextSiblingKey();){var a=i.getParentKey();i=a?t.get(a):null}return i?i.getNextSiblingKey():null}},function(e,t,n){"use strict";var r=n(4),o=n(183),i=n(85),a=r.List,s=r.Repeat,u=r.Record,l=o.thatReturnsTrue,c=u({start:null,end:null}),f=u({start:null,end:null,decoratorKey:null,leaves:null}),d={generate:function(e,t,n){var r=t.getLength();if(!r)return a.of(new f({start:0,end:0,decoratorKey:null,leaves:a.of(new c({start:0,end:0}))}));var o=[],u=n?n.getDecorations(t,e):a(s(null,r)),d=t.getCharacterList();return i(u,p,l,function(e,t){o.push(new f({start:e,end:t,decoratorKey:u.get(e),leaves:function(e,t){var n=[],r=e.map(function(e){return e.getStyle()}).toList();return i(r,p,l,function(e,r){n.push(new c({start:e+t,end:r+t}))}),a(n)}(d.slice(e,t).toList(),e)}))}),a(o)},getFingerprint:function(e){return e.map(function(e){var t=e.get("decoratorKey");return(null!==t?t+"."+(e.get("end")-e.get("start")):"")+"."+e.get("leaves").size}).join("-")}};function p(e,t){return e===t}e.exports=d},function(e,t,n){"use strict";var r=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.getType=function(){return this.get("type")},t.prototype.getMutability=function(){return this.get("mutability")},t.prototype.getData=function(){return this.get("data")},t}((0,n(4).Record)({type:"TOKEN",mutability:"IMMUTABLE",data:Object}));e.exports=r},function(e,t,n){"use strict";var r=n(186),o=n(5),i="־׀׃׆-א-ת-ׯװ-ײ׳-״-߀-߉ߊ-ߪߴ-ߵߺ-߿ࠀ-ࠕࠚࠤࠨ-࠰-࠾ࡀ-ࡘ-࡞-࢟יִײַ-ﬨשׁ-זּטּ-לּמּנּ-סּףּ-פּצּ-ﭏ",a="؈؋؍؛؝؞-؟ؠ-ؿـف-ي٭ٮ-ٯٱ-ۓ۔ەۥ-ۦۮ-ۯۺ-ۼ۽-۾ۿ܀-܍ܐܒ-ܯ-ݍ-ޥޱ-ࢠ-ࢲࢳ-ࣣﭐ-ﮱ﮲-﯁﯂-ﯓ-ﴽ﵀-﵏ﵐ-ﶏ-ﶒ-ﷇ-﷏ﷰ-ﷻ﷼﷾-﷿ﹰ-ﹴﹶ-ﻼ-",s=new RegExp("["+"A-Za-zªµºÀ-ÖØ-öø-ƺƻƼ-ƿǀ-ǃDŽ-ʓʔʕ-ʯʰ-ʸʻ-ˁː-ˑˠ-ˤˮͰ-ͳͶ-ͷͺͻ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҂Ҋ-ԯԱ-Ֆՙ՚-՟ա-և։ःऄ-हऻऽा-ीॉ-ौॎ-ॏॐक़-ॡ।-॥०-९॰ॱॲ-ঀং-ঃঅ-ঌএ-ঐও-নপ-রলশ-হঽা-ীে-ৈো-ৌৎৗড়-ঢ়য়-ৡ০-৯ৰ-ৱ৴-৹৺ਃਅ-ਊਏ-ਐਓ-ਨਪ-ਰਲ-ਲ਼ਵ-ਸ਼ਸ-ਹਾ-ੀਖ਼-ੜਫ਼੦-੯ੲ-ੴઃઅ-ઍએ-ઑઓ-નપ-રલ-ળવ-હઽા-ીૉો-ૌૐૠ-ૡ૦-૯૰ଂ-ଃଅ-ଌଏ-ଐଓ-ନପ-ରଲ-ଳଵ-ହଽାୀେ-ୈୋ-ୌୗଡ଼-ଢ଼ୟ-ୡ୦-୯୰ୱ୲-୷ஃஅ-ஊஎ-ஐஒ-கங-சஜஞ-டண-தந-பம-ஹா-ிு-ூெ-ைொ-ௌௐௗ௦-௯௰-௲ఁ-ఃఅ-ఌఎ-ఐఒ-నప-హఽు-ౄౘ-ౙౠ-ౡ౦-౯౿ಂ-ಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽಾಿೀ-ೄೆೇ-ೈೊ-ೋೕ-ೖೞೠ-ೡ೦-೯ೱ-ೲം-ഃഅ-ഌഎ-ഐഒ-ഺഽാ-ീെ-ൈൊ-ൌൎൗൠ-ൡ൦-൯൰-൵൹ൺ-ൿං-ඃඅ-ඖක-නඳ-රලව-ෆා-ෑෘ-ෟ෦-෯ෲ-ෳ෴ก-ะา-ำเ-ๅๆ๏๐-๙๚-๛ກ-ຂຄງ-ຈຊຍດ-ທນ-ຟມ-ຣລວສ-ຫອ-ະາ-ຳຽເ-ໄໆ໐-໙ໜ-ໟༀ༁-༃༄-༒༓༔༕-༗༚-༟༠-༩༪-༳༴༶༸༾-༿ཀ-ཇཉ-ཬཿ྅ྈ-ྌ྾-࿅࿇-࿌࿎-࿏࿐-࿔࿕-࿘࿙-࿚က-ဪါ-ာေးျ-ြဿ၀-၉၊-၏ၐ-ၕၖ-ၗၚ-ၝၡၢ-ၤၥ-ၦၧ-ၭၮ-ၰၵ-ႁႃ-ႄႇ-ႌႎႏ႐-႙ႚ-ႜ႞-႟Ⴀ-ჅჇჍა-ჺ჻ჼჽ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፠-፨፩-፼ᎀ-ᎏᎠ-Ᏼᐁ-ᙬ᙭-᙮ᙯ-ᙿᚁ-ᚚᚠ-ᛪ᛫-᛭ᛮ-ᛰᛱ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱ᜵-᜶ᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳាើ-ៅះ-ៈ។-៖ៗ៘-៚ៜ០-៩᠐-᠙ᠠ-ᡂᡃᡄ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᤣ-ᤦᤩ-ᤫᤰ-ᤱᤳ-ᤸ᥆-᥏ᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧀᧁ-ᧇᧈ-ᧉ᧐-᧙᧚ᨀ-ᨖᨙ-ᨚ᨞-᨟ᨠ-ᩔᩕᩗᩡᩣ-ᩤᩭ-ᩲ᪀-᪉᪐-᪙᪠-᪦ᪧ᪨-᪭ᬄᬅ-ᬳᬵᬻᬽ-ᭁᭃ-᭄ᭅ-ᭋ᭐-᭙᭚-᭠᭡-᭪᭴-᭼ᮂᮃ-ᮠᮡᮦ-ᮧ᮪ᮮ-ᮯ᮰-᮹ᮺ-ᯥᯧᯪ-ᯬᯮ᯲-᯳᯼-᯿ᰀ-ᰣᰤ-ᰫᰴ-ᰵ᰻-᰿᱀-᱉ᱍ-ᱏ᱐-᱙ᱚ-ᱷᱸ-ᱽ᱾-᱿᳀-᳇᳓᳡ᳩ-ᳬᳮ-ᳱᳲ-ᳳᳵ-ᳶᴀ-ᴫᴬ-ᵪᵫ-ᵷᵸᵹ-ᶚᶛ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℴℵ-ℸℹℼ-ℿⅅ-ⅉⅎ⅏Ⅰ-ↂↃ-ↄↅ-ↈ⌶-⍺⎕⒜-ⓩ⚬⠀-⣿Ⰰ-Ⱞⰰ-ⱞⱠ-ⱻⱼ-ⱽⱾ-ⳤⳫ-ⳮⳲ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵰ⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々〆〇〡-〩〮-〯〱-〵〸-〺〻〼ぁ-ゖゝ-ゞゟァ-ヺー-ヾヿㄅ-ㄭㄱ-ㆎ㆐-㆑㆒-㆕㆖-㆟ㆠ-ㆺㇰ-ㇿ㈀-㈜㈠-㈩㈪-㉇㉈-㉏㉠-㉻㉿㊀-㊉㊊-㊰㋀-㋋㋐-㋾㌀-㍶㍻-㏝㏠-㏾㐀-䶵一-鿌ꀀ-ꀔꀕꀖ-ꒌꓐ-ꓷꓸ-ꓽ꓾-꓿ꔀ-ꘋꘌꘐ-ꘟ꘠-꘩ꘪ-ꘫꙀ-ꙭꙮꚀ-ꚛꚜ-ꚝꚠ-ꛥꛦ-ꛯ꛲-꛷Ꜣ-ꝯꝰꝱ-ꞇ꞉-꞊Ꞌ-ꞎꞐ-ꞭꞰ-Ʇꟷꟸ-ꟹꟺꟻ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꠣ-ꠤꠧ꠰-꠵꠶-꠷ꡀ-ꡳꢀ-ꢁꢂ-ꢳꢴ-ꣃ꣎-꣏꣐-꣙ꣲ-ꣷ꣸-꣺ꣻ꤀-꤉ꤊ-ꤥ꤮-꤯ꤰ-ꥆꥒ-꥓꥟ꥠ-ꥼꦃꦄ-ꦲꦴ-ꦵꦺ-ꦻꦽ-꧀꧁-꧍ꧏ꧐-꧙꧞-꧟ꧠ-ꧤꧦꧧ-ꧯ꧰-꧹ꧺ-ꧾꨀ-ꨨꨯ-ꨰꨳ-ꨴꩀ-ꩂꩄ-ꩋꩍ꩐-꩙꩜-꩟ꩠ-ꩯꩰꩱ-ꩶ꩷-꩹ꩺꩻꩽꩾ-ꪯꪱꪵ-ꪶꪹ-ꪽꫀꫂꫛ-ꫜꫝ꫞-꫟ꫠ-ꫪꫫꫮ-ꫯ꫰-꫱ꫲꫳ-ꫴꫵꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚ꭛ꭜ-ꭟꭤ-ꭥꯀ-ꯢꯣ-ꯤꯦ-ꯧꯩ-ꯪ꯫꯬꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ-豈-舘並-龎ff-stﬓ-ﬗA-Za-zヲ-ッーア-ン゙-゚ᅠ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ"+i+a+"]"),u=new RegExp("["+i+a+"]");function l(e){var t=s.exec(e);return null==t?null:t[0]}function c(e){var t=l(e);return null==t?r.NEUTRAL:u.exec(t)?r.RTL:r.LTR}function f(e,t){if(t=t||r.NEUTRAL,!e.length)return t;var n=c(e);return n===r.NEUTRAL?t:n}function d(e,t){return t||(t=r.getGlobalDir()),r.isStrong(t)||o(!1),f(e,t)}var p={firstStrongChar:l,firstStrongCharDir:c,resolveBlockDir:f,getDirection:d,isDirectionLTR:function(e,t){return d(e,t)===r.LTR},isDirectionRTL:function(e,t){return d(e,t)===r.RTL}};e.exports=p},function(e,t,n){"use strict";e.exports={BOLD:{fontWeight:"bold"},CODE:{fontFamily:"monospace",wordWrap:"break-word"},ITALIC:{fontStyle:"italic"},STRIKETHROUGH:{textDecoration:"line-through"},UNDERLINE:{textDecoration:"underline"}}},function(e,t,n){"use strict";e.exports=function(e){var t=e.getSelection(),n=t.getAnchorKey(),r=e.getBlockTree(n),o=t.getStartOffset(),i=!1;return r.some(function(e){return o===e.get("start")?(i=!0,!0):o<e.get("end")&&e.get("leaves").some(function(e){var t=e.get("start");return o===t&&(i=!0,!0)})}),i}},function(e,t,n){"use strict";var r=n(26)||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};var o=n(791),i=n(111),a=n(0),s=n(23),u=n(324),l=n(191),c=n(319),f=n(186),d=n(72),p=n(806),h=n(192),g=n(810),y=n(5),m=n(31),v=function(e,t){return e.getAnchorKey()===t||e.getFocusKey()===t},b=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.shouldComponentUpdate=function(e){return this.props.block!==e.block||this.props.tree!==e.tree||this.props.direction!==e.direction||v(e.selection,e.block.getKey())&&e.forceSelection},t.prototype.componentDidMount=function(){var e=this.props.selection,t=e.getEndKey();if(e.getHasFocus()&&t===this.props.block.getKey()){var n=s.findDOMNode(this),r=l.getScrollParent(n),o=h(r),i=void 0;if(r===window){var a=p(n);(i=a.y+a.height-g().height)>0&&window.scrollTo(o.x,o.y+i+10)}else{n instanceof HTMLElement||y(!1),(i=n.offsetHeight+n.offsetTop-(r.offsetHeight+o.y))>0&&u.setTop(r,u.getTop(r)+i+10)}}},t.prototype._renderChildren=function(){var e=this,t=this.props.block,n=t.getKey(),s=t.getText(),u=this.props.tree.size-1,l=v(this.props.selection,n);return this.props.tree.map(function(d,p){var h=d.get("leaves"),g=h.size-1,y=h.map(function(r,c){var f=i.encode(n,p,c),d=r.get("start"),h=r.get("end");return a.createElement(o,{key:f,offsetKey:f,block:t,start:d,selection:l?e.props.selection:null,forceSelection:e.props.forceSelection,text:s.slice(d,h),styleSet:t.getInlineStyleAt(d),customStyleMap:e.props.customStyleMap,customStyleFn:e.props.customStyleFn,isLast:p===u&&c===g})}).toArray(),v=d.get("decoratorKey");if(null==v)return y;if(!e.props.decorator)return y;var b=m(e.props.decorator),_=b.getComponentForKey(v);if(!_)return y;var x=b.getPropsForKey(v),w=i.encode(n,p,0),S=s.slice(h.first().get("start"),h.last().get("end")),C=f.getHTMLDirIfDifferent(c.getDirection(S),e.props.direction);return a.createElement(_,r({},x,{contentState:e.props.contentState,decoratedText:S,dir:C,key:w,entityKey:t.getEntityAt(d.get("start")),offsetKey:w}),y)}).toArray()},t.prototype.render=function(){var e=this.props,t=e.direction,n=e.offsetKey,r=d({"public/DraftStyleDefault/block":!0,"public/DraftStyleDefault/ltr":"LTR"===t,"public/DraftStyleDefault/rtl":"RTL"===t});return a.createElement("div",{"data-offset-key":n,className:r},this._renderChildren())},t}(a.Component);e.exports=b},function(e,t,n){"use strict";e.exports=function(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}},function(e,t,n){"use strict";function r(e,t){return!!t&&(e===t.documentElement||e===t.body)}var o={getTop:function(e){var t=e.ownerDocument;return r(e,t)?t.body.scrollTop||t.documentElement.scrollTop:e.scrollTop},setTop:function(e,t){var n=e.ownerDocument;r(e,n)?n.body.scrollTop=n.documentElement.scrollTop=t:e.scrollTop=t},getLeft:function(e){var t=e.ownerDocument;return r(e,t)?t.body.scrollLeft||t.documentElement.scrollLeft:e.scrollLeft},setLeft:function(e,t){var n=e.ownerDocument;r(e,n)?n.body.scrollLeft=n.documentElement.scrollLeft=t:e.scrollLeft=t}};e.exports=o},function(e,t,n){"use strict";var r=n(813),o=n(814),i=n(183),a=new RegExp("\r\n","g"),s={"text/rtf":1,"text/html":1};function u(e){if("file"==e.kind)return e.getAsFile()}var l=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.data=t,this.types=t.types?o(t.types):[]}return e.prototype.isRichText=function(){return!(!this.getHTML()||!this.getText())||!this.isImage()&&this.types.some(function(e){return s[e]})},e.prototype.getText=function(){var e;return this.data.getData&&(this.types.length?-1!=this.types.indexOf("text/plain")&&(e=this.data.getData("text/plain")):e=this.data.getData("Text")),e?e.replace(a,"\n"):null},e.prototype.getHTML=function(){if(this.data.getData){if(!this.types.length)return this.data.getData("Text");if(-1!=this.types.indexOf("text/html"))return this.data.getData("text/html")}},e.prototype.isLink=function(){return this.types.some(function(e){return-1!=e.indexOf("Url")||-1!=e.indexOf("text/uri-list")||e.indexOf("text/x-moz-url")})},e.prototype.getLink=function(){return this.data.getData?-1!=this.types.indexOf("text/x-moz-url")?this.data.getData("text/x-moz-url").split("\n")[0]:-1!=this.types.indexOf("text/uri-list")?this.data.getData("text/uri-list"):this.data.getData("url"):null},e.prototype.isImage=function(){var e=this.types.some(function(e){return-1!=e.indexOf("application/x-moz-file")});if(e)return!0;for(var t=this.getFiles(),n=0;n<t.length;n++){var o=t[n].type;if(!r.isImage(o))return!1}return!0},e.prototype.getCount=function(){return this.data.hasOwnProperty("items")?this.data.items.length:this.data.hasOwnProperty("mozItemCount")?this.data.mozItemCount:this.data.files?this.data.files.length:null},e.prototype.getFiles=function(){return this.data.items?Array.prototype.slice.call(this.data.items).map(u).filter(i.thatReturnsArgument):this.data.files?Array.prototype.slice.call(this.data.files):[]},e.prototype.hasFiles=function(){return this.getFiles().length>0},e}();e.exports=l},function(e,t,n){"use strict";e.exports=function e(t){if(t instanceof Element){var n=t.getAttribute("data-offset-key");if(n)return n;for(var r=0;r<t.childNodes.length;r++){var o=e(t.childNodes[r]);if(o)return o}}return null}},function(e,t,n){"use strict";(function(t){var r=n(5),o=/\.textClipping$/,i={"text/plain":!0,"text/html":!0,"text/rtf":!0},a=5e3;e.exports=function(e,n){var s=0,u=[];e.forEach(function(l){!function(e,n){if(t.FileReader&&(!e.type||e.type in i)){if(""===e.type){var a="";return o.test(e.name)&&(a=e.name.replace(o,"")),void n(a)}var s=new FileReader;s.onload=function(){var e=s.result;"string"!=typeof e&&r(!1),n(e)},s.onerror=function(){n("")},s.readAsText(e)}else n("")}(l,function(t){s++,t&&u.push(t.slice(0,a)),s==e.length&&n(u.join("\r"))})})}}).call(this,n(18))},function(e,t,n){"use strict";var r=n(111),o=n(31);e.exports=function(e,t,n,i,a){var s=o(e.getSelection()),u=r.decode(t),l=u.blockKey,c=e.getBlockTree(l).getIn([u.decoratorKey,"leaves",u.leafKey]),f=r.decode(i),d=f.blockKey,p=e.getBlockTree(d).getIn([f.decoratorKey,"leaves",f.leafKey]),h=c.get("start"),g=p.get("start"),y=c?h+n:null,m=p?g+a:null;if(s.getAnchorKey()===l&&s.getAnchorOffset()===y&&s.getFocusKey()===d&&s.getFocusOffset()===m)return s;var v=!1;if(l===d){var b=c.get("end"),_=p.get("end");v=g===h&&_===b?a<n:g<h}else v=e.getCurrentContent().getBlockMap().keySeq().skipUntil(function(e){return e===l||e===d}).first()===d;return s.merge({anchorKey:l,anchorOffset:y,focusKey:d,focusOffset:m,isBackward:v})}},function(e,t,n){"use strict";var r=n(109);e.exports=function(e){var t=e.getSelection();return t.isCollapsed()?null:r(e.getCurrentContent(),t)}},function(e,t,n){"use strict";var r=n(36),o=n(5);var i=r.isBrowser("Chrome")?function(e){for(var t=e.cloneRange(),n=[],r=e.endContainer;null!=r;r=r.parentNode){var i=r===e.commonAncestorContainer;i?t.setStart(e.startContainer,e.startOffset):t.setStart(t.endContainer,0);var a,s=Array.from(t.getClientRects());if(n.push(s),i)return n.reverse(),(a=[]).concat.apply(a,n);t.setEndBefore(r)}o(!1)}:function(e){return Array.from(e.getClientRects())};e.exports=i},function(e,t,n){"use strict";var r=n(193),o=n(326),i=n(328),a=n(5),s=n(31);function u(e,t,n){var i=t,u=r(i);if(null!=u||e&&(e===i||e.firstChild===i)||a(!1),e===i&&((i=i.firstChild)instanceof Element&&"true"===i.getAttribute("data-contents")||a(!1),n>0&&(n=i.childNodes.length)),0===n){var c=null;if(null!=u)c=u;else{var f=function(e){for(;e.firstChild&&(e.firstChild instanceof Element&&"true"===e.firstChild.getAttribute("data-blocks")||o(e.firstChild));)e=e.firstChild;return e}(i);c=s(o(f))}return{key:c,offset:0}}var d=i.childNodes[n-1],p=null,h=null;if(o(d)){var g=function(e){for(;e.lastChild&&(e.lastChild instanceof Element&&"true"===e.lastChild.getAttribute("data-blocks")||o(e.lastChild));)e=e.lastChild;return e}(d);p=s(o(g)),h=l(g)}else p=s(u),h=l(d);return{key:p,offset:h}}function l(e){var t=e.textContent;return"\n"===t?0:t.length}e.exports=function(e,t,n,o,a,l){var c=n.nodeType===Node.TEXT_NODE,f=a.nodeType===Node.TEXT_NODE;if(c&&f)return{selectionState:i(e,s(r(n)),o,s(r(a)),l),needsRecovery:!1};var d=null,p=null,h=!0;return c?(d={key:s(r(n)),offset:o},p=u(t,a,l)):f?(p={key:s(r(a)),offset:l},d=u(t,n,o)):(d=u(t,n,o),p=u(t,a,l),n===a&&o===l&&(h=!!n.firstChild&&"BR"!==n.firstChild.nodeName)),{selectionState:i(e,d.key,d.offset,p.key,p.offset),needsRecovery:h}}},function(e,t,n){"use strict";var r="\\s|(?![_])"+n(833).getPunctuation(),o=new RegExp("^(?:"+r+")*(?:['‘’]|(?!"+r+").)*(?:(?!"+r+").)"),i=new RegExp("(?:(?!"+r+").)(?:['‘’]|(?!"+r+").)*(?:"+r+")*$");function a(e,t){var n=t?i.exec(e):o.exec(e);return n?n[0]:e}var s={getBackward:function(e){return a(e,!0)},getForward:function(e){return a(e,!1)}};e.exports=s},function(e,t,n){"use strict";e.exports=function(e,t){var n,r=e.getSelection(),o=r.getStartKey(),i=r.getStartOffset(),a=e.getCurrentContent(),s=o;return t>a.getBlockForKey(o).getText().length-i?(s=a.getKeyAfter(o),n=0):n=i+t,r.merge({focusKey:s,focusOffset:n})}},function(e,t,n){"use strict";var r,o=i||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(26);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s=n(25),u=n(56),l=n(27),c=n(187),f=n(110),d=n(46),p=n(4),h=n(4).Set,g=n(844),y=n(72),m=n(40),v=n(335),b=n(5),_=n(185),x=d.draft_tree_data_support,w=p.List,S=p.OrderedSet,C=new RegExp("\r","g"),k=new RegExp("\n","g"),O=new RegExp(" ","g"),E=new RegExp(" ?","g"),T=new RegExp("​?","g"),M=["bold","bolder","500","600","700","800","900"],P=["light","lighter","100","200","300","400"],j={b:"BOLD",code:"CODE",del:"STRIKETHROUGH",em:"ITALIC",i:"ITALIC",s:"STRIKETHROUGH",strike:"STRIKETHROUGH",strong:"BOLD",u:"UNDERLINE"},A=(a(r={},y("public/DraftStyleDefault/depth0"),0),a(r,y("public/DraftStyleDefault/depth1"),1),a(r,y("public/DraftStyleDefault/depth2"),2),a(r,y("public/DraftStyleDefault/depth3"),3),a(r,y("public/DraftStyleDefault/depth4"),4),r),I=["className","href","rel","target","title"],R=["alt","className","height","src","width"],D=void 0,N={text:"",inlines:[],entities:[],blocks:[]},B={children:w(),depth:0,key:"",type:""},L=function(e,t){return"li"===e?"ol"===t?"ordered-list-item":"unordered-list-item":null},F=function(e,t,n){var r=n.filter(function(t){return t.element===e||t.wrapper===e||t.aliasedElements&&t.aliasedElements.some(function(t){return t===e})}).keySeq().toSet().toArray().sort();switch(r.length){case 0:return"unstyled";case 1:return r[0];default:return function(e,t,n){for(var r=0;r<n.length;r++){var o=n[r](e,t);if(o)return o}return null}(e,t,[L])||"unstyled"}},z=function(e,t,n){var r=e.text.slice(-1),o=t.text.slice(0,1);if("\r"!==r||"\r"!==o||n||(e.text=e.text.slice(0,-1),e.inlines.pop(),e.entities.pop(),e.blocks.pop()),"\r"===r){if(" "===t.text||"\n"===t.text)return e;" "!==o&&"\n"!==o||(t.text=t.text.slice(1),t.inlines.shift(),t.entities.shift())}return{text:e.text+t.text,inlines:e.inlines.concat(t.inlines),entities:e.entities.concat(t.entities),blocks:e.blocks.concat(t.blocks)}},q=function(e){e instanceof HTMLAnchorElement||b(!1);var t=e.protocol;return"http:"===t||"https:"===t||"mailto:"===t},K=function(){return o({},N,{text:"\n",inlines:[S()],entities:new Array(1)})},W=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return{text:"\r",inlines:[S()],entities:new Array(1),blocks:[function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return o({},B,e)}({parent:n,key:m(),type:e,depth:Math.max(0,Math.min(4,t))})]}},U=function e(t,n,r,i,a,s,u,l,c,d){var p=D,h=n.nodeName.toLowerCase(),y=t,m="unstyled",v=!1,b=a&&F(a,i,l),_=o({},N),w=void 0;if("#text"===h){var C=n.textContent,O=C.trim();if(i&&""===O&&n.parentElement){var E=n.parentElement.nodeName.toLowerCase();if("ol"===E||"ul"===E)return{chunk:o({},N),entityMap:t}}return""===O&&"pre"!==a?{chunk:function(e){var t=new Array(1);return e&&(t[0]=e),o({},N,{text:" ",inlines:[S()],entities:t})}(c),entityMap:t}:("pre"!==a&&(C=C.replace(k," ")),D=h,{chunk:{text:C,inlines:Array(C.length).fill(r),entities:Array(C.length).fill(c),blocks:[]},entityMap:t})}if(D=h,"br"===h)return"br"!==p||a&&"unstyled"!==b?{chunk:K(),entityMap:t}:{chunk:W("unstyled",u,d),entityMap:t};if("img"===h&&n instanceof HTMLImageElement&&n.attributes.getNamedItem("src")&&n.attributes.getNamedItem("src").value){var T=n,B={};R.forEach(function(e){var t=T.getAttribute(e);t&&(B[e]=t)}),n.textContent="📷",c=f.__create("IMAGE","MUTABLE",B||{})}r=function(e,t,n){var r=j[e];if(r)n=n.add(r).toOrderedSet();else if(t instanceof HTMLElement){var o=t;n=n.withMutations(function(e){var t=o.style.fontWeight,n=o.style.fontStyle,r=o.style.textDecoration;M.indexOf(t)>=0?e.add("BOLD"):P.indexOf(t)>=0&&e.remove("BOLD"),"italic"===n?e.add("ITALIC"):"normal"===n&&e.remove("ITALIC"),"underline"===r&&e.add("UNDERLINE"),"line-through"===r&&e.add("STRIKETHROUGH"),"none"===r&&(e.remove("UNDERLINE"),e.remove("STRIKETHROUGH"))}).toOrderedSet()}return n}(h,n,r),"ul"!==h&&"ol"!==h||(i&&(u+=1),i=h),!x&&"li"===h&&n instanceof HTMLElement&&(u=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return Object.keys(A).some(function(n){e.classList.contains(n)&&(t=A[n])}),t}(n,u));var L=F(h,i,l),U=i&&"li"===a&&"li"===h,$=(!a||x)&&-1!==s.indexOf(h);(U||$)&&(w=(_=W(L,u,d)).blocks[0].key,a=h,v=!x),U&&(m="ul"===i?"unordered-list-item":"ordered-list-item");var H=n.firstChild;null!=H&&(h=H.nodeName.toLowerCase());for(var V=null;H;){H instanceof HTMLAnchorElement&&H.href&&q(H)?function(){var e=H,t={};I.forEach(function(n){var r=e.getAttribute(n);r&&(t[n]=r)}),t.url=new g(e.href).toString(),V=f.__create("LINK","MUTABLE",t||{})}():V=void 0;var G=e(y,H,r,i,a,s,u,l,V||c,x?w:null),Y=G.chunk;y=G.entityMap,_=z(_,Y,x);var X=H.nextSibling;!d&&X&&s.indexOf(h)>=0&&a&&(_=z(_,K())),X&&(h=X.nodeName.toLowerCase()),H=X}return v&&(_=z(_,W(m,u,d))),{chunk:_,entityMap:y}},$=function(e,t,n,r){e=e.trim().replace(C,"").replace(O," ").replace(E,"").replace(T,"");var i=function(e){var t=e.get("unstyled").element,n=h([]);return e.forEach(function(e){e.aliasedElements&&e.aliasedElements.forEach(function(e){n=n.add(e)}),n=n.add(e.element)}),n.filter(function(e){return e&&e!==t}).toArray().sort()}(n),a=t(e);if(!a)return null;D=null;var s=function(e,t){return t.some(function(t){return-1!==e.indexOf("<"+t)})}(e,i)?i:["div"],u=U(r,a,S(),"ul",null,s,-1,n),l=u.chunk,c=u.entityMap;return 0===l.text.indexOf("\r")&&(l={text:l.text.slice(1),inlines:l.inlines.slice(1),entities:l.entities.slice(1),blocks:l.blocks}),"\r"===l.text.slice(-1)&&(l.text=l.text.slice(0,-1),l.inlines=l.inlines.slice(0,-1),l.entities=l.entities.slice(0,-1),l.blocks.pop()),0===l.blocks.length&&l.blocks.push(o({},N,{type:"unstyled",depth:0})),l.text.split("\r").length===l.blocks.length+1&&l.blocks.unshift({type:"unstyled",depth:0}),{chunk:l,entityMap:c}};e.exports=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:v,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:c,r=$(e,t,n,f);if(null==r)return null;var o=r.chunk,i=r.entityMap;return{contentBlocks:function(e){if(!e||!e.text||!Array.isArray(e.blocks))return null;var t=0,n=e.blocks,r=e.inlines,o=e.entities,i=x?l:u;return e.text.split("\r").reduce(function(e,a,u){a=_(a);var c=n[u],f=t+a.length,d=r.slice(t,f),p=o.slice(t,f),h=w(d.map(function(e,t){var n={style:e,entity:null};return p[t]&&(n.entity=p[t]),s.create(n)}));t=f+1;var g=c.depth,y=c.type,v=c.parent,b=c.key||m(),x=null;if(v){var S=e.cacheRef[v],C=e.contentBlocks[S];if(C.getChildKeys().isEmpty()&&C.getText()){var k=C.getCharacterList(),O=C.getText();x=m();var E=new l({key:x,text:O,characterList:k,parent:v,nextSibling:b});e.contentBlocks.push(E),C=C.withMutations(function(e){e.set("characterList",w()).set("text","").set("children",C.children.push(E.getKey()))})}e.contentBlocks[S]=C.set("children",C.children.push(b))}var T=new i({key:b,parent:v,type:y,depth:g,text:a,characterList:h,prevSibling:x||(0===u||n[u-1].parent!==v?null:n[u-1].key),nextSibling:u===n.length-1||n[u+1].parent!==v?null:n[u+1].key});return e.contentBlocks.push(T),e.cacheRef[T.key]=u,e},{cacheRef:{},contentBlocks:[]}).contentBlocks}(o),entityMap:i}}},function(e,t,n){"use strict";var r=n(36),o=n(5),i=r.isBrowser("IE <= 9");e.exports=function(e){var t,n=null;return!i&&document.implementation&&document.implementation.createHTMLDocument&&((t=document.implementation.createHTMLDocument("foo")).documentElement||o(!1),t.documentElement.innerHTML=e,n=t.getElementsByTagName("body")[0]),n}},function(e,t,n){"use strict";var r=n(22),o=n(6),i=(n(71),n(845)),a=n(31),s={currentBlockContainsLink:function(e){var t=e.getSelection(),n=e.getCurrentContent(),r=n.getEntityMap();return n.getBlockForKey(t.getAnchorKey()).getCharacterList().slice(t.getStartOffset(),t.getEndOffset()).some(function(e){var t=e.getEntity();return!!t&&"LINK"===r.__get(t).getType()})},getCurrentBlockType:function(e){var t=e.getSelection();return e.getCurrentContent().getBlockForKey(t.getStartKey()).getType()},getDataObjectForLinkURL:function(e){return{url:e.toString()}},handleKeyCommand:function(e,t){switch(t){case"bold":return s.toggleInlineStyle(e,"BOLD");case"italic":return s.toggleInlineStyle(e,"ITALIC");case"underline":return s.toggleInlineStyle(e,"UNDERLINE");case"code":return s.toggleCode(e);case"backspace":case"backspace-word":case"backspace-to-start-of-line":return s.onBackspace(e);case"delete":case"delete-word":case"delete-to-end-of-block":return s.onDelete(e);default:return null}},insertSoftNewline:function(e){var t=r.insertText(e.getCurrentContent(),e.getSelection(),"\n",e.getCurrentInlineStyle(),null),n=o.push(e,t,"insert-characters");return o.forceSelection(n,t.getSelectionAfter())},onBackspace:function(e){var t=e.getSelection();if(!t.isCollapsed()||t.getAnchorOffset()||t.getFocusOffset())return null;var n=e.getCurrentContent(),r=t.getStartKey(),i=n.getBlockBefore(r);if(i&&"atomic"===i.getType()){var a=n.getBlockMap().delete(i.getKey()),u=n.merge({blockMap:a,selectionAfter:t});if(u!==n)return o.push(e,u,"remove-range")}var l=s.tryToRemoveBlockStyle(e);return l?o.push(e,l,"change-block-type"):null},onDelete:function(e){var t=e.getSelection();if(!t.isCollapsed())return null;var n=e.getCurrentContent(),i=t.getStartKey(),a=n.getBlockForKey(i).getLength();if(t.getStartOffset()<a)return null;var s=n.getBlockAfter(i);if(!s||"atomic"!==s.getType())return null;var u=t.merge({focusKey:s.getKey(),focusOffset:s.getLength()}),l=r.removeRange(n,u,"forward");return l!==n?o.push(e,l,"remove-range"):null},onTab:function(e,t,n){var r=t.getSelection(),a=r.getAnchorKey();if(a!==r.getFocusKey())return t;var s=t.getCurrentContent(),u=s.getBlockForKey(a),l=u.getType();if("unordered-list-item"!==l&&"ordered-list-item"!==l)return t;e.preventDefault();var c=s.getBlockBefore(a);if(!c)return t;var f=c.getType();if("unordered-list-item"!==f&&"ordered-list-item"!==f)return t;var d=u.getDepth();if(!e.shiftKey&&d===n)return t;n=Math.min(c.getDepth()+1,n);var p=i(s,r,e.shiftKey?-1:1,n);return o.push(t,p,"adjust-depth")},toggleBlockType:function(e,t){var n=e.getSelection(),i=n.getStartKey(),s=n.getEndKey(),u=e.getCurrentContent(),l=n;if(i!==s&&0===n.getEndOffset()){var c=a(u.getBlockBefore(s));s=c.getKey(),l=l.merge({anchorKey:i,anchorOffset:n.getStartOffset(),focusKey:s,focusOffset:c.getLength(),isBackward:!1})}if(u.getBlockMap().skipWhile(function(e,t){return t!==i}).reverse().skipWhile(function(e,t){return t!==s}).some(function(e){return"atomic"===e.getType()}))return e;var f=u.getBlockForKey(i).getType()===t?"unstyled":t;return o.push(e,r.setBlockType(u,l,f),"change-block-type")},toggleCode:function(e){var t=e.getSelection(),n=t.getAnchorKey(),r=t.getFocusKey();return t.isCollapsed()||n!==r?s.toggleBlockType(e,"code-block"):s.toggleInlineStyle(e,"CODE")},toggleInlineStyle:function(e,t){var n=e.getSelection(),i=e.getCurrentInlineStyle();if(n.isCollapsed())return o.setInlineStyleOverride(e,i.has(t)?i.remove(t):i.add(t));var a,s=e.getCurrentContent();return a=i.has(t)?r.removeInlineStyle(s,n,t):r.applyInlineStyle(s,n,t),o.push(e,a,"change-inline-style")},toggleLink:function(e,t,n){var i=r.applyEntity(e.getCurrentContent(),t,n);return o.push(e,i,"apply-entity")},tryToRemoveBlockStyle:function(e){var t=e.getSelection(),n=t.getAnchorOffset();if(t.isCollapsed()&&0===n){var o=t.getAnchorKey(),i=e.getCurrentContent(),a=i.getBlockForKey(o),s=i.getFirstBlock();if(a.getLength()>0&&a!==s)return null;var u=a.getType(),l=i.getBlockBefore(o);if("code-block"===u&&l&&"code-block"===l.getType()&&0!==l.getLength())return null;if("unstyled"!==u)return r.setBlockType(i,t,"unstyled")}return null}};e.exports=s},function(e,t,n){"use strict";var r=n(194),o=n(188),i=n(36),a=i.isPlatform("Mac OS X"),s=i.isPlatform("Windows"),u=a&&i.isBrowser("Firefox < 29"),l=r.hasCommandModifier,c=r.isCtrlKeyCommand;function f(e){return a&&e.altKey||c(e)}e.exports=function(e){switch(e.keyCode){case 66:return l(e)?"bold":null;case 68:return c(e)?"delete":null;case 72:return c(e)?"backspace":null;case 73:return l(e)?"italic":null;case 74:return l(e)?"code":null;case 75:return!s&&c(e)?"secondary-cut":null;case 77:case 79:return c(e)?"split-block":null;case 84:return a&&c(e)?"transpose-characters":null;case 85:return l(e)?"underline":null;case 87:return a&&c(e)?"backspace-word":null;case 89:return c(e)?s?"redo":"secondary-paste":null;case 90:return function(e){return l(e)?e.shiftKey?"redo":"undo":null}(e)||null;case o.RETURN:return"split-block";case o.DELETE:return function(e){return s&&e.shiftKey?null:f(e)?"delete-word":"delete"}(e);case o.BACKSPACE:return function(e){return l(e)&&a?"backspace-to-start-of-line":f(e)?"backspace-word":"backspace"}(e);case o.LEFT:return u&&l(e)?"move-selection-to-start-of-block":null;case o.RIGHT:return u&&l(e)?"move-selection-to-end-of-block":null;default:return null}}},function(e,t,n){"use strict";var r={stringify:function(e){return"_"+String(e)},unstringify:function(e){return e.slice(1)}};e.exports=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0),a=function(e){return e&&e.__esModule?e:{default:e}}(i);t.default=function(e,t){var n,s;return s=n=function(n){function s(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(s.__proto__||Object.getPrototypeOf(s)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(s,i.Component),o(s,[{key:"render",value:function(){return a.default.createElement(e,r({},this.props,t))}}]),s}(),n.displayName="Decorated("+function(e){return e.displayName||e.name||"Component"}(e)+")",s}},function(e,t,n){e.exports=n(874)()},function(e,t,n){(function(t){var n=1/0,r="[object Symbol]",o=/[\\^$.*+?()[\]{}|]/g,i=RegExp(o.source),a="object"==typeof t&&t&&t.Object===Object&&t,s="object"==typeof self&&self&&self.Object===Object&&self,u=a||s||Function("return this")(),l=Object.prototype.toString,c=u.Symbol,f=c?c.prototype:void 0,d=f?f.toString:void 0;function p(e){if("string"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&l.call(e)==r}(e))return d?d.call(e):"";var t=e+"";return"0"==t&&1/e==-n?"-0":t}e.exports=function(e){return(e=function(e){return null==e?"":p(e)}(e))&&i.test(e)?e.replace(o,"\\$&"):e}}).call(this,n(18))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(878));t.default=function(e,t,n){var o=t.getAnchorKey(),i=t.getAnchorOffset()-n.length,a=e.getCurrentContent().getBlockForKey(o).getText();return(0,r.default)(a,i)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default=function(e){return"@"===e?"mention":e+"mention"}},function(e,t,n){var r=n(345),o=n(894),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=[];for(var n in Object(e))i.call(e,n)&&"constructor"!=n&&t.push(n);return t}},function(e,t){var n=Object.prototype;e.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||n)}},function(e,t,n){var r=n(896),o=n(196),i=n(901),a=n(902),s=n(903),u=n(54),l=n(348),c=l(r),f=l(o),d=l(i),p=l(a),h=l(s),g=u;(r&&"[object DataView]"!=g(new r(new ArrayBuffer(1)))||o&&"[object Map]"!=g(new o)||i&&"[object Promise]"!=g(i.resolve())||a&&"[object Set]"!=g(new a)||s&&"[object WeakMap]"!=g(new s))&&(g=function(e){var t=u(e),n="[object Object]"==t?e.constructor:void 0,r=n?l(n):"";if(r)switch(r){case c:return"[object DataView]";case f:return"[object Map]";case d:return"[object Promise]";case p:return"[object Set]";case h:return"[object WeakMap]"}return t}),e.exports=g},function(e,t,n){var r=n(54),o=n(70),i="[object AsyncFunction]",a="[object Function]",s="[object GeneratorFunction]",u="[object Proxy]";e.exports=function(e){if(!o(e))return!1;var t=r(e);return t==a||t==s||t==i||t==u}},function(e,t){var n=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return n.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,i=[];++n<r;){var a=e[n];t(a,n,e)&&(i[o++]=a)}return i}},function(e,t){var n=9007199254740991,r=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var o=typeof e;return!!(t=null==t?n:t)&&("number"==o||"symbol"!=o&&r.test(e))&&e>-1&&e%1==0&&e<t}},function(e,t,n){var r=n(114),o=n(924),i=n(925),a=n(926),s=n(927),u=n(928);function l(e){var t=this.__data__=new r(e);this.size=t.size}l.prototype.clear=o,l.prototype.delete=i,l.prototype.get=a,l.prototype.has=s,l.prototype.set=u,e.exports=l},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t,n){var r=n(941),o=n(55);e.exports=function e(t,n,i,a,s){return t===n||(null==t||null==n||!o(t)&&!o(n)?t!=t&&n!=n:r(t,n,i,a,e,s))}},function(e,t,n){var r=n(942),o=n(945),i=n(946),a=1,s=2;e.exports=function(e,t,n,u,l,c){var f=n&a,d=e.length,p=t.length;if(d!=p&&!(f&&p>d))return!1;var h=c.get(e);if(h&&c.get(t))return h==t;var g=-1,y=!0,m=n&s?new r:void 0;for(c.set(e,t),c.set(t,e);++g<d;){var v=e[g],b=t[g];if(u)var _=f?u(b,v,g,t,e,c):u(v,b,g,e,t,c);if(void 0!==_){if(_)continue;y=!1;break}if(m){if(!o(t,function(e,t){if(!i(m,t)&&(v===e||l(v,e,n,u,c)))return m.push(t)})){y=!1;break}}else if(v!==b&&!l(v,b,n,u,c)){y=!1;break}}return c.delete(e),c.delete(t),y}},function(e,t,n){var r=n(70);e.exports=function(e){return e==e&&!r(e)}},function(e,t){e.exports=function(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}},function(e,t,n){var r=n(358);e.exports=function(e,t,n){var o=null==e?void 0:r(e,t);return void 0===o?n:o}},function(e,t,n){var r=n(359),o=n(118);e.exports=function(e,t){for(var n=0,i=(t=r(t,e)).length;null!=e&&n<i;)e=e[o(t[n++])];return n&&n==i?e:void 0}},function(e,t,n){var r=n(30),o=n(202),i=n(959),a=n(178);e.exports=function(e,t){return r(e)?e:o(e,t)?[e]:i(a(e))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.renderRatingToColor=d,t.default=p;var r=n(10),o=c(n(0)),i=c(n(1)),a=c(n(119)),s=c(n(989)),u=n(3),l=c(n(361));function c(e){return e&&e.__esModule?e:{default:e}}const f=i.default.ul.withConfig({displayName:"AnalysisList__AnalysisListBase",componentId:"sc-1ozeatw-0"})(["margin:8px 0;padding:0;list-style:none;"]);function d(e){switch(e){case"good":return u.colors.$color_good;case"OK":return u.colors.$color_ok;case"bad":return u.colors.$color_bad;default:return u.colors.$color_score_icon}}function p({results:e,marksButtonActivatedResult:t,marksButtonStatus:n,marksButtonClassName:i,onMarksButtonClick:a}){return o.default.createElement(f,{role:"list"},e.map(e=>{const s=d(e.rating),u=e.markerId===t;let c="";return c="disabled"===n?(0,r.__)("Marks are disabled in current view","yoast-components"):u?(0,r.__)("Remove highlight from the text","yoast-components"):(0,r.__)("Highlight this result in the text","yoast-components"),o.default.createElement(l.default,{key:e.id,text:e.text,bulletColor:s,hasMarksButton:e.hasMarks,ariaLabel:c,pressed:u,buttonId:e.id,onButtonClick:()=>a(e.id,e.marker),marksButtonClassName:i,marksButtonStatus:n})}))}p.propTypes={results:a.default.array.isRequired,marksButtonActivatedResult:a.default.string,marksButtonStatus:a.default.string,marksButtonClassName:a.default.string,onMarksButtonClick:a.default.func},p.defaultProps={marksButtonActivatedResult:"",marksButtonStatus:"enabled",marksButtonClassName:"",onMarksButtonClick:s.default}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AnalysisResult=void 0;var r=s(n(0)),o=s(n(119)),i=s(n(1)),a=n(8);function s(e){return e&&e.__esModule?e:{default:e}}const u=i.default.li.withConfig({displayName:"AnalysisResult__AnalysisResultBase",componentId:"pf0ln6-0"})(["min-height:24px;padding:0;display:flex;align-items:flex-start;"]),l=(0,i.default)(a.SvgIcon).withConfig({displayName:"AnalysisResult__ScoreIcon",componentId:"pf0ln6-1"})(["margin:3px 11px 0 0;"]),c=i.default.p.withConfig({displayName:"AnalysisResult__AnalysisResultText",componentId:"pf0ln6-2"})(["margin:0 16px 0 0;flex:1 1 auto;"]),f=t.AnalysisResult=(e=>r.default.createElement(u,null,r.default.createElement(l,{icon:"circle",color:e.bulletColor,size:"13px"}),r.default.createElement(c,{dangerouslySetInnerHTML:{__html:e.text}}),e.hasMarksButton&&!function(e){return"hidden"===e.marksButtonStatus}(e)&&r.default.createElement(a.IconButtonToggle,{marksButtonStatus:e.marksButtonStatus,className:e.marksButtonClassName,onClick:e.onButtonClick,id:e.buttonId,icon:"eye",pressed:e.pressed,ariaLabel:e.ariaLabel})));f.propTypes={text:o.default.string.isRequired,bulletColor:o.default.string.isRequired,hasMarksButton:o.default.bool.isRequired,buttonId:o.default.string.isRequired,pressed:o.default.bool.isRequired,ariaLabel:o.default.string.isRequired,onButtonClick:o.default.func.isRequired,marksButtonStatus:o.default.string,marksButtonClassName:o.default.string},f.defaultProps={marksButtonStatus:"enabled",marksButtonClassName:""},t.default=f},function(e,t,n){var r=n(363);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},function(e,t,n){var r=n(59),o=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=o},function(e,t,n){var r=n(74),o=n(47),i="[object AsyncFunction]",a="[object Function]",s="[object GeneratorFunction]",u="[object Proxy]";e.exports=function(e){if(!o(e))return!1;var t=r(e);return t==a||t==s||t==i||t==u}},function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(this,n(18))},function(e,t){var n=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return n.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},function(e,t,n){var r=n(1009),o=Math.max;e.exports=function(e,t,n){return t=o(void 0===t?e.length-1:t,0),function(){for(var i=arguments,a=-1,s=o(i.length-t,0),u=Array(s);++a<s;)u[a]=i[t+a];a=-1;for(var l=Array(t+1);++a<t;)l[a]=i[a];return l[t]=n(u),r(e,this,l)}}},function(e,t,n){var r=n(1010),o=n(1012)(r);e.exports=o},function(e,t,n){var r=n(1014),o=n(208),i=n(38),a=n(209),s=n(207),u=n(370),l=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=i(e),c=!n&&o(e),f=!n&&!c&&a(e),d=!n&&!c&&!f&&u(e),p=n||c||f||d,h=p?r(e.length,String):[],g=h.length;for(var y in e)!t&&!l.call(e,y)||p&&("length"==y||f&&("offset"==y||"parent"==y)||d&&("buffer"==y||"byteLength"==y||"byteOffset"==y)||s(y,g))||h.push(y);return h}},function(e,t,n){var r=n(1017),o=n(210),i=n(211),a=i&&i.isTypedArray,s=a?o(a):r;e.exports=s},function(e,t){e.exports=function(e,t){return function(n){return e(t(n))}}},function(e,t,n){var r=n(1022),o=n(1023),i=n(1077),a=Math.max;e.exports=function(e,t,n){var s=null==e?0:e.length;if(!s)return-1;var u=null==n?0:i(n);return u<0&&(u=a(s+u,0)),r(e,o(t,3),u)}},function(e,t,n){var r=n(1048),o=n(48);e.exports=function e(t,n,i,a,s){return t===n||(null==t||null==n||!o(t)&&!o(n)?t!=t&&n!=n:r(t,n,i,a,e,s))}},function(e,t,n){var r=n(1049),o=n(1052),i=n(1053),a=1,s=2;e.exports=function(e,t,n,u,l,c){var f=n&a,d=e.length,p=t.length;if(d!=p&&!(f&&p>d))return!1;var h=c.get(e);if(h&&c.get(t))return h==t;var g=-1,y=!0,m=n&s?new r:void 0;for(c.set(e,t),c.set(t,e);++g<d;){var v=e[g],b=t[g];if(u)var _=f?u(b,v,g,t,e,c):u(v,b,g,e,t,c);if(void 0!==_){if(_)continue;y=!1;break}if(m){if(!o(t,function(e,t){if(!i(m,t)&&(v===e||l(v,e,n,u,c)))return m.push(t)})){y=!1;break}}else if(v!==b&&!l(v,b,n,u,c)){y=!1;break}}return c.delete(e),c.delete(t),y}},function(e,t,n){var r=n(37).Uint8Array;e.exports=r},function(e,t,n){var r=n(377),o=n(217),i=n(89);e.exports=function(e){return r(e,i,o)}},function(e,t,n){var r=n(216),o=n(38);e.exports=function(e,t,n){var i=t(e);return o(e)?i:r(i,n(e))}},function(e,t){e.exports=function(){return[]}},function(e,t,n){var r=n(47);e.exports=function(e){return e==e&&!r(e)}},function(e,t){e.exports=function(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}},function(e,t,n){var r=n(369),o=n(1087),i=n(121);e.exports=function(e){return i(e)?r(e,!0):o(e)}},function(e,t,n){var r=n(216),o=n(220),i=n(217),a=n(378),s=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,i(e)),e=o(e);return t}:a;e.exports=s},function(e,t,n){var r=n(377),o=n(383),i=n(382);e.exports=function(e){return r(e,i,o)}},function(e,t){e.exports=window.yoast.redux},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setProminentWords=function(e){return{type:r,prominentWords:e}};const r=t.SET_PROMINENT_WORDS="INSIGHTS_SET_PROMINENT_WORDS"},function(e,t,n){"use strict";window.yoast=window.yoast||{},window.yoast.styleGuide=n(3),window.yoast.helpers=n(7),window.yoast.componentsNew=n(8),window.yoast.configurationWizard=n(270),window.yoast.searchMetadataPreviews=n(298),window.yoast.analysisReport=n(88),window.yoast.components=n(992)},function(e){e.exports={$palette_white:"#fff",$palette_grey_ultra_light:"#f7f7f7",$palette_grey_light:"#f1f1f1",$palette_grey_medium_light:"#e2e4e7",$palette_grey:"#ddd",$palette_grey_medium:"#ccc",$palette_grey_disabled:"#a0a5aa",$palette_grey_medium_dark:"#888",$palette_grey_text_light:"#767676",$palette_grey_text:"#616161",$palette_grey_dark:"#555",$palette_black:"#000",$palette_purple:"#5d237a",$palette_purple_dark:"#6c2548",$palette_pink:"#d73763",$palette_pink_light:"#e1bee7",$palette_pink_dark:"#a4286a",$palette_blue:"#0066cd",$palette_blue_light:"#a9a9ce",$palette_blue_medium:"#1e8cbe",$palette_blue_link:"#0073aa",$palette_blue_focus:"#5b9dd9",$palette_yoast_focus:"#007fff",$palette_blue_dark:"#084a67",$palette_green:"#77b227",$palette_green_light:"#7ad03a",$palette_green_medium_light:"#64a60a",$palette_green_medium:"#008a00",$palette_green_blue:"#009288",$palette_orange:"#dc5c04",$palette_orange_light:"#ee7c1b",$palette_red:"#dc3232",$palette_red_light:"#f9bdbd",$palette_yellow:"#ffeb3b",$palette_yellow_score:"#f5c819",$palette_button_upsell:"#fec228",$palette_button_upsell_hover:"#f2ae01",$palette_link_text:"#004973",$palette_error_background:"#f9dcdc",$palette_error_text:"#8f1919",$palette_error_emphasis:"#dc3232",$palette_info_background:"#cce5ff",$palette_info_text:"#00468f",$palette_info_emphasis:"#007dff",$palette_success_background:"#e2f2cc",$palette_success_text:"#395315",$palette_success_emphasis:"#6ea029",$palette_warning_background:"#fff3cd",$palette_warning_text:"#674e00",$palette_warning_emphasis:"#ffc201",$color_bad:"#dc3232",$color_ok:"#ee7c1b",$color_good:"#7ad03a",$color_noindex:"#1e8cbe",$color_score_icon:"#888",$color_white:"#fff",$color_black:"#000",$color_green:"#77b227",$color_green_medium:"#008a00",$color_green_blue:"#009288",$color_grey:"#ddd",$color_grey_dark:"#555",$color_purple:"#5d237a",$color_purple_dark:"#6c2548",$color_pink:"#d73763",$color_pink_light:"#e1bee7",$color_pink_dark:"#a4286a",$color_blue:"#0066cd",$color_blue_light:"#a9a9ce",$color_blue_dark:"#084a67",$color_red:"#dc3232",$color_border_light:"#f7f7f7",$color_border_gutenberg:"#e2e4e7",$color_border:"#ccc",$color_input_border:"#ddd",$color_help_text:"#767676",$color_upsell_text:"#767676",$color_background_light:"#f7f7f7",$color_button:"#f7f7f7",$color_button_text:"#555",$color_button_border:"#ccc",$color_button_hover:"#fff",$color_button_border_hover:"#888",$color_button_text_hover:"#000",$color_button_border_active:"#000",$color_button_upsell:"#fec228",$color_button_upsell_hover:"#f2ae01",$color_headings:"#555",$color_marker_inactive:"#555",$color_marker_active:"#fff",$color_marker_disabled:"#a0a5aa",$color_error:"#dc3232",$color_orange:"#dc5c04",$color_orange_hover:"#c35204",$color_grey_hover:"#cecece",$color_pink_hover:"#cc2956",$color_grey_cta:"#ddd",$color_grey_line:"#ddd",$color_grey_quote:"#616161",$color_grey_text:"#616161",$color_grey_text_light:"#767676",$color_snippet_focus:"#1e8cbe",$color_snippet_hover:"#ccc",$color_snippet_active:"#555",$color_blue_link:"#0073aa",$color_blue_focus:"#5b9dd9",$color_blue_focus_shadow:"#1e8cbe",$color_yoast_focus:"#007fff",$color_yoast_focus_outer:"rgba(0,127,255,0.25)",$color_grey_medium_dark:"#888",$color_green_medium_light:"#64a60a",$color_grey_disabled:"#a0a5aa",$color_grey_medium:"#ccc",$color_grey_light:"#f1f1f1",$color_yellow:"#ffeb3b",$color_yellow_score:"#f5c819",$color_error_message:"#f9bdbd",$color_alert_link_text:"#004973",$color_alert_error_text:"#8f1919",$color_alert_error_background:"#f9dcdc",$color_alert_info_text:"#00468f",$color_alert_info_background:"#cce5ff",$color_alert_success_text:"#395315",$color_alert_success_background:"#e2f2cc",$color_alert_warning_text:"#674e00",$color_alert_warning_background:"#fff3cd"}},function(e){e.exports={mobile:"768px",tablet:"1224px"}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.rgba=function(e,t){return"rgba( "+function(e){if("string"!=typeof e)throw new Error("Please pass a string representation of a color in hex notation.");if(e.match(/^#[a-fA-F0-9]{6}$/))return parseInt(`${e[1]}${e[2]}`,16)+", "+parseInt(`${e[3]}${e[4]}`,16)+", "+parseInt(`${e[5]}${e[6]}`,16);if(e.match(/^#[a-fA-F0-9]{3}$/))return parseInt(`${e[1]}${e[1]}`,16)+", "+parseInt(`${e[2]}${e[2]}`,16)+", "+parseInt(` ${e[3]}${e[3]}`,16);throw new Error("Couldn't parse the color string. Please provide the color as a string in hex notation.")}(e)+", "+t+" )"}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.makeOutboundLink=void 0;var r=s(n(0)),o=s(n(222)),i=n(10),a=n(394);function s(e){return e&&e.__esModule?e:{default:e}}t.makeOutboundLink=((e="a")=>{class t extends r.default.Component{constructor(e){super(e),this.isYoastLink=this.isYoastLink.bind(this)}isYoastLink(e){return/yoast\.com|yoast\.test|yoa\.st/.test(e)}render(){if(!this.props.href)return null;const t=this.isYoastLink(this.props.href),n=Object.assign({},this.props,{target:"_blank",rel:t?this.props.rel:"noopener"});return r.default.createElement(e,n,this.props.children,r.default.createElement(a.A11yNotice,null,(0,i.__)("(Opens in a new browser tab)","yoast-components")))}}return t.propTypes={children:o.default.oneOfType([o.default.node]),href:o.default.string,rel:o.default.string},t.defaultProps={children:null,href:null,rel:null},t})},function(e,t,n){"use strict";var r=n(393);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,a){if(a!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.A11yNotice=void 0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(1));t.A11yNotice=r.default.span.withConfig({displayName:"A11yNotice",componentId:"u1v0gg-0"})(["border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute !important;width:1px;word-wrap:normal !important;transform:translateY(1em);"])},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getDirectionalStyle=function(e,t){return n=>n.theme.isRtl?t:e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(397);const r=(e,t)=>{const n=((e,t)=>{for(const n in t)t.hasOwnProperty(n)&&(void 0!==e[n]&&""!==e[n]||(e[n]=t[n]));return e})(e,{dataType:"json",method:"POST",contentType:"application/json"});return void 0===n.headers&&""===n.headers||((e,t)=>{"jquery"===e&&Object.assign(t,{beforeSend:e=>{jQuery.each(t.headers,(t,n)=>{e.setRequestHeader(t,n)})}}),"fetch"===e&&"json"===t.dataType&&Object.assign(t.headers,{Accepts:"application/json","Content-Type":"application/json"})})(t,n),"json"===n.dataType&&(n.data=JSON.stringify(n.data)),"fetch"===t&&Object.assign(n,{body:n.data}),n};t.default=((e,t)=>{if("undefined"==typeof jQuery||!jQuery||!jQuery.ajax)return((e,t)=>{const n=fetch(e,t);return new Promise((e,t)=>{n.then(n=>200===n.status?e(n.json()):t("Response status is not 200")).catch(()=>t("Wrong request"))})})(e,r(t,"fetch"));return((e,t)=>(Object.assign(t,{url:e}),new Promise((e,n)=>{jQuery.ajax(t).done(t=>{e(t)}).fail(()=>{n("Wrong request")})})))(e,r(t,"jquery"))})},function(e,t){!function(e){"use strict";if(!e.fetch){var t={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(t.arrayBuffer)var n=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],r=function(e){return e&&DataView.prototype.isPrototypeOf(e)},o=ArrayBuffer.isView||function(e){return e&&n.indexOf(Object.prototype.toString.call(e))>-1};c.prototype.append=function(e,t){e=s(e),t=u(t);var n=this.map[e];n||(n=[],this.map[e]=n),n.push(t)},c.prototype.delete=function(e){delete this.map[s(e)]},c.prototype.get=function(e){var t=this.map[s(e)];return t?t[0]:null},c.prototype.getAll=function(e){return this.map[s(e)]||[]},c.prototype.has=function(e){return this.map.hasOwnProperty(s(e))},c.prototype.set=function(e,t){this.map[s(e)]=[u(t)]},c.prototype.forEach=function(e,t){Object.getOwnPropertyNames(this.map).forEach(function(n){this.map[n].forEach(function(r){e.call(t,r,n,this)},this)},this)},c.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),l(e)},c.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),l(e)},c.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),l(e)},t.iterable&&(c.prototype[Symbol.iterator]=c.prototype.entries);var i=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];y.prototype.clone=function(){return new y(this,{body:this._bodyInit})},g.call(y.prototype),g.call(v.prototype),v.prototype.clone=function(){return new v(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new c(this.headers),url:this.url})},v.error=function(){var e=new v(null,{status:0,statusText:""});return e.type="error",e};var a=[301,302,303,307,308];v.redirect=function(e,t){if(-1===a.indexOf(t))throw new RangeError("Invalid status code");return new v(null,{status:t,headers:{location:e}})},e.Headers=c,e.Request=y,e.Response=v,e.fetch=function(e,n){return new Promise(function(r,o){var i=new y(e,n),a=new XMLHttpRequest;a.onload=function(){var e={status:a.status,statusText:a.statusText,headers:function(e){var t=new c;return e.split("\r\n").forEach(function(e){var n=e.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();t.append(r,o)}}),t}(a.getAllResponseHeaders()||"")};e.url="responseURL"in a?a.responseURL:e.headers.get("X-Request-URL");var t="response"in a?a.response:a.responseText;r(new v(t,e))},a.onerror=function(){o(new TypeError("Network request failed"))},a.ontimeout=function(){o(new TypeError("Network request failed"))},a.open(i.method,i.url,!0),"include"===i.credentials&&(a.withCredentials=!0),"responseType"in a&&t.blob&&(a.responseType="blob"),i.headers.forEach(function(e,t){a.setRequestHeader(t,e)}),a.send(void 0===i._bodyInit?null:i._bodyInit)})},e.fetch.polyfill=!0}function s(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function u(e){return"string"!=typeof e&&(e=String(e)),e}function l(e){var n={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return t.iterable&&(n[Symbol.iterator]=function(){return n}),n}function c(e){this.map={},e instanceof c?e.forEach(function(e,t){this.append(t,e)},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function f(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function d(e){return new Promise(function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}})}function p(e){var t=new FileReader,n=d(t);return t.readAsArrayBuffer(e),n}function h(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function g(){return this.bodyUsed=!1,this._initBody=function(e){if(this._bodyInit=e,e)if("string"==typeof e)this._bodyText=e;else if(t.blob&&Blob.prototype.isPrototypeOf(e))this._bodyBlob=e;else if(t.formData&&FormData.prototype.isPrototypeOf(e))this._bodyFormData=e;else if(t.searchParams&&URLSearchParams.prototype.isPrototypeOf(e))this._bodyText=e.toString();else if(t.arrayBuffer&&t.blob&&r(e))this._bodyArrayBuffer=h(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer]);else{if(!t.arrayBuffer||!ArrayBuffer.prototype.isPrototypeOf(e)&&!o(e))throw new Error("unsupported BodyInit type");this._bodyArrayBuffer=h(e)}else this._bodyText="";this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):t.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},t.blob&&(this.blob=function(){var e=f(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?f(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(p)}),this.text=function(){var e=f(this);if(e)return e;if(this._bodyBlob)return function(e){var t=new FileReader,n=d(t);return t.readAsText(e),n}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),n=new Array(t.length),r=0;r<t.length;r++)n[r]=String.fromCharCode(t[r]);return n.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},t.formData&&(this.formData=function(){return this.text().then(m)}),this.json=function(){return this.text().then(JSON.parse)},this}function y(e,t){var n=(t=t||{}).body;if("string"==typeof e)this.url=e;else{if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new c(e.headers)),this.method=e.method,this.mode=e.mode,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new c(t.headers)),this.method=function(e){var t=e.toUpperCase();return i.indexOf(t)>-1?t:e}(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function m(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}}),t}function v(e,t){t||(t={}),this.type="default",this.status="status"in t?t.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new c(t.headers),this.url=t.url||"",this._initBody(e)}}("undefined"!=typeof self?self:this)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default=(e=>{var t=document.createElement("textarea");return t.innerHTML=e,t.value})},function(e,t,n){(function(t){(function(){"use strict";var t=this;function n(e){return"string"==typeof e}function r(e,t,n){return e.call.apply(e.bind,arguments)}function o(e,t,n){if(!e)throw Error();if(2<arguments.length){var r=Array.prototype.slice.call(arguments,2);return function(){var n=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(n,r),e.apply(t,n)}}return function(){return e.apply(t,arguments)}}function i(e,t,n){return(i=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?r:o).apply(null,arguments)}function a(e){var t=te;function n(){}n.prototype=t.prototype,e.G=t.prototype,e.prototype=new n,e.prototype.constructor=e,e.F=function(e,n,r){for(var o=Array(arguments.length-2),i=2;i<arguments.length;i++)o[i-2]=arguments[i];return t.prototype[n].apply(e,o)}}var s=String.prototype.trim?function(e){return e.trim()}:function(e){return e.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};function u(e,t){return-1!=e.indexOf(t)}function l(e,t){return e<t?-1:e>t?1:0}var c,f=Array.prototype.indexOf?function(e,t,n){return Array.prototype.indexOf.call(e,t,n)}:function(e,t,r){if(r=null==r?0:0>r?Math.max(0,e.length+r):r,n(e))return n(t)&&1==t.length?e.indexOf(t,r):-1;for(;r<e.length;r++)if(r in e&&e[r]===t)return r;return-1},d=Array.prototype.forEach?function(e,t,n){Array.prototype.forEach.call(e,t,n)}:function(e,t,r){for(var o=e.length,i=n(e)?e.split(""):e,a=0;a<o;a++)a in i&&t.call(r,i[a],a,e)},p=Array.prototype.filter?function(e,t,n){return Array.prototype.filter.call(e,t,n)}:function(e,t,r){for(var o=e.length,i=[],a=0,s=n(e)?e.split(""):e,u=0;u<o;u++)if(u in s){var l=s[u];t.call(r,l,u,e)&&(i[a++]=l)}return i},h=Array.prototype.reduce?function(e,t,n,r){return r&&(t=i(t,r)),Array.prototype.reduce.call(e,t,n)}:function(e,t,n,r){var o=n;return d(e,function(n,i){o=t.call(r,o,n,i,e)}),o},g=Array.prototype.some?function(e,t,n){return Array.prototype.some.call(e,t,n)}:function(e,t,r){for(var o=e.length,i=n(e)?e.split(""):e,a=0;a<o;a++)if(a in i&&t.call(r,i[a],a,e))return!0;return!1};e:{var y=t.navigator;if(y){var m=y.userAgent;if(m){c=m;break e}}c=""}var v,b=u(c,"Opera")||u(c,"OPR"),_=u(c,"Trident")||u(c,"MSIE"),x=u(c,"Edge"),w=u(c,"Gecko")&&!(u(c.toLowerCase(),"webkit")&&!u(c,"Edge"))&&!(u(c,"Trident")||u(c,"MSIE"))&&!u(c,"Edge"),S=u(c.toLowerCase(),"webkit")&&!u(c,"Edge");function C(){var e=t.document;return e?e.documentMode:void 0}e:{var k="",O=function(){var e=c;return w?/rv\:([^\);]+)(\)|;)/.exec(e):x?/Edge\/([\d\.]+)/.exec(e):_?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(e):S?/WebKit\/(\S+)/.exec(e):b?/(?:Version)[ \/]?(\S+)/.exec(e):void 0}();if(O&&(k=O?O[1]:""),_){var E=C();if(null!=E&&E>parseFloat(k)){v=String(E);break e}}v=k}var T={};function M(e){if(!T[e]){for(var t=0,n=s(String(v)).split("."),r=s(String(e)).split("."),o=Math.max(n.length,r.length),i=0;0==t&&i<o;i++){var a=n[i]||"",u=r[i]||"",c=/(\d*)(\D*)/g,f=/(\d*)(\D*)/g;do{var d=c.exec(a)||["","",""],p=f.exec(u)||["","",""];if(0==d[0].length&&0==p[0].length)break;t=l(0==d[1].length?0:parseInt(d[1],10),0==p[1].length?0:parseInt(p[1],10))||l(0==d[2].length,0==p[2].length)||l(d[2],p[2])}while(0==t)}T[e]=0<=t}}var P=t.document,j=P&&_?C()||("CSS1Compat"==P.compatMode?parseInt(v,10):5):void 0,A=_&&!(9<=Number(j)),I=_&&!(8<=Number(j));function R(e,t,n,r){this.a=e,this.nodeName=n,this.nodeValue=r
|