Version Description
Download this release
Release Info
Developer | Yoast |
Plugin | Yoast SEO |
Version | 11.1 |
Comparing to | |
See all releases |
Code changes from version 11.0 to 11.1
- admin/ajax.php +6 -6
- admin/ajax/class-recalculate-scores-ajax.php +7 -7
- admin/ajax/class-shortcode-filter.php +4 -4
- admin/ajax/class-yoast-dismissable-notice.php +4 -4
- admin/ajax/class-yoast-onpage-ajax.php +4 -4
- admin/ajax/class-yoast-plugin-conflict-ajax.php +7 -7
- admin/class-add-keyword-modal.php +1 -1
- admin/class-admin-asset-manager.php +8 -3
- admin/class-admin-init.php +14 -19
- admin/class-admin.php +16 -12
- admin/class-bulk-description-editor-list-table.php +3 -3
- admin/class-bulk-editor-list-table.php +21 -18
- admin/class-bulk-title-editor-list-table.php +4 -4
- admin/class-config.php +35 -7
- admin/class-customizer.php +11 -11
- admin/class-database-proxy.php +1 -1
- admin/class-export.php +5 -5
- admin/class-extensions.php +20 -20
- admin/class-gutenberg-compatibility.php +2 -2
- admin/class-help-center-item.php +1 -1
- admin/class-help-center.php +1 -1
- admin/class-keyword-synonyms-modal.php +1 -1
- admin/class-license-page-manager.php +1 -1
- admin/class-meta-columns.php +1 -1
- admin/class-meta-storage.php +1 -1
- admin/class-multiple-keywords-modal.php +1 -1
- admin/class-my-yoast-proxy.php +2 -2
- admin/class-option-tab.php +1 -1
- admin/class-option-tabs-formatter.php +1 -1
- admin/class-option-tabs.php +7 -7
- admin/class-paper-presenter.php +1 -1
- admin/class-plugin-compatibility.php +1 -1
- admin/class-plugin-conflict.php +1 -1
- admin/class-premium-popup.php +4 -4
- admin/class-primary-term-admin.php +6 -6
- admin/class-product-upsell-notice.php +2 -10
- admin/class-recalculate-scores.php +2 -2
- admin/class-social-admin.php +1 -1
- admin/class-yoast-alerts.php +14 -14
- admin/class-yoast-columns.php +1 -1
- admin/class-yoast-dashboard-widget.php +12 -5
- admin/class-yoast-form.php +10 -10
- admin/class-yoast-network-admin.php +1 -1
- admin/class-yoast-notification-center.php +61 -33
- admin/class-yoast-notification.php +16 -16
- admin/class-yoast-plugin-conflict.php +15 -15
- admin/config-ui/class-configuration-components.php +2 -2
- admin/config-ui/class-configuration-endpoint.php +3 -3
- admin/config-ui/class-configuration-options-adapter.php +10 -10
- admin/config-ui/class-configuration-service.php +10 -10
- admin/config-ui/class-configuration-storage.php +9 -9
- admin/config-ui/class-configuration-structure.php +1 -1
- admin/config-ui/class-configuration-translations.php +2 -2
- admin/config-ui/components/class-component-connect-google-search-console.php +5 -5
- admin/config-ui/components/class-component-mailchimp-signup.php +2 -2
- admin/config-ui/components/class-component-suggestions.php +1 -1
- admin/config-ui/components/interface-component.php +2 -2
- admin/config-ui/factories/class-factory-post-type.php +2 -2
- admin/config-ui/fields/class-field-choice-post-type.php +3 -3
- admin/config-ui/fields/class-field-choice.php +2 -2
- admin/config-ui/fields/class-field-company-logo.php +1 -1
- admin/config-ui/fields/class-field-company-name.php +1 -1
- admin/config-ui/fields/class-field-company-or-person.php +1 -1
- admin/config-ui/fields/class-field-connect-google-search-console.php +2 -2
- admin/config-ui/fields/class-field-environment.php +2 -2
- admin/config-ui/fields/class-field-google-search-console-intro.php +1 -1
- admin/config-ui/fields/class-field-mailchimp-signup.php +3 -3
- admin/config-ui/fields/class-field-multiple-authors.php +1 -1
- admin/config-ui/fields/class-field-person.php +1 -1
- admin/config-ui/fields/class-field-post-type-visibility.php +1 -1
- admin/config-ui/fields/class-field-profile-url-facebook.php +2 -2
- admin/config-ui/fields/class-field-profile-url-instagram.php +2 -2
- admin/config-ui/fields/class-field-profile-url-linkedin.php +2 -2
- admin/config-ui/fields/class-field-profile-url-myspace.php +2 -2
- admin/config-ui/fields/class-field-profile-url-pinterest.php +2 -2
- admin/config-ui/fields/class-field-profile-url-twitter.php +2 -2
- admin/config-ui/fields/class-field-profile-url-youtube.php +2 -2
- admin/config-ui/fields/class-field-separator.php +2 -2
- admin/config-ui/fields/class-field-site-name.php +2 -2
- admin/config-ui/fields/class-field-site-type.php +2 -2
- admin/config-ui/fields/class-field-success-message.php +1 -1
- admin/config-ui/fields/class-field-suggestions.php +2 -2
- admin/config-ui/fields/class-field-title-intro.php +1 -1
- admin/config-ui/fields/class-field-upsell-configuration-service.php +1 -1
- admin/config-ui/fields/class-field-upsell-site-review.php +1 -1
- admin/config-ui/fields/class-field.php +8 -8
- admin/filters/class-abstract-post-filter.php +2 -2
- admin/filters/class-cornerstone-filter.php +1 -1
- admin/formatter/class-metabox-formatter.php +4 -4
- admin/formatter/class-post-metabox-formatter.php +5 -5
- admin/formatter/class-term-metabox-formatter.php +5 -5
- admin/formatter/interface-metabox-formatter.php +1 -1
- admin/google_search_console/class-gsc-ajax.php +5 -5
- admin/google_search_console/class-gsc-bulk-action.php +7 -7
- admin/google_search_console/class-gsc-category-filters.php +17 -15
- admin/google_search_console/class-gsc-config.php +1 -1
- admin/google_search_console/class-gsc-count.php +8 -8
- admin/google_search_console/class-gsc-issue.php +4 -4
- admin/google_search_console/class-gsc-issues.php +8 -8
- admin/google_search_console/class-gsc-mapper.php +5 -5
- admin/google_search_console/class-gsc-marker.php +8 -8
- admin/google_search_console/class-gsc-platform-tabs.php +6 -6
- admin/google_search_console/class-gsc-service.php +10 -10
- admin/google_search_console/class-gsc-settings.php +9 -9
- admin/google_search_console/class-gsc-table.php +21 -21
- admin/google_search_console/class-gsc.php +6 -10
- admin/import/class-import-detector.php +1 -1
- admin/import/class-import-plugin.php +1 -1
- admin/import/class-import-settings.php +2 -2
- admin/import/class-import-status.php +1 -1
- admin/import/plugins/class-abstract-plugin-importer.php +1 -1
- admin/import/plugins/class-import-headspace.php +1 -1
- admin/import/plugins/class-import-jetpack.php +1 -1
- admin/import/plugins/class-import-seopressor.php +1 -1
- admin/import/plugins/class-import-wpseo.php +1 -1
- admin/import/plugins/class-importers.php +1 -1
- admin/links/class-link-column-count.php +1 -1
- admin/links/class-link-columns.php +1 -1
- admin/links/class-link-compatibility-notifier.php +1 -1
- admin/links/class-link-filter.php +2 -2
- admin/links/class-link-notifier.php +2 -2
- admin/links/class-link-reindex-dashboard.php +2 -2
- admin/links/class-link-reindex-post-endpoint.php +1 -1
- admin/links/class-link-reindex-post-service.php +1 -1
- admin/links/class-link-type-classifier.php +3 -3
- admin/metabox/class-metabox-analysis-readability.php +1 -1
- admin/metabox/class-metabox-analysis-seo.php +1 -1
- admin/metabox/class-metabox.php +6 -6
- admin/metabox/interface-metabox-analysis.php +1 -1
- admin/notifiers/class-post-type-archive-notification-handler.php +4 -4
- admin/onpage/class-onpage-option.php +4 -4
- admin/onpage/class-onpage-request.php +1 -1
- admin/recalculate/class-recalculate-posts.php +4 -4
- admin/recalculate/class-recalculate-terms.php +4 -4
- admin/recalculate/class-recalculate.php +5 -5
- admin/roles/class-abstract-role-manager.php +1 -1
- admin/services/class-indexable-post-provider.php +1 -1
- admin/statistics/class-statistics-integration.php +1 -1
- admin/statistics/class-statistics-service.php +4 -4
- admin/taxonomy/class-taxonomy-content-fields.php +2 -2
- admin/taxonomy/class-taxonomy-fields-presenter.php +6 -6
- admin/taxonomy/class-taxonomy-fields.php +5 -5
- admin/taxonomy/class-taxonomy-settings-fields.php +3 -3
- admin/taxonomy/class-taxonomy-social-fields.php +7 -7
- admin/tracking/class-tracking.php +2 -2
- admin/views/class-view-utils.php +1 -1
- admin/views/class-yoast-input-select.php +3 -3
- admin/views/licenses.php +48 -50
- admin/views/paper-collapsible.php +1 -1
- admin/views/partial-alerts-template.php +1 -1
- admin/views/tabs/dashboard/webmaster-tools.php +2 -2
- admin/views/tabs/metas/paper-content/general/knowledge-graph.php +2 -2
- admin/views/tabs/metas/paper-content/post-type-content.php +1 -1
- admin/views/tabs/metas/paper-content/taxonomy-content.php +1 -1
- admin/views/tool-import-export.php +2 -2
- admin/watchers/class-slug-change-watcher.php +1 -1
- css/dist/{admin-global-1100-rtl.min.css → admin-global-1110-rtl.min.css} +0 -0
- css/dist/{admin-global-1100.min.css → admin-global-1110.min.css} +0 -0
- css/dist/{adminbar-1100-rtl.min.css → adminbar-1110-rtl.min.css} +0 -0
- css/dist/{adminbar-1100.min.css → adminbar-1110.min.css} +0 -0
- css/dist/alerts-1100-rtl.min.css +0 -1
- css/dist/alerts-1100.min.css +0 -1
- css/dist/alerts-1110-rtl.min.css +1 -0
- css/dist/alerts-1110.min.css +1 -0
- css/dist/{dashboard-1100-rtl.min.css → dashboard-1110-rtl.min.css} +0 -0
- css/dist/{dashboard-1100.min.css → dashboard-1110.min.css} +0 -0
- css/dist/{edit-page-1100-rtl.min.css → edit-page-1110-rtl.min.css} +0 -0
- css/dist/{edit-page-1100.min.css → edit-page-1110.min.css} +0 -0
- css/dist/{featured-image-1100-rtl.min.css → featured-image-1110-rtl.min.css} +0 -0
- css/dist/{featured-image-1100.min.css → featured-image-1110.min.css} +0 -0
- css/dist/{filter-explanation-1100-rtl.min.css → filter-explanation-1110-rtl.min.css} +0 -0
- css/dist/{filter-explanation-1100.min.css → filter-explanation-1110.min.css} +0 -0
- css/dist/{inside-editor-1100-rtl.min.css → inside-editor-1110-rtl.min.css} +0 -0
- css/dist/{inside-editor-1100.min.css → inside-editor-1110.min.css} +0 -0
- css/dist/metabox-1100-rtl.min.css +0 -1
- css/dist/metabox-1100.min.css +0 -1
- css/dist/metabox-1110-rtl.min.css +1 -0
- css/dist/metabox-1110.min.css +1 -0
- css/dist/{metabox-primary-category-1100-rtl.min.css → metabox-primary-category-1110-rtl.min.css} +0 -0
- css/dist/{metabox-primary-category-1100.min.css → metabox-primary-category-1110.min.css} +0 -0
- css/dist/{search-appearance-1100-rtl.min.css → search-appearance-1110-rtl.min.css} +0 -0
- css/dist/{search-appearance-1100.min.css → search-appearance-1110.min.css} +0 -0
- css/dist/structured-data-blocks-1100-rtl.min.css +0 -1
- css/dist/structured-data-blocks-1100.min.css +0 -1
- css/dist/structured-data-blocks-1110-rtl.min.css +1 -0
- css/dist/structured-data-blocks-1110.min.css +1 -0
- css/dist/{toggle-switch-1100-rtl.min.css → toggle-switch-1110-rtl.min.css} +0 -0
- css/dist/{toggle-switch-1100.min.css → toggle-switch-1110.min.css} +0 -0
- css/dist/{wpseo-dismissible-1100-rtl.min.css → wpseo-dismissible-1110-rtl.min.css} +0 -0
- css/dist/{wpseo-dismissible-1100.min.css → wpseo-dismissible-1110.min.css} +0 -0
- css/dist/yoast-components-1100-rtl.min.css +0 -1
- css/dist/yoast-components-1100.min.css +0 -1
- css/dist/yoast-components-1110-rtl.min.css +1 -0
- css/dist/yoast-components-1110.min.css +1 -0
- css/dist/{yoast-extensions-1100-rtl.min.css → yoast-extensions-1110-rtl.min.css} +0 -0
- css/dist/{yoast-extensions-1100.min.css → yoast-extensions-1110.min.css} +0 -0
- css/dist/{yst_plugin_tools-1100-rtl.min.css → yst_plugin_tools-1110-rtl.min.css} +0 -0
- css/dist/{yst_plugin_tools-1100.min.css → yst_plugin_tools-1110.min.css} +0 -0
- css/dist/{yst_seo_score-1100-rtl.min.css → yst_seo_score-1110-rtl.min.css} +0 -0
- css/dist/{yst_seo_score-1100.min.css → yst_seo_score-1110.min.css} +0 -0
- deprecated/admin/config-ui/fields/class-field-profile-url-googleplus.php +1 -1
- deprecated/class-wpseo-option-permalinks.php +3 -3
- frontend/class-breadcrumbs.php +3 -3
- frontend/class-frontend.php +1 -1
- frontend/class-opengraph-image.php +4 -3
- frontend/class-opengraph-oembed.php +2 -2
- frontend/class-opengraph.php +2 -2
- frontend/class-remove-reply-to-com.php +1 -1
- frontend/class-twitter.php +35 -35
- frontend/class-woocommerce-shop-page.php +1 -1
- frontend/schema/class-schema-context.php +2 -2
- frontend/schema/class-schema-image.php +152 -0
- frontend/schema/class-schema-organization.php +2 -6
- frontend/schema/class-schema-person.php +6 -8
- frontend/schema/class-schema-webpage.php +4 -7
- images/brushstroke_background.svg +1 -0
- images/local_assistant.svg +1 -0
- inc/class-addon-manager.php +1 -1
- inc/class-my-yoast-api-request.php +3 -3
- inc/class-rewrite.php +4 -3
- inc/class-upgrade.php +29 -11
- inc/class-wpseo-admin-bar-menu.php +1 -1
- inc/class-wpseo-content-images.php +1 -1
- inc/class-wpseo-custom-fields.php +5 -3
- inc/class-wpseo-custom-taxonomies.php +4 -2
- inc/class-wpseo-endpoint-factory.php +22 -8
- inc/class-wpseo-image-utils.php +13 -12
- inc/class-wpseo-meta.php +86 -84
- inc/class-wpseo-primary-term.php +4 -4
- inc/class-wpseo-rank.php +9 -9
- inc/class-wpseo-replace-vars.php +30 -22
- inc/class-wpseo-replacement-variable.php +10 -4
- inc/class-wpseo-shortlinker.php +2 -1
- inc/class-wpseo-statistics.php +3 -3
- inc/class-wpseo-utils.php +35 -29
- inc/class-wpseo-validator.php +1 -1
- inc/endpoints/class-myyoast-connect.php +4 -4
- inc/exceptions/class-invalid-argument-exception.php +1 -1
- inc/exceptions/class-invalid-indexable-exception.php +1 -1
- inc/exceptions/class-myyoast-authentication-exception.php +1 -1
- inc/exceptions/class-myyoast-bad-request-exception.php +1 -1
- inc/exceptions/class-myyoast-invalid-json-exception.php +1 -1
- inc/exceptions/class-rest-request-exception.php +1 -1
- inc/indexables/class-indexable.php +10 -4
- inc/indexables/class-object-type.php +13 -5
- inc/indexables/class-post-indexable.php +5 -3
- inc/indexables/class-post-object-type.php +1 -1
- inc/indexables/class-term-indexable.php +5 -3
- inc/indexables/class-term-object-type.php +1 -1
- inc/indexables/validators/class-endpoint-validator.php +1 -1
- inc/indexables/validators/class-keyword-validator.php +1 -1
- inc/indexables/validators/class-link-validator.php +1 -1
- inc/indexables/validators/class-meta-values-validator.php +1 -1
- inc/indexables/validators/class-object-type-validator.php +1 -1
- inc/indexables/validators/class-opengraph-validator.php +1 -1
- inc/indexables/validators/class-robots-validator.php +4 -2
- inc/indexables/validators/class-twitter-validator.php +1 -1
- inc/interface-wpseo-wordpress-integration.php +2 -2
- inc/options/class-wpseo-option-ms.php +44 -32
- inc/options/class-wpseo-option-social.php +34 -23
- inc/options/class-wpseo-option-titles.php +47 -34
- inc/options/class-wpseo-option-wpseo.php +13 -12
- inc/options/class-wpseo-option.php +60 -54
- inc/options/class-wpseo-options.php +25 -25
- inc/options/class-wpseo-taxonomy-meta.php +49 -34
- inc/sitemaps/class-author-sitemap-provider.php +1 -1
- inc/sitemaps/class-post-type-sitemap-provider.php +8 -8
- inc/sitemaps/class-sitemap-cache-data.php +11 -8
- inc/sitemaps/class-sitemap-image-parser.php +7 -7
- inc/sitemaps/class-sitemap-timezone.php +9 -8
- inc/sitemaps/class-sitemaps-admin.php +6 -6
- inc/sitemaps/class-sitemaps-cache-validator.php +11 -12
- inc/sitemaps/class-sitemaps-cache.php +4 -4
- inc/sitemaps/class-sitemaps-renderer.php +6 -6
- inc/sitemaps/class-sitemaps-router.php +1 -1
- inc/sitemaps/class-sitemaps.php +5 -5
- inc/sitemaps/class-taxonomy-sitemap-provider.php +4 -4
- inc/sitemaps/interface-sitemap-cache-data.php +5 -5
- inc/sitemaps/interface-sitemap-provider.php +1 -1
- inc/structured-data-blocks/class-faq-block.php +3 -2
- inc/structured-data-blocks/class-how-to-block.php +3 -2
- inc/wpseo-functions.php +13 -10
- inc/wpseo-non-ajax-functions.php +3 -3
- js/dist/analysis-1100.min.js +0 -14
admin/ajax.php
CHANGED
@@ -16,7 +16,7 @@ if ( ! defined( 'WPSEO_VERSION' ) ) {
|
|
16 |
*/
|
17 |
|
18 |
/**
|
19 |
-
* Convenience function to JSON encode and echo results and then die
|
20 |
*
|
21 |
* @param array $results Results array for encoding.
|
22 |
*/
|
@@ -87,7 +87,7 @@ function wpseo_dismiss_tagline_notice() {
|
|
87 |
add_action( 'wp_ajax_wpseo_dismiss_tagline_notice', 'wpseo_dismiss_tagline_notice' );
|
88 |
|
89 |
/**
|
90 |
-
* Used in the editor to replace vars for the snippet preview
|
91 |
*/
|
92 |
function wpseo_ajax_replace_vars() {
|
93 |
global $post;
|
@@ -124,7 +124,7 @@ function wpseo_save_description() {
|
|
124 |
add_action( 'wp_ajax_wpseo_save_metadesc', 'wpseo_save_description' );
|
125 |
|
126 |
/**
|
127 |
-
* Save titles & descriptions
|
128 |
*
|
129 |
* @param string $what Type of item to save (title, description).
|
130 |
*/
|
@@ -246,7 +246,7 @@ function wpseo_save_all_descriptions() {
|
|
246 |
add_action( 'wp_ajax_wpseo_save_all_descriptions', 'wpseo_save_all_descriptions' );
|
247 |
|
248 |
/**
|
249 |
-
* Utility function to save values
|
250 |
*
|
251 |
* @param string $what Type of item so save.
|
252 |
*/
|
@@ -270,7 +270,7 @@ function wpseo_save_all( $what ) {
|
|
270 |
}
|
271 |
|
272 |
/**
|
273 |
-
* Insert a new value
|
274 |
*
|
275 |
* @param string $what Item type (such as title).
|
276 |
* @param int $post_id Post ID.
|
@@ -366,7 +366,7 @@ new Yoast_Dismissable_Notice_Ajax( 'recalculate', Yoast_Dismissable_Notice_Ajax:
|
|
366 |
/* ********************* DEPRECATED FUNCTIONS ********************* */
|
367 |
|
368 |
/**
|
369 |
-
* Removes stopword from the sample permalink that is generated in an AJAX request
|
370 |
*
|
371 |
* @deprecated 6.3
|
372 |
* @codeCoverageIgnore
|
16 |
*/
|
17 |
|
18 |
/**
|
19 |
+
* Convenience function to JSON encode and echo results and then die.
|
20 |
*
|
21 |
* @param array $results Results array for encoding.
|
22 |
*/
|
87 |
add_action( 'wp_ajax_wpseo_dismiss_tagline_notice', 'wpseo_dismiss_tagline_notice' );
|
88 |
|
89 |
/**
|
90 |
+
* Used in the editor to replace vars for the snippet preview.
|
91 |
*/
|
92 |
function wpseo_ajax_replace_vars() {
|
93 |
global $post;
|
124 |
add_action( 'wp_ajax_wpseo_save_metadesc', 'wpseo_save_description' );
|
125 |
|
126 |
/**
|
127 |
+
* Save titles & descriptions.
|
128 |
*
|
129 |
* @param string $what Type of item to save (title, description).
|
130 |
*/
|
246 |
add_action( 'wp_ajax_wpseo_save_all_descriptions', 'wpseo_save_all_descriptions' );
|
247 |
|
248 |
/**
|
249 |
+
* Utility function to save values.
|
250 |
*
|
251 |
* @param string $what Type of item so save.
|
252 |
*/
|
270 |
}
|
271 |
|
272 |
/**
|
273 |
+
* Insert a new value.
|
274 |
*
|
275 |
* @param string $what Item type (such as title).
|
276 |
* @param int $post_id Post ID.
|
366 |
/* ********************* DEPRECATED FUNCTIONS ********************* */
|
367 |
|
368 |
/**
|
369 |
+
* Removes stopword from the sample permalink that is generated in an AJAX request.
|
370 |
*
|
371 |
* @deprecated 6.3
|
372 |
* @codeCoverageIgnore
|
admin/ajax/class-recalculate-scores-ajax.php
CHANGED
@@ -6,14 +6,14 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Recalculate_Scores
|
10 |
*
|
11 |
-
* This class handles the SEO score recalculation for all posts with a filled focus keyword
|
12 |
*/
|
13 |
class WPSEO_Recalculate_Scores_Ajax {
|
14 |
|
15 |
/**
|
16 |
-
* Initialize the AJAX hooks
|
17 |
*/
|
18 |
public function __construct() {
|
19 |
add_action( 'wp_ajax_wpseo_recalculate_scores', array( $this, 'recalculate_scores' ) );
|
@@ -38,7 +38,7 @@ class WPSEO_Recalculate_Scores_Ajax {
|
|
38 |
}
|
39 |
|
40 |
/**
|
41 |
-
* Start recalculation
|
42 |
*/
|
43 |
public function recalculate_scores() {
|
44 |
check_ajax_referer( 'wpseo_recalculate', 'nonce' );
|
@@ -57,7 +57,7 @@ class WPSEO_Recalculate_Scores_Ajax {
|
|
57 |
}
|
58 |
|
59 |
/**
|
60 |
-
* Saves the new linkdex score for given post
|
61 |
*/
|
62 |
public function save_score() {
|
63 |
check_ajax_referer( 'wpseo_recalculate', 'nonce' );
|
@@ -88,7 +88,7 @@ class WPSEO_Recalculate_Scores_Ajax {
|
|
88 |
}
|
89 |
|
90 |
/**
|
91 |
-
* Gets the total number of posts
|
92 |
*
|
93 |
* @return int
|
94 |
*/
|
@@ -106,7 +106,7 @@ class WPSEO_Recalculate_Scores_Ajax {
|
|
106 |
}
|
107 |
|
108 |
/**
|
109 |
-
* Get the total number of terms
|
110 |
*
|
111 |
* @return int
|
112 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Recalculate_Scores.
|
10 |
*
|
11 |
+
* This class handles the SEO score recalculation for all posts with a filled focus keyword.
|
12 |
*/
|
13 |
class WPSEO_Recalculate_Scores_Ajax {
|
14 |
|
15 |
/**
|
16 |
+
* Initialize the AJAX hooks.
|
17 |
*/
|
18 |
public function __construct() {
|
19 |
add_action( 'wp_ajax_wpseo_recalculate_scores', array( $this, 'recalculate_scores' ) );
|
38 |
}
|
39 |
|
40 |
/**
|
41 |
+
* Start recalculation.
|
42 |
*/
|
43 |
public function recalculate_scores() {
|
44 |
check_ajax_referer( 'wpseo_recalculate', 'nonce' );
|
57 |
}
|
58 |
|
59 |
/**
|
60 |
+
* Saves the new linkdex score for given post.
|
61 |
*/
|
62 |
public function save_score() {
|
63 |
check_ajax_referer( 'wpseo_recalculate', 'nonce' );
|
88 |
}
|
89 |
|
90 |
/**
|
91 |
+
* Gets the total number of posts.
|
92 |
*
|
93 |
* @return int
|
94 |
*/
|
106 |
}
|
107 |
|
108 |
/**
|
109 |
+
* Get the total number of terms.
|
110 |
*
|
111 |
* @return int
|
112 |
*/
|
admin/ajax/class-shortcode-filter.php
CHANGED
@@ -6,21 +6,21 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Shortcode_Filter
|
10 |
*
|
11 |
-
* Used for parsing WP shortcodes with AJAX
|
12 |
*/
|
13 |
class WPSEO_Shortcode_Filter {
|
14 |
|
15 |
/**
|
16 |
-
* Initialize the AJAX hooks
|
17 |
*/
|
18 |
public function __construct() {
|
19 |
add_action( 'wp_ajax_wpseo_filter_shortcodes', array( $this, 'do_filter' ) );
|
20 |
}
|
21 |
|
22 |
/**
|
23 |
-
* Parse the shortcodes
|
24 |
*/
|
25 |
public function do_filter() {
|
26 |
check_ajax_referer( 'wpseo-filter-shortcodes', 'nonce' );
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Shortcode_Filter.
|
10 |
*
|
11 |
+
* Used for parsing WP shortcodes with AJAX.
|
12 |
*/
|
13 |
class WPSEO_Shortcode_Filter {
|
14 |
|
15 |
/**
|
16 |
+
* Initialize the AJAX hooks.
|
17 |
*/
|
18 |
public function __construct() {
|
19 |
add_action( 'wp_ajax_wpseo_filter_shortcodes', array( $this, 'do_filter' ) );
|
20 |
}
|
21 |
|
22 |
/**
|
23 |
+
* Parse the shortcodes.
|
24 |
*/
|
25 |
public function do_filter() {
|
26 |
check_ajax_referer( 'wpseo-filter-shortcodes', 'nonce' );
|
admin/ajax/class-yoast-dismissable-notice.php
CHANGED
@@ -6,8 +6,8 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* This class will catch the request to dismiss the target notice (set by notice_name)
|
10 |
-
* in the database
|
11 |
*/
|
12 |
class Yoast_Dismissable_Notice_Ajax {
|
13 |
|
@@ -48,7 +48,7 @@ class Yoast_Dismissable_Notice_Ajax {
|
|
48 |
private $notice_type;
|
49 |
|
50 |
/**
|
51 |
-
* Initialize the hooks for the AJAX request
|
52 |
*
|
53 |
* @param string $notice_name The name for the hook to catch the notice.
|
54 |
* @param string $notice_type The notice type.
|
@@ -61,7 +61,7 @@ class Yoast_Dismissable_Notice_Ajax {
|
|
61 |
}
|
62 |
|
63 |
/**
|
64 |
-
* Handles the dismiss notice request
|
65 |
*/
|
66 |
public function dismiss_notice() {
|
67 |
check_ajax_referer( 'wpseo-dismiss-' . $this->notice_name );
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* This class will catch the request to dismiss the target notice (set by notice_name)
|
10 |
+
* and will store the dismiss status as an user meta in the database.
|
11 |
*/
|
12 |
class Yoast_Dismissable_Notice_Ajax {
|
13 |
|
48 |
private $notice_type;
|
49 |
|
50 |
/**
|
51 |
+
* Initialize the hooks for the AJAX request.
|
52 |
*
|
53 |
* @param string $notice_name The name for the hook to catch the notice.
|
54 |
* @param string $notice_type The notice type.
|
61 |
}
|
62 |
|
63 |
/**
|
64 |
+
* Handles the dismiss notice request.
|
65 |
*/
|
66 |
public function dismiss_notice() {
|
67 |
check_ajax_referer( 'wpseo-dismiss-' . $this->notice_name );
|
admin/ajax/class-yoast-onpage-ajax.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class Yoast_OnPage_Ajax
|
10 |
*
|
11 |
* This class will catch the request to dismiss the Ryte notice and will store
|
12 |
* the dismiss status as an user meta in the database.
|
@@ -14,14 +14,14 @@
|
|
14 |
class Yoast_OnPage_Ajax {
|
15 |
|
16 |
/**
|
17 |
-
* Initialize the hooks for the AJAX request
|
18 |
*/
|
19 |
public function __construct() {
|
20 |
add_action( 'wp_ajax_wpseo_dismiss_onpageorg', array( $this, 'dismiss_notice' ) );
|
21 |
}
|
22 |
|
23 |
/**
|
24 |
-
* Handles the dismiss notice request
|
25 |
*/
|
26 |
public function dismiss_notice() {
|
27 |
check_ajax_referer( 'wpseo-dismiss-onpageorg' );
|
@@ -32,7 +32,7 @@ class Yoast_OnPage_Ajax {
|
|
32 |
}
|
33 |
|
34 |
/**
|
35 |
-
* Storing the dismissed value as an user option in the database
|
36 |
*/
|
37 |
private function save_dismissed() {
|
38 |
update_user_meta( get_current_user_id(), WPSEO_OnPage::USER_META_KEY, 1 );
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class Yoast_OnPage_Ajax.
|
10 |
*
|
11 |
* This class will catch the request to dismiss the Ryte notice and will store
|
12 |
* the dismiss status as an user meta in the database.
|
14 |
class Yoast_OnPage_Ajax {
|
15 |
|
16 |
/**
|
17 |
+
* Initialize the hooks for the AJAX request.
|
18 |
*/
|
19 |
public function __construct() {
|
20 |
add_action( 'wp_ajax_wpseo_dismiss_onpageorg', array( $this, 'dismiss_notice' ) );
|
21 |
}
|
22 |
|
23 |
/**
|
24 |
+
* Handles the dismiss notice request.
|
25 |
*/
|
26 |
public function dismiss_notice() {
|
27 |
check_ajax_referer( 'wpseo-dismiss-onpageorg' );
|
32 |
}
|
33 |
|
34 |
/**
|
35 |
+
* Storing the dismissed value as an user option in the database.
|
36 |
*/
|
37 |
private function save_dismissed() {
|
38 |
update_user_meta( get_current_user_id(), WPSEO_OnPage::USER_META_KEY, 1 );
|
admin/ajax/class-yoast-plugin-conflict-ajax.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class Yoast_Plugin_Conflict_Ajax
|
10 |
*/
|
11 |
class Yoast_Plugin_Conflict_Ajax {
|
12 |
|
@@ -21,14 +21,14 @@ class Yoast_Plugin_Conflict_Ajax {
|
|
21 |
private $dismissed_conflicts = array();
|
22 |
|
23 |
/**
|
24 |
-
* Initialize the hooks for the AJAX request
|
25 |
*/
|
26 |
public function __construct() {
|
27 |
add_action( 'wp_ajax_wpseo_dismiss_plugin_conflict', array( $this, 'dismiss_notice' ) );
|
28 |
}
|
29 |
|
30 |
/**
|
31 |
-
* Handles the dismiss notice request
|
32 |
*/
|
33 |
public function dismiss_notice() {
|
34 |
check_ajax_referer( 'dismiss-plugin-conflict' );
|
@@ -45,7 +45,7 @@ class Yoast_Plugin_Conflict_Ajax {
|
|
45 |
}
|
46 |
|
47 |
/**
|
48 |
-
* Getting the user option from the database
|
49 |
*
|
50 |
* @return bool|array
|
51 |
*/
|
@@ -71,7 +71,7 @@ class Yoast_Plugin_Conflict_Ajax {
|
|
71 |
}
|
72 |
|
73 |
/**
|
74 |
-
* Storing the conflicting plugins as an user option in the database
|
75 |
*
|
76 |
* @param string $plugin_section Plugin conflict type (such as Open Graph or sitemap).
|
77 |
*/
|
@@ -84,7 +84,7 @@ class Yoast_Plugin_Conflict_Ajax {
|
|
84 |
}
|
85 |
|
86 |
/**
|
87 |
-
* Loop through the plugins to compare them with the already stored dismissed plugin conflicts
|
88 |
*
|
89 |
* @param array $posted_plugins Plugin set to check.
|
90 |
*/
|
@@ -95,7 +95,7 @@ class Yoast_Plugin_Conflict_Ajax {
|
|
95 |
}
|
96 |
|
97 |
/**
|
98 |
-
* Check if plugin is already dismissed, if not store it in the array that will be saved later
|
99 |
*
|
100 |
* @param string $posted_plugin Plugin to check against dismissed conflicts.
|
101 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class Yoast_Plugin_Conflict_Ajax.
|
10 |
*/
|
11 |
class Yoast_Plugin_Conflict_Ajax {
|
12 |
|
21 |
private $dismissed_conflicts = array();
|
22 |
|
23 |
/**
|
24 |
+
* Initialize the hooks for the AJAX request.
|
25 |
*/
|
26 |
public function __construct() {
|
27 |
add_action( 'wp_ajax_wpseo_dismiss_plugin_conflict', array( $this, 'dismiss_notice' ) );
|
28 |
}
|
29 |
|
30 |
/**
|
31 |
+
* Handles the dismiss notice request.
|
32 |
*/
|
33 |
public function dismiss_notice() {
|
34 |
check_ajax_referer( 'dismiss-plugin-conflict' );
|
45 |
}
|
46 |
|
47 |
/**
|
48 |
+
* Getting the user option from the database.
|
49 |
*
|
50 |
* @return bool|array
|
51 |
*/
|
71 |
}
|
72 |
|
73 |
/**
|
74 |
+
* Storing the conflicting plugins as an user option in the database.
|
75 |
*
|
76 |
* @param string $plugin_section Plugin conflict type (such as Open Graph or sitemap).
|
77 |
*/
|
84 |
}
|
85 |
|
86 |
/**
|
87 |
+
* Loop through the plugins to compare them with the already stored dismissed plugin conflicts.
|
88 |
*
|
89 |
* @param array $posted_plugins Plugin set to check.
|
90 |
*/
|
95 |
}
|
96 |
|
97 |
/**
|
98 |
+
* Check if plugin is already dismissed, if not store it in the array that will be saved later.
|
99 |
*
|
100 |
* @param string $posted_plugin Plugin to check against dismissed conflicts.
|
101 |
*/
|
admin/class-add-keyword-modal.php
CHANGED
@@ -36,7 +36,7 @@ class WPSEO_Add_Keyword_Modal {
|
|
36 |
__( 'Get %s', 'wordpress-seo' ),
|
37 |
'Yoast SEO Premium'
|
38 |
),
|
39 |
-
'small' => __( '1 year free
|
40 |
'a11yNotice.opensInNewTab' => __( '(Opens in a new browser tab)', 'wordpress-seo' ),
|
41 |
);
|
42 |
}
|
36 |
__( 'Get %s', 'wordpress-seo' ),
|
37 |
'Yoast SEO Premium'
|
38 |
),
|
39 |
+
'small' => __( '1 year free support and updates included!', 'wordpress-seo' ),
|
40 |
'a11yNotice.opensInNewTab' => __( '(Opens in a new browser tab)', 'wordpress-seo' ),
|
41 |
);
|
42 |
}
|
admin/class-admin-asset-manager.php
CHANGED
@@ -6,7 +6,10 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* This class registers all the necessary styles and scripts.
|
|
|
|
|
|
|
10 |
*/
|
11 |
class WPSEO_Admin_Asset_Manager {
|
12 |
|
@@ -140,7 +143,7 @@ class WPSEO_Admin_Asset_Manager {
|
|
140 |
}
|
141 |
|
142 |
/**
|
143 |
-
* Flattens a version number for use in a filename
|
144 |
*
|
145 |
* @param string $version The original version number.
|
146 |
*
|
@@ -515,6 +518,8 @@ class WPSEO_Admin_Asset_Manager {
|
|
515 |
'wp-i18n',
|
516 |
'wp-components',
|
517 |
'wp-data',
|
|
|
|
|
518 |
self::PREFIX . 'commons',
|
519 |
),
|
520 |
),
|
@@ -658,7 +663,7 @@ class WPSEO_Admin_Asset_Manager {
|
|
658 |
*
|
659 |
* @todo Data format is not self-documenting. Needs explanation inline. R.
|
660 |
*
|
661 |
-
* @return array
|
662 |
*/
|
663 |
protected function styles_to_be_registered() {
|
664 |
$flat_version = $this->flatten_version( WPSEO_VERSION );
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* This class registers all the necessary styles and scripts.
|
10 |
+
*
|
11 |
+
* Also has methods for the enqueing of scripts and styles.
|
12 |
+
* It automatically adds a prefix to the handle.
|
13 |
*/
|
14 |
class WPSEO_Admin_Asset_Manager {
|
15 |
|
143 |
}
|
144 |
|
145 |
/**
|
146 |
+
* Flattens a version number for use in a filename.
|
147 |
*
|
148 |
* @param string $version The original version number.
|
149 |
*
|
518 |
'wp-i18n',
|
519 |
'wp-components',
|
520 |
'wp-data',
|
521 |
+
self::PREFIX . 'analysis',
|
522 |
+
self::PREFIX . 'components',
|
523 |
self::PREFIX . 'commons',
|
524 |
),
|
525 |
),
|
663 |
*
|
664 |
* @todo Data format is not self-documenting. Needs explanation inline. R.
|
665 |
*
|
666 |
+
* @return array Styles that need to be registered.
|
667 |
*/
|
668 |
protected function styles_to_be_registered() {
|
669 |
$flat_version = $this->flatten_version( WPSEO_VERSION );
|
admin/class-admin-init.php
CHANGED
@@ -25,7 +25,7 @@ class WPSEO_Admin_Init {
|
|
25 |
private $asset_manager;
|
26 |
|
27 |
/**
|
28 |
-
* Class constructor
|
29 |
*/
|
30 |
public function __construct() {
|
31 |
$GLOBALS['wpseo_admin'] = new WPSEO_Admin();
|
@@ -93,7 +93,7 @@ class WPSEO_Admin_Init {
|
|
93 |
}
|
94 |
|
95 |
/**
|
96 |
-
* Notify about the default tagline if the user hasn't changed it
|
97 |
*/
|
98 |
public function tagline_notice() {
|
99 |
$query_args = array(
|
@@ -117,16 +117,11 @@ class WPSEO_Admin_Init {
|
|
117 |
$tagline_notification = new Yoast_Notification( $info_message, $notification_options );
|
118 |
|
119 |
$notification_center = Yoast_Notification_Center::get();
|
120 |
-
|
121 |
-
$notification_center->add_notification( $tagline_notification );
|
122 |
-
}
|
123 |
-
else {
|
124 |
-
$notification_center->remove_notification( $tagline_notification );
|
125 |
-
}
|
126 |
}
|
127 |
|
128 |
/**
|
129 |
-
* Add an alert if the blog is not publicly visible
|
130 |
*/
|
131 |
public function blog_public_notice() {
|
132 |
|
@@ -157,7 +152,7 @@ class WPSEO_Admin_Init {
|
|
157 |
}
|
158 |
|
159 |
/**
|
160 |
-
* Display notice to disable comment pagination
|
161 |
*/
|
162 |
public function page_comments_notice() {
|
163 |
|
@@ -189,7 +184,7 @@ class WPSEO_Admin_Init {
|
|
189 |
}
|
190 |
|
191 |
/**
|
192 |
-
* Returns whether or not the site has the default tagline
|
193 |
*
|
194 |
* @return bool
|
195 |
*/
|
@@ -205,7 +200,7 @@ class WPSEO_Admin_Init {
|
|
205 |
}
|
206 |
|
207 |
/**
|
208 |
-
* Show alert when the permalink doesn't contain %postname
|
209 |
*/
|
210 |
public function permalink_notice() {
|
211 |
|
@@ -237,7 +232,7 @@ class WPSEO_Admin_Init {
|
|
237 |
}
|
238 |
|
239 |
/**
|
240 |
-
* Are page comments enabled
|
241 |
*
|
242 |
* @return bool
|
243 |
*/
|
@@ -263,7 +258,7 @@ class WPSEO_Admin_Init {
|
|
263 |
}
|
264 |
|
265 |
/**
|
266 |
-
* Build compatibility problem notification
|
267 |
*
|
268 |
* @return Yoast_Notification
|
269 |
*/
|
@@ -362,7 +357,7 @@ class WPSEO_Admin_Init {
|
|
362 |
}
|
363 |
|
364 |
/**
|
365 |
-
* Build Yoast SEO compatibility problem notification
|
366 |
*
|
367 |
* @param string $name The plugin name to use for the unique ID.
|
368 |
* @param array $plugin The plugin to retrieve the data from.
|
@@ -437,7 +432,7 @@ class WPSEO_Admin_Init {
|
|
437 |
}
|
438 |
|
439 |
/**
|
440 |
-
* Check if the user has dismissed the given notice (by $notice_name)
|
441 |
*
|
442 |
* @param string $notice_name The name of the notice that might be dismissed.
|
443 |
*
|
@@ -584,7 +579,7 @@ class WPSEO_Admin_Init {
|
|
584 |
}
|
585 |
|
586 |
/**
|
587 |
-
* See if we should start our XML Sitemaps Admin class
|
588 |
*/
|
589 |
private function load_xml_sitemaps_admin() {
|
590 |
if ( WPSEO_Options::get( 'enable_xml_sitemap', false ) ) {
|
@@ -593,7 +588,7 @@ class WPSEO_Admin_Init {
|
|
593 |
}
|
594 |
|
595 |
/**
|
596 |
-
* Check if the site is set to be publicly visible
|
597 |
*
|
598 |
* @return bool
|
599 |
*/
|
@@ -653,7 +648,7 @@ class WPSEO_Admin_Init {
|
|
653 |
}
|
654 |
|
655 |
/**
|
656 |
-
* Check if the permalink uses %postname
|
657 |
*
|
658 |
* @return bool
|
659 |
*/
|
25 |
private $asset_manager;
|
26 |
|
27 |
/**
|
28 |
+
* Class constructor.
|
29 |
*/
|
30 |
public function __construct() {
|
31 |
$GLOBALS['wpseo_admin'] = new WPSEO_Admin();
|
93 |
}
|
94 |
|
95 |
/**
|
96 |
+
* Notify about the default tagline if the user hasn't changed it.
|
97 |
*/
|
98 |
public function tagline_notice() {
|
99 |
$query_args = array(
|
117 |
$tagline_notification = new Yoast_Notification( $info_message, $notification_options );
|
118 |
|
119 |
$notification_center = Yoast_Notification_Center::get();
|
120 |
+
$notification_center->remove_notification( $tagline_notification );
|
|
|
|
|
|
|
|
|
|
|
121 |
}
|
122 |
|
123 |
/**
|
124 |
+
* Add an alert if the blog is not publicly visible.
|
125 |
*/
|
126 |
public function blog_public_notice() {
|
127 |
|
152 |
}
|
153 |
|
154 |
/**
|
155 |
+
* Display notice to disable comment pagination.
|
156 |
*/
|
157 |
public function page_comments_notice() {
|
158 |
|
184 |
}
|
185 |
|
186 |
/**
|
187 |
+
* Returns whether or not the site has the default tagline.
|
188 |
*
|
189 |
* @return bool
|
190 |
*/
|
200 |
}
|
201 |
|
202 |
/**
|
203 |
+
* Show alert when the permalink doesn't contain %postname%.
|
204 |
*/
|
205 |
public function permalink_notice() {
|
206 |
|
232 |
}
|
233 |
|
234 |
/**
|
235 |
+
* Are page comments enabled.
|
236 |
*
|
237 |
* @return bool
|
238 |
*/
|
258 |
}
|
259 |
|
260 |
/**
|
261 |
+
* Build compatibility problem notification.
|
262 |
*
|
263 |
* @return Yoast_Notification
|
264 |
*/
|
357 |
}
|
358 |
|
359 |
/**
|
360 |
+
* Build Yoast SEO compatibility problem notification.
|
361 |
*
|
362 |
* @param string $name The plugin name to use for the unique ID.
|
363 |
* @param array $plugin The plugin to retrieve the data from.
|
432 |
}
|
433 |
|
434 |
/**
|
435 |
+
* Check if the user has dismissed the given notice (by $notice_name).
|
436 |
*
|
437 |
* @param string $notice_name The name of the notice that might be dismissed.
|
438 |
*
|
579 |
}
|
580 |
|
581 |
/**
|
582 |
+
* See if we should start our XML Sitemaps Admin class.
|
583 |
*/
|
584 |
private function load_xml_sitemaps_admin() {
|
585 |
if ( WPSEO_Options::get( 'enable_xml_sitemap', false ) ) {
|
588 |
}
|
589 |
|
590 |
/**
|
591 |
+
* Check if the site is set to be publicly visible.
|
592 |
*
|
593 |
* @return bool
|
594 |
*/
|
648 |
}
|
649 |
|
650 |
/**
|
651 |
+
* Check if the permalink uses %postname%.
|
652 |
*
|
653 |
* @return bool
|
654 |
*/
|
admin/class-admin.php
CHANGED
@@ -49,16 +49,6 @@ class WPSEO_Admin {
|
|
49 |
add_filter( 'wpseo_accessible_post_types', array( 'WPSEO_Post_Type', 'filter_attachment_post_type' ) );
|
50 |
}
|
51 |
|
52 |
-
$this->admin_features = array(
|
53 |
-
// Google Search Console.
|
54 |
-
'google_search_console' => new WPSEO_GSC(),
|
55 |
-
'dashboard_widget' => new Yoast_Dashboard_Widget(),
|
56 |
-
);
|
57 |
-
|
58 |
-
if ( WPSEO_Metabox::is_post_overview( $pagenow ) || WPSEO_Metabox::is_post_edit( $pagenow ) ) {
|
59 |
-
$this->admin_features['primary_category'] = new WPSEO_Primary_Term_Admin();
|
60 |
-
}
|
61 |
-
|
62 |
if ( filter_input( INPUT_GET, 'page' ) === 'wpseo_tools' && filter_input( INPUT_GET, 'tool' ) === null ) {
|
63 |
new WPSEO_Recalculate_Scores();
|
64 |
}
|
@@ -100,6 +90,15 @@ class WPSEO_Admin {
|
|
100 |
$integrations[] = new Yoast_Network_Admin();
|
101 |
}
|
102 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
$integrations[] = new WPSEO_Yoast_Columns();
|
104 |
$integrations[] = new WPSEO_License_Page_Manager();
|
105 |
$integrations[] = new WPSEO_Statistic_Integration();
|
@@ -110,8 +109,13 @@ class WPSEO_Admin {
|
|
110 |
$integrations[] = new WPSEO_MyYoast_Proxy();
|
111 |
$integrations[] = new WPSEO_MyYoast_Route();
|
112 |
$integrations[] = new WPSEO_Schema_Person_Upgrade_Notification();
|
113 |
-
|
114 |
-
$integrations
|
|
|
|
|
|
|
|
|
|
|
115 |
|
116 |
/** @var WPSEO_WordPress_Integration $integration */
|
117 |
foreach ( $integrations as $integration ) {
|
49 |
add_filter( 'wpseo_accessible_post_types', array( 'WPSEO_Post_Type', 'filter_attachment_post_type' ) );
|
50 |
}
|
51 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
if ( filter_input( INPUT_GET, 'page' ) === 'wpseo_tools' && filter_input( INPUT_GET, 'tool' ) === null ) {
|
53 |
new WPSEO_Recalculate_Scores();
|
54 |
}
|
90 |
$integrations[] = new Yoast_Network_Admin();
|
91 |
}
|
92 |
|
93 |
+
$this->admin_features = array(
|
94 |
+
'google_search_console' => new WPSEO_GSC(),
|
95 |
+
'dashboard_widget' => new Yoast_Dashboard_Widget(),
|
96 |
+
);
|
97 |
+
|
98 |
+
if ( WPSEO_Metabox::is_post_overview( $pagenow ) || WPSEO_Metabox::is_post_edit( $pagenow ) ) {
|
99 |
+
$this->admin_features['primary_category'] = new WPSEO_Primary_Term_Admin();
|
100 |
+
}
|
101 |
+
|
102 |
$integrations[] = new WPSEO_Yoast_Columns();
|
103 |
$integrations[] = new WPSEO_License_Page_Manager();
|
104 |
$integrations[] = new WPSEO_Statistic_Integration();
|
109 |
$integrations[] = new WPSEO_MyYoast_Proxy();
|
110 |
$integrations[] = new WPSEO_MyYoast_Route();
|
111 |
$integrations[] = new WPSEO_Schema_Person_Upgrade_Notification();
|
112 |
+
|
113 |
+
$integrations = array_merge(
|
114 |
+
$integrations,
|
115 |
+
$this->get_admin_features(),
|
116 |
+
$this->initialize_seo_links(),
|
117 |
+
$this->initialize_cornerstone_content()
|
118 |
+
);
|
119 |
|
120 |
/** @var WPSEO_WordPress_Integration $integration */
|
121 |
foreach ( $integrations as $integration ) {
|
admin/class-bulk-description-editor-list-table.php
CHANGED
@@ -19,7 +19,7 @@ class WPSEO_Bulk_Description_List_Table extends WPSEO_Bulk_List_Table {
|
|
19 |
protected $page_type = 'description';
|
20 |
|
21 |
/**
|
22 |
-
* Settings with are used in __construct
|
23 |
*
|
24 |
* @var array
|
25 |
*/
|
@@ -37,7 +37,7 @@ class WPSEO_Bulk_Description_List_Table extends WPSEO_Bulk_List_Table {
|
|
37 |
protected $target_db_field = 'metadesc';
|
38 |
|
39 |
/**
|
40 |
-
* The columns shown on the table
|
41 |
*
|
42 |
* @return array
|
43 |
*/
|
@@ -51,7 +51,7 @@ class WPSEO_Bulk_Description_List_Table extends WPSEO_Bulk_List_Table {
|
|
51 |
}
|
52 |
|
53 |
/**
|
54 |
-
* Parse the metadescription
|
55 |
*
|
56 |
* @param string $column_name Column name.
|
57 |
* @param object $record Data object.
|
19 |
protected $page_type = 'description';
|
20 |
|
21 |
/**
|
22 |
+
* Settings with are used in __construct.
|
23 |
*
|
24 |
* @var array
|
25 |
*/
|
37 |
protected $target_db_field = 'metadesc';
|
38 |
|
39 |
/**
|
40 |
+
* The columns shown on the table.
|
41 |
*
|
42 |
* @return array
|
43 |
*/
|
51 |
}
|
52 |
|
53 |
/**
|
54 |
+
* Parse the metadescription.
|
55 |
*
|
56 |
* @param string $column_name Column name.
|
57 |
* @param object $record Data object.
|
admin/class-bulk-editor-list-table.php
CHANGED
@@ -12,7 +12,7 @@
|
|
12 |
class WPSEO_Bulk_List_Table extends WP_List_Table {
|
13 |
|
14 |
/**
|
15 |
-
* The nonce that was passed with the request
|
16 |
*
|
17 |
* @var string
|
18 |
*/
|
@@ -40,35 +40,35 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
40 |
protected $meta_data = array();
|
41 |
|
42 |
/**
|
43 |
-
* The current requested page_url
|
44 |
*
|
45 |
* @var string
|
46 |
*/
|
47 |
private $request_url = '';
|
48 |
|
49 |
/**
|
50 |
-
* The current page (depending on $_GET['paged']) if current tab is for current page_type, else it will be 1
|
51 |
*
|
52 |
* @var integer
|
53 |
*/
|
54 |
private $current_page;
|
55 |
|
56 |
/**
|
57 |
-
* The current post filter, if is used (depending on $_GET['post_type_filter'])
|
58 |
*
|
59 |
* @var string
|
60 |
*/
|
61 |
private $current_filter;
|
62 |
|
63 |
/**
|
64 |
-
* The current post status, if is used (depending on $_GET['post_status'])
|
65 |
*
|
66 |
* @var string
|
67 |
*/
|
68 |
private $current_status;
|
69 |
|
70 |
/**
|
71 |
-
* The current sorting, if used (depending on $_GET['order'] and $_GET['orderby'])
|
72 |
*
|
73 |
* @var string
|
74 |
*/
|
@@ -83,7 +83,7 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
83 |
|
84 |
/**
|
85 |
* Based on the page_type ($this->page_type) there will be constructed an url part, for subpages and
|
86 |
-
* navigation
|
87 |
*
|
88 |
* @var string
|
89 |
*/
|
@@ -109,7 +109,7 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
109 |
protected $input_fields = array();
|
110 |
|
111 |
/**
|
112 |
-
* Class constructor
|
113 |
*
|
114 |
* @param array $args The arguments.
|
115 |
*/
|
@@ -186,7 +186,7 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
186 |
}
|
187 |
|
188 |
/**
|
189 |
-
* Will shown the navigation for the table like pagenavigation and pagefilter
|
190 |
*
|
191 |
* @param string $which Table nav location (such as top).
|
192 |
*/
|
@@ -232,7 +232,8 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
232 |
* This function takes into account the post types in which the current user can
|
233 |
* edit all posts, and the ones the current user can only edit his/her own.
|
234 |
*
|
235 |
-
* @return string
|
|
|
236 |
*/
|
237 |
public function get_base_subquery() {
|
238 |
global $wpdb;
|
@@ -428,7 +429,7 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
428 |
}
|
429 |
|
430 |
/**
|
431 |
-
* Sets the correct pagenumber and pageurl for the navigation
|
432 |
*/
|
433 |
public function prepare_page_navigation() {
|
434 |
|
@@ -472,7 +473,7 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
472 |
}
|
473 |
|
474 |
/**
|
475 |
-
* Preparing the requested pagerows and setting the needed variables
|
476 |
*/
|
477 |
public function prepare_items() {
|
478 |
|
@@ -496,7 +497,7 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
496 |
}
|
497 |
|
498 |
/**
|
499 |
-
* Getting the columns for first row
|
500 |
*
|
501 |
* @return array
|
502 |
*/
|
@@ -505,7 +506,7 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
505 |
}
|
506 |
|
507 |
/**
|
508 |
-
* Setting the column headers
|
509 |
*/
|
510 |
protected function set_column_headers() {
|
511 |
$columns = $this->get_columns();
|
@@ -515,7 +516,7 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
515 |
}
|
516 |
|
517 |
/**
|
518 |
-
* Counting total items
|
519 |
*
|
520 |
* @param string $subquery SQL FROM part.
|
521 |
* @param string $all_states SQL IN part.
|
@@ -537,7 +538,7 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
537 |
}
|
538 |
|
539 |
/**
|
540 |
-
* Getting the post_type_clause filter
|
541 |
*
|
542 |
* @return string
|
543 |
*/
|
@@ -623,7 +624,8 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
623 |
}
|
624 |
|
625 |
/**
|
626 |
-
* Heavily restricts the possible columns by which a user can order the table
|
|
|
627 |
*
|
628 |
* @param string $orderby The column by which we want to order.
|
629 |
*
|
@@ -644,7 +646,8 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
644 |
}
|
645 |
|
646 |
/**
|
647 |
-
* Makes sure the order clause is always ASC or DESC for the bulk editor table,
|
|
|
648 |
*
|
649 |
* @param string $order Whether we want to sort ascending or descending.
|
650 |
*
|
12 |
class WPSEO_Bulk_List_Table extends WP_List_Table {
|
13 |
|
14 |
/**
|
15 |
+
* The nonce that was passed with the request.
|
16 |
*
|
17 |
* @var string
|
18 |
*/
|
40 |
protected $meta_data = array();
|
41 |
|
42 |
/**
|
43 |
+
* The current requested page_url.
|
44 |
*
|
45 |
* @var string
|
46 |
*/
|
47 |
private $request_url = '';
|
48 |
|
49 |
/**
|
50 |
+
* The current page (depending on $_GET['paged']) if current tab is for current page_type, else it will be 1.
|
51 |
*
|
52 |
* @var integer
|
53 |
*/
|
54 |
private $current_page;
|
55 |
|
56 |
/**
|
57 |
+
* The current post filter, if is used (depending on $_GET['post_type_filter']).
|
58 |
*
|
59 |
* @var string
|
60 |
*/
|
61 |
private $current_filter;
|
62 |
|
63 |
/**
|
64 |
+
* The current post status, if is used (depending on $_GET['post_status']).
|
65 |
*
|
66 |
* @var string
|
67 |
*/
|
68 |
private $current_status;
|
69 |
|
70 |
/**
|
71 |
+
* The current sorting, if used (depending on $_GET['order'] and $_GET['orderby']).
|
72 |
*
|
73 |
* @var string
|
74 |
*/
|
83 |
|
84 |
/**
|
85 |
* Based on the page_type ($this->page_type) there will be constructed an url part, for subpages and
|
86 |
+
* navigation.
|
87 |
*
|
88 |
* @var string
|
89 |
*/
|
109 |
protected $input_fields = array();
|
110 |
|
111 |
/**
|
112 |
+
* Class constructor.
|
113 |
*
|
114 |
* @param array $args The arguments.
|
115 |
*/
|
186 |
}
|
187 |
|
188 |
/**
|
189 |
+
* Will shown the navigation for the table like pagenavigation and pagefilter.
|
190 |
*
|
191 |
* @param string $which Table nav location (such as top).
|
192 |
*/
|
232 |
* This function takes into account the post types in which the current user can
|
233 |
* edit all posts, and the ones the current user can only edit his/her own.
|
234 |
*
|
235 |
+
* @return string The subquery, which should always be used in $wpdb->prepare(),
|
236 |
+
* passing the current user_id in as the first parameter.
|
237 |
*/
|
238 |
public function get_base_subquery() {
|
239 |
global $wpdb;
|
429 |
}
|
430 |
|
431 |
/**
|
432 |
+
* Sets the correct pagenumber and pageurl for the navigation.
|
433 |
*/
|
434 |
public function prepare_page_navigation() {
|
435 |
|
473 |
}
|
474 |
|
475 |
/**
|
476 |
+
* Preparing the requested pagerows and setting the needed variables.
|
477 |
*/
|
478 |
public function prepare_items() {
|
479 |
|
497 |
}
|
498 |
|
499 |
/**
|
500 |
+
* Getting the columns for first row.
|
501 |
*
|
502 |
* @return array
|
503 |
*/
|
506 |
}
|
507 |
|
508 |
/**
|
509 |
+
* Setting the column headers.
|
510 |
*/
|
511 |
protected function set_column_headers() {
|
512 |
$columns = $this->get_columns();
|
516 |
}
|
517 |
|
518 |
/**
|
519 |
+
* Counting total items.
|
520 |
*
|
521 |
* @param string $subquery SQL FROM part.
|
522 |
* @param string $all_states SQL IN part.
|
538 |
}
|
539 |
|
540 |
/**
|
541 |
+
* Getting the post_type_clause filter.
|
542 |
*
|
543 |
* @return string
|
544 |
*/
|
624 |
}
|
625 |
|
626 |
/**
|
627 |
+
* Heavily restricts the possible columns by which a user can order the table
|
628 |
+
* in the bulk editor, thereby preventing a possible CSRF vulnerability.
|
629 |
*
|
630 |
* @param string $orderby The column by which we want to order.
|
631 |
*
|
646 |
}
|
647 |
|
648 |
/**
|
649 |
+
* Makes sure the order clause is always ASC or DESC for the bulk editor table,
|
650 |
+
* thereby preventing a possible CSRF vulnerability.
|
651 |
*
|
652 |
* @param string $order Whether we want to sort ascending or descending.
|
653 |
*
|
admin/class-bulk-title-editor-list-table.php
CHANGED
@@ -12,7 +12,7 @@
|
|
12 |
class WPSEO_Bulk_Title_Editor_List_Table extends WPSEO_Bulk_List_Table {
|
13 |
|
14 |
/**
|
15 |
-
* Current type for this class will be title
|
16 |
*
|
17 |
* @var string
|
18 |
*/
|
@@ -20,7 +20,7 @@ class WPSEO_Bulk_Title_Editor_List_Table extends WPSEO_Bulk_List_Table {
|
|
20 |
|
21 |
|
22 |
/**
|
23 |
-
* Settings with are used in __construct
|
24 |
*
|
25 |
* @var array
|
26 |
*/
|
@@ -38,7 +38,7 @@ class WPSEO_Bulk_Title_Editor_List_Table extends WPSEO_Bulk_List_Table {
|
|
38 |
protected $target_db_field = 'title';
|
39 |
|
40 |
/**
|
41 |
-
* The columns shown on the table
|
42 |
*
|
43 |
* @return array
|
44 |
*/
|
@@ -55,7 +55,7 @@ class WPSEO_Bulk_Title_Editor_List_Table extends WPSEO_Bulk_List_Table {
|
|
55 |
}
|
56 |
|
57 |
/**
|
58 |
-
* Parse the title columns
|
59 |
*
|
60 |
* @param string $column_name Column name.
|
61 |
* @param object $record Data object.
|
12 |
class WPSEO_Bulk_Title_Editor_List_Table extends WPSEO_Bulk_List_Table {
|
13 |
|
14 |
/**
|
15 |
+
* Current type for this class will be title.
|
16 |
*
|
17 |
* @var string
|
18 |
*/
|
20 |
|
21 |
|
22 |
/**
|
23 |
+
* Settings with are used in __construct.
|
24 |
*
|
25 |
* @var array
|
26 |
*/
|
38 |
protected $target_db_field = 'title';
|
39 |
|
40 |
/**
|
41 |
+
* The columns shown on the table.
|
42 |
*
|
43 |
* @return array
|
44 |
*/
|
55 |
}
|
56 |
|
57 |
/**
|
58 |
+
* Parse the title columns.
|
59 |
*
|
60 |
* @param string $column_name Column name.
|
61 |
* @param object $record Data object.
|
admin/class-config.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Admin_Pages
|
10 |
*
|
11 |
* Class with functionality for the Yoast SEO admin pages.
|
12 |
*/
|
@@ -27,7 +27,7 @@ class WPSEO_Admin_Pages {
|
|
27 |
private $asset_manager;
|
28 |
|
29 |
/**
|
30 |
-
* Class constructor, which basically only hooks the init function on the init hook
|
31 |
*/
|
32 |
public function __construct() {
|
33 |
add_action( 'init', array( $this, 'init' ), 20 );
|
@@ -35,7 +35,7 @@ class WPSEO_Admin_Pages {
|
|
35 |
}
|
36 |
|
37 |
/**
|
38 |
-
* Make sure the needed scripts are loaded for admin pages
|
39 |
*/
|
40 |
public function init() {
|
41 |
if ( filter_input( INPUT_GET, 'wpseo_reset_defaults' ) && wp_verify_nonce( filter_input( INPUT_GET, 'nonce' ), 'wpseo_reset_defaults' ) && current_user_can( 'manage_options' ) ) {
|
@@ -71,10 +71,7 @@ class WPSEO_Admin_Pages {
|
|
71 |
|
72 |
if ( $page === 'wpseo_titles' ) {
|
73 |
wp_localize_script( WPSEO_Admin_Asset_Manager::PREFIX . 'search-appearance', 'wpseoReplaceVarsL10n', $this->localize_replace_vars_script() );
|
74 |
-
wp_localize_script( WPSEO_Admin_Asset_Manager::PREFIX . 'search-appearance', 'wpseoSearchAppearance',
|
75 |
-
'isRtl' => is_rtl(),
|
76 |
-
'userEditUrl' => add_query_arg( 'user_id', '{user_id}', admin_url( 'user-edit.php' ) ),
|
77 |
-
) );
|
78 |
$this->asset_manager->enqueue_script( 'search-appearance' );
|
79 |
$this->asset_manager->enqueue_style( 'search-appearance' );
|
80 |
/**
|
@@ -134,6 +131,37 @@ class WPSEO_Admin_Pages {
|
|
134 |
);
|
135 |
}
|
136 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
/**
|
138 |
* Enqueues and handles all the tool dependencies.
|
139 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Admin_Pages.
|
10 |
*
|
11 |
* Class with functionality for the Yoast SEO admin pages.
|
12 |
*/
|
27 |
private $asset_manager;
|
28 |
|
29 |
/**
|
30 |
+
* Class constructor, which basically only hooks the init function on the init hook.
|
31 |
*/
|
32 |
public function __construct() {
|
33 |
add_action( 'init', array( $this, 'init' ), 20 );
|
35 |
}
|
36 |
|
37 |
/**
|
38 |
+
* Make sure the needed scripts are loaded for admin pages.
|
39 |
*/
|
40 |
public function init() {
|
41 |
if ( filter_input( INPUT_GET, 'wpseo_reset_defaults' ) && wp_verify_nonce( filter_input( INPUT_GET, 'nonce' ), 'wpseo_reset_defaults' ) && current_user_can( 'manage_options' ) ) {
|
71 |
|
72 |
if ( $page === 'wpseo_titles' ) {
|
73 |
wp_localize_script( WPSEO_Admin_Asset_Manager::PREFIX . 'search-appearance', 'wpseoReplaceVarsL10n', $this->localize_replace_vars_script() );
|
74 |
+
wp_localize_script( WPSEO_Admin_Asset_Manager::PREFIX . 'search-appearance', 'wpseoSearchAppearance', $this->localize_search_appearance_script() );
|
|
|
|
|
|
|
75 |
$this->asset_manager->enqueue_script( 'search-appearance' );
|
76 |
$this->asset_manager->enqueue_style( 'search-appearance' );
|
77 |
/**
|
131 |
);
|
132 |
}
|
133 |
|
134 |
+
/**
|
135 |
+
* Retrieves some variables that are needed for the search appearance in JS.
|
136 |
+
*
|
137 |
+
* @return array The search appearance variables.
|
138 |
+
*/
|
139 |
+
public function localize_search_appearance_script() {
|
140 |
+
return array(
|
141 |
+
'isRtl' => is_rtl(),
|
142 |
+
'userEditUrl' => add_query_arg( 'user_id', '{user_id}', admin_url( 'user-edit.php' ) ),
|
143 |
+
'brushstrokeBackgroundURL' => plugins_url( 'images/brushstroke_background.svg', WPSEO_FILE ),
|
144 |
+
'showLocalSEOUpsell' => $this->should_show_local_seo_upsell(),
|
145 |
+
'localSEOUpsellURL' => WPSEO_Shortlinker::get( 'https://yoa.st/3mp' ),
|
146 |
+
);
|
147 |
+
}
|
148 |
+
|
149 |
+
/**
|
150 |
+
* Determines whether the Local SEO upsell should be shown.
|
151 |
+
*
|
152 |
+
* The Local SEO upsell should:
|
153 |
+
* - Only be shown in Free, not when Premium is active.
|
154 |
+
* - Not be shown when Local SEO is active.
|
155 |
+
*
|
156 |
+
* @return bool Whether the Local SEO upsell should be shown.
|
157 |
+
*/
|
158 |
+
private function should_show_local_seo_upsell() {
|
159 |
+
$addon_manager = new WPSEO_Addon_Manager();
|
160 |
+
|
161 |
+
return ! WPSEO_Utils::is_yoast_seo_premium() &&
|
162 |
+
! $addon_manager->has_valid_subscription( WPSEO_Addon_Manager::LOCAL_SLUG );
|
163 |
+
}
|
164 |
+
|
165 |
/**
|
166 |
* Enqueues and handles all the tool dependencies.
|
167 |
*/
|
admin/class-customizer.php
CHANGED
@@ -54,7 +54,7 @@ class WPSEO_Customizer {
|
|
54 |
}
|
55 |
|
56 |
/**
|
57 |
-
* Function to support WordPress Customizer
|
58 |
*
|
59 |
* @param WP_Customize_Manager $wp_customize Manager class instance.
|
60 |
*/
|
@@ -76,7 +76,7 @@ class WPSEO_Customizer {
|
|
76 |
}
|
77 |
|
78 |
/**
|
79 |
-
* Add the breadcrumbs section to the customizer
|
80 |
*/
|
81 |
private function breadcrumbs_section() {
|
82 |
$section_args = array(
|
@@ -90,7 +90,7 @@ class WPSEO_Customizer {
|
|
90 |
}
|
91 |
|
92 |
/**
|
93 |
-
* Returns whether or not the breadcrumbs are active
|
94 |
*
|
95 |
* @return bool
|
96 |
*/
|
@@ -99,7 +99,7 @@ class WPSEO_Customizer {
|
|
99 |
}
|
100 |
|
101 |
/**
|
102 |
-
* Adds the breadcrumbs remove blog checkbox
|
103 |
*/
|
104 |
private function breadcrumbs_blog_remove_setting() {
|
105 |
$index = 'breadcrumbs-display-blog-page';
|
@@ -113,7 +113,7 @@ class WPSEO_Customizer {
|
|
113 |
}
|
114 |
|
115 |
/**
|
116 |
-
* Returns whether or not to show the breadcrumbs blog remove option
|
117 |
*
|
118 |
* @return bool
|
119 |
*/
|
@@ -122,7 +122,7 @@ class WPSEO_Customizer {
|
|
122 |
}
|
123 |
|
124 |
/**
|
125 |
-
* Adds the breadcrumbs separator text field
|
126 |
*/
|
127 |
private function breadcrumbs_separator_setting() {
|
128 |
$index = 'breadcrumbs-sep';
|
@@ -135,7 +135,7 @@ class WPSEO_Customizer {
|
|
135 |
}
|
136 |
|
137 |
/**
|
138 |
-
* Adds the breadcrumbs home anchor text field
|
139 |
*/
|
140 |
private function breadcrumbs_home_setting() {
|
141 |
$index = 'breadcrumbs-home';
|
@@ -147,7 +147,7 @@ class WPSEO_Customizer {
|
|
147 |
}
|
148 |
|
149 |
/**
|
150 |
-
* Adds the breadcrumbs prefix text field
|
151 |
*/
|
152 |
private function breadcrumbs_prefix_setting() {
|
153 |
$index = 'breadcrumbs-prefix';
|
@@ -159,7 +159,7 @@ class WPSEO_Customizer {
|
|
159 |
}
|
160 |
|
161 |
/**
|
162 |
-
* Adds the breadcrumbs archive prefix text field
|
163 |
*/
|
164 |
private function breadcrumbs_archiveprefix_setting() {
|
165 |
$index = 'breadcrumbs-archiveprefix';
|
@@ -171,7 +171,7 @@ class WPSEO_Customizer {
|
|
171 |
}
|
172 |
|
173 |
/**
|
174 |
-
* Adds the breadcrumbs search prefix text field
|
175 |
*/
|
176 |
private function breadcrumbs_searchprefix_setting() {
|
177 |
$index = 'breadcrumbs-searchprefix';
|
@@ -183,7 +183,7 @@ class WPSEO_Customizer {
|
|
183 |
}
|
184 |
|
185 |
/**
|
186 |
-
* Adds the breadcrumb 404 prefix text field
|
187 |
*/
|
188 |
private function breadcrumbs_404_setting() {
|
189 |
$index = 'breadcrumbs-404crumb';
|
54 |
}
|
55 |
|
56 |
/**
|
57 |
+
* Function to support WordPress Customizer.
|
58 |
*
|
59 |
* @param WP_Customize_Manager $wp_customize Manager class instance.
|
60 |
*/
|
76 |
}
|
77 |
|
78 |
/**
|
79 |
+
* Add the breadcrumbs section to the customizer.
|
80 |
*/
|
81 |
private function breadcrumbs_section() {
|
82 |
$section_args = array(
|
90 |
}
|
91 |
|
92 |
/**
|
93 |
+
* Returns whether or not the breadcrumbs are active.
|
94 |
*
|
95 |
* @return bool
|
96 |
*/
|
99 |
}
|
100 |
|
101 |
/**
|
102 |
+
* Adds the breadcrumbs remove blog checkbox.
|
103 |
*/
|
104 |
private function breadcrumbs_blog_remove_setting() {
|
105 |
$index = 'breadcrumbs-display-blog-page';
|
113 |
}
|
114 |
|
115 |
/**
|
116 |
+
* Returns whether or not to show the breadcrumbs blog remove option.
|
117 |
*
|
118 |
* @return bool
|
119 |
*/
|
122 |
}
|
123 |
|
124 |
/**
|
125 |
+
* Adds the breadcrumbs separator text field.
|
126 |
*/
|
127 |
private function breadcrumbs_separator_setting() {
|
128 |
$index = 'breadcrumbs-sep';
|
135 |
}
|
136 |
|
137 |
/**
|
138 |
+
* Adds the breadcrumbs home anchor text field.
|
139 |
*/
|
140 |
private function breadcrumbs_home_setting() {
|
141 |
$index = 'breadcrumbs-home';
|
147 |
}
|
148 |
|
149 |
/**
|
150 |
+
* Adds the breadcrumbs prefix text field.
|
151 |
*/
|
152 |
private function breadcrumbs_prefix_setting() {
|
153 |
$index = 'breadcrumbs-prefix';
|
159 |
}
|
160 |
|
161 |
/**
|
162 |
+
* Adds the breadcrumbs archive prefix text field.
|
163 |
*/
|
164 |
private function breadcrumbs_archiveprefix_setting() {
|
165 |
$index = 'breadcrumbs-archiveprefix';
|
171 |
}
|
172 |
|
173 |
/**
|
174 |
+
* Adds the breadcrumbs search prefix text field.
|
175 |
*/
|
176 |
private function breadcrumbs_searchprefix_setting() {
|
177 |
$index = 'breadcrumbs-searchprefix';
|
183 |
}
|
184 |
|
185 |
/**
|
186 |
+
* Adds the breadcrumb 404 prefix text field.
|
187 |
*/
|
188 |
private function breadcrumbs_404_setting() {
|
189 |
$index = 'breadcrumbs-404crumb';
|
admin/class-database-proxy.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Represents the proxy for communicating with the database
|
10 |
*/
|
11 |
class WPSEO_Database_Proxy {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Represents the proxy for communicating with the database.
|
10 |
*/
|
11 |
class WPSEO_Database_Proxy {
|
12 |
|
admin/class-export.php
CHANGED
@@ -6,9 +6,9 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Export
|
10 |
*
|
11 |
-
* Class with functionality to export the WP SEO settings
|
12 |
*/
|
13 |
class WPSEO_Export {
|
14 |
|
@@ -113,7 +113,7 @@ class WPSEO_Export {
|
|
113 |
}
|
114 |
|
115 |
/**
|
116 |
-
* Writes a line to the export
|
117 |
*
|
118 |
* @param string $line Line string.
|
119 |
* @param boolean $newline_first Boolean flag whether to prepend with new line.
|
@@ -126,7 +126,7 @@ class WPSEO_Export {
|
|
126 |
}
|
127 |
|
128 |
/**
|
129 |
-
* Writes an entire option group to the export
|
130 |
*
|
131 |
* @param string $opt_group Option group name.
|
132 |
*/
|
@@ -154,7 +154,7 @@ class WPSEO_Export {
|
|
154 |
}
|
155 |
|
156 |
/**
|
157 |
-
* Writes a settings line to the export
|
158 |
*
|
159 |
* @param string $key Key string.
|
160 |
* @param string $val Value string.
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Export.
|
10 |
*
|
11 |
+
* Class with functionality to export the WP SEO settings.
|
12 |
*/
|
13 |
class WPSEO_Export {
|
14 |
|
113 |
}
|
114 |
|
115 |
/**
|
116 |
+
* Writes a line to the export.
|
117 |
*
|
118 |
* @param string $line Line string.
|
119 |
* @param boolean $newline_first Boolean flag whether to prepend with new line.
|
126 |
}
|
127 |
|
128 |
/**
|
129 |
+
* Writes an entire option group to the export.
|
130 |
*
|
131 |
* @param string $opt_group Option group name.
|
132 |
*/
|
154 |
}
|
155 |
|
156 |
/**
|
157 |
+
* Writes a settings line to the export.
|
158 |
*
|
159 |
* @param string $key Key string.
|
160 |
* @param string $val Value string.
|
admin/class-extensions.php
CHANGED
@@ -17,34 +17,34 @@ class WPSEO_Extensions {
|
|
17 |
*/
|
18 |
protected $extensions = array(
|
19 |
'Yoast SEO Premium' => array(
|
20 |
-
'slug'
|
21 |
-
'identifier'
|
22 |
-
'classname'
|
23 |
-
'my-yoast-slug'
|
24 |
),
|
25 |
'News SEO' => array(
|
26 |
-
'slug'
|
27 |
-
'identifier'
|
28 |
-
'classname'
|
29 |
-
'my-yoast-slug'
|
30 |
),
|
31 |
'Yoast WooCommerce SEO' => array(
|
32 |
-
'slug'
|
33 |
-
'identifier'
|
34 |
-
'classname'
|
35 |
-
'my-yoast-slug'
|
36 |
),
|
37 |
'Video SEO' => array(
|
38 |
-
'slug'
|
39 |
-
'identifier'
|
40 |
-
'classname'
|
41 |
-
'my-yoast-slug'
|
42 |
),
|
43 |
'Local SEO' => array(
|
44 |
-
'slug'
|
45 |
-
'identifier'
|
46 |
-
'classname'
|
47 |
-
'my-yoast-slug'
|
48 |
),
|
49 |
);
|
50 |
|
17 |
*/
|
18 |
protected $extensions = array(
|
19 |
'Yoast SEO Premium' => array(
|
20 |
+
'slug' => 'yoast-seo-premium',
|
21 |
+
'identifier' => 'wordpress-seo-premium',
|
22 |
+
'classname' => 'WPSEO_Premium',
|
23 |
+
'my-yoast-slug' => WPSEO_Addon_Manager::PREMIUM_SLUG,
|
24 |
),
|
25 |
'News SEO' => array(
|
26 |
+
'slug' => 'news-seo',
|
27 |
+
'identifier' => 'wpseo-news',
|
28 |
+
'classname' => 'WPSEO_News',
|
29 |
+
'my-yoast-slug' => WPSEO_Addon_Manager::NEWS_SLUG,
|
30 |
),
|
31 |
'Yoast WooCommerce SEO' => array(
|
32 |
+
'slug' => 'woocommerce-yoast-seo',
|
33 |
+
'identifier' => 'wpseo-woocommerce',
|
34 |
+
'classname' => 'Yoast_WooCommerce_SEO',
|
35 |
+
'my-yoast-slug' => WPSEO_Addon_Manager::WOOCOMMERCE_SLUG,
|
36 |
),
|
37 |
'Video SEO' => array(
|
38 |
+
'slug' => 'video-seo-for-wordpress',
|
39 |
+
'identifier' => 'wpseo-video',
|
40 |
+
'classname' => 'WPSEO_Video_Sitemap',
|
41 |
+
'my-yoast-slug' => WPSEO_Addon_Manager::VIDEO_SLUG,
|
42 |
),
|
43 |
'Local SEO' => array(
|
44 |
+
'slug' => 'local-seo-for-wordpress',
|
45 |
+
'identifier' => 'wpseo-local',
|
46 |
+
'classname' => 'WPSEO_Local_Core',
|
47 |
+
'my-yoast-slug' => WPSEO_Addon_Manager::LOCAL_SLUG,
|
48 |
),
|
49 |
);
|
50 |
|
admin/class-gutenberg-compatibility.php
CHANGED
@@ -15,14 +15,14 @@ class WPSEO_Gutenberg_Compatibility {
|
|
15 |
*
|
16 |
* @var string
|
17 |
*/
|
18 |
-
const CURRENT_RELEASE = '5.
|
19 |
|
20 |
/**
|
21 |
* The minimally supported version of Gutenberg by the plugin.
|
22 |
*
|
23 |
* @var string
|
24 |
*/
|
25 |
-
const MINIMUM_SUPPORTED = '5.
|
26 |
|
27 |
/**
|
28 |
* @var string
|
15 |
*
|
16 |
* @var string
|
17 |
*/
|
18 |
+
const CURRENT_RELEASE = '5.5.0';
|
19 |
|
20 |
/**
|
21 |
* The minimally supported version of Gutenberg by the plugin.
|
22 |
*
|
23 |
* @var string
|
24 |
*/
|
25 |
+
const MINIMUM_SUPPORTED = '5.5.0';
|
26 |
|
27 |
/**
|
28 |
* @var string
|
admin/class-help-center-item.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Help_Center_Item
|
10 |
*/
|
11 |
class WPSEO_Help_Center_Item {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Help_Center_Item.
|
10 |
*/
|
11 |
class WPSEO_Help_Center_Item {
|
12 |
|
admin/class-help-center.php
CHANGED
@@ -238,7 +238,7 @@ class WPSEO_Help_Center {
|
|
238 |
*
|
239 |
* %s is replaced with <code>%s</code> and replaced again in the javascript with the actual variable.
|
240 |
*
|
241 |
-
* @return
|
242 |
*/
|
243 |
public static function get_translated_texts() {
|
244 |
// Esc_html is not needed because React already handles HTML in the (translations of) these strings.
|
238 |
*
|
239 |
* %s is replaced with <code>%s</code> and replaced again in the javascript with the actual variable.
|
240 |
*
|
241 |
+
* @return array Translated text strings for the help center.
|
242 |
*/
|
243 |
public static function get_translated_texts() {
|
244 |
// Esc_html is not needed because React already handles HTML in the (translations of) these strings.
|
admin/class-keyword-synonyms-modal.php
CHANGED
@@ -36,7 +36,7 @@ class WPSEO_Keyword_Synonyms_Modal {
|
|
36 |
__( 'Get %s', 'wordpress-seo' ),
|
37 |
'Yoast SEO Premium'
|
38 |
),
|
39 |
-
'small' => __( '1 year free
|
40 |
'a11yNotice.opensInNewTab' => __( '(Opens in a new browser tab)', 'wordpress-seo' ),
|
41 |
);
|
42 |
}
|
36 |
__( 'Get %s', 'wordpress-seo' ),
|
37 |
'Yoast SEO Premium'
|
38 |
),
|
39 |
+
'small' => __( '1 year free support and updates included!', 'wordpress-seo' ),
|
40 |
'a11yNotice.opensInNewTab' => __( '(Opens in a new browser tab)', 'wordpress-seo' ),
|
41 |
);
|
42 |
}
|
admin/class-license-page-manager.php
CHANGED
@@ -187,7 +187,7 @@ class WPSEO_License_Page_Manager implements WPSEO_WordPress_Integration {
|
|
187 |
}
|
188 |
|
189 |
/**
|
190 |
-
* Creates an instance of Yoast_Notification
|
191 |
*
|
192 |
* @param string $product_name The product to create the notification for.
|
193 |
*
|
187 |
}
|
188 |
|
189 |
/**
|
190 |
+
* Creates an instance of Yoast_Notification.
|
191 |
*
|
192 |
* @param string $product_name The product to create the notification for.
|
193 |
*
|
admin/class-meta-columns.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Meta_Columns
|
10 |
*/
|
11 |
class WPSEO_Meta_Columns {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Meta_Columns.
|
10 |
*/
|
11 |
class WPSEO_Meta_Columns {
|
12 |
|
admin/class-meta-storage.php
CHANGED
@@ -89,7 +89,7 @@ class WPSEO_Meta_Storage implements WPSEO_Installable {
|
|
89 |
}
|
90 |
|
91 |
/**
|
92 |
-
* Updates the incoming link count
|
93 |
*
|
94 |
* @param array $post_ids The posts to update the incoming link count for.
|
95 |
* @param WPSEO_Link_Storage $storage The link storage object.
|
89 |
}
|
90 |
|
91 |
/**
|
92 |
+
* Updates the incoming link count.
|
93 |
*
|
94 |
* @param array $post_ids The posts to update the incoming link count for.
|
95 |
* @param WPSEO_Link_Storage $storage The link storage object.
|
admin/class-multiple-keywords-modal.php
CHANGED
@@ -36,7 +36,7 @@ class WPSEO_Multiple_Keywords_Modal {
|
|
36 |
__( 'Get %s', 'wordpress-seo' ),
|
37 |
'Yoast SEO Premium'
|
38 |
),
|
39 |
-
'small' => __( '1 year free
|
40 |
'a11yNotice.opensInNewTab' => __( '(Opens in a new browser tab)', 'wordpress-seo' ),
|
41 |
);
|
42 |
}
|
36 |
__( 'Get %s', 'wordpress-seo' ),
|
37 |
'Yoast SEO Premium'
|
38 |
),
|
39 |
+
'small' => __( '1 year free support and updates included!', 'wordpress-seo' ),
|
40 |
'a11yNotice.opensInNewTab' => __( '(Opens in a new browser tab)', 'wordpress-seo' ),
|
41 |
);
|
42 |
}
|
admin/class-my-yoast-proxy.php
CHANGED
@@ -144,7 +144,7 @@ class WPSEO_MyYoast_Proxy implements WPSEO_WordPress_Integration {
|
|
144 |
/**
|
145 |
* Tries to load the given url.
|
146 |
*
|
147 |
-
* @
|
148 |
*
|
149 |
* @codeCoverageIgnore
|
150 |
*
|
@@ -185,7 +185,7 @@ class WPSEO_MyYoast_Proxy implements WPSEO_WordPress_Integration {
|
|
185 |
*
|
186 |
* @codeCoverageIgnore
|
187 |
*
|
188 |
-
* @
|
189 |
*
|
190 |
* @return bool True when the PHP configuration allows for url loading via readfile.
|
191 |
*/
|
144 |
/**
|
145 |
* Tries to load the given url.
|
146 |
*
|
147 |
+
* @link https://php.net/manual/en/function.readfile.php
|
148 |
*
|
149 |
* @codeCoverageIgnore
|
150 |
*
|
185 |
*
|
186 |
* @codeCoverageIgnore
|
187 |
*
|
188 |
+
* @link https://php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen
|
189 |
*
|
190 |
* @return bool True when the PHP configuration allows for url loading via readfile.
|
191 |
*/
|
admin/class-option-tab.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Option_Tab
|
10 |
*/
|
11 |
class WPSEO_Option_Tab {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Option_Tab.
|
10 |
*/
|
11 |
class WPSEO_Option_Tab {
|
12 |
|
admin/class-option-tabs-formatter.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Option_Tabs_Formatter
|
10 |
*/
|
11 |
class WPSEO_Option_Tabs_Formatter {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Option_Tabs_Formatter.
|
10 |
*/
|
11 |
class WPSEO_Option_Tabs_Formatter {
|
12 |
|
admin/class-option-tabs.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Option_Tabs
|
10 |
*/
|
11 |
class WPSEO_Option_Tabs {
|
12 |
|
@@ -47,7 +47,7 @@ class WPSEO_Option_Tabs {
|
|
47 |
}
|
48 |
|
49 |
/**
|
50 |
-
* Get the base
|
51 |
*
|
52 |
* @return string
|
53 |
*/
|
@@ -56,7 +56,7 @@ class WPSEO_Option_Tabs {
|
|
56 |
}
|
57 |
|
58 |
/**
|
59 |
-
* Add a tab
|
60 |
*
|
61 |
* @param WPSEO_Option_Tab $tab Tab to add.
|
62 |
*
|
@@ -69,7 +69,7 @@ class WPSEO_Option_Tabs {
|
|
69 |
}
|
70 |
|
71 |
/**
|
72 |
-
* Get active tab
|
73 |
*
|
74 |
* @return null|WPSEO_Option_Tab Get the active tab.
|
75 |
*/
|
@@ -90,7 +90,7 @@ class WPSEO_Option_Tabs {
|
|
90 |
}
|
91 |
|
92 |
/**
|
93 |
-
* Is the tab the active tab
|
94 |
*
|
95 |
* @param WPSEO_Option_Tab $tab Tab to check for active tab.
|
96 |
*
|
@@ -101,7 +101,7 @@ class WPSEO_Option_Tabs {
|
|
101 |
}
|
102 |
|
103 |
/**
|
104 |
-
* Get all tabs
|
105 |
*
|
106 |
* @return WPSEO_Option_Tab[]
|
107 |
*/
|
@@ -110,7 +110,7 @@ class WPSEO_Option_Tabs {
|
|
110 |
}
|
111 |
|
112 |
/**
|
113 |
-
* Display the tabs
|
114 |
*
|
115 |
* @param Yoast_Form $yform Yoast Form needed in the views.
|
116 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Option_Tabs.
|
10 |
*/
|
11 |
class WPSEO_Option_Tabs {
|
12 |
|
47 |
}
|
48 |
|
49 |
/**
|
50 |
+
* Get the base.
|
51 |
*
|
52 |
* @return string
|
53 |
*/
|
56 |
}
|
57 |
|
58 |
/**
|
59 |
+
* Add a tab.
|
60 |
*
|
61 |
* @param WPSEO_Option_Tab $tab Tab to add.
|
62 |
*
|
69 |
}
|
70 |
|
71 |
/**
|
72 |
+
* Get active tab.
|
73 |
*
|
74 |
* @return null|WPSEO_Option_Tab Get the active tab.
|
75 |
*/
|
90 |
}
|
91 |
|
92 |
/**
|
93 |
+
* Is the tab the active tab.
|
94 |
*
|
95 |
* @param WPSEO_Option_Tab $tab Tab to check for active tab.
|
96 |
*
|
101 |
}
|
102 |
|
103 |
/**
|
104 |
+
* Get all tabs.
|
105 |
*
|
106 |
* @return WPSEO_Option_Tab[]
|
107 |
*/
|
110 |
}
|
111 |
|
112 |
/**
|
113 |
+
* Display the tabs.
|
114 |
*
|
115 |
* @param Yoast_Form $yform Yoast Form needed in the views.
|
116 |
*/
|
admin/class-paper-presenter.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_presenter_paper
|
10 |
*/
|
11 |
class WPSEO_Paper_Presenter {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_presenter_paper.
|
10 |
*/
|
11 |
class WPSEO_Paper_Presenter {
|
12 |
|
admin/class-plugin-compatibility.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Plugin_Compatibility
|
10 |
*/
|
11 |
class WPSEO_Plugin_Compatibility {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Plugin_Compatibility.
|
10 |
*/
|
11 |
class WPSEO_Plugin_Compatibility {
|
12 |
|
admin/class-plugin-conflict.php
CHANGED
@@ -106,7 +106,7 @@ class WPSEO_Plugin_Conflict extends Yoast_Plugin_Conflict {
|
|
106 |
);
|
107 |
|
108 |
/**
|
109 |
-
* Overrides instance to set with this class as class
|
110 |
*
|
111 |
* @param string $class_name Optional class name.
|
112 |
*
|
106 |
);
|
107 |
|
108 |
/**
|
109 |
+
* Overrides instance to set with this class as class.
|
110 |
*
|
111 |
* @param string $class_name Optional class name.
|
112 |
*
|
admin/class-premium-popup.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Premium_popup
|
10 |
*/
|
11 |
class WPSEO_Premium_Popup {
|
12 |
|
@@ -25,14 +25,14 @@ class WPSEO_Premium_Popup {
|
|
25 |
private $heading_level = '';
|
26 |
|
27 |
/**
|
28 |
-
* The title of the popup
|
29 |
*
|
30 |
* @var String
|
31 |
*/
|
32 |
private $title = '';
|
33 |
|
34 |
/**
|
35 |
-
* The content of the popup
|
36 |
*
|
37 |
* @var String
|
38 |
*/
|
@@ -85,7 +85,7 @@ class WPSEO_Premium_Popup {
|
|
85 |
if ( $popup ) {
|
86 |
$classes = ' hidden';
|
87 |
}
|
88 |
-
$micro_copy = __( '1 year free
|
89 |
|
90 |
$popup = <<<EO_POPUP
|
91 |
<div id="wpseo-{$this->identifier}-popup" class="wpseo-premium-popup wp-clearfix$classes">
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Premium_popup.
|
10 |
*/
|
11 |
class WPSEO_Premium_Popup {
|
12 |
|
25 |
private $heading_level = '';
|
26 |
|
27 |
/**
|
28 |
+
* The title of the popup.
|
29 |
*
|
30 |
* @var String
|
31 |
*/
|
32 |
private $title = '';
|
33 |
|
34 |
/**
|
35 |
+
* The content of the popup.
|
36 |
*
|
37 |
* @var String
|
38 |
*/
|
85 |
if ( $popup ) {
|
86 |
$classes = ' hidden';
|
87 |
}
|
88 |
+
$micro_copy = __( '1 year free support and updates included!', 'wordpress-seo' );
|
89 |
|
90 |
$popup = <<<EO_POPUP
|
91 |
<div id="wpseo-{$this->identifier}-popup" class="wpseo-premium-popup wp-clearfix$classes">
|
admin/class-primary-term-admin.php
CHANGED
@@ -8,12 +8,12 @@
|
|
8 |
/**
|
9 |
* Adds the UI to change the primary term for a post.
|
10 |
*/
|
11 |
-
class WPSEO_Primary_Term_Admin {
|
12 |
|
13 |
/**
|
14 |
* Constructor.
|
15 |
*/
|
16 |
-
public function
|
17 |
add_filter( 'wpseo_content_meta_section_content', array( $this, 'add_input_fields' ) );
|
18 |
|
19 |
add_action( 'admin_footer', array( $this, 'wp_footer' ), 10 );
|
@@ -107,7 +107,7 @@ class WPSEO_Primary_Term_Admin {
|
|
107 |
}
|
108 |
|
109 |
/**
|
110 |
-
* Enqueues all the assets needed for the primary term interface
|
111 |
*
|
112 |
* @return void
|
113 |
*/
|
@@ -138,7 +138,7 @@ class WPSEO_Primary_Term_Admin {
|
|
138 |
}
|
139 |
|
140 |
/**
|
141 |
-
* Saves all selected primary terms
|
142 |
*
|
143 |
* @param int $post_id Post ID to save primary terms for.
|
144 |
*/
|
@@ -156,7 +156,7 @@ class WPSEO_Primary_Term_Admin {
|
|
156 |
}
|
157 |
|
158 |
/**
|
159 |
-
* Gets the id of the primary term
|
160 |
*
|
161 |
* @param string $taxonomy_name Taxonomy name for the term.
|
162 |
*
|
@@ -169,7 +169,7 @@ class WPSEO_Primary_Term_Admin {
|
|
169 |
}
|
170 |
|
171 |
/**
|
172 |
-
* Returns all the taxonomies for which the primary term selection is enabled
|
173 |
*
|
174 |
* @param int $post_id Default current post ID.
|
175 |
* @return array
|
8 |
/**
|
9 |
* Adds the UI to change the primary term for a post.
|
10 |
*/
|
11 |
+
class WPSEO_Primary_Term_Admin implements WPSEO_WordPress_Integration {
|
12 |
|
13 |
/**
|
14 |
* Constructor.
|
15 |
*/
|
16 |
+
public function register_hooks() {
|
17 |
add_filter( 'wpseo_content_meta_section_content', array( $this, 'add_input_fields' ) );
|
18 |
|
19 |
add_action( 'admin_footer', array( $this, 'wp_footer' ), 10 );
|
107 |
}
|
108 |
|
109 |
/**
|
110 |
+
* Enqueues all the assets needed for the primary term interface.
|
111 |
*
|
112 |
* @return void
|
113 |
*/
|
138 |
}
|
139 |
|
140 |
/**
|
141 |
+
* Saves all selected primary terms.
|
142 |
*
|
143 |
* @param int $post_id Post ID to save primary terms for.
|
144 |
*/
|
156 |
}
|
157 |
|
158 |
/**
|
159 |
+
* Gets the id of the primary term.
|
160 |
*
|
161 |
* @param string $taxonomy_name Taxonomy name for the term.
|
162 |
*
|
169 |
}
|
170 |
|
171 |
/**
|
172 |
+
* Returns all the taxonomies for which the primary term selection is enabled.
|
173 |
*
|
174 |
* @param int $post_id Default current post ID.
|
175 |
* @return array
|
admin/class-product-upsell-notice.php
CHANGED
@@ -36,15 +36,7 @@ class WPSEO_Product_Upsell_Notice {
|
|
36 |
* Checks if the notice should be added or removed.
|
37 |
*/
|
38 |
public function initialize() {
|
39 |
-
|
40 |
-
$this->remove_notification();
|
41 |
-
|
42 |
-
return;
|
43 |
-
}
|
44 |
-
|
45 |
-
if ( $this->should_add_notification() ) {
|
46 |
-
$this->add_notification();
|
47 |
-
}
|
48 |
}
|
49 |
|
50 |
/**
|
@@ -194,7 +186,7 @@ class WPSEO_Product_Upsell_Notice {
|
|
194 |
}
|
195 |
|
196 |
/**
|
197 |
-
* Returns the set options
|
198 |
*
|
199 |
* @return mixed|void
|
200 |
*/
|
36 |
* Checks if the notice should be added or removed.
|
37 |
*/
|
38 |
public function initialize() {
|
39 |
+
$this->remove_notification();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
}
|
41 |
|
42 |
/**
|
186 |
}
|
187 |
|
188 |
/**
|
189 |
+
* Returns the set options.
|
190 |
*
|
191 |
* @return mixed|void
|
192 |
*/
|
admin/class-recalculate-scores.php
CHANGED
@@ -6,9 +6,9 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Recalculate_Scores
|
10 |
*
|
11 |
-
* This class handles the SEO score recalculation for all posts with a filled focus keyword
|
12 |
*/
|
13 |
class WPSEO_Recalculate_Scores {
|
14 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Recalculate_Scores.
|
10 |
*
|
11 |
+
* This class handles the SEO score recalculation for all posts with a filled focus keyword.
|
12 |
*/
|
13 |
class WPSEO_Recalculate_Scores {
|
14 |
|
admin/class-social-admin.php
CHANGED
@@ -194,7 +194,7 @@ class WPSEO_Social_Admin extends WPSEO_Metabox {
|
|
194 |
*
|
195 |
* @param array $field_defs Array of metaboxes to save.
|
196 |
*
|
197 |
-
* @return
|
198 |
*/
|
199 |
public function save_meta_boxes( $field_defs ) {
|
200 |
if ( ! isset( $_POST['yoast_free_metabox_social_nonce'] ) || ! wp_verify_nonce( $_POST['yoast_free_metabox_social_nonce'], 'yoast_free_metabox_social' ) ) {
|
194 |
*
|
195 |
* @param array $field_defs Array of metaboxes to save.
|
196 |
*
|
197 |
+
* @return array
|
198 |
*/
|
199 |
public function save_meta_boxes( $field_defs ) {
|
200 |
if ( ! isset( $_POST['yoast_free_metabox_social_nonce'] ) || ! wp_verify_nonce( $_POST['yoast_free_metabox_social_nonce'], 'yoast_free_metabox_social' ) ) {
|
admin/class-yoast-alerts.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class Yoast_Alerts
|
10 |
*/
|
11 |
class Yoast_Alerts {
|
12 |
|
@@ -91,7 +91,7 @@ class Yoast_Alerts {
|
|
91 |
}
|
92 |
|
93 |
/**
|
94 |
-
* Enqueue assets
|
95 |
*/
|
96 |
public function enqueue_assets() {
|
97 |
|
@@ -100,7 +100,7 @@ class Yoast_Alerts {
|
|
100 |
}
|
101 |
|
102 |
/**
|
103 |
-
* Handle ajax request to dismiss an alert
|
104 |
*/
|
105 |
public function ajax_dismiss_alert() {
|
106 |
|
@@ -116,7 +116,7 @@ class Yoast_Alerts {
|
|
116 |
}
|
117 |
|
118 |
/**
|
119 |
-
* Handle ajax request to restore an alert
|
120 |
*/
|
121 |
public function ajax_restore_alert() {
|
122 |
|
@@ -132,7 +132,7 @@ class Yoast_Alerts {
|
|
132 |
}
|
133 |
|
134 |
/**
|
135 |
-
* Create AJAX response data
|
136 |
*
|
137 |
* @param string $type Alert type.
|
138 |
*/
|
@@ -148,7 +148,7 @@ class Yoast_Alerts {
|
|
148 |
}
|
149 |
|
150 |
/**
|
151 |
-
* Get the HTML to return in the AJAX request
|
152 |
*
|
153 |
* @param string $type Alert type.
|
154 |
*
|
@@ -181,7 +181,7 @@ class Yoast_Alerts {
|
|
181 |
}
|
182 |
|
183 |
/**
|
184 |
-
* Extract the Yoast Notification from the AJAX request
|
185 |
*
|
186 |
* @return null|Yoast_Notification
|
187 |
*/
|
@@ -194,7 +194,7 @@ class Yoast_Alerts {
|
|
194 |
}
|
195 |
|
196 |
/**
|
197 |
-
* Show the alerts overview page
|
198 |
*/
|
199 |
public static function show_overview_page() {
|
200 |
|
@@ -205,7 +205,7 @@ class Yoast_Alerts {
|
|
205 |
}
|
206 |
|
207 |
/**
|
208 |
-
* Collect the alerts and group them together
|
209 |
*/
|
210 |
public static function collect_alerts() {
|
211 |
|
@@ -224,7 +224,7 @@ class Yoast_Alerts {
|
|
224 |
}
|
225 |
|
226 |
/**
|
227 |
-
* Get the variables needed in the views
|
228 |
*
|
229 |
* @return array
|
230 |
*/
|
@@ -249,7 +249,7 @@ class Yoast_Alerts {
|
|
249 |
}
|
250 |
|
251 |
/**
|
252 |
-
* Get the number of active alerts
|
253 |
*
|
254 |
* @return int
|
255 |
*/
|
@@ -259,7 +259,7 @@ class Yoast_Alerts {
|
|
259 |
}
|
260 |
|
261 |
/**
|
262 |
-
* Filter out any non-errors
|
263 |
*
|
264 |
* @param Yoast_Notification $notification Notification to test.
|
265 |
*
|
@@ -271,7 +271,7 @@ class Yoast_Alerts {
|
|
271 |
}
|
272 |
|
273 |
/**
|
274 |
-
* Filter out any non-warnings
|
275 |
*
|
276 |
* @param Yoast_Notification $notification Notification to test.
|
277 |
*
|
@@ -283,7 +283,7 @@ class Yoast_Alerts {
|
|
283 |
}
|
284 |
|
285 |
/**
|
286 |
-
* Filter out any dismissed notifications
|
287 |
*
|
288 |
* @param Yoast_Notification $notification Notification to test.
|
289 |
*
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class Yoast_Alerts.
|
10 |
*/
|
11 |
class Yoast_Alerts {
|
12 |
|
91 |
}
|
92 |
|
93 |
/**
|
94 |
+
* Enqueue assets.
|
95 |
*/
|
96 |
public function enqueue_assets() {
|
97 |
|
100 |
}
|
101 |
|
102 |
/**
|
103 |
+
* Handle ajax request to dismiss an alert.
|
104 |
*/
|
105 |
public function ajax_dismiss_alert() {
|
106 |
|
116 |
}
|
117 |
|
118 |
/**
|
119 |
+
* Handle ajax request to restore an alert.
|
120 |
*/
|
121 |
public function ajax_restore_alert() {
|
122 |
|
132 |
}
|
133 |
|
134 |
/**
|
135 |
+
* Create AJAX response data.
|
136 |
*
|
137 |
* @param string $type Alert type.
|
138 |
*/
|
148 |
}
|
149 |
|
150 |
/**
|
151 |
+
* Get the HTML to return in the AJAX request.
|
152 |
*
|
153 |
* @param string $type Alert type.
|
154 |
*
|
181 |
}
|
182 |
|
183 |
/**
|
184 |
+
* Extract the Yoast Notification from the AJAX request.
|
185 |
*
|
186 |
* @return null|Yoast_Notification
|
187 |
*/
|
194 |
}
|
195 |
|
196 |
/**
|
197 |
+
* Show the alerts overview page.
|
198 |
*/
|
199 |
public static function show_overview_page() {
|
200 |
|
205 |
}
|
206 |
|
207 |
/**
|
208 |
+
* Collect the alerts and group them together.
|
209 |
*/
|
210 |
public static function collect_alerts() {
|
211 |
|
224 |
}
|
225 |
|
226 |
/**
|
227 |
+
* Get the variables needed in the views.
|
228 |
*
|
229 |
* @return array
|
230 |
*/
|
249 |
}
|
250 |
|
251 |
/**
|
252 |
+
* Get the number of active alerts.
|
253 |
*
|
254 |
* @return int
|
255 |
*/
|
259 |
}
|
260 |
|
261 |
/**
|
262 |
+
* Filter out any non-errors.
|
263 |
*
|
264 |
* @param Yoast_Notification $notification Notification to test.
|
265 |
*
|
271 |
}
|
272 |
|
273 |
/**
|
274 |
+
* Filter out any non-warnings.
|
275 |
*
|
276 |
* @param Yoast_Notification $notification Notification to test.
|
277 |
*
|
283 |
}
|
284 |
|
285 |
/**
|
286 |
+
* Filter out any dismissed notifications.
|
287 |
*
|
288 |
* @param Yoast_Notification $notification Notification to test.
|
289 |
*
|
admin/class-yoast-columns.php
CHANGED
@@ -11,7 +11,7 @@
|
|
11 |
class WPSEO_Yoast_Columns implements WPSEO_WordPress_Integration {
|
12 |
|
13 |
/**
|
14 |
-
* Registers all hooks to WordPress
|
15 |
*/
|
16 |
public function register_hooks() {
|
17 |
add_action( 'load-edit.php', array( $this, 'add_help_tab' ) );
|
11 |
class WPSEO_Yoast_Columns implements WPSEO_WordPress_Integration {
|
12 |
|
13 |
/**
|
14 |
+
* Registers all hooks to WordPress.
|
15 |
*/
|
16 |
public function register_hooks() {
|
17 |
add_action( 'load-edit.php', array( $this, 'add_help_tab' ) );
|
admin/class-yoast-dashboard-widget.php
CHANGED
@@ -6,9 +6,9 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class to change or add WordPress dashboard widgets
|
10 |
*/
|
11 |
-
class Yoast_Dashboard_Widget {
|
12 |
|
13 |
/**
|
14 |
* @var string
|
@@ -26,16 +26,23 @@ class Yoast_Dashboard_Widget {
|
|
26 |
protected $statistics;
|
27 |
|
28 |
/**
|
29 |
-
*
|
|
|
|
|
30 |
*/
|
31 |
public function __construct( WPSEO_Statistics $statistics = null ) {
|
32 |
-
if (
|
33 |
$statistics = new WPSEO_Statistics();
|
34 |
}
|
35 |
|
36 |
$this->statistics = $statistics;
|
37 |
$this->asset_manager = new WPSEO_Admin_Asset_Manager();
|
|
|
38 |
|
|
|
|
|
|
|
|
|
39 |
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_dashboard_assets' ) );
|
40 |
add_action( 'admin_init', array( $this, 'queue_dashboard_widget' ) );
|
41 |
}
|
@@ -52,7 +59,7 @@ class Yoast_Dashboard_Widget {
|
|
52 |
}
|
53 |
|
54 |
/**
|
55 |
-
* Adds dashboard widget to WordPress
|
56 |
*/
|
57 |
public function add_dashboard_widget() {
|
58 |
add_filter( 'postbox_classes_dashboard_wpseo-dashboard-overview', array( $this, 'wpseo_dashboard_overview_class' ) );
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class to change or add WordPress dashboard widgets.
|
10 |
*/
|
11 |
+
class Yoast_Dashboard_Widget implements WPSEO_WordPress_Integration {
|
12 |
|
13 |
/**
|
14 |
* @var string
|
26 |
protected $statistics;
|
27 |
|
28 |
/**
|
29 |
+
* Yoast_Dashboard_Widget constructor.
|
30 |
+
*
|
31 |
+
* @param WPSEO_Statistics|null $statistics WPSEO_Statistics instance.
|
32 |
*/
|
33 |
public function __construct( WPSEO_Statistics $statistics = null ) {
|
34 |
+
if ( $statistics === null ) {
|
35 |
$statistics = new WPSEO_Statistics();
|
36 |
}
|
37 |
|
38 |
$this->statistics = $statistics;
|
39 |
$this->asset_manager = new WPSEO_Admin_Asset_Manager();
|
40 |
+
}
|
41 |
|
42 |
+
/**
|
43 |
+
* Register WordPress hooks.
|
44 |
+
*/
|
45 |
+
public function register_hooks() {
|
46 |
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_dashboard_assets' ) );
|
47 |
add_action( 'admin_init', array( $this, 'queue_dashboard_widget' ) );
|
48 |
}
|
59 |
}
|
60 |
|
61 |
/**
|
62 |
+
* Adds dashboard widget to WordPress.
|
63 |
*/
|
64 |
public function add_dashboard_widget() {
|
65 |
add_filter( 'postbox_classes_dashboard_wpseo-dashboard-overview', array( $this, 'wpseo_dashboard_overview_class' ) );
|
admin/class-yoast-form.php
CHANGED
@@ -41,7 +41,7 @@ class Yoast_Form {
|
|
41 |
protected $option_instance = null;
|
42 |
|
43 |
/**
|
44 |
-
* Get the singleton instance of this class
|
45 |
*
|
46 |
* @since 2.0
|
47 |
*
|
@@ -56,7 +56,7 @@ class Yoast_Form {
|
|
56 |
}
|
57 |
|
58 |
/**
|
59 |
-
* Generates the header for admin pages
|
60 |
*
|
61 |
* @since 2.0
|
62 |
*
|
@@ -73,8 +73,8 @@ class Yoast_Form {
|
|
73 |
<div class="wrap yoast wpseo-admin-page <?php echo esc_attr( 'page-' . $option ); ?>">
|
74 |
<?php
|
75 |
/**
|
76 |
-
* Display the updated/error messages
|
77 |
-
* Only needed as our settings page is not under options, otherwise it will automatically be included
|
78 |
*
|
79 |
* @see settings_errors()
|
80 |
*/
|
@@ -104,7 +104,7 @@ class Yoast_Form {
|
|
104 |
}
|
105 |
|
106 |
/**
|
107 |
-
* Set the option used in output for form elements
|
108 |
*
|
109 |
* @since 2.0
|
110 |
*
|
@@ -140,7 +140,7 @@ class Yoast_Form {
|
|
140 |
}
|
141 |
|
142 |
/**
|
143 |
-
* Generates the footer for admin pages
|
144 |
*
|
145 |
* @since 2.0
|
146 |
*
|
@@ -156,12 +156,12 @@ class Yoast_Form {
|
|
156 |
}
|
157 |
|
158 |
/**
|
159 |
-
* Apply general admin_footer hooks
|
160 |
*/
|
161 |
do_action( 'wpseo_admin_footer', $this );
|
162 |
|
163 |
/**
|
164 |
-
* Run possibly set actions to add for example an i18n box
|
165 |
*/
|
166 |
do_action( 'wpseo_admin_promo_footer' );
|
167 |
|
@@ -196,7 +196,7 @@ class Yoast_Form {
|
|
196 |
}
|
197 |
|
198 |
/**
|
199 |
-
* Output a label element
|
200 |
*
|
201 |
* @since 2.0
|
202 |
*
|
@@ -511,7 +511,7 @@ class Yoast_Form {
|
|
511 |
}
|
512 |
|
513 |
/**
|
514 |
-
* Media input
|
515 |
*
|
516 |
* @since 2.0
|
517 |
*
|
41 |
protected $option_instance = null;
|
42 |
|
43 |
/**
|
44 |
+
* Get the singleton instance of this class.
|
45 |
*
|
46 |
* @since 2.0
|
47 |
*
|
56 |
}
|
57 |
|
58 |
/**
|
59 |
+
* Generates the header for admin pages.
|
60 |
*
|
61 |
* @since 2.0
|
62 |
*
|
73 |
<div class="wrap yoast wpseo-admin-page <?php echo esc_attr( 'page-' . $option ); ?>">
|
74 |
<?php
|
75 |
/**
|
76 |
+
* Display the updated/error messages.
|
77 |
+
* Only needed as our settings page is not under options, otherwise it will automatically be included.
|
78 |
*
|
79 |
* @see settings_errors()
|
80 |
*/
|
104 |
}
|
105 |
|
106 |
/**
|
107 |
+
* Set the option used in output for form elements.
|
108 |
*
|
109 |
* @since 2.0
|
110 |
*
|
140 |
}
|
141 |
|
142 |
/**
|
143 |
+
* Generates the footer for admin pages.
|
144 |
*
|
145 |
* @since 2.0
|
146 |
*
|
156 |
}
|
157 |
|
158 |
/**
|
159 |
+
* Apply general admin_footer hooks.
|
160 |
*/
|
161 |
do_action( 'wpseo_admin_footer', $this );
|
162 |
|
163 |
/**
|
164 |
+
* Run possibly set actions to add for example an i18n box.
|
165 |
*/
|
166 |
do_action( 'wpseo_admin_promo_footer' );
|
167 |
|
196 |
}
|
197 |
|
198 |
/**
|
199 |
+
* Output a label element.
|
200 |
*
|
201 |
* @since 2.0
|
202 |
*
|
511 |
}
|
512 |
|
513 |
/**
|
514 |
+
* Media input.
|
515 |
*
|
516 |
* @since 2.0
|
517 |
*
|
admin/class-yoast-network-admin.php
CHANGED
@@ -116,7 +116,7 @@ class Yoast_Network_Admin implements WPSEO_WordPress_Integration, WPSEO_WordPres
|
|
116 |
foreach ( $whitelist_options as $option_name ) {
|
117 |
$value = null;
|
118 |
if ( isset( $_POST[ $option_name ] ) ) { // WPCS: CSRF ok.
|
119 |
-
|
120 |
$value = wp_unslash( $_POST[ $option_name ] ); // WPCS: CSRF ok.
|
121 |
}
|
122 |
|
116 |
foreach ( $whitelist_options as $option_name ) {
|
117 |
$value = null;
|
118 |
if ( isset( $_POST[ $option_name ] ) ) { // WPCS: CSRF ok.
|
119 |
+
// Adding sanitize_text_field around this will break the saving of settings because it expects a string: https://github.com/Yoast/wordpress-seo/issues/12440.
|
120 |
$value = wp_unslash( $_POST[ $option_name ] ); // WPCS: CSRF ok.
|
121 |
}
|
122 |
|
admin/class-yoast-notification-center.php
CHANGED
@@ -58,7 +58,7 @@ class Yoast_Notification_Center {
|
|
58 |
private $notifications_retrieved = false;
|
59 |
|
60 |
/**
|
61 |
-
* Construct
|
62 |
*/
|
63 |
private function __construct() {
|
64 |
|
@@ -73,7 +73,7 @@ class Yoast_Notification_Center {
|
|
73 |
}
|
74 |
|
75 |
/**
|
76 |
-
* Singleton getter
|
77 |
*
|
78 |
* @return Yoast_Notification_Center
|
79 |
*/
|
@@ -87,7 +87,7 @@ class Yoast_Notification_Center {
|
|
87 |
}
|
88 |
|
89 |
/**
|
90 |
-
* Dismiss a notification
|
91 |
*/
|
92 |
public static function ajax_dismiss_notification() {
|
93 |
|
@@ -117,7 +117,7 @@ class Yoast_Notification_Center {
|
|
117 |
}
|
118 |
|
119 |
/**
|
120 |
-
* Check if the user has dismissed a notification
|
121 |
*
|
122 |
* @param Yoast_Notification $notification The notification to check for dismissal.
|
123 |
* @param null|int $user_id User ID to check on.
|
@@ -143,7 +143,7 @@ class Yoast_Notification_Center {
|
|
143 |
}
|
144 |
|
145 |
/**
|
146 |
-
* Check if the nofitication is being dismissed
|
147 |
*
|
148 |
* @param string|Yoast_Notification $notification Notification to check dismissal of.
|
149 |
* @param string $meta_value Value to set the meta value to if dismissed.
|
@@ -224,7 +224,7 @@ class Yoast_Notification_Center {
|
|
224 |
}
|
225 |
|
226 |
/**
|
227 |
-
* Clear dismissal information for the specified Notification
|
228 |
*
|
229 |
* When a cause is resolved, the next time it is present we want to show
|
230 |
* the message again.
|
@@ -281,7 +281,7 @@ class Yoast_Notification_Center {
|
|
281 |
}
|
282 |
|
283 |
/**
|
284 |
-
* Add notification to the cookie
|
285 |
*
|
286 |
* @param Yoast_Notification $notification Notification object instance.
|
287 |
*/
|
@@ -319,7 +319,7 @@ class Yoast_Notification_Center {
|
|
319 |
}
|
320 |
|
321 |
/**
|
322 |
-
* Get the notification by ID
|
323 |
*
|
324 |
* @param string $notification_id The ID of the notification to search for.
|
325 |
*
|
@@ -337,7 +337,7 @@ class Yoast_Notification_Center {
|
|
337 |
}
|
338 |
|
339 |
/**
|
340 |
-
* Display the notifications
|
341 |
*
|
342 |
* @param bool $echo_as_json True when notifications should be printed directly.
|
343 |
*
|
@@ -381,7 +381,7 @@ class Yoast_Notification_Center {
|
|
381 |
}
|
382 |
|
383 |
/**
|
384 |
-
* Remove notification after it has been displayed
|
385 |
*
|
386 |
* @param Yoast_Notification $notification Notification to remove.
|
387 |
* @param bool $resolve Resolve as fixed.
|
@@ -441,7 +441,7 @@ class Yoast_Notification_Center {
|
|
441 |
}
|
442 |
|
443 |
/**
|
444 |
-
* Get the notification count
|
445 |
*
|
446 |
* @param bool $dismissed Count dismissed notifications.
|
447 |
*
|
@@ -460,7 +460,7 @@ class Yoast_Notification_Center {
|
|
460 |
}
|
461 |
|
462 |
/**
|
463 |
-
* Get the number of notifications resolved this execution
|
464 |
*
|
465 |
* These notifications have been resolved and should be counted when active again.
|
466 |
*
|
@@ -472,7 +472,7 @@ class Yoast_Notification_Center {
|
|
472 |
}
|
473 |
|
474 |
/**
|
475 |
-
* Return the notifications sorted on type and priority
|
476 |
*
|
477 |
* @return array|Yoast_Notification[] Sorted Notifications
|
478 |
*/
|
@@ -490,7 +490,7 @@ class Yoast_Notification_Center {
|
|
490 |
}
|
491 |
|
492 |
/**
|
493 |
-
* AJAX display notifications
|
494 |
*/
|
495 |
public function ajax_get_notifications() {
|
496 |
$echo = filter_input( INPUT_POST, 'version' ) === '2';
|
@@ -503,7 +503,7 @@ class Yoast_Notification_Center {
|
|
503 |
}
|
504 |
|
505 |
/**
|
506 |
-
* Remove storage when the plugin is deactivated
|
507 |
*/
|
508 |
public function deactivate_hook() {
|
509 |
|
@@ -511,7 +511,7 @@ class Yoast_Notification_Center {
|
|
511 |
}
|
512 |
|
513 |
/**
|
514 |
-
* Save persistent notifications to storage
|
515 |
*
|
516 |
* We need to be able to retrieve these so they can be dismissed at any time during the execution.
|
517 |
*
|
@@ -530,7 +530,7 @@ class Yoast_Notification_Center {
|
|
530 |
*/
|
531 |
$notifications = apply_filters( 'yoast_notifications_before_storage', $notifications );
|
532 |
|
533 |
-
// No notifications to store, clear storage.
|
534 |
if ( empty( $notifications ) ) {
|
535 |
$this->remove_storage();
|
536 |
|
@@ -544,7 +544,7 @@ class Yoast_Notification_Center {
|
|
544 |
}
|
545 |
|
546 |
/**
|
547 |
-
* Provide a way to verify present notifications
|
548 |
*
|
549 |
* @return array|Yoast_Notification[] Registered notifications.
|
550 |
*/
|
@@ -554,7 +554,7 @@ class Yoast_Notification_Center {
|
|
554 |
}
|
555 |
|
556 |
/**
|
557 |
-
* Get newly added notifications
|
558 |
*
|
559 |
* @return array
|
560 |
*/
|
@@ -564,7 +564,7 @@ class Yoast_Notification_Center {
|
|
564 |
}
|
565 |
|
566 |
/**
|
567 |
-
* Get information from the User input
|
568 |
*
|
569 |
* @param string $key Key to retrieve.
|
570 |
*
|
@@ -611,7 +611,7 @@ class Yoast_Notification_Center {
|
|
611 |
}
|
612 |
|
613 |
/**
|
614 |
-
* Sort on type then priority
|
615 |
*
|
616 |
* @param Yoast_Notification $a Compare with B.
|
617 |
* @param Yoast_Notification $b Compare with A.
|
@@ -639,15 +639,7 @@ class Yoast_Notification_Center {
|
|
639 |
}
|
640 |
|
641 |
/**
|
642 |
-
*
|
643 |
-
*/
|
644 |
-
private function remove_storage() {
|
645 |
-
|
646 |
-
delete_user_option( get_current_user_id(), self::STORAGE_KEY );
|
647 |
-
}
|
648 |
-
|
649 |
-
/**
|
650 |
-
* Clear local stored notifications
|
651 |
*/
|
652 |
private function clear_notifications() {
|
653 |
|
@@ -670,7 +662,7 @@ class Yoast_Notification_Center {
|
|
670 |
}
|
671 |
|
672 |
/**
|
673 |
-
* Filter out dismissed notifications
|
674 |
*
|
675 |
* @param Yoast_Notification $notification Notification to check.
|
676 |
*
|
@@ -682,7 +674,7 @@ class Yoast_Notification_Center {
|
|
682 |
}
|
683 |
|
684 |
/**
|
685 |
-
* Convert Notification to array representation
|
686 |
*
|
687 |
* @param Yoast_Notification $notification Notification to convert.
|
688 |
*
|
@@ -721,7 +713,7 @@ class Yoast_Notification_Center {
|
|
721 |
}
|
722 |
|
723 |
/**
|
724 |
-
* Filter notifications that should not be displayed for the current user
|
725 |
*
|
726 |
* @param Yoast_Notification $notification Notification to test.
|
727 |
*
|
@@ -769,4 +761,40 @@ class Yoast_Notification_Center {
|
|
769 |
private function add_transaction_to_queue( $callback, $args ) {
|
770 |
$this->queued_transactions[] = array( $callback, $args );
|
771 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
772 |
}
|
58 |
private $notifications_retrieved = false;
|
59 |
|
60 |
/**
|
61 |
+
* Construct.
|
62 |
*/
|
63 |
private function __construct() {
|
64 |
|
73 |
}
|
74 |
|
75 |
/**
|
76 |
+
* Singleton getter.
|
77 |
*
|
78 |
* @return Yoast_Notification_Center
|
79 |
*/
|
87 |
}
|
88 |
|
89 |
/**
|
90 |
+
* Dismiss a notification.
|
91 |
*/
|
92 |
public static function ajax_dismiss_notification() {
|
93 |
|
117 |
}
|
118 |
|
119 |
/**
|
120 |
+
* Check if the user has dismissed a notification.
|
121 |
*
|
122 |
* @param Yoast_Notification $notification The notification to check for dismissal.
|
123 |
* @param null|int $user_id User ID to check on.
|
143 |
}
|
144 |
|
145 |
/**
|
146 |
+
* Check if the nofitication is being dismissed.
|
147 |
*
|
148 |
* @param string|Yoast_Notification $notification Notification to check dismissal of.
|
149 |
* @param string $meta_value Value to set the meta value to if dismissed.
|
224 |
}
|
225 |
|
226 |
/**
|
227 |
+
* Clear dismissal information for the specified Notification.
|
228 |
*
|
229 |
* When a cause is resolved, the next time it is present we want to show
|
230 |
* the message again.
|
281 |
}
|
282 |
|
283 |
/**
|
284 |
+
* Add notification to the cookie.
|
285 |
*
|
286 |
* @param Yoast_Notification $notification Notification object instance.
|
287 |
*/
|
319 |
}
|
320 |
|
321 |
/**
|
322 |
+
* Get the notification by ID.
|
323 |
*
|
324 |
* @param string $notification_id The ID of the notification to search for.
|
325 |
*
|
337 |
}
|
338 |
|
339 |
/**
|
340 |
+
* Display the notifications.
|
341 |
*
|
342 |
* @param bool $echo_as_json True when notifications should be printed directly.
|
343 |
*
|
381 |
}
|
382 |
|
383 |
/**
|
384 |
+
* Remove notification after it has been displayed.
|
385 |
*
|
386 |
* @param Yoast_Notification $notification Notification to remove.
|
387 |
* @param bool $resolve Resolve as fixed.
|
441 |
}
|
442 |
|
443 |
/**
|
444 |
+
* Get the notification count.
|
445 |
*
|
446 |
* @param bool $dismissed Count dismissed notifications.
|
447 |
*
|
460 |
}
|
461 |
|
462 |
/**
|
463 |
+
* Get the number of notifications resolved this execution.
|
464 |
*
|
465 |
* These notifications have been resolved and should be counted when active again.
|
466 |
*
|
472 |
}
|
473 |
|
474 |
/**
|
475 |
+
* Return the notifications sorted on type and priority.
|
476 |
*
|
477 |
* @return array|Yoast_Notification[] Sorted Notifications
|
478 |
*/
|
490 |
}
|
491 |
|
492 |
/**
|
493 |
+
* AJAX display notifications.
|
494 |
*/
|
495 |
public function ajax_get_notifications() {
|
496 |
$echo = filter_input( INPUT_POST, 'version' ) === '2';
|
503 |
}
|
504 |
|
505 |
/**
|
506 |
+
* Remove storage when the plugin is deactivated.
|
507 |
*/
|
508 |
public function deactivate_hook() {
|
509 |
|
511 |
}
|
512 |
|
513 |
/**
|
514 |
+
* Save persistent notifications to storage.
|
515 |
*
|
516 |
* We need to be able to retrieve these so they can be dismissed at any time during the execution.
|
517 |
*
|
530 |
*/
|
531 |
$notifications = apply_filters( 'yoast_notifications_before_storage', $notifications );
|
532 |
|
533 |
+
// No notifications to store, clear storage if it was previously present.
|
534 |
if ( empty( $notifications ) ) {
|
535 |
$this->remove_storage();
|
536 |
|
544 |
}
|
545 |
|
546 |
/**
|
547 |
+
* Provide a way to verify present notifications.
|
548 |
*
|
549 |
* @return array|Yoast_Notification[] Registered notifications.
|
550 |
*/
|
554 |
}
|
555 |
|
556 |
/**
|
557 |
+
* Get newly added notifications.
|
558 |
*
|
559 |
* @return array
|
560 |
*/
|
564 |
}
|
565 |
|
566 |
/**
|
567 |
+
* Get information from the User input.
|
568 |
*
|
569 |
* @param string $key Key to retrieve.
|
570 |
*
|
611 |
}
|
612 |
|
613 |
/**
|
614 |
+
* Sort on type then priority.
|
615 |
*
|
616 |
* @param Yoast_Notification $a Compare with B.
|
617 |
* @param Yoast_Notification $b Compare with A.
|
639 |
}
|
640 |
|
641 |
/**
|
642 |
+
* Clear local stored notifications.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
643 |
*/
|
644 |
private function clear_notifications() {
|
645 |
|
662 |
}
|
663 |
|
664 |
/**
|
665 |
+
* Filter out dismissed notifications.
|
666 |
*
|
667 |
* @param Yoast_Notification $notification Notification to check.
|
668 |
*
|
674 |
}
|
675 |
|
676 |
/**
|
677 |
+
* Convert Notification to array representation.
|
678 |
*
|
679 |
* @param Yoast_Notification $notification Notification to convert.
|
680 |
*
|
713 |
}
|
714 |
|
715 |
/**
|
716 |
+
* Filter notifications that should not be displayed for the current user.
|
717 |
*
|
718 |
* @param Yoast_Notification $notification Notification to test.
|
719 |
*
|
761 |
private function add_transaction_to_queue( $callback, $args ) {
|
762 |
$this->queued_transactions[] = array( $callback, $args );
|
763 |
}
|
764 |
+
|
765 |
+
/**
|
766 |
+
* Removes all notifications from storage.
|
767 |
+
*
|
768 |
+
* @return bool True when notifications got removed.
|
769 |
+
*/
|
770 |
+
protected function remove_storage() {
|
771 |
+
if ( ! $this->has_stored_notifications() ) {
|
772 |
+
return false;
|
773 |
+
}
|
774 |
+
|
775 |
+
delete_user_option( get_current_user_id(), self::STORAGE_KEY );
|
776 |
+
return true;
|
777 |
+
}
|
778 |
+
|
779 |
+
/**
|
780 |
+
* Checks if there are stored notifications.
|
781 |
+
*
|
782 |
+
* @return bool True when there are stored notifications.
|
783 |
+
*/
|
784 |
+
protected function has_stored_notifications() {
|
785 |
+
$stored_notifications = $this->get_stored_notifications();
|
786 |
+
|
787 |
+
return ! empty( $stored_notifications );
|
788 |
+
}
|
789 |
+
|
790 |
+
/**
|
791 |
+
* Retrieves the stored notifications.
|
792 |
+
*
|
793 |
+
* @codeCoverageIgnore
|
794 |
+
*
|
795 |
+
* @return array|false Array with notifications or false when not set.
|
796 |
+
*/
|
797 |
+
protected function get_stored_notifications() {
|
798 |
+
return get_user_option( self::STORAGE_KEY, get_current_user_id() );
|
799 |
+
}
|
800 |
}
|
admin/class-yoast-notification.php
CHANGED
@@ -122,7 +122,7 @@ class Yoast_Notification {
|
|
122 |
}
|
123 |
|
124 |
/**
|
125 |
-
* Make sure the nonce is up to date
|
126 |
*/
|
127 |
public function refresh_nonce() {
|
128 |
if ( $this->options['id'] ) {
|
@@ -131,7 +131,7 @@ class Yoast_Notification {
|
|
131 |
}
|
132 |
|
133 |
/**
|
134 |
-
* Get the type of the notification
|
135 |
*
|
136 |
* @return string
|
137 |
*/
|
@@ -140,7 +140,7 @@ class Yoast_Notification {
|
|
140 |
}
|
141 |
|
142 |
/**
|
143 |
-
* Priority of the notification
|
144 |
*
|
145 |
* Relative to the type.
|
146 |
*
|
@@ -151,7 +151,7 @@ class Yoast_Notification {
|
|
151 |
}
|
152 |
|
153 |
/**
|
154 |
-
* Get the User Meta key to check for dismissal of notification
|
155 |
*
|
156 |
* @return string User Meta Option key that registers dismissal.
|
157 |
*/
|
@@ -164,7 +164,7 @@ class Yoast_Notification {
|
|
164 |
}
|
165 |
|
166 |
/**
|
167 |
-
* Is this Notification persistent
|
168 |
*
|
169 |
* @return bool True if persistent, False if fire and forget.
|
170 |
*/
|
@@ -175,9 +175,9 @@ class Yoast_Notification {
|
|
175 |
}
|
176 |
|
177 |
/**
|
178 |
-
* Check if the notification is relevant for the current user
|
179 |
*
|
180 |
-
* @return bool True if a user needs to see this
|
181 |
*/
|
182 |
public function display_for_current_user() {
|
183 |
// If the notification is for the current page only, always show.
|
@@ -190,7 +190,7 @@ class Yoast_Notification {
|
|
190 |
}
|
191 |
|
192 |
/**
|
193 |
-
* Does the current user match required capabilities
|
194 |
*
|
195 |
* @return bool
|
196 |
*/
|
@@ -205,10 +205,10 @@ class Yoast_Notification {
|
|
205 |
*
|
206 |
* @since 3.2
|
207 |
*
|
208 |
-
* @param array $capabilities The capabilities that must be present for this
|
209 |
* @param Yoast_Notification $notification The notification object.
|
210 |
*
|
211 |
-
* @return
|
212 |
*/
|
213 |
$capabilities = apply_filters( 'wpseo_notification_capabilities', $this->options['capabilities'], $this );
|
214 |
|
@@ -249,7 +249,7 @@ class Yoast_Notification {
|
|
249 |
}
|
250 |
|
251 |
/**
|
252 |
-
* Array filter function to find matched capabilities
|
253 |
*
|
254 |
* @param string $capability Capability to test.
|
255 |
*
|
@@ -260,7 +260,7 @@ class Yoast_Notification {
|
|
260 |
}
|
261 |
|
262 |
/**
|
263 |
-
* Return the object properties as an array
|
264 |
*
|
265 |
* @return array
|
266 |
*/
|
@@ -272,7 +272,7 @@ class Yoast_Notification {
|
|
272 |
}
|
273 |
|
274 |
/**
|
275 |
-
* Adds string (view) behaviour to the
|
276 |
*
|
277 |
* @return string
|
278 |
*/
|
@@ -341,7 +341,7 @@ class Yoast_Notification {
|
|
341 |
}
|
342 |
|
343 |
/**
|
344 |
-
* Get the JSON if provided
|
345 |
*
|
346 |
* @return false|string
|
347 |
*/
|
@@ -354,7 +354,7 @@ class Yoast_Notification {
|
|
354 |
}
|
355 |
|
356 |
/**
|
357 |
-
* Make sure we only have values that we can work with
|
358 |
*
|
359 |
* @param array $options Options to normalize.
|
360 |
*
|
@@ -375,7 +375,7 @@ class Yoast_Notification {
|
|
375 |
}
|
376 |
|
377 |
/**
|
378 |
-
* Format HTML element attributes
|
379 |
*
|
380 |
* @param string $value Attribute value.
|
381 |
* @param string $key Attribute name.
|
122 |
}
|
123 |
|
124 |
/**
|
125 |
+
* Make sure the nonce is up to date.
|
126 |
*/
|
127 |
public function refresh_nonce() {
|
128 |
if ( $this->options['id'] ) {
|
131 |
}
|
132 |
|
133 |
/**
|
134 |
+
* Get the type of the notification.
|
135 |
*
|
136 |
* @return string
|
137 |
*/
|
140 |
}
|
141 |
|
142 |
/**
|
143 |
+
* Priority of the notification.
|
144 |
*
|
145 |
* Relative to the type.
|
146 |
*
|
151 |
}
|
152 |
|
153 |
/**
|
154 |
+
* Get the User Meta key to check for dismissal of notification.
|
155 |
*
|
156 |
* @return string User Meta Option key that registers dismissal.
|
157 |
*/
|
164 |
}
|
165 |
|
166 |
/**
|
167 |
+
* Is this Notification persistent.
|
168 |
*
|
169 |
* @return bool True if persistent, False if fire and forget.
|
170 |
*/
|
175 |
}
|
176 |
|
177 |
/**
|
178 |
+
* Check if the notification is relevant for the current user.
|
179 |
*
|
180 |
+
* @return bool True if a user needs to see this notification, false if not.
|
181 |
*/
|
182 |
public function display_for_current_user() {
|
183 |
// If the notification is for the current page only, always show.
|
190 |
}
|
191 |
|
192 |
/**
|
193 |
+
* Does the current user match required capabilities.
|
194 |
*
|
195 |
* @return bool
|
196 |
*/
|
205 |
*
|
206 |
* @since 3.2
|
207 |
*
|
208 |
+
* @param array $capabilities The capabilities that must be present for this notification.
|
209 |
* @param Yoast_Notification $notification The notification object.
|
210 |
*
|
211 |
+
* @return Array of capabilities or empty for no restrictions.
|
212 |
*/
|
213 |
$capabilities = apply_filters( 'wpseo_notification_capabilities', $this->options['capabilities'], $this );
|
214 |
|
249 |
}
|
250 |
|
251 |
/**
|
252 |
+
* Array filter function to find matched capabilities.
|
253 |
*
|
254 |
* @param string $capability Capability to test.
|
255 |
*
|
260 |
}
|
261 |
|
262 |
/**
|
263 |
+
* Return the object properties as an array.
|
264 |
*
|
265 |
* @return array
|
266 |
*/
|
272 |
}
|
273 |
|
274 |
/**
|
275 |
+
* Adds string (view) behaviour to the notification.
|
276 |
*
|
277 |
* @return string
|
278 |
*/
|
341 |
}
|
342 |
|
343 |
/**
|
344 |
+
* Get the JSON if provided.
|
345 |
*
|
346 |
* @return false|string
|
347 |
*/
|
354 |
}
|
355 |
|
356 |
/**
|
357 |
+
* Make sure we only have values that we can work with.
|
358 |
*
|
359 |
* @param array $options Options to normalize.
|
360 |
*
|
375 |
}
|
376 |
|
377 |
/**
|
378 |
+
* Format HTML element attributes.
|
379 |
*
|
380 |
* @param string $value Attribute value.
|
381 |
* @param string $key Attribute name.
|
admin/class-yoast-plugin-conflict.php
CHANGED
@@ -14,14 +14,14 @@ class Yoast_Plugin_Conflict {
|
|
14 |
/**
|
15 |
* The plugins must be grouped per section.
|
16 |
*
|
17 |
-
* It's possible to check for each section if there are conflicting
|
18 |
*
|
19 |
* @var array
|
20 |
*/
|
21 |
protected $plugins = array();
|
22 |
|
23 |
/**
|
24 |
-
* All the current active plugins will be stored in this private var
|
25 |
*
|
26 |
* @var array
|
27 |
*/
|
@@ -29,21 +29,21 @@ class Yoast_Plugin_Conflict {
|
|
29 |
|
30 |
/**
|
31 |
* After searching for active plugins that are in $this->plugins the active plugins will be stored in this
|
32 |
-
* property
|
33 |
*
|
34 |
* @var array
|
35 |
*/
|
36 |
protected $active_plugins = array();
|
37 |
|
38 |
/**
|
39 |
-
* Property for holding instance of itself
|
40 |
*
|
41 |
* @var Yoast_Plugin_Conflict
|
42 |
*/
|
43 |
protected static $instance;
|
44 |
|
45 |
/**
|
46 |
-
* For the use of singleton pattern. Create instance of itself and return
|
47 |
*
|
48 |
* @param string $class_name Give the classname to initialize. If classname is
|
49 |
* false (empty) it will use it's own __CLASS__.
|
@@ -64,7 +64,7 @@ class Yoast_Plugin_Conflict {
|
|
64 |
}
|
65 |
|
66 |
/**
|
67 |
-
* Setting instance, all active plugins and search for active plugins
|
68 |
*
|
69 |
* Protected constructor to prevent creating a new instance of the
|
70 |
* *Singleton* via the `new` operator from outside of this class.
|
@@ -82,7 +82,7 @@ class Yoast_Plugin_Conflict {
|
|
82 |
}
|
83 |
|
84 |
/**
|
85 |
-
* Check if there are conflicting plugins for given $plugin_section
|
86 |
*
|
87 |
* @param string $plugin_section Type of plugin conflict (such as Open Graph or sitemap).
|
88 |
*
|
@@ -139,7 +139,7 @@ class Yoast_Plugin_Conflict {
|
|
139 |
}
|
140 |
|
141 |
/**
|
142 |
-
* Checks for given $plugin_sections for conflicts
|
143 |
*
|
144 |
* @param array $plugin_sections Set of sections.
|
145 |
*/
|
@@ -184,7 +184,7 @@ class Yoast_Plugin_Conflict {
|
|
184 |
}
|
185 |
|
186 |
/**
|
187 |
-
* Setting an error on the screen
|
188 |
*
|
189 |
* @param string $plugin_section Type of conflict group (such as Open Graph or sitemap).
|
190 |
* @param string $readable_plugin_section This is the value for the translation.
|
@@ -221,7 +221,7 @@ class Yoast_Plugin_Conflict {
|
|
221 |
}
|
222 |
|
223 |
/**
|
224 |
-
* Clear the notification for a plugin
|
225 |
*
|
226 |
* @param string $plugin_file Clear the optional notification for this plugin.
|
227 |
*/
|
@@ -244,7 +244,7 @@ class Yoast_Plugin_Conflict {
|
|
244 |
}
|
245 |
|
246 |
/**
|
247 |
-
* Loop through plugins and check if each plugin is active
|
248 |
*
|
249 |
* @param array $plugins Set of plugins.
|
250 |
* @param string $plugin_section Type of conflict group (such as Open Graph or sitemap).
|
@@ -258,7 +258,7 @@ class Yoast_Plugin_Conflict {
|
|
258 |
}
|
259 |
|
260 |
/**
|
261 |
-
* Check if given plugin exists in array with all_active_plugins
|
262 |
*
|
263 |
* @param string $plugin Plugin basename string.
|
264 |
*
|
@@ -289,9 +289,9 @@ class Yoast_Plugin_Conflict {
|
|
289 |
}
|
290 |
|
291 |
/**
|
292 |
-
* Search in $this->plugins for the given $plugin
|
293 |
*
|
294 |
-
* If there is a result it will return the plugin category
|
295 |
*
|
296 |
* @param string $plugin Plugin basename string.
|
297 |
*
|
@@ -319,7 +319,7 @@ class Yoast_Plugin_Conflict {
|
|
319 |
}
|
320 |
|
321 |
/**
|
322 |
-
* Get the identifier from the plugin file
|
323 |
*
|
324 |
* @param string $plugin_file Plugin file to get Identifier from.
|
325 |
*
|
14 |
/**
|
15 |
* The plugins must be grouped per section.
|
16 |
*
|
17 |
+
* It's possible to check for each section if there are conflicting plugins.
|
18 |
*
|
19 |
* @var array
|
20 |
*/
|
21 |
protected $plugins = array();
|
22 |
|
23 |
/**
|
24 |
+
* All the current active plugins will be stored in this private var.
|
25 |
*
|
26 |
* @var array
|
27 |
*/
|
29 |
|
30 |
/**
|
31 |
* After searching for active plugins that are in $this->plugins the active plugins will be stored in this
|
32 |
+
* property.
|
33 |
*
|
34 |
* @var array
|
35 |
*/
|
36 |
protected $active_plugins = array();
|
37 |
|
38 |
/**
|
39 |
+
* Property for holding instance of itself.
|
40 |
*
|
41 |
* @var Yoast_Plugin_Conflict
|
42 |
*/
|
43 |
protected static $instance;
|
44 |
|
45 |
/**
|
46 |
+
* For the use of singleton pattern. Create instance of itself and return this instance.
|
47 |
*
|
48 |
* @param string $class_name Give the classname to initialize. If classname is
|
49 |
* false (empty) it will use it's own __CLASS__.
|
64 |
}
|
65 |
|
66 |
/**
|
67 |
+
* Setting instance, all active plugins and search for active plugins.
|
68 |
*
|
69 |
* Protected constructor to prevent creating a new instance of the
|
70 |
* *Singleton* via the `new` operator from outside of this class.
|
82 |
}
|
83 |
|
84 |
/**
|
85 |
+
* Check if there are conflicting plugins for given $plugin_section.
|
86 |
*
|
87 |
* @param string $plugin_section Type of plugin conflict (such as Open Graph or sitemap).
|
88 |
*
|
139 |
}
|
140 |
|
141 |
/**
|
142 |
+
* Checks for given $plugin_sections for conflicts.
|
143 |
*
|
144 |
* @param array $plugin_sections Set of sections.
|
145 |
*/
|
184 |
}
|
185 |
|
186 |
/**
|
187 |
+
* Setting an error on the screen.
|
188 |
*
|
189 |
* @param string $plugin_section Type of conflict group (such as Open Graph or sitemap).
|
190 |
* @param string $readable_plugin_section This is the value for the translation.
|
221 |
}
|
222 |
|
223 |
/**
|
224 |
+
* Clear the notification for a plugin.
|
225 |
*
|
226 |
* @param string $plugin_file Clear the optional notification for this plugin.
|
227 |
*/
|
244 |
}
|
245 |
|
246 |
/**
|
247 |
+
* Loop through plugins and check if each plugin is active.
|
248 |
*
|
249 |
* @param array $plugins Set of plugins.
|
250 |
* @param string $plugin_section Type of conflict group (such as Open Graph or sitemap).
|
258 |
}
|
259 |
|
260 |
/**
|
261 |
+
* Check if given plugin exists in array with all_active_plugins.
|
262 |
*
|
263 |
* @param string $plugin Plugin basename string.
|
264 |
*
|
289 |
}
|
290 |
|
291 |
/**
|
292 |
+
* Search in $this->plugins for the given $plugin.
|
293 |
*
|
294 |
+
* If there is a result it will return the plugin category.
|
295 |
*
|
296 |
* @param string $plugin Plugin basename string.
|
297 |
*
|
319 |
}
|
320 |
|
321 |
/**
|
322 |
+
* Get the identifier from the plugin file.
|
323 |
*
|
324 |
* @param string $plugin_file Plugin file to get Identifier from.
|
325 |
*
|
admin/config-ui/class-configuration-components.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Configuration_Components
|
10 |
*/
|
11 |
class WPSEO_Configuration_Components {
|
12 |
|
@@ -34,7 +34,7 @@ class WPSEO_Configuration_Components {
|
|
34 |
}
|
35 |
|
36 |
/**
|
37 |
-
* Add a component
|
38 |
*
|
39 |
* @param WPSEO_Config_Component $component Component to add.
|
40 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Configuration_Components.
|
10 |
*/
|
11 |
class WPSEO_Configuration_Components {
|
12 |
|
34 |
}
|
35 |
|
36 |
/**
|
37 |
+
* Add a component.
|
38 |
*
|
39 |
* @param WPSEO_Config_Component $component Component to add.
|
40 |
*/
|
admin/config-ui/class-configuration-endpoint.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Configuration_Endpoint
|
10 |
*/
|
11 |
class WPSEO_Configuration_Endpoint {
|
12 |
|
@@ -73,7 +73,7 @@ class WPSEO_Configuration_Endpoint {
|
|
73 |
}
|
74 |
|
75 |
/**
|
76 |
-
* Permission callback implementation
|
77 |
*
|
78 |
* @return bool
|
79 |
*/
|
@@ -82,7 +82,7 @@ class WPSEO_Configuration_Endpoint {
|
|
82 |
}
|
83 |
|
84 |
/**
|
85 |
-
* Permission callback implementation
|
86 |
*
|
87 |
* @return bool
|
88 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Configuration_Endpoint.
|
10 |
*/
|
11 |
class WPSEO_Configuration_Endpoint {
|
12 |
|
73 |
}
|
74 |
|
75 |
/**
|
76 |
+
* Permission callback implementation.
|
77 |
*
|
78 |
* @return bool
|
79 |
*/
|
82 |
}
|
83 |
|
84 |
/**
|
85 |
+
* Permission callback implementation.
|
86 |
*
|
87 |
* @return bool
|
88 |
*/
|
admin/config-ui/class-configuration-options-adapter.php
CHANGED
@@ -6,9 +6,9 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Configuration_Options_Adapter
|
10 |
*
|
11 |
-
* Convert Configuration settings to WPSEO Options
|
12 |
*
|
13 |
* @since 3.6
|
14 |
*/
|
@@ -37,7 +37,7 @@ class WPSEO_Configuration_Options_Adapter {
|
|
37 |
protected $lookup = array();
|
38 |
|
39 |
/**
|
40 |
-
* Add a lookup for a WordPress native option
|
41 |
*
|
42 |
* @param string $class_name Class to bind to an option.
|
43 |
* @param string $option Option name to use.
|
@@ -54,7 +54,7 @@ class WPSEO_Configuration_Options_Adapter {
|
|
54 |
}
|
55 |
|
56 |
/**
|
57 |
-
* Add a lookup for a Yoast option
|
58 |
*
|
59 |
* @param string $class_name Class to bind to the lookup.
|
60 |
* @param string $key Key in the option group to bind to.
|
@@ -73,7 +73,7 @@ class WPSEO_Configuration_Options_Adapter {
|
|
73 |
}
|
74 |
|
75 |
/**
|
76 |
-
* Add a lookup for a custom implementation
|
77 |
*
|
78 |
* @param string $class_name Class to bind to the lookup.
|
79 |
* @param callable $callback_get Callback to retrieve data.
|
@@ -111,7 +111,7 @@ class WPSEO_Configuration_Options_Adapter {
|
|
111 |
}
|
112 |
|
113 |
/**
|
114 |
-
* Get the data for the provided field
|
115 |
*
|
116 |
* @param WPSEO_Config_Field $field Field to get data for.
|
117 |
*
|
@@ -139,7 +139,7 @@ class WPSEO_Configuration_Options_Adapter {
|
|
139 |
}
|
140 |
|
141 |
/**
|
142 |
-
* Save data from a field
|
143 |
*
|
144 |
* @param WPSEO_Config_Field $field Field to use for lookup.
|
145 |
* @param mixed $value Value to save to the lookup of the field.
|
@@ -168,7 +168,7 @@ class WPSEO_Configuration_Options_Adapter {
|
|
168 |
}
|
169 |
|
170 |
/**
|
171 |
-
* Get the lookup type for a specific class
|
172 |
*
|
173 |
* @param string $class_name Class to get the type of.
|
174 |
*
|
@@ -183,7 +183,7 @@ class WPSEO_Configuration_Options_Adapter {
|
|
183 |
}
|
184 |
|
185 |
/**
|
186 |
-
* Get the option for a specific class
|
187 |
*
|
188 |
* @param string $class_name Class to get the option of.
|
189 |
*
|
@@ -200,7 +200,7 @@ class WPSEO_Configuration_Options_Adapter {
|
|
200 |
/* ********************* DEPRECATED METHODS ********************* */
|
201 |
|
202 |
/**
|
203 |
-
* Add a lookup for a Yoast option
|
204 |
*
|
205 |
* @deprecated 7.0
|
206 |
* @codeCoverageIgnore
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Configuration_Options_Adapter.
|
10 |
*
|
11 |
+
* Convert Configuration settings to WPSEO Options.
|
12 |
*
|
13 |
* @since 3.6
|
14 |
*/
|
37 |
protected $lookup = array();
|
38 |
|
39 |
/**
|
40 |
+
* Add a lookup for a WordPress native option.
|
41 |
*
|
42 |
* @param string $class_name Class to bind to an option.
|
43 |
* @param string $option Option name to use.
|
54 |
}
|
55 |
|
56 |
/**
|
57 |
+
* Add a lookup for a Yoast option.
|
58 |
*
|
59 |
* @param string $class_name Class to bind to the lookup.
|
60 |
* @param string $key Key in the option group to bind to.
|
73 |
}
|
74 |
|
75 |
/**
|
76 |
+
* Add a lookup for a custom implementation.
|
77 |
*
|
78 |
* @param string $class_name Class to bind to the lookup.
|
79 |
* @param callable $callback_get Callback to retrieve data.
|
111 |
}
|
112 |
|
113 |
/**
|
114 |
+
* Get the data for the provided field.
|
115 |
*
|
116 |
* @param WPSEO_Config_Field $field Field to get data for.
|
117 |
*
|
139 |
}
|
140 |
|
141 |
/**
|
142 |
+
* Save data from a field.
|
143 |
*
|
144 |
* @param WPSEO_Config_Field $field Field to use for lookup.
|
145 |
* @param mixed $value Value to save to the lookup of the field.
|
168 |
}
|
169 |
|
170 |
/**
|
171 |
+
* Get the lookup type for a specific class.
|
172 |
*
|
173 |
* @param string $class_name Class to get the type of.
|
174 |
*
|
183 |
}
|
184 |
|
185 |
/**
|
186 |
+
* Get the option for a specific class.
|
187 |
*
|
188 |
* @param string $class_name Class to get the option of.
|
189 |
*
|
200 |
/* ********************* DEPRECATED METHODS ********************* */
|
201 |
|
202 |
/**
|
203 |
+
* Add a lookup for a Yoast option.
|
204 |
*
|
205 |
* @deprecated 7.0
|
206 |
* @codeCoverageIgnore
|
admin/config-ui/class-configuration-service.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Configuration_Service
|
10 |
*/
|
11 |
class WPSEO_Configuration_Service {
|
12 |
|
@@ -49,7 +49,7 @@ class WPSEO_Configuration_Service {
|
|
49 |
}
|
50 |
|
51 |
/**
|
52 |
-
* Set default handlers
|
53 |
*/
|
54 |
public function set_default_providers() {
|
55 |
$this->set_storage( new WPSEO_Configuration_Storage() );
|
@@ -61,7 +61,7 @@ class WPSEO_Configuration_Service {
|
|
61 |
}
|
62 |
|
63 |
/**
|
64 |
-
* Set storage handler
|
65 |
*
|
66 |
* @param WPSEO_Configuration_Storage $storage Storage handler to use.
|
67 |
*/
|
@@ -70,7 +70,7 @@ class WPSEO_Configuration_Service {
|
|
70 |
}
|
71 |
|
72 |
/**
|
73 |
-
* Set endpoint handler
|
74 |
*
|
75 |
* @param WPSEO_Configuration_Endpoint $endpoint Endpoint implementation to use.
|
76 |
*/
|
@@ -80,7 +80,7 @@ class WPSEO_Configuration_Service {
|
|
80 |
}
|
81 |
|
82 |
/**
|
83 |
-
* Set the options adapter
|
84 |
*
|
85 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to use.
|
86 |
*/
|
@@ -89,7 +89,7 @@ class WPSEO_Configuration_Service {
|
|
89 |
}
|
90 |
|
91 |
/**
|
92 |
-
* Set components provider
|
93 |
*
|
94 |
* @param WPSEO_Configuration_Components $components Component provider to use.
|
95 |
*/
|
@@ -98,7 +98,7 @@ class WPSEO_Configuration_Service {
|
|
98 |
}
|
99 |
|
100 |
/**
|
101 |
-
* Set structure provider
|
102 |
*
|
103 |
* @param WPSEO_Configuration_Structure $structure Structure provider to use.
|
104 |
*/
|
@@ -116,7 +116,7 @@ class WPSEO_Configuration_Service {
|
|
116 |
}
|
117 |
|
118 |
/**
|
119 |
-
* Populate the configuration
|
120 |
*/
|
121 |
protected function populate_configuration() {
|
122 |
// Switch to the user locale with fallback to the site locale.
|
@@ -140,7 +140,7 @@ class WPSEO_Configuration_Service {
|
|
140 |
}
|
141 |
|
142 |
/**
|
143 |
-
* Used by endpoint to retrieve configuration
|
144 |
*
|
145 |
* @return array List of settings.
|
146 |
*/
|
@@ -158,7 +158,7 @@ class WPSEO_Configuration_Service {
|
|
158 |
}
|
159 |
|
160 |
/**
|
161 |
-
* Used by endpoint to store changes
|
162 |
*
|
163 |
* @param WP_REST_Request $request Request from the REST API.
|
164 |
*
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Configuration_Service.
|
10 |
*/
|
11 |
class WPSEO_Configuration_Service {
|
12 |
|
49 |
}
|
50 |
|
51 |
/**
|
52 |
+
* Set default handlers.
|
53 |
*/
|
54 |
public function set_default_providers() {
|
55 |
$this->set_storage( new WPSEO_Configuration_Storage() );
|
61 |
}
|
62 |
|
63 |
/**
|
64 |
+
* Set storage handler.
|
65 |
*
|
66 |
* @param WPSEO_Configuration_Storage $storage Storage handler to use.
|
67 |
*/
|
70 |
}
|
71 |
|
72 |
/**
|
73 |
+
* Set endpoint handler.
|
74 |
*
|
75 |
* @param WPSEO_Configuration_Endpoint $endpoint Endpoint implementation to use.
|
76 |
*/
|
80 |
}
|
81 |
|
82 |
/**
|
83 |
+
* Set the options adapter.
|
84 |
*
|
85 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to use.
|
86 |
*/
|
89 |
}
|
90 |
|
91 |
/**
|
92 |
+
* Set components provider.
|
93 |
*
|
94 |
* @param WPSEO_Configuration_Components $components Component provider to use.
|
95 |
*/
|
98 |
}
|
99 |
|
100 |
/**
|
101 |
+
* Set structure provider.
|
102 |
*
|
103 |
* @param WPSEO_Configuration_Structure $structure Structure provider to use.
|
104 |
*/
|
116 |
}
|
117 |
|
118 |
/**
|
119 |
+
* Populate the configuration.
|
120 |
*/
|
121 |
protected function populate_configuration() {
|
122 |
// Switch to the user locale with fallback to the site locale.
|
140 |
}
|
141 |
|
142 |
/**
|
143 |
+
* Used by endpoint to retrieve configuration.
|
144 |
*
|
145 |
* @return array List of settings.
|
146 |
*/
|
158 |
}
|
159 |
|
160 |
/**
|
161 |
+
* Used by endpoint to store changes.
|
162 |
*
|
163 |
* @param WP_REST_Request $request Request from the REST API.
|
164 |
*
|
admin/config-ui/class-configuration-storage.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Configuration_Storage
|
10 |
*/
|
11 |
class WPSEO_Configuration_Storage {
|
12 |
|
@@ -21,7 +21,7 @@ class WPSEO_Configuration_Storage {
|
|
21 |
protected $fields = array();
|
22 |
|
23 |
/**
|
24 |
-
* Add default fields
|
25 |
*/
|
26 |
public function add_default_fields() {
|
27 |
$fields = array(
|
@@ -60,7 +60,7 @@ class WPSEO_Configuration_Storage {
|
|
60 |
}
|
61 |
|
62 |
/**
|
63 |
-
* Allow for field injections
|
64 |
*
|
65 |
* @param WPSEO_Config_Field $field Field to add to the stack.
|
66 |
*/
|
@@ -73,7 +73,7 @@ class WPSEO_Configuration_Storage {
|
|
73 |
}
|
74 |
|
75 |
/**
|
76 |
-
* Set the adapter to use
|
77 |
*
|
78 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to use.
|
79 |
*/
|
@@ -86,7 +86,7 @@ class WPSEO_Configuration_Storage {
|
|
86 |
}
|
87 |
|
88 |
/**
|
89 |
-
* Retrieve the current adapter
|
90 |
*
|
91 |
* @return WPSEO_Configuration_Options_Adapter
|
92 |
*/
|
@@ -95,7 +95,7 @@ class WPSEO_Configuration_Storage {
|
|
95 |
}
|
96 |
|
97 |
/**
|
98 |
-
* Retrieve the registered fields
|
99 |
*
|
100 |
* @returns array List of settings.
|
101 |
*/
|
@@ -119,7 +119,7 @@ class WPSEO_Configuration_Storage {
|
|
119 |
}
|
120 |
|
121 |
/**
|
122 |
-
* Save the data
|
123 |
*
|
124 |
* @param array $data_to_store Data provided by the API which needs to be processed for saving.
|
125 |
*
|
@@ -161,7 +161,7 @@ class WPSEO_Configuration_Storage {
|
|
161 |
}
|
162 |
|
163 |
/**
|
164 |
-
* Filter out null input values
|
165 |
*
|
166 |
* @param mixed $input Input to test against.
|
167 |
*
|
@@ -172,7 +172,7 @@ class WPSEO_Configuration_Storage {
|
|
172 |
}
|
173 |
|
174 |
/**
|
175 |
-
* Get data from a specific field
|
176 |
*
|
177 |
* @param WPSEO_Config_Field $field Field to get data for.
|
178 |
*
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Configuration_Storage.
|
10 |
*/
|
11 |
class WPSEO_Configuration_Storage {
|
12 |
|
21 |
protected $fields = array();
|
22 |
|
23 |
/**
|
24 |
+
* Add default fields.
|
25 |
*/
|
26 |
public function add_default_fields() {
|
27 |
$fields = array(
|
60 |
}
|
61 |
|
62 |
/**
|
63 |
+
* Allow for field injections.
|
64 |
*
|
65 |
* @param WPSEO_Config_Field $field Field to add to the stack.
|
66 |
*/
|
73 |
}
|
74 |
|
75 |
/**
|
76 |
+
* Set the adapter to use.
|
77 |
*
|
78 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to use.
|
79 |
*/
|
86 |
}
|
87 |
|
88 |
/**
|
89 |
+
* Retrieve the current adapter.
|
90 |
*
|
91 |
* @return WPSEO_Configuration_Options_Adapter
|
92 |
*/
|
95 |
}
|
96 |
|
97 |
/**
|
98 |
+
* Retrieve the registered fields.
|
99 |
*
|
100 |
* @returns array List of settings.
|
101 |
*/
|
119 |
}
|
120 |
|
121 |
/**
|
122 |
+
* Save the data.
|
123 |
*
|
124 |
* @param array $data_to_store Data provided by the API which needs to be processed for saving.
|
125 |
*
|
161 |
}
|
162 |
|
163 |
/**
|
164 |
+
* Filter out null input values.
|
165 |
*
|
166 |
* @param mixed $input Input to test against.
|
167 |
*
|
172 |
}
|
173 |
|
174 |
/**
|
175 |
+
* Get data from a specific field.
|
176 |
*
|
177 |
* @param WPSEO_Config_Field $field Field to get data for.
|
178 |
*
|
admin/config-ui/class-configuration-structure.php
CHANGED
@@ -114,7 +114,7 @@ class WPSEO_Configuration_Structure {
|
|
114 |
}
|
115 |
|
116 |
/**
|
117 |
-
* Retrieve the registered steps
|
118 |
*
|
119 |
* @return array
|
120 |
*/
|
114 |
}
|
115 |
|
116 |
/**
|
117 |
+
* Retrieve the registered steps.
|
118 |
*
|
119 |
* @return array
|
120 |
*/
|
admin/config-ui/class-configuration-translations.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Configuration_Structure
|
10 |
*/
|
11 |
class WPSEO_Configuration_Translations {
|
12 |
|
@@ -35,7 +35,7 @@ class WPSEO_Configuration_Translations {
|
|
35 |
}
|
36 |
|
37 |
/**
|
38 |
-
* Retrieve the translations
|
39 |
*
|
40 |
* @return array
|
41 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Configuration_Structure.
|
10 |
*/
|
11 |
class WPSEO_Configuration_Translations {
|
12 |
|
35 |
}
|
36 |
|
37 |
/**
|
38 |
+
* Retrieve the translations.
|
39 |
*
|
40 |
* @return array
|
41 |
*/
|
admin/config-ui/components/class-component-connect-google-search-console.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Component_Connect_Google_Search_Console
|
10 |
*/
|
11 |
class WPSEO_Config_Component_Connect_Google_Search_Console implements WPSEO_Config_Component {
|
12 |
|
@@ -78,7 +78,7 @@ class WPSEO_Config_Component_Connect_Google_Search_Console implements WPSEO_Conf
|
|
78 |
}
|
79 |
|
80 |
/**
|
81 |
-
* Save data
|
82 |
*
|
83 |
* @param array $data Data containing changes.
|
84 |
*
|
@@ -105,7 +105,7 @@ class WPSEO_Config_Component_Connect_Google_Search_Console implements WPSEO_Conf
|
|
105 |
}
|
106 |
|
107 |
/**
|
108 |
-
* Remove issues when the profile has changed
|
109 |
*
|
110 |
* @param array $current_data Saved data before changes.
|
111 |
* @param array $data Data after changes.
|
@@ -120,7 +120,7 @@ class WPSEO_Config_Component_Connect_Google_Search_Console implements WPSEO_Conf
|
|
120 |
}
|
121 |
|
122 |
/**
|
123 |
-
* Get the current GSC profile
|
124 |
*
|
125 |
* @return string
|
126 |
*/
|
@@ -129,7 +129,7 @@ class WPSEO_Config_Component_Connect_Google_Search_Console implements WPSEO_Conf
|
|
129 |
}
|
130 |
|
131 |
/**
|
132 |
-
* Reload GSC issues
|
133 |
*/
|
134 |
protected function reload_issues() {
|
135 |
WPSEO_GSC_Settings::reload_issues();
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Component_Connect_Google_Search_Console.
|
10 |
*/
|
11 |
class WPSEO_Config_Component_Connect_Google_Search_Console implements WPSEO_Config_Component {
|
12 |
|
78 |
}
|
79 |
|
80 |
/**
|
81 |
+
* Save data.
|
82 |
*
|
83 |
* @param array $data Data containing changes.
|
84 |
*
|
105 |
}
|
106 |
|
107 |
/**
|
108 |
+
* Remove issues when the profile has changed.
|
109 |
*
|
110 |
* @param array $current_data Saved data before changes.
|
111 |
* @param array $data Data after changes.
|
120 |
}
|
121 |
|
122 |
/**
|
123 |
+
* Get the current GSC profile.
|
124 |
*
|
125 |
* @return string
|
126 |
*/
|
129 |
}
|
130 |
|
131 |
/**
|
132 |
+
* Reload GSC issues.
|
133 |
*/
|
134 |
protected function reload_issues() {
|
135 |
WPSEO_GSC_Settings::reload_issues();
|
admin/config-ui/components/class-component-mailchimp-signup.php
CHANGED
@@ -47,7 +47,7 @@ class WPSEO_Config_Component_Mailchimp_Signup implements WPSEO_Config_Component
|
|
47 |
}
|
48 |
|
49 |
/**
|
50 |
-
* Save data
|
51 |
*
|
52 |
* @param array $data Data containing changes.
|
53 |
*
|
@@ -72,7 +72,7 @@ class WPSEO_Config_Component_Mailchimp_Signup implements WPSEO_Config_Component
|
|
72 |
}
|
73 |
|
74 |
/**
|
75 |
-
* Checks if the user has entered
|
76 |
*
|
77 |
* @return bool
|
78 |
*/
|
47 |
}
|
48 |
|
49 |
/**
|
50 |
+
* Save data.
|
51 |
*
|
52 |
* @param array $data Data containing changes.
|
53 |
*
|
72 |
}
|
73 |
|
74 |
/**
|
75 |
+
* Checks if the user has entered their email for mailchimp already.
|
76 |
*
|
77 |
* @return bool
|
78 |
*/
|
admin/config-ui/components/class-component-suggestions.php
CHANGED
@@ -127,7 +127,7 @@ class WPSEO_Config_Component_Suggestions implements WPSEO_Config_Component {
|
|
127 |
}
|
128 |
|
129 |
/**
|
130 |
-
* Save data
|
131 |
*
|
132 |
* @param array $data Data containing changes.
|
133 |
*
|
127 |
}
|
128 |
|
129 |
/**
|
130 |
+
* Save data.
|
131 |
*
|
132 |
* @param array $data Data containing changes.
|
133 |
*
|
admin/config-ui/components/interface-component.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Config Component interface
|
10 |
*/
|
11 |
interface WPSEO_Config_Component {
|
12 |
|
@@ -21,7 +21,7 @@ interface WPSEO_Config_Component {
|
|
21 |
public function get_data();
|
22 |
|
23 |
/**
|
24 |
-
* Save changes
|
25 |
*
|
26 |
* @param array $data Data provided by the API.
|
27 |
*
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Config Component interface.
|
10 |
*/
|
11 |
interface WPSEO_Config_Component {
|
12 |
|
21 |
public function get_data();
|
22 |
|
23 |
/**
|
24 |
+
* Save changes.
|
25 |
*
|
26 |
* @param array $data Data provided by the API.
|
27 |
*
|
admin/config-ui/factories/class-factory-post-type.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Factory_Post_Type
|
10 |
*/
|
11 |
class WPSEO_Config_Factory_Post_Type {
|
12 |
|
@@ -47,7 +47,7 @@ class WPSEO_Config_Factory_Post_Type {
|
|
47 |
}
|
48 |
|
49 |
/**
|
50 |
-
* Add custom properties for specific post types
|
51 |
*
|
52 |
* @param string $post_type Post type of field that is being added.
|
53 |
* @param WPSEO_Config_Field $field Field that corresponds to the post type.
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Factory_Post_Type.
|
10 |
*/
|
11 |
class WPSEO_Config_Factory_Post_Type {
|
12 |
|
47 |
}
|
48 |
|
49 |
/**
|
50 |
+
* Add custom properties for specific post types.
|
51 |
*
|
52 |
* @param string $post_type Post type of field that is being added.
|
53 |
* @param WPSEO_Config_Field $field Field that corresponds to the post type.
|
admin/config-ui/fields/class-field-choice-post-type.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Choice_Post_Type
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Choice_Post_Type extends WPSEO_Config_Field_Choice {
|
12 |
|
@@ -36,7 +36,7 @@ class WPSEO_Config_Field_Choice_Post_Type extends WPSEO_Config_Field_Choice {
|
|
36 |
}
|
37 |
|
38 |
/**
|
39 |
-
* Set adapter
|
40 |
*
|
41 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
42 |
*/
|
@@ -71,7 +71,7 @@ class WPSEO_Config_Field_Choice_Post_Type extends WPSEO_Config_Field_Choice {
|
|
71 |
}
|
72 |
|
73 |
/**
|
74 |
-
* Set new data
|
75 |
*
|
76 |
* @param string $visible Visible (true) or hidden (false).
|
77 |
*
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Choice_Post_Type.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Choice_Post_Type extends WPSEO_Config_Field_Choice {
|
12 |
|
36 |
}
|
37 |
|
38 |
/**
|
39 |
+
* Set adapter.
|
40 |
*
|
41 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
42 |
*/
|
71 |
}
|
72 |
|
73 |
/**
|
74 |
+
* Set new data.
|
75 |
*
|
76 |
* @param string $visible Visible (true) or hidden (false).
|
77 |
*
|
admin/config-ui/fields/class-field-choice.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Choice
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Choice extends WPSEO_Config_Field {
|
12 |
|
@@ -22,7 +22,7 @@ class WPSEO_Config_Field_Choice extends WPSEO_Config_Field {
|
|
22 |
}
|
23 |
|
24 |
/**
|
25 |
-
* Add a choice to the properties
|
26 |
*
|
27 |
* @param string $value Value op the option.
|
28 |
* @param string $label Label to display for the value.
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Choice.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Choice extends WPSEO_Config_Field {
|
12 |
|
22 |
}
|
23 |
|
24 |
/**
|
25 |
+
* Add a choice to the properties.
|
26 |
*
|
27 |
* @param string $value Value op the option.
|
28 |
* @param string $label Label to display for the value.
|
admin/config-ui/fields/class-field-company-logo.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Company_Logo
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Company_Logo extends WPSEO_Config_Field {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Company_Logo.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Company_Logo extends WPSEO_Config_Field {
|
12 |
|
admin/config-ui/fields/class-field-company-name.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Company_Name
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Company_Name extends WPSEO_Config_Field {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Company_Name.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Company_Name extends WPSEO_Config_Field {
|
12 |
|
admin/config-ui/fields/class-field-company-or-person.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Company_Or_Person
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Company_Or_Person extends WPSEO_Config_Field_Choice {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Company_Or_Person.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Company_Or_Person extends WPSEO_Config_Field_Choice {
|
12 |
|
admin/config-ui/fields/class-field-connect-google-search-console.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Connect_Google_Search_Console
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Connect_Google_Search_Console extends WPSEO_Config_Field {
|
12 |
|
@@ -18,7 +18,7 @@ class WPSEO_Config_Field_Connect_Google_Search_Console extends WPSEO_Config_Fiel
|
|
18 |
}
|
19 |
|
20 |
/**
|
21 |
-
* Get the data
|
22 |
*
|
23 |
* @return array
|
24 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Connect_Google_Search_Console.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Connect_Google_Search_Console extends WPSEO_Config_Field {
|
12 |
|
18 |
}
|
19 |
|
20 |
/**
|
21 |
+
* Get the data.
|
22 |
*
|
23 |
* @return array
|
24 |
*/
|
admin/config-ui/fields/class-field-environment.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Environment
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Environment extends WPSEO_Config_Field_Choice {
|
12 |
|
@@ -25,7 +25,7 @@ class WPSEO_Config_Field_Environment extends WPSEO_Config_Field_Choice {
|
|
25 |
}
|
26 |
|
27 |
/**
|
28 |
-
* Set adapter
|
29 |
*
|
30 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
31 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Environment.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Environment extends WPSEO_Config_Field_Choice {
|
12 |
|
25 |
}
|
26 |
|
27 |
/**
|
28 |
+
* Set adapter.
|
29 |
*
|
30 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
31 |
*/
|
admin/config-ui/fields/class-field-google-search-console-intro.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Google_Search_Console_Intro
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Google_Search_Console_Intro extends WPSEO_Config_Field {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Google_Search_Console_Intro.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Google_Search_Console_Intro extends WPSEO_Config_Field {
|
12 |
|
admin/config-ui/fields/class-field-mailchimp-signup.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Mailchimp_Signup
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Mailchimp_Signup extends WPSEO_Config_Field {
|
12 |
|
@@ -43,7 +43,7 @@ class WPSEO_Config_Field_Mailchimp_Signup extends WPSEO_Config_Field {
|
|
43 |
}
|
44 |
|
45 |
/**
|
46 |
-
* Get the data
|
47 |
*
|
48 |
* @return array
|
49 |
*/
|
@@ -54,7 +54,7 @@ class WPSEO_Config_Field_Mailchimp_Signup extends WPSEO_Config_Field {
|
|
54 |
}
|
55 |
|
56 |
/**
|
57 |
-
* Checks if the user has entered
|
58 |
*
|
59 |
* @return bool
|
60 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Mailchimp_Signup.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Mailchimp_Signup extends WPSEO_Config_Field {
|
12 |
|
43 |
}
|
44 |
|
45 |
/**
|
46 |
+
* Get the data.
|
47 |
*
|
48 |
* @return array
|
49 |
*/
|
54 |
}
|
55 |
|
56 |
/**
|
57 |
+
* Checks if the user has entered their email for mailchimp already.
|
58 |
*
|
59 |
* @return bool
|
60 |
*/
|
admin/config-ui/fields/class-field-multiple-authors.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Multiple_Authors
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Multiple_Authors extends WPSEO_Config_Field_Choice {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Multiple_Authors.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Multiple_Authors extends WPSEO_Config_Field_Choice {
|
12 |
|
admin/config-ui/fields/class-field-person.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Person_Name
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Person extends WPSEO_Config_Field {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Person_Name.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Person extends WPSEO_Config_Field {
|
12 |
|
admin/config-ui/fields/class-field-post-type-visibility.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Post_Type_Visibility
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Post_Type_Visibility extends WPSEO_Config_Field {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Post_Type_Visibility.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Post_Type_Visibility extends WPSEO_Config_Field {
|
12 |
|
admin/config-ui/fields/class-field-profile-url-facebook.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Profile_URL_Facebook
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Profile_URL_Facebook extends WPSEO_Config_Field {
|
12 |
|
@@ -23,7 +23,7 @@ class WPSEO_Config_Field_Profile_URL_Facebook extends WPSEO_Config_Field {
|
|
23 |
}
|
24 |
|
25 |
/**
|
26 |
-
* Set adapter
|
27 |
*
|
28 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
29 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Profile_URL_Facebook.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Profile_URL_Facebook extends WPSEO_Config_Field {
|
12 |
|
23 |
}
|
24 |
|
25 |
/**
|
26 |
+
* Set adapter.
|
27 |
*
|
28 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
29 |
*/
|
admin/config-ui/fields/class-field-profile-url-instagram.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Profile_URL_Instagram
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Profile_URL_Instagram extends WPSEO_Config_Field {
|
12 |
|
@@ -23,7 +23,7 @@ class WPSEO_Config_Field_Profile_URL_Instagram extends WPSEO_Config_Field {
|
|
23 |
}
|
24 |
|
25 |
/**
|
26 |
-
* Set adapter
|
27 |
*
|
28 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
29 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Profile_URL_Instagram.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Profile_URL_Instagram extends WPSEO_Config_Field {
|
12 |
|
23 |
}
|
24 |
|
25 |
/**
|
26 |
+
* Set adapter.
|
27 |
*
|
28 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
29 |
*/
|
admin/config-ui/fields/class-field-profile-url-linkedin.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Profile_URL_LinkedIn
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Profile_URL_LinkedIn extends WPSEO_Config_Field {
|
12 |
|
@@ -23,7 +23,7 @@ class WPSEO_Config_Field_Profile_URL_LinkedIn extends WPSEO_Config_Field {
|
|
23 |
}
|
24 |
|
25 |
/**
|
26 |
-
* Set adapter
|
27 |
*
|
28 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
29 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Profile_URL_LinkedIn.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Profile_URL_LinkedIn extends WPSEO_Config_Field {
|
12 |
|
23 |
}
|
24 |
|
25 |
/**
|
26 |
+
* Set adapter.
|
27 |
*
|
28 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
29 |
*/
|
admin/config-ui/fields/class-field-profile-url-myspace.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Profile_URL_MySpace
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Profile_URL_MySpace extends WPSEO_Config_Field {
|
12 |
|
@@ -23,7 +23,7 @@ class WPSEO_Config_Field_Profile_URL_MySpace extends WPSEO_Config_Field {
|
|
23 |
}
|
24 |
|
25 |
/**
|
26 |
-
* Set adapter
|
27 |
*
|
28 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
29 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Profile_URL_MySpace.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Profile_URL_MySpace extends WPSEO_Config_Field {
|
12 |
|
23 |
}
|
24 |
|
25 |
/**
|
26 |
+
* Set adapter.
|
27 |
*
|
28 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
29 |
*/
|
admin/config-ui/fields/class-field-profile-url-pinterest.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Profile_URL_Pinterest
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Profile_URL_Pinterest extends WPSEO_Config_Field {
|
12 |
|
@@ -23,7 +23,7 @@ class WPSEO_Config_Field_Profile_URL_Pinterest extends WPSEO_Config_Field {
|
|
23 |
}
|
24 |
|
25 |
/**
|
26 |
-
* Set adapter
|
27 |
*
|
28 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
29 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Profile_URL_Pinterest.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Profile_URL_Pinterest extends WPSEO_Config_Field {
|
12 |
|
23 |
}
|
24 |
|
25 |
/**
|
26 |
+
* Set adapter.
|
27 |
*
|
28 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
29 |
*/
|
admin/config-ui/fields/class-field-profile-url-twitter.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Profile_URL_Twitter
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Profile_URL_Twitter extends WPSEO_Config_Field {
|
12 |
|
@@ -22,7 +22,7 @@ class WPSEO_Config_Field_Profile_URL_Twitter extends WPSEO_Config_Field {
|
|
22 |
}
|
23 |
|
24 |
/**
|
25 |
-
* Set adapter
|
26 |
*
|
27 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
28 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Profile_URL_Twitter.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Profile_URL_Twitter extends WPSEO_Config_Field {
|
12 |
|
22 |
}
|
23 |
|
24 |
/**
|
25 |
+
* Set adapter.
|
26 |
*
|
27 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
28 |
*/
|
admin/config-ui/fields/class-field-profile-url-youtube.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Profile_URL_YouTube
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Profile_URL_YouTube extends WPSEO_Config_Field {
|
12 |
|
@@ -23,7 +23,7 @@ class WPSEO_Config_Field_Profile_URL_YouTube extends WPSEO_Config_Field {
|
|
23 |
}
|
24 |
|
25 |
/**
|
26 |
-
* Set adapter
|
27 |
*
|
28 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
29 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Profile_URL_YouTube.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Profile_URL_YouTube extends WPSEO_Config_Field {
|
12 |
|
23 |
}
|
24 |
|
25 |
/**
|
26 |
+
* Set adapter.
|
27 |
*
|
28 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
29 |
*/
|
admin/config-ui/fields/class-field-separator.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Separator
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Separator extends WPSEO_Config_Field_Choice {
|
12 |
|
@@ -33,7 +33,7 @@ class WPSEO_Config_Field_Separator extends WPSEO_Config_Field_Choice {
|
|
33 |
}
|
34 |
|
35 |
/**
|
36 |
-
* Set adapter
|
37 |
*
|
38 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
39 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Separator.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Separator extends WPSEO_Config_Field_Choice {
|
12 |
|
33 |
}
|
34 |
|
35 |
/**
|
36 |
+
* Set adapter.
|
37 |
*
|
38 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
39 |
*/
|
admin/config-ui/fields/class-field-site-name.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Site_Name
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Site_Name extends WPSEO_Config_Field {
|
12 |
|
@@ -22,7 +22,7 @@ class WPSEO_Config_Field_Site_Name extends WPSEO_Config_Field {
|
|
22 |
}
|
23 |
|
24 |
/**
|
25 |
-
* Set adapter
|
26 |
*
|
27 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
28 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Site_Name.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Site_Name extends WPSEO_Config_Field {
|
12 |
|
22 |
}
|
23 |
|
24 |
/**
|
25 |
+
* Set adapter.
|
26 |
*
|
27 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
28 |
*/
|
admin/config-ui/fields/class-field-site-type.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Site_Type
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Site_Type extends WPSEO_Config_Field_Choice {
|
12 |
|
@@ -29,7 +29,7 @@ class WPSEO_Config_Field_Site_Type extends WPSEO_Config_Field_Choice {
|
|
29 |
}
|
30 |
|
31 |
/**
|
32 |
-
* Set adapter
|
33 |
*
|
34 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
35 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Site_Type.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Site_Type extends WPSEO_Config_Field_Choice {
|
12 |
|
29 |
}
|
30 |
|
31 |
/**
|
32 |
+
* Set adapter.
|
33 |
*
|
34 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
35 |
*/
|
admin/config-ui/fields/class-field-success-message.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Success_Message
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Success_Message extends WPSEO_Config_Field {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Success_Message.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Success_Message extends WPSEO_Config_Field {
|
12 |
|
admin/config-ui/fields/class-field-suggestions.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Holds the suggestions for the 'You might also like' page in the wizard
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Suggestions extends WPSEO_Config_Field {
|
12 |
|
@@ -20,7 +20,7 @@ class WPSEO_Config_Field_Suggestions extends WPSEO_Config_Field {
|
|
20 |
}
|
21 |
|
22 |
/**
|
23 |
-
* Adds a suggestion to the properties
|
24 |
*
|
25 |
* @param string $title The title of the choice.
|
26 |
* @param string $copy The text explaining the choice.
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Holds the suggestions for the 'You might also like' page in the wizard.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Suggestions extends WPSEO_Config_Field {
|
12 |
|
20 |
}
|
21 |
|
22 |
/**
|
23 |
+
* Adds a suggestion to the properties.
|
24 |
*
|
25 |
* @param string $title The title of the choice.
|
26 |
* @param string $copy The text explaining the choice.
|
admin/config-ui/fields/class-field-title-intro.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Title_Intro
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Title_Intro extends WPSEO_Config_Field {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Title_Intro.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Title_Intro extends WPSEO_Config_Field {
|
12 |
|
admin/config-ui/fields/class-field-upsell-configuration-service.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Upsell_Configuration_Service
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Upsell_Configuration_Service extends WPSEO_Config_Field {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Upsell_Configuration_Service.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Upsell_Configuration_Service extends WPSEO_Config_Field {
|
12 |
|
admin/config-ui/fields/class-field-upsell-site-review.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field_Upsell_Site_Review
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Upsell_Site_Review extends WPSEO_Config_Field {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field_Upsell_Site_Review.
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Upsell_Site_Review extends WPSEO_Config_Field {
|
12 |
|
admin/config-ui/fields/class-field.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Config_Field
|
10 |
*/
|
11 |
class WPSEO_Config_Field {
|
12 |
|
@@ -57,7 +57,7 @@ class WPSEO_Config_Field {
|
|
57 |
}
|
58 |
|
59 |
/**
|
60 |
-
* Get the identifier
|
61 |
*
|
62 |
* @return string
|
63 |
*/
|
@@ -66,7 +66,7 @@ class WPSEO_Config_Field {
|
|
66 |
}
|
67 |
|
68 |
/**
|
69 |
-
* Get the component
|
70 |
*
|
71 |
* @return string
|
72 |
*/
|
@@ -75,7 +75,7 @@ class WPSEO_Config_Field {
|
|
75 |
}
|
76 |
|
77 |
/**
|
78 |
-
* Set a property value
|
79 |
*
|
80 |
* @param string $name Property to set.
|
81 |
* @param mixed $value Value to apply.
|
@@ -85,7 +85,7 @@ class WPSEO_Config_Field {
|
|
85 |
}
|
86 |
|
87 |
/**
|
88 |
-
* Get all the properties
|
89 |
*
|
90 |
* @return array
|
91 |
*/
|
@@ -94,7 +94,7 @@ class WPSEO_Config_Field {
|
|
94 |
}
|
95 |
|
96 |
/**
|
97 |
-
* Get the data
|
98 |
*
|
99 |
* @return mixed
|
100 |
*/
|
@@ -126,7 +126,7 @@ class WPSEO_Config_Field {
|
|
126 |
}
|
127 |
|
128 |
/**
|
129 |
-
* Set the adapter to use
|
130 |
*
|
131 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
132 |
*/
|
@@ -147,7 +147,7 @@ class WPSEO_Config_Field {
|
|
147 |
}
|
148 |
|
149 |
/**
|
150 |
-
* Get the required field settings (if present)
|
151 |
*
|
152 |
* @return array
|
153 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Config_Field.
|
10 |
*/
|
11 |
class WPSEO_Config_Field {
|
12 |
|
57 |
}
|
58 |
|
59 |
/**
|
60 |
+
* Get the identifier.
|
61 |
*
|
62 |
* @return string
|
63 |
*/
|
66 |
}
|
67 |
|
68 |
/**
|
69 |
+
* Get the component.
|
70 |
*
|
71 |
* @return string
|
72 |
*/
|
75 |
}
|
76 |
|
77 |
/**
|
78 |
+
* Set a property value.
|
79 |
*
|
80 |
* @param string $name Property to set.
|
81 |
* @param mixed $value Value to apply.
|
85 |
}
|
86 |
|
87 |
/**
|
88 |
+
* Get all the properties.
|
89 |
*
|
90 |
* @return array
|
91 |
*/
|
94 |
}
|
95 |
|
96 |
/**
|
97 |
+
* Get the data.
|
98 |
*
|
99 |
* @return mixed
|
100 |
*/
|
126 |
}
|
127 |
|
128 |
/**
|
129 |
+
* Set the adapter to use.
|
130 |
*
|
131 |
* @param WPSEO_Configuration_Options_Adapter $adapter Adapter to register lookup on.
|
132 |
*/
|
147 |
}
|
148 |
|
149 |
/**
|
150 |
+
* Get the required field settings (if present).
|
151 |
*
|
152 |
* @return array
|
153 |
*/
|
admin/filters/class-abstract-post-filter.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Abstract_Post_Filter
|
10 |
*/
|
11 |
abstract class WPSEO_Abstract_Post_Filter implements WPSEO_WordPress_Integration {
|
12 |
|
@@ -16,7 +16,7 @@ abstract class WPSEO_Abstract_Post_Filter implements WPSEO_WordPress_Integration
|
|
16 |
const FILTER_QUERY_ARG = 'yoast_filter';
|
17 |
|
18 |
/**
|
19 |
-
* Modify the query based on the FILTER_QUERY_ARG variable in $_GET
|
20 |
*
|
21 |
* @param string $where Query variables.
|
22 |
*
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Abstract_Post_Filter.
|
10 |
*/
|
11 |
abstract class WPSEO_Abstract_Post_Filter implements WPSEO_WordPress_Integration {
|
12 |
|
16 |
const FILTER_QUERY_ARG = 'yoast_filter';
|
17 |
|
18 |
/**
|
19 |
+
* Modify the query based on the FILTER_QUERY_ARG variable in $_GET.
|
20 |
*
|
21 |
* @param string $where Query variables.
|
22 |
*
|
admin/filters/class-cornerstone-filter.php
CHANGED
@@ -39,7 +39,7 @@ class WPSEO_Cornerstone_Filter extends WPSEO_Abstract_Post_Filter {
|
|
39 |
}
|
40 |
|
41 |
/**
|
42 |
-
* Modify the query based on the seo_filter variable in $_GET
|
43 |
*
|
44 |
* @param string $where Query variables.
|
45 |
*
|
39 |
}
|
40 |
|
41 |
/**
|
42 |
+
* Modify the query based on the seo_filter variable in $_GET.
|
43 |
*
|
44 |
* @param string $where Query variables.
|
45 |
*
|
admin/formatter/class-metabox-formatter.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* This class forces needed methods for the metabox localization
|
10 |
*/
|
11 |
class WPSEO_Metabox_Formatter {
|
12 |
|
@@ -27,7 +27,7 @@ class WPSEO_Metabox_Formatter {
|
|
27 |
}
|
28 |
|
29 |
/**
|
30 |
-
* Returns the values
|
31 |
*
|
32 |
* @return array
|
33 |
*/
|
@@ -39,7 +39,7 @@ class WPSEO_Metabox_Formatter {
|
|
39 |
}
|
40 |
|
41 |
/**
|
42 |
-
* Returns array with all the values always needed by a scraper object
|
43 |
*
|
44 |
* @return array Default settings for the metabox.
|
45 |
*/
|
@@ -203,7 +203,7 @@ class WPSEO_Metabox_Formatter {
|
|
203 |
__( 'Get %s', 'wordpress-seo' ),
|
204 |
'Yoast SEO Premium'
|
205 |
),
|
206 |
-
'small' => __( '1 year free
|
207 |
'a11yNotice.opensInNewTab' => __( '(Opens in a new browser tab)', 'wordpress-seo' ),
|
208 |
);
|
209 |
}
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* This class forces needed methods for the metabox localization.
|
10 |
*/
|
11 |
class WPSEO_Metabox_Formatter {
|
12 |
|
27 |
}
|
28 |
|
29 |
/**
|
30 |
+
* Returns the values.
|
31 |
*
|
32 |
* @return array
|
33 |
*/
|
39 |
}
|
40 |
|
41 |
/**
|
42 |
+
* Returns array with all the values always needed by a scraper object.
|
43 |
*
|
44 |
* @return array Default settings for the metabox.
|
45 |
*/
|
203 |
__( 'Get %s', 'wordpress-seo' ),
|
204 |
'Yoast SEO Premium'
|
205 |
),
|
206 |
+
'small' => __( '1 year free support and updates included!', 'wordpress-seo' ),
|
207 |
'a11yNotice.opensInNewTab' => __( '(Opens in a new browser tab)', 'wordpress-seo' ),
|
208 |
);
|
209 |
}
|
admin/formatter/class-post-metabox-formatter.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* This class provides data for the post metabox by return its values for localization
|
10 |
*/
|
11 |
class WPSEO_Post_Metabox_Formatter implements WPSEO_Metabox_Formatter_Interface {
|
12 |
|
@@ -62,7 +62,7 @@ class WPSEO_Post_Metabox_Formatter implements WPSEO_Metabox_Formatter_Interface
|
|
62 |
}
|
63 |
|
64 |
/**
|
65 |
-
* Returns the url to search for keyword for the post
|
66 |
*
|
67 |
* @return string
|
68 |
*/
|
@@ -71,7 +71,7 @@ class WPSEO_Post_Metabox_Formatter implements WPSEO_Metabox_Formatter_Interface
|
|
71 |
}
|
72 |
|
73 |
/**
|
74 |
-
* Returns the url to edit the taxonomy
|
75 |
*
|
76 |
* @return string
|
77 |
*/
|
@@ -80,7 +80,7 @@ class WPSEO_Post_Metabox_Formatter implements WPSEO_Metabox_Formatter_Interface
|
|
80 |
}
|
81 |
|
82 |
/**
|
83 |
-
* Returns a base URL for use in the JS, takes permalink structure into account
|
84 |
*
|
85 |
* @return string
|
86 |
*/
|
@@ -194,7 +194,7 @@ class WPSEO_Post_Metabox_Formatter implements WPSEO_Metabox_Formatter_Interface
|
|
194 |
}
|
195 |
|
196 |
/**
|
197 |
-
* Determines the date to be displayed in the snippet preview
|
198 |
*
|
199 |
* @return string
|
200 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* This class provides data for the post metabox by return its values for localization.
|
10 |
*/
|
11 |
class WPSEO_Post_Metabox_Formatter implements WPSEO_Metabox_Formatter_Interface {
|
12 |
|
62 |
}
|
63 |
|
64 |
/**
|
65 |
+
* Returns the url to search for keyword for the post.
|
66 |
*
|
67 |
* @return string
|
68 |
*/
|
71 |
}
|
72 |
|
73 |
/**
|
74 |
+
* Returns the url to edit the taxonomy.
|
75 |
*
|
76 |
* @return string
|
77 |
*/
|
80 |
}
|
81 |
|
82 |
/**
|
83 |
+
* Returns a base URL for use in the JS, takes permalink structure into account.
|
84 |
*
|
85 |
* @return string
|
86 |
*/
|
194 |
}
|
195 |
|
196 |
/**
|
197 |
+
* Determines the date to be displayed in the snippet preview.
|
198 |
*
|
199 |
* @return string
|
200 |
*/
|
admin/formatter/class-term-metabox-formatter.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* This class provides data for the term metabox by return its values for localization
|
10 |
*/
|
11 |
class WPSEO_Term_Metabox_Formatter implements WPSEO_Metabox_Formatter_Interface {
|
12 |
|
@@ -63,7 +63,7 @@ class WPSEO_Term_Metabox_Formatter implements WPSEO_Metabox_Formatter_Interface
|
|
63 |
}
|
64 |
|
65 |
/**
|
66 |
-
* Returns the url to search for keyword for the taxonomy
|
67 |
*
|
68 |
* @return string
|
69 |
*/
|
@@ -72,7 +72,7 @@ class WPSEO_Term_Metabox_Formatter implements WPSEO_Metabox_Formatter_Interface
|
|
72 |
}
|
73 |
|
74 |
/**
|
75 |
-
* Returns the url to edit the taxonomy
|
76 |
*
|
77 |
* @return string
|
78 |
*/
|
@@ -83,7 +83,7 @@ class WPSEO_Term_Metabox_Formatter implements WPSEO_Metabox_Formatter_Interface
|
|
83 |
}
|
84 |
|
85 |
/**
|
86 |
-
* Returns a base URL for use in the JS, takes permalink structure into account
|
87 |
*
|
88 |
* @return string
|
89 |
*/
|
@@ -98,7 +98,7 @@ class WPSEO_Term_Metabox_Formatter implements WPSEO_Metabox_Formatter_Interface
|
|
98 |
}
|
99 |
|
100 |
/**
|
101 |
-
* Counting the number of given keyword used for other term than given term_id
|
102 |
*
|
103 |
* @return array
|
104 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* This class provides data for the term metabox by return its values for localization.
|
10 |
*/
|
11 |
class WPSEO_Term_Metabox_Formatter implements WPSEO_Metabox_Formatter_Interface {
|
12 |
|
63 |
}
|
64 |
|
65 |
/**
|
66 |
+
* Returns the url to search for keyword for the taxonomy.
|
67 |
*
|
68 |
* @return string
|
69 |
*/
|
72 |
}
|
73 |
|
74 |
/**
|
75 |
+
* Returns the url to edit the taxonomy.
|
76 |
*
|
77 |
* @return string
|
78 |
*/
|
83 |
}
|
84 |
|
85 |
/**
|
86 |
+
* Returns a base URL for use in the JS, takes permalink structure into account.
|
87 |
*
|
88 |
* @return string
|
89 |
*/
|
98 |
}
|
99 |
|
100 |
/**
|
101 |
+
* Counting the number of given keyword used for other term than given term_id.
|
102 |
*
|
103 |
* @return array
|
104 |
*/
|
admin/formatter/interface-metabox-formatter.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Interface to force get_values
|
10 |
*/
|
11 |
interface WPSEO_Metabox_Formatter_Interface {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Interface to force get_values.
|
10 |
*/
|
11 |
interface WPSEO_Metabox_Formatter_Interface {
|
12 |
|
admin/google_search_console/class-gsc-ajax.php
CHANGED
@@ -6,12 +6,12 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_GSC_Ajax
|
10 |
*/
|
11 |
class WPSEO_GSC_Ajax {
|
12 |
|
13 |
/**
|
14 |
-
* Setting the AJAX hooks for GSC
|
15 |
*/
|
16 |
public function __construct() {
|
17 |
add_action( 'wp_ajax_wpseo_mark_fixed_crawl_issue', array( $this, 'ajax_mark_as_fixed' ) );
|
@@ -24,7 +24,7 @@ class WPSEO_GSC_Ajax {
|
|
24 |
/**
|
25 |
* This method will be access by an AJAX request and will mark an issue as fixed.
|
26 |
*
|
27 |
-
* First it will do a request to the Google API
|
28 |
*/
|
29 |
public function ajax_mark_as_fixed() {
|
30 |
if ( $this->valid_nonce() ) {
|
@@ -37,7 +37,7 @@ class WPSEO_GSC_Ajax {
|
|
37 |
}
|
38 |
|
39 |
/**
|
40 |
-
* Handle the AJAX request and dismiss the GSC notice
|
41 |
*/
|
42 |
public function dismiss_notice() {
|
43 |
check_ajax_referer( 'dismiss-gsc-notice' );
|
@@ -82,7 +82,7 @@ class WPSEO_GSC_Ajax {
|
|
82 |
}
|
83 |
|
84 |
/**
|
85 |
-
* Check if posted nonce is valid and return true if it is
|
86 |
*
|
87 |
* @return mixed
|
88 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_GSC_Ajax.
|
10 |
*/
|
11 |
class WPSEO_GSC_Ajax {
|
12 |
|
13 |
/**
|
14 |
+
* Setting the AJAX hooks for GSC.
|
15 |
*/
|
16 |
public function __construct() {
|
17 |
add_action( 'wp_ajax_wpseo_mark_fixed_crawl_issue', array( $this, 'ajax_mark_as_fixed' ) );
|
24 |
/**
|
25 |
* This method will be access by an AJAX request and will mark an issue as fixed.
|
26 |
*
|
27 |
+
* First it will do a request to the Google API.
|
28 |
*/
|
29 |
public function ajax_mark_as_fixed() {
|
30 |
if ( $this->valid_nonce() ) {
|
37 |
}
|
38 |
|
39 |
/**
|
40 |
+
* Handle the AJAX request and dismiss the GSC notice.
|
41 |
*/
|
42 |
public function dismiss_notice() {
|
43 |
check_ajax_referer( 'dismiss-gsc-notice' );
|
82 |
}
|
83 |
|
84 |
/**
|
85 |
+
* Check if posted nonce is valid and return true if it is.
|
86 |
*
|
87 |
* @return mixed
|
88 |
*/
|
admin/google_search_console/class-gsc-bulk-action.php
CHANGED
@@ -6,12 +6,12 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_GSC_Bulk_Action
|
10 |
*/
|
11 |
class WPSEO_GSC_Bulk_Action {
|
12 |
|
13 |
/**
|
14 |
-
* Setting the listener on the bulk action post
|
15 |
*/
|
16 |
public function __construct() {
|
17 |
if ( wp_verify_nonce( filter_input( INPUT_POST, 'wpseo_gsc_nonce' ), 'wpseo_gsc_nonce' ) ) {
|
@@ -20,7 +20,7 @@ class WPSEO_GSC_Bulk_Action {
|
|
20 |
}
|
21 |
|
22 |
/**
|
23 |
-
* Handles the bulk action when there is an action posted
|
24 |
*/
|
25 |
private function handle_bulk_action() {
|
26 |
$bulk_action = $this->determine_bulk_action();
|
@@ -33,7 +33,7 @@ class WPSEO_GSC_Bulk_Action {
|
|
33 |
}
|
34 |
|
35 |
/**
|
36 |
-
* Determine which bulk action is selected and return that value
|
37 |
*
|
38 |
* @return string|bool
|
39 |
*/
|
@@ -54,7 +54,7 @@ class WPSEO_GSC_Bulk_Action {
|
|
54 |
}
|
55 |
|
56 |
/**
|
57 |
-
* Get the posted issues and return them
|
58 |
*
|
59 |
* @return array
|
60 |
*/
|
@@ -69,7 +69,7 @@ class WPSEO_GSC_Bulk_Action {
|
|
69 |
}
|
70 |
|
71 |
/**
|
72 |
-
* Runs the bulk action
|
73 |
*
|
74 |
* @param string $bulk_action Action type.
|
75 |
* @param array $issues Set of issues to apply to.
|
@@ -84,7 +84,7 @@ class WPSEO_GSC_Bulk_Action {
|
|
84 |
}
|
85 |
|
86 |
/**
|
87 |
-
* Marks the issue as fixed
|
88 |
*
|
89 |
* @param string $issue Issue URL.
|
90 |
*
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_GSC_Bulk_Action.
|
10 |
*/
|
11 |
class WPSEO_GSC_Bulk_Action {
|
12 |
|
13 |
/**
|
14 |
+
* Setting the listener on the bulk action post.
|
15 |
*/
|
16 |
public function __construct() {
|
17 |
if ( wp_verify_nonce( filter_input( INPUT_POST, 'wpseo_gsc_nonce' ), 'wpseo_gsc_nonce' ) ) {
|
20 |
}
|
21 |
|
22 |
/**
|
23 |
+
* Handles the bulk action when there is an action posted.
|
24 |
*/
|
25 |
private function handle_bulk_action() {
|
26 |
$bulk_action = $this->determine_bulk_action();
|
33 |
}
|
34 |
|
35 |
/**
|
36 |
+
* Determine which bulk action is selected and return that value.
|
37 |
*
|
38 |
* @return string|bool
|
39 |
*/
|
54 |
}
|
55 |
|
56 |
/**
|
57 |
+
* Get the posted issues and return them.
|
58 |
*
|
59 |
* @return array
|
60 |
*/
|
69 |
}
|
70 |
|
71 |
/**
|
72 |
+
* Runs the bulk action.
|
73 |
*
|
74 |
* @param string $bulk_action Action type.
|
75 |
* @param array $issues Set of issues to apply to.
|
84 |
}
|
85 |
|
86 |
/**
|
87 |
+
* Marks the issue as fixed.
|
88 |
*
|
89 |
* @param string $issue Issue URL.
|
90 |
*
|
admin/google_search_console/class-gsc-category-filters.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_GSC_Category_Filters
|
10 |
*
|
11 |
* This class will get all category counts from the options and will parse the filter links that are displayed above
|
12 |
* the crawl issue tables.
|
@@ -14,30 +14,30 @@
|
|
14 |
class WPSEO_GSC_Category_Filters {
|
15 |
|
16 |
/**
|
17 |
-
* The counts per category
|
18 |
*
|
19 |
* @var array
|
20 |
*/
|
21 |
private $category_counts = array();
|
22 |
|
23 |
/**
|
24 |
-
* All the possible filters
|
25 |
*
|
26 |
* @var array
|
27 |
*/
|
28 |
private $filter_values = array();
|
29 |
|
30 |
/**
|
31 |
-
* The current category
|
32 |
*
|
33 |
* @var string
|
34 |
*/
|
35 |
private $category;
|
36 |
|
37 |
/**
|
38 |
-
* Constructing this object
|
39 |
*
|
40 |
-
* Setting the hook to create the issues categories as the links
|
41 |
*
|
42 |
* @param array $platform_counts Set of issue counts by platform.
|
43 |
*/
|
@@ -53,7 +53,7 @@ class WPSEO_GSC_Category_Filters {
|
|
53 |
}
|
54 |
|
55 |
/**
|
56 |
-
* Returns the value of the current category
|
57 |
*
|
58 |
* @return mixed|string
|
59 |
*/
|
@@ -62,9 +62,9 @@ class WPSEO_GSC_Category_Filters {
|
|
62 |
}
|
63 |
|
64 |
/**
|
65 |
-
* Returns the current filters as an array
|
66 |
*
|
67 |
-
* Only return categories with more than 0 issues
|
68 |
*
|
69 |
* @return array
|
70 |
*/
|
@@ -79,7 +79,7 @@ class WPSEO_GSC_Category_Filters {
|
|
79 |
}
|
80 |
|
81 |
/**
|
82 |
-
* Getting the current view
|
83 |
*/
|
84 |
private function get_current_category() {
|
85 |
$current_category = filter_input( INPUT_GET, 'category' );
|
@@ -101,7 +101,7 @@ class WPSEO_GSC_Category_Filters {
|
|
101 |
}
|
102 |
|
103 |
/**
|
104 |
-
* Setting the view counts based on the saved data. The info will be used to display the category filters
|
105 |
*
|
106 |
* @param array $platform_counts Set of counts by platform.
|
107 |
*/
|
@@ -110,7 +110,7 @@ class WPSEO_GSC_Category_Filters {
|
|
110 |
}
|
111 |
|
112 |
/**
|
113 |
-
* Setting the values for the filter
|
114 |
*/
|
115 |
private function set_filter_values() {
|
116 |
$this->set_filter_value( 'access_denied', __( 'Access denied', 'wordpress-seo' ), __( 'Server requires authentication or is blocking Googlebot from accessing the site.', 'wordpress-seo' ), __( 'Show information about errors in category \'Access Denied\'', 'wordpress-seo' ) );
|
@@ -125,7 +125,7 @@ class WPSEO_GSC_Category_Filters {
|
|
125 |
}
|
126 |
|
127 |
/**
|
128 |
-
* Add new filter value to the filter_values
|
129 |
*
|
130 |
* @param string $key Filter key.
|
131 |
* @param string $value Filter value.
|
@@ -141,7 +141,7 @@ class WPSEO_GSC_Category_Filters {
|
|
141 |
}
|
142 |
|
143 |
/**
|
144 |
-
* Creates a filter link
|
145 |
*
|
146 |
* @param string $category Issue type.
|
147 |
* @param integer $count Count for the type.
|
@@ -186,7 +186,9 @@ class WPSEO_GSC_Category_Filters {
|
|
186 |
}
|
187 |
|
188 |
/**
|
189 |
-
* Parsing the category counts.
|
|
|
|
|
190 |
*
|
191 |
* @param array $category_counts Set of counts for categories.
|
192 |
*
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_GSC_Category_Filters.
|
10 |
*
|
11 |
* This class will get all category counts from the options and will parse the filter links that are displayed above
|
12 |
* the crawl issue tables.
|
14 |
class WPSEO_GSC_Category_Filters {
|
15 |
|
16 |
/**
|
17 |
+
* The counts per category.
|
18 |
*
|
19 |
* @var array
|
20 |
*/
|
21 |
private $category_counts = array();
|
22 |
|
23 |
/**
|
24 |
+
* All the possible filters.
|
25 |
*
|
26 |
* @var array
|
27 |
*/
|
28 |
private $filter_values = array();
|
29 |
|
30 |
/**
|
31 |
+
* The current category.
|
32 |
*
|
33 |
* @var string
|
34 |
*/
|
35 |
private $category;
|
36 |
|
37 |
/**
|
38 |
+
* Constructing this object.
|
39 |
*
|
40 |
+
* Setting the hook to create the issues categories as the links.
|
41 |
*
|
42 |
* @param array $platform_counts Set of issue counts by platform.
|
43 |
*/
|
53 |
}
|
54 |
|
55 |
/**
|
56 |
+
* Returns the value of the current category.
|
57 |
*
|
58 |
* @return mixed|string
|
59 |
*/
|
62 |
}
|
63 |
|
64 |
/**
|
65 |
+
* Returns the current filters as an array.
|
66 |
*
|
67 |
+
* Only return categories with more than 0 issues.
|
68 |
*
|
69 |
* @return array
|
70 |
*/
|
79 |
}
|
80 |
|
81 |
/**
|
82 |
+
* Getting the current view.
|
83 |
*/
|
84 |
private function get_current_category() {
|
85 |
$current_category = filter_input( INPUT_GET, 'category' );
|
101 |
}
|
102 |
|
103 |
/**
|
104 |
+
* Setting the view counts based on the saved data. The info will be used to display the category filters.
|
105 |
*
|
106 |
* @param array $platform_counts Set of counts by platform.
|
107 |
*/
|
110 |
}
|
111 |
|
112 |
/**
|
113 |
+
* Setting the values for the filter.
|
114 |
*/
|
115 |
private function set_filter_values() {
|
116 |
$this->set_filter_value( 'access_denied', __( 'Access denied', 'wordpress-seo' ), __( 'Server requires authentication or is blocking Googlebot from accessing the site.', 'wordpress-seo' ), __( 'Show information about errors in category \'Access Denied\'', 'wordpress-seo' ) );
|
125 |
}
|
126 |
|
127 |
/**
|
128 |
+
* Add new filter value to the filter_values.
|
129 |
*
|
130 |
* @param string $key Filter key.
|
131 |
* @param string $value Filter value.
|
141 |
}
|
142 |
|
143 |
/**
|
144 |
+
* Creates a filter link.
|
145 |
*
|
146 |
* @param string $category Issue type.
|
147 |
* @param integer $count Count for the type.
|
186 |
}
|
187 |
|
188 |
/**
|
189 |
+
* Parsing the category counts.
|
190 |
+
*
|
191 |
+
* When there are 0 issues for a specific category, just remove that one from the array.
|
192 |
*
|
193 |
* @param array $category_counts Set of counts for categories.
|
194 |
*
|
admin/google_search_console/class-gsc-config.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_GSC_Config
|
10 |
*/
|
11 |
class WPSEO_GSC_Config {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_GSC_Config.
|
10 |
*/
|
11 |
class WPSEO_GSC_Config {
|
12 |
|
admin/google_search_console/class-gsc-count.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_GSC_Count
|
10 |
*/
|
11 |
class WPSEO_GSC_Count {
|
12 |
|
@@ -30,7 +30,7 @@ class WPSEO_GSC_Count {
|
|
30 |
private $service;
|
31 |
|
32 |
/**
|
33 |
-
* Holder for the fetched issues from GSC
|
34 |
*
|
35 |
* @var array
|
36 |
*/
|
@@ -46,7 +46,7 @@ class WPSEO_GSC_Count {
|
|
46 |
}
|
47 |
|
48 |
/**
|
49 |
-
* Getting the counts for given platform and return them as an array
|
50 |
*
|
51 |
* @param string $platform Platform (desktop, mobile, feature phone).
|
52 |
*
|
@@ -62,7 +62,7 @@ class WPSEO_GSC_Count {
|
|
62 |
}
|
63 |
|
64 |
/**
|
65 |
-
* Return the fetched issues
|
66 |
*
|
67 |
* @return array
|
68 |
*/
|
@@ -71,7 +71,7 @@ class WPSEO_GSC_Count {
|
|
71 |
}
|
72 |
|
73 |
/**
|
74 |
-
* Listing the issues an gives them back as fetched issues
|
75 |
*
|
76 |
* @param string $platform Platform (desktop, mobile, feature phone).
|
77 |
* @param string $category Issue category.
|
@@ -106,7 +106,7 @@ class WPSEO_GSC_Count {
|
|
106 |
}
|
107 |
|
108 |
/**
|
109 |
-
* Update the count of the issues
|
110 |
*
|
111 |
* @param string $platform Platform (desktop, mobile, feature phone).
|
112 |
* @param string $category Issue type.
|
@@ -123,7 +123,7 @@ class WPSEO_GSC_Count {
|
|
123 |
}
|
124 |
|
125 |
/**
|
126 |
-
* Fetching the counts from the GSC API
|
127 |
*/
|
128 |
public function fetch_counts() {
|
129 |
if ( WPSEO_GSC_Settings::get_profile() && $this->get_last_fetch() <= strtotime( '-12 hours' ) ) {
|
@@ -142,7 +142,7 @@ class WPSEO_GSC_Count {
|
|
142 |
}
|
143 |
|
144 |
/**
|
145 |
-
* Parsing the received counts from the API and map the keys to plugin friendly values
|
146 |
*
|
147 |
* @param array $fetched_counts Set of retrieved counts.
|
148 |
*
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_GSC_Count.
|
10 |
*/
|
11 |
class WPSEO_GSC_Count {
|
12 |
|
30 |
private $service;
|
31 |
|
32 |
/**
|
33 |
+
* Holder for the fetched issues from GSC.
|
34 |
*
|
35 |
* @var array
|
36 |
*/
|
46 |
}
|
47 |
|
48 |
/**
|
49 |
+
* Getting the counts for given platform and return them as an array.
|
50 |
*
|
51 |
* @param string $platform Platform (desktop, mobile, feature phone).
|
52 |
*
|
62 |
}
|
63 |
|
64 |
/**
|
65 |
+
* Return the fetched issues.
|
66 |
*
|
67 |
* @return array
|
68 |
*/
|
71 |
}
|
72 |
|
73 |
/**
|
74 |
+
* Listing the issues an gives them back as fetched issues.
|
75 |
*
|
76 |
* @param string $platform Platform (desktop, mobile, feature phone).
|
77 |
* @param string $category Issue category.
|
106 |
}
|
107 |
|
108 |
/**
|
109 |
+
* Update the count of the issues.
|
110 |
*
|
111 |
* @param string $platform Platform (desktop, mobile, feature phone).
|
112 |
* @param string $category Issue type.
|
123 |
}
|
124 |
|
125 |
/**
|
126 |
+
* Fetching the counts from the GSC API.
|
127 |
*/
|
128 |
public function fetch_counts() {
|
129 |
if ( WPSEO_GSC_Settings::get_profile() && $this->get_last_fetch() <= strtotime( '-12 hours' ) ) {
|
142 |
}
|
143 |
|
144 |
/**
|
145 |
+
* Parsing the received counts from the API and map the keys to plugin friendly values.
|
146 |
*
|
147 |
* @param array $fetched_counts Set of retrieved counts.
|
148 |
*
|
admin/google_search_console/class-gsc-issue.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_GSC_Issue
|
10 |
*/
|
11 |
class WPSEO_GSC_Issue {
|
12 |
|
@@ -46,7 +46,7 @@ class WPSEO_GSC_Issue {
|
|
46 |
}
|
47 |
|
48 |
/**
|
49 |
-
* Put the class properties in array
|
50 |
*
|
51 |
* @return array
|
52 |
*/
|
@@ -62,7 +62,7 @@ class WPSEO_GSC_Issue {
|
|
62 |
}
|
63 |
|
64 |
/**
|
65 |
-
* Converting the date to a date format
|
66 |
*
|
67 |
* @param DateTime $date_to_convert Date instance.
|
68 |
* @param string $format Format string.
|
@@ -79,7 +79,7 @@ class WPSEO_GSC_Issue {
|
|
79 |
}
|
80 |
|
81 |
/**
|
82 |
-
* Converting the date to a timestamp
|
83 |
*
|
84 |
* @param DateTime $date_to_convert Date object instance.
|
85 |
*
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_GSC_Issue.
|
10 |
*/
|
11 |
class WPSEO_GSC_Issue {
|
12 |
|
46 |
}
|
47 |
|
48 |
/**
|
49 |
+
* Put the class properties in array.
|
50 |
*
|
51 |
* @return array
|
52 |
*/
|
62 |
}
|
63 |
|
64 |
/**
|
65 |
+
* Converting the date to a date format.
|
66 |
*
|
67 |
* @param DateTime $date_to_convert Date instance.
|
68 |
* @param string $format Format string.
|
79 |
}
|
80 |
|
81 |
/**
|
82 |
+
* Converting the date to a timestamp.
|
83 |
*
|
84 |
* @param DateTime $date_to_convert Date object instance.
|
85 |
*
|
admin/google_search_console/class-gsc-issues.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_GSC_Issues
|
10 |
*/
|
11 |
class WPSEO_GSC_Issues {
|
12 |
|
@@ -16,21 +16,21 @@ class WPSEO_GSC_Issues {
|
|
16 |
private $option_name = '';
|
17 |
|
18 |
/**
|
19 |
-
* List of all current issues to compare with received issues
|
20 |
*
|
21 |
* @var array
|
22 |
*/
|
23 |
private $current_issues = array();
|
24 |
|
25 |
/**
|
26 |
-
* Holder for all the issues
|
27 |
*
|
28 |
* @var array
|
29 |
*/
|
30 |
private $issues = array();
|
31 |
|
32 |
/**
|
33 |
-
* Setting up the properties and fetching the current issues
|
34 |
*
|
35 |
* @param string $platform Platform type (desktop, mobile, feature phone).
|
36 |
* @param string $category Issues category.
|
@@ -55,7 +55,7 @@ class WPSEO_GSC_Issues {
|
|
55 |
}
|
56 |
|
57 |
/**
|
58 |
-
* Deleting the issue from the issues
|
59 |
*
|
60 |
* @param string $url URL to delete issues for.
|
61 |
*
|
@@ -96,7 +96,7 @@ class WPSEO_GSC_Issues {
|
|
96 |
}
|
97 |
|
98 |
/**
|
99 |
-
* Comparing the issue with the list of current existing issues
|
100 |
*
|
101 |
* @param array $crawl_issues Set of issues by reference.
|
102 |
* @param stdClass $issue Issue object to check against the list.
|
@@ -114,7 +114,7 @@ class WPSEO_GSC_Issues {
|
|
114 |
|
115 |
/**
|
116 |
* The fetched issue from the API will be parsed as an WPSEO_Crawl_Issue object. After initializing the issue as an
|
117 |
-
* object, the object will be returned
|
118 |
*
|
119 |
* @param stdClass $issue Issue data object.
|
120 |
*
|
@@ -160,7 +160,7 @@ class WPSEO_GSC_Issues {
|
|
160 |
}
|
161 |
|
162 |
/**
|
163 |
-
* Search in the issues for the given $url
|
164 |
*
|
165 |
* @param string $url Issue URL to search for.
|
166 |
*
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_GSC_Issues.
|
10 |
*/
|
11 |
class WPSEO_GSC_Issues {
|
12 |
|
16 |
private $option_name = '';
|
17 |
|
18 |
/**
|
19 |
+
* List of all current issues to compare with received issues.
|
20 |
*
|
21 |
* @var array
|
22 |
*/
|
23 |
private $current_issues = array();
|
24 |
|
25 |
/**
|
26 |
+
* Holder for all the issues.
|
27 |
*
|
28 |
* @var array
|
29 |
*/
|
30 |
private $issues = array();
|
31 |
|
32 |
/**
|
33 |
+
* Setting up the properties and fetching the current issues.
|
34 |
*
|
35 |
* @param string $platform Platform type (desktop, mobile, feature phone).
|
36 |
* @param string $category Issues category.
|
55 |
}
|
56 |
|
57 |
/**
|
58 |
+
* Deleting the issue from the issues.
|
59 |
*
|
60 |
* @param string $url URL to delete issues for.
|
61 |
*
|
96 |
}
|
97 |
|
98 |
/**
|
99 |
+
* Comparing the issue with the list of current existing issues.
|
100 |
*
|
101 |
* @param array $crawl_issues Set of issues by reference.
|
102 |
* @param stdClass $issue Issue object to check against the list.
|
114 |
|
115 |
/**
|
116 |
* The fetched issue from the API will be parsed as an WPSEO_Crawl_Issue object. After initializing the issue as an
|
117 |
+
* object, the object will be returned.
|
118 |
*
|
119 |
* @param stdClass $issue Issue data object.
|
120 |
*
|
160 |
}
|
161 |
|
162 |
/**
|
163 |
+
* Search in the issues for the given $url.
|
164 |
*
|
165 |
* @param string $url Issue URL to search for.
|
166 |
*
|
admin/google_search_console/class-gsc-mapper.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_GSC_Mapper
|
10 |
*/
|
11 |
class WPSEO_GSC_Mapper {
|
12 |
|
@@ -23,7 +23,7 @@ class WPSEO_GSC_Mapper {
|
|
23 |
);
|
24 |
|
25 |
/**
|
26 |
-
* The categories which can be mapped
|
27 |
*
|
28 |
* @var array
|
29 |
*/
|
@@ -56,7 +56,7 @@ class WPSEO_GSC_Mapper {
|
|
56 |
}
|
57 |
|
58 |
/**
|
59 |
-
* Mapping the platform
|
60 |
*
|
61 |
* @param string $platform Platform (desktop, mobile, feature phone).
|
62 |
*
|
@@ -69,7 +69,7 @@ class WPSEO_GSC_Mapper {
|
|
69 |
}
|
70 |
|
71 |
/**
|
72 |
-
* Mapping the given platform by value and return its key
|
73 |
*
|
74 |
* @param string $platform Platform (desktop, mobile, feature phone).
|
75 |
*
|
@@ -102,7 +102,7 @@ class WPSEO_GSC_Mapper {
|
|
102 |
}
|
103 |
|
104 |
/**
|
105 |
-
* Mapping the given category by value and return its key
|
106 |
*
|
107 |
* @param string $category Issue type.
|
108 |
*
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_GSC_Mapper.
|
10 |
*/
|
11 |
class WPSEO_GSC_Mapper {
|
12 |
|
23 |
);
|
24 |
|
25 |
/**
|
26 |
+
* The categories which can be mapped.
|
27 |
*
|
28 |
* @var array
|
29 |
*/
|
56 |
}
|
57 |
|
58 |
/**
|
59 |
+
* Mapping the platform.
|
60 |
*
|
61 |
* @param string $platform Platform (desktop, mobile, feature phone).
|
62 |
*
|
69 |
}
|
70 |
|
71 |
/**
|
72 |
+
* Mapping the given platform by value and return its key.
|
73 |
*
|
74 |
* @param string $platform Platform (desktop, mobile, feature phone).
|
75 |
*
|
102 |
}
|
103 |
|
104 |
/**
|
105 |
+
* Mapping the given category by value and return its key.
|
106 |
*
|
107 |
* @param string $category Issue type.
|
108 |
*
|
admin/google_search_console/class-gsc-marker.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_GSC_Marker
|
10 |
*/
|
11 |
class WPSEO_GSC_Marker {
|
12 |
|
@@ -36,9 +36,9 @@ class WPSEO_GSC_Marker {
|
|
36 |
private $result;
|
37 |
|
38 |
/**
|
39 |
-
* Setting up the needed API libs and return the result
|
40 |
*
|
41 |
-
* If param URL is given, the request is performed by a bulk action
|
42 |
*
|
43 |
* @param string $url Optional URL.
|
44 |
*/
|
@@ -48,7 +48,7 @@ class WPSEO_GSC_Marker {
|
|
48 |
}
|
49 |
|
50 |
/**
|
51 |
-
* Getting the response for the AJAX request
|
52 |
*
|
53 |
* @return string
|
54 |
*/
|
@@ -57,7 +57,7 @@ class WPSEO_GSC_Marker {
|
|
57 |
}
|
58 |
|
59 |
/**
|
60 |
-
* Setting the result, this method will check if current
|
61 |
*
|
62 |
* @return string
|
63 |
*/
|
@@ -76,7 +76,7 @@ class WPSEO_GSC_Marker {
|
|
76 |
}
|
77 |
|
78 |
/**
|
79 |
-
* Check if request is valid by verifying the posted nonce and return the URL if this one is set
|
80 |
*
|
81 |
* @return bool|string
|
82 |
*/
|
@@ -89,7 +89,7 @@ class WPSEO_GSC_Marker {
|
|
89 |
}
|
90 |
|
91 |
/**
|
92 |
-
* Storing the data belonging to the current issue, this data is needed in the 'mark as fixed' flow
|
93 |
*
|
94 |
* @return bool
|
95 |
*/
|
@@ -117,7 +117,7 @@ class WPSEO_GSC_Marker {
|
|
117 |
}
|
118 |
|
119 |
/**
|
120 |
-
* Delete the crawl issue from the database
|
121 |
*
|
122 |
* @return bool
|
123 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_GSC_Marker.
|
10 |
*/
|
11 |
class WPSEO_GSC_Marker {
|
12 |
|
36 |
private $result;
|
37 |
|
38 |
/**
|
39 |
+
* Setting up the needed API libs and return the result.
|
40 |
*
|
41 |
+
* If param URL is given, the request is performed by a bulk action.
|
42 |
*
|
43 |
* @param string $url Optional URL.
|
44 |
*/
|
48 |
}
|
49 |
|
50 |
/**
|
51 |
+
* Getting the response for the AJAX request.
|
52 |
*
|
53 |
* @return string
|
54 |
*/
|
57 |
}
|
58 |
|
59 |
/**
|
60 |
+
* Setting the result, this method will check if current.
|
61 |
*
|
62 |
* @return string
|
63 |
*/
|
76 |
}
|
77 |
|
78 |
/**
|
79 |
+
* Check if request is valid by verifying the posted nonce and return the URL if this one is set.
|
80 |
*
|
81 |
* @return bool|string
|
82 |
*/
|
89 |
}
|
90 |
|
91 |
/**
|
92 |
+
* Storing the data belonging to the current issue, this data is needed in the 'mark as fixed' flow.
|
93 |
*
|
94 |
* @return bool
|
95 |
*/
|
117 |
}
|
118 |
|
119 |
/**
|
120 |
+
* Delete the crawl issue from the database.
|
121 |
*
|
122 |
* @return bool
|
123 |
*/
|
admin/google_search_console/class-gsc-platform-tabs.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_GSC_Platform_Tabs
|
10 |
*/
|
11 |
class WPSEO_GSC_Platform_Tabs {
|
12 |
|
@@ -16,7 +16,7 @@ class WPSEO_GSC_Platform_Tabs {
|
|
16 |
private $current_tab;
|
17 |
|
18 |
/**
|
19 |
-
* Return the tabs as a string
|
20 |
*
|
21 |
* @return string
|
22 |
*/
|
@@ -25,7 +25,7 @@ class WPSEO_GSC_Platform_Tabs {
|
|
25 |
}
|
26 |
|
27 |
/**
|
28 |
-
* Getting the current_tab
|
29 |
*
|
30 |
* @return string
|
31 |
*/
|
@@ -34,7 +34,7 @@ class WPSEO_GSC_Platform_Tabs {
|
|
34 |
}
|
35 |
|
36 |
/**
|
37 |
-
* Loops through the array with all the platforms and convert it into an array
|
38 |
*
|
39 |
* @return string
|
40 |
*/
|
@@ -65,7 +65,7 @@ class WPSEO_GSC_Platform_Tabs {
|
|
65 |
}
|
66 |
|
67 |
/**
|
68 |
-
* Setting the current tab
|
69 |
*
|
70 |
* @param array $platforms Set of platforms (desktop, mobile, feature phone).
|
71 |
*/
|
@@ -78,7 +78,7 @@ class WPSEO_GSC_Platform_Tabs {
|
|
78 |
}
|
79 |
|
80 |
/**
|
81 |
-
* Parses the tab
|
82 |
*
|
83 |
* @param string $platform_target Platform (desktop, mobile, feature phone).
|
84 |
* @param string $platform_value Link anchor.
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_GSC_Platform_Tabs.
|
10 |
*/
|
11 |
class WPSEO_GSC_Platform_Tabs {
|
12 |
|
16 |
private $current_tab;
|
17 |
|
18 |
/**
|
19 |
+
* Return the tabs as a string.
|
20 |
*
|
21 |
* @return string
|
22 |
*/
|
25 |
}
|
26 |
|
27 |
/**
|
28 |
+
* Getting the current_tab.
|
29 |
*
|
30 |
* @return string
|
31 |
*/
|
34 |
}
|
35 |
|
36 |
/**
|
37 |
+
* Loops through the array with all the platforms and convert it into an array.
|
38 |
*
|
39 |
* @return string
|
40 |
*/
|
65 |
}
|
66 |
|
67 |
/**
|
68 |
+
* Setting the current tab.
|
69 |
*
|
70 |
* @param array $platforms Set of platforms (desktop, mobile, feature phone).
|
71 |
*/
|
78 |
}
|
79 |
|
80 |
/**
|
81 |
+
* Parses the tab.
|
82 |
*
|
83 |
* @param string $platform_target Platform (desktop, mobile, feature phone).
|
84 |
* @param string $platform_value Link anchor.
|
admin/google_search_console/class-gsc-service.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_GSC_Service
|
10 |
*/
|
11 |
class WPSEO_GSC_Service {
|
12 |
|
@@ -32,7 +32,7 @@ class WPSEO_GSC_Service {
|
|
32 |
}
|
33 |
|
34 |
/**
|
35 |
-
* Returns the client
|
36 |
*
|
37 |
* @return Yoast_Api_Google_Client
|
38 |
*/
|
@@ -41,7 +41,7 @@ class WPSEO_GSC_Service {
|
|
41 |
}
|
42 |
|
43 |
/**
|
44 |
-
* Removes the option and calls the clients clear_data method to clear that one as well
|
45 |
*/
|
46 |
public function clear_data() {
|
47 |
// Clear client data.
|
@@ -49,7 +49,7 @@ class WPSEO_GSC_Service {
|
|
49 |
}
|
50 |
|
51 |
/**
|
52 |
-
* Get all sites that are registered in the GSC panel
|
53 |
*
|
54 |
* @return array
|
55 |
*/
|
@@ -72,7 +72,7 @@ class WPSEO_GSC_Service {
|
|
72 |
}
|
73 |
|
74 |
/**
|
75 |
-
* Get crawl issues
|
76 |
*
|
77 |
* @return array
|
78 |
*/
|
@@ -95,7 +95,7 @@ class WPSEO_GSC_Service {
|
|
95 |
}
|
96 |
|
97 |
/**
|
98 |
-
* Sending request to mark issue as fixed
|
99 |
*
|
100 |
* @param string $url Issue URL.
|
101 |
* @param string $platform Platform (desktop, mobile, feature phone).
|
@@ -109,7 +109,7 @@ class WPSEO_GSC_Service {
|
|
109 |
}
|
110 |
|
111 |
/**
|
112 |
-
* Fetching the issues from the GSC API
|
113 |
*
|
114 |
* @param string $platform Platform (desktop, mobile, feature phone).
|
115 |
* @param string $category Issue type.
|
@@ -128,7 +128,7 @@ class WPSEO_GSC_Service {
|
|
128 |
}
|
129 |
|
130 |
/**
|
131 |
-
* Setting the GSC client
|
132 |
*/
|
133 |
private function set_client() {
|
134 |
try {
|
@@ -163,7 +163,7 @@ class WPSEO_GSC_Service {
|
|
163 |
}
|
164 |
|
165 |
/**
|
166 |
-
* Adding notice that the api libs has the wrong version
|
167 |
*
|
168 |
* @param string $notice Message string.
|
169 |
*/
|
@@ -174,7 +174,7 @@ class WPSEO_GSC_Service {
|
|
174 |
}
|
175 |
|
176 |
/**
|
177 |
-
* Getting the crawl error counts
|
178 |
*
|
179 |
* @param string $profile Profile name string.
|
180 |
*
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_GSC_Service.
|
10 |
*/
|
11 |
class WPSEO_GSC_Service {
|
12 |
|
32 |
}
|
33 |
|
34 |
/**
|
35 |
+
* Returns the client.
|
36 |
*
|
37 |
* @return Yoast_Api_Google_Client
|
38 |
*/
|
41 |
}
|
42 |
|
43 |
/**
|
44 |
+
* Removes the option and calls the clients clear_data method to clear that one as well.
|
45 |
*/
|
46 |
public function clear_data() {
|
47 |
// Clear client data.
|
49 |
}
|
50 |
|
51 |
/**
|
52 |
+
* Get all sites that are registered in the GSC panel.
|
53 |
*
|
54 |
* @return array
|
55 |
*/
|
72 |
}
|
73 |
|
74 |
/**
|
75 |
+
* Get crawl issues.
|
76 |
*
|
77 |
* @return array
|
78 |
*/
|
95 |
}
|
96 |
|
97 |
/**
|
98 |
+
* Sending request to mark issue as fixed.
|
99 |
*
|
100 |
* @param string $url Issue URL.
|
101 |
* @param string $platform Platform (desktop, mobile, feature phone).
|
109 |
}
|
110 |
|
111 |
/**
|
112 |
+
* Fetching the issues from the GSC API.
|
113 |
*
|
114 |
* @param string $platform Platform (desktop, mobile, feature phone).
|
115 |
* @param string $category Issue type.
|
128 |
}
|
129 |
|
130 |
/**
|
131 |
+
* Setting the GSC client.
|
132 |
*/
|
133 |
private function set_client() {
|
134 |
try {
|
163 |
}
|
164 |
|
165 |
/**
|
166 |
+
* Adding notice that the api libs has the wrong version.
|
167 |
*
|
168 |
* @param string $notice Message string.
|
169 |
*/
|
174 |
}
|
175 |
|
176 |
/**
|
177 |
+
* Getting the crawl error counts.
|
178 |
*
|
179 |
* @param string $profile Profile name string.
|
180 |
*
|
admin/google_search_console/class-gsc-settings.php
CHANGED
@@ -6,12 +6,12 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_GSC_Settings
|
10 |
*/
|
11 |
class WPSEO_GSC_Settings {
|
12 |
|
13 |
/**
|
14 |
-
* Clear all data from the database
|
15 |
*
|
16 |
* @param WPSEO_GSC_Service $service Service class instance.
|
17 |
*/
|
@@ -27,7 +27,7 @@ class WPSEO_GSC_Settings {
|
|
27 |
}
|
28 |
|
29 |
/**
|
30 |
-
* Reloading all the issues
|
31 |
*/
|
32 |
public static function reload_issues() {
|
33 |
// Remove issue and issue counts.
|
@@ -35,7 +35,7 @@ class WPSEO_GSC_Settings {
|
|
35 |
}
|
36 |
|
37 |
/**
|
38 |
-
* When authorization is successful return true, otherwise false
|
39 |
*
|
40 |
* @param string $authorization_code Code to validate.
|
41 |
* @param Yoast_Api_Google_Client $client Client object instance.
|
@@ -47,7 +47,7 @@ class WPSEO_GSC_Settings {
|
|
47 |
}
|
48 |
|
49 |
/**
|
50 |
-
* Get the GSC profile
|
51 |
*
|
52 |
* @return string
|
53 |
*/
|
@@ -66,7 +66,7 @@ class WPSEO_GSC_Settings {
|
|
66 |
}
|
67 |
|
68 |
/**
|
69 |
-
* Removes the issue counts and all the issues from the options
|
70 |
*/
|
71 |
private static function remove() {
|
72 |
// Remove the issue counts from the options.
|
@@ -77,7 +77,7 @@ class WPSEO_GSC_Settings {
|
|
77 |
}
|
78 |
|
79 |
/**
|
80 |
-
* Remove the issue counts
|
81 |
*/
|
82 |
private static function remove_issue_counts() {
|
83 |
// Remove the options which are holding the counts.
|
@@ -86,7 +86,7 @@ class WPSEO_GSC_Settings {
|
|
86 |
}
|
87 |
|
88 |
/**
|
89 |
-
* Delete the issues and their meta data from the database
|
90 |
*/
|
91 |
private static function remove_issues() {
|
92 |
global $wpdb;
|
@@ -96,7 +96,7 @@ class WPSEO_GSC_Settings {
|
|
96 |
}
|
97 |
|
98 |
/**
|
99 |
-
* Removes the options for GSC
|
100 |
*/
|
101 |
private static function remove_gsc_option() {
|
102 |
delete_option( WPSEO_GSC::OPTION_WPSEO_GSC );
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_GSC_Settings.
|
10 |
*/
|
11 |
class WPSEO_GSC_Settings {
|
12 |
|
13 |
/**
|
14 |
+
* Clear all data from the database.
|
15 |
*
|
16 |
* @param WPSEO_GSC_Service $service Service class instance.
|
17 |
*/
|
27 |
}
|
28 |
|
29 |
/**
|
30 |
+
* Reloading all the issues.
|
31 |
*/
|
32 |
public static function reload_issues() {
|
33 |
// Remove issue and issue counts.
|
35 |
}
|
36 |
|
37 |
/**
|
38 |
+
* When authorization is successful return true, otherwise false.
|
39 |
*
|
40 |
* @param string $authorization_code Code to validate.
|
41 |
* @param Yoast_Api_Google_Client $client Client object instance.
|
47 |
}
|
48 |
|
49 |
/**
|
50 |
+
* Get the GSC profile.
|
51 |
*
|
52 |
* @return string
|
53 |
*/
|
66 |
}
|
67 |
|
68 |
/**
|
69 |
+
* Removes the issue counts and all the issues from the options.
|
70 |
*/
|
71 |
private static function remove() {
|
72 |
// Remove the issue counts from the options.
|
77 |
}
|
78 |
|
79 |
/**
|
80 |
+
* Remove the issue counts.
|
81 |
*/
|
82 |
private static function remove_issue_counts() {
|
83 |
// Remove the options which are holding the counts.
|
86 |
}
|
87 |
|
88 |
/**
|
89 |
+
* Delete the issues and their meta data from the database.
|
90 |
*/
|
91 |
private static function remove_issues() {
|
92 |
global $wpdb;
|
96 |
}
|
97 |
|
98 |
/**
|
99 |
+
* Removes the options for GSC.
|
100 |
*/
|
101 |
private static function remove_gsc_option() {
|
102 |
delete_option( WPSEO_GSC::OPTION_WPSEO_GSC );
|
admin/google_search_console/class-gsc-table.php
CHANGED
@@ -10,7 +10,7 @@ if ( ! class_exists( 'WP_List_Table' ) ) {
|
|
10 |
}
|
11 |
|
12 |
/**
|
13 |
-
* Class WPSEO_GSC_Table
|
14 |
*/
|
15 |
class WPSEO_GSC_Table extends WP_List_Table {
|
16 |
|
@@ -25,7 +25,7 @@ class WPSEO_GSC_Table extends WP_List_Table {
|
|
25 |
private $search_string;
|
26 |
|
27 |
/**
|
28 |
-
* The category that is displayed
|
29 |
*
|
30 |
* @var mixed|string
|
31 |
*/
|
@@ -69,7 +69,7 @@ class WPSEO_GSC_Table extends WP_List_Table {
|
|
69 |
}
|
70 |
|
71 |
/**
|
72 |
-
* Getting the screen id from this table
|
73 |
*
|
74 |
* @return string
|
75 |
*/
|
@@ -92,7 +92,7 @@ class WPSEO_GSC_Table extends WP_List_Table {
|
|
92 |
}
|
93 |
|
94 |
/**
|
95 |
-
* Set the table columns
|
96 |
*
|
97 |
* @return array
|
98 |
*/
|
@@ -109,7 +109,7 @@ class WPSEO_GSC_Table extends WP_List_Table {
|
|
109 |
}
|
110 |
|
111 |
/**
|
112 |
-
* Return the columns that are sortable
|
113 |
*
|
114 |
* @return array
|
115 |
*/
|
@@ -125,7 +125,7 @@ class WPSEO_GSC_Table extends WP_List_Table {
|
|
125 |
}
|
126 |
|
127 |
/**
|
128 |
-
* Return available bulk actions
|
129 |
*
|
130 |
* @return array
|
131 |
*/
|
@@ -136,7 +136,7 @@ class WPSEO_GSC_Table extends WP_List_Table {
|
|
136 |
}
|
137 |
|
138 |
/**
|
139 |
-
* Default method to display a column
|
140 |
*
|
141 |
* @param array $item Data array.
|
142 |
* @param string $column_name Column name key.
|
@@ -148,7 +148,7 @@ class WPSEO_GSC_Table extends WP_List_Table {
|
|
148 |
}
|
149 |
|
150 |
/**
|
151 |
-
* Checkbox column
|
152 |
*
|
153 |
* @param array $item Item data array.
|
154 |
*
|
@@ -164,7 +164,7 @@ class WPSEO_GSC_Table extends WP_List_Table {
|
|
164 |
}
|
165 |
|
166 |
/**
|
167 |
-
* Formatting the output of the column last crawled into a dateformat
|
168 |
*
|
169 |
* @param array $item Item data array.
|
170 |
*
|
@@ -175,7 +175,7 @@ class WPSEO_GSC_Table extends WP_List_Table {
|
|
175 |
}
|
176 |
|
177 |
/**
|
178 |
-
* Formatting the output of the column first detected into a dateformat
|
179 |
*
|
180 |
* @param array $item Item data array.
|
181 |
*
|
@@ -186,7 +186,7 @@ class WPSEO_GSC_Table extends WP_List_Table {
|
|
186 |
}
|
187 |
|
188 |
/**
|
189 |
-
* URL column
|
190 |
*
|
191 |
* @param array $item Item data array.
|
192 |
*
|
@@ -212,7 +212,7 @@ class WPSEO_GSC_Table extends WP_List_Table {
|
|
212 |
/**
|
213 |
* Generates and display row actions links for the list table.
|
214 |
*
|
215 |
-
* We override the parent class method to avoid
|
216 |
*
|
217 |
* @param object $item The item being acted upon.
|
218 |
* @param string $column_name Current column name.
|
@@ -224,14 +224,14 @@ class WPSEO_GSC_Table extends WP_List_Table {
|
|
224 |
}
|
225 |
|
226 |
/**
|
227 |
-
* Running the setup of the columns
|
228 |
*/
|
229 |
private function setup_columns() {
|
230 |
$this->_column_headers = array( $this->get_columns(), array(), $this->get_sortable_columns() );
|
231 |
}
|
232 |
|
233 |
/**
|
234 |
-
* Check if the current category allow creating redirects
|
235 |
*
|
236 |
* @return bool
|
237 |
*/
|
@@ -240,7 +240,7 @@ class WPSEO_GSC_Table extends WP_List_Table {
|
|
240 |
}
|
241 |
|
242 |
/**
|
243 |
-
* Setting the table navigation
|
244 |
*
|
245 |
* @param int $total_items Total number of items.
|
246 |
* @param int $posts_per_page Number of items per page.
|
@@ -256,7 +256,7 @@ class WPSEO_GSC_Table extends WP_List_Table {
|
|
256 |
}
|
257 |
|
258 |
/**
|
259 |
-
* Setting the items
|
260 |
*/
|
261 |
private function parse_items() {
|
262 |
if ( is_array( $this->items ) && count( $this->items ) > 0 ) {
|
@@ -272,7 +272,7 @@ class WPSEO_GSC_Table extends WP_List_Table {
|
|
272 |
}
|
273 |
|
274 |
/**
|
275 |
-
* Search through the items
|
276 |
*/
|
277 |
private function do_search() {
|
278 |
$results = array();
|
@@ -290,7 +290,7 @@ class WPSEO_GSC_Table extends WP_List_Table {
|
|
290 |
}
|
291 |
|
292 |
/**
|
293 |
-
* Running the pagination
|
294 |
*/
|
295 |
private function paginate_items() {
|
296 |
/*
|
@@ -307,7 +307,7 @@ class WPSEO_GSC_Table extends WP_List_Table {
|
|
307 |
}
|
308 |
|
309 |
/**
|
310 |
-
* Sort the items by callback
|
311 |
*/
|
312 |
private function sort_items() {
|
313 |
// Sort the results.
|
@@ -315,7 +315,7 @@ class WPSEO_GSC_Table extends WP_List_Table {
|
|
315 |
}
|
316 |
|
317 |
/**
|
318 |
-
* Doing the sorting of the issues
|
319 |
*
|
320 |
* @param array $a First data set for comparison.
|
321 |
* @param array $b Second data set for comparison.
|
@@ -393,7 +393,7 @@ class WPSEO_GSC_Table extends WP_List_Table {
|
|
393 |
}
|
394 |
|
395 |
/**
|
396 |
-
* Showing the hidden fields used by the AJAX requests
|
397 |
*
|
398 |
* @param string $platform Platform (desktop, mobile, feature phone).
|
399 |
*/
|
10 |
}
|
11 |
|
12 |
/**
|
13 |
+
* Class WPSEO_GSC_Table.
|
14 |
*/
|
15 |
class WPSEO_GSC_Table extends WP_List_Table {
|
16 |
|
25 |
private $search_string;
|
26 |
|
27 |
/**
|
28 |
+
* The category that is displayed.
|
29 |
*
|
30 |
* @var mixed|string
|
31 |
*/
|
69 |
}
|
70 |
|
71 |
/**
|
72 |
+
* Getting the screen id from this table.
|
73 |
*
|
74 |
* @return string
|
75 |
*/
|
92 |
}
|
93 |
|
94 |
/**
|
95 |
+
* Set the table columns.
|
96 |
*
|
97 |
* @return array
|
98 |
*/
|
109 |
}
|
110 |
|
111 |
/**
|
112 |
+
* Return the columns that are sortable.
|
113 |
*
|
114 |
* @return array
|
115 |
*/
|
125 |
}
|
126 |
|
127 |
/**
|
128 |
+
* Return available bulk actions.
|
129 |
*
|
130 |
* @return array
|
131 |
*/
|
136 |
}
|
137 |
|
138 |
/**
|
139 |
+
* Default method to display a column.
|
140 |
*
|
141 |
* @param array $item Data array.
|
142 |
* @param string $column_name Column name key.
|
148 |
}
|
149 |
|
150 |
/**
|
151 |
+
* Checkbox column.
|
152 |
*
|
153 |
* @param array $item Item data array.
|
154 |
*
|
164 |
}
|
165 |
|
166 |
/**
|
167 |
+
* Formatting the output of the column last crawled into a dateformat.
|
168 |
*
|
169 |
* @param array $item Item data array.
|
170 |
*
|
175 |
}
|
176 |
|
177 |
/**
|
178 |
+
* Formatting the output of the column first detected into a dateformat.
|
179 |
*
|
180 |
* @param array $item Item data array.
|
181 |
*
|
186 |
}
|
187 |
|
188 |
/**
|
189 |
+
* URL column.
|
190 |
*
|
191 |
* @param array $item Item data array.
|
192 |
*
|
212 |
/**
|
213 |
* Generates and display row actions links for the list table.
|
214 |
*
|
215 |
+
* We override the parent class method to avoid buttons to be printed out twice.
|
216 |
*
|
217 |
* @param object $item The item being acted upon.
|
218 |
* @param string $column_name Current column name.
|
224 |
}
|
225 |
|
226 |
/**
|
227 |
+
* Running the setup of the columns.
|
228 |
*/
|
229 |
private function setup_columns() {
|
230 |
$this->_column_headers = array( $this->get_columns(), array(), $this->get_sortable_columns() );
|
231 |
}
|
232 |
|
233 |
/**
|
234 |
+
* Check if the current category allow creating redirects.
|
235 |
*
|
236 |
* @return bool
|
237 |
*/
|
240 |
}
|
241 |
|
242 |
/**
|
243 |
+
* Setting the table navigation.
|
244 |
*
|
245 |
* @param int $total_items Total number of items.
|
246 |
* @param int $posts_per_page Number of items per page.
|
256 |
}
|
257 |
|
258 |
/**
|
259 |
+
* Setting the items.
|
260 |
*/
|
261 |
private function parse_items() {
|
262 |
if ( is_array( $this->items ) && count( $this->items ) > 0 ) {
|
272 |
}
|
273 |
|
274 |
/**
|
275 |
+
* Search through the items.
|
276 |
*/
|
277 |
private function do_search() {
|
278 |
$results = array();
|
290 |
}
|
291 |
|
292 |
/**
|
293 |
+
* Running the pagination.
|
294 |
*/
|
295 |
private function paginate_items() {
|
296 |
/*
|
307 |
}
|
308 |
|
309 |
/**
|
310 |
+
* Sort the items by callback.
|
311 |
*/
|
312 |
private function sort_items() {
|
313 |
// Sort the results.
|
315 |
}
|
316 |
|
317 |
/**
|
318 |
+
* Doing the sorting of the issues.
|
319 |
*
|
320 |
* @param array $a First data set for comparison.
|
321 |
* @param array $b Second data set for comparison.
|
393 |
}
|
394 |
|
395 |
/**
|
396 |
+
* Showing the hidden fields used by the AJAX requests.
|
397 |
*
|
398 |
* @param string $platform Platform (desktop, mobile, feature phone).
|
399 |
*/
|
admin/google_search_console/class-gsc.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_GSC
|
10 |
*/
|
11 |
class WPSEO_GSC implements WPSEO_WordPress_Integration {
|
12 |
|
@@ -72,21 +72,17 @@ class WPSEO_GSC implements WPSEO_WordPress_Integration {
|
|
72 |
}
|
73 |
|
74 |
/**
|
75 |
-
* Handles the dashboard notification.
|
76 |
-
*
|
|
|
|
|
77 |
*
|
78 |
* @return void
|
79 |
*/
|
80 |
public function register_gsc_notification() {
|
81 |
$notification = $this->get_profile_notification();
|
82 |
$notification_center = Yoast_Notification_Center::get();
|
83 |
-
|
84 |
-
if ( $this->has_profile() ) {
|
85 |
-
$notification_center->remove_notification( $notification );
|
86 |
-
|
87 |
-
return;
|
88 |
-
}
|
89 |
-
$notification_center->add_notification( $notification );
|
90 |
}
|
91 |
|
92 |
/**
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_GSC.
|
10 |
*/
|
11 |
class WPSEO_GSC implements WPSEO_WordPress_Integration {
|
12 |
|
72 |
}
|
73 |
|
74 |
/**
|
75 |
+
* Handles the dashboard notification.
|
76 |
+
*
|
77 |
+
* If the Google Search Console has no credentials, show a notification
|
78 |
+
* for the user to give them a heads up. This message is dismissable.
|
79 |
*
|
80 |
* @return void
|
81 |
*/
|
82 |
public function register_gsc_notification() {
|
83 |
$notification = $this->get_profile_notification();
|
84 |
$notification_center = Yoast_Notification_Center::get();
|
85 |
+
$notification_center->remove_notification( $notification );
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
}
|
87 |
|
88 |
/**
|
admin/import/class-import-detector.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Import_Plugins_Detector
|
10 |
*
|
11 |
* Class with functionality to detect whether we should import from another SEO plugin.
|
12 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Import_Plugins_Detector.
|
10 |
*
|
11 |
* Class with functionality to detect whether we should import from another SEO plugin.
|
12 |
*/
|
admin/import/class-import-plugin.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Import_Plugin
|
10 |
*
|
11 |
* Class with functionality to import Yoast SEO settings from other plugins.
|
12 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Import_Plugin.
|
10 |
*
|
11 |
* Class with functionality to import Yoast SEO settings from other plugins.
|
12 |
*/
|
admin/import/class-import-settings.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Import_Settings
|
10 |
*
|
11 |
* Class with functionality to import the Yoast SEO settings.
|
12 |
*/
|
@@ -82,7 +82,7 @@ class WPSEO_Import_Settings {
|
|
82 |
}
|
83 |
|
84 |
/**
|
85 |
-
* Parse the option group and import it
|
86 |
*
|
87 |
* @param string $name Name string.
|
88 |
* @param array $option_group Option group data.
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Import_Settings.
|
10 |
*
|
11 |
* Class with functionality to import the Yoast SEO settings.
|
12 |
*/
|
82 |
}
|
83 |
|
84 |
/**
|
85 |
+
* Parse the option group and import it.
|
86 |
*
|
87 |
* @param string $name Name string.
|
88 |
* @param array $option_group Option group data.
|
admin/import/class-import-status.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_ImportStatus
|
10 |
*
|
11 |
* Holds the status of and message about imports.
|
12 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_ImportStatus.
|
10 |
*
|
11 |
* Holds the status of and message about imports.
|
12 |
*/
|
admin/import/plugins/class-abstract-plugin-importer.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Plugin_Importer
|
10 |
*
|
11 |
* Class with functionality to import meta data from other plugins.
|
12 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Plugin_Importer.
|
10 |
*
|
11 |
* Class with functionality to import meta data from other plugins.
|
12 |
*/
|
admin/import/plugins/class-import-headspace.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Import_HeadSpace
|
10 |
*
|
11 |
* Class with functionality to import & clean HeadSpace SEO post metadata.
|
12 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Import_HeadSpace.
|
10 |
*
|
11 |
* Class with functionality to import & clean HeadSpace SEO post metadata.
|
12 |
*/
|
admin/import/plugins/class-import-jetpack.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Import_Jetpack_SEO
|
10 |
*
|
11 |
* Class with functionality to import & clean Jetpack SEO post metadata.
|
12 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Import_Jetpack_SEO.
|
10 |
*
|
11 |
* Class with functionality to import & clean Jetpack SEO post metadata.
|
12 |
*/
|
admin/import/plugins/class-import-seopressor.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Import_SEOPressor
|
10 |
*
|
11 |
* Class with functionality to import & clean SEOPressor post metadata.
|
12 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Import_SEOPressor.
|
10 |
*
|
11 |
* Class with functionality to import & clean SEOPressor post metadata.
|
12 |
*/
|
admin/import/plugins/class-import-wpseo.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Import_WPSEO
|
10 |
*
|
11 |
* Class with functionality to import & clean wpSEO.de post metadata.
|
12 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Import_WPSEO.
|
10 |
*
|
11 |
* Class with functionality to import & clean wpSEO.de post metadata.
|
12 |
*/
|
admin/import/plugins/class-importers.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Plugin_Importers
|
10 |
*
|
11 |
* Object which contains all importers.
|
12 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Plugin_Importers.
|
10 |
*
|
11 |
* Object which contains all importers.
|
12 |
*/
|
admin/links/class-link-column-count.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Represents the link column count. This class contains the count for each post id on the current page
|
10 |
*/
|
11 |
class WPSEO_Link_Column_Count {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Represents the link column count. This class contains the count for each post id on the current page.
|
10 |
*/
|
11 |
class WPSEO_Link_Column_Count {
|
12 |
|
admin/links/class-link-columns.php
CHANGED
@@ -235,7 +235,7 @@ class WPSEO_Link_Columns {
|
|
235 |
}
|
236 |
|
237 |
/**
|
238 |
-
* Displays the column content for the given column
|
239 |
*
|
240 |
* @param string $column_name Column to display the content for.
|
241 |
* @param int $post_id Post to display the column content for.
|
235 |
}
|
236 |
|
237 |
/**
|
238 |
+
* Displays the column content for the given column.
|
239 |
*
|
240 |
* @param string $column_name Column to display the content for.
|
241 |
* @param int $post_id Post to display the column content for.
|
admin/links/class-link-compatibility-notifier.php
CHANGED
@@ -30,7 +30,7 @@ class WPSEO_Link_Compatibility_Notifier {
|
|
30 |
}
|
31 |
|
32 |
/**
|
33 |
-
* Returns the notification when the version is incompatible
|
34 |
*
|
35 |
* @return Yoast_Notification The notification.
|
36 |
*/
|
30 |
}
|
31 |
|
32 |
/**
|
33 |
+
* Returns the notification when the version is incompatible.
|
34 |
*
|
35 |
* @return Yoast_Notification The notification.
|
36 |
*/
|
admin/links/class-link-filter.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Represents the filter for filtering links
|
10 |
*/
|
11 |
class WPSEO_Link_Filter {
|
12 |
|
@@ -16,7 +16,7 @@ class WPSEO_Link_Filter {
|
|
16 |
protected $current_page_path;
|
17 |
|
18 |
/**
|
19 |
-
* Sets the current page path
|
20 |
*
|
21 |
* @param string $current_page The current page.
|
22 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Represents the filter for filtering links.
|
10 |
*/
|
11 |
class WPSEO_Link_Filter {
|
12 |
|
16 |
protected $current_page_path;
|
17 |
|
18 |
/**
|
19 |
+
* Sets the current page path.
|
20 |
*
|
21 |
* @param string $current_page The current page.
|
22 |
*/
|
admin/links/class-link-notifier.php
CHANGED
@@ -16,7 +16,7 @@ class WPSEO_Link_Notifier {
|
|
16 |
const NOTIFICATION_ID = 'wpseo-reindex-links';
|
17 |
|
18 |
/**
|
19 |
-
* Registers all hooks to WordPress
|
20 |
*/
|
21 |
public function register_hooks() {
|
22 |
if ( filter_input( INPUT_GET, 'page' ) === 'wpseo_dashboard' ) {
|
@@ -42,7 +42,7 @@ class WPSEO_Link_Notifier {
|
|
42 |
}
|
43 |
|
44 |
/**
|
45 |
-
* Adds the notification when it isn't set already and the amount of unindexed items is greater than the set
|
46 |
* threshold.
|
47 |
*/
|
48 |
public function manage_notification() {
|
16 |
const NOTIFICATION_ID = 'wpseo-reindex-links';
|
17 |
|
18 |
/**
|
19 |
+
* Registers all hooks to WordPress.
|
20 |
*/
|
21 |
public function register_hooks() {
|
22 |
if ( filter_input( INPUT_GET, 'page' ) === 'wpseo_dashboard' ) {
|
42 |
}
|
43 |
|
44 |
/**
|
45 |
+
* Adds the notification when it isn't set already and the amount of unindexed items is greater than the set
|
46 |
* threshold.
|
47 |
*/
|
48 |
public function manage_notification() {
|
admin/links/class-link-reindex-dashboard.php
CHANGED
@@ -124,7 +124,7 @@ class WPSEO_Link_Reindex_Dashboard {
|
|
124 |
}
|
125 |
|
126 |
/**
|
127 |
-
* Enqueues site wide analysis script
|
128 |
*
|
129 |
* @return void
|
130 |
*/
|
@@ -170,7 +170,7 @@ class WPSEO_Link_Reindex_Dashboard {
|
|
170 |
}
|
171 |
|
172 |
/**
|
173 |
-
* Returns if there are unprocessed items
|
174 |
*
|
175 |
* @return bool True if there are unprocessed items.
|
176 |
*/
|
124 |
}
|
125 |
|
126 |
/**
|
127 |
+
* Enqueues site wide analysis script.
|
128 |
*
|
129 |
* @return void
|
130 |
*/
|
170 |
}
|
171 |
|
172 |
/**
|
173 |
+
* Returns if there are unprocessed items.
|
174 |
*
|
175 |
* @return bool True if there are unprocessed items.
|
176 |
*/
|
admin/links/class-link-reindex-post-endpoint.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Link_Reindex_Post_Endpoint
|
10 |
*/
|
11 |
class WPSEO_Link_Reindex_Post_Endpoint {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Link_Reindex_Post_Endpoint.
|
10 |
*/
|
11 |
class WPSEO_Link_Reindex_Post_Endpoint {
|
12 |
|
admin/links/class-link-reindex-post-service.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Link_Reindex_Post_Service
|
10 |
*/
|
11 |
class WPSEO_Link_Reindex_Post_Service {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Link_Reindex_Post_Service.
|
10 |
*/
|
11 |
class WPSEO_Link_Reindex_Post_Service {
|
12 |
|
admin/links/class-link-type-classifier.php
CHANGED
@@ -21,7 +21,7 @@ class WPSEO_Link_Type_Classifier {
|
|
21 |
protected $base_path = '';
|
22 |
|
23 |
/**
|
24 |
-
* Constructor setting the base url
|
25 |
*
|
26 |
* @param string $base_url The base url to set.
|
27 |
*/
|
@@ -58,11 +58,11 @@ class WPSEO_Link_Type_Classifier {
|
|
58 |
}
|
59 |
|
60 |
/**
|
61 |
-
*
|
62 |
*
|
63 |
* @param array $url_parts The url parts to use.
|
64 |
*
|
65 |
-
* @return bool True if the url starts with
|
66 |
*/
|
67 |
protected function contains_protocol( array $url_parts ) {
|
68 |
return isset( $url_parts['scheme'] ) && $url_parts['scheme'] !== null;
|
21 |
protected $base_path = '';
|
22 |
|
23 |
/**
|
24 |
+
* Constructor setting the base url.
|
25 |
*
|
26 |
* @param string $base_url The base url to set.
|
27 |
*/
|
58 |
}
|
59 |
|
60 |
/**
|
61 |
+
* Checks whether a link starts with an HTTP[S] protocol.
|
62 |
*
|
63 |
* @param array $url_parts The url parts to use.
|
64 |
*
|
65 |
+
* @return bool True if the url starts with an https:// or http:// protocol.
|
66 |
*/
|
67 |
protected function contains_protocol( array $url_parts ) {
|
68 |
return isset( $url_parts['scheme'] ) && $url_parts['scheme'] !== null;
|
admin/metabox/class-metabox-analysis-readability.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Represents the readability analysis
|
10 |
*/
|
11 |
class WPSEO_Metabox_Analysis_Readability implements WPSEO_Metabox_Analysis {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Represents the readability analysis.
|
10 |
*/
|
11 |
class WPSEO_Metabox_Analysis_Readability implements WPSEO_Metabox_Analysis {
|
12 |
|
admin/metabox/class-metabox-analysis-seo.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Represents the SEO analysis
|
10 |
*/
|
11 |
class WPSEO_Metabox_Analysis_SEO implements WPSEO_Metabox_Analysis {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Represents the SEO analysis.
|
10 |
*/
|
11 |
class WPSEO_Metabox_Analysis_SEO implements WPSEO_Metabox_Analysis {
|
12 |
|
admin/metabox/class-metabox.php
CHANGED
@@ -188,7 +188,7 @@ class WPSEO_Metabox extends WPSEO_Meta {
|
|
188 |
|
189 |
$values = $post_formatter->get_values();
|
190 |
|
191 |
-
/** This filter is documented in admin/filters/class-cornerstone-filter.php */
|
192 |
$post_types = apply_filters( 'wpseo_cornerstone_post_types', WPSEO_Post_Type::get_accessible_post_types() );
|
193 |
if ( $values['cornerstoneActive'] && ! in_array( $post->post_type, $post_types, true ) ) {
|
194 |
$values['cornerstoneActive'] = false;
|
@@ -240,7 +240,7 @@ class WPSEO_Metabox extends WPSEO_Meta {
|
|
240 |
/**
|
241 |
* Pass some variables to js for the edit / post page overview, etc.
|
242 |
*
|
243 |
-
* @return
|
244 |
*/
|
245 |
public function localize_shortcode_plugin_script() {
|
246 |
return array(
|
@@ -440,7 +440,7 @@ class WPSEO_Metabox extends WPSEO_Meta {
|
|
440 |
* @param array $meta_field_def Contains the vars based on which output is generated.
|
441 |
* @param string $key Internal key (without prefix).
|
442 |
*
|
443 |
-
* @return
|
444 |
*/
|
445 |
public function do_meta_box( $meta_field_def, $key = '' ) {
|
446 |
$content = '';
|
@@ -623,7 +623,7 @@ class WPSEO_Metabox extends WPSEO_Meta {
|
|
623 |
*
|
624 |
* @param int $post_id Post ID.
|
625 |
*
|
626 |
-
* @return
|
627 |
*/
|
628 |
public function save_postdata( $post_id ) {
|
629 |
// Bail if this is a multisite installation and the site has been switched.
|
@@ -810,7 +810,7 @@ class WPSEO_Metabox extends WPSEO_Meta {
|
|
810 |
/**
|
811 |
* Pass some variables to js for upload module.
|
812 |
*
|
813 |
-
* @return
|
814 |
*/
|
815 |
public function localize_media_script() {
|
816 |
return array(
|
@@ -857,7 +857,7 @@ class WPSEO_Metabox extends WPSEO_Meta {
|
|
857 |
/**
|
858 |
* Prepares the replace vars for localization.
|
859 |
*
|
860 |
-
* @return array
|
861 |
*/
|
862 |
private function get_replace_vars() {
|
863 |
$post = $this->get_metabox_post();
|
188 |
|
189 |
$values = $post_formatter->get_values();
|
190 |
|
191 |
+
/** This filter is documented in admin/filters/class-cornerstone-filter.php. */
|
192 |
$post_types = apply_filters( 'wpseo_cornerstone_post_types', WPSEO_Post_Type::get_accessible_post_types() );
|
193 |
if ( $values['cornerstoneActive'] && ! in_array( $post->post_type, $post_types, true ) ) {
|
194 |
$values['cornerstoneActive'] = false;
|
240 |
/**
|
241 |
* Pass some variables to js for the edit / post page overview, etc.
|
242 |
*
|
243 |
+
* @return array
|
244 |
*/
|
245 |
public function localize_shortcode_plugin_script() {
|
246 |
return array(
|
440 |
* @param array $meta_field_def Contains the vars based on which output is generated.
|
441 |
* @param string $key Internal key (without prefix).
|
442 |
*
|
443 |
+
* @return string
|
444 |
*/
|
445 |
public function do_meta_box( $meta_field_def, $key = '' ) {
|
446 |
$content = '';
|
623 |
*
|
624 |
* @param int $post_id Post ID.
|
625 |
*
|
626 |
+
* @return bool|void Boolean false if invalid save post request.
|
627 |
*/
|
628 |
public function save_postdata( $post_id ) {
|
629 |
// Bail if this is a multisite installation and the site has been switched.
|
810 |
/**
|
811 |
* Pass some variables to js for upload module.
|
812 |
*
|
813 |
+
* @return array
|
814 |
*/
|
815 |
public function localize_media_script() {
|
816 |
return array(
|
857 |
/**
|
858 |
* Prepares the replace vars for localization.
|
859 |
*
|
860 |
+
* @return array Replace vars.
|
861 |
*/
|
862 |
private function get_replace_vars() {
|
863 |
$post = $this->get_metabox_post();
|
admin/metabox/interface-metabox-analysis.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Describes an interface for an analysis that can either be enabled or disabled
|
10 |
*/
|
11 |
interface WPSEO_Metabox_Analysis {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Describes an interface for an analysis that can either be enabled or disabled.
|
10 |
*/
|
11 |
interface WPSEO_Metabox_Analysis {
|
12 |
|
admin/notifiers/class-post-type-archive-notification-handler.php
CHANGED
@@ -93,7 +93,7 @@ class WPSEO_Post_Type_Archive_Notification_Handler extends WPSEO_Dismissible_Not
|
|
93 |
/**
|
94 |
* Checks if the first activation is done before the release of 7.9.
|
95 |
*
|
96 |
-
* @return bool True
|
97 |
*
|
98 |
* @codeCoverageIgnore
|
99 |
*/
|
@@ -146,7 +146,7 @@ class WPSEO_Post_Type_Archive_Notification_Handler extends WPSEO_Dismissible_Not
|
|
146 |
*
|
147 |
* @param string $post_type_name The post type's name.
|
148 |
*
|
149 |
-
* @return bool True
|
150 |
*
|
151 |
* @codeCoverageIgnore
|
152 |
*/
|
@@ -165,7 +165,7 @@ class WPSEO_Post_Type_Archive_Notification_Handler extends WPSEO_Dismissible_Not
|
|
165 |
*
|
166 |
* @param string $post_type_name The post type name.
|
167 |
*
|
168 |
-
* @return bool True
|
169 |
*
|
170 |
* @codeCoverageIgnore
|
171 |
*/
|
@@ -181,7 +181,7 @@ class WPSEO_Post_Type_Archive_Notification_Handler extends WPSEO_Dismissible_Not
|
|
181 |
*
|
182 |
* @param string $option_name The option name to check.
|
183 |
*
|
184 |
-
* @return bool True
|
185 |
*
|
186 |
* @codeCoverageIgnore
|
187 |
*/
|
93 |
/**
|
94 |
* Checks if the first activation is done before the release of 7.9.
|
95 |
*
|
96 |
+
* @return bool True when the install is 'new'.
|
97 |
*
|
98 |
* @codeCoverageIgnore
|
99 |
*/
|
146 |
*
|
147 |
* @param string $post_type_name The post type's name.
|
148 |
*
|
149 |
+
* @return bool True when the archive slug is overridden.
|
150 |
*
|
151 |
* @codeCoverageIgnore
|
152 |
*/
|
165 |
*
|
166 |
* @param string $post_type_name The post type name.
|
167 |
*
|
168 |
+
* @return bool True when the default templates are set.
|
169 |
*
|
170 |
* @codeCoverageIgnore
|
171 |
*/
|
181 |
*
|
182 |
* @param string $option_name The option name to check.
|
183 |
*
|
184 |
+
* @return bool True when the option value is equal to the default value.
|
185 |
*
|
186 |
* @codeCoverageIgnore
|
187 |
*/
|
admin/onpage/class-onpage-option.php
CHANGED
@@ -66,7 +66,7 @@ class WPSEO_OnPage_Option {
|
|
66 |
private $onpage_option;
|
67 |
|
68 |
/**
|
69 |
-
* Setting the object by setting the properties
|
70 |
*/
|
71 |
public function __construct() {
|
72 |
$this->onpage_option = $this->get_option();
|
@@ -104,7 +104,7 @@ class WPSEO_OnPage_Option {
|
|
104 |
}
|
105 |
|
106 |
/**
|
107 |
-
* Check if the last fetch is within the time of 60 minutes
|
108 |
*
|
109 |
* @return bool
|
110 |
*/
|
@@ -113,14 +113,14 @@ class WPSEO_OnPage_Option {
|
|
113 |
}
|
114 |
|
115 |
/**
|
116 |
-
* Saving the option with the current data
|
117 |
*/
|
118 |
public function save_option() {
|
119 |
update_option( self::OPTION_NAME, $this->onpage_option );
|
120 |
}
|
121 |
|
122 |
/**
|
123 |
-
* Returns the value of the onpage_enabled status
|
124 |
*
|
125 |
* @return bool
|
126 |
*/
|
66 |
private $onpage_option;
|
67 |
|
68 |
/**
|
69 |
+
* Setting the object by setting the properties.
|
70 |
*/
|
71 |
public function __construct() {
|
72 |
$this->onpage_option = $this->get_option();
|
104 |
}
|
105 |
|
106 |
/**
|
107 |
+
* Check if the last fetch is within the time of 60 minutes.
|
108 |
*
|
109 |
* @return bool
|
110 |
*/
|
113 |
}
|
114 |
|
115 |
/**
|
116 |
+
* Saving the option with the current data.
|
117 |
*/
|
118 |
public function save_option() {
|
119 |
update_option( self::OPTION_NAME, $this->onpage_option );
|
120 |
}
|
121 |
|
122 |
/**
|
123 |
+
* Returns the value of the onpage_enabled status.
|
124 |
*
|
125 |
* @return bool
|
126 |
*/
|
admin/onpage/class-onpage-request.php
CHANGED
@@ -18,7 +18,7 @@ class WPSEO_OnPage_Request {
|
|
18 |
private $onpage_endpoint = 'https://indexability.yoast.onpage.org/';
|
19 |
|
20 |
/**
|
21 |
-
* Doing the remote get and returns the body
|
22 |
*
|
23 |
* @param string $target_url The home url.
|
24 |
* @param array $parameters Array of extra parameters to send to Ryte.
|
18 |
private $onpage_endpoint = 'https://indexability.yoast.onpage.org/';
|
19 |
|
20 |
/**
|
21 |
+
* Doing the remote get and returns the body.
|
22 |
*
|
23 |
* @param string $target_url The home url.
|
24 |
* @param array $parameters Array of extra parameters to send to Ryte.
|
admin/recalculate/class-recalculate-posts.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* This class handles the calculation of the SEO score for all posts with a filled focus keyword
|
10 |
*/
|
11 |
class WPSEO_Recalculate_Posts extends WPSEO_Recalculate {
|
12 |
|
@@ -52,7 +52,7 @@ class WPSEO_Recalculate_Posts extends WPSEO_Recalculate {
|
|
52 |
}
|
53 |
|
54 |
/**
|
55 |
-
* Map the posts to a response array
|
56 |
*
|
57 |
* @param WP_Post $item The post for which to build the analyzer data.
|
58 |
*
|
@@ -91,7 +91,7 @@ class WPSEO_Recalculate_Posts extends WPSEO_Recalculate {
|
|
91 |
}
|
92 |
|
93 |
/**
|
94 |
-
* Get the title for given post
|
95 |
*
|
96 |
* @param integer $post_id The ID of the post for which to get the title.
|
97 |
* @param string $post_type The post type.
|
@@ -113,7 +113,7 @@ class WPSEO_Recalculate_Posts extends WPSEO_Recalculate {
|
|
113 |
}
|
114 |
|
115 |
/**
|
116 |
-
* Get the meta description for given post
|
117 |
*
|
118 |
* @param integer $post_id The ID of the post for which to get the meta description.
|
119 |
* @param string $post_type The post type.
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* This class handles the calculation of the SEO score for all posts with a filled focus keyword.
|
10 |
*/
|
11 |
class WPSEO_Recalculate_Posts extends WPSEO_Recalculate {
|
12 |
|
52 |
}
|
53 |
|
54 |
/**
|
55 |
+
* Map the posts to a response array.
|
56 |
*
|
57 |
* @param WP_Post $item The post for which to build the analyzer data.
|
58 |
*
|
91 |
}
|
92 |
|
93 |
/**
|
94 |
+
* Get the title for given post.
|
95 |
*
|
96 |
* @param integer $post_id The ID of the post for which to get the title.
|
97 |
* @param string $post_type The post type.
|
113 |
}
|
114 |
|
115 |
/**
|
116 |
+
* Get the meta description for given post.
|
117 |
*
|
118 |
* @param integer $post_id The ID of the post for which to get the meta description.
|
119 |
* @param string $post_type The post type.
|
admin/recalculate/class-recalculate-terms.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* This class handles the calculation of the SEO score for all terms
|
10 |
*/
|
11 |
class WPSEO_Recalculate_Terms extends WPSEO_Recalculate {
|
12 |
|
@@ -92,7 +92,7 @@ class WPSEO_Recalculate_Terms extends WPSEO_Recalculate {
|
|
92 |
}
|
93 |
|
94 |
/**
|
95 |
-
* Gets the focus keyword for the term
|
96 |
*
|
97 |
* @param stdClass|WP_Term $term Term to determine the keyword for.
|
98 |
*
|
@@ -108,7 +108,7 @@ class WPSEO_Recalculate_Terms extends WPSEO_Recalculate {
|
|
108 |
}
|
109 |
|
110 |
/**
|
111 |
-
* Get the title for given term
|
112 |
*
|
113 |
* @param stdClass|WP_Term $term The term object.
|
114 |
*
|
@@ -129,7 +129,7 @@ class WPSEO_Recalculate_Terms extends WPSEO_Recalculate {
|
|
129 |
}
|
130 |
|
131 |
/**
|
132 |
-
* Get the meta description for given post
|
133 |
*
|
134 |
* @param stdClass|WP_Term $term The term object.
|
135 |
*
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* This class handles the calculation of the SEO score for all terms.
|
10 |
*/
|
11 |
class WPSEO_Recalculate_Terms extends WPSEO_Recalculate {
|
12 |
|
92 |
}
|
93 |
|
94 |
/**
|
95 |
+
* Gets the focus keyword for the term.
|
96 |
*
|
97 |
* @param stdClass|WP_Term $term Term to determine the keyword for.
|
98 |
*
|
108 |
}
|
109 |
|
110 |
/**
|
111 |
+
* Get the title for given term.
|
112 |
*
|
113 |
* @param stdClass|WP_Term $term The term object.
|
114 |
*
|
129 |
}
|
130 |
|
131 |
/**
|
132 |
+
* Get the meta description for given post.
|
133 |
*
|
134 |
* @param stdClass|WP_Term $term The term object.
|
135 |
*
|
admin/recalculate/class-recalculate.php
CHANGED
@@ -23,7 +23,7 @@ abstract class WPSEO_Recalculate {
|
|
23 |
abstract public function save_scores( array $scores );
|
24 |
|
25 |
/**
|
26 |
-
* Gets the items and parses it to an response
|
27 |
*
|
28 |
* @param integer $paged The current page number.
|
29 |
*
|
@@ -32,7 +32,7 @@ abstract class WPSEO_Recalculate {
|
|
32 |
abstract protected function get_items( $paged );
|
33 |
|
34 |
/**
|
35 |
-
* Maps the items to an array for the response
|
36 |
*
|
37 |
* @param mixed $item Object with data to parse.
|
38 |
*
|
@@ -41,7 +41,7 @@ abstract class WPSEO_Recalculate {
|
|
41 |
abstract protected function item_to_response( $item );
|
42 |
|
43 |
/**
|
44 |
-
* Gets the items to recalculate
|
45 |
*
|
46 |
* @param int $paged The current page number.
|
47 |
*
|
@@ -65,7 +65,7 @@ abstract class WPSEO_Recalculate {
|
|
65 |
}
|
66 |
|
67 |
/**
|
68 |
-
* Parse the posts|terms with the value we need
|
69 |
*
|
70 |
* @param array $items The items to parse.
|
71 |
*
|
@@ -84,7 +84,7 @@ abstract class WPSEO_Recalculate {
|
|
84 |
}
|
85 |
|
86 |
/**
|
87 |
-
* Get default from the options for given field
|
88 |
*
|
89 |
* @param string $field The field for which to get the default options.
|
90 |
* @param string $suffix The post type.
|
23 |
abstract public function save_scores( array $scores );
|
24 |
|
25 |
/**
|
26 |
+
* Gets the items and parses it to an response.
|
27 |
*
|
28 |
* @param integer $paged The current page number.
|
29 |
*
|
32 |
abstract protected function get_items( $paged );
|
33 |
|
34 |
/**
|
35 |
+
* Maps the items to an array for the response.
|
36 |
*
|
37 |
* @param mixed $item Object with data to parse.
|
38 |
*
|
41 |
abstract protected function item_to_response( $item );
|
42 |
|
43 |
/**
|
44 |
+
* Gets the items to recalculate.
|
45 |
*
|
46 |
* @param int $paged The current page number.
|
47 |
*
|
65 |
}
|
66 |
|
67 |
/**
|
68 |
+
* Parse the posts|terms with the value we need.
|
69 |
*
|
70 |
* @param array $items The items to parse.
|
71 |
*
|
84 |
}
|
85 |
|
86 |
/**
|
87 |
+
* Get default from the options for given field.
|
88 |
*
|
89 |
* @param string $field The field for which to get the default options.
|
90 |
* @param string $suffix The post type.
|
admin/roles/class-abstract-role-manager.php
CHANGED
@@ -140,7 +140,7 @@ abstract class WPSEO_Abstract_Role_Manager implements WPSEO_Role_Manager {
|
|
140 |
abstract protected function add_role( $role, $display_name, array $capabilities = array() );
|
141 |
|
142 |
/**
|
143 |
-
* Removes a role from the system
|
144 |
*
|
145 |
* @param string $role Role to remove.
|
146 |
*
|
140 |
abstract protected function add_role( $role, $display_name, array $capabilities = array() );
|
141 |
|
142 |
/**
|
143 |
+
* Removes a role from the system.
|
144 |
*
|
145 |
* @param string $role Role to remove.
|
146 |
*
|
admin/services/class-indexable-post-provider.php
CHANGED
@@ -168,7 +168,7 @@ class WPSEO_Indexable_Service_Post_Provider extends WPSEO_Indexable_Provider {
|
|
168 |
/**
|
169 |
* Converts the advanced meta settings to its database variant.
|
170 |
*
|
171 |
-
* @param array $indexable_data The
|
172 |
*
|
173 |
* @return string The converted advanced meta settings.
|
174 |
*/
|
168 |
/**
|
169 |
* Converts the advanced meta settings to its database variant.
|
170 |
*
|
171 |
+
* @param array $indexable_data The indexable data to convert the advanced meta settings from.
|
172 |
*
|
173 |
* @return string The converted advanced meta settings.
|
174 |
*/
|
admin/statistics/class-statistics-integration.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Statistic_Integration
|
10 |
*/
|
11 |
class WPSEO_Statistic_Integration implements WPSEO_WordPress_Integration {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Statistic_Integration.
|
10 |
*/
|
11 |
class WPSEO_Statistic_Integration implements WPSEO_WordPress_Integration {
|
12 |
|
admin/statistics/class-statistics-service.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Statistics_Service
|
10 |
*/
|
11 |
class WPSEO_Statistics_Service {
|
12 |
|
@@ -75,7 +75,7 @@ class WPSEO_Statistics_Service {
|
|
75 |
}
|
76 |
|
77 |
/**
|
78 |
-
* An array representing items to be added to the At a Glance dashboard widget
|
79 |
*
|
80 |
* @return array The statistics for the current user.
|
81 |
*/
|
@@ -106,7 +106,7 @@ class WPSEO_Statistics_Service {
|
|
106 |
}
|
107 |
|
108 |
/**
|
109 |
-
* Set the statistics transient cache for a specific user
|
110 |
*
|
111 |
* @param array $transient The current stored transient with the cached data.
|
112 |
* @param int $user The user's ID to assign the retrieved values to.
|
@@ -195,7 +195,7 @@ class WPSEO_Statistics_Service {
|
|
195 |
/**
|
196 |
* Determines the labels for the various scoring ranks that are known within Yoast SEO.
|
197 |
*
|
198 |
-
* @return array Array containing the
|
199 |
*/
|
200 |
private function labels() {
|
201 |
return array(
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Statistics_Service.
|
10 |
*/
|
11 |
class WPSEO_Statistics_Service {
|
12 |
|
75 |
}
|
76 |
|
77 |
/**
|
78 |
+
* An array representing items to be added to the At a Glance dashboard widget.
|
79 |
*
|
80 |
* @return array The statistics for the current user.
|
81 |
*/
|
106 |
}
|
107 |
|
108 |
/**
|
109 |
+
* Set the statistics transient cache for a specific user.
|
110 |
*
|
111 |
* @param array $transient The current stored transient with the cached data.
|
112 |
* @param int $user The user's ID to assign the retrieved values to.
|
195 |
/**
|
196 |
* Determines the labels for the various scoring ranks that are known within Yoast SEO.
|
197 |
*
|
198 |
+
* @return array Array containing the translatable labels.
|
199 |
*/
|
200 |
private function labels() {
|
201 |
return array(
|
admin/taxonomy/class-taxonomy-content-fields.php
CHANGED
@@ -6,12 +6,12 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* This class parses all the values for the general tab in the Yoast SEO settings metabox
|
10 |
*/
|
11 |
class WPSEO_Taxonomy_Content_Fields extends WPSEO_Taxonomy_Fields {
|
12 |
|
13 |
/**
|
14 |
-
* Returns array with the fields for the general tab
|
15 |
*
|
16 |
* @return array
|
17 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* This class parses all the values for the general tab in the Yoast SEO settings metabox.
|
10 |
*/
|
11 |
class WPSEO_Taxonomy_Content_Fields extends WPSEO_Taxonomy_Fields {
|
12 |
|
13 |
/**
|
14 |
+
* Returns array with the fields for the general tab.
|
15 |
*
|
16 |
* @return array
|
17 |
*/
|
admin/taxonomy/class-taxonomy-fields-presenter.php
CHANGED
@@ -6,12 +6,12 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Taxonomy_Presenter
|
10 |
*/
|
11 |
class WPSEO_Taxonomy_Fields_Presenter {
|
12 |
|
13 |
/**
|
14 |
-
* The taxonomy meta data for the current term
|
15 |
*
|
16 |
* @var array
|
17 |
*/
|
@@ -25,7 +25,7 @@ class WPSEO_Taxonomy_Fields_Presenter {
|
|
25 |
}
|
26 |
|
27 |
/**
|
28 |
-
* Displaying the form fields
|
29 |
*
|
30 |
* @param array $fields Array with the fields that will be displayed.
|
31 |
*/
|
@@ -149,7 +149,7 @@ class WPSEO_Taxonomy_Fields_Presenter {
|
|
149 |
}
|
150 |
|
151 |
/**
|
152 |
-
* Getting the value for given field_name
|
153 |
*
|
154 |
* @param string $field_name The fieldname to get the value for.
|
155 |
*
|
@@ -164,7 +164,7 @@ class WPSEO_Taxonomy_Fields_Presenter {
|
|
164 |
}
|
165 |
|
166 |
/**
|
167 |
-
* Getting the class attributes if $options contains a class key
|
168 |
*
|
169 |
* @param array $options The array with field options.
|
170 |
*
|
@@ -179,7 +179,7 @@ class WPSEO_Taxonomy_Fields_Presenter {
|
|
179 |
}
|
180 |
|
181 |
/**
|
182 |
-
* Getting the label HTML
|
183 |
*
|
184 |
* @param string $label The label value.
|
185 |
* @param string $field_name The target field.
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Taxonomy_Presenter.
|
10 |
*/
|
11 |
class WPSEO_Taxonomy_Fields_Presenter {
|
12 |
|
13 |
/**
|
14 |
+
* The taxonomy meta data for the current term.
|
15 |
*
|
16 |
* @var array
|
17 |
*/
|
25 |
}
|
26 |
|
27 |
/**
|
28 |
+
* Displaying the form fields.
|
29 |
*
|
30 |
* @param array $fields Array with the fields that will be displayed.
|
31 |
*/
|
149 |
}
|
150 |
|
151 |
/**
|
152 |
+
* Getting the value for given field_name.
|
153 |
*
|
154 |
* @param string $field_name The fieldname to get the value for.
|
155 |
*
|
164 |
}
|
165 |
|
166 |
/**
|
167 |
+
* Getting the class attributes if $options contains a class key.
|
168 |
*
|
169 |
* @param array $options The array with field options.
|
170 |
*
|
179 |
}
|
180 |
|
181 |
/**
|
182 |
+
* Getting the label HTML.
|
183 |
*
|
184 |
* @param string $label The label value.
|
185 |
* @param string $field_name The target field.
|
admin/taxonomy/class-taxonomy-fields.php
CHANGED
@@ -6,21 +6,21 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Taxonomy_Tab
|
10 |
*
|
11 |
* Contains the basics for each class extending this one.
|
12 |
*/
|
13 |
abstract class WPSEO_Taxonomy_Fields {
|
14 |
|
15 |
/**
|
16 |
-
* The current term data
|
17 |
*
|
18 |
* @var stdClass
|
19 |
*/
|
20 |
protected $term;
|
21 |
|
22 |
/**
|
23 |
-
* Setting the class properties
|
24 |
*
|
25 |
* @param stdClass $term The current term.
|
26 |
*/
|
@@ -29,14 +29,14 @@ abstract class WPSEO_Taxonomy_Fields {
|
|
29 |
}
|
30 |
|
31 |
/**
|
32 |
-
* This method should return the fields
|
33 |
*
|
34 |
* @return array
|
35 |
*/
|
36 |
abstract public function get();
|
37 |
|
38 |
/**
|
39 |
-
* Returns array with the field data
|
40 |
*
|
41 |
* @param string $label The label displayed before the field.
|
42 |
* @param string $description Description which will explain the field.
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Taxonomy_Tab.
|
10 |
*
|
11 |
* Contains the basics for each class extending this one.
|
12 |
*/
|
13 |
abstract class WPSEO_Taxonomy_Fields {
|
14 |
|
15 |
/**
|
16 |
+
* The current term data.
|
17 |
*
|
18 |
* @var stdClass
|
19 |
*/
|
20 |
protected $term;
|
21 |
|
22 |
/**
|
23 |
+
* Setting the class properties.
|
24 |
*
|
25 |
* @param stdClass $term The current term.
|
26 |
*/
|
29 |
}
|
30 |
|
31 |
/**
|
32 |
+
* This method should return the fields.
|
33 |
*
|
34 |
* @return array
|
35 |
*/
|
36 |
abstract public function get();
|
37 |
|
38 |
/**
|
39 |
+
* Returns array with the field data.
|
40 |
*
|
41 |
* @param string $label The label displayed before the field.
|
42 |
* @param string $description Description which will explain the field.
|
admin/taxonomy/class-taxonomy-settings-fields.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* This class parses all the values for the general tab in the Yoast SEO settings metabox
|
10 |
*/
|
11 |
class WPSEO_Taxonomy_Settings_Fields extends WPSEO_Taxonomy_Fields {
|
12 |
|
@@ -57,7 +57,7 @@ class WPSEO_Taxonomy_Settings_Fields extends WPSEO_Taxonomy_Fields {
|
|
57 |
}
|
58 |
|
59 |
/**
|
60 |
-
* Translate options text strings for use in the select fields
|
61 |
*
|
62 |
* {@internal IMPORTANT: if you want to add a new string (option) somewhere, make sure you add
|
63 |
* that array key to the main options definition array in the class WPSEO_Taxonomy_Meta() as well!!!!}}
|
@@ -72,7 +72,7 @@ class WPSEO_Taxonomy_Settings_Fields extends WPSEO_Taxonomy_Fields {
|
|
72 |
}
|
73 |
|
74 |
/**
|
75 |
-
* Getting the data for the noindex fields
|
76 |
*
|
77 |
* @return array Array containing the no_index options.
|
78 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* This class parses all the values for the general tab in the Yoast SEO settings metabox.
|
10 |
*/
|
11 |
class WPSEO_Taxonomy_Settings_Fields extends WPSEO_Taxonomy_Fields {
|
12 |
|
57 |
}
|
58 |
|
59 |
/**
|
60 |
+
* Translate options text strings for use in the select fields.
|
61 |
*
|
62 |
* {@internal IMPORTANT: if you want to add a new string (option) somewhere, make sure you add
|
63 |
* that array key to the main options definition array in the class WPSEO_Taxonomy_Meta() as well!!!!}}
|
72 |
}
|
73 |
|
74 |
/**
|
75 |
+
* Getting the data for the noindex fields.
|
76 |
*
|
77 |
* @return array Array containing the no_index options.
|
78 |
*/
|
admin/taxonomy/class-taxonomy-social-fields.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* This class parses all the values for the social tab in the Yoast SEO settings metabox
|
10 |
*/
|
11 |
class WPSEO_Taxonomy_Social_Fields extends WPSEO_Taxonomy_Fields {
|
12 |
|
@@ -18,7 +18,7 @@ class WPSEO_Taxonomy_Social_Fields extends WPSEO_Taxonomy_Fields {
|
|
18 |
protected $networks;
|
19 |
|
20 |
/**
|
21 |
-
* Setting the class properties
|
22 |
*
|
23 |
* @param stdClass|WP_Term $term The current taxonomy.
|
24 |
*/
|
@@ -29,7 +29,7 @@ class WPSEO_Taxonomy_Social_Fields extends WPSEO_Taxonomy_Fields {
|
|
29 |
}
|
30 |
|
31 |
/**
|
32 |
-
* When this method returns false, the social tab in the meta box will be hidden
|
33 |
*
|
34 |
* @return bool
|
35 |
*/
|
@@ -81,7 +81,7 @@ class WPSEO_Taxonomy_Social_Fields extends WPSEO_Taxonomy_Fields {
|
|
81 |
}
|
82 |
|
83 |
/**
|
84 |
-
* Returning the fields for the social media tab
|
85 |
*
|
86 |
* @return array
|
87 |
*/
|
@@ -97,7 +97,7 @@ class WPSEO_Taxonomy_Social_Fields extends WPSEO_Taxonomy_Fields {
|
|
97 |
}
|
98 |
|
99 |
/**
|
100 |
-
* Getting array with the social networks
|
101 |
*
|
102 |
* @return array
|
103 |
*/
|
@@ -126,7 +126,7 @@ class WPSEO_Taxonomy_Social_Fields extends WPSEO_Taxonomy_Fields {
|
|
126 |
}
|
127 |
|
128 |
/**
|
129 |
-
* Returns array with the config fields for the social network
|
130 |
*
|
131 |
* @param string $network The name of the social network.
|
132 |
* @param string $label The label for the social network.
|
@@ -143,7 +143,7 @@ class WPSEO_Taxonomy_Social_Fields extends WPSEO_Taxonomy_Fields {
|
|
143 |
}
|
144 |
|
145 |
/**
|
146 |
-
* Filter the social networks which are disabled in the configuration
|
147 |
*
|
148 |
* @param array $social_networks Array with the social networks that have to be filtered.
|
149 |
*
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* This class parses all the values for the social tab in the Yoast SEO settings metabox.
|
10 |
*/
|
11 |
class WPSEO_Taxonomy_Social_Fields extends WPSEO_Taxonomy_Fields {
|
12 |
|
18 |
protected $networks;
|
19 |
|
20 |
/**
|
21 |
+
* Setting the class properties.
|
22 |
*
|
23 |
* @param stdClass|WP_Term $term The current taxonomy.
|
24 |
*/
|
29 |
}
|
30 |
|
31 |
/**
|
32 |
+
* When this method returns false, the social tab in the meta box will be hidden.
|
33 |
*
|
34 |
* @return bool
|
35 |
*/
|
81 |
}
|
82 |
|
83 |
/**
|
84 |
+
* Returning the fields for the social media tab.
|
85 |
*
|
86 |
* @return array
|
87 |
*/
|
97 |
}
|
98 |
|
99 |
/**
|
100 |
+
* Getting array with the social networks.
|
101 |
*
|
102 |
* @return array
|
103 |
*/
|
126 |
}
|
127 |
|
128 |
/**
|
129 |
+
* Returns array with the config fields for the social network.
|
130 |
*
|
131 |
* @param string $network The name of the social network.
|
132 |
* @param string $label The label for the social network.
|
143 |
}
|
144 |
|
145 |
/**
|
146 |
+
* Filter the social networks which are disabled in the configuration.
|
147 |
*
|
148 |
* @param array $social_networks Array with the social networks that have to be filtered.
|
149 |
*
|
admin/tracking/class-tracking.php
CHANGED
@@ -26,7 +26,7 @@ class WPSEO_Tracking {
|
|
26 |
protected $endpoint = '';
|
27 |
|
28 |
/**
|
29 |
-
* Constructor setting the
|
30 |
*
|
31 |
* @param string $endpoint The endpoint to send the data to.
|
32 |
* @param int $threshold The limit for the option.
|
@@ -37,7 +37,7 @@ class WPSEO_Tracking {
|
|
37 |
}
|
38 |
|
39 |
/**
|
40 |
-
* Registers all hooks to WordPress
|
41 |
*/
|
42 |
public function send() {
|
43 |
|
26 |
protected $endpoint = '';
|
27 |
|
28 |
/**
|
29 |
+
* Constructor setting the threshold.
|
30 |
*
|
31 |
* @param string $endpoint The endpoint to send the data to.
|
32 |
* @param int $threshold The limit for the option.
|
37 |
}
|
38 |
|
39 |
/**
|
40 |
+
* Registers all hooks to WordPress.
|
41 |
*/
|
42 |
public function send() {
|
43 |
|
admin/views/class-view-utils.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class Yoast_View_Utils
|
10 |
*/
|
11 |
class Yoast_View_Utils {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class Yoast_View_Utils.
|
10 |
*/
|
11 |
class Yoast_View_Utils {
|
12 |
|
admin/views/class-yoast-input-select.php
CHANGED
@@ -65,7 +65,7 @@ class Yoast_Input_Select {
|
|
65 |
}
|
66 |
|
67 |
/**
|
68 |
-
* Return the rendered view
|
69 |
*
|
70 |
* @return string
|
71 |
*/
|
@@ -81,7 +81,7 @@ class Yoast_Input_Select {
|
|
81 |
}
|
82 |
|
83 |
/**
|
84 |
-
* Add an attribute to the attributes property
|
85 |
*
|
86 |
* @param string $attribute The name of the attribute to add.
|
87 |
* @param string $value The value of the attribute.
|
@@ -91,7 +91,7 @@ class Yoast_Input_Select {
|
|
91 |
}
|
92 |
|
93 |
/**
|
94 |
-
* Return the set fields for the select
|
95 |
*
|
96 |
* @return array
|
97 |
*/
|
65 |
}
|
66 |
|
67 |
/**
|
68 |
+
* Return the rendered view.
|
69 |
*
|
70 |
* @return string
|
71 |
*/
|
81 |
}
|
82 |
|
83 |
/**
|
84 |
+
* Add an attribute to the attributes property.
|
85 |
*
|
86 |
* @param string $attribute The name of the attribute to add.
|
87 |
* @param string $value The value of the attribute.
|
91 |
}
|
92 |
|
93 |
/**
|
94 |
+
* Return the set fields for the select.
|
95 |
*
|
96 |
* @return array
|
97 |
*/
|
admin/views/licenses.php
CHANGED
@@ -81,27 +81,25 @@ $extensions = array(
|
|
81 |
|
82 |
// Add Yoast WooCommerce SEO when WooCommerce is active.
|
83 |
if ( WPSEO_Utils::is_woocommerce_active() ) {
|
84 |
-
$extensions =
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
'
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
),
|
104 |
-
) );
|
105 |
}
|
106 |
|
107 |
$addon_manager = new WPSEO_Addon_Manager();
|
@@ -122,7 +120,7 @@ $new_tab_message = '<span class="screen-reader-text">' . esc_html__( '(O
|
|
122 |
<h2>
|
123 |
<?php
|
124 |
printf(
|
125 |
-
|
126 |
esc_html__( '%1$s, take your optimization to the next level!', 'wordpress-seo' ),
|
127 |
'<span class="yoast-heading-highlight">' . $premium_extension->get_title() . '</span>'
|
128 |
);
|
@@ -157,7 +155,7 @@ $new_tab_message = '<span class="screen-reader-text">' . esc_html__( '(O
|
|
157 |
<?php if ( $has_valid_premium_subscription ) : ?>
|
158 |
<div class="yoast-button yoast-button--noarrow yoast-button--extension yoast-button--extension-activated"><?php esc_html_e( 'Activated', 'wordpress-seo' ); ?></div>
|
159 |
<a target="_blank" href="<?php WPSEO_Shortlinker::show( 'https://yoa.st/13k' ); ?>"
|
160 |
-
|
161 |
/* translators: %s expands to the extension title */
|
162 |
printf( esc_html( 'Manage your %s subscription on MyYoast', 'wordpress-seo' ), $premium_extension->get_title() );
|
163 |
echo $new_tab_message;
|
@@ -166,11 +164,11 @@ $new_tab_message = '<span class="screen-reader-text">' . esc_html__( '(O
|
|
166 |
<?php else : ?>
|
167 |
<div class="yoast-button yoast-button--noarrow yoast-button--extension yoast-button--extension-not-activated"><?php esc_html_e( 'Not activated', 'wordpress-seo' ); ?></div>
|
168 |
<a target="_blank" href="<?php WPSEO_Shortlinker::show( 'https://yoa.st/13i' ); ?>"
|
169 |
-
|
170 |
<?php
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
?>
|
175 |
</a>
|
176 |
<?php endif; ?>
|
@@ -178,21 +176,21 @@ $new_tab_message = '<span class="screen-reader-text">' . esc_html__( '(O
|
|
178 |
<?php else : ?>
|
179 |
|
180 |
<a target="_blank" href="<?php echo esc_url( $premium_extension->get_buy_url() ); ?>"
|
181 |
-
|
182 |
<?php
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
?>
|
188 |
</a>
|
189 |
|
190 |
<a target="_blank" href="<?php echo esc_url( $premium_extension->get_info_url() ); ?>"
|
191 |
-
|
192 |
<?php
|
193 |
printf(
|
194 |
/* translators: Text between %1$s and %2$s will only be shown to screen readers. %3$s expands to the product name. */
|
195 |
-
|
196 |
'<span class="screen-reader-text">',
|
197 |
'</span>',
|
198 |
$premium_extension->get_title()
|
@@ -238,41 +236,41 @@ $new_tab_message = '<span class="screen-reader-text">' . esc_html__( '(O
|
|
238 |
<?php if ( $addon_manager->has_valid_subscription( $slug ) ) : ?>
|
239 |
<div class="yoast-button yoast-button--noarrow yoast-button--extension yoast-button--extension-activated"><?php esc_html_e( 'Activated', 'wordpress-seo' ); ?></div>
|
240 |
<a target="_blank" href="<?php WPSEO_Shortlinker::show( 'https://yoa.st/13k' ); ?>"
|
241 |
-
|
242 |
<?php
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
?>
|
247 |
</a>
|
248 |
<?php else : ?>
|
249 |
<div class="yoast-button yoast-button--noarrow yoast-button--extension yoast-button--extension-not-activated"><?php esc_html_e( 'Not activated', 'wordpress-seo' ); ?></div>
|
250 |
<a target="_blank" href="<?php WPSEO_Shortlinker::show( 'https://yoa.st/13i' ); ?>"
|
251 |
-
|
252 |
<?php
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
?>
|
257 |
</a>
|
258 |
<?php endif; ?>
|
259 |
<?php else : ?>
|
260 |
<a target="_blank" class="yoast-button-upsell"
|
261 |
-
|
262 |
<?php
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
?>
|
268 |
</a>
|
269 |
|
270 |
<a target="_blank" class="yoast-link--more-info"
|
271 |
-
|
272 |
<?php
|
273 |
printf(
|
274 |
-
|
275 |
-
|
276 |
'<span class="screen-reader-text">',
|
277 |
'</span>',
|
278 |
$extension->get_title()
|
81 |
|
82 |
// Add Yoast WooCommerce SEO when WooCommerce is active.
|
83 |
if ( WPSEO_Utils::is_woocommerce_active() ) {
|
84 |
+
$extensions[ WPSEO_Addon_Manager::WOOCOMMERCE_SLUG ] = new WPSEO_Extension(
|
85 |
+
array(
|
86 |
+
'buyUrl' => WPSEO_Shortlinker::get( 'https://yoa.st/zr' ),
|
87 |
+
'infoUrl' => WPSEO_Shortlinker::get( 'https://yoa.st/zq' ),
|
88 |
+
'title' => 'Yoast WooCommerce SEO',
|
89 |
+
'display_title' => 'Make your products stand out in Google',
|
90 |
+
/* translators: %1$s expands to Yoast SEO */
|
91 |
+
'desc' => sprintf( __( 'Seamlessly integrate WooCommerce with %1$s and get extra features!', 'wordpress-seo' ), 'Yoast SEO' ),
|
92 |
+
'image' => plugins_url( 'images/extensions-woo.png?v=' . WPSEO_VERSION, WPSEO_FILE ),
|
93 |
+
'benefits' => array(
|
94 |
+
sprintf( __( 'Improve sharing on Facebook and Pinterest', 'wordpress-seo' ) ),
|
95 |
+
/* translators: %1$s expands to Yoast, %2$s expands to WooCommerce */
|
96 |
+
sprintf( __( 'Use %1$s breadcrumbs instead of %2$s ones', 'wordpress-seo' ), 'Yoast', 'WooCommerce' ),
|
97 |
+
/* translators: %1$s expands to Yoast SEO, %2$s expands to WooCommerce */
|
98 |
+
sprintf( __( 'A seamless integration between %1$s and %2$s', 'wordpress-seo' ), 'Yoast SEO', 'WooCommerce' ),
|
99 |
+
),
|
100 |
+
'buy_button' => 'WooCommerce SEO',
|
101 |
+
)
|
102 |
+
);
|
|
|
|
|
103 |
}
|
104 |
|
105 |
$addon_manager = new WPSEO_Addon_Manager();
|
120 |
<h2>
|
121 |
<?php
|
122 |
printf(
|
123 |
+
/* translators: %1$s expands to Yoast SEO Premium */
|
124 |
esc_html__( '%1$s, take your optimization to the next level!', 'wordpress-seo' ),
|
125 |
'<span class="yoast-heading-highlight">' . $premium_extension->get_title() . '</span>'
|
126 |
);
|
155 |
<?php if ( $has_valid_premium_subscription ) : ?>
|
156 |
<div class="yoast-button yoast-button--noarrow yoast-button--extension yoast-button--extension-activated"><?php esc_html_e( 'Activated', 'wordpress-seo' ); ?></div>
|
157 |
<a target="_blank" href="<?php WPSEO_Shortlinker::show( 'https://yoa.st/13k' ); ?>"
|
158 |
+
class="yoast-link--license"><?php
|
159 |
/* translators: %s expands to the extension title */
|
160 |
printf( esc_html( 'Manage your %s subscription on MyYoast', 'wordpress-seo' ), $premium_extension->get_title() );
|
161 |
echo $new_tab_message;
|
164 |
<?php else : ?>
|
165 |
<div class="yoast-button yoast-button--noarrow yoast-button--extension yoast-button--extension-not-activated"><?php esc_html_e( 'Not activated', 'wordpress-seo' ); ?></div>
|
166 |
<a target="_blank" href="<?php WPSEO_Shortlinker::show( 'https://yoa.st/13i' ); ?>"
|
167 |
+
class="yoast-link--license">
|
168 |
<?php
|
169 |
+
/* translators: %s expands to the extension title */
|
170 |
+
printf( esc_html( 'Activate %s for your site on MyYoast', 'wordpress-seo' ), $premium_extension->get_title() );
|
171 |
+
echo $new_tab_message;
|
172 |
?>
|
173 |
</a>
|
174 |
<?php endif; ?>
|
176 |
<?php else : ?>
|
177 |
|
178 |
<a target="_blank" href="<?php echo esc_url( $premium_extension->get_buy_url() ); ?>"
|
179 |
+
class="yoast-button-upsell">
|
180 |
<?php
|
181 |
+
/* translators: $1$s expands to Yoast SEO Premium */
|
182 |
+
printf( esc_html__( 'Buy %1$s', 'wordpress-seo' ), $premium_extension->get_title() );
|
183 |
+
echo $new_tab_message;
|
184 |
+
echo '<span aria-hidden="true" class="yoast-button-upsell__caret"></span>';
|
185 |
?>
|
186 |
</a>
|
187 |
|
188 |
<a target="_blank" href="<?php echo esc_url( $premium_extension->get_info_url() ); ?>"
|
189 |
+
class="yoast-link--more-info">
|
190 |
<?php
|
191 |
printf(
|
192 |
/* translators: Text between %1$s and %2$s will only be shown to screen readers. %3$s expands to the product name. */
|
193 |
+
esc_html__( 'More information %1$sabout %3$s%2$s', 'wordpress-seo' ),
|
194 |
'<span class="screen-reader-text">',
|
195 |
'</span>',
|
196 |
$premium_extension->get_title()
|
236 |
<?php if ( $addon_manager->has_valid_subscription( $slug ) ) : ?>
|
237 |
<div class="yoast-button yoast-button--noarrow yoast-button--extension yoast-button--extension-activated"><?php esc_html_e( 'Activated', 'wordpress-seo' ); ?></div>
|
238 |
<a target="_blank" href="<?php WPSEO_Shortlinker::show( 'https://yoa.st/13k' ); ?>"
|
239 |
+
class="yoast-link--license">
|
240 |
<?php
|
241 |
+
/* translators: %s expands to the extension title */
|
242 |
+
printf( esc_html( 'Manage your %s subscription on MyYoast', 'wordpress-seo' ), $extension->get_title() );
|
243 |
+
echo $new_tab_message;
|
244 |
?>
|
245 |
</a>
|
246 |
<?php else : ?>
|
247 |
<div class="yoast-button yoast-button--noarrow yoast-button--extension yoast-button--extension-not-activated"><?php esc_html_e( 'Not activated', 'wordpress-seo' ); ?></div>
|
248 |
<a target="_blank" href="<?php WPSEO_Shortlinker::show( 'https://yoa.st/13i' ); ?>"
|
249 |
+
class="yoast-link--license">
|
250 |
<?php
|
251 |
+
/* translators: %s expands to the extension title */
|
252 |
+
printf( esc_html( 'Activate %s for your site on MyYoast', 'wordpress-seo' ), $extension->get_title() );
|
253 |
+
echo $new_tab_message;
|
254 |
?>
|
255 |
</a>
|
256 |
<?php endif; ?>
|
257 |
<?php else : ?>
|
258 |
<a target="_blank" class="yoast-button-upsell"
|
259 |
+
href="<?php echo esc_url( $extension->get_buy_url() ); ?>">
|
260 |
<?php
|
261 |
+
/* translators: %s expands to the product name */
|
262 |
+
printf( esc_html__( 'Buy %s', 'wordpress-seo' ), $extension->get_buy_button() );
|
263 |
+
echo $new_tab_message;
|
264 |
+
echo '<span aria-hidden="true" class="yoast-button-upsell__caret"></span>';
|
265 |
?>
|
266 |
</a>
|
267 |
|
268 |
<a target="_blank" class="yoast-link--more-info"
|
269 |
+
href="<?php echo esc_url( $extension->get_info_url() ); ?>">
|
270 |
<?php
|
271 |
printf(
|
272 |
+
/* translators: Text between %1$s and %2$s will only be shown to screen readers. %3$s expands to the product name. */
|
273 |
+
esc_html__( 'More information %1$sabout %3$s%2$s', 'wordpress-seo' ),
|
274 |
'<span class="screen-reader-text">',
|
275 |
'</span>',
|
276 |
$extension->get_title()
|
admin/views/paper-collapsible.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* @package WPSEO\Admin\Views
|
6 |
*
|
7 |
-
* @uses string $paper_id The
|
8 |
* @uses bool $collapsible Whether the collapsible should be rendered.
|
9 |
* @uses array $collapsible_config Configuration for the collapsible.
|
10 |
* @uses string $title The title.
|
4 |
*
|
5 |
* @package WPSEO\Admin\Views
|
6 |
*
|
7 |
+
* @uses string $paper_id The ID of the paper.
|
8 |
* @uses bool $collapsible Whether the collapsible should be rendered.
|
9 |
* @uses array $collapsible_config Configuration for the collapsible.
|
10 |
* @uses string $title The title.
|
admin/views/partial-alerts-template.php
CHANGED
@@ -18,7 +18,7 @@
|
|
18 |
|
19 |
if ( ! function_exists( '_yoast_display_alerts' ) ) {
|
20 |
/**
|
21 |
-
* Create the alert HTML with restore/dismiss button
|
22 |
*
|
23 |
* @param array $list List of alerts.
|
24 |
* @param string $status Status of the alerts (active/dismissed).
|
18 |
|
19 |
if ( ! function_exists( '_yoast_display_alerts' ) ) {
|
20 |
/**
|
21 |
+
* Create the alert HTML with restore/dismiss button.
|
22 |
*
|
23 |
* @param array $list List of alerts.
|
24 |
* @param string $status Status of the alerts (active/dismissed).
|
admin/views/tabs/dashboard/webmaster-tools.php
CHANGED
@@ -41,8 +41,8 @@ printf(
|
|
41 |
/* translators: %1$s expands to a link start tag to the Baidu Webmaster Tools site add page, %2$s is the link closing tag. */
|
42 |
esc_html__( 'Get your Baidu verification code in %1$sBaidu Webmaster Tools%2$s.', 'wordpress-seo' ),
|
43 |
/**
|
44 |
-
* Get the Baidu Webmaster Tools site add link from this 3rd party article
|
45 |
-
* http://www.dragonmetrics.com/how-to-optimize-your-site-with-baidu-webmaster-tools
|
46 |
* We are unable to create a Baidu Webmaster Tools account due to the Chinese phone number verification.
|
47 |
*/
|
48 |
'<a target="_blank" href="' . esc_url( 'https://ziyuan.baidu.com/site/siteadd' ) . '" rel="noopener noreferrer">',
|
41 |
/* translators: %1$s expands to a link start tag to the Baidu Webmaster Tools site add page, %2$s is the link closing tag. */
|
42 |
esc_html__( 'Get your Baidu verification code in %1$sBaidu Webmaster Tools%2$s.', 'wordpress-seo' ),
|
43 |
/**
|
44 |
+
* Get the Baidu Webmaster Tools site add link from this 3rd party article.
|
45 |
+
* {@link http://www.dragonmetrics.com/how-to-optimize-your-site-with-baidu-webmaster-tools/}
|
46 |
* We are unable to create a Baidu Webmaster Tools account due to the Chinese phone number verification.
|
47 |
*/
|
48 |
'<a target="_blank" href="' . esc_url( 'https://ziyuan.baidu.com/site/siteadd' ) . '" rel="noopener noreferrer">',
|
admin/views/tabs/metas/paper-content/general/knowledge-graph.php
CHANGED
@@ -38,7 +38,6 @@ $knowledge_graph_help = new WPSEO_Admin_Help_Panel(
|
|
38 |
</p>
|
39 |
<?php
|
40 |
$yoast_free_kg_select_options = array(
|
41 |
-
'' => __( 'Choose whether you\'re an organization or a person', 'wordpress-seo' ),
|
42 |
'company' => __( 'Organization', 'wordpress-seo' ),
|
43 |
'person' => __( 'Person', 'wordpress-seo' ),
|
44 |
);
|
@@ -50,11 +49,12 @@ $knowledge_graph_help = new WPSEO_Admin_Help_Panel(
|
|
50 |
$yform->textinput( 'company_name', __( 'Organization name', 'wordpress-seo' ), array( 'autocomplete' => 'organization' ) );
|
51 |
$yform->media_input( 'company_logo', __( 'Organization logo', 'wordpress-seo' ) );
|
52 |
?>
|
|
|
53 |
</div>
|
54 |
<div id="knowledge-graph-person">
|
55 |
<h3><?php esc_html_e( 'Personal info', 'wordpress-seo' ); ?></h3>
|
56 |
<?php
|
57 |
-
echo '<div id="person-selector"></div>';
|
58 |
$yform->hidden( 'company_or_person_user_id', 'person_id' );
|
59 |
?>
|
60 |
</div>
|
38 |
</p>
|
39 |
<?php
|
40 |
$yoast_free_kg_select_options = array(
|
|
|
41 |
'company' => __( 'Organization', 'wordpress-seo' ),
|
42 |
'person' => __( 'Person', 'wordpress-seo' ),
|
43 |
);
|
49 |
$yform->textinput( 'company_name', __( 'Organization name', 'wordpress-seo' ), array( 'autocomplete' => 'organization' ) );
|
50 |
$yform->media_input( 'company_logo', __( 'Organization logo', 'wordpress-seo' ) );
|
51 |
?>
|
52 |
+
<div id="wpseo-local-seo-upsell"></div>
|
53 |
</div>
|
54 |
<div id="knowledge-graph-person">
|
55 |
<h3><?php esc_html_e( 'Personal info', 'wordpress-seo' ); ?></h3>
|
56 |
<?php
|
57 |
+
echo '<div id="wpseo-person-selector"></div>';
|
58 |
$yform->hidden( 'company_or_person_user_id', 'person_id' );
|
59 |
?>
|
60 |
</div>
|
admin/views/tabs/metas/paper-content/post-type-content.php
CHANGED
@@ -65,7 +65,7 @@ if ( WPSEO_Post_Type::has_archive( $wpseo_post_type ) ) {
|
|
65 |
}
|
66 |
|
67 |
/**
|
68 |
-
* Allow adding a custom checkboxes to the admin meta page - Post Types tab
|
69 |
*
|
70 |
* @api WPSEO_Admin_Pages $yform The WPSEO_Admin_Pages object
|
71 |
* @api String $name The post type name
|
65 |
}
|
66 |
|
67 |
/**
|
68 |
+
* Allow adding a custom checkboxes to the admin meta page - Post Types tab.
|
69 |
*
|
70 |
* @api WPSEO_Admin_Pages $yform The WPSEO_Admin_Pages object
|
71 |
* @api String $name The post type name
|
admin/views/tabs/metas/paper-content/taxonomy-content.php
CHANGED
@@ -53,7 +53,7 @@ if ( $wpseo_taxonomy->name !== 'post_format' ) {
|
|
53 |
}
|
54 |
|
55 |
/**
|
56 |
-
* Allow adding custom checkboxes to the admin meta page - Taxonomies tab
|
57 |
*
|
58 |
* @api WPSEO_Admin_Pages $yform The WPSEO_Admin_Pages object
|
59 |
* @api Object $tax The taxonomy
|
53 |
}
|
54 |
|
55 |
/**
|
56 |
+
* Allow adding custom checkboxes to the admin meta page - Taxonomies tab.
|
57 |
*
|
58 |
* @api WPSEO_Admin_Pages $yform The WPSEO_Admin_Pages object
|
59 |
* @api Object $tax The taxonomy
|
admin/views/tool-import-export.php
CHANGED
@@ -103,7 +103,7 @@ $tabs = array(
|
|
103 |
|
104 |
<?php
|
105 |
/**
|
106 |
-
* Allow adding a custom import tab header
|
107 |
*/
|
108 |
do_action( 'wpseo_import_tab_header' );
|
109 |
?>
|
@@ -138,6 +138,6 @@ foreach ( $tabs as $identifier => $tab ) {
|
|
138 |
}
|
139 |
|
140 |
/**
|
141 |
-
* Allow adding a custom import tab
|
142 |
*/
|
143 |
do_action( 'wpseo_import_tab_content' );
|
103 |
|
104 |
<?php
|
105 |
/**
|
106 |
+
* Allow adding a custom import tab header.
|
107 |
*/
|
108 |
do_action( 'wpseo_import_tab_header' );
|
109 |
?>
|
138 |
}
|
139 |
|
140 |
/**
|
141 |
+
* Allow adding a custom import tab.
|
142 |
*/
|
143 |
do_action( 'wpseo_import_tab_content' );
|
admin/watchers/class-slug-change-watcher.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Slug_Change_Watcher
|
10 |
*/
|
11 |
class WPSEO_Slug_Change_Watcher implements WPSEO_WordPress_Integration {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Slug_Change_Watcher.
|
10 |
*/
|
11 |
class WPSEO_Slug_Change_Watcher implements WPSEO_WordPress_Integration {
|
12 |
|
css/dist/{admin-global-1100-rtl.min.css → admin-global-1110-rtl.min.css}
RENAMED
File without changes
|
css/dist/{admin-global-1100.min.css → admin-global-1110.min.css}
RENAMED
File without changes
|
css/dist/{adminbar-1100-rtl.min.css → adminbar-1110-rtl.min.css}
RENAMED
File without changes
|
css/dist/{adminbar-1100.min.css → adminbar-1110.min.css}
RENAMED
File without changes
|
css/dist/alerts-1100-rtl.min.css
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);width:1px;height:1px;border:0;padding:0;overflow:hidden;word-wrap:normal!important}body{margin:0;padding:0}.yoast-wizard-body{box-sizing:border-box;width:80%;max-width:60em;margin:1rem auto 4rem}@media screen and (max-width:768px){.yoast-wizard-body{width:auto;margin:0}}.yoast-wizard__logo{margin:0 auto;display:block}.yoast-wizard{text-align:right;min-height:20px;background:#fff;padding:2em;box-sizing:border-box;width:100%}@media screen and (max-width:768px){.yoast-wizard{padding:1em 1em 2em}}.yoast-wizard--header{text-align:center}.yoast-wizard--header--page-title{color:#a4286a;margin:0 0 -16px;font-size:1.25em;letter-spacing:.03em;line-height:2.5;font-weight:400;padding:0 8px}@media screen and (max-width:768px){.yoast-wizard--header--page-title{font-size:1.5em;line-height:1.25}}.yoast-wizard--navigation{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.yoast-wizard--button{margin-top:1em;background:0 0;color:#0073aa;border:none;padding:0;font:inherit;border-bottom:1px solid #0073aa;cursor:pointer}.yoast-wizard--step__inactive div{pointer-events:none}@media screen and (max-width:768px){.yoast-wizard--step__active{width:38px;overflow:hidden}.yoast-wizard--step__active div{display:inline-block!important;vertical-align:middle}.yoast-wizard--step__active div>span>span{display:block!important;margin-right:-7px;padding-left:99px!important}.yoast-wizard--step__inactive{display:none!important}}.yoast-wizard--step--container:focus{outline:0}.yoast-wizard--step--container h1{color:#a4286a;margin:0;font-size:2.25em;letter-spacing:.03em;line-height:3.68rem;font-weight:100}@media screen and (max-width:768px){.yoast-wizard--step--container h1{font-size:2em;line-height:1.25}}.yoast-wizard--step--container h2{color:#a4286a;font-size:1.375em;font-weight:100}.yoast-wizard--stepper{width:100%;margin:auto}.yoast-wizard-overlay{z-index:10;opacity:.2;background-color:#000;position:absolute;top:0;right:0;height:100%;color:#fff;text-align:center;width:100%}.yoast-wizard-overlay-loader{position:relative}.yoast-wizard-container{border:1px solid #ccc;text-align:right;min-height:20px;position:relative;box-shadow:rgba(0,0,0,.15) 0 3px 10px,rgba(0,0,0,.2) 0 3px 10px}.yoast-wizard-container--no-navigation{margin-top:40px}.yoast-wizard-container--no-navigation .yoast-wizard{padding-top:3em}@media screen and (max-width:768px){.yoast-wizard-container{box-shadow:none}}.yoast-wizard-container fieldset{border:0;margin:1em 0}.yoast-wizard-text-input{font-size:14px;padding-bottom:.5em}.yoast-wizard-text-input-label{cursor:pointer;display:block;margin:.5em 0 0;font-weight:700;font-size:14px}.yoast-wizard-text-input [type=text]{width:100%;max-width:450px;box-sizing:border-box}.yoast-video-container-max-width,.yoast-wizard-content-container{max-width:560px}.yoast-wizard-field-description{font-weight:700}.yoast-wizard input{line-height:140%;font-size:14px;margin:.5em 0;padding:5px}.yoast-wizard label{cursor:pointer}.yoast-wizard input[type=radio]{margin:.3em 0 .3em .7em;vertical-align:middle}.yoast-wizard-input__explanation{color:#555;margin-top:0;font-style:italic}.yoast-wizard-input-radio{font-size:14px}.yoast-wizard-input-radio-option label{padding-top:2px}.yoast-wizard-input-radio-separator{padding:0}.yoast-wizard-input-radio-separator input{position:absolute;right:-9999em;width:1px;height:1px}.yoast-wizard-input-radio-separator input+label{float:right;width:30px!important;margin:0 0 .5em 5px!important;padding:9px 6px;border:1px solid #ccc;font-family:Arial,Helvetica,sans-serif!important;font-size:18px!important;line-height:24px;text-align:center;cursor:pointer}.yoast-wizard-input-radio-separator input:checked+label{border:3px solid #a4286a;background-color:#fff;padding:7px 4px}.yoast-wizard-input-radio-separator input:focus+label{outline:#5b9dd9 solid 2px}.yoast-video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.yoast-video-container iframe{position:absolute;top:0;right:0;width:100%;height:100%}.yoast-wizard-notice__error{margin-bottom:15px;padding:12px;border-right:4px solid #dc3232;background:#fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.yoast-wizard-content-container.yoast-wizard-content-container__is-full-width{max-width:none}@keyframes heartbeat{0%{transform:scale(.7);opacity:.4}80%{opacity:1}100%{transform:scale(.95);opacity:1}}.yoast-loader{animation:heartbeat 1.15s infinite;animation-direction:alternate;animation-timing-function:cubic-bezier(.96,.02,.63,.86)}.yoast-svg-icon-loading-spinner{animation:rotator 1.4s linear infinite}@keyframes rotator{0%{transform:rotate(0)}100%{transform:rotate(-270deg)}}.path{stroke:#64a60a;stroke-dasharray:187;stroke-dashoffset:0;-ms-transform-origin:center;transform-origin:center;animation:dash 1.4s ease-in-out infinite}@keyframes dash{0%{stroke-dashoffset:187}50%{stroke-dashoffset:46.75;transform:rotate(-135deg)}100%{stroke-dashoffset:187;transform:rotate(-450deg)}}.yoast-alert{padding:0 12px;border-right:4px solid #fff;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2)}.yoast-alerts .yoast-alert-holder{margin-bottom:.8em}.yoast-alerts .yoast-alert{width:100%}.yoast-container__alert .yoast-alert{border-right-color:#dc3232}#yoast-alerts-dismissed .yoast-alert{border-right-color:#d93f69}.yoast-container__warning .yoast-alert{border-right-color:#5d237a}#yoast-warnings-dismissed .yoast-alert{border-right-color:#0075b3}.yoast-container{position:relative;max-width:1280px;margin:20px 0 1px;padding:20px 20px 0;border:1px solid #e5e5e5;background-color:#fdfdfd;box-shadow:0 1px 1px rgba(0,0,0,.04)}.yoast-alerts>h2:first-child{margin:0;padding:9px 0 4px;font-size:23px;font-weight:400;line-height:29px}.yoast-alerts .yoast-container h3{margin:-20px -20px 0;padding:1em;border-bottom:1px solid #ccc;background-color:#fdfdfd;font-size:1.4em}h3 .dashicons-warning{color:#dc3232}.yoast-container .container{max-width:980px}.yoast-container .yoast-alert-holder{display:-ms-flexbox;display:flex}.dismiss .dashicons,.restore .dashicons{font-size:24px;width:24px;height:24px}.yoast-bottom-spacing{margin-bottom:20px}.yoast-alerts .button.dismiss,.yoast-alerts .button.restore{-ms-flex:0 0 45px;flex:0 0 45px;width:45px;height:45px;margin-right:10px;line-height:inherit;padding:0;outline:0;cursor:pointer}.yoast-alerts .button.dismiss:focus,.yoast-alerts .button.dismiss:hover,.yoast-alerts .button.restore:focus,.yoast-alerts .button.restore:hover{background:0 0}.yoast-container .separator{margin-top:1em;margin-bottom:1em;border-top:1px solid #ddd}.yoast-container .dashicons-yes{color:#77b227}.yoast-container__warning .dashicons-flag{color:#5d237a}.yoast-container-disabled{display:table-cell;position:absolute;top:0;left:0;bottom:0;right:0;border-radius:4px;background-color:rgba(232,232,232,.7)}.yoast-no-issues{padding:1em 16px 1em 1em;color:#666}.yoast-muted-title{overflow:hidden;font-weight:600;font-style:italic}.yoast-muted-title:after{content:"";display:inline-block;height:.5em;vertical-align:bottom;width:100%;margin-left:-100%;margin-right:10px;border-top:1px solid #ddd}.yoast-alerts .yoast-container__configuration-wizard{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;box-shadow:0 1px 2px rgba(0,0,0,.2);background-color:#fff;min-height:0;padding-bottom:20px;margin-bottom:15px}.yoast-alerts .yoast-container__configuration-wizard--content{-ms-flex:1 1 auto;flex:1 1 auto;margin:12px;padding:0}.yoast-alerts .yoast-container__configuration-wizard--content h3{border-bottom:0;font-size:1.4em;line-height:1;margin:0 0 4px;padding:0;background:0 0}.yoast-alerts .yoast-container__configuration-wizard--content p{margin:1em 0 0}.yoast-alerts .yoast-container__configuration-wizard--content p:last-child{margin:0}.yoast-alerts .yoast-container__configuration-wizard--dismiss{text-align:center}@media screen and (max-width:768px){.yoast-alerts .yoast-container__configuration-wizard img{display:none}.yoast-alerts .yoast-container__configuration-wizard--content{display:block;position:relative;padding:16px}.yoast-alerts .yoast-container__configuration-wizard--dismiss{width:40px;position:absolute;top:5px;left:5px;margin:0}}.yoast-alerts .yoast-container__configuration-wizard--dismiss .dashicons{text-decoration:none;margin-top:11px}
|
|
css/dist/alerts-1100.min.css
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);width:1px;height:1px;border:0;padding:0;overflow:hidden;word-wrap:normal!important}body{margin:0;padding:0}.yoast-wizard-body{box-sizing:border-box;width:80%;max-width:60em;margin:1rem auto 4rem}@media screen and (max-width:768px){.yoast-wizard-body{width:auto;margin:0}}.yoast-wizard__logo{margin:0 auto;display:block}.yoast-wizard{text-align:left;min-height:20px;background:#fff;padding:2em;box-sizing:border-box;width:100%}@media screen and (max-width:768px){.yoast-wizard{padding:1em 1em 2em}}.yoast-wizard--header{text-align:center}.yoast-wizard--header--page-title{color:#a4286a;margin:0 0 -16px;font-size:1.25em;letter-spacing:.03em;line-height:2.5;font-weight:400;padding:0 8px}@media screen and (max-width:768px){.yoast-wizard--header--page-title{font-size:1.5em;line-height:1.25}}.yoast-wizard--navigation{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.yoast-wizard--button{margin-top:1em;background:0 0;color:#0073aa;border:none;padding:0;font:inherit;border-bottom:1px solid #0073aa;cursor:pointer}.yoast-wizard--step__inactive div{pointer-events:none}@media screen and (max-width:768px){.yoast-wizard--step__active{width:38px;overflow:hidden}.yoast-wizard--step__active div{display:inline-block!important;vertical-align:middle}.yoast-wizard--step__active div>span>span{display:block!important;margin-left:-7px;padding-right:99px!important}.yoast-wizard--step__inactive{display:none!important}}.yoast-wizard--step--container:focus{outline:0}.yoast-wizard--step--container h1{color:#a4286a;margin:0;font-size:2.25em;letter-spacing:.03em;line-height:3.68rem;font-weight:100}@media screen and (max-width:768px){.yoast-wizard--step--container h1{font-size:2em;line-height:1.25}}.yoast-wizard--step--container h2{color:#a4286a;font-size:1.375em;font-weight:100}.yoast-wizard--stepper{width:100%;margin:auto}.yoast-wizard-overlay{z-index:10;opacity:.2;background-color:#000;position:absolute;top:0;left:0;height:100%;color:#fff;text-align:center;width:100%}.yoast-wizard-overlay-loader{position:relative}.yoast-wizard-container{border:1px solid #ccc;text-align:left;min-height:20px;position:relative;box-shadow:rgba(0,0,0,.15) 0 3px 10px,rgba(0,0,0,.2) 0 3px 10px}.yoast-wizard-container--no-navigation{margin-top:40px}.yoast-wizard-container--no-navigation .yoast-wizard{padding-top:3em}@media screen and (max-width:768px){.yoast-wizard-container{box-shadow:none}}.yoast-wizard-container fieldset{border:0;margin:1em 0}.yoast-wizard-text-input{font-size:14px;padding-bottom:.5em}.yoast-wizard-text-input-label{cursor:pointer;display:block;margin:.5em 0 0;font-weight:700;font-size:14px}.yoast-wizard-text-input [type=text]{width:100%;max-width:450px;box-sizing:border-box}.yoast-video-container-max-width,.yoast-wizard-content-container{max-width:560px}.yoast-wizard-field-description{font-weight:700}.yoast-wizard input{line-height:140%;font-size:14px;margin:.5em 0;padding:5px}.yoast-wizard label{cursor:pointer}.yoast-wizard input[type=radio]{margin:.3em .7em .3em 0;vertical-align:middle}.yoast-wizard-input__explanation{color:#555;margin-top:0;font-style:italic}.yoast-wizard-input-radio{font-size:14px}.yoast-wizard-input-radio-option label{padding-top:2px}.yoast-wizard-input-radio-separator{padding:0}.yoast-wizard-input-radio-separator input{position:absolute;left:-9999em;width:1px;height:1px}.yoast-wizard-input-radio-separator input+label{float:left;width:30px!important;margin:0 5px .5em 0!important;padding:9px 6px;border:1px solid #ccc;font-family:Arial,Helvetica,sans-serif!important;font-size:18px!important;line-height:24px;text-align:center;cursor:pointer}.yoast-wizard-input-radio-separator input:checked+label{border:3px solid #a4286a;background-color:#fff;padding:7px 4px}.yoast-wizard-input-radio-separator input:focus+label{outline:#5b9dd9 solid 2px}.yoast-video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.yoast-video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}.yoast-wizard-notice__error{margin-bottom:15px;padding:12px;border-left:4px solid #dc3232;background:#fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.yoast-wizard-content-container.yoast-wizard-content-container__is-full-width{max-width:none}@keyframes heartbeat{0%{transform:scale(.7);opacity:.4}80%{opacity:1}100%{transform:scale(.95);opacity:1}}.yoast-loader{animation:heartbeat 1.15s infinite;animation-direction:alternate;animation-timing-function:cubic-bezier(.96,.02,.63,.86)}.yoast-svg-icon-loading-spinner{animation:rotator 1.4s linear infinite}@keyframes rotator{0%{transform:rotate(0)}100%{transform:rotate(270deg)}}.path{stroke:#64a60a;stroke-dasharray:187;stroke-dashoffset:0;-ms-transform-origin:center;transform-origin:center;animation:dash 1.4s ease-in-out infinite}@keyframes dash{0%{stroke-dashoffset:187}50%{stroke-dashoffset:46.75;transform:rotate(135deg)}100%{stroke-dashoffset:187;transform:rotate(450deg)}}.yoast-alert{padding:0 12px;border-left:4px solid #fff;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2)}.yoast-alerts .yoast-alert-holder{margin-bottom:.8em}.yoast-alerts .yoast-alert{width:100%}.yoast-container__alert .yoast-alert{border-left-color:#dc3232}#yoast-alerts-dismissed .yoast-alert{border-left-color:#d93f69}.yoast-container__warning .yoast-alert{border-left-color:#5d237a}#yoast-warnings-dismissed .yoast-alert{border-left-color:#0075b3}.yoast-container{position:relative;max-width:1280px;margin:20px 0 1px;padding:20px 20px 0;border:1px solid #e5e5e5;background-color:#fdfdfd;box-shadow:0 1px 1px rgba(0,0,0,.04)}.yoast-alerts>h2:first-child{margin:0;padding:9px 0 4px;font-size:23px;font-weight:400;line-height:29px}.yoast-alerts .yoast-container h3{margin:-20px -20px 0;padding:1em;border-bottom:1px solid #ccc;background-color:#fdfdfd;font-size:1.4em}h3 .dashicons-warning{color:#dc3232}.yoast-container .container{max-width:980px}.yoast-container .yoast-alert-holder{display:-ms-flexbox;display:flex}.dismiss .dashicons,.restore .dashicons{font-size:24px;width:24px;height:24px}.yoast-bottom-spacing{margin-bottom:20px}.yoast-alerts .button.dismiss,.yoast-alerts .button.restore{-ms-flex:0 0 45px;flex:0 0 45px;width:45px;height:45px;margin-left:10px;line-height:inherit;padding:0;outline:0;cursor:pointer}.yoast-alerts .button.dismiss:focus,.yoast-alerts .button.dismiss:hover,.yoast-alerts .button.restore:focus,.yoast-alerts .button.restore:hover{background:0 0}.yoast-container .separator{margin-top:1em;margin-bottom:1em;border-top:1px solid #ddd}.yoast-container .dashicons-yes{color:#77b227}.yoast-container__warning .dashicons-flag{color:#5d237a}.yoast-container-disabled{display:table-cell;position:absolute;top:0;right:0;bottom:0;left:0;border-radius:4px;background-color:rgba(232,232,232,.7)}.yoast-no-issues{padding:1em 1em 1em 16px;color:#666}.yoast-muted-title{overflow:hidden;font-weight:600;font-style:italic}.yoast-muted-title:after{content:"";display:inline-block;height:.5em;vertical-align:bottom;width:100%;margin-right:-100%;margin-left:10px;border-top:1px solid #ddd}.yoast-alerts .yoast-container__configuration-wizard{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;box-shadow:0 1px 2px rgba(0,0,0,.2);background-color:#fff;min-height:0;padding-bottom:20px;margin-bottom:15px}.yoast-alerts .yoast-container__configuration-wizard--content{-ms-flex:1 1 auto;flex:1 1 auto;margin:12px;padding:0}.yoast-alerts .yoast-container__configuration-wizard--content h3{border-bottom:0;font-size:1.4em;line-height:1;margin:0 0 4px;padding:0;background:0 0}.yoast-alerts .yoast-container__configuration-wizard--content p{margin:1em 0 0}.yoast-alerts .yoast-container__configuration-wizard--content p:last-child{margin:0}.yoast-alerts .yoast-container__configuration-wizard--dismiss{text-align:center}@media screen and (max-width:768px){.yoast-alerts .yoast-container__configuration-wizard img{display:none}.yoast-alerts .yoast-container__configuration-wizard--content{display:block;position:relative;padding:16px}.yoast-alerts .yoast-container__configuration-wizard--dismiss{width:40px;position:absolute;top:5px;right:5px;margin:0}}.yoast-alerts .yoast-container__configuration-wizard--dismiss .dashicons{text-decoration:none;margin-top:11px}
|
|
css/dist/alerts-1110-rtl.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);width:1px;height:1px;border:0;padding:0;overflow:hidden;word-wrap:normal!important}.yoast-alert{padding:0 12px;border-right:4px solid #fff;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2)}.yoast-alerts .yoast-alert-holder{margin-bottom:.8em}.yoast-alerts .yoast-alert{width:100%}.yoast-container__alert .yoast-alert{border-right-color:#dc3232}#yoast-alerts-dismissed .yoast-alert{border-right-color:#d93f69}.yoast-container__warning .yoast-alert{border-right-color:#5d237a}#yoast-warnings-dismissed .yoast-alert{border-right-color:#0075b3}.yoast-container{position:relative;max-width:1280px;margin:20px 0 1px;padding:20px 20px 0;border:1px solid #e5e5e5;background-color:#fdfdfd;box-shadow:0 1px 1px rgba(0,0,0,.04)}.yoast-alerts>h2:first-child{margin:0;padding:9px 0 4px;font-size:23px;font-weight:400;line-height:29px}.yoast-alerts .yoast-container h3{margin:-20px -20px 0;padding:1em;border-bottom:1px solid #ccc;background-color:#fdfdfd;font-size:1.4em}h3 .dashicons-warning{color:#dc3232}.yoast-container .container{max-width:980px}.yoast-container .yoast-alert-holder{display:-ms-flexbox;display:flex}.dismiss .dashicons,.restore .dashicons{font-size:24px;width:24px;height:24px}.yoast-bottom-spacing{margin-bottom:20px}.yoast-alerts .button.dismiss,.yoast-alerts .button.restore{-ms-flex:0 0 45px;flex:0 0 45px;width:45px;height:45px;margin-right:10px;line-height:inherit;padding:0;outline:0;cursor:pointer}.yoast-alerts .button.dismiss:focus,.yoast-alerts .button.dismiss:hover,.yoast-alerts .button.restore:focus,.yoast-alerts .button.restore:hover{background:0 0}.yoast-container .separator{margin-top:1em;margin-bottom:1em;border-top:1px solid #ddd}.yoast-container .dashicons-yes{color:#77b227}.yoast-container__warning .dashicons-flag{color:#5d237a}.yoast-container-disabled{display:table-cell;position:absolute;top:0;left:0;bottom:0;right:0;border-radius:4px;background-color:rgba(232,232,232,.7)}.yoast-no-issues{padding:1em 16px 1em 1em;color:#666}.yoast-muted-title{overflow:hidden;font-weight:600;font-style:italic}.yoast-muted-title:after{content:"";display:inline-block;height:.5em;vertical-align:bottom;width:100%;margin-left:-100%;margin-right:10px;border-top:1px solid #ddd}.yoast-alerts .yoast-container__configuration-wizard{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;box-shadow:0 1px 2px rgba(0,0,0,.2);background-color:#fff;min-height:0;padding-bottom:20px;margin-bottom:15px}.yoast-alerts .yoast-container__configuration-wizard--content{-ms-flex:1 1 auto;flex:1 1 auto;margin:12px;padding:0}.yoast-alerts .yoast-container__configuration-wizard--content h3{border-bottom:0;font-size:1.4em;line-height:1;margin:0 0 4px;padding:0;background:0 0}.yoast-alerts .yoast-container__configuration-wizard--content p{margin:1em 0 0}.yoast-alerts .yoast-container__configuration-wizard--content p:last-child{margin:0}.yoast-alerts .yoast-container__configuration-wizard--dismiss{text-align:center}@media screen and (max-width:768px){.yoast-alerts .yoast-container__configuration-wizard img{display:none}.yoast-alerts .yoast-container__configuration-wizard--content{display:block;position:relative;padding:16px}.yoast-alerts .yoast-container__configuration-wizard--dismiss{width:40px;position:absolute;top:5px;left:5px;margin:0}}.yoast-alerts .yoast-container__configuration-wizard--dismiss .dashicons{text-decoration:none;margin-top:11px}
|
css/dist/alerts-1110.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);width:1px;height:1px;border:0;padding:0;overflow:hidden;word-wrap:normal!important}.yoast-alert{padding:0 12px;border-left:4px solid #fff;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2)}.yoast-alerts .yoast-alert-holder{margin-bottom:.8em}.yoast-alerts .yoast-alert{width:100%}.yoast-container__alert .yoast-alert{border-left-color:#dc3232}#yoast-alerts-dismissed .yoast-alert{border-left-color:#d93f69}.yoast-container__warning .yoast-alert{border-left-color:#5d237a}#yoast-warnings-dismissed .yoast-alert{border-left-color:#0075b3}.yoast-container{position:relative;max-width:1280px;margin:20px 0 1px;padding:20px 20px 0;border:1px solid #e5e5e5;background-color:#fdfdfd;box-shadow:0 1px 1px rgba(0,0,0,.04)}.yoast-alerts>h2:first-child{margin:0;padding:9px 0 4px;font-size:23px;font-weight:400;line-height:29px}.yoast-alerts .yoast-container h3{margin:-20px -20px 0;padding:1em;border-bottom:1px solid #ccc;background-color:#fdfdfd;font-size:1.4em}h3 .dashicons-warning{color:#dc3232}.yoast-container .container{max-width:980px}.yoast-container .yoast-alert-holder{display:-ms-flexbox;display:flex}.dismiss .dashicons,.restore .dashicons{font-size:24px;width:24px;height:24px}.yoast-bottom-spacing{margin-bottom:20px}.yoast-alerts .button.dismiss,.yoast-alerts .button.restore{-ms-flex:0 0 45px;flex:0 0 45px;width:45px;height:45px;margin-left:10px;line-height:inherit;padding:0;outline:0;cursor:pointer}.yoast-alerts .button.dismiss:focus,.yoast-alerts .button.dismiss:hover,.yoast-alerts .button.restore:focus,.yoast-alerts .button.restore:hover{background:0 0}.yoast-container .separator{margin-top:1em;margin-bottom:1em;border-top:1px solid #ddd}.yoast-container .dashicons-yes{color:#77b227}.yoast-container__warning .dashicons-flag{color:#5d237a}.yoast-container-disabled{display:table-cell;position:absolute;top:0;right:0;bottom:0;left:0;border-radius:4px;background-color:rgba(232,232,232,.7)}.yoast-no-issues{padding:1em 1em 1em 16px;color:#666}.yoast-muted-title{overflow:hidden;font-weight:600;font-style:italic}.yoast-muted-title:after{content:"";display:inline-block;height:.5em;vertical-align:bottom;width:100%;margin-right:-100%;margin-left:10px;border-top:1px solid #ddd}.yoast-alerts .yoast-container__configuration-wizard{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;box-shadow:0 1px 2px rgba(0,0,0,.2);background-color:#fff;min-height:0;padding-bottom:20px;margin-bottom:15px}.yoast-alerts .yoast-container__configuration-wizard--content{-ms-flex:1 1 auto;flex:1 1 auto;margin:12px;padding:0}.yoast-alerts .yoast-container__configuration-wizard--content h3{border-bottom:0;font-size:1.4em;line-height:1;margin:0 0 4px;padding:0;background:0 0}.yoast-alerts .yoast-container__configuration-wizard--content p{margin:1em 0 0}.yoast-alerts .yoast-container__configuration-wizard--content p:last-child{margin:0}.yoast-alerts .yoast-container__configuration-wizard--dismiss{text-align:center}@media screen and (max-width:768px){.yoast-alerts .yoast-container__configuration-wizard img{display:none}.yoast-alerts .yoast-container__configuration-wizard--content{display:block;position:relative;padding:16px}.yoast-alerts .yoast-container__configuration-wizard--dismiss{width:40px;position:absolute;top:5px;right:5px;margin:0}}.yoast-alerts .yoast-container__configuration-wizard--dismiss .dashicons{text-decoration:none;margin-top:11px}
|
css/dist/{dashboard-1100-rtl.min.css → dashboard-1110-rtl.min.css}
RENAMED
File without changes
|
css/dist/{dashboard-1100.min.css → dashboard-1110.min.css}
RENAMED
File without changes
|
css/dist/{edit-page-1100-rtl.min.css → edit-page-1110-rtl.min.css}
RENAMED
File without changes
|
css/dist/{edit-page-1100.min.css → edit-page-1110.min.css}
RENAMED
File without changes
|
css/dist/{featured-image-1100-rtl.min.css → featured-image-1110-rtl.min.css}
RENAMED
File without changes
|
css/dist/{featured-image-1100.min.css → featured-image-1110.min.css}
RENAMED
File without changes
|
css/dist/{filter-explanation-1100-rtl.min.css → filter-explanation-1110-rtl.min.css}
RENAMED
File without changes
|
css/dist/{filter-explanation-1100.min.css → filter-explanation-1110.min.css}
RENAMED
File without changes
|
css/dist/{inside-editor-1100-rtl.min.css → inside-editor-1110-rtl.min.css}
RENAMED
File without changes
|
css/dist/{inside-editor-1100.min.css → inside-editor-1110.min.css}
RENAMED
File without changes
|
css/dist/metabox-1100-rtl.min.css
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
.yoast-tooltip{position:relative}button.yoast-tooltip{overflow:visible}.yoast-tooltip::after{display:none;position:absolute;z-index:1000000;padding:6px 8px 5px;border-radius:3px;opacity:0;color:#fff;background:rgba(0,0,0,.8);text-shadow:none;font:normal normal 11px/1.45454545 Helvetica,arial,nimbussansl,liberationsans,freesans,clean,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";text-align:center;white-space:pre;text-decoration:none;letter-spacing:normal;text-transform:none;word-wrap:break-word;content:attr(aria-label);pointer-events:none;-webkit-font-smoothing:subpixel-antialiased}.yoast-tooltip-alt::after{content:attr(data-label)}.yoast-tooltip::before{display:none;position:absolute;z-index:1000001;width:0;height:0;border:5px solid transparent;opacity:0;color:rgba(0,0,0,.8);content:"\00a0";pointer-events:none}@keyframes yoast-tooltip-appear{from{opacity:0}to{opacity:1}}.yoast-tooltip:active::after,.yoast-tooltip:active::before,.yoast-tooltip:focus::after,.yoast-tooltip:focus::before,.yoast-tooltip:hover::after,.yoast-tooltip:hover::before{display:inline-block;text-decoration:none;animation-name:yoast-tooltip-appear;animation-duration:.1s;animation-timing-function:ease-in;animation-delay:.4s;animation-fill-mode:forwards}.yoast-tooltip-no-delay:active::after,.yoast-tooltip-no-delay:active::before,.yoast-tooltip-no-delay:focus::after,.yoast-tooltip-no-delay:focus::before,.yoast-tooltip-no-delay:hover::after,.yoast-tooltip-no-delay:hover::before{opacity:1;animation:none}.yoast-tooltip-multiline:active::after,.yoast-tooltip-multiline:focus::after,.yoast-tooltip-multiline:hover::after{display:table-cell}.yoast-tooltip-s::after,.yoast-tooltip-se::after,.yoast-tooltip-sw::after{top:100%;left:50%;margin-top:5px}.yoast-tooltip-s::before,.yoast-tooltip-se::before,.yoast-tooltip-sw::before{top:auto;left:50%;bottom:-5px;margin-left:-5px;border-bottom-color:rgba(0,0,0,.8)}.yoast-tooltip-se::after{left:auto;right:50%;margin-right:-15px}.yoast-tooltip-sw::after{margin-left:-15px}.yoast-tooltip-n::after,.yoast-tooltip-ne::after,.yoast-tooltip-nw::after{left:50%;bottom:100%;margin-bottom:5px}.yoast-tooltip-n::before,.yoast-tooltip-ne::before,.yoast-tooltip-nw::before{top:-5px;left:50%;bottom:auto;margin-left:-5px;border-top-color:rgba(0,0,0,.8)}.yoast-tooltip-ne::after{left:auto;right:50%;margin-right:-15px}.yoast-tooltip-nw::after{margin-left:-15px}.yoast-tooltip-n::after,.yoast-tooltip-s::after{-ms-transform:translateX(-50%);transform:translateX(-50%)}.yoast-tooltip-w::after{left:100%;bottom:50%;margin-left:5px;-ms-transform:translateY(50%);transform:translateY(50%)}.yoast-tooltip-w::before{top:50%;bottom:50%;right:-5px;margin-top:-5px;border-right-color:rgba(0,0,0,.8)}.yoast-tooltip-e::after{bottom:50%;right:100%;margin-right:5px;-ms-transform:translateY(50%);transform:translateY(50%)}.yoast-tooltip-e::before{top:50%;left:-5px;bottom:50%;margin-top:-5px;border-left-color:rgba(0,0,0,.8)}.yoast-tooltip-multiline::after{width:250px;width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:250px;border-collapse:separate;white-space:pre-line;word-wrap:normal;word-break:break-word}.yoast-tooltip-multiline.yoast-tooltip-n::after,.yoast-tooltip-multiline.yoast-tooltip-s::after{left:auto;right:50%;-ms-transform:translateX(50%);transform:translateX(50%)}.yoast-tooltip-multiline.yoast-tooltip-e::after,.yoast-tooltip-multiline.yoast-tooltip-w::after{left:100%}@media screen and (min-width:0\0){.yoast-tooltip-multiline::after{width:250px}}.yoast-tooltip-sticky::after,.yoast-tooltip-sticky::before{display:inline-block}.yoast-tooltip-sticky.yoast-tooltip-multiline::after{display:table-cell}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (-moz-min-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.yoast-tooltip-w::after{margin-left:4.5px}}.postbox .yoast-help-center__button{border:none;box-shadow:none;text-transform:none;text-decoration:underline;color:#0073aa;margin:0;min-height:0;font:inherit;padding:8px 0}.wpseotab label,.wpseotab legend{font-weight:600}.postbox .yoast-help-center__button svg{margin:0 13px}#edittag .yoast-video-tutorial__video-container{float:none;max-width:100%;margin:0 auto}#edittag .yoast-video-tutorial__descriptions{margin:0 auto;padding:0}@media screen and (max-width:1480px){#poststuff .yoast-video-tutorial__video-container{float:none;max-width:100%;margin:0 auto}#poststuff .yoast-video-tutorial__descriptions{margin:0 auto;padding:0}}.wpseo-metabox #yoast-help-center-container{margin:8px 0}.draftJsMentionPlugin__mention__29BEd,.draftJsMentionPlugin__mention__29BEd:visited{color:#575f67;cursor:pointer;display:inline-block;background:#e6f3ff;padding-right:2px;padding-left:2px;border-radius:2px;text-decoration:none}.draftJsMentionPlugin__mention__29BEd:focus,.draftJsMentionPlugin__mention__29BEd:hover{color:#677584;background:#edf5fd;outline:0}.draftJsMentionPlugin__mention__29BEd:active{color:#222;background:#455261}.draftJsMentionPlugin__mentionSuggestionsEntry__3mSwm{padding:7px 10px 3px;transition:background-color .4s cubic-bezier(.27,1.27,.48,.56)}.draftJsMentionPlugin__mentionSuggestionsEntry__3mSwm:active{background-color:#cce7ff}.draftJsMentionPlugin__mentionSuggestionsEntryFocused__3LcTd{background-color:#e6f3ff}.draftJsMentionPlugin__mentionSuggestionsEntryText__3Jobq{display:inline-block;margin-right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:368px;font-size:.9em;margin-bottom:.2em}.draftJsMentionPlugin__mentionSuggestionsEntryAvatar__1xgA9{display:inline-block;width:24px;height:24px;border-radius:12px}.draftJsMentionPlugin__mentionSuggestions__2DWjA{border:1px solid #eee;margin-top:.4em;position:absolute;min-width:220px;max-width:440px;background:#fff;border-radius:2px;box-shadow:0 4px 30px 0 #dcdcdc;cursor:pointer;padding-top:8px;padding-bottom:8px;z-index:2;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;box-sizing:border-box;-ms-transform:scale(0);transform:scale(0)}.DraftEditor-root,.public-DraftEditor-block{position:relative}#edittag>#wp-description-wrap,.DraftEditorPlaceholder-hidden{display:none}.DraftEditor-editorContainer,.DraftEditor-root,.public-DraftEditor-content{height:inherit;text-align:initial}.public-DraftEditor-content[contenteditable=true]{-webkit-user-modify:read-write-plaintext-only}.DraftEditor-editorContainer{background-color:rgba(255,255,255,0);border-left:.1px solid transparent;position:relative;z-index:1}.DraftEditor-alignLeft .public-DraftStyleDefault-block{text-align:left}.DraftEditor-alignLeft .public-DraftEditorPlaceholder-root{left:0;text-align:left}.DraftEditor-alignCenter .public-DraftStyleDefault-block{text-align:center}.DraftEditor-alignCenter .public-DraftEditorPlaceholder-root{margin:0 auto;text-align:center;width:100%}.DraftEditor-alignRight .public-DraftStyleDefault-block{text-align:right}.DraftEditor-alignRight .public-DraftEditorPlaceholder-root{right:0;text-align:right}.public-DraftEditorPlaceholder-root{color:#9197a3;position:absolute;z-index:1}.public-DraftEditorPlaceholder-hasFocus{color:#bdc1c9}.public-DraftStyleDefault-block{position:relative;white-space:pre-wrap}.public-DraftStyleDefault-ltr{direction:ltr;text-align:left}.public-DraftStyleDefault-rtl{direction:rtl;text-align:right}.public-DraftStyleDefault-listLTR{direction:ltr}.public-DraftStyleDefault-listRTL{direction:rtl}.public-DraftStyleDefault-ol,.public-DraftStyleDefault-ul{margin:16px 0;padding:0}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listLTR{margin-left:1.5em}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listRTL{margin-right:1.5em}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-listLTR{margin-left:3em}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-listRTL{margin-right:3em}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-listLTR{margin-left:4.5em}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-listRTL{margin-right:4.5em}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-listLTR{margin-left:6em}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-listRTL{margin-right:6em}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-listLTR{margin-left:7.5em}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-listRTL{margin-right:7.5em}.public-DraftStyleDefault-unorderedListItem{list-style-type:square;position:relative}.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-depth0{list-style-type:disc}.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-depth1{list-style-type:circle}.public-DraftStyleDefault-orderedListItem{list-style-type:none;position:relative}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listLTR:before{left:-36px;position:absolute;text-align:right;width:30px}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listRTL:before{position:absolute;right:-36px;text-align:left;width:30px}.public-DraftStyleDefault-orderedListItem:before{content:counter(ol0) ". ";counter-increment:ol0}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth1:before{content:counter(ol1) ". ";counter-increment:ol1}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth2:before{content:counter(ol2) ". ";counter-increment:ol2}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth3:before{content:counter(ol3) ". ";counter-increment:ol3}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth4:before{content:counter(ol4) ". ";counter-increment:ol4}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-reset{counter-reset:ol0}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-reset{counter-reset:ol1}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-reset{counter-reset:ol2}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-reset{counter-reset:ol3}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-reset{counter-reset:ol4}.yoast-svg-icon-loading-spinner{animation:rotator 1.4s linear infinite}@keyframes rotator{0%{transform:rotate(0)}100%{transform:rotate(-270deg)}}.path{stroke:#64a60a;stroke-dasharray:187;stroke-dashoffset:0;-ms-transform-origin:center;transform-origin:center;animation:dash 1.4s ease-in-out infinite}@keyframes dash{0%{stroke-dashoffset:187}50%{stroke-dashoffset:46.75;transform:rotate(-135deg)}100%{stroke-dashoffset:187;transform:rotate(-450deg)}}#wpseo_meta{box-sizing:border-box}#wpseo_meta *,#wpseo_meta :after,#wpseo_meta :before{box-sizing:inherit}#wp-description-wrap .wp-editor-area{border:0}.term-description-wrap td>textarea#description{min-height:530px}ul.wpseo-metabox-tabs{display:none;margin-top:6px;margin-bottom:0}ul.wpseo-metabox-tabs:after{content:"";display:table;clear:both}.wpseo-metabox-tabs-div{margin:0 5px 5px}.wpseo-metabox-tabs-div ul{list-style:none}#wpseo-meta-section-addons{padding:0 5px 5px}#wpseo-meta-section-addons .wpseo-metabox-tabs-div{margin:0}ul.wpseo-metabox-tabs li.active{background-color:#fdfdfd}.wpseo-meta-section,.wpseo-meta-section-react{display:none;width:100%;min-height:100%;height:auto;max-width:calc(100% - 50px);vertical-align:top}.wpseo-meta-section.active{display:inline-block;box-shadow:0 1px 2px rgba(0,0,0,.2)}.wpseo-meta-section-react.active{display:block;margin-bottom:10px;box-shadow:0 1px 2px rgba(0,0,0,.2)}.wpseo-metabox-content{display:-ms-flexbox;display:flex}.wpseo-metabox-sidebar{width:46px;padding:0;background-color:#fff}.wpseo-metabox-sidebar ul{margin:0 0 0 1px}.wpseo-metabox-sidebar ul li:nth-child(1){z-index:10}.wpseo-metabox-sidebar ul li:nth-child(2){z-index:9}.wpseo-metabox-sidebar ul li:nth-child(3){z-index:8}.wpseo-metabox-sidebar ul li:nth-child(4){z-index:7}.wpseo-metabox-sidebar ul li:nth-child(5){z-index:6}.wpseo-metabox-sidebar ul li:nth-child(6){z-index:5}.wpseo-metabox-sidebar ul li{box-shadow:0 1px 2px rgba(0,0,0,.2);display:block;margin-bottom:0;text-align:center;position:relative}.wpseo-metabox-sidebar ul li a{color:#000;padding:8px;background-color:#f8f8f8}.wpseo-metabox-sidebar ul li .yst-traffic-light{margin:0}.wpseo-metabox-sidebar ul li span.dashicons{width:100%}.wpseo-metabox-sidebar ul li span.wpseo-buy-premium{color:#a4286a}.wpseo-metabox-sidebar ul li span.wpseo-buy-premium:hover{color:#832055}.wpseo-metabox-sidebar ul li.active{z-index:50}.wpseo-metabox-sidebar ul li.active:after{display:block;float:left;position:absolute;top:0;left:-3px;width:3px;height:46px;background-color:#fff;content:" ";z-index:110}.wpseo-metabox-sidebar ul li.active a{color:#0073aa;background-color:#fff}.wpseo-metabox-sidebar ul li.active span.wpseo-buy-premium{color:#a4286a;border-color:#a4286a}.wpseo-metabox-sidebar ul li.active span.wpseo-buy-premium:hover{color:#832055;border-color:#832055}.wpseo-metabox-sidebar a{padding:5px;display:block;text-decoration:none;vertical-align:middle}ul.wpseo-metabox-tabs li{float:right;margin-left:5px;margin-bottom:-1px;padding:0;border:1px solid #dfdfdf;border-bottom:0 none}ul.wpseo-metabox-tabs li .wpseo-keyword{display:inline-block;vertical-align:top;max-width:8em;max-width:8rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.wpseotab{display:none;padding:16px;border:1px solid #ddd;background-color:#fdfdfd}.wpseotab .wpseo-cornerstone-checkbox{margin-left:.5em}.wpseotab.content{padding:20px 15px}.wpseotab.active{display:block}.wpseo-metabox-tabs .wpseo_tablink{display:inline-block;vertical-align:top;padding:5px 12px 6px;text-decoration:none}.wpseo-metabox-tabs .wpseo_content_tab a{padding-left:12px}.wpseo-metabox-tabs .wpseo-score-icon{margin-right:0}#wpseo-meta-section-social .wpseo-metabox-tabs .wpseo_tablink{padding:5px 7px}.wpseo-metabox-tabs .wpseo_tablink .dashicons{width:16px;height:16px;font-size:16px}.wpseo-metabox-sidebar .dashicons{width:30px;height:30px;font-size:30px}.wpseo-metabox-tabs-div div.wpseo-tabs-panel{overflow:auto;padding:.5em .9em;border:1px solid}#wpseo_meta .inside{margin:0}#wpseo_meta .inside::after{content:"";display:table;clear:both}#wpseo_meta .postbox .inside .wpseotab{font-size:13px!important}.wpseotab .select2-container,.wpseotab input,.wpseotab label,.wpseotab p.error-message,.wpseotab textarea,.yoast-metabox__description{max-width:600px}.wpseotab fieldset{padding-top:5px}.wpseotab label{display:block}.wpseotab input[type=radio]+label,.wpseotab input[type=checkbox]+label{display:inline-block;font-weight:400}.wpseotab fieldset,.wpseotab label{margin-top:2em;margin-bottom:.5em}.wpseotab input[type=checkbox],.wpseotab input[type=checkbox]+label{margin-top:2em;margin-bottom:0;font-size:1em}.wpseotab fieldset:first-child,.wpseotab input[type=checkbox]:first-child,.wpseotab input[type=checkbox]:first-child+label,.wpseotab label:first-child{margin-top:10px}.wpseotab input[type=radio]{margin-top:0}.wpseotab input[type=radio]+label{margin:0 0 0 1em}.wpseotab p.error-message,.yoast-metabox__description{margin:.5em 0}.wpseotab select[multiple]{margin-top:0}.wpseotab .wpseo_image_upload_button{margin-right:3px}.good,.warn,.wrong{font-weight:600}.good{color:green}.warn{color:maroon}.wrong{color:#dc3232}#current_seo_title span{padding:2px 5px;background-color:#ffffe0}#focuskwresults ul{margin:0}#focuskwresults li,#focuskwresults p{font-size:13px}#focuskwresults li{margin:0 20px 0 0;list-style-type:disc}.wpseo_hidden{display:none}.wpseo_msg{margin:5px 0 10px;padding:0 5px;border:1px solid #e6db55;background-color:#ffffe0}ul.wpseo-metabox-tabs li.wpseo-tab-add-keyword{border:1px dashed #dfdfdf;border-bottom:none}.wpseo-tab-add-keyword .wpseo-add-keyword.button{height:auto;padding:5px 10px 5px 12px;vertical-align:top;font-size:inherit;line-height:inherit;font-weight:700;box-shadow:none;background:0 0;text-decoration:none}.wpseo-tab-add-keyword .wpseo-add-keyword.button:focus{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wpseo-tab-add-keyword .wpseo-add-keyword.button:active{-ms-transform:none;transform:none}.wpseo-add-keyword-plus{display:inline-block;vertical-align:top;margin:-1px 0 0 3px;font-size:20px}#wpseo-add-keyword-popup-title{margin:1em 0;font-size:1.3em}.snippet-editor__button.snippet-editor__edit-button:focus{border-color:#5b9dd9;outline:0;color:#23282d;background-color:#fafafa;box-shadow:0 0 3px rgba(0,115,170,.8)}.wpseo-admin-page .subsubsub li{display:inline;max-width:none}.yoast-seo-help-container{float:right;width:100%;max-width:none}.yoast-seo-help-container .yoast-help-panel{margin:.5em 0!important}.wpseo_content_wrapper p.search-box{margin:10px 0 5px}.wpseo-metabox-tabs .active a{color:#333}#wpseotab .ui-widget-content .ui-state-hover{border:1px solid #dfdfdf;color:#333;background:#f1f1f1}.yst-traffic-light-container{display:block;height:30px}.yst-traffic-light{width:19px;height:30px;margin:0 5px 0 0}.yst-traffic-light .traffic-light-color{display:none}.yst-traffic-light.bad .traffic-light-red,.yst-traffic-light.good .traffic-light-green,.yst-traffic-light.init .traffic-light-init,.yst-traffic-light.na .traffic-light-empty,.yst-traffic-light.ok .traffic-light-orange{display:inline}#wpseo-score{float:right;margin:0 -5px 0 5px}.yoast-seo-score .yoast-logo.svg{float:right;width:18px;margin-left:7px;height:18px;background:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23999%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E") no-repeat;background-size:18px}.yoast-seo-score .yoast-logo.svg.good{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%237ad03a%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E")}.yoast-seo-score .yoast-logo.svg.ok{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23ee7c1b%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E")}.yoast-seo-score .yoast-logo.svg.bad{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23dc3232%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E")}.yoast-seo-score .yoast-logo.svg.na{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23999%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E")}.yoast-seo-score .yoast-logo.svg.noindex{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%231e8cbe%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E")}.term-php .wpseo-taxonomy-metabox-postbox>h2{margin:0;padding:8px 12px;border-bottom:1px solid #eee;font-size:14px;line-height:1.4}.wpseo-buy-premium{color:#A4286A;margin-left:5px}.wpseo-metabox-go-to::after{content:" \00BB";position:static;top:auto;left:auto;width:auto;height:auto;border:none}#wpseo-buy-premium-popup-button.button-buy-premium{background:#A4286A;border-color:#A4286A;color:#fff}.wpseo-metabox-buy-premium{position:absolute;left:12px;top:0;padding:8px 0}.wpseo-metabox-buy-premium .dashicons{text-decoration:none}#TB_window #TB_ajaxContent p{padding:5px 0 0;margin:5px 0 0}#TB_window #TB_ajaxContent ul{margin:5px 0 10px}#TB_window #TB_ajaxContent li{list-style:none;margin:5px 0 0}#TB_window #TB_ajaxContent li::before{content:'+';margin:0 0 0 10px;font-weight:700}.yoast-section__heading-icon-list{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23555555%22%20d%3D%22M384%201408q0%2080%2D56%20136t%2D136%2056%2D136%2D56%2D56%2D136%2056%2D136%20136%2D56%20136%2056%2056%20136zm0%2D512q0%2080%2D56%20136t%2D136%2056%2D136%2D56%2D56%2D136%2056%2D136%20136%2D56%20136%2056%2056%20136zm1408%20416v192q0%2013%2D9%2E5%2022%2E5t%2D22%2E5%209%2E5h%2D1216q%2D13%200%2D22%2E5%2D9%2E5t%2D9%2E5%2D22%2E5v%2D192q0%2D13%209%2E5%2D22%2E5t22%2E5%2D9%2E5h1216q13%200%2022%2E5%209%2E5t9%2E5%2022%2E5zm%2D1408%2D928q0%2080%2D56%20136t%2D136%2056%2D136%2D56%2D56%2D136%2056%2D136%20136%2D56%20136%2056%2056%20136zm1408%20416v192q0%2013%2D9%2E5%2022%2E5t%2D22%2E5%209%2E5h%2D1216q%2D13%200%2D22%2E5%2D9%2E5t%2D9%2E5%2D22%2E5v%2D192q0%2D13%209%2E5%2D22%2E5t22%2E5%2D9%2E5h1216q13%200%2022%2E5%209%2E5t9%2E5%2022%2E5zm0%2D512v192q0%2013%2D9%2E5%2022%2E5t%2D22%2E5%209%2E5h%2D1216q%2D13%200%2D22%2E5%2D9%2E5t%2D9%2E5%2D22%2E5v%2D192q0%2D13%209%2E5%2D22%2E5t22%2E5%2D9%2E5h1216q13%200%2022%2E5%209%2E5t9%2E5%2022%2E5z%22%2F%3E%3C%2Fsvg%3E")}.yoast-section__heading-icon-key{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23555555%22%20d%3D%22M832%20512q0%2D80%2D56%2D136t%2D136%2D56%2D136%2056%2D56%20136q0%2042%2019%2083%2D41%2D19%2D83%2D19%2D80%200%2D136%2056t%2D56%20136%2056%20136%20136%2056%20136%2D56%2056%2D136q0%2D42%2D19%2D83%2041%2019%2083%2019%2080%200%20136%2D56t56%2D136zm851%20704q0%2017%2D49%2066t%2D66%2049q%2D9%200%2D28%2E5%2D16t%2D36%2E5%2D33%2D38%2E5%2D40%2D24%2E5%2D26l%2D96%2096%20220%20220q28%2028%2028%2068%200%2042%2D39%2081t%2D81%2039q%2D40%200%2D68%2D28l%2D671%2D671q%2D176%20131%2D365%20131%2D163%200%2D265%2E5%2D102%2E5t%2D102%2E5%2D265%2E5q0%2D160%2095%2D313t248%2D248%20313%2D95q163%200%20265%2E5%20102%2E5t102%2E5%20265%2E5q0%20189%2D131%20365l355%20355%2096%2D96q%2D3%2D3%2D26%2D24%2E5t%2D40%2D38%2E5%2D33%2D36%2E5%2D16%2D28%2E5q0%2D17%2049%2D66t66%2D49q13%200%2023%2010%206%206%2046%2044%2E5t82%2079%2E5%2086%2E5%2086%2073%2078%2028%2E5%2041z%22%2F%3E%3C%2Fsvg%3E")}.yoast-section__heading-icon-edit{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23555555%22%20d%3D%22M491%201536l91%2D91%2D235%2D235%2D91%2091v107h128v128h107zm523%2D928q0%2D22%2D22%2D22%2D10%200%2D17%207l%2D542%20542q%2D7%207%2D7%2017%200%2022%2022%2022%2010%200%2017%2D7l542%2D542q7%2D7%207%2D17zm%2D54%2D192l416%20416%2D832%20832h%2D416v%2D416zm683%2096q0%2053%2D37%2090l%2D166%20166%2D416%2D416%20166%2D165q36%2D38%2090%2D38%2053%200%2091%2038l235%20234q37%2039%2037%2091z%22%20%2F%3E%3C%2Fsvg%3E")}.yoast-section{box-shadow:0 1px 2px rgba(0,0,0,.2);position:relative;background-color:#fff;padding:0 20px 15px}.yoast-section__heading{padding:8px 20px;font-size:1rem;margin:0 -20px 15px;font-family:"Open Sans",sans-serif;font-weight:300;color:#555}.yoast-section__heading-icon{padding-right:44px;background-repeat:no-repeat;background-position:right 20px top .6em;background-size:16px}.yoast-section,.yoast-section *,.yoast-section :after,.yoast-section :before,.yoast-section:after,.yoast-section:before{box-sizing:border-box}.yoast-tooltip.yoast-tooltip-hidden::after,.yoast-tooltip.yoast-tooltip-hidden::before{display:none}.screen-reader-text.wpseo-generic-tab-textual-score,.screen-reader-text.wpseo-keyword-tab-textual-score{display:block}.yoast-notice-go-premium{border-right-color:#a4286a;background:#f1f1f1;margin:0}.editor-styles-wrapper mark.annotation-text-yoast{background-color:#e1bee7}@media screen and (max-width:782px){.wpseo-metabox-buy-premium .wpseo-buy-premium{display:inline-block;width:20px;height:20px;margin-left:5px;padding:0}.yoast-help-panel{max-width:none!important}#wpseo-crawl-issues-table-form .subsubsub{float:none;max-width:calc(100vw - 20px)}#wpseo-crawl-issues-table-form .yoast-help-button{margin-top:3px}.wpseotab select[multiple]{height:auto!important}}@media screen and (max-width:600px){.wpseotab.content{padding:16px 0}}
|
|
css/dist/metabox-1100.min.css
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
.yoast-tooltip{position:relative}button.yoast-tooltip{overflow:visible}.yoast-tooltip::after{display:none;position:absolute;z-index:1000000;padding:6px 8px 5px;border-radius:3px;opacity:0;color:#fff;background:rgba(0,0,0,.8);text-shadow:none;font:normal normal 11px/1.45454545 Helvetica,arial,nimbussansl,liberationsans,freesans,clean,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";text-align:center;white-space:pre;text-decoration:none;letter-spacing:normal;text-transform:none;word-wrap:break-word;content:attr(aria-label);pointer-events:none;-webkit-font-smoothing:subpixel-antialiased}.yoast-tooltip-alt::after{content:attr(data-label)}.yoast-tooltip::before{display:none;position:absolute;z-index:1000001;width:0;height:0;border:5px solid transparent;opacity:0;color:rgba(0,0,0,.8);content:"\00a0";pointer-events:none}@keyframes yoast-tooltip-appear{from{opacity:0}to{opacity:1}}.yoast-tooltip:active::after,.yoast-tooltip:active::before,.yoast-tooltip:focus::after,.yoast-tooltip:focus::before,.yoast-tooltip:hover::after,.yoast-tooltip:hover::before{display:inline-block;text-decoration:none;animation-name:yoast-tooltip-appear;animation-duration:.1s;animation-timing-function:ease-in;animation-delay:.4s;animation-fill-mode:forwards}.yoast-tooltip-no-delay:active::after,.yoast-tooltip-no-delay:active::before,.yoast-tooltip-no-delay:focus::after,.yoast-tooltip-no-delay:focus::before,.yoast-tooltip-no-delay:hover::after,.yoast-tooltip-no-delay:hover::before{opacity:1;animation:none}.yoast-tooltip-multiline:active::after,.yoast-tooltip-multiline:focus::after,.yoast-tooltip-multiline:hover::after{display:table-cell}.yoast-tooltip-s::after,.yoast-tooltip-se::after,.yoast-tooltip-sw::after{top:100%;right:50%;margin-top:5px}.yoast-tooltip-s::before,.yoast-tooltip-se::before,.yoast-tooltip-sw::before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:rgba(0,0,0,.8)}.yoast-tooltip-se::after{right:auto;left:50%;margin-left:-15px}.yoast-tooltip-sw::after{margin-right:-15px}.yoast-tooltip-n::after,.yoast-tooltip-ne::after,.yoast-tooltip-nw::after{right:50%;bottom:100%;margin-bottom:5px}.yoast-tooltip-n::before,.yoast-tooltip-ne::before,.yoast-tooltip-nw::before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:rgba(0,0,0,.8)}.yoast-tooltip-ne::after{right:auto;left:50%;margin-left:-15px}.yoast-tooltip-nw::after{margin-right:-15px}.yoast-tooltip-n::after,.yoast-tooltip-s::after{-ms-transform:translateX(50%);transform:translateX(50%)}.yoast-tooltip-w::after{right:100%;bottom:50%;margin-right:5px;-ms-transform:translateY(50%);transform:translateY(50%)}.yoast-tooltip-w::before{top:50%;bottom:50%;left:-5px;margin-top:-5px;border-left-color:rgba(0,0,0,.8)}.yoast-tooltip-e::after{bottom:50%;left:100%;margin-left:5px;-ms-transform:translateY(50%);transform:translateY(50%)}.yoast-tooltip-e::before{top:50%;right:-5px;bottom:50%;margin-top:-5px;border-right-color:rgba(0,0,0,.8)}.yoast-tooltip-multiline::after{width:250px;width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:250px;border-collapse:separate;white-space:pre-line;word-wrap:normal;word-break:break-word}.yoast-tooltip-multiline.yoast-tooltip-n::after,.yoast-tooltip-multiline.yoast-tooltip-s::after{right:auto;left:50%;-ms-transform:translateX(-50%);transform:translateX(-50%)}.yoast-tooltip-multiline.yoast-tooltip-e::after,.yoast-tooltip-multiline.yoast-tooltip-w::after{right:100%}@media screen and (min-width:0\0){.yoast-tooltip-multiline::after{width:250px}}.yoast-tooltip-sticky::after,.yoast-tooltip-sticky::before{display:inline-block}.yoast-tooltip-sticky.yoast-tooltip-multiline::after{display:table-cell}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (-moz-min-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.yoast-tooltip-w::after{margin-right:4.5px}}.postbox .yoast-help-center__button{border:none;box-shadow:none;text-transform:none;text-decoration:underline;color:#0073aa;margin:0;min-height:0;font:inherit;padding:8px 0}.wpseotab label,.wpseotab legend{font-weight:600}.postbox .yoast-help-center__button svg{margin:0 13px}#edittag .yoast-video-tutorial__video-container{float:none;max-width:100%;margin:0 auto}#edittag .yoast-video-tutorial__descriptions{margin:0 auto;padding:0}@media screen and (max-width:1480px){#poststuff .yoast-video-tutorial__video-container{float:none;max-width:100%;margin:0 auto}#poststuff .yoast-video-tutorial__descriptions{margin:0 auto;padding:0}}.wpseo-metabox #yoast-help-center-container{margin:8px 0}.draftJsMentionPlugin__mention__29BEd,.draftJsMentionPlugin__mention__29BEd:visited{color:#575f67;cursor:pointer;display:inline-block;background:#e6f3ff;padding-left:2px;padding-right:2px;border-radius:2px;text-decoration:none}.draftJsMentionPlugin__mention__29BEd:focus,.draftJsMentionPlugin__mention__29BEd:hover{color:#677584;background:#edf5fd;outline:0}.draftJsMentionPlugin__mention__29BEd:active{color:#222;background:#455261}.draftJsMentionPlugin__mentionSuggestionsEntry__3mSwm{padding:7px 10px 3px;transition:background-color .4s cubic-bezier(.27,1.27,.48,.56)}.draftJsMentionPlugin__mentionSuggestionsEntry__3mSwm:active{background-color:#cce7ff}.draftJsMentionPlugin__mentionSuggestionsEntryFocused__3LcTd{background-color:#e6f3ff}.draftJsMentionPlugin__mentionSuggestionsEntryText__3Jobq{display:inline-block;margin-left:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:368px;font-size:.9em;margin-bottom:.2em}.draftJsMentionPlugin__mentionSuggestionsEntryAvatar__1xgA9{display:inline-block;width:24px;height:24px;border-radius:12px}.draftJsMentionPlugin__mentionSuggestions__2DWjA{border:1px solid #eee;margin-top:.4em;position:absolute;min-width:220px;max-width:440px;background:#fff;border-radius:2px;box-shadow:0 4px 30px 0 #dcdcdc;cursor:pointer;padding-top:8px;padding-bottom:8px;z-index:2;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;box-sizing:border-box;-ms-transform:scale(0);transform:scale(0)}.DraftEditor-root,.public-DraftEditor-block{position:relative}#edittag>#wp-description-wrap,.DraftEditorPlaceholder-hidden{display:none}.DraftEditor-editorContainer,.DraftEditor-root,.public-DraftEditor-content{height:inherit;text-align:initial}.public-DraftEditor-content[contenteditable=true]{-webkit-user-modify:read-write-plaintext-only}.DraftEditor-editorContainer{background-color:rgba(255,255,255,0);border-left:.1px solid transparent;position:relative;z-index:1}.DraftEditor-alignLeft .public-DraftStyleDefault-block{text-align:left}.DraftEditor-alignLeft .public-DraftEditorPlaceholder-root{left:0;text-align:left}.DraftEditor-alignCenter .public-DraftStyleDefault-block{text-align:center}.DraftEditor-alignCenter .public-DraftEditorPlaceholder-root{margin:0 auto;text-align:center;width:100%}.DraftEditor-alignRight .public-DraftStyleDefault-block{text-align:right}.DraftEditor-alignRight .public-DraftEditorPlaceholder-root{right:0;text-align:right}.public-DraftEditorPlaceholder-root{color:#9197a3;position:absolute;z-index:1}.public-DraftEditorPlaceholder-hasFocus{color:#bdc1c9}.public-DraftStyleDefault-block{position:relative;white-space:pre-wrap}.public-DraftStyleDefault-ltr{direction:ltr;text-align:left}.public-DraftStyleDefault-rtl{direction:rtl;text-align:right}.public-DraftStyleDefault-listLTR{direction:ltr}.public-DraftStyleDefault-listRTL{direction:rtl}.public-DraftStyleDefault-ol,.public-DraftStyleDefault-ul{margin:16px 0;padding:0}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listLTR{margin-left:1.5em}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listRTL{margin-right:1.5em}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-listLTR{margin-left:3em}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-listRTL{margin-right:3em}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-listLTR{margin-left:4.5em}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-listRTL{margin-right:4.5em}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-listLTR{margin-left:6em}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-listRTL{margin-right:6em}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-listLTR{margin-left:7.5em}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-listRTL{margin-right:7.5em}.public-DraftStyleDefault-unorderedListItem{list-style-type:square;position:relative}.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-depth0{list-style-type:disc}.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-depth1{list-style-type:circle}.public-DraftStyleDefault-orderedListItem{list-style-type:none;position:relative}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listLTR:before{left:-36px;position:absolute;text-align:right;width:30px}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listRTL:before{position:absolute;right:-36px;text-align:left;width:30px}.public-DraftStyleDefault-orderedListItem:before{content:counter(ol0) ". ";counter-increment:ol0}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth1:before{content:counter(ol1) ". ";counter-increment:ol1}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth2:before{content:counter(ol2) ". ";counter-increment:ol2}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth3:before{content:counter(ol3) ". ";counter-increment:ol3}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth4:before{content:counter(ol4) ". ";counter-increment:ol4}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-reset{counter-reset:ol0}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-reset{counter-reset:ol1}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-reset{counter-reset:ol2}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-reset{counter-reset:ol3}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-reset{counter-reset:ol4}.yoast-svg-icon-loading-spinner{animation:rotator 1.4s linear infinite}@keyframes rotator{0%{transform:rotate(0)}100%{transform:rotate(270deg)}}.path{stroke:#64a60a;stroke-dasharray:187;stroke-dashoffset:0;-ms-transform-origin:center;transform-origin:center;animation:dash 1.4s ease-in-out infinite}@keyframes dash{0%{stroke-dashoffset:187}50%{stroke-dashoffset:46.75;transform:rotate(135deg)}100%{stroke-dashoffset:187;transform:rotate(450deg)}}#wpseo_meta{box-sizing:border-box}#wpseo_meta *,#wpseo_meta :after,#wpseo_meta :before{box-sizing:inherit}#wp-description-wrap .wp-editor-area{border:0}.term-description-wrap td>textarea#description{min-height:530px}ul.wpseo-metabox-tabs{display:none;margin-top:6px;margin-bottom:0}ul.wpseo-metabox-tabs:after{content:"";display:table;clear:both}.wpseo-metabox-tabs-div{margin:0 5px 5px}.wpseo-metabox-tabs-div ul{list-style:none}#wpseo-meta-section-addons{padding:0 5px 5px}#wpseo-meta-section-addons .wpseo-metabox-tabs-div{margin:0}ul.wpseo-metabox-tabs li.active{background-color:#fdfdfd}.wpseo-meta-section,.wpseo-meta-section-react{display:none;width:100%;min-height:100%;height:auto;max-width:calc(100% - 50px);vertical-align:top}.wpseo-meta-section.active{display:inline-block;box-shadow:0 1px 2px rgba(0,0,0,.2)}.wpseo-meta-section-react.active{display:block;margin-bottom:10px;box-shadow:0 1px 2px rgba(0,0,0,.2)}.wpseo-metabox-content{display:-ms-flexbox;display:flex}.wpseo-metabox-sidebar{width:46px;padding:0;background-color:#fff}.wpseo-metabox-sidebar ul{margin:0 1px 0 0}.wpseo-metabox-sidebar ul li:nth-child(1){z-index:10}.wpseo-metabox-sidebar ul li:nth-child(2){z-index:9}.wpseo-metabox-sidebar ul li:nth-child(3){z-index:8}.wpseo-metabox-sidebar ul li:nth-child(4){z-index:7}.wpseo-metabox-sidebar ul li:nth-child(5){z-index:6}.wpseo-metabox-sidebar ul li:nth-child(6){z-index:5}.wpseo-metabox-sidebar ul li{box-shadow:0 1px 2px rgba(0,0,0,.2);display:block;margin-bottom:0;text-align:center;position:relative}.wpseo-metabox-sidebar ul li a{color:#000;padding:8px;background-color:#f8f8f8}.wpseo-metabox-sidebar ul li .yst-traffic-light{margin:0}.wpseo-metabox-sidebar ul li span.dashicons{width:100%}.wpseo-metabox-sidebar ul li span.wpseo-buy-premium{color:#a4286a}.wpseo-metabox-sidebar ul li span.wpseo-buy-premium:hover{color:#832055}.wpseo-metabox-sidebar ul li.active{z-index:50}.wpseo-metabox-sidebar ul li.active:after{display:block;float:right;position:absolute;top:0;right:-3px;width:3px;height:46px;background-color:#fff;content:" ";z-index:110}.wpseo-metabox-sidebar ul li.active a{color:#0073aa;background-color:#fff}.wpseo-metabox-sidebar ul li.active span.wpseo-buy-premium{color:#a4286a;border-color:#a4286a}.wpseo-metabox-sidebar ul li.active span.wpseo-buy-premium:hover{color:#832055;border-color:#832055}.wpseo-metabox-sidebar a{padding:5px;display:block;text-decoration:none;vertical-align:middle}ul.wpseo-metabox-tabs li{float:left;margin-right:5px;margin-bottom:-1px;padding:0;border:1px solid #dfdfdf;border-bottom:0 none}ul.wpseo-metabox-tabs li .wpseo-keyword{display:inline-block;vertical-align:top;max-width:8em;max-width:8rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.wpseotab{display:none;padding:16px;border:1px solid #ddd;background-color:#fdfdfd}.wpseotab .wpseo-cornerstone-checkbox{margin-right:.5em}.wpseotab.content{padding:20px 15px}.wpseotab.active{display:block}.wpseo-metabox-tabs .wpseo_tablink{display:inline-block;vertical-align:top;padding:5px 12px 6px;text-decoration:none}.wpseo-metabox-tabs .wpseo_content_tab a{padding-right:12px}.wpseo-metabox-tabs .wpseo-score-icon{margin-left:0}#wpseo-meta-section-social .wpseo-metabox-tabs .wpseo_tablink{padding:5px 7px}.wpseo-metabox-tabs .wpseo_tablink .dashicons{width:16px;height:16px;font-size:16px}.wpseo-metabox-sidebar .dashicons{width:30px;height:30px;font-size:30px}.wpseo-metabox-tabs-div div.wpseo-tabs-panel{overflow:auto;padding:.5em .9em;border:1px solid}#wpseo_meta .inside{margin:0}#wpseo_meta .inside::after{content:"";display:table;clear:both}#wpseo_meta .postbox .inside .wpseotab{font-size:13px!important}.wpseotab .select2-container,.wpseotab input,.wpseotab label,.wpseotab p.error-message,.wpseotab textarea,.yoast-metabox__description{max-width:600px}.wpseotab fieldset{padding-top:5px}.wpseotab label{display:block}.wpseotab input[type=radio]+label,.wpseotab input[type=checkbox]+label{display:inline-block;font-weight:400}.wpseotab fieldset,.wpseotab label{margin-top:2em;margin-bottom:.5em}.wpseotab input[type=checkbox],.wpseotab input[type=checkbox]+label{margin-top:2em;margin-bottom:0;font-size:1em}.wpseotab fieldset:first-child,.wpseotab input[type=checkbox]:first-child,.wpseotab input[type=checkbox]:first-child+label,.wpseotab label:first-child{margin-top:10px}.wpseotab input[type=radio]{margin-top:0}.wpseotab input[type=radio]+label{margin:0 1em 0 0}.wpseotab p.error-message,.yoast-metabox__description{margin:.5em 0}.wpseotab select[multiple]{margin-top:0}.wpseotab .wpseo_image_upload_button{margin-left:3px}.good,.warn,.wrong{font-weight:600}.good{color:green}.warn{color:maroon}.wrong{color:#dc3232}#current_seo_title span{padding:2px 5px;background-color:#ffffe0}#focuskwresults ul{margin:0}#focuskwresults li,#focuskwresults p{font-size:13px}#focuskwresults li{margin:0 0 0 20px;list-style-type:disc}.wpseo_hidden{display:none}.wpseo_msg{margin:5px 0 10px;padding:0 5px;border:1px solid #e6db55;background-color:#ffffe0}ul.wpseo-metabox-tabs li.wpseo-tab-add-keyword{border:1px dashed #dfdfdf;border-bottom:none}.wpseo-tab-add-keyword .wpseo-add-keyword.button{height:auto;padding:5px 12px 5px 10px;vertical-align:top;font-size:inherit;line-height:inherit;font-weight:700;box-shadow:none;background:0 0;text-decoration:none}.wpseo-tab-add-keyword .wpseo-add-keyword.button:focus{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wpseo-tab-add-keyword .wpseo-add-keyword.button:active{-ms-transform:none;transform:none}.wpseo-add-keyword-plus{display:inline-block;vertical-align:top;margin:-1px 3px 0 0;font-size:20px}#wpseo-add-keyword-popup-title{margin:1em 0;font-size:1.3em}.snippet-editor__button.snippet-editor__edit-button:focus{border-color:#5b9dd9;outline:0;color:#23282d;background-color:#fafafa;box-shadow:0 0 3px rgba(0,115,170,.8)}.wpseo-admin-page .subsubsub li{display:inline;max-width:none}.yoast-seo-help-container{float:left;width:100%;max-width:none}.yoast-seo-help-container .yoast-help-panel{margin:.5em 0!important}.wpseo_content_wrapper p.search-box{margin:10px 0 5px}.wpseo-metabox-tabs .active a{color:#333}#wpseotab .ui-widget-content .ui-state-hover{border:1px solid #dfdfdf;color:#333;background:#f1f1f1}.yst-traffic-light-container{display:block;height:30px}.yst-traffic-light{width:19px;height:30px;margin:0 0 0 5px}.yst-traffic-light .traffic-light-color{display:none}.yst-traffic-light.bad .traffic-light-red,.yst-traffic-light.good .traffic-light-green,.yst-traffic-light.init .traffic-light-init,.yst-traffic-light.na .traffic-light-empty,.yst-traffic-light.ok .traffic-light-orange{display:inline}#wpseo-score{float:left;margin:0 5px 0 -5px}.yoast-seo-score .yoast-logo.svg{float:left;width:18px;margin-right:7px;height:18px;background:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23999%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E") no-repeat;background-size:18px}.yoast-seo-score .yoast-logo.svg.good{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%237ad03a%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E")}.yoast-seo-score .yoast-logo.svg.ok{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23ee7c1b%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E")}.yoast-seo-score .yoast-logo.svg.bad{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23dc3232%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E")}.yoast-seo-score .yoast-logo.svg.na{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23999%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E")}.yoast-seo-score .yoast-logo.svg.noindex{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%231e8cbe%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E")}.term-php .wpseo-taxonomy-metabox-postbox>h2{margin:0;padding:8px 12px;border-bottom:1px solid #eee;font-size:14px;line-height:1.4}.wpseo-buy-premium{color:#A4286A;margin-right:5px}.wpseo-metabox-go-to::after{content:" \00BB";position:static;top:auto;right:auto;width:auto;height:auto;border:none}#wpseo-buy-premium-popup-button.button-buy-premium{background:#A4286A;border-color:#A4286A;color:#fff}.wpseo-metabox-buy-premium{position:absolute;right:12px;top:0;padding:8px 0}.wpseo-metabox-buy-premium .dashicons{text-decoration:none}#TB_window #TB_ajaxContent p{padding:5px 0 0;margin:5px 0 0}#TB_window #TB_ajaxContent ul{margin:5px 0 10px}#TB_window #TB_ajaxContent li{list-style:none;margin:5px 0 0}#TB_window #TB_ajaxContent li::before{content:'+';margin:0 10px 0 0;font-weight:700}.yoast-section__heading-icon-list{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23555555%22%20d%3D%22M384%201408q0%2080%2D56%20136t%2D136%2056%2D136%2D56%2D56%2D136%2056%2D136%20136%2D56%20136%2056%2056%20136zm0%2D512q0%2080%2D56%20136t%2D136%2056%2D136%2D56%2D56%2D136%2056%2D136%20136%2D56%20136%2056%2056%20136zm1408%20416v192q0%2013%2D9%2E5%2022%2E5t%2D22%2E5%209%2E5h%2D1216q%2D13%200%2D22%2E5%2D9%2E5t%2D9%2E5%2D22%2E5v%2D192q0%2D13%209%2E5%2D22%2E5t22%2E5%2D9%2E5h1216q13%200%2022%2E5%209%2E5t9%2E5%2022%2E5zm%2D1408%2D928q0%2080%2D56%20136t%2D136%2056%2D136%2D56%2D56%2D136%2056%2D136%20136%2D56%20136%2056%2056%20136zm1408%20416v192q0%2013%2D9%2E5%2022%2E5t%2D22%2E5%209%2E5h%2D1216q%2D13%200%2D22%2E5%2D9%2E5t%2D9%2E5%2D22%2E5v%2D192q0%2D13%209%2E5%2D22%2E5t22%2E5%2D9%2E5h1216q13%200%2022%2E5%209%2E5t9%2E5%2022%2E5zm0%2D512v192q0%2013%2D9%2E5%2022%2E5t%2D22%2E5%209%2E5h%2D1216q%2D13%200%2D22%2E5%2D9%2E5t%2D9%2E5%2D22%2E5v%2D192q0%2D13%209%2E5%2D22%2E5t22%2E5%2D9%2E5h1216q13%200%2022%2E5%209%2E5t9%2E5%2022%2E5z%22%2F%3E%3C%2Fsvg%3E")}.yoast-section__heading-icon-key{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23555555%22%20d%3D%22M832%20512q0%2D80%2D56%2D136t%2D136%2D56%2D136%2056%2D56%20136q0%2042%2019%2083%2D41%2D19%2D83%2D19%2D80%200%2D136%2056t%2D56%20136%2056%20136%20136%2056%20136%2D56%2056%2D136q0%2D42%2D19%2D83%2041%2019%2083%2019%2080%200%20136%2D56t56%2D136zm851%20704q0%2017%2D49%2066t%2D66%2049q%2D9%200%2D28%2E5%2D16t%2D36%2E5%2D33%2D38%2E5%2D40%2D24%2E5%2D26l%2D96%2096%20220%20220q28%2028%2028%2068%200%2042%2D39%2081t%2D81%2039q%2D40%200%2D68%2D28l%2D671%2D671q%2D176%20131%2D365%20131%2D163%200%2D265%2E5%2D102%2E5t%2D102%2E5%2D265%2E5q0%2D160%2095%2D313t248%2D248%20313%2D95q163%200%20265%2E5%20102%2E5t102%2E5%20265%2E5q0%20189%2D131%20365l355%20355%2096%2D96q%2D3%2D3%2D26%2D24%2E5t%2D40%2D38%2E5%2D33%2D36%2E5%2D16%2D28%2E5q0%2D17%2049%2D66t66%2D49q13%200%2023%2010%206%206%2046%2044%2E5t82%2079%2E5%2086%2E5%2086%2073%2078%2028%2E5%2041z%22%2F%3E%3C%2Fsvg%3E")}.yoast-section__heading-icon-edit{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23555555%22%20d%3D%22M491%201536l91%2D91%2D235%2D235%2D91%2091v107h128v128h107zm523%2D928q0%2D22%2D22%2D22%2D10%200%2D17%207l%2D542%20542q%2D7%207%2D7%2017%200%2022%2022%2022%2010%200%2017%2D7l542%2D542q7%2D7%207%2D17zm%2D54%2D192l416%20416%2D832%20832h%2D416v%2D416zm683%2096q0%2053%2D37%2090l%2D166%20166%2D416%2D416%20166%2D165q36%2D38%2090%2D38%2053%200%2091%2038l235%20234q37%2039%2037%2091z%22%20%2F%3E%3C%2Fsvg%3E")}.yoast-section{box-shadow:0 1px 2px rgba(0,0,0,.2);position:relative;background-color:#fff;padding:0 20px 15px}.yoast-section__heading{padding:8px 20px;font-size:1rem;margin:0 -20px 15px;font-family:"Open Sans",sans-serif;font-weight:300;color:#555}.yoast-section__heading-icon{padding-left:44px;background-repeat:no-repeat;background-position:left 20px top .6em;background-size:16px}.yoast-section,.yoast-section *,.yoast-section :after,.yoast-section :before,.yoast-section:after,.yoast-section:before{box-sizing:border-box}.yoast-tooltip.yoast-tooltip-hidden::after,.yoast-tooltip.yoast-tooltip-hidden::before{display:none}.screen-reader-text.wpseo-generic-tab-textual-score,.screen-reader-text.wpseo-keyword-tab-textual-score{display:block}.yoast-notice-go-premium{border-left-color:#a4286a;background:#f1f1f1;margin:0}.editor-styles-wrapper mark.annotation-text-yoast{background-color:#e1bee7}@media screen and (max-width:782px){.wpseo-metabox-buy-premium .wpseo-buy-premium{display:inline-block;width:20px;height:20px;margin-right:5px;padding:0}.yoast-help-panel{max-width:none!important}#wpseo-crawl-issues-table-form .subsubsub{float:none;max-width:calc(100vw - 20px)}#wpseo-crawl-issues-table-form .yoast-help-button{margin-top:3px}.wpseotab select[multiple]{height:auto!important}}@media screen and (max-width:600px){.wpseotab.content{padding:16px 0}}
|
|
css/dist/metabox-1110-rtl.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.yoast-tooltip::after,.yoast-tooltip::before{opacity:0;pointer-events:none;position:absolute}.yoast-tooltip{position:relative}button.yoast-tooltip{overflow:visible}.yoast-tooltip::after{display:none;z-index:1000000;padding:6px 8px 5px;border-radius:3px;color:#fff;background:rgba(0,0,0,.8);text-shadow:none;font:normal normal 11px/1.45454545 Helvetica,arial,nimbussansl,liberationsans,freesans,clean,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";text-align:center;white-space:pre;text-decoration:none;letter-spacing:normal;text-transform:none;word-wrap:break-word;content:attr(aria-label);-webkit-font-smoothing:subpixel-antialiased}.yoast-tooltip-alt::after{content:attr(data-label)}.yoast-tooltip::before{display:none;z-index:1000001;width:0;height:0;border:5px solid transparent;color:rgba(0,0,0,.8);content:"\00a0"}@keyframes yoast-tooltip-appear{from{opacity:0}to{opacity:1}}.yoast-tooltip:active::after,.yoast-tooltip:active::before,.yoast-tooltip:focus::after,.yoast-tooltip:focus::before,.yoast-tooltip:hover::after,.yoast-tooltip:hover::before{display:inline-block;text-decoration:none;animation-name:yoast-tooltip-appear;animation-duration:.1s;animation-timing-function:ease-in;animation-delay:.4s;animation-fill-mode:forwards}.yoast-tooltip-no-delay:active::after,.yoast-tooltip-no-delay:active::before,.yoast-tooltip-no-delay:focus::after,.yoast-tooltip-no-delay:focus::before,.yoast-tooltip-no-delay:hover::after,.yoast-tooltip-no-delay:hover::before{opacity:1;animation:none}.yoast-tooltip-multiline:active::after,.yoast-tooltip-multiline:focus::after,.yoast-tooltip-multiline:hover::after{display:table-cell}.yoast-tooltip-s::after,.yoast-tooltip-se::after,.yoast-tooltip-sw::after{top:100%;left:50%;margin-top:5px}.yoast-tooltip-s::before,.yoast-tooltip-se::before,.yoast-tooltip-sw::before{top:auto;left:50%;bottom:-5px;margin-left:-5px;border-bottom-color:rgba(0,0,0,.8)}.yoast-tooltip-se::after{left:auto;right:50%;margin-right:-15px}.yoast-tooltip-sw::after{margin-left:-15px}.yoast-tooltip-n::after,.yoast-tooltip-ne::after,.yoast-tooltip-nw::after{left:50%;bottom:100%;margin-bottom:5px}.yoast-tooltip-n::before,.yoast-tooltip-ne::before,.yoast-tooltip-nw::before{top:-5px;left:50%;bottom:auto;margin-left:-5px;border-top-color:rgba(0,0,0,.8)}.yoast-tooltip-ne::after{left:auto;right:50%;margin-right:-15px}.yoast-tooltip-nw::after{margin-left:-15px}.yoast-tooltip-n::after,.yoast-tooltip-s::after{-ms-transform:translateX(-50%);transform:translateX(-50%)}.yoast-tooltip-w::after{left:100%;bottom:50%;margin-left:5px;-ms-transform:translateY(50%);transform:translateY(50%)}.yoast-tooltip-w::before{top:50%;bottom:50%;right:-5px;margin-top:-5px;border-right-color:rgba(0,0,0,.8)}.yoast-tooltip-e::after{bottom:50%;right:100%;margin-right:5px;-ms-transform:translateY(50%);transform:translateY(50%)}.yoast-tooltip-e::before{top:50%;left:-5px;bottom:50%;margin-top:-5px;border-left-color:rgba(0,0,0,.8)}.yoast-tooltip-multiline::after{width:250px;width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:250px;border-collapse:separate;white-space:pre-line;word-wrap:normal;word-break:break-word}.yoast-tooltip-multiline.yoast-tooltip-n::after,.yoast-tooltip-multiline.yoast-tooltip-s::after{left:auto;right:50%;-ms-transform:translateX(50%);transform:translateX(50%)}.yoast-tooltip-multiline.yoast-tooltip-e::after,.yoast-tooltip-multiline.yoast-tooltip-w::after{left:100%}@media screen and (min-width:0\0){.yoast-tooltip-multiline::after{width:250px}}.yoast-tooltip-sticky::after,.yoast-tooltip-sticky::before{display:inline-block}.yoast-tooltip-sticky.yoast-tooltip-multiline::after{display:table-cell}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (-moz-min-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.yoast-tooltip-w::after{margin-left:4.5px}}.postbox .yoast-help-center__button{border:none;box-shadow:none;text-transform:none;text-decoration:underline;color:#0073aa;margin:0;min-height:0;font:inherit;padding:8px 0}.wpseotab label,.wpseotab legend{font-weight:600}.postbox .yoast-help-center__button svg{margin:0 13px}#edittag .yoast-video-tutorial__video-container{float:none;max-width:100%;margin:0 auto}#edittag .yoast-video-tutorial__descriptions{margin:0 auto;padding:0}@media screen and (max-width:1480px){#poststuff .yoast-video-tutorial__video-container{float:none;max-width:100%;margin:0 auto}#poststuff .yoast-video-tutorial__descriptions{margin:0 auto;padding:0}}.wpseo-metabox #yoast-help-center-container{margin:8px 0}.draftJsMentionPlugin__mention__29BEd,.draftJsMentionPlugin__mention__29BEd:visited{color:#575f67;cursor:pointer;display:inline-block;background:#e6f3ff;padding-right:2px;padding-left:2px;border-radius:2px;text-decoration:none}.draftJsMentionPlugin__mention__29BEd:focus,.draftJsMentionPlugin__mention__29BEd:hover{color:#677584;background:#edf5fd;outline:0}.draftJsMentionPlugin__mention__29BEd:active{color:#222;background:#455261}.draftJsMentionPlugin__mentionSuggestionsEntry__3mSwm{padding:7px 10px 3px;transition:background-color .4s cubic-bezier(.27,1.27,.48,.56)}.draftJsMentionPlugin__mentionSuggestionsEntry__3mSwm:active{background-color:#cce7ff}.draftJsMentionPlugin__mentionSuggestionsEntryFocused__3LcTd{background-color:#e6f3ff}.draftJsMentionPlugin__mentionSuggestionsEntryText__3Jobq{display:inline-block;margin-right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:368px;font-size:.9em;margin-bottom:.2em}.draftJsMentionPlugin__mentionSuggestionsEntryAvatar__1xgA9{display:inline-block;width:24px;height:24px;border-radius:12px}.draftJsMentionPlugin__mentionSuggestions__2DWjA{border:1px solid #eee;margin-top:.4em;position:absolute;min-width:220px;max-width:440px;background:#fff;border-radius:2px;box-shadow:0 4px 30px 0 #dcdcdc;cursor:pointer;padding-top:8px;padding-bottom:8px;z-index:2;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;box-sizing:border-box;-ms-transform:scale(0);transform:scale(0)}.DraftEditor-root,.public-DraftEditor-block{position:relative}#edittag>#wp-description-wrap,.DraftEditorPlaceholder-hidden{display:none}.DraftEditor-editorContainer,.DraftEditor-root,.public-DraftEditor-content{height:inherit;text-align:initial}.public-DraftEditor-content[contenteditable=true]{-webkit-user-modify:read-write-plaintext-only}.DraftEditor-editorContainer{background-color:rgba(255,255,255,0);border-left:.1px solid transparent;position:relative;z-index:1}.DraftEditor-alignLeft .public-DraftStyleDefault-block{text-align:left}.DraftEditor-alignLeft .public-DraftEditorPlaceholder-root{left:0;text-align:left}.DraftEditor-alignCenter .public-DraftStyleDefault-block{text-align:center}.DraftEditor-alignCenter .public-DraftEditorPlaceholder-root{margin:0 auto;text-align:center;width:100%}.DraftEditor-alignRight .public-DraftStyleDefault-block{text-align:right}.DraftEditor-alignRight .public-DraftEditorPlaceholder-root{right:0;text-align:right}.public-DraftEditorPlaceholder-root{color:#9197a3;position:absolute;z-index:1}.public-DraftEditorPlaceholder-hasFocus{color:#bdc1c9}.public-DraftStyleDefault-block{position:relative;white-space:pre-wrap}.public-DraftStyleDefault-ltr{direction:ltr;text-align:left}.public-DraftStyleDefault-rtl{direction:rtl;text-align:right}.public-DraftStyleDefault-listLTR{direction:ltr}.public-DraftStyleDefault-listRTL{direction:rtl}.public-DraftStyleDefault-ol,.public-DraftStyleDefault-ul{margin:16px 0;padding:0}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listLTR{margin-left:1.5em}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listRTL{margin-right:1.5em}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-listLTR{margin-left:3em}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-listRTL{margin-right:3em}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-listLTR{margin-left:4.5em}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-listRTL{margin-right:4.5em}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-listLTR{margin-left:6em}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-listRTL{margin-right:6em}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-listLTR{margin-left:7.5em}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-listRTL{margin-right:7.5em}.public-DraftStyleDefault-unorderedListItem{list-style-type:square;position:relative}.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-depth0{list-style-type:disc}.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-depth1{list-style-type:circle}.public-DraftStyleDefault-orderedListItem{list-style-type:none;position:relative}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listLTR:before{left:-36px;position:absolute;text-align:right;width:30px}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listRTL:before{position:absolute;right:-36px;text-align:left;width:30px}.public-DraftStyleDefault-orderedListItem:before{content:counter(ol0) ". ";counter-increment:ol0}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth1:before{content:counter(ol1) ". ";counter-increment:ol1}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth2:before{content:counter(ol2) ". ";counter-increment:ol2}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth3:before{content:counter(ol3) ". ";counter-increment:ol3}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth4:before{content:counter(ol4) ". ";counter-increment:ol4}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-reset{counter-reset:ol0}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-reset{counter-reset:ol1}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-reset{counter-reset:ol2}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-reset{counter-reset:ol3}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-reset{counter-reset:ol4}#wpseo_meta{box-sizing:border-box}#wpseo_meta *,#wpseo_meta :after,#wpseo_meta :before{box-sizing:inherit}#wp-description-wrap .wp-editor-area{border:0}.term-description-wrap td>textarea#description{min-height:530px}ul.wpseo-metabox-tabs{display:none;margin-top:6px;margin-bottom:0}ul.wpseo-metabox-tabs:after{content:"";display:table;clear:both}.wpseo-metabox-tabs-div{margin:0 5px 5px}.wpseo-metabox-tabs-div ul{list-style:none}#wpseo-meta-section-addons{padding:0 5px 5px}#wpseo-meta-section-addons .wpseo-metabox-tabs-div{margin:0}ul.wpseo-metabox-tabs li.active{background-color:#fdfdfd}.wpseo-meta-section,.wpseo-meta-section-react{display:none;width:100%;min-height:100%;height:auto;max-width:calc(100% - 50px);vertical-align:top}.wpseo-meta-section.active{display:inline-block;box-shadow:0 1px 2px rgba(0,0,0,.2)}.wpseo-meta-section-react.active{display:block;margin-bottom:10px;box-shadow:0 1px 2px rgba(0,0,0,.2)}.wpseo-metabox-content{display:-ms-flexbox;display:flex}.wpseo-metabox-sidebar{width:46px;padding:0;background-color:#fff}.wpseo-metabox-sidebar ul{margin:0 0 0 1px}.wpseo-metabox-sidebar ul li:nth-child(1){z-index:10}.wpseo-metabox-sidebar ul li:nth-child(2){z-index:9}.wpseo-metabox-sidebar ul li:nth-child(3){z-index:8}.wpseo-metabox-sidebar ul li:nth-child(4){z-index:7}.wpseo-metabox-sidebar ul li:nth-child(5){z-index:6}.wpseo-metabox-sidebar ul li:nth-child(6){z-index:5}.wpseo-metabox-sidebar ul li{box-shadow:0 1px 2px rgba(0,0,0,.2);display:block;margin-bottom:0;text-align:center;position:relative}.wpseo-metabox-sidebar ul li a{color:#000;padding:8px;background-color:#f8f8f8}.wpseo-metabox-sidebar ul li .yst-traffic-light{margin:0}.wpseo-metabox-sidebar ul li span.dashicons{width:100%}.wpseo-metabox-sidebar ul li span.wpseo-buy-premium{color:#a4286a}.wpseo-metabox-sidebar ul li span.wpseo-buy-premium:hover{color:#832055}.wpseo-metabox-sidebar ul li.active{z-index:50}.wpseo-metabox-sidebar ul li.active:after{display:block;float:left;position:absolute;top:0;left:-3px;width:3px;height:46px;background-color:#fff;content:" ";z-index:110}.wpseo-metabox-sidebar ul li.active a{color:#0073aa;background-color:#fff}.wpseo-metabox-sidebar ul li.active span.wpseo-buy-premium{color:#a4286a;border-color:#a4286a}.wpseo-metabox-sidebar ul li.active span.wpseo-buy-premium:hover{color:#832055;border-color:#832055}.wpseo-metabox-sidebar a{padding:5px;display:block;text-decoration:none;vertical-align:middle}ul.wpseo-metabox-tabs li{float:right;margin-left:5px;margin-bottom:-1px;padding:0;border:1px solid #dfdfdf;border-bottom:0 none}ul.wpseo-metabox-tabs li .wpseo-keyword{display:inline-block;vertical-align:top;max-width:8em;max-width:8rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.wpseotab{display:none;padding:16px;border:1px solid #ddd;background-color:#fdfdfd}.wpseotab .wpseo-cornerstone-checkbox{margin-left:.5em}.wpseotab.content{padding:20px 15px}.wpseotab.active{display:block}.wpseo-metabox-tabs .wpseo_tablink{display:inline-block;vertical-align:top;padding:5px 12px 6px;text-decoration:none}.wpseo-metabox-tabs .wpseo_content_tab a{padding-left:12px}.wpseo-metabox-tabs .wpseo-score-icon{margin-right:0}#wpseo-meta-section-social .wpseo-metabox-tabs .wpseo_tablink{padding:5px 7px}.wpseo-metabox-tabs .wpseo_tablink .dashicons{width:16px;height:16px;font-size:16px}.wpseo-metabox-sidebar .dashicons{width:30px;height:30px;font-size:30px}.wpseo-metabox-tabs-div div.wpseo-tabs-panel{overflow:auto;padding:.5em .9em;border:1px solid}#wpseo_meta .inside{margin:0}#wpseo_meta .inside::after{content:"";display:table;clear:both}#wpseo_meta .postbox .inside .wpseotab{font-size:13px!important}.wpseotab .select2-container,.wpseotab input,.wpseotab label,.wpseotab p.error-message,.wpseotab textarea,.yoast-metabox__description{max-width:600px}.wpseotab fieldset{padding-top:5px}.wpseotab label{display:block}.wpseotab input[type=radio]+label,.wpseotab input[type=checkbox]+label{display:inline-block;font-weight:400}.wpseotab fieldset,.wpseotab label{margin-top:2em;margin-bottom:.5em}.wpseotab input[type=checkbox],.wpseotab input[type=checkbox]+label{margin-top:2em;margin-bottom:0;font-size:1em}.wpseotab fieldset:first-child,.wpseotab input[type=checkbox]:first-child,.wpseotab input[type=checkbox]:first-child+label,.wpseotab label:first-child{margin-top:10px}.wpseotab input[type=radio]{margin-top:0}.wpseotab input[type=radio]+label{margin:0 0 0 1em}.wpseotab p.error-message,.yoast-metabox__description{margin:.5em 0}.wpseotab select[multiple]{margin-top:0}.wpseotab .wpseo_image_upload_button{margin-right:3px}.good,.warn,.wrong{font-weight:600}.good{color:green}.warn{color:maroon}.wrong{color:#dc3232}#current_seo_title span{padding:2px 5px;background-color:#ffffe0}#focuskwresults ul{margin:0}#focuskwresults li,#focuskwresults p{font-size:13px}#focuskwresults li{margin:0 20px 0 0;list-style-type:disc}.wpseo_hidden{display:none}.wpseo_msg{margin:5px 0 10px;padding:0 5px;border:1px solid #e6db55;background-color:#ffffe0}ul.wpseo-metabox-tabs li.wpseo-tab-add-keyword{border:1px dashed #dfdfdf;border-bottom:none}.wpseo-tab-add-keyword .wpseo-add-keyword.button{height:auto;padding:5px 10px 5px 12px;vertical-align:top;font-size:inherit;line-height:inherit;font-weight:700;box-shadow:none;background:0 0;text-decoration:none}.wpseo-tab-add-keyword .wpseo-add-keyword.button:focus{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wpseo-tab-add-keyword .wpseo-add-keyword.button:active{-ms-transform:none;transform:none}.wpseo-add-keyword-plus{display:inline-block;vertical-align:top;margin:-1px 0 0 3px;font-size:20px}#wpseo-add-keyword-popup-title{margin:1em 0;font-size:1.3em}.snippet-editor__button.snippet-editor__edit-button:focus{border-color:#5b9dd9;outline:0;color:#23282d;background-color:#fafafa;box-shadow:0 0 3px rgba(0,115,170,.8)}.wpseo-admin-page .subsubsub li{display:inline;max-width:none}.yoast-seo-help-container{float:right;width:100%;max-width:none}.yoast-seo-help-container .yoast-help-panel{margin:.5em 0!important}.wpseo_content_wrapper p.search-box{margin:10px 0 5px}.wpseo-metabox-tabs .active a{color:#333}#wpseotab .ui-widget-content .ui-state-hover{border:1px solid #dfdfdf;color:#333;background:#f1f1f1}.yst-traffic-light-container{display:block;height:30px}.yst-traffic-light{width:19px;height:30px;margin:0 5px 0 0}.yst-traffic-light .traffic-light-color{display:none}.yst-traffic-light.bad .traffic-light-red,.yst-traffic-light.good .traffic-light-green,.yst-traffic-light.init .traffic-light-init,.yst-traffic-light.na .traffic-light-empty,.yst-traffic-light.ok .traffic-light-orange{display:inline}#wpseo-score{float:right;margin:0 -5px 0 5px}.yoast-seo-score .yoast-logo.svg{float:right;width:18px;margin-left:7px;height:18px;background:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23999%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E") no-repeat;background-size:18px}.yoast-seo-score .yoast-logo.svg.good{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%237ad03a%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E")}.yoast-seo-score .yoast-logo.svg.ok{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23ee7c1b%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E")}.yoast-seo-score .yoast-logo.svg.bad{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23dc3232%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E")}.yoast-seo-score .yoast-logo.svg.na{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23999%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E")}.yoast-seo-score .yoast-logo.svg.noindex{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%231e8cbe%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E")}.term-php .wpseo-taxonomy-metabox-postbox>h2{margin:0;padding:8px 12px;border-bottom:1px solid #eee;font-size:14px;line-height:1.4}.wpseo-buy-premium{color:#A4286A;margin-left:5px}.wpseo-metabox-go-to::after{content:" \00BB";position:static;top:auto;left:auto;width:auto;height:auto;border:none}#wpseo-buy-premium-popup-button.button-buy-premium{background:#A4286A;border-color:#A4286A;color:#fff}.wpseo-metabox-buy-premium{position:absolute;left:12px;top:0;padding:8px 0}.wpseo-metabox-buy-premium .dashicons{text-decoration:none}#TB_window #TB_ajaxContent p{padding:5px 0 0;margin:5px 0 0}#TB_window #TB_ajaxContent ul{margin:5px 0 10px}#TB_window #TB_ajaxContent li{list-style:none;margin:5px 0 0}#TB_window #TB_ajaxContent li::before{content:'+';margin:0 0 0 10px;font-weight:700}.yoast-section__heading-icon-list{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23555555%22%20d%3D%22M384%201408q0%2080%2D56%20136t%2D136%2056%2D136%2D56%2D56%2D136%2056%2D136%20136%2D56%20136%2056%2056%20136zm0%2D512q0%2080%2D56%20136t%2D136%2056%2D136%2D56%2D56%2D136%2056%2D136%20136%2D56%20136%2056%2056%20136zm1408%20416v192q0%2013%2D9%2E5%2022%2E5t%2D22%2E5%209%2E5h%2D1216q%2D13%200%2D22%2E5%2D9%2E5t%2D9%2E5%2D22%2E5v%2D192q0%2D13%209%2E5%2D22%2E5t22%2E5%2D9%2E5h1216q13%200%2022%2E5%209%2E5t9%2E5%2022%2E5zm%2D1408%2D928q0%2080%2D56%20136t%2D136%2056%2D136%2D56%2D56%2D136%2056%2D136%20136%2D56%20136%2056%2056%20136zm1408%20416v192q0%2013%2D9%2E5%2022%2E5t%2D22%2E5%209%2E5h%2D1216q%2D13%200%2D22%2E5%2D9%2E5t%2D9%2E5%2D22%2E5v%2D192q0%2D13%209%2E5%2D22%2E5t22%2E5%2D9%2E5h1216q13%200%2022%2E5%209%2E5t9%2E5%2022%2E5zm0%2D512v192q0%2013%2D9%2E5%2022%2E5t%2D22%2E5%209%2E5h%2D1216q%2D13%200%2D22%2E5%2D9%2E5t%2D9%2E5%2D22%2E5v%2D192q0%2D13%209%2E5%2D22%2E5t22%2E5%2D9%2E5h1216q13%200%2022%2E5%209%2E5t9%2E5%2022%2E5z%22%2F%3E%3C%2Fsvg%3E")}.yoast-section__heading-icon-key{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23555555%22%20d%3D%22M832%20512q0%2D80%2D56%2D136t%2D136%2D56%2D136%2056%2D56%20136q0%2042%2019%2083%2D41%2D19%2D83%2D19%2D80%200%2D136%2056t%2D56%20136%2056%20136%20136%2056%20136%2D56%2056%2D136q0%2D42%2D19%2D83%2041%2019%2083%2019%2080%200%20136%2D56t56%2D136zm851%20704q0%2017%2D49%2066t%2D66%2049q%2D9%200%2D28%2E5%2D16t%2D36%2E5%2D33%2D38%2E5%2D40%2D24%2E5%2D26l%2D96%2096%20220%20220q28%2028%2028%2068%200%2042%2D39%2081t%2D81%2039q%2D40%200%2D68%2D28l%2D671%2D671q%2D176%20131%2D365%20131%2D163%200%2D265%2E5%2D102%2E5t%2D102%2E5%2D265%2E5q0%2D160%2095%2D313t248%2D248%20313%2D95q163%200%20265%2E5%20102%2E5t102%2E5%20265%2E5q0%20189%2D131%20365l355%20355%2096%2D96q%2D3%2D3%2D26%2D24%2E5t%2D40%2D38%2E5%2D33%2D36%2E5%2D16%2D28%2E5q0%2D17%2049%2D66t66%2D49q13%200%2023%2010%206%206%2046%2044%2E5t82%2079%2E5%2086%2E5%2086%2073%2078%2028%2E5%2041z%22%2F%3E%3C%2Fsvg%3E")}.yoast-section__heading-icon-edit{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23555555%22%20d%3D%22M491%201536l91%2D91%2D235%2D235%2D91%2091v107h128v128h107zm523%2D928q0%2D22%2D22%2D22%2D10%200%2D17%207l%2D542%20542q%2D7%207%2D7%2017%200%2022%2022%2022%2010%200%2017%2D7l542%2D542q7%2D7%207%2D17zm%2D54%2D192l416%20416%2D832%20832h%2D416v%2D416zm683%2096q0%2053%2D37%2090l%2D166%20166%2D416%2D416%20166%2D165q36%2D38%2090%2D38%2053%200%2091%2038l235%20234q37%2039%2037%2091z%22%20%2F%3E%3C%2Fsvg%3E")}.yoast-section{box-shadow:0 1px 2px rgba(0,0,0,.2);position:relative;background-color:#fff;padding:0 20px 15px}.yoast-section__heading{padding:8px 20px;font-size:1rem;margin:0 -20px 15px;font-family:"Open Sans",sans-serif;font-weight:300;color:#555}.yoast-section__heading-icon{padding-right:44px;background-repeat:no-repeat;background-position:right 20px top .6em;background-size:16px}.yoast-section,.yoast-section *,.yoast-section :after,.yoast-section :before,.yoast-section:after,.yoast-section:before{box-sizing:border-box}.yoast-tooltip.yoast-tooltip-hidden::after,.yoast-tooltip.yoast-tooltip-hidden::before{display:none}.screen-reader-text.wpseo-generic-tab-textual-score,.screen-reader-text.wpseo-keyword-tab-textual-score{display:block}.yoast-notice-go-premium{border-right-color:#a4286a;background:#f1f1f1;margin:0}.editor-styles-wrapper mark.annotation-text-yoast{background-color:#e1bee7}@media screen and (max-width:782px){.wpseo-metabox-buy-premium .wpseo-buy-premium{display:inline-block;width:20px;height:20px;margin-left:5px;padding:0}.yoast-help-panel{max-width:none!important}#wpseo-crawl-issues-table-form .subsubsub{float:none;max-width:calc(100vw - 20px)}#wpseo-crawl-issues-table-form .yoast-help-button{margin-top:3px}.wpseotab select[multiple]{height:auto!important}}@media screen and (max-width:600px){.wpseotab.content{padding:16px 0}}
|
css/dist/metabox-1110.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.yoast-tooltip::after,.yoast-tooltip::before{opacity:0;pointer-events:none;position:absolute}.yoast-tooltip{position:relative}button.yoast-tooltip{overflow:visible}.yoast-tooltip::after{display:none;z-index:1000000;padding:6px 8px 5px;border-radius:3px;color:#fff;background:rgba(0,0,0,.8);text-shadow:none;font:normal normal 11px/1.45454545 Helvetica,arial,nimbussansl,liberationsans,freesans,clean,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";text-align:center;white-space:pre;text-decoration:none;letter-spacing:normal;text-transform:none;word-wrap:break-word;content:attr(aria-label);-webkit-font-smoothing:subpixel-antialiased}.yoast-tooltip-alt::after{content:attr(data-label)}.yoast-tooltip::before{display:none;z-index:1000001;width:0;height:0;border:5px solid transparent;color:rgba(0,0,0,.8);content:"\00a0"}@keyframes yoast-tooltip-appear{from{opacity:0}to{opacity:1}}.yoast-tooltip:active::after,.yoast-tooltip:active::before,.yoast-tooltip:focus::after,.yoast-tooltip:focus::before,.yoast-tooltip:hover::after,.yoast-tooltip:hover::before{display:inline-block;text-decoration:none;animation-name:yoast-tooltip-appear;animation-duration:.1s;animation-timing-function:ease-in;animation-delay:.4s;animation-fill-mode:forwards}.yoast-tooltip-no-delay:active::after,.yoast-tooltip-no-delay:active::before,.yoast-tooltip-no-delay:focus::after,.yoast-tooltip-no-delay:focus::before,.yoast-tooltip-no-delay:hover::after,.yoast-tooltip-no-delay:hover::before{opacity:1;animation:none}.yoast-tooltip-multiline:active::after,.yoast-tooltip-multiline:focus::after,.yoast-tooltip-multiline:hover::after{display:table-cell}.yoast-tooltip-s::after,.yoast-tooltip-se::after,.yoast-tooltip-sw::after{top:100%;right:50%;margin-top:5px}.yoast-tooltip-s::before,.yoast-tooltip-se::before,.yoast-tooltip-sw::before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:rgba(0,0,0,.8)}.yoast-tooltip-se::after{right:auto;left:50%;margin-left:-15px}.yoast-tooltip-sw::after{margin-right:-15px}.yoast-tooltip-n::after,.yoast-tooltip-ne::after,.yoast-tooltip-nw::after{right:50%;bottom:100%;margin-bottom:5px}.yoast-tooltip-n::before,.yoast-tooltip-ne::before,.yoast-tooltip-nw::before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:rgba(0,0,0,.8)}.yoast-tooltip-ne::after{right:auto;left:50%;margin-left:-15px}.yoast-tooltip-nw::after{margin-right:-15px}.yoast-tooltip-n::after,.yoast-tooltip-s::after{-ms-transform:translateX(50%);transform:translateX(50%)}.yoast-tooltip-w::after{right:100%;bottom:50%;margin-right:5px;-ms-transform:translateY(50%);transform:translateY(50%)}.yoast-tooltip-w::before{top:50%;bottom:50%;left:-5px;margin-top:-5px;border-left-color:rgba(0,0,0,.8)}.yoast-tooltip-e::after{bottom:50%;left:100%;margin-left:5px;-ms-transform:translateY(50%);transform:translateY(50%)}.yoast-tooltip-e::before{top:50%;right:-5px;bottom:50%;margin-top:-5px;border-right-color:rgba(0,0,0,.8)}.yoast-tooltip-multiline::after{width:250px;width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:250px;border-collapse:separate;white-space:pre-line;word-wrap:normal;word-break:break-word}.yoast-tooltip-multiline.yoast-tooltip-n::after,.yoast-tooltip-multiline.yoast-tooltip-s::after{right:auto;left:50%;-ms-transform:translateX(-50%);transform:translateX(-50%)}.yoast-tooltip-multiline.yoast-tooltip-e::after,.yoast-tooltip-multiline.yoast-tooltip-w::after{right:100%}@media screen and (min-width:0\0){.yoast-tooltip-multiline::after{width:250px}}.yoast-tooltip-sticky::after,.yoast-tooltip-sticky::before{display:inline-block}.yoast-tooltip-sticky.yoast-tooltip-multiline::after{display:table-cell}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (-moz-min-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.yoast-tooltip-w::after{margin-right:4.5px}}.postbox .yoast-help-center__button{border:none;box-shadow:none;text-transform:none;text-decoration:underline;color:#0073aa;margin:0;min-height:0;font:inherit;padding:8px 0}.wpseotab label,.wpseotab legend{font-weight:600}.postbox .yoast-help-center__button svg{margin:0 13px}#edittag .yoast-video-tutorial__video-container{float:none;max-width:100%;margin:0 auto}#edittag .yoast-video-tutorial__descriptions{margin:0 auto;padding:0}@media screen and (max-width:1480px){#poststuff .yoast-video-tutorial__video-container{float:none;max-width:100%;margin:0 auto}#poststuff .yoast-video-tutorial__descriptions{margin:0 auto;padding:0}}.wpseo-metabox #yoast-help-center-container{margin:8px 0}.draftJsMentionPlugin__mention__29BEd,.draftJsMentionPlugin__mention__29BEd:visited{color:#575f67;cursor:pointer;display:inline-block;background:#e6f3ff;padding-left:2px;padding-right:2px;border-radius:2px;text-decoration:none}.draftJsMentionPlugin__mention__29BEd:focus,.draftJsMentionPlugin__mention__29BEd:hover{color:#677584;background:#edf5fd;outline:0}.draftJsMentionPlugin__mention__29BEd:active{color:#222;background:#455261}.draftJsMentionPlugin__mentionSuggestionsEntry__3mSwm{padding:7px 10px 3px;transition:background-color .4s cubic-bezier(.27,1.27,.48,.56)}.draftJsMentionPlugin__mentionSuggestionsEntry__3mSwm:active{background-color:#cce7ff}.draftJsMentionPlugin__mentionSuggestionsEntryFocused__3LcTd{background-color:#e6f3ff}.draftJsMentionPlugin__mentionSuggestionsEntryText__3Jobq{display:inline-block;margin-left:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:368px;font-size:.9em;margin-bottom:.2em}.draftJsMentionPlugin__mentionSuggestionsEntryAvatar__1xgA9{display:inline-block;width:24px;height:24px;border-radius:12px}.draftJsMentionPlugin__mentionSuggestions__2DWjA{border:1px solid #eee;margin-top:.4em;position:absolute;min-width:220px;max-width:440px;background:#fff;border-radius:2px;box-shadow:0 4px 30px 0 #dcdcdc;cursor:pointer;padding-top:8px;padding-bottom:8px;z-index:2;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;box-sizing:border-box;-ms-transform:scale(0);transform:scale(0)}.DraftEditor-root,.public-DraftEditor-block{position:relative}#edittag>#wp-description-wrap,.DraftEditorPlaceholder-hidden{display:none}.DraftEditor-editorContainer,.DraftEditor-root,.public-DraftEditor-content{height:inherit;text-align:initial}.public-DraftEditor-content[contenteditable=true]{-webkit-user-modify:read-write-plaintext-only}.DraftEditor-editorContainer{background-color:rgba(255,255,255,0);border-left:.1px solid transparent;position:relative;z-index:1}.DraftEditor-alignLeft .public-DraftStyleDefault-block{text-align:left}.DraftEditor-alignLeft .public-DraftEditorPlaceholder-root{left:0;text-align:left}.DraftEditor-alignCenter .public-DraftStyleDefault-block{text-align:center}.DraftEditor-alignCenter .public-DraftEditorPlaceholder-root{margin:0 auto;text-align:center;width:100%}.DraftEditor-alignRight .public-DraftStyleDefault-block{text-align:right}.DraftEditor-alignRight .public-DraftEditorPlaceholder-root{right:0;text-align:right}.public-DraftEditorPlaceholder-root{color:#9197a3;position:absolute;z-index:1}.public-DraftEditorPlaceholder-hasFocus{color:#bdc1c9}.public-DraftStyleDefault-block{position:relative;white-space:pre-wrap}.public-DraftStyleDefault-ltr{direction:ltr;text-align:left}.public-DraftStyleDefault-rtl{direction:rtl;text-align:right}.public-DraftStyleDefault-listLTR{direction:ltr}.public-DraftStyleDefault-listRTL{direction:rtl}.public-DraftStyleDefault-ol,.public-DraftStyleDefault-ul{margin:16px 0;padding:0}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listLTR{margin-left:1.5em}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listRTL{margin-right:1.5em}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-listLTR{margin-left:3em}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-listRTL{margin-right:3em}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-listLTR{margin-left:4.5em}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-listRTL{margin-right:4.5em}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-listLTR{margin-left:6em}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-listRTL{margin-right:6em}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-listLTR{margin-left:7.5em}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-listRTL{margin-right:7.5em}.public-DraftStyleDefault-unorderedListItem{list-style-type:square;position:relative}.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-depth0{list-style-type:disc}.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-depth1{list-style-type:circle}.public-DraftStyleDefault-orderedListItem{list-style-type:none;position:relative}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listLTR:before{left:-36px;position:absolute;text-align:right;width:30px}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listRTL:before{position:absolute;right:-36px;text-align:left;width:30px}.public-DraftStyleDefault-orderedListItem:before{content:counter(ol0) ". ";counter-increment:ol0}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth1:before{content:counter(ol1) ". ";counter-increment:ol1}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth2:before{content:counter(ol2) ". ";counter-increment:ol2}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth3:before{content:counter(ol3) ". ";counter-increment:ol3}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth4:before{content:counter(ol4) ". ";counter-increment:ol4}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-reset{counter-reset:ol0}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-reset{counter-reset:ol1}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-reset{counter-reset:ol2}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-reset{counter-reset:ol3}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-reset{counter-reset:ol4}#wpseo_meta{box-sizing:border-box}#wpseo_meta *,#wpseo_meta :after,#wpseo_meta :before{box-sizing:inherit}#wp-description-wrap .wp-editor-area{border:0}.term-description-wrap td>textarea#description{min-height:530px}ul.wpseo-metabox-tabs{display:none;margin-top:6px;margin-bottom:0}ul.wpseo-metabox-tabs:after{content:"";display:table;clear:both}.wpseo-metabox-tabs-div{margin:0 5px 5px}.wpseo-metabox-tabs-div ul{list-style:none}#wpseo-meta-section-addons{padding:0 5px 5px}#wpseo-meta-section-addons .wpseo-metabox-tabs-div{margin:0}ul.wpseo-metabox-tabs li.active{background-color:#fdfdfd}.wpseo-meta-section,.wpseo-meta-section-react{display:none;width:100%;min-height:100%;height:auto;max-width:calc(100% - 50px);vertical-align:top}.wpseo-meta-section.active{display:inline-block;box-shadow:0 1px 2px rgba(0,0,0,.2)}.wpseo-meta-section-react.active{display:block;margin-bottom:10px;box-shadow:0 1px 2px rgba(0,0,0,.2)}.wpseo-metabox-content{display:-ms-flexbox;display:flex}.wpseo-metabox-sidebar{width:46px;padding:0;background-color:#fff}.wpseo-metabox-sidebar ul{margin:0 1px 0 0}.wpseo-metabox-sidebar ul li:nth-child(1){z-index:10}.wpseo-metabox-sidebar ul li:nth-child(2){z-index:9}.wpseo-metabox-sidebar ul li:nth-child(3){z-index:8}.wpseo-metabox-sidebar ul li:nth-child(4){z-index:7}.wpseo-metabox-sidebar ul li:nth-child(5){z-index:6}.wpseo-metabox-sidebar ul li:nth-child(6){z-index:5}.wpseo-metabox-sidebar ul li{box-shadow:0 1px 2px rgba(0,0,0,.2);display:block;margin-bottom:0;text-align:center;position:relative}.wpseo-metabox-sidebar ul li a{color:#000;padding:8px;background-color:#f8f8f8}.wpseo-metabox-sidebar ul li .yst-traffic-light{margin:0}.wpseo-metabox-sidebar ul li span.dashicons{width:100%}.wpseo-metabox-sidebar ul li span.wpseo-buy-premium{color:#a4286a}.wpseo-metabox-sidebar ul li span.wpseo-buy-premium:hover{color:#832055}.wpseo-metabox-sidebar ul li.active{z-index:50}.wpseo-metabox-sidebar ul li.active:after{display:block;float:right;position:absolute;top:0;right:-3px;width:3px;height:46px;background-color:#fff;content:" ";z-index:110}.wpseo-metabox-sidebar ul li.active a{color:#0073aa;background-color:#fff}.wpseo-metabox-sidebar ul li.active span.wpseo-buy-premium{color:#a4286a;border-color:#a4286a}.wpseo-metabox-sidebar ul li.active span.wpseo-buy-premium:hover{color:#832055;border-color:#832055}.wpseo-metabox-sidebar a{padding:5px;display:block;text-decoration:none;vertical-align:middle}ul.wpseo-metabox-tabs li{float:left;margin-right:5px;margin-bottom:-1px;padding:0;border:1px solid #dfdfdf;border-bottom:0 none}ul.wpseo-metabox-tabs li .wpseo-keyword{display:inline-block;vertical-align:top;max-width:8em;max-width:8rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.wpseotab{display:none;padding:16px;border:1px solid #ddd;background-color:#fdfdfd}.wpseotab .wpseo-cornerstone-checkbox{margin-right:.5em}.wpseotab.content{padding:20px 15px}.wpseotab.active{display:block}.wpseo-metabox-tabs .wpseo_tablink{display:inline-block;vertical-align:top;padding:5px 12px 6px;text-decoration:none}.wpseo-metabox-tabs .wpseo_content_tab a{padding-right:12px}.wpseo-metabox-tabs .wpseo-score-icon{margin-left:0}#wpseo-meta-section-social .wpseo-metabox-tabs .wpseo_tablink{padding:5px 7px}.wpseo-metabox-tabs .wpseo_tablink .dashicons{width:16px;height:16px;font-size:16px}.wpseo-metabox-sidebar .dashicons{width:30px;height:30px;font-size:30px}.wpseo-metabox-tabs-div div.wpseo-tabs-panel{overflow:auto;padding:.5em .9em;border:1px solid}#wpseo_meta .inside{margin:0}#wpseo_meta .inside::after{content:"";display:table;clear:both}#wpseo_meta .postbox .inside .wpseotab{font-size:13px!important}.wpseotab .select2-container,.wpseotab input,.wpseotab label,.wpseotab p.error-message,.wpseotab textarea,.yoast-metabox__description{max-width:600px}.wpseotab fieldset{padding-top:5px}.wpseotab label{display:block}.wpseotab input[type=radio]+label,.wpseotab input[type=checkbox]+label{display:inline-block;font-weight:400}.wpseotab fieldset,.wpseotab label{margin-top:2em;margin-bottom:.5em}.wpseotab input[type=checkbox],.wpseotab input[type=checkbox]+label{margin-top:2em;margin-bottom:0;font-size:1em}.wpseotab fieldset:first-child,.wpseotab input[type=checkbox]:first-child,.wpseotab input[type=checkbox]:first-child+label,.wpseotab label:first-child{margin-top:10px}.wpseotab input[type=radio]{margin-top:0}.wpseotab input[type=radio]+label{margin:0 1em 0 0}.wpseotab p.error-message,.yoast-metabox__description{margin:.5em 0}.wpseotab select[multiple]{margin-top:0}.wpseotab .wpseo_image_upload_button{margin-left:3px}.good,.warn,.wrong{font-weight:600}.good{color:green}.warn{color:maroon}.wrong{color:#dc3232}#current_seo_title span{padding:2px 5px;background-color:#ffffe0}#focuskwresults ul{margin:0}#focuskwresults li,#focuskwresults p{font-size:13px}#focuskwresults li{margin:0 0 0 20px;list-style-type:disc}.wpseo_hidden{display:none}.wpseo_msg{margin:5px 0 10px;padding:0 5px;border:1px solid #e6db55;background-color:#ffffe0}ul.wpseo-metabox-tabs li.wpseo-tab-add-keyword{border:1px dashed #dfdfdf;border-bottom:none}.wpseo-tab-add-keyword .wpseo-add-keyword.button{height:auto;padding:5px 12px 5px 10px;vertical-align:top;font-size:inherit;line-height:inherit;font-weight:700;box-shadow:none;background:0 0;text-decoration:none}.wpseo-tab-add-keyword .wpseo-add-keyword.button:focus{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wpseo-tab-add-keyword .wpseo-add-keyword.button:active{-ms-transform:none;transform:none}.wpseo-add-keyword-plus{display:inline-block;vertical-align:top;margin:-1px 3px 0 0;font-size:20px}#wpseo-add-keyword-popup-title{margin:1em 0;font-size:1.3em}.snippet-editor__button.snippet-editor__edit-button:focus{border-color:#5b9dd9;outline:0;color:#23282d;background-color:#fafafa;box-shadow:0 0 3px rgba(0,115,170,.8)}.wpseo-admin-page .subsubsub li{display:inline;max-width:none}.yoast-seo-help-container{float:left;width:100%;max-width:none}.yoast-seo-help-container .yoast-help-panel{margin:.5em 0!important}.wpseo_content_wrapper p.search-box{margin:10px 0 5px}.wpseo-metabox-tabs .active a{color:#333}#wpseotab .ui-widget-content .ui-state-hover{border:1px solid #dfdfdf;color:#333;background:#f1f1f1}.yst-traffic-light-container{display:block;height:30px}.yst-traffic-light{width:19px;height:30px;margin:0 0 0 5px}.yst-traffic-light .traffic-light-color{display:none}.yst-traffic-light.bad .traffic-light-red,.yst-traffic-light.good .traffic-light-green,.yst-traffic-light.init .traffic-light-init,.yst-traffic-light.na .traffic-light-empty,.yst-traffic-light.ok .traffic-light-orange{display:inline}#wpseo-score{float:left;margin:0 5px 0 -5px}.yoast-seo-score .yoast-logo.svg{float:left;width:18px;margin-right:7px;height:18px;background:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23999%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E") no-repeat;background-size:18px}.yoast-seo-score .yoast-logo.svg.good{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%237ad03a%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E")}.yoast-seo-score .yoast-logo.svg.ok{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23ee7c1b%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E")}.yoast-seo-score .yoast-logo.svg.bad{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23dc3232%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E")}.yoast-seo-score .yoast-logo.svg.na{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23999%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E")}.yoast-seo-score .yoast-logo.svg.noindex{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%231e8cbe%22%20d%3D%22M403%20218h691l%2D26%2072h%2D665q%2D110%200%2D188%2E5%2079t%2D78%2E5%20189v771q0%2095%2060%2E5%20169%2E5t153%2E5%2093%2E5q23%205%2098%205v72h%2D45q%2D140%200%2D239%2E5%2D100t%2D99%2E5%2D240v%2D771q0%2D140%2099%2E5%2D240t239%2E5%2D100zm851%2D218h247l%2D482%201294q%2D23%2061%2D40%2E5%20103%2E5t%2D45%2098%2D54%2093%2E5%2D64%2E5%2078%2E5%2D79%2E5%2065%2D95%2E5%2041%2D116%2018%2E5v%2D195q163%2D26%20220%2D182%2020%2D52%2020%2D105%200%2D54%2D20%2D106l%2D285%2D733h228l187%20585zm474%20558v1111h%2D795q37%2D55%2045%2D73h678v%2D1038q0%2D85%2D49%2E5%2D155t%2D129%2E5%2D99l25%2D67q101%2034%20163%2E5%20123%2E5t62%2E5%20197%2E5z%22%2F%3E%3C%2Fsvg%3E")}.term-php .wpseo-taxonomy-metabox-postbox>h2{margin:0;padding:8px 12px;border-bottom:1px solid #eee;font-size:14px;line-height:1.4}.wpseo-buy-premium{color:#A4286A;margin-right:5px}.wpseo-metabox-go-to::after{content:" \00BB";position:static;top:auto;right:auto;width:auto;height:auto;border:none}#wpseo-buy-premium-popup-button.button-buy-premium{background:#A4286A;border-color:#A4286A;color:#fff}.wpseo-metabox-buy-premium{position:absolute;right:12px;top:0;padding:8px 0}.wpseo-metabox-buy-premium .dashicons{text-decoration:none}#TB_window #TB_ajaxContent p{padding:5px 0 0;margin:5px 0 0}#TB_window #TB_ajaxContent ul{margin:5px 0 10px}#TB_window #TB_ajaxContent li{list-style:none;margin:5px 0 0}#TB_window #TB_ajaxContent li::before{content:'+';margin:0 10px 0 0;font-weight:700}.yoast-section__heading-icon-list{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23555555%22%20d%3D%22M384%201408q0%2080%2D56%20136t%2D136%2056%2D136%2D56%2D56%2D136%2056%2D136%20136%2D56%20136%2056%2056%20136zm0%2D512q0%2080%2D56%20136t%2D136%2056%2D136%2D56%2D56%2D136%2056%2D136%20136%2D56%20136%2056%2056%20136zm1408%20416v192q0%2013%2D9%2E5%2022%2E5t%2D22%2E5%209%2E5h%2D1216q%2D13%200%2D22%2E5%2D9%2E5t%2D9%2E5%2D22%2E5v%2D192q0%2D13%209%2E5%2D22%2E5t22%2E5%2D9%2E5h1216q13%200%2022%2E5%209%2E5t9%2E5%2022%2E5zm%2D1408%2D928q0%2080%2D56%20136t%2D136%2056%2D136%2D56%2D56%2D136%2056%2D136%20136%2D56%20136%2056%2056%20136zm1408%20416v192q0%2013%2D9%2E5%2022%2E5t%2D22%2E5%209%2E5h%2D1216q%2D13%200%2D22%2E5%2D9%2E5t%2D9%2E5%2D22%2E5v%2D192q0%2D13%209%2E5%2D22%2E5t22%2E5%2D9%2E5h1216q13%200%2022%2E5%209%2E5t9%2E5%2022%2E5zm0%2D512v192q0%2013%2D9%2E5%2022%2E5t%2D22%2E5%209%2E5h%2D1216q%2D13%200%2D22%2E5%2D9%2E5t%2D9%2E5%2D22%2E5v%2D192q0%2D13%209%2E5%2D22%2E5t22%2E5%2D9%2E5h1216q13%200%2022%2E5%209%2E5t9%2E5%2022%2E5z%22%2F%3E%3C%2Fsvg%3E")}.yoast-section__heading-icon-key{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23555555%22%20d%3D%22M832%20512q0%2D80%2D56%2D136t%2D136%2D56%2D136%2056%2D56%20136q0%2042%2019%2083%2D41%2D19%2D83%2D19%2D80%200%2D136%2056t%2D56%20136%2056%20136%20136%2056%20136%2D56%2056%2D136q0%2D42%2D19%2D83%2041%2019%2083%2019%2080%200%20136%2D56t56%2D136zm851%20704q0%2017%2D49%2066t%2D66%2049q%2D9%200%2D28%2E5%2D16t%2D36%2E5%2D33%2D38%2E5%2D40%2D24%2E5%2D26l%2D96%2096%20220%20220q28%2028%2028%2068%200%2042%2D39%2081t%2D81%2039q%2D40%200%2D68%2D28l%2D671%2D671q%2D176%20131%2D365%20131%2D163%200%2D265%2E5%2D102%2E5t%2D102%2E5%2D265%2E5q0%2D160%2095%2D313t248%2D248%20313%2D95q163%200%20265%2E5%20102%2E5t102%2E5%20265%2E5q0%20189%2D131%20365l355%20355%2096%2D96q%2D3%2D3%2D26%2D24%2E5t%2D40%2D38%2E5%2D33%2D36%2E5%2D16%2D28%2E5q0%2D17%2049%2D66t66%2D49q13%200%2023%2010%206%206%2046%2044%2E5t82%2079%2E5%2086%2E5%2086%2073%2078%2028%2E5%2041z%22%2F%3E%3C%2Fsvg%3E")}.yoast-section__heading-icon-edit{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23555555%22%20d%3D%22M491%201536l91%2D91%2D235%2D235%2D91%2091v107h128v128h107zm523%2D928q0%2D22%2D22%2D22%2D10%200%2D17%207l%2D542%20542q%2D7%207%2D7%2017%200%2022%2022%2022%2010%200%2017%2D7l542%2D542q7%2D7%207%2D17zm%2D54%2D192l416%20416%2D832%20832h%2D416v%2D416zm683%2096q0%2053%2D37%2090l%2D166%20166%2D416%2D416%20166%2D165q36%2D38%2090%2D38%2053%200%2091%2038l235%20234q37%2039%2037%2091z%22%20%2F%3E%3C%2Fsvg%3E")}.yoast-section{box-shadow:0 1px 2px rgba(0,0,0,.2);position:relative;background-color:#fff;padding:0 20px 15px}.yoast-section__heading{padding:8px 20px;font-size:1rem;margin:0 -20px 15px;font-family:"Open Sans",sans-serif;font-weight:300;color:#555}.yoast-section__heading-icon{padding-left:44px;background-repeat:no-repeat;background-position:left 20px top .6em;background-size:16px}.yoast-section,.yoast-section *,.yoast-section :after,.yoast-section :before,.yoast-section:after,.yoast-section:before{box-sizing:border-box}.yoast-tooltip.yoast-tooltip-hidden::after,.yoast-tooltip.yoast-tooltip-hidden::before{display:none}.screen-reader-text.wpseo-generic-tab-textual-score,.screen-reader-text.wpseo-keyword-tab-textual-score{display:block}.yoast-notice-go-premium{border-left-color:#a4286a;background:#f1f1f1;margin:0}.editor-styles-wrapper mark.annotation-text-yoast{background-color:#e1bee7}@media screen and (max-width:782px){.wpseo-metabox-buy-premium .wpseo-buy-premium{display:inline-block;width:20px;height:20px;margin-right:5px;padding:0}.yoast-help-panel{max-width:none!important}#wpseo-crawl-issues-table-form .subsubsub{float:none;max-width:calc(100vw - 20px)}#wpseo-crawl-issues-table-form .yoast-help-button{margin-top:3px}.wpseotab select[multiple]{height:auto!important}}@media screen and (max-width:600px){.wpseotab.content{padding:16px 0}}
|
css/dist/{metabox-primary-category-1100-rtl.min.css → metabox-primary-category-1110-rtl.min.css}
RENAMED
File without changes
|
css/dist/{metabox-primary-category-1100.min.css → metabox-primary-category-1110.min.css}
RENAMED
File without changes
|
css/dist/{search-appearance-1100-rtl.min.css → search-appearance-1110-rtl.min.css}
RENAMED
File without changes
|
css/dist/{search-appearance-1100.min.css → search-appearance-1110.min.css}
RENAMED
File without changes
|
css/dist/structured-data-blocks-1100-rtl.min.css
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
.schema-faq-buttons button.components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover,.schema-faq-section-button-container button.components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover,.schema-how-to-buttons button.components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover,.schema-how-to-duration-button.components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover,.schema-how-to-step-button-container button.components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover{box-shadow:none;color:#007cba}.schema-faq-section,.schema-how-to-step{position:relative;padding:8px 32px 8px 4px;margin:4px 0;border:1px solid rgba(145,151,162,.25);list-style-type:none}.faq-section-add-media .dashicon,.how-to-step-add-media .dashicon,.schema-faq-add-question .dashicon,.schema-how-to-add-step .dashicon,.schema-how-to-duration-button .dashicon,legend.schema-how-to-duration-legend{margin-left:4px}.schema-faq-buttons,.schema-how-to-buttons{text-align:center}.schema-faq-section-mover,.schema-how-to-step-mover{display:inline-block}.schema-faq-section-mover .editor-block-mover__control,.schema-how-to-step-mover .editor-block-mover__control{display:-ms-inline-flexbox;display:inline-flex;width:36px;height:36px}.schema-faq-question,.schema-how-to-step-name{font-weight:600}.schema-faq-answer,.schema-faq-question,.schema-how-to-description,.schema-how-to-step-name,.schema-how-to-step-text{line-height:inherit}.schema-faq-section-button-container,.schema-how-to-step-button-container{display:inline-block;text-align:left}.schema-faq-section-controls-container,.schema-how-to-step-controls-container{text-align:left;margin-right:-28px}.schema-faq-section-controls-container .dashicons-arrow-up-alt2,.schema-how-to-step-controls-container .dashicons-arrow-up-alt2{position:relative;top:-1px}.schema-how-to{padding-top:4px}.schema-how-to-step-number{position:absolute;right:4px;width:24px;text-align:left}.schema-how-to-duration-flex-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.schema-how-to-duration-time-input{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-wrap:nowrap;flex-wrap:nowrap}#schema-how-to-duration-days{margin-left:8px}.schema-how-to-duration .schema-how-to-duration-input[type=number]{width:40px;margin:0 2px;padding:6px 4px;text-align:center;-moz-appearance:textfield}.schema-how-to-duration .schema-how-to-duration-input[type=number]::-webkit-inner-spin-button,.schema-how-to-duration .schema-how-to-duration-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.schema-how-to-duration-button.components-icon-button{margin-right:-8px;vertical-align:top}.schema-how-to-description{margin:8px 0}
|
|
css/dist/structured-data-blocks-1100.min.css
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
.schema-faq-buttons button.components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover,.schema-faq-section-button-container button.components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover,.schema-how-to-buttons button.components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover,.schema-how-to-duration-button.components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover,.schema-how-to-step-button-container button.components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover{box-shadow:none;color:#007cba}.schema-faq-section,.schema-how-to-step{position:relative;padding:8px 4px 8px 32px;margin:4px 0;border:1px solid rgba(145,151,162,.25);list-style-type:none}.faq-section-add-media .dashicon,.how-to-step-add-media .dashicon,.schema-faq-add-question .dashicon,.schema-how-to-add-step .dashicon,.schema-how-to-duration-button .dashicon,legend.schema-how-to-duration-legend{margin-right:4px}.schema-faq-buttons,.schema-how-to-buttons{text-align:center}.schema-faq-section-mover,.schema-how-to-step-mover{display:inline-block}.schema-faq-section-mover .editor-block-mover__control,.schema-how-to-step-mover .editor-block-mover__control{display:-ms-inline-flexbox;display:inline-flex;width:36px;height:36px}.schema-faq-question,.schema-how-to-step-name{font-weight:600}.schema-faq-answer,.schema-faq-question,.schema-how-to-description,.schema-how-to-step-name,.schema-how-to-step-text{line-height:inherit}.schema-faq-section-button-container,.schema-how-to-step-button-container{display:inline-block;text-align:right}.schema-faq-section-controls-container,.schema-how-to-step-controls-container{text-align:right;margin-left:-28px}.schema-faq-section-controls-container .dashicons-arrow-up-alt2,.schema-how-to-step-controls-container .dashicons-arrow-up-alt2{position:relative;top:-1px}.schema-how-to{padding-top:4px}.schema-how-to-step-number{position:absolute;left:4px;width:24px;text-align:right}.schema-how-to-duration-flex-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.schema-how-to-duration-time-input{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-wrap:nowrap;flex-wrap:nowrap}#schema-how-to-duration-days{margin-right:8px}.schema-how-to-duration .schema-how-to-duration-input[type=number]{width:40px;margin:0 2px;padding:6px 4px;text-align:center;-moz-appearance:textfield}.schema-how-to-duration .schema-how-to-duration-input[type=number]::-webkit-inner-spin-button,.schema-how-to-duration .schema-how-to-duration-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.schema-how-to-duration-button.components-icon-button{margin-left:-8px;vertical-align:top}.schema-how-to-description{margin:8px 0}
|
|
css/dist/structured-data-blocks-1110-rtl.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.schema-faq-buttons button.components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover,.schema-faq-section-button-container button.components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover,.schema-how-to-buttons button.components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover,.schema-how-to-duration-button.components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover,.schema-how-to-step-button-container button.components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover{box-shadow:none;color:#007cba}.schema-faq-section,.schema-how-to-step{position:relative;padding:8px 32px 8px 4px;margin:4px 0;border:1px solid rgba(145,151,162,.25);list-style-type:none}.faq-section-add-media .dashicon,.how-to-step-add-media .dashicon,.schema-faq-add-question .dashicon,.schema-how-to-add-step .dashicon,.schema-how-to-duration-button .dashicon,legend.schema-how-to-duration-legend{margin-left:4px}.schema-faq-buttons,.schema-how-to-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.schema-faq-section-mover,.schema-how-to-step-mover{display:inline-block}.schema-faq-section-mover .editor-block-mover__control,.schema-how-to-step-mover .editor-block-mover__control{display:-ms-inline-flexbox;display:inline-flex;width:36px;height:36px}.schema-faq-question,.schema-how-to-step-name{font-weight:600}.schema-faq-answer,.schema-faq-question,.schema-how-to-description,.schema-how-to-step-name,.schema-how-to-step-text{line-height:inherit}.schema-faq-section-button-container,.schema-how-to-step-button-container{display:-ms-inline-flexbox;display:inline-flex;text-align:left}.schema-faq-section-controls-container,.schema-how-to-step-controls-container{text-align:left;margin-right:-28px}.schema-faq-section-controls-container .dashicons-arrow-up-alt2,.schema-how-to-step-controls-container .dashicons-arrow-up-alt2{position:relative;top:-1px}.schema-how-to{padding-top:4px}.schema-how-to-step-number{position:absolute;right:4px;width:24px;text-align:left}.schema-how-to-duration-flex-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.schema-how-to-duration-time-input{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-wrap:nowrap;flex-wrap:nowrap}#schema-how-to-duration-days{margin-left:8px}.schema-how-to-duration .schema-how-to-duration-input[type=number]{width:40px;margin:0 2px;padding:6px 4px;text-align:center;-moz-appearance:textfield}.schema-how-to-duration .schema-how-to-duration-input[type=number]::-webkit-inner-spin-button,.schema-how-to-duration .schema-how-to-duration-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.schema-how-to-duration-button.components-icon-button{margin-right:-8px;vertical-align:top}.schema-how-to-description{margin:8px 0}
|
css/dist/structured-data-blocks-1110.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.schema-faq-buttons button.components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover,.schema-faq-section-button-container button.components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover,.schema-how-to-buttons button.components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover,.schema-how-to-duration-button.components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover,.schema-how-to-step-button-container button.components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover{box-shadow:none;color:#007cba}.schema-faq-section,.schema-how-to-step{position:relative;padding:8px 4px 8px 32px;margin:4px 0;border:1px solid rgba(145,151,162,.25);list-style-type:none}.faq-section-add-media .dashicon,.how-to-step-add-media .dashicon,.schema-faq-add-question .dashicon,.schema-how-to-add-step .dashicon,.schema-how-to-duration-button .dashicon,legend.schema-how-to-duration-legend{margin-right:4px}.schema-faq-buttons,.schema-how-to-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.schema-faq-section-mover,.schema-how-to-step-mover{display:inline-block}.schema-faq-section-mover .editor-block-mover__control,.schema-how-to-step-mover .editor-block-mover__control{display:-ms-inline-flexbox;display:inline-flex;width:36px;height:36px}.schema-faq-question,.schema-how-to-step-name{font-weight:600}.schema-faq-answer,.schema-faq-question,.schema-how-to-description,.schema-how-to-step-name,.schema-how-to-step-text{line-height:inherit}.schema-faq-section-button-container,.schema-how-to-step-button-container{display:-ms-inline-flexbox;display:inline-flex;text-align:right}.schema-faq-section-controls-container,.schema-how-to-step-controls-container{text-align:right;margin-left:-28px}.schema-faq-section-controls-container .dashicons-arrow-up-alt2,.schema-how-to-step-controls-container .dashicons-arrow-up-alt2{position:relative;top:-1px}.schema-how-to{padding-top:4px}.schema-how-to-step-number{position:absolute;left:4px;width:24px;text-align:right}.schema-how-to-duration-flex-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.schema-how-to-duration-time-input{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-wrap:nowrap;flex-wrap:nowrap}#schema-how-to-duration-days{margin-right:8px}.schema-how-to-duration .schema-how-to-duration-input[type=number]{width:40px;margin:0 2px;padding:6px 4px;text-align:center;-moz-appearance:textfield}.schema-how-to-duration .schema-how-to-duration-input[type=number]::-webkit-inner-spin-button,.schema-how-to-duration .schema-how-to-duration-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.schema-how-to-duration-button.components-icon-button{margin-left:-8px;vertical-align:top}.schema-how-to-description{margin:8px 0}
|
css/dist/{toggle-switch-1100-rtl.min.css → toggle-switch-1110-rtl.min.css}
RENAMED
File without changes
|
css/dist/{toggle-switch-1100.min.css → toggle-switch-1110.min.css}
RENAMED
File without changes
|
css/dist/{wpseo-dismissible-1100-rtl.min.css → wpseo-dismissible-1110-rtl.min.css}
RENAMED
File without changes
|
css/dist/{wpseo-dismissible-1100.min.css → wpseo-dismissible-1110.min.css}
RENAMED
File without changes
|
css/dist/yoast-components-1100-rtl.min.css
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
.yoast-wizard--step--container:focus,a{outline:0}body{background:#f1f1f1;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;line-height:1.375;margin:0;padding:0}a{color:#0073aa;transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out}a:active,a:hover{color:#00a0d2}a:focus{color:#124964;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);width:1px;height:1px;border:0;padding:0;overflow:hidden;word-wrap:normal!important}.yoast-wizard-body{box-sizing:border-box;width:80%;margin:1rem auto 4rem}@media screen and (max-width:768px){.yoast-wizard-body{width:auto;margin:0}}.yoast-wizard__logo{margin:0 auto;display:block}.yoast-wizard{text-align:right;min-height:20px;background:#fff;padding:2em;box-sizing:border-box;width:100%}@media screen and (max-width:768px){.yoast-wizard{padding:1em 1em 2em}}.yoast-wizard--header{text-align:center}.yoast-wizard--header--page-title{color:#a4286a;margin:0 0 -16px;font-size:1.25em;letter-spacing:.03em;line-height:2.5;font-weight:400;padding:0 8px}@media screen and (max-width:768px){.yoast-wizard--header--page-title{font-size:1.5em;line-height:1.25}}.yoast-wizard--navigation{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.yoast-wizard--button{margin-top:1em;background:0 0;color:#0073aa;border:none;padding:0;font:inherit;border-bottom:1px solid #0073aa;cursor:pointer}.yoast-wizard--step__inactive div{pointer-events:none}@media screen and (max-width:768px){.yoast-wizard--step__active{width:38px;overflow:hidden}.yoast-wizard--step__active div{display:inline-block!important;vertical-align:middle}.yoast-wizard--step__active div>span>span{display:block!important;margin-right:-7px;padding-left:99px!important}.yoast-wizard--step__inactive{display:none!important}}.yoast-wizard--step--container h1{color:#a4286a;margin:0;font-size:2.25em;letter-spacing:.03em;line-height:3.68rem;font-weight:100}@media screen and (max-width:768px){.yoast-wizard--step--container h1{font-size:2em;line-height:1.25}}.yoast-wizard--step--container h2{color:#a4286a;font-size:1.375em;font-weight:100}.yoast-wizard--emphasis,.yoast-wizard-field-description{font-weight:700}.yoast-wizard--stepper{width:100%;margin:auto}.yoast-wizard-overlay{z-index:10;opacity:.2;background-color:#000;position:absolute;top:0;right:0;height:100%;color:#fff;text-align:center;width:100%}.yoast-wizard-overlay-loader{position:relative}.yoast-wizard-container{border:1px solid #ccc;text-align:right;min-height:20px;position:relative;box-shadow:rgba(0,0,0,.15) 0 3px 10px,rgba(0,0,0,.2) 0 3px 10px}.yoast-wizard-container--no-navigation{margin-top:40px}.yoast-wizard-container--no-navigation .yoast-wizard{padding-top:3em}@media screen and (max-width:768px){.yoast-wizard-container{box-shadow:none}}.yoast-wizard-container fieldset{border:0;margin:1em 0}.yoast-wizard-text-input{font-size:14px;padding-bottom:.5em}.yoast-wizard-text-input-label{cursor:pointer;display:block;margin:.5em 0 0;font-weight:700;font-size:14px}.yoast-wizard-text-input [type=text]{width:100%;max-width:450px;box-sizing:border-box}.yoast-video-container-max-width,.yoast-wizard-content-container{max-width:560px}.yoast-wizard input{line-height:140%;font-size:14px;margin:.5em 0;padding:5px}.yoast-wizard label{cursor:pointer}.yoast-wizard input[type=radio]{margin:.3em 0 .3em .7em;vertical-align:middle}.yoast-wizard-input__explanation{color:#555;margin-top:0;font-style:italic}.yoast-wizard-input-radio{font-size:14px}.yoast-wizard-input-radio-option label{padding-top:2px}.yoast-wizard-input-radio-separator{padding:0}.yoast-wizard-input-radio-separator input{position:absolute;right:-9999em;width:1px;height:1px}.yoast-wizard-input-radio-separator input+label{float:right;width:30px!important;margin:0 0 .5em 5px!important;padding:9px 6px;border:1px solid #ccc;font-family:Arial,Helvetica,sans-serif!important;font-size:18px!important;line-height:24px;text-align:center;cursor:pointer}.yoast-wizard-input-radio-separator input:checked+label{border:3px solid #a4286a;background-color:#fff;padding:7px 4px}.yoast-wizard-input-radio-separator input:focus+label{outline:#5b9dd9 solid 2px}.yoast-video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.yoast-video-container iframe{position:absolute;top:0;right:0;width:100%;height:100%}.yoast-wizard-notice__error{margin-bottom:15px;padding:12px;border-right:4px solid #dc3232;background:#fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.yoast-wizard-content-container.yoast-wizard-content-container__is-full-width{max-width:none}@keyframes heartbeat{0%{transform:scale(.7);opacity:.4}80%{opacity:1}100%{transform:scale(.95);opacity:1}}.yoast-loader{animation:heartbeat 1.15s infinite;animation-direction:alternate;animation-timing-function:cubic-bezier(.96,.02,.63,.86)}.yoast-svg-icon-loading-spinner{animation:rotator 1.4s linear infinite}@keyframes rotator{0%{transform:rotate(0)}100%{transform:rotate(-270deg)}}.path{stroke:#64a60a;stroke-dasharray:187;stroke-dashoffset:0;-ms-transform-origin:center;transform-origin:center;animation:dash 1.4s ease-in-out infinite}@keyframes dash{0%{stroke-dashoffset:187}50%{stroke-dashoffset:46.75;transform:rotate(-135deg)}100%{stroke-dashoffset:187;transform:rotate(-450deg)}}#wizard{overflow:hidden}.yoast-wizard{padding-top:2em}.yoast-wizard input[type=text],.yoast-wizard input[type=email]{min-width:250px}.yoast-wizard #gsc_authorization_code,.yoast-wizard input[type=text]+div,.yoast-wizard input[type=email]+div{margin-left:1em}.yoast-wizard-body{max-width:80em}.yoast-wizard-return-link-container{text-align:center}.wp-core-ui .yoast-wizard-return-link.button{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;height:36px;border-color:transparent;margin:0 0 1em;padding:0 10px 0 16px;border-radius:2px;background:#fff;color:#646d78;text-align:center;text-transform:uppercase;box-shadow:rgba(0,0,0,.12) 0 1px 6px,rgba(0,0,0,.12) 0 1px 4px;transition:all 450ms cubic-bezier(.23,1,.32,1) 0s}.wp-core-ui .yoast-wizard-return-link.button:hover{background:#ebebeb;border-color:transparent}.wp-core-ui .yoast-wizard-return-link.button:focus{outline:0;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .yoast-wizard-return-link.button:active{background:#ebebeb;box-shadow:rgba(0,0,0,.16) 0 3px 10px,rgba(0,0,0,.23) 0 3px 10px;-ms-transform:none;transform:none}.wp-core-ui .yoast-wizard-return-link.button .dashicons{margin-left:8px}.yoast-wizard-mailchimp-message-error{color:#dc3232}.yoast-wizard-mailchimp-message-success{color:#008a00}.yoast-wizard-input{padding-bottom:.5em}.yoast-wizard-input__select{margin:1em 0;font-size:14px}.yoast-wizard--columns>div,.yoast-wizard-image-upload-container-buttons__remove{margin-right:1em}.yoast-wizard-image-upload-container__image{max-width:151px}.yoast-wizard-image-upload-container-buttons{margin-top:1em}.yoast-wizard-image-upload-container-description{display:block}.yoast-wizard--navigation{margin-top:2em;padding-top:1em;border-top:1px solid #a4286a}.yoast-wizard--rows{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.yoast-wizard--columns{display:-ms-flexbox;display:flex}.yoast-wizard--columns .yoast-wizard-text-input-field{max-width:100%}.yoast-wizard--columns__even>div{-ms-flex-preferred-size:50%;flex-basis:50%}.yoast-wizard--columns>div:first-child{margin-right:0}.yoast-wizard--columns .yoast-wizard--heading{margin:0;color:#a4286a}.yoast-wizard--columns>.yoast-wizard--column__push_right{-ms-flex-order:2;order:2}.yoast-wizard--columns>.yoast-wizard--column__push_left{-ms-flex-order:1;order:1;margin-right:0;margin-left:1em}.yoast-wizard--choice>.yoast-wizard--rows{height:100%}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.yoast-wizard--choice>.yoast-wizard--rows{width:100%}}.yoast-wizard--choice div{-ms-flex-item-align:start;align-self:flex-start}.yoast-wizard--choice p{margin-top:.3em;height:100%}.yoast-wizard--box{border:1px solid #a4286a;padding:1em}.yoast-wizard--box>div:first-child{-ms-flex-preferred-size:100px;flex-basis:100px}.yoast-wizard-newsletter--header svg{fill:#a4286a;top:4px;position:relative;margin-left:6px}.yoast-wizard-newsletter--decoration{width:100%;max-width:490px}.yoast-wizard-newsletter--decoration img{width:490px;max-width:100%;margin-top:-3em}.yoast-wizard--video-frame iframe{border:none}@media screen and (max-width:80em) and (-ms-high-contrast:active){.yoast-wizard--columns>div{width:95.5%}}@media screen and (max-width:80em){.yoast-wizard--columns{display:block}.yoast-wizard--columns>div{margin-right:0}.yoast-wizard--columns>.yoast-wizard--column__push_left{margin-left:0;margin-top:2em}.yoast-wizard--box{display:-ms-flexbox;display:flex;margin-top:1em}.yoast-wizard--box:first-child{margin-top:0}.yoast-wizard--box>div{margin-right:1em}.yoast-wizard .hide-on-tablet{display:none}}.yoast-wizard--suggestion{border-top:1px solid #a4286a;padding-top:2em;margin-bottom:2em}.yoast-wizard--suggestion:first-child{border-top:none;padding-top:0}@media screen and (max-width:50rem){.yoast-wizard .hide-on-mobile{display:none}.yoast-wizard--box{display:block}.yoast-wizard--box>div{margin-right:0}.yoast-wizard--video-frame{position:relative;padding-bottom:56.25%;height:0}.yoast-wizard--video-frame iframe{position:absolute;top:0;right:0;width:100%;height:100%}}.ie9 .yoast-wizard--stepper{display:none}
|
|
css/dist/yoast-components-1100.min.css
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
.yoast-wizard--step--container:focus,a{outline:0}body{background:#f1f1f1;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;line-height:1.375;margin:0;padding:0}a{color:#0073aa;transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out}a:active,a:hover{color:#00a0d2}a:focus{color:#124964;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);width:1px;height:1px;border:0;padding:0;overflow:hidden;word-wrap:normal!important}.yoast-wizard-body{box-sizing:border-box;width:80%;margin:1rem auto 4rem}@media screen and (max-width:768px){.yoast-wizard-body{width:auto;margin:0}}.yoast-wizard__logo{margin:0 auto;display:block}.yoast-wizard{text-align:left;min-height:20px;background:#fff;padding:2em;box-sizing:border-box;width:100%}@media screen and (max-width:768px){.yoast-wizard{padding:1em 1em 2em}}.yoast-wizard--header{text-align:center}.yoast-wizard--header--page-title{color:#a4286a;margin:0 0 -16px;font-size:1.25em;letter-spacing:.03em;line-height:2.5;font-weight:400;padding:0 8px}@media screen and (max-width:768px){.yoast-wizard--header--page-title{font-size:1.5em;line-height:1.25}}.yoast-wizard--navigation{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.yoast-wizard--button{margin-top:1em;background:0 0;color:#0073aa;border:none;padding:0;font:inherit;border-bottom:1px solid #0073aa;cursor:pointer}.yoast-wizard--step__inactive div{pointer-events:none}@media screen and (max-width:768px){.yoast-wizard--step__active{width:38px;overflow:hidden}.yoast-wizard--step__active div{display:inline-block!important;vertical-align:middle}.yoast-wizard--step__active div>span>span{display:block!important;margin-left:-7px;padding-right:99px!important}.yoast-wizard--step__inactive{display:none!important}}.yoast-wizard--step--container h1{color:#a4286a;margin:0;font-size:2.25em;letter-spacing:.03em;line-height:3.68rem;font-weight:100}@media screen and (max-width:768px){.yoast-wizard--step--container h1{font-size:2em;line-height:1.25}}.yoast-wizard--step--container h2{color:#a4286a;font-size:1.375em;font-weight:100}.yoast-wizard--emphasis,.yoast-wizard-field-description{font-weight:700}.yoast-wizard--stepper{width:100%;margin:auto}.yoast-wizard-overlay{z-index:10;opacity:.2;background-color:#000;position:absolute;top:0;left:0;height:100%;color:#fff;text-align:center;width:100%}.yoast-wizard-overlay-loader{position:relative}.yoast-wizard-container{border:1px solid #ccc;text-align:left;min-height:20px;position:relative;box-shadow:rgba(0,0,0,.15) 0 3px 10px,rgba(0,0,0,.2) 0 3px 10px}.yoast-wizard-container--no-navigation{margin-top:40px}.yoast-wizard-container--no-navigation .yoast-wizard{padding-top:3em}@media screen and (max-width:768px){.yoast-wizard-container{box-shadow:none}}.yoast-wizard-container fieldset{border:0;margin:1em 0}.yoast-wizard-text-input{font-size:14px;padding-bottom:.5em}.yoast-wizard-text-input-label{cursor:pointer;display:block;margin:.5em 0 0;font-weight:700;font-size:14px}.yoast-wizard-text-input [type=text]{width:100%;max-width:450px;box-sizing:border-box}.yoast-video-container-max-width,.yoast-wizard-content-container{max-width:560px}.yoast-wizard input{line-height:140%;font-size:14px;margin:.5em 0;padding:5px}.yoast-wizard label{cursor:pointer}.yoast-wizard input[type=radio]{margin:.3em .7em .3em 0;vertical-align:middle}.yoast-wizard-input__explanation{color:#555;margin-top:0;font-style:italic}.yoast-wizard-input-radio{font-size:14px}.yoast-wizard-input-radio-option label{padding-top:2px}.yoast-wizard-input-radio-separator{padding:0}.yoast-wizard-input-radio-separator input{position:absolute;left:-9999em;width:1px;height:1px}.yoast-wizard-input-radio-separator input+label{float:left;width:30px!important;margin:0 5px .5em 0!important;padding:9px 6px;border:1px solid #ccc;font-family:Arial,Helvetica,sans-serif!important;font-size:18px!important;line-height:24px;text-align:center;cursor:pointer}.yoast-wizard-input-radio-separator input:checked+label{border:3px solid #a4286a;background-color:#fff;padding:7px 4px}.yoast-wizard-input-radio-separator input:focus+label{outline:#5b9dd9 solid 2px}.yoast-video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.yoast-video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}.yoast-wizard-notice__error{margin-bottom:15px;padding:12px;border-left:4px solid #dc3232;background:#fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.yoast-wizard-content-container.yoast-wizard-content-container__is-full-width{max-width:none}@keyframes heartbeat{0%{transform:scale(.7);opacity:.4}80%{opacity:1}100%{transform:scale(.95);opacity:1}}.yoast-loader{animation:heartbeat 1.15s infinite;animation-direction:alternate;animation-timing-function:cubic-bezier(.96,.02,.63,.86)}.yoast-svg-icon-loading-spinner{animation:rotator 1.4s linear infinite}@keyframes rotator{0%{transform:rotate(0)}100%{transform:rotate(270deg)}}.path{stroke:#64a60a;stroke-dasharray:187;stroke-dashoffset:0;-ms-transform-origin:center;transform-origin:center;animation:dash 1.4s ease-in-out infinite}@keyframes dash{0%{stroke-dashoffset:187}50%{stroke-dashoffset:46.75;transform:rotate(135deg)}100%{stroke-dashoffset:187;transform:rotate(450deg)}}#wizard{overflow:hidden}.yoast-wizard{padding-top:2em}.yoast-wizard input[type=text],.yoast-wizard input[type=email]{min-width:250px}.yoast-wizard #gsc_authorization_code,.yoast-wizard input[type=text]+div,.yoast-wizard input[type=email]+div{margin-right:1em}.yoast-wizard-body{max-width:80em}.yoast-wizard-return-link-container{text-align:center}.wp-core-ui .yoast-wizard-return-link.button{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;height:36px;border-color:transparent;margin:0 0 1em;padding:0 16px 0 10px;border-radius:2px;background:#fff;color:#646d78;text-align:center;text-transform:uppercase;box-shadow:rgba(0,0,0,.12) 0 1px 6px,rgba(0,0,0,.12) 0 1px 4px;transition:all 450ms cubic-bezier(.23,1,.32,1) 0s}.wp-core-ui .yoast-wizard-return-link.button:hover{background:#ebebeb;border-color:transparent}.wp-core-ui .yoast-wizard-return-link.button:focus{outline:0;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .yoast-wizard-return-link.button:active{background:#ebebeb;box-shadow:rgba(0,0,0,.16) 0 3px 10px,rgba(0,0,0,.23) 0 3px 10px;-ms-transform:none;transform:none}.wp-core-ui .yoast-wizard-return-link.button .dashicons{margin-right:8px}.yoast-wizard-mailchimp-message-error{color:#dc3232}.yoast-wizard-mailchimp-message-success{color:#008a00}.yoast-wizard-input{padding-bottom:.5em}.yoast-wizard-input__select{margin:1em 0;font-size:14px}.yoast-wizard--columns>div,.yoast-wizard-image-upload-container-buttons__remove{margin-left:1em}.yoast-wizard-image-upload-container__image{max-width:151px}.yoast-wizard-image-upload-container-buttons{margin-top:1em}.yoast-wizard-image-upload-container-description{display:block}.yoast-wizard--navigation{margin-top:2em;padding-top:1em;border-top:1px solid #a4286a}.yoast-wizard--rows{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.yoast-wizard--columns{display:-ms-flexbox;display:flex}.yoast-wizard--columns .yoast-wizard-text-input-field{max-width:100%}.yoast-wizard--columns__even>div{-ms-flex-preferred-size:50%;flex-basis:50%}.yoast-wizard--columns>div:first-child{margin-left:0}.yoast-wizard--columns .yoast-wizard--heading{margin:0;color:#a4286a}.yoast-wizard--columns>.yoast-wizard--column__push_right{-ms-flex-order:2;order:2}.yoast-wizard--columns>.yoast-wizard--column__push_left{-ms-flex-order:1;order:1;margin-left:0;margin-right:1em}.yoast-wizard--choice>.yoast-wizard--rows{height:100%}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.yoast-wizard--choice>.yoast-wizard--rows{width:100%}}.yoast-wizard--choice div{-ms-flex-item-align:start;align-self:flex-start}.yoast-wizard--choice p{margin-top:.3em;height:100%}.yoast-wizard--box{border:1px solid #a4286a;padding:1em}.yoast-wizard--box>div:first-child{-ms-flex-preferred-size:100px;flex-basis:100px}.yoast-wizard-newsletter--header svg{fill:#a4286a;top:4px;position:relative;margin-right:6px}.yoast-wizard-newsletter--decoration{width:100%;max-width:490px}.yoast-wizard-newsletter--decoration img{width:490px;max-width:100%;margin-top:-3em}.yoast-wizard--video-frame iframe{border:none}@media screen and (max-width:80em) and (-ms-high-contrast:active){.yoast-wizard--columns>div{width:95.5%}}@media screen and (max-width:80em){.yoast-wizard--columns{display:block}.yoast-wizard--columns>div{margin-left:0}.yoast-wizard--columns>.yoast-wizard--column__push_left{margin-right:0;margin-top:2em}.yoast-wizard--box{display:-ms-flexbox;display:flex;margin-top:1em}.yoast-wizard--box:first-child{margin-top:0}.yoast-wizard--box>div{margin-left:1em}.yoast-wizard .hide-on-tablet{display:none}}.yoast-wizard--suggestion{border-top:1px solid #a4286a;padding-top:2em;margin-bottom:2em}.yoast-wizard--suggestion:first-child{border-top:none;padding-top:0}@media screen and (max-width:50rem){.yoast-wizard .hide-on-mobile{display:none}.yoast-wizard--box{display:block}.yoast-wizard--box>div{margin-left:0}.yoast-wizard--video-frame{position:relative;padding-bottom:56.25%;height:0}.yoast-wizard--video-frame iframe{position:absolute;top:0;left:0;width:100%;height:100%}}.ie9 .yoast-wizard--stepper{display:none}
|
|
css/dist/yoast-components-1110-rtl.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.yoast-wizard--step--container:focus,a{outline:0}.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);width:1px;height:1px;border:0;padding:0;overflow:hidden;word-wrap:normal!important}body{background:#f1f1f1;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;line-height:1.375;margin:0;padding:0}a{color:#0073aa;transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out}a:active,a:hover{color:#00a0d2}a:focus{color:#124964;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.yoast-wizard-body{box-sizing:border-box;width:80%;margin:1rem auto 4rem}@media screen and (max-width:768px){.yoast-wizard-body{width:auto;margin:0}}.yoast-wizard__logo{margin:0 auto;display:block}.yoast-wizard{text-align:right;min-height:20px;background:#fff;padding:2em;box-sizing:border-box;width:100%}@media screen and (max-width:768px){.yoast-wizard{padding:1em 1em 2em}}.yoast-wizard--header{text-align:center}.yoast-wizard--header--page-title{color:#a4286a;margin:0 0 -16px;font-size:1.25em;letter-spacing:.03em;line-height:2.5;font-weight:400;padding:0 8px}@media screen and (max-width:768px){.yoast-wizard--header--page-title{font-size:1.5em;line-height:1.25}}.yoast-wizard--navigation{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.yoast-wizard--button{margin-top:1em;background:0 0;color:#0073aa;border:none;padding:0;font:inherit;border-bottom:1px solid #0073aa;cursor:pointer}.yoast-wizard--step__inactive div{pointer-events:none}@media screen and (max-width:768px){.yoast-wizard--step__active{width:38px;overflow:hidden}.yoast-wizard--step__active div{display:inline-block!important;vertical-align:middle}.yoast-wizard--step__active div>span>span{display:block!important;margin-right:-7px;padding-left:99px!important}.yoast-wizard--step__inactive{display:none!important}}.yoast-wizard--step--container h1{color:#a4286a;margin:0;font-size:2.25em;letter-spacing:.03em;line-height:3.68rem;font-weight:100}@media screen and (max-width:768px){.yoast-wizard--step--container h1{font-size:2em;line-height:1.25}}.yoast-wizard--step--container h2{color:#a4286a;font-size:1.375em;font-weight:100}.yoast-wizard--emphasis,.yoast-wizard-field-description{font-weight:700}.yoast-wizard--stepper{width:100%;margin:auto}.yoast-wizard-overlay{z-index:10;opacity:.2;background-color:#000;position:absolute;top:0;right:0;height:100%;color:#fff;text-align:center;width:100%}.yoast-wizard-overlay-loader{position:relative}.yoast-wizard-container{border:1px solid #ccc;text-align:right;min-height:20px;position:relative;box-shadow:rgba(0,0,0,.15) 0 3px 10px,rgba(0,0,0,.2) 0 3px 10px}.yoast-wizard-container--no-navigation{margin-top:40px}.yoast-wizard-container--no-navigation .yoast-wizard{padding-top:3em}@media screen and (max-width:768px){.yoast-wizard-container{box-shadow:none}}.yoast-wizard-container fieldset{border:0;margin:1em 0}.yoast-wizard-text-input{font-size:14px;padding-bottom:.5em}.yoast-wizard-text-input-label{cursor:pointer;display:block;margin:.5em 0 0;font-weight:700;font-size:14px}.yoast-wizard-text-input [type=text]{width:100%;max-width:450px;box-sizing:border-box}.yoast-video-container-max-width,.yoast-wizard-content-container{max-width:560px}.yoast-wizard input{line-height:140%;font-size:14px;margin:.5em 0;padding:5px}.yoast-wizard label{cursor:pointer}.yoast-wizard input[type=radio]{margin:.3em 0 .3em .7em;vertical-align:middle}.yoast-wizard-input__explanation{color:#555;margin-top:0;font-style:italic}.yoast-wizard-input-radio{font-size:14px}.yoast-wizard-input-radio-option label{padding-top:2px}.yoast-wizard-input-radio-separator{padding:0}.yoast-wizard-input-radio-separator input{position:absolute;right:-9999em;width:1px;height:1px}.yoast-wizard-input-radio-separator input+label{float:right;width:30px!important;margin:0 0 .5em 5px!important;padding:9px 6px;border:1px solid #ccc;font-family:Arial,Helvetica,sans-serif!important;font-size:18px!important;line-height:24px;text-align:center;cursor:pointer}.yoast-wizard-input-radio-separator input:checked+label{border:3px solid #a4286a;background-color:#fff;padding:7px 4px}.yoast-wizard-input-radio-separator input:focus+label{outline:#5b9dd9 solid 2px}.yoast-video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.yoast-video-container iframe{position:absolute;top:0;right:0;width:100%;height:100%}.yoast-wizard-notice__error{margin-bottom:15px;padding:12px;border-right:4px solid #dc3232;background:#fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.yoast-wizard-content-container.yoast-wizard-content-container__is-full-width{max-width:none}#wizard{overflow:hidden}.yoast-wizard{padding-top:2em}.yoast-wizard input[type=text],.yoast-wizard input[type=email]{min-width:250px}.yoast-wizard #gsc_authorization_code,.yoast-wizard input[type=text]+div,.yoast-wizard input[type=email]+div{margin-left:1em}.yoast-wizard-body{max-width:80em}.yoast-wizard-return-link-container{text-align:center}.wp-core-ui .yoast-wizard-return-link.button{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;height:36px;border-color:transparent;margin:0 0 1em;padding:0 10px 0 16px;border-radius:2px;background:#fff;color:#646d78;text-align:center;text-transform:uppercase;box-shadow:rgba(0,0,0,.12) 0 1px 6px,rgba(0,0,0,.12) 0 1px 4px;transition:all 450ms cubic-bezier(.23,1,.32,1) 0s}.wp-core-ui .yoast-wizard-return-link.button:hover{background:#ebebeb;border-color:transparent}.wp-core-ui .yoast-wizard-return-link.button:focus{outline:0;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .yoast-wizard-return-link.button:active{background:#ebebeb;box-shadow:rgba(0,0,0,.16) 0 3px 10px,rgba(0,0,0,.23) 0 3px 10px;-ms-transform:none;transform:none}.wp-core-ui .yoast-wizard-return-link.button .dashicons{margin-left:8px}.yoast-wizard-mailchimp-message-error{color:#dc3232}.yoast-wizard-mailchimp-message-success{color:#008a00}.yoast-wizard-input{padding-bottom:.5em}.yoast-wizard-input__select{margin:1em 0;font-size:14px}.yoast-wizard--columns>div,.yoast-wizard-image-upload-container-buttons__remove{margin-right:1em}.yoast-wizard-image-upload-container__image{max-width:151px}.yoast-wizard-image-upload-container-buttons{margin-top:1em}.yoast-wizard-image-upload-container-description{display:block}.yoast-wizard--navigation{margin-top:2em;padding-top:1em;border-top:1px solid #a4286a}.yoast-wizard--rows{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.yoast-wizard--columns{display:-ms-flexbox;display:flex}.yoast-wizard--columns .yoast-wizard-text-input-field{max-width:100%}.yoast-wizard--columns__even>div{-ms-flex-preferred-size:50%;flex-basis:50%}.yoast-wizard--columns>div:first-child{margin-right:0}.yoast-wizard--columns .yoast-wizard--heading{margin:0;color:#a4286a}.yoast-wizard--columns>.yoast-wizard--column__push_right{-ms-flex-order:2;order:2}.yoast-wizard--columns>.yoast-wizard--column__push_left{-ms-flex-order:1;order:1;margin-right:0;margin-left:1em}.yoast-wizard--choice>.yoast-wizard--rows{height:100%}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.yoast-wizard--choice>.yoast-wizard--rows{width:100%}}.yoast-wizard--choice div{-ms-flex-item-align:start;align-self:flex-start}.yoast-wizard--choice p{margin-top:.3em;height:100%}.yoast-wizard--box{border:1px solid #a4286a;padding:1em}.yoast-wizard--box>div:first-child{-ms-flex-preferred-size:100px;flex-basis:100px}.yoast-wizard-newsletter--header svg{fill:#a4286a;top:4px;position:relative;margin-left:6px}.yoast-wizard-newsletter--decoration{width:100%;max-width:490px}.yoast-wizard-newsletter--decoration img{width:490px;max-width:100%;margin-top:-3em}.yoast-wizard--video-frame iframe{border:none}@media screen and (max-width:80em) and (-ms-high-contrast:active){.yoast-wizard--columns>div{width:95.5%}}@media screen and (max-width:80em){.yoast-wizard--columns{display:block}.yoast-wizard--columns>div{margin-right:0}.yoast-wizard--columns>.yoast-wizard--column__push_left{margin-left:0;margin-top:2em}.yoast-wizard--box{display:-ms-flexbox;display:flex;margin-top:1em}.yoast-wizard--box:first-child{margin-top:0}.yoast-wizard--box>div{margin-right:1em}.yoast-wizard .hide-on-tablet{display:none}}.yoast-wizard--suggestion{border-top:1px solid #a4286a;padding-top:2em;margin-bottom:2em}.yoast-wizard--suggestion:first-child{border-top:none;padding-top:0}@media screen and (max-width:50rem){.yoast-wizard .hide-on-mobile{display:none}.yoast-wizard--box{display:block}.yoast-wizard--box>div{margin-right:0}.yoast-wizard--video-frame{position:relative;padding-bottom:56.25%;height:0}.yoast-wizard--video-frame iframe{position:absolute;top:0;right:0;width:100%;height:100%}}.ie9 .yoast-wizard--stepper{display:none}
|
css/dist/yoast-components-1110.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.yoast-wizard--step--container:focus,a{outline:0}.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);width:1px;height:1px;border:0;padding:0;overflow:hidden;word-wrap:normal!important}body{background:#f1f1f1;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;line-height:1.375;margin:0;padding:0}a{color:#0073aa;transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out}a:active,a:hover{color:#00a0d2}a:focus{color:#124964;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.yoast-wizard-body{box-sizing:border-box;width:80%;margin:1rem auto 4rem}@media screen and (max-width:768px){.yoast-wizard-body{width:auto;margin:0}}.yoast-wizard__logo{margin:0 auto;display:block}.yoast-wizard{text-align:left;min-height:20px;background:#fff;padding:2em;box-sizing:border-box;width:100%}@media screen and (max-width:768px){.yoast-wizard{padding:1em 1em 2em}}.yoast-wizard--header{text-align:center}.yoast-wizard--header--page-title{color:#a4286a;margin:0 0 -16px;font-size:1.25em;letter-spacing:.03em;line-height:2.5;font-weight:400;padding:0 8px}@media screen and (max-width:768px){.yoast-wizard--header--page-title{font-size:1.5em;line-height:1.25}}.yoast-wizard--navigation{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.yoast-wizard--button{margin-top:1em;background:0 0;color:#0073aa;border:none;padding:0;font:inherit;border-bottom:1px solid #0073aa;cursor:pointer}.yoast-wizard--step__inactive div{pointer-events:none}@media screen and (max-width:768px){.yoast-wizard--step__active{width:38px;overflow:hidden}.yoast-wizard--step__active div{display:inline-block!important;vertical-align:middle}.yoast-wizard--step__active div>span>span{display:block!important;margin-left:-7px;padding-right:99px!important}.yoast-wizard--step__inactive{display:none!important}}.yoast-wizard--step--container h1{color:#a4286a;margin:0;font-size:2.25em;letter-spacing:.03em;line-height:3.68rem;font-weight:100}@media screen and (max-width:768px){.yoast-wizard--step--container h1{font-size:2em;line-height:1.25}}.yoast-wizard--step--container h2{color:#a4286a;font-size:1.375em;font-weight:100}.yoast-wizard--emphasis,.yoast-wizard-field-description{font-weight:700}.yoast-wizard--stepper{width:100%;margin:auto}.yoast-wizard-overlay{z-index:10;opacity:.2;background-color:#000;position:absolute;top:0;left:0;height:100%;color:#fff;text-align:center;width:100%}.yoast-wizard-overlay-loader{position:relative}.yoast-wizard-container{border:1px solid #ccc;text-align:left;min-height:20px;position:relative;box-shadow:rgba(0,0,0,.15) 0 3px 10px,rgba(0,0,0,.2) 0 3px 10px}.yoast-wizard-container--no-navigation{margin-top:40px}.yoast-wizard-container--no-navigation .yoast-wizard{padding-top:3em}@media screen and (max-width:768px){.yoast-wizard-container{box-shadow:none}}.yoast-wizard-container fieldset{border:0;margin:1em 0}.yoast-wizard-text-input{font-size:14px;padding-bottom:.5em}.yoast-wizard-text-input-label{cursor:pointer;display:block;margin:.5em 0 0;font-weight:700;font-size:14px}.yoast-wizard-text-input [type=text]{width:100%;max-width:450px;box-sizing:border-box}.yoast-video-container-max-width,.yoast-wizard-content-container{max-width:560px}.yoast-wizard input{line-height:140%;font-size:14px;margin:.5em 0;padding:5px}.yoast-wizard label{cursor:pointer}.yoast-wizard input[type=radio]{margin:.3em .7em .3em 0;vertical-align:middle}.yoast-wizard-input__explanation{color:#555;margin-top:0;font-style:italic}.yoast-wizard-input-radio{font-size:14px}.yoast-wizard-input-radio-option label{padding-top:2px}.yoast-wizard-input-radio-separator{padding:0}.yoast-wizard-input-radio-separator input{position:absolute;left:-9999em;width:1px;height:1px}.yoast-wizard-input-radio-separator input+label{float:left;width:30px!important;margin:0 5px .5em 0!important;padding:9px 6px;border:1px solid #ccc;font-family:Arial,Helvetica,sans-serif!important;font-size:18px!important;line-height:24px;text-align:center;cursor:pointer}.yoast-wizard-input-radio-separator input:checked+label{border:3px solid #a4286a;background-color:#fff;padding:7px 4px}.yoast-wizard-input-radio-separator input:focus+label{outline:#5b9dd9 solid 2px}.yoast-video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.yoast-video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}.yoast-wizard-notice__error{margin-bottom:15px;padding:12px;border-left:4px solid #dc3232;background:#fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.yoast-wizard-content-container.yoast-wizard-content-container__is-full-width{max-width:none}#wizard{overflow:hidden}.yoast-wizard{padding-top:2em}.yoast-wizard input[type=text],.yoast-wizard input[type=email]{min-width:250px}.yoast-wizard #gsc_authorization_code,.yoast-wizard input[type=text]+div,.yoast-wizard input[type=email]+div{margin-right:1em}.yoast-wizard-body{max-width:80em}.yoast-wizard-return-link-container{text-align:center}.wp-core-ui .yoast-wizard-return-link.button{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;height:36px;border-color:transparent;margin:0 0 1em;padding:0 16px 0 10px;border-radius:2px;background:#fff;color:#646d78;text-align:center;text-transform:uppercase;box-shadow:rgba(0,0,0,.12) 0 1px 6px,rgba(0,0,0,.12) 0 1px 4px;transition:all 450ms cubic-bezier(.23,1,.32,1) 0s}.wp-core-ui .yoast-wizard-return-link.button:hover{background:#ebebeb;border-color:transparent}.wp-core-ui .yoast-wizard-return-link.button:focus{outline:0;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .yoast-wizard-return-link.button:active{background:#ebebeb;box-shadow:rgba(0,0,0,.16) 0 3px 10px,rgba(0,0,0,.23) 0 3px 10px;-ms-transform:none;transform:none}.wp-core-ui .yoast-wizard-return-link.button .dashicons{margin-right:8px}.yoast-wizard-mailchimp-message-error{color:#dc3232}.yoast-wizard-mailchimp-message-success{color:#008a00}.yoast-wizard-input{padding-bottom:.5em}.yoast-wizard-input__select{margin:1em 0;font-size:14px}.yoast-wizard--columns>div,.yoast-wizard-image-upload-container-buttons__remove{margin-left:1em}.yoast-wizard-image-upload-container__image{max-width:151px}.yoast-wizard-image-upload-container-buttons{margin-top:1em}.yoast-wizard-image-upload-container-description{display:block}.yoast-wizard--navigation{margin-top:2em;padding-top:1em;border-top:1px solid #a4286a}.yoast-wizard--rows{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.yoast-wizard--columns{display:-ms-flexbox;display:flex}.yoast-wizard--columns .yoast-wizard-text-input-field{max-width:100%}.yoast-wizard--columns__even>div{-ms-flex-preferred-size:50%;flex-basis:50%}.yoast-wizard--columns>div:first-child{margin-left:0}.yoast-wizard--columns .yoast-wizard--heading{margin:0;color:#a4286a}.yoast-wizard--columns>.yoast-wizard--column__push_right{-ms-flex-order:2;order:2}.yoast-wizard--columns>.yoast-wizard--column__push_left{-ms-flex-order:1;order:1;margin-left:0;margin-right:1em}.yoast-wizard--choice>.yoast-wizard--rows{height:100%}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.yoast-wizard--choice>.yoast-wizard--rows{width:100%}}.yoast-wizard--choice div{-ms-flex-item-align:start;align-self:flex-start}.yoast-wizard--choice p{margin-top:.3em;height:100%}.yoast-wizard--box{border:1px solid #a4286a;padding:1em}.yoast-wizard--box>div:first-child{-ms-flex-preferred-size:100px;flex-basis:100px}.yoast-wizard-newsletter--header svg{fill:#a4286a;top:4px;position:relative;margin-right:6px}.yoast-wizard-newsletter--decoration{width:100%;max-width:490px}.yoast-wizard-newsletter--decoration img{width:490px;max-width:100%;margin-top:-3em}.yoast-wizard--video-frame iframe{border:none}@media screen and (max-width:80em) and (-ms-high-contrast:active){.yoast-wizard--columns>div{width:95.5%}}@media screen and (max-width:80em){.yoast-wizard--columns{display:block}.yoast-wizard--columns>div{margin-left:0}.yoast-wizard--columns>.yoast-wizard--column__push_left{margin-right:0;margin-top:2em}.yoast-wizard--box{display:-ms-flexbox;display:flex;margin-top:1em}.yoast-wizard--box:first-child{margin-top:0}.yoast-wizard--box>div{margin-left:1em}.yoast-wizard .hide-on-tablet{display:none}}.yoast-wizard--suggestion{border-top:1px solid #a4286a;padding-top:2em;margin-bottom:2em}.yoast-wizard--suggestion:first-child{border-top:none;padding-top:0}@media screen and (max-width:50rem){.yoast-wizard .hide-on-mobile{display:none}.yoast-wizard--box{display:block}.yoast-wizard--box>div{margin-left:0}.yoast-wizard--video-frame{position:relative;padding-bottom:56.25%;height:0}.yoast-wizard--video-frame iframe{position:absolute;top:0;left:0;width:100%;height:100%}}.ie9 .yoast-wizard--stepper{display:none}
|
css/dist/{yoast-extensions-1100-rtl.min.css → yoast-extensions-1110-rtl.min.css}
RENAMED
File without changes
|
css/dist/{yoast-extensions-1100.min.css → yoast-extensions-1110.min.css}
RENAMED
File without changes
|
css/dist/{yst_plugin_tools-1100-rtl.min.css → yst_plugin_tools-1110-rtl.min.css}
RENAMED
File without changes
|
css/dist/{yst_plugin_tools-1100.min.css → yst_plugin_tools-1110.min.css}
RENAMED
File without changes
|
css/dist/{yst_seo_score-1100-rtl.min.css → yst_seo_score-1110-rtl.min.css}
RENAMED
File without changes
|
css/dist/{yst_seo_score-1100.min.css → yst_seo_score-1110.min.css}
RENAMED
File without changes
|
deprecated/admin/config-ui/fields/class-field-profile-url-googleplus.php
CHANGED
@@ -8,7 +8,7 @@
|
|
8 |
_deprecated_file( __FILE__, 'WPSEO 10.1' );
|
9 |
|
10 |
/**
|
11 |
-
* Class WPSEO_Config_Field_Profile_URL_GooglePlus
|
12 |
*
|
13 |
* @deprecated 10.1
|
14 |
*/
|
8 |
_deprecated_file( __FILE__, 'WPSEO 10.1' );
|
9 |
|
10 |
/**
|
11 |
+
* Class WPSEO_Config_Field_Profile_URL_GooglePlus.
|
12 |
*
|
13 |
* @deprecated 10.1
|
14 |
*/
|
deprecated/class-wpseo-option-permalinks.php
CHANGED
@@ -33,7 +33,7 @@ class WPSEO_Option_Permalinks {
|
|
33 |
}
|
34 |
|
35 |
/**
|
36 |
-
* Add the actions and filters for the option
|
37 |
*
|
38 |
* @deprecated 7.0
|
39 |
*
|
@@ -44,7 +44,7 @@ class WPSEO_Option_Permalinks {
|
|
44 |
}
|
45 |
|
46 |
/**
|
47 |
-
* Get the singleton instance of this class
|
48 |
*
|
49 |
* @deprecated 7.0
|
50 |
*
|
@@ -55,7 +55,7 @@ class WPSEO_Option_Permalinks {
|
|
55 |
}
|
56 |
|
57 |
/**
|
58 |
-
* Validate the option
|
59 |
*
|
60 |
* @deprecated 7.0
|
61 |
*
|
33 |
}
|
34 |
|
35 |
/**
|
36 |
+
* Add the actions and filters for the option.
|
37 |
*
|
38 |
* @deprecated 7.0
|
39 |
*
|
44 |
}
|
45 |
|
46 |
/**
|
47 |
+
* Get the singleton instance of this class.
|
48 |
*
|
49 |
* @deprecated 7.0
|
50 |
*
|
55 |
}
|
56 |
|
57 |
/**
|
58 |
+
* Validate the option.
|
59 |
*
|
60 |
* @deprecated 7.0
|
61 |
*
|
frontend/class-breadcrumbs.php
CHANGED
@@ -251,7 +251,7 @@ class WPSEO_Breadcrumbs {
|
|
251 |
*
|
252 |
* @param object $term Term to get the parents for.
|
253 |
*
|
254 |
-
* @return
|
255 |
*/
|
256 |
private function get_term_parents( $term ) {
|
257 |
$tax = $term->taxonomy;
|
@@ -784,11 +784,11 @@ class WPSEO_Breadcrumbs {
|
|
784 |
}
|
785 |
|
786 |
/**
|
787 |
-
* Retrieve link url and text based on post id
|
788 |
*
|
789 |
* @param int $id Post ID.
|
790 |
*
|
791 |
-
* @return array Array of link text and url
|
792 |
*/
|
793 |
private function get_link_info_for_id( $id ) {
|
794 |
$link = array();
|
251 |
*
|
252 |
* @param object $term Term to get the parents for.
|
253 |
*
|
254 |
+
* @return array
|
255 |
*/
|
256 |
private function get_term_parents( $term ) {
|
257 |
$tax = $term->taxonomy;
|
784 |
}
|
785 |
|
786 |
/**
|
787 |
+
* Retrieve link url and text based on post id.
|
788 |
*
|
789 |
* @param int $id Post ID.
|
790 |
*
|
791 |
+
* @return array Array of link text and url.
|
792 |
*/
|
793 |
private function get_link_info_for_id( $id ) {
|
794 |
$link = array();
|
frontend/class-frontend.php
CHANGED
@@ -791,7 +791,7 @@ class WPSEO_Frontend {
|
|
791 |
* @param array $robots Robots data array.
|
792 |
* @param int $post_id The post ID for which to determine the $robots values, defaults to current post.
|
793 |
*
|
794 |
-
* @return
|
795 |
*/
|
796 |
public function robots_for_single_post( $robots, $post_id = 0 ) {
|
797 |
$noindex = $this->get_seo_meta_value( 'meta-robots-noindex', $post_id );
|
791 |
* @param array $robots Robots data array.
|
792 |
* @param int $post_id The post ID for which to determine the $robots values, defaults to current post.
|
793 |
*
|
794 |
+
* @return array
|
795 |
*/
|
796 |
public function robots_for_single_post( $robots, $post_id = 0 ) {
|
797 |
$noindex = $this->get_seo_meta_value( 'meta-robots-noindex', $post_id );
|
frontend/class-opengraph-image.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_OpenGraph_Image
|
10 |
*/
|
11 |
class WPSEO_OpenGraph_Image {
|
12 |
|
@@ -440,7 +440,8 @@ class WPSEO_OpenGraph_Image {
|
|
440 |
*
|
441 |
* @param string $url The given URL.
|
442 |
*
|
443 |
-
* @return null|number Returns the found attachment ID if it exists. Otherwise -1.
|
|
|
444 |
*/
|
445 |
public function add_image_by_url( $url ) {
|
446 |
if ( empty( $url ) ) {
|
@@ -475,7 +476,7 @@ class WPSEO_OpenGraph_Image {
|
|
475 |
*
|
476 |
* Use the `wpseo_image_sizes` filter if you want to use our logic. That filter
|
477 |
* can be used to add an image size that needs to be taken into consideration
|
478 |
-
* within our own logic
|
479 |
*
|
480 |
* @api string $size Size string.
|
481 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_OpenGraph_Image.
|
10 |
*/
|
11 |
class WPSEO_OpenGraph_Image {
|
12 |
|
440 |
*
|
441 |
* @param string $url The given URL.
|
442 |
*
|
443 |
+
* @return null|number Returns the found attachment ID if it exists. Otherwise -1.
|
444 |
+
* If the URL is empty we return null.
|
445 |
*/
|
446 |
public function add_image_by_url( $url ) {
|
447 |
if ( empty( $url ) ) {
|
476 |
*
|
477 |
* Use the `wpseo_image_sizes` filter if you want to use our logic. That filter
|
478 |
* can be used to add an image size that needs to be taken into consideration
|
479 |
+
* within our own logic.
|
480 |
*
|
481 |
* @api string $size Size string.
|
482 |
*/
|
frontend/class-opengraph-oembed.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_OpenGraph_OEmbed
|
10 |
*/
|
11 |
class WPSEO_OpenGraph_OEmbed implements WPSEO_WordPress_Integration {
|
12 |
|
@@ -29,7 +29,7 @@ class WPSEO_OpenGraph_OEmbed implements WPSEO_WordPress_Integration {
|
|
29 |
* @param array $data The oEmbed data.
|
30 |
* @param WP_Post $post The current Post object.
|
31 |
*
|
32 |
-
* @
|
33 |
*
|
34 |
* @return array $filter_data - An array of oEmbed data with modified values where appropriate.
|
35 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_OpenGraph_OEmbed.
|
10 |
*/
|
11 |
class WPSEO_OpenGraph_OEmbed implements WPSEO_WordPress_Integration {
|
12 |
|
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 |
*/
|
frontend/class-opengraph.php
CHANGED
@@ -295,9 +295,9 @@ class WPSEO_OpenGraph {
|
|
295 |
/**
|
296 |
* Output the locale, doing some conversions to make sure the proper Facebook locale is outputted.
|
297 |
*
|
298 |
-
* Last update/compare with FB list done on 2015-03-16 by Rarst
|
299 |
*
|
300 |
-
* @
|
301 |
*
|
302 |
* @link https://developers.facebook.com/docs/reference/opengraph/object-type/article/
|
303 |
*
|
295 |
/**
|
296 |
* Output the locale, doing some conversions to make sure the proper Facebook locale is outputted.
|
297 |
*
|
298 |
+
* Last update/compare with FB list done on 2015-03-16 by Rarst.
|
299 |
*
|
300 |
+
* @link http://www.facebook.com/translations/FacebookLocales.xml for the list of supported locales.
|
301 |
*
|
302 |
* @link https://developers.facebook.com/docs/reference/opengraph/object-type/article/
|
303 |
*
|
frontend/class-remove-reply-to-com.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Remove_Reply_To_Com
|
10 |
*
|
11 |
* @since 7.0
|
12 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Remove_Reply_To_Com.
|
10 |
*
|
11 |
* @since 7.0
|
12 |
*/
|
frontend/class-twitter.php
CHANGED
@@ -39,7 +39,7 @@ class WPSEO_Twitter {
|
|
39 |
protected $frontend_page_type;
|
40 |
|
41 |
/**
|
42 |
-
* Will hold the Twitter card type being created
|
43 |
*
|
44 |
* @var string
|
45 |
*/
|
@@ -60,7 +60,7 @@ class WPSEO_Twitter {
|
|
60 |
);
|
61 |
|
62 |
/**
|
63 |
-
* Class constructor
|
64 |
*/
|
65 |
public function __construct() {
|
66 |
// Class for determine the current page type.
|
@@ -75,7 +75,7 @@ class WPSEO_Twitter {
|
|
75 |
public function twitter() {
|
76 |
|
77 |
/**
|
78 |
-
* Filter: 'wpseo_output_twitter_card' - Allow disabling of the Twitter card
|
79 |
*
|
80 |
* @api bool $enabled Enabled/disabled flag
|
81 |
*/
|
@@ -119,7 +119,7 @@ class WPSEO_Twitter {
|
|
119 |
}
|
120 |
|
121 |
/**
|
122 |
-
* Determines the twitter card type for the current page
|
123 |
*/
|
124 |
private function determine_card_type() {
|
125 |
$this->type = WPSEO_Options::get( 'twitter_card_type' );
|
@@ -135,15 +135,15 @@ class WPSEO_Twitter {
|
|
135 |
}
|
136 |
|
137 |
/**
|
138 |
-
* Filter: 'wpseo_twitter_card_type' - Allow changing the Twitter Card type as output in the Twitter card by Yoast SEO
|
139 |
*
|
140 |
-
* @api string $unsigned The type string
|
141 |
*/
|
142 |
$this->type = apply_filters( 'wpseo_twitter_card_type', $this->type );
|
143 |
}
|
144 |
|
145 |
/**
|
146 |
-
* Determines whether the card type is of a type currently allowed by Twitter
|
147 |
*
|
148 |
* @link https://dev.twitter.com/cards/types
|
149 |
*/
|
@@ -154,7 +154,7 @@ class WPSEO_Twitter {
|
|
154 |
}
|
155 |
|
156 |
/**
|
157 |
-
* Output the metatag
|
158 |
*
|
159 |
* @param string $name Tag name string.
|
160 |
* @param string $value Tag value string.
|
@@ -168,9 +168,9 @@ class WPSEO_Twitter {
|
|
168 |
}
|
169 |
|
170 |
/**
|
171 |
-
* Filter: 'wpseo_twitter_metatag_key' - Make the Twitter metatag key filterable
|
172 |
*
|
173 |
-
* @api string $key The Twitter metatag key
|
174 |
*/
|
175 |
$metatag_key = apply_filters( 'wpseo_twitter_metatag_key', 'name' );
|
176 |
|
@@ -197,9 +197,9 @@ class WPSEO_Twitter {
|
|
197 |
$meta_desc = wpseo_replace_vars( $meta_desc, get_queried_object() );
|
198 |
|
199 |
/**
|
200 |
-
* Filter: 'wpseo_twitter_description' - Allow changing the Twitter description as output in the Twitter card by Yoast SEO
|
201 |
*
|
202 |
-
* @api string $twitter The description string
|
203 |
*/
|
204 |
$meta_desc = apply_filters( 'wpseo_twitter_description', $meta_desc );
|
205 |
if ( is_string( $meta_desc ) && $meta_desc !== '' ) {
|
@@ -208,7 +208,7 @@ class WPSEO_Twitter {
|
|
208 |
}
|
209 |
|
210 |
/**
|
211 |
-
* Returns the description for a singular page
|
212 |
*
|
213 |
* @param int $post_id Post ID.
|
214 |
*
|
@@ -230,7 +230,7 @@ class WPSEO_Twitter {
|
|
230 |
}
|
231 |
|
232 |
/**
|
233 |
-
* Getting the description for the taxonomy
|
234 |
*
|
235 |
* @return bool|mixed|string
|
236 |
*/
|
@@ -249,7 +249,7 @@ class WPSEO_Twitter {
|
|
249 |
}
|
250 |
|
251 |
/**
|
252 |
-
* Returns a fallback description
|
253 |
*
|
254 |
* @return string
|
255 |
*/
|
@@ -276,9 +276,9 @@ class WPSEO_Twitter {
|
|
276 |
$title = wpseo_replace_vars( $title, get_queried_object() );
|
277 |
|
278 |
/**
|
279 |
-
* Filter: 'wpseo_twitter_title' - Allow changing the Twitter title as output in the Twitter card by Yoast SEO
|
280 |
*
|
281 |
-
* @api string $twitter The title string
|
282 |
*/
|
283 |
$title = apply_filters( 'wpseo_twitter_title', $title );
|
284 |
if ( is_string( $title ) && $title !== '' ) {
|
@@ -287,7 +287,7 @@ class WPSEO_Twitter {
|
|
287 |
}
|
288 |
|
289 |
/**
|
290 |
-
* Returns the Twitter title for a single post
|
291 |
*
|
292 |
* @param int $post_id Post ID.
|
293 |
*
|
@@ -303,7 +303,7 @@ class WPSEO_Twitter {
|
|
303 |
}
|
304 |
|
305 |
/**
|
306 |
-
* Getting the title for the taxonomy
|
307 |
*
|
308 |
* @return bool|mixed|string
|
309 |
*/
|
@@ -318,7 +318,7 @@ class WPSEO_Twitter {
|
|
318 |
}
|
319 |
|
320 |
/**
|
321 |
-
* Returns the Twitter title for any page
|
322 |
*
|
323 |
* @return string
|
324 |
*/
|
@@ -346,9 +346,9 @@ class WPSEO_Twitter {
|
|
346 |
}
|
347 |
|
348 |
/**
|
349 |
-
* Filter: 'wpseo_twitter_site' - Allow changing the Twitter site account as output in the Twitter card by Yoast SEO
|
350 |
*
|
351 |
-
* @api string $unsigned Twitter site account string
|
352 |
*/
|
353 |
$site = apply_filters( 'wpseo_twitter_site', $twitter );
|
354 |
$site = $this->get_twitter_id( $site );
|
@@ -377,7 +377,7 @@ class WPSEO_Twitter {
|
|
377 |
}
|
378 |
|
379 |
/**
|
380 |
-
* Displays the image for Twitter
|
381 |
*
|
382 |
* Only used when OpenGraph is inactive or Summary Large Image card is chosen.
|
383 |
*/
|
@@ -472,7 +472,7 @@ class WPSEO_Twitter {
|
|
472 |
}
|
473 |
|
474 |
/**
|
475 |
-
* Show the front page image
|
476 |
*
|
477 |
* @return bool
|
478 |
*/
|
@@ -513,7 +513,7 @@ class WPSEO_Twitter {
|
|
513 |
}
|
514 |
|
515 |
/**
|
516 |
-
* Outputs a Twitter image tag for a given image
|
517 |
*
|
518 |
* @param string $img The source URL to the image.
|
519 |
*
|
@@ -522,9 +522,9 @@ class WPSEO_Twitter {
|
|
522 |
protected function image_output( $img ) {
|
523 |
|
524 |
/**
|
525 |
-
* Filter: 'wpseo_twitter_image' - Allow changing the Twitter Card image
|
526 |
*
|
527 |
-
* @api string $img Image URL string
|
528 |
*/
|
529 |
$img = apply_filters( 'wpseo_twitter_image', $img );
|
530 |
|
@@ -550,7 +550,7 @@ class WPSEO_Twitter {
|
|
550 |
}
|
551 |
|
552 |
/**
|
553 |
-
* Retrieve images from the post meta values
|
554 |
*
|
555 |
* @param int $post_id Optional post ID to use.
|
556 |
*
|
@@ -570,7 +570,7 @@ class WPSEO_Twitter {
|
|
570 |
}
|
571 |
|
572 |
/**
|
573 |
-
* Retrieve an attachment page's attachment
|
574 |
*
|
575 |
* @param string $attachment_id The ID of the attachment for which to retrieve the image.
|
576 |
*
|
@@ -592,7 +592,7 @@ class WPSEO_Twitter {
|
|
592 |
}
|
593 |
|
594 |
/**
|
595 |
-
* Retrieve the featured image
|
596 |
*
|
597 |
* @param int $post_id Optional post ID to use.
|
598 |
*
|
@@ -606,9 +606,9 @@ class WPSEO_Twitter {
|
|
606 |
|
607 |
if ( function_exists( 'has_post_thumbnail' ) && has_post_thumbnail( $post_id ) ) {
|
608 |
/**
|
609 |
-
* Filter: 'wpseo_twitter_image_size' - Allow changing the Twitter Card image size
|
610 |
*
|
611 |
-
* @api string $featured_img Image size string
|
612 |
*/
|
613 |
$featured_img = wp_get_attachment_image_src( get_post_thumbnail_id( $post_id ), apply_filters( 'wpseo_twitter_image_size', 'full' ) );
|
614 |
|
@@ -658,9 +658,9 @@ class WPSEO_Twitter {
|
|
658 |
$twitter = ltrim( trim( get_the_author_meta( 'twitter', $post->post_author ) ), '@' );
|
659 |
}
|
660 |
/**
|
661 |
-
* Filter: 'wpseo_twitter_creator_account' - Allow changing the Twitter account as output in the Twitter card by Yoast SEO
|
662 |
*
|
663 |
-
* @api string $twitter The twitter account name string
|
664 |
*/
|
665 |
$twitter = apply_filters( 'wpseo_twitter_creator_account', $twitter );
|
666 |
$twitter = $this->get_twitter_id( $twitter );
|
@@ -674,7 +674,7 @@ class WPSEO_Twitter {
|
|
674 |
}
|
675 |
|
676 |
/**
|
677 |
-
* Get the singleton instance of this class
|
678 |
*
|
679 |
* @return object
|
680 |
*/
|
39 |
protected $frontend_page_type;
|
40 |
|
41 |
/**
|
42 |
+
* Will hold the Twitter card type being created.
|
43 |
*
|
44 |
* @var string
|
45 |
*/
|
60 |
);
|
61 |
|
62 |
/**
|
63 |
+
* Class constructor.
|
64 |
*/
|
65 |
public function __construct() {
|
66 |
// Class for determine the current page type.
|
75 |
public function twitter() {
|
76 |
|
77 |
/**
|
78 |
+
* Filter: 'wpseo_output_twitter_card' - Allow disabling of the Twitter card.
|
79 |
*
|
80 |
* @api bool $enabled Enabled/disabled flag
|
81 |
*/
|
119 |
}
|
120 |
|
121 |
/**
|
122 |
+
* Determines the twitter card type for the current page.
|
123 |
*/
|
124 |
private function determine_card_type() {
|
125 |
$this->type = WPSEO_Options::get( 'twitter_card_type' );
|
135 |
}
|
136 |
|
137 |
/**
|
138 |
+
* Filter: 'wpseo_twitter_card_type' - Allow changing the Twitter Card type as output in the Twitter card by Yoast SEO.
|
139 |
*
|
140 |
+
* @api string $unsigned The type string.
|
141 |
*/
|
142 |
$this->type = apply_filters( 'wpseo_twitter_card_type', $this->type );
|
143 |
}
|
144 |
|
145 |
/**
|
146 |
+
* Determines whether the card type is of a type currently allowed by Twitter.
|
147 |
*
|
148 |
* @link https://dev.twitter.com/cards/types
|
149 |
*/
|
154 |
}
|
155 |
|
156 |
/**
|
157 |
+
* Output the metatag.
|
158 |
*
|
159 |
* @param string $name Tag name string.
|
160 |
* @param string $value Tag value string.
|
168 |
}
|
169 |
|
170 |
/**
|
171 |
+
* Filter: 'wpseo_twitter_metatag_key' - Make the Twitter metatag key filterable.
|
172 |
*
|
173 |
+
* @api string $key The Twitter metatag key.
|
174 |
*/
|
175 |
$metatag_key = apply_filters( 'wpseo_twitter_metatag_key', 'name' );
|
176 |
|
197 |
$meta_desc = wpseo_replace_vars( $meta_desc, get_queried_object() );
|
198 |
|
199 |
/**
|
200 |
+
* Filter: 'wpseo_twitter_description' - Allow changing the Twitter description as output in the Twitter card by Yoast SEO.
|
201 |
*
|
202 |
+
* @api string $twitter The description string.
|
203 |
*/
|
204 |
$meta_desc = apply_filters( 'wpseo_twitter_description', $meta_desc );
|
205 |
if ( is_string( $meta_desc ) && $meta_desc !== '' ) {
|
208 |
}
|
209 |
|
210 |
/**
|
211 |
+
* Returns the description for a singular page.
|
212 |
*
|
213 |
* @param int $post_id Post ID.
|
214 |
*
|
230 |
}
|
231 |
|
232 |
/**
|
233 |
+
* Getting the description for the taxonomy.
|
234 |
*
|
235 |
* @return bool|mixed|string
|
236 |
*/
|
249 |
}
|
250 |
|
251 |
/**
|
252 |
+
* Returns a fallback description.
|
253 |
*
|
254 |
* @return string
|
255 |
*/
|
276 |
$title = wpseo_replace_vars( $title, get_queried_object() );
|
277 |
|
278 |
/**
|
279 |
+
* Filter: 'wpseo_twitter_title' - Allow changing the Twitter title as output in the Twitter card by Yoast SEO.
|
280 |
*
|
281 |
+
* @api string $twitter The title string.
|
282 |
*/
|
283 |
$title = apply_filters( 'wpseo_twitter_title', $title );
|
284 |
if ( is_string( $title ) && $title !== '' ) {
|
287 |
}
|
288 |
|
289 |
/**
|
290 |
+
* Returns the Twitter title for a single post.
|
291 |
*
|
292 |
* @param int $post_id Post ID.
|
293 |
*
|
303 |
}
|
304 |
|
305 |
/**
|
306 |
+
* Getting the title for the taxonomy.
|
307 |
*
|
308 |
* @return bool|mixed|string
|
309 |
*/
|
318 |
}
|
319 |
|
320 |
/**
|
321 |
+
* Returns the Twitter title for any page.
|
322 |
*
|
323 |
* @return string
|
324 |
*/
|
346 |
}
|
347 |
|
348 |
/**
|
349 |
+
* Filter: 'wpseo_twitter_site' - Allow changing the Twitter site account as output in the Twitter card by Yoast SEO.
|
350 |
*
|
351 |
+
* @api string $unsigned Twitter site account string.
|
352 |
*/
|
353 |
$site = apply_filters( 'wpseo_twitter_site', $twitter );
|
354 |
$site = $this->get_twitter_id( $site );
|
377 |
}
|
378 |
|
379 |
/**
|
380 |
+
* Displays the image for Twitter.
|
381 |
*
|
382 |
* Only used when OpenGraph is inactive or Summary Large Image card is chosen.
|
383 |
*/
|
472 |
}
|
473 |
|
474 |
/**
|
475 |
+
* Show the front page image.
|
476 |
*
|
477 |
* @return bool
|
478 |
*/
|
513 |
}
|
514 |
|
515 |
/**
|
516 |
+
* Outputs a Twitter image tag for a given image.
|
517 |
*
|
518 |
* @param string $img The source URL to the image.
|
519 |
*
|
522 |
protected function image_output( $img ) {
|
523 |
|
524 |
/**
|
525 |
+
* Filter: 'wpseo_twitter_image' - Allow changing the Twitter Card image.
|
526 |
*
|
527 |
+
* @api string $img Image URL string.
|
528 |
*/
|
529 |
$img = apply_filters( 'wpseo_twitter_image', $img );
|
530 |
|
550 |
}
|
551 |
|
552 |
/**
|
553 |
+
* Retrieve images from the post meta values.
|
554 |
*
|
555 |
* @param int $post_id Optional post ID to use.
|
556 |
*
|
570 |
}
|
571 |
|
572 |
/**
|
573 |
+
* Retrieve an attachment page's attachment.
|
574 |
*
|
575 |
* @param string $attachment_id The ID of the attachment for which to retrieve the image.
|
576 |
*
|
592 |
}
|
593 |
|
594 |
/**
|
595 |
+
* Retrieve the featured image.
|
596 |
*
|
597 |
* @param int $post_id Optional post ID to use.
|
598 |
*
|
606 |
|
607 |
if ( function_exists( 'has_post_thumbnail' ) && has_post_thumbnail( $post_id ) ) {
|
608 |
/**
|
609 |
+
* Filter: 'wpseo_twitter_image_size' - Allow changing the Twitter Card image size.
|
610 |
*
|
611 |
+
* @api string $featured_img Image size string.
|
612 |
*/
|
613 |
$featured_img = wp_get_attachment_image_src( get_post_thumbnail_id( $post_id ), apply_filters( 'wpseo_twitter_image_size', 'full' ) );
|
614 |
|
658 |
$twitter = ltrim( trim( get_the_author_meta( 'twitter', $post->post_author ) ), '@' );
|
659 |
}
|
660 |
/**
|
661 |
+
* Filter: 'wpseo_twitter_creator_account' - Allow changing the Twitter account as output in the Twitter card by Yoast SEO.
|
662 |
*
|
663 |
+
* @api string $twitter The twitter account name string.
|
664 |
*/
|
665 |
$twitter = apply_filters( 'wpseo_twitter_creator_account', $twitter );
|
666 |
$twitter = $this->get_twitter_id( $twitter );
|
674 |
}
|
675 |
|
676 |
/**
|
677 |
+
* Get the singleton instance of this class.
|
678 |
*
|
679 |
* @return object
|
680 |
*/
|
frontend/class-woocommerce-shop-page.php
CHANGED
@@ -25,7 +25,7 @@ class WPSEO_WooCommerce_Shop_Page implements WPSEO_WordPress_Integration {
|
|
25 |
protected static $is_shop_page;
|
26 |
|
27 |
/**
|
28 |
-
* Registers the hooks
|
29 |
*
|
30 |
* @return void
|
31 |
*/
|
25 |
protected static $is_shop_page;
|
26 |
|
27 |
/**
|
28 |
+
* Registers the hooks.
|
29 |
*
|
30 |
* @return void
|
31 |
*/
|
frontend/schema/class-schema-context.php
CHANGED
@@ -163,11 +163,11 @@ class WPSEO_Schema_Context {
|
|
163 |
$this->site_represents = WPSEO_Options::get( 'company_or_person', '' );
|
164 |
$this->site_url = trailingslashit( WPSEO_Utils::home_url() );
|
165 |
|
166 |
-
if ( $this->site_represents
|
167 |
$this->company_name = WPSEO_Options::get( 'company_name' );
|
168 |
}
|
169 |
|
170 |
-
if ( $this->site_represents
|
171 |
$this->site_user_id = WPSEO_Options::get( 'company_or_person_user_id', false );
|
172 |
}
|
173 |
|
163 |
$this->site_represents = WPSEO_Options::get( 'company_or_person', '' );
|
164 |
$this->site_url = trailingslashit( WPSEO_Utils::home_url() );
|
165 |
|
166 |
+
if ( $this->site_represents === 'company' ) {
|
167 |
$this->company_name = WPSEO_Options::get( 'company_name' );
|
168 |
}
|
169 |
|
170 |
+
if ( $this->site_represents === 'person' ) {
|
171 |
$this->site_user_id = WPSEO_Options::get( 'company_or_person_user_id', false );
|
172 |
}
|
173 |
|
frontend/schema/class-schema-image.php
ADDED
@@ -0,0 +1,152 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
+
* The `@id` to use for the returned image.
|
20 |
+
*
|
21 |
+
* @var string
|
22 |
+
*/
|
23 |
+
private $schema_id;
|
24 |
+
|
25 |
+
/**
|
26 |
+
* The ImageObject Schema array.
|
27 |
+
*
|
28 |
+
* @var array
|
29 |
+
*/
|
30 |
+
private $data;
|
31 |
+
|
32 |
+
/**
|
33 |
+
* The ID of the attachment used to generate the object.
|
34 |
+
*
|
35 |
+
* @var int
|
36 |
+
*/
|
37 |
+
private $attachment_id;
|
38 |
+
|
39 |
+
/**
|
40 |
+
* WPSEO_Schema_Breadcrumb constructor.
|
41 |
+
*
|
42 |
+
* @param string $schema_id The string to use in an image's `@id`.
|
43 |
+
*/
|
44 |
+
public function __construct( $schema_id ) {
|
45 |
+
$this->schema_id = $schema_id;
|
46 |
+
$this->generate_object();
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Find an image based on its URL and generate a Schema object for it.
|
51 |
+
*
|
52 |
+
* @param string $url The image URL to base our object on.
|
53 |
+
* @param string $caption An optional caption.
|
54 |
+
*
|
55 |
+
* @return array Schema ImageObject array.
|
56 |
+
*/
|
57 |
+
public function generate_from_url( $url, $caption = '' ) {
|
58 |
+
$attachment_id = WPSEO_Image_Utils::get_attachment_by_url( $url );
|
59 |
+
if ( $attachment_id > 0 ) {
|
60 |
+
return $this->generate_from_attachment_id( $attachment_id, $caption );
|
61 |
+
}
|
62 |
+
|
63 |
+
return $this->simple_image_object( $url, $caption );
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Retrieve data about an image from the database and use it to generate a Schema object.
|
68 |
+
*
|
69 |
+
* @param int $attachment_id The attachment to retrieve data from.
|
70 |
+
* @param string $caption The caption string, if there is one.
|
71 |
+
*
|
72 |
+
* @return array Schema ImageObject array.
|
73 |
+
*/
|
74 |
+
public function generate_from_attachment_id( $attachment_id, $caption = '' ) {
|
75 |
+
$this->attachment_id = $attachment_id;
|
76 |
+
$this->data['url'] = wp_get_attachment_image_url( $this->attachment_id, 'full' );
|
77 |
+
$this->add_image_size();
|
78 |
+
$this->add_caption( $caption );
|
79 |
+
|
80 |
+
return $this->data;
|
81 |
+
}
|
82 |
+
|
83 |
+
/**
|
84 |
+
* If we can't find $url in our database, we output a simple ImageObject.
|
85 |
+
*
|
86 |
+
* @param string $url The image URL.
|
87 |
+
* @param string $caption A caption, if set.
|
88 |
+
*
|
89 |
+
* @return array $data Schema ImageObject array.
|
90 |
+
*/
|
91 |
+
public function simple_image_object( $url, $caption = '' ) {
|
92 |
+
$this->data['url'] = $url;
|
93 |
+
|
94 |
+
if ( ! empty( $caption ) ) {
|
95 |
+
$this->data['caption'] = $caption;
|
96 |
+
}
|
97 |
+
|
98 |
+
return $this->data;
|
99 |
+
}
|
100 |
+
|
101 |
+
/**
|
102 |
+
* Retrieves an image's caption if set, or uses the alt tag if that's set.
|
103 |
+
*
|
104 |
+
* @param string $caption The caption string, if there is one.
|
105 |
+
*
|
106 |
+
* @return void
|
107 |
+
*/
|
108 |
+
private function add_caption( $caption = '' ) {
|
109 |
+
if ( ! empty( $caption ) ) {
|
110 |
+
$this->data['caption'] = $caption;
|
111 |
+
|
112 |
+
return;
|
113 |
+
}
|
114 |
+
|
115 |
+
$caption = wp_get_attachment_caption();
|
116 |
+
if ( ! empty( $caption ) ) {
|
117 |
+
$this->data['caption'] = $caption;
|
118 |
+
|
119 |
+
return;
|
120 |
+
}
|
121 |
+
|
122 |
+
$caption = get_post_meta( $this->attachment_id, '_wp_attachment_image_alt', true );
|
123 |
+
if ( ! empty( $caption ) ) {
|
124 |
+
$this->data['caption'] = $caption;
|
125 |
+
}
|
126 |
+
|
127 |
+
return;
|
128 |
+
}
|
129 |
+
|
130 |
+
/**
|
131 |
+
* Generates our bare bone ImageObject.
|
132 |
+
*
|
133 |
+
* @return void
|
134 |
+
*/
|
135 |
+
private function generate_object() {
|
136 |
+
$this->data = array(
|
137 |
+
'@type' => 'ImageObject',
|
138 |
+
'@id' => $this->schema_id,
|
139 |
+
);
|
140 |
+
}
|
141 |
+
|
142 |
+
/**
|
143 |
+
* Adds image's width and height.
|
144 |
+
*
|
145 |
+
* @return void
|
146 |
+
*/
|
147 |
+
private function add_image_size() {
|
148 |
+
$image_meta = wp_get_attachment_metadata( $this->attachment_id );
|
149 |
+
$this->data['width'] = $image_meta['width'];
|
150 |
+
$this->data['height'] = $image_meta['height'];
|
151 |
+
}
|
152 |
+
}
|
frontend/schema/class-schema-organization.php
CHANGED
@@ -67,12 +67,8 @@ class WPSEO_Schema_Organization implements WPSEO_Graph_Piece {
|
|
67 |
return $data;
|
68 |
}
|
69 |
$id = $this->context->site_url . WPSEO_Schema_IDs::ORGANIZATION_LOGO_HASH;
|
70 |
-
$
|
71 |
-
|
72 |
-
'@id' => $id,
|
73 |
-
'url' => $logo,
|
74 |
-
'caption' => $this->context->company_name,
|
75 |
-
);
|
76 |
$data['image'] = array( '@id' => $id );
|
77 |
|
78 |
return $data;
|
67 |
return $data;
|
68 |
}
|
69 |
$id = $this->context->site_url . WPSEO_Schema_IDs::ORGANIZATION_LOGO_HASH;
|
70 |
+
$schema_image = new WPSEO_Schema_Image( $id );
|
71 |
+
$data['logo'] = $schema_image->generate_from_url( $logo, $this->context->company_name );
|
|
|
|
|
|
|
|
|
72 |
$data['image'] = array( '@id' => $id );
|
73 |
|
74 |
return $data;
|
frontend/schema/class-schema-person.php
CHANGED
@@ -24,7 +24,7 @@ class WPSEO_Schema_Person implements WPSEO_Graph_Piece {
|
|
24 |
* @param WPSEO_Schema_Context $context A value object with context variables.
|
25 |
*/
|
26 |
public function __construct( WPSEO_Schema_Context $context ) {
|
27 |
-
$this->context
|
28 |
}
|
29 |
|
30 |
/**
|
@@ -141,16 +141,14 @@ class WPSEO_Schema_Person implements WPSEO_Graph_Piece {
|
|
141 |
* @return array $data The Person schema.
|
142 |
*/
|
143 |
protected function add_image( $data, $user_data ) {
|
144 |
-
|
|
|
145 |
return $data;
|
146 |
}
|
147 |
|
148 |
-
$
|
149 |
-
|
150 |
-
|
151 |
-
'url' => get_avatar_url( $user_data->user_email ),
|
152 |
-
'caption' => $user_data->display_name,
|
153 |
-
);
|
154 |
|
155 |
return $data;
|
156 |
}
|
24 |
* @param WPSEO_Schema_Context $context A value object with context variables.
|
25 |
*/
|
26 |
public function __construct( WPSEO_Schema_Context $context ) {
|
27 |
+
$this->context = $context;
|
28 |
}
|
29 |
|
30 |
/**
|
141 |
* @return array $data The Person schema.
|
142 |
*/
|
143 |
protected function add_image( $data, $user_data ) {
|
144 |
+
$url = get_avatar_url( $user_data->user_email );
|
145 |
+
if ( empty( $url ) ) {
|
146 |
return $data;
|
147 |
}
|
148 |
|
149 |
+
$id = $this->context->site_url . WPSEO_Schema_IDs::PERSON_LOGO_HASH;
|
150 |
+
$schema_image = new WPSEO_Schema_Image( $id );
|
151 |
+
$data['image'] = $schema_image->simple_image_object( $url, $user_data->display_name );
|
|
|
|
|
|
|
152 |
|
153 |
return $data;
|
154 |
}
|
frontend/schema/class-schema-webpage.php
CHANGED
@@ -46,7 +46,7 @@ class WPSEO_Schema_WebPage implements WPSEO_Graph_Piece {
|
|
46 |
* @return array WebPage schema data.
|
47 |
*/
|
48 |
public function generate() {
|
49 |
-
$data
|
50 |
'@type' => $this->determine_page_type(),
|
51 |
'@id' => $this->context->canonical . WPSEO_Schema_IDs::WEBPAGE_HASH,
|
52 |
'url' => $this->context->canonical,
|
@@ -62,6 +62,7 @@ class WPSEO_Schema_WebPage implements WPSEO_Graph_Piece {
|
|
62 |
if ( $this->context->site_represents === 'person' ) {
|
63 |
$about_id = WPSEO_Schema_IDs::PERSON_HASH;
|
64 |
}
|
|
|
65 |
$data['about'] = array(
|
66 |
'@id' => $this->context->site_url . $about_id,
|
67 |
);
|
@@ -146,12 +147,8 @@ class WPSEO_Schema_WebPage implements WPSEO_Graph_Piece {
|
|
146 |
}
|
147 |
|
148 |
$id = $this->context->canonical . WPSEO_Schema_IDs::PRIMARY_IMAGE_HASH;
|
149 |
-
$
|
150 |
-
|
151 |
-
'@id' => $id,
|
152 |
-
'url' => get_the_post_thumbnail_url(),
|
153 |
-
'caption' => get_the_post_thumbnail_caption(),
|
154 |
-
);
|
155 |
$data['primaryImageOfPage'] = array(
|
156 |
'@id' => $id,
|
157 |
);
|
46 |
* @return array WebPage schema data.
|
47 |
*/
|
48 |
public function generate() {
|
49 |
+
$data = array(
|
50 |
'@type' => $this->determine_page_type(),
|
51 |
'@id' => $this->context->canonical . WPSEO_Schema_IDs::WEBPAGE_HASH,
|
52 |
'url' => $this->context->canonical,
|
62 |
if ( $this->context->site_represents === 'person' ) {
|
63 |
$about_id = WPSEO_Schema_IDs::PERSON_HASH;
|
64 |
}
|
65 |
+
|
66 |
$data['about'] = array(
|
67 |
'@id' => $this->context->site_url . $about_id,
|
68 |
);
|
147 |
}
|
148 |
|
149 |
$id = $this->context->canonical . WPSEO_Schema_IDs::PRIMARY_IMAGE_HASH;
|
150 |
+
$schema_image = new WPSEO_Schema_Image( $id );
|
151 |
+
$data['image'] = $schema_image->generate_from_attachment_id( get_post_thumbnail_id() );
|
|
|
|
|
|
|
|
|
152 |
$data['primaryImageOfPage'] = array(
|
153 |
'@id' => $id,
|
154 |
);
|
images/brushstroke_background.svg
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<svg width="644" height="113" xmlns="http://www.w3.org/2000/svg"><path d="M640.4 45.197c.012-2.347-1.656-2.597-3.58-2.698-1.319-.07-2.713-1.159-1.733-1.681 4.01-2.136.277-4.135.136-6.321l4.897-2.504c-3.063-.567-5.636-1.196-8.257-1.484-2.498-.276-3.758-1.62-4.064-3.524-.377-2.34 2.003-2.272 3.68-2.752 1.024-.292-4.16-6.713-3.68-8.424-3.026-.987 6.822-2.043 6.513-6.397-.083-1.16-13.477-3.269-14.853-3.432-13.549-1.617-43.856-3.582-57.646-4.596-20.786-1.527-47.43 0-71.293 0-23.864 0-44.238.667-65.788 0-25.228-.781-55.512-.68-80.755 0-29.127.788-38.853-.116-67.989 0-37.862.153-71.036 1.181-108.879 0-21.277-.664-46.585 1.358-67.85 0-19.86-1.27-29.992.901-49.991 2.234-6.335.421-34.245-2.213-38.147 2.362-4.267 5.003-4.74 3.756-7.48 9.83C-.102 24.095 2.243 33.711.726 42.5c-1.252 7.245-.637 12.912 0 20.275.114 1.325.458 8.643 0 9.776-.62 1.538 2.704 23.31 2.915 24.976.471 3.715 3.532 11.176 7.48 12.856 4.533 1.93 8.625-1.966 12.923.319 5.048 2.682 13.871-.718 19.49 0 17.718 2.263 25.58-.222 43.466 0 8.954.11 23.058-.125 32 0 8.021.124 22.98 1.732 31 2.051 17.854.693 31.68-2.273 49.543-2.051 8.627.124 17.338-.208 25.958-.222 12.47-.028 24.961.194 37.442 0 15.063-.25 31.538-2.112 45.184-.943 26.701 2.288 48.593.014 71.498.846 15.957.568 29.13-.721 45.107-.485 13.972.208 27.948.097 41.924.596 5.634.208 11.38-.305 17.054-.111 23.101.735 46.226.277 69.33 1.442 13.234.665 26.51 1.635 39.793.928 9.894-.513 36.747-1.121 45.63-4.948 4.34-1.873-5.96-7.044-2.814-10.278 1.943-1.997 3.819-4.047 5.752-6.055 3.007-3.124 3.722-4.782.445-7.187-3.55-2.605-1.914-4.094-.202-6.198 1.054-1.296 2.548-2.513 1.285-4.354-1.038-1.515-1.63-3.53-4.466-2.953-2.191.447-2.712-.06-2.257-2.247.514-2.459-3.405-6.19-6.191-5.758-3.691.573 7.556-1.063 7.409-3.52-.111-1.836-.147-3.552-1.103-5.321-2.327-4.299-1.45-5.614 3.697-6.343 1.125-.158 2.251-.312 3.483-.483-.936-.976-3.109-.345-3.101-1.911z" fill="#EEEFFF" fill-rule="evenodd"/></svg>
|
images/local_assistant.svg
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<svg role="img" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 152 176"><path fill="#af7e48" d="M137.57 99.31c.61 0 7 5.83 7 5.83l.4 6c-1.49 1.68-3 1.2-5.43 4.22s-6.43-2.82-6.43-2.82l5.23-4.82z"/><path fill="#c69b65" d="M142.49 96.4c1.12-.91 6.14 1.1 7.35 2.91s1.81 6 1.81 6a62.1 62.1 0 0 0-3.62 5.43c-.8 1.61-2.82 1-4-1.2s.6-4.43.6-4.43l-4.83-2.21zM140 82.62c-1.41 0-4 4.22-6.24 4.82s-9.65 3.22-9.65 3.22l3 5.43 11.07-1s3.41-5.23 3.82-7.65-.61-4.82-2-4.82z"/><path fill="#af7e48" d="M58.79 34.92c2.15 3.14 3.37 6 4.94 5s2.89-5.73.74-8.87-5.18-4.83-6.74-3.76-1.1 4.48 1.06 7.63z"/><path fill="#181716" d="M48.41 15.34s2.76-1 3.27-.26 6.78 6.28 8 11-.25 5.27-.5 4.52-9-12.55-9-12.55z"/><path fill="#c6d8ee" d="M53.43 156.44c-1.25-.5-31.13.76-31.13-.25s-6-64.27-6-64.27c8.81-14.18 23.25-19.64 49.9-22.58l22.16 14 8.29 72.81z"/><path fill="#738498" d="M33.08 136.37s6.58-.11 6.62-.13c-1.13 1.48-2.72 2-3.76 3.75 2 1.39 6.58-.71 9 .13-1.84-.13-8.68 3.43-10.51 3.41.93 5.09 9.86 4.65 13 2.89-1.42 1.77-2.11 6.05-2.78 8.26-2.84-2.13-19.16-3.16-25.55-7.78 2.28-4.75 4.72-9.84 6.63-14.8 2-5.12 7-5.34 9.68-10.06.46-.8-.42-11.17-.54-11.5 1.76 3.5 3.29 8.79 3 12.71.55-1.52 3-2.48 4.48-3 .83 3.56.56-7.25-9.27 16.12z"/><path fill="#c6d8ee" d="M67.38 69c.5.5 17 2.17 22.63 4.53 11.46 4.82 5.73 22.92 17.16 27.13 3.8 1.41 19.58-2.51 19.58-2.51l3.77 15.85c-14.13 9.14-27.5 12.4-40.18 10.29L69.25 88.9z"/><path fill="#c69b65" d="M60.46 56.51c.51 2 8.29 29.63 8.29 29.63L51.68 96.69 29.83 80.62 26.57 62z"/><path fill="#af7e48" d="M28.93 67.13c-.79 2.68 7.27 6.66 9.47 7.53A61.27 61.27 0 0 0 49 77.93c3.07.59 7.26 1.17 10.05-.5 4.16-2.5 4.07-9.45 2.71-13.53-3.21 2.21-7.61 1.82-11.44 2.16-7.17.63-14-.25-21.11-.14.08.69-.17 1.5-.08 2.19-.24-.05-.44-.18-.2-.98z"/><path fill="#c6d8ee" d="M62.47 64.05s-2.76 8.53-3.26 12.8 4 16.07 3.77 15.32 9.79-5.28 9.79-5.28z"/><path fill="#c6d8ee" d="M27.82 68.56c-2.26.51-1.5 1.76-2 5.28s.45 10.39.45 10.39l23.15 20L72 92.92l-14.51-4s-2.59-5.77-5.6-8.28-7.5 1.25-12.53-.76c-10.03-4.29-10.53-7.8-11.54-11.32z"/><path fill="#738498" d="M57.5 88.9a93.54 93.54 0 0 1 26.78 6.21l-1.61 1.18c-4.78-2.16-14.19-4.15-23.48-6.43-.33-.08-10.52 16.74-15.14 23.33-.43.61 10.26 10.25 22.53 29.56-15.09-21.12-24.22-27.93-24.34-27.95C41.36 114.6 58 89 57.5 88.9z"/><path fill="#565377" d="M18.53 88.9l4.77-5a74.39 74.39 0 0 1 30.39 26.36s24.15-16.67 24.6-17.32c1.82-2.63-13.89-25.12-15.57-23.6l4.52-.76c8.09 7.08 14 13.79 15.82 19.84C93.4 109.13 98.29 132 98.63 156.69L50.92 160H36.11c11.46-7 16.56-20.78 10.55-46.45C41 101.8 31.83 93.41 18.53 88.9z"/><path fill="#c69b65" d="M48.66 13.08c.76.5 17.83 24.1 19.84 31.38s-5.78 23.6-7.5 25.36-7.28 2.76-10.55 3-18.38-.75-23-6-12.85-33.9-12.85-33.9l2.26-8.79z"/><path fill="#181716" d="M29.53 54c-.75 2.14-2.27 2.27-4.26 1.83l-5.81-5.57-3.2-.58c-4.19-4.33-5.7-11.51-5-21 0 0 12.56-11.3 14.31-7.78s-3 13.56-3.26 17.07-.25 7.28-.25 7.28c-.16 1.38 5.09 5.49 7.47 8.75z"/><path fill="#c6d8ee" d="M39.8 25c4.05-2.29 12.09-6.14 10.59-11.2C49.94 12.28 45 1.45 43.22.2S24.06 4 20 6.55 5.23 17.09 5.23 19.85 10.22 31.23 11 32s25.06-4.87 28.8-7z"/><path fill="#786857" d="M98.88 168L45.4 154.69s55.74-63.78 56.49-63.53 48 .5 48 .5l1 3.27-44.69 69.3c-2.2 2.13-5.2 2.98-7.32 3.77z"/><path fill="#614d41" d="M45.15 154.18s49.12 9.58 49.46 10.3c3.77.5 6.78-.25 8.79-2l46.95-71.06.5 3.52-45.19 71.56c-.65 2.78-6.38 4.36-11.55 2.68s-48-12.23-48-12.23z"/><path fill="#181716" d="M43.64 69.57s6.7 6.76 11.47 6 6.09-.76 7.85-4c2.72-5.06.65-6.12-1.41-11.46L61 64.52l-2.47-2.62-.8 4.43-2.21-2.42-1 3.82-2.62-1.81v3.62l-4.22-1.81 1.41 3z"/><path fill="#edb059" d="M141.63 95.18c0 7.28-11 12.52-23 11.43-11.16-1-19.3-4.1-19.3-11.38s9.42-15.65 20.63-15.65c.57 0 1.15 0 1.73.06.78 1.39 2.66 1.31 4.72.83 8.43 2.34 15.22 8.86 15.22 14.71z"/><path fill="#af7e48" d="M120.15 85.22c-3.75 1.64-6 6.68-8 10.13.39-3.76.7-7.91 3.81-11.23a19.75 19.75 0 0 0-10.69.72c1.56-1.31 5.41-3.39 13.06-2.87a9.21 9.21 0 0 1 3.35-2.32c.88.75 3.32 1 4.92.76a4.46 4.46 0 0 0-3.11 2.26c4.17.66 9.54 4.09 11.19 7.9-3.46-2.86-8.68-5.71-14.53-5.35z"/><path fill="#edb059" d="M125.54 116.56c0 8-12 13.68-25.19 12.48-12.19-1.1-21.08-4.47-21.08-12.42s10.29-17.11 22.53-17.11c.64 0 1.27 0 1.89.07.86 1.52 2.91 1.43 5.16.91 9.27 2.51 16.69 9.67 16.69 16.07z"/><path fill="#cf8c33" d="M79.21 116.62a13.2 13.2 0 0 1 2.38-7.92 23.41 23.41 0 0 1 6-5.91 25.34 25.34 0 0 1 7.72-3.51 24.67 24.67 0 0 1 8.47-.83h.61l.29.52a1.15 1.15 0 0 0 .51.49 2.37 2.37 0 0 0 .93.21 9.72 9.72 0 0 0 2.49-.27l.28-.06.24.07a30.79 30.79 0 0 1 5.88 2.41 26.89 26.89 0 0 1 5.14 3.71 18.73 18.73 0 0 1 4 4.94 11.22 11.22 0 0 1 1.5 6h-.13a11.48 11.48 0 0 0-1.85-5.75 20 20 0 0 0-4-4.58 28.62 28.62 0 0 0-10.77-5.63h.06a10.68 10.68 0 0 1-2.82.34 3.61 3.61 0 0 1-1.4-.31 2.41 2.41 0 0 1-1.08-1l.1.07a25 25 0 0 0-8.08.72 25.69 25.69 0 0 0-7.45 3.22 22.49 22.49 0 0 0-6 5.46 13.41 13.41 0 0 0-2.81 7.51z"/><path fill="#af7e48" d="M102.07 105.68c-4.09 1.79-6.58 7.3-8.72 11.06.43-4.1.77-8.63 4.16-12.27a21.71 21.71 0 0 0-11.68.79c1.71-1.43 5.92-3.7 14.27-3.14.56-.91 2.57-2.05 3.66-2.53 1 .82 3.63 1.1 5.37.83-1.85.59-2.62 1.11-3.39 2.47 4.56.72 10.43 4.47 12.23 8.64-3.81-3.13-9.49-6.24-15.9-5.85z"/><path fill="#edb059" d="M106.78 143.09c0 8.75-13.24 15-27.7 13.73-13.41-1.21-23.18-4.92-23.18-13.66s11.31-18.81 24.78-18.81c.69 0 1.38 0 2.07.08.94 1.66 3.2 1.57 5.67 1 10.2 2.8 18.36 10.63 18.36 17.66z"/><path fill="#cf8c33" d="M55.84 143.16a14.64 14.64 0 0 1 2.65-8.67A25.69 25.69 0 0 1 65.1 128a27.89 27.89 0 0 1 8.46-3.83 27.12 27.12 0 0 1 9.28-.91l.61.06.29.52a1.35 1.35 0 0 0 .61.57 2.68 2.68 0 0 0 1.07.25 10.48 10.48 0 0 0 2.76-.31l.28-.06.25.07a33.88 33.88 0 0 1 6.45 2.64 30.09 30.09 0 0 1 5.64 4.05 21 21 0 0 1 4.36 5.39 12.34 12.34 0 0 1 1.68 6.62h-.12a12.55 12.55 0 0 0-2-6.32 22.19 22.19 0 0 0-4.43-5 31.83 31.83 0 0 0-11.86-6.2h.06a11.89 11.89 0 0 1-3.09.38 3.92 3.92 0 0 1-1.54-.34 2.68 2.68 0 0 1-1.18-1.08l.1.06a27.44 27.44 0 0 0-8.89.8 28.7 28.7 0 0 0-8.2 3.54 24.88 24.88 0 0 0-6.6 6 14.84 14.84 0 0 0-3.09 8.26z"/><path fill="#af7e48" d="M81 131.13c-4.5 2-7.24 8-9.59 12.16.47-4.51.85-9.49 4.57-13.48-3.52-.89-9.46-.61-12.84.86 1.88-1.57 6.51-4.07 15.7-3.45.61-1 2.82-2.25 4-2.78 1 .9 4 1.21 5.91.91-2 .65-2.88 1.21-3.73 2.72 5 .79 11.46 4.91 13.44 9.49-4.19-3.44-10.46-6.86-17.46-6.43z"/><path fill="#c6d8ee" d="M50.5 153.36c-1.76-.76-19.41-6.71-19.41-6.71a4.65 4.65 0 0 0 .5-3.77c-.75-1.75-3.26-1-3.26-1s7.5-11.47 7-21-19.06-28.96-19.06-28.96S6 108 4.47 114.26s.55 11.53.25 15.57c-1.5 20.34-9.29 25.16.43 32.69 9 7 39.75 10 39.75 10z"/><path fill="#c6d8ee" d="M57.7 154.51l-11.55-4.34c-3.37.48-11.35 20.51-8.28 23.67.52.54 12.84 3.82 14.38 1.08 3.06-5.42 5.45-20.41 5.45-20.41z"/><path fill="#738498" d="M50.74 173.92c1.79-2.79 2.4-6.58 3.21-9.78.54-2.11 1.58-6.19.21-8.24-3.03 1.45-5.83 17.9-3.42 18.02z"/><path fill="#c69b65" d="M53.86 155.16a43.75 43.75 0 0 0 5.85 1.28c1.26 0 4-2.83 5.8-3.59a15.89 15.89 0 0 1 6.15-1.43c2.26 0 5 2.43 6.71 2.91s4.68-.88 7.2-1.4c4.16-.86 2 6-2.08 7a23.14 23.14 0 0 1-6.35.5s5.92 3 4.42 5l9 2.69c-4 2.51-3.51 3.84-6 4.59S79 170 79 170s-1 2.51-3 2.51-4.27-1.25-5.52-.75-1.26 2.51-3.27 2.51-5.52-2.51-5.52-2.51l-6-6-5-.25c-.59-2.94.87-7.24 3.17-10.35z"/><path fill="#fff" d="M58.22 53.16a.57.57 0 0 0-.13-.63.57.57 0 0 0-.63-.11l-15.61 7a.34.34 0 0 0 .14.65c3.33 0 11-.17 12.72-1.42 1.5-1.06 2.82-3.83 3.51-5.49zM40.83 41.59a4.77 4.77 0 0 0-6-2c-4 1.61-3 6.23-3 6.23 3.97-.27 7.31-1.3 9-4.23z"/><path fill="#181716" d="M40.8 41.61a6 6 0 0 0-2.91-1.67 4.86 4.86 0 0 0-3 .46 4.47 4.47 0 0 0-2.21 2.06 9 9 0 0 0-.83 3.34h-.08a6.89 6.89 0 0 1 .29-3.6 4.57 4.57 0 0 1 2.48-2.6 4.94 4.94 0 0 1 3.58-.32 5.15 5.15 0 0 1 2.78 2.27z"/><path fill="#fff" d="M51.27 38.22s-1.19-4.48 2.23-5.48 5.29 2.18 5.29 2.18c-2.33 1.65-5.11 3.51-7.52 3.3z"/><path fill="#181716" d="M51.23 38.23a5.1 5.1 0 0 1-.56-3.33 3.75 3.75 0 0 1 .77-1.72 3.82 3.82 0 0 1 1.61-1.09 4.43 4.43 0 0 1 5.77 2.8h-.07a5.3 5.3 0 0 0-2.36-2 4.2 4.2 0 0 0-3.06 0 3 3 0 0 0-1.29.82 3.37 3.37 0 0 0-.72 1.36 6.5 6.5 0 0 0 0 3.13zM36.26 31.37a1 1 0 0 1 .78 0 1 1 0 0 1 .55.56l.64 1.65a1 1 0 0 1 0 .78 1 1 0 0 1-.59.51 21.47 21.47 0 0 0-9.54 6.4.38.38 0 0 1-.3.11.34.34 0 0 1-.26-.17l-.62-1a1.12 1.12 0 0 1 0-1.17c1.84-2.98 4.89-5.53 9.34-7.67zM48 26.44a.75.75 0 0 0-.37.41.73.73 0 0 0 0 .56l.64 1.32a1.3 1.3 0 0 0 .82.68 1.32 1.32 0 0 0 1.06-.16 15.4 15.4 0 0 1 7.14-2.11.4.4 0 0 0 .35-.24.42.42 0 0 0-.05-.42l-.44-.58a2.31 2.31 0 0 0-1.46-.9A12.86 12.86 0 0 0 48 26.44z"/><circle cx="35.93" cy="42.52" r="1.81" fill="#181716"/><circle cx="53.63" cy="35.28" r="1.81" fill="#181716"/><circle cx="36.44" cy="41.52" r=".61" fill="#fff"/><circle cx="54.1" cy="34.31" r=".62" fill="#fff"/><path fill="#738498" d="M39.43 2.57c-.57 1.28-2.24 2-3.22 3.06A25.76 25.76 0 0 1 29 10.5a43.61 43.61 0 0 1-18.65 4.95 32.42 32.42 0 0 0 7-2.82c3-1.5 4.64-4.45 7.81-5.74 2.68-1.08 5.22.3 7.66-.55a25.48 25.48 0 0 0 6.61-3.77z"/><path fill="#af7e48" d="M46.06 49.83a2.21 2.21 0 0 0-.44 2.47c1.22 1.22 3.7-1 5.65-1.24.56-.07 6-.32 6.07-3.84.07-2.47-2.86-2.35-4.25-3.31-2.52-1.73-2.43-5.15-4.83-7.27 1.24 2.22 2.21 4.81 3.59 7 1.08 1.71 4 2.2 4 4.08s-3.71 2.89-5.93 2.16c-.84.95-4.38 2.5-3.86-.05z"/><path fill="#c69b65" d="M23.76 54.27c1.72 3.4 2.73 6.13.07 7.48S15.42 60 13.7 56.57s-.84-7.15 2.13-7.31c4.09-.26 6.17 1.6 7.93 5.01z"/><circle cx="60.49" cy="96.85" r="3.02" fill="#738498"/><circle cx="61.09" cy="96.16" r="2.34" fill="#c6d8ee"/></svg>
|
inc/class-addon-manager.php
CHANGED
@@ -460,7 +460,7 @@ class WPSEO_Addon_Manager {
|
|
460 |
/**
|
461 |
* Filters the given array by its keys.
|
462 |
*
|
463 |
-
* This method is temporary. When WordPress has
|
464 |
*
|
465 |
* array_filter( $array_to_filter, $filter, ARRAY_FILTER_USE_KEY )
|
466 |
*
|
460 |
/**
|
461 |
* Filters the given array by its keys.
|
462 |
*
|
463 |
+
* This method is temporary. When WordPress has minimal PHP 5.6 support we can change this to:
|
464 |
*
|
465 |
* array_filter( $array_to_filter, $filter, ARRAY_FILTER_USE_KEY )
|
466 |
*
|
inc/class-my-yoast-api-request.php
CHANGED
@@ -18,7 +18,7 @@ class WPSEO_MyYoast_Api_Request {
|
|
18 |
protected $url;
|
19 |
|
20 |
/**
|
21 |
-
* The request
|
22 |
*
|
23 |
* @var array
|
24 |
*/
|
@@ -53,7 +53,7 @@ class WPSEO_MyYoast_Api_Request {
|
|
53 |
protected $client;
|
54 |
|
55 |
/**
|
56 |
-
* Constructor
|
57 |
*
|
58 |
* @codeCoverageIgnore
|
59 |
*
|
@@ -66,7 +66,7 @@ class WPSEO_MyYoast_Api_Request {
|
|
66 |
}
|
67 |
|
68 |
/**
|
69 |
-
* Fires the request
|
70 |
*
|
71 |
* @return bool True when request is successful.
|
72 |
*/
|
18 |
protected $url;
|
19 |
|
20 |
/**
|
21 |
+
* The request parameters.
|
22 |
*
|
23 |
* @var array
|
24 |
*/
|
53 |
protected $client;
|
54 |
|
55 |
/**
|
56 |
+
* Constructor.
|
57 |
*
|
58 |
* @codeCoverageIgnore
|
59 |
*
|
66 |
}
|
67 |
|
68 |
/**
|
69 |
+
* Fires the request.
|
70 |
*
|
71 |
* @return bool True when request is successful.
|
72 |
*/
|
inc/class-rewrite.php
CHANGED
@@ -11,7 +11,7 @@
|
|
11 |
class WPSEO_Rewrite {
|
12 |
|
13 |
/**
|
14 |
-
* Class constructor
|
15 |
*/
|
16 |
public function __construct() {
|
17 |
add_filter( 'query_vars', array( $this, 'query_vars' ) );
|
@@ -39,6 +39,7 @@ class WPSEO_Rewrite {
|
|
39 |
* If the flush option is set, flush the rewrite rules.
|
40 |
*
|
41 |
* @since 1.2.8
|
|
|
42 |
* @return bool
|
43 |
*/
|
44 |
public function flush() {
|
@@ -81,7 +82,7 @@ class WPSEO_Rewrite {
|
|
81 |
}
|
82 |
|
83 |
/**
|
84 |
-
* Update the query vars with the redirect var when stripcategorybase is active
|
85 |
*
|
86 |
* @param array $query_vars Main query vars to filter.
|
87 |
*
|
@@ -111,7 +112,7 @@ class WPSEO_Rewrite {
|
|
111 |
}
|
112 |
|
113 |
/**
|
114 |
-
* This function taken and only slightly adapted from WP No Category Base plugin by Saurabh Gupta
|
115 |
*
|
116 |
* @return array
|
117 |
*/
|
11 |
class WPSEO_Rewrite {
|
12 |
|
13 |
/**
|
14 |
+
* Class constructor.
|
15 |
*/
|
16 |
public function __construct() {
|
17 |
add_filter( 'query_vars', array( $this, 'query_vars' ) );
|
39 |
* If the flush option is set, flush the rewrite rules.
|
40 |
*
|
41 |
* @since 1.2.8
|
42 |
+
*
|
43 |
* @return bool
|
44 |
*/
|
45 |
public function flush() {
|
82 |
}
|
83 |
|
84 |
/**
|
85 |
+
* Update the query vars with the redirect var when stripcategorybase is active.
|
86 |
*
|
87 |
* @param array $query_vars Main query vars to filter.
|
88 |
*
|
112 |
}
|
113 |
|
114 |
/**
|
115 |
+
* This function taken and only slightly adapted from WP No Category Base plugin by Saurabh Gupta.
|
116 |
*
|
117 |
* @return array
|
118 |
*/
|
inc/class-upgrade.php
CHANGED
@@ -6,12 +6,12 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* This code handles the option upgrades
|
10 |
*/
|
11 |
class WPSEO_Upgrade {
|
12 |
|
13 |
/**
|
14 |
-
* Class constructor
|
15 |
*/
|
16 |
public function __construct() {
|
17 |
$version = WPSEO_Options::get( 'version' );
|
@@ -128,12 +128,16 @@ class WPSEO_Upgrade {
|
|
128 |
$this->upgrade_100();
|
129 |
}
|
130 |
|
|
|
|
|
|
|
|
|
131 |
// Since 3.7.
|
132 |
$upsell_notice = new WPSEO_Product_Upsell_Notice();
|
133 |
$upsell_notice->set_upgrade_notice();
|
134 |
|
135 |
/**
|
136 |
-
* Filter: 'wpseo_run_upgrade' - Runs the upgrade hook which are dependent on Yoast SEO
|
137 |
*
|
138 |
* @api string - The current version of Yoast SEO
|
139 |
*/
|
@@ -170,7 +174,7 @@ class WPSEO_Upgrade {
|
|
170 |
}
|
171 |
|
172 |
/**
|
173 |
-
* Run the Yoast SEO 1.5 upgrade routine
|
174 |
*
|
175 |
* @param string $version Current plugin version.
|
176 |
*/
|
@@ -181,12 +185,12 @@ class WPSEO_Upgrade {
|
|
181 |
}
|
182 |
|
183 |
/**
|
184 |
-
* Moves options that moved position in WPSEO 2.0
|
185 |
*/
|
186 |
private function upgrade_20() {
|
187 |
/**
|
188 |
* Clean up stray wpseo_ms options from the options table, option should only exist in the sitemeta table.
|
189 |
-
* This could have been caused in many version of Yoast SEO, so deleting it for everything below 2.0
|
190 |
*/
|
191 |
delete_option( 'wpseo_ms' );
|
192 |
|
@@ -221,7 +225,7 @@ class WPSEO_Upgrade {
|
|
221 |
}
|
222 |
|
223 |
/**
|
224 |
-
* Performs upgrade functions to Yoast SEO 2.2
|
225 |
*/
|
226 |
private function upgrade_22() {
|
227 |
// Unschedule our tracking.
|
@@ -231,7 +235,7 @@ class WPSEO_Upgrade {
|
|
231 |
}
|
232 |
|
233 |
/**
|
234 |
-
* Schedules upgrade function to Yoast SEO 2.3
|
235 |
*/
|
236 |
private function upgrade_23() {
|
237 |
add_action( 'wp', array( $this, 'upgrade_23_query' ), 90 );
|
@@ -239,7 +243,7 @@ class WPSEO_Upgrade {
|
|
239 |
}
|
240 |
|
241 |
/**
|
242 |
-
* Performs upgrade query to Yoast SEO 2.3
|
243 |
*/
|
244 |
public function upgrade_23_query() {
|
245 |
$wp_query = new WP_Query( 'post_type=any&meta_key=_yoast_wpseo_sitemap-include&meta_value=never&order=ASC' );
|
@@ -449,8 +453,8 @@ class WPSEO_Upgrade {
|
|
449 |
}
|
450 |
|
451 |
/**
|
452 |
-
* Updates the links for the link count when there is a difference between the site and home url.
|
453 |
-
* site url instead of the home url.
|
454 |
*
|
455 |
* @return void
|
456 |
*/
|
@@ -663,6 +667,20 @@ class WPSEO_Upgrade {
|
|
663 |
delete_option( 'wpseo_recalibration_beta_mailinglist_subscription' );
|
664 |
}
|
665 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
666 |
/**
|
667 |
* Removes all notifications saved in the database under 'wp_yoast_notifications'.
|
668 |
*
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* This code handles the option upgrades.
|
10 |
*/
|
11 |
class WPSEO_Upgrade {
|
12 |
|
13 |
/**
|
14 |
+
* Class constructor.
|
15 |
*/
|
16 |
public function __construct() {
|
17 |
$version = WPSEO_Options::get( 'version' );
|
128 |
$this->upgrade_100();
|
129 |
}
|
130 |
|
131 |
+
if ( version_compare( $version, '11.1-RC0', '<' ) ) {
|
132 |
+
$this->upgrade_111();
|
133 |
+
}
|
134 |
+
|
135 |
// Since 3.7.
|
136 |
$upsell_notice = new WPSEO_Product_Upsell_Notice();
|
137 |
$upsell_notice->set_upgrade_notice();
|
138 |
|
139 |
/**
|
140 |
+
* Filter: 'wpseo_run_upgrade' - Runs the upgrade hook which are dependent on Yoast SEO.
|
141 |
*
|
142 |
* @api string - The current version of Yoast SEO
|
143 |
*/
|
174 |
}
|
175 |
|
176 |
/**
|
177 |
+
* Run the Yoast SEO 1.5 upgrade routine.
|
178 |
*
|
179 |
* @param string $version Current plugin version.
|
180 |
*/
|
185 |
}
|
186 |
|
187 |
/**
|
188 |
+
* Moves options that moved position in WPSEO 2.0.
|
189 |
*/
|
190 |
private function upgrade_20() {
|
191 |
/**
|
192 |
* Clean up stray wpseo_ms options from the options table, option should only exist in the sitemeta table.
|
193 |
+
* This could have been caused in many version of Yoast SEO, so deleting it for everything below 2.0.
|
194 |
*/
|
195 |
delete_option( 'wpseo_ms' );
|
196 |
|
225 |
}
|
226 |
|
227 |
/**
|
228 |
+
* Performs upgrade functions to Yoast SEO 2.2.
|
229 |
*/
|
230 |
private function upgrade_22() {
|
231 |
// Unschedule our tracking.
|
235 |
}
|
236 |
|
237 |
/**
|
238 |
+
* Schedules upgrade function to Yoast SEO 2.3.
|
239 |
*/
|
240 |
private function upgrade_23() {
|
241 |
add_action( 'wp', array( $this, 'upgrade_23_query' ), 90 );
|
243 |
}
|
244 |
|
245 |
/**
|
246 |
+
* Performs upgrade query to Yoast SEO 2.3.
|
247 |
*/
|
248 |
public function upgrade_23_query() {
|
249 |
$wp_query = new WP_Query( 'post_type=any&meta_key=_yoast_wpseo_sitemap-include&meta_value=never&order=ASC' );
|
453 |
}
|
454 |
|
455 |
/**
|
456 |
+
* Updates the links for the link count when there is a difference between the site and home url.
|
457 |
+
* We've used the site url instead of the home url.
|
458 |
*
|
459 |
* @return void
|
460 |
*/
|
667 |
delete_option( 'wpseo_recalibration_beta_mailinglist_subscription' );
|
668 |
}
|
669 |
|
670 |
+
/**
|
671 |
+
* Performs the 11.1 upgrade.
|
672 |
+
*
|
673 |
+
* @return void
|
674 |
+
*/
|
675 |
+
private function upgrade_111() {
|
676 |
+
// Set company_or_person to company when it's an invalid value.
|
677 |
+
$company_or_person = WPSEO_Options::get( 'company_or_person', '' );
|
678 |
+
|
679 |
+
if ( ! in_array( $company_or_person, array( 'company', 'person' ), true ) ) {
|
680 |
+
WPSEO_Options::set( 'company_or_person', 'company' );
|
681 |
+
}
|
682 |
+
}
|
683 |
+
|
684 |
/**
|
685 |
* Removes all notifications saved in the database under 'wp_yoast_notifications'.
|
686 |
*
|
inc/class-wpseo-admin-bar-menu.php
CHANGED
@@ -492,7 +492,7 @@ class WPSEO_Admin_Bar_Menu implements WPSEO_WordPress_Integration {
|
|
492 |
/**
|
493 |
* Gets the focus keyword for a given post.
|
494 |
*
|
495 |
-
* @param
|
496 |
*
|
497 |
* @return string Focus keyword, or empty string if none available.
|
498 |
*/
|
492 |
/**
|
493 |
* Gets the focus keyword for a given post.
|
494 |
*
|
495 |
+
* @param WP_Post $post Post object to get its focus keyword.
|
496 |
*
|
497 |
* @return string Focus keyword, or empty string if none available.
|
498 |
*/
|
inc/class-wpseo-content-images.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* WPSEO_Content_Images
|
10 |
*/
|
11 |
class WPSEO_Content_Images {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* WPSEO_Content_Images.
|
10 |
*/
|
11 |
class WPSEO_Content_Images {
|
12 |
|
inc/class-wpseo-custom-fields.php
CHANGED
@@ -6,19 +6,21 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* WPSEO_Custom_Fields
|
10 |
*/
|
11 |
class WPSEO_Custom_Fields {
|
12 |
|
13 |
/**
|
14 |
-
*
|
|
|
|
|
15 |
*/
|
16 |
protected static $custom_fields = null;
|
17 |
|
18 |
/**
|
19 |
* Retrieves the custom field names as an array.
|
20 |
*
|
21 |
-
* @
|
22 |
*
|
23 |
* @return array The custom fields.
|
24 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* WPSEO_Custom_Fields.
|
10 |
*/
|
11 |
class WPSEO_Custom_Fields {
|
12 |
|
13 |
/**
|
14 |
+
* Custom fields cache.
|
15 |
+
*
|
16 |
+
* @var array
|
17 |
*/
|
18 |
protected static $custom_fields = null;
|
19 |
|
20 |
/**
|
21 |
* Retrieves the custom field names as an array.
|
22 |
*
|
23 |
+
* @link WordPress core: wp-admin/includes/template.php. Reused query from it.
|
24 |
*
|
25 |
* @return array The custom fields.
|
26 |
*/
|
inc/class-wpseo-custom-taxonomies.php
CHANGED
@@ -6,12 +6,14 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* WPSEO_Custom_Taxonomies
|
10 |
*/
|
11 |
class WPSEO_Custom_Taxonomies {
|
12 |
|
13 |
/**
|
14 |
-
*
|
|
|
|
|
15 |
*/
|
16 |
protected static $custom_taxonomies = null;
|
17 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* WPSEO_Custom_Taxonomies.
|
10 |
*/
|
11 |
class WPSEO_Custom_Taxonomies {
|
12 |
|
13 |
/**
|
14 |
+
* Custom taxonomies cache.
|
15 |
+
*
|
16 |
+
* @var array
|
17 |
*/
|
18 |
protected static $custom_taxonomies = null;
|
19 |
|
inc/class-wpseo-endpoint-factory.php
CHANGED
@@ -6,12 +6,14 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Endpoint_Factory
|
10 |
*/
|
11 |
class WPSEO_Endpoint_Factory {
|
12 |
|
13 |
/**
|
14 |
-
*
|
|
|
|
|
15 |
*/
|
16 |
private $valid_http_methods = array(
|
17 |
'GET',
|
@@ -22,32 +24,44 @@ class WPSEO_Endpoint_Factory {
|
|
22 |
);
|
23 |
|
24 |
/**
|
25 |
-
*
|
|
|
|
|
26 |
*/
|
27 |
protected $args = array();
|
28 |
|
29 |
/**
|
30 |
-
*
|
|
|
|
|
31 |
*/
|
32 |
private $namespace;
|
33 |
|
34 |
/**
|
35 |
-
*
|
|
|
|
|
36 |
*/
|
37 |
private $endpoint;
|
38 |
|
39 |
/**
|
40 |
-
*
|
|
|
|
|
41 |
*/
|
42 |
private $callback;
|
43 |
|
44 |
/**
|
45 |
-
*
|
|
|
|
|
46 |
*/
|
47 |
private $permission_callback;
|
48 |
|
49 |
/**
|
50 |
-
*
|
|
|
|
|
51 |
*/
|
52 |
private $method;
|
53 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Endpoint_Factory.
|
10 |
*/
|
11 |
class WPSEO_Endpoint_Factory {
|
12 |
|
13 |
/**
|
14 |
+
* The valid HTTP methods.
|
15 |
+
*
|
16 |
+
* @var array
|
17 |
*/
|
18 |
private $valid_http_methods = array(
|
19 |
'GET',
|
24 |
);
|
25 |
|
26 |
/**
|
27 |
+
* The arguments.
|
28 |
+
*
|
29 |
+
* @var array
|
30 |
*/
|
31 |
protected $args = array();
|
32 |
|
33 |
/**
|
34 |
+
* The namespace.
|
35 |
+
*
|
36 |
+
* @var string
|
37 |
*/
|
38 |
private $namespace;
|
39 |
|
40 |
/**
|
41 |
+
* The endpoint URL.
|
42 |
+
*
|
43 |
+
* @var string
|
44 |
*/
|
45 |
private $endpoint;
|
46 |
|
47 |
/**
|
48 |
+
* The callback to execute if the endpoint is called.
|
49 |
+
*
|
50 |
+
* @var callable
|
51 |
*/
|
52 |
private $callback;
|
53 |
|
54 |
/**
|
55 |
+
* The permission callback to execute to determine permissions.
|
56 |
+
*
|
57 |
+
* @var callable
|
58 |
*/
|
59 |
private $permission_callback;
|
60 |
|
61 |
/**
|
62 |
+
* The HTTP method to use.
|
63 |
+
*
|
64 |
+
* @var string
|
65 |
*/
|
66 |
private $method;
|
67 |
|
inc/class-wpseo-image-utils.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* WPSEO_Image_Utils
|
10 |
*/
|
11 |
class WPSEO_Image_Utils {
|
12 |
|
@@ -25,7 +25,7 @@ class WPSEO_Image_Utils {
|
|
25 |
$url = preg_replace( '/(.*)-\d+x\d+\.(jpg|png|gif)$/', '$1.$2', $url );
|
26 |
|
27 |
if ( function_exists( 'wpcom_vip_attachment_url_to_postid' ) ) {
|
28 |
-
// @codeCoverageIgnoreStart --
|
29 |
return (int) wpcom_vip_attachment_url_to_postid( $url );
|
30 |
// @codeCoverageIgnoreEnd -- The rest we _can_ test.
|
31 |
}
|
@@ -43,7 +43,7 @@ class WPSEO_Image_Utils {
|
|
43 |
protected static function attachment_url_to_postid( $url ) {
|
44 |
$cache_key = sprintf( 'yoast_attachment_url_post_id_%s', md5( $url ) );
|
45 |
|
46 |
-
// Set the ID based on the hashed
|
47 |
$id = wp_cache_get( $cache_key );
|
48 |
|
49 |
if ( $id === 'not_found' ) {
|
@@ -77,12 +77,13 @@ class WPSEO_Image_Utils {
|
|
77 |
* @return false|array $image {
|
78 |
* Array of image data
|
79 |
*
|
80 |
-
* @type string $alt
|
81 |
-
* @type string $alt
|
82 |
-
* @type int $width
|
83 |
-
* @type int $height
|
84 |
-
* @type string $type
|
85 |
-
* @type string $url
|
|
|
86 |
* }
|
87 |
*/
|
88 |
public static function get_data( $image, $attachment_id ) {
|
@@ -104,7 +105,7 @@ class WPSEO_Image_Utils {
|
|
104 |
}
|
105 |
|
106 |
// Keep only the keys we need, and nothing else.
|
107 |
-
return array_intersect_key( $image, array_flip( array( 'id', 'alt', 'path', 'width', 'height', 'pixels', 'type', 'size', 'url' ) ) );
|
108 |
}
|
109 |
|
110 |
/**
|
@@ -235,7 +236,7 @@ class WPSEO_Image_Utils {
|
|
235 |
}
|
236 |
|
237 |
// If the file size for the file is over our limit, we're going to go for a smaller version.
|
238 |
-
// @todo
|
239 |
// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- If file size doesn't properly return, we'll not fail.
|
240 |
return @filesize( self::get_absolute_path( $image['path'] ) );
|
241 |
}
|
@@ -265,7 +266,7 @@ class WPSEO_Image_Utils {
|
|
265 |
/**
|
266 |
* Check original size of image. If original image is too small, return false, else return true.
|
267 |
*
|
268 |
-
* Filters a list of variations by a certain set of usable dimensions
|
269 |
*
|
270 |
* @param array $usable_dimensions {
|
271 |
* The parameters to check against.
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* WPSEO_Image_Utils.
|
10 |
*/
|
11 |
class WPSEO_Image_Utils {
|
12 |
|
25 |
$url = preg_replace( '/(.*)-\d+x\d+\.(jpg|png|gif)$/', '$1.$2', $url );
|
26 |
|
27 |
if ( function_exists( 'wpcom_vip_attachment_url_to_postid' ) ) {
|
28 |
+
// @codeCoverageIgnoreStart -- We can't test this properly.
|
29 |
return (int) wpcom_vip_attachment_url_to_postid( $url );
|
30 |
// @codeCoverageIgnoreEnd -- The rest we _can_ test.
|
31 |
}
|
43 |
protected static function attachment_url_to_postid( $url ) {
|
44 |
$cache_key = sprintf( 'yoast_attachment_url_post_id_%s', md5( $url ) );
|
45 |
|
46 |
+
// Set the ID based on the hashed URL in the cache.
|
47 |
$id = wp_cache_get( $cache_key );
|
48 |
|
49 |
if ( $id === 'not_found' ) {
|
77 |
* @return false|array $image {
|
78 |
* Array of image data
|
79 |
*
|
80 |
+
* @type string $alt Image's alt text.
|
81 |
+
* @type string $alt Image's alt text.
|
82 |
+
* @type int $width Width of image.
|
83 |
+
* @type int $height Height of image.
|
84 |
+
* @type string $type Image's MIME type.
|
85 |
+
* @type string $url Image's URL.
|
86 |
+
* @type int $filesize The file size in bytes, if already set.
|
87 |
* }
|
88 |
*/
|
89 |
public static function get_data( $image, $attachment_id ) {
|
105 |
}
|
106 |
|
107 |
// Keep only the keys we need, and nothing else.
|
108 |
+
return array_intersect_key( $image, array_flip( array( 'id', 'alt', 'path', 'width', 'height', 'pixels', 'type', 'size', 'url', 'filesize' ) ) );
|
109 |
}
|
110 |
|
111 |
/**
|
236 |
}
|
237 |
|
238 |
// If the file size for the file is over our limit, we're going to go for a smaller version.
|
239 |
+
// @todo Save the filesize to the image metadata.
|
240 |
// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- If file size doesn't properly return, we'll not fail.
|
241 |
return @filesize( self::get_absolute_path( $image['path'] ) );
|
242 |
}
|
266 |
/**
|
267 |
* Check original size of image. If original image is too small, return false, else return true.
|
268 |
*
|
269 |
+
* Filters a list of variations by a certain set of usable dimensions.
|
270 |
*
|
271 |
* @param array $usable_dimensions {
|
272 |
* The parameters to check against.
|
inc/class-wpseo-meta.php
CHANGED
@@ -11,14 +11,14 @@
|
|
11 |
*
|
12 |
* Some guidelines:
|
13 |
* - To update a meta value, you can just use update_post_meta() with the full (prefixed) meta key
|
14 |
-
*
|
15 |
-
*
|
16 |
-
*
|
17 |
-
*
|
18 |
* - To retrieve a WPSEO meta value, you **must** use WPSEO_Meta::get_value() which will always return a
|
19 |
-
*
|
20 |
-
*
|
21 |
-
*
|
22 |
*
|
23 |
* {@internal Unfortunately there isn't a filter available to hook into before returning the results
|
24 |
* for get_post_meta(), get_post_custom() and the likes. That would have been the
|
@@ -198,7 +198,7 @@ class WPSEO_Meta {
|
|
198 |
),
|
199 |
),
|
200 |
'social' => array(),
|
201 |
-
/* Fields we should validate & save, but not show on any form */
|
202 |
'non_form' => array(
|
203 |
'linkdex' => array(
|
204 |
'type' => null,
|
@@ -251,7 +251,7 @@ class WPSEO_Meta {
|
|
251 |
);
|
252 |
|
253 |
/**
|
254 |
-
* Register our actions and filters
|
255 |
*
|
256 |
* @return void
|
257 |
*/
|
@@ -272,8 +272,8 @@ class WPSEO_Meta {
|
|
272 |
unset( $option, $network, $box, $type );
|
273 |
|
274 |
/**
|
275 |
-
* Allow add-on plugins to register their meta fields for management by this class
|
276 |
-
* add_filter()
|
277 |
*/
|
278 |
$extra_fields = apply_filters( 'add_extra_wpseo_meta_fields', array() );
|
279 |
if ( is_array( $extra_fields ) ) {
|
@@ -315,10 +315,10 @@ class WPSEO_Meta {
|
|
315 |
/**
|
316 |
* Retrieve the meta box form field definitions for the given tab and post type.
|
317 |
*
|
318 |
-
* @param
|
319 |
-
* @param
|
320 |
*
|
321 |
-
* @return array
|
322 |
*/
|
323 |
public static function get_meta_field_defs( $tab, $post_type = 'post' ) {
|
324 |
if ( ! isset( self::$meta_fields[ $tab ] ) ) {
|
@@ -359,14 +359,14 @@ class WPSEO_Meta {
|
|
359 |
$field_defs['meta-robots-noindex']['options']['0'] = sprintf( $field_defs['meta-robots-noindex']['options']['0'], ( ( WPSEO_Options::get( 'noindex-' . $post_type, false ) === true ) ? $field_defs['meta-robots-noindex']['options']['1'] : $field_defs['meta-robots-noindex']['options']['2'] ), $post_type_object->label );
|
360 |
$field_defs['meta-robots-nofollow']['title'] = sprintf( $field_defs['meta-robots-nofollow']['title'], $post_type_object->labels->singular_name );
|
361 |
|
362 |
-
/* Adjust the robots advanced 'site-wide default' text string based on those settings */
|
363 |
$robots_adv = __( 'None', 'wordpress-seo' );
|
364 |
|
365 |
$field_defs['meta-robots-adv']['options']['-'] = sprintf( $field_defs['meta-robots-adv']['options']['-'], $robots_adv );
|
366 |
unset( $robots_adv );
|
367 |
|
368 |
|
369 |
-
/* Don't show the breadcrumb title field if breadcrumbs aren't enabled */
|
370 |
if ( WPSEO_Options::get( 'breadcrumbs-enable', false ) !== true && ! current_theme_supports( 'yoast-seo-breadcrumbs' ) ) {
|
371 |
unset( $field_defs['bctitle'] );
|
372 |
}
|
@@ -380,11 +380,11 @@ class WPSEO_Meta {
|
|
380 |
}
|
381 |
|
382 |
/**
|
383 |
-
* Filter the WPSEO metabox form field definitions for a tab
|
384 |
-
* {tab} can be 'general', 'advanced' or 'social'
|
385 |
*
|
386 |
-
* @param
|
387 |
-
* @param
|
388 |
*
|
389 |
* @return array
|
390 |
*/
|
@@ -392,12 +392,12 @@ class WPSEO_Meta {
|
|
392 |
}
|
393 |
|
394 |
/**
|
395 |
-
* Validate the post meta values
|
396 |
*
|
397 |
-
* @param
|
398 |
-
* @param
|
399 |
*
|
400 |
-
* @return string
|
401 |
*/
|
402 |
public static function sanitize_post_meta( $meta_value, $meta_key ) {
|
403 |
$field_def = self::$meta_fields[ self::$fields_index[ $meta_key ]['subset'] ][ self::$fields_index[ $meta_key ]['key'] ];
|
@@ -465,7 +465,7 @@ class WPSEO_Meta {
|
|
465 |
case ( $field_def['type'] === 'textarea' ):
|
466 |
if ( is_string( $meta_value ) ) {
|
467 |
// Remove line breaks and tabs.
|
468 |
-
// @todo [JRF => Yoast]
|
469 |
$meta_value = str_replace( array( "\n", "\r", "\t", ' ' ), ' ', $meta_value );
|
470 |
$clean = WPSEO_Utils::sanitize_text_field( trim( $meta_value ) );
|
471 |
}
|
@@ -491,13 +491,13 @@ class WPSEO_Meta {
|
|
491 |
}
|
492 |
|
493 |
/**
|
494 |
-
* Validate a meta-robots-adv meta value
|
495 |
*
|
496 |
-
* @todo [JRF => Yoast] Verify that this logic for the prioritisation is correct
|
497 |
*
|
498 |
-
* @param
|
499 |
*
|
500 |
-
* @return string
|
501 |
*/
|
502 |
public static function validate_meta_robots_adv( $meta_value ) {
|
503 |
$clean = self::$meta_fields['advanced']['meta-robots-adv']['default_value'];
|
@@ -538,18 +538,18 @@ class WPSEO_Meta {
|
|
538 |
}
|
539 |
|
540 |
/**
|
541 |
-
* Prevent saving of default values and remove potential old value from the database if replaced by a default
|
542 |
*
|
543 |
-
* @param
|
544 |
-
* @param
|
545 |
-
* @param
|
546 |
-
* @param
|
547 |
-
* @param
|
548 |
*
|
549 |
-
* @return null|bool
|
550 |
*/
|
551 |
public static function remove_meta_if_default( $check, $object_id, $meta_key, $meta_value, $prev_value = '' ) {
|
552 |
-
/* If it's one of our meta fields, check against default */
|
553 |
if ( isset( self::$fields_index[ $meta_key ] ) && self::meta_value_is_default( $meta_key, $meta_value ) === true ) {
|
554 |
if ( $prev_value !== '' ) {
|
555 |
delete_post_meta( $object_id, $meta_key, $prev_value );
|
@@ -565,17 +565,17 @@ class WPSEO_Meta {
|
|
565 |
}
|
566 |
|
567 |
/**
|
568 |
-
* Prevent adding of default values to the database
|
569 |
*
|
570 |
-
* @param
|
571 |
-
* @param
|
572 |
-
* @param
|
573 |
-
* @param
|
574 |
*
|
575 |
-
* @return null|bool
|
576 |
*/
|
577 |
public static function dont_save_meta_if_default( $check, $object_id, $meta_key, $meta_value ) {
|
578 |
-
/* If it's one of our meta fields, check against default */
|
579 |
if ( isset( self::$fields_index[ $meta_key ] ) && self::meta_value_is_default( $meta_key, $meta_value ) === true ) {
|
580 |
return true; // Stop saving the value.
|
581 |
}
|
@@ -586,8 +586,8 @@ class WPSEO_Meta {
|
|
586 |
/**
|
587 |
* Is the given meta value the same as the default value ?
|
588 |
*
|
589 |
-
* @param
|
590 |
-
* @param
|
591 |
*
|
592 |
* @return bool
|
593 |
*/
|
@@ -596,23 +596,24 @@ class WPSEO_Meta {
|
|
596 |
}
|
597 |
|
598 |
/**
|
599 |
-
* Get a custom post meta value
|
600 |
-
*
|
|
|
601 |
*
|
602 |
* {@internal Unfortunately there isn't a filter available to hook into before returning
|
603 |
* the results for get_post_meta(), get_post_custom() and the likes. That
|
604 |
* would have been the preferred solution.}}
|
605 |
*
|
606 |
-
* @param
|
607 |
-
* @param
|
608 |
*
|
609 |
-
* @return string
|
610 |
-
*
|
611 |
-
*
|
612 |
-
*
|
613 |
-
*
|
614 |
-
*
|
615 |
-
*
|
616 |
*/
|
617 |
public static function get_value( $key, $postid = 0 ) {
|
618 |
global $post;
|
@@ -657,13 +658,13 @@ class WPSEO_Meta {
|
|
657 |
}
|
658 |
|
659 |
/**
|
660 |
-
* Update a meta value for a post
|
661 |
*
|
662 |
-
* @param
|
663 |
-
* @param
|
664 |
-
* @param
|
665 |
*
|
666 |
-
* @return bool
|
667 |
*/
|
668 |
public static function set_value( $key, $meta_value, $post_id ) {
|
669 |
/*
|
@@ -676,12 +677,12 @@ class WPSEO_Meta {
|
|
676 |
}
|
677 |
|
678 |
/**
|
679 |
-
* Deletes a meta value for a post
|
680 |
*
|
681 |
* @param string $key The internal key of the meta value to change (without prefix).
|
682 |
* @param int $post_id The ID of the post to change the meta for.
|
683 |
*
|
684 |
-
* @return bool Whether the value was changed
|
685 |
*/
|
686 |
public static function delete( $key, $post_id ) {
|
687 |
return delete_post_meta( $post_id, self::$meta_prefix . $key );
|
@@ -692,9 +693,9 @@ class WPSEO_Meta {
|
|
692 |
* where no WPSEO meta data has been set.
|
693 |
* Optionally deletes the $old_metakey values.
|
694 |
*
|
695 |
-
* @param
|
696 |
-
* @param
|
697 |
-
* @param
|
698 |
*
|
699 |
* @return void
|
700 |
*/
|
@@ -740,9 +741,9 @@ class WPSEO_Meta {
|
|
740 |
}
|
741 |
|
742 |
/**
|
743 |
-
* General clean-up of the saved meta values
|
744 |
-
* - Remove potentially lingering old meta keys
|
745 |
-
* - Remove all default and invalid values
|
746 |
*
|
747 |
* @return void
|
748 |
*/
|
@@ -750,14 +751,14 @@ class WPSEO_Meta {
|
|
750 |
global $wpdb;
|
751 |
|
752 |
/*
|
753 |
-
* Clean up '_yoast_wpseo_meta-robots'
|
754 |
*
|
755 |
-
* Retrieve all '_yoast_wpseo_meta-robots' meta values and convert if no new values found
|
756 |
*
|
757 |
* {@internal Query is pretty well optimized this way.}}
|
758 |
*
|
759 |
-
* @todo [JRF => Yoast]
|
760 |
-
* to convert the data correctly
|
761 |
*/
|
762 |
$query = $wpdb->prepare(
|
763 |
"
|
@@ -799,8 +800,8 @@ class WPSEO_Meta {
|
|
799 |
|
800 |
|
801 |
/*
|
802 |
-
* Remove all default values and (most) invalid option values
|
803 |
-
* Invalid option values for the multiselect (meta-robots-adv) field will be dealt with seperately
|
804 |
*
|
805 |
* {@internal Some of the defaults have changed in v1.5, but as the defaults will
|
806 |
* be removed and new defaults will now automatically be passed when no
|
@@ -878,9 +879,9 @@ class WPSEO_Meta {
|
|
878 |
|
879 |
|
880 |
/*
|
881 |
-
* Deal with the multiselect (meta-robots-adv) field
|
882 |
*
|
883 |
-
* Removes invalid option combinations, such as 'none,noarchive'
|
884 |
*
|
885 |
* Default values have already been removed, so we should have a small result set and
|
886 |
* (hopefully) even smaller set of invalid results.
|
@@ -958,7 +959,7 @@ class WPSEO_Meta {
|
|
958 |
}
|
959 |
|
960 |
/**
|
961 |
-
* Counts the total of all the keywords being used for posts except the given one
|
962 |
*
|
963 |
* @param string $keyword The keyword to be counted.
|
964 |
* @param integer $post_id The is of the post to which the keyword belongs.
|
@@ -1009,16 +1010,17 @@ class WPSEO_Meta {
|
|
1009 |
/* ********************* DEPRECATED METHODS ********************* */
|
1010 |
|
1011 |
/**
|
1012 |
-
* Get a value from $_POST for a given key
|
1013 |
-
*
|
|
|
1014 |
*
|
1015 |
* @deprecated 9.6
|
1016 |
* @codeCoverageIgnore
|
1017 |
*
|
1018 |
-
* @param
|
1019 |
*
|
1020 |
-
* @return string
|
1021 |
-
*
|
1022 |
*/
|
1023 |
public static function get_post_value( $key ) {
|
1024 |
_deprecated_function( __METHOD__, 'WPSEO 9.6' );
|
11 |
*
|
12 |
* Some guidelines:
|
13 |
* - To update a meta value, you can just use update_post_meta() with the full (prefixed) meta key
|
14 |
+
* or the convenience method WPSEO_Meta::set_value() with the internal key.
|
15 |
+
* All updates will be automatically validated.
|
16 |
+
* Meta values will only be saved to the database if they are *not* the same as the default to
|
17 |
+
* keep database load low.
|
18 |
* - To retrieve a WPSEO meta value, you **must** use WPSEO_Meta::get_value() which will always return a
|
19 |
+
* string value, either the saved value or the default.
|
20 |
+
* This method can also retrieve a complete set of WPSEO meta values for one specific post, see
|
21 |
+
* the method documentation for the parameters.
|
22 |
*
|
23 |
* {@internal Unfortunately there isn't a filter available to hook into before returning the results
|
24 |
* for get_post_meta(), get_post_custom() and the likes. That would have been the
|
198 |
),
|
199 |
),
|
200 |
'social' => array(),
|
201 |
+
/* Fields we should validate & save, but not show on any form. */
|
202 |
'non_form' => array(
|
203 |
'linkdex' => array(
|
204 |
'type' => null,
|
251 |
);
|
252 |
|
253 |
/**
|
254 |
+
* Register our actions and filters.
|
255 |
*
|
256 |
* @return void
|
257 |
*/
|
272 |
unset( $option, $network, $box, $type );
|
273 |
|
274 |
/**
|
275 |
+
* Allow add-on plugins to register their meta fields for management by this class.
|
276 |
+
* Calls to add_filter() must be made before plugins_loaded prio 14.
|
277 |
*/
|
278 |
$extra_fields = apply_filters( 'add_extra_wpseo_meta_fields', array() );
|
279 |
if ( is_array( $extra_fields ) ) {
|
315 |
/**
|
316 |
* Retrieve the meta box form field definitions for the given tab and post type.
|
317 |
*
|
318 |
+
* @param string $tab Tab for which to retrieve the field definitions.
|
319 |
+
* @param string $post_type Post type of the current post.
|
320 |
*
|
321 |
+
* @return array Array containing the meta box field definitions.
|
322 |
*/
|
323 |
public static function get_meta_field_defs( $tab, $post_type = 'post' ) {
|
324 |
if ( ! isset( self::$meta_fields[ $tab ] ) ) {
|
359 |
$field_defs['meta-robots-noindex']['options']['0'] = sprintf( $field_defs['meta-robots-noindex']['options']['0'], ( ( WPSEO_Options::get( 'noindex-' . $post_type, false ) === true ) ? $field_defs['meta-robots-noindex']['options']['1'] : $field_defs['meta-robots-noindex']['options']['2'] ), $post_type_object->label );
|
360 |
$field_defs['meta-robots-nofollow']['title'] = sprintf( $field_defs['meta-robots-nofollow']['title'], $post_type_object->labels->singular_name );
|
361 |
|
362 |
+
/* Adjust the robots advanced 'site-wide default' text string based on those settings. */
|
363 |
$robots_adv = __( 'None', 'wordpress-seo' );
|
364 |
|
365 |
$field_defs['meta-robots-adv']['options']['-'] = sprintf( $field_defs['meta-robots-adv']['options']['-'], $robots_adv );
|
366 |
unset( $robots_adv );
|
367 |
|
368 |
|
369 |
+
/* Don't show the breadcrumb title field if breadcrumbs aren't enabled. */
|
370 |
if ( WPSEO_Options::get( 'breadcrumbs-enable', false ) !== true && ! current_theme_supports( 'yoast-seo-breadcrumbs' ) ) {
|
371 |
unset( $field_defs['bctitle'] );
|
372 |
}
|
380 |
}
|
381 |
|
382 |
/**
|
383 |
+
* Filter the WPSEO metabox form field definitions for a tab.
|
384 |
+
* {tab} can be 'general', 'advanced' or 'social'.
|
385 |
*
|
386 |
+
* @param array $field_defs Metabox form field definitions.
|
387 |
+
* @param string $post_type Post type of the post the metabox is for, defaults to 'post'.
|
388 |
*
|
389 |
* @return array
|
390 |
*/
|
392 |
}
|
393 |
|
394 |
/**
|
395 |
+
* Validate the post meta values.
|
396 |
*
|
397 |
+
* @param mixed $meta_value The new value.
|
398 |
+
* @param string $meta_key The full meta key (including prefix).
|
399 |
*
|
400 |
+
* @return string Validated meta value.
|
401 |
*/
|
402 |
public static function sanitize_post_meta( $meta_value, $meta_key ) {
|
403 |
$field_def = self::$meta_fields[ self::$fields_index[ $meta_key ]['subset'] ][ self::$fields_index[ $meta_key ]['key'] ];
|
465 |
case ( $field_def['type'] === 'textarea' ):
|
466 |
if ( is_string( $meta_value ) ) {
|
467 |
// Remove line breaks and tabs.
|
468 |
+
// @todo [JRF => Yoast] Verify that line breaks and the likes aren't allowed/recommended in meta header fields.
|
469 |
$meta_value = str_replace( array( "\n", "\r", "\t", ' ' ), ' ', $meta_value );
|
470 |
$clean = WPSEO_Utils::sanitize_text_field( trim( $meta_value ) );
|
471 |
}
|
491 |
}
|
492 |
|
493 |
/**
|
494 |
+
* Validate a meta-robots-adv meta value.
|
495 |
*
|
496 |
+
* @todo [JRF => Yoast] Verify that this logic for the prioritisation is correct.
|
497 |
*
|
498 |
+
* @param array|string $meta_value The value to validate.
|
499 |
*
|
500 |
+
* @return string Clean value.
|
501 |
*/
|
502 |
public static function validate_meta_robots_adv( $meta_value ) {
|
503 |
$clean = self::$meta_fields['advanced']['meta-robots-adv']['default_value'];
|
538 |
}
|
539 |
|
540 |
/**
|
541 |
+
* Prevent saving of default values and remove potential old value from the database if replaced by a default.
|
542 |
*
|
543 |
+
* @param bool $check The current status to allow updating metadata for the given type.
|
544 |
+
* @param int $object_id ID of the current object for which the meta is being updated.
|
545 |
+
* @param string $meta_key The full meta key (including prefix).
|
546 |
+
* @param string $meta_value New meta value.
|
547 |
+
* @param string $prev_value The old meta value.
|
548 |
*
|
549 |
+
* @return null|bool True = stop saving, null = continue saving.
|
550 |
*/
|
551 |
public static function remove_meta_if_default( $check, $object_id, $meta_key, $meta_value, $prev_value = '' ) {
|
552 |
+
/* If it's one of our meta fields, check against default. */
|
553 |
if ( isset( self::$fields_index[ $meta_key ] ) && self::meta_value_is_default( $meta_key, $meta_value ) === true ) {
|
554 |
if ( $prev_value !== '' ) {
|
555 |
delete_post_meta( $object_id, $meta_key, $prev_value );
|
565 |
}
|
566 |
|
567 |
/**
|
568 |
+
* Prevent adding of default values to the database.
|
569 |
*
|
570 |
+
* @param bool $check The current status to allow adding metadata for the given type.
|
571 |
+
* @param int $object_id ID of the current object for which the meta is being added.
|
572 |
+
* @param string $meta_key The full meta key (including prefix).
|
573 |
+
* @param string $meta_value New meta value.
|
574 |
*
|
575 |
+
* @return null|bool True = stop saving, null = continue saving.
|
576 |
*/
|
577 |
public static function dont_save_meta_if_default( $check, $object_id, $meta_key, $meta_value ) {
|
578 |
+
/* If it's one of our meta fields, check against default. */
|
579 |
if ( isset( self::$fields_index[ $meta_key ] ) && self::meta_value_is_default( $meta_key, $meta_value ) === true ) {
|
580 |
return true; // Stop saving the value.
|
581 |
}
|
586 |
/**
|
587 |
* Is the given meta value the same as the default value ?
|
588 |
*
|
589 |
+
* @param string $meta_key The full meta key (including prefix).
|
590 |
+
* @param mixed $meta_value The value to check.
|
591 |
*
|
592 |
* @return bool
|
593 |
*/
|
596 |
}
|
597 |
|
598 |
/**
|
599 |
+
* Get a custom post meta value.
|
600 |
+
*
|
601 |
+
* Returns the default value if the meta value has not been set.
|
602 |
*
|
603 |
* {@internal Unfortunately there isn't a filter available to hook into before returning
|
604 |
* the results for get_post_meta(), get_post_custom() and the likes. That
|
605 |
* would have been the preferred solution.}}
|
606 |
*
|
607 |
+
* @param string $key Internal key of the value to get (without prefix).
|
608 |
+
* @param int $postid Post ID of the post to get the value for.
|
609 |
*
|
610 |
+
* @return string All 'normal' values returned from get_post_meta() are strings.
|
611 |
+
* Objects and arrays are possible, but not used by this plugin
|
612 |
+
* and therefore discarted (except when the special 'serialized' field def
|
613 |
+
* value is set to true - only used by add-on plugins for now).
|
614 |
+
* Will return the default value if no value was found.
|
615 |
+
* Will return empty string if no default was found (not one of our keys) or
|
616 |
+
* if the post does not exist.
|
617 |
*/
|
618 |
public static function get_value( $key, $postid = 0 ) {
|
619 |
global $post;
|
658 |
}
|
659 |
|
660 |
/**
|
661 |
+
* Update a meta value for a post.
|
662 |
*
|
663 |
+
* @param string $key The internal key of the meta value to change (without prefix).
|
664 |
+
* @param mixed $meta_value The value to set the meta to.
|
665 |
+
* @param int $post_id The ID of the post to change the meta for.
|
666 |
*
|
667 |
+
* @return bool Whether the value was changed.
|
668 |
*/
|
669 |
public static function set_value( $key, $meta_value, $post_id ) {
|
670 |
/*
|
677 |
}
|
678 |
|
679 |
/**
|
680 |
+
* Deletes a meta value for a post.
|
681 |
*
|
682 |
* @param string $key The internal key of the meta value to change (without prefix).
|
683 |
* @param int $post_id The ID of the post to change the meta for.
|
684 |
*
|
685 |
+
* @return bool Whether the value was changed.
|
686 |
*/
|
687 |
public static function delete( $key, $post_id ) {
|
688 |
return delete_post_meta( $post_id, self::$meta_prefix . $key );
|
693 |
* where no WPSEO meta data has been set.
|
694 |
* Optionally deletes the $old_metakey values.
|
695 |
*
|
696 |
+
* @param string $old_metakey The old key of the meta value.
|
697 |
+
* @param string $new_metakey The new key, usually the WPSEO meta key (including prefix).
|
698 |
+
* @param bool $delete_old Whether to delete the old meta key/value-sets.
|
699 |
*
|
700 |
* @return void
|
701 |
*/
|
741 |
}
|
742 |
|
743 |
/**
|
744 |
+
* General clean-up of the saved meta values.
|
745 |
+
* - Remove potentially lingering old meta keys;
|
746 |
+
* - Remove all default and invalid values.
|
747 |
*
|
748 |
* @return void
|
749 |
*/
|
751 |
global $wpdb;
|
752 |
|
753 |
/*
|
754 |
+
* Clean up '_yoast_wpseo_meta-robots'.
|
755 |
*
|
756 |
+
* Retrieve all '_yoast_wpseo_meta-robots' meta values and convert if no new values found.
|
757 |
*
|
758 |
* {@internal Query is pretty well optimized this way.}}
|
759 |
*
|
760 |
+
* @todo [JRF => Yoast] Find out all possible values which the old '_yoast_wpseo_meta-robots' could contain
|
761 |
+
* to convert the data correctly.
|
762 |
*/
|
763 |
$query = $wpdb->prepare(
|
764 |
"
|
800 |
|
801 |
|
802 |
/*
|
803 |
+
* Remove all default values and (most) invalid option values.
|
804 |
+
* Invalid option values for the multiselect (meta-robots-adv) field will be dealt with seperately.
|
805 |
*
|
806 |
* {@internal Some of the defaults have changed in v1.5, but as the defaults will
|
807 |
* be removed and new defaults will now automatically be passed when no
|
879 |
|
880 |
|
881 |
/*
|
882 |
+
* Deal with the multiselect (meta-robots-adv) field.
|
883 |
*
|
884 |
+
* Removes invalid option combinations, such as 'none,noarchive'.
|
885 |
*
|
886 |
* Default values have already been removed, so we should have a small result set and
|
887 |
* (hopefully) even smaller set of invalid results.
|
959 |
}
|
960 |
|
961 |
/**
|
962 |
+
* Counts the total of all the keywords being used for posts except the given one.
|
963 |
*
|
964 |
* @param string $keyword The keyword to be counted.
|
965 |
* @param integer $post_id The is of the post to which the keyword belongs.
|
1010 |
/* ********************* DEPRECATED METHODS ********************* */
|
1011 |
|
1012 |
/**
|
1013 |
+
* Get a value from $_POST for a given key.
|
1014 |
+
*
|
1015 |
+
* Returns the $_POST value if exists, returns an empty string if key does not exist.
|
1016 |
*
|
1017 |
* @deprecated 9.6
|
1018 |
* @codeCoverageIgnore
|
1019 |
*
|
1020 |
+
* @param string $key Key of the value to get from $_POST.
|
1021 |
*
|
1022 |
+
* @return string Returns $_POST value, which will be a string the majority of the time.
|
1023 |
+
* Will return empty string if key does not exists in $_POST.
|
1024 |
*/
|
1025 |
public static function get_post_value( $key ) {
|
1026 |
_deprecated_function( __METHOD__, 'WPSEO 9.6' );
|
inc/class-wpseo-primary-term.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Represents a post's primary term
|
10 |
*/
|
11 |
class WPSEO_Primary_Term {
|
12 |
|
@@ -25,7 +25,7 @@ class WPSEO_Primary_Term {
|
|
25 |
protected $post_ID;
|
26 |
|
27 |
/**
|
28 |
-
* The taxonomy this term is part of
|
29 |
*
|
30 |
* @param string $taxonomy_name Taxonomy name for the term.
|
31 |
* @param int $post_id Post ID for the term.
|
@@ -36,7 +36,7 @@ class WPSEO_Primary_Term {
|
|
36 |
}
|
37 |
|
38 |
/**
|
39 |
-
* Returns the primary term ID
|
40 |
*
|
41 |
* @return int|bool
|
42 |
*/
|
@@ -54,7 +54,7 @@ class WPSEO_Primary_Term {
|
|
54 |
}
|
55 |
|
56 |
/**
|
57 |
-
* Sets the new primary term ID
|
58 |
*
|
59 |
* @param int $new_primary_term New primary term ID.
|
60 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Represents a post's primary term.
|
10 |
*/
|
11 |
class WPSEO_Primary_Term {
|
12 |
|
25 |
protected $post_ID;
|
26 |
|
27 |
/**
|
28 |
+
* The taxonomy this term is part of.
|
29 |
*
|
30 |
* @param string $taxonomy_name Taxonomy name for the term.
|
31 |
* @param int $post_id Post ID for the term.
|
36 |
}
|
37 |
|
38 |
/**
|
39 |
+
* Returns the primary term ID.
|
40 |
*
|
41 |
* @return int|bool
|
42 |
*/
|
54 |
}
|
55 |
|
56 |
/**
|
57 |
+
* Sets the new primary term ID.
|
58 |
*
|
59 |
* @param int $new_primary_term New primary term ID.
|
60 |
*/
|
inc/class-wpseo-rank.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Holder for SEO Rank information
|
10 |
*/
|
11 |
class WPSEO_Rank {
|
12 |
|
@@ -49,7 +49,7 @@ class WPSEO_Rank {
|
|
49 |
);
|
50 |
|
51 |
/**
|
52 |
-
* Holds the translation from seo score slug to actual score range
|
53 |
*
|
54 |
* @var array
|
55 |
*/
|
@@ -98,7 +98,7 @@ class WPSEO_Rank {
|
|
98 |
}
|
99 |
|
100 |
/**
|
101 |
-
* Returns a CSS class for this rank
|
102 |
*
|
103 |
* @return string
|
104 |
*/
|
@@ -115,7 +115,7 @@ class WPSEO_Rank {
|
|
115 |
}
|
116 |
|
117 |
/**
|
118 |
-
* Returns a label for this rank
|
119 |
*
|
120 |
* @return string
|
121 |
*/
|
@@ -132,7 +132,7 @@ class WPSEO_Rank {
|
|
132 |
}
|
133 |
|
134 |
/**
|
135 |
-
* Returns a label for use in a drop down
|
136 |
*
|
137 |
* @return mixed
|
138 |
*/
|
@@ -188,7 +188,7 @@ class WPSEO_Rank {
|
|
188 |
}
|
189 |
|
190 |
/**
|
191 |
-
* Returns a rank for a specific numeric score
|
192 |
*
|
193 |
* @param int $score The score to determine a rank for.
|
194 |
*
|
@@ -209,7 +209,7 @@ class WPSEO_Rank {
|
|
209 |
}
|
210 |
|
211 |
/**
|
212 |
-
* Returns a list of all possible SEO Ranks
|
213 |
*
|
214 |
* @return WPSEO_Rank[]
|
215 |
*/
|
@@ -218,7 +218,7 @@ class WPSEO_Rank {
|
|
218 |
}
|
219 |
|
220 |
/**
|
221 |
-
* Returns a list of all possible Readability Ranks
|
222 |
*
|
223 |
* @return WPSEO_Rank[]
|
224 |
*/
|
@@ -227,7 +227,7 @@ class WPSEO_Rank {
|
|
227 |
}
|
228 |
|
229 |
/**
|
230 |
-
* Converts a numeric rank into a WPSEO_Rank object, for use in functional array_* functions
|
231 |
*
|
232 |
* @param string $rank SEO Rank.
|
233 |
*
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Holder for SEO Rank information.
|
10 |
*/
|
11 |
class WPSEO_Rank {
|
12 |
|
49 |
);
|
50 |
|
51 |
/**
|
52 |
+
* Holds the translation from seo score slug to actual score range.
|
53 |
*
|
54 |
* @var array
|
55 |
*/
|
98 |
}
|
99 |
|
100 |
/**
|
101 |
+
* Returns a CSS class for this rank.
|
102 |
*
|
103 |
* @return string
|
104 |
*/
|
115 |
}
|
116 |
|
117 |
/**
|
118 |
+
* Returns a label for this rank.
|
119 |
*
|
120 |
* @return string
|
121 |
*/
|
132 |
}
|
133 |
|
134 |
/**
|
135 |
+
* Returns a label for use in a drop down.
|
136 |
*
|
137 |
* @return mixed
|
138 |
*/
|
188 |
}
|
189 |
|
190 |
/**
|
191 |
+
* Returns a rank for a specific numeric score.
|
192 |
*
|
193 |
* @param int $score The score to determine a rank for.
|
194 |
*
|
209 |
}
|
210 |
|
211 |
/**
|
212 |
+
* Returns a list of all possible SEO Ranks.
|
213 |
*
|
214 |
* @return WPSEO_Rank[]
|
215 |
*/
|
218 |
}
|
219 |
|
220 |
/**
|
221 |
+
* Returns a list of all possible Readability Ranks.
|
222 |
*
|
223 |
* @return WPSEO_Rank[]
|
224 |
*/
|
227 |
}
|
228 |
|
229 |
/**
|
230 |
+
* Converts a numeric rank into a WPSEO_Rank object, for use in functional array_* functions.
|
231 |
*
|
232 |
* @param string $rank SEO Rank.
|
233 |
*
|
inc/class-wpseo-replace-vars.php
CHANGED
@@ -22,7 +22,9 @@ if ( ! defined( 'WPSEO_VERSION' ) ) {
|
|
22 |
class WPSEO_Replace_Vars {
|
23 |
|
24 |
/**
|
25 |
-
*
|
|
|
|
|
26 |
*/
|
27 |
protected $defaults = array(
|
28 |
'ID' => '',
|
@@ -39,17 +41,23 @@ class WPSEO_Replace_Vars {
|
|
39 |
);
|
40 |
|
41 |
/**
|
42 |
-
*
|
|
|
|
|
43 |
*/
|
44 |
protected $args;
|
45 |
|
46 |
/**
|
47 |
-
*
|
|
|
|
|
48 |
*/
|
49 |
protected static $help_texts = array();
|
50 |
|
51 |
/**
|
52 |
-
*
|
|
|
|
|
53 |
*/
|
54 |
protected static $external_replacements = array();
|
55 |
|
@@ -85,15 +93,15 @@ class WPSEO_Replace_Vars {
|
|
85 |
*
|
86 |
* @see wpseo_register_var_replacement() for a usage example.
|
87 |
*
|
88 |
-
* @param
|
89 |
-
*
|
90 |
-
* @param
|
91 |
-
*
|
92 |
-
*
|
93 |
-
* @param
|
94 |
-
* @param
|
95 |
*
|
96 |
-
* @return bool
|
97 |
*/
|
98 |
public static function register_replacement( $var, $replace_function, $type = 'advanced', $help_text = '' ) {
|
99 |
$success = false;
|
@@ -169,8 +177,8 @@ class WPSEO_Replace_Vars {
|
|
169 |
*
|
170 |
* @api array $replacements The replacements.
|
171 |
*
|
172 |
-
* @param
|
173 |
-
*
|
174 |
*/
|
175 |
$replacements = apply_filters( 'wpseo_replacements', $replacements, $this->args );
|
176 |
|
@@ -219,7 +227,7 @@ class WPSEO_Replace_Vars {
|
|
219 |
|
220 |
$replacements = array();
|
221 |
|
222 |
-
// @todo
|
223 |
foreach ( $matches[1] as $k => $var ) {
|
224 |
|
225 |
// Don't set up replacements which should be omitted.
|
@@ -1042,9 +1050,9 @@ class WPSEO_Replace_Vars {
|
|
1042 |
/**
|
1043 |
* Create a variable help text table.
|
1044 |
*
|
1045 |
-
* @param
|
1046 |
*
|
1047 |
-
* @return
|
1048 |
*/
|
1049 |
private static function create_variable_help_table( $type ) {
|
1050 |
if ( ! in_array( $type, array( 'basic', 'advanced' ), true ) ) {
|
@@ -1099,8 +1107,8 @@ class WPSEO_Replace_Vars {
|
|
1099 |
/**
|
1100 |
* Set the help text for a user/plugin/theme defined extra variable.
|
1101 |
*
|
1102 |
-
* @param
|
1103 |
-
* @param
|
1104 |
*/
|
1105 |
private static function register_help_text( $type, WPSEO_Replacement_Variable $replacement_variable ) {
|
1106 |
$identifier = $replacement_variable->get_variable();
|
@@ -1239,7 +1247,7 @@ class WPSEO_Replace_Vars {
|
|
1239 |
/**
|
1240 |
* Retrieves the custom field names as an array.
|
1241 |
*
|
1242 |
-
* @
|
1243 |
*
|
1244 |
* @return array The custom fields.
|
1245 |
*/
|
@@ -1375,7 +1383,7 @@ class WPSEO_Replace_Vars {
|
|
1375 |
/**
|
1376 |
* Remove the '%%' delimiters from a variable string.
|
1377 |
*
|
1378 |
-
* @param
|
1379 |
*
|
1380 |
* @return string
|
1381 |
*/
|
@@ -1386,7 +1394,7 @@ class WPSEO_Replace_Vars {
|
|
1386 |
/**
|
1387 |
* Add the '%%' delimiters to a variable string.
|
1388 |
*
|
1389 |
-
* @param
|
1390 |
*
|
1391 |
* @return string
|
1392 |
*/
|
22 |
class WPSEO_Replace_Vars {
|
23 |
|
24 |
/**
|
25 |
+
* Default post/page/cpt information.
|
26 |
+
*
|
27 |
+
* @var array
|
28 |
*/
|
29 |
protected $defaults = array(
|
30 |
'ID' => '',
|
41 |
);
|
42 |
|
43 |
/**
|
44 |
+
* Current post/page/cpt information.
|
45 |
+
*
|
46 |
+
* @var object
|
47 |
*/
|
48 |
protected $args;
|
49 |
|
50 |
/**
|
51 |
+
* Help texts for use in WPSEO -> Search appearance tabs.
|
52 |
+
*
|
53 |
+
* @var array
|
54 |
*/
|
55 |
protected static $help_texts = array();
|
56 |
|
57 |
/**
|
58 |
+
* Register of additional variable replacements registered by other plugins/themes.
|
59 |
+
*
|
60 |
+
* @var array
|
61 |
*/
|
62 |
protected static $external_replacements = array();
|
63 |
|
93 |
*
|
94 |
* @see wpseo_register_var_replacement() for a usage example.
|
95 |
*
|
96 |
+
* @param string $var The name of the variable to replace, i.e. '%%var%%'.
|
97 |
+
* Note: the surrounding %% are optional.
|
98 |
+
* @param mixed $replace_function Function or method to call to retrieve the replacement value for the variable.
|
99 |
+
* Uses the same format as add_filter/add_action function parameter and
|
100 |
+
* should *return* the replacement value. DON'T echo it.
|
101 |
+
* @param string $type Type of variable: 'basic' or 'advanced', defaults to 'advanced'.
|
102 |
+
* @param string $help_text Help text to be added to the help tab for this variable.
|
103 |
*
|
104 |
+
* @return bool Whether the replacement function was succesfully registered.
|
105 |
*/
|
106 |
public static function register_replacement( $var, $replace_function, $type = 'advanced', $help_text = '' ) {
|
107 |
$success = false;
|
177 |
*
|
178 |
* @api array $replacements The replacements.
|
179 |
*
|
180 |
+
* @param array $args The object some of the replacement values might come from,
|
181 |
+
* could be a post, taxonomy or term.
|
182 |
*/
|
183 |
$replacements = apply_filters( 'wpseo_replacements', $replacements, $this->args );
|
184 |
|
227 |
|
228 |
$replacements = array();
|
229 |
|
230 |
+
// @todo Figure out a way to deal with external functions starting with cf_/ct_.
|
231 |
foreach ( $matches[1] as $k => $var ) {
|
232 |
|
233 |
// Don't set up replacements which should be omitted.
|
1050 |
/**
|
1051 |
* Create a variable help text table.
|
1052 |
*
|
1053 |
+
* @param string $type Either 'basic' or 'advanced'.
|
1054 |
*
|
1055 |
+
* @return string Help text table.
|
1056 |
*/
|
1057 |
private static function create_variable_help_table( $type ) {
|
1058 |
if ( ! in_array( $type, array( 'basic', 'advanced' ), true ) ) {
|
1107 |
/**
|
1108 |
* Set the help text for a user/plugin/theme defined extra variable.
|
1109 |
*
|
1110 |
+
* @param string $type Type of variable: 'basic' or 'advanced'.
|
1111 |
+
* @param WPSEO_Replacement_Variable $replacement_variable The replacement variable to register.
|
1112 |
*/
|
1113 |
private static function register_help_text( $type, WPSEO_Replacement_Variable $replacement_variable ) {
|
1114 |
$identifier = $replacement_variable->get_variable();
|
1247 |
/**
|
1248 |
* Retrieves the custom field names as an array.
|
1249 |
*
|
1250 |
+
* @link WordPress core: wp-admin/includes/template.php. Reused query from it.
|
1251 |
*
|
1252 |
* @return array The custom fields.
|
1253 |
*/
|
1383 |
/**
|
1384 |
* Remove the '%%' delimiters from a variable string.
|
1385 |
*
|
1386 |
+
* @param string $string Variable string to be cleaned.
|
1387 |
*
|
1388 |
* @return string
|
1389 |
*/
|
1394 |
/**
|
1395 |
* Add the '%%' delimiters to a variable string.
|
1396 |
*
|
1397 |
+
* @param string $string Variable string to be delimited.
|
1398 |
*
|
1399 |
* @return string
|
1400 |
*/
|
inc/class-wpseo-replacement-variable.php
CHANGED
@@ -7,24 +7,30 @@
|
|
7 |
*/
|
8 |
|
9 |
/**
|
10 |
-
* Class WPSEO_Replacement_Variable
|
11 |
*
|
12 |
* This class stores the data of a single snippet variable.
|
13 |
*/
|
14 |
class WPSEO_Replacement_Variable {
|
15 |
|
16 |
/**
|
17 |
-
*
|
|
|
|
|
18 |
*/
|
19 |
protected $variable;
|
20 |
|
21 |
/**
|
22 |
-
*
|
|
|
|
|
23 |
*/
|
24 |
protected $label;
|
25 |
|
26 |
/**
|
27 |
-
*
|
|
|
|
|
28 |
*/
|
29 |
protected $description;
|
30 |
|
7 |
*/
|
8 |
|
9 |
/**
|
10 |
+
* Class WPSEO_Replacement_Variable.
|
11 |
*
|
12 |
* This class stores the data of a single snippet variable.
|
13 |
*/
|
14 |
class WPSEO_Replacement_Variable {
|
15 |
|
16 |
/**
|
17 |
+
* The variable to use.
|
18 |
+
*
|
19 |
+
* @var string
|
20 |
*/
|
21 |
protected $variable;
|
22 |
|
23 |
/**
|
24 |
+
* The label of the replacement variable.
|
25 |
+
*
|
26 |
+
* @var string
|
27 |
*/
|
28 |
protected $label;
|
29 |
|
30 |
/**
|
31 |
+
* The description of the replacement variable.
|
32 |
+
*
|
33 |
+
* @var string
|
34 |
*/
|
35 |
protected $description;
|
36 |
|
inc/class-wpseo-shortlinker.php
CHANGED
@@ -6,9 +6,10 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Helps with creating shortlinks in the plugin
|
10 |
*/
|
11 |
class WPSEO_Shortlinker {
|
|
|
12 |
/**
|
13 |
* Collects the additional data necessary for the shortlink.
|
14 |
*
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Helps with creating shortlinks in the plugin.
|
10 |
*/
|
11 |
class WPSEO_Shortlinker {
|
12 |
+
|
13 |
/**
|
14 |
* Collects the additional data necessary for the shortlink.
|
15 |
*
|
inc/class-wpseo-statistics.php
CHANGED
@@ -6,14 +6,14 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class that generates interesting statistics about things
|
10 |
*/
|
11 |
class WPSEO_Statistics {
|
12 |
|
13 |
/**
|
14 |
-
* Returns the post count for a certain SEO rank
|
15 |
*
|
16 |
-
* @todo Merge/DRY this with the logic virtually the same in WPSEO_Metabox::column_sort_orderby()
|
17 |
*
|
18 |
* @param WPSEO_Rank $rank The SEO rank to get the post count for.
|
19 |
*
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class that generates interesting statistics about things.
|
10 |
*/
|
11 |
class WPSEO_Statistics {
|
12 |
|
13 |
/**
|
14 |
+
* Returns the post count for a certain SEO rank.
|
15 |
*
|
16 |
+
* @todo Merge/DRY this with the logic virtually the same in WPSEO_Metabox::column_sort_orderby().
|
17 |
*
|
18 |
* @param WPSEO_Rank $rank The SEO rank to get the post count for.
|
19 |
*
|
inc/class-wpseo-utils.php
CHANGED
@@ -13,14 +13,20 @@
|
|
13 |
class WPSEO_Utils {
|
14 |
|
15 |
/**
|
16 |
-
*
|
|
|
17 |
* @since 1.8.0
|
|
|
|
|
18 |
*/
|
19 |
public static $has_filters;
|
20 |
|
21 |
/**
|
22 |
-
*
|
|
|
23 |
* @since 3.3.2
|
|
|
|
|
24 |
*/
|
25 |
protected static $console_notifications = array();
|
26 |
|
@@ -254,14 +260,14 @@ class WPSEO_Utils {
|
|
254 |
/**
|
255 |
* Emulate the WP native sanitize_text_field function in a %%variable%% safe way.
|
256 |
*
|
257 |
-
* @
|
258 |
*
|
259 |
* Sanitize a string from user input or from the db.
|
260 |
*
|
261 |
-
* - Check for invalid UTF-8
|
262 |
-
* - Convert single < characters to entity
|
263 |
-
* - Strip all tags
|
264 |
-
* - Remove line breaks, tabs and extra white space
|
265 |
* - Strip octets - BUT DO NOT REMOVE (part of) VARIABLES WHICH WILL BE REPLACED.
|
266 |
*
|
267 |
* @since 1.8.0
|
@@ -508,33 +514,33 @@ class WPSEO_Utils {
|
|
508 |
/**
|
509 |
* Do simple reliable math calculations without the risk of wrong results.
|
510 |
*
|
511 |
-
* @
|
512 |
-
* @
|
513 |
*
|
514 |
* In the rare case that the bcmath extension would not be loaded, it will return the normal calculation results.
|
515 |
*
|
516 |
* @since 1.5.0
|
517 |
* @since 1.8.0 Moved from stand-alone function to this class.
|
518 |
*
|
519 |
-
* @param mixed $number1
|
520 |
-
* @param string $action
|
521 |
-
*
|
522 |
-
*
|
523 |
-
*
|
524 |
-
*
|
525 |
-
*
|
526 |
-
*
|
527 |
-
* @param mixed $number2
|
528 |
-
* @param bool $round
|
529 |
-
*
|
530 |
-
* @param int $decimals
|
531 |
-
* @param int $precision
|
532 |
-
*
|
533 |
-
* @return mixed
|
534 |
-
*
|
535 |
-
*
|
536 |
-
*
|
537 |
-
*
|
538 |
*/
|
539 |
public static function calc( $number1, $action, $number2, $round = false, $decimals = 0, $precision = 10 ) {
|
540 |
static $bc;
|
@@ -1122,7 +1128,7 @@ SVG;
|
|
1122 |
|
1123 |
/**
|
1124 |
* Returns the original URL instead of the language-enriched URL.
|
1125 |
-
* This method gets automatically triggered by the wpml_get_home_url filter
|
1126 |
*
|
1127 |
* @codeCoverageIgnore
|
1128 |
*
|
13 |
class WPSEO_Utils {
|
14 |
|
15 |
/**
|
16 |
+
* Whether the PHP filter extension is enabled.
|
17 |
+
*
|
18 |
* @since 1.8.0
|
19 |
+
*
|
20 |
+
* @var bool $has_filters
|
21 |
*/
|
22 |
public static $has_filters;
|
23 |
|
24 |
/**
|
25 |
+
* Notifications to be shown in the JavaScript console.
|
26 |
+
*
|
27 |
* @since 3.3.2
|
28 |
+
*
|
29 |
+
* @var array
|
30 |
*/
|
31 |
protected static $console_notifications = array();
|
32 |
|
260 |
/**
|
261 |
* Emulate the WP native sanitize_text_field function in a %%variable%% safe way.
|
262 |
*
|
263 |
+
* @link https://core.trac.wordpress.org/browser/trunk/src/wp-includes/formatting.php for the original.
|
264 |
*
|
265 |
* Sanitize a string from user input or from the db.
|
266 |
*
|
267 |
+
* - Check for invalid UTF-8;
|
268 |
+
* - Convert single < characters to entity;
|
269 |
+
* - Strip all tags;
|
270 |
+
* - Remove line breaks, tabs and extra white space;
|
271 |
* - Strip octets - BUT DO NOT REMOVE (part of) VARIABLES WHICH WILL BE REPLACED.
|
272 |
*
|
273 |
* @since 1.8.0
|
514 |
/**
|
515 |
* Do simple reliable math calculations without the risk of wrong results.
|
516 |
*
|
517 |
+
* @link http://floating-point-gui.de/
|
518 |
+
* @link http://php.net/language.types.float.php See the big red warning.
|
519 |
*
|
520 |
* In the rare case that the bcmath extension would not be loaded, it will return the normal calculation results.
|
521 |
*
|
522 |
* @since 1.5.0
|
523 |
* @since 1.8.0 Moved from stand-alone function to this class.
|
524 |
*
|
525 |
+
* @param mixed $number1 Scalar (string/int/float/bool).
|
526 |
+
* @param string $action Calculation action to execute. Valid input:
|
527 |
+
* '+' or 'add' or 'addition',
|
528 |
+
* '-' or 'sub' or 'subtract',
|
529 |
+
* '*' or 'mul' or 'multiply',
|
530 |
+
* '/' or 'div' or 'divide',
|
531 |
+
* '%' or 'mod' or 'modulus'
|
532 |
+
* '=' or 'comp' or 'compare'.
|
533 |
+
* @param mixed $number2 Scalar (string/int/float/bool).
|
534 |
+
* @param bool $round Whether or not to round the result. Defaults to false.
|
535 |
+
* Will be disregarded for a compare operation.
|
536 |
+
* @param int $decimals Decimals for rounding operation. Defaults to 0.
|
537 |
+
* @param int $precision Calculation precision. Defaults to 10.
|
538 |
+
*
|
539 |
+
* @return mixed Calculation Result or false if either or the numbers isn't scalar or
|
540 |
+
* an invalid operation was passed.
|
541 |
+
* - For compare the result will always be an integer.
|
542 |
+
* - For all other operations, the result will either be an integer (preferred)
|
543 |
+
* or a float.
|
544 |
*/
|
545 |
public static function calc( $number1, $action, $number2, $round = false, $decimals = 0, $precision = 10 ) {
|
546 |
static $bc;
|
1128 |
|
1129 |
/**
|
1130 |
* Returns the original URL instead of the language-enriched URL.
|
1131 |
+
* This method gets automatically triggered by the wpml_get_home_url filter.
|
1132 |
*
|
1133 |
* @codeCoverageIgnore
|
1134 |
*
|
inc/class-wpseo-validator.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Validator
|
10 |
*/
|
11 |
class WPSEO_Validator {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Validator.
|
10 |
*/
|
11 |
class WPSEO_Validator {
|
12 |
|
inc/endpoints/class-myyoast-connect.php
CHANGED
@@ -98,11 +98,11 @@ class WPSEO_Endpoint_MyYoast_Connect implements WPSEO_Endpoint {
|
|
98 |
}
|
99 |
|
100 |
/**
|
101 |
-
* Retrieves the current client
|
102 |
*
|
103 |
* @codeCoverageIgnore
|
104 |
*
|
105 |
-
* @return array The client
|
106 |
*/
|
107 |
protected function get_client_id() {
|
108 |
$config = $this->get_client()->get_configuration();
|
@@ -128,11 +128,11 @@ class WPSEO_Endpoint_MyYoast_Connect implements WPSEO_Endpoint {
|
|
128 |
}
|
129 |
|
130 |
/**
|
131 |
-
* Wraps the method for retrieving the home
|
132 |
*
|
133 |
* @codeCoverageIgnore
|
134 |
*
|
135 |
-
* @return string Home
|
136 |
*/
|
137 |
protected function get_home_url() {
|
138 |
return WPSEO_Utils::get_home_url();
|
98 |
}
|
99 |
|
100 |
/**
|
101 |
+
* Retrieves the current client ID.
|
102 |
*
|
103 |
* @codeCoverageIgnore
|
104 |
*
|
105 |
+
* @return array The client ID.
|
106 |
*/
|
107 |
protected function get_client_id() {
|
108 |
$config = $this->get_client()->get_configuration();
|
128 |
}
|
129 |
|
130 |
/**
|
131 |
+
* Wraps the method for retrieving the home URL.
|
132 |
*
|
133 |
* @codeCoverageIgnore
|
134 |
*
|
135 |
+
* @return string Home URL.
|
136 |
*/
|
137 |
protected function get_home_url() {
|
138 |
return WPSEO_Utils::get_home_url();
|
inc/exceptions/class-invalid-argument-exception.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Invalid_Argument_Exception
|
10 |
*/
|
11 |
class WPSEO_Invalid_Argument_Exception extends InvalidArgumentException {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Invalid_Argument_Exception.
|
10 |
*/
|
11 |
class WPSEO_Invalid_Argument_Exception extends InvalidArgumentException {
|
12 |
|
inc/exceptions/class-invalid-indexable-exception.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Invalid_Indexable_Exception
|
10 |
*/
|
11 |
class WPSEO_Invalid_Indexable_Exception extends InvalidArgumentException {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Invalid_Indexable_Exception.
|
10 |
*/
|
11 |
class WPSEO_Invalid_Indexable_Exception extends InvalidArgumentException {
|
12 |
|
inc/exceptions/class-myyoast-authentication-exception.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_MyYoast_Authentication_Exception
|
10 |
*/
|
11 |
class WPSEO_MyYoast_Authentication_Exception extends WPSEO_MyYoast_Bad_Request_Exception {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_MyYoast_Authentication_Exception.
|
10 |
*/
|
11 |
class WPSEO_MyYoast_Authentication_Exception extends WPSEO_MyYoast_Bad_Request_Exception {
|
12 |
|
inc/exceptions/class-myyoast-bad-request-exception.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_MyYoast_Bad_Request_Exception
|
10 |
*/
|
11 |
class WPSEO_MyYoast_Bad_Request_Exception extends Exception {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_MyYoast_Bad_Request_Exception.
|
10 |
*/
|
11 |
class WPSEO_MyYoast_Bad_Request_Exception extends Exception {
|
12 |
|
inc/exceptions/class-myyoast-invalid-json-exception.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_MyYoast_Invalid_JSON_Exception
|
10 |
*/
|
11 |
class WPSEO_MyYoast_Invalid_JSON_Exception extends WPSEO_MyYoast_Bad_Request_Exception {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_MyYoast_Invalid_JSON_Exception.
|
10 |
*/
|
11 |
class WPSEO_MyYoast_Invalid_JSON_Exception extends WPSEO_MyYoast_Bad_Request_Exception {
|
12 |
|
inc/exceptions/class-rest-request-exception.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_REST_Request_Exception
|
10 |
*/
|
11 |
class WPSEO_REST_Request_Exception extends Exception {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_REST_Request_Exception.
|
10 |
*/
|
11 |
class WPSEO_REST_Request_Exception extends Exception {
|
12 |
|
inc/indexables/class-indexable.php
CHANGED
@@ -6,22 +6,28 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Indexable
|
10 |
*/
|
11 |
abstract class WPSEO_Indexable {
|
12 |
|
13 |
/**
|
14 |
-
*
|
|
|
|
|
15 |
*/
|
16 |
protected $updateable_fields = array();
|
17 |
|
18 |
/**
|
19 |
-
*
|
|
|
|
|
20 |
*/
|
21 |
protected $data;
|
22 |
|
23 |
/**
|
24 |
-
*
|
|
|
|
|
25 |
*/
|
26 |
protected $validators = array(
|
27 |
'WPSEO_Object_Type_Validator',
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Indexable.
|
10 |
*/
|
11 |
abstract class WPSEO_Indexable {
|
12 |
|
13 |
/**
|
14 |
+
* The updateable fields.
|
15 |
+
*
|
16 |
+
* @var array
|
17 |
*/
|
18 |
protected $updateable_fields = array();
|
19 |
|
20 |
/**
|
21 |
+
* The indexable's data.
|
22 |
+
*
|
23 |
+
* @var array
|
24 |
*/
|
25 |
protected $data;
|
26 |
|
27 |
/**
|
28 |
+
* The available validators to run.
|
29 |
+
*
|
30 |
+
* @var array
|
31 |
*/
|
32 |
protected $validators = array(
|
33 |
'WPSEO_Object_Type_Validator',
|
inc/indexables/class-object-type.php
CHANGED
@@ -6,27 +6,35 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Post_Indexable
|
10 |
*/
|
11 |
abstract class WPSEO_Object_Type {
|
12 |
|
13 |
/**
|
14 |
-
*
|
|
|
|
|
15 |
*/
|
16 |
protected $id;
|
17 |
|
18 |
/**
|
19 |
-
*
|
|
|
|
|
20 |
*/
|
21 |
protected $type;
|
22 |
|
23 |
/**
|
24 |
-
*
|
|
|
|
|
25 |
*/
|
26 |
protected $sub_type;
|
27 |
|
28 |
/**
|
29 |
-
*
|
|
|
|
|
30 |
*/
|
31 |
protected $permalink;
|
32 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Post_Indexable.
|
10 |
*/
|
11 |
abstract class WPSEO_Object_Type {
|
12 |
|
13 |
/**
|
14 |
+
* The ID of the object.
|
15 |
+
*
|
16 |
+
* @var int
|
17 |
*/
|
18 |
protected $id;
|
19 |
|
20 |
/**
|
21 |
+
* The type of the object.
|
22 |
+
*
|
23 |
+
* @var string
|
24 |
*/
|
25 |
protected $type;
|
26 |
|
27 |
/**
|
28 |
+
* The subtype of the object.
|
29 |
+
*
|
30 |
+
* @var string
|
31 |
*/
|
32 |
protected $sub_type;
|
33 |
|
34 |
/**
|
35 |
+
* The permalink of the object.
|
36 |
+
*
|
37 |
+
* @var string
|
38 |
*/
|
39 |
protected $permalink;
|
40 |
|
inc/indexables/class-post-indexable.php
CHANGED
@@ -6,12 +6,14 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Post_Indexable
|
10 |
*/
|
11 |
class WPSEO_Post_Indexable extends WPSEO_Indexable {
|
12 |
|
13 |
/**
|
14 |
-
*
|
|
|
|
|
15 |
*/
|
16 |
protected $updateable_fields = array(
|
17 |
'canonical',
|
@@ -39,7 +41,7 @@ class WPSEO_Post_Indexable extends WPSEO_Indexable {
|
|
39 |
/**
|
40 |
* Creates a new Indexable from a passed object.
|
41 |
*
|
42 |
-
* @param int $object_id The object
|
43 |
*
|
44 |
* @return WPSEO_Indexable The indexable.
|
45 |
*
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Post_Indexable.
|
10 |
*/
|
11 |
class WPSEO_Post_Indexable extends WPSEO_Indexable {
|
12 |
|
13 |
/**
|
14 |
+
* The updateable fields.
|
15 |
+
*
|
16 |
+
* @var array
|
17 |
*/
|
18 |
protected $updateable_fields = array(
|
19 |
'canonical',
|
41 |
/**
|
42 |
* Creates a new Indexable from a passed object.
|
43 |
*
|
44 |
+
* @param int $object_id The object ID to create the object for.
|
45 |
*
|
46 |
* @return WPSEO_Indexable The indexable.
|
47 |
*
|
inc/indexables/class-post-object-type.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Post_Object_Type
|
10 |
*/
|
11 |
class WPSEO_Post_Object_Type extends WPSEO_Object_Type {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Post_Object_Type.
|
10 |
*/
|
11 |
class WPSEO_Post_Object_Type extends WPSEO_Object_Type {
|
12 |
|
inc/indexables/class-term-indexable.php
CHANGED
@@ -6,12 +6,14 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Term_Indexable
|
10 |
*/
|
11 |
class WPSEO_Term_Indexable extends WPSEO_Indexable {
|
12 |
|
13 |
/**
|
14 |
-
*
|
|
|
|
|
15 |
*/
|
16 |
protected $updateable_fields = array(
|
17 |
'canonical',
|
@@ -34,7 +36,7 @@ class WPSEO_Term_Indexable extends WPSEO_Indexable {
|
|
34 |
/**
|
35 |
* Creates a new Indexable from a passed object.
|
36 |
*
|
37 |
-
* @param int $object_id The object
|
38 |
*
|
39 |
* @return WPSEO_Indexable The indexable.
|
40 |
*
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Term_Indexable.
|
10 |
*/
|
11 |
class WPSEO_Term_Indexable extends WPSEO_Indexable {
|
12 |
|
13 |
/**
|
14 |
+
* The updateable fields.
|
15 |
+
*
|
16 |
+
* @var array
|
17 |
*/
|
18 |
protected $updateable_fields = array(
|
19 |
'canonical',
|
36 |
/**
|
37 |
* Creates a new Indexable from a passed object.
|
38 |
*
|
39 |
+
* @param int $object_id The object ID to create the object for.
|
40 |
*
|
41 |
* @return WPSEO_Indexable The indexable.
|
42 |
*
|
inc/indexables/class-term-object-type.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Term_Object_Type
|
10 |
*/
|
11 |
class WPSEO_Term_Object_Type extends WPSEO_Object_Type {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Term_Object_Type.
|
10 |
*/
|
11 |
class WPSEO_Term_Object_Type extends WPSEO_Object_Type {
|
12 |
|
inc/indexables/validators/class-endpoint-validator.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Interface WPSEO_Endpoint_Validator
|
10 |
*/
|
11 |
interface WPSEO_Endpoint_Validator {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Interface WPSEO_Endpoint_Validator.
|
10 |
*/
|
11 |
interface WPSEO_Endpoint_Validator {
|
12 |
|
inc/indexables/validators/class-keyword-validator.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Keyword_Validator
|
10 |
*/
|
11 |
class WPSEO_Keyword_Validator implements WPSEO_Endpoint_Validator {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Keyword_Validator.
|
10 |
*/
|
11 |
class WPSEO_Keyword_Validator implements WPSEO_Endpoint_Validator {
|
12 |
|
inc/indexables/validators/class-link-validator.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Link_Validator
|
10 |
*/
|
11 |
class WPSEO_Link_Validator implements WPSEO_Endpoint_Validator {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Link_Validator.
|
10 |
*/
|
11 |
class WPSEO_Link_Validator implements WPSEO_Endpoint_Validator {
|
12 |
|
inc/indexables/validators/class-meta-values-validator.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Meta_Values_Validator
|
10 |
*/
|
11 |
class WPSEO_Meta_Values_Validator implements WPSEO_Endpoint_Validator {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Meta_Values_Validator.
|
10 |
*/
|
11 |
class WPSEO_Meta_Values_Validator implements WPSEO_Endpoint_Validator {
|
12 |
|
inc/indexables/validators/class-object-type-validator.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Object_Type_Validator
|
10 |
*/
|
11 |
class WPSEO_Object_Type_Validator implements WPSEO_Endpoint_Validator {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Object_Type_Validator.
|
10 |
*/
|
11 |
class WPSEO_Object_Type_Validator implements WPSEO_Endpoint_Validator {
|
12 |
|
inc/indexables/validators/class-opengraph-validator.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_OpenGraph_Validator
|
10 |
*/
|
11 |
class WPSEO_OpenGraph_Validator implements WPSEO_Endpoint_Validator {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_OpenGraph_Validator.
|
10 |
*/
|
11 |
class WPSEO_OpenGraph_Validator implements WPSEO_Endpoint_Validator {
|
12 |
|
inc/indexables/validators/class-robots-validator.php
CHANGED
@@ -6,12 +6,14 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Robots_Validator
|
10 |
*/
|
11 |
class WPSEO_Robots_Validator implements WPSEO_Endpoint_Validator {
|
12 |
|
13 |
/**
|
14 |
-
*
|
|
|
|
|
15 |
*/
|
16 |
private $robots_to_validate = array(
|
17 |
'is_robots_nofollow',
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Robots_Validator.
|
10 |
*/
|
11 |
class WPSEO_Robots_Validator implements WPSEO_Endpoint_Validator {
|
12 |
|
13 |
/**
|
14 |
+
* The robots keys to validate.
|
15 |
+
*
|
16 |
+
* @var array
|
17 |
*/
|
18 |
private $robots_to_validate = array(
|
19 |
'is_robots_nofollow',
|
inc/indexables/validators/class-twitter-validator.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Twitter_Validator
|
10 |
*/
|
11 |
class WPSEO_Twitter_Validator implements WPSEO_Endpoint_Validator {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Twitter_Validator.
|
10 |
*/
|
11 |
class WPSEO_Twitter_Validator implements WPSEO_Endpoint_Validator {
|
12 |
|
inc/interface-wpseo-wordpress-integration.php
CHANGED
@@ -7,12 +7,12 @@
|
|
7 |
|
8 |
if ( ! interface_exists( 'WPSEO_WordPress_Integration' ) ) {
|
9 |
/**
|
10 |
-
* An interface for registering integrations with WordPress
|
11 |
*/
|
12 |
interface WPSEO_WordPress_Integration {
|
13 |
|
14 |
/**
|
15 |
-
* Registers all hooks to WordPress
|
16 |
*
|
17 |
* @return void
|
18 |
*/
|
7 |
|
8 |
if ( ! interface_exists( 'WPSEO_WordPress_Integration' ) ) {
|
9 |
/**
|
10 |
+
* An interface for registering integrations with WordPress.
|
11 |
*/
|
12 |
interface WPSEO_WordPress_Integration {
|
13 |
|
14 |
/**
|
15 |
+
* Registers all hooks to WordPress.
|
16 |
*
|
17 |
* @return void
|
18 |
*/
|
inc/options/class-wpseo-option-ms.php
CHANGED
@@ -14,38 +14,50 @@
|
|
14 |
class WPSEO_Option_MS extends WPSEO_Option {
|
15 |
|
16 |
/**
|
17 |
-
*
|
|
|
|
|
18 |
*/
|
19 |
public $option_name = 'wpseo_ms';
|
20 |
|
21 |
/**
|
22 |
-
*
|
|
|
|
|
23 |
*/
|
24 |
public $group_name = 'yoast_wpseo_multisite_options';
|
25 |
|
26 |
/**
|
27 |
-
*
|
|
|
|
|
28 |
*/
|
29 |
public $include_in_all = false;
|
30 |
|
31 |
/**
|
32 |
-
*
|
|
|
|
|
33 |
*/
|
34 |
public $multisite_only = true;
|
35 |
|
36 |
/**
|
37 |
-
*
|
38 |
-
*
|
|
|
|
|
|
|
39 |
*/
|
40 |
protected $defaults = array();
|
41 |
|
42 |
/**
|
43 |
-
*
|
44 |
-
* Used for input validation
|
45 |
*
|
46 |
* {@internal Important: Make sure the options added to the array here are in line
|
47 |
* with the keys for the options set for the select box in the
|
48 |
* admin/pages/network.php file.}}
|
|
|
|
|
49 |
*/
|
50 |
public static $allowed_access_options = array(
|
51 |
'admin',
|
@@ -53,7 +65,7 @@ class WPSEO_Option_MS extends WPSEO_Option {
|
|
53 |
);
|
54 |
|
55 |
/**
|
56 |
-
* Get the singleton instance of this class
|
57 |
*
|
58 |
* @return object
|
59 |
*/
|
@@ -91,7 +103,7 @@ class WPSEO_Option_MS extends WPSEO_Option {
|
|
91 |
/**
|
92 |
* Add filters to make sure that the option default is returned if the option is not set
|
93 |
*
|
94 |
-
* @return
|
95 |
*/
|
96 |
public function add_default_filters() {
|
97 |
// Don't change, needs to check for false as could return prio 0 which would evaluate to false.
|
@@ -102,18 +114,18 @@ class WPSEO_Option_MS extends WPSEO_Option {
|
|
102 |
|
103 |
/**
|
104 |
* Remove the default filters.
|
105 |
-
* Called from the validate() method to prevent failure to add new options
|
106 |
*
|
107 |
-
* @return
|
108 |
*/
|
109 |
public function remove_default_filters() {
|
110 |
remove_filter( 'default_site_option_' . $this->option_name, array( $this, 'get_defaults' ) );
|
111 |
}
|
112 |
|
113 |
/**
|
114 |
-
* Add filters to make sure that the option is merged with its defaults before being returned
|
115 |
*
|
116 |
-
* @return
|
117 |
*/
|
118 |
public function add_option_filters() {
|
119 |
// Don't change, needs to check for false as could return prio 0 which would evaluate to false.
|
@@ -124,9 +136,9 @@ class WPSEO_Option_MS extends WPSEO_Option {
|
|
124 |
|
125 |
/**
|
126 |
* Remove the option filters.
|
127 |
-
* Called from the clean_up methods to make sure we retrieve the original old option
|
128 |
*
|
129 |
-
* @return
|
130 |
*/
|
131 |
public function remove_option_filters() {
|
132 |
remove_filter( 'site_option_' . $this->option_name, array( $this, 'get_option' ) );
|
@@ -135,13 +147,13 @@ class WPSEO_Option_MS extends WPSEO_Option {
|
|
135 |
/* *********** METHODS influencing add_uption(), update_option() and saving from admin pages *********** */
|
136 |
|
137 |
/**
|
138 |
-
* Validate the option
|
139 |
*
|
140 |
-
* @param
|
141 |
-
* @param
|
142 |
-
* @param
|
143 |
*
|
144 |
-
* @return
|
145 |
*/
|
146 |
protected function validate_option( $dirty, $clean, $old ) {
|
147 |
|
@@ -154,7 +166,7 @@ class WPSEO_Option_MS extends WPSEO_Option {
|
|
154 |
elseif ( function_exists( 'add_settings_error' ) ) {
|
155 |
add_settings_error(
|
156 |
$this->group_name, // Slug title of the setting.
|
157 |
-
'_' . $key, // Suffix-
|
158 |
/* translators: %1$s expands to the option name and %2$sexpands to Yoast SEO */
|
159 |
sprintf( __( '%1$s is not a valid choice for who should be allowed access to the %2$s settings. Value reset to the default.', 'wordpress-seo' ), esc_html( sanitize_text_field( $dirty[ $key ] ) ), 'Yoast SEO' ), // The error message.
|
160 |
'error' // Error type, either 'error' or 'updated'.
|
@@ -175,7 +187,7 @@ class WPSEO_Option_MS extends WPSEO_Option {
|
|
175 |
elseif ( function_exists( 'add_settings_error' ) ) {
|
176 |
add_settings_error(
|
177 |
$this->group_name, // Slug title of the setting.
|
178 |
-
'_' . $key, // Suffix-
|
179 |
esc_html__( 'The default blog setting must be the numeric blog id of the blog you want to use as default.', 'wordpress-seo' )
|
180 |
. '<br>'
|
181 |
. sprintf(
|
@@ -191,7 +203,7 @@ class WPSEO_Option_MS extends WPSEO_Option {
|
|
191 |
elseif ( function_exists( 'add_settings_error' ) ) {
|
192 |
add_settings_error(
|
193 |
$this->group_name, // Slug title of the setting.
|
194 |
-
'_' . $key, // Suffix-
|
195 |
esc_html__( 'The default blog setting must be the numeric blog id of the blog you want to use as default.', 'wordpress-seo' ) . '<br>' . esc_html__( 'No numeric value was received.', 'wordpress-seo' ), // The error message.
|
196 |
'error' // Error type, either 'error' or 'updated'.
|
197 |
);
|
@@ -210,16 +222,16 @@ class WPSEO_Option_MS extends WPSEO_Option {
|
|
210 |
}
|
211 |
|
212 |
/**
|
213 |
-
* Clean a given option value
|
214 |
*
|
215 |
-
* @param
|
216 |
-
*
|
217 |
-
* @param
|
218 |
-
*
|
219 |
-
* @param
|
220 |
-
*
|
221 |
*
|
222 |
-
* @return
|
223 |
*/
|
224 |
|
225 |
/*
|
14 |
class WPSEO_Option_MS extends WPSEO_Option {
|
15 |
|
16 |
/**
|
17 |
+
* Option name.
|
18 |
+
*
|
19 |
+
* @var string
|
20 |
*/
|
21 |
public $option_name = 'wpseo_ms';
|
22 |
|
23 |
/**
|
24 |
+
* Option group name for use in settings forms.
|
25 |
+
*
|
26 |
+
* @var string
|
27 |
*/
|
28 |
public $group_name = 'yoast_wpseo_multisite_options';
|
29 |
|
30 |
/**
|
31 |
+
* Whether to include the option in the return for WPSEO_Options::get_all().
|
32 |
+
*
|
33 |
+
* @var bool
|
34 |
*/
|
35 |
public $include_in_all = false;
|
36 |
|
37 |
/**
|
38 |
+
* Whether this option is only for when the install is multisite.
|
39 |
+
*
|
40 |
+
* @var bool
|
41 |
*/
|
42 |
public $multisite_only = true;
|
43 |
|
44 |
/**
|
45 |
+
* Array of defaults for the option.
|
46 |
+
*
|
47 |
+
* Shouldn't be requested directly, use $this->get_defaults();
|
48 |
+
*
|
49 |
+
* @var array
|
50 |
*/
|
51 |
protected $defaults = array();
|
52 |
|
53 |
/**
|
54 |
+
* Available options for the 'access' setting. Used for input validation.
|
|
|
55 |
*
|
56 |
* {@internal Important: Make sure the options added to the array here are in line
|
57 |
* with the keys for the options set for the select box in the
|
58 |
* admin/pages/network.php file.}}
|
59 |
+
*
|
60 |
+
* @var array
|
61 |
*/
|
62 |
public static $allowed_access_options = array(
|
63 |
'admin',
|
65 |
);
|
66 |
|
67 |
/**
|
68 |
+
* Get the singleton instance of this class.
|
69 |
*
|
70 |
* @return object
|
71 |
*/
|
103 |
/**
|
104 |
* Add filters to make sure that the option default is returned if the option is not set
|
105 |
*
|
106 |
+
* @return void
|
107 |
*/
|
108 |
public function add_default_filters() {
|
109 |
// Don't change, needs to check for false as could return prio 0 which would evaluate to false.
|
114 |
|
115 |
/**
|
116 |
* Remove the default filters.
|
117 |
+
* Called from the validate() method to prevent failure to add new options.
|
118 |
*
|
119 |
+
* @return void
|
120 |
*/
|
121 |
public function remove_default_filters() {
|
122 |
remove_filter( 'default_site_option_' . $this->option_name, array( $this, 'get_defaults' ) );
|
123 |
}
|
124 |
|
125 |
/**
|
126 |
+
* Add filters to make sure that the option is merged with its defaults before being returned.
|
127 |
*
|
128 |
+
* @return void
|
129 |
*/
|
130 |
public function add_option_filters() {
|
131 |
// Don't change, needs to check for false as could return prio 0 which would evaluate to false.
|
136 |
|
137 |
/**
|
138 |
* Remove the option filters.
|
139 |
+
* Called from the clean_up methods to make sure we retrieve the original old option.
|
140 |
*
|
141 |
+
* @return void
|
142 |
*/
|
143 |
public function remove_option_filters() {
|
144 |
remove_filter( 'site_option_' . $this->option_name, array( $this, 'get_option' ) );
|
147 |
/* *********** METHODS influencing add_uption(), update_option() and saving from admin pages *********** */
|
148 |
|
149 |
/**
|
150 |
+
* Validate the option.
|
151 |
*
|
152 |
+
* @param array $dirty New value for the option.
|
153 |
+
* @param array $clean Clean value for the option, normally the defaults.
|
154 |
+
* @param array $old Old value of the option.
|
155 |
*
|
156 |
+
* @return array Validated clean value for the option to be saved to the database.
|
157 |
*/
|
158 |
protected function validate_option( $dirty, $clean, $old ) {
|
159 |
|
166 |
elseif ( function_exists( 'add_settings_error' ) ) {
|
167 |
add_settings_error(
|
168 |
$this->group_name, // Slug title of the setting.
|
169 |
+
'_' . $key, // Suffix-ID for the error message box.
|
170 |
/* translators: %1$s expands to the option name and %2$sexpands to Yoast SEO */
|
171 |
sprintf( __( '%1$s is not a valid choice for who should be allowed access to the %2$s settings. Value reset to the default.', 'wordpress-seo' ), esc_html( sanitize_text_field( $dirty[ $key ] ) ), 'Yoast SEO' ), // The error message.
|
172 |
'error' // Error type, either 'error' or 'updated'.
|
187 |
elseif ( function_exists( 'add_settings_error' ) ) {
|
188 |
add_settings_error(
|
189 |
$this->group_name, // Slug title of the setting.
|
190 |
+
'_' . $key, // Suffix-ID for the error message box.
|
191 |
esc_html__( 'The default blog setting must be the numeric blog id of the blog you want to use as default.', 'wordpress-seo' )
|
192 |
. '<br>'
|
193 |
. sprintf(
|
203 |
elseif ( function_exists( 'add_settings_error' ) ) {
|
204 |
add_settings_error(
|
205 |
$this->group_name, // Slug title of the setting.
|
206 |
+
'_' . $key, // Suffix-ID for the error message box.
|
207 |
esc_html__( 'The default blog setting must be the numeric blog id of the blog you want to use as default.', 'wordpress-seo' ) . '<br>' . esc_html__( 'No numeric value was received.', 'wordpress-seo' ), // The error message.
|
208 |
'error' // Error type, either 'error' or 'updated'.
|
209 |
);
|
222 |
}
|
223 |
|
224 |
/**
|
225 |
+
* Clean a given option value.
|
226 |
*
|
227 |
+
* @param array $option_value Old (not merged with defaults or filtered) option value to
|
228 |
+
* clean according to the rules for this option.
|
229 |
+
* @param string $current_version (optional) Version from which to upgrade, if not set,
|
230 |
+
* version specific upgrades will be disregarded.
|
231 |
+
* @param array $all_old_option_values (optional) Only used when importing old options to have
|
232 |
+
* access to the real old values, in contrast to the saved ones.
|
233 |
*
|
234 |
+
* @return array Cleaned option.
|
235 |
*/
|
236 |
|
237 |
/*
|
inc/options/class-wpseo-option-social.php
CHANGED
@@ -11,13 +11,18 @@
|
|
11 |
class WPSEO_Option_Social extends WPSEO_Option {
|
12 |
|
13 |
/**
|
14 |
-
*
|
|
|
|
|
15 |
*/
|
16 |
public $option_name = 'wpseo_social';
|
17 |
|
18 |
/**
|
19 |
-
*
|
20 |
-
*
|
|
|
|
|
|
|
21 |
*/
|
22 |
protected $defaults = array(
|
23 |
// Form fields.
|
@@ -44,7 +49,9 @@ class WPSEO_Option_Social extends WPSEO_Option {
|
|
44 |
);
|
45 |
|
46 |
/**
|
47 |
-
*
|
|
|
|
|
48 |
*/
|
49 |
public $ms_exclude = array(
|
50 |
/* Privacy. */
|
@@ -53,12 +60,15 @@ class WPSEO_Option_Social extends WPSEO_Option {
|
|
53 |
);
|
54 |
|
55 |
/**
|
56 |
-
*
|
57 |
-
*
|
58 |
-
*
|
|
|
59 |
*
|
60 |
* {@internal Uncomment any of these to allow them in validation *and* automatically
|
61 |
* add them as a choice in the options page.}}
|
|
|
|
|
62 |
*/
|
63 |
public static $twitter_card_types = array(
|
64 |
'summary' => '',
|
@@ -96,17 +106,17 @@ class WPSEO_Option_Social extends WPSEO_Option {
|
|
96 |
/**
|
97 |
* Validate the option.
|
98 |
*
|
99 |
-
* @param
|
100 |
-
* @param
|
101 |
-
* @param
|
102 |
*
|
103 |
-
* @return
|
104 |
*/
|
105 |
protected function validate_option( $dirty, $clean, $old ) {
|
106 |
|
107 |
foreach ( $clean as $key => $value ) {
|
108 |
switch ( $key ) {
|
109 |
-
/*
|
110 |
case 'og_frontpage_desc':
|
111 |
case 'og_frontpage_title':
|
112 |
if ( isset( $dirty[ $key ] ) && $dirty[ $key ] !== '' ) {
|
@@ -142,11 +152,12 @@ class WPSEO_Option_Social extends WPSEO_Option {
|
|
142 |
$this->validate_verification_string( $key, $dirty, $old, $clean );
|
143 |
break;
|
144 |
|
145 |
-
/*
|
146 |
case 'twitter_site':
|
147 |
if ( isset( $dirty[ $key ] ) && $dirty[ $key ] !== '' ) {
|
148 |
$twitter_id = sanitize_text_field( ltrim( $dirty[ $key ], '@' ) );
|
149 |
-
|
|
|
150 |
* From the Twitter documentation about twitter screen names:
|
151 |
* Typically a maximum of 15 characters long, but some historical accounts
|
152 |
* may exist with longer names.
|
@@ -172,7 +183,7 @@ class WPSEO_Option_Social extends WPSEO_Option {
|
|
172 |
if ( function_exists( 'add_settings_error' ) ) {
|
173 |
add_settings_error(
|
174 |
$this->group_name, // Slug title of the setting.
|
175 |
-
'_' . $key, // Suffix-
|
176 |
sprintf(
|
177 |
/* translators: %s expands to a twitter user name. */
|
178 |
__( '%s does not seem to be a valid Twitter user-id. Please correct.', 'wordpress-seo' ),
|
@@ -192,7 +203,7 @@ class WPSEO_Option_Social extends WPSEO_Option {
|
|
192 |
}
|
193 |
break;
|
194 |
|
195 |
-
/*
|
196 |
case 'opengraph':
|
197 |
case 'twitter':
|
198 |
$clean[ $key ] = ( isset( $dirty[ $key ] ) ? WPSEO_Utils::validate_bool( $dirty[ $key ] ) : false );
|
@@ -212,14 +223,14 @@ class WPSEO_Option_Social extends WPSEO_Option {
|
|
212 |
/**
|
213 |
* Clean a given option value.
|
214 |
*
|
215 |
-
* @param
|
216 |
-
*
|
217 |
-
* @param
|
218 |
-
*
|
219 |
-
* @param
|
220 |
-
*
|
221 |
*
|
222 |
-
* @return
|
223 |
*/
|
224 |
protected function clean_option( $option_value, $current_version = null, $all_old_option_values = null ) {
|
225 |
|
11 |
class WPSEO_Option_Social extends WPSEO_Option {
|
12 |
|
13 |
/**
|
14 |
+
* Option name.
|
15 |
+
*
|
16 |
+
* @var string
|
17 |
*/
|
18 |
public $option_name = 'wpseo_social';
|
19 |
|
20 |
/**
|
21 |
+
* Array of defaults for the option.
|
22 |
+
*
|
23 |
+
* Shouldn't be requested directly, use $this->get_defaults();
|
24 |
+
*
|
25 |
+
* @var array
|
26 |
*/
|
27 |
protected $defaults = array(
|
28 |
// Form fields.
|
49 |
);
|
50 |
|
51 |
/**
|
52 |
+
* Array of sub-options which should not be overloaded with multi-site defaults.
|
53 |
+
*
|
54 |
+
* @var array
|
55 |
*/
|
56 |
public $ms_exclude = array(
|
57 |
/* Privacy. */
|
60 |
);
|
61 |
|
62 |
/**
|
63 |
+
* Array of allowed twitter card types.
|
64 |
+
*
|
65 |
+
* While we only have the options summary and summary_large_image in the
|
66 |
+
* interface now, we might change that at some point.
|
67 |
*
|
68 |
* {@internal Uncomment any of these to allow them in validation *and* automatically
|
69 |
* add them as a choice in the options page.}}
|
70 |
+
*
|
71 |
+
* @var array
|
72 |
*/
|
73 |
public static $twitter_card_types = array(
|
74 |
'summary' => '',
|
106 |
/**
|
107 |
* Validate the option.
|
108 |
*
|
109 |
+
* @param array $dirty New value for the option.
|
110 |
+
* @param array $clean Clean value for the option, normally the defaults.
|
111 |
+
* @param array $old Old value of the option.
|
112 |
*
|
113 |
+
* @return array Validated clean value for the option to be saved to the database.
|
114 |
*/
|
115 |
protected function validate_option( $dirty, $clean, $old ) {
|
116 |
|
117 |
foreach ( $clean as $key => $value ) {
|
118 |
switch ( $key ) {
|
119 |
+
/* Text fields. */
|
120 |
case 'og_frontpage_desc':
|
121 |
case 'og_frontpage_title':
|
122 |
if ( isset( $dirty[ $key ] ) && $dirty[ $key ] !== '' ) {
|
152 |
$this->validate_verification_string( $key, $dirty, $old, $clean );
|
153 |
break;
|
154 |
|
155 |
+
/* Twitter user name. */
|
156 |
case 'twitter_site':
|
157 |
if ( isset( $dirty[ $key ] ) && $dirty[ $key ] !== '' ) {
|
158 |
$twitter_id = sanitize_text_field( ltrim( $dirty[ $key ], '@' ) );
|
159 |
+
|
160 |
+
/*
|
161 |
* From the Twitter documentation about twitter screen names:
|
162 |
* Typically a maximum of 15 characters long, but some historical accounts
|
163 |
* may exist with longer names.
|
183 |
if ( function_exists( 'add_settings_error' ) ) {
|
184 |
add_settings_error(
|
185 |
$this->group_name, // Slug title of the setting.
|
186 |
+
'_' . $key, // Suffix-ID for the error message box.
|
187 |
sprintf(
|
188 |
/* translators: %s expands to a twitter user name. */
|
189 |
__( '%s does not seem to be a valid Twitter user-id. Please correct.', 'wordpress-seo' ),
|
203 |
}
|
204 |
break;
|
205 |
|
206 |
+
/* Boolean fields. */
|
207 |
case 'opengraph':
|
208 |
case 'twitter':
|
209 |
$clean[ $key ] = ( isset( $dirty[ $key ] ) ? WPSEO_Utils::validate_bool( $dirty[ $key ] ) : false );
|
223 |
/**
|
224 |
* Clean a given option value.
|
225 |
*
|
226 |
+
* @param array $option_value Old (not merged with defaults or filtered) option value to
|
227 |
+
* clean according to the rules for this option.
|
228 |
+
* @param string $current_version Optional. Version from which to upgrade, if not set,
|
229 |
+
* version specific upgrades will be disregarded.
|
230 |
+
* @param array $all_old_option_values Optional. Only used when importing old options to have
|
231 |
+
* access to the real old values, in contrast to the saved ones.
|
232 |
*
|
233 |
+
* @return array Cleaned option.
|
234 |
*/
|
235 |
protected function clean_option( $option_value, $current_version = null, $all_old_option_values = null ) {
|
236 |
|
inc/options/class-wpseo-option-titles.php
CHANGED
@@ -11,15 +11,20 @@
|
|
11 |
class WPSEO_Option_Titles extends WPSEO_Option {
|
12 |
|
13 |
/**
|
14 |
-
*
|
|
|
|
|
15 |
*/
|
16 |
public $option_name = 'wpseo_titles';
|
17 |
|
18 |
/**
|
19 |
-
*
|
20 |
-
*
|
|
|
21 |
*
|
22 |
* {@internal Note: Some of the default values are added via the translate_defaults() method.}}
|
|
|
|
|
23 |
*/
|
24 |
protected $defaults = array(
|
25 |
// Non-form fields, set via (ajax) function.
|
@@ -64,7 +69,7 @@ class WPSEO_Option_Titles extends WPSEO_Option {
|
|
64 |
'alternate_website_name' => '',
|
65 |
'company_logo' => '',
|
66 |
'company_name' => '',
|
67 |
-
'company_or_person' => '',
|
68 |
'company_or_person_user_id' => false,
|
69 |
|
70 |
'stripcategorybase' => false,
|
@@ -90,7 +95,9 @@ class WPSEO_Option_Titles extends WPSEO_Option {
|
|
90 |
);
|
91 |
|
92 |
/**
|
93 |
-
*
|
|
|
|
|
94 |
*/
|
95 |
protected $variable_array_key_patterns = array(
|
96 |
'title-',
|
@@ -104,10 +111,12 @@ class WPSEO_Option_Titles extends WPSEO_Option {
|
|
104 |
);
|
105 |
|
106 |
/**
|
107 |
-
*
|
|
|
|
|
108 |
*/
|
109 |
public $ms_exclude = array(
|
110 |
-
/*
|
111 |
'title_test',
|
112 |
'forcerewritetitle',
|
113 |
);
|
@@ -175,7 +184,7 @@ class WPSEO_Option_Titles extends WPSEO_Option {
|
|
175 |
/**
|
176 |
* Get the available separator options aria-labels.
|
177 |
*
|
178 |
-
* @return array
|
179 |
*/
|
180 |
public function get_separator_options_for_display() {
|
181 |
$separators = $this->get_separator_options();
|
@@ -287,8 +296,8 @@ class WPSEO_Option_Titles extends WPSEO_Option {
|
|
287 |
* Invalidates enrich_defaults() cache.
|
288 |
*
|
289 |
* Called from actions:
|
290 |
-
*
|
291 |
-
*
|
292 |
*
|
293 |
* @return void
|
294 |
*/
|
@@ -299,11 +308,11 @@ class WPSEO_Option_Titles extends WPSEO_Option {
|
|
299 |
/**
|
300 |
* Validate the option.
|
301 |
*
|
302 |
-
* @param
|
303 |
-
* @param
|
304 |
-
* @param
|
305 |
*
|
306 |
-
* @return
|
307 |
*/
|
308 |
protected function validate_option( $dirty, $clean, $old ) {
|
309 |
$allowed_post_types = $this->get_allowed_post_types();
|
@@ -345,10 +354,14 @@ class WPSEO_Option_Titles extends WPSEO_Option {
|
|
345 |
break;
|
346 |
|
347 |
case 'company_or_person':
|
348 |
-
if ( isset( $dirty[ $key ] )
|
349 |
if ( in_array( $dirty[ $key ], array( 'company', 'person' ), true ) ) {
|
350 |
$clean[ $key ] = $dirty[ $key ];
|
351 |
}
|
|
|
|
|
|
|
|
|
352 |
}
|
353 |
break;
|
354 |
|
@@ -405,7 +418,7 @@ class WPSEO_Option_Titles extends WPSEO_Option {
|
|
405 |
$clean[ $key ] = sanitize_title_with_dashes( $old[ $key ] );
|
406 |
}
|
407 |
/**
|
408 |
-
* @todo [JRF => whomever]
|
409 |
* error message to the nicely translated label ?
|
410 |
*/
|
411 |
add_settings_error(
|
@@ -441,13 +454,13 @@ class WPSEO_Option_Titles extends WPSEO_Option {
|
|
441 |
$clean[ $key ] = sanitize_key( $old[ $key ] );
|
442 |
}
|
443 |
/**
|
444 |
-
* @todo [JRF =? whomever]
|
445 |
* error message to the nicely translated label ?
|
446 |
*/
|
447 |
$tax = str_replace( array( 'taxonomy-', '-ptparent' ), '', $key );
|
448 |
add_settings_error(
|
449 |
$this->group_name, // Slug title of the setting.
|
450 |
-
'_' . $tax, // Suffix-
|
451 |
/* translators: %s expands to a taxonomy slug. */
|
452 |
sprintf( __( 'Please select a valid post type for taxonomy "%s"', 'wordpress-seo' ), $tax ), // The error message.
|
453 |
'error' // Error type, either 'error' or 'updated'.
|
@@ -476,14 +489,14 @@ class WPSEO_Option_Titles extends WPSEO_Option {
|
|
476 |
}
|
477 |
break;
|
478 |
|
479 |
-
/* Separator field - Radio */
|
480 |
case 'separator':
|
481 |
if ( isset( $dirty[ $key ] ) && $dirty[ $key ] !== '' ) {
|
482 |
|
483 |
// Get separator fields.
|
484 |
$separator_fields = $this->get_separator_options();
|
485 |
|
486 |
-
// Check if the given separator
|
487 |
if ( isset( $separator_fields[ $dirty[ $key ] ] ) ) {
|
488 |
$clean[ $key ] = $dirty[ $key ];
|
489 |
}
|
@@ -562,14 +575,14 @@ class WPSEO_Option_Titles extends WPSEO_Option {
|
|
562 |
/**
|
563 |
* Clean a given option value.
|
564 |
*
|
565 |
-
* @param
|
566 |
-
*
|
567 |
-
* @param
|
568 |
-
*
|
569 |
-
* @param
|
570 |
-
*
|
571 |
*
|
572 |
-
* @return
|
573 |
*/
|
574 |
protected function clean_option( $option_value, $current_version = null, $all_old_option_values = null ) {
|
575 |
static $original = null;
|
@@ -588,7 +601,7 @@ class WPSEO_Option_Titles extends WPSEO_Option {
|
|
588 |
* {@internal Don't rename to the 'current' names straight away as that would prevent
|
589 |
* the rename/unset combi below from working.}}
|
590 |
*
|
591 |
-
* @todo [JRF]
|
592 |
*/
|
593 |
$old_option = null;
|
594 |
if ( isset( $all_old_option_values ) ) {
|
@@ -714,7 +727,7 @@ class WPSEO_Option_Titles extends WPSEO_Option {
|
|
714 |
|
715 |
// Similar to validation routine - any changes made there should be made here too.
|
716 |
switch ( $switch_key ) {
|
717 |
-
/*
|
718 |
case 'title-':
|
719 |
case 'metadesc-':
|
720 |
case 'bctitle-ptarchive-':
|
@@ -756,12 +769,12 @@ class WPSEO_Option_Titles extends WPSEO_Option {
|
|
756 |
* variable key does not get removed. IMPORTANT: keep this method in line with
|
757 |
* the parent on which it is based!}}
|
758 |
*
|
759 |
-
* @param
|
760 |
-
* @param
|
761 |
-
*
|
762 |
-
*
|
763 |
*
|
764 |
-
* @return
|
765 |
*/
|
766 |
protected function retain_variable_keys( $dirty, $clean ) {
|
767 |
if ( ( is_array( $this->variable_array_key_patterns ) && $this->variable_array_key_patterns !== array() ) && ( is_array( $dirty ) && $dirty !== array() ) ) {
|
11 |
class WPSEO_Option_Titles extends WPSEO_Option {
|
12 |
|
13 |
/**
|
14 |
+
* Option name.
|
15 |
+
*
|
16 |
+
* @var string
|
17 |
*/
|
18 |
public $option_name = 'wpseo_titles';
|
19 |
|
20 |
/**
|
21 |
+
* Array of defaults for the option.
|
22 |
+
*
|
23 |
+
* Shouldn't be requested directly, use $this->get_defaults();
|
24 |
*
|
25 |
* {@internal Note: Some of the default values are added via the translate_defaults() method.}}
|
26 |
+
*
|
27 |
+
* @var array
|
28 |
*/
|
29 |
protected $defaults = array(
|
30 |
// Non-form fields, set via (ajax) function.
|
69 |
'alternate_website_name' => '',
|
70 |
'company_logo' => '',
|
71 |
'company_name' => '',
|
72 |
+
'company_or_person' => 'company',
|
73 |
'company_or_person_user_id' => false,
|
74 |
|
75 |
'stripcategorybase' => false,
|
95 |
);
|
96 |
|
97 |
/**
|
98 |
+
* Array of variable option name patterns for the option.
|
99 |
+
*
|
100 |
+
* @var array
|
101 |
*/
|
102 |
protected $variable_array_key_patterns = array(
|
103 |
'title-',
|
111 |
);
|
112 |
|
113 |
/**
|
114 |
+
* Array of sub-options which should not be overloaded with multi-site defaults.
|
115 |
+
*
|
116 |
+
* @var array
|
117 |
*/
|
118 |
public $ms_exclude = array(
|
119 |
+
/* Theme dependent. */
|
120 |
'title_test',
|
121 |
'forcerewritetitle',
|
122 |
);
|
184 |
/**
|
185 |
* Get the available separator options aria-labels.
|
186 |
*
|
187 |
+
* @return array Array with the separator options aria-labels.
|
188 |
*/
|
189 |
public function get_separator_options_for_display() {
|
190 |
$separators = $this->get_separator_options();
|
296 |
* Invalidates enrich_defaults() cache.
|
297 |
*
|
298 |
* Called from actions:
|
299 |
+
* - (un)registered_post_type
|
300 |
+
* - (un)registered_taxonomy
|
301 |
*
|
302 |
* @return void
|
303 |
*/
|
308 |
/**
|
309 |
* Validate the option.
|
310 |
*
|
311 |
+
* @param array $dirty New value for the option.
|
312 |
+
* @param array $clean Clean value for the option, normally the defaults.
|
313 |
+
* @param array $old Old value of the option.
|
314 |
*
|
315 |
+
* @return array Validated clean value for the option to be saved to the database.
|
316 |
*/
|
317 |
protected function validate_option( $dirty, $clean, $old ) {
|
318 |
$allowed_post_types = $this->get_allowed_post_types();
|
354 |
break;
|
355 |
|
356 |
case 'company_or_person':
|
357 |
+
if ( isset( $dirty[ $key ] ) ) {
|
358 |
if ( in_array( $dirty[ $key ], array( 'company', 'person' ), true ) ) {
|
359 |
$clean[ $key ] = $dirty[ $key ];
|
360 |
}
|
361 |
+
else {
|
362 |
+
$defaults = $this->get_defaults();
|
363 |
+
$clean[ $key ] = $defaults['company_or_person'];
|
364 |
+
}
|
365 |
}
|
366 |
break;
|
367 |
|
418 |
$clean[ $key ] = sanitize_title_with_dashes( $old[ $key ] );
|
419 |
}
|
420 |
/**
|
421 |
+
* @todo [JRF => whomever] Maybe change the untranslated $pt name in the
|
422 |
* error message to the nicely translated label ?
|
423 |
*/
|
424 |
add_settings_error(
|
454 |
$clean[ $key ] = sanitize_key( $old[ $key ] );
|
455 |
}
|
456 |
/**
|
457 |
+
* @todo [JRF =? whomever] Maybe change the untranslated $tax name in the
|
458 |
* error message to the nicely translated label ?
|
459 |
*/
|
460 |
$tax = str_replace( array( 'taxonomy-', '-ptparent' ), '', $key );
|
461 |
add_settings_error(
|
462 |
$this->group_name, // Slug title of the setting.
|
463 |
+
'_' . $tax, // Suffix-ID for the error message box.
|
464 |
/* translators: %s expands to a taxonomy slug. */
|
465 |
sprintf( __( 'Please select a valid post type for taxonomy "%s"', 'wordpress-seo' ), $tax ), // The error message.
|
466 |
'error' // Error type, either 'error' or 'updated'.
|
489 |
}
|
490 |
break;
|
491 |
|
492 |
+
/* Separator field - Radio. */
|
493 |
case 'separator':
|
494 |
if ( isset( $dirty[ $key ] ) && $dirty[ $key ] !== '' ) {
|
495 |
|
496 |
// Get separator fields.
|
497 |
$separator_fields = $this->get_separator_options();
|
498 |
|
499 |
+
// Check if the given separator exists.
|
500 |
if ( isset( $separator_fields[ $dirty[ $key ] ] ) ) {
|
501 |
$clean[ $key ] = $dirty[ $key ];
|
502 |
}
|
575 |
/**
|
576 |
* Clean a given option value.
|
577 |
*
|
578 |
+
* @param array $option_value Old (not merged with defaults or filtered) option value to
|
579 |
+
* clean according to the rules for this option.
|
580 |
+
* @param string $current_version Optional. Version from which to upgrade, if not set,
|
581 |
+
* version specific upgrades will be disregarded.
|
582 |
+
* @param array $all_old_option_values Optional. Only used when importing old options to have
|
583 |
+
* access to the real old values, in contrast to the saved ones.
|
584 |
*
|
585 |
+
* @return array Cleaned option.
|
586 |
*/
|
587 |
protected function clean_option( $option_value, $current_version = null, $all_old_option_values = null ) {
|
588 |
static $original = null;
|
601 |
* {@internal Don't rename to the 'current' names straight away as that would prevent
|
602 |
* the rename/unset combi below from working.}}
|
603 |
*
|
604 |
+
* @todo [JRF] Maybe figure out a smarter way to deal with this.
|
605 |
*/
|
606 |
$old_option = null;
|
607 |
if ( isset( $all_old_option_values ) ) {
|
727 |
|
728 |
// Similar to validation routine - any changes made there should be made here too.
|
729 |
switch ( $switch_key ) {
|
730 |
+
/* Text fields. */
|
731 |
case 'title-':
|
732 |
case 'metadesc-':
|
733 |
case 'bctitle-ptarchive-':
|
769 |
* variable key does not get removed. IMPORTANT: keep this method in line with
|
770 |
* the parent on which it is based!}}
|
771 |
*
|
772 |
+
* @param array $dirty Original option as retrieved from the database.
|
773 |
+
* @param array $clean Filtered option where any options which shouldn't be in our option
|
774 |
+
* have already been removed and any options which weren't set
|
775 |
+
* have been set to their defaults.
|
776 |
*
|
777 |
+
* @return array
|
778 |
*/
|
779 |
protected function retain_variable_keys( $dirty, $clean ) {
|
780 |
if ( ( is_array( $this->variable_array_key_patterns ) && $this->variable_array_key_patterns !== array() ) && ( is_array( $dirty ) && $dirty !== array() ) ) {
|
inc/options/class-wpseo-option-wpseo.php
CHANGED
@@ -213,11 +213,11 @@ class WPSEO_Option_Wpseo extends WPSEO_Option {
|
|
213 |
/**
|
214 |
* Validate the option.
|
215 |
*
|
216 |
-
* @param
|
217 |
-
* @param
|
218 |
-
* @param
|
219 |
*
|
220 |
-
* @return
|
221 |
*/
|
222 |
protected function validate_option( $dirty, $clean, $old ) {
|
223 |
|
@@ -344,7 +344,8 @@ class WPSEO_Option_Wpseo extends WPSEO_Option {
|
|
344 |
}
|
345 |
|
346 |
/**
|
347 |
-
* Gets the filter hook name and callback for adjusting the retrieved option value
|
|
|
348 |
*
|
349 |
* @return array Array where the first item is the hook name, the second is the hook callback,
|
350 |
* and the third is the hook priority.
|
@@ -374,14 +375,14 @@ class WPSEO_Option_Wpseo extends WPSEO_Option {
|
|
374 |
/**
|
375 |
* Clean a given option value.
|
376 |
*
|
377 |
-
* @param
|
378 |
-
*
|
379 |
-
* @param
|
380 |
-
*
|
381 |
-
* @param
|
382 |
-
*
|
383 |
*
|
384 |
-
* @return
|
385 |
*/
|
386 |
protected function clean_option( $option_value, $current_version = null, $all_old_option_values = null ) {
|
387 |
return $option_value;
|
213 |
/**
|
214 |
* Validate the option.
|
215 |
*
|
216 |
+
* @param array $dirty New value for the option.
|
217 |
+
* @param array $clean Clean value for the option, normally the defaults.
|
218 |
+
* @param array $old Old value of the option.
|
219 |
*
|
220 |
+
* @return array Validated clean value for the option to be saved to the database.
|
221 |
*/
|
222 |
protected function validate_option( $dirty, $clean, $old ) {
|
223 |
|
344 |
}
|
345 |
|
346 |
/**
|
347 |
+
* Gets the filter hook name and callback for adjusting the retrieved option value
|
348 |
+
* against the network-allowed features.
|
349 |
*
|
350 |
* @return array Array where the first item is the hook name, the second is the hook callback,
|
351 |
* and the third is the hook priority.
|
375 |
/**
|
376 |
* Clean a given option value.
|
377 |
*
|
378 |
+
* @param array $option_value Old (not merged with defaults or filtered) option value to
|
379 |
+
* clean according to the rules for this option.
|
380 |
+
* @param string $current_version Optional. Version from which to upgrade, if not set,
|
381 |
+
* version specific upgrades will be disregarded.
|
382 |
+
* @param array $all_old_option_values Optional. Only used when importing old options to have
|
383 |
+
* access to the real old values, in contrast to the saved ones.
|
384 |
*
|
385 |
+
* @return array Cleaned option.
|
386 |
*/
|
387 |
protected function clean_option( $option_value, $current_version = null, $all_old_option_values = null ) {
|
388 |
return $option_value;
|
inc/options/class-wpseo-option.php
CHANGED
@@ -12,48 +12,48 @@
|
|
12 |
* Some guidelines:
|
13 |
* [Retrieving options]
|
14 |
* - Use the normal get_option() to retrieve an option. You will receive a complete array for the option.
|
15 |
-
*
|
16 |
* - In other words, you will normally not have to check whether a subkey isset() as they will *always* be set.
|
17 |
-
*
|
18 |
-
*
|
19 |
-
*
|
20 |
-
*
|
21 |
-
*
|
22 |
*
|
23 |
* [Updating/Adding options]
|
24 |
* - For multisite site_options, please use the WPSEO_Options::update_site_option() method.
|
25 |
* - For normal options, use the normal add/update_option() functions. As long a the classes here
|
26 |
* are instantiated, validation for all options and their subkeys will be automatic.
|
27 |
* - On (succesfull) update of a couple of options, certain related actions will be run automatically.
|
28 |
-
*
|
29 |
-
*
|
30 |
-
*
|
31 |
*
|
32 |
*
|
33 |
* [Important information about add/updating/changing these classes]
|
34 |
* - Make sure that option array key names are unique across options. The WPSEO_Options::get_all()
|
35 |
-
*
|
36 |
-
*
|
37 |
* - When you add a new array key in an option: make sure you add proper defaults and add the key
|
38 |
-
*
|
39 |
-
*
|
40 |
-
*
|
41 |
-
*
|
42 |
-
*
|
43 |
* - When you remove an array key from an option: if it's important that the option is really removed,
|
44 |
-
*
|
45 |
-
*
|
46 |
* - When you rename a sub-option: add it to the clean_option() routine and run that in the upgrade run.
|
47 |
* - When you change the default for an option sub-key, make sure you verify that the validation routine will
|
48 |
-
*
|
49 |
-
*
|
50 |
-
*
|
51 |
-
*
|
52 |
* - If an option needs specific actions different from defined in this abstract class, you can just overrule
|
53 |
-
*
|
54 |
*
|
55 |
-
* @todo
|
56 |
-
*
|
57 |
*/
|
58 |
abstract class WPSEO_Option {
|
59 |
|
@@ -204,7 +204,7 @@ abstract class WPSEO_Option {
|
|
204 |
* Enrich defaults once custom post types and taxonomies have been registered
|
205 |
* which is normally done on the init action.
|
206 |
*
|
207 |
-
* @todo
|
208 |
* enrichment are used before the enriching.
|
209 |
*/
|
210 |
if ( method_exists( $this, 'enrich_defaults' ) ) {
|
@@ -238,7 +238,7 @@ abstract class WPSEO_Option {
|
|
238 |
/**
|
239 |
* Add filters to make sure that the option default is returned if the option is not set.
|
240 |
*
|
241 |
-
* @return
|
242 |
*/
|
243 |
public function add_default_filters() {
|
244 |
// Don't change, needs to check for false as could return prio 0 which would evaluate to false.
|
@@ -307,7 +307,7 @@ abstract class WPSEO_Option {
|
|
307 |
if ( function_exists( 'add_settings_error' ) ) {
|
308 |
add_settings_error(
|
309 |
$this->group_name, // Slug title of the setting.
|
310 |
-
'_' . $key, // Suffix-
|
311 |
/* translators: 1: Verification string from user input; 2: Service name. */
|
312 |
sprintf( __( '%1$s does not seem to be a valid %2$s verification string. Please correct.', 'wordpress-seo' ), '<strong>' . esc_html( $meta ) . '</strong>', $service ), // The error message.
|
313 |
'error' // Error type, either 'error' or 'updated'.
|
@@ -341,7 +341,7 @@ abstract class WPSEO_Option {
|
|
341 |
$url = WPSEO_Utils::sanitize_url( $dirty[ $key ] );
|
342 |
add_settings_error(
|
343 |
$this->group_name, // Slug title of the setting.
|
344 |
-
'_' . $key, // Suffix-
|
345 |
sprintf(
|
346 |
/* translators: %s expands to an invalid URL. */
|
347 |
__( '%s does not seem to be a valid url. Please correct.', 'wordpress-seo' ),
|
@@ -358,7 +358,7 @@ abstract class WPSEO_Option {
|
|
358 |
* Remove the default filters.
|
359 |
* Called from the validate() method to prevent failure to add new options.
|
360 |
*
|
361 |
-
* @return
|
362 |
*/
|
363 |
public function remove_default_filters() {
|
364 |
remove_filter( 'default_option_' . $this->option_name, array( $this, 'get_defaults' ) );
|
@@ -372,7 +372,7 @@ abstract class WPSEO_Option {
|
|
372 |
* {@internal The enrich_defaults method is used to set defaults for variable array keys
|
373 |
* in an option, such as array keys depending on post_types and/or taxonomies.}}
|
374 |
*
|
375 |
-
* @return
|
376 |
*/
|
377 |
public function get_defaults() {
|
378 |
if ( method_exists( $this, 'translate_defaults' ) ) {
|
@@ -389,7 +389,7 @@ abstract class WPSEO_Option {
|
|
389 |
/**
|
390 |
* Add filters to make sure that the option is merged with its defaults before being returned.
|
391 |
*
|
392 |
-
* @return
|
393 |
*/
|
394 |
public function add_option_filters() {
|
395 |
// Don't change, needs to check for false as could return prio 0 which would evaluate to false.
|
@@ -402,7 +402,7 @@ abstract class WPSEO_Option {
|
|
402 |
* Remove the option filters.
|
403 |
* Called from the clean_up methods to make sure we retrieve the original old option.
|
404 |
*
|
405 |
-
* @return
|
406 |
*/
|
407 |
public function remove_option_filters() {
|
408 |
remove_filter( 'option_' . $this->option_name, array( $this, 'get_option' ) );
|
@@ -413,9 +413,9 @@ abstract class WPSEO_Option {
|
|
413 |
*
|
414 |
* This method should *not* be called directly!!! It is only meant to filter the get_option() results.
|
415 |
*
|
416 |
-
* @param
|
417 |
*
|
418 |
-
* @return
|
419 |
*/
|
420 |
public function get_option( $options = null ) {
|
421 |
$filtered = $this->array_filter_merge( $options );
|
@@ -461,9 +461,9 @@ abstract class WPSEO_Option {
|
|
461 |
/**
|
462 |
* Validate the option
|
463 |
*
|
464 |
-
* @param
|
465 |
*
|
466 |
-
* @return
|
467 |
*/
|
468 |
public function validate( $option_value ) {
|
469 |
$clean = $this->get_defaults();
|
@@ -503,6 +503,7 @@ abstract class WPSEO_Option {
|
|
503 |
* with 'allow_'.
|
504 |
*
|
505 |
* @param string $key Option key.
|
|
|
506 |
* @return bool True if option key is disabled, false otherwise.
|
507 |
*/
|
508 |
public function is_disabled( $key ) {
|
@@ -518,9 +519,9 @@ abstract class WPSEO_Option {
|
|
518 |
* All concrete classes must contain a validate_option() method which validates all
|
519 |
* values within the option.
|
520 |
*
|
521 |
-
* @param
|
522 |
-
* @param
|
523 |
-
* @param
|
524 |
*/
|
525 |
abstract protected function validate_option( $dirty, $clean, $old );
|
526 |
|
@@ -601,7 +602,8 @@ abstract class WPSEO_Option {
|
|
601 |
* @uses WPSEO_Option::get_original_option()
|
602 |
* @uses WPSEO_Option::import()
|
603 |
*
|
604 |
-
* @param
|
|
|
605 |
*
|
606 |
* @return void
|
607 |
*/
|
@@ -624,9 +626,12 @@ abstract class WPSEO_Option {
|
|
624 |
* once the admin has dismissed the message (add ajax function)
|
625 |
* Important: all validation routines which add_settings_errors would need to be changed for this to work
|
626 |
*
|
627 |
-
* @param
|
628 |
-
* @param
|
629 |
-
*
|
|
|
|
|
|
|
630 |
*
|
631 |
* @return void
|
632 |
*/
|
@@ -673,9 +678,10 @@ abstract class WPSEO_Option {
|
|
673 |
* @todo [JRF] - shouldn't this be a straight array merge ? at the end of the day, the validation
|
674 |
* removes any invalid keys on save.
|
675 |
*
|
676 |
-
* @param
|
|
|
677 |
*
|
678 |
-
* @return
|
679 |
*/
|
680 |
protected function array_filter_merge( $options = null ) {
|
681 |
|
@@ -755,12 +761,12 @@ abstract class WPSEO_Option {
|
|
755 |
* {@internal The wpseo_titles concrete class overrules this method. Make sure that any
|
756 |
* changes applied here, also get ported to that version.}}
|
757 |
*
|
758 |
-
* @param
|
759 |
-
* @param
|
760 |
-
*
|
761 |
-
*
|
762 |
*
|
763 |
-
* @return
|
764 |
*/
|
765 |
protected function retain_variable_keys( $dirty, $clean ) {
|
766 |
if ( ( is_array( $this->variable_array_key_patterns ) && $this->variable_array_key_patterns !== array() ) && ( is_array( $dirty ) && $dirty !== array() ) ) {
|
@@ -789,10 +795,10 @@ abstract class WPSEO_Option {
|
|
789 |
*
|
790 |
* @usedby validate_option() methods for options with variable array keys.
|
791 |
*
|
792 |
-
* @param
|
793 |
*
|
794 |
-
* @return string
|
795 |
-
*
|
796 |
*/
|
797 |
protected function get_switch_key( $key ) {
|
798 |
if ( ! isset( $this->variable_array_key_patterns ) || ( ! is_array( $this->variable_array_key_patterns ) || $this->variable_array_key_patterns === array() ) ) {
|
12 |
* Some guidelines:
|
13 |
* [Retrieving options]
|
14 |
* - Use the normal get_option() to retrieve an option. You will receive a complete array for the option.
|
15 |
+
* Any subkeys which were not set, will have their default values in place.
|
16 |
* - In other words, you will normally not have to check whether a subkey isset() as they will *always* be set.
|
17 |
+
* They will also *always* be of the correct variable type.
|
18 |
+
* The only exception to this are the options with variable option names based on post_type or taxonomy
|
19 |
+
* as those will not always be available before the taxonomy/post_type is registered.
|
20 |
+
* (they will be available if a value was set, they won't be if it wasn't as the class won't know
|
21 |
+
* that a default needs to be injected).
|
22 |
*
|
23 |
* [Updating/Adding options]
|
24 |
* - For multisite site_options, please use the WPSEO_Options::update_site_option() method.
|
25 |
* - For normal options, use the normal add/update_option() functions. As long a the classes here
|
26 |
* are instantiated, validation for all options and their subkeys will be automatic.
|
27 |
* - On (succesfull) update of a couple of options, certain related actions will be run automatically.
|
28 |
+
* Some examples:
|
29 |
+
* - on change of wpseo[yoast_tracking], the cron schedule will be adjusted accordingly
|
30 |
+
* - on change of wpseo and wpseo_title, some caches will be cleared
|
31 |
*
|
32 |
*
|
33 |
* [Important information about add/updating/changing these classes]
|
34 |
* - Make sure that option array key names are unique across options. The WPSEO_Options::get_all()
|
35 |
+
* method merges most options together. If any of them have non-unique names, even if they
|
36 |
+
* are in a different option, they *will* overwrite each other.
|
37 |
* - When you add a new array key in an option: make sure you add proper defaults and add the key
|
38 |
+
* to the validation routine in the proper place or add a new validation case.
|
39 |
+
* You don't need to do any upgrading as any option returned will always be merged with the
|
40 |
+
* defaults, so new options will automatically be available.
|
41 |
+
* If the default value is a string which need translating, add this to the concrete class
|
42 |
+
* translate_defaults() method.
|
43 |
* - When you remove an array key from an option: if it's important that the option is really removed,
|
44 |
+
* add the WPSEO_Option::clean_up( $option_name ) method to the upgrade run.
|
45 |
+
* This will re-save the option and automatically remove the array key no longer in existance.
|
46 |
* - When you rename a sub-option: add it to the clean_option() routine and run that in the upgrade run.
|
47 |
* - When you change the default for an option sub-key, make sure you verify that the validation routine will
|
48 |
+
* still work the way it should.
|
49 |
+
* Example: changing a default from '' (empty string) to 'text' with a validation routine with tests
|
50 |
+
* for an empty string will prevent a user from saving an empty string as the real value. So the
|
51 |
+
* test for '' with the validation routine would have to be removed in that case.
|
52 |
* - If an option needs specific actions different from defined in this abstract class, you can just overrule
|
53 |
+
* a method by defining it in the concrete class.
|
54 |
*
|
55 |
+
* @todo [JRF => testers] Double check that validation will not cause errors when called
|
56 |
+
* from upgrade routine (some of the WP functions may not yet be available).
|
57 |
*/
|
58 |
abstract class WPSEO_Option {
|
59 |
|
204 |
* Enrich defaults once custom post types and taxonomies have been registered
|
205 |
* which is normally done on the init action.
|
206 |
*
|
207 |
+
* @todo [JRF/testers] Verify that none of the options which are only available after
|
208 |
* enrichment are used before the enriching.
|
209 |
*/
|
210 |
if ( method_exists( $this, 'enrich_defaults' ) ) {
|
238 |
/**
|
239 |
* Add filters to make sure that the option default is returned if the option is not set.
|
240 |
*
|
241 |
+
* @return void
|
242 |
*/
|
243 |
public function add_default_filters() {
|
244 |
// Don't change, needs to check for false as could return prio 0 which would evaluate to false.
|
307 |
if ( function_exists( 'add_settings_error' ) ) {
|
308 |
add_settings_error(
|
309 |
$this->group_name, // Slug title of the setting.
|
310 |
+
'_' . $key, // Suffix-ID for the error message box.
|
311 |
/* translators: 1: Verification string from user input; 2: Service name. */
|
312 |
sprintf( __( '%1$s does not seem to be a valid %2$s verification string. Please correct.', 'wordpress-seo' ), '<strong>' . esc_html( $meta ) . '</strong>', $service ), // The error message.
|
313 |
'error' // Error type, either 'error' or 'updated'.
|
341 |
$url = WPSEO_Utils::sanitize_url( $dirty[ $key ] );
|
342 |
add_settings_error(
|
343 |
$this->group_name, // Slug title of the setting.
|
344 |
+
'_' . $key, // Suffix-ID for the error message box.
|
345 |
sprintf(
|
346 |
/* translators: %s expands to an invalid URL. */
|
347 |
__( '%s does not seem to be a valid url. Please correct.', 'wordpress-seo' ),
|
358 |
* Remove the default filters.
|
359 |
* Called from the validate() method to prevent failure to add new options.
|
360 |
*
|
361 |
+
* @return void
|
362 |
*/
|
363 |
public function remove_default_filters() {
|
364 |
remove_filter( 'default_option_' . $this->option_name, array( $this, 'get_defaults' ) );
|
372 |
* {@internal The enrich_defaults method is used to set defaults for variable array keys
|
373 |
* in an option, such as array keys depending on post_types and/or taxonomies.}}
|
374 |
*
|
375 |
+
* @return array
|
376 |
*/
|
377 |
public function get_defaults() {
|
378 |
if ( method_exists( $this, 'translate_defaults' ) ) {
|
389 |
/**
|
390 |
* Add filters to make sure that the option is merged with its defaults before being returned.
|
391 |
*
|
392 |
+
* @return void
|
393 |
*/
|
394 |
public function add_option_filters() {
|
395 |
// Don't change, needs to check for false as could return prio 0 which would evaluate to false.
|
402 |
* Remove the option filters.
|
403 |
* Called from the clean_up methods to make sure we retrieve the original old option.
|
404 |
*
|
405 |
+
* @return void
|
406 |
*/
|
407 |
public function remove_option_filters() {
|
408 |
remove_filter( 'option_' . $this->option_name, array( $this, 'get_option' ) );
|
413 |
*
|
414 |
* This method should *not* be called directly!!! It is only meant to filter the get_option() results.
|
415 |
*
|
416 |
+
* @param mixed $options Option value.
|
417 |
*
|
418 |
+
* @return mixed Option merged with the defaults for that option.
|
419 |
*/
|
420 |
public function get_option( $options = null ) {
|
421 |
$filtered = $this->array_filter_merge( $options );
|
461 |
/**
|
462 |
* Validate the option
|
463 |
*
|
464 |
+
* @param mixed $option_value The unvalidated new value for the option.
|
465 |
*
|
466 |
+
* @return array Validated new value for the option.
|
467 |
*/
|
468 |
public function validate( $option_value ) {
|
469 |
$clean = $this->get_defaults();
|
503 |
* with 'allow_'.
|
504 |
*
|
505 |
* @param string $key Option key.
|
506 |
+
*
|
507 |
* @return bool True if option key is disabled, false otherwise.
|
508 |
*/
|
509 |
public function is_disabled( $key ) {
|
519 |
* All concrete classes must contain a validate_option() method which validates all
|
520 |
* values within the option.
|
521 |
*
|
522 |
+
* @param array $dirty New value for the option.
|
523 |
+
* @param array $clean Clean value for the option, normally the defaults.
|
524 |
+
* @param array $old Old value of the option.
|
525 |
*/
|
526 |
abstract protected function validate_option( $dirty, $clean, $old );
|
527 |
|
602 |
* @uses WPSEO_Option::get_original_option()
|
603 |
* @uses WPSEO_Option::import()
|
604 |
*
|
605 |
+
* @param string $current_version Optional. Version from which to upgrade, if not set,
|
606 |
+
* version specific upgrades will be disregarded.
|
607 |
*
|
608 |
* @return void
|
609 |
*/
|
626 |
* once the admin has dismissed the message (add ajax function)
|
627 |
* Important: all validation routines which add_settings_errors would need to be changed for this to work
|
628 |
*
|
629 |
+
* @param array $option_value Option value to be imported.
|
630 |
+
* @param string $current_version Optional. Version from which to upgrade, if not set,
|
631 |
+
* version specific upgrades will be disregarded.
|
632 |
+
* @param array $all_old_option_values Optional. Only used when importing old options to
|
633 |
+
* have access to the real old values, in contrast to
|
634 |
+
* the saved ones.
|
635 |
*
|
636 |
* @return void
|
637 |
*/
|
678 |
* @todo [JRF] - shouldn't this be a straight array merge ? at the end of the day, the validation
|
679 |
* removes any invalid keys on save.
|
680 |
*
|
681 |
+
* @param array $options Optional. Current options. If not set, the option defaults
|
682 |
+
* for the $option_key will be returned.
|
683 |
*
|
684 |
+
* @return array Combined and filtered options array.
|
685 |
*/
|
686 |
protected function array_filter_merge( $options = null ) {
|
687 |
|
761 |
* {@internal The wpseo_titles concrete class overrules this method. Make sure that any
|
762 |
* changes applied here, also get ported to that version.}}
|
763 |
*
|
764 |
+
* @param array $dirty Original option as retrieved from the database.
|
765 |
+
* @param array $clean Filtered option where any options which shouldn't be in our option
|
766 |
+
* have already been removed and any options which weren't set
|
767 |
+
* have been set to their defaults.
|
768 |
*
|
769 |
+
* @return array
|
770 |
*/
|
771 |
protected function retain_variable_keys( $dirty, $clean ) {
|
772 |
if ( ( is_array( $this->variable_array_key_patterns ) && $this->variable_array_key_patterns !== array() ) && ( is_array( $dirty ) && $dirty !== array() ) ) {
|
795 |
*
|
796 |
* @usedby validate_option() methods for options with variable array keys.
|
797 |
*
|
798 |
+
* @param string $key Array key to check.
|
799 |
*
|
800 |
+
* @return string Pattern if it conforms, original array key if it doesn't or if the option
|
801 |
+
* does not have variable array keys.
|
802 |
*/
|
803 |
protected function get_switch_key( $key ) {
|
804 |
if ( ! isset( $this->variable_array_key_patterns ) || ( ! is_array( $this->variable_array_key_patterns ) || $this->variable_array_key_patterns === array() ) ) {
|
inc/options/class-wpseo-options.php
CHANGED
@@ -84,9 +84,9 @@ class WPSEO_Options {
|
|
84 |
/**
|
85 |
* Get the group name of an option for use in the settings form.
|
86 |
*
|
87 |
-
* @param
|
88 |
*
|
89 |
-
* @return
|
90 |
*/
|
91 |
public static function get_group_name( $option_name ) {
|
92 |
if ( isset( self::$option_instances[ $option_name ] ) ) {
|
@@ -99,10 +99,10 @@ class WPSEO_Options {
|
|
99 |
/**
|
100 |
* Get a specific default value for an option.
|
101 |
*
|
102 |
-
* @param
|
103 |
-
* @param
|
104 |
*
|
105 |
-
* @return
|
106 |
*/
|
107 |
public static function get_default( $option_name, $key ) {
|
108 |
if ( isset( self::$option_instances[ $option_name ] ) ) {
|
@@ -118,8 +118,8 @@ class WPSEO_Options {
|
|
118 |
/**
|
119 |
* Update a site_option.
|
120 |
*
|
121 |
-
* @param
|
122 |
-
* @param
|
123 |
*
|
124 |
* @return bool
|
125 |
*/
|
@@ -134,9 +134,9 @@ class WPSEO_Options {
|
|
134 |
/**
|
135 |
* Get the instantiated option instance.
|
136 |
*
|
137 |
-
* @param
|
138 |
*
|
139 |
-
* @return
|
140 |
*/
|
141 |
public static function get_option_instance( $option_name ) {
|
142 |
if ( isset( self::$option_instances[ $option_name ] ) ) {
|
@@ -149,7 +149,7 @@ class WPSEO_Options {
|
|
149 |
/**
|
150 |
* Retrieve an array of the options which should be included in get_all() and reset().
|
151 |
*
|
152 |
-
* @return
|
153 |
*/
|
154 |
public static function get_option_names() {
|
155 |
static $option_names = array();
|
@@ -169,10 +169,10 @@ class WPSEO_Options {
|
|
169 |
/**
|
170 |
* Retrieve all the options for the SEO plugin in one go.
|
171 |
*
|
172 |
-
* @todo [JRF]
|
173 |
-
* well change between calls (enriched defaults and such)
|
174 |
*
|
175 |
-
* @return
|
176 |
*/
|
177 |
public static function get_all() {
|
178 |
return self::get_options( self::get_option_names() );
|
@@ -183,7 +183,7 @@ class WPSEO_Options {
|
|
183 |
*
|
184 |
* @param array $option_names An array of option names of the options you want to get.
|
185 |
*
|
186 |
-
* @return
|
187 |
*/
|
188 |
public static function get_options( array $option_names ) {
|
189 |
$options = array();
|
@@ -289,13 +289,13 @@ class WPSEO_Options {
|
|
289 |
/**
|
290 |
* Run the clean up routine for one or all options.
|
291 |
*
|
292 |
-
* @param
|
293 |
-
*
|
294 |
-
*
|
295 |
-
* @param
|
296 |
-
*
|
297 |
*
|
298 |
-
* @return
|
299 |
*/
|
300 |
public static function clean_up( $option_name = null, $current_version = null ) {
|
301 |
if ( isset( $option_name ) && is_string( $option_name ) && $option_name !== '' ) {
|
@@ -325,7 +325,7 @@ class WPSEO_Options {
|
|
325 |
/**
|
326 |
* Check that all options exist in the database and add any which don't.
|
327 |
*
|
328 |
-
* @return
|
329 |
*/
|
330 |
public static function ensure_options_exist() {
|
331 |
foreach ( self::$option_instances as $instance ) {
|
@@ -372,7 +372,7 @@ class WPSEO_Options {
|
|
372 |
/**
|
373 |
* Initialize default values for a new multisite blog.
|
374 |
*
|
375 |
-
* @param
|
376 |
*
|
377 |
* @return void
|
378 |
*/
|
@@ -394,9 +394,9 @@ class WPSEO_Options {
|
|
394 |
* Reset all options for a specific multisite blog to their default values based upon a
|
395 |
* specified default blog if one was chosen on the network page or the plugin defaults if it was not.
|
396 |
*
|
397 |
-
* @param
|
398 |
*
|
399 |
-
* @return
|
400 |
*/
|
401 |
public static function reset_ms_blog( $blog_id ) {
|
402 |
if ( is_multisite() ) {
|
@@ -436,7 +436,7 @@ class WPSEO_Options {
|
|
436 |
*
|
437 |
* @param string $wpseo_options_group_name The name for the wpseo option group in the database.
|
438 |
* @param string $option_name The name for the option to set.
|
439 |
-
* @param
|
440 |
*
|
441 |
* @return boolean Returns true if the option is successfully saved in the database.
|
442 |
*/
|
84 |
/**
|
85 |
* Get the group name of an option for use in the settings form.
|
86 |
*
|
87 |
+
* @param string $option_name The option for which you want to retrieve the option group name.
|
88 |
*
|
89 |
+
* @return string|bool
|
90 |
*/
|
91 |
public static function get_group_name( $option_name ) {
|
92 |
if ( isset( self::$option_instances[ $option_name ] ) ) {
|
99 |
/**
|
100 |
* Get a specific default value for an option.
|
101 |
*
|
102 |
+
* @param string $option_name The option for which you want to retrieve a default.
|
103 |
+
* @param string $key The key within the option who's default you want.
|
104 |
*
|
105 |
+
* @return mixed
|
106 |
*/
|
107 |
public static function get_default( $option_name, $key ) {
|
108 |
if ( isset( self::$option_instances[ $option_name ] ) ) {
|
118 |
/**
|
119 |
* Update a site_option.
|
120 |
*
|
121 |
+
* @param string $option_name The option name of the option to save.
|
122 |
+
* @param mixed $value The new value for the option.
|
123 |
*
|
124 |
* @return bool
|
125 |
*/
|
134 |
/**
|
135 |
* Get the instantiated option instance.
|
136 |
*
|
137 |
+
* @param string $option_name The option for which you want to retrieve the instance.
|
138 |
*
|
139 |
+
* @return object|bool
|
140 |
*/
|
141 |
public static function get_option_instance( $option_name ) {
|
142 |
if ( isset( self::$option_instances[ $option_name ] ) ) {
|
149 |
/**
|
150 |
* Retrieve an array of the options which should be included in get_all() and reset().
|
151 |
*
|
152 |
+
* @return array Array of option names.
|
153 |
*/
|
154 |
public static function get_option_names() {
|
155 |
static $option_names = array();
|
169 |
/**
|
170 |
* Retrieve all the options for the SEO plugin in one go.
|
171 |
*
|
172 |
+
* @todo [JRF] See if we can get some extra efficiency for this one, though probably not as options may
|
173 |
+
* well change between calls (enriched defaults and such).
|
174 |
*
|
175 |
+
* @return array Array combining the values of all the options.
|
176 |
*/
|
177 |
public static function get_all() {
|
178 |
return self::get_options( self::get_option_names() );
|
183 |
*
|
184 |
* @param array $option_names An array of option names of the options you want to get.
|
185 |
*
|
186 |
+
* @return array Array combining the values of the requested options.
|
187 |
*/
|
188 |
public static function get_options( array $option_names ) {
|
189 |
$options = array();
|
289 |
/**
|
290 |
* Run the clean up routine for one or all options.
|
291 |
*
|
292 |
+
* @param array|string $option_name Optional. the option you want to clean or an array of
|
293 |
+
* option names for the options you want to clean.
|
294 |
+
* If not set, all options will be cleaned.
|
295 |
+
* @param string $current_version Optional. Version from which to upgrade, if not set,
|
296 |
+
* version specific upgrades will be disregarded.
|
297 |
*
|
298 |
+
* @return void
|
299 |
*/
|
300 |
public static function clean_up( $option_name = null, $current_version = null ) {
|
301 |
if ( isset( $option_name ) && is_string( $option_name ) && $option_name !== '' ) {
|
325 |
/**
|
326 |
* Check that all options exist in the database and add any which don't.
|
327 |
*
|
328 |
+
* @return void
|
329 |
*/
|
330 |
public static function ensure_options_exist() {
|
331 |
foreach ( self::$option_instances as $instance ) {
|
372 |
/**
|
373 |
* Initialize default values for a new multisite blog.
|
374 |
*
|
375 |
+
* @param bool $force_init Whether to always do the initialization routine (title/desc test).
|
376 |
*
|
377 |
* @return void
|
378 |
*/
|
394 |
* Reset all options for a specific multisite blog to their default values based upon a
|
395 |
* specified default blog if one was chosen on the network page or the plugin defaults if it was not.
|
396 |
*
|
397 |
+
* @param int|string $blog_id Blog id of the blog for which to reset the options.
|
398 |
*
|
399 |
+
* @return void
|
400 |
*/
|
401 |
public static function reset_ms_blog( $blog_id ) {
|
402 |
if ( is_multisite() ) {
|
436 |
*
|
437 |
* @param string $wpseo_options_group_name The name for the wpseo option group in the database.
|
438 |
* @param string $option_name The name for the option to set.
|
439 |
+
* @param mixed $option_value The value for the option.
|
440 |
*
|
441 |
* @return boolean Returns true if the option is successfully saved in the database.
|
442 |
*/
|
inc/options/class-wpseo-taxonomy-meta.php
CHANGED
@@ -11,33 +11,44 @@
|
|
11 |
class WPSEO_Taxonomy_Meta extends WPSEO_Option {
|
12 |
|
13 |
/**
|
14 |
-
*
|
|
|
|
|
15 |
*/
|
16 |
public $option_name = 'wpseo_taxonomy_meta';
|
17 |
|
18 |
/**
|
19 |
-
*
|
|
|
|
|
20 |
*/
|
21 |
public $include_in_all = false;
|
22 |
|
23 |
/**
|
24 |
-
*
|
25 |
-
*
|
|
|
26 |
*
|
27 |
* {@internal Important: in contrast to most defaults, the below array format is
|
28 |
* very bare. The real option is in the format [taxonomy_name][term_id][...]
|
29 |
* where [...] is any of the $defaults_per_term options shown below.
|
30 |
* This is of course taken into account in the below methods.}}
|
|
|
|
|
31 |
*/
|
32 |
protected $defaults = array();
|
33 |
|
34 |
/**
|
35 |
-
*
|
|
|
|
|
36 |
*/
|
37 |
public static $name;
|
38 |
|
39 |
/**
|
40 |
-
*
|
|
|
|
|
41 |
*/
|
42 |
public static $defaults_per_term = array(
|
43 |
'wpseo_title' => '',
|
@@ -63,10 +74,13 @@ class WPSEO_Taxonomy_Meta extends WPSEO_Option {
|
|
63 |
);
|
64 |
|
65 |
/**
|
66 |
-
*
|
67 |
-
*
|
|
|
68 |
*
|
69 |
* {@internal Labels (translation) added on admin_init via WPSEO_Taxonomy::translate_meta_options().}}
|
|
|
|
|
70 |
*/
|
71 |
public static $no_index_options = array(
|
72 |
'default' => '',
|
@@ -121,10 +135,11 @@ class WPSEO_Taxonomy_Meta extends WPSEO_Option {
|
|
121 |
* Helper method - Combines a fixed array of default values with an options array
|
122 |
* while filtering out any keys which are not in the defaults array.
|
123 |
*
|
124 |
-
* @param
|
125 |
-
* @param
|
|
|
126 |
*
|
127 |
-
* @return
|
128 |
*/
|
129 |
|
130 |
/*
|
@@ -173,11 +188,11 @@ class WPSEO_Taxonomy_Meta extends WPSEO_Option {
|
|
173 |
/**
|
174 |
* Validate the option.
|
175 |
*
|
176 |
-
* @param
|
177 |
-
* @param
|
178 |
-
* @param
|
179 |
*
|
180 |
-
* @return
|
181 |
*/
|
182 |
protected function validate_option( $dirty, $clean, $old ) {
|
183 |
/*
|
@@ -226,10 +241,10 @@ class WPSEO_Taxonomy_Meta extends WPSEO_Option {
|
|
226 |
/**
|
227 |
* Validate the meta data for one individual term and removes default values (no need to save those).
|
228 |
*
|
229 |
-
* @param
|
230 |
-
* @param
|
231 |
*
|
232 |
-
* @return
|
233 |
*/
|
234 |
public static function validate_term_meta_data( $meta_data, $old_meta ) {
|
235 |
|
@@ -346,14 +361,14 @@ class WPSEO_Taxonomy_Meta extends WPSEO_Option {
|
|
346 |
* - Convert old option values to new
|
347 |
* - Fixes strings which were escaped (should have been sanitized - escaping is for output)
|
348 |
*
|
349 |
-
* @param
|
350 |
-
*
|
351 |
-
* @param
|
352 |
-
*
|
353 |
-
* @param
|
354 |
-
*
|
355 |
*
|
356 |
-
* @return
|
357 |
*/
|
358 |
protected function clean_option( $option_value, $current_version = null, $all_old_option_values = null ) {
|
359 |
|
@@ -385,7 +400,7 @@ class WPSEO_Taxonomy_Meta extends WPSEO_Option {
|
|
385 |
case 'wpseo_title':
|
386 |
case 'wpseo_desc':
|
387 |
case 'wpseo_linkdex':
|
388 |
-
// @todo [JRF => whomever]
|
389 |
if ( $value !== '' ) {
|
390 |
// Fix incorrectly saved (encoded) canonical urls and texts.
|
391 |
$option_value[ $taxonomy ][ $term_id ][ $key ] = wp_specialchars_decode( stripslashes( $value ), ENT_QUOTES );
|
@@ -393,7 +408,7 @@ class WPSEO_Taxonomy_Meta extends WPSEO_Option {
|
|
393 |
break;
|
394 |
|
395 |
default:
|
396 |
-
// @todo [JRF => whomever]
|
397 |
if ( $value !== '' ) {
|
398 |
// Fix incorrectly saved (escaped) text strings.
|
399 |
$option_value[ $taxonomy ][ $term_id ][ $key ] = wp_specialchars_decode( $value, ENT_QUOTES );
|
@@ -417,14 +432,14 @@ class WPSEO_Taxonomy_Meta extends WPSEO_Option {
|
|
417 |
/**
|
418 |
* Retrieve a taxonomy term's meta value(s).
|
419 |
*
|
420 |
-
* @param
|
421 |
-
*
|
422 |
-
* @param
|
423 |
-
* @param
|
424 |
*
|
425 |
-
* @return
|
426 |
-
*
|
427 |
-
*
|
428 |
*/
|
429 |
public static function get_term_meta( $term, $taxonomy, $meta = null ) {
|
430 |
/* Figure out the term id. */
|
11 |
class WPSEO_Taxonomy_Meta extends WPSEO_Option {
|
12 |
|
13 |
/**
|
14 |
+
* Option name.
|
15 |
+
*
|
16 |
+
* @var string
|
17 |
*/
|
18 |
public $option_name = 'wpseo_taxonomy_meta';
|
19 |
|
20 |
/**
|
21 |
+
* Whether to include the option in the return for WPSEO_Options::get_all().
|
22 |
+
*
|
23 |
+
* @var bool
|
24 |
*/
|
25 |
public $include_in_all = false;
|
26 |
|
27 |
/**
|
28 |
+
* Array of defaults for the option.
|
29 |
+
*
|
30 |
+
* Shouldn't be requested directly, use $this->get_defaults();
|
31 |
*
|
32 |
* {@internal Important: in contrast to most defaults, the below array format is
|
33 |
* very bare. The real option is in the format [taxonomy_name][term_id][...]
|
34 |
* where [...] is any of the $defaults_per_term options shown below.
|
35 |
* This is of course taken into account in the below methods.}}
|
36 |
+
*
|
37 |
+
* @var array
|
38 |
*/
|
39 |
protected $defaults = array();
|
40 |
|
41 |
/**
|
42 |
+
* Option name - same as $option_name property, but now also available to static methods.
|
43 |
+
*
|
44 |
+
* @var string
|
45 |
*/
|
46 |
public static $name;
|
47 |
|
48 |
/**
|
49 |
+
* Array of defaults for individual taxonomy meta entries.
|
50 |
+
*
|
51 |
+
* @var array
|
52 |
*/
|
53 |
public static $defaults_per_term = array(
|
54 |
'wpseo_title' => '',
|
74 |
);
|
75 |
|
76 |
/**
|
77 |
+
* Available index options.
|
78 |
+
*
|
79 |
+
* Used for form generation and input validation.
|
80 |
*
|
81 |
* {@internal Labels (translation) added on admin_init via WPSEO_Taxonomy::translate_meta_options().}}
|
82 |
+
*
|
83 |
+
* @var array
|
84 |
*/
|
85 |
public static $no_index_options = array(
|
86 |
'default' => '',
|
135 |
* Helper method - Combines a fixed array of default values with an options array
|
136 |
* while filtering out any keys which are not in the defaults array.
|
137 |
*
|
138 |
+
* @param string $option_key Option name of the option we're doing the merge for.
|
139 |
+
* @param array $options Optional. Current options. If not set, the option defaults
|
140 |
+
* for the $option_key will be returned.
|
141 |
*
|
142 |
+
* @return array Combined and filtered options array.
|
143 |
*/
|
144 |
|
145 |
/*
|
188 |
/**
|
189 |
* Validate the option.
|
190 |
*
|
191 |
+
* @param array $dirty New value for the option.
|
192 |
+
* @param array $clean Clean value for the option, normally the defaults.
|
193 |
+
* @param array $old Old value of the option.
|
194 |
*
|
195 |
+
* @return array Validated clean value for the option to be saved to the database.
|
196 |
*/
|
197 |
protected function validate_option( $dirty, $clean, $old ) {
|
198 |
/*
|
241 |
/**
|
242 |
* Validate the meta data for one individual term and removes default values (no need to save those).
|
243 |
*
|
244 |
+
* @param array $meta_data New values.
|
245 |
+
* @param array $old_meta The original values.
|
246 |
*
|
247 |
+
* @return array Validated and filtered value.
|
248 |
*/
|
249 |
public static function validate_term_meta_data( $meta_data, $old_meta ) {
|
250 |
|
361 |
* - Convert old option values to new
|
362 |
* - Fixes strings which were escaped (should have been sanitized - escaping is for output)
|
363 |
*
|
364 |
+
* @param array $option_value Old (not merged with defaults or filtered) option value to
|
365 |
+
* clean according to the rules for this option.
|
366 |
+
* @param string $current_version Optional. Version from which to upgrade, if not set,
|
367 |
+
* version specific upgrades will be disregarded.
|
368 |
+
* @param array $all_old_option_values Optional. Only used when importing old options to have
|
369 |
+
* access to the real old values, in contrast to the saved ones.
|
370 |
*
|
371 |
+
* @return array Cleaned option.
|
372 |
*/
|
373 |
protected function clean_option( $option_value, $current_version = null, $all_old_option_values = null ) {
|
374 |
|
400 |
case 'wpseo_title':
|
401 |
case 'wpseo_desc':
|
402 |
case 'wpseo_linkdex':
|
403 |
+
// @todo [JRF => whomever] Needs checking, I don't have example data [JRF].
|
404 |
if ( $value !== '' ) {
|
405 |
// Fix incorrectly saved (encoded) canonical urls and texts.
|
406 |
$option_value[ $taxonomy ][ $term_id ][ $key ] = wp_specialchars_decode( stripslashes( $value ), ENT_QUOTES );
|
408 |
break;
|
409 |
|
410 |
default:
|
411 |
+
// @todo [JRF => whomever] Needs checking, I don't have example data [JRF].
|
412 |
if ( $value !== '' ) {
|
413 |
// Fix incorrectly saved (escaped) text strings.
|
414 |
$option_value[ $taxonomy ][ $term_id ][ $key ] = wp_specialchars_decode( $value, ENT_QUOTES );
|
432 |
/**
|
433 |
* Retrieve a taxonomy term's meta value(s).
|
434 |
*
|
435 |
+
* @param mixed $term Term to get the meta value for
|
436 |
+
* either (string) term name, (int) term id or (object) term.
|
437 |
+
* @param string $taxonomy Name of the taxonomy to which the term is attached.
|
438 |
+
* @param string $meta Optional. Meta value to get (without prefix).
|
439 |
*
|
440 |
+
* @return mixed|bool Value for the $meta if one is given, might be the default.
|
441 |
+
* If no meta is given, an array of all the meta data for the term.
|
442 |
+
* False if the term does not exist or the $meta provided is invalid.
|
443 |
*/
|
444 |
public static function get_term_meta( $term, $taxonomy, $meta = null ) {
|
445 |
/* Figure out the term id. */
|
inc/sitemaps/class-author-sitemap-provider.php
CHANGED
@@ -91,7 +91,7 @@ class WPSEO_Author_Sitemap_Provider implements WPSEO_Sitemap_Provider {
|
|
91 |
|
92 |
$defaults = array(
|
93 |
// @todo Re-enable after plugin requirements raised to WP 4.6 with the fix.
|
94 |
-
// 'who' => 'authors', Breaks meta keys,
|
95 |
'meta_key' => '_yoast_wpseo_profile_updated',
|
96 |
'orderby' => 'meta_value_num',
|
97 |
'order' => 'DESC',
|
91 |
|
92 |
$defaults = array(
|
93 |
// @todo Re-enable after plugin requirements raised to WP 4.6 with the fix.
|
94 |
+
// 'who' => 'authors', Breaks meta keys, {@link https://core.trac.wordpress.org/ticket/36724#ticket} R.
|
95 |
'meta_key' => '_yoast_wpseo_profile_updated',
|
96 |
'orderby' => 'meta_value_num',
|
97 |
'order' => 'DESC',
|
inc/sitemaps/class-post-type-sitemap-provider.php
CHANGED
@@ -53,7 +53,7 @@ class WPSEO_Post_Type_Sitemap_Provider implements WPSEO_Sitemap_Provider {
|
|
53 |
}
|
54 |
|
55 |
/**
|
56 |
-
* Get front page ID
|
57 |
*
|
58 |
* @return int
|
59 |
*/
|
@@ -66,7 +66,7 @@ class WPSEO_Post_Type_Sitemap_Provider implements WPSEO_Sitemap_Provider {
|
|
66 |
}
|
67 |
|
68 |
/**
|
69 |
-
* Get page for posts ID
|
70 |
*
|
71 |
* @return int
|
72 |
*/
|
@@ -79,7 +79,7 @@ class WPSEO_Post_Type_Sitemap_Provider implements WPSEO_Sitemap_Provider {
|
|
79 |
}
|
80 |
|
81 |
/**
|
82 |
-
* Get the Image Parser
|
83 |
*
|
84 |
* @return WPSEO_Sitemap_Image_Parser
|
85 |
*/
|
@@ -92,7 +92,7 @@ class WPSEO_Post_Type_Sitemap_Provider implements WPSEO_Sitemap_Provider {
|
|
92 |
}
|
93 |
|
94 |
/**
|
95 |
-
* Get the Classifier for a link
|
96 |
*
|
97 |
* @return WPSEO_Link_Type_Classifier
|
98 |
*/
|
@@ -105,7 +105,7 @@ class WPSEO_Post_Type_Sitemap_Provider implements WPSEO_Sitemap_Provider {
|
|
105 |
}
|
106 |
|
107 |
/**
|
108 |
-
* Get Home URL
|
109 |
*
|
110 |
* This has been moved from the constructor because wp_rewrite is not available on plugins_loaded in multisite.
|
111 |
* It will now be requested on need and not on initialization.
|
@@ -524,7 +524,7 @@ class WPSEO_Post_Type_Sitemap_Provider implements WPSEO_Sitemap_Provider {
|
|
524 |
'join' => apply_filters( 'wpseo_posts_join', false, $post_type ),
|
525 |
|
526 |
/**
|
527 |
-
* Filter
|
528 |
*
|
529 |
* @param string $where SQL part, defaults to false.
|
530 |
* @param string $post_type Post type name.
|
@@ -627,7 +627,7 @@ class WPSEO_Post_Type_Sitemap_Provider implements WPSEO_Sitemap_Provider {
|
|
627 |
/*
|
628 |
* Do not include external URLs.
|
629 |
*
|
630 |
-
* @
|
631 |
*/
|
632 |
if ( $this->get_classifier()->classify( $url['loc'] ) === WPSEO_Link::TYPE_EXTERNAL ) {
|
633 |
return false;
|
@@ -662,7 +662,7 @@ class WPSEO_Post_Type_Sitemap_Provider implements WPSEO_Sitemap_Provider {
|
|
662 |
/* ********************* DEPRECATED METHODS ********************* */
|
663 |
|
664 |
/**
|
665 |
-
* Get all the options
|
666 |
*
|
667 |
* @deprecated 7.0
|
668 |
* @codeCoverageIgnore
|
53 |
}
|
54 |
|
55 |
/**
|
56 |
+
* Get front page ID.
|
57 |
*
|
58 |
* @return int
|
59 |
*/
|
66 |
}
|
67 |
|
68 |
/**
|
69 |
+
* Get page for posts ID.
|
70 |
*
|
71 |
* @return int
|
72 |
*/
|
79 |
}
|
80 |
|
81 |
/**
|
82 |
+
* Get the Image Parser.
|
83 |
*
|
84 |
* @return WPSEO_Sitemap_Image_Parser
|
85 |
*/
|
92 |
}
|
93 |
|
94 |
/**
|
95 |
+
* Get the Classifier for a link.
|
96 |
*
|
97 |
* @return WPSEO_Link_Type_Classifier
|
98 |
*/
|
105 |
}
|
106 |
|
107 |
/**
|
108 |
+
* Get Home URL.
|
109 |
*
|
110 |
* This has been moved from the constructor because wp_rewrite is not available on plugins_loaded in multisite.
|
111 |
* It will now be requested on need and not on initialization.
|
524 |
'join' => apply_filters( 'wpseo_posts_join', false, $post_type ),
|
525 |
|
526 |
/**
|
527 |
+
* Filter WHERE query part for the post type.
|
528 |
*
|
529 |
* @param string $where SQL part, defaults to false.
|
530 |
* @param string $post_type Post type name.
|
627 |
/*
|
628 |
* Do not include external URLs.
|
629 |
*
|
630 |
+
* {@link https://wordpress.org/plugins/page-links-to/} can rewrite permalinks to external URLs.
|
631 |
*/
|
632 |
if ( $this->get_classifier()->classify( $url['loc'] ) === WPSEO_Link::TYPE_EXTERNAL ) {
|
633 |
return false;
|
662 |
/* ********************* DEPRECATED METHODS ********************* */
|
663 |
|
664 |
/**
|
665 |
+
* Get all the options.
|
666 |
*
|
667 |
* @deprecated 7.0
|
668 |
* @codeCoverageIgnore
|
inc/sitemaps/class-sitemap-cache-data.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Sitemap Cache Data object, manages sitemap data stored in cache
|
10 |
*/
|
11 |
class WPSEO_Sitemap_Cache_Data implements WPSEO_Sitemap_Cache_Data_Interface, Serializable {
|
12 |
|
@@ -96,7 +96,7 @@ class WPSEO_Sitemap_Cache_Data implements WPSEO_Sitemap_Cache_Data_Interface, Se
|
|
96 |
/**
|
97 |
* Get the status of the sitemap.
|
98 |
*
|
99 |
-
* @return string Status of the sitemap, 'ok'/'error'/'unknown'
|
100 |
*/
|
101 |
public function get_status() {
|
102 |
|
@@ -104,11 +104,13 @@ class WPSEO_Sitemap_Cache_Data implements WPSEO_Sitemap_Cache_Data_Interface, Se
|
|
104 |
}
|
105 |
|
106 |
/**
|
107 |
-
* String representation of object
|
|
|
|
|
108 |
*
|
109 |
-
* @link http://php.net/manual/en/serializable.serialize.php
|
110 |
-
* @return string the string representation of the object or null
|
111 |
* @since 5.1.0
|
|
|
|
|
112 |
*/
|
113 |
public function serialize() {
|
114 |
|
@@ -121,14 +123,15 @@ class WPSEO_Sitemap_Cache_Data implements WPSEO_Sitemap_Cache_Data_Interface, Se
|
|
121 |
}
|
122 |
|
123 |
/**
|
124 |
-
* Constructs the object
|
125 |
*
|
126 |
-
* @link
|
|
|
|
|
127 |
*
|
128 |
* @param string $serialized The string representation of the object.
|
129 |
*
|
130 |
* @return void
|
131 |
-
* @since 5.1.0
|
132 |
*/
|
133 |
public function unserialize( $serialized ) {
|
134 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Sitemap Cache Data object, manages sitemap data stored in cache.
|
10 |
*/
|
11 |
class WPSEO_Sitemap_Cache_Data implements WPSEO_Sitemap_Cache_Data_Interface, Serializable {
|
12 |
|
96 |
/**
|
97 |
* Get the status of the sitemap.
|
98 |
*
|
99 |
+
* @return string Status of the sitemap, 'ok'/'error'/'unknown'.
|
100 |
*/
|
101 |
public function get_status() {
|
102 |
|
104 |
}
|
105 |
|
106 |
/**
|
107 |
+
* String representation of object.
|
108 |
+
*
|
109 |
+
* @link http://php.net/manual/en/serializable.serialize.php
|
110 |
*
|
|
|
|
|
111 |
* @since 5.1.0
|
112 |
+
*
|
113 |
+
* @return string The string representation of the object or null.
|
114 |
*/
|
115 |
public function serialize() {
|
116 |
|
123 |
}
|
124 |
|
125 |
/**
|
126 |
+
* Constructs the object.
|
127 |
*
|
128 |
+
* @link http://php.net/manual/en/serializable.unserialize.php
|
129 |
+
*
|
130 |
+
* @since 5.1.0
|
131 |
*
|
132 |
* @param string $serialized The string representation of the object.
|
133 |
*
|
134 |
* @return void
|
|
|
135 |
*/
|
136 |
public function unserialize( $serialized ) {
|
137 |
|
inc/sitemaps/class-sitemap-image-parser.php
CHANGED
@@ -230,7 +230,7 @@ class WPSEO_Sitemap_Image_Parser {
|
|
230 |
* Parse gallery shortcodes in a given content.
|
231 |
*
|
232 |
* @param string $content Content string.
|
233 |
-
* @param int $post_id Optional ID of post being parsed.
|
234 |
*
|
235 |
* @return array Set of attachment objects.
|
236 |
*/
|
@@ -413,7 +413,7 @@ class WPSEO_Sitemap_Image_Parser {
|
|
413 |
}
|
414 |
|
415 |
if ( strpos( $src, 'http' ) !== 0 ) {
|
416 |
-
// Protocol relative
|
417 |
return $this->scheme . ':' . $src;
|
418 |
}
|
419 |
|
@@ -423,7 +423,7 @@ class WPSEO_Sitemap_Image_Parser {
|
|
423 |
/**
|
424 |
* Returns the attachments for a gallery.
|
425 |
*
|
426 |
-
* @param int $id The post
|
427 |
* @param array $gallery The gallery config.
|
428 |
*
|
429 |
* @return array The selected attachments.
|
@@ -444,9 +444,9 @@ class WPSEO_Sitemap_Image_Parser {
|
|
444 |
}
|
445 |
|
446 |
/**
|
447 |
-
* Returns the attachments for the given
|
448 |
*
|
449 |
-
* @param int $id The post
|
450 |
* @param array $gallery The gallery config.
|
451 |
*
|
452 |
* @return array The selected attachments.
|
@@ -466,9 +466,9 @@ class WPSEO_Sitemap_Image_Parser {
|
|
466 |
}
|
467 |
|
468 |
/**
|
469 |
-
* Returns an array with attachments for the post
|
470 |
*
|
471 |
-
* @param array $include Array with
|
472 |
*
|
473 |
* @return array The found attachments.
|
474 |
*/
|
230 |
* Parse gallery shortcodes in a given content.
|
231 |
*
|
232 |
* @param string $content Content string.
|
233 |
+
* @param int $post_id Optional. ID of post being parsed.
|
234 |
*
|
235 |
* @return array Set of attachment objects.
|
236 |
*/
|
413 |
}
|
414 |
|
415 |
if ( strpos( $src, 'http' ) !== 0 ) {
|
416 |
+
// Protocol relative URL, we add the scheme as the standard requires a protocol.
|
417 |
return $this->scheme . ':' . $src;
|
418 |
}
|
419 |
|
423 |
/**
|
424 |
* Returns the attachments for a gallery.
|
425 |
*
|
426 |
+
* @param int $id The post ID.
|
427 |
* @param array $gallery The gallery config.
|
428 |
*
|
429 |
* @return array The selected attachments.
|
444 |
}
|
445 |
|
446 |
/**
|
447 |
+
* Returns the attachments for the given ID.
|
448 |
*
|
449 |
+
* @param int $id The post ID.
|
450 |
* @param array $gallery The gallery config.
|
451 |
*
|
452 |
* @return array The selected attachments.
|
466 |
}
|
467 |
|
468 |
/**
|
469 |
+
* Returns an array with attachments for the post IDs that will be included.
|
470 |
*
|
471 |
+
* @param array $include Array with IDs to include.
|
472 |
*
|
473 |
* @return array The found attachments.
|
474 |
*/
|
inc/sitemaps/class-sitemap-timezone.php
CHANGED
@@ -6,12 +6,12 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Sitemap_Timezone
|
10 |
*/
|
11 |
class WPSEO_Sitemap_Timezone {
|
12 |
|
13 |
/**
|
14 |
-
* Holds the timezone string value to reuse for performance
|
15 |
*
|
16 |
* @var string $timezone_string
|
17 |
*/
|
@@ -39,9 +39,10 @@ class WPSEO_Sitemap_Timezone {
|
|
39 |
/**
|
40 |
* Get the datetime object, in site's time zone, if the datetime string was valid
|
41 |
*
|
42 |
-
* @param string $datetime_string The datetime string in UTC time zone, that needs
|
|
|
43 |
*
|
44 |
-
* @return DateTime|null in site's time zone
|
45 |
*/
|
46 |
public function get_datetime_with_timezone( $datetime_string ) {
|
47 |
|
@@ -63,11 +64,11 @@ class WPSEO_Sitemap_Timezone {
|
|
63 |
}
|
64 |
|
65 |
/**
|
66 |
-
* Returns the timezone string for a site, even if it's set to a UTC offset
|
67 |
*
|
68 |
-
* Adapted from http://www.php.net/manual/en/function.timezone-name-from-abbr.php#89155
|
69 |
*
|
70 |
-
* @return string
|
71 |
*/
|
72 |
private function determine_timezone_string() {
|
73 |
|
@@ -108,7 +109,7 @@ class WPSEO_Sitemap_Timezone {
|
|
108 |
}
|
109 |
|
110 |
/**
|
111 |
-
* Returns the correct timezone string
|
112 |
*
|
113 |
* @return string
|
114 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Sitemap_Timezone.
|
10 |
*/
|
11 |
class WPSEO_Sitemap_Timezone {
|
12 |
|
13 |
/**
|
14 |
+
* Holds the timezone string value to reuse for performance.
|
15 |
*
|
16 |
* @var string $timezone_string
|
17 |
*/
|
39 |
/**
|
40 |
* Get the datetime object, in site's time zone, if the datetime string was valid
|
41 |
*
|
42 |
+
* @param string $datetime_string The datetime string in UTC time zone, that needs
|
43 |
+
* to be converted to a DateTime object.
|
44 |
*
|
45 |
+
* @return DateTime|null DateTime object in site's time zone.
|
46 |
*/
|
47 |
public function get_datetime_with_timezone( $datetime_string ) {
|
48 |
|
64 |
}
|
65 |
|
66 |
/**
|
67 |
+
* Returns the timezone string for a site, even if it's set to a UTC offset.
|
68 |
*
|
69 |
+
* Adapted from {@link http://www.php.net/manual/en/function.timezone-name-from-abbr.php#89155}.
|
70 |
*
|
71 |
+
* @return string Valid PHP timezone string.
|
72 |
*/
|
73 |
private function determine_timezone_string() {
|
74 |
|
109 |
}
|
110 |
|
111 |
/**
|
112 |
+
* Returns the correct timezone string.
|
113 |
*
|
114 |
* @return string
|
115 |
*/
|
inc/sitemaps/class-sitemaps-admin.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class that handles the Admin side of XML sitemaps
|
10 |
*/
|
11 |
class WPSEO_Sitemaps_Admin {
|
12 |
|
@@ -18,7 +18,7 @@ class WPSEO_Sitemaps_Admin {
|
|
18 |
private $importing_post_types = array();
|
19 |
|
20 |
/**
|
21 |
-
* Class constructor
|
22 |
*/
|
23 |
public function __construct() {
|
24 |
add_action( 'transition_post_status', array( $this, 'status_transition' ), 10, 3 );
|
@@ -52,7 +52,7 @@ class WPSEO_Sitemaps_Admin {
|
|
52 |
|
53 |
wp_cache_delete( 'lastpostmodified:gmt:' . $post_type, 'timeinfo' ); // #17455.
|
54 |
|
55 |
-
//
|
56 |
if ( 'nav_menu_item' === $post_type ) {
|
57 |
return;
|
58 |
}
|
@@ -63,7 +63,7 @@ class WPSEO_Sitemaps_Admin {
|
|
63 |
}
|
64 |
|
65 |
/**
|
66 |
-
* Filter: 'wpseo_allow_xml_sitemap_ping' - Check if pinging is not allowed (allowed by default)
|
67 |
*
|
68 |
* @api boolean $allow_ping The boolean that is set to true by default.
|
69 |
*/
|
@@ -80,10 +80,10 @@ class WPSEO_Sitemaps_Admin {
|
|
80 |
}
|
81 |
|
82 |
/**
|
83 |
-
* While bulk importing, just save unique post_types
|
84 |
*
|
85 |
* When importing is done, if we have a post_type that is saved in the sitemap
|
86 |
-
* try to ping the search engines
|
87 |
*
|
88 |
* @param string $new_status New post status.
|
89 |
* @param string $old_status Old post status.
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class that handles the Admin side of XML sitemaps.
|
10 |
*/
|
11 |
class WPSEO_Sitemaps_Admin {
|
12 |
|
18 |
private $importing_post_types = array();
|
19 |
|
20 |
/**
|
21 |
+
* Class constructor.
|
22 |
*/
|
23 |
public function __construct() {
|
24 |
add_action( 'transition_post_status', array( $this, 'status_transition' ), 10, 3 );
|
52 |
|
53 |
wp_cache_delete( 'lastpostmodified:gmt:' . $post_type, 'timeinfo' ); // #17455.
|
54 |
|
55 |
+
// Not something we're interested in.
|
56 |
if ( 'nav_menu_item' === $post_type ) {
|
57 |
return;
|
58 |
}
|
63 |
}
|
64 |
|
65 |
/**
|
66 |
+
* Filter: 'wpseo_allow_xml_sitemap_ping' - Check if pinging is not allowed (allowed by default).
|
67 |
*
|
68 |
* @api boolean $allow_ping The boolean that is set to true by default.
|
69 |
*/
|
80 |
}
|
81 |
|
82 |
/**
|
83 |
+
* While bulk importing, just save unique post_types.
|
84 |
*
|
85 |
* When importing is done, if we have a post_type that is saved in the sitemap
|
86 |
+
* try to ping the search engines.
|
87 |
*
|
88 |
* @param string $new_status New post status.
|
89 |
* @param string $old_status Old post status.
|
inc/sitemaps/class-sitemaps-cache-validator.php
CHANGED
@@ -34,11 +34,11 @@ class WPSEO_Sitemaps_Cache_Validator {
|
|
34 |
const VALIDATION_TYPE_KEY_FORMAT = 'wpseo_sitemap_%s_cache_validator';
|
35 |
|
36 |
/**
|
37 |
-
* Get the cache key for a certain type and page
|
38 |
*
|
39 |
* A type of cache would be something like 'page', 'post' or 'video'.
|
40 |
*
|
41 |
-
* Example key format for sitemap type "post", page 1: wpseo_sitemap_post_1:akfw3e_23azBa
|
42 |
*
|
43 |
* @since 3.2
|
44 |
*
|
@@ -72,7 +72,7 @@ class WPSEO_Sitemaps_Cache_Validator {
|
|
72 |
}
|
73 |
|
74 |
/**
|
75 |
-
* If the type is over length make sure we compact it so we don't have any database problems
|
76 |
*
|
77 |
* When there are more 'extremely long' post types, changes are they have variations in either the start or ending.
|
78 |
* Because of this, we cut out the excess in the middle which should result in less chance of collision.
|
@@ -104,7 +104,7 @@ class WPSEO_Sitemaps_Cache_Validator {
|
|
104 |
/*
|
105 |
* If this happens the most likely cause is a page number that is too high.
|
106 |
*
|
107 |
-
* So this would not happen unintentionally
|
108 |
* Either by trying to cause a high server load, finding backdoors or misconfiguration.
|
109 |
*/
|
110 |
throw new OutOfRangeException(
|
@@ -127,7 +127,7 @@ class WPSEO_Sitemaps_Cache_Validator {
|
|
127 |
}
|
128 |
|
129 |
/**
|
130 |
-
* Invalidate sitemap cache
|
131 |
*
|
132 |
* @since 3.2
|
133 |
*
|
@@ -157,7 +157,7 @@ class WPSEO_Sitemaps_Cache_Validator {
|
|
157 |
}
|
158 |
|
159 |
/**
|
160 |
-
* Cleanup invalidated database cache
|
161 |
*
|
162 |
* @since 3.2
|
163 |
*
|
@@ -196,13 +196,12 @@ class WPSEO_Sitemaps_Cache_Validator {
|
|
196 |
}
|
197 |
|
198 |
/**
|
199 |
-
* Get the current cache validator
|
200 |
*
|
201 |
* Without the type the global validator is returned.
|
202 |
-
*
|
203 |
*
|
204 |
-
* With the type parameter the validator for that specific
|
205 |
-
* type can be invalidated
|
206 |
*
|
207 |
* @since 3.2
|
208 |
*
|
@@ -227,7 +226,7 @@ class WPSEO_Sitemaps_Cache_Validator {
|
|
227 |
}
|
228 |
|
229 |
/**
|
230 |
-
* Get the cache validator option key for the specified type
|
231 |
*
|
232 |
* @since 3.2
|
233 |
*
|
@@ -245,7 +244,7 @@ class WPSEO_Sitemaps_Cache_Validator {
|
|
245 |
}
|
246 |
|
247 |
/**
|
248 |
-
* Refresh the cache validator value
|
249 |
*
|
250 |
* @since 3.2
|
251 |
*
|
34 |
const VALIDATION_TYPE_KEY_FORMAT = 'wpseo_sitemap_%s_cache_validator';
|
35 |
|
36 |
/**
|
37 |
+
* Get the cache key for a certain type and page.
|
38 |
*
|
39 |
* A type of cache would be something like 'page', 'post' or 'video'.
|
40 |
*
|
41 |
+
* Example key format for sitemap type "post", page 1: wpseo_sitemap_post_1:akfw3e_23azBa .
|
42 |
*
|
43 |
* @since 3.2
|
44 |
*
|
72 |
}
|
73 |
|
74 |
/**
|
75 |
+
* If the type is over length make sure we compact it so we don't have any database problems.
|
76 |
*
|
77 |
* When there are more 'extremely long' post types, changes are they have variations in either the start or ending.
|
78 |
* Because of this, we cut out the excess in the middle which should result in less chance of collision.
|
104 |
/*
|
105 |
* If this happens the most likely cause is a page number that is too high.
|
106 |
*
|
107 |
+
* So this would not happen unintentionally.
|
108 |
* Either by trying to cause a high server load, finding backdoors or misconfiguration.
|
109 |
*/
|
110 |
throw new OutOfRangeException(
|
127 |
}
|
128 |
|
129 |
/**
|
130 |
+
* Invalidate sitemap cache.
|
131 |
*
|
132 |
* @since 3.2
|
133 |
*
|
157 |
}
|
158 |
|
159 |
/**
|
160 |
+
* Cleanup invalidated database cache.
|
161 |
*
|
162 |
* @since 3.2
|
163 |
*
|
196 |
}
|
197 |
|
198 |
/**
|
199 |
+
* Get the current cache validator.
|
200 |
*
|
201 |
* Without the type the global validator is returned.
|
202 |
+
* This can invalidate -all- keys in cache at once.
|
203 |
*
|
204 |
+
* With the type parameter the validator for that specific type can be invalidated.
|
|
|
205 |
*
|
206 |
* @since 3.2
|
207 |
*
|
226 |
}
|
227 |
|
228 |
/**
|
229 |
+
* Get the cache validator option key for the specified type.
|
230 |
*
|
231 |
* @since 3.2
|
232 |
*
|
244 |
}
|
245 |
|
246 |
/**
|
247 |
+
* Refresh the cache validator value.
|
248 |
*
|
249 |
* @since 3.2
|
250 |
*
|
inc/sitemaps/class-sitemaps-cache.php
CHANGED
@@ -81,7 +81,7 @@ class WPSEO_Sitemaps_Cache {
|
|
81 |
/**
|
82 |
* Filter if XML sitemap transient cache is enabled.
|
83 |
*
|
84 |
-
* @param bool $unsigned Enable cache or not, defaults to true
|
85 |
*/
|
86 |
return apply_filters( 'wpseo_enable_xml_sitemap_transient_caching', false );
|
87 |
}
|
@@ -107,7 +107,7 @@ class WPSEO_Sitemaps_Cache {
|
|
107 |
}
|
108 |
|
109 |
/**
|
110 |
-
* Get the sitemap that is cached
|
111 |
*
|
112 |
* @param string $type Sitemap type.
|
113 |
* @param int $page Page number to retrieve.
|
@@ -308,7 +308,7 @@ class WPSEO_Sitemaps_Cache {
|
|
308 |
}
|
309 |
|
310 |
/**
|
311 |
-
* Adds a hook that when given option is updated, the cache is cleared
|
312 |
*
|
313 |
* @since 3.2
|
314 |
*
|
@@ -321,7 +321,7 @@ class WPSEO_Sitemaps_Cache {
|
|
321 |
}
|
322 |
|
323 |
/**
|
324 |
-
* Clears the transient cache when a given option is updated, if that option has been registered before
|
325 |
*
|
326 |
* @since 3.2
|
327 |
*
|
81 |
/**
|
82 |
* Filter if XML sitemap transient cache is enabled.
|
83 |
*
|
84 |
+
* @param bool $unsigned Enable cache or not, defaults to true.
|
85 |
*/
|
86 |
return apply_filters( 'wpseo_enable_xml_sitemap_transient_caching', false );
|
87 |
}
|
107 |
}
|
108 |
|
109 |
/**
|
110 |
+
* Get the sitemap that is cached.
|
111 |
*
|
112 |
* @param string $type Sitemap type.
|
113 |
* @param int $page Page number to retrieve.
|
308 |
}
|
309 |
|
310 |
/**
|
311 |
+
* Adds a hook that when given option is updated, the cache is cleared.
|
312 |
*
|
313 |
* @since 3.2
|
314 |
*
|
321 |
}
|
322 |
|
323 |
/**
|
324 |
+
* Clears the transient cache when a given option is updated, if that option has been registered before.
|
325 |
*
|
326 |
* @since 3.2
|
327 |
*
|
inc/sitemaps/class-sitemaps-renderer.php
CHANGED
@@ -134,8 +134,8 @@ class WPSEO_Sitemaps_Renderer {
|
|
134 |
/**
|
135 |
* Produce final XML output with debug information.
|
136 |
*
|
137 |
-
* @param string $sitemap
|
138 |
-
* @param boolean $transient
|
139 |
*
|
140 |
* @return string
|
141 |
*/
|
@@ -187,7 +187,7 @@ class WPSEO_Sitemaps_Renderer {
|
|
187 |
/**
|
188 |
* Set a custom stylesheet for this sitemap. Set to empty to just remove the default stylesheet.
|
189 |
*
|
190 |
-
* @param string $stylesheet Full
|
191 |
*/
|
192 |
public function set_stylesheet( $stylesheet ) {
|
193 |
$this->stylesheet = $stylesheet;
|
@@ -287,11 +287,11 @@ class WPSEO_Sitemaps_Renderer {
|
|
287 |
$output .= "\t</url>\n";
|
288 |
|
289 |
/**
|
290 |
-
* Filters the output for the sitemap
|
291 |
*
|
292 |
* @api string $output The output for the sitemap url tag.
|
293 |
*
|
294 |
-
* @param array
|
295 |
*/
|
296 |
return apply_filters( 'wpseo_sitemap_url', $output, $url );
|
297 |
}
|
@@ -319,7 +319,7 @@ class WPSEO_Sitemaps_Renderer {
|
|
319 |
|
320 |
$encoded_path = array_map( 'rawurlencode', $encoded_path );
|
321 |
$encoded_path = implode( '/', $encoded_path );
|
322 |
-
$encoded_path = str_replace( '%7E', '~', $encoded_path ); // PHP <5.3.
|
323 |
|
324 |
$url = str_replace( $path, $encoded_path, $url );
|
325 |
}
|
134 |
/**
|
135 |
* Produce final XML output with debug information.
|
136 |
*
|
137 |
+
* @param string $sitemap Sitemap XML.
|
138 |
+
* @param boolean $transient Transient cache flag.
|
139 |
*
|
140 |
* @return string
|
141 |
*/
|
187 |
/**
|
188 |
* Set a custom stylesheet for this sitemap. Set to empty to just remove the default stylesheet.
|
189 |
*
|
190 |
+
* @param string $stylesheet Full XML-stylesheet declaration.
|
191 |
*/
|
192 |
public function set_stylesheet( $stylesheet ) {
|
193 |
$this->stylesheet = $stylesheet;
|
287 |
$output .= "\t</url>\n";
|
288 |
|
289 |
/**
|
290 |
+
* Filters the output for the sitemap URL tag.
|
291 |
*
|
292 |
* @api string $output The output for the sitemap url tag.
|
293 |
*
|
294 |
+
* @param array $url The sitemap URL array on which the output is based.
|
295 |
*/
|
296 |
return apply_filters( 'wpseo_sitemap_url', $output, $url );
|
297 |
}
|
319 |
|
320 |
$encoded_path = array_map( 'rawurlencode', $encoded_path );
|
321 |
$encoded_path = implode( '/', $encoded_path );
|
322 |
+
$encoded_path = str_replace( '%7E', '~', $encoded_path ); // PHP < 5.3.
|
323 |
|
324 |
$url = str_replace( $path, $encoded_path, $url );
|
325 |
}
|
inc/sitemaps/class-sitemaps-router.php
CHANGED
@@ -113,7 +113,7 @@ class WPSEO_Sitemaps_Router {
|
|
113 |
$base = $wp_rewrite->using_index_permalinks() ? 'index.php/' : '/';
|
114 |
|
115 |
/**
|
116 |
-
* Filter the base URL of the sitemaps
|
117 |
*
|
118 |
* @param string $base The string that should be added to home_url() to make the full base URL.
|
119 |
*/
|
113 |
$base = $wp_rewrite->using_index_permalinks() ? 'index.php/' : '/';
|
114 |
|
115 |
/**
|
116 |
+
* Filter the base URL of the sitemaps.
|
117 |
*
|
118 |
* @param string $base The string that should be added to home_url() to make the full base URL.
|
119 |
*/
|
inc/sitemaps/class-sitemaps.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_Sitemaps
|
10 |
*
|
11 |
* @todo This class could use a general description with some explanation on sitemaps. OR.
|
12 |
*/
|
@@ -90,7 +90,7 @@ class WPSEO_Sitemaps {
|
|
90 |
public $providers;
|
91 |
|
92 |
/**
|
93 |
-
* Class constructor
|
94 |
*/
|
95 |
public function __construct() {
|
96 |
|
@@ -133,7 +133,7 @@ class WPSEO_Sitemaps {
|
|
133 |
}
|
134 |
|
135 |
/**
|
136 |
-
* Check the current request URI, if we can determine it's probably an XML sitemap, kill loading the widgets
|
137 |
*/
|
138 |
public function reduce_query_load() {
|
139 |
|
@@ -180,7 +180,7 @@ class WPSEO_Sitemaps {
|
|
180 |
}
|
181 |
|
182 |
/**
|
183 |
-
* Set the sitemap current page to allow creating partial sitemaps with
|
184 |
* in a one-off process.
|
185 |
*
|
186 |
* @param integer $current_page The part that should be generated.
|
@@ -270,7 +270,7 @@ class WPSEO_Sitemaps {
|
|
270 |
}
|
271 |
|
272 |
/**
|
273 |
-
* Try to get the sitemap from cache
|
274 |
*
|
275 |
* @param string $type Sitemap type.
|
276 |
* @param int $page_number The page number to retrieve.
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_Sitemaps.
|
10 |
*
|
11 |
* @todo This class could use a general description with some explanation on sitemaps. OR.
|
12 |
*/
|
90 |
public $providers;
|
91 |
|
92 |
/**
|
93 |
+
* Class constructor.
|
94 |
*/
|
95 |
public function __construct() {
|
96 |
|
133 |
}
|
134 |
|
135 |
/**
|
136 |
+
* Check the current request URI, if we can determine it's probably an XML sitemap, kill loading the widgets.
|
137 |
*/
|
138 |
public function reduce_query_load() {
|
139 |
|
180 |
}
|
181 |
|
182 |
/**
|
183 |
+
* Set the sitemap current page to allow creating partial sitemaps with WP-CLI
|
184 |
* in a one-off process.
|
185 |
*
|
186 |
* @param integer $current_page The part that should be generated.
|
270 |
}
|
271 |
|
272 |
/**
|
273 |
+
* Try to get the sitemap from cache.
|
274 |
*
|
275 |
* @param string $type Sitemap type.
|
276 |
* @param int $page_number The page number to retrieve.
|
inc/sitemaps/class-taxonomy-sitemap-provider.php
CHANGED
@@ -240,8 +240,8 @@ class WPSEO_Taxonomy_Sitemap_Provider implements WPSEO_Sitemap_Provider {
|
|
240 |
/**
|
241 |
* Filter to exclude the taxonomy from the XML sitemap.
|
242 |
*
|
243 |
-
* @param boolean $exclude
|
244 |
-
* @param string $taxonomy_name
|
245 |
*/
|
246 |
if ( apply_filters( 'wpseo_sitemap_exclude_taxonomy', false, $taxonomy_name ) ) {
|
247 |
return false;
|
@@ -251,7 +251,7 @@ class WPSEO_Taxonomy_Sitemap_Provider implements WPSEO_Sitemap_Provider {
|
|
251 |
}
|
252 |
|
253 |
/**
|
254 |
-
* Get the Image Parser
|
255 |
*
|
256 |
* @return WPSEO_Sitemap_Image_Parser
|
257 |
*/
|
@@ -266,7 +266,7 @@ class WPSEO_Taxonomy_Sitemap_Provider implements WPSEO_Sitemap_Provider {
|
|
266 |
/* ********************* DEPRECATED METHODS ********************* */
|
267 |
|
268 |
/**
|
269 |
-
* Get all the options
|
270 |
*
|
271 |
* @deprecated 7.0
|
272 |
* @codeCoverageIgnore
|
240 |
/**
|
241 |
* Filter to exclude the taxonomy from the XML sitemap.
|
242 |
*
|
243 |
+
* @param boolean $exclude Defaults to false.
|
244 |
+
* @param string $taxonomy_name Name of the taxonomy to exclude..
|
245 |
*/
|
246 |
if ( apply_filters( 'wpseo_sitemap_exclude_taxonomy', false, $taxonomy_name ) ) {
|
247 |
return false;
|
251 |
}
|
252 |
|
253 |
/**
|
254 |
+
* Get the Image Parser.
|
255 |
*
|
256 |
* @return WPSEO_Sitemap_Image_Parser
|
257 |
*/
|
266 |
/* ********************* DEPRECATED METHODS ********************* */
|
267 |
|
268 |
/**
|
269 |
+
* Get all the options.
|
270 |
*
|
271 |
* @deprecated 7.0
|
272 |
* @codeCoverageIgnore
|
inc/sitemaps/interface-sitemap-cache-data.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Cache Data interface
|
10 |
*/
|
11 |
interface WPSEO_Sitemap_Cache_Data_Interface {
|
12 |
|
@@ -32,7 +32,7 @@ interface WPSEO_Sitemap_Cache_Data_Interface {
|
|
32 |
const UNKNOWN = 'unknown';
|
33 |
|
34 |
/**
|
35 |
-
* Set the content of the sitemap
|
36 |
*
|
37 |
* @param string $sitemap The XML content of the sitemap.
|
38 |
*
|
@@ -41,7 +41,7 @@ interface WPSEO_Sitemap_Cache_Data_Interface {
|
|
41 |
public function set_sitemap( $sitemap );
|
42 |
|
43 |
/**
|
44 |
-
* Set the status of the sitemap
|
45 |
*
|
46 |
* @param bool|string $usable True/False or 'ok'/'error' for status.
|
47 |
*
|
@@ -55,14 +55,14 @@ interface WPSEO_Sitemap_Cache_Data_Interface {
|
|
55 |
public function get_sitemap();
|
56 |
|
57 |
/**
|
58 |
-
* Get the status of this sitemap
|
59 |
*
|
60 |
* @return string Status 'ok', 'error' or 'unknown'.
|
61 |
*/
|
62 |
public function get_status();
|
63 |
|
64 |
/**
|
65 |
-
* Is the sitemap content usable
|
66 |
*
|
67 |
* @return bool True if the sitemap is usable, False if not.
|
68 |
*/
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Cache Data interface.
|
10 |
*/
|
11 |
interface WPSEO_Sitemap_Cache_Data_Interface {
|
12 |
|
32 |
const UNKNOWN = 'unknown';
|
33 |
|
34 |
/**
|
35 |
+
* Set the content of the sitemap.
|
36 |
*
|
37 |
* @param string $sitemap The XML content of the sitemap.
|
38 |
*
|
41 |
public function set_sitemap( $sitemap );
|
42 |
|
43 |
/**
|
44 |
+
* Set the status of the sitemap.
|
45 |
*
|
46 |
* @param bool|string $usable True/False or 'ok'/'error' for status.
|
47 |
*
|
55 |
public function get_sitemap();
|
56 |
|
57 |
/**
|
58 |
+
* Get the status of this sitemap.
|
59 |
*
|
60 |
* @return string Status 'ok', 'error' or 'unknown'.
|
61 |
*/
|
62 |
public function get_status();
|
63 |
|
64 |
/**
|
65 |
+
* Is the sitemap content usable ?
|
66 |
*
|
67 |
* @return bool True if the sitemap is usable, False if not.
|
68 |
*/
|
inc/sitemaps/interface-sitemap-provider.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Sitemap Provider interface
|
10 |
*/
|
11 |
interface WPSEO_Sitemap_Provider {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Sitemap Provider interface.
|
10 |
*/
|
11 |
interface WPSEO_Sitemap_Provider {
|
12 |
|
inc/structured-data-blocks/class-faq-block.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_FAQ_Block
|
10 |
*/
|
11 |
class WPSEO_FAQ_Block implements WPSEO_WordPress_Integration {
|
12 |
|
@@ -29,7 +29,8 @@ class WPSEO_FAQ_Block implements WPSEO_WordPress_Integration {
|
|
29 |
/**
|
30 |
* Renders the block.
|
31 |
*
|
32 |
-
* Because we can't save script tags in Gutenberg without sufficient user permissions,
|
|
|
33 |
*
|
34 |
* @param array $attributes The attributes of the block.
|
35 |
* @param string $content The HTML content of the block.
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_FAQ_Block.
|
10 |
*/
|
11 |
class WPSEO_FAQ_Block implements WPSEO_WordPress_Integration {
|
12 |
|
29 |
/**
|
30 |
* Renders the block.
|
31 |
*
|
32 |
+
* Because we can't save script tags in Gutenberg without sufficient user permissions,
|
33 |
+
* we render these server-side.
|
34 |
*
|
35 |
* @param array $attributes The attributes of the block.
|
36 |
* @param string $content The HTML content of the block.
|
inc/structured-data-blocks/class-how-to-block.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Class WPSEO_How_To_Block
|
10 |
*/
|
11 |
class WPSEO_How_To_Block implements WPSEO_WordPress_Integration {
|
12 |
|
@@ -29,7 +29,8 @@ class WPSEO_How_To_Block implements WPSEO_WordPress_Integration {
|
|
29 |
/**
|
30 |
* Renders the block.
|
31 |
*
|
32 |
-
* Because we can't save script tags in Gutenberg without sufficient user permissions,
|
|
|
33 |
*
|
34 |
* @param array $attributes The attributes of the block.
|
35 |
* @param string $content The HTML content of the block.
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Class WPSEO_How_To_Block.
|
10 |
*/
|
11 |
class WPSEO_How_To_Block implements WPSEO_WordPress_Integration {
|
12 |
|
29 |
/**
|
30 |
* Renders the block.
|
31 |
*
|
32 |
+
* Because we can't save script tags in Gutenberg without sufficient user permissions,
|
33 |
+
* we render these server-side.
|
34 |
*
|
35 |
* @param array $attributes The attributes of the block.
|
36 |
* @param string $content The HTML content of the block.
|
inc/wpseo-functions.php
CHANGED
@@ -84,7 +84,8 @@ if ( ! function_exists( 'yoast_get_primary_term' ) ) {
|
|
84 |
* Replace `%%variable_placeholders%%` with their real value based on the current requested page/post/cpt.
|
85 |
*
|
86 |
* @param string $string The string to replace the variables in.
|
87 |
-
* @param object $args The object some of the replacement values might come from,
|
|
|
88 |
* @param array $omit Variables that should not be replaced by this function.
|
89 |
*
|
90 |
* @return string
|
@@ -128,15 +129,15 @@ function wpseo_replace_vars( $string, $args, $omit = array() ) {
|
|
128 |
*
|
129 |
* @since 1.5.4
|
130 |
*
|
131 |
-
* @param
|
132 |
-
*
|
133 |
-
* @param
|
134 |
-
*
|
135 |
-
*
|
136 |
-
* @param
|
137 |
-
* @param
|
138 |
*
|
139 |
-
* @return bool
|
140 |
*/
|
141 |
function wpseo_register_var_replacement( $var, $replace_function, $type = 'advanced', $help_text = '' ) {
|
142 |
return WPSEO_Replace_Vars::register_replacement( $var, $replace_function, $type, $help_text );
|
@@ -144,7 +145,9 @@ function wpseo_register_var_replacement( $var, $replace_function, $type = 'advan
|
|
144 |
|
145 |
/**
|
146 |
* WPML plugin support: Set titles for custom types / taxonomies as translatable.
|
147 |
-
*
|
|
|
|
|
148 |
* Documentation: http://wpml.org/documentation/support/language-configuration-files/
|
149 |
*
|
150 |
* @global $sitepress
|
84 |
* Replace `%%variable_placeholders%%` with their real value based on the current requested page/post/cpt.
|
85 |
*
|
86 |
* @param string $string The string to replace the variables in.
|
87 |
+
* @param object $args The object some of the replacement values might come from,
|
88 |
+
* could be a post, taxonomy or term.
|
89 |
* @param array $omit Variables that should not be replaced by this function.
|
90 |
*
|
91 |
* @return string
|
129 |
*
|
130 |
* @since 1.5.4
|
131 |
*
|
132 |
+
* @param string $var The name of the variable to replace, i.e. '%%var%%'.
|
133 |
+
* Note: the surrounding %% are optional, name can only contain [A-Za-z0-9_-].
|
134 |
+
* @param mixed $replace_function Function or method to call to retrieve the replacement value for the variable.
|
135 |
+
* Uses the same format as add_filter/add_action function parameter and
|
136 |
+
* should *return* the replacement value. DON'T echo it.
|
137 |
+
* @param string $type Type of variable: 'basic' or 'advanced', defaults to 'advanced'.
|
138 |
+
* @param string $help_text Help text to be added to the help tab for this variable.
|
139 |
*
|
140 |
+
* @return bool Whether the replacement function was successfully registered.
|
141 |
*/
|
142 |
function wpseo_register_var_replacement( $var, $replace_function, $type = 'advanced', $help_text = '' ) {
|
143 |
return WPSEO_Replace_Vars::register_replacement( $var, $replace_function, $type, $help_text );
|
145 |
|
146 |
/**
|
147 |
* WPML plugin support: Set titles for custom types / taxonomies as translatable.
|
148 |
+
*
|
149 |
+
* It adds new keys to a wpml-config.xml file for a custom post type title, metadesc,
|
150 |
+
* title-ptarchive and metadesc-ptarchive fields translation.
|
151 |
* Documentation: http://wpml.org/documentation/support/language-configuration-files/
|
152 |
*
|
153 |
* @global $sitepress
|
inc/wpseo-non-ajax-functions.php
CHANGED
@@ -61,9 +61,9 @@ add_filter( 'user_has_cap', 'allow_custom_field_edits', 0, 3 );
|
|
61 |
/**
|
62 |
* Adds an SEO admin bar menu to the site admin, with several options.
|
63 |
*
|
64 |
-
* If the current user is an admin
|
65 |
*
|
66 |
-
* @deprecated 7.9 Use WPSEO_Admin_Bar_Menu::add_menu() instead
|
67 |
* @codeCoverageIgnore
|
68 |
*
|
69 |
* @return void
|
@@ -184,7 +184,7 @@ function wpseo_adminbar_score( $score ) {
|
|
184 |
/**
|
185 |
* Enqueue CSS to format the Yoast SEO adminbar item.
|
186 |
*
|
187 |
-
* @deprecated 7.9 Use WPSEO_Admin_Bar_Menu::enqueue_assets() instead
|
188 |
* @codeCoverageIgnore
|
189 |
*/
|
190 |
function wpseo_admin_bar_style() {
|
61 |
/**
|
62 |
* Adds an SEO admin bar menu to the site admin, with several options.
|
63 |
*
|
64 |
+
* If the current user is an admin they can also go straight to several settings menus from here.
|
65 |
*
|
66 |
+
* @deprecated 7.9 Use WPSEO_Admin_Bar_Menu::add_menu() instead.
|
67 |
* @codeCoverageIgnore
|
68 |
*
|
69 |
* @return void
|
184 |
/**
|
185 |
* Enqueue CSS to format the Yoast SEO adminbar item.
|
186 |
*
|
187 |
+
* @deprecated 7.9 Use WPSEO_Admin_Bar_Menu::enqueue_assets() instead.
|
188 |
* @codeCoverageIgnore
|
189 |
*/
|
190 |
function wpseo_admin_bar_style() {
|
js/dist/analysis-1100.min.js
DELETED
@@ -1,21 +0,0 @@
|
|
1 |
-
(window.yoastWebpackJsonp=window.yoastWebpackJsonp||[]).push([[28],[,,function(a,e,t){"use strict";t.r(e);var i=t(11),n=i.a.Symbol,o=Object.prototype,r=o.hasOwnProperty,s=o.toString,d=n?n.toStringTag:void 0;var l=function(a){var e=r.call(a,d),t=a[d];try{a[d]=void 0;var i=!0}catch(a){}var n=s.call(a);return i&&(e?a[d]=t:delete a[d]),n},c=Object.prototype.toString;var u=function(a){return c.call(a)},p="[object Null]",z="[object Undefined]",g=n?n.toStringTag:void 0;var m=function(a){return null==a?void 0===a?z:p:g&&g in Object(a)?l(a):u(a)};var f=function(a){return null!=a&&"object"==typeof a},y="[object Symbol]";var w=function(a){return"symbol"==typeof a||f(a)&&m(a)==y},b=NaN;var h=function(a){return"number"==typeof a?a:w(a)?b:+a};var v=function(a,e){for(var t=-1,i=null==a?0:a.length,n=Array(i);++t<i;)n[t]=e(a[t],t,a);return n},k=Array.isArray,j=1/0,_=n?n.prototype:void 0,x=_?_.toString:void 0;var q=function a(e){if("string"==typeof e)return e;if(k(e))return v(e,a)+"";if(w(e))return x?x.call(e):"";var t=e+"";return"0"==t&&1/e==-j?"-0":t};var E=function(a,e){return function(t,i){var n;if(void 0===t&&void 0===i)return e;if(void 0!==t&&(n=t),void 0!==i){if(void 0===n)return i;"string"==typeof t||"string"==typeof i?(t=q(t),i=q(i)):(t=h(t),i=h(i)),n=a(t,i)}return n}},A=E(function(a,e){return a+e},0);var T=function(a){var e=typeof a;return null!=a&&("object"==e||"function"==e)},O=NaN,S=/^\s+|\s+$/g,P=/^[-+]0x[0-9a-f]+$/i,M=/^0b[01]+$/i,C=/^0o[0-7]+$/i,R=parseInt;var D=function(a){if("number"==typeof a)return a;if(w(a))return O;if(T(a)){var e="function"==typeof a.valueOf?a.valueOf():a;a=T(e)?e+"":e}if("string"!=typeof a)return 0===a?a:+a;a=a.replace(S,"");var t=M.test(a);return t||C.test(a)?R(a.slice(2),t?2:8):P.test(a)?O:+a},F=1/0,B=1.7976931348623157e308;var $=function(a){return a?(a=D(a))===F||a===-F?(a<0?-1:1)*B:a==a?a:0:0===a?a:0};var L=function(a){var e=$(a),t=e%1;return e==e?t?e-t:e:0},I="Expected a function";var W=function(a,e){if("function"!=typeof e)throw new TypeError(I);return a=L(a),function(){if(--a<1)return e.apply(this,arguments)}};var U=function(a){return a},N="[object AsyncFunction]",K="[object Function]",H="[object GeneratorFunction]",V="[object Proxy]";var Y=function(a){if(!T(a))return!1;var e=m(a);return e==K||e==H||e==N||e==V},G=i.a["__core-js_shared__"],Z=function(){var a=/[^.]+$/.exec(G&&G.keys&&G.keys.IE_PROTO||"");return a?"Symbol(src)_1."+a:""}();var J=function(a){return!!Z&&Z in a},Q=Function.prototype.toString;var X=function(a){if(null!=a){try{return Q.call(a)}catch(a){}try{return a+""}catch(a){}}return""},aa=/^\[object .+?Constructor\]$/,ea=Function.prototype,ta=Object.prototype,ia=ea.toString,na=ta.hasOwnProperty,oa=RegExp("^"+ia.call(na).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var ra=function(a){return!(!T(a)||J(a))&&(Y(a)?oa:aa).test(X(a))};var sa=function(a,e){return null==a?void 0:a[e]};var da=function(a,e){var t=sa(a,e);return ra(t)?t:void 0},la=da(i.a,"WeakMap"),ca=la&&new la,ua=ca?function(a,e){return ca.set(a,e),a}:U,pa=Object.create,za=function(){function a(){}return function(e){if(!T(e))return{};if(pa)return pa(e);a.prototype=e;var t=new a;return a.prototype=void 0,t}}();var ga=function(a){return function(){var e=arguments;switch(e.length){case 0:return new a;case 1:return new a(e[0]);case 2:return new a(e[0],e[1]);case 3:return new a(e[0],e[1],e[2]);case 4:return new a(e[0],e[1],e[2],e[3]);case 5:return new a(e[0],e[1],e[2],e[3],e[4]);case 6:return new a(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new a(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var t=za(a.prototype),i=a.apply(t,e);return T(i)?i:t}},ma=1;var fa=function(a,e,t){var n=e&ma,o=ga(a);return function e(){return(this&&this!==i.a&&this instanceof e?o:a).apply(n?t:this,arguments)}};var ya=function(a,e,t){switch(t.length){case 0:return a.call(e);case 1:return a.call(e,t[0]);case 2:return a.call(e,t[0],t[1]);case 3:return a.call(e,t[0],t[1],t[2])}return a.apply(e,t)},wa=Math.max;var ba=function(a,e,t,i){for(var n=-1,o=a.length,r=t.length,s=-1,d=e.length,l=wa(o-r,0),c=Array(d+l),u=!i;++s<d;)c[s]=e[s];for(;++n<r;)(u||n<o)&&(c[t[n]]=a[n]);for(;l--;)c[s++]=a[n++];return c},ha=Math.max;var va=function(a,e,t,i){for(var n=-1,o=a.length,r=-1,s=t.length,d=-1,l=e.length,c=ha(o-s,0),u=Array(c+l),p=!i;++n<c;)u[n]=a[n];for(var z=n;++d<l;)u[z+d]=e[d];for(;++r<s;)(p||n<o)&&(u[z+t[r]]=a[n++]);return u};var ka=function(a,e){for(var t=a.length,i=0;t--;)a[t]===e&&++i;return i};var ja=function(){},_a=4294967295;function xa(a){this.__wrapped__=a,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=_a,this.__views__=[]}xa.prototype=za(ja.prototype),xa.prototype.constructor=xa;var qa=xa;var Ea=function(){},Aa=ca?function(a){return ca.get(a)}:Ea,Ta={},Oa=Object.prototype.hasOwnProperty;var Sa=function(a){for(var e=a.name+"",t=Ta[e],i=Oa.call(Ta,e)?t.length:0;i--;){var n=t[i],o=n.func;if(null==o||o==a)return n.name}return e};function Pa(a,e){this.__wrapped__=a,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=void 0}Pa.prototype=za(ja.prototype),Pa.prototype.constructor=Pa;var Ma=Pa;var Ca=function(a,e){var t=-1,i=a.length;for(e||(e=Array(i));++t<i;)e[t]=a[t];return e};var Ra=function(a){if(a instanceof qa)return a.clone();var e=new Ma(a.__wrapped__,a.__chain__);return e.__actions__=Ca(a.__actions__),e.__index__=a.__index__,e.__values__=a.__values__,e},Da=Object.prototype.hasOwnProperty;function Fa(a){if(f(a)&&!k(a)&&!(a instanceof qa)){if(a instanceof Ma)return a;if(Da.call(a,"__wrapped__"))return Ra(a)}return new Ma(a)}Fa.prototype=ja.prototype,Fa.prototype.constructor=Fa;var Ba=Fa;var $a=function(a){var e=Sa(a),t=Ba[e];if("function"!=typeof t||!(e in qa.prototype))return!1;if(a===t)return!0;var i=Aa(t);return!!i&&a===i[0]},La=800,Ia=16,Wa=Date.now;var Ua=function(a){var e=0,t=0;return function(){var i=Wa(),n=Ia-(i-t);if(t=i,n>0){if(++e>=La)return arguments[0]}else e=0;return a.apply(void 0,arguments)}},Na=Ua(ua),Ka=/\{\n\/\* \[wrapped with (.+)\] \*/,Ha=/,? & /;var Va=function(a){var e=a.match(Ka);return e?e[1].split(Ha):[]},Ya=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;var Ga=function(a,e){var t=e.length;if(!t)return a;var i=t-1;return e[i]=(t>1?"& ":"")+e[i],e=e.join(t>2?", ":" "),a.replace(Ya,"{\n/* [wrapped with "+e+"] */\n")};var Za=function(a){return function(){return a}},Ja=function(){try{var a=da(Object,"defineProperty");return a({},"",{}),a}catch(a){}}(),Qa=Ua(Ja?function(a,e){return Ja(a,"toString",{configurable:!0,enumerable:!1,value:Za(e),writable:!0})}:U);var Xa=function(a,e){for(var t=-1,i=null==a?0:a.length;++t<i&&!1!==e(a[t],t,a););return a};var ae=function(a,e,t,i){for(var n=a.length,o=t+(i?1:-1);i?o--:++o<n;)if(e(a[o],o,a))return o;return-1};var ee=function(a){return a!=a};var te=function(a,e,t){for(var i=t-1,n=a.length;++i<n;)if(a[i]===e)return i;return-1};var ie=function(a,e,t){return e==e?te(a,e,t):ae(a,ee,t)};var ne=function(a,e){return!(null==a||!a.length)&&ie(a,e,0)>-1},oe=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]];var re=function(a,e){return Xa(oe,function(t){var i="_."+t[0];e&t[1]&&!ne(a,i)&&a.push(i)}),a.sort()};var se=function(a,e,t){var i=e+"";return Qa(a,Ga(i,re(Va(i),t)))},de=1,le=2,ce=4,ue=8,pe=32,ze=64;var ge=function(a,e,t,i,n,o,r,s,d,l){var c=e&ue;e|=c?pe:ze,(e&=~(c?ze:pe))&ce||(e&=~(de|le));var u=[a,e,n,c?o:void 0,c?r:void 0,c?void 0:o,c?void 0:r,s,d,l],p=t.apply(void 0,u);return $a(a)&&Na(p,u),p.placeholder=i,se(p,a,e)};var me=function(a){return a.placeholder},fe=9007199254740991,ye=/^(?:0|[1-9]\d*)$/;var we=function(a,e){var t=typeof a;return!!(e=null==e?fe:e)&&("number"==t||"symbol"!=t&&ye.test(a))&&a>-1&&a%1==0&&a<e},be=Math.min;var he=function(a,e){for(var t=a.length,i=be(e.length,t),n=Ca(a);i--;){var o=e[i];a[i]=we(o,t)?n[o]:void 0}return a},ve="__lodash_placeholder__";var ke=function(a,e){for(var t=-1,i=a.length,n=0,o=[];++t<i;){var r=a[t];r!==e&&r!==ve||(a[t]=ve,o[n++]=t)}return o},je=1,_e=2,xe=8,qe=16,Ee=128,Ae=512;var Te=function a(e,t,n,o,r,s,d,l,c,u){var p=t&Ee,z=t&je,g=t&_e,m=t&(xe|qe),f=t&Ae,y=g?void 0:ga(e);return function w(){for(var b=arguments.length,h=Array(b),v=b;v--;)h[v]=arguments[v];if(m)var k=me(w),j=ka(h,k);if(o&&(h=ba(h,o,r,m)),s&&(h=va(h,s,d,m)),b-=j,m&&b<u){var _=ke(h,k);return ge(e,t,a,w.placeholder,n,h,_,l,c,u-b)}var x=z?n:this,q=g?x[e]:e;return b=h.length,l?h=he(h,l):f&&b>1&&h.reverse(),p&&c<b&&(h.length=c),this&&this!==i.a&&this instanceof w&&(q=y||ga(q)),q.apply(x,h)}};var Oe=function(a,e,t){var n=ga(a);return function o(){for(var r=arguments.length,s=Array(r),d=r,l=me(o);d--;)s[d]=arguments[d];var c=r<3&&s[0]!==l&&s[r-1]!==l?[]:ke(s,l);if((r-=c.length)<t)return ge(a,e,Te,o.placeholder,void 0,s,c,void 0,void 0,t-r);var u=this&&this!==i.a&&this instanceof o?n:a;return ya(u,this,s)}},Se=1;var Pe=function(a,e,t,n){var o=e&Se,r=ga(a);return function e(){for(var s=-1,d=arguments.length,l=-1,c=n.length,u=Array(c+d),p=this&&this!==i.a&&this instanceof e?r:a;++l<c;)u[l]=n[l];for(;d--;)u[l++]=arguments[++s];return ya(p,o?t:this,u)}},Me="__lodash_placeholder__",Ce=1,Re=2,De=4,Fe=8,Be=128,$e=256,Le=Math.min;var Ie=function(a,e){var t=a[1],i=e[1],n=t|i,o=n<(Ce|Re|Be),r=i==Be&&t==Fe||i==Be&&t==$e&&a[7].length<=e[8]||i==(Be|$e)&&e[7].length<=e[8]&&t==Fe;if(!o&&!r)return a;i&Ce&&(a[2]=e[2],n|=t&Ce?0:De);var s=e[3];if(s){var d=a[3];a[3]=d?ba(d,s,e[4]):s,a[4]=d?ke(a[3],Me):e[4]}return(s=e[5])&&(d=a[5],a[5]=d?va(d,s,e[6]):s,a[6]=d?ke(a[5],Me):e[6]),(s=e[7])&&(a[7]=s),i&Be&&(a[8]=null==a[8]?e[8]:Le(a[8],e[8])),null==a[9]&&(a[9]=e[9]),a[0]=e[0],a[1]=n,a},We="Expected a function",Ue=1,Ne=2,Ke=8,He=16,Ve=32,Ye=64,Ge=Math.max;var Ze=function(a,e,t,i,n,o,r,s){var d=e&Ne;if(!d&&"function"!=typeof a)throw new TypeError(We);var l=i?i.length:0;if(l||(e&=~(Ve|Ye),i=n=void 0),r=void 0===r?r:Ge(L(r),0),s=void 0===s?s:L(s),l-=n?n.length:0,e&Ye){var c=i,u=n;i=n=void 0}var p=d?void 0:Aa(a),z=[a,e,t,i,n,c,u,o,r,s];if(p&&Ie(z,p),a=z[0],e=z[1],t=z[2],i=z[3],n=z[4],!(s=z[9]=void 0===z[9]?d?0:a.length:Ge(z[9]-l,0))&&e&(Ke|He)&&(e&=~(Ke|He)),e&&e!=Ue)g=e==Ke||e==He?Oe(a,e,s):e!=Ve&&e!=(Ue|Ve)||n.length?Te.apply(void 0,z):Pe(a,e,t,i);else var g=fa(a,e,t);return se((p?ua:Na)(g,z),a,e)},Je=128;var Qe=function(a,e,t){return e=t?void 0:e,e=a&&null==e?a.length:e,Ze(a,Je,void 0,void 0,void 0,void 0,e)};var Xe=function(a,e,t){"__proto__"==e&&Ja?Ja(a,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):a[e]=t};var at=function(a,e){return a===e||a!=a&&e!=e},et=Object.prototype.hasOwnProperty;var tt=function(a,e,t){var i=a[e];et.call(a,e)&&at(i,t)&&(void 0!==t||e in a)||Xe(a,e,t)};var it=function(a,e,t,i){var n=!t;t||(t={});for(var o=-1,r=e.length;++o<r;){var s=e[o],d=i?i(t[s],a[s],s,t,a):void 0;void 0===d&&(d=a[s]),n?Xe(t,s,d):tt(t,s,d)}return t},nt=Math.max;var ot=function(a,e,t){return e=nt(void 0===e?a.length-1:e,0),function(){for(var i=arguments,n=-1,o=nt(i.length-e,0),r=Array(o);++n<o;)r[n]=i[e+n];n=-1;for(var s=Array(e+1);++n<e;)s[n]=i[n];return s[e]=t(r),ya(a,this,s)}};var rt=function(a,e){return Qa(ot(a,e,U),a+"")},st=9007199254740991;var dt=function(a){return"number"==typeof a&&a>-1&&a%1==0&&a<=st};var lt=function(a){return null!=a&&dt(a.length)&&!Y(a)};var ct=function(a,e,t){if(!T(t))return!1;var i=typeof e;return!!("number"==i?lt(t)&&we(e,t.length):"string"==i&&e in t)&&at(t[e],a)};var ut=function(a){return rt(function(e,t){var i=-1,n=t.length,o=n>1?t[n-1]:void 0,r=n>2?t[2]:void 0;for(o=a.length>3&&"function"==typeof o?(n--,o):void 0,r&&ct(t[0],t[1],r)&&(o=n<3?void 0:o,n=1),e=Object(e);++i<n;){var s=t[i];s&&a(e,s,i,o)}return e})},pt=Object.prototype;var zt=function(a){var e=a&&a.constructor;return a===("function"==typeof e&&e.prototype||pt)};var gt=function(a,e){for(var t=-1,i=Array(a);++t<a;)i[t]=e(t);return i},mt="[object Arguments]";var ft=function(a){return f(a)&&m(a)==mt},yt=Object.prototype,wt=yt.hasOwnProperty,bt=yt.propertyIsEnumerable,ht=ft(function(){return arguments}())?ft:function(a){return f(a)&&wt.call(a,"callee")&&!bt.call(a,"callee")},vt=t(36),kt={};kt["[object Float32Array]"]=kt["[object Float64Array]"]=kt["[object Int8Array]"]=kt["[object Int16Array]"]=kt["[object Int32Array]"]=kt["[object Uint8Array]"]=kt["[object Uint8ClampedArray]"]=kt["[object Uint16Array]"]=kt["[object Uint32Array]"]=!0,kt["[object Arguments]"]=kt["[object Array]"]=kt["[object ArrayBuffer]"]=kt["[object Boolean]"]=kt["[object DataView]"]=kt["[object Date]"]=kt["[object Error]"]=kt["[object Function]"]=kt["[object Map]"]=kt["[object Number]"]=kt["[object Object]"]=kt["[object RegExp]"]=kt["[object Set]"]=kt["[object String]"]=kt["[object WeakMap]"]=!1;var jt=function(a){return f(a)&&dt(a.length)&&!!kt[m(a)]};var _t=function(a){return function(e){return a(e)}},xt=t(33),qt=xt.a&&xt.a.isTypedArray,Et=qt?_t(qt):jt,At=Object.prototype.hasOwnProperty;var Tt=function(a,e){var t=k(a),i=!t&&ht(a),n=!t&&!i&&Object(vt.a)(a),o=!t&&!i&&!n&&Et(a),r=t||i||n||o,s=r?gt(a.length,String):[],d=s.length;for(var l in a)!e&&!At.call(a,l)||r&&("length"==l||n&&("offset"==l||"parent"==l)||o&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||we(l,d))||s.push(l);return s};var Ot=function(a,e){return function(t){return a(e(t))}},St=Ot(Object.keys,Object),Pt=Object.prototype.hasOwnProperty;var Mt=function(a){if(!zt(a))return St(a);var e=[];for(var t in Object(a))Pt.call(a,t)&&"constructor"!=t&&e.push(t);return e};var Ct=function(a){return lt(a)?Tt(a):Mt(a)},Rt=Object.prototype.hasOwnProperty,Dt=ut(function(a,e){if(zt(e)||lt(e))it(e,Ct(e),a);else for(var t in e)Rt.call(e,t)&&tt(a,t,e[t])});var Ft=function(a){var e=[];if(null!=a)for(var t in Object(a))e.push(t);return e},Bt=Object.prototype.hasOwnProperty;var $t=function(a){if(!T(a))return Ft(a);var e=zt(a),t=[];for(var i in a)("constructor"!=i||!e&&Bt.call(a,i))&&t.push(i);return t};var Lt=function(a){return lt(a)?Tt(a,!0):$t(a)},It=ut(function(a,e){it(e,Lt(e),a)}),Wt=ut(function(a,e,t,i){it(e,Lt(e),a,i)}),Ut=ut(function(a,e,t,i){it(e,Ct(e),a,i)}),Nt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Kt=/^\w*$/;var Ht=function(a,e){if(k(a))return!1;var t=typeof a;return!("number"!=t&&"symbol"!=t&&"boolean"!=t&&null!=a&&!w(a))||Kt.test(a)||!Nt.test(a)||null!=e&&a in Object(e)},Vt=da(Object,"create");var Yt=function(){this.__data__=Vt?Vt(null):{},this.size=0};var Gt=function(a){var e=this.has(a)&&delete this.__data__[a];return this.size-=e?1:0,e},Zt="__lodash_hash_undefined__",Jt=Object.prototype.hasOwnProperty;var Qt=function(a){var e=this.__data__;if(Vt){var t=e[a];return t===Zt?void 0:t}return Jt.call(e,a)?e[a]:void 0},Xt=Object.prototype.hasOwnProperty;var ai=function(a){var e=this.__data__;return Vt?void 0!==e[a]:Xt.call(e,a)},ei="__lodash_hash_undefined__";var ti=function(a,e){var t=this.__data__;return this.size+=this.has(a)?0:1,t[a]=Vt&&void 0===e?ei:e,this};function ii(a){var e=-1,t=null==a?0:a.length;for(this.clear();++e<t;){var i=a[e];this.set(i[0],i[1])}}ii.prototype.clear=Yt,ii.prototype.delete=Gt,ii.prototype.get=Qt,ii.prototype.has=ai,ii.prototype.set=ti;var ni=ii;var oi=function(){this.__data__=[],this.size=0};var ri=function(a,e){for(var t=a.length;t--;)if(at(a[t][0],e))return t;return-1},si=Array.prototype.splice;var di=function(a){var e=this.__data__,t=ri(e,a);return!(t<0||(t==e.length-1?e.pop():si.call(e,t,1),--this.size,0))};var li=function(a){var e=this.__data__,t=ri(e,a);return t<0?void 0:e[t][1]};var ci=function(a){return ri(this.__data__,a)>-1};var ui=function(a,e){var t=this.__data__,i=ri(t,a);return i<0?(++this.size,t.push([a,e])):t[i][1]=e,this};function pi(a){var e=-1,t=null==a?0:a.length;for(this.clear();++e<t;){var i=a[e];this.set(i[0],i[1])}}pi.prototype.clear=oi,pi.prototype.delete=di,pi.prototype.get=li,pi.prototype.has=ci,pi.prototype.set=ui;var zi=pi,gi=da(i.a,"Map");var mi=function(){this.size=0,this.__data__={hash:new ni,map:new(gi||zi),string:new ni}};var fi=function(a){var e=typeof a;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==a:null===a};var yi=function(a,e){var t=a.__data__;return fi(e)?t["string"==typeof e?"string":"hash"]:t.map};var wi=function(a){var e=yi(this,a).delete(a);return this.size-=e?1:0,e};var bi=function(a){return yi(this,a).get(a)};var hi=function(a){return yi(this,a).has(a)};var vi=function(a,e){var t=yi(this,a),i=t.size;return t.set(a,e),this.size+=t.size==i?0:1,this};function ki(a){var e=-1,t=null==a?0:a.length;for(this.clear();++e<t;){var i=a[e];this.set(i[0],i[1])}}ki.prototype.clear=mi,ki.prototype.delete=wi,ki.prototype.get=bi,ki.prototype.has=hi,ki.prototype.set=vi;var ji=ki,_i="Expected a function";function xi(a,e){if("function"!=typeof a||null!=e&&"function"!=typeof e)throw new TypeError(_i);var t=function(){var i=arguments,n=e?e.apply(this,i):i[0],o=t.cache;if(o.has(n))return o.get(n);var r=a.apply(this,i);return t.cache=o.set(n,r)||o,r};return t.cache=new(xi.Cache||ji),t}xi.Cache=ji;var qi=xi,Ei=500;var Ai=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ti=/\\(\\)?/g,Oi=function(a){var e=qi(a,function(a){return t.size===Ei&&t.clear(),a}),t=e.cache;return e}(function(a){var e=[];return 46===a.charCodeAt(0)&&e.push(""),a.replace(Ai,function(a,t,i,n){e.push(i?n.replace(Ti,"$1"):t||a)}),e});var Si=function(a){return null==a?"":q(a)};var Pi=function(a,e){return k(a)?a:Ht(a,e)?[a]:Oi(Si(a))},Mi=1/0;var Ci=function(a){if("string"==typeof a||w(a))return a;var e=a+"";return"0"==e&&1/a==-Mi?"-0":e};var Ri=function(a,e){for(var t=0,i=(e=Pi(e,a)).length;null!=a&&t<i;)a=a[Ci(e[t++])];return t&&t==i?a:void 0};var Di=function(a,e,t){var i=null==a?void 0:Ri(a,e);return void 0===i?t:i};var Fi=function(a,e){for(var t=-1,i=e.length,n=Array(i),o=null==a;++t<i;)n[t]=o?void 0:Di(a,e[t]);return n};var Bi=function(a,e){for(var t=-1,i=e.length,n=a.length;++t<i;)a[n+t]=e[t];return a},$i=n?n.isConcatSpreadable:void 0;var Li=function(a){return k(a)||ht(a)||!!($i&&a&&a[$i])};var Ii=function a(e,t,i,n,o){var r=-1,s=e.length;for(i||(i=Li),o||(o=[]);++r<s;){var d=e[r];t>0&&i(d)?t>1?a(d,t-1,i,n,o):Bi(o,d):n||(o[o.length]=d)}return o};var Wi=function(a){return null!=a&&a.length?Ii(a,1):[]};var Ui=function(a){return Qa(ot(a,void 0,Wi),a+"")},Ni=Ui(Fi),Ki=Ot(Object.getPrototypeOf,Object),Hi="[object Object]",Vi=Function.prototype,Yi=Object.prototype,Gi=Vi.toString,Zi=Yi.hasOwnProperty,Ji=Gi.call(Object);var Qi=function(a){if(!f(a)||m(a)!=Hi)return!1;var e=Ki(a);if(null===e)return!0;var t=Zi.call(e,"constructor")&&e.constructor;return"function"==typeof t&&t instanceof t&&Gi.call(t)==Ji},Xi="[object DOMException]",an="[object Error]";var en=function(a){if(!f(a))return!1;var e=m(a);return e==an||e==Xi||"string"==typeof a.message&&"string"==typeof a.name&&!Qi(a)},tn=rt(function(a,e){try{return ya(a,void 0,e)}catch(a){return en(a)?a:new Error(a)}}),nn="Expected a function";var on=function(a,e){var t;if("function"!=typeof e)throw new TypeError(nn);return a=L(a),function(){return--a>0&&(t=e.apply(this,arguments)),a<=1&&(e=void 0),t}},rn=rt(function(a,e,t){var i=1;if(t.length){var n=ke(t,me(rn));i|=32}return Ze(a,i,e,t,n)});rn.placeholder={};var sn=rn,dn=Ui(function(a,e){return Xa(e,function(e){e=Ci(e),Xe(a,e,sn(a[e],a))}),a}),ln=rt(function(a,e,t){var i=3;if(t.length){var n=ke(t,me(ln));i|=32}return Ze(e,i,a,t,n)});ln.placeholder={};var cn=ln;var un=function(a,e,t){var i=-1,n=a.length;e<0&&(e=-e>n?0:n+e),(t=t>n?n:t)<0&&(t+=n),n=e>t?0:t-e>>>0,e>>>=0;for(var o=Array(n);++i<n;)o[i]=a[i+e];return o};var pn=function(a,e,t){var i=a.length;return t=void 0===t?i:t,!e&&t>=i?a:un(a,e,t)},zn=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");var gn=function(a){return zn.test(a)};var mn=function(a){return a.split("")},fn="[\\ud800-\\udfff]",yn="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",wn="\\ud83c[\\udffb-\\udfff]",bn="[^\\ud800-\\udfff]",hn="(?:\\ud83c[\\udde6-\\uddff]){2}",vn="[\\ud800-\\udbff][\\udc00-\\udfff]",kn="(?:"+yn+"|"+wn+")"+"?",jn="[\\ufe0e\\ufe0f]?"+kn+("(?:\\u200d(?:"+[bn,hn,vn].join("|")+")[\\ufe0e\\ufe0f]?"+kn+")*"),_n="(?:"+[bn+yn+"?",yn,hn,vn,fn].join("|")+")",xn=RegExp(wn+"(?="+wn+")|"+_n+jn,"g");var qn=function(a){return a.match(xn)||[]};var En=function(a){return gn(a)?qn(a):mn(a)};var An=function(a){return function(e){e=Si(e);var t=gn(e)?En(e):void 0,i=t?t[0]:e.charAt(0),n=t?pn(t,1).join(""):e.slice(1);return i[a]()+n}},Tn=An("toUpperCase");var On=function(a){return Tn(Si(a).toLowerCase())};var Sn=function(a,e,t,i){var n=-1,o=null==a?0:a.length;for(i&&o&&(t=a[++n]);++n<o;)t=e(t,a[n],n,a);return t};var Pn=function(a){return function(e){return null==a?void 0:a[e]}},Mn=Pn({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),Cn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Rn=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g");var Dn=function(a){return(a=Si(a))&&a.replace(Cn,Mn).replace(Rn,"")},Fn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;var Bn=function(a){return a.match(Fn)||[]},$n=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;var Ln=function(a){return $n.test(a)},In="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Wn="["+In+"]",Un="\\d+",Nn="[\\u2700-\\u27bf]",Kn="[a-z\\xdf-\\xf6\\xf8-\\xff]",Hn="[^\\ud800-\\udfff"+In+Un+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",Vn="(?:\\ud83c[\\udde6-\\uddff]){2}",Yn="[\\ud800-\\udbff][\\udc00-\\udfff]",Gn="[A-Z\\xc0-\\xd6\\xd8-\\xde]",Zn="(?:"+Kn+"|"+Hn+")",Jn="(?:"+Gn+"|"+Hn+")",Qn="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",Xn="[\\ufe0e\\ufe0f]?"+Qn+("(?:\\u200d(?:"+["[^\\ud800-\\udfff]",Vn,Yn].join("|")+")[\\ufe0e\\ufe0f]?"+Qn+")*"),ao="(?:"+[Nn,Vn,Yn].join("|")+")"+Xn,eo=RegExp([Gn+"?"+Kn+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[Wn,Gn,"$"].join("|")+")",Jn+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[Wn,Gn+Zn,"$"].join("|")+")",Gn+"?"+Zn+"+(?:['’](?:d|ll|m|re|s|t|ve))?",Gn+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Un,ao].join("|"),"g");var to=function(a){return a.match(eo)||[]};var io=function(a,e,t){return a=Si(a),void 0===(e=t?void 0:e)?Ln(a)?to(a):Bn(a):a.match(e)||[]},no=RegExp("['’]","g");var oo=function(a){return function(e){return Sn(io(Dn(e).replace(no,"")),a,"")}},ro=oo(function(a,e,t){return e=e.toLowerCase(),a+(t?On(e):e)});var so=function(){if(!arguments.length)return[];var a=arguments[0];return k(a)?a:[a]},lo=Math.min;var co=function(a){var e=Math[a];return function(a,t){if(a=D(a),t=null==t?0:lo(L(t),292)){var i=(Si(a)+"e").split("e"),n=e(i[0]+"e"+(+i[1]+t));return+((i=(Si(n)+"e").split("e"))[0]+"e"+(+i[1]-t))}return e(a)}},uo=co("ceil");var po=function(a){var e=Ba(a);return e.__chain__=!0,e},zo=Math.ceil,go=Math.max;var mo=function(a,e,t){e=(t?ct(a,e,t):void 0===e)?1:go(L(e),0);var i=null==a?0:a.length;if(!i||e<1)return[];for(var n=0,o=0,r=Array(zo(i/e));n<i;)r[o++]=un(a,n,n+=e);return r};var fo=function(a,e,t){return a==a&&(void 0!==t&&(a=a<=t?a:t),void 0!==e&&(a=a>=e?a:e)),a};var yo=function(a,e,t){return void 0===t&&(t=e,e=void 0),void 0!==t&&(t=(t=D(t))==t?t:0),void 0!==e&&(e=(e=D(e))==e?e:0),fo(D(a),e,t)};var wo=function(){this.__data__=new zi,this.size=0};var bo=function(a){var e=this.__data__,t=e.delete(a);return this.size=e.size,t};var ho=function(a){return this.__data__.get(a)};var vo=function(a){return this.__data__.has(a)},ko=200;var jo=function(a,e){var t=this.__data__;if(t instanceof zi){var i=t.__data__;if(!gi||i.length<ko-1)return i.push([a,e]),this.size=++t.size,this;t=this.__data__=new ji(i)}return t.set(a,e),this.size=t.size,this};function _o(a){var e=this.__data__=new zi(a);this.size=e.size}_o.prototype.clear=wo,_o.prototype.delete=bo,_o.prototype.get=ho,_o.prototype.has=vo,_o.prototype.set=jo;var xo=_o;var qo=function(a,e){return a&&it(e,Ct(e),a)};var Eo=function(a,e){return a&&it(e,Lt(e),a)},Ao=t(297);var To=function(a,e){for(var t=-1,i=null==a?0:a.length,n=0,o=[];++t<i;){var r=a[t];e(r,t,a)&&(o[n++]=r)}return o};var Oo=function(){return[]},So=Object.prototype.propertyIsEnumerable,Po=Object.getOwnPropertySymbols,Mo=Po?function(a){return null==a?[]:(a=Object(a),To(Po(a),function(e){return So.call(a,e)}))}:Oo;var Co=function(a,e){return it(a,Mo(a),e)},Ro=Object.getOwnPropertySymbols?function(a){for(var e=[];a;)Bi(e,Mo(a)),a=Ki(a);return e}:Oo;var Do=function(a,e){return it(a,Ro(a),e)};var Fo=function(a,e,t){var i=e(a);return k(a)?i:Bi(i,t(a))};var Bo=function(a){return Fo(a,Ct,Mo)};var $o=function(a){return Fo(a,Lt,Ro)},Lo=da(i.a,"DataView"),Io=da(i.a,"Promise"),Wo=da(i.a,"Set"),Uo=X(Lo),No=X(gi),Ko=X(Io),Ho=X(Wo),Vo=X(la),Yo=m;(Lo&&"[object DataView]"!=Yo(new Lo(new ArrayBuffer(1)))||gi&&"[object Map]"!=Yo(new gi)||Io&&"[object Promise]"!=Yo(Io.resolve())||Wo&&"[object Set]"!=Yo(new Wo)||la&&"[object WeakMap]"!=Yo(new la))&&(Yo=function(a){var e=m(a),t="[object Object]"==e?a.constructor:void 0,i=t?X(t):"";if(i)switch(i){case Uo:return"[object DataView]";case No:return"[object Map]";case Ko:return"[object Promise]";case Ho:return"[object Set]";case Vo:return"[object WeakMap]"}return e});var Go=Yo,Zo=Object.prototype.hasOwnProperty;var Jo=function(a){var e=a.length,t=new a.constructor(e);return e&&"string"==typeof a[0]&&Zo.call(a,"index")&&(t.index=a.index,t.input=a.input),t},Qo=i.a.Uint8Array;var Xo=function(a){var e=new a.constructor(a.byteLength);return new Qo(e).set(new Qo(a)),e};var ar=function(a,e){var t=e?Xo(a.buffer):a.buffer;return new a.constructor(t,a.byteOffset,a.byteLength)},er=/\w*$/;var tr=function(a){var e=new a.constructor(a.source,er.exec(a));return e.lastIndex=a.lastIndex,e},ir=n?n.prototype:void 0,nr=ir?ir.valueOf:void 0;var or=function(a){return nr?Object(nr.call(a)):{}};var rr=function(a,e){var t=e?Xo(a.buffer):a.buffer;return new a.constructor(t,a.byteOffset,a.length)},sr="[object Boolean]",dr="[object Date]",lr="[object Map]",cr="[object Number]",ur="[object RegExp]",pr="[object Set]",zr="[object String]",gr="[object Symbol]",mr="[object ArrayBuffer]",fr="[object DataView]",yr="[object Float32Array]",wr="[object Float64Array]",br="[object Int8Array]",hr="[object Int16Array]",vr="[object Int32Array]",kr="[object Uint8Array]",jr="[object Uint8ClampedArray]",_r="[object Uint16Array]",xr="[object Uint32Array]";var qr=function(a,e,t){var i=a.constructor;switch(e){case mr:return Xo(a);case sr:case dr:return new i(+a);case fr:return ar(a,t);case yr:case wr:case br:case hr:case vr:case kr:case jr:case _r:case xr:return rr(a,t);case lr:return new i;case cr:case zr:return new i(a);case ur:return tr(a);case pr:return new i;case gr:return or(a)}};var Er=function(a){return"function"!=typeof a.constructor||zt(a)?{}:za(Ki(a))},Ar="[object Map]";var Tr=function(a){return f(a)&&Go(a)==Ar},Or=xt.a&&xt.a.isMap,Sr=Or?_t(Or):Tr,Pr="[object Set]";var Mr=function(a){return f(a)&&Go(a)==Pr},Cr=xt.a&&xt.a.isSet,Rr=Cr?_t(Cr):Mr,Dr=1,Fr=2,Br=4,$r="[object Arguments]",Lr="[object Function]",Ir="[object GeneratorFunction]",Wr="[object Object]",Ur={};Ur[$r]=Ur["[object Array]"]=Ur["[object ArrayBuffer]"]=Ur["[object DataView]"]=Ur["[object Boolean]"]=Ur["[object Date]"]=Ur["[object Float32Array]"]=Ur["[object Float64Array]"]=Ur["[object Int8Array]"]=Ur["[object Int16Array]"]=Ur["[object Int32Array]"]=Ur["[object Map]"]=Ur["[object Number]"]=Ur[Wr]=Ur["[object RegExp]"]=Ur["[object Set]"]=Ur["[object String]"]=Ur["[object Symbol]"]=Ur["[object Uint8Array]"]=Ur["[object Uint8ClampedArray]"]=Ur["[object Uint16Array]"]=Ur["[object Uint32Array]"]=!0,Ur["[object Error]"]=Ur[Lr]=Ur["[object WeakMap]"]=!1;var Nr=function a(e,t,i,n,o,r){var s,d=t&Dr,l=t&Fr,c=t&Br;if(i&&(s=o?i(e,n,o,r):i(e)),void 0!==s)return s;if(!T(e))return e;var u=k(e);if(u){if(s=Jo(e),!d)return Ca(e,s)}else{var p=Go(e),z=p==Lr||p==Ir;if(Object(vt.a)(e))return Object(Ao.a)(e,d);if(p==Wr||p==$r||z&&!o){if(s=l||z?{}:Er(e),!d)return l?Do(e,Eo(s,e)):Co(e,qo(s,e))}else{if(!Ur[p])return o?e:{};s=qr(e,p,d)}}r||(r=new xo);var g=r.get(e);if(g)return g;if(r.set(e,s),Rr(e))return e.forEach(function(n){s.add(a(n,t,i,n,e,r))}),s;if(Sr(e))return e.forEach(function(n,o){s.set(o,a(n,t,i,o,e,r))}),s;var m=c?l?$o:Bo:l?keysIn:Ct,f=u?void 0:m(e);return Xa(f||e,function(n,o){f&&(n=e[o=n]),tt(s,o,a(n,t,i,o,e,r))}),s},Kr=4;var Hr=function(a){return Nr(a,Kr)},Vr=1,Yr=4;var Gr=function(a){return Nr(a,Vr|Yr)},Zr=1,Jr=4;var Qr=function(a,e){return Nr(a,Zr|Jr,e="function"==typeof e?e:void 0)},Xr=4;var as=function(a,e){return Nr(a,Xr,e="function"==typeof e?e:void 0)};var es=function(){return new Ma(this.value(),this.__chain__)};var ts=function(a){for(var e=-1,t=null==a?0:a.length,i=0,n=[];++e<t;){var o=a[e];o&&(n[i++]=o)}return n};var is=function(){var a=arguments.length;if(!a)return[];for(var e=Array(a-1),t=arguments[0],i=a;i--;)e[i-1]=arguments[i];return Bi(k(t)?Ca(t):[t],Ii(e,1))},ns="__lodash_hash_undefined__";var os=function(a){return this.__data__.set(a,ns),this};var rs=function(a){return this.__data__.has(a)};function ss(a){var e=-1,t=null==a?0:a.length;for(this.__data__=new ji;++e<t;)this.add(a[e])}ss.prototype.add=ss.prototype.push=os,ss.prototype.has=rs;var ds=ss;var ls=function(a,e){for(var t=-1,i=null==a?0:a.length;++t<i;)if(e(a[t],t,a))return!0;return!1};var cs=function(a,e){return a.has(e)},us=1,ps=2;var zs=function(a,e,t,i,n,o){var r=t&us,s=a.length,d=e.length;if(s!=d&&!(r&&d>s))return!1;var l=o.get(a);if(l&&o.get(e))return l==e;var c=-1,u=!0,p=t&ps?new ds:void 0;for(o.set(a,e),o.set(e,a);++c<s;){var z=a[c],g=e[c];if(i)var m=r?i(g,z,c,e,a,o):i(z,g,c,a,e,o);if(void 0!==m){if(m)continue;u=!1;break}if(p){if(!ls(e,function(a,e){if(!cs(p,e)&&(z===a||n(z,a,t,i,o)))return p.push(e)})){u=!1;break}}else if(z!==g&&!n(z,g,t,i,o)){u=!1;break}}return o.delete(a),o.delete(e),u};var gs=function(a){var e=-1,t=Array(a.size);return a.forEach(function(a,i){t[++e]=[i,a]}),t};var ms=function(a){var e=-1,t=Array(a.size);return a.forEach(function(a){t[++e]=a}),t},fs=1,ys=2,ws="[object Boolean]",bs="[object Date]",hs="[object Error]",vs="[object Map]",ks="[object Number]",js="[object RegExp]",_s="[object Set]",xs="[object String]",qs="[object Symbol]",Es="[object ArrayBuffer]",As="[object DataView]",Ts=n?n.prototype:void 0,Os=Ts?Ts.valueOf:void 0;var Ss=function(a,e,t,i,n,o,r){switch(t){case As:if(a.byteLength!=e.byteLength||a.byteOffset!=e.byteOffset)return!1;a=a.buffer,e=e.buffer;case Es:return!(a.byteLength!=e.byteLength||!o(new Qo(a),new Qo(e)));case ws:case bs:case ks:return at(+a,+e);case hs:return a.name==e.name&&a.message==e.message;case js:case xs:return a==e+"";case vs:var s=gs;case _s:var d=i&fs;if(s||(s=ms),a.size!=e.size&&!d)return!1;var l=r.get(a);if(l)return l==e;i|=ys,r.set(a,e);var c=zs(s(a),s(e),i,n,o,r);return r.delete(a),c;case qs:if(Os)return Os.call(a)==Os.call(e)}return!1},Ps=1,Ms=Object.prototype.hasOwnProperty;var Cs=function(a,e,t,i,n,o){var r=t&Ps,s=Bo(a),d=s.length;if(d!=Bo(e).length&&!r)return!1;for(var l=d;l--;){var c=s[l];if(!(r?c in e:Ms.call(e,c)))return!1}var u=o.get(a);if(u&&o.get(e))return u==e;var p=!0;o.set(a,e),o.set(e,a);for(var z=r;++l<d;){var g=a[c=s[l]],m=e[c];if(i)var f=r?i(m,g,c,e,a,o):i(g,m,c,a,e,o);if(!(void 0===f?g===m||n(g,m,t,i,o):f)){p=!1;break}z||(z="constructor"==c)}if(p&&!z){var y=a.constructor,w=e.constructor;y!=w&&"constructor"in a&&"constructor"in e&&!("function"==typeof y&&y instanceof y&&"function"==typeof w&&w instanceof w)&&(p=!1)}return o.delete(a),o.delete(e),p},Rs=1,Ds="[object Arguments]",Fs="[object Array]",Bs="[object Object]",$s=Object.prototype.hasOwnProperty;var Ls=function(a,e,t,i,n,o){var r=k(a),s=k(e),d=r?Fs:Go(a),l=s?Fs:Go(e),c=(d=d==Ds?Bs:d)==Bs,u=(l=l==Ds?Bs:l)==Bs,p=d==l;if(p&&Object(vt.a)(a)){if(!Object(vt.a)(e))return!1;r=!0,c=!1}if(p&&!c)return o||(o=new xo),r||Et(a)?zs(a,e,t,i,n,o):Ss(a,e,d,t,i,n,o);if(!(t&Rs)){var z=c&&$s.call(a,"__wrapped__"),g=u&&$s.call(e,"__wrapped__");if(z||g){var m=z?a.value():a,f=g?e.value():e;return o||(o=new xo),n(m,f,t,i,o)}}return!!p&&(o||(o=new xo),Cs(a,e,t,i,n,o))};var Is=function a(e,t,i,n,o){return e===t||(null==e||null==t||!f(e)&&!f(t)?e!=e&&t!=t:Ls(e,t,i,n,a,o))},Ws=1,Us=2;var Ns=function(a,e,t,i){var n=t.length,o=n,r=!i;if(null==a)return!o;for(a=Object(a);n--;){var s=t[n];if(r&&s[2]?s[1]!==a[s[0]]:!(s[0]in a))return!1}for(;++n<o;){var d=(s=t[n])[0],l=a[d],c=s[1];if(r&&s[2]){if(void 0===l&&!(d in a))return!1}else{var u=new xo;if(i)var p=i(l,c,d,a,e,u);if(!(void 0===p?Is(c,l,Ws|Us,i,u):p))return!1}}return!0};var Ks=function(a){return a==a&&!T(a)};var Hs=function(a){for(var e=Ct(a),t=e.length;t--;){var i=e[t],n=a[i];e[t]=[i,n,Ks(n)]}return e};var Vs=function(a,e){return function(t){return null!=t&&t[a]===e&&(void 0!==e||a in Object(t))}};var Ys=function(a){var e=Hs(a);return 1==e.length&&e[0][2]?Vs(e[0][0],e[0][1]):function(t){return t===a||Ns(t,a,e)}};var Gs=function(a,e){return null!=a&&e in Object(a)};var Zs=function(a,e,t){for(var i=-1,n=(e=Pi(e,a)).length,o=!1;++i<n;){var r=Ci(e[i]);if(!(o=null!=a&&t(a,r)))break;a=a[r]}return o||++i!=n?o:!!(n=null==a?0:a.length)&&dt(n)&&we(r,n)&&(k(a)||ht(a))};var Js=function(a,e){return null!=a&&Zs(a,e,Gs)},Qs=1,Xs=2;var ad=function(a,e){return Ht(a)&&Ks(e)?Vs(Ci(a),e):function(t){var i=Di(t,a);return void 0===i&&i===e?Js(t,a):Is(e,i,Qs|Xs)}};var ed=function(a){return function(e){return null==e?void 0:e[a]}};var td=function(a){return function(e){return Ri(e,a)}};var id=function(a){return Ht(a)?ed(Ci(a)):td(a)};var nd=function(a){return"function"==typeof a?a:null==a?U:"object"==typeof a?k(a)?ad(a[0],a[1]):Ys(a):id(a)},od="Expected a function";var rd=function(a){var e=null==a?0:a.length,t=nd;return a=e?v(a,function(a){if("function"!=typeof a[1])throw new TypeError(od);return[t(a[0]),a[1]]}):[],rt(function(t){for(var i=-1;++i<e;){var n=a[i];if(ya(n[0],this,t))return ya(n[1],this,t)}})};var sd=function(a,e,t){var i=t.length;if(null==a)return!i;for(a=Object(a);i--;){var n=t[i],o=e[n],r=a[n];if(void 0===r&&!(n in a)||!o(r))return!1}return!0};var dd=function(a){var e=Ct(a);return function(t){return sd(t,a,e)}},ld=1;var cd=function(a){return dd(Nr(a,ld))};var ud=function(a,e){return null==e||sd(a,e,Ct(e))};var pd=function(a,e,t,i){for(var n=-1,o=null==a?0:a.length;++n<o;){var r=a[n];e(i,r,t(r),a)}return i};var zd=function(a){return function(e,t,i){for(var n=-1,o=Object(e),r=i(e),s=r.length;s--;){var d=r[a?s:++n];if(!1===t(o[d],d,o))break}return e}},gd=zd();var md=function(a,e){return a&&gd(a,e,Ct)};var fd=function(a,e){return function(t,i){if(null==t)return t;if(!lt(t))return a(t,i);for(var n=t.length,o=e?n:-1,r=Object(t);(e?o--:++o<n)&&!1!==i(r[o],o,r););return t}},yd=fd(md);var wd=function(a,e,t,i){return yd(a,function(a,n,o){e(i,a,t(a),o)}),i};var bd=function(a,e){return function(t,i){var n=k(t)?pd:wd,o=e?e():{};return n(t,a,nd(i,2),o)}},hd=Object.prototype.hasOwnProperty,vd=bd(function(a,e,t){hd.call(a,t)?++a[t]:Xe(a,t,1)});var kd=function(a,e){var t=za(a);return null==e?t:qo(t,e)},jd=8;function _d(a,e,t){var i=Ze(a,jd,void 0,void 0,void 0,void 0,void 0,e=t?void 0:e);return i.placeholder=_d.placeholder,i}_d.placeholder={};var xd=_d,qd=16;function Ed(a,e,t){var i=Ze(a,qd,void 0,void 0,void 0,void 0,void 0,e=t?void 0:e);return i.placeholder=Ed.placeholder,i}Ed.placeholder={};var Ad=Ed,Td=function(){return i.a.Date.now()},Od="Expected a function",Sd=Math.max,Pd=Math.min;var Md=function(a,e,t){var i,n,o,r,s,d,l=0,c=!1,u=!1,p=!0;if("function"!=typeof a)throw new TypeError(Od);function z(e){var t=i,o=n;return i=n=void 0,l=e,r=a.apply(o,t)}function g(a){var t=a-d;return void 0===d||t>=e||t<0||u&&a-l>=o}function m(){var a=Td();if(g(a))return f(a);s=setTimeout(m,function(a){var t=e-(a-d);return u?Pd(t,o-(a-l)):t}(a))}function f(a){return s=void 0,p&&i?z(a):(i=n=void 0,r)}function y(){var a=Td(),t=g(a);if(i=arguments,n=this,d=a,t){if(void 0===s)return function(a){return l=a,s=setTimeout(m,e),c?z(a):r}(d);if(u)return s=setTimeout(m,e),z(d)}return void 0===s&&(s=setTimeout(m,e)),r}return e=D(e)||0,T(t)&&(c=!!t.leading,o=(u="maxWait"in t)?Sd(D(t.maxWait)||0,e):o,p="trailing"in t?!!t.trailing:p),y.cancel=function(){void 0!==s&&clearTimeout(s),l=0,i=d=n=s=void 0},y.flush=function(){return void 0===s?r:f(Td())},y};var Cd=function(a,e){return null==a||a!=a?e:a},Rd=Object.prototype,Dd=Rd.hasOwnProperty,Fd=rt(function(a,e){a=Object(a);var t=-1,i=e.length,n=i>2?e[2]:void 0;for(n&&ct(e[0],e[1],n)&&(i=1);++t<i;)for(var o=e[t],r=Lt(o),s=-1,d=r.length;++s<d;){var l=r[s],c=a[l];(void 0===c||at(c,Rd[l])&&!Dd.call(a,l))&&(a[l]=o[l])}return a});var Bd=function(a,e,t){(void 0===t||at(a[e],t))&&(void 0!==t||e in a)||Xe(a,e,t)};var $d=function(a){return f(a)&<(a)};var Ld=function(a,e){if("__proto__"!=e)return a[e]};var Id=function(a){return it(a,Lt(a))};var Wd=function(a,e,t,i,n,o,r){var s=Ld(a,t),d=Ld(e,t),l=r.get(d);if(l)Bd(a,t,l);else{var c=o?o(s,d,t+"",a,e,r):void 0,u=void 0===c;if(u){var p=k(d),z=!p&&Object(vt.a)(d),g=!p&&!z&&Et(d);c=d,p||z||g?k(s)?c=s:$d(s)?c=Ca(s):z?(u=!1,c=Object(Ao.a)(d,!0)):g?(u=!1,c=rr(d,!0)):c=[]:Qi(d)||ht(d)?(c=s,ht(s)?c=Id(s):T(s)&&!Y(s)||(c=Er(d))):u=!1}u&&(r.set(d,c),n(c,d,i,o,r),r.delete(d)),Bd(a,t,c)}};var Ud=function a(e,t,i,n,o){e!==t&&gd(t,function(r,s){if(T(r))o||(o=new xo),Wd(e,t,s,i,a,n,o);else{var d=n?n(Ld(e,s),r,s+"",e,t,o):void 0;void 0===d&&(d=r),Bd(e,s,d)}},Lt)};var Nd=function a(e,t,i,n,o,r){return T(e)&&T(t)&&(r.set(t,e),Ud(e,t,void 0,a,r),r.delete(t)),e},Kd=ut(function(a,e,t,i){Ud(a,e,t,i)}),Hd=rt(function(a){return a.push(void 0,Nd),ya(Kd,void 0,a)}),Vd="Expected a function";var Yd=function(a,e,t){if("function"!=typeof a)throw new TypeError(Vd);return setTimeout(function(){a.apply(void 0,t)},e)},Gd=rt(function(a,e){return Yd(a,1,e)}),Zd=rt(function(a,e,t){return Yd(a,D(e)||0,t)});var Jd=function(a,e,t){for(var i=-1,n=null==a?0:a.length;++i<n;)if(t(e,a[i]))return!0;return!1},Qd=200;var Xd=function(a,e,t,i){var n=-1,o=ne,r=!0,s=a.length,d=[],l=e.length;if(!s)return d;t&&(e=v(e,_t(t))),i?(o=Jd,r=!1):e.length>=Qd&&(o=cs,r=!1,e=new ds(e));a:for(;++n<s;){var c=a[n],u=null==t?c:t(c);if(c=i||0!==c?c:0,r&&u==u){for(var p=l;p--;)if(e[p]===u)continue a;d.push(c)}else o(e,u,i)||d.push(c)}return d},al=rt(function(a,e){return $d(a)?Xd(a,Ii(e,1,$d,!0)):[]});var el=function(a){var e=null==a?0:a.length;return e?a[e-1]:void 0},tl=rt(function(a,e){var t=el(e);return $d(t)&&(t=void 0),$d(a)?Xd(a,Ii(e,1,$d,!0),nd(t,2)):[]}),il=rt(function(a,e){var t=el(e);return $d(t)&&(t=void 0),$d(a)?Xd(a,Ii(e,1,$d,!0),void 0,t):[]}),nl=E(function(a,e){return a/e},1);var ol=function(a,e,t){var i=null==a?0:a.length;return i?(e=t||void 0===e?1:L(e),un(a,e<0?0:e,i)):[]};var rl=function(a,e,t){var i=null==a?0:a.length;return i?(e=t||void 0===e?1:L(e),un(a,0,(e=i-e)<0?0:e)):[]};var sl=function(a,e,t,i){for(var n=a.length,o=i?n:-1;(i?o--:++o<n)&&e(a[o],o,a););return t?un(a,i?0:o,i?o+1:n):un(a,i?o+1:0,i?n:o)};var dl=function(a,e){return a&&a.length?sl(a,nd(e,3),!0,!0):[]};var ll=function(a,e){return a&&a.length?sl(a,nd(e,3),!0):[]};var cl=function(a){return"function"==typeof a?a:U};var ul=function(a,e){return(k(a)?Xa:yd)(a,cl(e))};var pl=function(a,e){for(var t=null==a?0:a.length;t--&&!1!==e(a[t],t,a););return a},zl=zd(!0);var gl=function(a,e){return a&&zl(a,e,Ct)},ml=fd(gl,!0);var fl=function(a,e){return(k(a)?pl:ml)(a,cl(e))};var yl=function(a,e,t){a=Si(a),e=q(e);var i=a.length,n=t=void 0===t?i:fo(L(t),0,i);return(t-=e.length)>=0&&a.slice(t,n)==e};var wl=function(a,e){return v(e,function(e){return[e,a[e]]})};var bl=function(a){var e=-1,t=Array(a.size);return a.forEach(function(a){t[++e]=[a,a]}),t},hl="[object Map]",vl="[object Set]";var kl=function(a){return function(e){var t=Go(e);return t==hl?gs(e):t==vl?bl(e):wl(e,a(e))}},jl=kl(Ct),_l=kl(Lt),xl=Pn({"&":"&","<":"<",">":">",'"':""","'":"'"}),ql=/[&<>"']/g,El=RegExp(ql.source);var Al=function(a){return(a=Si(a))&&El.test(a)?a.replace(ql,xl):a},Tl=/[\\^$.*+?()[\]{}|]/g,Ol=RegExp(Tl.source);var Sl=function(a){return(a=Si(a))&&Ol.test(a)?a.replace(Tl,"\\$&"):a};var Pl=function(a,e){for(var t=-1,i=null==a?0:a.length;++t<i;)if(!e(a[t],t,a))return!1;return!0};var Ml=function(a,e){var t=!0;return yd(a,function(a,i,n){return t=!!e(a,i,n)}),t};var Cl=function(a,e,t){var i=k(a)?Pl:Ml;return t&&ct(a,e,t)&&(e=void 0),i(a,nd(e,3))},Rl=4294967295;var Dl=function(a){return a?fo(L(a),0,Rl):0};var Fl=function(a,e,t,i){var n=a.length;for((t=L(t))<0&&(t=-t>n?0:n+t),(i=void 0===i||i>n?n:L(i))<0&&(i+=n),i=t>i?0:Dl(i);t<i;)a[t++]=e;return a};var Bl=function(a,e,t,i){var n=null==a?0:a.length;return n?(t&&"number"!=typeof t&&ct(a,e,t)&&(t=0,i=n),Fl(a,e,t,i)):[]};var $l=function(a,e){var t=[];return yd(a,function(a,i,n){e(a,i,n)&&t.push(a)}),t};var Ll=function(a,e){return(k(a)?To:$l)(a,nd(e,3))};var Il=function(a){return function(e,t,i){var n=Object(e);if(!lt(e)){var o=nd(t,3);e=Ct(e),t=function(a){return o(n[a],a,n)}}var r=a(e,t,i);return r>-1?n[o?e[r]:r]:void 0}},Wl=Math.max;var Ul=function(a,e,t){var i=null==a?0:a.length;if(!i)return-1;var n=null==t?0:L(t);return n<0&&(n=Wl(i+n,0)),ae(a,nd(e,3),n)},Nl=Il(Ul);var Kl=function(a,e,t){var i;return t(a,function(a,t,n){if(e(a,t,n))return i=t,!1}),i};var Hl=function(a,e){return Kl(a,nd(e,3),md)},Vl=Math.max,Yl=Math.min;var Gl=function(a,e,t){var i=null==a?0:a.length;if(!i)return-1;var n=i-1;return void 0!==t&&(n=L(t),n=t<0?Vl(i+n,0):Yl(n,i-1)),ae(a,nd(e,3),n,!0)},Zl=Il(Gl);var Jl=function(a,e){return Kl(a,nd(e,3),gl)};var Ql=function(a){return a&&a.length?a[0]:void 0};var Xl=function(a,e){var t=-1,i=lt(a)?Array(a.length):[];return yd(a,function(a,n,o){i[++t]=e(a,n,o)}),i};var ac=function(a,e){return(k(a)?v:Xl)(a,nd(e,3))};var ec=function(a,e){return Ii(ac(a,e),1)},tc=1/0;var ic=function(a,e){return Ii(ac(a,e),tc)};var nc=function(a,e,t){return t=void 0===t?1:L(t),Ii(ac(a,e),t)},oc=1/0;var rc=function(a){return null!=a&&a.length?Ii(a,oc):[]};var sc=function(a,e){return null!=a&&a.length?(e=void 0===e?1:L(e),Ii(a,e)):[]},dc=512;var lc=function(a){return Ze(a,dc)},cc=co("floor"),uc="Expected a function",pc=8,zc=32,gc=128,mc=256;var fc=function(a){return Ui(function(e){var t=e.length,i=t,n=Ma.prototype.thru;for(a&&e.reverse();i--;){var o=e[i];if("function"!=typeof o)throw new TypeError(uc);if(n&&!r&&"wrapper"==Sa(o))var r=new Ma([],!0)}for(i=r?i:t;++i<t;){o=e[i];var s=Sa(o),d="wrapper"==s?Aa(o):void 0;r=d&&$a(d[0])&&d[1]==(gc|pc|zc|mc)&&!d[4].length&&1==d[9]?r[Sa(d[0])].apply(r,d[3]):1==o.length&&$a(o)?r[s]():r.thru(o)}return function(){var a=arguments,i=a[0];if(r&&1==a.length&&k(i))return r.plant(i).value();for(var n=0,o=t?e[n].apply(this,a):i;++n<t;)o=e[n].call(this,o);return o}})},yc=fc(),wc=fc(!0);var bc=function(a,e){return null==a?a:gd(a,cl(e),Lt)};var hc=function(a,e){return null==a?a:zl(a,cl(e),Lt)};var vc=function(a,e){return a&&md(a,cl(e))};var kc=function(a,e){return a&&gl(a,cl(e))};var jc=function(a){for(var e=-1,t=null==a?0:a.length,i={};++e<t;){var n=a[e];i[n[0]]=n[1]}return i};var _c=function(a,e){return To(e,function(e){return Y(a[e])})};var xc=function(a){return null==a?[]:_c(a,Ct(a))};var qc=function(a){return null==a?[]:_c(a,Lt(a))},Ec=Object.prototype.hasOwnProperty,Ac=bd(function(a,e,t){Ec.call(a,t)?a[t].push(e):Xe(a,t,[e])});var Tc=function(a,e){return a>e};var Oc=function(a){return function(e,t){return"string"==typeof e&&"string"==typeof t||(e=D(e),t=D(t)),a(e,t)}},Sc=Oc(Tc),Pc=Oc(function(a,e){return a>=e}),Mc=Object.prototype.hasOwnProperty;var Cc=function(a,e){return null!=a&&Mc.call(a,e)};var Rc=function(a,e){return null!=a&&Zs(a,e,Cc)},Dc=Math.max,Fc=Math.min;var Bc=function(a,e,t){return a>=Fc(e,t)&&a<Dc(e,t)};var $c=function(a,e,t){return e=$(e),void 0===t?(t=e,e=0):t=$(t),a=D(a),Bc(a,e,t)},Lc="[object String]";var Ic=function(a){return"string"==typeof a||!k(a)&&f(a)&&m(a)==Lc};var Wc=function(a,e){return v(e,function(e){return a[e]})};var Uc=function(a){return null==a?[]:Wc(a,Ct(a))},Nc=Math.max;var Kc=function(a,e,t,i){a=lt(a)?a:Uc(a),t=t&&!i?L(t):0;var n=a.length;return t<0&&(t=Nc(n+t,0)),Ic(a)?t<=n&&a.indexOf(e,t)>-1:!!n&&ie(a,e,t)>-1},Hc=Math.max;var Vc=function(a,e,t){var i=null==a?0:a.length;if(!i)return-1;var n=null==t?0:L(t);return n<0&&(n=Hc(i+n,0)),ie(a,e,n)};var Yc=function(a){return null!=a&&a.length?un(a,0,-1):[]},Gc=Math.min;var Zc=function(a,e,t){for(var i=t?Jd:ne,n=a[0].length,o=a.length,r=o,s=Array(o),d=1/0,l=[];r--;){var c=a[r];r&&e&&(c=v(c,_t(e))),d=Gc(c.length,d),s[r]=!t&&(e||n>=120&&c.length>=120)?new ds(r&&c):void 0}c=a[0];var u=-1,p=s[0];a:for(;++u<n&&l.length<d;){var z=c[u],g=e?e(z):z;if(z=t||0!==z?z:0,!(p?cs(p,g):i(l,g,t))){for(r=o;--r;){var m=s[r];if(!(m?cs(m,g):i(a[r],g,t)))continue a}p&&p.push(g),l.push(z)}}return l};var Jc=function(a){return $d(a)?a:[]},Qc=rt(function(a){var e=v(a,Jc);return e.length&&e[0]===a[0]?Zc(e):[]}),Xc=rt(function(a){var e=el(a),t=v(a,Jc);return e===el(t)?e=void 0:t.pop(),t.length&&t[0]===a[0]?Zc(t,nd(e,2)):[]}),au=rt(function(a){var e=el(a),t=v(a,Jc);return(e="function"==typeof e?e:void 0)&&t.pop(),t.length&&t[0]===a[0]?Zc(t,void 0,e):[]});var eu=function(a,e,t,i){return md(a,function(a,n,o){e(i,t(a),n,o)}),i};var tu=function(a,e){return function(t,i){return eu(t,a,e(i),{})}},iu=Object.prototype.toString,nu=tu(function(a,e,t){null!=e&&"function"!=typeof e.toString&&(e=iu.call(e)),a[e]=t},Za(U)),ou=Object.prototype,ru=ou.hasOwnProperty,su=ou.toString,du=tu(function(a,e,t){null!=e&&"function"!=typeof e.toString&&(e=su.call(e)),ru.call(a,e)?a[e].push(t):a[e]=[t]},nd);var lu=function(a,e){return e.length<2?a:Ri(a,un(e,0,-1))};var cu=function(a,e,t){e=Pi(e,a);var i=null==(a=lu(a,e))?a:a[Ci(el(e))];return null==i?void 0:ya(i,a,t)},uu=rt(cu),pu=rt(function(a,e,t){var i=-1,n="function"==typeof e,o=lt(a)?Array(a.length):[];return yd(a,function(a){o[++i]=n?ya(e,a,t):cu(a,e,t)}),o}),zu="[object ArrayBuffer]";var gu=function(a){return f(a)&&m(a)==zu},mu=xt.a&&xt.a.isArrayBuffer,fu=mu?_t(mu):gu,yu="[object Boolean]";var wu=function(a){return!0===a||!1===a||f(a)&&m(a)==yu},bu="[object Date]";var hu=function(a){return f(a)&&m(a)==bu},vu=xt.a&&xt.a.isDate,ku=vu?_t(vu):hu;var ju=function(a){return f(a)&&1===a.nodeType&&!Qi(a)},_u="[object Map]",xu="[object Set]",qu=Object.prototype.hasOwnProperty;var Eu=function(a){if(null==a)return!0;if(lt(a)&&(k(a)||"string"==typeof a||"function"==typeof a.splice||Object(vt.a)(a)||Et(a)||ht(a)))return!a.length;var e=Go(a);if(e==_u||e==xu)return!a.size;if(zt(a))return!Mt(a).length;for(var t in a)if(qu.call(a,t))return!1;return!0};var Au=function(a,e){return Is(a,e)};var Tu=function(a,e,t){var i=(t="function"==typeof t?t:void 0)?t(a,e):void 0;return void 0===i?Is(a,e,void 0,t):!!i},Ou=i.a.isFinite;var Su=function(a){return"number"==typeof a&&Ou(a)};var Pu=function(a){return"number"==typeof a&&a==L(a)};var Mu=function(a,e){return a===e||Ns(a,e,Hs(e))};var Cu=function(a,e,t){return t="function"==typeof t?t:void 0,Ns(a,e,Hs(e),t)},Ru="[object Number]";var Du=function(a){return"number"==typeof a||f(a)&&m(a)==Ru};var Fu=function(a){return Du(a)&&a!=+a},Bu=t(138),$u=G?Y:Bu.a,Lu="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.";var Iu=function(a){if($u(a))throw new Error(Lu);return ra(a)};var Wu=function(a){return null==a};var Uu=function(a){return null===a},Nu="[object RegExp]";var Ku=function(a){return f(a)&&m(a)==Nu},Hu=xt.a&&xt.a.isRegExp,Vu=Hu?_t(Hu):Ku,Yu=9007199254740991;var Gu=function(a){return Pu(a)&&a>=-Yu&&a<=Yu};var Zu=function(a){return void 0===a},Ju="[object WeakMap]";var Qu=function(a){return f(a)&&Go(a)==Ju},Xu="[object WeakSet]";var ap=function(a){return f(a)&&m(a)==Xu},ep=1;var tp=function(a){return nd("function"==typeof a?a:Nr(a,ep))},ip=Array.prototype.join;var np=function(a,e){return null==a?"":ip.call(a,e)},op=oo(function(a,e,t){return a+(t?"-":"")+e.toLowerCase()}),rp=bd(function(a,e,t){Xe(a,t,e)});var sp=function(a,e,t){for(var i=t+1;i--;)if(a[i]===e)return i;return i},dp=Math.max,lp=Math.min;var cp=function(a,e,t){var i=null==a?0:a.length;if(!i)return-1;var n=i;return void 0!==t&&(n=(n=L(t))<0?dp(i+n,0):lp(n,i-1)),e==e?sp(a,e,n):ae(a,ee,n,!0)},up=oo(function(a,e,t){return a+(t?" ":"")+e.toLowerCase()}),pp=An("toLowerCase");var zp=function(a,e){return a<e},gp=Oc(zp),mp=Oc(function(a,e){return a<=e});var fp=function(a,e){var t={};return e=nd(e,3),md(a,function(a,i,n){Xe(t,e(a,i,n),a)}),t};var yp=function(a,e){var t={};return e=nd(e,3),md(a,function(a,i,n){Xe(t,i,e(a,i,n))}),t},wp=1;var bp=function(a){return Ys(Nr(a,wp))},hp=1;var vp=function(a,e){return ad(a,Nr(e,hp))};var kp=function(a,e,t){for(var i=-1,n=a.length;++i<n;){var o=a[i],r=e(o);if(null!=r&&(void 0===s?r==r&&!w(r):t(r,s)))var s=r,d=o}return d};var jp=function(a){return a&&a.length?kp(a,U,Tc):void 0};var _p=function(a,e){return a&&a.length?kp(a,nd(e,2),Tc):void 0};var xp=function(a,e){for(var t,i=-1,n=a.length;++i<n;){var o=e(a[i]);void 0!==o&&(t=void 0===t?o:t+o)}return t},qp=NaN;var Ep=function(a,e){var t=null==a?0:a.length;return t?xp(a,e)/t:qp};var Ap=function(a){return Ep(a,U)};var Tp=function(a,e){return Ep(a,nd(e,2))},Op=ut(function(a,e,t){Ud(a,e,t)}),Sp=rt(function(a,e){return function(t){return cu(t,a,e)}}),Pp=rt(function(a,e){return function(t){return cu(a,t,e)}});var Mp=function(a){return a&&a.length?kp(a,U,zp):void 0};var Cp=function(a,e){return a&&a.length?kp(a,nd(e,2),zp):void 0};var Rp=function(a,e,t){var i=Ct(e),n=_c(e,i),o=!(T(t)&&"chain"in t&&!t.chain),r=Y(a);return Xa(n,function(t){var i=e[t];a[t]=i,r&&(a.prototype[t]=function(){var e=this.__chain__;if(o||e){var t=a(this.__wrapped__);return(t.__actions__=Ca(this.__actions__)).push({func:i,args:arguments,thisArg:a}),t.__chain__=e,t}return i.apply(a,Bi([this.value()],arguments))})}),a},Dp=E(function(a,e){return a*e},1),Fp="Expected a function";var Bp=function(a){if("function"!=typeof a)throw new TypeError(Fp);return function(){var e=arguments;switch(e.length){case 0:return!a.call(this);case 1:return!a.call(this,e[0]);case 2:return!a.call(this,e[0],e[1]);case 3:return!a.call(this,e[0],e[1],e[2])}return!a.apply(this,e)}};var $p=function(a){for(var e,t=[];!(e=a.next()).done;)t.push(e.value);return t},Lp="[object Map]",Ip="[object Set]",Wp=n?n.iterator:void 0;var Up=function(a){if(!a)return[];if(lt(a))return Ic(a)?En(a):Ca(a);if(Wp&&a[Wp])return $p(a[Wp]());var e=Go(a);return(e==Lp?gs:e==Ip?ms:Uc)(a)};var Np=function(){void 0===this.__values__&&(this.__values__=Up(this.value()));var a=this.__index__>=this.__values__.length;return{done:a,value:a?void 0:this.__values__[this.__index__++]}};var Kp=function(a,e){var t=a.length;if(t)return we(e+=e<0?t:0,t)?a[e]:void 0};var Hp=function(a,e){return a&&a.length?Kp(a,L(e)):void 0};var Vp=function(a){return a=L(a),rt(function(e){return Kp(e,a)})};var Yp=function(a,e){return e=Pi(e,a),null==(a=lu(a,e))||delete a[Ci(el(e))]};var Gp=function(a){return Qi(a)?void 0:a},Zp=Ui(function(a,e){var t={};if(null==a)return t;var i=!1;e=v(e,function(e){return e=Pi(e,a),i||(i=e.length>1),e}),it(a,$o(a),t),i&&(t=Nr(t,7,Gp));for(var n=e.length;n--;)Yp(t,e[n]);return t});var Jp=function(a,e,t,i){if(!T(a))return a;for(var n=-1,o=(e=Pi(e,a)).length,r=o-1,s=a;null!=s&&++n<o;){var d=Ci(e[n]),l=t;if(n!=r){var c=s[d];void 0===(l=i?i(c,d,s):void 0)&&(l=T(c)?c:we(e[n+1])?[]:{})}tt(s,d,l),s=s[d]}return a};var Qp=function(a,e,t){for(var i=-1,n=e.length,o={};++i<n;){var r=e[i],s=Ri(a,r);t(s,r)&&Jp(o,Pi(r,a),s)}return o};var Xp=function(a,e){if(null==a)return{};var t=v($o(a),function(a){return[a]});return e=nd(e),Qp(a,t,function(a,t){return e(a,t[0])})};var az=function(a,e){return Xp(a,Bp(nd(e)))};var ez=function(a){return on(2,a)};var tz=function(a,e){var t=a.length;for(a.sort(e);t--;)a[t]=a[t].value;return a};var iz=function(a,e){if(a!==e){var t=void 0!==a,i=null===a,n=a==a,o=w(a),r=void 0!==e,s=null===e,d=e==e,l=w(e);if(!s&&!l&&!o&&a>e||o&&r&&d&&!s&&!l||i&&r&&d||!t&&d||!n)return 1;if(!i&&!o&&!l&&a<e||l&&t&&n&&!i&&!o||s&&t&&n||!r&&n||!d)return-1}return 0};var nz=function(a,e,t){for(var i=-1,n=a.criteria,o=e.criteria,r=n.length,s=t.length;++i<r;){var d=iz(n[i],o[i]);if(d)return i>=s?d:d*("desc"==t[i]?-1:1)}return a.index-e.index};var oz=function(a,e,t){var i=-1;e=v(e.length?e:[U],_t(nd));var n=Xl(a,function(a,t,n){return{criteria:v(e,function(e){return e(a)}),index:++i,value:a}});return tz(n,function(a,e){return nz(a,e,t)})};var rz=function(a,e,t,i){return null==a?[]:(k(e)||(e=null==e?[]:[e]),k(t=i?void 0:t)||(t=null==t?[]:[t]),oz(a,e,t))};var sz=function(a){return Ui(function(e){return e=v(e,_t(nd)),rt(function(t){var i=this;return a(e,function(a){return ya(a,i,t)})})})},dz=sz(v),lz=rt,cz=Math.min,uz=lz(function(a,e){var t=(e=1==e.length&&k(e[0])?v(e[0],_t(nd)):v(Ii(e,1),_t(nd))).length;return rt(function(i){for(var n=-1,o=cz(i.length,t);++n<o;)i[n]=e[n].call(this,i[n]);return ya(a,this,i)})}),pz=sz(Pl),zz=sz(ls),gz=9007199254740991,mz=Math.floor;var fz=function(a,e){var t="";if(!a||e<1||e>gz)return t;do{e%2&&(t+=a),(e=mz(e/2))&&(a+=a)}while(e);return t},yz=ed("length"),wz="[\\ud800-\\udfff]",bz="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",hz="[^\\ud800-\\udfff]",vz="(?:\\ud83c[\\udde6-\\uddff]){2}",kz="[\\ud800-\\udbff][\\udc00-\\udfff]",jz="(?:"+bz+"|\\ud83c[\\udffb-\\udfff])"+"?",_z="[\\ufe0e\\ufe0f]?"+jz+("(?:\\u200d(?:"+[hz,vz,kz].join("|")+")[\\ufe0e\\ufe0f]?"+jz+")*"),xz="(?:"+[hz+bz+"?",bz,vz,kz,wz].join("|")+")",qz=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+xz+_z,"g");var Ez=function(a){for(var e=qz.lastIndex=0;qz.test(a);)++e;return e};var Az=function(a){return gn(a)?Ez(a):yz(a)},Tz=Math.ceil;var Oz=function(a,e){var t=(e=void 0===e?" ":q(e)).length;if(t<2)return t?fz(e,a):e;var i=fz(e,Tz(a/Az(e)));return gn(e)?pn(En(i),0,a).join(""):i.slice(0,a)},Sz=Math.ceil,Pz=Math.floor;var Mz=function(a,e,t){a=Si(a);var i=(e=L(e))?Az(a):0;if(!e||i>=e)return a;var n=(e-i)/2;return Oz(Pz(n),t)+a+Oz(Sz(n),t)};var Cz=function(a,e,t){a=Si(a);var i=(e=L(e))?Az(a):0;return e&&i<e?a+Oz(e-i,t):a};var Rz=function(a,e,t){a=Si(a);var i=(e=L(e))?Az(a):0;return e&&i<e?Oz(e-i,t)+a:a},Dz=/^\s+/,Fz=i.a.parseInt;var Bz=function(a,e,t){return t||null==e?e=0:e&&(e=+e),Fz(Si(a).replace(Dz,""),e||0)},$z=rt(function(a,e){var t=ke(e,me($z));return Ze(a,32,void 0,e,t)});$z.placeholder={};var Lz=$z,Iz=rt(function(a,e){var t=ke(e,me(Iz));return Ze(a,64,void 0,e,t)});Iz.placeholder={};var Wz=Iz,Uz=bd(function(a,e,t){a[t?0:1].push(e)},function(){return[[],[]]});var Nz=function(a,e){return Qp(a,e,function(e,t){return Js(a,t)})},Kz=Ui(function(a,e){return null==a?{}:Nz(a,e)});var Hz=function(a){for(var e,t=this;t instanceof ja;){var i=Ra(t);i.__index__=0,i.__values__=void 0,e?n.__wrapped__=i:e=i;var n=i;t=t.__wrapped__}return n.__wrapped__=a,e};var Vz=function(a){return function(e){return null==a?void 0:Ri(a,e)}};var Yz=function(a,e,t,i){for(var n=t-1,o=a.length;++n<o;)if(i(a[n],e))return n;return-1},Gz=Array.prototype.splice;var Zz=function(a,e,t,i){var n=i?Yz:ie,o=-1,r=e.length,s=a;for(a===e&&(e=Ca(e)),t&&(s=v(a,_t(t)));++o<r;)for(var d=0,l=e[o],c=t?t(l):l;(d=n(s,c,d,i))>-1;)s!==a&&Gz.call(s,d,1),Gz.call(a,d,1);return a};var Jz=function(a,e){return a&&a.length&&e&&e.length?Zz(a,e):a},Qz=rt(Jz);var Xz=function(a,e,t){return a&&a.length&&e&&e.length?Zz(a,e,nd(t,2)):a};var ag=function(a,e,t){return a&&a.length&&e&&e.length?Zz(a,e,void 0,t):a},eg=Array.prototype.splice;var tg=function(a,e){for(var t=a?e.length:0,i=t-1;t--;){var n=e[t];if(t==i||n!==o){var o=n;we(n)?eg.call(a,n,1):Yp(a,n)}}return a},ig=Ui(function(a,e){var t=null==a?0:a.length,i=Fi(a,e);return tg(a,v(e,function(a){return we(a,t)?+a:a}).sort(iz)),i}),ng=Math.floor,og=Math.random;var rg=function(a,e){return a+ng(og()*(e-a+1))},sg=parseFloat,dg=Math.min,lg=Math.random;var cg=function(a,e,t){if(t&&"boolean"!=typeof t&&ct(a,e,t)&&(e=t=void 0),void 0===t&&("boolean"==typeof e?(t=e,e=void 0):"boolean"==typeof a&&(t=a,a=void 0)),void 0===a&&void 0===e?(a=0,e=1):(a=$(a),void 0===e?(e=a,a=0):e=$(e)),a>e){var i=a;a=e,e=i}if(t||a%1||e%1){var n=lg();return dg(a+n*(e-a+sg("1e-"+((n+"").length-1))),e)}return rg(a,e)},ug=Math.ceil,pg=Math.max;var zg=function(a,e,t,i){for(var n=-1,o=pg(ug((e-a)/(t||1)),0),r=Array(o);o--;)r[i?o:++n]=a,a+=t;return r};var gg=function(a){return function(e,t,i){return i&&"number"!=typeof i&&ct(e,t,i)&&(t=i=void 0),e=$(e),void 0===t?(t=e,e=0):t=$(t),i=void 0===i?e<t?1:-1:$(i),zg(e,t,i,a)}},mg=gg(),fg=gg(!0),yg=Ui(function(a,e){return Ze(a,256,void 0,void 0,void 0,e)});var wg=function(a,e,t,i,n){return n(a,function(a,n,o){t=i?(i=!1,a):e(t,a,n,o)}),t};var bg=function(a,e,t){var i=k(a)?Sn:wg,n=arguments.length<3;return i(a,nd(e,4),t,n,yd)};var hg=function(a,e,t,i){var n=null==a?0:a.length;for(i&&n&&(t=a[--n]);n--;)t=e(t,a[n],n,a);return t};var vg=function(a,e,t){var i=k(a)?hg:wg,n=arguments.length<3;return i(a,nd(e,4),t,n,ml)};var kg=function(a,e){return(k(a)?To:$l)(a,Bp(nd(e,3)))};var jg=function(a,e){var t=[];if(!a||!a.length)return t;var i=-1,n=[],o=a.length;for(e=nd(e,3);++i<o;){var r=a[i];e(r,i,a)&&(t.push(r),n.push(i))}return tg(a,n),t};var _g=function(a,e,t){return e=(t?ct(a,e,t):void 0===e)?1:L(e),fz(Si(a),e)};var xg=function(){var a=arguments,e=Si(a[0]);return a.length<3?e:e.replace(a[1],a[2])},qg="Expected a function";var Eg=function(a,e){if("function"!=typeof a)throw new TypeError(qg);return e=void 0===e?e:L(e),rt(a,e)};var Ag=function(a,e,t){var i=-1,n=(e=Pi(e,a)).length;for(n||(n=1,a=void 0);++i<n;){var o=null==a?void 0:a[Ci(e[i])];void 0===o&&(i=n,o=t),a=Y(o)?o.call(a):o}return a},Tg=Array.prototype.reverse;var Og=function(a){return null==a?a:Tg.call(a)},Sg=co("round");var Pg=function(a){var e=a.length;return e?a[rg(0,e-1)]:void 0};var Mg=function(a){return Pg(Uc(a))};var Cg=function(a){return(k(a)?Pg:Mg)(a)};var Rg=function(a,e){var t=-1,i=a.length,n=i-1;for(e=void 0===e?i:e;++t<e;){var o=rg(t,n),r=a[o];a[o]=a[t],a[t]=r}return a.length=e,a};var Dg=function(a,e){return Rg(Ca(a),fo(e,0,a.length))};var Fg=function(a,e){var t=Uc(a);return Rg(t,fo(e,0,t.length))};var Bg=function(a,e,t){return e=(t?ct(a,e,t):void 0===e)?1:L(e),(k(a)?Dg:Fg)(a,e)};var $g=function(a,e,t){return null==a?a:Jp(a,e,t)};var Lg=function(a,e,t,i){return i="function"==typeof i?i:void 0,null==a?a:Jp(a,e,t,i)};var Ig=function(a){return Rg(Ca(a))};var Wg=function(a){return Rg(Uc(a))};var Ug=function(a){return(k(a)?Ig:Wg)(a)},Ng="[object Map]",Kg="[object Set]";var Hg=function(a){if(null==a)return 0;if(lt(a))return Ic(a)?Az(a):a.length;var e=Go(a);return e==Ng||e==Kg?a.size:Mt(a).length};var Vg=function(a,e,t){var i=null==a?0:a.length;return i?(t&&"number"!=typeof t&&ct(a,e,t)?(e=0,t=i):(e=null==e?0:L(e),t=void 0===t?i:L(t)),un(a,e,t)):[]},Yg=oo(function(a,e,t){return a+(t?"_":"")+e.toLowerCase()});var Gg=function(a,e){var t;return yd(a,function(a,i,n){return!(t=e(a,i,n))}),!!t};var Zg=function(a,e,t){var i=k(a)?ls:Gg;return t&&ct(a,e,t)&&(e=void 0),i(a,nd(e,3))},Jg=rt(function(a,e){if(null==a)return[];var t=e.length;return t>1&&ct(a,e[0],e[1])?e=[]:t>2&&ct(e[0],e[1],e[2])&&(e=[e[0]]),oz(a,Ii(e,1),[])}),Qg=4294967294,Xg=Math.floor,am=Math.min;var em=function(a,e,t,i){e=t(e);for(var n=0,o=null==a?0:a.length,r=e!=e,s=null===e,d=w(e),l=void 0===e;n<o;){var c=Xg((n+o)/2),u=t(a[c]),p=void 0!==u,z=null===u,g=u==u,m=w(u);if(r)var f=i||g;else f=l?g&&(i||p):s?g&&p&&(i||!z):d?g&&p&&!z&&(i||!m):!z&&!m&&(i?u<=e:u<e);f?n=c+1:o=c}return am(o,Qg)},tm=2147483647;var im=function(a,e,t){var i=0,n=null==a?i:a.length;if("number"==typeof e&&e==e&&n<=tm){for(;i<n;){var o=i+n>>>1,r=a[o];null!==r&&!w(r)&&(t?r<=e:r<e)?i=o+1:n=o}return n}return em(a,e,U,t)};var nm=function(a,e){return im(a,e)};var om=function(a,e,t){return em(a,e,nd(t,2))};var rm=function(a,e){var t=null==a?0:a.length;if(t){var i=im(a,e);if(i<t&&at(a[i],e))return i}return-1};var sm=function(a,e){return im(a,e,!0)};var dm=function(a,e,t){return em(a,e,nd(t,2),!0)};var lm=function(a,e){if(null!=a&&a.length){var t=im(a,e,!0)-1;if(at(a[t],e))return t}return-1};var cm=function(a,e){for(var t=-1,i=a.length,n=0,o=[];++t<i;){var r=a[t],s=e?e(r):r;if(!t||!at(s,d)){var d=s;o[n++]=0===r?0:r}}return o};var um=function(a){return a&&a.length?cm(a):[]};var pm=function(a,e){return a&&a.length?cm(a,nd(e,2)):[]},zm=4294967295;var gm=function(a,e,t){return t&&"number"!=typeof t&&ct(a,e,t)&&(e=t=void 0),(t=void 0===t?zm:t>>>0)?(a=Si(a))&&("string"==typeof e||null!=e&&!Vu(e))&&!(e=q(e))&&gn(a)?pn(En(a),0,t):a.split(e,t):[]},mm="Expected a function",fm=Math.max;var ym=function(a,e){if("function"!=typeof a)throw new TypeError(mm);return e=null==e?0:fm(L(e),0),rt(function(t){var i=t[e],n=pn(t,0,e);return i&&Bi(n,i),ya(a,this,n)})},wm=oo(function(a,e,t){return a+(t?" ":"")+Tn(e)});var bm=function(a,e,t){return a=Si(a),t=null==t?0:fo(L(t),0,a.length),e=q(e),a.slice(t,t+e.length)==e};var hm=function(){return{}};var vm=function(){return""};var km=function(){return!0},jm=E(function(a,e){return a-e},0);var _m=function(a){return a&&a.length?xp(a,U):0};var xm=function(a,e){return a&&a.length?xp(a,nd(e,2)):0};var qm=function(a){var e=null==a?0:a.length;return e?un(a,1,e):[]};var Em=function(a,e,t){return a&&a.length?(e=t||void 0===e?1:L(e),un(a,0,e<0?0:e)):[]};var Am=function(a,e,t){var i=null==a?0:a.length;return i?(e=t||void 0===e?1:L(e),un(a,(e=i-e)<0?0:e,i)):[]};var Tm=function(a,e){return a&&a.length?sl(a,nd(e,3),!1,!0):[]};var Om=function(a,e){return a&&a.length?sl(a,nd(e,3)):[]};var Sm=function(a,e){return e(a),a},Pm=Object.prototype,Mm=Pm.hasOwnProperty;var Cm=function(a,e,t,i){return void 0===a||at(a,Pm[t])&&!Mm.call(i,t)?e:a},Rm={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"};var Dm=function(a){return"\\"+Rm[a]},Fm=/<%=([\s\S]+?)%>/g,Bm={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:Fm,variable:"",imports:{_:{escape:Al}}},$m=/\b__p \+= '';/g,Lm=/\b(__p \+=) '' \+/g,Im=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Wm=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Um=/($^)/,Nm=/['\n\r\u2028\u2029\\]/g;var Km=function(a,e,t){var i=Bm.imports._.templateSettings||Bm;t&&ct(a,e,t)&&(e=void 0),a=Si(a),e=Wt({},e,i,Cm);var n,o,r=Wt({},e.imports,i.imports,Cm),s=Ct(r),d=Wc(r,s),l=0,c=e.interpolate||Um,u="__p += '",p=RegExp((e.escape||Um).source+"|"+c.source+"|"+(c===Fm?Wm:Um).source+"|"+(e.evaluate||Um).source+"|$","g"),z="sourceURL"in e?"//# sourceURL="+e.sourceURL+"\n":"";a.replace(p,function(e,t,i,r,s,d){return i||(i=r),u+=a.slice(l,d).replace(Nm,Dm),t&&(n=!0,u+="' +\n__e("+t+") +\n'"),s&&(o=!0,u+="';\n"+s+";\n__p += '"),i&&(u+="' +\n((__t = ("+i+")) == null ? '' : __t) +\n'"),l=d+e.length,e}),u+="';\n";var g=e.variable;g||(u="with (obj) {\n"+u+"\n}\n"),u=(o?u.replace($m,""):u).replace(Lm,"$1").replace(Im,"$1;"),u="function("+(g||"obj")+") {\n"+(g?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(n?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+u+"return __p\n}";var m=tn(function(){return Function(s,z+"return "+u).apply(void 0,d)});if(m.source=u,en(m))throw m;return m},Hm="Expected a function";var Vm=function(a,e,t){var i=!0,n=!0;if("function"!=typeof a)throw new TypeError(Hm);return T(t)&&(i="leading"in t?!!t.leading:i,n="trailing"in t?!!t.trailing:n),Md(a,e,{leading:i,maxWait:e,trailing:n})};var Ym=function(a,e){return e(a)},Gm=9007199254740991,Zm=4294967295,Jm=Math.min;var Qm=function(a,e){if((a=L(a))<1||a>Gm)return[];var t=Zm,i=Jm(a,Zm);e=cl(e),a-=Zm;for(var n=gt(i,e);++t<a;)e(t);return n};var Xm=function(){return this};var af=function(a,e){var t=a;return t instanceof qa&&(t=t.value()),Sn(e,function(a,e){return e.func.apply(e.thisArg,Bi([a],e.args))},t)};var ef=function(){return af(this.__wrapped__,this.__actions__)};var tf=function(a){return Si(a).toLowerCase()};var nf=function(a){return k(a)?v(a,Ci):w(a)?[a]:Ca(Oi(Si(a)))},of=9007199254740991;var rf=function(a){return a?fo(L(a),-of,of):0===a?a:0};var sf=function(a){return Si(a).toUpperCase()};var df=function(a,e,t){var i=k(a),n=i||Object(vt.a)(a)||Et(a);if(e=nd(e,4),null==t){var o=a&&a.constructor;t=n?i?new o:[]:T(a)&&Y(o)?za(Ki(a)):{}}return(n?Xa:md)(a,function(a,i,n){return e(t,a,i,n)}),t};var lf=function(a,e){for(var t=a.length;t--&&ie(e,a[t],0)>-1;);return t};var cf=function(a,e){for(var t=-1,i=a.length;++t<i&&ie(e,a[t],0)>-1;);return t},uf=/^\s+|\s+$/g;var pf=function(a,e,t){if((a=Si(a))&&(t||void 0===e))return a.replace(uf,"");if(!a||!(e=q(e)))return a;var i=En(a),n=En(e),o=cf(i,n),r=lf(i,n)+1;return pn(i,o,r).join("")},zf=/\s+$/;var gf=function(a,e,t){if((a=Si(a))&&(t||void 0===e))return a.replace(zf,"");if(!a||!(e=q(e)))return a;var i=En(a),n=lf(i,En(e))+1;return pn(i,0,n).join("")},mf=/^\s+/;var ff=function(a,e,t){if((a=Si(a))&&(t||void 0===e))return a.replace(mf,"");if(!a||!(e=q(e)))return a;var i=En(a),n=cf(i,En(e));return pn(i,n).join("")},yf=30,wf="...",bf=/\w*$/;var hf=function(a,e){var t=yf,i=wf;if(T(e)){var n="separator"in e?e.separator:n;t="length"in e?L(e.length):t,i="omission"in e?q(e.omission):i}var o=(a=Si(a)).length;if(gn(a)){var r=En(a);o=r.length}if(t>=o)return a;var s=t-Az(i);if(s<1)return i;var d=r?pn(r,0,s).join(""):a.slice(0,s);if(void 0===n)return d+i;if(r&&(s+=d.length-s),Vu(n)){if(a.slice(s).search(n)){var l,c=d;for(n.global||(n=RegExp(n.source,Si(bf.exec(n))+"g")),n.lastIndex=0;l=n.exec(c);)var u=l.index;d=d.slice(0,void 0===u?s:u)}}else if(a.indexOf(q(n),s)!=s){var p=d.lastIndexOf(n);p>-1&&(d=d.slice(0,p))}return d+i};var vf=function(a){return Qe(a,1)},kf=Pn({"&":"&","<":"<",">":">",""":'"',"'":"'"}),jf=/&(?:amp|lt|gt|quot|#39);/g,_f=RegExp(jf.source);var xf=function(a){return(a=Si(a))&&_f.test(a)?a.replace(jf,kf):a},qf=Wo&&1/ms(new Wo([,-0]))[1]==1/0?function(a){return new Wo(a)}:Ea,Ef=200;var Af=function(a,e,t){var i=-1,n=ne,o=a.length,r=!0,s=[],d=s;if(t)r=!1,n=Jd;else if(o>=Ef){var l=e?null:qf(a);if(l)return ms(l);r=!1,n=cs,d=new ds}else d=e?[]:s;a:for(;++i<o;){var c=a[i],u=e?e(c):c;if(c=t||0!==c?c:0,r&&u==u){for(var p=d.length;p--;)if(d[p]===u)continue a;e&&d.push(u),s.push(c)}else n(d,u,t)||(d!==s&&d.push(u),s.push(c))}return s},Tf=rt(function(a){return Af(Ii(a,1,$d,!0))}),Of=rt(function(a){var e=el(a);return $d(e)&&(e=void 0),Af(Ii(a,1,$d,!0),nd(e,2))}),Sf=rt(function(a){var e=el(a);return e="function"==typeof e?e:void 0,Af(Ii(a,1,$d,!0),void 0,e)});var Pf=function(a){return a&&a.length?Af(a):[]};var Mf=function(a,e){return a&&a.length?Af(a,nd(e,2)):[]};var Cf=function(a,e){return e="function"==typeof e?e:void 0,a&&a.length?Af(a,void 0,e):[]},Rf=0;var Df=function(a){var e=++Rf;return Si(a)+e};var Ff=function(a,e){return null==a||Yp(a,e)},Bf=Math.max;var $f=function(a){if(!a||!a.length)return[];var e=0;return a=To(a,function(a){if($d(a))return e=Bf(a.length,e),!0}),gt(e,function(e){return v(a,ed(e))})};var Lf=function(a,e){if(!a||!a.length)return[];var t=$f(a);return null==e?t:v(t,function(a){return ya(e,void 0,a)})};var If=function(a,e,t,i){return Jp(a,e,t(Ri(a,e)),i)};var Wf=function(a,e,t){return null==a?a:If(a,e,cl(t))};var Uf=function(a,e,t,i){return i="function"==typeof i?i:void 0,null==a?a:If(a,e,cl(t),i)},Nf=oo(function(a,e,t){return a+(t?" ":"")+e.toUpperCase()});var Kf=function(a){return null==a?[]:Wc(a,Lt(a))},Hf=rt(function(a,e){return $d(a)?Xd(a,e):[]});var Vf=function(a,e){return Lz(cl(e),a)},Yf=Ui(function(a){var e=a.length,t=e?a[0]:0,i=this.__wrapped__,n=function(e){return Fi(e,a)};return!(e>1||this.__actions__.length)&&i instanceof qa&&we(t)?((i=i.slice(t,+t+(e?1:0))).__actions__.push({func:Ym,args:[n],thisArg:void 0}),new Ma(i,this.__chain__).thru(function(a){return e&&!a.length&&a.push(void 0),a})):this.thru(n)});var Gf=function(){return po(this)};var Zf=function(){var a=this.__wrapped__;if(a instanceof qa){var e=a;return this.__actions__.length&&(e=new qa(this)),(e=e.reverse()).__actions__.push({func:Ym,args:[Og],thisArg:void 0}),new Ma(e,this.__chain__)}return this.thru(Og)};var Jf=function(a,e,t){var i=a.length;if(i<2)return i?Af(a[0]):[];for(var n=-1,o=Array(i);++n<i;)for(var r=a[n],s=-1;++s<i;)s!=n&&(o[n]=Xd(o[n]||r,a[s],e,t));return Af(Ii(o,1),e,t)},Qf=rt(function(a){return Jf(To(a,$d))}),Xf=rt(function(a){var e=el(a);return $d(e)&&(e=void 0),Jf(To(a,$d),nd(e,2))}),ay=rt(function(a){var e=el(a);return e="function"==typeof e?e:void 0,Jf(To(a,$d),void 0,e)}),ey=rt($f);var ty=function(a,e,t){for(var i=-1,n=a.length,o=e.length,r={};++i<n;){var s=i<o?e[i]:void 0;t(r,a[i],s)}return r};var iy=function(a,e){return ty(a||[],e||[],tt)};var ny=function(a,e){return ty(a||[],e||[],Jp)},oy=rt(function(a){var e=a.length,t=e>1?a[e-1]:void 0;return t="function"==typeof t?(a.pop(),t):void 0,Lf(a,t)}),ry={chunk:mo,compact:ts,concat:is,difference:al,differenceBy:tl,differenceWith:il,drop:ol,dropRight:rl,dropRightWhile:dl,dropWhile:ll,fill:Bl,findIndex:Ul,findLastIndex:Gl,first:Ql,flatten:Wi,flattenDeep:rc,flattenDepth:sc,fromPairs:jc,head:Ql,indexOf:Vc,initial:Yc,intersection:Qc,intersectionBy:Xc,intersectionWith:au,join:np,last:el,lastIndexOf:cp,nth:Hp,pull:Qz,pullAll:Jz,pullAllBy:Xz,pullAllWith:ag,pullAt:ig,remove:jg,reverse:Og,slice:Vg,sortedIndex:nm,sortedIndexBy:om,sortedIndexOf:rm,sortedLastIndex:sm,sortedLastIndexBy:dm,sortedLastIndexOf:lm,sortedUniq:um,sortedUniqBy:pm,tail:qm,take:Em,takeRight:Am,takeRightWhile:Tm,takeWhile:Om,union:Tf,unionBy:Of,unionWith:Sf,uniq:Pf,uniqBy:Mf,uniqWith:Cf,unzip:$f,unzipWith:Lf,without:Hf,xor:Qf,xorBy:Xf,xorWith:ay,zip:ey,zipObject:iy,zipObjectDeep:ny,zipWith:oy},sy={countBy:vd,each:ul,eachRight:fl,every:Cl,filter:Ll,find:Nl,findLast:Zl,flatMap:ec,flatMapDeep:ic,flatMapDepth:nc,forEach:ul,forEachRight:fl,groupBy:Ac,includes:Kc,invokeMap:pu,keyBy:rp,map:ac,orderBy:rz,partition:Uz,reduce:bg,reduceRight:vg,reject:kg,sample:Cg,sampleSize:Bg,shuffle:Ug,size:Hg,some:Zg,sortBy:Jg},dy={now:Td},ly={after:W,ary:Qe,before:on,bind:sn,bindKey:cn,curry:xd,curryRight:Ad,debounce:Md,defer:Gd,delay:Zd,flip:lc,memoize:qi,negate:Bp,once:ez,overArgs:uz,partial:Lz,partialRight:Wz,rearg:yg,rest:Eg,spread:ym,throttle:Vm,unary:vf,wrap:Vf},cy={castArray:so,clone:Hr,cloneDeep:Gr,cloneDeepWith:Qr,cloneWith:as,conformsTo:ud,eq:at,gt:Sc,gte:Pc,isArguments:ht,isArray:k,isArrayBuffer:fu,isArrayLike:lt,isArrayLikeObject:$d,isBoolean:wu,isBuffer:vt.a,isDate:ku,isElement:ju,isEmpty:Eu,isEqual:Au,isEqualWith:Tu,isError:en,isFinite:Su,isFunction:Y,isInteger:Pu,isLength:dt,isMap:Sr,isMatch:Mu,isMatchWith:Cu,isNaN:Fu,isNative:Iu,isNil:Wu,isNull:Uu,isNumber:Du,isObject:T,isObjectLike:f,isPlainObject:Qi,isRegExp:Vu,isSafeInteger:Gu,isSet:Rr,isString:Ic,isSymbol:w,isTypedArray:Et,isUndefined:Zu,isWeakMap:Qu,isWeakSet:ap,lt:gp,lte:mp,toArray:Up,toFinite:$,toInteger:L,toLength:Dl,toNumber:D,toPlainObject:Id,toSafeInteger:rf,toString:Si},uy={add:A,ceil:uo,divide:nl,floor:cc,max:jp,maxBy:_p,mean:Ap,meanBy:Tp,min:Mp,minBy:Cp,multiply:Dp,round:Sg,subtract:jm,sum:_m,sumBy:xm},py={clamp:yo,inRange:$c,random:cg},zy={assign:Dt,assignIn:It,assignInWith:Wt,assignWith:Ut,at:Ni,create:kd,defaults:Fd,defaultsDeep:Hd,entries:jl,entriesIn:_l,extend:It,extendWith:Wt,findKey:Hl,findLastKey:Jl,forIn:bc,forInRight:hc,forOwn:vc,forOwnRight:kc,functions:xc,functionsIn:qc,get:Di,has:Rc,hasIn:Js,invert:nu,invertBy:du,invoke:uu,keys:Ct,keysIn:Lt,mapKeys:fp,mapValues:yp,merge:Op,mergeWith:Kd,omit:Zp,omitBy:az,pick:Kz,pickBy:Xp,result:Ag,set:$g,setWith:Lg,toPairs:jl,toPairsIn:_l,transform:df,unset:Ff,update:Wf,updateWith:Uf,values:Uc,valuesIn:Kf},gy={at:Yf,chain:po,commit:es,lodash:Ba,next:Np,plant:Hz,reverse:Zf,tap:Sm,thru:Ym,toIterator:Xm,toJSON:ef,value:ef,valueOf:ef,wrapperChain:Gf},my={camelCase:ro,capitalize:On,deburr:Dn,endsWith:yl,escape:Al,escapeRegExp:Sl,kebabCase:op,lowerCase:up,lowerFirst:pp,pad:Mz,padEnd:Cz,padStart:Rz,parseInt:Bz,repeat:_g,replace:xg,snakeCase:Yg,split:gm,startCase:wm,startsWith:bm,template:Km,templateSettings:Bm,toLower:tf,toUpper:sf,trim:pf,trimEnd:gf,trimStart:ff,truncate:hf,unescape:xf,upperCase:Nf,upperFirst:Tn,words:io},fy={attempt:tn,bindAll:dn,cond:rd,conforms:cd,constant:Za,defaultTo:Cd,flow:yc,flowRight:wc,identity:U,iteratee:tp,matches:bp,matchesProperty:vp,method:Sp,methodOf:Pp,mixin:Rp,noop:Ea,nthArg:Vp,over:dz,overEvery:pz,overSome:zz,property:id,propertyOf:Vz,range:mg,rangeRight:fg,stubArray:Oo,stubFalse:Bu.a,stubObject:hm,stubString:vm,stubTrue:km,times:Qm,toPath:nf,uniqueId:Df};var yy=function(){var a=new qa(this.__wrapped__);return a.__actions__=Ca(this.__actions__),a.__dir__=this.__dir__,a.__filtered__=this.__filtered__,a.__iteratees__=Ca(this.__iteratees__),a.__takeCount__=this.__takeCount__,a.__views__=Ca(this.__views__),a};var wy=function(){if(this.__filtered__){var a=new qa(this);a.__dir__=-1,a.__filtered__=!0}else(a=this.clone()).__dir__*=-1;return a},by=Math.max,hy=Math.min;var vy=function(a,e,t){for(var i=-1,n=t.length;++i<n;){var o=t[i],r=o.size;switch(o.type){case"drop":a+=r;break;case"dropRight":e-=r;break;case"take":e=hy(e,a+r);break;case"takeRight":a=by(a,e-r)}}return{start:a,end:e}},ky=1,jy=2,_y=Math.min;var xy=function(){var a=this.__wrapped__.value(),e=this.__dir__,t=k(a),i=e<0,n=t?a.length:0,o=vy(0,n,this.__views__),r=o.start,s=o.end,d=s-r,l=i?s:r-1,c=this.__iteratees__,u=c.length,p=0,z=_y(d,this.__takeCount__);if(!t||!i&&n==d&&z==d)return af(a,this.__actions__);var g=[];a:for(;d--&&p<z;){for(var m=-1,f=a[l+=e];++m<u;){var y=c[m],w=y.iteratee,b=y.type,h=w(f);if(b==jy)f=h;else if(!h){if(b==ky)continue a;break a}}g[p++]=f}return g},qy=Array.prototype,Ey=Object.prototype.hasOwnProperty,Ay=n?n.iterator:void 0,Ty=Math.max,Oy=Math.min,Sy=function(a){return function(e,t,i){if(null==i){var n=T(t),o=n&&Ct(t),r=o&&o.length&&_c(t,o);(r?r.length:n)||(i=t,t=e,e=this)}return a(e,t,i)}}(Rp);
|
2 |
-
/**
|
3 |
-
* @license
|
4 |
-
* Lodash (Custom Build) <https://lodash.com/>
|
5 |
-
* Build: `lodash modularize exports="es" -o ./`
|
6 |
-
* Copyright JS Foundation and other contributors <https://js.foundation/>
|
7 |
-
* Released under MIT license <https://lodash.com/license>
|
8 |
-
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
9 |
-
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
10 |
-
*/Ba.after=ly.after,Ba.ary=ly.ary,Ba.assign=zy.assign,Ba.assignIn=zy.assignIn,Ba.assignInWith=zy.assignInWith,Ba.assignWith=zy.assignWith,Ba.at=zy.at,Ba.before=ly.before,Ba.bind=ly.bind,Ba.bindAll=fy.bindAll,Ba.bindKey=ly.bindKey,Ba.castArray=cy.castArray,Ba.chain=gy.chain,Ba.chunk=ry.chunk,Ba.compact=ry.compact,Ba.concat=ry.concat,Ba.cond=fy.cond,Ba.conforms=fy.conforms,Ba.constant=fy.constant,Ba.countBy=sy.countBy,Ba.create=zy.create,Ba.curry=ly.curry,Ba.curryRight=ly.curryRight,Ba.debounce=ly.debounce,Ba.defaults=zy.defaults,Ba.defaultsDeep=zy.defaultsDeep,Ba.defer=ly.defer,Ba.delay=ly.delay,Ba.difference=ry.difference,Ba.differenceBy=ry.differenceBy,Ba.differenceWith=ry.differenceWith,Ba.drop=ry.drop,Ba.dropRight=ry.dropRight,Ba.dropRightWhile=ry.dropRightWhile,Ba.dropWhile=ry.dropWhile,Ba.fill=ry.fill,Ba.filter=sy.filter,Ba.flatMap=sy.flatMap,Ba.flatMapDeep=sy.flatMapDeep,Ba.flatMapDepth=sy.flatMapDepth,Ba.flatten=ry.flatten,Ba.flattenDeep=ry.flattenDeep,Ba.flattenDepth=ry.flattenDepth,Ba.flip=ly.flip,Ba.flow=fy.flow,Ba.flowRight=fy.flowRight,Ba.fromPairs=ry.fromPairs,Ba.functions=zy.functions,Ba.functionsIn=zy.functionsIn,Ba.groupBy=sy.groupBy,Ba.initial=ry.initial,Ba.intersection=ry.intersection,Ba.intersectionBy=ry.intersectionBy,Ba.intersectionWith=ry.intersectionWith,Ba.invert=zy.invert,Ba.invertBy=zy.invertBy,Ba.invokeMap=sy.invokeMap,Ba.iteratee=fy.iteratee,Ba.keyBy=sy.keyBy,Ba.keys=Ct,Ba.keysIn=zy.keysIn,Ba.map=sy.map,Ba.mapKeys=zy.mapKeys,Ba.mapValues=zy.mapValues,Ba.matches=fy.matches,Ba.matchesProperty=fy.matchesProperty,Ba.memoize=ly.memoize,Ba.merge=zy.merge,Ba.mergeWith=zy.mergeWith,Ba.method=fy.method,Ba.methodOf=fy.methodOf,Ba.mixin=Sy,Ba.negate=Bp,Ba.nthArg=fy.nthArg,Ba.omit=zy.omit,Ba.omitBy=zy.omitBy,Ba.once=ly.once,Ba.orderBy=sy.orderBy,Ba.over=fy.over,Ba.overArgs=ly.overArgs,Ba.overEvery=fy.overEvery,Ba.overSome=fy.overSome,Ba.partial=ly.partial,Ba.partialRight=ly.partialRight,Ba.partition=sy.partition,Ba.pick=zy.pick,Ba.pickBy=zy.pickBy,Ba.property=fy.property,Ba.propertyOf=fy.propertyOf,Ba.pull=ry.pull,Ba.pullAll=ry.pullAll,Ba.pullAllBy=ry.pullAllBy,Ba.pullAllWith=ry.pullAllWith,Ba.pullAt=ry.pullAt,Ba.range=fy.range,Ba.rangeRight=fy.rangeRight,Ba.rearg=ly.rearg,Ba.reject=sy.reject,Ba.remove=ry.remove,Ba.rest=ly.rest,Ba.reverse=ry.reverse,Ba.sampleSize=sy.sampleSize,Ba.set=zy.set,Ba.setWith=zy.setWith,Ba.shuffle=sy.shuffle,Ba.slice=ry.slice,Ba.sortBy=sy.sortBy,Ba.sortedUniq=ry.sortedUniq,Ba.sortedUniqBy=ry.sortedUniqBy,Ba.split=my.split,Ba.spread=ly.spread,Ba.tail=ry.tail,Ba.take=ry.take,Ba.takeRight=ry.takeRight,Ba.takeRightWhile=ry.takeRightWhile,Ba.takeWhile=ry.takeWhile,Ba.tap=gy.tap,Ba.throttle=ly.throttle,Ba.thru=Ym,Ba.toArray=cy.toArray,Ba.toPairs=zy.toPairs,Ba.toPairsIn=zy.toPairsIn,Ba.toPath=fy.toPath,Ba.toPlainObject=cy.toPlainObject,Ba.transform=zy.transform,Ba.unary=ly.unary,Ba.union=ry.union,Ba.unionBy=ry.unionBy,Ba.unionWith=ry.unionWith,Ba.uniq=ry.uniq,Ba.uniqBy=ry.uniqBy,Ba.uniqWith=ry.uniqWith,Ba.unset=zy.unset,Ba.unzip=ry.unzip,Ba.unzipWith=ry.unzipWith,Ba.update=zy.update,Ba.updateWith=zy.updateWith,Ba.values=zy.values,Ba.valuesIn=zy.valuesIn,Ba.without=ry.without,Ba.words=my.words,Ba.wrap=ly.wrap,Ba.xor=ry.xor,Ba.xorBy=ry.xorBy,Ba.xorWith=ry.xorWith,Ba.zip=ry.zip,Ba.zipObject=ry.zipObject,Ba.zipObjectDeep=ry.zipObjectDeep,Ba.zipWith=ry.zipWith,Ba.entries=zy.toPairs,Ba.entriesIn=zy.toPairsIn,Ba.extend=zy.assignIn,Ba.extendWith=zy.assignInWith,Sy(Ba,Ba),Ba.add=uy.add,Ba.attempt=fy.attempt,Ba.camelCase=my.camelCase,Ba.capitalize=my.capitalize,Ba.ceil=uy.ceil,Ba.clamp=py.clamp,Ba.clone=cy.clone,Ba.cloneDeep=cy.cloneDeep,Ba.cloneDeepWith=cy.cloneDeepWith,Ba.cloneWith=cy.cloneWith,Ba.conformsTo=cy.conformsTo,Ba.deburr=my.deburr,Ba.defaultTo=fy.defaultTo,Ba.divide=uy.divide,Ba.endsWith=my.endsWith,Ba.eq=cy.eq,Ba.escape=my.escape,Ba.escapeRegExp=my.escapeRegExp,Ba.every=sy.every,Ba.find=sy.find,Ba.findIndex=ry.findIndex,Ba.findKey=zy.findKey,Ba.findLast=sy.findLast,Ba.findLastIndex=ry.findLastIndex,Ba.findLastKey=zy.findLastKey,Ba.floor=uy.floor,Ba.forEach=sy.forEach,Ba.forEachRight=sy.forEachRight,Ba.forIn=zy.forIn,Ba.forInRight=zy.forInRight,Ba.forOwn=zy.forOwn,Ba.forOwnRight=zy.forOwnRight,Ba.get=zy.get,Ba.gt=cy.gt,Ba.gte=cy.gte,Ba.has=zy.has,Ba.hasIn=zy.hasIn,Ba.head=ry.head,Ba.identity=U,Ba.includes=sy.includes,Ba.indexOf=ry.indexOf,Ba.inRange=py.inRange,Ba.invoke=zy.invoke,Ba.isArguments=cy.isArguments,Ba.isArray=k,Ba.isArrayBuffer=cy.isArrayBuffer,Ba.isArrayLike=cy.isArrayLike,Ba.isArrayLikeObject=cy.isArrayLikeObject,Ba.isBoolean=cy.isBoolean,Ba.isBuffer=cy.isBuffer,Ba.isDate=cy.isDate,Ba.isElement=cy.isElement,Ba.isEmpty=cy.isEmpty,Ba.isEqual=cy.isEqual,Ba.isEqualWith=cy.isEqualWith,Ba.isError=cy.isError,Ba.isFinite=cy.isFinite,Ba.isFunction=cy.isFunction,Ba.isInteger=cy.isInteger,Ba.isLength=cy.isLength,Ba.isMap=cy.isMap,Ba.isMatch=cy.isMatch,Ba.isMatchWith=cy.isMatchWith,Ba.isNaN=cy.isNaN,Ba.isNative=cy.isNative,Ba.isNil=cy.isNil,Ba.isNull=cy.isNull,Ba.isNumber=cy.isNumber,Ba.isObject=T,Ba.isObjectLike=cy.isObjectLike,Ba.isPlainObject=cy.isPlainObject,Ba.isRegExp=cy.isRegExp,Ba.isSafeInteger=cy.isSafeInteger,Ba.isSet=cy.isSet,Ba.isString=cy.isString,Ba.isSymbol=cy.isSymbol,Ba.isTypedArray=cy.isTypedArray,Ba.isUndefined=cy.isUndefined,Ba.isWeakMap=cy.isWeakMap,Ba.isWeakSet=cy.isWeakSet,Ba.join=ry.join,Ba.kebabCase=my.kebabCase,Ba.last=el,Ba.lastIndexOf=ry.lastIndexOf,Ba.lowerCase=my.lowerCase,Ba.lowerFirst=my.lowerFirst,Ba.lt=cy.lt,Ba.lte=cy.lte,Ba.max=uy.max,Ba.maxBy=uy.maxBy,Ba.mean=uy.mean,Ba.meanBy=uy.meanBy,Ba.min=uy.min,Ba.minBy=uy.minBy,Ba.stubArray=fy.stubArray,Ba.stubFalse=fy.stubFalse,Ba.stubObject=fy.stubObject,Ba.stubString=fy.stubString,Ba.stubTrue=fy.stubTrue,Ba.multiply=uy.multiply,Ba.nth=ry.nth,Ba.noop=fy.noop,Ba.now=dy.now,Ba.pad=my.pad,Ba.padEnd=my.padEnd,Ba.padStart=my.padStart,Ba.parseInt=my.parseInt,Ba.random=py.random,Ba.reduce=sy.reduce,Ba.reduceRight=sy.reduceRight,Ba.repeat=my.repeat,Ba.replace=my.replace,Ba.result=zy.result,Ba.round=uy.round,Ba.sample=sy.sample,Ba.size=sy.size,Ba.snakeCase=my.snakeCase,Ba.some=sy.some,Ba.sortedIndex=ry.sortedIndex,Ba.sortedIndexBy=ry.sortedIndexBy,Ba.sortedIndexOf=ry.sortedIndexOf,Ba.sortedLastIndex=ry.sortedLastIndex,Ba.sortedLastIndexBy=ry.sortedLastIndexBy,Ba.sortedLastIndexOf=ry.sortedLastIndexOf,Ba.startCase=my.startCase,Ba.startsWith=my.startsWith,Ba.subtract=uy.subtract,Ba.sum=uy.sum,Ba.sumBy=uy.sumBy,Ba.template=my.template,Ba.times=fy.times,Ba.toFinite=cy.toFinite,Ba.toInteger=L,Ba.toLength=cy.toLength,Ba.toLower=my.toLower,Ba.toNumber=cy.toNumber,Ba.toSafeInteger=cy.toSafeInteger,Ba.toString=cy.toString,Ba.toUpper=my.toUpper,Ba.trim=my.trim,Ba.trimEnd=my.trimEnd,Ba.trimStart=my.trimStart,Ba.truncate=my.truncate,Ba.unescape=my.unescape,Ba.uniqueId=fy.uniqueId,Ba.upperCase=my.upperCase,Ba.upperFirst=my.upperFirst,Ba.each=sy.forEach,Ba.eachRight=sy.forEachRight,Ba.first=ry.head,Sy(Ba,function(){var a={};return md(Ba,function(e,t){Ey.call(Ba.prototype,t)||(a[t]=e)}),a}(),{chain:!1}),Ba.VERSION="4.17.11",(Ba.templateSettings=my.templateSettings).imports._=Ba,Xa(["bind","bindKey","curry","curryRight","partial","partialRight"],function(a){Ba[a].placeholder=Ba}),Xa(["drop","take"],function(a,e){qa.prototype[a]=function(t){t=void 0===t?1:Ty(L(t),0);var i=this.__filtered__&&!e?new qa(this):this.clone();return i.__filtered__?i.__takeCount__=Oy(t,i.__takeCount__):i.__views__.push({size:Oy(t,4294967295),type:a+(i.__dir__<0?"Right":"")}),i},qa.prototype[a+"Right"]=function(e){return this.reverse()[a](e).reverse()}}),Xa(["filter","map","takeWhile"],function(a,e){var t=e+1,i=1==t||3==t;qa.prototype[a]=function(a){var e=this.clone();return e.__iteratees__.push({iteratee:nd(a,3),type:t}),e.__filtered__=e.__filtered__||i,e}}),Xa(["head","last"],function(a,e){var t="take"+(e?"Right":"");qa.prototype[a]=function(){return this[t](1).value()[0]}}),Xa(["initial","tail"],function(a,e){var t="drop"+(e?"":"Right");qa.prototype[a]=function(){return this.__filtered__?new qa(this):this[t](1)}}),qa.prototype.compact=function(){return this.filter(U)},qa.prototype.find=function(a){return this.filter(a).head()},qa.prototype.findLast=function(a){return this.reverse().find(a)},qa.prototype.invokeMap=rt(function(a,e){return"function"==typeof a?new qa(this):this.map(function(t){return cu(t,a,e)})}),qa.prototype.reject=function(a){return this.filter(Bp(nd(a)))},qa.prototype.slice=function(a,e){a=L(a);var t=this;return t.__filtered__&&(a>0||e<0)?new qa(t):(a<0?t=t.takeRight(-a):a&&(t=t.drop(a)),void 0!==e&&(t=(e=L(e))<0?t.dropRight(-e):t.take(e-a)),t)},qa.prototype.takeRightWhile=function(a){return this.reverse().takeWhile(a).reverse()},qa.prototype.toArray=function(){return this.take(4294967295)},md(qa.prototype,function(a,e){var t=/^(?:filter|find|map|reject)|While$/.test(e),i=/^(?:head|last)$/.test(e),n=Ba[i?"take"+("last"==e?"Right":""):e],o=i||/^find/.test(e);n&&(Ba.prototype[e]=function(){var e=this.__wrapped__,r=i?[1]:arguments,s=e instanceof qa,d=r[0],l=s||k(e),c=function(a){var e=n.apply(Ba,Bi([a],r));return i&&u?e[0]:e};l&&t&&"function"==typeof d&&1!=d.length&&(s=l=!1);var u=this.__chain__,p=!!this.__actions__.length,z=o&&!u,g=s&&!p;if(!o&&l){e=g?e:new qa(this);var m=a.apply(e,r);return m.__actions__.push({func:Ym,args:[c],thisArg:void 0}),new Ma(m,u)}return z&&g?a.apply(this,r):(m=this.thru(c),z?i?m.value()[0]:m.value():m)})}),Xa(["pop","push","shift","sort","splice","unshift"],function(a){var e=qy[a],t=/^(?:push|sort|unshift)$/.test(a)?"tap":"thru",i=/^(?:pop|shift)$/.test(a);Ba.prototype[a]=function(){var a=arguments;if(i&&!this.__chain__){var n=this.value();return e.apply(k(n)?n:[],a)}return this[t](function(t){return e.apply(k(t)?t:[],a)})}}),md(qa.prototype,function(a,e){var t=Ba[e];if(t){var i=t.name+"";(Ta[i]||(Ta[i]=[])).push({name:e,func:t})}}),Ta[Te(void 0,2).name]=[{name:"wrapper",func:void 0}],qa.prototype.clone=yy,qa.prototype.reverse=wy,qa.prototype.value=xy,Ba.prototype.at=gy.at,Ba.prototype.chain=gy.wrapperChain,Ba.prototype.commit=gy.commit,Ba.prototype.next=gy.next,Ba.prototype.plant=gy.plant,Ba.prototype.reverse=gy.reverse,Ba.prototype.toJSON=Ba.prototype.valueOf=Ba.prototype.value=gy.value,Ba.prototype.first=Ba.prototype.head,Ay&&(Ba.prototype[Ay]=gy.toIterator);var Py=Ba;t.d(e,"add",function(){return A}),t.d(e,"after",function(){return W}),t.d(e,"ary",function(){return Qe}),t.d(e,"assign",function(){return Dt}),t.d(e,"assignIn",function(){return It}),t.d(e,"assignInWith",function(){return Wt}),t.d(e,"assignWith",function(){return Ut}),t.d(e,"at",function(){return Ni}),t.d(e,"attempt",function(){return tn}),t.d(e,"before",function(){return on}),t.d(e,"bind",function(){return sn}),t.d(e,"bindAll",function(){return dn}),t.d(e,"bindKey",function(){return cn}),t.d(e,"camelCase",function(){return ro}),t.d(e,"capitalize",function(){return On}),t.d(e,"castArray",function(){return so}),t.d(e,"ceil",function(){return uo}),t.d(e,"chain",function(){return po}),t.d(e,"chunk",function(){return mo}),t.d(e,"clamp",function(){return yo}),t.d(e,"clone",function(){return Hr}),t.d(e,"cloneDeep",function(){return Gr}),t.d(e,"cloneDeepWith",function(){return Qr}),t.d(e,"cloneWith",function(){return as}),t.d(e,"commit",function(){return es}),t.d(e,"compact",function(){return ts}),t.d(e,"concat",function(){return is}),t.d(e,"cond",function(){return rd}),t.d(e,"conforms",function(){return cd}),t.d(e,"conformsTo",function(){return ud}),t.d(e,"constant",function(){return Za}),t.d(e,"countBy",function(){return vd}),t.d(e,"create",function(){return kd}),t.d(e,"curry",function(){return xd}),t.d(e,"curryRight",function(){return Ad}),t.d(e,"debounce",function(){return Md}),t.d(e,"deburr",function(){return Dn}),t.d(e,"defaultTo",function(){return Cd}),t.d(e,"defaults",function(){return Fd}),t.d(e,"defaultsDeep",function(){return Hd}),t.d(e,"defer",function(){return Gd}),t.d(e,"delay",function(){return Zd}),t.d(e,"difference",function(){return al}),t.d(e,"differenceBy",function(){return tl}),t.d(e,"differenceWith",function(){return il}),t.d(e,"divide",function(){return nl}),t.d(e,"drop",function(){return ol}),t.d(e,"dropRight",function(){return rl}),t.d(e,"dropRightWhile",function(){return dl}),t.d(e,"dropWhile",function(){return ll}),t.d(e,"each",function(){return ul}),t.d(e,"eachRight",function(){return fl}),t.d(e,"endsWith",function(){return yl}),t.d(e,"entries",function(){return jl}),t.d(e,"entriesIn",function(){return _l}),t.d(e,"eq",function(){return at}),t.d(e,"escape",function(){return Al}),t.d(e,"escapeRegExp",function(){return Sl}),t.d(e,"every",function(){return Cl}),t.d(e,"extend",function(){return It}),t.d(e,"extendWith",function(){return Wt}),t.d(e,"fill",function(){return Bl}),t.d(e,"filter",function(){return Ll}),t.d(e,"find",function(){return Nl}),t.d(e,"findIndex",function(){return Ul}),t.d(e,"findKey",function(){return Hl}),t.d(e,"findLast",function(){return Zl}),t.d(e,"findLastIndex",function(){return Gl}),t.d(e,"findLastKey",function(){return Jl}),t.d(e,"first",function(){return Ql}),t.d(e,"flatMap",function(){return ec}),t.d(e,"flatMapDeep",function(){return ic}),t.d(e,"flatMapDepth",function(){return nc}),t.d(e,"flatten",function(){return Wi}),t.d(e,"flattenDeep",function(){return rc}),t.d(e,"flattenDepth",function(){return sc}),t.d(e,"flip",function(){return lc}),t.d(e,"floor",function(){return cc}),t.d(e,"flow",function(){return yc}),t.d(e,"flowRight",function(){return wc}),t.d(e,"forEach",function(){return ul}),t.d(e,"forEachRight",function(){return fl}),t.d(e,"forIn",function(){return bc}),t.d(e,"forInRight",function(){return hc}),t.d(e,"forOwn",function(){return vc}),t.d(e,"forOwnRight",function(){return kc}),t.d(e,"fromPairs",function(){return jc}),t.d(e,"functions",function(){return xc}),t.d(e,"functionsIn",function(){return qc}),t.d(e,"get",function(){return Di}),t.d(e,"groupBy",function(){return Ac}),t.d(e,"gt",function(){return Sc}),t.d(e,"gte",function(){return Pc}),t.d(e,"has",function(){return Rc}),t.d(e,"hasIn",function(){return Js}),t.d(e,"head",function(){return Ql}),t.d(e,"identity",function(){return U}),t.d(e,"inRange",function(){return $c}),t.d(e,"includes",function(){return Kc}),t.d(e,"indexOf",function(){return Vc}),t.d(e,"initial",function(){return Yc}),t.d(e,"intersection",function(){return Qc}),t.d(e,"intersectionBy",function(){return Xc}),t.d(e,"intersectionWith",function(){return au}),t.d(e,"invert",function(){return nu}),t.d(e,"invertBy",function(){return du}),t.d(e,"invoke",function(){return uu}),t.d(e,"invokeMap",function(){return pu}),t.d(e,"isArguments",function(){return ht}),t.d(e,"isArray",function(){return k}),t.d(e,"isArrayBuffer",function(){return fu}),t.d(e,"isArrayLike",function(){return lt}),t.d(e,"isArrayLikeObject",function(){return $d}),t.d(e,"isBoolean",function(){return wu}),t.d(e,"isBuffer",function(){return vt.a}),t.d(e,"isDate",function(){return ku}),t.d(e,"isElement",function(){return ju}),t.d(e,"isEmpty",function(){return Eu}),t.d(e,"isEqual",function(){return Au}),t.d(e,"isEqualWith",function(){return Tu}),t.d(e,"isError",function(){return en}),t.d(e,"isFinite",function(){return Su}),t.d(e,"isFunction",function(){return Y}),t.d(e,"isInteger",function(){return Pu}),t.d(e,"isLength",function(){return dt}),t.d(e,"isMap",function(){return Sr}),t.d(e,"isMatch",function(){return Mu}),t.d(e,"isMatchWith",function(){return Cu}),t.d(e,"isNaN",function(){return Fu}),t.d(e,"isNative",function(){return Iu}),t.d(e,"isNil",function(){return Wu}),t.d(e,"isNull",function(){return Uu}),t.d(e,"isNumber",function(){return Du}),t.d(e,"isObject",function(){return T}),t.d(e,"isObjectLike",function(){return f}),t.d(e,"isPlainObject",function(){return Qi}),t.d(e,"isRegExp",function(){return Vu}),t.d(e,"isSafeInteger",function(){return Gu}),t.d(e,"isSet",function(){return Rr}),t.d(e,"isString",function(){return Ic}),t.d(e,"isSymbol",function(){return w}),t.d(e,"isTypedArray",function(){return Et}),t.d(e,"isUndefined",function(){return Zu}),t.d(e,"isWeakMap",function(){return Qu}),t.d(e,"isWeakSet",function(){return ap}),t.d(e,"iteratee",function(){return tp}),t.d(e,"join",function(){return np}),t.d(e,"kebabCase",function(){return op}),t.d(e,"keyBy",function(){return rp}),t.d(e,"keys",function(){return Ct}),t.d(e,"keysIn",function(){return Lt}),t.d(e,"last",function(){return el}),t.d(e,"lastIndexOf",function(){return cp}),t.d(e,"lodash",function(){return Ba}),t.d(e,"lowerCase",function(){return up}),t.d(e,"lowerFirst",function(){return pp}),t.d(e,"lt",function(){return gp}),t.d(e,"lte",function(){return mp}),t.d(e,"map",function(){return ac}),t.d(e,"mapKeys",function(){return fp}),t.d(e,"mapValues",function(){return yp}),t.d(e,"matches",function(){return bp}),t.d(e,"matchesProperty",function(){return vp}),t.d(e,"max",function(){return jp}),t.d(e,"maxBy",function(){return _p}),t.d(e,"mean",function(){return Ap}),t.d(e,"meanBy",function(){return Tp}),t.d(e,"memoize",function(){return qi}),t.d(e,"merge",function(){return Op}),t.d(e,"mergeWith",function(){return Kd}),t.d(e,"method",function(){return Sp}),t.d(e,"methodOf",function(){return Pp}),t.d(e,"min",function(){return Mp}),t.d(e,"minBy",function(){return Cp}),t.d(e,"mixin",function(){return Rp}),t.d(e,"multiply",function(){return Dp}),t.d(e,"negate",function(){return Bp}),t.d(e,"next",function(){return Np}),t.d(e,"noop",function(){return Ea}),t.d(e,"now",function(){return Td}),t.d(e,"nth",function(){return Hp}),t.d(e,"nthArg",function(){return Vp}),t.d(e,"omit",function(){return Zp}),t.d(e,"omitBy",function(){return az}),t.d(e,"once",function(){return ez}),t.d(e,"orderBy",function(){return rz}),t.d(e,"over",function(){return dz}),t.d(e,"overArgs",function(){return uz}),t.d(e,"overEvery",function(){return pz}),t.d(e,"overSome",function(){return zz}),t.d(e,"pad",function(){return Mz}),t.d(e,"padEnd",function(){return Cz}),t.d(e,"padStart",function(){return Rz}),t.d(e,"parseInt",function(){return Bz}),t.d(e,"partial",function(){return Lz}),t.d(e,"partialRight",function(){return Wz}),t.d(e,"partition",function(){return Uz}),t.d(e,"pick",function(){return Kz}),t.d(e,"pickBy",function(){return Xp}),t.d(e,"plant",function(){return Hz}),t.d(e,"property",function(){return id}),t.d(e,"propertyOf",function(){return Vz}),t.d(e,"pull",function(){return Qz}),t.d(e,"pullAll",function(){return Jz}),t.d(e,"pullAllBy",function(){return Xz}),t.d(e,"pullAllWith",function(){return ag}),t.d(e,"pullAt",function(){return ig}),t.d(e,"random",function(){return cg}),t.d(e,"range",function(){return mg}),t.d(e,"rangeRight",function(){return fg}),t.d(e,"rearg",function(){return yg}),t.d(e,"reduce",function(){return bg}),t.d(e,"reduceRight",function(){return vg}),t.d(e,"reject",function(){return kg}),t.d(e,"remove",function(){return jg}),t.d(e,"repeat",function(){return _g}),t.d(e,"replace",function(){return xg}),t.d(e,"rest",function(){return Eg}),t.d(e,"result",function(){return Ag}),t.d(e,"reverse",function(){return Og}),t.d(e,"round",function(){return Sg}),t.d(e,"sample",function(){return Cg}),t.d(e,"sampleSize",function(){return Bg}),t.d(e,"set",function(){return $g}),t.d(e,"setWith",function(){return Lg}),t.d(e,"shuffle",function(){return Ug}),t.d(e,"size",function(){return Hg}),t.d(e,"slice",function(){return Vg}),t.d(e,"snakeCase",function(){return Yg}),t.d(e,"some",function(){return Zg}),t.d(e,"sortBy",function(){return Jg}),t.d(e,"sortedIndex",function(){return nm}),t.d(e,"sortedIndexBy",function(){return om}),t.d(e,"sortedIndexOf",function(){return rm}),t.d(e,"sortedLastIndex",function(){return sm}),t.d(e,"sortedLastIndexBy",function(){return dm}),t.d(e,"sortedLastIndexOf",function(){return lm}),t.d(e,"sortedUniq",function(){return um}),t.d(e,"sortedUniqBy",function(){return pm}),t.d(e,"split",function(){return gm}),t.d(e,"spread",function(){return ym}),t.d(e,"startCase",function(){return wm}),t.d(e,"startsWith",function(){return bm}),t.d(e,"stubArray",function(){return Oo}),t.d(e,"stubFalse",function(){return Bu.a}),t.d(e,"stubObject",function(){return hm}),t.d(e,"stubString",function(){return vm}),t.d(e,"stubTrue",function(){return km}),t.d(e,"subtract",function(){return jm}),t.d(e,"sum",function(){return _m}),t.d(e,"sumBy",function(){return xm}),t.d(e,"tail",function(){return qm}),t.d(e,"take",function(){return Em}),t.d(e,"takeRight",function(){return Am}),t.d(e,"takeRightWhile",function(){return Tm}),t.d(e,"takeWhile",function(){return Om}),t.d(e,"tap",function(){return Sm}),t.d(e,"template",function(){return Km}),t.d(e,"templateSettings",function(){return Bm}),t.d(e,"throttle",function(){return Vm}),t.d(e,"thru",function(){return Ym}),t.d(e,"times",function(){return Qm}),t.d(e,"toArray",function(){return Up}),t.d(e,"toFinite",function(){return $}),t.d(e,"toInteger",function(){return L}),t.d(e,"toIterator",function(){return Xm}),t.d(e,"toJSON",function(){return ef}),t.d(e,"toLength",function(){return Dl}),t.d(e,"toLower",function(){return tf}),t.d(e,"toNumber",function(){return D}),t.d(e,"toPairs",function(){return jl}),t.d(e,"toPairsIn",function(){return _l}),t.d(e,"toPath",function(){return nf}),t.d(e,"toPlainObject",function(){return Id}),t.d(e,"toSafeInteger",function(){return rf}),t.d(e,"toString",function(){return Si}),t.d(e,"toUpper",function(){return sf}),t.d(e,"transform",function(){return df}),t.d(e,"trim",function(){return pf}),t.d(e,"trimEnd",function(){return gf}),t.d(e,"trimStart",function(){return ff}),t.d(e,"truncate",function(){return hf}),t.d(e,"unary",function(){return vf}),t.d(e,"unescape",function(){return xf}),t.d(e,"union",function(){return Tf}),t.d(e,"unionBy",function(){return Of}),t.d(e,"unionWith",function(){return Sf}),t.d(e,"uniq",function(){return Pf}),t.d(e,"uniqBy",function(){return Mf}),t.d(e,"uniqWith",function(){return Cf}),t.d(e,"uniqueId",function(){return Df}),t.d(e,"unset",function(){return Ff}),t.d(e,"unzip",function(){return $f}),t.d(e,"unzipWith",function(){return Lf}),t.d(e,"update",function(){return Wf}),t.d(e,"updateWith",function(){return Uf}),t.d(e,"upperCase",function(){return Nf}),t.d(e,"upperFirst",function(){return Tn}),t.d(e,"value",function(){return ef}),t.d(e,"valueOf",function(){return ef}),t.d(e,"values",function(){return Uc}),t.d(e,"valuesIn",function(){return Kf}),t.d(e,"without",function(){return Hf}),t.d(e,"words",function(){return io}),t.d(e,"wrap",function(){return Vf}),t.d(e,"wrapperAt",function(){return Yf}),t.d(e,"wrapperChain",function(){return Gf}),t.d(e,"wrapperCommit",function(){return es}),t.d(e,"wrapperLodash",function(){return Ba}),t.d(e,"wrapperNext",function(){return Np}),t.d(e,"wrapperPlant",function(){return Hz}),t.d(e,"wrapperReverse",function(){return Zf}),t.d(e,"wrapperToIterator",function(){return Xm}),t.d(e,"wrapperValue",function(){return ef}),t.d(e,"xor",function(){return Qf}),t.d(e,"xorBy",function(){return Xf}),t.d(e,"xorWith",function(){return ay}),t.d(e,"zip",function(){return ey}),t.d(e,"zipObject",function(){return iy}),t.d(e,"zipObjectDeep",function(){return ny}),t.d(e,"zipWith",function(){return oy}),t.d(e,"default",function(){return Py})},function(a,e){var t=Array.isArray;a.exports=t},,function(a,e,t){var i=t(45),n="object"==typeof self&&self&&self.Object===Object&&self,o=i||n||Function("return this")();a.exports=o},,,function(a,e){a.exports=function(a){var e=typeof a;return null!=a&&("object"==e||"function"==e)}},function(a,e){a.exports=function(a){return null!=a&&"object"==typeof a}},,function(a,e,t){"use strict";var i=t(296),n="object"==typeof self&&self&&self.Object===Object&&self,o=i.a||n||Function("return this")();e.a=o},function(a,e,t){var i=t(14),n=t(74),o=t(75),r="[object Null]",s="[object Undefined]",d=i?i.toStringTag:void 0;a.exports=function(a){return null==a?void 0===a?s:r:d&&d in Object(a)?n(a):o(a)}},function(a,e,t){var i=t(89),n=t(92);a.exports=function(a,e){var t=n(a,e);return i(t)?t:void 0}},function(a,e,t){var i=t(5).Symbol;a.exports=i},function(a,e){var t;t=function(){return this}();try{t=t||Function("return this")()||(0,eval)("this")}catch(a){"object"==typeof window&&(t=window)}a.exports=t},function(a,e,t){var i=t(13)(Object,"create");a.exports=i},function(a,e,t){var i=t(26);a.exports=function(a,e){for(var t=a.length;t--;)if(i(a[t][0],e))return t;return-1}},function(a,e,t){var i=t(103);a.exports=function(a,e){var t=a.__data__;return i(e)?t["string"==typeof e?"string":"hash"]:t.map}},function(a,e,t){var i=t(12),n=t(9),o="[object Symbol]";a.exports=function(a){return"symbol"==typeof a||n(a)&&i(a)==o}},function(a,e,t){var i=t(19),n=1/0;a.exports=function(a){if("string"==typeof a||i(a))return a;var e=a+"";return"0"==e&&1/a==-n?"-0":e}},function(a,e,t){var i=t(39);a.exports=function(a,e,t){var n=null==a?void 0:i(a,e);return void 0===n?t:n}},function(a,e,t){var i=t(97),n=t(98),o=t(99),r=t(100),s=t(101);function d(a){var e=-1,t=null==a?0:a.length;for(this.clear();++e<t;){var i=a[e];this.set(i[0],i[1])}}d.prototype.clear=i,d.prototype.delete=n,d.prototype.get=o,d.prototype.has=r,d.prototype.set=s,a.exports=d},function(a,e,t){var i=t(25),n=t(62);a.exports=function(a){return null!=a&&n(a.length)&&!i(a)}},function(a,e,t){var i=t(3),n=t(40),o=t(84),r=t(64);a.exports=function(a,e){return i(a)?a:n(a,e)?[a]:o(r(a))}},function(a,e,t){var i=t(12),n=t(8),o="[object AsyncFunction]",r="[object Function]",s="[object GeneratorFunction]",d="[object Proxy]";a.exports=function(a){if(!n(a))return!1;var e=i(a);return e==r||e==s||e==o||e==d}},function(a,e){a.exports=function(a,e){return a===e||a!=a&&e!=e}},function(a,e,t){var i=t(112),n=t(130),o=t(23);a.exports=function(a){return o(a)?i(a):n(a)}},,,function(a,e){a.exports=function(a,e){for(var t=-1,i=null==a?0:a.length,n=Array(i);++t<i;)n[t]=e(a[t],t,a);return n}},,,function(a,e,t){"use strict";(function(a){var i=t(296),n="object"==typeof exports&&exports&&!exports.nodeType&&exports,o=n&&"object"==typeof a&&a&&!a.nodeType&&a,r=o&&o.exports===n&&i.a.process,s=function(){try{var a=o&&o.require&&o.require("util").types;return a||r&&r.binding&&r.binding("util")}catch(a){}}();e.a=s}).call(this,t(293)(a))},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t(2),n=function(a){return a&&a.__esModule?a:{default:a}}(t(242));var o=function(){return[]},r=function(a){this._hasScore=!1,this._identifier="",this._hasMarks=!1,this._marker=o,this.score=0,this.text="",this.marks=[],(0,i.isUndefined)(a)&&(a={}),(0,i.isUndefined)(a.score)||this.setScore(a.score),(0,i.isUndefined)(a.text)||this.setText(a.text),(0,i.isUndefined)(a.marks)||this.setMarks(a.marks)};r.prototype.hasScore=function(){return this._hasScore},r.prototype.getScore=function(){return this.score},r.prototype.setScore=function(a){(0,i.isNumber)(a)&&(this.score=a,this._hasScore=!0)},r.prototype.hasText=function(){return""!==this.text},r.prototype.getText=function(){return this.text},r.prototype.setText=function(a){(0,i.isUndefined)(a)&&(a=""),this.text=a},r.prototype.getMarks=function(){return this.marks},r.prototype.setMarks=function(a){(0,i.isArray)(a)&&(this.marks=a,this._hasMarks=a.length>0)},r.prototype.setIdentifier=function(a){this._identifier=a},r.prototype.getIdentifier=function(){return this._identifier},r.prototype.setMarker=function(a){this._marker=a},r.prototype.hasMarker=function(){return this._hasMarks&&this._marker!==this.emptyMarker},r.prototype.getMarker=function(){return this._marker},r.prototype.setHasMarks=function(a){this._hasMarks=a},r.prototype.hasMarks=function(){return this._hasMarks},r.prototype.serialize=function(){return{_parseClass:"AssessmentResult",identifier:this._identifier,score:this.score,text:this.text,marks:this.marks.map(function(a){return a.serialize()})}},r.parse=function(a){var e=new r({text:a.text,score:a.score,marks:a.marks.map(function(a){return n.default.parse(a)})});return e.setIdentifier(a.identifier),e},e.default=r},function(a,e,t){var i=t(13)(t(5),"Map");a.exports=i},function(a,e,t){"use strict";(function(a){var i=t(11),n=t(138),o="object"==typeof exports&&exports&&!exports.nodeType&&exports,r=o&&"object"==typeof a&&a&&!a.nodeType&&a,s=r&&r.exports===o?i.a.Buffer:void 0,d=(s?s.isBuffer:void 0)||n.a;e.a=d}).call(this,t(293)(a))},function(a,e,t){var i=t(86),n=t(102),o=t(104),r=t(105),s=t(106);function d(a){var e=-1,t=null==a?0:a.length;for(this.clear();++e<t;){var i=a[e];this.set(i[0],i[1])}}d.prototype.clear=i,d.prototype.delete=n,d.prototype.get=o,d.prototype.has=r,d.prototype.set=s,a.exports=d},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t(1031);Object.keys(i).forEach(function(a){"default"!==a&&"__esModule"!==a&&Object.defineProperty(e,a,{enumerable:!0,get:function(){return i[a]}})})},function(a,e,t){var i=t(24),n=t(20);a.exports=function(a,e){for(var t=0,o=(e=i(e,a)).length;null!=a&&t<o;)a=a[n(e[t++])];return t&&t==o?a:void 0}},function(a,e,t){var i=t(3),n=t(19),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/;a.exports=function(a,e){if(i(a))return!1;var t=typeof a;return!("number"!=t&&"symbol"!=t&&"boolean"!=t&&null!=a&&!n(a))||r.test(a)||!o.test(a)||null!=e&&a in Object(e)}},function(a,e){a.exports=function(a){return a.webpackPolyfill||(a.deprecate=function(){},a.paths=[],a.children||(a.children=[]),Object.defineProperty(a,"loaded",{enumerable:!0,get:function(){return a.l}}),Object.defineProperty(a,"id",{enumerable:!0,get:function(){return a.i}}),a.webpackPolyfill=1),a}},,function(a,e,t){var i=t(185),n=t(35),o=t(186),r=t(151),s=t(152),d=t(12),l=t(56),c=l(i),u=l(n),p=l(o),z=l(r),g=l(s),m=d;(i&&"[object DataView]"!=m(new i(new ArrayBuffer(1)))||n&&"[object Map]"!=m(new n)||o&&"[object Promise]"!=m(o.resolve())||r&&"[object Set]"!=m(new r)||s&&"[object WeakMap]"!=m(new s))&&(m=function(a){var e=d(a),t="[object Object]"==e?a.constructor:void 0,i=t?l(t):"";if(i)switch(i){case c:return"[object DataView]";case u:return"[object Map]";case p:return"[object Promise]";case z:return"[object Set]";case g:return"[object WeakMap]"}return e}),a.exports=m},,function(a,e,t){(function(e){var t="object"==typeof e&&e&&e.Object===Object&&e;a.exports=t}).call(this,t(15))},function(a,e,t){var i=t(175),n=t(9),o=Object.prototype,r=o.hasOwnProperty,s=o.propertyIsEnumerable,d=i(function(){return arguments}())?i:function(a){return n(a)&&r.call(a,"callee")&&!s.call(a,"callee")};a.exports=d},function(a,e,t){(function(a){var i=t(5),n=t(176),o="object"==typeof e&&e&&!e.nodeType&&e,r=o&&"object"==typeof a&&a&&!a.nodeType&&a,s=r&&r.exports===o?i.Buffer:void 0,d=(s?s.isBuffer:void 0)||n;a.exports=d}).call(this,t(41)(a))},,,,,,,function(a,e){var t=Object.prototype;a.exports=function(a){var e=a&&a.constructor;return a===("function"==typeof e&&e.prototype||t)}},,function(a,e){var t=Function.prototype.toString;a.exports=function(a){if(null!=a){try{return t.call(a)}catch(a){}try{return a+""}catch(a){}}return""}},function(a,e){a.exports=function(a){return a}},,,,,function(a,e){var t=9007199254740991;a.exports=function(a){return"number"==typeof a&&a>-1&&a%1==0&&a<=t}},function(a,e){a.exports=function(a){return function(e){return a(e)}}},function(a,e,t){var i=t(76);a.exports=function(a){return null==a?"":i(a)}},function(a,e){var t=9007199254740991,i=/^(?:0|[1-9]\d*)$/;a.exports=function(a,e){var n=typeof a;return!!(e=null==e?t:e)&&("number"==n||"symbol"!=n&&i.test(a))&&a>-1&&a%1==0&&a<e}},function(a,e,t){var i=t(177),n=t(63),o=t(72),r=o&&o.isTypedArray,s=r?n(r):i;a.exports=s},function(a,e,t){var i=t(22),n=t(180),o=t(181),r=t(182),s=t(183),d=t(184);function l(a){var e=this.__data__=new i(a);this.size=e.size}l.prototype.clear=n,l.prototype.delete=o,l.prototype.get=r,l.prototype.has=s,l.prototype.set=d,a.exports=l},,,,,function(a,e,t){(function(a){var i=t(45),n="object"==typeof e&&e&&!e.nodeType&&e,o=n&&"object"==typeof a&&a&&!a.nodeType&&a,r=o&&o.exports===n&&i.process,s=function(){try{var a=o&&o.require&&o.require("util").types;return a||r&&r.binding&&r.binding("util")}catch(a){}}();a.exports=s}).call(this,t(41)(a))},function(a,e,t){(function(a,i){var n=/%[sdj%]/g;e.format=function(a){if(!y(a)){for(var e=[],t=0;t<arguments.length;t++)e.push(s(arguments[t]));return e.join(" ")}t=1;for(var i=arguments,o=i.length,r=String(a).replace(n,function(a){if("%%"===a)return"%";if(t>=o)return a;switch(a){case"%s":return String(i[t++]);case"%d":return Number(i[t++]);case"%j":try{return JSON.stringify(i[t++])}catch(a){return"[Circular]"}default:return a}}),d=i[t];t<o;d=i[++t])m(d)||!h(d)?r+=" "+d:r+=" "+s(d);return r},e.deprecate=function(t,n){if(w(a.process))return function(){return e.deprecate(t,n).apply(this,arguments)};if(!0===i.noDeprecation)return t;var o=!1;return function(){if(!o){if(i.throwDeprecation)throw new Error(n);i.traceDeprecation?console.trace(n):console.error(n),o=!0}return t.apply(this,arguments)}};var o,r={};function s(a,t){var i={seen:[],stylize:l};return arguments.length>=3&&(i.depth=arguments[2]),arguments.length>=4&&(i.colors=arguments[3]),g(t)?i.showHidden=t:t&&e._extend(i,t),w(i.showHidden)&&(i.showHidden=!1),w(i.depth)&&(i.depth=2),w(i.colors)&&(i.colors=!1),w(i.customInspect)&&(i.customInspect=!0),i.colors&&(i.stylize=d),c(i,a,i.depth)}function d(a,e){var t=s.styles[e];return t?"["+s.colors[t][0]+"m"+a+"["+s.colors[t][1]+"m":a}function l(a,e){return a}function c(a,t,i){if(a.customInspect&&t&&j(t.inspect)&&t.inspect!==e.inspect&&(!t.constructor||t.constructor.prototype!==t)){var n=t.inspect(i,a);return y(n)||(n=c(a,n,i)),n}var o=function(a,e){if(w(e))return a.stylize("undefined","undefined");if(y(e)){var t="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return a.stylize(t,"string")}if(f(e))return a.stylize(""+e,"number");if(g(e))return a.stylize(""+e,"boolean");if(m(e))return a.stylize("null","null")}(a,t);if(o)return o;var r=Object.keys(t),s=function(a){var e={};return a.forEach(function(a,t){e[a]=!0}),e}(r);if(a.showHidden&&(r=Object.getOwnPropertyNames(t)),k(t)&&(r.indexOf("message")>=0||r.indexOf("description")>=0))return u(t);if(0===r.length){if(j(t)){var d=t.name?": "+t.name:"";return a.stylize("[Function"+d+"]","special")}if(b(t))return a.stylize(RegExp.prototype.toString.call(t),"regexp");if(v(t))return a.stylize(Date.prototype.toString.call(t),"date");if(k(t))return u(t)}var l,h="",_=!1,x=["{","}"];(z(t)&&(_=!0,x=["[","]"]),j(t))&&(h=" [Function"+(t.name?": "+t.name:"")+"]");return b(t)&&(h=" "+RegExp.prototype.toString.call(t)),v(t)&&(h=" "+Date.prototype.toUTCString.call(t)),k(t)&&(h=" "+u(t)),0!==r.length||_&&0!=t.length?i<0?b(t)?a.stylize(RegExp.prototype.toString.call(t),"regexp"):a.stylize("[Object]","special"):(a.seen.push(t),l=_?function(a,e,t,i,n){for(var o=[],r=0,s=e.length;r<s;++r)E(e,String(r))?o.push(p(a,e,t,i,String(r),!0)):o.push("");return n.forEach(function(n){n.match(/^\d+$/)||o.push(p(a,e,t,i,n,!0))}),o}(a,t,i,s,r):r.map(function(e){return p(a,t,i,s,e,_)}),a.seen.pop(),function(a,e,t){if(a.reduce(function(a,e){return 0,e.indexOf("\n")>=0&&0,a+e.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60)return t[0]+(""===e?"":e+"\n ")+" "+a.join(",\n ")+" "+t[1];return t[0]+e+" "+a.join(", ")+" "+t[1]}(l,h,x)):x[0]+h+x[1]}function u(a){return"["+Error.prototype.toString.call(a)+"]"}function p(a,e,t,i,n,o){var r,s,d;if((d=Object.getOwnPropertyDescriptor(e,n)||{value:e[n]}).get?s=d.set?a.stylize("[Getter/Setter]","special"):a.stylize("[Getter]","special"):d.set&&(s=a.stylize("[Setter]","special")),E(i,n)||(r="["+n+"]"),s||(a.seen.indexOf(d.value)<0?(s=m(t)?c(a,d.value,null):c(a,d.value,t-1)).indexOf("\n")>-1&&(s=o?s.split("\n").map(function(a){return" "+a}).join("\n").substr(2):"\n"+s.split("\n").map(function(a){return" "+a}).join("\n")):s=a.stylize("[Circular]","special")),w(r)){if(o&&n.match(/^\d+$/))return s;(r=JSON.stringify(""+n)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(r=r.substr(1,r.length-2),r=a.stylize(r,"name")):(r=r.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),r=a.stylize(r,"string"))}return r+": "+s}function z(a){return Array.isArray(a)}function g(a){return"boolean"==typeof a}function m(a){return null===a}function f(a){return"number"==typeof a}function y(a){return"string"==typeof a}function w(a){return void 0===a}function b(a){return h(a)&&"[object RegExp]"===_(a)}function h(a){return"object"==typeof a&&null!==a}function v(a){return h(a)&&"[object Date]"===_(a)}function k(a){return h(a)&&("[object Error]"===_(a)||a instanceof Error)}function j(a){return"function"==typeof a}function _(a){return Object.prototype.toString.call(a)}function x(a){return a<10?"0"+a.toString(10):a.toString(10)}e.debuglog=function(a){if(w(o)&&(o=i.env.NODE_DEBUG||""),a=a.toUpperCase(),!r[a])if(new RegExp("\\b"+a+"\\b","i").test(o)){var t=i.pid;r[a]=function(){var i=e.format.apply(e,arguments);console.error("%s %d: %s",a,t,i)}}else r[a]=function(){};return r[a]},e.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.isArray=z,e.isBoolean=g,e.isNull=m,e.isNullOrUndefined=function(a){return null==a},e.isNumber=f,e.isString=y,e.isSymbol=function(a){return"symbol"==typeof a},e.isUndefined=w,e.isRegExp=b,e.isObject=h,e.isDate=v,e.isError=k,e.isFunction=j,e.isPrimitive=function(a){return null===a||"boolean"==typeof a||"number"==typeof a||"string"==typeof a||"symbol"==typeof a||void 0===a},e.isBuffer=t(1071);var q=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function E(a,e){return Object.prototype.hasOwnProperty.call(a,e)}e.log=function(){console.log("%s - %s",function(){var a=new Date,e=[x(a.getHours()),x(a.getMinutes()),x(a.getSeconds())].join(":");return[a.getDate(),q[a.getMonth()],e].join(" ")}(),e.format.apply(e,arguments))},e.inherits=t(244),e._extend=function(a,e){if(!e||!h(e))return a;for(var t=Object.keys(e),i=t.length;i--;)a[t[i]]=e[t[i]];return a}}).call(this,t(15),t(198))},function(a,e,t){var i=t(14),n=Object.prototype,o=n.hasOwnProperty,r=n.toString,s=i?i.toStringTag:void 0;a.exports=function(a){var e=o.call(a,s),t=a[s];try{a[s]=void 0;var i=!0}catch(a){}var n=r.call(a);return i&&(e?a[s]=t:delete a[s]),n}},function(a,e){var t=Object.prototype.toString;a.exports=function(a){return t.call(a)}},function(a,e,t){var i=t(14),n=t(30),o=t(3),r=t(19),s=1/0,d=i?i.prototype:void 0,l=d?d.toString:void 0;a.exports=function a(e){if("string"==typeof e)return e;if(o(e))return n(e,a)+"";if(r(e))return l?l.call(e):"";var t=e+"";return"0"==t&&1/e==-s?"-0":t}},function(a,e){a.exports=function(a,e){for(var t=-1,i=e.length,n=a.length;++t<i;)a[n+t]=e[t];return a}},function(a,e,t){var i=t(141),n=t(120),o=Object.prototype.propertyIsEnumerable,r=Object.getOwnPropertySymbols,s=r?function(a){return null==a?[]:(a=Object(a),i(r(a),function(e){return o.call(a,e)}))}:n;a.exports=s},,,function(a,e,t){var i=t(37),n="Expected a function";function o(a,e){if("function"!=typeof a||null!=e&&"function"!=typeof e)throw new TypeError(n);var t=function(){var i=arguments,n=e?e.apply(this,i):i[0],o=t.cache;if(o.has(n))return o.get(n);var r=a.apply(this,i);return t.cache=o.set(n,r)||o,r};return t.cache=new(o.Cache||i),t}o.Cache=i,a.exports=o},,function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function a(a,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(a,i.key,i)}}return function(e,t,i){return t&&a(e.prototype,t),i&&a(e,i),e}}();var n=function(){function a(){!function(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}(this,a)}return i(a,[{key:"getResult",value:function(a,e,t){throw"The method getResult is not implemented"}},{key:"isApplicable",value:function(a){return!0}}]),a}();e.default=n},function(a,e,t){var i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,n=/\\(\\)?/g,o=t(85)(function(a){var e=[];return 46===a.charCodeAt(0)&&e.push(""),a.replace(i,function(a,t,i,o){e.push(i?o.replace(n,"$1"):t||a)}),e});a.exports=o},function(a,e,t){var i=t(81),n=500;a.exports=function(a){var e=i(a,function(a){return t.size===n&&t.clear(),a}),t=e.cache;return e}},function(a,e,t){var i=t(87),n=t(22),o=t(35);a.exports=function(){this.size=0,this.__data__={hash:new i,map:new(o||n),string:new i}}},function(a,e,t){var i=t(88),n=t(93),o=t(94),r=t(95),s=t(96);function d(a){var e=-1,t=null==a?0:a.length;for(this.clear();++e<t;){var i=a[e];this.set(i[0],i[1])}}d.prototype.clear=i,d.prototype.delete=n,d.prototype.get=o,d.prototype.has=r,d.prototype.set=s,a.exports=d},function(a,e,t){var i=t(16);a.exports=function(){this.__data__=i?i(null):{},this.size=0}},function(a,e,t){var i=t(25),n=t(90),o=t(8),r=t(56),s=/^\[object .+?Constructor\]$/,d=Function.prototype,l=Object.prototype,c=d.toString,u=l.hasOwnProperty,p=RegExp("^"+c.call(u).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");a.exports=function(a){return!(!o(a)||n(a))&&(i(a)?p:s).test(r(a))}},function(a,e,t){var i=t(91),n=function(){var a=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||"");return a?"Symbol(src)_1."+a:""}();a.exports=function(a){return!!n&&n in a}},function(a,e,t){var i=t(5)["__core-js_shared__"];a.exports=i},function(a,e){a.exports=function(a,e){return null==a?void 0:a[e]}},function(a,e){a.exports=function(a){var e=this.has(a)&&delete this.__data__[a];return this.size-=e?1:0,e}},function(a,e,t){var i=t(16),n="__lodash_hash_undefined__",o=Object.prototype.hasOwnProperty;a.exports=function(a){var e=this.__data__;if(i){var t=e[a];return t===n?void 0:t}return o.call(e,a)?e[a]:void 0}},function(a,e,t){var i=t(16),n=Object.prototype.hasOwnProperty;a.exports=function(a){var e=this.__data__;return i?void 0!==e[a]:n.call(e,a)}},function(a,e,t){var i=t(16),n="__lodash_hash_undefined__";a.exports=function(a,e){var t=this.__data__;return this.size+=this.has(a)?0:1,t[a]=i&&void 0===e?n:e,this}},function(a,e){a.exports=function(){this.__data__=[],this.size=0}},function(a,e,t){var i=t(17),n=Array.prototype.splice;a.exports=function(a){var e=this.__data__,t=i(e,a);return!(t<0||(t==e.length-1?e.pop():n.call(e,t,1),--this.size,0))}},function(a,e,t){var i=t(17);a.exports=function(a){var e=this.__data__,t=i(e,a);return t<0?void 0:e[t][1]}},function(a,e,t){var i=t(17);a.exports=function(a){return i(this.__data__,a)>-1}},function(a,e,t){var i=t(17);a.exports=function(a,e){var t=this.__data__,n=i(t,a);return n<0?(++this.size,t.push([a,e])):t[n][1]=e,this}},function(a,e,t){var i=t(18);a.exports=function(a){var e=i(this,a).delete(a);return this.size-=e?1:0,e}},function(a,e){a.exports=function(a){var e=typeof a;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==a:null===a}},function(a,e,t){var i=t(18);a.exports=function(a){return i(this,a).get(a)}},function(a,e,t){var i=t(18);a.exports=function(a){return i(this,a).has(a)}},function(a,e,t){var i=t(18);a.exports=function(a,e){var t=i(this,a),n=t.size;return t.set(a,e),this.size+=t.size==n?0:1,this}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a){return a.split("_")[0]}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a){return a=(a=(a=a.replace(/\s{2,}/g," ")).replace(/\s\./g,".")).replace(/^\s+|\s+$/g,"")}},,,,function(a,e,t){var i=t(174),n=t(46),o=t(3),r=t(47),s=t(65),d=t(66),l=Object.prototype.hasOwnProperty;a.exports=function(a,e){var t=o(a),c=!t&&n(a),u=!t&&!c&&r(a),p=!t&&!c&&!u&&d(a),z=t||c||u||p,g=z?i(a.length,String):[],m=g.length;for(var f in a)!e&&!l.call(a,f)||z&&("length"==f||u&&("offset"==f||"parent"==f)||p&&("buffer"==f||"byteLength"==f||"byteOffset"==f)||s(f,m))||g.push(f);return g}},function(a,e,t){var i=t(215),n=t(9);a.exports=function a(e,t,o,r,s){return e===t||(null==e||null==t||!n(e)&&!n(t)?e!=e&&t!=t:i(e,t,o,r,a,s))}},,,,,function(a,e){a.exports=function(a,e){return function(t){return a(e(t))}}},function(a,e,t){var i=t(77),n=t(3);a.exports=function(a,e,t){var o=e(a);return n(a)?o:i(o,t(a))}},function(a,e){a.exports=function(){return[]}},,,,,,,,,function(a,e,t){var i=t(208),n=t(210)(i);a.exports=n},function(a,e,t){var i=t(54),n=t(178),o=Object.prototype.hasOwnProperty;a.exports=function(a){if(!i(a))return n(a);var e=[];for(var t in Object(a))o.call(a,t)&&"constructor"!=t&&e.push(t);return e}},function(a,e,t){var i=t(148),n=t(218),o=t(149),r=1,s=2;a.exports=function(a,e,t,d,l,c){var u=t&r,p=a.length,z=e.length;if(p!=z&&!(u&&z>p))return!1;var g=c.get(a);if(g&&c.get(e))return g==e;var m=-1,f=!0,y=t&s?new i:void 0;for(c.set(a,e),c.set(e,a);++m<p;){var w=a[m],b=e[m];if(d)var h=u?d(b,w,m,e,a,c):d(w,b,m,a,e,c);if(void 0!==h){if(h)continue;f=!1;break}if(y){if(!n(e,function(a,e){if(!o(y,e)&&(w===a||l(w,a,t,d,c)))return y.push(e)})){f=!1;break}}else if(w!==b&&!l(w,b,t,d,c)){f=!1;break}}return c.delete(a),c.delete(e),f}},function(a,e,t){var i=t(5).Uint8Array;a.exports=i},function(a,e,t){var i=t(119),n=t(78),o=t(27);a.exports=function(a){return i(a,o,n)}},function(a,e,t){var i=t(8);a.exports=function(a){return a==a&&!i(a)}},function(a,e){a.exports=function(a,e){return function(t){return null!=t&&t[a]===e&&(void 0!==e||a in Object(t))}}},,,function(a,e,t){"use strict";e.a=function(){return!1}},,function(a,e,t){var i=t(213),n=t(223),o=t(57),r=t(3),s=t(226);a.exports=function(a){return"function"==typeof a?a:null==a?o:"object"==typeof a?r(a)?n(a[0],a[1]):i(a):s(a)}},function(a,e){a.exports=function(a,e){for(var t=-1,i=null==a?0:a.length,n=0,o=[];++t<i;){var r=a[t];e(r,t,a)&&(o[n++]=r)}return o}},,,,,,,function(a,e,t){var i=t(37),n=t(216),o=t(217);function r(a){var e=-1,t=null==a?0:a.length;for(this.__data__=new i;++e<t;)this.add(a[e])}r.prototype.add=r.prototype.push=n,r.prototype.has=o,a.exports=r},function(a,e){a.exports=function(a,e){return a.has(e)}},function(a,e){a.exports=function(a){var e=-1,t=Array(a.size);return a.forEach(function(a){t[++e]=a}),t}},function(a,e,t){var i=t(13)(t(5),"Set");a.exports=i},function(a,e,t){var i=t(13)(t(5),"WeakMap");a.exports=i},,function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.stripBlockTagsAtStartEnd=e.stripIncompleteTags=e.stripFullTags=void 0;var i=function(a){return a&&a.__esModule?a:{default:a}}(t(108)),n=t(379);var o=new RegExp("^<("+n.blockElements.join("|")+")[^>]*?>","i"),r=new RegExp("</("+n.blockElements.join("|")+")[^>]*?>$","i"),s=function(a){return a=(a=a.replace(/^(<\/([^>]+)>)+/i,"")).replace(/(<([^/>]+)>)+$/i,"")},d=function(a){return a=(a=a.replace(o,"")).replace(r,"")},l=function(a){return a=a.replace(/(<([^>]+)>)/gi," "),a=(0,i.default)(a)};e.stripFullTags=l,e.stripIncompleteTags=s,e.stripBlockTagsAtStartEnd=d,e.default={stripFullTags:l,stripIncompleteTags:s,stripBlockTagsAtStartEnd:d}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a){if(""===(a=(0,n.default)((0,i.stripFullTags)(a))))return[];var e=a.split(/\s/g);return e=(0,r.map)(e,function(a){return(0,o.default)(a)}),(0,r.filter)(e,function(a){return""!==a.trim()})};var i=t(154),n=s(t(108)),o=s(t(737)),r=t(2);function s(a){return a&&a.__esModule?a:{default:a}}},,,,,,,,,,function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a){a=(0,o.unifyNonBreakingSpace)(a);var e=(0,n.getBlocks)(a);e=(0,i.flatMap)(e,function(a){return a.split(s)});var t=(0,i.flatMap)(e,d);return(0,i.filter)(t,(0,i.negate)(i.isEmpty))};var i=t(2),n=t(379),o=t(801),r=function(a){return a&&a.__esModule?a:{default:a}}(t(1036));var s=new RegExp("\n\r|\n|\r");var d=(0,i.memoize)(function(a){var e=new r.default,t=e.createTokenizer(),i=t.tokenizer,n=t.tokens;return e.tokenize(i,a),0===n.length?[]:e.getSentencesFromTokens(n)})},,,,,,,,function(a,e,t){var i=t(209)();a.exports=i},function(a,e){a.exports=function(a,e){for(var t=-1,i=Array(a);++t<a;)i[t]=e(t);return i}},function(a,e,t){var i=t(12),n=t(9),o="[object Arguments]";a.exports=function(a){return n(a)&&i(a)==o}},function(a,e){a.exports=function(){return!1}},function(a,e,t){var i=t(12),n=t(62),o=t(9),r={};r["[object Float32Array]"]=r["[object Float64Array]"]=r["[object Int8Array]"]=r["[object Int16Array]"]=r["[object Int32Array]"]=r["[object Uint8Array]"]=r["[object Uint8ClampedArray]"]=r["[object Uint16Array]"]=r["[object Uint32Array]"]=!0,r["[object Arguments]"]=r["[object Array]"]=r["[object ArrayBuffer]"]=r["[object Boolean]"]=r["[object DataView]"]=r["[object Date]"]=r["[object Error]"]=r["[object Function]"]=r["[object Map]"]=r["[object Number]"]=r["[object Object]"]=r["[object RegExp]"]=r["[object Set]"]=r["[object String]"]=r["[object WeakMap]"]=!1,a.exports=function(a){return o(a)&&n(a.length)&&!!r[i(a)]}},function(a,e,t){var i=t(118)(Object.keys,Object);a.exports=i},function(a,e,t){var i=t(199),n=t(211),o=t(212);a.exports=function(a,e,t){return e==e?o(a,e,t):i(a,n,t)}},function(a,e,t){var i=t(22);a.exports=function(){this.__data__=new i,this.size=0}},function(a,e){a.exports=function(a){var e=this.__data__,t=e.delete(a);return this.size=e.size,t}},function(a,e){a.exports=function(a){return this.__data__.get(a)}},function(a,e){a.exports=function(a){return this.__data__.has(a)}},function(a,e,t){var i=t(22),n=t(35),o=t(37),r=200;a.exports=function(a,e){var t=this.__data__;if(t instanceof i){var s=t.__data__;if(!n||s.length<r-1)return s.push([a,e]),this.size=++t.size,this;t=this.__data__=new o(s)}return t.set(a,e),this.size=t.size,this}},function(a,e,t){var i=t(13)(t(5),"DataView");a.exports=i},function(a,e,t){var i=t(13)(t(5),"Promise");a.exports=i},function(a,e,t){var i=t(24),n=t(46),o=t(3),r=t(65),s=t(62),d=t(20);a.exports=function(a,e,t){for(var l=-1,c=(e=i(e,a)).length,u=!1;++l<c;){var p=d(e[l]);if(!(u=null!=a&&t(a,p)))break;a=a[p]}return u||++l!=c?u:!!(c=null==a?0:a.length)&&s(c)&&r(p,c)&&(o(a)||n(a))}},,,,,,,,,,,function(a,e){var t,i,n=a.exports={};function o(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function s(a){if(t===setTimeout)return setTimeout(a,0);if((t===o||!t)&&setTimeout)return t=setTimeout,setTimeout(a,0);try{return t(a,0)}catch(e){try{return t.call(null,a,0)}catch(e){return t.call(this,a,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:o}catch(a){t=o}try{i="function"==typeof clearTimeout?clearTimeout:r}catch(a){i=r}}();var d,l=[],c=!1,u=-1;function p(){c&&d&&(c=!1,d.length?l=d.concat(l):u=-1,l.length&&z())}function z(){if(!c){var a=s(p);c=!0;for(var e=l.length;e;){for(d=l,l=[];++u<e;)d&&d[u].run();u=-1,e=l.length}d=null,c=!1,function(a){if(i===clearTimeout)return clearTimeout(a);if((i===r||!i)&&clearTimeout)return i=clearTimeout,clearTimeout(a);try{i(a)}catch(e){try{return i.call(null,a)}catch(e){return i.call(this,a)}}}(a)}}function g(a,e){this.fun=a,this.array=e}function m(){}n.nextTick=function(a){var e=new Array(arguments.length-1);if(arguments.length>1)for(var t=1;t<arguments.length;t++)e[t-1]=arguments[t];l.push(new g(a,e)),1!==l.length||c||s(z)},g.prototype.run=function(){this.fun.apply(null,this.array)},n.title="browser",n.browser=!0,n.env={},n.argv=[],n.version="",n.versions={},n.on=m,n.addListener=m,n.once=m,n.off=m,n.removeListener=m,n.removeAllListeners=m,n.emit=m,n.prependListener=m,n.prependOnceListener=m,n.listeners=function(a){return[]},n.binding=function(a){throw new Error("process.binding is not supported")},n.cwd=function(){return"/"},n.chdir=function(a){throw new Error("process.chdir is not supported")},n.umask=function(){return 0}},function(a,e){a.exports=function(a,e,t,i){for(var n=a.length,o=t+(i?1:-1);i?o--:++o<n;)if(e(a[o],o,a))return o;return-1}},function(a,e,t){var i=t(8),n=t(19),o=NaN,r=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,d=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;a.exports=function(a){if("number"==typeof a)return a;if(n(a))return o;if(i(a)){var e="function"==typeof a.valueOf?a.valueOf():a;a=i(e)?e+"":e}if("string"!=typeof a)return 0===a?a:+a;a=a.replace(r,"");var t=d.test(a);return t||l.test(a)?c(a.slice(2),t?2:8):s.test(a)?o:+a}},function(a,e){a.exports=function(a){return function(e){return null==e?void 0:e[a]}}},,,,,,,function(a,e,t){var i=t(173),n=t(27);a.exports=function(a,e){return a&&i(a,e,n)}},function(a,e){a.exports=function(a){return function(e,t,i){for(var n=-1,o=Object(e),r=i(e),s=r.length;s--;){var d=r[a?s:++n];if(!1===t(o[d],d,o))break}return e}}},function(a,e,t){var i=t(23);a.exports=function(a,e){return function(t,n){if(null==t)return t;if(!i(t))return a(t,n);for(var o=t.length,r=e?o:-1,s=Object(t);(e?r--:++r<o)&&!1!==n(s[r],r,s););return t}}},function(a,e){a.exports=function(a){return a!=a}},function(a,e){a.exports=function(a,e,t){for(var i=t-1,n=a.length;++i<n;)if(a[i]===e)return i;return-1}},function(a,e,t){var i=t(214),n=t(222),o=t(135);a.exports=function(a){var e=n(a);return 1==e.length&&e[0][2]?o(e[0][0],e[0][1]):function(t){return t===a||i(t,a,e)}}},function(a,e,t){var i=t(67),n=t(113),o=1,r=2;a.exports=function(a,e,t,s){var d=t.length,l=d,c=!s;if(null==a)return!l;for(a=Object(a);d--;){var u=t[d];if(c&&u[2]?u[1]!==a[u[0]]:!(u[0]in a))return!1}for(;++d<l;){var p=(u=t[d])[0],z=a[p],g=u[1];if(c&&u[2]){if(void 0===z&&!(p in a))return!1}else{var m=new i;if(s)var f=s(z,g,p,a,e,m);if(!(void 0===f?n(g,z,o|r,s,m):f))return!1}}return!0}},function(a,e,t){var i=t(67),n=t(131),o=t(219),r=t(221),s=t(43),d=t(3),l=t(47),c=t(66),u=1,p="[object Arguments]",z="[object Array]",g="[object Object]",m=Object.prototype.hasOwnProperty;a.exports=function(a,e,t,f,y,w){var b=d(a),h=d(e),v=b?z:s(a),k=h?z:s(e),j=(v=v==p?g:v)==g,_=(k=k==p?g:k)==g,x=v==k;if(x&&l(a)){if(!l(e))return!1;b=!0,j=!1}if(x&&!j)return w||(w=new i),b||c(a)?n(a,e,t,f,y,w):o(a,e,v,t,f,y,w);if(!(t&u)){var q=j&&m.call(a,"__wrapped__"),E=_&&m.call(e,"__wrapped__");if(q||E){var A=q?a.value():a,T=E?e.value():e;return w||(w=new i),y(A,T,t,f,w)}}return!!x&&(w||(w=new i),r(a,e,t,f,y,w))}},function(a,e){var t="__lodash_hash_undefined__";a.exports=function(a){return this.__data__.set(a,t),this}},function(a,e){a.exports=function(a){return this.__data__.has(a)}},function(a,e){a.exports=function(a,e){for(var t=-1,i=null==a?0:a.length;++t<i;)if(e(a[t],t,a))return!0;return!1}},function(a,e,t){var i=t(14),n=t(132),o=t(26),r=t(131),s=t(220),d=t(150),l=1,c=2,u="[object Boolean]",p="[object Date]",z="[object Error]",g="[object Map]",m="[object Number]",f="[object RegExp]",y="[object Set]",w="[object String]",b="[object Symbol]",h="[object ArrayBuffer]",v="[object DataView]",k=i?i.prototype:void 0,j=k?k.valueOf:void 0;a.exports=function(a,e,t,i,k,_,x){switch(t){case v:if(a.byteLength!=e.byteLength||a.byteOffset!=e.byteOffset)return!1;a=a.buffer,e=e.buffer;case h:return!(a.byteLength!=e.byteLength||!_(new n(a),new n(e)));case u:case p:case m:return o(+a,+e);case z:return a.name==e.name&&a.message==e.message;case f:case w:return a==e+"";case g:var q=s;case y:var E=i&l;if(q||(q=d),a.size!=e.size&&!E)return!1;var A=x.get(a);if(A)return A==e;i|=c,x.set(a,e);var T=r(q(a),q(e),i,k,_,x);return x.delete(a),T;case b:if(j)return j.call(a)==j.call(e)}return!1}},function(a,e){a.exports=function(a){var e=-1,t=Array(a.size);return a.forEach(function(a,i){t[++e]=[i,a]}),t}},function(a,e,t){var i=t(133),n=1,o=Object.prototype.hasOwnProperty;a.exports=function(a,e,t,r,s,d){var l=t&n,c=i(a),u=c.length;if(u!=i(e).length&&!l)return!1;for(var p=u;p--;){var z=c[p];if(!(l?z in e:o.call(e,z)))return!1}var g=d.get(a);if(g&&d.get(e))return g==e;var m=!0;d.set(a,e),d.set(e,a);for(var f=l;++p<u;){var y=a[z=c[p]],w=e[z];if(r)var b=l?r(w,y,z,e,a,d):r(y,w,z,a,e,d);if(!(void 0===b?y===w||s(y,w,t,r,d):b)){m=!1;break}f||(f="constructor"==z)}if(m&&!f){var h=a.constructor,v=e.constructor;h!=v&&"constructor"in a&&"constructor"in e&&!("function"==typeof h&&h instanceof h&&"function"==typeof v&&v instanceof v)&&(m=!1)}return d.delete(a),d.delete(e),m}},function(a,e,t){var i=t(134),n=t(27);a.exports=function(a){for(var e=n(a),t=e.length;t--;){var o=e[t],r=a[o];e[t]=[o,r,i(r)]}return e}},function(a,e,t){var i=t(113),n=t(21),o=t(224),r=t(40),s=t(134),d=t(135),l=t(20),c=1,u=2;a.exports=function(a,e){return r(a)&&s(e)?d(l(a),e):function(t){var r=n(t,a);return void 0===r&&r===e?o(t,a):i(e,r,c|u)}}},function(a,e,t){var i=t(225),n=t(187);a.exports=function(a,e){return null!=a&&n(a,e,i)}},function(a,e){a.exports=function(a,e){return null!=a&&e in Object(a)}},function(a,e,t){var i=t(201),n=t(227),o=t(40),r=t(20);a.exports=function(a){return o(a)?i(r(a)):n(a)}},function(a,e,t){var i=t(39);a.exports=function(a){return function(e){return i(e,a)}}},,,,,,,,,,,,,,,function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=Object.assign||function(a){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(a[i]=t[i])}return a},n=t(2);function o(a){(0,n.defaults)(a,{original:"",marked:""}),this._properties=a}o.prototype.getOriginal=function(){return this._properties.original},o.prototype.getMarked=function(){return this._properties.marked},o.prototype.applyWithReplace=function(a){return a.split(this._properties.original).join(this._properties.marked)},o.prototype.serialize=function(){return i({_parseClass:"Mark"},this._properties)},o.parse=function(a){return delete a._parseClass,new o(a)},e.default=o},function(a,e,t){"use strict";function i(a,e,t){return a>e&&a<=t}function n(a,e,t){return a>=e&&a<t}function o(a,e,t){return a>=e&&a<=t}Object.defineProperty(e,"__esModule",{value:!0}),e.inRange=i,e.inRangeStartInclusive=n,e.inRangeEndInclusive=i,e.inRangeStartEndInclusive=o,e.default={inRange:i,inRangeStartInclusive:n,inRangeEndInclusive:i,inRangeStartEndInclusive:o}},function(a,e){"function"==typeof Object.create?a.exports=function(a,e){a.super_=e,a.prototype=Object.create(e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}})}:a.exports=function(a,e){a.super_=e;var t=function(){};t.prototype=e.prototype,a.prototype=new t,a.prototype.constructor=a}},,,,,function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=l(t(520)),n=l(t(517)),o=l(t(1213)),r=l(t(34)),s=t(1214),d=t(2);function l(a){return a&&a.__esModule?a:{default:a}}var c=function(a,e){this.type="Assessor",this.setI18n(a),this._assessments=[],this._options=e||{},(0,d.isUndefined)(this._options.researcher)||(this._researcher=this._options.researcher)};c.prototype.setI18n=function(a){if((0,d.isUndefined)(a))throw new n.default("The assessor requires an i18n object.");this.i18n=a},c.prototype.getAvailableAssessments=function(){return this._assessments},c.prototype.isApplicable=function(a,e,t){return!a.hasOwnProperty("isApplicable")&&"function"!=typeof a.isApplicable||a.isApplicable(e,t)},c.prototype.hasMarker=function(a){return(0,d.isFunction)(this._options.marker)&&(a.hasOwnProperty("getMarks")||"function"==typeof a.getMarks)},c.prototype.getSpecificMarker=function(){return this._options.marker},c.prototype.getPaper=function(){return this._lastPaper},c.prototype.getMarker=function(a,e,t){var i=this._options.marker;return function(){var n=a.getMarks(e,t);n=(0,o.default)(n),i(e,n)}},c.prototype.assess=function(a){(0,d.isUndefined)(this._researcher)?this._researcher=new i.default(a):this._researcher.setPaper(a);var e=this.getAvailableAssessments();this.results=[],e=(0,d.filter)(e,function(e){return this.isApplicable(e,a,this._researcher)}.bind(this)),this.setHasMarkers(!1),this.results=(0,d.map)(e,this.executeAssessment.bind(this,a,this._researcher)),this._lastPaper=a},c.prototype.setHasMarkers=function(a){this._hasMarkers=a},c.prototype.hasMarkers=function(){return this._hasMarkers},c.prototype.executeAssessment=function(a,e,t){var i;try{(i=t.getResult(a,e,this.i18n)).setIdentifier(t.identifier),i.hasMarks()&&(i.marks=t.getMarks(a,e),i.marks=(0,o.default)(i.marks)),i.hasMarks()&&this.hasMarker(t)&&(this.setHasMarkers(!0),i.setMarker(this.getMarker(t,a,e)))}catch(a){(0,s.showTrace)(a),(i=new r.default).setScore(-1),i.setText(this.i18n.sprintf(this.i18n.dgettext("js-text-analysis","An error occurred in the '%1$s' assessment"),t.identifier,a))}return i},c.prototype.getValidResults=function(){return(0,d.filter)(this.results,function(a){return this.isValidResult(a)}.bind(this))},c.prototype.isValidResult=function(a){return a.hasScore()&&a.hasText()},c.prototype.calculateOverallScore=function(){var a=this.getValidResults(),e=0;return(0,d.forEach)(a,function(a){e+=a.getScore()}),Math.round(e/(9*a.length)*100)||0},c.prototype.addAssessment=function(a,e){return e.hasOwnProperty("identifier")||(e.identifier=a),this._assessments.push(e),!0},c.prototype.removeAssessment=function(a){var e=(0,d.findIndex)(this._assessments,function(e){return e.hasOwnProperty("identifier")&&a===e.identifier});-1!==e&&this._assessments.splice(e,1)},c.prototype.getAssessment=function(a){return(0,d.find)(this._assessments,function(e){return e.hasOwnProperty("identifier")&&a===e.identifier})},c.prototype.getApplicableAssessments=function(){var a=this.getAvailableAssessments();return(0,d.filter)(a,function(a){return this.isApplicable(a,this.getPaper())}.bind(this))},e.default=c},,,,,,function(a,e,t){var i=t(12),n=t(3),o=t(9),r="[object String]";a.exports=function(a){return"string"==typeof a||!n(a)&&o(a)&&i(a)==r}},function(a,e,t){var i=t(340);a.exports=function(a){var e=i(a),t=e%1;return e==e?t?e-t:e:0}},function(a,e,t){var i=t(258),n=t(27);a.exports=function(a){return null==a?[]:i(a,n(a))}},function(a,e,t){var i=t(30);a.exports=function(a,e){return i(e,function(e){return a[e]})}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(a,e){a.exports=function(a){if(!a.webpackPolyfill){var e=Object.create(a);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}}),Object.defineProperty(e,"exports",{enumerable:!0}),e.webpackPolyfill=1}return e}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a){return(0,i.default)(a).length};var i=function(a){return a&&a.__esModule?a:{default:a}}(t(155))},,function(a,e,t){"use strict";(function(a){var t="object"==typeof a&&a&&a.Object===Object&&a;e.a=t}).call(this,t(15))},function(a,e,t){"use strict";(function(a){var i=t(11),n="object"==typeof exports&&exports&&!exports.nodeType&&exports,o=n&&"object"==typeof a&&a&&!a.nodeType&&a,r=o&&o.exports===n?i.a.Buffer:void 0,s=r?r.allocUnsafe:void 0;e.a=function(a,e){if(e)return a.slice();var t=a.length,i=s?s(t):new a.constructor(t);return a.copy(i),i}}).call(this,t(293)(a))},,,,,,function(a,e,t){
|
11 |
-
/**
|
12 |
-
* @preserve jed.js https://github.com/SlexAxton/Jed
|
13 |
-
*/
|
14 |
-
!function(t,i){var n=Array.prototype,o=Object.prototype,r=n.slice,s=o.hasOwnProperty,d=n.forEach,l={},c={forEach:function(a,e,t){var i,n,o;if(null!==a)if(d&&a.forEach===d)a.forEach(e,t);else if(a.length===+a.length){for(i=0,n=a.length;i<n;i++)if(i in a&&e.call(t,a[i],i,a)===l)return}else for(o in a)if(s.call(a,o)&&e.call(t,a[o],o,a)===l)return},extend:function(a){return this.forEach(r.call(arguments,1),function(e){for(var t in e)a[t]=e[t]}),a}},u=function(a){if(this.defaults={locale_data:{messages:{"":{domain:"messages",lang:"en",plural_forms:"nplurals=2; plural=(n != 1);"}}},domain:"messages",debug:!1},this.options=c.extend({},this.defaults,a),this.textdomain(this.options.domain),a.domain&&!this.options.locale_data[this.options.domain])throw new Error("Text domain set to non-existent domain: `"+a.domain+"`")};function p(a){return u.PF.compile(a||"nplurals=2; plural=(n != 1);")}function z(a,e){this._key=a,this._i18n=e}u.context_delimiter=String.fromCharCode(4),c.extend(z.prototype,{onDomain:function(a){return this._domain=a,this},withContext:function(a){return this._context=a,this},ifPlural:function(a,e){return this._val=a,this._pkey=e,this},fetch:function(a){return"[object Array]"!={}.toString.call(a)&&(a=[].slice.call(arguments,0)),(a&&a.length?u.sprintf:function(a){return a})(this._i18n.dcnpgettext(this._domain,this._context,this._key,this._pkey,this._val),a)}}),c.extend(u.prototype,{translate:function(a){return new z(a,this)},textdomain:function(a){if(!a)return this._textdomain;this._textdomain=a},gettext:function(a){return this.dcnpgettext.call(this,void 0,void 0,a)},dgettext:function(a,e){return this.dcnpgettext.call(this,a,void 0,e)},dcgettext:function(a,e){return this.dcnpgettext.call(this,a,void 0,e)},ngettext:function(a,e,t){return this.dcnpgettext.call(this,void 0,void 0,a,e,t)},dngettext:function(a,e,t,i){return this.dcnpgettext.call(this,a,void 0,e,t,i)},dcngettext:function(a,e,t,i){return this.dcnpgettext.call(this,a,void 0,e,t,i)},pgettext:function(a,e){return this.dcnpgettext.call(this,void 0,a,e)},dpgettext:function(a,e,t){return this.dcnpgettext.call(this,a,e,t)},dcpgettext:function(a,e,t){return this.dcnpgettext.call(this,a,e,t)},npgettext:function(a,e,t,i){return this.dcnpgettext.call(this,void 0,a,e,t,i)},dnpgettext:function(a,e,t,i,n){return this.dcnpgettext.call(this,a,e,t,i,n)},dcnpgettext:function(a,e,t,i,n){var o;if(i=i||t,a=a||this._textdomain,!this.options)return(o=new u).dcnpgettext.call(o,void 0,void 0,t,i,n);if(!this.options.locale_data)throw new Error("No locale data provided.");if(!this.options.locale_data[a])throw new Error("Domain `"+a+"` was not found.");if(!this.options.locale_data[a][""])throw new Error("No locale meta information provided.");if(!t)throw new Error("No translation key found.");var r,s,d,l=e?e+u.context_delimiter+t:t,c=this.options.locale_data,z=c[a],g=(c.messages||this.defaults.locale_data.messages)[""],m=z[""].plural_forms||z[""]["Plural-Forms"]||z[""]["plural-forms"]||g.plural_forms||g["Plural-Forms"]||g["plural-forms"];if(void 0===n)d=0;else{if("number"!=typeof n&&(n=parseInt(n,10),isNaN(n)))throw new Error("The number that was passed in is not a number.");d=p(m)(n)}if(!z)throw new Error("No domain named `"+a+"` could be found.");return!(r=z[l])||d>r.length?(this.options.missing_key_callback&&this.options.missing_key_callback(l,a),s=[t,i],!0===this.options.debug&&console.log(s[p(m)(n)]),s[p()(n)]):(s=r[d])||(s=[t,i])[p()(n)]}});var g=function(){function a(a){return Object.prototype.toString.call(a).slice(8,-1).toLowerCase()}function e(a,e){for(var t=[];e>0;t[--e]=a);return t.join("")}var t=function(){return t.cache.hasOwnProperty(arguments[0])||(t.cache[arguments[0]]=t.parse(arguments[0])),t.format.call(null,t.cache[arguments[0]],arguments)};return t.format=function(t,i){var n,o,r,s,d,l,c,u=1,p=t.length,z="",m=[];for(o=0;o<p;o++)if("string"===(z=a(t[o])))m.push(t[o]);else if("array"===z){if((s=t[o])[2])for(n=i[u],r=0;r<s[2].length;r++){if(!n.hasOwnProperty(s[2][r]))throw g('[sprintf] property "%s" does not exist',s[2][r]);n=n[s[2][r]]}else n=s[1]?i[s[1]]:i[u++];if(/[^s]/.test(s[8])&&"number"!=a(n))throw g("[sprintf] expecting number but found %s",a(n));switch(void 0!==n&&null!==n||(n=""),s[8]){case"b":n=n.toString(2);break;case"c":n=String.fromCharCode(n);break;case"d":n=parseInt(n,10);break;case"e":n=s[7]?n.toExponential(s[7]):n.toExponential();break;case"f":n=s[7]?parseFloat(n).toFixed(s[7]):parseFloat(n);break;case"o":n=n.toString(8);break;case"s":n=(n=String(n))&&s[7]?n.substring(0,s[7]):n;break;case"u":n=Math.abs(n);break;case"x":n=n.toString(16);break;case"X":n=n.toString(16).toUpperCase()}n=/[def]/.test(s[8])&&s[3]&&n>=0?"+"+n:n,l=s[4]?"0"==s[4]?"0":s[4].charAt(1):" ",c=s[6]-String(n).length,d=s[6]?e(l,c):"",m.push(s[5]?n+d:d+n)}return m.join("")},t.cache={},t.parse=function(a){for(var e=a,t=[],i=[],n=0;e;){if(null!==(t=/^[^\x25]+/.exec(e)))i.push(t[0]);else if(null!==(t=/^\x25{2}/.exec(e)))i.push("%");else{if(null===(t=/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(e)))throw"[sprintf] huh?";if(t[2]){n|=1;var o=[],r=t[2],s=[];if(null===(s=/^([a-z_][a-z_\d]*)/i.exec(r)))throw"[sprintf] huh?";for(o.push(s[1]);""!==(r=r.substring(s[0].length));)if(null!==(s=/^\.([a-z_][a-z_\d]*)/i.exec(r)))o.push(s[1]);else{if(null===(s=/^\[(\d+)\]/.exec(r)))throw"[sprintf] huh?";o.push(s[1])}t[2]=o}else n|=2;if(3===n)throw"[sprintf] mixing positional and named placeholders is not (yet) supported";i.push(t)}e=e.substring(t[0].length)}return i},t}();u.parse_plural=function(a,e){return a=a.replace(/n/g,e),u.parse_expression(a)},u.sprintf=function(a,e){return"[object Array]"=={}.toString.call(e)?function(a,e){return e.unshift(a),g.apply(null,e)}(a,[].slice.call(e)):g.apply(this,[].slice.call(arguments))},u.prototype.sprintf=function(){return u.sprintf.apply(this,arguments)},u.PF={},u.PF.parse=function(a){var e=u.PF.extractPluralExpr(a);return u.PF.parser.parse.call(u.PF.parser,e)},u.PF.compile=function(a){var e=u.PF.parse(a);return function(a){return function(a){return!0===a?1:a||0}(u.PF.interpreter(e)(a))}},u.PF.interpreter=function(a){return function(e){switch(a.type){case"GROUP":return u.PF.interpreter(a.expr)(e);case"TERNARY":return u.PF.interpreter(a.expr)(e)?u.PF.interpreter(a.truthy)(e):u.PF.interpreter(a.falsey)(e);case"OR":return u.PF.interpreter(a.left)(e)||u.PF.interpreter(a.right)(e);case"AND":return u.PF.interpreter(a.left)(e)&&u.PF.interpreter(a.right)(e);case"LT":return u.PF.interpreter(a.left)(e)<u.PF.interpreter(a.right)(e);case"GT":return u.PF.interpreter(a.left)(e)>u.PF.interpreter(a.right)(e);case"LTE":return u.PF.interpreter(a.left)(e)<=u.PF.interpreter(a.right)(e);case"GTE":return u.PF.interpreter(a.left)(e)>=u.PF.interpreter(a.right)(e);case"EQ":return u.PF.interpreter(a.left)(e)==u.PF.interpreter(a.right)(e);case"NEQ":return u.PF.interpreter(a.left)(e)!=u.PF.interpreter(a.right)(e);case"MOD":return u.PF.interpreter(a.left)(e)%u.PF.interpreter(a.right)(e);case"VAR":return e;case"NUM":return a.val;default:throw new Error("Invalid Token found.")}}},u.PF.extractPluralExpr=function(a){a=a.replace(/^\s\s*/,"").replace(/\s\s*$/,""),/;\s*$/.test(a)||(a=a.concat(";"));var e,t=/nplurals\=(\d+);/,i=a.match(t);if(!(i.length>1))throw new Error("nplurals not found in plural_forms string: "+a);if(i[1],!((e=(a=a.replace(t,"")).match(/plural\=(.*);/))&&e.length>1))throw new Error("`plural` expression not found: "+a);return e[1]},u.PF.parser=function(){var a={trace:function(){},yy:{},symbols_:{error:2,expressions:3,e:4,EOF:5,"?":6,":":7,"||":8,"&&":9,"<":10,"<=":11,">":12,">=":13,"!=":14,"==":15,"%":16,"(":17,")":18,n:19,NUMBER:20,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",6:"?",7:":",8:"||",9:"&&",10:"<",11:"<=",12:">",13:">=",14:"!=",15:"==",16:"%",17:"(",18:")",19:"n",20:"NUMBER"},productions_:[0,[3,2],[4,5],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,1],[4,1]],performAction:function(a,e,t,i,n,o,r){var s=o.length-1;switch(n){case 1:return{type:"GROUP",expr:o[s-1]};case 2:this.$={type:"TERNARY",expr:o[s-4],truthy:o[s-2],falsey:o[s]};break;case 3:this.$={type:"OR",left:o[s-2],right:o[s]};break;case 4:this.$={type:"AND",left:o[s-2],right:o[s]};break;case 5:this.$={type:"LT",left:o[s-2],right:o[s]};break;case 6:this.$={type:"LTE",left:o[s-2],right:o[s]};break;case 7:this.$={type:"GT",left:o[s-2],right:o[s]};break;case 8:this.$={type:"GTE",left:o[s-2],right:o[s]};break;case 9:this.$={type:"NEQ",left:o[s-2],right:o[s]};break;case 10:this.$={type:"EQ",left:o[s-2],right:o[s]};break;case 11:this.$={type:"MOD",left:o[s-2],right:o[s]};break;case 12:this.$={type:"GROUP",expr:o[s-1]};break;case 13:this.$={type:"VAR"};break;case 14:this.$={type:"NUM",val:Number(a)}}},table:[{3:1,4:2,17:[1,3],19:[1,4],20:[1,5]},{1:[3]},{5:[1,6],6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{4:17,17:[1,3],19:[1,4],20:[1,5]},{5:[2,13],6:[2,13],7:[2,13],8:[2,13],9:[2,13],10:[2,13],11:[2,13],12:[2,13],13:[2,13],14:[2,13],15:[2,13],16:[2,13],18:[2,13]},{5:[2,14],6:[2,14],7:[2,14],8:[2,14],9:[2,14],10:[2,14],11:[2,14],12:[2,14],13:[2,14],14:[2,14],15:[2,14],16:[2,14],18:[2,14]},{1:[2,1]},{4:18,17:[1,3],19:[1,4],20:[1,5]},{4:19,17:[1,3],19:[1,4],20:[1,5]},{4:20,17:[1,3],19:[1,4],20:[1,5]},{4:21,17:[1,3],19:[1,4],20:[1,5]},{4:22,17:[1,3],19:[1,4],20:[1,5]},{4:23,17:[1,3],19:[1,4],20:[1,5]},{4:24,17:[1,3],19:[1,4],20:[1,5]},{4:25,17:[1,3],19:[1,4],20:[1,5]},{4:26,17:[1,3],19:[1,4],20:[1,5]},{4:27,17:[1,3],19:[1,4],20:[1,5]},{6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[1,28]},{6:[1,7],7:[1,29],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{5:[2,3],6:[2,3],7:[2,3],8:[2,3],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,3]},{5:[2,4],6:[2,4],7:[2,4],8:[2,4],9:[2,4],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,4]},{5:[2,5],6:[2,5],7:[2,5],8:[2,5],9:[2,5],10:[2,5],11:[2,5],12:[2,5],13:[2,5],14:[2,5],15:[2,5],16:[1,16],18:[2,5]},{5:[2,6],6:[2,6],7:[2,6],8:[2,6],9:[2,6],10:[2,6],11:[2,6],12:[2,6],13:[2,6],14:[2,6],15:[2,6],16:[1,16],18:[2,6]},{5:[2,7],6:[2,7],7:[2,7],8:[2,7],9:[2,7],10:[2,7],11:[2,7],12:[2,7],13:[2,7],14:[2,7],15:[2,7],16:[1,16],18:[2,7]},{5:[2,8],6:[2,8],7:[2,8],8:[2,8],9:[2,8],10:[2,8],11:[2,8],12:[2,8],13:[2,8],14:[2,8],15:[2,8],16:[1,16],18:[2,8]},{5:[2,9],6:[2,9],7:[2,9],8:[2,9],9:[2,9],10:[2,9],11:[2,9],12:[2,9],13:[2,9],14:[2,9],15:[2,9],16:[1,16],18:[2,9]},{5:[2,10],6:[2,10],7:[2,10],8:[2,10],9:[2,10],10:[2,10],11:[2,10],12:[2,10],13:[2,10],14:[2,10],15:[2,10],16:[1,16],18:[2,10]},{5:[2,11],6:[2,11],7:[2,11],8:[2,11],9:[2,11],10:[2,11],11:[2,11],12:[2,11],13:[2,11],14:[2,11],15:[2,11],16:[2,11],18:[2,11]},{5:[2,12],6:[2,12],7:[2,12],8:[2,12],9:[2,12],10:[2,12],11:[2,12],12:[2,12],13:[2,12],14:[2,12],15:[2,12],16:[2,12],18:[2,12]},{4:30,17:[1,3],19:[1,4],20:[1,5]},{5:[2,2],6:[1,7],7:[2,2],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,2]}],defaultActions:{6:[2,1]},parseError:function(a,e){throw new Error(a)},parse:function(a){var e=this,t=[0],i=[null],n=[],o=this.table,r="",s=0,d=0,l=0;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,void 0===this.lexer.yylloc&&(this.lexer.yylloc={});var c=this.lexer.yylloc;function u(a){t.length=t.length-2*a,i.length=i.length-a,n.length=n.length-a}function p(){var a;return"number"!=typeof(a=e.lexer.lex()||1)&&(a=e.symbols_[a]||a),a}n.push(c),"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var z,g,m,f,y,w,b,h,v,k={};;){if(m=t[t.length-1],this.defaultActions[m]?f=this.defaultActions[m]:(null==z&&(z=p()),f=o[m]&&o[m][z]),void 0===f||!f.length||!f[0]){if(!l){for(w in v=[],o[m])this.terminals_[w]&&w>2&&v.push("'"+this.terminals_[w]+"'");var j="";j=this.lexer.showPosition?"Parse error on line "+(s+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+v.join(", ")+", got '"+this.terminals_[z]+"'":"Parse error on line "+(s+1)+": Unexpected "+(1==z?"end of input":"'"+(this.terminals_[z]||z)+"'"),this.parseError(j,{text:this.lexer.match,token:this.terminals_[z]||z,line:this.lexer.yylineno,loc:c,expected:v})}if(3==l){if(1==z)throw new Error(j||"Parsing halted.");d=this.lexer.yyleng,r=this.lexer.yytext,s=this.lexer.yylineno,c=this.lexer.yylloc,z=p()}for(;!(2..toString()in o[m]);){if(0==m)throw new Error(j||"Parsing halted.");u(1),m=t[t.length-1]}g=z,z=2,f=o[m=t[t.length-1]]&&o[m][2],l=3}if(f[0]instanceof Array&&f.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+z);switch(f[0]){case 1:t.push(z),i.push(this.lexer.yytext),n.push(this.lexer.yylloc),t.push(f[1]),z=null,g?(z=g,g=null):(d=this.lexer.yyleng,r=this.lexer.yytext,s=this.lexer.yylineno,c=this.lexer.yylloc,l>0&&l--);break;case 2:if(b=this.productions_[f[1]][1],k.$=i[i.length-b],k._$={first_line:n[n.length-(b||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-(b||1)].first_column,last_column:n[n.length-1].last_column},void 0!==(y=this.performAction.call(k,r,d,s,this.yy,f[1],i,n)))return y;b&&(t=t.slice(0,-1*b*2),i=i.slice(0,-1*b),n=n.slice(0,-1*b)),t.push(this.productions_[f[1]][0]),i.push(k.$),n.push(k._$),h=o[t[t.length-2]][t[t.length-1]],t.push(h);break;case 3:return!0}}return!0}},e=function(){var a={EOF:1,parseError:function(a,e){if(!this.yy.parseError)throw new Error(a);this.yy.parseError(a,e)},setInput:function(a){return this._input=a,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var a=this._input[0];return this.yytext+=a,this.yyleng++,this.match+=a,this.matched+=a,a.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),a},unput:function(a){return this._input=a+this._input,this},more:function(){return this._more=!0,this},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),e=new Array(a.length+1).join("-");return a+this.upcomingInput()+"\n"+e+"^"},next:function(){if(this.done)return this.EOF;var a,e;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t=this._currentRules(),i=0;i<t.length;i++)if(a=this._input.match(this.rules[t[i]]))return(e=a[0].match(/\n.*/g))&&(this.yylineno+=e.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:e?e[e.length-1].length-1:this.yylloc.last_column+a[0].length},this.yytext+=a[0],this.match+=a[0],this.matches=a,this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(a[0].length),this.matched+=a[0],this.performAction.call(this,this.yy,this,t[i],this.conditionStack[this.conditionStack.length-1])||void 0;if(""===this._input)return this.EOF;this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var a=this.next();return void 0!==a?a:this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(a){this.begin(a)},performAction:function(a,e,t,i){switch(t){case 0:break;case 1:return 20;case 2:return 19;case 3:return 8;case 4:return 9;case 5:return 6;case 6:return 7;case 7:return 11;case 8:return 13;case 9:return 10;case 10:return 12;case 11:return 14;case 12:return 15;case 13:return 16;case 14:return 17;case 15:return 18;case 16:return 5;case 17:return"INVALID"}},rules:[/^\s+/,/^[0-9]+(\.[0-9]+)?\b/,/^n\b/,/^\|\|/,/^&&/,/^\?/,/^:/,/^<=/,/^>=/,/^</,/^>/,/^!=/,/^==/,/^%/,/^\(/,/^\)/,/^$/,/^./],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],inclusive:!0}}};return a}();return a.lexer=e,a}(),void 0!==a&&a.exports&&(e=a.exports=u),e.Jed=u}()},,function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",s=arguments.length>3&&void 0!==arguments[3]&&arguments[3],d="("+(a=(0,i.map)(a,function(a){return s&&(a=(0,o.default)(a)),a=(0,r.default)(a),e?a:(0,n.default)(a,!0,t)})).join(")|(")+")";return new RegExp(d,"ig")};var i=t(2),n=s(t(365)),o=s(t(366)),r=s(t(510));function s(a){return a&&a.__esModule?a:{default:a}}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.findTopicFormsInString=e.findWordFormsInString=void 0;var i=function(a){return a&&a.__esModule?a:{default:a}}(t(485)),n=t(2);var o=function(a,e,t){for(var o=a.length,r=Array(o),s=0;s<o;s++){var d=(0,i.default)(e,a[s],t).count>0;r[s]=d?1:0}var l=(0,n.sum)(r),c={countWordMatches:l,percentWordMatches:0};return o>0&&(c.percentWordMatches=Math.round(l/o*100)),c};e.findWordFormsInString=o,e.findTopicFormsInString=function(a,e,t,i){var r=o(a.keyphraseForms,e,i);if(r.keyphraseOrSynonym="keyphrase",100===r.percentWordMatches||!1===t||(0,n.isEmpty)(a.synonymsForms))return r;for(var s=[],d=0;d<a.synonymsForms.length;d++){var l=a.synonymsForms[d];s[d]=o(l,e,i)}var c=s.map(function(a){return a.percentWordMatches}),u=c.indexOf(Math.max.apply(Math,function(a){if(Array.isArray(a)){for(var e=0,t=Array(a.length);e<a.length;e++)t[e]=a[e];return t}return Array.from(a)}(c)));return r.percentWordMatches>=s[u].percentWordMatches?r:((r=s[u]).keyphraseOrSynonym="synonym",r)}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t(2),n=t(1160),o={auxiliaries:[],type:"",language:""},r=function(a,e,t){this.setParticiple(a),this.setSentencePart(e),this._determinesSentencePartIsPassive=!1,t=t||{},(0,i.defaults)(t,o),function(a){(0,i.forEach)(a,function(a,e){var t=(0,n.getType)(o[e]);if(!1===(0,n.isSameType)(a,t))throw Error("Attribute "+e+" has invalid type. Expected "+t+", got "+(0,n.getType)(a)+".")})}(t),this._attributes=t};r.prototype.setParticiple=function(a){if(""===a)throw Error("The participle should not be empty.");if(!(0,i.isString)(a))throw Error("The participle should be a string.");this._participle=a},r.prototype.getParticiple=function(){return this._participle},r.prototype.setSentencePart=function(a){if(""===a)throw Error("The sentence part should not be empty.");this._sentencePart=a},r.prototype.getSentencePart=function(){return this._sentencePart},r.prototype.getType=function(){return this._attributes.type},r.prototype.getAuxiliaries=function(){return this._attributes.auxiliaries},r.prototype.getLanguage=function(){return this._attributes.language},r.prototype.determinesSentencePartIsPassive=function(){return this._determinesSentencePartIsPassive},r.prototype.setSentencePartPassiveness=function(a){if(!(0,n.isSameType)(a,"boolean"))throw Error("Passiveness had invalid type. Expected boolean, got "+(0,n.getType)(a)+".");this._determinesSentencePartIsPassive=a},r.prototype.serialize=function(){return{_parseClass:"Participle",attributes:this._attributes,participle:this._participle,sentencePart:this._sentencePart,determinesSentencePartIsPassive:this._determinesSentencePartIsPassive}},r.parse=function(a){var e=new r(a.participle,a.sentencePart,a.attributes);return e.setSentencePartPassiveness(a.determinesSentencePartIsPassive),e},e.default=r},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=function(a,e,t){this._sentencePartText=a,this._auxiliaries=e,this._locale=t,this._isPassive=!1};i.prototype.getSentencePartText=function(){return this._sentencePartText},i.prototype.isPassive=function(){return this._isPassive},i.prototype.getAuxiliaries=function(){return this._auxiliaries},i.prototype.getLocale=function(){return this._locale},i.prototype.setPassive=function(a){this._isPassive=a},i.prototype.serialize=function(){return{_parseClass:"SentencePart",sentencePartText:this._sentencePartText,auxiliaries:this._auxiliaries,locale:this._locale,isPassive:this._isPassive}},i.parse=function(a){var e=new i(a.sentencePartText,a.auxiliaries,a.locale);return e.setPassive(a.isPassive),e},e.default=i},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(a,e,t){var i=t(200),n=1/0,o=1.7976931348623157e308;a.exports=function(a){return a?(a=i(a))===n||a===-n?(a<0?-1:1)*o:a==a?a:0:0===a?a:0}},,,,,,,,,,,,,,,,,,,function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a){return"<yoastmark class='yoast-text-mark'>"+a+"</yoastmark>"}},function(a,e,t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function a(a,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(a,i.key,i)}}return function(e,t,i){return t&&a(e.prototype,t),i&&a(e,i),e}}(),o=t(2),r=l(t(83)),s=t(38),d=l(t(34));function l(a){return a&&a.__esModule?a:{default:a}}var c=function(a){function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var t=function(a,e){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":i(e))&&"function"!=typeof e?a:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this)),n={scores:{onlyFunctionWords:0},urlTitle:(0,s.createAnchorOpeningTag)("https://yoa.st/functionwordskeyphrase-1"),urlCallToAction:(0,s.createAnchorOpeningTag)("https://yoa.st/functionwordskeyphrase-2")};return t.identifier="functionWordsInKeyphrase",t._config=(0,o.merge)(n,a),t}return function(a,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":i(e)));a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(a,e):a.__proto__=e)}(e,r.default),n(e,[{key:"getResult",value:function(a,e,t){this._functionWordsInKeyphrase=e.getResearch("functionWordsInKeyphrase"),this._keyword=(0,o.escape)(a.getKeyword());var i=new d.default;return this._functionWordsInKeyphrase&&(i.setScore(this._config.scores.onlyFunctionWords),i.setText(t.sprintf(t.dgettext("js-text-analysis",'%1$sFunction words in keyphrase%3$s: Your keyphrase "%4$s" contains function words only. %2$sLearn more about what makes a good keyphrase.%3$s'),this._config.urlTitle,this._config.urlCallToAction,"</a>",this._keyword))),i}},{key:"isApplicable",value:function(a){return a.hasKeyword()}}]),e}();e.default=c},function(a,e,t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function a(a,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(a,i.key,i)}}return function(e,t,i){return t&&a(e.prototype,t),i&&a(e,i),e}}(),o=t(2),r=l(t(83)),s=t(38),d=l(t(34));function l(a){return a&&a.__esModule?a:{default:a}}var c=function(a){function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var t=function(a,e){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":i(e))&&"function"!=typeof e?a:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this)),n={scores:{good:9,okay:6,bad:3},urlTitle:(0,s.createAnchorOpeningTag)("https://yoa.st/33e"),urlCallToAction:(0,s.createAnchorOpeningTag)("https://yoa.st/33f")};return t.identifier="introductionKeyword",t._config=(0,o.merge)(n,a),t}return function(a,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":i(e)));a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(a,e):a.__proto__=e)}(e,r.default),n(e,[{key:"getResult",value:function(a,e,t){var i=new d.default;this._firstParagraphMatches=e.getResearch("firstParagraph");var n=this.calculateResult(t);return i.setScore(n.score),i.setText(n.resultText),i}},{key:"isApplicable",value:function(a){return a.hasKeyword()&&a.hasText()}},{key:"calculateResult",value:function(a){return this._firstParagraphMatches.foundInOneSentence?{score:this._config.scores.good,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase in introduction%2$s: Well done!"),this._config.urlTitle,"</a>")}:this._firstParagraphMatches.foundInParagraph?{score:this._config.scores.okay,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase in introduction%3$s:Your keyphrase or its synonyms appear in the first paragraph of the copy, but not within one sentence. %2$sFix that%3$s!"),this._config.urlTitle,this._config.urlCallToAction,"</a>")}:{score:this._config.scores.bad,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase in introduction%3$s: Your keyphrase or its synonyms do not appear in the first paragraph. %2$sMake sure the topic is clear immediately%3$s."),this._config.urlTitle,this._config.urlCallToAction,"</a>")}}}]),e}();e.default=c},function(a,e,t){"use strict";function i(a){return a.replace(/[‘’‛`]/g,"'")}function n(a){return a.replace(/[“”〝〞〟‟„]/g,'"')}function o(a){return n(i(a))}Object.defineProperty(e,"__esModule",{value:!0}),e.normalizeSingle=i,e.normalizeDouble=n,e.normalize=o,e.default={normalizeSingle:i,normalizeDouble:n,normalize:o}},function(a,e,t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function a(a,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(a,i.key,i)}}return function(e,t,i){return t&&a(e.prototype,t),i&&a(e,i),e}}(),o=t(2),r=u(t(83)),s=u(t(802)),d=u(t(107)),l=t(38),c=u(t(34));function u(a){return a&&a.__esModule?a:{default:a}}var p=function(a){function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var t=function(a,e){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":i(e))&&"function"!=typeof e?a:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this)),n={parameters:{recommendedMinimum:1,recommendedMaximum:4,acceptableMaximum:8},parametersNoFunctionWordSupport:{recommendedMaximum:6,acceptableMaximum:9},scores:{veryBad:-999,bad:3,okay:6,good:9},urlTitle:(0,l.createAnchorOpeningTag)("https://yoa.st/33i"),urlCallToAction:(0,l.createAnchorOpeningTag)("https://yoa.st/33j"),isRelatedKeyphrase:!1};return t.identifier="keyphraseLength",t._config=(0,o.merge)(n,a),t}return function(a,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":i(e)));a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(a,e):a.__proto__=e)}(e,r.default),n(e,[{key:"getResult",value:function(a,e,t){this._keyphraseLength=e.getResearch("keyphraseLength");var i=new c.default;this._boundaries=this._config.parameters,!1===(0,s.default)().includes((0,d.default)(a.getLocale()))&&(this._boundaries=(0,o.merge)({},this._config.parameters,this._config.parametersNoFunctionWordSupport));var n=this.calculateResult(t);return(0,o.isUndefined)(n)||(i.setScore(n.score),i.setText(n.resultText)),i}},{key:"calculateResult",value:function(a){return this._keyphraseLength<this._boundaries.recommendedMinimum?this._config.isRelatedKeyphrase?{score:this._config.scores.veryBad,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase length%3$s: %2$sSet a keyphrase in order to calculate your SEO score%3$s."),this._config.urlTitle,this._config.urlCallToAction,"</a>")}:{score:this._config.scores.veryBad,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase length%3$s: No focus keyphrase was set for this page. %2$sSet a keyphrase in order to calculate your SEO score%3$s."),this._config.urlTitle,this._config.urlCallToAction,"</a>")}:(0,o.inRange)(this._keyphraseLength,this._boundaries.recommendedMinimum,this._boundaries.recommendedMaximum+1)?{score:this._config.scores.good,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase length%2$s: Good job!"),this._config.urlTitle,"</a>")}:(0,o.inRange)(this._keyphraseLength,this._boundaries.recommendedMaximum+1,this._boundaries.acceptableMaximum+1)?{score:this._config.scores.okay,resultText:a.sprintf(a.dgettext("js-text-analysis","%3$sKeyphrase length%5$s: The keyphrase is %1$d words long. That's more than the recommended maximum of %2$d words. %4$sMake it shorter%5$s!"),this._keyphraseLength,this._boundaries.recommendedMaximum,this._config.urlTitle,this._config.urlCallToAction,"</a>")}:{score:this._config.scores.bad,resultText:a.sprintf(a.dgettext("js-text-analysis","%3$sKeyphrase length%5$s: The keyphrase is %1$d words long. That's way more than the recommended maximum of %2$d words. %4$sMake it shorter%5$s!"),this._keyphraseLength,this._boundaries.recommendedMaximum,this._config.urlTitle,this._config.urlCallToAction,"</a>")}}}]),e}();e.default=p},function(a,e,t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function a(a,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(a,i.key,i)}}return function(e,t,i){return t&&a(e.prototype,t),i&&a(e,i),e}}(),o=t(2),r=m(t(1041)),s=m(t(83)),d=m(t(107)),l=m(t(816)),c=m(t(34)),u=t(243),p=t(38),z=m(t(815)),g=m(t(294));function m(a){return a&&a.__esModule?a:{default:a}}var f=function(a){function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var t=function(a,e){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":i(e))&&"function"!=typeof e?a:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this)),n={parameters:{noWordForms:{overMaximum:4,maximum:3,minimum:.5},multipleWordForms:{overMaximum:4,maximum:3.5,minimum:.5}},scores:{wayOverMaximum:-50,overMaximum:-10,correctDensity:9,underMinimum:4},urlTitle:(0,p.createAnchorOpeningTag)("https://yoa.st/33v"),urlCallToAction:(0,p.createAnchorOpeningTag)("https://yoa.st/33w")};return t.identifier="keywordDensity",t._config=(0,o.merge)(n,a),t}return function(a,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":i(e)));a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(a,e):a.__proto__=e)}(e,s.default),n(e,[{key:"setBoundaries",value:function(a,e){this._hasMorphologicalForms?this._boundaries=this._config.parameters.multipleWordForms:this._boundaries=this._config.parameters.noWordForms,this._minRecommendedKeywordCount=(0,r.default)(a,e,this._boundaries.minimum,"min"),this._maxRecommendedKeywordCount=(0,r.default)(a,e,this._boundaries.maximum,"max")}},{key:"getResult",value:function(a,e,t){this._hasMorphologicalForms=!1!==e.getData("morphology")&&(0,l.default)().includes((0,d.default)(a.getLocale())),this._keywordCount=e.getResearch("keywordCount");var i=this._keywordCount.length;this.setBoundaries(a.getText(),i);var n=new c.default;this._keywordDensity=e.getResearch("getKeywordDensity"),this._keywordDensity=this._keywordDensity*(0,z.default)(i);var o=this.calculateResult(t);return n.setScore(o.score),n.setText(o.resultText),n.setHasMarks(this._keywordCount.count>0),n}},{key:"hasNoMatches",value:function(){return 0===this._keywordCount.count}},{key:"hasTooFewMatches",value:function(){return(0,u.inRangeStartInclusive)(this._keywordDensity,0,this._boundaries.minimum)||1===this._keywordCount.count}},{key:"hasGoodNumberOfMatches",value:function(){return(0,u.inRangeStartEndInclusive)(this._keywordDensity,this._boundaries.minimum,this._boundaries.maximum)||2===this._keywordCount.count&&this._minRecommendedKeywordCount<=2}},{key:"hasTooManyMatches",value:function(){return(0,u.inRangeEndInclusive)(this._keywordDensity,this._boundaries.maximum,this._boundaries.overMaximum)}},{key:"calculateResult",value:function(a){return this.hasNoMatches()?{score:this._config.scores.underMinimum,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase density%2$s: The focus keyphrase was found 0 times. That's less than the recommended minimum of %3$d times for a text of this length. %4$sFocus on your keyphrase%2$s!"),this._config.urlTitle,"</a>",this._minRecommendedKeywordCount,this._config.urlCallToAction)}:this.hasTooFewMatches()?{score:this._config.scores.underMinimum,resultText:a.sprintf(a.dngettext("js-text-analysis","%1$sKeyphrase density%2$s: The focus keyphrase was found %5$d time. That's less than the recommended minimum of %3$d times for a text of this length. %4$sFocus on your keyphrase%2$s!","%1$sKeyphrase density%2$s: The focus keyphrase was found %5$d times. That's less than the recommended minimum of %3$d times for a text of this length. %4$sFocus on your keyphrase%2$s!",this._keywordCount.count),this._config.urlTitle,"</a>",this._minRecommendedKeywordCount,this._config.urlCallToAction,this._keywordCount.count)}:this.hasGoodNumberOfMatches()?{score:this._config.scores.correctDensity,resultText:a.sprintf(a.dngettext("js-text-analysis","%1$sKeyphrase density%2$s: The focus keyphrase was found %3$d time. This is great!","%1$sKeyphrase density%2$s: The focus keyphrase was found %3$d times. This is great!",this._keywordCount.count),this._config.urlTitle,"</a>",this._keywordCount.count)}:this.hasTooManyMatches()?{score:this._config.scores.overMaximum,resultText:a.sprintf(a.dngettext("js-text-analysis","%1$sKeyphrase density%2$s: The focus keyphrase was found %5$d time. That's more than the recommended maximum of %3$d times for a text of this length. %4$sDon't overoptimize%2$s!","%1$sKeyphrase density%2$s: The focus keyphrase was found %5$d times. That's more than the recommended maximum of %3$d times for a text of this length. %4$sDon't overoptimize%2$s!",this._keywordCount.count),this._config.urlTitle,"</a>",this._maxRecommendedKeywordCount,this._config.urlCallToAction,this._keywordCount.count)}:{score:this._config.scores.wayOverMaximum,resultText:a.sprintf(a.dngettext("js-text-analysis","%1$sKeyphrase density%2$s: The focus keyphrase was found %5$d time. That's way more than the recommended maximum of %3$d times for a text of this length. %4$sDon't overoptimize%2$s!","%1$sKeyphrase density%2$s: The focus keyphrase was found %5$d times. That's way more than the recommended maximum of %3$d times for a text of this length. %4$sDon't overoptimize%2$s!",this._keywordCount.count),this._config.urlTitle,"</a>",this._maxRecommendedKeywordCount,this._config.urlCallToAction,this._keywordCount.count)}}},{key:"getMarks",value:function(){return this._keywordCount.markings}},{key:"isApplicable",value:function(a){return a.hasText()&&a.hasKeyword()&&(0,g.default)(a.getText())>=100}}]),e}();e.default=f},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a){var e,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return"(^|"+(e='[ \\u00a0 \\n\\r\\t.,()”“〝〞〟‟„"+\\-;!¡?¿:/»«‹›'+(arguments.length>2&&void 0!==arguments[2]?arguments[2]:"")+"<>")+"'‘’‛`])"+a+(t?"($|((?="+e+"]))|((['‘’‛`])("+e+"])))":"($|("+e+"])|((['‘’‛`])("+e+"])))")}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a){for(var e=(0,i.default)(),t=0;t<e.length;t++)a=a.replace(e[t].letters,e[t].base);return a};var i=function(a){return a&&a.__esModule?a:{default:a}}(t(748))},function(a,e,t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function a(a,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(a,i.key,i)}}return function(e,t,i){return t&&a(e.prototype,t),i&&a(e,i),e}}(),o=t(2),r=l(t(83)),s=t(38),d=l(t(34));function l(a){return a&&a.__esModule?a:{default:a}}var c=function(a){function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var t=function(a,e){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":i(e))&&"function"!=typeof e?a:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this)),n={parameters:{recommendedMinimum:1},scores:{good:9,ok:6,bad:3},urlTitle:(0,s.createAnchorOpeningTag)("https://yoa.st/33k"),urlCallToAction:(0,s.createAnchorOpeningTag)("https://yoa.st/33l")};return t.identifier="metaDescriptionKeyword",t._config=(0,o.merge)(n,a),t}return function(a,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":i(e)));a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(a,e):a.__proto__=e)}(e,r.default),n(e,[{key:"getResult",value:function(a,e,t){this._keyphraseCounts=e.getResearch("metaDescriptionKeyword");var i=new d.default,n=this.calculateResult(t);return i.setScore(n.score),i.setText(n.resultText),i}},{key:"calculateResult",value:function(a){return 1===this._keyphraseCounts||2===this._keyphraseCounts?{score:this._config.scores.good,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase in meta description%2$s: Keyphrase or synonym appear in the meta description. Well done!"),this._config.urlTitle,"</a>")}:this._keyphraseCounts>=3?{score:this._config.scores.bad,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase in meta description%2$s: The meta description contains the keyphrase %3$s times, which is over the advised maximum of 2 times. %4$sLimit that%5$s!"),this._config.urlTitle,"</a>",this._keyphraseCounts,this._config.urlCallToAction,"</a>")}:{score:this._config.scores.bad,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase in meta description%2$s: The meta description has been specified, but it does not contain the keyphrase. %3$sFix that%4$s!"),this._config.urlTitle,"</a>",this._config.urlCallToAction,"</a>")}}},{key:"isApplicable",value:function(a){return a.hasKeyword()&&a.hasDescription()}}]),e}();e.default=c},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a,e,t){var o=(0,n.default)(a),p=[];return(0,i.forEach)(o,function(i){var n="";if(0!==g(i,t).length&&(n="regular"),0!==m(i,t).length&&(n="irregular"),""!==n)switch(t){case"fr":p.push(new s.default(i,a,{auxiliaries:e,type:n,language:t}));break;case"es":p.push(new d.default(i,a,{auxiliaries:e,type:n,language:t}));break;case"it":p.push(new l.default(i,a,{auxiliaries:e,type:n,language:t}));break;case"nl":p.push(new c.default(i,a,{auxiliaries:e,type:n,language:t}));break;case"pl":p.push(new u.default(i,a,{auxiliaries:e,type:n,language:t}));break;case"en":default:p.push(new r.default(i,a,{auxiliaries:e,type:n,language:t}))}}),p};var i=t(2),n=p(t(155)),o=p(t(1152)),r=p(t(1159)),s=p(t(1162)),d=p(t(1164)),l=p(t(1165)),c=p(t(1166)),u=p(t(1168));function p(a){return a&&a.__esModule?a:{default:a}}var z=(0,o.default)(),g=z.regularParticiples,m=z.irregularParticiples},,,,,,,,,,function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a,e){var t=(0,n.default)(a);return(0,i.indexOf)(e,t)>-1};var i=t(2),n=function(a){return a&&a.__esModule?a:{default:a}}(t(107))},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getBlocks=e.isInlineElement=e.isBlockElement=e.inlineElements=e.blockElements=void 0;var i=function(a){return a&&a.__esModule?a:{default:a}}(t(507)),n=t(2);var o,r=["address","article","aside","blockquote","canvas","dd","div","dl","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","li","main","nav","noscript","ol","output","p","pre","section","table","tfoot","ul","video"],s=["b","big","i","small","tt","abbr","acronym","cite","code","dfn","em","kbd","strong","samp","time","var","a","bdo","br","img","map","object","q","script","span","sub","sup","button","input","label","select","textarea"],d=new RegExp("^("+r.join("|")+")$","i"),l=new RegExp("^("+s.join("|")+")$","i"),c=new RegExp("^<("+r.join("|")+")[^>]*?>$","i"),u=new RegExp("^</("+r.join("|")+")[^>]*?>$","i"),p=new RegExp("^<("+s.join("|")+")[^>]*>$","i"),z=new RegExp("^</("+s.join("|")+")[^>]*>$","i"),g=/^<([^>\s/]+)[^>]*>$/,m=/^<\/([^>\s]+)[^>]*>$/,f=/^[^<]+$/,y=/^<[^><]*$/,w=/<!--(.|[\r\n])*?-->/g,b=[];function h(a){return d.test(a)}function v(a){return l.test(a)}var k=(0,n.memoize)(function(a){var e=[],t=0,r="",s="",d="";return a=a.replace(w,""),b=[],(o=(0,i.default)(function(a){b.push(a)})).addRule(f,"content"),o.addRule(y,"greater-than-sign-content"),o.addRule(c,"block-start"),o.addRule(u,"block-end"),o.addRule(p,"inline-start"),o.addRule(z,"inline-end"),o.addRule(g,"other-element-start"),o.addRule(m,"other-element-end"),o.onText(a),o.end(),(0,n.forEach)(b,function(a,i){var n=b[i+1];switch(a.type){case"content":case"greater-than-sign-content":case"inline-start":case"inline-end":case"other-tag":case"other-element-start":case"other-element-end":case"greater than sign":n&&(0!==t||"block-start"!==n.type&&"block-end"!==n.type)?s+=a.src:(s+=a.src,e.push(s),r="",s="",d="");break;case"block-start":0!==t&&(""!==s.trim()&&e.push(s),s="",d=""),t++,r=a.src;break;case"block-end":t--,d=a.src,""!==r&&""!==d?e.push(r+s+d):""!==s.trim()&&e.push(s),r="",s="",d=""}t<0&&(t=0)}),e});e.blockElements=r,e.inlineElements=s,e.isBlockElement=h,e.isInlineElement=v,e.getBlocks=k,e.default={blockElements:r,inlineElements:s,isBlockElement:h,isInlineElement:v,getBlocks:k}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a){return Math.round(a)===a?Math.round(a):Math.round(10*a)/10}},function(a,e){a.exports={Text:"text",Directive:"directive",Comment:"comment",Script:"script",Style:"style",Tag:"tag",CDATA:"cdata",Doctype:"doctype",isTag:function(a){return"tag"===a.type||"script"===a.type||"style"===a.type}}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){(0,i.isEmpty)(this.getParticiple())?this.setSentencePartPassiveness(!1):this.setSentencePartPassiveness(this.isPassive())};var i=t(2)},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a,e,t){var n=(0,c.default)(a).map(function(a){return a.toLowerCase()}),o=n.indexOf(e.toLowerCase());if(o<1)return!1;var r=n[o-1],s=(0,i.get)(p,t,[]);return(0,i.includes)(s,r)};var i=t(2),n=u(t(806)),o=u(t(741)),r=u(t(744)),s=u(t(743)),d=u(t(745)),l=u(t(742)),c=u(t(155));function u(a){return a&&a.__esModule?a:{default:a}}var p={nl:(0,n.default)().cannotDirectlyPrecedePassiveParticiple,en:(0,o.default)().cannotDirectlyPrecedePassiveParticiple,fr:(0,r.default)().cannotDirectlyPrecedePassiveParticiple,it:(0,s.default)().cannotDirectlyPrecedePassiveParticiple,pl:(0,d.default)().cannotDirectlyPrecedePassiveParticiple,es:(0,l.default)().cannotDirectlyPrecedePassiveParticiple}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(a,e,t){var i=t(179),n=t(23),o=t(255),r=t(256),s=t(257),d=Math.max;a.exports=function(a,e,t,l){a=n(a)?a:s(a),t=t&&!l?r(t):0;var c=a.length;return t<0&&(t=d(c+t,0)),o(a)?t<=c&&a.indexOf(e,t)>-1:!!c&&i(a,e,t)>-1}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(a,e,t){var i=t(141),n=t(475),o=t(140),r=t(3);a.exports=function(a,e){return(r(a)?i:n)(a,o(e,3))}},function(a,e,t){var i=t(129);a.exports=function(a,e){var t=[];return i(a,function(a,i,n){e(a,i,n)&&t.push(a)}),t}},,,,,function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return{en:m,de:g,nl:f,fr:b,es:y,it:w,pt:h,ru:v,pl:k,sv:j}};var i=z(t(1037)),n=z(t(741)),o=z(t(806)),r=z(t(742)),s=z(t(743)),d=z(t(744)),l=z(t(1038)),c=z(t(1039)),u=z(t(745)),p=z(t(1040));function z(a){return a&&a.__esModule?a:{default:a}}var g=(0,i.default)(),m=(0,n.default)(),f=(0,o.default)(),y=(0,r.default)(),w=(0,s.default)(),b=(0,d.default)(),h=(0,l.default)(),v=(0,c.default)(),k=(0,u.default)(),j=(0,p.default)()},function(a,e,t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function a(a,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(a,i.key,i)}}return function(e,t,i){return t&&a(e.prototype,t),i&&a(e,i),e}}(),o=t(2),r=l(t(83)),s=t(38),d=l(t(34));function l(a){return a&&a.__esModule?a:{default:a}}var c=function(a){function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var t=function(a,e){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":i(e))&&"function"!=typeof e?a:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this)),n={parameters:{recommendedMaximum:0},scores:{bad:2},urlTitle:(0,s.createAnchorOpeningTag)("https://yoa.st/34l"),urlCallToAction:(0,s.createAnchorOpeningTag)("https://yoa.st/34m")};return t.identifier="textCompetingLinks",t._config=(0,o.merge)(n,a),t}return function(a,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":i(e)));a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(a,e):a.__proto__=e)}(e,r.default),n(e,[{key:"getResult",value:function(a,e,t){var i=new d.default;this.linkCount=e.getResearch("getLinkStatistics");var n=this.calculateResult(t);return(0,o.isUndefined)(n)?i:(i.setScore(n.score),i.setText(n.resultText),i.setHasMarks(!1),i)}},{key:"isApplicable",value:function(a){return a.hasText()&&a.hasKeyword()}},{key:"calculateResult",value:function(a){if(this.linkCount.keyword.totalKeyword>this._config.parameters.recommendedMaximum)return{score:this._config.scores.bad,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sLink keyphrase%3$s: You're linking to another page with the words you want this page to rank for. %2$sDon't do that%3$s!"),this._config.urlTitle,this._config.urlCallToAction,"</a>")}}}]),e}();e.default=c},function(a,e,t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function a(a,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(a,i.key,i)}}return function(e,t,i){return t&&a(e.prototype,t),i&&a(e,i),e}}(),o=t(2),r=c(t(83)),s=t(243),d=t(38),l=c(t(34));function c(a){return a&&a.__esModule?a:{default:a}}var u=function(a){function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var t=function(a,e){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":i(e))&&"function"!=typeof e?a:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this)),n={parameters:{lowerBoundary:.3,upperBoundary:.75},scores:{noImages:3,withAltGoodNumberOfKeywordMatches:9,withAltTooFewKeywordMatches:6,withAltTooManyKeywordMatches:6,withAltNonKeyword:6,withAlt:6,noAlt:6},urlTitle:(0,d.createAnchorOpeningTag)("https://yoa.st/33c"),urlCallToAction:(0,d.createAnchorOpeningTag)("https://yoa.st/33d")};return t.identifier="textImages",t._config=(0,o.merge)(n,a),t}return function(a,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":i(e)));a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(a,e):a.__proto__=e)}(e,r.default),n(e,[{key:"getResult",value:function(a,e,t){this.imageCount=e.getResearch("imageCount"),this.altProperties=e.getResearch("altTagCount"),this._minNumberOfKeywordMatches=Math.ceil(this.imageCount*this._config.parameters.lowerBoundary),this._maxNumberOfKeywordMatches=Math.floor(this.imageCount*this._config.parameters.upperBoundary);var i=this.calculateResult(t),n=new l.default;return n.setScore(i.score),n.setText(i.resultText),n}},{key:"isApplicable",value:function(a){return a.hasText()}},{key:"hasTooFewMatches",value:function(){return this.imageCount>4&&this.altProperties.withAltKeyword>0&&this.altProperties.withAltKeyword<this._minNumberOfKeywordMatches}},{key:"hasGoodNumberOfMatches",value:function(){return this.imageCount<5&&this.altProperties.withAltKeyword>0||5===this.imageCount&&(0,s.inRangeStartEndInclusive)(this.altProperties.withAltKeyword,2,4)||this.imageCount>4&&(0,s.inRangeStartEndInclusive)(this.altProperties.withAltKeyword,this._minNumberOfKeywordMatches,this._maxNumberOfKeywordMatches)}},{key:"hasTooManyMatches",value:function(){return this.imageCount>4&&this.altProperties.withAltKeyword>this._maxNumberOfKeywordMatches}},{key:"calculateResult",value:function(a){return 0===this.imageCount?{score:this._config.scores.noImages,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sImage alt attributes%3$s: No images appear on this page. %2$sAdd some%3$s!"),this._config.urlTitle,this._config.urlCallToAction,"</a>")}:this.altProperties.withAlt>0?{score:this._config.scores.withAlt,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sImage alt attributes%3$s: Images on this page have alt attributes, but you have not set your keyphrase. %2$sFix that%3$s!"),this._config.urlTitle,this._config.urlCallToAction,"</a>")}:this.altProperties.withAltNonKeyword>0&&0===this.altProperties.withAltKeyword?{score:this._config.scores.withAltNonKeyword,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sImage alt attributes%3$s: Images on this page do not have alt attributes that reflect the topic of your text. %2$sAdd your keyphrase or synonyms to the alt tags of relevant images%3$s!"),this._config.urlTitle,this._config.urlCallToAction,"</a>")}:this.hasTooFewMatches()?{score:this._config.scores.withAltTooFewKeywordMatches,resultText:a.sprintf(a.dngettext("js-text-analysis","%3$sImage alt attributes%5$s: Out of %2$d images on this page, only %1$d has an alt attribute that reflects the topic of your text. %4$sAdd your keyphrase or synonyms to the alt tags of more relevant images%5$s!","%3$sImage alt attributes%5$s: Out of %2$d images on this page, only %1$d have alt attributes that reflect the topic of your text. %4$sAdd your keyphrase or synonyms to the alt tags of more relevant images%5$s!",this.altProperties.withAltKeyword),this.altProperties.withAltKeyword,this.imageCount,this._config.urlTitle,this._config.urlCallToAction,"</a>")}:this.hasGoodNumberOfMatches()?{score:this._config.scores.withAltGoodNumberOfKeywordMatches,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sImage alt attributes%2$s: Good job!"),this._config.urlTitle,"</a>")}:this.hasTooManyMatches()?{score:this._config.scores.withAltTooManyKeywordMatches,resultText:a.sprintf(a.dgettext("js-text-analysis","%3$sImage alt attributes%5$s: Out of %2$d images on this page, %1$d have alt attributes with words from your keyphrase or synonyms. That's a bit much. %4$sOnly include the keyphrase or its synonyms when it really fits the image%5$s."),this.altProperties.withAltKeyword,this.imageCount,this._config.urlTitle,this._config.urlCallToAction,"</a>")}:{score:this._config.scores.noAlt,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sImage alt attributes%3$s: Images on this page do not have alt attributes that reflect the topic of your text. %2$sAdd your keyphrase or synonyms to the alt tags of relevant images%3$s!"),this._config.urlTitle,this._config.urlCallToAction,"</a>")}}}]),e}();e.default=u},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a,e){for(var t=(0,i.default)(e),n=0;n<t.length;n++)a=a.replace(t[n].letter,t[n].alternative);return a};var i=function(a){return a&&a.__esModule?a:{default:a}}(t(752))},function(a,e,t){var i=t(830),n=t(834);function o(e,t){return delete a.exports[e],a.exports[e]=t,t}a.exports={Parser:i,Tokenizer:t(831),ElementType:t(381),DomHandler:n,get FeedHandler(){return o("FeedHandler",t(1075))},get Stream(){return o("Stream",t(1086))},get WritableStream(){return o("WritableStream",t(837))},get ProxyHandler(){return o("ProxyHandler",t(1093))},get DomUtils(){return o("DomUtils",t(836))},get CollectingHandler(){return o("CollectingHandler",t(1094))},DefaultHandler:n,get RssHandler(){return o("RssHandler",this.FeedHandler)},parseDOM:function(a,e){var t=new n(e);return new i(t,e).end(a),t.dom},parseFeed:function(e,t){var n=new a.exports.FeedHandler(t);return new i(n,t).end(e),n.dom},createDomStream:function(a,e,t){var o=new n(a,e,t);return new i(o,e)},EVENTS:{attribute:2,cdatastart:0,cdataend:0,text:1,processinginstruction:2,comment:1,commentend:0,closetag:1,opentag:2,opentagname:1,error:1,end:0}}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a,e){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"en_EN",d=0,l=[];return e=e.map(r.normalize),(0,s.uniq)(e).forEach(function(e){var i=(0,o.default)(a,e,t);d+=i.count,l=l.concat(i.matches)}),null===l&&(l=[]),l=l.map(function(a){return(0,i.default)((0,n.default)(a))}),{count:d,matches:l}};var i=d(t(108)),n=d(t(737)),o=d(t(844)),r=t(362),s=t(2);function d(a){return a&&a.__esModule?a:{default:a}}},,,,,,,,,,,,,,,,,,,,,,function(a,e){var t=function(a,e){var t;for(t=0;t<a.length;t++)if(a[t].regex.test(e))return a[t]},i=function(a,e){var i,n,o;for(i=0;i<e.length;i++)if(n=t(a,e.substring(0,i+1)))o=n;else if(o)return{max_index:i,rule:o};return o?{max_index:e.length,rule:o}:void 0};a.exports=function(a){var e="",n=[],o=1,r=1,s=function(e,t){a({type:t,src:e,line:o,col:r});var i=e.split("\n");o+=i.length-1,r=(i.length>1?1:r)+i[i.length-1].length};return{addRule:function(a,e){n.push({regex:a,type:e})},onText:function(a){for(var t=e+a,o=i(n,t);o&&o.max_index!==t.length;)s(t.substring(0,o.max_index),o.rule.type),t=t.substring(o.max_index),o=i(n,t);e=t},end:function(){if(0!==e.length){var a=t(n,e);if(!a){var i=new Error("unable to tokenize");throw i.tokenizer2={buffer:e,line:o,col:r},i}s(e,a.type)}}}}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return{participleLike:i,otherAuxiliaries:n.concat(o),filteredAuxiliaries:i.concat(n),infinitiveAuxiliaries:o,allAuxiliaries:i.concat(n,o)}};var i=["bekommst","bekommt","bekamst","bekommest","bekommet","bekämest","bekämst","bekämet","bekämt","gekriegt","gehörst","gehört","gehörtest","gehörtet","gehörest","gehöret","erhältst","erhält","erhaltet","erhielt","erhieltest","erhieltst","erhieltet","erhaltest"],n=["werde","wirst","wird","werden","werdet","wurde","ward","wurdest","wardst","wurden","wurdet","worden","werdest","würde","würdest","würden","würdet","bekomme","bekommen","bekam","bekamen","bekäme","bekämen","kriege","kriegst","kriegt","kriegen","kriegte","kriegtest","kriegten","kriegtet","kriegest","krieget","gehöre","gehören","gehörte","gehörten","erhalte","erhalten","erhielten","erhielte"],o=["werden","bekommen","kriegen","gehören","erhalten"]},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a){return a.map(function(a){return 2===a.length?{reg:new RegExp(a[0],"i"),repl:a[1]}:3===a.length?{reg:new RegExp(a[0],"i"),repl1:a[1],repl2:a[2]}:void 0})}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a){return a=(0,i.stripFullTags)(a),a=(0,n.default)(a)};var i=t(154),n=function(a){return a&&a.__esModule?a:{default:a}}(t(108))},function(a,e,t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function a(a,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(a,i.key,i)}}return function(e,t,i){return t&&a(e.prototype,t),i&&a(e,i),e}}(),o=t(2),r=c(t(83)),s=c(t(749)),d=t(38),l=c(t(34));function c(a){return a&&a.__esModule?a:{default:a}}var u=s.default.maxMeta,p=function(a){function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var t=function(a,e){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":i(e))&&"function"!=typeof e?a:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this)),n={recommendedMaximumLength:120,maximumLength:u,scores:{noMetaDescription:1,tooLong:6,tooShort:6,correctLength:9},urlTitle:(0,d.createAnchorOpeningTag)("https://yoa.st/34d"),urlCallToAction:(0,d.createAnchorOpeningTag)("https://yoa.st/34e")};return t.identifier="metaDescriptionLength",t._config=(0,o.merge)(n,a),t}return function(a,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":i(e)));a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(a,e):a.__proto__=e)}(e,r.default),n(e,[{key:"getMaximumLength",value:function(){return this._config.maximumLength}},{key:"getResult",value:function(a,e,t){var i=e.getResearch("metaDescriptionLength"),n=new l.default;return n.setScore(this.calculateScore(i)),n.setText(this.translateScore(i,t)),n.max=this._config.maximumLength,n.actual=i,n}},{key:"calculateScore",value:function(a){return 0===a?this._config.scores.noMetaDescription:a<=this._config.recommendedMaximumLength?this._config.scores.tooShort:a>this._config.maximumLength?this._config.scores.tooLong:a>=this._config.recommendedMaximumLength&&a<=this._config.maximumLength?this._config.scores.correctLength:0}},{key:"translateScore",value:function(a,e){return 0===a?e.sprintf(e.dgettext("js-text-analysis","%1$sMeta description length%3$s: No meta description has been specified. Search engines will display copy from the page instead. %2$sMake sure to write one%3$s!"),this._config.urlTitle,this._config.urlCallToAction,"</a>"):a<=this._config.recommendedMaximumLength?e.sprintf(e.dgettext("js-text-analysis","%1$sMeta description length%3$s: The meta description is too short (under %4$d characters). Up to %5$d characters are available. %2$sUse the space%3$s!"),this._config.urlTitle,this._config.urlCallToAction,"</a>",this._config.recommendedMaximumLength,this._config.maximumLength):a>this._config.maximumLength?e.sprintf(e.dgettext("js-text-analysis","%1$sMeta description length%3$s: The meta description is over %4$d characters. To ensure the entire description will be visible, %2$syou should reduce the length%3$s!"),this._config.urlTitle,this._config.urlCallToAction,"</a>",this._config.maximumLength):a>=this._config.recommendedMaximumLength&&a<=this._config.maximumLength?e.sprintf(e.dgettext("js-text-analysis","%1$sMeta description length%2$s: Well done!"),this._config.urlTitle,"</a>"):void 0}}]),e}();e.default=p},function(a,e,t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function a(a,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(a,i.key,i)}}return function(e,t,i){return t&&a(e.prototype,t),i&&a(e,i),e}}(),o=t(2),r=c(t(83)),s=t(243),d=t(38),l=c(t(34));function c(a){return a&&a.__esModule?a:{default:a}}var u=600,p=function(a){function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var t=function(a,e){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":i(e))&&"function"!=typeof e?a:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this)),n={minLength:400,maxLength:u,scores:{noTitle:1,widthTooShort:6,widthTooLong:3,widthCorrect:9},urlTitle:(0,d.createAnchorOpeningTag)("https://yoa.st/34h"),urlCallToAction:(0,d.createAnchorOpeningTag)("https://yoa.st/34i")};return t.identifier="titleWidth",t._config=(0,o.merge)(n,a),t}return function(a,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":i(e)));a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(a,e):a.__proto__=e)}(e,r.default),n(e,[{key:"getMaximumLength",value:function(){return u}},{key:"getResult",value:function(a,e,t){var i=e.getResearch("pageTitleWidth"),n=new l.default;return n.setScore(this.calculateScore(i)),n.setText(this.translateScore(i,t)),n.max=this._config.maxLength,n.actual=i,n}},{key:"calculateScore",value:function(a){return(0,s.inRangeEndInclusive)(a,1,400)?this._config.scores.widthTooShort:(0,s.inRangeEndInclusive)(a,this._config.minLength,this._config.maxLength)?this._config.scores.widthCorrect:a>this._config.maxLength?this._config.scores.widthTooLong:this._config.scores.noTitle}},{key:"translateScore",value:function(a,e){return(0,s.inRangeEndInclusive)(a,1,400)?e.sprintf(e.dgettext("js-text-analysis","%1$sSEO title width%3$s: The SEO title is too short. %2$sUse the space to add keyphrase variations or create compelling call-to-action copy%3$s."),this._config.urlTitle,this._config.urlCallToAction,"</a>"):(0,s.inRangeEndInclusive)(a,this._config.minLength,this._config.maxLength)?e.sprintf(e.dgettext("js-text-analysis","%1$sSEO title width%2$s: Good job!"),this._config.urlTitle,"</a>"):a>this._config.maxLength?e.sprintf(e.dgettext("js-text-analysis","%1$sSEO title width%3$s: The SEO title is wider than the viewable limit. %2$sTry to make it shorter%3$s."),this._config.urlTitle,this._config.urlCallToAction,"</a>"):e.sprintf(e.dgettext("js-text-analysis","%1$sSEO title width%3$s: %2$sPlease create an SEO title%3$s."),this._config.urlTitle,this._config.urlCallToAction,"</a>")}}]),e}();e.default=p},function(a,e,t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function a(a,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(a,i.key,i)}}return function(e,t,i){return t&&a(e.prototype,t),i&&a(e,i),e}}(),o=t(2),r=u(t(83)),s=t(38),d=u(t(359)),l=u(t(34)),c=u(t(242));function u(a){return a&&a.__esModule?a:{default:a}}var p=function(a){function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var t=function(a,e){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":i(e))&&"function"!=typeof e?a:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this)),n={scores:{textContainsSuperfluousH1:1},urlTitle:(0,s.createAnchorOpeningTag)("https://yoa.st/3a6"),urlCallToAction:(0,s.createAnchorOpeningTag)("https://yoa.st/3a7")};return t.identifier="singleH1",t._config=(0,o.merge)(n,a),t}return function(a,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":i(e)));a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(a,e):a.__proto__=e)}(e,r.default),n(e,[{key:"getResult",value:function(a,e,t){this._h1s=e.getResearch("h1s");var i=new l.default,n=this.calculateResult(t);return(0,o.isUndefined)(n)||(i.setScore(n.score),i.setText(n.resultText),i.setHasMarks(!0)),i}},{key:"firstH1AtBeginning",value:function(){return 0===this._h1s[0].position}},{key:"calculateResult",value:function(a){if(0!==this._h1s.length&&(1!==this._h1s.length||!this.firstH1AtBeginning()))return{score:this._config.scores.textContainsSuperfluousH1,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sSingle title%3$s: H1s should only be used as your main title. Find all H1s in your text that aren't your main title and %2$schange them to a lower heading level%3$s!"),this._config.urlTitle,this._config.urlCallToAction,"</a>")}}},{key:"getMarks",value:function(){var a=this._h1s;return this.firstH1AtBeginning()&&a.shift(),(0,o.map)(a,function(a){return new c.default({original:"<h1>"+a.content+"</h1>",marked:"<h1>"+(0,d.default)(a.content)+"</h1>"})})}},{key:"isApplicable",value:function(a){return a.hasText()}}]),e}();e.default=p},function(a,e,t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function a(a,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(a,i.key,i)}}return function(e,t,i){return t&&a(e.prototype,t),i&&a(e,i),e}}(),o=t(2),r=l(t(83)),s=t(38),d=l(t(34));function l(a){return a&&a.__esModule?a:{default:a}}var c=function(a){function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var t=function(a,e){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":i(e))&&"function"!=typeof e?a:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this)),n={recommendedMinimum:300,slightlyBelowMinimum:250,belowMinimum:200,veryFarBelowMinimum:100,scores:{recommendedMinimum:9,slightlyBelowMinimum:6,belowMinimum:3,farBelowMinimum:-10,veryFarBelowMinimum:-20},urlTitle:(0,s.createAnchorOpeningTag)("https://yoa.st/34n"),urlCallToAction:(0,s.createAnchorOpeningTag)("https://yoa.st/34o"),cornerstoneContent:!1};return t.identifier="textLength",t._config=(0,o.merge)(n,a),t}return function(a,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":i(e)));a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(a,e):a.__proto__=e)}(e,r.default),n(e,[{key:"getResult",value:function(a,e,t){var i=e.getResearch("wordCountInText"),n=new d.default,o=this.calculateResult(i,t);return n.setScore(o.score),n.setText(o.resultText),n}},{key:"calculateResult",value:function(a,e){if(a>=this._config.recommendedMinimum)return{score:this._config.scores.recommendedMinimum,resultText:e.sprintf(e.dngettext("js-text-analysis","%2$sText length%3$s: The text contains %1$d word. Good job!","%2$sText length%3$s: The text contains %1$d words. Good job!",a),a,this._config.urlTitle,"</a>")};if((0,o.inRange)(a,0,this._config.belowMinimum)){var t=this._config.scores.farBelowMinimum;return(0,o.inRange)(a,0,this._config.veryFarBelowMinimum)&&(t=this._config.scores.veryFarBelowMinimum),{score:t,resultText:e.sprintf(e.dngettext("js-text-analysis","%2$sText length%4$s: The text contains %1$d word.","%2$sText length%4$s: The text contains %1$d words.",a)+" "+e.dngettext("js-text-analysis","This is far below the recommended minimum of %5$d word. %3$sAdd more content%4$s.","This is far below the recommended minimum of %5$d words. %3$sAdd more content%4$s.",this._config.recommendedMinimum),a,this._config.urlTitle,this._config.urlCallToAction,"</a>",this._config.recommendedMinimum)}}return(0,o.inRange)(a,this._config.slightlyBelowMinimum,this._config.recommendedMinimum)?!1===this._config.cornerstoneContent?{score:this._config.scores.slightlyBelowMinimum,resultText:e.sprintf(e.dngettext("js-text-analysis","%2$sText length%4$s: The text contains %1$d word.","%2$sText length%4$s: The text contains %1$d words.",a)+" "+e.dngettext("js-text-analysis","This is slightly below the recommended minimum of %5$d word. %3$sAdd a bit more copy%4$s.","This is slightly below the recommended minimum of %5$d words. %3$sAdd a bit more copy%4$s.",this._config.recommendedMinimum),a,this._config.urlTitle,this._config.urlCallToAction,"</a>",this._config.recommendedMinimum)}:{score:this._config.scores.slightlyBelowMinimum,resultText:e.sprintf(e.dngettext("js-text-analysis","%2$sText length%4$s: The text contains %1$d word.","%2$sText length%4$s: The text contains %1$d words.",a)+" "+e.dngettext("js-text-analysis","This is below the recommended minimum of %5$d word. %3$sAdd more content%4$s.","This is below the recommended minimum of %5$d words. %3$sAdd more content%4$s.",this._config.recommendedMinimum),a,this._config.urlTitle,this._config.urlCallToAction,"</a>",this._config.recommendedMinimum)}:{score:this._config.scores.belowMinimum,resultText:e.sprintf(e.dngettext("js-text-analysis","%2$sText length%4$s: The text contains %1$d word.","%2$sText length%4$s: The text contains %1$d words.",a)+" "+e.dngettext("js-text-analysis","This is below the recommended minimum of %5$d word. %3$sAdd more content%4$s.","This is below the recommended minimum of %5$d words. %3$sAdd more content%4$s.",this._config.recommendedMinimum),a,this._config.urlTitle,this._config.urlCallToAction,"</a>",this._config.recommendedMinimum)}}}]),e}();e.default=c},function(a,e,t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function a(a,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(a,i.key,i)}}return function(e,t,i){return t&&a(e.prototype,t),i&&a(e,i),e}}(),o=t(2),r=l(t(83)),s=t(38),d=l(t(34));function l(a){return a&&a.__esModule?a:{default:a}}var c=function(a){function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var t=function(a,e){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":i(e))&&"function"!=typeof e?a:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this)),n={parameters:{recommendedPosition:0},scores:{good:9,okay:6,bad:2},urlTitle:(0,s.createAnchorOpeningTag)("https://yoa.st/33g"),urlCallToAction:(0,s.createAnchorOpeningTag)("https://yoa.st/33h")};return t.identifier="titleKeyword",t._config=(0,o.merge)(n,a),t}return function(a,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":i(e)));a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(a,e):a.__proto__=e)}(e,r.default),n(e,[{key:"getResult",value:function(a,e,t){this._keywordMatches=e.getResearch("findKeywordInPageTitle"),this._keyword=(0,o.escape)(a.getKeyword());var i=new d.default,n=this.calculateResult(t,this._keyword);return i.setScore(n.score),i.setText(n.resultText),i}},{key:"isApplicable",value:function(a){return a.hasKeyword()&&a.hasTitle()}},{key:"calculateResult",value:function(a,e){var t=this._keywordMatches.exactMatchFound,i=this._keywordMatches.position,n=this._keywordMatches.allWordsFound,o=this._keywordMatches.exactMatchKeyphrase;return!0===t?0===i?{score:this._config.scores.good,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase in title%2$s: The exact match of the keyphrase appears at the beginning of the SEO title. Good job!"),this._config.urlTitle,"</a>")}:{score:this._config.scores.okay,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase in title%3$s: The exact match of the keyphrase appears in the SEO title, but not at the beginning. %2$sTry to move it to the beginning%3$s."),this._config.urlTitle,this._config.urlCallToAction,"</a>")}:n?{score:this._config.scores.okay,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase in title%3$s: Does not contain the exact match. %2$sTry to write the exact match of your keyphrase in the SEO title%3$s."),this._config.urlTitle,this._config.urlCallToAction,"</a>")}:o?{score:this._config.scores.bad,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase in title%3$s: Does not contain the exact match. %2$sTry to write the exact match of your keyphrase in the SEO title%3$s."),this._config.urlTitle,this._config.urlCallToAction,"</a>",e)}:{score:this._config.scores.bad,resultText:a.sprintf(a.dgettext("js-text-analysis",'%1$sKeyphrase in title%3$s: Not all the words from your keyphrase "%4$s" appear in the SEO title. %2$sTry to use the exact match of your keyphrase in the SEO title%3$s.'),this._config.urlTitle,this._config.urlCallToAction,"</a>",e)}}}]),e}();e.default=c},function(a,e,t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function a(a,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(a,i.key,i)}}return function(e,t,i){return t&&a(e.prototype,t),i&&a(e,i),e}}(),o=t(2),r=l(t(83)),s=t(38),d=l(t(34));function l(a){return a&&a.__esModule?a:{default:a}}var c=function(a){function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var t=function(a,e){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":i(e))&&"function"!=typeof e?a:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this)),n={scores:{okay:6,good:9},urlTitle:(0,s.createAnchorOpeningTag)("https://yoa.st/33o"),urlCallToAction:(0,s.createAnchorOpeningTag)("https://yoa.st/33p")};return t.identifier="urlKeyword",t._config=(0,o.merge)(n,a),t}return function(a,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":i(e)));a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(a,e):a.__proto__=e)}(e,r.default),n(e,[{key:"getResult",value:function(a,e,t){this._keywordInURL=e.getResearch("keywordCountInUrl");var i=new d.default,n=this.calculateResult(t);return i.setScore(n.score),i.setText(n.resultText),i}},{key:"isApplicable",value:function(a){return a.hasKeyword()&&a.hasUrl()}},{key:"calculateResult",value:function(a){return this._keywordInURL.keyphraseLength<3?100===this._keywordInURL.percentWordMatches?{score:this._config.scores.good,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase in slug%2$s: Great work!"),this._config.urlTitle,"</a>")}:{score:this._config.scores.okay,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase in slug%3$s: (Part of) your keyphrase does not appear in the slug. %2$sChange that%3$s!"),this._config.urlTitle,this._config.urlCallToAction,"</a>")}:this._keywordInURL.percentWordMatches>50?{score:this._config.scores.good,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase in slug%2$s: More than half of your keyphrase appears in the slug. That's great!"),this._config.urlTitle,"</a>")}:{score:this._config.scores.okay,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase in slug%3$s: (Part of) your keyphrase does not appear in the slug. %2$sChange that%3$s!"),this._config.urlTitle,this._config.urlCallToAction,"</a>")}}}]),e}();e.default=c},function(a,e,t){"use strict";function i(a){Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.message=a}Object.defineProperty(e,"__esModule",{value:!0}),function(a){return a&&a.__esModule?a:{default:a}}(t(73)).default.inherits(i,Error),e.default=i},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.default=function(a){return-1===a?"error":0===a?"feedback":a<=4?"bad":a>4&&a<=7?"ok":a>7?"good":""}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a){return(0,i.default)(a,"<img(?:[^>]+)?>")};var i=function(a){return a&&a.__esModule?a:{default:a}}(t(753))},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=U(t(1095)),n=t(2),o=U(t(758)),r=U(t(517)),s=U(t(843)),d=U(t(1096)),l=U(t(1106)),c=U(t(847)),u=U(t(1107)),p=U(t(1108)),z=U(t(1109)),g=U(t(1110)),m=U(t(1111)),f=U(t(1113)),y=U(t(1115)),w=U(t(1116)),b=U(t(1119)),h=U(t(851)),v=U(t(1120)),k=U(t(1122)),j=U(t(1123)),_=U(t(1124)),x=U(t(1125)),q=U(t(1127)),E=U(t(1128)),A=U(t(1129)),T=U(t(1130)),O=U(t(1131)),S=U(t(1132)),P=U(t(1134)),M=U(t(1149)),C=U(t(1196)),R=U(t(1207)),D=U(t(1208)),F=U(t(1209)),B=U(t(860)),$=t(1210),L=t(846),I=U(t(1211)),W=U(t(1212));function U(a){return a&&a.__esModule?a:{default:a}}var N=$.keyphraseDistributionResearcher,K=function(a){this.setPaper(a),this.defaultResearches={urlLength:u.default,wordCountInText:s.default,findKeywordInPageTitle:p.default,calculateFleschReading:w.default,getLinkStatistics:d.default,getLinks:c.default,linkCount:l.default,imageCount:h.default,altTagCount:v.default,matchKeywordInSubheadings:z.default,keywordCount:m.default,getKeywordDensity:g.default,stopWordsInKeyword:f.default,stopWordsInUrl:y.default,metaDescriptionLength:b.default,keyphraseLength:k.default,keywordCountInUrl:_.default,firstParagraph:x.default,metaDescriptionKeyword:j.default,pageTitleWidth:q.default,wordComplexity:E.default,getParagraphLength:A.default,countSentencesFromText:T.default,countSentencesFromDescription:O.default,getSubheadingTextLengths:S.default,findTransitionWords:P.default,passiveVoice:M.default,getSentenceBeginnings:C.default,relevantWords:R.default,readingTime:D.default,getTopicDensity:F.default,topicCount:B.default,sentences:i.default,keyphraseDistribution:N,morphology:L.research,functionWordsInKeyphrase:I.default,h1s:W.default},this._data={},this.customResearches={}};K.prototype.setPaper=function(a){this.paper=a},K.prototype.addResearch=function(a,e){if((0,n.isUndefined)(a)||(0,n.isEmpty)(a))throw new r.default("Research name cannot be empty");if(!(e instanceof Function))throw new o.default("The research requires a Function callback.");this.customResearches[a]=e},K.prototype.hasResearch=function(a){return Object.keys(this.getAvailableResearches()).filter(function(e){return e===a}).length>0},K.prototype.getAvailableResearches=function(){return(0,n.merge)(this.defaultResearches,this.customResearches)},K.prototype.getResearch=function(a){if((0,n.isUndefined)(a)||(0,n.isEmpty)(a))throw new r.default("Research name cannot be empty");return!!this.hasResearch(a)&&this.getAvailableResearches()[a](this.paper,this)},K.prototype.addResearchData=function(a,e){this._data[a]=e},K.prototype.getData=function(a){return!!this._data.hasOwnProperty(a)&&this._data[a]},e.default=K},function(a,e,t){"use strict";e.decode=e.parse=t(764),e.encode=e.stringify=t(522)},function(a,e,t){"use strict";var i=function(a){switch(typeof a){case"string":return a;case"boolean":return a?"true":"false";case"number":return isFinite(a)?a:"";default:return""}};a.exports=function(a,e,t,s){return e=e||"&",t=t||"=",null===a&&(a=void 0),"object"==typeof a?o(r(a),function(r){var s=encodeURIComponent(i(r))+t;return n(a[r])?o(a[r],function(a){return s+encodeURIComponent(i(a))}).join(e):s+encodeURIComponent(i(a[r]))}).join(e):s?encodeURIComponent(i(s))+t+encodeURIComponent(i(a)):""};var n=Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)};function o(a,e){if(a.map)return a.map(e);for(var t=[],i=0;i<a.length;i++)t.push(e(a[i],i));return t}var r=Object.keys||function(a){var e=[];for(var t in a)Object.prototype.hasOwnProperty.call(a,t)&&e.push(t);return e}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a,e,t){var n=(0,d.default)(a).map(function(a){return a.toLowerCase()}),o=n.indexOf(e.toLowerCase());if(o<1)return!1;for(var r=(0,i.get)(c,t,[]),s=0;s<o;s++)if((0,i.includes)(r,n[s]))return!0;return!1};var i=t(2),n=l(t(741)),o=l(t(744)),r=l(t(743)),s=l(t(742)),d=l(t(155));function l(a){return a&&a.__esModule?a:{default:a}}var c={en:(0,n.default)().cannotBeBetweenPassiveAuxiliaryAndParticiple,fr:(0,o.default)().cannotBeBetweenPassiveAuxiliaryAndParticiple,it:(0,r.default)().cannotBeBetweenPassiveAuxiliaryAndParticiple,es:(0,s.default)().cannotBeBetweenPassiveAuxiliaryAndParticiple}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t(73),n=v(t(361)),o=v(t(363)),r=v(t(364)),s=v(t(367)),d=v(t(481)),l=v(t(740)),c=v(t(515)),u=v(t(516)),p=v(t(249)),z=v(t(511)),g=v(t(751)),m=v(t(482)),f=v(t(514)),y=v(t(750)),w=v(t(512)),b=v(t(360)),h=v(t(513));function v(a){return a&&a.__esModule?a:{default:a}}var k=function(a,e){p.default.call(this,a,e),this.type="SEOAssessor",this._assessments=[new n.default,new o.default,new r.default,new s.default,new z.default,new g.default,new d.default,new m.default,new f.default,new y.default,new c.default,new l.default,new w.default,new u.default,new b.default,new h.default]};(0,i.inherits)(k,p.default),e.default=k},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=m(t(249)),n=m(t(729)),o=m(t(730)),r=m(t(734)),s=m(t(735)),d=m(t(739)),l=m(t(732)),c=m(t(733)),u=m(t(738)),p=m(t(861)),z=m(t(518)),g=t(2);function m(a){return a&&a.__esModule?a:{default:a}}var f=function(a){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};i.default.call(this,a,e),this.type="ContentAssessor";var t=e.hasOwnProperty("locale")?e.locale:"en_US";this._assessments=[new n.default((0,p.default)(t).fleschReading),new s.default,o.default,new r.default((0,p.default)(t).sentenceLength),d.default,l.default,u.default,c.default]};t(73).inherits(f,i.default),f.prototype.calculatePenaltyPointsFullSupport=function(a){switch(a){case"bad":return 3;case"ok":return 2;default:case"good":return 0}},f.prototype.calculatePenaltyPointsPartialSupport=function(a){switch(a){case"bad":return 4;case"ok":return 2;default:case"good":return 0}},f.prototype._allAssessmentsSupported=function(){return 8===this.getApplicableAssessments().length},f.prototype.calculatePenaltyPoints=function(){var a=this.getValidResults(),e=(0,g.map)(a,function(a){var e=(0,z.default)(a.getScore());return this._allAssessmentsSupported()?this.calculatePenaltyPointsFullSupport(e):this.calculatePenaltyPointsPartialSupport(e)}.bind(this));return(0,g.sum)(e)},f.prototype._ratePenaltyPoints=function(a){if(1===this.getValidResults().length)return 30;if(this._allAssessmentsSupported()){if(a>6)return 30;if(a>4)return 60}else{if(a>4)return 30;if(a>2)return 60}return 90},f.prototype.calculateOverallScore=function(){if(0===this.getValidResults().length)return 30;var a=this.calculatePenaltyPoints();return this._ratePenaltyPoints(a)},e.default=f},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=Object.assign||function(a){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(a[i]=t[i])}return a},n=t(2);var o={keyword:"",synonyms:"",description:"",title:"",titleWidth:0,url:"",locale:"en_US",permalink:""},r=function(a,e){this._text=a||"",e=e||{},(0,n.defaults)(e,o),""===e.locale&&(e.locale=o.locale);var t=e.keyword.replace(/[‘’“”"'.?!:;,¿¡«»&*@#±^%|~`[\](){}⟨⟩<>/\\–\-\u2014\u00d7\u002b\u0026\s]/g,"");(0,n.isEmpty)(t)&&(e.keyword=o.keyword),this._attributes=e};r.prototype.hasKeyword=function(){return""!==this._attributes.keyword},r.prototype.getKeyword=function(){return this._attributes.keyword},r.prototype.hasSynonyms=function(){return""!==this._attributes.synonyms},r.prototype.getSynonyms=function(){return this._attributes.synonyms},r.prototype.hasText=function(){return""!==this._text},r.prototype.getText=function(){return this._text},r.prototype.hasDescription=function(){return""!==this._attributes.description},r.prototype.getDescription=function(){return this._attributes.description},r.prototype.hasTitle=function(){return""!==this._attributes.title},r.prototype.getTitle=function(){return this._attributes.title},r.prototype.hasTitleWidth=function(){return 0!==this._attributes.titleWidth},r.prototype.getTitleWidth=function(){return this._attributes.titleWidth},r.prototype.hasUrl=function(){return""!==this._attributes.url},r.prototype.getUrl=function(){return this._attributes.url},r.prototype.hasLocale=function(){return""!==this._attributes.locale},r.prototype.getLocale=function(){return this._attributes.locale},r.prototype.hasPermalink=function(){return""!==this._attributes.permalink},r.prototype.getPermalink=function(){return this._attributes.permalink},r.prototype.serialize=function(){return i({_parseClass:"Paper",text:this._text},this._attributes)},r.prototype.equals=function(a){return this._text===a.getText()&&(0,n.isEqual)(this._attributes,a._attributes)},r.parse=function(a){var e=a.text,t=(a._parseClass,function(a,e){var t={};for(var i in a)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(a,i)&&(t[i]=a[i]);return t}(a,["text","_parseClass"]));return new r(e,t)},e.default=r},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(a,e,t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function a(a,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(a,i.key,i)}}return function(e,t,i){return t&&a(e.prototype,t),i&&a(e,i),e}}(),o=t(2),r=c(t(83)),s=c(t(378)),d=t(38),l=c(t(34));function c(a){return a&&a.__esModule?a:{default:a}}var u=["en","nl","de","it","ru","fr","es"],p=function(a){function e(a){!function(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var t=function(a,e){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":i(e))&&"function"!=typeof e?a:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this)),n={urlTitle:(0,d.createAnchorOpeningTag)("https://yoa.st/34r"),urlCallToAction:(0,d.createAnchorOpeningTag)("https://yoa.st/34s")};return t.identifier="fleschReadingEase",t._config=(0,o.merge)(n,a),t}return function(a,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":i(e)));a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(a,e):a.__proto__=e)}(e,r.default),n(e,[{key:"getResult",value:function(a,e,t){if(this.fleschReadingResult=e.getResearch("calculateFleschReading"),this.isApplicable(a)){var i=new l.default(t),n=this.calculateResult(t);return i.setScore(n.score),i.setText(n.resultText),i}return null}},{key:"calculateResult",value:function(a){this.fleschReadingResult<0&&(this.fleschReadingResult=0),this.fleschReadingResult>100&&(this.fleschReadingResult=100);var e=0,t="",i=a.dgettext("js-text-analysis","Good job!");return this.fleschReadingResult>=this._config.borders.veryEasy?(e=this._config.scores.veryEasy,t=a.dgettext("js-text-analysis","very easy")):(0,o.inRange)(this.fleschReadingResult,this._config.borders.easy,this._config.borders.veryEasy)?(e=this._config.scores.easy,t=a.dgettext("js-text-analysis","easy")):(0,o.inRange)(this.fleschReadingResult,this._config.borders.fairlyEasy,this._config.borders.easy)?(e=this._config.scores.fairlyEasy,t=a.dgettext("js-text-analysis","fairly easy")):(0,o.inRange)(this.fleschReadingResult,this._config.borders.okay,this._config.borders.fairlyEasy)?(e=this._config.scores.okay,t=a.dgettext("js-text-analysis","ok")):(0,o.inRange)(this.fleschReadingResult,this._config.borders.fairlyDifficult,this._config.borders.okay)?(e=this._config.scores.fairlyDifficult,t=a.dgettext("js-text-analysis","fairly difficult"),i=a.dgettext("js-text-analysis","Try to make shorter sentences to improve readability")):(0,o.inRange)(this.fleschReadingResult,this._config.borders.difficult,this._config.borders.fairlyDifficult)?(e=this._config.scores.difficult,t=a.dgettext("js-text-analysis","difficult"),i=a.dgettext("js-text-analysis","Try to make shorter sentences, using less difficult words to improve readability")):(e=this._config.scores.veryDifficult,t=a.dgettext("js-text-analysis","very difficult"),i=a.dgettext("js-text-analysis","Try to make shorter sentences, using less difficult words to improve readability")),e>=this._config.scores.okay?{score:e,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sFlesch Reading Ease%2$s: The copy scores %3$s in the test, which is considered %4$s to read. %5$s"),this._config.urlTitle,"</a>",this.fleschReadingResult,t,i)}:{score:e,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sFlesch Reading Ease%2$s: The copy scores %3$s in the test, which is considered %4$s to read. %5$s%6$s%7$s"),this._config.urlTitle,"</a>",this.fleschReadingResult,t,this._config.urlCallToAction,i,"</a>.")}}},{key:"isApplicable",value:function(a){return(0,s.default)(a.getLocale(),u)&&a.hasText()}}]),e}();e.default=p},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t(2),n=t(243),o=u(t(731)),r=u(t(359)),s=t(38),d=t(154),l=u(t(34)),c=u(t(242));function u(a){return a&&a.__esModule?a:{default:a}}var p=function(a){return(0,i.filter)(a,function(a){return(0,o.default)(150,a.wordCount)})};e.default={identifier:"textParagraphTooLong",getResult:function(a,e,t){var i=e.getResearch("getParagraphLength"),o=function(a,e,t){var i=void 0,o=(0,s.createAnchorOpeningTag)("https://yoa.st/35d"),r=(0,s.createAnchorOpeningTag)("https://yoa.st/35e");if(0===a.length)return{};var d=a[0].wordCount;return d<=150&&(i=9),(0,n.inRangeEndInclusive)(d,150,200)&&(i=6),d>200&&(i=3),i>=7?{score:i,hasMarks:!1,text:t.sprintf(t.dgettext("js-text-analysis","%1$sParagraph length%2$s: None of the paragraphs are too long. Great job!"),o,"</a>")}:{score:i,hasMarks:!0,text:t.sprintf(t.dngettext("js-text-analysis","%1$sParagraph length%2$s: %3$d of the paragraphs contains more than the recommended maximum of %4$d words. %5$sShorten your paragraphs%2$s!","%1$sParagraph length%2$s: %3$d of the paragraphs contain more than the recommended maximum of %4$d words. %5$sShorten your paragraphs%2$s!",e.length),o,"</a>",e.length,150,r)}}(i=function(a){return a.sort(function(a,e){return e.wordCount-a.wordCount})}(i),p(i),t),r=new l.default;return r.setScore(o.score),r.setText(o.text),r.setHasMarks(o.hasMarks),r},isApplicable:function(a){return a.hasText()},getMarks:function(a,e){var t=e.getResearch("getParagraphLength"),n=p(t);return(0,i.map)(n,function(a){var e=(0,d.stripBlockTagsAtStartEnd)(a.text),t=(0,r.default)(e);return new c.default({original:e,marked:t})})}}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a,e){return e>a}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t(2),n=p(t(380)),o=p(t(378)),r=t(243),s=p(t(359)),d=t(38),l=t(154),c=p(t(34)),u=p(t(242));function p(a){return a&&a.__esModule?a:{default:a}}var z=["en","de","fr","es","ru","it","nl","pl","sv"];e.default={identifier:"passiveVoice",getResult:function(a,e,t){var i=function(a,e){var t=void 0,i=0,o=(0,d.createAnchorOpeningTag)("https://yoa.st/34t"),s=(0,d.createAnchorOpeningTag)("https://yoa.st/34u");0!==a.total&&(i=(0,n.default)(a.passives.length/a.total*100));var l=i>0;return i<=10&&(t=9),(0,r.inRangeEndInclusive)(i,10,15)&&(t=6),i>15&&(t=3),t>=7?{score:t,hasMarks:l,text:e.sprintf(e.dgettext("js-text-analysis","%1$sPassive voice%2$s: You're using enough active voice. That's great!"),o,"</a>")}:{score:t,hasMarks:l,text:e.sprintf(e.dgettext("js-text-analysis","%1$sPassive voice%2$s: %3$s of the sentences contain passive voice, which is more than the recommended maximum of %4$s. %5$sTry to use their active counterparts%2$s."),o,"</a>",i+"%","10%",s)}}(e.getResearch("passiveVoice"),t),o=new c.default;return o.setScore(i.score),o.setText(i.text),o.setHasMarks(i.hasMarks),o},isApplicable:function(a){return(0,o.default)(a.getLocale(),z)&&a.hasText()},getMarks:function(a,e){var t=e.getResearch("passiveVoice");return(0,i.map)(t.passives,function(a){a=(0,l.stripIncompleteTags)(a);var e=(0,s.default)(a);return new u.default({original:a,marked:e})})}}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t(2),n=c(t(359)),o=t(38),r=t(154),s=c(t(34)),d=c(t(242)),l=c(t(378));function c(a){return a&&a.__esModule?a:{default:a}}var u=["en","de","es","fr","nl","it","ru","pl","sv"];e.default={identifier:"sentenceBeginnings",getResult:function(a,e,t){var n=function(a,e){var t=(0,o.createAnchorOpeningTag)("https://yoa.st/35f"),i=(0,o.createAnchorOpeningTag)("https://yoa.st/35g");return a.total>0?{score:3,hasMarks:!0,text:e.sprintf(e.dngettext("js-text-analysis","%1$sConsecutive sentences%2$s: The text contains %3$d consecutive sentences starting with the same word. %5$sTry to mix things up%2$s!","%1$sConsecutive sentences%2$s: The text contains %4$d instances where %3$d or more consecutive sentences start with the same word. %5$sTry to mix things up%2$s!",a.total),t,"</a>",a.lowestCount,a.total,i)}:{score:9,hasMarks:!1,text:e.sprintf(e.dgettext("js-text-analysis","%1$sConsecutive sentences%2$s: There is enough variety in your sentences. That's great!"),t,"</a>")}}(function(a){var e=(0,i.partition)(a,function(a){return a.count>2});if(0===e[0].length)return{total:0};var t=(0,i.sortBy)(e[0],function(a){return a.count});return{total:e[0].length,lowestCount:t[0].count}}(e.getResearch("getSentenceBeginnings")),t),r=new s.default;return r.setScore(n.score),r.setText(n.text),r.setHasMarks(n.hasMarks),r},isApplicable:function(a){return(0,l.default)(a.getLocale(),u)&&a.hasText()},getMarks:function(a,e){var t=e.getResearch("getSentenceBeginnings");t=(0,i.filter)(t,function(a){return a.count>2});var o=(0,i.map)(t,function(a){return a.sentences});return(0,i.map)((0,i.flatten)(o),function(a){a=(0,r.stripIncompleteTags)(a);var e=(0,n.default)(a);return new d.default({original:a,marked:e})})}}},function(a,e,t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function a(a,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(a,i.key,i)}}return function(e,t,i){return t&&a(e.prototype,t),i&&a(e,i),e}}(),o=t(2),r=m(t(83)),s=m(t(799)),d=m(t(380)),l=t(243),c=m(t(359)),u=t(38),p=t(154),z=m(t(34)),g=m(t(242));function m(a){return a&&a.__esModule?a:{default:a}}var f=function(a){function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var t=function(a,e){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":i(e))&&"function"!=typeof e?a:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return t.identifier="textSentenceLength",t._config=(0,o.merge)({recommendedWordCount:20,slightlyTooMany:25,farTooMany:30},a),t}return function(a,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":i(e)));a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(a,e):a.__proto__=e)}(e,r.default),n(e,[{key:"getResult",value:function(a,e,t){var i=e.getResearch("countSentencesFromText"),n=this.calculatePercentage(i),o=this.calculateScore(n),r=new z.default;return r.setScore(o),r.setText(this.translateScore(o,n,t)),r.setHasMarks(n>0),r}},{key:"isApplicable",value:function(a){return a.hasText()}},{key:"getMarks",value:function(a,e){var t=e.getResearch("countSentencesFromText"),i=this.getTooLongSentences(t);return(0,o.map)(i,function(a){var e=(0,p.stripIncompleteTags)(a.sentence);return new g.default({original:e,marked:(0,c.default)(e)})})}},{key:"translateScore",value:function(a,e,t){var i=(0,u.createAnchorOpeningTag)("https://yoa.st/34v"),n=(0,u.createAnchorOpeningTag)("https://yoa.st/34w");return a>=7?t.sprintf(t.dgettext("js-text-analysis","%1$sSentence length%2$s: Great!"),i,"</a>"):t.sprintf(t.dgettext("js-text-analysis","%1$sSentence length%2$s: %3$s of the sentences contain more than %4$s words, which is more than the recommended maximum of %5$s. %6$sTry to shorten the sentences%2$s."),i,"</a>",e+"%",this._config.recommendedWordCount,this._config.slightlyTooMany+"%",n)}},{key:"calculatePercentage",value:function(a){var e=0;if(0!==a.length){var t=this.countTooLongSentences(a);e=(0,d.default)(t/a.length*100)}return e}},{key:"calculateScore",value:function(a){var e=void 0;return a<=this._config.slightlyTooMany&&(e=9),(0,l.inRangeEndInclusive)(a,this._config.slightlyTooMany,this._config.farTooMany)&&(e=6),a>this._config.farTooMany&&(e=3),e}},{key:"getTooLongSentences",value:function(a){return(0,s.default)(a,this._config.recommendedWordCount)}},{key:"countTooLongSentences",value:function(a){return this.getTooLongSentences(a).length}}]),e}();e.default=f},function(a,e,t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function a(a,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(a,i.key,i)}}return function(e,t,i){return t&&a(e.prototype,t),i&&a(e,i),e}}(),o=t(2),r=z(t(83)),s=t(243),d=z(t(731)),l=t(38),c=t(736),u=z(t(155)),p=z(t(34));function z(a){return a&&a.__esModule?a:{default:a}}var g=function(a){function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var t=function(a,e){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":i(e))&&"function"!=typeof e?a:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this)),n={parameters:{recommendedMaximumWordCount:300,slightlyTooMany:300,farTooMany:350},urlTitle:(0,l.createAnchorOpeningTag)("https://yoa.st/34x"),urlCallToAction:(0,l.createAnchorOpeningTag)("https://yoa.st/34y"),scores:{goodShortTextNoSubheadings:9,goodSubheadings:9,okSubheadings:6,badSubheadings:3,badLongTextNoSubheadings:2}};return t.identifier="subheadingsTooLong",t._config=(0,o.merge)(n,a),t}return function(a,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":i(e)));a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(a,e):a.__proto__=e)}(e,r.default),n(e,[{key:"getResult",value:function(a,e,t){this._subheadingTextsLength=e.getResearch("getSubheadingTextLengths"),this._subheadingTextsLength=this._subheadingTextsLength.sort(function(a,e){return e.wordCount-a.wordCount}),this._tooLongTextsNumber=this.getTooLongSubheadingTexts().length;var i=new p.default;i.setIdentifier(this.identifier),this._hasSubheadings=this.hasSubheadings(a),this._textLength=(0,u.default)(a.getText()).length;var n=this.calculateResult(t);return n.resultTextPlural=n.resultTextPlural||"",i.setScore(n.score),i.setText(n.resultText),i}},{key:"isApplicable",value:function(a){return a.hasText()}},{key:"hasSubheadings",value:function(a){return(0,c.getSubheadings)(a.getText()).length>0}},{key:"getTooLongSubheadingTexts",value:function(){return(0,o.filter)(this._subheadingTextsLength,function(a){return(0,d.default)(this._config.parameters.recommendedMaximumWordCount,a.wordCount)}.bind(this))}},{key:"calculateResult",value:function(a){if(this._textLength>300){if(this._hasSubheadings){var e=this._subheadingTextsLength[0].wordCount;return e<=this._config.parameters.slightlyTooMany?{score:this._config.scores.goodSubheadings,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sSubheading distribution%2$s: Great job!"),this._config.urlTitle,"</a>")}:(0,s.inRangeEndInclusive)(e,this._config.parameters.slightlyTooMany,this._config.parameters.farTooMany)?{score:this._config.scores.okSubheadings,resultText:a.sprintf(a.dngettext("js-text-analysis","%1$sSubheading distribution%2$s: %3$d section of your text is longer than %4$d words and is not separated by any subheadings. %5$sAdd subheadings to improve readability%2$s.","%1$sSubheading distribution%2$s: %3$d sections of your text are longer than %4$d words and are not separated by any subheadings. %5$sAdd subheadings to improve readability%2$s.",this._tooLongTextsNumber),this._config.urlTitle,"</a>",this._tooLongTextsNumber,this._config.parameters.recommendedMaximumWordCount,this._config.urlCallToAction)}:{score:this._config.scores.badSubheadings,resultText:a.sprintf(a.dngettext("js-text-analysis","%1$sSubheading distribution%2$s: %3$d section of your text is longer than %4$d words and is not separated by any subheadings. %5$sAdd subheadings to improve readability%2$s.","%1$sSubheading distribution%2$s: %3$d sections of your text are longer than %4$d words and are not separated by any subheadings. %5$sAdd subheadings to improve readability%2$s.",this._tooLongTextsNumber),this._config.urlTitle,"</a>",this._tooLongTextsNumber,this._config.parameters.recommendedMaximumWordCount,this._config.urlCallToAction)}}return{score:this._config.scores.badLongTextNoSubheadings,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sSubheading distribution%2$s: You are not using any subheadings, although your text is rather long. %3$sTry and add some subheadings%2$s."),this._config.urlTitle,"</a>",this._config.urlCallToAction)}}return this._hasSubheadings?{score:this._config.scores.goodSubheadings,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sSubheading distribution%2$s: Great job!"),this._config.urlTitle,"</a>")}:{score:this._config.scores.goodShortTextNoSubheadings,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sSubheading distribution%2$s: You are not using any subheadings, but your text is short enough and probably doesn't need them."),this._config.urlTitle,"</a>")}}}]),e}();e.default=g},function(a,e,t){"use strict";function i(a){for(var e=[],t=/<h([1-6])(?:[^>]+)?>(.*?)<\/h\1>/gi,i=void 0;null!==(i=t.exec(a));)e.push(i);return e}function n(a){for(var e=[],t=/<h([2-3])(?:[^>]+)?>(.*?)<\/h\1>/gi,i=void 0;null!==(i=t.exec(a));)e.push(i);return e}function o(a){return i(a).map(function(a){return a[0]})}function r(a){return n(a).map(function(a){return a[0]})}Object.defineProperty(e,"__esModule",{value:!0}),e.getSubheadings=i,e.getSubheadingsTopLevel=n,e.getSubheadingContents=o,e.getSubheadingContentsTopLevel=r,e.default={getSubheadings:i,getSubheadingsTopLevel:n,getSubheadingContents:o,getSubheadingContentsTopLevel:r}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a){return a=(a=a.replace(i,"")).replace(n,"")};var i=new RegExp("^[\\–\\-\\(\\)_\\[\\]’“”\"'.?!:;,¿¡«»‹›—×+&<>]+"),n=new RegExp("[\\–\\-\\(\\)_\\[\\]’“”\"'.?!:;,¿¡«»‹›—×+&<>]+$")},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t(38),n=t(154),o=function(a){return a&&a.__esModule?a:{default:a}}(t(34));e.default={identifier:"textPresence",getResult:function(a,e,t){var r=(0,n.stripFullTags)(a.getText()),s=(0,i.createAnchorOpeningTag)("https://yoa.st/35h"),d=(0,i.createAnchorOpeningTag)("https://yoa.st/35i");if(r.length<50){var l=new o.default;return l.setText(t.sprintf(t.dgettext("js-text-analysis","%1$sNot enough content%2$s: %3$sPlease add some content to enable a good analysis%2$s."),s,"</a>",d)),l.setScore(3),l}return new o.default}}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t(2),n=p(t(380)),o=t(243),r=t(38),s=t(154),d=p(t(34)),l=p(t(242)),c=p(t(359)),u=p(t(378));function p(a){return a&&a.__esModule?a:{default:a}}var z=["en","de","es","fr","nl","it","pt","ru","ca","pl","sv"],g=function(a,e){var t=function(a){return 0===a.transitionWordSentences||0===a.totalSentences?0:(0,n.default)(a.transitionWordSentences/a.totalSentences*100)}(a),i=function(a){return a<20?3:(0,o.inRangeStartInclusive)(a,20,30)?6:a>=30?9:void 0}(t),s=t>0,d=(0,r.createAnchorOpeningTag)("https://yoa.st/34z"),l=(0,r.createAnchorOpeningTag)("https://yoa.st/35a");return i<7&&0===t?{score:(0,n.default)(i),hasMarks:s,text:e.sprintf(e.dgettext("js-text-analysis","%1$sTransition words%2$s: None of the sentences contain transition words. %3$sUse some%2$s."),d,"</a>",l)}:i<7?{score:(0,n.default)(i),hasMarks:s,text:e.sprintf(e.dgettext("js-text-analysis","%1$sTransition words%2$s: Only %3$s of the sentences contain transition words, which is not enough. %4$sUse more of them%2$s."),d,"</a>",t+"%",l)}:{score:(0,n.default)(i),hasMarks:s,text:e.sprintf(e.dgettext("js-text-analysis","%1$sTransition words%2$s: Well done!"),d,"</a>")}};e.default={identifier:"textTransitionWords",getResult:function(a,e,t){var i=e.getResearch("findTransitionWords"),n=g(i,t),o=new d.default;return o.setScore(n.score),o.setText(n.text),o.setHasMarks(n.hasMarks),o},isApplicable:function(a){return(0,u.default)(a.getLocale(),z)&&a.hasText()},getMarks:function(a,e){var t=e.getResearch("findTransitionWords");return(0,i.map)(t.sentenceResults,function(a){var e=a.sentence;return e=(0,s.stripIncompleteTags)(e),new l.default({original:e,marked:(0,c.default)(e)})})}}},function(a,e,t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function a(a,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(a,i.key,i)}}return function(e,t,i){return t&&a(e.prototype,t),i&&a(e,i),e}}(),o=t(2),r=l(t(83)),s=t(38),d=l(t(34));function l(a){return a&&a.__esModule?a:{default:a}}var c=function(a){function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var t=function(a,e){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":i(e))&&"function"!=typeof e?a:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this)),n={parameters:{recommendedMinimum:1},scores:{allInternalFollow:9,someInternalFollow:8,noneInternalFollow:7,noInternal:3},urlTitle:(0,s.createAnchorOpeningTag)("https://yoa.st/33z"),urlCallToAction:(0,s.createAnchorOpeningTag)("https://yoa.st/34a")};return t.identifier="internalLinks",t._config=(0,o.merge)(n,a),t}return function(a,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":i(e)));a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(a,e):a.__proto__=e)}(e,r.default),n(e,[{key:"getResult",value:function(a,e,t){this.linkStatistics=e.getResearch("getLinkStatistics");var i=new d.default,n=this.calculateResult(t);return i.setScore(n.score),i.setText(n.resultText),i}},{key:"isApplicable",value:function(a){return a.hasText()}},{key:"calculateResult",value:function(a){return 0===this.linkStatistics.internalTotal?{score:this._config.scores.noInternal,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sInternal links%3$s: No internal links appear in this page, %2$smake sure to add some%3$s!"),this._config.urlTitle,this._config.urlCallToAction,"</a>")}:this.linkStatistics.internalNofollow===this.linkStatistics.internalTotal?{score:this._config.scores.noneInternalFollow,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sInternal links%3$s: The internal links in this page are all nofollowed. %2$sAdd some good internal links%3$s."),this._config.urlTitle,this._config.urlCallToAction,"</a>")}:this.linkStatistics.internalDofollow===this.linkStatistics.internalTotal?{score:this._config.scores.allInternalFollow,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sInternal links%2$s: You have enough internal links. Good job!"),this._config.urlTitle,"</a>")}:{score:this._config.scores.someInternalFollow,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sInternal links%2$s: There are both nofollowed and normal internal links on this page. Good job!"),this._config.urlTitle,"</a>")}}}]),e}();e.default=c},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return{filteredAtEnding:[].concat(u,A,B),filteredAtBeginningAndEnding:[].concat(l,T,S,g,D,f,m),filteredAnywhere:[].concat(d,x,p,z,y,$,c,r,q,E,C,F,w,P,M,h,v,k,_,U,O,j,L,I,W),cannotDirectlyPrecedePassiveParticiple:[].concat(l,T,g,m,u,A,f),cannotBeBetweenPassiveAuxiliaryAndParticiple:[].concat(q,E,C,F),all:[].concat(l,c,u,g,m,y,p,z,f,w,A,b,h,v,k,j,_,x,O,r,s,q,E,T,S,P,M,C,d,R,D,F,$,B,L,W,U,N,K)}};var i=o(t(804)),n=o(t(805));function o(a){return a&&a.__esModule?a:{default:a}}var r=(0,i.default)().filteredAuxiliaries,s=(0,i.default)().notFilteredAuxiliaries,d=(0,n.default)().singleWords,l=["the","an","a"],c=["one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen","twenty","hundred","hundreds","thousand","thousands","million","millions","billion","billions"],u=["first","second","third","fourth","fifth","sixth","seventh","eighth","ninth","tenth","eleventh","twelfth","thirteenth","fourteenth","fifteenth","sixteenth","seventeenth","eighteenth","nineteenth","twentieth"],p=["i","you","he","she","it","we","they"],z=["me","him","us","them"],g=["this","that","these","those"],m=["my","your","his","her","its","their","our","mine","yours","hers","theirs","ours"],f=["all","some","many","lot","lots","ton","tons","bit","no","every","enough","little","much","more","most","plenty","several","few","fewer","kind","kinds"],y=["myself","yourself","himself","herself","itself","oneself","ourselves","yourselves","themselves"],w=["none","nobody","everyone","everybody","someone","somebody","anyone","anybody","nothing","everything","something","anything","each","other","whatever","whichever","whoever","whomever","whomsoever","whosoever","others","neither","both","either","any","such"],b=["one's","nobody's","everyone's","everybody's","someone's","somebody's","anyone's","anybody's","nothing's","everything's","something's","anything's","whoever's","others'","other's","another's","neither's","either's"],h=["which","what","whose"],v=["who","whom"],k=["where","how","why","whether","wherever","whyever","wheresoever","whensoever","howsoever","whysoever","whatsoever","whereso","whomso","whenso","howso","whyso","whoso","whatso"],j=["therefor","therein","hereby","hereto","wherein","therewith","herewith","wherewith","thereby"],_=["there","here","whither","thither","hither","whence","thence"],x=["always","once","twice","thrice"],q=["can","cannot","can't","could","couldn't","could've","dare","dares","dared","do","don't","does","doesn't","did","didn't","done","have","haven't","had","hadn't","has","hasn't","i've","you've","we've","they've","i'd","you'd","he'd","she'd","it'd","we'd","they'd","would","wouldn't","would've","may","might","must","need","needn't","needs","ought","shall","shalln't","shan't","should","shouldn't","will","won't","i'll","you'll","he'll","she'll","it'll","we'll","they'll","there's","there're","there'll","here's","here're","there'll"],E=["appear","appears","appeared","become","becomes","became","come","comes","came","keep","keeps","kept","remain","remains","remained","stay","stays","stayed","turn","turns","turned"],A=["doing","daring","having","appearing","becoming","coming","keeping","remaining","staying","saying","asking","stating","seeming","letting","making","setting","showing","putting","adding","going","using","trying","containing"],T=["in","from","with","under","throughout","atop","for","on","of","to","aboard","about","above","abreast","absent","across","adjacent","after","against","along","alongside","amid","mid","among","apropos","apud","around","as","astride","at","ontop","afore","tofore","behind","ahind","below","ablow","beneath","neath","beside","between","atween","beyond","ayond","by","chez","circa","spite","down","except","into","less","like","minus","near","nearer","nearest","anear","notwithstanding","off","onto","opposite","out","outen","over","past","per","pre","qua","sans","sauf","sithence","through","thru","truout","toward","underneath","up","upon","upside","versus","via","vis-à-vis","without","ago","apart","aside","aslant","away","withal","towards","amidst","amongst","midst","whilst"],O=["back","within","forward","backward","ahead"],S=["and","or","and/or","yet"],P=["sooner","just","only"],M=["if","even"],C=["say","says","said","claimed","ask","asks","asked","stated","explain","explains","explained","think","thinks","talks","talked","announces","announced","tells","told","discusses","discussed","suggests","suggested","understands","understood"],R=["again","definitely","eternally","expressively","instead","expressly","immediately","including","instantly","namely","naturally","next","notably","now","nowadays","ordinarily","positively","truly","ultimately","uniquely","usually","almost","maybe","probably","granted","initially","too","actually","already","e.g","i.e","often","regularly","simply","optionally","perhaps","sometimes","likely","never","ever","else","inasmuch","provided","currently","incidentally","elsewhere","particular","recently","relatively","f.i","clearly","apparently"],D=["highly","very","really","extremely","absolutely","completely","totally","utterly","quite","somewhat","seriously","fairly","fully","amazingly"],F=["seem","seems","seemed","let","let's","lets","make","makes","made","want","showed","shown","go","goes","went","gone","take","takes","took","taken","put","puts","use","used","try","tries","tried","mean","means","meant","called","based","add","adds","added","contain","contains","contained","consist","consists","consisted","ensure","ensures","ensured"],B=["new","newer","newest","old","older","oldest","previous","good","well","better","best","big","bigger","biggest","easy","easier","easiest","fast","faster","fastest","far","hard","harder","hardest","least","own","large","larger","largest","long","longer","longest","low","lower","lowest","high","higher","highest","regular","simple","simpler","simplest","small","smaller","smallest","tiny","tinier","tiniest","short","shorter","shortest","main","actual","nice","nicer","nicest","real","same","able","certain","usual","so-called","mainly","mostly","recent","anymore","complete","lately","possible","commonly","constantly","continually","directly","easily","nearly","slightly","somewhere","estimated","latest","different","similar","widely","bad","worse","worst","great","specific","available","average","awful","awesome","basic","beautiful","busy","current","entire","everywhere","important","major","multiple","normal","necessary","obvious","partly","special","last","early","earlier","earliest","young","younger","youngest",""],$=["oh","wow","tut-tut","tsk-tsk","ugh","whew","phew","yeah","yea","shh","oops","ouch","aha","yikes"],L=["tbs","tbsp","spk","lb","qt","pk","bu","oz","pt","mod","doz","hr","f.g","ml","dl","cl","l","mg","g","kg","quart"],I=["seconds","minute","minutes","hour","hours","day","days","week","weeks","month","months","year","years","today","tomorrow","yesterday"],W=["thing","things","way","ways","matter","case","likelihood","ones","piece","pieces","stuff","times","part","parts","percent","instance","instances","aspect","aspects","item","items","idea","theme","person","instance","instances","detail","details","factor","factors","difference","differences"],U=["not","yes","sure","top","bottom","ok","okay","amen","aka","etc","etcetera","sorry","please"],N=["ms","mss","mrs","mr","dr","prof"],K=["jr","sr"]},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return{filteredAtBeginning:R,filteredAtEnding:[].concat(r,h,j,_,C),filteredAtBeginningAndEnding:[].concat(n,x,E,u,P,z,p),filteredAnywhere:[].concat(i,s,d,l,c,D,o,b,v,k,O,M,g,A,T,m,f,y,w,L,q,F,B,$),cannotDirectlyPrecedePassiveParticiple:[].concat(n,x,d,p,g,y,o,r,M,C,O,m,f,c,l,q),cannotBeBetweenPassiveAuxiliaryAndParticiple:[].concat(v,j),all:[].concat(n,o,r,u,p,s,c,l,d,z,g,m,f,y,w,q,b,h,v,k,j,_,x,E,A,T,O,i,S,P,M,C,D,R,F,$,L,I,W)}};var i=(0,function(a){return a&&a.__esModule?a:{default:a}}(t(808)).default)().singleWords,n=["el","la","los","las","un","una","unos","unas"],o=["dos","tres","cuatro","cinco","seis","siete","ocho","nueve","diez","once","doce","trece","catorce","quince","dieciseis","diecisiete","dieciocho","diecinueve","veinte","cien","centena","mil","millon","millones"],r=["primera","segunda","tercera","cuarto","cuarta","quinto","quinta","sexto","sexta","septimo","septima","octavo","octava","noveno","novena","décimo","décima","vigésimo","vigésima","primeros","primeras","segundos","segundas","terceros","terceras","cuartos","cuartas","quintos","quintas","sextos","sextas","septimos","septimas","octavos","octavas","novenos","novenas","décimos","décimas","vigésimos","vigésimas"],s=["yo","tú","él","ella","ello","nosotros","nosotras","vosotros","vosotras","ustedes","ellos","ellas"],d=["me","te","lo","se","nos","os","les"],l=["mí","ti","ud","uds","usted","sí"],c=["conmigo","contigo","consigo"],u=["este","ese","aquel","esta","esa","aquella","estos","esos","aquellos","estas","esas","aquellas","esto","eso","aquello"],p=["mi","mis","mío","míos","mía","mías","nuestro","nuestros","nuestra","nuestras","tuyo","tuyos","tuya","tuyas","tu","tus","vuestro","vuestros","vuestra","vuestras","suyo","suyos","suya","suyas","su","sus"],z=["bastante","bastantes","mucho","muchas","mucha","muchos","demasiado","demasiada","demasiados","demasiadas","poco","poca","pocos","pocas","demás","otros","otras","todo","toda","todos","todas"],g=["alguien","algo","algún","alguno","alguna","algunos","algunas","nadie","nada","ningún","ninguno","ninguna","ningunos","ningunas","tanto","tantos","tanta","tantas"],m=["cuyas","cual"],f=["cuyo"],y=["comoquiera","cualesquiera","cualquier","cuanta","cuantas","cuanto","cuantos","cuál","cuáles","cuánta","cuántas","cuánto","cuántos","cómo","dondequiera","dónde","quien","quienes","quienquiera","quién","quiénes","qué"],w=["allí","ahí","allá","aquí","acá","adónde","delante","detrás","debajo","adelante","atrás","adentro","afuera"],b=["he","has","ha","hay","hemos","habéis","han","hube","hubiste","hubo","hubimos","hubisteis","hubieron","había","habías","habíamos","habíais","habían","habría","habrías","habríais","habrían","habré","habrás","habrá","habremos","habréis","habrán","haya","hayas","hayamos","hayáis","hayan","hubiera","hubieras","hubiéramos","hubierais","hubieran","hubiese","hubieses","hubiésemos","hubieseis","hubiesen","hubiere","hubieres","hubiéremos","hubiereis","hubieren","habed","habido","debo","debes","debe","debemos","debéis","deben","debí","debiste","debió","debimos","debisteis","debieron","debía","debías","debíamos","debíais","debían","debería","deberías","deberíamos","deberíais","deberían","deberé","deberás","deberá","deberemos","deberéis","deberán","deba","debas","debamos","debáis","deban","debiera","debieras","debiéramos","debierais","debieran","debiese","debieses","debiésemos","debieseis","debiesen","debiere","debieres","debiéremos","debiereis","debieren","debed","debido","empiezo","empiezas","empieza","empezáis","empiezan","empecé","empezaste","empezó","empezamos","empezasteis","empezaron","empezaba","empezabas","empezábamos","empezabais","empezaban","empezaría","empezarías","empezaríamos","empezaríais","empezarían","empezaré","empezarás","empezará","empezaremos","empezaréis","empezarán","empiece","empieces","empecemos","empecéis","empiecen","empezara","empezaras","empezáramos","empezarais","empezaran","empezase","empezases","empezásemos","empezaseis","empezasen","empezare","empezares","empezáremos","empezareis","empezaren","empezad","empezado","comienzo","comienzas","comienza","comenzamos","comenzáis","comienzan","comencé","comenzaste","comenzó","comenzasteis","comenzaron","comenzaba","comenzabas","comenzábamos","comenzabais","comenzaban","comenzaría","comenzarías","comenzaríamos","comenzaríais","comenzarían","comenzaré","comenzarás","comenzará","comenzaremos","comenzaréis","comenzarán","comience","comiences","comencemos","comencéis","comiencen","comenzara","comenzaras","comenzáramos","comenzarais","comenzaran","comenzase","comenzases","comenzásemos","comenzaseis","comenzasen","comenzare","comenzares","comenzáremos","comenzareis","comenzaren","comenzad","comenzado","sigo","sigues","sigue","seguimos","seguis","siguen","seguí","seguiste","siguió","seguisteis","siguieron","seguía","seguías","seguíamos","seguíais","seguían","seguiría","seguirías","seguiríamos","seguiríais","seguirían","seguiré","seguirás","seguirá","seguiremos","seguiréis","seguirán","siga","sigas","sigamos","sigáis","sigan","siguiera","siguieras","siguiéramos","siguierais","siguieran","siguiese","siguieses","siguiésemos","siguieseis","siguiesen","siguiere","siguieres","siguiéremos","siguiereis","siguieren","seguid","seguido","tengo","tienes","tiene","tenemos","tenéis","tienen","tuve","tuviste","tuvo","tuvimos","tuvisteis","tuvieron","tenía","tenías","teníamos","teníais","tenían","tendría","tendrías","tendríamos","tendríais","tendrían","tendré","tendrás","tendrá","tendremos","tendréis","tendrán","tenga","tengas","tengamos","tengáis","tengan","tuviera","tuvieras","tuviéramos","tuvierais","tuvieran","tuviese","tuvieses","tuviésemos","tuvieseis","tuviesen","tuviere","tuvieres","tuviéremos","tuviereis","tuvieren","ten","tened","tenido","ando","andas","andamos","andáis","andan","anduve","anduviste","anduvo","anduvimos","anduvisteis","anduvieron","andaba","andabas","andábamos","andabais","andaban","andaría","andarías","andaríamos","andaríais","andarían","andaré","andarás","andará","andaremos","andaréis","andarán","ande","andes","andemos","andéis","anden","anduviera","anduvieras","anduviéramos","anduvierais","anduvieran","anduviese","anduvieses","anduviésemos","anduvieseis","anduviesen","anduviere","anduvieres","anduviéremos","anduviereis","anduvieren","andad","andado","quedo","quedas","queda","quedamos","quedáis","quedan","quedé","quedasteis","quedaron","quedaba","quedabas","quedábamos","quedabais","quedaban","quedaría","quedarías","quedaríamos","quedaríais","quedarían","quedaré","quedarás","quedará","quedaremos","quedaréis","quedarán","quede","quedes","quedemos","quedéis","queden","quedara","quedaras","quedáramos","quedarais","quedaran","quedase","quedases","quedásemos","quedaseis","quedasen","quedare","quedares","quedáremos","quedareis","quedaren","quedad","quedado","hallo","hallas","halla","hallamos","halláis","hallan","hallé","hallaste","halló","hallasteis","hallaron","hallaba","hallabas","hallábamos","hallabais","hallaban","hallaría","hallarías","hallaríamos","hallaríais","hallarían","hallaré","hallarás","hallará","hallaremos","hallaréis","hallarán","halle","halles","hallemos","halléis","hallen","hallara","hallaras","halláramos","hallarais","hallaran","hallase","hallases","hallásemos","hallaseis","hallasen","hallare","hallares","halláremos","hallareis","hallaren","hallad","hallado","vengo","vienes","viene","venimos","venis","vienen","vine","viniste","vino","vinimos","vinisteis","vinieron","venía","vanías","verníamos","veníais","venían","vendría","vendrías","vendríamos","vendíais","vendrían","vendré","vendrás","vendrá","vendremos","vendréis","vendrán","venga","vengas","vengamos","vengáis","vengan","viniera","vinieras","viniéramos","vinierais","vinieran","viniese","vinieses","viniésemos","vinieseis","viniesen","viniere","vinieres","viniéremos","viniereis","vinieren","ven","venid","venido","abro","abres","abre","abrismos","abrís","abren","abrí","abriste","abrió","abristeis","abrieron","abría","abrías","abríais","abrían","abriría","abrirías","abriríamos","abriríais","abrirían","abriré","abrirás","abrirá","abriremos","abriréis","abrirán","abra","abras","abramos","abráis","abran","abriera","abrieras","abriéramos","abrierais","abrieran","abriese","abrieses","abriésemos","abrieseis","abriesen","abriere","abrieres","abriéremos","abriereis","abrieren","abrid","abierto","voy","vas","va","vamos","vais","van","iba","ibas","íbamos","ibais","iban","iría","irías","iríamos","iríais","irían","iré","irás","irá","iremos","iréis","irán","vaya","vayas","vayamos","vayáis","vayan","ve","id","ido","acabo","acabas","acaba","acabamos","acabáis","acaban","acabé","acabaste","acabó","acabasteis","acabaron","acababa","acababas","acabábamos","acababais","acababan","acabaría","acabarías","acabaríamos","acabaríais","acabarían","acabaré","acabarás","acabará","acabaremos","acabaréis","acabarán","acabe","acabes","acabemos","acabéis","acaben","acabara","acabaras","acabáramos","acabarais","acabaran","acabase","acabases","acabásemos","acabaseis","acabasen","acabare","acabares","acabáremos","acabareis","acabaren","acabad","acabado","llevo","llevas","lleva","llevamos","lleváis","llevan","llevé","llevaste","llevó","llevasteis","llevaron","llevaba","llevabas","llevábamos","llevabais","llevaban","llevaría","llevarías","llevaríamos","llevaríais","llevarían","llevaré","llevarás","llevará","llevaremos","llevaréis","llevarán","lleve","lleves","llevemos","llevéis","lleven","llevara","llevaras","lleváramos","llevarais","llevaran","llevase","llevases","llevásemos","llevaseis","llevasen","llevare","llevares","lleváremos","llevareis","llevaren","llevad","llevado","alcanzo","alcanzas","alcanza","alcanzamos","alcanzáis","alcanzan","alcancé","alcanzaste","alcanzó","alcanzasteis","alcanzaron","alcanzaba","alcanzabas","alcanzábamos","alcanzabais","alcanzaban","alcanzaría","alcanzarías","alcanzaríamos","alcanzaríais","alcanzarían","alcanzaré","alcanzarás","alcanzará","alcanzaremos","alcanzaréis","alcanzarán","alcance","alcances","alcancemos","alcancéis","alcancen","alcanzara","alcanzaras","alcanzáramos","alcanzarais","alcanzaran","alcanzase","alcanzases","alcanzásemos","alcanzaseis","alcanzasen","alcanzare","alcanzares","alcanzáremos","alcanzareis","alcanzaren","alcanzad","alcanzado","digo","dices","dice","decimos","decís","dicen","dije","dijiste","dijo","dijimos","dijisteis","dijeron","decía","decías","decíamos","decíais","decían","diría","dirías","diríamos","diríais","dirían","diré","dirás","dirá","diremos","diréis","dirán","diga","digas","digamos","digáis","digan","dijera","dijeras","dijéramos","dijerais","dijeran","dijese","dijeses","dijésemos","dijeseis","dijesen","dijere","dijeres","dijéremos","dijereis","dijeren","di","decid","dicho","continúo","continúas","continúa","continuamos","continuáis","continúan","continué","continuaste","continuó","continuasteis","continuaron","continuaba","continuabas","continuábamos","continuabais","continuaban","continuaría","continuarías","continuaríamos","continuaríais","continuarían","continuaré","continuarás","continuará","continuaremos","continuaréis","continuarán","continúe","continúes","continuemos","continuéis","continúen","continuara","continuaras","continuáramos","continuarais","continuaran","continuase","continuases","continuásemos","continuaseis","continuasen","continuare","continuares","continuáremos","continuareis","continuaren","continuad","continuado","resulto","resultas","resulta","resultamos","resultáis","resultan","resulté","resultaste","resultó","resultasteis","resultaron","resultaba","resultabas","resultábamos","resultabais","resultaban","resultaría","resultarías","resultaríamos","resultaríais","resultarían","resultaré","resultarás","resultará","resultaremos","resultaréis","resultarán","resulte","resultes","resultemos","resultéis","resulten","resultara","resultaras","resultáramos","resultarais","resultaran","resultase","resultases","resultásemos","resultaseis","resultasen","resultare","resultares","resultáremos","resultareis","resultaren","resultad","resultado","puedo","puedes","puede","podemos","podéis","pueden","pude","pudiste","pudo","pudimos","pudisteis","pudieron","podía","podías","podíamos","podíais","podían","podría","podrías","podríamos","podríais","podrían","podré","podrás","podrá","podremos","podréis","podrán","pueda","puedas","podamos","podáis","puedan","pudiera","pudieras","pudiéramos","pudierais","pudieran","pudiese","pudieses","pudiésemos","pudieseis","pudiesen","pudiere","pudieres","pudiéremos","pudiereis","pudieren","poded","podido","quiero","quieres","quiere","queremos","queréis","quieren","quise","quisiste","quiso","quisimos","quisisteis","quisieron","quería","querías","queríamos","queríais","querían","querría","querrías","querríamos","querríais","querrían","querré","querrás","querrá","querremos","querréis","querrán","quiera","quieras","queramos","queráis","quieran","quisiera","quisieras","quisiéramos","quisierais","quisieran","quisiese","quisieses","quisiésemos","quisieseis","quisiesen","quisiere","quisieres","quisiéremos","quisiereis","quisieren","quered","querido","sabes","sabe","sabemos","sabéis","saben","supe","supiste","supo","supimos","supisteis","supieron","sabía","sabías","sabíamos","sabíais","sabían","sabría","sabrías","sabríamos","sabríais","sabrían","sabré","sabrás","sabrá","sabremos","sabréis","sabrán","sepa","sepas","sepamos","sepáis","sepan","supiera","supieras","supiéramos","supierais","supieran","supiese","supieses","supiésemos","supieseis","supiesen","supiere","supieres","supiéremos","supiereis","supieren","sabed","sabido","suelo","sueles","suele","solemos","soléis","suelen","solí","soliste","solió","solimos","solisteis","solieron","solía","solías","solíamos","solíais","solían","solería","solerías","soleríamos","soleríais","solerían","soleré","solerás","solerá","soleremos","soleréis","solerán","suela","suelas","solamos","soláis","suelan","soliera","solieras","soliéramos","solierais","solieran","soliese","solieses","soliésemos","solieseis","soliesen","soliere","solieres","soliéremos","soliereis","solieren","soled","solido","necesito","necesitas","necesitamos","necesitáis","necesitan","necesité","necesitaste","necesitó","necesitasteis","necesitaron","necesitaba","necesitabas","necesitábamos","necesitabais","necesitaban","necesitaría","necesitarías","necesitaríamos","necesitaríais","necesitarían","necesitaré","necesitarás","necesitará","necesitaremos","necesitaréis","necesitarán","necesite","necesites","necesitemos","necesitéis","necesiten","necesitara","necesitaras","necesitáramos","necesitarais","necesitaran","necesitase","necesitases","necesitásemos","necesitaseis","necesitasen","necesitare","necesitares","necesitáremos","necesitareis","necesitaren","necesita","necesitad","necesitado"],h=["haber","deber","empezar","comenzar","seguir","tener","andar","quedar","hallar","venir","abrir","ir","acabar","llevar","alcanzar","decir","continuar","resultar","poder","querer","saber","soler","necesitar"],v=["estoy","estás","está","estamos","estáis","están","estuve","estuviste","estuvo","estuvimos","estuvisteis","estuvieron","estuba","estabas","estábamos","estabais","estaban","estraría","estarías","estaríamos","estaríais","estarían","estaré","estarás","estará","estaremos","estaréis","estarán","esté","estés","estemos","estéis","estén","estuviera","estuviese","estuvieras","estuviéramos","estuvierais","estuvieran","estuvieses","estuviésemos","estuvieseis","estuviesen","estuviere","estuvieres","estuviéremos","estuviereis","estuvieren","estad","estado"],k=["soy","eres","es","somos","sois","son","fui","fuiste","fuimos","fuisteis","fueron","era","eras","éramos","erais","eran","sería","serías","seríamos","seríais","serían","seré","serás","seremos","seréis","serán","sea","seas","seamos","seáis","sean","fueras","fuéramos","fuerais","fueran","fuese","fueses","fuésemos","fueseis","fuesen","fuere","fueres","fuéremos","fuereis","fueren","sé","sed","sido"],j=["estar"],_=["ser"],x=["a","ante","abajo","adonde","al","allende","alrededor","amén","antes","arriba","aun","bajo","cabe","cabo","con","contigo","contra","de","dejante","del","dentro","desde","donde","durante","en","encima","entre","excepto","fuera","hacia","hasta","incluso","mediante","más","opuesto","par","para","próximo","salvo","según","sin","so","sobre","tras","versus","vía"],q=["cerca"],E=["o","y","entonces","e","u","ni","bien","ora"],A=["igual"],T=["apenas","segun","que"],O=["apunto","apunta","confieso","confiesa","confesaba","revelado","revelo","revela","revelaba","declarado","declaro","declara","declaba","señalo","señala","señalaba","declaraba","comento","comenta"],S=["básicamente","esencialmente","primeramente","siempre","nunca","ahora","quizá","acaso","inclusive","probablemente","verdaderamente","seguramente","jamás","obviamente","indiscutiblement","inmediatamente","previamente"],P=["muy","tan","completamente","suficiente","tal","tales"],M=["hago","haces","hace","hacemos","hacéis","hacen","hice","hiciste","hizo","hicimos","hicisteis","hicieron","hacía","hacías","hacíamos","hacíais","hacían","haría,","harías","haríamos","haríais","harían","haré","harás","hará","haremos","haréis","harán","haga","hagas","hagamos","hagáis","hagan","hiciera","hicieras","hiciéramos","hicierais","hicieran","hiciese","hicieses","hiciésemos","hicieseis","hiciesen","hiciere","hicieres","hiciéremos","hiciereis","hicieren","haz","haced","hecho","parezco","pareces","parece","parecemos","parecéis","parecen","parecí","pareciste","pareció","parecimos","parecisteis","parecieron","parecía","parecías","parecíamos","parecíais","parecían","parecería","parecerías","pareceríamos","pareceríais","parecerían","pareceré","parecerás","parecerá","pareceremos","pareceréis","parecerán","parezca","parezcas","parezcamos","parezcáis","parezcan","pareciera","parecieras","pareciéramos","parecierais","parecieran","pareciese","parecieses","pareciésemos","parecieseis","pareciesen","pareciere","parecieres","pareciéremos","pareciereis","parecieren","pareced","parecido"],C=["hacer","parecer"],R=["enfrente","mejor","peor","menos","claro","bueno","nuevo","nueva","nuevos","nuevas","viejo","viejos","vieja","viejas","anterior","grande","gran","grandes","mayores","fácil","fáciles","rápido","rápida","rápidos","rápidas","lejos","lejas","difícil","difíciles","propio","propios","propia","propias","largo","larga","largos","largas","bajos","baja","bajas","alto","alta","altos","altas","regular","regulares","normal","pequeño","pequeña","pequeños","pequeñas","diminuta","diminuto","diminutas","diminutos","chiquitito","chiquititos","chiquitita","chiquititas","corta","corto","cortas","cortos","principal","principales","mismo","mismos","misma","mismas","capaz","capaces","cierta","cierto","ciertas","ciertos","llamado","llamada","llamados","llamadas","mayormente","reciente","recientes","completa","completo","completas","completos","absoluta","absoluto","absolutas","absolutos","últimamente","posible","común","comúnes","comúnmente","constantemente","continuamente","directamente","fácilmente","casi","ligeramente","estima","estimada","estimado","aproximada","aproximadamente","última","últimas","último","últimos","diferente","diferentes","similar","mal","malo","malos","mala","malas","perfectamente","excelente","final","general"],D=["ah","eh","ejem","ele","achís","adiós","agur","ajá","ajajá","ala","alá","albricias","aleluya","alerta","alirón","aló","amalaya","ar","aro","arrarray","arre","arsa","atatay","aúpa","ax","ay","ayayay","bah","banzai","barajo","bla","bravo","buf","bum","ca","caguendiós","canastos","caracho","caracoles","carajo","caramba","carape","caray","cáscaras","cáspita","cataplum","ce","chao","chau","che","chis","chist","chitón","cho","chucho","chus","cielos","clo","coche","cochi","cojones","concho","coño","córcholis","cuchí","cuidado","cuz","demonio","demontre","despacio","diablo","diantre","dios","ea","epa","equilicuá","estúpido","eureka","evohé","exacto","fantástico","firmes","fo","forte","gua","gualá","guarte","guay","hala","hale","he","hi","hin","hola","hopo","huesque","huiche","huichó","huifa","hurra","huy","ja","jajajá","jajay","jaque","jau","jo","jobar","joder","jolín","jopo","leñe","listo","malhayas","mamola","mecachis","miéchica","mondo","moste","mutis","nanay","narices","oh","ojalá","ojo","okay","ole","olé","órdiga","oste","ostras","ox","oxte","paf","pardiez","paso","pucha","puf","puff","pumba","puñeta","quia","quiúbole","recórcholis","rediez","rediós","salve","sanseacabó","sniff","socorro","ta","tararira","tate","tururú","uf","uh","ui","upa","uste","uy","victoria","vítor","viva","za","zambomba","zapateta","zape","zas"],F=["kg","mg","gr","g","km","m","l","ml","cl"],B=["minuto","minutos","hora","horas","día","días","semana","semanas","mes","meses","año","años","hoy","mañana","ayer"],$=["cosa","cosas","manera","maneras","caso","casos","pieza","piezas","vez","veces","parte","partes","porcentaje","instancia","aspecto","aspectos","punto","puntos","objeto","objectos","persona","personas"],L=["no","euros"],I=["sra","sras","srta","sr","sres","dra","dr","profa","prof"],W=["jr","sr"]},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return{filteredAtBeginning:R,filteredAtEnding:[].concat(r,O,h,k,_,C,D),filteredAtBeginningAndEnding:[].concat(n,x,q,c,P,p,u),filteredAnywhere:[].concat(i,s,d,l,F,o,b,v,j,T,M,z,E,A,g,m,f,w,I,y,B,$,L),cannotDirectlyPrecedePassiveParticiple:[].concat(n,x,d,u,z,o,r,M,C,T,g,m,l,f),cannotBeBetweenPassiveAuxiliaryAndParticiple:[].concat(v,k),all:[].concat(n,o,r,c,u,s,d,l,p,z,m,f,g,y,w,b,h,v,k,j,_,x,q,E,A,T,O,i,S,P,M,C,F,R,D,B,L,I,$,W)}};var i=(0,function(a){return a&&a.__esModule?a:{default:a}}(t(809)).default)().singleWords,n=["il","i","la","le","lo","gli","un","uno","una"],o=["due","tre","quattro","cinque","sette","otto","nove","dieci","undici","dodici","tredici","quattordici","quindici","sedici","diciassette","diciotto","diciannove","venti","cento","mille","mila","duemila","tremila","quattromila","cinquemila","seimila","settemila","ottomila","novemila","diecimila","milione","milioni","miliardo","miliardi"],r=["prima","primi","prime","secondo","seconda","secondi","seconde","terzo","terza","terzi","terze","quarto","quarta","quarti","quarte","quinto","quinta","quinti","quinte","sesto","sesta","sesti","seste","settimo","settima","settimi","settime","ottavo","ottava","ottavi","ottave","nono","nona","noni","none","decimo","decima","decimi","decime","undicesimo","undicesima","undicesimi","undicesime","dodicesimo","dodicesima","dodicesimi","dodicesime","tredicesimo","tredicesima","tredicesimi","tredicesime","quattordicesimo","quattordicesima","quattordicesimi","quattordicesime","quindicesimo","quindicesima","quindicesimi","quindicesime","sedicesimo","sedicesima","sedicesimi","sedicesime","diciassettesimo","diciassettesima","diciassettesimi","diciassettesime","diciannovesimo","diciannovesima","diciannovesimi","diciannovesime","ventesimo","ventesima","ventesimi","ventesime"],s=["io","tu","egli","esso","lui","ella","essa","lei","noi","voi","essi","esse","loro"],d=["mi","ti","si","ci","vi","li","me","te","se","glie","glielo","gliela","glieli","gliele","gliene","ce","ve"],l=["sé"],c=["ciò","codesto","codesta","codesti","codeste","colei","colui","coloro","costei","costui","costoro","medesimo","medesima","medesimi","medesime","questo","questa","questi","queste","quello","quella","quelli","quelle","quel","quei","quegli"],u=["mio","mia","miei","mie","tuo","tua","tuoi","tue","suo","sua","suoi","sue","nostro","nostra","nostri","nostre","vostro","vostra","vostri","vostre"],p=["affatto","alcun","alcuna","alcune","alcuni","alcuno","bastantemente","grandemente","massimamente","meno","minimamente","molta","molte","molti","moltissimo","molto","nessun","nessuna","nessuno","niente","nulla","ogni","più","po'","poca","poche","pochi","poco","pochissime","pochissimi","qualche","qualsiasi","qualunque","quintali","rara","rarissima","rarissimo","raro","spesso","spessissimo","sufficientemente","taluno","taluna","taluni","talune","tanta","tante","tanti","tantissime","tantissimi","tanto","tonnellate","troppa","troppe","troppi","troppo","tutta","tutte","tutti","tutto"],z=["alcunché","alcunchè","altro","altra","altri","altre","certa","certi","certe","checché","checchè","chicchessia","chiunque","ciascuno","ciascuna","ciascun","diverso","diversa","diversi","diverse","parecchio","parecchia","parecchi","parecchie","qualcosa","qualcuno","qualcuna","vario","varia","vari","varie"],g=["che","cosa","cui","qual","quale","quali"],m=["chi","quanta","quante","quanti","quanto"],f=["com'è","com'era","com'erano","donde","d'onde","dove","dov'è","dov'era","dov'erano","dovunque"],y=["ne"],w=["accanto","altrove","attorno","dappertutto","giù","là","laggiù","lassù","lì","ovunque","qua","quaggiù","quassù","qui"],b=["vengano","vengo","vengono","veniamo","veniate","venimmo","venisse","venissero","venissi","venissimo","veniste","venisti","venite","veniva","venivamo","venivano","venivate","venivi","venivo","venne","vennero","venni","verrà","verrai","verranno","verrebbe","verrebbero","verrei","verremmo","verremo","verreste","verresti","verrete","verrò","viene","vieni"],h=["venire","venir"],v=["abbi","abbia","abbiamo","abbiano","abbiate","abbiente","avemmo","avendo","avente","avesse","avessero","avessi","avessimo","aveste","avesti","avete","aveva","avevamo","avevano","avevate","avevi","avevo","avrà","avrai","avranno","avrebbe","avrebbero","avrei","avremmo","avremo","avreste","avresti","avrete","avrò","avuto","ebbe","ebbero","ebbi","ha","hai","hanno","ho","l'abbi","l'abbia","l'abbiamo","l'abbiano","l'abbiate","l'abbiente","l'avemmo","l'avendo","l'avente","l'avesse","l'avessero","l'avessi","l'avessimo","l'aveste","l'avesti","l'avete","l'aveva","l'avevamo","l'avevano","l'avevate","l'avevi","l'avevo","l'avrà","l'avrai","l'avranno","l'avrebbe","l'avrebbero","l'avrei","l'avremmo","l'avremo","l'avreste","l'avresti","l'avrete","l'avrò","l'avuto","l'ebbe","l'ebbero","l'ebbi","l'ha","l'hai","l'hanno","l'ho","possa","possano","possiamo","possiate","posso","possono","poté","potei","potemmo","potendo","potente","poterono","potesse","potessero","potessi","potessimo","poteste","potesti","potete","potette","potettero","potetti","poteva","potevamo","potevano","potevate","potevi","potevo","potrà","potrai","potranno","potrebbe","potrebbero","potrei","potremmo","potremo","potreste","potresti","potrete","potrò","potuto","può","puoi","voglia","vogliamo","vogliano","vogliate","voglio","vogliono","volemmo","volendo","volente","volesse","volessero","volessi","volessimo","voleste","volesti","volete","voleva","volevamo","volevano","volevate","volevi","volevo","volle","vollero","volli","voluto","vorrà","vorrai","vorranno","vorrebbe","vorrebbero","vorrei","vorremmo","vorremo","vorreste","vorresti","vorrete","vorrò","vuoi","vuole","debba","debbano","debbono","deva","deve","devi","devo","devono","dobbiamo","dobbiate","dové","dovei","dovemmo","dovendo","doverono","dovesse","dovessero","dovessi","dovessimo","doveste","dovesti","dovete","dovette","dovettero","dovetti","doveva","dovevamo","dovevano","dovevate","dovevi","dovevo","dovrà","dovrai","dovranno","dovrebbe","dovrebbero","dovrei","dovremmo","dovremo","dovreste","dovresti","dovrete","dovrò","dovuto","sa","sai","sanno","sapemmo","sapendo","sapesse","sapessero","sapessi","sapessimo","sapeste","sapesti","sapete","sapeva","sapevamo","sapevano","sapevate","sapevi","sapevo","sappi","sappia","sappiamo","sappiano","sappiate","saprà","saprai","sapranno","saprebbe","saprebbero","saprei","sapremmo","sapremo","sapreste","sapresti","saprete","saprò","saputo","seppe","seppero","seppi","so","soglia","sogliamo","sogliano","sogliate","soglio","sogliono","solesse","solessero","solessi","solessimo","soleste","solete","soleva","solevamo","solevano","solevate","solevi","solevo","suoli","sta","stai","stando","stanno","stante","starà","starai","staranno","staremo","starete","starò","stava","stavamo","stavano","stavate","stavi","stavo","stemmo","stessero","stessimo","steste","stesti","stette","stettero","stetti","stia","stiamo","stiano","stiate","sto"],k=["avere","l'avere","aver","l'aver","potere","poter","volere","voler","dovere","dover","sapere","saper","solere","stare","star"],j=["è","e'","era","erano","eravamo","eravate","eri","ero","essendo","essente","fosse","fossero","fossi","fossimo","foste","fosti","fu","fui","fummo","furono","sarà","sarai","saranno","sarebbe","sarebbero","sarei","saremmo","saremo","sareste","saresti","sarete","sarò","sei","sia","siamo","siano","siate","siete","sii","sono","stata","state","stati","stato"],_=["essere","esser"],x=["di","del","dello","della","dei","degli","delle","a","ad","al","allo","alla","ai","agli","alle","da","dal","dallo","dalla","dai","dagli","dalle","in","nel","nello","nella","nei","negli","nelle","con","col","collo","colla","coi","cogli","colle","su","sul","sullo","sulla","sui","sugli","sulle","per","pel","pello","pella","pei","pegli","tra","fra","attraverso","circa","contro","davanti","dentro","dietro","entro","escluso","fuori","insieme","intorno","lontano","lungo","mediante","oltre","presso","rasente","riguardo","senza","sopra","sotto","tramite","vicino"],q=["e","ed","o","oppure"],E=["tale","l'uno","l'altro","tali","dall'altra"],A=["anziché","anzichè","fuorché","fuorchè","giacché","giacchè","laddove","modo","ove","qualora","quantunque","volta"],T=["dice","dicono","diceva","dicevano","disse","dissero","detto","domanda","domandano","domandava","domandavano","domandò","domandarono","domandato","afferma","affermato","aggiunge","aggiunto","ammette","ammesso","annuncia","annunciato","assicura","assicurato","chiede","chiesto","commentato","conclude","concluso","continua","continuato","denuncia","denunciato","dichiara","dichiarato","esordisce","esordito","inizia","iniziato","precisato","prosegue","proseguito","racconta","raccontato","recita","recitato","replica","replicato","risponde","risposto","rimarca","rimarcato","rivela","rivelato","scandisce","scandito","scrive","scritto","segnala","segnalato","sottolinea","sottolineato","spiega","spiegato"],O=["affermare","aggiungere","ammettere","annunciare","assicurare","chiedere","commentare","concludere","continuare","denunciare","dichiarare","esordire","iniziare","precisare","proseguire","raccontare","recitare","replicare","rispondere","rimarcare","rivelare","scandire","scrivere","segnalare","sottolineare","spiegare"],S=["eventualmente","forse","mai","probabilmente"],P=["addirittura","assolutamente","ben","estremamente","mica","nemmeno","quasi"],M=["fa","fa'","faccia","facciamo","facciano","facciate","faccio","facemmo","facendo","facente","facesse","facessero","facessi","facessimo","faceste","facesti","faceva","facevamo","facevano","facevate","facevi","facevo","fai","fanno","farà","farai","faranno","farebbe","farebbero","farei","faremmo","faremo","fareste","faresti","farete","farò","fate","fatto","fece","fecero","feci","fo"],C=["fare"],R=["anteriore","anteriori","precedente","precedenti","facile","facili","facilissimo","facilissima","facilissimi","facilissime","semplice","semplici","semplicissima","semplicissimo","semplicissimi","semplicissime","semplicemente","rapido","rapida","rapidi","rapide","veloce","veloci","differente","difficile","difficili","difficilissimo","difficilissima","difficilissimi","difficilissime","basso","bassa","bassi","basse","alto","alta","alti","alte","normale","normali","normalmente","corto","corta","corti","corte","breve","brevi","recente","recenti","totale","totali","completo","completa","completi","complete","possibile","possibili","ultimo","ultima","ultimi","ultime","differenti","simile","simili","prossimo","prossima","prossimi","prossime","giusto","giusta","giusti","giuste","giustamente","cosiddetto","bene","meglio","benissimo","male","peggio","malissimo","comunemente","constantemente","direttamente","esattamente","facilmente","generalmente","leggermente","personalmente","recentemente","sinceramente","solamente","avanti","indietro"],D=["nuovo","nuova","nuovi","nuove","vecchio","vecchia","vecchi","vecchie","bello","bella","belli","belle","bellissimo","bellissima","bellissimi","bellissime","buono","buona","buoni","buone","buonissimo","buonissima","buonissimi","buonissime","grande","grandi","grandissimo","grandissima","grandissimi","grandissime","lunga","lunghi","lunghe","piccolo","piccola","piccoli","piccole","piccolissimo","piccolissima","piccolissimi","piccolissime","proprio","propria","propri","proprie","solito","solita","soliti","solite","stesso","stessa","stessi","stesse"],F=["accidenti","acciderba","ah","aah","ahi","ahia","ahimé","bah","beh","boh","ca","caspita","chissà","de'","diamine","ecco","eh","ehi","eeh","ehilà","ehm","gna","ih","magari","macché","macchè","mah","mhm","nca","neh","oibò","oh","ohe","ohé","ohilá","ohibò","ohimé","okay","ok","olà","poh","pota","puah","sorbole","to'","toh","ts","uff","uffa","uh","uhi"],B=["cc","g","hg","hl","kg","l","prs","pz","q.b.","qb","ta","tz"],$=["minuto","minuti","ora","ore","giorno","giorni","giornata","giornate","settimana","settimane","mese","mesi","anno","anni","oggi","domani","ieri","stamattina","stanotte","stasera","tardi"],L=["aspetto","aspetti","caso","casi","cose","idea","idee","istanza","maniera","oggetto","oggetti","parte","parti","persona","persone","pezzo","pezzi","punto","punti","sorta","sorte","tema","temi","volte"],I=["sì","no","non","€","euro","euros","ecc","eccetera"],W=["sig.na","sig.ra","sig","sigg","dr","dr.ssa","dott","dott.ssa","prof","prof.ssa","gent","gent.mo","gent.mi","gent.ma","gent.me","egr","egr.i","egr.ia","egr.ie","preg.mo","preg.mo","preg.ma","preg.me","ill","ill.mo","ill.mi","ill.ma","ill.me","cav","on","spett"]},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return{filteredAtEnding:[].concat(r,v,M,j,T,R),filteredAtBeginning:C,filteredAtBeginningAndEnding:[].concat(n,_,x,c,S,p,u),filteredAnywhere:[].concat(i,s,l,d,z,D,o,k,A,h,P,g,q,E,y,m,b,L,w,F,B,$),cannotDirectlyPrecedePassiveParticiple:[].concat(n,_,d,l,u,z,g,f,y,o,r,P,A,M),cannotBeBetweenPassiveAuxiliaryAndParticiple:[].concat(h,v),all:[].concat(n,o,r,c,u,z,s,l,m,p,g,f,w,b,h,v,y,k,j,_,x,q,E,A,T,i,O,S,P,M,D,C,R,F,$,L,B,I,W,d)}};var i=(0,function(a){return a&&a.__esModule?a:{default:a}}(t(810)).default)().singleWords,n=["le","la","les","un","une","des","aux","du","au","d'un","d'une","l'un","l'une"],o=["deux","trois","quatre","cinq","six","sept","huit","neuf","dix","onze","douze","treize","quatorze","quinze","seize","dix-sept","dix-huit","dix-neuf","vingt","trente","quarante","cinquante","soixante","soixante-dix","quatre-vingt","quatre-vingt-dix","septante","huitante","octante","nonante","cent","mille","million","milliard"],r=["second","secondes","deuxième","deuxièmes","troisième","troisièmes","quatrième","quatrièmes","cinquième","cinquièmes","sixième","sixièmes","septième","septièmes","huitième","huitièmes","neuvième","neuvièmes","dixième","dixièmes","onzième","onzièmes","douzième","douzièmes","treizième","treizièmes","quatorzième","quatorzièmes","quinzième","quinzièmes","seizième","seizièmes","dix-septième","dix-septièmes","dix-huitième","dix-huitièmes","dix-neuvième","dix-neuvièmes","vingtième","vingtièmes"],s=["je","tu","il","elle","on","nous","vous","ils","elles","qu'il","qu'elle","qu'ils","qu'elles","qu'on","d'elle","d'elles"],d=["moi","toi","lui","soi","eux","d'eux","qu'eux"],l=["me","te"],c=["celui","celle","ceux","celles","ce","celui-ci","celui-là","celle-ci","celle-là","ceux-ci","ceux-là","celles-ci","celles-là","ceci","cela","ça","cette","cet","ces"],u=["mon","ton","son","ma","ta","sa","mes","tes","ses","notre","votre","leur","nos","vos","leurs"],p=["beaucoup","peu","quelque","quelques","tous","tout","toute","toutes","plusieurs","plein","chaque","suffisant","suffisante","suffisantes","suffisants","faible","moins","tant","plus","divers","diverse","diverses"],z=["se"],g=["aucun","aucune","autre","autres","d'autres","certain","certaine","certaines","certains","chacun","chacune","même","mêmes","quelqu'un","quelqu'une","quelques'uns","quelques'unes","autrui","nul","personne","quiconque","rien","d'aucunes","d'aucuns","nuls","nules","l'autre","tel","telle","tels","telles"],m=["qui","que","lequel","laquelle","auquel","auxquels","auxquelles","duquel","desquels","desquelles","dont","où","quoi"],f=["combien","comment","pourquoi","d'où"],y=["quel","quels","quelle"],w=["y","n'y"],b=["là","ici","d'ici","voici"],h=["a","a-t-elle","a-t-il","a-t-on","ai","ai-je","aie","as","as-tu","aura","aurai","auraient","aurais","aurait","auras","aurez","auriez","aurons","auront","avaient","avais","avait","avez","avez-vous","aviez","avions","avons","avons-nous","ayez","ayons","eu","eûmes","eurent","eus","eut","eûtes","j'ai","j'aurai","j'avais","j'eus","ont","ont-elles","ont-ils","vais","vas","va","allons","allez","vont","vais-je","vas-tu","va-t-il","va-t-elle","va-t-on","allons-nous","allez-vous","vont-elles","vont-ils","allé","allés","j'allai","allai","allas","alla","allâmes","allâtes","allèrent","j'allais","allais","allait","allions","alliez","allaient","j'irai","iras","ira","irons","irez","iront","j'aille","aille","ailles","aillent","j'allasse","allasse","allasses","allât","allassions","allassiez","allassent","j'irais","irais","irait","irions","iriez","iraient","allant","viens","vient","venons","venez","viennent","viens-je","viens-de","vient-il","vient-elle","vient-on","venons-nous","venez-vous","viennent-elles","viennent-ils","vins","vint","vînmes","vîntes","vinrent","venu","venus","venais","venait","venions","veniez","venaient","viendrai","viendras","viendra","viendrons","viendrez","viendront","vienne","viennes","vinsse","vinsses","vînt","vinssions","vinssiez","vinssent","viendrais","viendrait","viendrions","viendriez","viendraient","venant","dois","doit","devons","devez","doivent","dois-je","dois-tu","doit-il","doit-elle","doit-on","devons-nous","devez-vous","doivent-elles","doivent-ils","dus","dut","dûmes","dûtes","durent","dû","devais","devait","devions","deviez","devaient","devrai","devras","devra","devrons","devrez","devront","doive","doives","dusse","dusses","dût","dussions","dussiez","dussent","devrais","devrait","devrions","devriez","devraient","peux","peut","pouvons","pouvez","peuvent","peux-je","peux-tu","peut-il","peut-elle","peut-on","pouvons-nous","pouvez-vous","peuvent-ils","peuvent-elles","pus","put","pûmes","pûtes","purent","pu","pouvais","pouvait","pouvions","pouviez","pouvaient","pourrai","pourras","pourra","pourrons","pourrez","pourront","puisse","puisses","puissions","puissiez","puissent","pusse","pusses","pût","pussions","pussiez","pussent","pourrais","pourrait","pourrions","pourriez","pourraient","pouvant","semble","sembles","semblons","semblez","semblent","semble-je","sembles-il","sembles-elle","sembles-on","semblons-nous","semblez-vous","semblent-ils","semblent-elles","semblai","semblas","sembla","semblâmes","semblâtes","semblèrent","semblais","semblait","semblions","sembliez","semblaient","semblerai","sembleras","semblera","semblerons","semblerez","sembleront","semblé","semblasse","semblasses","semblât","semblassions","semblassiez","semblassent","semblerais","semblerait","semblerions","sembleriez","sembleraient","parais","paraît","ait","paraissons","paraissez","paraissent","parais-je","parais-tu","paraît-il","paraît-elle","paraît-on","ait-il","ait-elle","ait-on","paraissons-nous","paraissez-vous","paraissent-ils","paraissent-elles","parus","parut","parûmes","parûtes","parurent","paraissais","paraissait","paraissions","paraissiez","paraissaient","paraîtrai","paraîtras","paraîtra","paraîtrons","paraîtrez","paraîtront","paru","paraisse","paraisses","parusse","parusses","parût","parussions","parussiez","parussent","paraîtrais","paraîtrait","paraîtrions","paraîtriez","paraîtraient","paraitrais","paraitrait","paraitrions","paraitriez","paraitraient","paraissant","mets","met","mettons","mettez","mettent","mets-je","mets-tu","met-il","met-elle","met-on","mettons-nous","mettez-vous","mettent-ils","mettent-elles","mis","mit","mîmes","mîtes","mirent","mettais","mettait","mettions","mettiez","mettaient","mettrai","mettras","mettra","mettrons","mettrez","mettront","mette","mettes","misse","misses","mît","missions","missiez","missent","mettrais","mettrait","mettrions","mettriez","mettraient","mettant","finis","finit","finissons","finissez","finissent","finis-je","finis-tu","finit-il","finit-elle","finit-on","finissons-nous","finissez-vous","finissent-ils","finissent-elles","finîmes","finîtes","finirent","finissais","finissait","finissions","finissiez","finissaient","finirai","finiras","finira","finirons","finirez","finiront","fini","finisse","finisses","finît","finirais","finirait","finirions","finiriez","finiraient","finissant","n'a","n'ai","n'aie","n'as","n'aura","n'aurai","n'auraient","n'aurais","n'aurait","n'auras","n'aurez","n'auriez","n'aurons","n'auront","n'avaient","n'avais","n'avait","n'avez","n'avez-vous","n'aviez","n'avions","n'avons","n'avons-nous","n'ayez","n'ayons","n'ont","n'ont-elles","n'ont-ils","n'allons","n'allez","n'allais","n'allait","n'allions","n'alliez","n'allaient","n'iras","n'ira","n'irons","n'irez","n'iront","qu'a"],v=["avoir","aller","venir","devoir","pouvoir","sembler","paraître","paraitre","mettre","finir","d'avoir","d'aller","n'avoir","l'avoir"],k=["suis","es","est","est-ce","n'est","sommes","êtes","sont","suis-je","es-tu","est-il","est-elle","est-on","sommes-nous","êtes-vous","sont-ils","sont-elles","étais","était","étions","étiez","étaient","serai","seras","sera","serons","serez","seront","serais","serait","serions","seriez","seraient","sois","soit","soyons","soyez","soient","été","n'es","n'est-ce","n'êtes","n'était","n'étais","n'étions","n'étiez","n'étaient","qu'est"],j=["être","d'être"],_=["à","après","d'après","au-delà","au-dessous","au-dessus","avant","avec","concernant","chez","contre","dans","de","depuis","derrière","dès","devant","durant","en","entre","envers","environ","hormis","hors","jusque","jusqu'à","jusqu'au","jusqu'aux","loin","moyennant","outre","par","parmi","pendant","pour","près","quant","sans","sous","sur","travers","vers","voilà"],x=["et","ni","or","ou"],q=["non","pas","seulement","sitôt","aussitôt","d'autre"],E=["afin","autant","comme","d'autant","d'ici","quand","lors","parce","si","tandis"],A=["dit","disent","dit-il","dit-elle","disent-ils","disent-elles","disait","disait-il","disait-elle","disaient-ils","disaient-elles","dirent","demande","demandent","demande-t-il","demande-t-elle","demandent-ils","demandent-elles","demandait","demandaient","demandait-il","demandait-elle","demandaient-ils","demandaient-elles","demanda","demanda-t-il","demanda-t-elle","demandé","pense","pensent","pense-t-il","pense-t-elle","pensent-ils","pensent-elles","pensait","pensaient","pensait-il","pensait-elle","pensaient-ils","pensaient-elles","pensa","pensa-t-il","pensa-t-elle","pensé","affirme","affirme-t-il","affirme-t-elle","affirmé","avoue","avoue-t-il","avoue-t-elle","avoué","concède","concède-t-il","concède-t-elle","concédé","confie","confie-t-il","confie-t-elle","confié","continue","continue-t-il","continue-t-elle","continué","déclame","déclame-t-il","déclame-t-elle","déclamé","déclare","déclare-t-il","déclare-t-elle","déclaré","déplore","déplore-t-il","déplore-t-elle","déploré","explique","explique-t-il","explique-t-elle","expliqué","lance","lance-t-il","lance-t-elle","lancé","narre","narre-t-il","narre-t-elle","narré","raconte","raconte-t-il","raconte-t-elle","raconté","rappelle","rappelle-t-il","rappelle-t-elle","rappelé","réagit","réagit-il","réagit-elle","réagi","répond","répond-il","répond-elle","répondu","rétorque","rétorque-t-il","rétorque-t-elle","rétorqué","souligne","souligne-t-il","souligne-t-elle","souligné","affirme-t-il","affirme-t-elle","ajoute-t-il","ajoute-t-elle","analyse-t-il","analyse-t-elle","avance-t-il","avance-t-elle","écrit-il","écrit-elle","indique-t-il","indique-t-elle","poursuit-il","poursuit-elle","précise-t-il","précise-t-elle","résume-t-il","résume-t-elle","souvient-il","souvient-elle","témoigne-t-il","témoigne-t-elle"],T=["dire","penser","demander","concéder","continuer","confier","déclamer","déclarer","déplorer","expliquer","lancer","narrer","raconter","rappeler","réagir","répondre","rétorquer","souligner","affirmer","ajouter","analyser","avancer","écrire","indiquer","poursuivre","préciser","résumer","témoigner"],O=["encore","éternellement","immédiatement","compris","comprenant","inclus","naturellement","particulièrement","notablement","actuellement","maintenant","ordinairement","généralement","habituellement","d'habitude","vraiment","finalement","uniquement","peut-être","initialement","déjà","c.-à-d","souvent","fréquemment","régulièrement","simplement","éventuellement","quelquefois","parfois","probable","plausible","jamais","toujours","incidemment","accidentellement","récemment","dernièrement","relativement","clairement","évidemment","apparemment","pourvu"],S=["assez","trop","tellement","presque","très","absolument","extrêmement","quasi","quasiment","fort"],P=["fais","fait","faisons","faites","font","fais-je","fait-il","fait-elle","fait-on","faisons-nous","faites-vous","font-ils","font-elles","fis","fit","fîmes","fîtes","firent","faisais","faisait","faisions","faisiez","faisaient","ferai","feras","fera","ferons","ferez","feront","veux","veut","voulons","voulez","veulent","voulus","voulut","voulûmes","voulûtes","voulurent","voulais","voulait","voulions","vouliez","voulaient","voudrai","voudras","voudra","voudrons","voudrez","voudront","voulu","veux-je","veux-tu","veut-il","veut-elle","veut-on","voulons-nous","voulez-vous","veulent-ils","veulent-elles","voudrais","voudrait","voudrions","voudriez","voudraient","voulant"],M=["faire","vouloir"],C=["antérieur","antérieures","antérieurs","antérieure","précédent","précédents","précédente","précédentes","facile","faciles","simple","simples","vite","vites","vitesse","vitesses","difficile","difficiles","propre","propres","long","longe","longs","longes","longue","longues","bas","basse","basses","ordinaire","ordinaires","bref","brefs","brève","brèves","sûr","sûrs","sûre","sûres","sure","sures","surs","habituel","habituels","habituelle","habituelles","soi-disant","surtout","récent","récents","récente","récentes","total","totaux","totale","totales","complet","complets","complète","complètes","possible","possibles","communément","constamment","facilement","continuellement","directement","légèrement","dernier","derniers","dernière","dernières","différent","différents","différente","différentes","similaire","similaires","pareil","pareils","pareille","pareilles","largement","mal","super","bien","pire","pires","suivants","suivante","suivantes","prochain","prochaine","prochains","prochaines","proche","proches","fur"],R=["nouveau","nouvel","nouvelle","nouveaux","nouvelles","vieux","vieil","vieille","vieilles","beau","bel","belle","belles","bon","bons","bonne","bonnes","grand","grande","grands","grandes","haut","hauts","haute","hautes","petit","petite","petits","petites","meilleur","meilleurs","meilleure","meilleures","joli","jolis","jolie","jolies","gros","grosse","grosses","mauvais","mauvaise","mauvaises","dernier","derniers","dernière","dernières"],D=["ah","ha","oh","ho","bis","plouf","vlan","ciel","pouf","paf","crac","hurrah","allo","stop","bravo","ô","eh","hé","aïe","oef","ahi","fi","zest","hem","holà","chut"],F=["mg","g","kg","ml","dl","cl","l","grammes","gram","once","onces","oz","lbs","càc","cc","càd","càs","càt","cd","cs","ct"],B=["minute","minutes","heure","heures","journée","journées","semaine","semaines","mois","année","années","aujourd'hui","demain","hier","après-demain","avant-hier"],$=["chose","choses","façon","façons","pièce","pièces","truc","trucs","fois","cas","aspect","aspects","objet","objets","idée","idées","thème","thèmes","sujet","sujets","personnes","manière","manières","sorte","sortes"],L=["ne","oui","d'accord","amen","euro","euros","etc"],I=["mme","mmes","mlle","mlles","mm","dr","pr"],W=["jr","sr"]},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return{filteredAtEnding:[].concat(o,D,F,M,q,x),filteredAtBeginningAndEnding:[].concat(E,T,h,v,R,z,g,m),filteredAnywhere:[].concat(i,S,n,r,s,d,l,c,u,p,f,y,w,b,k,A,O,P,C,B,$,L,I,W,U,j),cannotDirectlyPrecedePassiveParticiple:[].concat(E,u,z,n,o,P,M,C,w,f,y),cannotBeBetweenPassiveAuxiliaryAndParticiple:[].concat(j,q,g),all:[].concat(i,S,n,r,s,d,l,c,u,p,f,y,w,b,k,j,A,O,P,C,B,$,L,I,W,U,_,E,T,h,v,R,z,g,m,o,D,F,M,q,x)}};var i=(0,function(a){return a&&a.__esModule?a:{default:a}}(t(813)).default)().singleWords,n=["czterech","czterem","czterema","czternaście","czternastce","czternastek","czternastka","czternastką","czternastkach","czternastkami","czternastkę","czternastki","czternastko","czternastkom","czternastoma","czternastu","cztery","czwórce","czwórek","czwórka","czwórką","czwórkach","czwórkami","czwórkę","czwórki","czwórko","czwórkom","czworo","dwa","dwadzieścia","dwanaście","dwie","dwiema","dwóch","dwójce","dwoje","dwójek","dwójka","dwójką","dwójkach","dwójkami","dwójki","dwójko","dwójkom","dwóm","dwoma","dwudziestce","dwudziestek","dwudziestka","dwudziestką","dwudziestkach","dwudziestkami","dwudziestkę","dwudziestki","dwudziestkom","dwudziestoma","dwudziestu","dwunastce","dwunastek","dwunastka","dwunastką","dwunastkach","dwunastkami","dwunastkę","dwunastki","dwunastko","dwunastkom","dwunastoma","dwunastu","dziesiątce","dziesiątek","dziesiątka","dziesiątką","dziesiątkach","dziesiątkami","dziesiątkę","dziesiątki","dziesiątko","dziesiątkom","dziesięć","dziesięcioma","dziesięciu","dziewiątce","dziewiątek","dziewiątka","dziewiątką","dziewiątkach","dziewiątkami","dziewiątkę","dziewiątki","dziewiątko","dziewiątkom","dziewięć","dziewięcioma","dziewięciorga","dziewięciorgiem","dziewięciorgu","dziewięcioro","dziewięciu","dziewiętnaście","dziewiętnastce","dziewiętnastek","dziewiętnastka","dziewiętnastką","dziewiętnastkach","dziewiętnastkami","dziewiętnastkę","dziewiętnastki","dziewiętnastkom","dziewiętnastoma","dziewiętnastu","jeden","jedenaście","jedenastce","jedenastek","jedenastka","jedenastką","jedenastkach","jedenastkami","jedenastkę","jedenastki","jedenastko","jedenastkom","jedenastoma","jedenastu","jedna","jedną","jednego","jednej","jednemu","jedno","jednym","jedynce","jedynek","jedynka","jedynką","jedynkach","jedynkami","jedynkę","jedynki","jedynko","jedynkom","miliard","miliarda","miliardach","miliardami","miliardem","miliardom","miliardów","miliardowi","miliardy","miliardzie","milion","miliona","milionach","milionami","milionem","milionie","milionom","milionów","milionowi","miliony","ósemce","ósemek","ósemka","ósemką","ósemkach","ósemkami","ósemkę","ósemki","ósemko","ósemkom","osiem","osiemnaście","osiemnastce","osiemnastek","osiemnastka","osiemnastką","osiemnastkach","osiemnastkam","osiemnastkę","osiemnastki","osiemnastko","osiemnastkom","osiemnastoma","osiemnastu","ośmioma","ośmiorga","ośmiorgiem","ośmiorgu","ośmioro","ośmiu","piątce","piątek","piątka","piątką","piątkach","piątkami","piątkę","piątki","piątko","piątkom","pięć","pięcioma","pięciorga","pięciorgiem","pięciorgu","pięcioro","pięciu","piętnaście","piętnastce","piętnastek","piętnastka","piętnastką","piętnastkach","piętnastkami","piętnastkę","piętnastki","piętnastko","piętnastkom","piętnastoma","piętnastu","raz","setce","setek","setka","setkach","setkami","setkę","setki","setkom","siedem","siedemnaście","siedemnastce","siedemnastek","siedemnastka","siedemnastką","siedemnastkach","siedemnastkami","siedemnastkę","siedemnastki","siedemnastko","siedemnastkom","siedemnastoma","siedemnastu","siedmioma","siedmiorga","siedmiorgiem","siedmiorgu","siedmioro","siedmiu","siódemce","siódemek","siódemka","siódemką","siódemkach","siódemkami","siódemkę","siódemki","siódemko","siódemkom","sto","stoma","stu","sześć","sześcioma","sześciorga","sześciorgiem","sześciorgu","sześcioro","sześciu","szesnaście","szesnastce","szesnastek","szesnastka","szesnastką","szesnastkach","szesnastkami","szesnastkę","szesnastki","szesnastko","szesnastkom","szesnastoma","szesnastu","szóstce","szóstek","szóstka","szóstką","szóstkach","szóstkami","szóstkę","szóstki","szóstko","szóstkom","trójce","troje","trójek","trójka","trójką","trójkach","trójkami","trójki","trójko","trójkom","trzech","trzem","trzema","trzy","trzynaście","trzynastce","trzynastek","trzynastka","trzynastką","trzynastkach","trzynastkami","trzynastkę","trzynastki","trzynastko","trzynastkom","trzynastoma","trzynastu","tysiąc","tysiąca","tysiącach","tysiącami","tysiące","tysiącem","tysiącom","tysiącowi","tysiącu","tysięcy"],o=["czternaści","czternasta","czternastą","czternaste","czternastego","czternastej","czternastemu","czternasty","czternastych","czternastym","czternastymi","czwarci","czwarta","czwartą","czwarte","czwartego","czwartej","czwartemu","czwarty","czwartych","czwartym","czwartymi","drudzy","druga","drugą","drugi","drugich","drugie","drugiego","drugiej","drugiemu","drugim","drugimi","dwudzieści","dwudziesta","dwudziestą","dwudzieste","dwudziestego","dwudziestej","dwudziestemu","dwudziesty","dwudziestych","dwudziestym","dwudziestymi","dwunaści","dwunasta","dwunastą","dwunaste","dwunastego","dwunastej","dwunastemu","dwunasty","dwunastych","dwunastym","dwunastymi","dziesiąci","dziesiąta","dziesiątą","dziesiąte","dziesiątego","dziesiątej","dziesiątemu","dziesiąty","dziesiątych","dziesiątym","dziesiątymi","dziewiąci","dziewiąta","dziewiątą","dziewiąte","dziewiątego","dziewiątej","dziewiątemu","dziewiąty","dziewiątych","dziewiątym","dziewiątymi","dziewiętnaści","dziewiętnasta","dziewiętnastą","dziewiętnaste","dziewiętnastego","dziewiętnastej","dziewiętnastemu","dziewiętnasty","dziewiętnastych","dziewiętnastym","dziewiętnastymi","jedenaści","jedenasta","jedenastą","jedenaste","jedenastego","jedenastej","jedenastemu","jedenasty","jedenastych","jedenastym","jedenastymi","osiemnaści","osiemnasta","osiemnastą","osiemnaste","osiemnastego","osiemnastej","osiemnastemu","osiemnasty","osiemnastych","osiemnastym","osiemnastymi","ósma","ósmą","ósme","ósmego","ósmej","ósmemu","óśmi","ósmy","ósmych","ósmym","ósmymi","piąci","piąta","piątą","piąte","piątego","piątej","piątemu","piąty","piątych","piątym","piątymi","pierwsi","pierwsza","pierwszą","pierwsze","pierwszego","pierwszej","pierwszemu","pierwszy","pierwszych","pierwszym","pierwszymi","piętnaści","piętnasta","piętnastą","piętnaste","piętnastego","piętnastej","piętnastemu","piętnasty","piętnastych","piętnastym","piętnastymi","siedemnaści","siedemnasta","siedemnastą","siedemnaste","siedemnastego","siedemnastej","siedemnastemu","siedemnasty","siedemnastych","siedemnastym","siedemnastymi","siódma","siódmą","siódme","siódmego","siódmej","siódmemu","siódmi","siódmy","siódmych","siódmym","siódmymi","szesnaści","szesnasta","szesnastą","szesnaste","szesnastego","szesnastej","szesnastemu","szesnasty","szesnastych","szesnastymi","szóści","szósta","szóstą","szóste","szóstego","szóstej","szóstemu","szósty","szóstych","szóstym","szóstymi","trzeci","trzecia","trzecią","trzecich","trzecie","trzeciego","trzeciej","trzeciemu","trzecim","trzecimi","trzynaści","trzynasta","trzynastą","trzynaste","trzynastego","trzynastej","trzynastemu","trzynasty","trzynastych","trzynastym","trzynastymi"],r=["ja","my","on","ona","one","oni","ono","ty","wy"],s=["cię","ciebie","go","ich","ją","je","jego","mnie","nas","nią","nich","nie","niego","was"],d=["jej","niej"],l=["mi","ci","im","jemu","mu","nam","niemu","nim","tobie","wam"],c=["mną","nami","nią","nim","nimi","tobą","wami"],u=["myśmy","wyście","żeście","żeśmy"],p=["doń","nań","zeń"],z=["ich","jego","jej","ma","mą","me","mego","mej","memu","moi","moich","moim","moimi","mój","moja","moją","moje","mojego","mojej","mojemu","mych","mym","mymi","nasi","nasz","nasza","naszą","nasze","naszego","naszej","naszemu","naszych","naszym","naszymi","swa","swą","swe","swego","swej","swemu","swoi","swoich","swoim","swoimi","swój","swoja","swoją","swoje","swojego","swojej","swojemu","swych","swym","swymi","twa","twą","twe","twego","twej","twemu","twoi","twoich","twoim","twoimi","twój","twoja","twoją","twoje","twojego","twojej","twojemu","twych","twym","twymi","wasi","wasz","wasza","waszą","wasze","waszego","waszej","waszemu","waszych","waszym","waszymi"],g=["się"],m=["siebie","sobą"],f=["czyi","czyich","czyim","czyimi","czyj","czyja","czyją","czyje","czyjego","czyjej","czyjemu","kim","kogo","komu","kto"],y=["czy","czyś","czyśbyś","dlaczego","dokąd","dokądże","dokądżeś","gdzie","gdzież","gdzieżeś","ile","ileż","jak","jakbyś","jakże","jakżebyś","jakżeś","kiedy","którędy","którędyż","skąd","skądże","skądżeś"],w=["co","czego","czemu","czym","jacy","jaka","jaką","jaki","jakich","jakie","jakiego","jakiej","jakiemu","jakim","jakimi","która","którą","które","którego","której","któremu","który","których","którym","którymi","którzy"],b=["coś","czegoś","czemuś","czyichkolwiek","czyichś","czyikolwiek","czyimikolwiek","czyimiś","czyimkolwiek","czyimkolwiem","czyimś","czyiś","czyjakolwiek","czyjąkolwiek","czyjaś","czyjąś","czyjegokolwiek","czyjegoś","czyjejkolwiek","czyjejś","czyjekolwiek","czyjemukolwiek","czyjemuś","czyjeś","czyjkolwiek","czymś","dlaczegoś","dokądkolwiek","dokądś","gdziekolwiek","gdzieś","ilekolwiek","ileś","jacykolwiek","jacyś","jakakolwiek","jakąkolwiek","jakaś","jakąś","jakichkolwiek","jakichś","jakiegokolwiek","jakiegoś","jakiejkolwiek","jakiejś","jakiekolwiek","jakiemukolwiek","jakiemuś","jakieś","jakikolwiek","jakimikolwiek","jakimkolwiek","jakimś","jakiś","jakkolwiek","jakoś","każda","każdą","każde","każdego","każdej","każdemu","każdy","każdym","kiedykolwiek","kiedyś","kimkolwiek","kimś","kogokolwiek","kogoś","komukolwiek","komuś","ktokolwiek","którakolwiek","którąkolwiek","któraś","którąś","którędykolwiek","którędyś","któregokolwiek","któregoś","którejkolwiek","którejś","którekolwiek","któremukolwiek","któremuś","któreś","którychkolwiek","którychś","którykolwiek","którymikolwiek","którymiś","którymkolwiek","którymś","któryś","którzykolwiek","którzyś","ktoś","nawzajem","nic","niczego","niczemu","niczyi","niczyich","niczyim","niczyimi","niczyj","niczyja","niczyją","niczyjego","niczyjej","niczyjemu","niczym","nikim","nikogo","nikogokolwiek","nikomu","nikt","skądkolwiek","skądś","wszyscy","wszyskiego","wszystkich","wszystkie","wszystkiemu","wszystkim","wszystkimi","wszystko","żaden","żadna","żadną","żadne","żadnego","żadnej","żadnemu","żadni","żadnych","żadnym","żadnymi"],h=["ci","dlatego","ów","owa","ową","owe","owego","owej","owemu","owi","owo","owych","owym","stąd","stamtąd","ta","tacy","tak","taka","taką","taki","takich","takie","takiego","takiej","takiemu","takim","takimi","tam","tamci","tamta","tamtą","tamte","tamtego","tamtej","tamtemu","tamten","tamto","tamtych","tamtym","tamtymi","tą","te","tę","tędy","tego","tegoż","tej","temu","ten","to","tu","tutaj","tych","tyle","tyloma","tylu","tym","tymi","wtedy"],v=["ciut","część","części","częścią","częściach","częściami","częściom","dość","dosyć","dużo","kilka","kilkadziesiąt","kilkanaście","kilkaset","kilknasty","kilkoma","kilku","kilkudziesiąte","kilkudziesiątego","kilkudziesiątej","kilkudziesiąty","kilkudziesiątych","kilkudziesiątym","kilkudziesiątymi","kilkudziesięcioma","kilkudziesięciu","kilkunasta","kilkunastą","kilkunaste","kilkunastego","kilkunastej","kilkunastemu","kilkunastoma","kilkunastu","kilkunastym","kilkuset","kilkustoma","kiludziesiąta","mało","malutko","mniej","mnóstwa","mnóstwem","mnóstwie","mnóstwo","mnóstwu","multum","nadto","najmniej","najwięcej","nieco","niedużo","niejednokroć","niektóre","niektórzy","niektórych","niektórym","niektórymi","niemało","niewiele","niewieloma","niewielu","oba","obaj","obie","oboje","obojga","obojgiem","obojgu","obóm","oboma","obu","obydwa","obydwaj","obydwie","obydwiema","obydwóch","obydwoje","obydwojgiem","obydwojgu","obydwóm","obydwoma","obydwu","odrobiną","odrobince","odrobinę","odrobinie","odrobinką","odrobinkę","odrobinki","odrobiny","parę","parędziesiąt","parędziesięcioma","parędziesięciu","paręnaście","paręnastoma","paręnastu","parokroć","paroma","paru","parze","pełno","pół","półczwarta","połowa","połową","połowie","połowy","półtora","półtorej","sporo","trochę","trochu","troszeczkę","troszkę","wcale","więcej","większość","większości","większością","większościach","większościami","większościom","wiele","wielokrotnie","wieloma","wielu"],k=["czasem","często","nigdy","rzadko","zawsze"],j=["chcą","chcąc","chcąca","chcące","chcący","chce","chcę","chcecie","chcemy","chcesz","chciał","chciała","chciałaby","chciałabym","chciałabyś","chciałam","chciałaś","chciałby","chciałbym","chciałbyś","chciałem","chciałeś","chciały","chciałyby","chciałybyście","chciałybyśmy","chciałyście","chciałyśmy","chcieli","chcieliby","chcielibyście","chcieliście","chcieliśmy","chcono","ma","macie","mają","mając","mam","mamy","masz","miał","miała","miałaby","miałabym","miałabyś","miałam","miałaś","miałby","miałbym","miałbyś","miałem","miałeś","miało","miałoby","miały","miałyby","miałybyście","miałybyśmy","miałyście","miałyśmy","miano","miej","miejąca","miejące","miejący","miejcie","miejmy","mieli","mieliby","mielibyście","mielibyśmy","mieliście","mieliśmy","mogą","mogąc","mogąca","mogące","mogący","mogę","mógł","mogła","mogłaby","mogłabym","mogłabyś","mogłam","mogłaś","mógłby","mógłbym","mógłbyś","mogłem","mogłeś","mogli","mogliby","moglibyście","moglibyśmy","mogliście","mogliśmy","mogły","mogłyby","mogłybyście","mogłybyśmy","mogłyście","mogłyśmy","może","możecie","możemy","możesz","można","możnaby","musi","musiał","musiała","musiałaby","musiałabym","musiałabyś","musiałam","musiałaś","musiałby","musiałbym","musiałbyś","musiałem","musiałeś","musiało","musiałoby","musiały","musiałyby","musiałybyście","musiałybyśmy","musiałyście","musiałyśmy","musiano","musicie","musieli","musieliby","musielibyście","musielibyśmy","musieliście","musieliśmy","musimy","musisz","muszą","musząc","musząca","muszące","muszący","muszę","należy","niech","potrafi","potrafią","potrafiąc","potrafiąca","potrafiące","potrafiący","potraficie","potrafię","potrafiłaby","potrafiłabym","potrafiłabyś","potrafiłam","potrafiłaś","potrafiłbym","potrafiłbyś","potrafiłem","potrafiłeś","potrafili","potrafiliby","potrafilibyście","potrafilibyśmy","potrafiliście","potrafiliśmy","potrafiło","potrafiłoby","potrafiłyby","potrafiłybyście","potrafiłybyśmy","potrafiłyście","potrafiłyśmy","potrafimy","potrafiono","potrafisz","powinien","powinienem","powinieneś","powinna","powinnam","powinnaś","powinne","powinni","powinniście","powinniśmy","powinnyście","powinnyśmy","pozostaje","stają","stając","stająca","stające","stający","staje","staję","stajecie","stajemy","stajesz","stał","stała","stałaby","stałabym","stałabyś","stałam","stałaś","stałby","stałbym","stałbyś","stałem","stałeś","stali","staliby","stalibyście","stalibyśmy","staliście","staliśmy","stało","stały","stałyby","stałybyście","stałybyśmy","stałyście","stałyśmy","stanie","stano","stawać","stawając","stawająca","stawające","stawający","stawał","stawała","stawałaby","stawałabym","stawałabyś","stawałabyście","stawałam","stawałaś","stawałby","stawałbym","stawałbyś","stawałem","stawałeś","stawali","stawaliby","stawalibyście","stawalibyśmy","stawaliście","stawaliśmy","stawały","stawałyby","stawałybyśmy","stawałyście","stawałyśmy","stawano","stawawszy","stawszy","trzeba","warto","wystarczy"],_=["bądź","bądźcie","bądźmy","będą","będąc","będę","będzie","będziecie","będziemy","będziesz","by","był","była","byłaby","byłabym","byłabyś","byłam","byłaś","byłby","byłbym","byłbyś","byłem","byłeś","byli","byliby","bylibyście","bylibyśmy","byliście","byliśmy","było","byłoby","były","byłyby","byłybyście","byłybyśmy","byłyście","byłyśmy","bym","byś","byście","byśmy","byto","bywało","jest","jestem","jesteś","jesteście","jesteśmy","są","zostają","zostając","zostająca","zostające","zostający","zostaje","zostaję","zostajecie","zostajemy","zostajesz","został","została","zostałaby","zostałabym","zostałabyś","zostałam","zostałaś","zostałby","zostałbym","zostałbyś","zostałem","zostałeś","zostali","zostaliby","zostalibyście","zostalibyśmy","zostaliście","zostaliśmy","zostało","zostaloby","zostały","zostałyby","zostałybyście","zostałybyśmy","zostałyście","zostałyśmy","zostań","zostaną","zostańcie","zostanę","zostanie","zostaniecie","zostaniemy","zostaniesz","zostańmy","zostawało","zostawano","zostawszy"],x=["być","zostać"],q=["chcieć","mieć","móc","musieć","potrafić","stać"],E=["bez","beze","blisko","daleko","dla","do","dole","dookoła","górze","jako","koło","ku","między","mimo","na","nad","nade","naokoło","naprzeciwko","niedaleko","nieopodal","niż","o","obok","od","ode","około","oprócz","po","pod","podczas","pode","pomiędzy","ponad","poniżej","poprzek","poprzez","pośród","powyżej","poza","przeciw","przeciwko","przed","przede","przez","przeze","przy","spodem","spośród","spoza","u","w","wbrew","we","wedle","wewnątrz","wpół","wraz","wśród","wzdłuż","z","za","ze","zza"],A=["bliska","daleka","przodu","tyłu"],T=["albo","ani","bądź","i","lub","oraz","tylko"],O=["aż","by","czy","gdyby","jak","jeśli","jeżeli","że"],S=["ano","ciągu","coraz","dzięki","chyba","jakby","jednocześnie","jeszcze","już","nadal","nagle","znowu","prawdopodobnie","niestety","dziś","dzisiaj","oczywiście","względem","m.in.","właśnie","zaraz"],P=["bierz","bierzcie","bierzecie","bierzemy","bierzesz","bierzmy","biorą","biorąc","biorąca","biorące","biorący","biorę","brał","brała","brałaby","brałabym","brałabyś","brałam","brałaś","brałby","brałbym","brałbyś","brałem","brałeś","brali","braliby","bralibyście","bralibyśmy","braliście","braliśmy","brało","brałoby","brały","brałyby","brałybyście","brałybyśmy","brałyście","brałyśmy","brany","da","dacie","dadzą","daj","dają","dając","dająca","dające","dający","dajcie","daje","daję","dajecie","dajemy","dajesz","dajmy","dał","dała","dałaby","dałabym","dałabyś","dałam","dałaś","dałby","dałbym","dałbyś","dałem","dałeś","dali","daliby","dalibyście","dalibyśmy","daliście","daliśmy","dało","dałoby","dały","dałyby","dałybyście","dałybyśmy","dałyście","dałyśmy","dam","damy","dana","dano","dany","dasz","dawaj","dawajcie","dawajmy","dawał","dawała","dawałaby","dawałabym","dawałabyś","dawałam","dawałaś","dawałby","dawałbym","dawałbyś","dawałem","dawałeś","dawali","dawaliby","dawalibyście","dawalibyśmy","dawaliście","dawaliśmy","dawało","dawały","dawałyby","dawałybyście","dawałybyśmy","dawałyście","dawałyśmy","dawana","dawane","dawano","dawany","idą","idąc","idąca","idące","idący","idę","idź","idźcie","idzie","idziecie","idziemy","idziesz","idźmy","rób","róbcie","robi","robią","robiąc","robiąca","robiące","robiący","robicie","robię","robił","robiła","robiłaby","robiłabym","robiłabyś","robiłam","robiłaś","robiłby","robiłbym","robiłbyś","robiłem","robiłeś","robili","robilibiście","robiliby","robilibyśmy","robiliście","robiliśmy","robiło","robiły","robiłyby","robiłybyście","robiłybyśmy","robiłyście","robiłyśmy","robimy","robiono","robiony","robisz","róbmy","stanowi","stanowią","stanowiły","stanowili","stoi","stoicie","stoimy","stoisz","stój","stoją","stojąc","stojąca","stojące","stojący","stójcie","stoję","stójmy","świadczy","szedł","szedłby","szedłbym","szedłbyś","szedłem","szedłeś","szła","szłaby","szłabym","szłabyś","szłam","szłaś","szli","szliby","szlibyście","szlibyśmy","szliście","szliśmy","szło","szłoby","szły","szłyby","szłybyście","szłybyśmy","szłyście","uprawia","uprawiacie","uprawiają","uprawiając","uprawiająca","uprawiające","uprawiający","uprawiał","uprawiała","uprawiałaby","uprawiałabym","uprawiałabyś","uprawiałam","uprawiałaś","uprawiałby","uprawiałbym","uprawiałbyś","uprawiałem","uprawiałeś","uprawiali","uprawialiby","uprawialibyście","uprawialibyśmy","uprawialiście","uprawialiśmy","uprawiało","uprawiałoby","uprawiały","uprawiałyby","uprawiałybyście","uprawiałybyśmy","uprawiałyście","uprawiałyśmy","uprawiam","uprawiamy","uprawiana","uprawiane","uprawiano","uprawiany","uprawiasz","weź","weźcie","wezmą","wezmę","weźmie","weźmiecie","weźmiemy","weźmiesz","weźmy","wykonuj","wykonują","wykonując","wykonująca","wykonujące","wykonujący","wykonujcie","wykonuje","wykonuję","wykonujecie","wykonujemy","wykonujesz","wykonujmy","wykonywał","wykonywała","wykonywałaby","wykonywałabym","wykonywałabyś","wykonywałam","wykonywałaś","wykonywałby","wykonywałbym","wykonywałbyś","wykonywałem","wykonywałeś","wykonywali","wykonywaliby","wykonywalibyście","wykonywalibyśmy","wykonywaliście","wykonywaliśmy","wykonywało","wykonywałoby","wykonywały","wykonywałyby","wykonywałybyście","wykonywałybyśmy","wykonywałyście","wykonywałyśmy","wykonywana","wykonywane","wykonywany","wziął","wziąłby","wziąłbym","wziąłbyś","wziąłem","wziąłeś","wziąwszy","wzięła","wzięłaby","wzięłabym","wzięłabyś","wzięłam","wzięłaś","wzięli","wzięliby","wzięlibyście","wzięlibyśmy","wzięliście","wzięliśmy","wzięło","wzięłoby","wzięły","wzięłyby","wzięłybyście","wzięłybyśmy","wzięłyście","wzięłyśmy","zrób","zróbcie","zrobi","zrobią","zrobiąc","zrobiąca","zrobiące","zrobiący","zrobicie","zrobię","zrobił","zrobiła","zrobiłaby","zrobiłabym","zrobiłabyś","zrobiłam","zrobiłaś","zrobiłby","zrobiłbym","zrobiłbyś","zrobiłem","zrobiłeś","zrobili","zrobilibiście","zrobiliby","zrobilibyśmy","zrobiliście","zrobiliśmy","zrobiło","zrobiły","zrobiłyby","zrobiłybyście","zrobiłybyśmy","zrobiłyście","zrobiłyśmy","zrobimy","zrobiono","zrobiony","zrobisz","zróbmy"],M=["brać","dać","dawać","iść","robić","stanowić","uprawiać","wykonywać","wziąć","zrobić"],C=["informowali","informowały","informują","informuje","informuję","mówi","mówią","mówię","mówił","mówiła","mówili","mówiły","odpowiada","odpowiadają","odpowiadam","odpowiedział","odpowiedziała","odpowiedziałam","odpowiedziały","odpowiedzieli","odwiedziałam","poinformowałam","poinformowali","poinformowały","powiedział","powiedziała","powiedziałam","powiedziały","powiedzieli","pyta","pytać","pytał","pytała","pytałam","pytali","pytały","pytam","sądzą","sądzę","sądzi","sądzić","sądziłam","sądzili","sądziły","spytał","spytała","spytałam","spytali","spytały","stwierdziały","stwierdzieli","stwierdził","stwierdziła","stwierdziłam","twierdzą","twierdzę","twierdzi","twierdziały","twierdzić","twierdzieli","twierdził","twierdziła","twierdziłam","uważa","uważają","uważał","uważała","uważali","uważały","uważam","wyjaśnia","wyjaśniać","wyjaśniają","wyjaśniam","wyjaśnił","wyjaśniła","wyjaśnili","wyjaśniły","zapytał","zapytała","zapytałam","zapytali","zapytały","zaznacza","zaznaczają","zaznaczam","zaznaczył","zaznaczyła","zaznaczyłam","zaznaczyli","zaznaczyły"],R=["bardziej","bardzo","całkiem","całkowicie","doskonale","dość","dosyć","kompletnie","najbardziej","naprawdę","nawet","nieco","niezbyt","niezmiernie","niezwykle","ogromnie","strasznie","świetnie","wielce","wyjątkowo","zbyt","znacznie","zupełnie"],D=["cała","całą","całe","całego","całej","całemu","cali","cały","całych","całym","całymi","ciekawa","ciekawą","ciekawe","ciekawego","ciekawej","ciekawemu","ciekawi","ciekawy","ciekawych","ciekawym","ciekawymi","dłudzy","długa","długą","długi","długich","długie","długiego","długiej","długiemu","długim","długimi","dłużsi","dłuższa","dłuższą","dłuższe","dłuższego","dłuższej","dłuższemu","dłuższy","dłuższych","dłuższym","dłuższymi","dobra","dobrą","dobre","dobrego","dobrej","dobremu","dobry","dobrych","dobrym","dobrymi","dobrzy","fajna","fajną","fajne","fajnego","fajnej","fajnemu","fajni","fajny","fajnych","fajnym","fajnymi","główna","główną","główne","głównego","głównej","głównemu","główni","główny","głównych","głównym","głównymi","inna","inną","inne","innego","innej","innemu","inni","inny","innych","innym","innymi","krótcy","krótka","krótką","krótki","krótkich","krótkie","krótkiego","krótkiej","krótkiemu","krótkim","krótkimi","krótsi","krótsza","krótszą","krótsze","krótszego","krótszej","krótszemu","krótszych","krótszym","krótszymi","łatwe","łatwego","łatwiejsze","łatwym","lepsi","lepsza","lepszą","lepsze","lepszego","lepszej","lepszemu","lepszy","lepszych","lepszym","lepszymi","mała","małą","małe","małego","małej","małemu","mali","mały","małych","małym","małymi","mniejsi","mniejsza","mniejszą","mniejsze","mniejszego","mniejszej","mniejszemu","mniejszy","mniejszych","mniejszym","mniejszymi","najdłużsi","najdłuższa","najdłuższą","najdłuższe","najdłuższego","najdłuższej","najdłuższemu","najdłuższy","najdłuższych","najdłuższym","najdłuższymi","najkrótsi","najkrótsza","najkrótszą","najkrótsze","najkrótszego","najkrótszej","najkrótszemu","najkrótszych","najkrótszym","najkrótszymi","najłatwiejsze","najlepsi","najlepsza","najlepszą","najlepsze","najlepszego","najlepszej","najlepszemu","najlepszych","najlepszym","najlepszymi","najmniejsi","najmniejsza","najmniejszą","najmniejsze","najmniejszego","najmniejszej","najmniejszemu","najmniejszy","najmniejszych","najmniejszym","najmniejszymi","najniżsi","najniższa","najniższą","najniższe","najniższego","najniższej","najniższemu","najniższy","najniższych","najniższym","najniższymi","najtrudniejsze","najwięksi","największa","największą","największe","największego","największej","największemu","największych","największym","największymi","najwyżsi","najwyższa","najwyższą","najwyższe","najwyższego","najwyższej","najwyższemu","najwyższy","najwyższych","najwyższym","najwyższymi","następna","następną","następne","następnego","następnej","następni","następny","następnych","następnym","następnymi","niewłaściwa","niewłaściwą","niewłaściwe","niewłaściwego","niewłaściwej","niewłaściwemu","niewłaściwi","niewłaściwy","niewłaściwych","niewłaściwym","niewłaściwymi","niscy","niska","niską","niski","niskich","niskie","niskiego","niskiej","niskiemu","niskim","niskimi","niżsi","niższa","niższą","niższe","niższego","niższej","niższemu","niższy","niższych","niższym","niższymi","ostatni","ostatnia","ostatnią","ostatnich","ostatnie","ostatniego","ostatniej","ostatniemu","ostatnim","ostatnimi","poprzedni","poprzednia","poprzednią","poprzednich","poprzednie","poprzedniego","poprzedniej","poprzedniemu","poprzednim","poprzednimi","sam","sama","samą","same","samego","samej","samemu","sami","samo","samych","samym","samymi","trudne","trudnego","trudniejsze","trudnym","więksi","większa","większą","większe","większego","większej","większemu","większych","większym","większymi","wielcy","wielka","wielką","wielki","wielkich","wielkie","wielkiego","wielkiej","wielkiemu","wielkim","wielkimi","właściwa","właściwą","właściwe","właściwego","właściwej","właściwemu","właściwi","właściwy","właściwych","właściwym","właściwymi","wysocy","wysoka","wysoką","wysoki","wysokich","wysokie","wysokiego","wysokiej","wysokiemu","wysokim","wysokimi","wyżsi","wyższa","wyższą","wyższe","wyższego","wyższej","wyższemu","wyższy","wyższych","wyższym","wyższymi"],F=["blisko","bliżej","ciągle","ciężko","czasami","czasem","częściej","często","dalej","daleko","dawniej","dawno","dobrze","dopiero","fajnie","fajniej","gorzej","inaczej","ładnie","łatwiej","łatwo","lepiej","najbliżej","najczęściej","najdalej","najdawniej","najfajniej","najgorzej","najłatwiej","najlepiej","najniżej","najpóźniej","najprościej","najszybciej","najtrudniej","najwcześniej","najwyżej","naprawdę","niedaleko","niedawno","nisko","niżej","ostatnio","pewno","póżniej","późno","prawie","prościej","prosto","prostu","szybciej","szybko","trochę","trudniej","trudno","wcześnie","wcześniej","wolno","wszędzie","wysoko","wyżej","zazwyczaj","źle"],B=["dni","dnia","dniach","dniami","dnie","dzień","dzisiaj","godzin","godzina","godzinach","godzinami","godzinę","godziny","jutro","lata","latach","latami","miesiąc","miesiąca","miesiącach","miesiącami","miesiące","miesiącem","miesiącu","miesięcy","minut","minuta","minutach","minutę","minuty","pojutrze","przedwczoraj","rok","rokiem","roku","sekund","sekunda","sekundach","sekundę","sekundy","tydzień","tygodni","tygodnia","tygodniach","tygodniami","tygodnie","tygodniu","wczoraj"],$=["chwila","chwilą","chwilach","chwilami","chwile","chwilę","chwili","chwilom","część","części","częścią","częściach","częściami","częściom","momencie","moment","ogóle","osób","osoba","osobą","osobach","osobami","osobę","osobie","osobom","osoby","powód","powodach","powodami","powodem","powodom","powodów","powodowi","powodu","powody","powodzie","przypadkiem","przypadku","raz","razach","razami","razem","razie","razom","razów","razowi","razu","razy","rodzaj","rodzajach","rodzajami","rodzajem","rodzajom","rodzajów","rodzajowi","rodzaju","rzecz","rzeczą","rzeczach","rzeczami","rzeczom","rzeczy","sposób","sposobem","sprawa","sprawą","sprawach","sprawami","sprawę","sprawie","sprawom","sprawy","temacie","temat","tematach","tematami","tematem","tematom","tematów","tematowi","tematu","tematy"],L=["dr","dyr","mgr","p","pan","pani","panie","panowie","prof"],I=["a","ach","aha","aj","akurat","ał","aua","auć","ba","brawo","e","ech","ehe","ehm","ej","ejże","ekhm","ekstra","jej","jejku","łał","och","oh","oho","oj","ojej","ojejku","phi","precz","super","uwaga","wow"],W=["°C","°F","ar","ary","arów","arach","c","cl","cm","cm²","cm³","dag","deka","dl","f","ft","g","gram","gramów","gramy","ha","hektar","hektary","hektarów","hektarach","in","kg","kilo","km","km²","cm³","l","litr","litrów","litry","łyżeczka","łyżeczkę","łyżeczki","łyżka","łyżkę","łyżki","m","m²","m³","mg","ml","mm","mm²","mm³","szczypta","szczyptę","szczypty","szklanka","szklankę","szklanki","tuzin"],U=["nie","no","oto","tak","sobie","ok","okej"]},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.buildOneFormFromRegex=function(a,e){for(var t=0;t<e.length;t++)if(!0===e[t].reg.test(a))return a.replace(e[t].reg,e[t].repl)},e.buildTwoFormsFromRegex=function(a,e){for(var t=0;t<e.length;t++)if(!0===e[t].reg.test(a))return[a.replace(e[t].reg,e[t].repl1),a.replace(e[t].reg,e[t].repl2)]}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=d(t(1046)),n=d(t(155)),o=t(2),r=d(t(1054)),s=d(t(1056));function d(a){return a&&a.__esModule?a:{default:a}}var l=(0,o.memoize)(function(a){var e=[],t=a.deviations;return(0,o.isUndefined)(t.words)||(0,o.isUndefined)(t.words.fragments)||(e=(0,o.flatMap)(t.words.fragments,function(a,e){return(0,o.map)(a,function(a){return a.location=e,new s.default(a)})})),e}),c=function(a,e){var t=0;return t+=function(a,e){var t=0,n=new RegExp("[^"+(0,i.default)(e).vowels+"]","ig"),r=a.split(n);return t+=(0,o.filter)(r,function(a){return""!==a}).length}(a,e),t+=function(a,e){return new r.default((0,i.default)(e)).countSyllables(a)}(a,e)},u=function(a,e){var t=0,n=function(a,e){var t=(0,i.default)(e).deviations.words.full,n=(0,o.find)(t,function(e){return e.word===a});return(0,o.isUndefined)(n)?0:n.syllables}(a,e);if(0!==n)return n;var r=function(a,e){var t=l((0,i.default)(e)),n=a,r=0;return(0,o.forEach)(t,function(a){a.occursIn(n)&&(n=a.removeFrom(n),r+=a.getSyllables())}),{word:n,syllableCount:r}}(a,e);return a=r.word,t+=r.syllableCount,t+=c(a,e)};e.default=function(a,e){a=a.toLocaleLowerCase();var t=(0,n.default)(a),i=(0,o.map)(t,function(a){return u(a,e)});return(0,o.sum)(i)}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return[{base:"a",letters:/[\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250]/g},{base:"aa",letters:/[\uA733]/g},{base:"ae",letters:/[\u00E6\u01FD\u01E3]/g},{base:"ao",letters:/[\uA735]/g},{base:"au",letters:/[\uA737]/g},{base:"av",letters:/[\uA739\uA73B]/g},{base:"ay",letters:/[\uA73D]/g},{base:"b",letters:/[\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253]/g},{base:"c",letters:/[\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184]/g},{base:"d",letters:/[\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A]/g},{base:"dz",letters:/[\u01F3\u01C6]/g},{base:"e",letters:/[\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD]/g},{base:"f",letters:/[\u0066\u24D5\uFF46\u1E1F\u0192\uA77C]/g},{base:"g",letters:/[\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F]/g},{base:"h",letters:/[\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265]/g},{base:"hv",letters:/[\u0195]/g},{base:"i",letters:/[\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131]/g},{base:"j",letters:/[\u006A\u24D9\uFF4A\u0135\u01F0\u0249]/g},{base:"k",letters:/[\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3]/g},{base:"l",letters:/[\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747]/g},{base:"lj",letters:/[\u01C9]/g},{base:"m",letters:/[\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F]/g},{base:"n",letters:/[\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5]/g},{base:"nj",letters:/[\u01CC]/g},{base:"o",letters:/[\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275]/g},{base:"oi",letters:/[\u01A3]/g},{base:"ou",letters:/[\u0223]/g},{base:"oo",letters:/[\uA74F]/g},{base:"p",letters:/[\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755]/g},{base:"q",letters:/[\u0071\u24E0\uFF51\u024B\uA757\uA759]/g},{base:"r",letters:/[\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783]/g},{base:"s",letters:/[\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B]/g},{base:"t",letters:/[\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787]/g},{base:"tz",letters:/[\uA729]/g},{base:"u",letters:/[\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289]/g},{base:"v",letters:/[\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C]/g},{base:"vy",letters:/[\uA761]/g},{base:"w",letters:/[\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73]/g},{base:"x",letters:/[\u0078\u24E7\uFF58\u1E8B\u1E8D]/g},{base:"y",letters:/[\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF]/g},{base:"z",letters:/[\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763]/g}]}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.default={queue:["wordCount","keywordDensity","subHeadings","stopwords","fleschReading","linkCount","imageCount","urlKeyword","urlLength","metaDescriptionLength","metaDescriptionKeyword","pageTitleKeyword","pageTitleLength","firstParagraph","urlStopwords","keywordDoubles","keyphraseSizeCheck"],stopWords:["a","about","above","after","again","against","all","am","an","and","any","are","as","at","be","because","been","before","being","below","between","both","but","by","could","did","do","does","doing","down","during","each","few","for","from","further","had","has","have","having","he","he'd","he'll","he's","her","here","here's","hers","herself","him","himself","his","how","how's","i","i'd","i'll","i'm","i've","if","in","into","is","it","it's","its","itself","let's","me","more","most","my","myself","nor","of","on","once","only","or","other","ought","our","ours","ourselves","out","over","own","same","she","she'd","she'll","she's","should","so","some","such","than","that","that's","the","their","theirs","them","themselves","then","there","there's","these","they","they'd","they'll","they're","they've","this","those","through","to","too","under","until","up","very","was","we","we'd","we'll","we're","we've","were","what","what's","when","when's","where","where's","which","while","who","who's","whom","why","why's","with","would","you","you'd","you'll","you're","you've","your","yours","yourself","yourselves"],wordsToRemove:[" a"," in"," an"," on"," for"," the"," and"],maxSlugLength:20,maxUrlLength:40,maxMeta:156}},function(a,e,t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function a(a,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(a,i.key,i)}}return function(e,t,i){return t&&a(e.prototype,t),i&&a(e,i),e}}(),o=t(2),r=l(t(83)),s=t(38),d=l(t(34));function l(a){return a&&a.__esModule?a:{default:a}}var c=function(a){function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var t=function(a,e){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":i(e))&&"function"!=typeof e?a:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this)),n={scores:{noLinks:3,allNofollowed:7,someNoFollowed:8,allFollowed:9},urlTitle:(0,s.createAnchorOpeningTag)("https://yoa.st/34f"),urlCallToAction:(0,s.createAnchorOpeningTag)("https://yoa.st/34g")};return t.identifier="externalLinks",t._config=(0,o.merge)(n,a),t}return function(a,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":i(e)));a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(a,e):a.__proto__=e)}(e,r.default),n(e,[{key:"getResult",value:function(a,e,t){var i=e.getResearch("getLinkStatistics"),n=new d.default;return(0,o.isEmpty)(i)||(n.setScore(this.calculateScore(i)),n.setText(this.translateScore(i,t))),n}},{key:"isApplicable",value:function(a){return a.hasText()}},{key:"calculateScore",value:function(a){return 0===a.externalTotal?this._config.scores.noLinks:a.externalNofollow===a.externalTotal?this._config.scores.allNofollowed:a.externalDofollow<a.externalTotal?this._config.scores.someNoFollowed:a.externalDofollow===a.externalTotal?this._config.scores.allFollowed:null}},{key:"translateScore",value:function(a,e){return 0===a.externalTotal?e.sprintf(e.dgettext("js-text-analysis","%1$sOutbound links%3$s: No outbound links appear in this page. %2$sAdd some%3$s!"),this._config.urlTitle,this._config.urlCallToAction,"</a>"):a.externalNofollow===a.externalTotal?e.sprintf(e.dgettext("js-text-analysis","%1$sOutbound links%3$s: All outbound links on this page are nofollowed. %2$sAdd some normal links%3$s."),this._config.urlTitle,this._config.urlCallToAction,"</a>"):a.externalDofollow===a.externalTotal?e.sprintf(e.dgettext("js-text-analysis","%1$sOutbound links%2$s: Good job!"),this._config.urlTitle,"</a>"):a.externalDofollow<a.externalTotal?e.sprintf(e.dgettext("js-text-analysis","%1$sOutbound links%2$s: There are both nofollowed and normal outbound links on this page. Good job!"),this._config.urlTitle,"</a>"):""}}]),e}();e.default=c},function(a,e,t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function a(a,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(a,i.key,i)}}return function(e,t,i){return t&&a(e.prototype,t),i&&a(e,i),e}}(),o=t(2),r=u(t(83)),s=t(38),d=t(243),l=t(736),c=u(t(34));function u(a){return a&&a.__esModule?a:{default:a}}var p=function(a){function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var t=function(a,e){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":i(e))&&"function"!=typeof e?a:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this)),n={parameters:{lowerBoundary:.3,upperBoundary:.75},scores:{noMatches:3,tooFewMatches:3,goodNumberOfMatches:9,tooManyMatches:3},urlTitle:(0,s.createAnchorOpeningTag)("https://yoa.st/33m"),urlCallToAction:(0,s.createAnchorOpeningTag)("https://yoa.st/33n")};return t.identifier="subheadingsKeyword",t._config=(0,o.merge)(n,a),t}return function(a,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":i(e)));a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(a,e):a.__proto__=e)}(e,r.default),n(e,[{key:"getResult",value:function(a,e,t){this._subHeadings=e.getResearch("matchKeywordInSubheadings");var i=new c.default;this._minNumberOfSubheadings=Math.ceil(this._subHeadings.count*this._config.parameters.lowerBoundary),this._maxNumberOfSubheadings=Math.floor(this._subHeadings.count*this._config.parameters.upperBoundary);var n=this.calculateResult(t);return i.setScore(n.score),i.setText(n.resultText),i}},{key:"hasSubheadings",value:function(a){return(0,l.getSubheadingsTopLevel)(a.getText()).length>0}},{key:"isApplicable",value:function(a){return a.hasText()&&a.hasKeyword()&&this.hasSubheadings(a)}},{key:"hasTooFewMatches",value:function(){return this._subHeadings.matches>0&&this._subHeadings.matches<this._minNumberOfSubheadings}},{key:"hasTooManyMatches",value:function(){return this._subHeadings.count>1&&this._subHeadings.matches>this._maxNumberOfSubheadings}},{key:"isOneOfOne",value:function(){return 1===this._subHeadings.count&&1===this._subHeadings.matches}},{key:"hasGoodNumberOfMatches",value:function(){return(0,d.inRangeStartEndInclusive)(this._subHeadings.matches,this._minNumberOfSubheadings,this._maxNumberOfSubheadings)}},{key:"calculateResult",value:function(a){return this.hasTooFewMatches()?{score:this._config.scores.tooFewMatches,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase in subheading%3$s: %2$sUse more keyphrases or synonyms in your higher-level subheadings%3$s!"),this._config.urlTitle,this._config.urlCallToAction,"</a>")}:this.hasTooManyMatches()?{score:this._config.scores.tooManyMatches,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase in subheading%3$s: More than 75%% of your higher-level subheadings reflect the topic of your copy. That's too much. %2$sDon't over-optimize%3$s!"),this._config.urlTitle,this._config.urlCallToAction,"</a>")}:this.isOneOfOne()?{score:this._config.scores.goodNumberOfMatches,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase in subheading%2$s: Your higher-level subheading reflects the topic of your copy. Good job!",this._subHeadings.matches),this._config.urlTitle,"</a>")}:this.hasGoodNumberOfMatches()?{score:this._config.scores.goodNumberOfMatches,resultText:a.sprintf(a.dngettext("js-text-analysis","%1$sKeyphrase in subheading%2$s: %3$s of your higher-level subheadings reflects the topic of your copy. Good job!","%1$sKeyphrase in subheading%2$s: %3$s of your higher-level subheadings reflect the topic of your copy. Good job!",this._subHeadings.matches),this._config.urlTitle,"</a>",this._subHeadings.matches)}:{score:this._config.scores.noMatches,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase in subheading%3$s: %2$sUse more keyphrases or synonyms in your higher-level subheadings%3$s!"),this._config.urlTitle,this._config.urlCallToAction,"</a>")}}}]),e}();e.default=p},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a){if((0,n.isUndefined)(a))return[];switch((0,i.default)(a)){case"es":return o.es;case"pl":return o.pl;case"de":return o.de;case"nb":case"nn":return o.nbnn;case"sv":return o.sv;case"fi":return o.fi;case"da":return o.da;case"tr":return o.tr;case"lv":return o.lv;case"is":return o.is;case"fa":return o.fa;case"cs":return o.cs;case"ru":return o.ru;case"eo":return o.eo;case"af":return o.af;case"bal":case"ca":return o.ca;case"ast":return o.ast;case"an":return o.an;case"ay":return o.ay;case"en":return o.en;case"fr":return o.fr;case"it":return o.it;case"nl":return o.nl;case"bm":return o.bm;case"uk":return o.uk;case"br":return o.br;case"ch":return o.ch;case"csb":return o.csb;case"cy":return o.cy;case"ee":return o.ee;case"et":return o.et;case"eu":return o.eu;case"fuc":return o.fuc;case"fj":return o.fj;case"frp":return o.frp;case"fur":return o.fur;case"fy":return o.fy;case"ga":return o.ga;case"gd":return o.gd;case"gl":return o.gl;case"gn":return o.gn;case"gsw":return o.gsw;case"hat":return o.hat;case"haw":return o.haw;case"hr":return o.hr;case"ka":return o.ka;case"kal":return o.kal;case"kin":return o.kin;case"lb":return o.lb;case"li":return o.li;case"lin":return o.lin;case"lt":return o.lt;case"mg":return o.mg;case"mk":return o.mk;case"mri":return o.mri;case"mwl":return o.mwl;case"oci":return o.oci;case"orm":return o.orm;case"pt":return o.pt;case"roh":return o.roh;case"rup":return o.rup;case"ro":return o.ro;case"tlh":return o.tlh;case"sk":return o.sk;case"sl":return o.sl;case"sq":return o.sq;case"hu":return o.hu;case"srd":return o.srd;case"szl":return o.szl;case"tah":return o.tah;case"vec":return o.vec;case"wa":return o.wa;case"yor":return o.yor;default:return[]}};var i=function(a){return a&&a.__esModule?a:{default:a}}(t(107)),n=t(2);var o={es:[{letter:/[\u00F1]/g,alternative:"n"},{letter:/[\u00D1]/g,alternative:"N"},{letter:/[\u00E1]/g,alternative:"a"},{letter:/[\u00C1]/g,alternative:"A"},{letter:/[\u00E9]/g,alternative:"e"},{letter:/[\u00C9]/g,alternative:"E"},{letter:/[\u00ED]/g,alternative:"i"},{letter:/[\u00CD]/g,alternative:"I"},{letter:/[\u00F3]/g,alternative:"o"},{letter:/[\u00D3]/g,alternative:"O"},{letter:/[\u00FA\u00FC]/g,alternative:"u"},{letter:/[\u00DA\u00DC]/g,alternative:"U"}],pl:[{letter:/[\u0105]/g,alternative:"a"},{letter:/[\u0104]/g,alternative:"A"},{letter:/[\u0107]/g,alternative:"c"},{letter:/[\u0106]/g,alternative:"C"},{letter:/[\u0119]/g,alternative:"e"},{letter:/[\u0118]/g,alternative:"E"},{letter:/[\u0142]/g,alternative:"l"},{letter:/[\u0141]/g,alternative:"L"},{letter:/[\u0144]/g,alternative:"n"},{letter:/[\u0143]/g,alternative:"N"},{letter:/[\u00F3]/g,alternative:"o"},{letter:/[\u00D3]/g,alternative:"O"},{letter:/[\u015B]/g,alternative:"s"},{letter:/[\u015A]/g,alternative:"S"},{letter:/[\u017A\u017C]/g,alternative:"z"},{letter:/[\u0179\u017B]/g,alternative:"Z"}],de:[{letter:/[\u00E4]/g,alternative:"ae"},{letter:/[\u00C4]/g,alternative:"Ae"},{letter:/[\u00FC]/g,alternative:"ue"},{letter:/[\u00DC]/g,alternative:"Ue"},{letter:/[\u00F6]/g,alternative:"oe"},{letter:/[\u00D6]/g,alternative:"Oe"},{letter:/[\u00DF]/g,alternative:"ss"},{letter:/[\u1E9E]/g,alternative:"SS"}],nbnn:[{letter:/[\u00E6\u04D5]/g,alternative:"ae"},{letter:/[\u00C6\u04D4]/g,alternative:"Ae"},{letter:/[\u00E5]/g,alternative:"aa"},{letter:/[\u00C5]/g,alternative:"Aa"},{letter:/[\u00F8]/g,alternative:"oe"},{letter:/[\u00D8]/g,alternative:"Oe"},{letter:/[\u00E9\u00E8\u00EA]/g,alternative:"e"},{letter:/[\u00C9\u00C8\u00CA]/g,alternative:"E"},{letter:/[\u00F3\u00F2\u00F4]/g,alternative:"o"},{letter:/[\u00D3\u00D2\u00D4]/g,alternative:"O"}],sv:[{letter:/[\u00E5]/g,alternative:"aa"},{letter:/[\u00C5]/g,alternative:"Aa"},{letter:/[\u00E4]/g,alternative:"ae"},{letter:/[\u00C4]/g,alternative:"Ae"},{letter:/[\u00F6]/g,alternative:"oe"},{letter:/[\u00D6]/g,alternative:"Oe"},{letter:/[\u00E9]/g,alternative:"e"},{letter:/[\u00C9]/g,alternative:"E"},{letter:/[\u00E0]/g,alternative:"a"},{letter:/[\u00C0]/g,alternative:"A"}],fi:[{letter:/[\u00E5]/g,alternative:"aa"},{letter:/[\u00C5]/g,alternative:"Aa"},{letter:/[\u00E4]/g,alternative:"a"},{letter:/[\u00C4]/g,alternative:"A"},{letter:/[\u00F6]/g,alternative:"o"},{letter:/[\u00D6]/g,alternative:"O"},{letter:/[\u017E]/g,alternative:"zh"},{letter:/[\u017D]/g,alternative:"Zh"},{letter:/[\u0161]/g,alternative:"sh"},{letter:/[\u0160]/g,alternative:"Sh"}],da:[{letter:/[\u00E5]/g,alternative:"aa"},{letter:/[\u00C5]/g,alternative:"Aa"},{letter:/[\u00E6\u04D5]/g,alternative:"ae"},{letter:/[\u00C6\u04D4]/g,alternative:"Ae"},{letter:/[\u00C4]/g,alternative:"Ae"},{letter:/[\u00F8]/g,alternative:"oe"},{letter:/[\u00D8]/g,alternative:"Oe"},{letter:/[\u00E9]/g,alternative:"e"},{letter:/[\u00C9]/g,alternative:"E"}],tr:[{letter:/[\u00E7]/g,alternative:"c"},{letter:/[\u00C7]/g,alternative:"C"},{letter:/[\u011F]/g,alternative:"g"},{letter:/[\u011E]/g,alternative:"G"},{letter:/[\u00F6]/g,alternative:"o"},{letter:/[\u00D6]/g,alternative:"O"},{letter:/[\u015F]/g,alternative:"s"},{letter:/[\u015E]/g,alternative:"S"},{letter:/[\u00E2]/g,alternative:"a"},{letter:/[\u00C2]/g,alternative:"A"},{letter:/[\u0131\u00EE]/g,alternative:"i"},{letter:/[\u0130\u00CE]/g,alternative:"I"},{letter:/[\u00FC\u00FB]/g,alternative:"u"},{letter:/[\u00DC\u00DB]/g,alternative:"U"}],lv:[{letter:/[\u0101]/g,alternative:"a"},{letter:/[\u0100]/g,alternative:"A"},{letter:/[\u010D]/g,alternative:"c"},{letter:/[\u010C]/g,alternative:"C"},{letter:/[\u0113]/g,alternative:"e"},{letter:/[\u0112]/g,alternative:"E"},{letter:/[\u0123]/g,alternative:"g"},{letter:/[\u0122]/g,alternative:"G"},{letter:/[\u012B]/g,alternative:"i"},{letter:/[\u012A]/g,alternative:"I"},{letter:/[\u0137]/g,alternative:"k"},{letter:/[\u0136]/g,alternative:"K"},{letter:/[\u013C]/g,alternative:"l"},{letter:/[\u013B]/g,alternative:"L"},{letter:/[\u0146]/g,alternative:"n"},{letter:/[\u0145]/g,alternative:"N"},{letter:/[\u0161]/g,alternative:"s"},{letter:/[\u0160]/g,alternative:"S"},{letter:/[\u016B]/g,alternative:"u"},{letter:/[\u016A]/g,alternative:"U"},{letter:/[\u017E]/g,alternative:"z"},{letter:/[\u017D]/g,alternative:"Z"}],is:[{letter:/[\u00E1]/g,alternative:"a"},{letter:/[\u00C1]/g,alternative:"A"},{letter:/[\u00F0]/g,alternative:"d"},{letter:/[\u00D0]/g,alternative:"D"},{letter:/[\u00E9]/g,alternative:"e"},{letter:/[\u00C9]/g,alternative:"E"},{letter:/[\u00ED]/g,alternative:"i"},{letter:/[\u00CD]/g,alternative:"I"},{letter:/[\u00F3\u00F6]/g,alternative:"o"},{letter:/[\u00D3\u00D6]/g,alternative:"O"},{letter:/[\u00FA]/g,alternative:"u"},{letter:/[\u00DA]/g,alternative:"U"},{letter:/[\u00FD]/g,alternative:"y"},{letter:/[\u00DD]/g,alternative:"Y"},{letter:/[\u00FE]/g,alternative:"th"},{letter:/[\u00DE]/g,alternative:"Th"},{letter:/[\u00E6\u04D5]/g,alternative:"ae"},{letter:/[\u00C6\u04D4]/g,alternative:"Ae"}],fa:[{letter:/[\u00E1]/g,alternative:"a"},{letter:/[\u00C1]/g,alternative:"A"},{letter:/[\u00F0]/g,alternative:"d"},{letter:/[\u00D0]/g,alternative:"D"},{letter:/[\u00ED]/g,alternative:"i"},{letter:/[\u00CD]/g,alternative:"I"},{letter:/[\u00FD]/g,alternative:"y"},{letter:/[\u00DD]/g,alternative:"Y"},{letter:/[\u00FA]/g,alternative:"u"},{letter:/[\u00DA]/g,alternative:"U"},{letter:/[\u00F3\u00F8]/g,alternative:"o"},{letter:/[\u00D3\u00D8]/g,alternative:"O"},{letter:/[\u00E6\u04D5]/g,alternative:"ae"},{letter:/[\u00C6\u04D4]/g,alternative:"Ae"}],cs:[{letter:/[\u00E1]/g,alternative:"a"},{letter:/[\u00C1]/g,alternative:"A"},{letter:/[\u010D]/g,alternative:"c"},{letter:/[\u010C]/g,alternative:"C"},{letter:/[\u010F]/g,alternative:"d"},{letter:/[\u010E]/g,alternative:"D"},{letter:/[\u00ED]/g,alternative:"i"},{letter:/[\u00CD]/g,alternative:"I"},{letter:/[\u0148]/g,alternative:"n"},{letter:/[\u0147]/g,alternative:"N"},{letter:/[\u00F3]/g,alternative:"o"},{letter:/[\u00D3]/g,alternative:"O"},{letter:/[\u0159]/g,alternative:"r"},{letter:/[\u0158]/g,alternative:"R"},{letter:/[\u0161]/g,alternative:"s"},{letter:/[\u0160]/g,alternative:"S"},{letter:/[\u0165]/g,alternative:"t"},{letter:/[\u0164]/g,alternative:"T"},{letter:/[\u00FD]/g,alternative:"y"},{letter:/[\u00DD]/g,alternative:"Y"},{letter:/[\u017E]/g,alternative:"z"},{letter:/[\u017D]/g,alternative:"Z"},{letter:/[\u00E9\u011B]/g,alternative:"e"},{letter:/[\u00C9\u011A]/g,alternative:"E"},{letter:/[\u00FA\u016F]/g,alternative:"u"},{letter:/[\u00DA\u016E]/g,alternative:"U"}],ru:[{letter:/[\u0430]/g,alternative:"a"},{letter:/[\u0410]/g,alternative:"A"},{letter:/[\u0431]/g,alternative:"b"},{letter:/[\u0411]/g,alternative:"B"},{letter:/[\u0432]/g,alternative:"v"},{letter:/[\u0412]/g,alternative:"V"},{letter:/[\u0433]/g,alternative:"g"},{letter:/[\u0413]/g,alternative:"G"},{letter:/[\u0434]/g,alternative:"d"},{letter:/[\u0414]/g,alternative:"D"},{letter:/[\u0435]/g,alternative:"e"},{letter:/[\u0415]/g,alternative:"E"},{letter:/[\u0436]/g,alternative:"zh"},{letter:/[\u0416]/g,alternative:"Zh"},{letter:/[\u0437]/g,alternative:"z"},{letter:/[\u0417]/g,alternative:"Z"},{letter:/[\u0456\u0438\u0439]/g,alternative:"i"},{letter:/[\u0406\u0418\u0419]/g,alternative:"I"},{letter:/[\u043A]/g,alternative:"k"},{letter:/[\u041A]/g,alternative:"K"},{letter:/[\u043B]/g,alternative:"l"},{letter:/[\u041B]/g,alternative:"L"},{letter:/[\u043C]/g,alternative:"m"},{letter:/[\u041C]/g,alternative:"M"},{letter:/[\u043D]/g,alternative:"n"},{letter:/[\u041D]/g,alternative:"N"},{letter:/[\u0440]/g,alternative:"r"},{letter:/[\u0420]/g,alternative:"R"},{letter:/[\u043E]/g,alternative:"o"},{letter:/[\u041E]/g,alternative:"O"},{letter:/[\u043F]/g,alternative:"p"},{letter:/[\u041F]/g,alternative:"P"},{letter:/[\u0441]/g,alternative:"s"},{letter:/[\u0421]/g,alternative:"S"},{letter:/[\u0442]/g,alternative:"t"},{letter:/[\u0422]/g,alternative:"T"},{letter:/[\u0443]/g,alternative:"u"},{letter:/[\u0423]/g,alternative:"U"},{letter:/[\u0444]/g,alternative:"f"},{letter:/[\u0424]/g,alternative:"F"},{letter:/[\u0445]/g,alternative:"kh"},{letter:/[\u0425]/g,alternative:"Kh"},{letter:/[\u0446]/g,alternative:"ts"},{letter:/[\u0426]/g,alternative:"Ts"},{letter:/[\u0447]/g,alternative:"ch"},{letter:/[\u0427]/g,alternative:"Ch"},{letter:/[\u0448]/g,alternative:"sh"},{letter:/[\u0428]/g,alternative:"Sh"},{letter:/[\u0449]/g,alternative:"shch"},{letter:/[\u0429]/g,alternative:"Shch"},{letter:/[\u044A]/g,alternative:"ie"},{letter:/[\u042A]/g,alternative:"Ie"},{letter:/[\u044B]/g,alternative:"y"},{letter:/[\u042B]/g,alternative:"Y"},{letter:/[\u044C]/g,alternative:""},{letter:/[\u042C]/g,alternative:""},{letter:/[\u0451\u044D]/g,alternative:"e"},{letter:/[\u0401\u042D]/g,alternative:"E"},{letter:/[\u044E]/g,alternative:"iu"},{letter:/[\u042E]/g,alternative:"Iu"},{letter:/[\u044F]/g,alternative:"ia"},{letter:/[\u042F]/g,alternative:"Ia"}],eo:[{letter:/[\u0109]/g,alternative:"ch"},{letter:/[\u0108]/g,alternative:"Ch"},{letter:/[\u011d]/g,alternative:"gh"},{letter:/[\u011c]/g,alternative:"Gh"},{letter:/[\u0125]/g,alternative:"hx"},{letter:/[\u0124]/g,alternative:"Hx"},{letter:/[\u0135]/g,alternative:"jx"},{letter:/[\u0134]/g,alternative:"Jx"},{letter:/[\u015d]/g,alternative:"sx"},{letter:/[\u015c]/g,alternative:"Sx"},{letter:/[\u016d]/g,alternative:"ux"},{letter:/[\u016c]/g,alternative:"Ux"}],af:[{letter:/[\u00E8\u00EA\u00EB]/g,alternative:"e"},{letter:/[\u00CB\u00C8\u00CA]/g,alternative:"E"},{letter:/[\u00EE\u00EF]/g,alternative:"i"},{letter:/[\u00CE\u00CF]/g,alternative:"I"},{letter:/[\u00F4\u00F6]/g,alternative:"o"},{letter:/[\u00D4\u00D6]/g,alternative:"O"},{letter:/[\u00FB\u00FC]/g,alternative:"u"},{letter:/[\u00DB\u00DC]/g,alternative:"U"}],ca:[{letter:/[\u00E0]/g,alternative:"a"},{letter:/[\u00C0]/g,alternative:"A"},{letter:/[\u00E9|\u00E8]/g,alternative:"e"},{letter:/[\u00C9|\u00C8]/g,alternative:"E"},{letter:/[\u00ED|\u00EF]/g,alternative:"i"},{letter:/[\u00CD|\u00CF]/g,alternative:"I"},{letter:/[\u00F3|\u00F2]/g,alternative:"o"},{letter:/[\u00D3|\u00D2]/g,alternative:"O"},{letter:/[\u00FA|\u00FC]/g,alternative:"u"},{letter:/[\u00DA|\u00DC]/g,alternative:"U"},{letter:/[\u00E7]/g,alternative:"c"},{letter:/[\u00C7]/g,alternative:"C"}],ast:[{letter:/[\u00F1]/g,alternative:"n"},{letter:/[\u00D1]/g,alternative:"N"}],an:[{letter:/[\u00FC]/g,alternative:"u"},{letter:/[\u00F1]/g,alternative:"ny"},{letter:/[\u00E7]/g,alternative:"c"},{letter:/[\u00ED]/g,alternative:"i"},{letter:/[\u00F3]/g,alternative:"o"},{letter:/[\u00E1]/g,alternative:"a"},{letter:/[\u00DC]/g,alternative:"U"},{letter:/[\u00D1]/g,alternative:"Ny"},{letter:/[\u00C7]/g,alternative:"C"},{letter:/[\u00CD]/g,alternative:"I"},{letter:/[\u00D3]/g,alternative:"O"},{letter:/[\u00C1]/g,alternative:"A"}],ay:[{letter:/(([\u00EF])|([\u00ED]))/g,alternative:"i"},{letter:/(([\u00CF])|([\u00CD]))/g,alternative:"I"},{letter:/[\u00E4]/g,alternative:"a"},{letter:/[\u00C4]/g,alternative:"A"},{letter:/[\u00FC]/g,alternative:"u"},{letter:/[\u00DC]/g,alternative:"U"},{letter:/[\u0027]/g,alternative:""},{letter:/[\u00F1]/g,alternative:"n"},{letter:/[\u00D1]/g,alternative:"N"}],en:[{letter:/[\u00E6\u04D5]/g,alternative:"ae"},{letter:/[\u00C6\u04D4]/g,alternative:"Ae"},{letter:/[\u0153]/g,alternative:"oe"},{letter:/[\u0152]/g,alternative:"Oe"},{letter:/[\u00EB\u00E9]/g,alternative:"e"},{letter:/[\u00C9\u00CB]/g,alternative:"E"},{letter:/[\u00F4\u00F6]/g,alternative:"o"},{letter:/[\u00D4\u00D6]/g,alternative:"O"},{letter:/[\u00EF]/g,alternative:"i"},{letter:/[\u00CF]/g,alternative:"I"},{letter:/[\u00E7]/g,alternative:"c"},{letter:/[\u00C7]/g,alternative:"C"},{letter:/[\u00F1]/g,alternative:"n"},{letter:/[\u00D1]/g,alternative:"N"},{letter:/[\u00FC]/g,alternative:"u"},{letter:/[\u00DC]/g,alternative:"U"},{letter:/[\u00E4]/g,alternative:"a"},{letter:/[\u00C4]/g,alternative:"A"}],fr:[{letter:/[\u00E6\u04D5]/g,alternative:"ae"},{letter:/[\u00C6\u04D4]/g,alternative:"Ae"},{letter:/[\u0153]/g,alternative:"oe"},{letter:/[\u0152]/g,alternative:"Oe"},{letter:/[\u00E9\u00E8\u00EB\u00EA]/g,alternative:"e"},{letter:/[\u00C9\u00C8\u00CB\u00CA]/g,alternative:"E"},{letter:/[\u00E0\u00E2]/g,alternative:"a"},{letter:/[\u00C0\u00C2]/g,alternative:"A"},{letter:/[\u00EF\u00EE]/g,alternative:"i"},{letter:/[\u00CF\u00CE]/g,alternative:"I"},{letter:/[\u00F9\u00FB\u00FC]/g,alternative:"u"},{letter:/[\u00D9\u00DB\u00DC]/g,alternative:"U"},{letter:/[\u00F4]/g,alternative:"o"},{letter:/[\u00D4]/g,alternative:"O"},{letter:/[\u00FF]/g,alternative:"y"},{letter:/[\u0178]/g,alternative:"Y"},{letter:/[\u00E7]/g,alternative:"c"},{letter:/[\u00C7]/g,alternative:"C"},{letter:/[\u00F1]/g,alternative:"n"},{letter:/[\u00D1]/g,alternative:"N"}],it:[{letter:/[\u00E0]/g,alternative:"a"},{letter:/[\u00C0]/g,alternative:"A"},{letter:/[\u00E9\u00E8]/g,alternative:"e"},{letter:/[\u00C9\u00C8]/g,alternative:"E"},{letter:/[\u00EC\u00ED\u00EE]/g,alternative:"i"},{letter:/[\u00CC\u00CD\u00CE]/g,alternative:"I"},{letter:/[\u00F3\u00F2]/g,alternative:"o"},{letter:/[\u00D3\u00D2]/g,alternative:"O"},{letter:/[\u00F9\u00FA]/g,alternative:"u"},{letter:/[\u00D9\u00DA]/g,alternative:"U"}],nl:[{letter:/[\u00E7]/g,alternative:"c"},{letter:/[\u00C7]/g,alternative:"C"},{letter:/[\u00F1]/g,alternative:"n"},{letter:/[\u00D1]/g,alternative:"N"},{letter:/[\u00E9\u00E8\u00EA\u00EB]/g,alternative:"e"},{letter:/[\u00C9\u00C8\u00CA\u00CB]/g,alternative:"E"},{letter:/[\u00F4\u00F6]/g,alternative:"o"},{letter:/[\u00D4\u00D6]/g,alternative:"O"},{letter:/[\u00EF]/g,alternative:"i"},{letter:/[\u00CF]/g,alternative:"I"},{letter:/[\u00FC]/g,alternative:"u"},{letter:/[\u00DC]/g,alternative:"U"},{letter:/[\u00E4]/g,alternative:"a"},{letter:/[\u00C4]/g,alternative:"A"}],bm:[{letter:/[\u025B]/g,alternative:"e"},{letter:/[\u0190]/g,alternative:"E"},{letter:/[\u0272]/g,alternative:"ny"},{letter:/[\u019D]/g,alternative:"Ny"},{letter:/[\u014B]/g,alternative:"ng"},{letter:/[\u014A]/g,alternative:"Ng"},{letter:/[\u0254]/g,alternative:"o"},{letter:/[\u0186]/g,alternative:"O"}],uk:[{letter:/[\u0431]/g,alternative:"b"},{letter:/[\u0411]/g,alternative:"B"},{letter:/[\u0432]/g,alternative:"v"},{letter:/[\u0412]/g,alternative:"V"},{letter:/[\u0433]/g,alternative:"h"},{letter:/[\u0413]/g,alternative:"H"},{letter:/[\u0491]/g,alternative:"g"},{letter:/[\u0490]/g,alternative:"G"},{letter:/[\u0434]/g,alternative:"d"},{letter:/[\u0414]/g,alternative:"D"},{letter:/[\u043A]/g,alternative:"k"},{letter:/[\u041A]/g,alternative:"K"},{letter:/[\u043B]/g,alternative:"l"},{letter:/[\u041B]/g,alternative:"L"},{letter:/[\u043C]/g,alternative:"m"},{letter:/[\u041C]/g,alternative:"M"},{letter:/[\u0070]/g,alternative:"r"},{letter:/[\u0050]/g,alternative:"R"},{letter:/[\u043F]/g,alternative:"p"},{letter:/[\u041F]/g,alternative:"P"},{letter:/[\u0441]/g,alternative:"s"},{letter:/[\u0421]/g,alternative:"S"},{letter:/[\u0442]/g,alternative:"t"},{letter:/[\u0422]/g,alternative:"T"},{letter:/[\u0443]/g,alternative:"u"},{letter:/[\u0423]/g,alternative:"U"},{letter:/[\u0444]/g,alternative:"f"},{letter:/[\u0424]/g,alternative:"F"},{letter:/[\u0445]/g,alternative:"kh"},{letter:/[\u0425]/g,alternative:"Kh"},{letter:/[\u0446]/g,alternative:"ts"},{letter:/[\u0426]/g,alternative:"Ts"},{letter:/[\u0447]/g,alternative:"ch"},{letter:/[\u0427]/g,alternative:"Ch"},{letter:/[\u0448]/g,alternative:"sh"},{letter:/[\u0428]/g,alternative:"Sh"},{letter:/[\u0449]/g,alternative:"shch"},{letter:/[\u0429]/g,alternative:"Shch"},{letter:/[\u044C\u042C]/g,alternative:""},{letter:/[\u0436]/g,alternative:"zh"},{letter:/[\u0416]/g,alternative:"Zh"},{letter:/[\u0437]/g,alternative:"z"},{letter:/[\u0417]/g,alternative:"Z"},{letter:/[\u0438]/g,alternative:"y"},{letter:/[\u0418]/g,alternative:"Y"},{letter:/^[\u0454]/g,alternative:"ye"},{letter:/[\s][\u0454]/g,alternative:" ye"},{letter:/[\u0454]/g,alternative:"ie"},{letter:/^[\u0404]/g,alternative:"Ye"},{letter:/[\s][\u0404]/g,alternative:" Ye"},{letter:/[\u0404]/g,alternative:"IE"},{letter:/^[\u0457]/g,alternative:"yi"},{letter:/[\s][\u0457]/g,alternative:" yi"},{letter:/[\u0457]/g,alternative:"i"},{letter:/^[\u0407]/g,alternative:"Yi"},{letter:/[\s][\u0407]/g,alternative:" Yi"},{letter:/[\u0407]/g,alternative:"I"},{letter:/^[\u0439]/g,alternative:"y"},{letter:/[\s][\u0439]/g,alternative:" y"},{letter:/[\u0439]/g,alternative:"i"},{letter:/^[\u0419]/g,alternative:"Y"},{letter:/[\s][\u0419]/g,alternative:" Y"},{letter:/[\u0419]/g,alternative:"I"},{letter:/^[\u044E]/g,alternative:"yu"},{letter:/[\s][\u044E]/g,alternative:" yu"},{letter:/[\u044E]/g,alternative:"iu"},{letter:/^[\u042E]/g,alternative:"Yu"},{letter:/[\s][\u042E]/g,alternative:" Yu"},{letter:/[\u042E]/g,alternative:"IU"},{letter:/^[\u044F]/g,alternative:"ya"},{letter:/[\s][\u044F]/g,alternative:" ya"},{letter:/[\u044F]/g,alternative:"ia"},{letter:/^[\u042F]/g,alternative:"Ya"},{letter:/[\s][\u042F]/g,alternative:" Ya"},{letter:/[\u042F]/g,alternative:"IA"}],br:[{letter:/\u0063\u0027\u0068/g,alternative:"ch"},{letter:/\u0043\u0027\u0048/g,alternative:"CH"},{letter:/[\u00e2]/g,alternative:"a"},{letter:/[\u00c2]/g,alternative:"A"},{letter:/[\u00ea]/g,alternative:"e"},{letter:/[\u00ca]/g,alternative:"E"},{letter:/[\u00ee]/g,alternative:"i"},{letter:/[\u00ce]/g,alternative:"I"},{letter:/[\u00f4]/g,alternative:"o"},{letter:/[\u00d4]/g,alternative:"O"},{letter:/[\u00fb\u00f9\u00fc]/g,alternative:"u"},{letter:/[\u00db\u00d9\u00dc]/g,alternative:"U"},{letter:/[\u00f1]/g,alternative:"n"},{letter:/[\u00d1]/g,alternative:"N"}],ch:[{letter:/[\u0027]/g,alternative:""},{letter:/[\u00e5]/g,alternative:"a"},{letter:/[\u00c5]/g,alternative:"A"},{letter:/[\u00f1]/g,alternative:"n"},{letter:/[\u00d1]/g,alternative:"N"}],co:[{letter:/[\u00e2\u00e0]/g,alternative:"a"},{letter:/[\u00c2\u00c0]/g,alternative:"A"},{letter:/[\u00e6\u04d5]/g,alternative:"ae"},{letter:/[\u00c6\u04d4]/g,alternative:"Ae"},{letter:/[\u00e7]/g,alternative:"c"},{letter:/[\u00c7]/g,alternative:"C"},{letter:/[\u00e9\u00ea\u00e8\u00eb]/g,alternative:"e"},{letter:/[\u00c9\u00ca\u00c8\u00cb]/g,alternative:"E"},{letter:/[\u00ec\u00ee\u00ef]/g,alternative:"i"},{letter:/[\u00cc\u00ce\u00cf]/g,alternative:"I"},{letter:/[\u00f1]/g,alternative:"n"},{letter:/[\u00d1]/g,alternative:"N"},{letter:/[\u00f4\u00f2]/g,alternative:"o"},{letter:/[\u00d4\u00d2]/g,alternative:"O"},{letter:/[\u0153]/g,alternative:"oe"},{letter:/[\u0152]]/g,alternative:"Oe"},{letter:/[\u00f9\u00fc]/g,alternative:"u"},{letter:/[\u00d9\u00dc]/g,alternative:"U"},{letter:/[\u00ff]/g,alternative:"y"},{letter:/[\u0178]/g,alternative:"Y"}],csb:[{letter:/[\u0105\u00e3]/g,alternative:"a"},{letter:/[\u0104\u00c3]/g,alternative:"A"},{letter:/[\u00e9\u00eb]/g,alternative:"e"},{letter:/[\u00c9\u00cb]/g,alternative:"E"},{letter:/[\u0142]/g,alternative:"l"},{letter:/[\u0141]/g,alternative:"L"},{letter:/[\u0144]/g,alternative:"n"},{letter:/[\u0143]/g,alternative:"N"},{letter:/[\u00f2\u00f3\u00f4]/g,alternative:"o"},{letter:/[\u00d2\u00d3\u00d4]/g,alternative:"O"},{letter:/[\u00f9]/g,alternative:"u"},{letter:/[\u00d9]/g,alternative:"U"},{letter:/[\u017c]/g,alternative:"z"},{letter:/[\u017b]/g,alternative:"Z"}],cy:[{letter:/[\u00e2]/g,alternative:"a"},{letter:/[\u00c2]/g,alternative:"A"},{letter:/[\u00ea]/g,alternative:"e"},{letter:/[\u00ca]/g,alternative:"E"},{letter:/[\u00ee]/g,alternative:"i"},{letter:/[\u00ce]/g,alternative:"I"},{letter:/[\u00f4]/g,alternative:"o"},{letter:/[\u00d4]/g,alternative:"O"},{letter:/[\u00fb]/g,alternative:"u"},{letter:/[\u00db]/g,alternative:"U"},{letter:/[\u0175]/g,alternative:"w"},{letter:/[\u0174]/g,alternative:"W"},{letter:/[\u0177]/g,alternative:"y"},{letter:/[\u0176]/g,alternative:"Y"}],ee:[{letter:/[\u0256]/g,alternative:"d"},{letter:/[\u0189]/g,alternative:"D"},{letter:/[\u025b]/g,alternative:"e"},{letter:/[\u0190]/g,alternative:"E"},{letter:/[\u0192]/g,alternative:"f"},{letter:/[\u0191]/g,alternative:"F"},{letter:/[\u0263]/g,alternative:"g"},{letter:/[\u0194]/g,alternative:"G"},{letter:/[\u014b]/g,alternative:"ng"},{letter:/[\u014a]/g,alternative:"Ng"},{letter:/[\u0254]/g,alternative:"o"},{letter:/[\u0186]/g,alternative:"O"},{letter:/[\u028b]/g,alternative:"w"},{letter:/[\u01b2]/g,alternative:"W"},{letter:/\u0061\u0303/g,alternative:"a"},{letter:/[\u00e1\u00e0\u01ce\u00e2\u00e3]/g,alternative:"a"},{letter:/\u0041\u0303/g,alternative:"A"},{letter:/[\u00c1\u00c0\u01cd\u00c2\u00c3]/g,alternative:"A"},{letter:/[\u00e9\u00e8\u011b\u00ea]/g,alternative:"e"},{letter:/[\u00c9\u00c8\u011a\u00ca]/g,alternative:"E"},{letter:/[\u00f3\u00f2\u01d2\u00f4]/g,alternative:"o"},{letter:/[\u00d3\u00d2\u01d1\u00d4]/g,alternative:"O"},{letter:/[\u00fa\u00f9\u01d4\u00fb]/g,alternative:"u"},{letter:/[\u00da\u00d9\u01d3\u00db]/g,alternative:"U"},{letter:/[\u00ed\u00ec\u01d0\u00ee]/g,alternative:"i"},{letter:/[\u00cd\u00cc\u01cf\u00ce]/g,alternative:"I"}],et:[{letter:/[\u0161]/g,alternative:"sh"},{letter:/[\u0160]/g,alternative:"Sh"},{letter:/[\u017e]/g,alternative:"zh"},{letter:/[\u017d]/g,alternative:"Zh"},{letter:/[\u00f5\u00f6]/g,alternative:"o"},{letter:/[\u00d6\u00d5]/g,alternative:"O"},{letter:/[\u00e4]/g,alternative:"a"},{letter:/[\u00c4]/g,alternative:"A"},{letter:/[\u00fc]/g,alternative:"u"},{letter:/[\u00dc]/g,alternative:"U"}],eu:[{letter:/[\u00f1]/g,alternative:"n"},{letter:/[\u00d1]/g,alternative:"N"},{letter:/[\u00e7]/g,alternative:"c"},{letter:/[\u00c7]/g,alternative:"C"},{letter:/[\u00fc]/g,alternative:"u"},{letter:/[\u00dc]/g,alternative:"U"}],fuc:[{letter:/[\u0253]/g,alternative:"b"},{letter:/[\u0181]/g,alternative:"B"},{letter:/[\u0257]/g,alternative:"d"},{letter:/[\u018a]/g,alternative:"D"},{letter:/[\u014b]/g,alternative:"ng"},{letter:/[\u014a]/g,alternative:"Ng"},{letter:/[\u0272\u00f1]/g,alternative:"ny"},{letter:/[\u019d\u00d1]/g,alternative:"Ny"},{letter:/[\u01b4]/g,alternative:"y"},{letter:/[\u01b3]/g,alternative:"Y"},{letter:/[\u0260]/g,alternative:"g"},{letter:/[\u0193]/g,alternative:"G"}],fj:[{letter:/[\u0101]/g,alternative:"a"},{letter:/[\u0100]/g,alternative:"A"},{letter:/[\u0113]/g,alternative:"e"},{letter:/[\u0112]/g,alternative:"E"},{letter:/[\u012b]/g,alternative:"i"},{letter:/[\u012a]/g,alternative:"I"},{letter:/[\u016b]/g,alternative:"u"},{letter:/[\u016a]/g,alternative:"U"},{letter:/[\u014d]/g,alternative:"o"},{letter:/[\u014c]/g,alternative:"O"}],frp:[{letter:/[\u00e2]/g,alternative:"a"},{letter:/[\u00c2]/g,alternative:"A"},{letter:/[\u00ea\u00e8\u00e9]/g,alternative:"e"},{letter:/[\u00ca\u00c8\u00c9]/g,alternative:"E"},{letter:/[\u00ee]/g,alternative:"i"},{letter:/[\u00ce]/g,alternative:"I"},{letter:/[\u00fb\u00fc]/g,alternative:"u"},{letter:/[\u00db\u00dc]/g,alternative:"U"},{letter:/[\u00f4]/g,alternative:"o"},{letter:/[\u00d4]/g,alternative:"O"}],fur:[{letter:/[\u00E7]/g,alternative:"c"},{letter:/[\u00C7]/g,alternative:"C"},{letter:/[\u00e0\u00e2]/g,alternative:"a"},{letter:/[\u00c0\u00c2]/g,alternative:"A"},{letter:/[\u00e8\u00ea]/g,alternative:"e"},{letter:/[\u00c8\u00ca]/g,alternative:"E"},{letter:/[\u00ec\u00ee]/g,alternative:"i"},{letter:/[\u00cc\u00ce]/g,alternative:"I"},{letter:/[\u00f2\u00f4]/g,alternative:"o"},{letter:/[\u00d2\u00d4]/g,alternative:"O"},{letter:/[\u00f9\u00fb]/g,alternative:"u"},{letter:/[\u00d9\u00db]/g,alternative:"U"},{letter:/[\u010d]/g,alternative:"c"},{letter:/[\u010c]/g,alternative:"C"},{letter:/[\u011f]/g,alternative:"g"},{letter:/[\u011e]/g,alternative:"G"},{letter:/[\u0161]/g,alternative:"s"},{letter:/[\u0160]/g,alternative:"S"}],fy:[{letter:/[\u00e2\u0101\u00e4\u00e5]/g,alternative:"a"},{letter:/[\u00c2\u0100\u00c4\u00c5]/g,alternative:"A"},{letter:/[\u00ea\u00e9\u0113]/g,alternative:"e"},{letter:/[\u00ca\u00c9\u0112]/g,alternative:"E"},{letter:/[\u00f4\u00f6]/g,alternative:"o"},{letter:/[\u00d4\u00d6]/g,alternative:"O"},{letter:/[\u00fa\u00fb\u00fc]/g,alternative:"u"},{letter:/[\u00da\u00db\u00dc]/g,alternative:"U"},{letter:/[\u00ed]/g,alternative:"i"},{letter:/[\u00cd]/g,alternative:"I"},{letter:/[\u0111\u00f0]/g,alternative:"d"},{letter:/[\u0110\u00d0]/g,alternative:"D"}],ga:[{letter:/[\u00e1]/g,alternative:"a"},{letter:/[\u00c1]/g,alternative:"A"},{letter:/[\u00e9]/g,alternative:"e"},{letter:/[\u00c9]/g,alternative:"E"},{letter:/[\u00f3]/g,alternative:"o"},{letter:/[\u00d3]/g,alternative:"O"},{letter:/[\u00fa]/g,alternative:"u"},{letter:/[\u00da]/g,alternative:"U"},{letter:/[\u00ed]/g,alternative:"i"},{letter:/[\u00cd]/g,alternative:"I"}],gd:[{letter:/[\u00e0]/g,alternative:"a"},{letter:/[\u00c0]/g,alternative:"A"},{letter:/[\u00e8]/g,alternative:"e"},{letter:/[\u00c8]/g,alternative:"E"},{letter:/[\u00f2]/g,alternative:"o"},{letter:/[\u00d2]/g,alternative:"O"},{letter:/[\u00f9]/g,alternative:"u"},{letter:/[\u00d9]/g,alternative:"U"},{letter:/[\u00ec]/g,alternative:"i"},{letter:/[\u00cc]/g,alternative:"I"}],gl:[{letter:/[\u00e1\u00e0]/g,alternative:"a"},{letter:/[\u00c1\u00c0]/g,alternative:"A"},{letter:/[\u00e9\u00ea]/g,alternative:"e"},{letter:/[\u00c9\u00ca]/g,alternative:"E"},{letter:/[\u00ed\u00ef]/g,alternative:"i"},{letter:/[\u00cd\u00cf]/g,alternative:"I"},{letter:/[\u00f3]/g,alternative:"o"},{letter:/[\u00d3]/g,alternative:"O"},{letter:/[\u00fa\u00fc]/g,alternative:"u"},{letter:/[\u00da\u00dc]/g,alternative:"U"},{letter:/[\u00e7]/g,alternative:"c"},{letter:/[\u00c7]/g,alternative:"C"},{letter:/[\u00f1]/g,alternative:"n"},{letter:/[\u00d1]/g,alternative:"N"}],gn:[{letter:/[\u2019]/g,alternative:""},{letter:/\u0067\u0303/g,alternative:"g"},{letter:/\u0047\u0303/g,alternative:"G"},{letter:/[\u00e3]/g,alternative:"a"},{letter:/[\u00c3]/g,alternative:"A"},{letter:/[\u1ebd]/g,alternative:"e"},{letter:/[\u1ebc]/g,alternative:"E"},{letter:/[\u0129]/g,alternative:"i"},{letter:/[\u0128]/g,alternative:"I"},{letter:/[\u00f5]/g,alternative:"o"},{letter:/[\u00d5]/g,alternative:"O"},{letter:/[\u00f1]/g,alternative:"n"},{letter:/[\u00d1]/g,alternative:"N"},{letter:/[\u0169]/g,alternative:"u"},{letter:/[\u0168]/g,alternative:"U"},{letter:/[\u1ef9]/g,alternative:"y"},{letter:/[\u1ef8]/g,alternative:"Y"}],gsw:[{letter:/[\u00e4]/g,alternative:"a"},{letter:/[\u00c4]/g,alternative:"A"},{letter:/[\u00f6]/g,alternative:"o"},{letter:/[\u00d6]/g,alternative:"O"},{letter:/[\u00fc]/g,alternative:"u"},{letter:/[\u00dc]/g,alternative:"U"}],hat:[{letter:/[\u00e8]/g,alternative:"e"},{letter:/[\u00c8]/g,alternative:"E"},{letter:/[\u00f2]/g,alternative:"o"},{letter:/[\u00d2]/g,alternative:"O"}],haw:[{letter:/[\u02bb\u0027\u2019]/g,alternative:""},{letter:/[\u0101]/g,alternative:"a"},{letter:/[\u0113]/g,alternative:"e"},{letter:/[\u012b]/g,alternative:"i"},{letter:/[\u014d]/g,alternative:"o"},{letter:/[\u016b]/g,alternative:"u"},{letter:/[\u0100]/g,alternative:"A"},{letter:/[\u0112]/g,alternative:"E"},{letter:/[\u012a]/g,alternative:"I"},{letter:/[\u014c]/g,alternative:"O"},{letter:/[\u016a]/g,alternative:"U"}],hr:[{letter:/[\u010d\u0107]/g,alternative:"c"},{letter:/[\u010c\u0106]/g,alternative:"C"},{letter:/[\u0111]/g,alternative:"dj"},{letter:/[\u0110]/g,alternative:"Dj"},{letter:/[\u0161]/g,alternative:"s"},{letter:/[\u0160]/g,alternative:"S"},{letter:/[\u017e]/g,alternative:"z"},{letter:/[\u017d]/g,alternative:"Z"},{letter:/[\u01c4]/g,alternative:"DZ"},{letter:/[\u01c5]/g,alternative:"Dz"},{letter:/[\u01c6]/g,alternative:"dz"}],ka:[{letter:/[\u10d0]/g,alternative:"a"},{letter:/[\u10d1]/g,alternative:"b"},{letter:/[\u10d2]/g,alternative:"g"},{letter:/[\u10d3]/g,alternative:"d"},{letter:/[\u10d4]/g,alternative:"e"},{letter:/[\u10d5]/g,alternative:"v"},{letter:/[\u10d6]/g,alternative:"z"},{letter:/[\u10d7]/g,alternative:"t"},{letter:/[\u10d8]/g,alternative:"i"},{letter:/[\u10d9]/g,alternative:"k"},{letter:/[\u10da]/g,alternative:"l"},{letter:/[\u10db]/g,alternative:"m"},{letter:/[\u10dc]/g,alternative:"n"},{letter:/[\u10dd]/g,alternative:"o"},{letter:/[\u10de]/g,alternative:"p"},{letter:/[\u10df]/g,alternative:"zh"},{letter:/[\u10e0]/g,alternative:"r"},{letter:/[\u10e1]/g,alternative:"s"},{letter:/[\u10e2]/g,alternative:"t"},{letter:/[\u10e3]/g,alternative:"u"},{letter:/[\u10e4]/g,alternative:"p"},{letter:/[\u10e5]/g,alternative:"k"},{letter:/[\u10e6]/g,alternative:"gh"},{letter:/[\u10e7]/g,alternative:"q"},{letter:/[\u10e8]/g,alternative:"sh"},{letter:/[\u10e9]/g,alternative:"ch"},{letter:/[\u10ea]/g,alternative:"ts"},{letter:/[\u10eb]/g,alternative:"dz"},{letter:/[\u10ec]/g,alternative:"ts"},{letter:/[\u10ed]/g,alternative:"ch"},{letter:/[\u10ee]/g,alternative:"kh"},{letter:/[\u10ef]/g,alternative:"j"},{letter:/[\u10f0]/g,alternative:"h"}],kal:[{letter:/[\u00E5]/g,alternative:"aa"},{letter:/[\u00C5]/g,alternative:"Aa"},{letter:/[\u00E6\u04D5]/g,alternative:"ae"},{letter:/[\u00C6\u04D4]/g,alternative:"Ae"},{letter:/[\u00C4]/g,alternative:"Ae"},{letter:/[\u00F8]/g,alternative:"oe"},{letter:/[\u00D8]/g,alternative:"Oe"}],kin:[{letter:/[\u2019\u0027]/g,alternative:""}],lb:[{letter:/[\u00e4]/g,alternative:"a"},{letter:/[\u00c4]/g,alternative:"A"},{letter:/[\u00eb\u00e9]/g,alternative:"e"},{letter:/[\u00cb\u00c9]/g,alternative:"E"}],li:[{letter:/[\u00e1\u00e2\u00e0\u00e4]/g,alternative:"a"},{letter:/[\u00c1\u00c2\u00c0\u00c4]/g,alternative:"A"},{letter:/[\u00eb\u00e8\u00ea]/g,alternative:"e"},{letter:/[\u00cb\u00c8\u00ca]/g,alternative:"E"},{letter:/[\u00f6\u00f3]/g,alternative:"o"},{letter:/[\u00d6\u00d3]/g,alternative:"O"}],lin:[{letter:/[\u00e1\u00e2\u01ce]/g,alternative:"a"},{letter:/[\u00c1\u00c2\u01cd]/g,alternative:"A"},{letter:/\u025b\u0301/g,alternative:"e"},{letter:/\u025b\u0302/g,alternative:"e"},{letter:/\u025b\u030c/g,alternative:"e"},{letter:/[\u00e9\u00ea\u011b\u025b]/g,alternative:"e"},{letter:/\u0190\u0301/g,alternative:"E"},{letter:/\u0190\u0302/g,alternative:"E"},{letter:/\u0190\u030c/g,alternative:"E"},{letter:/[\u00c9\u00ca\u011a\u0190]/g,alternative:"E"},{letter:/[\u00ed\u00ee\u01d0]/g,alternative:"i"},{letter:/[\u00cd\u00ce\u01cf]/g,alternative:"I"},{letter:/\u0254\u0301/g,alternative:"o"},{letter:/\u0254\u0302/g,alternative:"o"},{letter:/\u0254\u030c/g,alternative:"o"},{letter:/[\u00f3\u00f4\u01d2\u0254]/g,alternative:"o"},{letter:/\u0186\u0301/g,alternative:"O"},{letter:/\u0186\u0302/g,alternative:"O"},{letter:/\u0186\u030c/g,alternative:"O"},{letter:/[\u00d3\u00d4\u01d1\u0186]/g,alternative:"O"},{letter:/[\u00fa]/g,alternative:"u"},{letter:/[\u00da]/g,alternative:"U"}],lt:[{letter:/[\u0105]/g,alternative:"a"},{letter:/[\u0104]/g,alternative:"A"},{letter:/[\u010d]/g,alternative:"c"},{letter:/[\u010c]/g,alternative:"C"},{letter:/[\u0119\u0117]/g,alternative:"e"},{letter:/[\u0118\u0116]/g,alternative:"E"},{letter:/[\u012f]/g,alternative:"i"},{letter:/[\u012e]/g,alternative:"I"},{letter:/[\u0161]/g,alternative:"s"},{letter:/[\u0160]/g,alternative:"S"},{letter:/[\u0173\u016b]/g,alternative:"u"},{letter:/[\u0172\u016a]/g,alternative:"U"},{letter:/[\u017e]/g,alternative:"z"},{letter:/[\u017d]/g,alternative:"Z"}],mg:[{letter:/[\u00f4]/g,alternative:"ao"},{letter:/[\u00d4]/g,alternative:"Ao"}],mk:[{letter:/[\u0430]/g,alternative:"a"},{letter:/[\u0410]/g,alternative:"A"},{letter:/[\u0431]/g,alternative:"b"},{letter:/[\u0411]/g,alternative:"B"},{letter:/[\u0432]/g,alternative:"v"},{letter:/[\u0412]/g,alternative:"V"},{letter:/[\u0433]/g,alternative:"g"},{letter:/[\u0413]/g,alternative:"G"},{letter:/[\u0434]/g,alternative:"d"},{letter:/[\u0414]/g,alternative:"D"},{letter:/[\u0453]/g,alternative:"gj"},{letter:/[\u0403]/g,alternative:"Gj"},{letter:/[\u0435]/g,alternative:"e"},{letter:/[\u0415]/g,alternative:"E"},{letter:/[\u0436]/g,alternative:"zh"},{letter:/[\u0416]/g,alternative:"Zh"},{letter:/[\u0437]/g,alternative:"z"},{letter:/[\u0417]/g,alternative:"Z"},{letter:/[\u0455]/g,alternative:"dz"},{letter:/[\u0405]/g,alternative:"Dz"},{letter:/[\u0438]/g,alternative:"i"},{letter:/[\u0418]/g,alternative:"I"},{letter:/[\u0458]/g,alternative:"j"},{letter:/[\u0408]/g,alternative:"J"},{letter:/[\u043A]/g,alternative:"k"},{letter:/[\u041A]/g,alternative:"K"},{letter:/[\u043B]/g,alternative:"l"},{letter:/[\u041B]/g,alternative:"L"},{letter:/[\u0459]/g,alternative:"lj"},{letter:/[\u0409]/g,alternative:"Lj"},{letter:/[\u043C]/g,alternative:"m"},{letter:/[\u041C]/g,alternative:"M"},{letter:/[\u043D]/g,alternative:"n"},{letter:/[\u041D]/g,alternative:"N"},{letter:/[\u045A]/g,alternative:"nj"},{letter:/[\u040A]/g,alternative:"Nj"},{letter:/[\u043E]/g,alternative:"o"},{letter:/[\u041E]/g,alternative:"O"},{letter:/[\u0440]/g,alternative:"r"},{letter:/[\u0420]/g,alternative:"R"},{letter:/[\u043F]/g,alternative:"p"},{letter:/[\u041F]/g,alternative:"P"},{letter:/[\u0441]/g,alternative:"s"},{letter:/[\u0421]/g,alternative:"S"},{letter:/[\u0442]/g,alternative:"t"},{letter:/[\u0422]/g,alternative:"T"},{letter:/[\u045C]/g,alternative:"kj"},{letter:/[\u040C]/g,alternative:"Kj"},{letter:/[\u0443]/g,alternative:"u"},{letter:/[\u0423]/g,alternative:"U"},{letter:/[\u0444]/g,alternative:"f"},{letter:/[\u0424]/g,alternative:"F"},{letter:/[\u0445]/g,alternative:"h"},{letter:/[\u0425]/g,alternative:"H"},{letter:/[\u0446]/g,alternative:"c"},{letter:/[\u0426]/g,alternative:"C"},{letter:/[\u0447]/g,alternative:"ch"},{letter:/[\u0427]/g,alternative:"Ch"},{letter:/[\u045F]/g,alternative:"dj"},{letter:/[\u040F]/g,alternative:"Dj"},{letter:/[\u0448]/g,alternative:"sh"},{letter:/[\u0428]/g,alternative:"Sh"}],mri:[{letter:/[\u0101]/g,alternative:"aa"},{letter:/[\u0100]/g,alternative:"Aa"},{letter:/[\u0113]/g,alternative:"ee"},{letter:/[\u0112]/g,alternative:"Ee"},{letter:/[\u012b]/g,alternative:"ii"},{letter:/[\u012a]/g,alternative:"Ii"},{letter:/[\u014d]/g,alternative:"oo"},{letter:/[\u014c]/g,alternative:"Oo"},{letter:/[\u016b]/g,alternative:"uu"},{letter:/[\u016a]/g,alternative:"Uu"}],mwl:[{letter:/[\u00e7]/g,alternative:"c"},{letter:/[\u00c7]/g,alternative:"C"},{letter:/[\u00e1]/g,alternative:"a"},{letter:/[\u00c1]/g,alternative:"A"},{letter:/[\u00e9\u00ea]/g,alternative:"e"},{letter:/[\u00c9\u00ca]/g,alternative:"E"},{letter:/[\u00ed]/g,alternative:"i"},{letter:/[\u00cd]/g,alternative:"I"},{letter:/[\u00f3\u00f4]/g,alternative:"o"},{letter:/[\u00d3\u00d4]/g,alternative:"O"},{letter:/[\u00fa\u0169]/g,alternative:"u"},{letter:/[\u00da\u0168]/g,alternative:"U"}],oci:[{letter:/[\u00e7]/g,alternative:"c"},{letter:/[\u00c7]/g,alternative:"C"},{letter:/[\u00e0\u00e1]/g,alternative:"a"},{letter:/[\u00c0\u00c1]/g,alternative:"A"},{letter:/[\u00e8\u00e9]/g,alternative:"e"},{letter:/[\u00c8\u00c9]/g,alternative:"E"},{letter:/[\u00ed\u00ef]/g,alternative:"i"},{letter:/[\u00cd\u00cf]/g,alternative:"I"},{letter:/[\u00f2\u00f3]/g,alternative:"o"},{letter:/[\u00d2\u00d3]/g,alternative:"O"},{letter:/[\u00fa\u00fc]/g,alternative:"u"},{letter:/[\u00da\u00dc]/g,alternative:"U"},{letter:/[\u00b7]/g,alternative:""}],orm:[{letter:/[\u0027]/g,alternative:""}],pt:[{letter:/[\u00e7]/g,alternative:"c"},{letter:/[\u00c7]/g,alternative:"C"},{letter:/[\u00e1\u00e2\u00e3\u00e0]/g,alternative:"a"},{letter:/[\u00c1\u00c2\u00c3\u00c0]/g,alternative:"A"},{letter:/[\u00e9\u00ea]/g,alternative:"e"},{letter:/[\u00c9\u00ca]/g,alternative:"E"},{letter:/[\u00ed]/g,alternative:"i"},{letter:/[\u00cd]/g,alternative:"I"},{letter:/[\u00f3\u00f4\u00f5]/g,alternative:"o"},{letter:/[\u00d3\u00d4\u00d5]/g,alternative:"O"},{letter:/[\u00fa]/g,alternative:"u"},{letter:/[\u00da]/g,alternative:"U"}],roh:[{letter:/[\u00e9\u00e8\u00ea]/g,alternative:"e"},{letter:/[\u00c9\u00c8\u00ca]/g,alternative:"E"},{letter:/[\u00ef]/g,alternative:"i"},{letter:/[\u00cf]/g,alternative:"I"},{letter:/[\u00f6]/g,alternative:"oe"},{letter:/[\u00d6]/g,alternative:"Oe"},{letter:/[\u00fc]/g,alternative:"ue"},{letter:/[\u00dc]/g,alternative:"Ue"},{letter:/[\u00e4]/g,alternative:"ae"},{letter:/[\u00c4]/g,alternative:"Ae"}],rup:[{letter:/[\u00e3]/g,alternative:"a"},{letter:/[\u00c3]/g,alternative:"A"}],ro:[{letter:/[\u0103\u00e2]/g,alternative:"a"},{letter:/[\u0102\u00c2]/g,alternative:"A"},{letter:/[\u00ee]/g,alternative:"i"},{letter:/[\u00ce]/g,alternative:"I"},{letter:/[\u0219\u015f]/g,alternative:"s"},{letter:/[\u0218\u015e]/g,alternative:"S"},{letter:/[\u021b\u0163]/g,alternative:"t"},{letter:/[\u021a\u0162]/g,alternative:"T"}],tlh:[{letter:/[\u2019\u0027]/g,alternative:""}],sk:[{letter:/[\u01c4]/g,alternative:"DZ"},{letter:/[\u01c5]/g,alternative:"Dz"},{letter:/[\u01c6]/g,alternative:"dz"},{letter:/[\u00e1\u00e4]/g,alternative:"a"},{letter:/[\u00c1\u00c4]/g,alternative:"A"},{letter:/[\u010d]/g,alternative:"c"},{letter:/[\u010c]/g,alternative:"C"},{letter:/[\u010f]/g,alternative:"d"},{letter:/[\u010e]/g,alternative:"D"},{letter:/[\u00e9]/g,alternative:"e"},{letter:/[\u00c9]/g,alternative:"E"},{letter:/[\u00ed]/g,alternative:"i"},{letter:/[\u00cd]/g,alternative:"I"},{letter:/[\u013e\u013a]/g,alternative:"l"},{letter:/[\u013d\u0139]/g,alternative:"L"},{letter:/[\u0148]/g,alternative:"n"},{letter:/[\u0147]/g,alternative:"N"},{letter:/[\u00f3\u00f4]/g,alternative:"o"},{letter:/[\u00d3\u00d4]/g,alternative:"O"},{letter:/[\u0155]/g,alternative:"r"},{letter:/[\u0154]/g,alternative:"R"},{letter:/[\u0161]/g,alternative:"s"},{letter:/[\u0160]/g,alternative:"S"},{letter:/[\u0165]/g,alternative:"t"},{letter:/[\u0164]/g,alternative:"T"},{letter:/[\u00fa]/g,alternative:"u"},{letter:/[\u00da]/g,alternative:"U"},{letter:/[\u00fd]/g,alternative:"y"},{letter:/[\u00dd]/g,alternative:"Y"},{letter:/[\u017e]/g,alternative:"z"},{letter:/[\u017d]/g,alternative:"Z"}],sl:[{letter:/[\u010d\u0107]/g,alternative:"c"},{letter:/[\u010c\u0106]/g,alternative:"C"},{letter:/[\u0111]/g,alternative:"d"},{letter:/[\u0110]/g,alternative:"D"},{letter:/[\u0161]/g,alternative:"s"},{letter:/[\u0160]/g,alternative:"S"},{letter:/[\u017e]/g,alternative:"z"},{letter:/[\u017d]/g,alternative:"Z"},{letter:/[\u00e0\u00e1\u0203\u0201]/g,alternative:"a"},{letter:/[\u00c0\u00c1\u0202\u0200]/g,alternative:"A"},{letter:/[\u00e8\u00e9\u0207\u0205]/g,alternative:"e"},{letter:/\u01dd\u0300/g,alternative:"e"},{letter:/\u01dd\u030f/g,alternative:"e"},{letter:/\u1eb9\u0301/g,alternative:"e"},{letter:/\u1eb9\u0311/g,alternative:"e"},{letter:/[\u00c8\u00c9\u0206\u0204]/g,alternative:"E"},{letter:/\u018e\u030f/g,alternative:"E"},{letter:/\u018e\u0300/g,alternative:"E"},{letter:/\u1eb8\u0311/g,alternative:"E"},{letter:/\u1eb8\u0301/g,alternative:"E"},{letter:/[\u00ec\u00ed\u020b\u0209]/g,alternative:"i"},{letter:/[\u00cc\u00cd\u020a\u0208]/g,alternative:"I"},{letter:/[\u00f2\u00f3\u020f\u020d]/g,alternative:"o"},{letter:/\u1ecd\u0311/g,alternative:"o"},{letter:/\u1ecd\u0301/g,alternative:"o"},{letter:/\u1ecc\u0311/g,alternative:"O"},{letter:/\u1ecc\u0301/g,alternative:"O"},{letter:/[\u00d2\u00d3\u020e\u020c]/g,alternative:"O"},{letter:/[\u00f9\u00fa\u0217\u0215]/g,alternative:"u"},{letter:/[\u00d9\u00da\u0216\u0214]/g,alternative:"U"},{letter:/[\u0155\u0213]/g,alternative:"r"},{letter:/[\u0154\u0212]/g,alternative:"R"}],sq:[{letter:/[\u00e7]/g,alternative:"c"},{letter:/[\u00c7]/g,alternative:"C"},{letter:/[\u00eb]/g,alternative:"e"},{letter:/[\u00cb]/g,alternative:"E"}],hu:[{letter:/[\u00e1]/g,alternative:"a"},{letter:/[\u00c1]/g,alternative:"A"},{letter:/[\u00e9]/g,alternative:"e"},{letter:/[\u00c9]/g,alternative:"E"},{letter:/[\u00ed]/g,alternative:"i"},{letter:/[\u00cd]/g,alternative:"I"},{letter:/[\u00f3\u00f6\u0151]/g,alternative:"o"},{letter:/[\u00d3\u00d6\u0150]/g,alternative:"O"},{letter:/[\u00fa\u00fc\u0171]/g,alternative:"u"},{letter:/[\u00da\u00dc\u0170]/g,alternative:"U"}],srd:[{letter:/[\u00e7]/g,alternative:"c"},{letter:/[\u00c7]/g,alternative:"C"},{letter:/[\u00e0\u00e1]/g,alternative:"a"},{letter:/[\u00c0\u00c1]/g,alternative:"A"},{letter:/[\u00e8\u00e9]/g,alternative:"e"},{letter:/[\u00c8\u00c9]/g,alternative:"E"},{letter:/[\u00ed\u00ef]/g,alternative:"i"},{letter:/[\u00cd\u00cf]/g,alternative:"I"},{letter:/[\u00f2\u00f3]/g,alternative:"o"},{letter:/[\u00d2\u00d3]/g,alternative:"O"},{letter:/[\u00fa\u00f9]/g,alternative:"u"},{letter:/[\u00da\u00d9]/g,alternative:"U"}],szl:[{letter:/[\u0107]/g,alternative:"c"},{letter:/[\u0106]/g,alternative:"C"},{letter:/[\u00e3]/g,alternative:"a"},{letter:/[\u00c3]/g,alternative:"A"},{letter:/[\u0142]/g,alternative:"u"},{letter:/[\u0141]/g,alternative:"U"},{letter:/[\u006e]/g,alternative:"n"},{letter:/[\u004e]/g,alternative:"N"},{letter:/[\u014f\u014d\u00f4\u00f5]/g,alternative:"o"},{letter:/[\u014e\u014c\u00d4\u00d5]/g,alternative:"O"},{letter:/[\u015b]/g,alternative:"s"},{letter:/[\u015a]/g,alternative:"S"},{letter:/[\u017a\u017c\u017e]/g,alternative:"z"},{letter:/[\u0179\u017b\u017d]/g,alternative:"Z"},{letter:/[\u016f]/g,alternative:"u"},{letter:/[\u016e]/g,alternative:"U"},{letter:/[\u010d]/g,alternative:"cz"},{letter:/[\u010c]/g,alternative:"Cz"},{letter:/[\u0159]/g,alternative:"rz"},{letter:/[\u0158]/g,alternative:"Rz"},{letter:/[\u0161]/g,alternative:"sz"},{letter:/[\u0160]/g,alternative:"Sz"}],tah:[{letter:/[\u0101\u00e2\u00e0]/g,alternative:"a"},{letter:/[\u0100\u00c2\u00c0]/g,alternative:"A"},{letter:/[\u00ef\u00ee\u00ec]/g,alternative:"i"},{letter:/[\u00cf\u00ce\u00cc]/g,alternative:"I"},{letter:/[\u0113\u00ea\u00e9]/g,alternative:"e"},{letter:/[\u0112\u00ca\u00c9]/g,alternative:"E"},{letter:/[\u016b\u00fb\u00fa]/g,alternative:"u"},{letter:/[\u016a\u00db\u00da]/g,alternative:"U"},{letter:/[\u00e7]/g,alternative:"c"},{letter:/[\u00c7]/g,alternative:"C"},{letter:/[\u00f2\u00f4\u014d]/g,alternative:"o"},{letter:/[\u00d2\u00d4\u014c]/g,alternative:"O"},{letter:/[\u2019\u0027\u2018]/g,alternative:""}],vec:[{letter:/\u0073\u002d\u0063/g,alternative:"sc"},{letter:/\u0053\u002d\u0043/g,alternative:"SC"},{letter:/\u0073\u0027\u0063/g,alternative:"sc"},{letter:/\u0053\u0027\u0043/g,alternative:"SC"},{letter:/\u0073\u2019\u0063/g,alternative:"sc"},{letter:/\u0053\u2019\u0043/g,alternative:"SC"},{letter:/\u0073\u2018\u0063/g,alternative:"sc"},{letter:/\u0053\u2018\u0043/g,alternative:"SC"},{letter:/\u0053\u002d\u0063/g,alternative:"Sc"},{letter:/\u0053\u0027\u0063/g,alternative:"Sc"},{letter:/\u0053\u2019\u0063/g,alternative:"Sc"},{letter:/\u0053\u2018\u0063/g,alternative:"Sc"},{letter:/\u0063\u2019/g,alternative:"c"},{letter:/\u0043\u2019/g,alternative:"C"},{letter:/\u0063\u2018/g,alternative:"c"},{letter:/\u0043\u2018/g,alternative:"C"},{letter:/\u0063\u0027/g,alternative:"c"},{letter:/\u0043\u0027/g,alternative:"C"},{letter:/[\u00e0\u00e1\u00e2]/g,alternative:"a"},{letter:/[\u00c0\u00c1\u00c2]/g,alternative:"A"},{letter:/[\u00e8\u00e9]/g,alternative:"e"},{letter:/[\u00c8\u00c9]/g,alternative:"E"},{letter:/[\u00f2\u00f3]/g,alternative:"o"},{letter:/[\u00d2\u00d3]/g,alternative:"O"},{letter:/[\u00f9\u00fa]/g,alternative:"u"},{letter:/[\u00d9\u00da]/g,alternative:"U"},{letter:/[\u00e7\u010d\u010b]/g,alternative:"c"},{letter:/[\u00c7\u010c\u010a]/g,alternative:"C"},{letter:/[\u0142]/g,alternative:"l"},{letter:/[\u00a3\u0141]/g,alternative:"L"},{letter:/\ud835\udeff/g,alternative:"dh"},{letter:/[\u0111\u03b4]/g,alternative:"dh"},{letter:/[\u0110\u0394]/g,alternative:"Dh"}],wa:[{letter:/[\u00e2\u00e5]/g,alternative:"a"},{letter:/[\u00c2\u00c5]/g,alternative:"A"},{letter:/[\u00e7]/g,alternative:"c"},{letter:/[\u00c7]/g,alternative:"C"},{letter:/\u0065\u030a/g,alternative:"e"},{letter:/\u0045\u030a/g,alternative:"E"},{letter:/[\u00eb\u00ea\u00e8\u00e9]/g,alternative:"e"},{letter:/[\u00c9\u00c8\u00ca\u00cb]/g,alternative:"E"},{letter:/[\u00ee]/g,alternative:"i"},{letter:/[\u00ce]/g,alternative:"I"},{letter:/[\u00f4\u00f6]/g,alternative:"o"},{letter:/[\u00d6\u00d4]/g,alternative:"O"},{letter:/[\u00fb]/g,alternative:"u"},{letter:/[\u00db]/g,alternative:"U"}],yor:[{letter:/[\u00e1\u00e0]/g,alternative:"a"},{letter:/[\u00c1\u00c0]/g,alternative:"A"},{letter:/[\u00ec\u00ed]/g,alternative:"i"},{letter:/[\u00cc\u00cd]/g,alternative:"I"},{letter:/\u1ecd\u0301/g,alternative:"o"},{letter:/\u1ecc\u0301/g,alternative:"O"},{letter:/\u1ecd\u0300/g,alternative:"o"},{letter:/\u1ecc\u0300/g,alternative:"O"},{letter:/[\u00f3\u00f2\u1ecd]/g,alternative:"o"},{letter:/[\u00d3\u00d2\u1ecc]/g,alternative:"O"},{letter:/[\u00fa\u00f9]/g,alternative:"u"},{letter:/[\u00da\u00d9]/g,alternative:"U"},{letter:/\u1eb9\u0301/g,alternative:"e"},{letter:/\u1eb8\u0301/g,alternative:"E"},{letter:/\u1eb9\u0300/g,alternative:"e"},{letter:/\u1eb8\u0300/g,alternative:"E"},{letter:/[\u00e9\u00e8\u1eb9]/g,alternative:"e"},{letter:/[\u00c9\u00c8\u1eb8]/g,alternative:"E"},{letter:/[\u1e63]/g,alternative:"s"},{letter:/[\u1e62]/g,alternative:"S"}]}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a,e){var t=new RegExp(e,"ig"),i=a.match(t);return null===i&&(i=[]),i}},function(a){a.exports={Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"",Afr:"𝔄",afr:"𝔞",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",amp:"&",AMP:"&",andand:"⩕",And:"⩓",and:"∧",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angmsd:"∡",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",Aogon:"Ą",aogon:"ą",Aopf:"𝔸",aopf:"𝕒",apacir:"⩯",ap:"≈",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"𝒜",ascr:"𝒶",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",Bcy:"Б",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",Beta:"Β",beta:"β",beth:"ℶ",between:"≬",Bfr:"𝔅",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bNot:"⫭",bnot:"⌐",Bopf:"𝔹",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxHd:"╤",boxhD:"╥",boxHD:"╦",boxhu:"┴",boxHu:"╧",boxhU:"╨",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsolb:"⧅",bsol:"\\",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",Bumpeq:"≎",bumpeq:"≏",Cacute:"Ć",cacute:"ć",capand:"⩄",capbrcup:"⩉",capcap:"⩋",cap:"∩",Cap:"⋒",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",Ccaron:"Č",ccaron:"č",Ccedil:"Ç",ccedil:"ç",Ccirc:"Ĉ",ccirc:"ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",Cdot:"Ċ",cdot:"ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",CHcy:"Ч",chcy:"ч",check:"✓",checkmark:"✓",Chi:"Χ",chi:"χ",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cir:"○",cirE:"⧃",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",Colone:"⩴",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",Cscr:"𝒞",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cup:"∪",Cup:"⋓",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",Darr:"↡",dArr:"⇓",dash:"‐",Dashv:"⫤",dashv:"⊣",dbkarow:"⤏",dblac:"˝",Dcaron:"Ď",dcaron:"ď",Dcy:"Д",dcy:"д",ddagger:"‡",ddarr:"⇊",DD:"ⅅ",dd:"ⅆ",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",Delta:"Δ",delta:"δ",demptyv:"⦱",dfisht:"⥿",Dfr:"𝔇",dfr:"𝔡",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",DJcy:"Ђ",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",Dopf:"𝔻",dopf:"𝕕",Dot:"¨",dot:"˙",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrowBar:"⤓",downarrow:"↓",DownArrow:"↓",Downarrow:"⇓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVectorBar:"⥖",DownLeftVector:"↽",DownRightTeeVector:"⥟",DownRightVectorBar:"⥗",DownRightVector:"⇁",DownTeeArrow:"↧",DownTee:"⊤",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",Dscr:"𝒟",dscr:"𝒹",DScy:"Ѕ",dscy:"ѕ",dsol:"⧶",Dstrok:"Đ",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",DZcy:"Џ",dzcy:"џ",dzigrarr:"⟿",Eacute:"É",eacute:"é",easter:"⩮",Ecaron:"Ě",ecaron:"ě",Ecirc:"Ê",ecirc:"ê",ecir:"≖",ecolon:"≕",Ecy:"Э",ecy:"э",eDDot:"⩷",Edot:"Ė",edot:"ė",eDot:"≑",ee:"ⅇ",efDot:"≒",Efr:"𝔈",efr:"𝔢",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp13:" ",emsp14:" ",emsp:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"𝔼",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",Epsilon:"Ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",Esim:"⩳",esim:"≂",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",Fcy:"Ф",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"𝔉",ffr:"𝔣",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"𝔽",fopf:"𝕗",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",Gamma:"Γ",gamma:"γ",Gammad:"Ϝ",gammad:"ϝ",gap:"⪆",Gbreve:"Ğ",gbreve:"ğ",Gcedil:"Ģ",Gcirc:"Ĝ",gcirc:"ĝ",Gcy:"Г",gcy:"г",Gdot:"Ġ",gdot:"ġ",ge:"≥",gE:"≧",gEl:"⪌",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",gescc:"⪩",ges:"⩾",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",Gfr:"𝔊",gfr:"𝔤",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gla:"⪥",gl:"≷",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"𝔾",gopf:"𝕘",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",gtcc:"⪧",gtcir:"⩺",gt:">",GT:">",Gt:"≫",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",harrcir:"⥈",harr:"↔",hArr:"⇔",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",Im:"ℑ",imof:"⊷",imped:"Ƶ",Implies:"⇒",incare:"℅",in:"∈",infin:"∞",infintie:"⧝",inodot:"ı",intcal:"⊺",int:"∫",Int:"∬",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"",InvisibleTimes:"",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larrb:"⇤",larrbfs:"⤟",larr:"←",Larr:"↞",lArr:"⇐",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",latail:"⤙",lAtail:"⤛",lat:"⪫",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",LeftArrowBar:"⇤",leftarrow:"←",LeftArrow:"←",Leftarrow:"⇐",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVectorBar:"⥙",LeftDownVector:"⇃",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTeeArrow:"↤",LeftTee:"⊣",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangleBar:"⧏",LeftTriangle:"⊲",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVectorBar:"⥘",LeftUpVector:"↿",LeftVectorBar:"⥒",LeftVector:"↼",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",lescc:"⪨",les:"⩽",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",llarr:"⇇",ll:"≪",Ll:"⋘",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoustache:"⎰",lmoust:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftrightarrow:"⟷",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longmapsto:"⟼",longrightarrow:"⟶",LongRightArrow:"⟶",Longrightarrow:"⟹",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",ltcc:"⪦",ltcir:"⩹",lt:"<",LT:"<",Lt:"≪",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",midast:"*",midcir:"⫰",mid:"∣",middot:"·",minusb:"⊟",minus:"−",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natural:"♮",naturals:"ℕ",natur:"♮",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",ne:"≠",nedot:"≐̸",NegativeMediumSpace:"",NegativeThickSpace:"",NegativeThinSpace:"",NegativeVeryThinSpace:"",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nlE:"≦̸",nle:"≰",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangleBar:"⧏̸",NotLeftTriangle:"⋪",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangleBar:"⧐̸",NotRightTriangle:"⋫",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",nparallel:"∦",npar:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",nprec:"⊀",npreceq:"⪯̸",npre:"⪯̸",nrarrc:"⤳̸",nrarr:"↛",nrArr:"⇏",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",Ocirc:"Ô",ocirc:"ô",ocir:"⊚",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",orarr:"↻",Or:"⩔",or:"∨",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",otimesas:"⨶",Otimes:"⨷",otimes:"⊗",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",para:"¶",parallel:"∥",par:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plus:"+",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",prap:"⪷",Pr:"⪻",pr:"≺",prcue:"≼",precapprox:"⪷",prec:"≺",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",pre:"⪯",prE:"⪳",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportional:"∝",Proportion:"∷",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarr:"→",Rarr:"↠",rArr:"⇒",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",Re:"ℜ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrowBar:"⇥",rightarrow:"→",RightArrow:"→",Rightarrow:"⇒",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVectorBar:"⥕",RightDownVector:"⇂",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTeeArrow:"↦",RightTee:"⊢",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangleBar:"⧐",RightTriangle:"⊳",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVectorBar:"⥔",RightUpVector:"↾",RightVectorBar:"⥓",RightVector:"⇀",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"",rmoustache:"⎱",rmoust:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",scap:"⪸",Scaron:"Š",scaron:"š",Sc:"⪼",sc:"≻",sccue:"≽",sce:"⪰",scE:"⪴",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdotb:"⊡",sdot:"⋅",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",solbar:"⌿",solb:"⧄",sol:"/",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squ:"□",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succapprox:"⪸",succ:"≻",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup1:"¹",sup2:"²",sup3:"³",sup:"⊃",Sup:"⋑",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",therefore:"∴",Therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:" ",ThinSpace:" ",thinsp:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",timesbar:"⨱",timesb:"⊠",times:"×",timesd:"⨰",tint:"∭",toea:"⤨",topbot:"⌶",topcir:"⫱",top:"⊤",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",uarr:"↑",Uarr:"↟",uArr:"⇑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrowBar:"⤒",uparrow:"↑",UpArrow:"↑",Uparrow:"⇑",UpArrowDownArrow:"⇅",updownarrow:"↕",UpDownArrow:"↕",Updownarrow:"⇕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTeeArrow:"↥",UpTee:"⊥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",Vcy:"В",vcy:"в",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",veebar:"⊻",vee:"∨",Vee:"⋁",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xharr:"⟷",xhArr:"⟺",Xi:"Ξ",xi:"ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",yuml:"ÿ",Yuml:"Ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"",Zeta:"Ζ",zeta:"ζ",zfr:"𝔷",Zfr:"ℨ",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",Zscr:"𝒵",zscr:"𝓏",zwj:"",zwnj:""}},function(a){a.exports={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}},function(a,e){function t(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function i(a){return"function"==typeof a}function n(a){return"object"==typeof a&&null!==a}function o(a){return void 0===a}a.exports=t,t.EventEmitter=t,t.prototype._events=void 0,t.prototype._maxListeners=void 0,t.defaultMaxListeners=10,t.prototype.setMaxListeners=function(a){if(!function(a){return"number"==typeof a}(a)||a<0||isNaN(a))throw TypeError("n must be a positive number");return this._maxListeners=a,this},t.prototype.emit=function(a){var e,t,r,s,d,l;if(this._events||(this._events={}),"error"===a&&(!this._events.error||n(this._events.error)&&!this._events.error.length)){if((e=arguments[1])instanceof Error)throw e;var c=new Error('Uncaught, unspecified "error" event. ('+e+")");throw c.context=e,c}if(o(t=this._events[a]))return!1;if(i(t))switch(arguments.length){case 1:t.call(this);break;case 2:t.call(this,arguments[1]);break;case 3:t.call(this,arguments[1],arguments[2]);break;default:s=Array.prototype.slice.call(arguments,1),t.apply(this,s)}else if(n(t))for(s=Array.prototype.slice.call(arguments,1),r=(l=t.slice()).length,d=0;d<r;d++)l[d].apply(this,s);return!0},t.prototype.addListener=function(a,e){var r;if(!i(e))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",a,i(e.listener)?e.listener:e),this._events[a]?n(this._events[a])?this._events[a].push(e):this._events[a]=[this._events[a],e]:this._events[a]=e,n(this._events[a])&&!this._events[a].warned&&(r=o(this._maxListeners)?t.defaultMaxListeners:this._maxListeners)&&r>0&&this._events[a].length>r&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),"function"==typeof console.trace&&console.trace()),this},t.prototype.on=t.prototype.addListener,t.prototype.once=function(a,e){if(!i(e))throw TypeError("listener must be a function");var t=!1;function n(){this.removeListener(a,n),t||(t=!0,e.apply(this,arguments))}return n.listener=e,this.on(a,n),this},t.prototype.removeListener=function(a,e){var t,o,r,s;if(!i(e))throw TypeError("listener must be a function");if(!this._events||!this._events[a])return this;if(r=(t=this._events[a]).length,o=-1,t===e||i(t.listener)&&t.listener===e)delete this._events[a],this._events.removeListener&&this.emit("removeListener",a,e);else if(n(t)){for(s=r;s-- >0;)if(t[s]===e||t[s].listener&&t[s].listener===e){o=s;break}if(o<0)return this;1===t.length?(t.length=0,delete this._events[a]):t.splice(o,1),this._events.removeListener&&this.emit("removeListener",a,e)}return this},t.prototype.removeAllListeners=function(a){var e,t;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[a]&&delete this._events[a],this;if(0===arguments.length){for(e in this._events)"removeListener"!==e&&this.removeAllListeners(e);return this.removeAllListeners("removeListener"),this._events={},this}if(i(t=this._events[a]))this.removeListener(a,t);else if(t)for(;t.length;)this.removeListener(a,t[t.length-1]);return delete this._events[a],this},t.prototype.listeners=function(a){return this._events&&this._events[a]?i(this._events[a])?[this._events[a]]:this._events[a].slice():[]},t.prototype.listenerCount=function(a){if(this._events){var e=this._events[a];if(i(e))return 1;if(e)return e.length}return 0},t.listenerCount=function(a,e){return a.listenerCount(e)}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t(2),n=s(t(366)),o=s(t(365)),r=s(t(510));function s(a){return a&&a.__esModule?a:{default:a}}e.default=(0,i.memoize)(function(a,e,t){return(0,i.isUndefined)(e)&&(e=""),((0,i.isUndefined)(t)||!0===t)&&(a=(0,n.default)(a)),a=(0,r.default)(a),a=(0,i.escapeRegExp)(a),a=(0,o.default)(a,!1,e),new RegExp(a,"ig")})},function(a,e,t){"use strict";function i(a){Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.message=a}Object.defineProperty(e,"__esModule",{value:!0}),function(a){return a&&a.__esModule?a:{default:a}}(t(73)).default.inherits(i,Error),e.default=i},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a){var e;return null===(e=a.match(/<a(?:[^>]+)?>(.*?)<\/a>/gi))&&(e=[]),e}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=function(a){return a&&a.__esModule?a:{default:a}}(t(761));var n=/href=(["'])([^"']+)\1/i;function o(a){return a.split("#")[0]}function r(a){return a.split("?")[0]}function s(a){return a.replace(/\/$/,"")}function d(a){return s(a)+"/"}e.default={removeHash:o,removeQueryArgs:r,removeTrailingSlash:s,addTrailingSlash:d,getFromAnchorTag:function(a){var e=n.exec(a);return null===e?"":e[2]},areEqual:function(a,e){return a=r(o(a)),e=r(o(e)),d(a)===d(e)},getHostname:function(a){return(a=i.default.parse(a)).hostname},getProtocol:function(a){return i.default.parse(a).protocol},isInternalLink:function(a,e){var t=i.default.parse(a,!1,!0);return-1===a.indexOf("//")&&0===a.indexOf("/")||0!==a.indexOf("#")&&(!t.host||t.host===e)},protocolIsHttpScheme:function(a){return!!a&&("http:"===a||"https:"===a)},isRelativeFragmentURL:function(a){return 0===a.indexOf("#")}}},function(a,e,t){"use strict";var i=t(762),n=t(763);function o(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}e.parse=b,e.resolve=function(a,e){return b(a,!1,!0).resolve(e)},e.resolveObject=function(a,e){return a?b(a,!1,!0).resolveObject(e):e},e.format=function(a){n.isString(a)&&(a=b(a));return a instanceof o?a.format():o.prototype.format.call(a)},e.Url=o;var r=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,d=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,l=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),c=["'"].concat(l),u=["%","/","?",";","#"].concat(c),p=["/","?","#"],z=/^[+a-z0-9A-Z_-]{0,63}$/,g=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},f={javascript:!0,"javascript:":!0},y={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},w=t(521);function b(a,e,t){if(a&&n.isObject(a)&&a instanceof o)return a;var i=new o;return i.parse(a,e,t),i}o.prototype.parse=function(a,e,t){if(!n.isString(a))throw new TypeError("Parameter 'url' must be a string, not "+typeof a);var o=a.indexOf("?"),s=-1!==o&&o<a.indexOf("#")?"?":"#",l=a.split(s);l[0]=l[0].replace(/\\/g,"/");var b=a=l.join(s);if(b=b.trim(),!t&&1===a.split("#").length){var h=d.exec(b);if(h)return this.path=b,this.href=b,this.pathname=h[1],h[2]?(this.search=h[2],this.query=e?w.parse(this.search.substr(1)):this.search.substr(1)):e&&(this.search="",this.query={}),this}var v=r.exec(b);if(v){var k=(v=v[0]).toLowerCase();this.protocol=k,b=b.substr(v.length)}if(t||v||b.match(/^\/\/[^@\/]+@[^@\/]+/)){var j="//"===b.substr(0,2);!j||v&&f[v]||(b=b.substr(2),this.slashes=!0)}if(!f[v]&&(j||v&&!y[v])){for(var _,x,q=-1,E=0;E<p.length;E++){-1!==(A=b.indexOf(p[E]))&&(-1===q||A<q)&&(q=A)}-1!==(x=-1===q?b.lastIndexOf("@"):b.lastIndexOf("@",q))&&(_=b.slice(0,x),b=b.slice(x+1),this.auth=decodeURIComponent(_)),q=-1;for(E=0;E<u.length;E++){var A;-1!==(A=b.indexOf(u[E]))&&(-1===q||A<q)&&(q=A)}-1===q&&(q=b.length),this.host=b.slice(0,q),b=b.slice(q),this.parseHost(),this.hostname=this.hostname||"";var T="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!T)for(var O=this.hostname.split(/\./),S=(E=0,O.length);E<S;E++){var P=O[E];if(P&&!P.match(z)){for(var M="",C=0,R=P.length;C<R;C++)P.charCodeAt(C)>127?M+="x":M+=P[C];if(!M.match(z)){var D=O.slice(0,E),F=O.slice(E+1),B=P.match(g);B&&(D.push(B[1]),F.unshift(B[2])),F.length&&(b="/"+F.join(".")+b),this.hostname=D.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),T||(this.hostname=i.toASCII(this.hostname));var $=this.port?":"+this.port:"",L=this.hostname||"";this.host=L+$,this.href+=this.host,T&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==b[0]&&(b="/"+b))}if(!m[k])for(E=0,S=c.length;E<S;E++){var I=c[E];if(-1!==b.indexOf(I)){var W=encodeURIComponent(I);W===I&&(W=escape(I)),b=b.split(I).join(W)}}var U=b.indexOf("#");-1!==U&&(this.hash=b.substr(U),b=b.slice(0,U));var N=b.indexOf("?");if(-1!==N?(this.search=b.substr(N),this.query=b.substr(N+1),e&&(this.query=w.parse(this.query)),b=b.slice(0,N)):e&&(this.search="",this.query={}),b&&(this.pathname=b),y[k]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){$=this.pathname||"";var K=this.search||"";this.path=$+K}return this.href=this.format(),this},o.prototype.format=function(){var a=this.auth||"";a&&(a=(a=encodeURIComponent(a)).replace(/%3A/i,":"),a+="@");var e=this.protocol||"",t=this.pathname||"",i=this.hash||"",o=!1,r="";this.host?o=a+this.host:this.hostname&&(o=a+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(o+=":"+this.port)),this.query&&n.isObject(this.query)&&Object.keys(this.query).length&&(r=w.stringify(this.query));var s=this.search||r&&"?"+r||"";return e&&":"!==e.substr(-1)&&(e+=":"),this.slashes||(!e||y[e])&&!1!==o?(o="//"+(o||""),t&&"/"!==t.charAt(0)&&(t="/"+t)):o||(o=""),i&&"#"!==i.charAt(0)&&(i="#"+i),s&&"?"!==s.charAt(0)&&(s="?"+s),e+o+(t=t.replace(/[?#]/g,function(a){return encodeURIComponent(a)}))+(s=s.replace("#","%23"))+i},o.prototype.resolve=function(a){return this.resolveObject(b(a,!1,!0)).format()},o.prototype.resolveObject=function(a){if(n.isString(a)){var e=new o;e.parse(a,!1,!0),a=e}for(var t=new o,i=Object.keys(this),r=0;r<i.length;r++){var s=i[r];t[s]=this[s]}if(t.hash=a.hash,""===a.href)return t.href=t.format(),t;if(a.slashes&&!a.protocol){for(var d=Object.keys(a),l=0;l<d.length;l++){var c=d[l];"protocol"!==c&&(t[c]=a[c])}return y[t.protocol]&&t.hostname&&!t.pathname&&(t.path=t.pathname="/"),t.href=t.format(),t}if(a.protocol&&a.protocol!==t.protocol){if(!y[a.protocol]){for(var u=Object.keys(a),p=0;p<u.length;p++){var z=u[p];t[z]=a[z]}return t.href=t.format(),t}if(t.protocol=a.protocol,a.host||f[a.protocol])t.pathname=a.pathname;else{for(var g=(a.pathname||"").split("/");g.length&&!(a.host=g.shift()););a.host||(a.host=""),a.hostname||(a.hostname=""),""!==g[0]&&g.unshift(""),g.length<2&&g.unshift(""),t.pathname=g.join("/")}if(t.search=a.search,t.query=a.query,t.host=a.host||"",t.auth=a.auth,t.hostname=a.hostname||a.host,t.port=a.port,t.pathname||t.search){var m=t.pathname||"",w=t.search||"";t.path=m+w}return t.slashes=t.slashes||a.slashes,t.href=t.format(),t}var b=t.pathname&&"/"===t.pathname.charAt(0),h=a.host||a.pathname&&"/"===a.pathname.charAt(0),v=h||b||t.host&&a.pathname,k=v,j=t.pathname&&t.pathname.split("/")||[],_=(g=a.pathname&&a.pathname.split("/")||[],t.protocol&&!y[t.protocol]);if(_&&(t.hostname="",t.port=null,t.host&&(""===j[0]?j[0]=t.host:j.unshift(t.host)),t.host="",a.protocol&&(a.hostname=null,a.port=null,a.host&&(""===g[0]?g[0]=a.host:g.unshift(a.host)),a.host=null),v=v&&(""===g[0]||""===j[0])),h)t.host=a.host||""===a.host?a.host:t.host,t.hostname=a.hostname||""===a.hostname?a.hostname:t.hostname,t.search=a.search,t.query=a.query,j=g;else if(g.length)j||(j=[]),j.pop(),j=j.concat(g),t.search=a.search,t.query=a.query;else if(!n.isNullOrUndefined(a.search)){if(_)t.hostname=t.host=j.shift(),(T=!!(t.host&&t.host.indexOf("@")>0)&&t.host.split("@"))&&(t.auth=T.shift(),t.host=t.hostname=T.shift());return t.search=a.search,t.query=a.query,n.isNull(t.pathname)&&n.isNull(t.search)||(t.path=(t.pathname?t.pathname:"")+(t.search?t.search:"")),t.href=t.format(),t}if(!j.length)return t.pathname=null,t.search?t.path="/"+t.search:t.path=null,t.href=t.format(),t;for(var x=j.slice(-1)[0],q=(t.host||a.host||j.length>1)&&("."===x||".."===x)||""===x,E=0,A=j.length;A>=0;A--)"."===(x=j[A])?j.splice(A,1):".."===x?(j.splice(A,1),E++):E&&(j.splice(A,1),E--);if(!v&&!k)for(;E--;E)j.unshift("..");!v||""===j[0]||j[0]&&"/"===j[0].charAt(0)||j.unshift(""),q&&"/"!==j.join("/").substr(-1)&&j.push("");var T,O=""===j[0]||j[0]&&"/"===j[0].charAt(0);_&&(t.hostname=t.host=O?"":j.length?j.shift():"",(T=!!(t.host&&t.host.indexOf("@")>0)&&t.host.split("@"))&&(t.auth=T.shift(),t.host=t.hostname=T.shift()));return(v=v||t.host&&j.length)&&!O&&j.unshift(""),j.length?t.pathname=j.join("/"):(t.pathname=null,t.path=null),n.isNull(t.pathname)&&n.isNull(t.search)||(t.path=(t.pathname?t.pathname:"")+(t.search?t.search:"")),t.auth=a.auth||t.auth,t.slashes=t.slashes||a.slashes,t.href=t.format(),t},o.prototype.parseHost=function(){var a=this.host,e=s.exec(a);e&&(":"!==(e=e[0])&&(this.port=e.substr(1)),a=a.substr(0,a.length-e.length)),a&&(this.hostname=a)}},function(a,e,t){(function(a,i){var n;/*! https://mths.be/punycode v1.4.1 by @mathias */!function(o){"object"==typeof e&&e&&e.nodeType,"object"==typeof a&&a&&a.nodeType;var r="object"==typeof i&&i;r.global!==r&&r.window!==r&&r.self;var s,d=2147483647,l=36,c=1,u=26,p=38,z=700,g=72,m=128,f="-",y=/^xn--/,w=/[^\x20-\x7E]/,b=/[\x2E\u3002\uFF0E\uFF61]/g,h={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},v=l-c,k=Math.floor,j=String.fromCharCode;function _(a){throw new RangeError(h[a])}function x(a,e){for(var t=a.length,i=[];t--;)i[t]=e(a[t]);return i}function q(a,e){var t=a.split("@"),i="";return t.length>1&&(i=t[0]+"@",a=t[1]),i+x((a=a.replace(b,".")).split("."),e).join(".")}function E(a){for(var e,t,i=[],n=0,o=a.length;n<o;)(e=a.charCodeAt(n++))>=55296&&e<=56319&&n<o?56320==(64512&(t=a.charCodeAt(n++)))?i.push(((1023&e)<<10)+(1023&t)+65536):(i.push(e),n--):i.push(e);return i}function A(a){return x(a,function(a){var e="";return a>65535&&(e+=j((a-=65536)>>>10&1023|55296),a=56320|1023&a),e+=j(a)}).join("")}function T(a){return a-48<10?a-22:a-65<26?a-65:a-97<26?a-97:l}function O(a,e){return a+22+75*(a<26)-((0!=e)<<5)}function S(a,e,t){var i=0;for(a=t?k(a/z):a>>1,a+=k(a/e);a>v*u>>1;i+=l)a=k(a/v);return k(i+(v+1)*a/(a+p))}function P(a){var e,t,i,n,o,r,s,p,z,y,w=[],b=a.length,h=0,v=m,j=g;for((t=a.lastIndexOf(f))<0&&(t=0),i=0;i<t;++i)a.charCodeAt(i)>=128&&_("not-basic"),w.push(a.charCodeAt(i));for(n=t>0?t+1:0;n<b;){for(o=h,r=1,s=l;n>=b&&_("invalid-input"),((p=T(a.charCodeAt(n++)))>=l||p>k((d-h)/r))&&_("overflow"),h+=p*r,!(p<(z=s<=j?c:s>=j+u?u:s-j));s+=l)r>k(d/(y=l-z))&&_("overflow"),r*=y;j=S(h-o,e=w.length+1,0==o),k(h/e)>d-v&&_("overflow"),v+=k(h/e),h%=e,w.splice(h++,0,v)}return A(w)}function M(a){var e,t,i,n,o,r,s,p,z,y,w,b,h,v,x,q=[];for(b=(a=E(a)).length,e=m,t=0,o=g,r=0;r<b;++r)(w=a[r])<128&&q.push(j(w));for(i=n=q.length,n&&q.push(f);i<b;){for(s=d,r=0;r<b;++r)(w=a[r])>=e&&w<s&&(s=w);for(s-e>k((d-t)/(h=i+1))&&_("overflow"),t+=(s-e)*h,e=s,r=0;r<b;++r)if((w=a[r])<e&&++t>d&&_("overflow"),w==e){for(p=t,z=l;!(p<(y=z<=o?c:z>=o+u?u:z-o));z+=l)x=p-y,v=l-y,q.push(j(O(y+x%v,0))),p=k(x/v);q.push(j(O(p,0))),o=S(t,h,i==n),t=0,++i}++t,++e}return q.join("")}s={version:"1.4.1",ucs2:{decode:E,encode:A},decode:P,encode:M,toASCII:function(a){return q(a,function(a){return w.test(a)?"xn--"+M(a):a})},toUnicode:function(a){return q(a,function(a){return y.test(a)?P(a.slice(4).toLowerCase()):a})}},void 0===(n=function(){return s}.call(e,t,e,a))||(a.exports=n)}()}).call(this,t(41)(a),t(15))},function(a,e,t){"use strict";a.exports={isString:function(a){return"string"==typeof a},isObject:function(a){return"object"==typeof a&&null!==a},isNull:function(a){return null===a},isNullOrUndefined:function(a){return null==a}}},function(a,e,t){"use strict";function i(a,e){return Object.prototype.hasOwnProperty.call(a,e)}a.exports=function(a,e,t,o){e=e||"&",t=t||"=";var r={};if("string"!=typeof a||0===a.length)return r;var s=/\+/g;a=a.split(e);var d=1e3;o&&"number"==typeof o.maxKeys&&(d=o.maxKeys);var l=a.length;d>0&&l>d&&(l=d);for(var c=0;c<l;++c){var u,p,z,g,m=a[c].replace(s,"%20"),f=m.indexOf(t);f>=0?(u=m.substr(0,f),p=m.substr(f+1)):(u=m,p=""),z=decodeURIComponent(u),g=decodeURIComponent(p),i(r,z)?n(r[z])?r[z].push(g):r[z]=[r[z],g]:r[z]=g}return r};var n=Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a){var e=a.split(",");return e=e.map(function(a){return(0,n.default)((0,i.default)(a))}).filter(function(a){return a})};var i=o(t(108)),n=o(t(1104));function o(a){return a&&a.__esModule?a:{default:a}}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getIndicesByWordListSorted=e.sortIndices=e.filterIndices=e.getIndicesByWordList=e.getIndicesByWord=void 0;var i=t(2),n=function(a){return a&&a.__esModule?a:{default:a}}(t(108)),o=t(854);function r(a,e){for(var t,i=0,n=a.length,r=[];(t=e.indexOf(a,i))>-1;){var s=(0,o.characterInBoundary)(e[t-1])||0===t,d=(0,o.characterInBoundary)(e[t+n])||e.length===t+n;s&&d&&r.push({index:t,match:a}),i=t+n}return r}var s=function(a,e){var t=[];return(0,i.forEach)(a,function(a){a=(0,n.default)(a),(0,o.isWordInSentence)(a,e)&&(t=t.concat(r(a,e)))}),t},d=function(a){return a.sort(function(a,e){return a.index>e.index})},l=function(a){a=d(a);for(var e=[],t=0;t<a.length;t++)!(0,i.isUndefined)(a[t+1])&&a[t+1].index<a[t].index+a[t].match.length?(e.push(a[t]),t++):e.push(a[t]);return e},c=function(a,e){var t=[];return(0,i.forEach)(a,function(a){if(a=(0,n.default)(a),!(0,o.isWordInSentence)(a,e))return t;t=t.concat(r(a,e))}),t=t.sort(function(a,e){return a.index<e.index?-1:a.index>e.index?1:0})};e.getIndicesByWord=r,e.getIndicesByWordList=s,e.filterIndices=l,e.sortIndices=d,e.getIndicesByWordListSorted=c,e.default={getIndicesByWord:r,getIndicesByWordList:s,filterIndices:l,sortIndices:d,getIndicesByWordListSorted:c}},function(a,e,t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};Object.defineProperty(e,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"===i(Symbol.iterator)?function(a){return void 0===a?"undefined":i(a)}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":void 0===a?"undefined":i(a)},o=t(2),r=function(a){return a&&a.__esModule?a:{default:a}}(t(758));var s=function(a){this.app=a,this.loaded=!1,this.preloadThreshold=3e3,this.plugins={},this.modifications={},this.customTests=[],setTimeout(this._pollLoadingPlugins.bind(this),1500)};s.prototype._registerPlugin=function(a,e){return"string"!=typeof a?(console.error("Failed to register plugin. Expected parameter `pluginName` to be a string."),!1):(0,o.isUndefined)(e)||"object"===(void 0===e?"undefined":n(e))?!1===this._validateUniqueness(a)?(console.error("Failed to register plugin. Plugin with name "+a+" already exists"),!1):(this.plugins[a]=e,!0):(console.error("Failed to register plugin "+a+". Expected parameters `options` to be a object."),!1)},s.prototype._ready=function(a){return"string"!=typeof a?(console.error("Failed to modify status for plugin "+a+". Expected parameter `pluginName` to be a string."),!1):(0,o.isUndefined)(this.plugins[a])?(console.error("Failed to modify status for plugin "+a+". The plugin was not properly registered."),!1):(this.plugins[a].status="ready",!0)},s.prototype._reloaded=function(a){return"string"!=typeof a?(console.error("Failed to reload Content Analysis for "+a+". Expected parameter `pluginName` to be a string."),!1):(0,o.isUndefined)(this.plugins[a])?(console.error("Failed to reload Content Analysis for plugin "+a+". The plugin was not properly registered."),!1):(this.app.refresh(),!0)},s.prototype._registerModification=function(a,e,t,i){if("string"!=typeof a)return console.error("Failed to register modification for plugin "+t+". Expected parameter `modification` to be a string."),!1;if("function"!=typeof e)return console.error("Failed to register modification for plugin "+t+". Expected parameter `callable` to be a function."),!1;if("string"!=typeof t)return console.error("Failed to register modification for plugin "+t+". Expected parameter `pluginName` to be a string."),!1;if(!1===this._validateOrigin(t))return console.error("Failed to register modification for plugin "+t+". The integration has not finished loading yet."),!1;var n={callable:e,origin:t,priority:"number"==typeof i?i:10};return(0,o.isUndefined)(this.modifications[a])&&(this.modifications[a]=[]),this.modifications[a].push(n),!0},s.prototype._registerTest=function(){console.error("This function is deprecated, please use _registerAssessment")},s.prototype._registerAssessment=function(a,e,t,i){if(!(0,o.isString)(e))throw new r.default("Failed to register test for plugin "+i+". Expected parameter `name` to be a string.");if(!(0,o.isObject)(t))throw new r.default("Failed to register assessment for plugin "+i+". Expected parameter `assessment` to be a function.");if(!(0,o.isString)(i))throw new r.default("Failed to register assessment for plugin "+i+". Expected parameter `pluginName` to be a string.");return e=i+"-"+e,a.addAssessment(e,t),!0},s.prototype._pollLoadingPlugins=function(a){a=(0,o.isUndefined)(a)?0:a,!0===this._allReady()?(this.loaded=!0,this.app.pluginsLoaded()):a>=this.preloadThreshold?this._pollTimeExceeded():(a+=50,setTimeout(this._pollLoadingPlugins.bind(this,a),50))},s.prototype._allReady=function(){return(0,o.reduce)(this.plugins,function(a,e){return a&&"ready"===e.status},!0)},s.prototype._pollTimeExceeded=function(){(0,o.forEach)(this.plugins,function(a,e){(0,o.isUndefined)(a.options)||"ready"===a.options.status||(console.error("Error: Plugin "+e+". did not finish loading in time."),delete this.plugins[e])}),this.loaded=!0,this.app.pluginsLoaded()},s.prototype._applyModifications=function(a,e,t){var i=this.modifications[a];return i instanceof Array&&i.length>0&&((i=this._stripIllegalModifications(i)).sort(function(a,e){return a.priority-e.priority}),(0,o.forEach)(i,function(i){var o=(0,i.callable)(e,t);(void 0===o?"undefined":n(o))===(void 0===e?"undefined":n(e))?e=o:console.error("Modification with name "+a+" performed by plugin with name "+i.origin+" was ignored because the data that was returned by it was of a different type than the data we had passed it.")})),e},s.prototype._addPluginTests=function(a){this.customTests.map(function(e){this._addPluginTest(a,e)},this)},s.prototype._addPluginTest=function(a,e){a.addAnalysis({name:e.name,callable:e.analysis}),a.analyzeScorer.addScoring({name:e.name,scoring:e.scoring})},s.prototype._stripIllegalModifications=function(a){return(0,o.forEach)(a,function(e,t){!1===this._validateOrigin(e.origin)&&delete a[t]}.bind(this)),a},s.prototype._validateOrigin=function(a){return"ready"===this.plugins[a].status},s.prototype._validateUniqueness=function(a){return!!(0,o.isUndefined)(this.plugins[a])},e.default=s},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t(2),n=z(t(757)),o=t(154),r=z(t(108)),s=z(t(366)),d=z(t(483)),l=z(t(863)),c=z(t(1221)),u=z(t(864)),p=z(t(749));function z(a){return a&&a.__esModule?a:{default:a}}var g=l.default.snippetEditor,m=l.default.hiddenSpan,f={data:{title:"",metaDesc:"",urlPath:"",titleWidth:0,metaHeight:0},placeholder:{title:"This is an example title - edit by clicking here",metaDesc:"Modify your meta description by editing it right here",urlPath:"example-post/"},defaultValue:{title:"",metaDesc:""},baseURL:"http://example.com/",callbacks:{saveSnippetData:function(){}},addTrailingSlash:!0,metaDescriptionDate:"",previewMode:"desktop"},y=p.default.maxMeta,w=[{preview:"title_container",inputField:"title"},{preview:"url_container",inputField:"urlPath"},{preview:"meta_container",inputField:"metaDesc"}];function b(a){return this.data[a]}function h(a,e){this.element.input[a].value=e,this.data[a]=e}function v(a,e,t,i){var n;a.value=e,u.default.removeClasses(a,["snippet-editor__progress--bad","snippet-editor__progress--ok","snippet-editor__progress--good"]),u.default.addClass(a,"snippet-editor__progress--"+i),this.hasProgressSupport||(n=e/t*100,a.getElementsByClassName("snippet-editor__progress-bar")[0].style.width=n+"%")}var k=function(a){if((0,i.defaultsDeep)(a,f),this.data=a.data,(0,i.isUndefined)(a.analyzerApp)||(this.refObj=a.analyzerApp,this.i18n=this.refObj.i18n,this.data={title:this.refObj.rawData.snippetTitle||"",urlPath:this.refObj.rawData.snippetCite||"",metaDesc:this.refObj.rawData.snippetMeta||""},(0,i.isEmpty)(this.refObj.rawData.metaTitle)||(a.placeholder.title=this.refObj.rawData.metaTitle)),(0,i.isUndefined)(a.i18n)||(this.i18n=a.i18n),!(0,i.isElement)(a.targetElement))throw new Error("The snippet preview requires a valid target element");this.opts=a,this._currentFocus=null,this._currentHover=null,this.unformattedText={},Object.defineProperty(this.unformattedText,"snippet_cite",{get:b.bind(this,"urlPath"),set:h.bind(this,"urlPath")}),Object.defineProperty(this.unformattedText,"snippet_meta",{get:b.bind(this,"metaDesc"),set:h.bind(this,"metaDesc")}),Object.defineProperty(this.unformattedText,"snippet_title",{get:b.bind(this,"title"),set:h.bind(this,"title")})};function j(){var a=this.data.title;return(0,i.isEmpty)(a)&&(a=this.opts.defaultValue.title),this.hasPluggable()&&(a=this.refObj.pluggable._applyModifications("data_page_title",a)),(0,r.default)(a)}k.prototype.renderTemplate=function(){var a=this.opts.targetElement;a.innerHTML=g({raw:{title:this.data.title,snippetCite:this.data.urlPath,meta:this.data.metaDesc},rendered:{title:this.formatTitle(),baseUrl:this.formatUrl(),snippetCite:this.formatCite(),meta:this.formatMeta()},metaDescriptionDate:this.opts.metaDescriptionDate,placeholder:this.opts.placeholder,i18n:{edit:this.i18n.dgettext("js-text-analysis","Edit snippet"),title:this.i18n.dgettext("js-text-analysis","SEO title"),slug:this.i18n.dgettext("js-text-analysis","Slug"),metaDescription:this.i18n.dgettext("js-text-analysis","Meta description"),save:this.i18n.dgettext("js-text-analysis","Close snippet editor"),snippetPreview:this.i18n.dgettext("js-text-analysis","Snippet preview"),titleLabel:this.i18n.dgettext("js-text-analysis","SEO title preview:"),slugLabel:this.i18n.dgettext("js-text-analysis","Slug preview:"),metaDescriptionLabel:this.i18n.dgettext("js-text-analysis","Meta description preview:"),snippetPreviewDescription:this.i18n.dgettext("js-text-analysis","You can click on each element in the preview to jump to the Snippet Editor."),desktopPreviewMode:this.i18n.dgettext("js-text-analysis","Desktop preview"),mobilePreviewMode:this.i18n.dgettext("js-text-analysis","Mobile preview"),isScrollableHint:this.i18n.dgettext("js-text-analysis","Scroll to see the preview content.")}}),this.element={measurers:{metaHeight:null},rendered:{title:document.getElementById("snippet_title"),urlBase:document.getElementById("snippet_citeBase"),urlPath:document.getElementById("snippet_cite"),metaDesc:document.getElementById("snippet_meta")},input:{title:a.getElementsByClassName("js-snippet-editor-title")[0],urlPath:a.getElementsByClassName("js-snippet-editor-slug")[0],metaDesc:a.getElementsByClassName("js-snippet-editor-meta-description")[0]},progress:{title:a.getElementsByClassName("snippet-editor__progress-title")[0],metaDesc:a.getElementsByClassName("snippet-editor__progress-meta-description")[0]},container:document.getElementById("snippet_preview"),formContainer:a.getElementsByClassName("snippet-editor__form")[0],editToggle:a.getElementsByClassName("snippet-editor__edit-button")[0],closeEditor:a.getElementsByClassName("snippet-editor__submit")[0],formFields:a.getElementsByClassName("snippet-editor__form-field")},this.element.label={title:this.element.input.title.parentNode,urlPath:this.element.input.urlPath.parentNode,metaDesc:this.element.input.metaDesc.parentNode},this.element.preview={title:this.element.rendered.title.parentNode,urlPath:this.element.rendered.urlPath.parentNode,metaDesc:this.element.rendered.metaDesc.parentNode},this.hasProgressSupport=function(){var a=document.createElement("progress");return!(0,i.isUndefined)(a.max)}(),this.hasProgressSupport?(this.element.progress.title.max=600,this.element.progress.metaDesc.max=y):(0,i.forEach)(this.element.progress,function(a){u.default.addClass(a,"snippet-editor__progress--fallback")}),this.initPreviewToggler(),this.setInitialView(),this.opened=!1,this.createMeasurementElements(),this.updateProgressBars()},k.prototype.initPreviewToggler=function(){this.snippetPreviewToggle=new c.default(this.opts.previewMode,this.opts.targetElement.getElementsByClassName("snippet-editor__view-icon")),this.snippetPreviewToggle.initialize(),this.snippetPreviewToggle.bindEvents()},k.prototype.refresh=function(){this.output=this.htmlOutput(),this.renderOutput(),this.renderSnippetStyle(),this.measureTitle(),this.measureMetaDescription(),this.updateProgressBars()};var _=function(){var a=this.data.metaDesc;return(0,i.isEmpty)(a)&&(a=this.opts.defaultValue.metaDesc),this.hasPluggable()&&(a=this.refObj.pluggable._applyModifications("data_meta_desc",a)),(0,i.isEmpty)(this.opts.metaDescriptionDate)||(0,i.isEmpty)(a)||(a=this.opts.metaDescriptionDate+" - "+this.data.metaDesc),(0,r.default)(a)};k.prototype.getAnalyzerData=function(){return{title:j.call(this),url:this.data.urlPath,metaDesc:_.call(this)}},k.prototype.callRegisteredEventBinder=function(){this.hasApp()&&this.refObj.callbacks.bindElementEvents(this.refObj)},k.prototype.init=function(){this.hasApp()&&null!==this.refObj.rawData.metaTitle&&null!==this.refObj.rawData.cite&&this.refresh()},k.prototype.htmlOutput=function(){var a={};return a.title=this.formatTitle(),a.cite=this.formatCite(),a.meta=this.formatMeta(),a.url=this.formatUrl(),a},k.prototype.formatTitle=function(){var a=this.data.title;return(0,i.isEmpty)(a)&&(a=this.opts.defaultValue.title),(0,i.isEmpty)(a)&&(a=this.opts.placeholder.title),this.hasPluggable()&&this.refObj.pluggable.loaded&&(a=this.refObj.pluggable._applyModifications("data_page_title",a)),a=(0,o.stripFullTags)(a),(0,i.isEmpty)(a)&&(a=this.i18n.dgettext("js-text-analysis","Please provide an SEO title by editing the snippet below.")),a},k.prototype.formatUrl=function(){return function(){var a=this.opts.baseURL;return this.hasApp()&&!(0,i.isEmpty)(this.refObj.rawData.baseUrl)&&this.opts.baseURL===f.baseURL&&(a=this.refObj.rawData.baseUrl),a}.call(this).replace(/http:\/\//gi,"")},k.prototype.formatCite=function(){var a=this.data.urlPath;return a=(0,s.default)((0,o.stripFullTags)(a)),(0,i.isEmpty)(a)&&(a=this.opts.placeholder.urlPath),this.hasApp()&&!(0,i.isEmpty)(this.refObj.rawData.keyword)&&(a=this.formatKeywordUrl(a)),this.opts.addTrailingSlash&&!function(a){return a.indexOf("/")===a.length-1}(a)&&(a+="/"),a=(a=a.replace(/\s/g,"-")).replace(/\?|#/g,"")},k.prototype.formatMeta=function(){var a=this.data.metaDesc;return(0,i.isEmpty)(a)&&(a=this.getMetaText()),this.hasPluggable()&&this.refObj.pluggable.loaded&&(a=this.refObj.pluggable._applyModifications("data_meta_desc",a)),a=(a=(0,o.stripFullTags)(a)).substring(0,y),this.hasApp()&&!(0,i.isEmpty)(this.refObj.rawData.keyword)&&(a=this.formatKeyword(a)),(0,i.isEmpty)(a)&&(a=this.i18n.dgettext("js-text-analysis","Please provide a meta description by editing the snippet below.")),a},k.prototype.getMetaText=function(){var a=this.opts.defaultValue.metaDesc;return this.hasApp()&&!(0,i.isUndefined)(this.refObj.rawData.excerpt)&&(0,i.isEmpty)(a)&&(a=this.refObj.rawData.excerpt),this.hasApp()&&!(0,i.isUndefined)(this.refObj.rawData.text)&&(0,i.isEmpty)(a)&&(a=this.refObj.rawData.text,this.hasPluggable()&&this.refObj.pluggable.loaded&&(a=this.refObj.pluggable._applyModifications("content",a))),(a=(0,o.stripFullTags)(a)).substring(0,y)},k.prototype.getIndexMatches=function(){for(var a=[],e=0,t=this.refObj.rawData.text.indexOf(this.refObj.rawData.keyword,e);t>-1;)a.push(t),e=t+this.refObj.rawData.keyword.length,t=this.refObj.rawData.text.indexOf(this.refObj.rawData.keyword,e);return a},k.prototype.getPeriodMatches=function(){for(var a,e=[0],t=0;(a=this.refObj.rawData.text.indexOf(".",t))>-1;)e.push(a),t=a+1;return e},k.prototype.formatKeyword=function(a){var e=this.refObj.rawData.keyword,t=(0,n.default)(e,"",!1);a=a.replace(t,function(a){return"<strong>"+a+"</strong>"});var i=(0,d.default)(e,this.refObj.rawData.locale);return i!==e&&(t=(0,n.default)(i,"",!1),a=a.replace(t,function(a){return"<strong>"+a+"</strong>"})),a},k.prototype.formatKeywordUrl=function(a){var e=this.refObj.rawData.keyword,t=(e=(e=(0,d.default)(e,this.refObj.rawData.locale)).replace(/'/,"")).replace(/\s/g,"-"),i=(0,n.default)(t,"\\-");return a.replace(i,function(a){return"<strong>"+a+"</strong>"})},k.prototype.renderOutput=function(){this.element.rendered.title.innerHTML=this.output.title,this.element.rendered.urlPath.innerHTML=this.output.cite,this.element.rendered.urlBase.innerHTML=this.output.url,this.element.rendered.metaDesc.innerHTML=this.output.meta},k.prototype.renderSnippetStyle=function(){var a=this.element.rendered.metaDesc,e=_.call(this);(0,i.isEmpty)(e)?(u.default.addClass(a,"desc-render"),u.default.removeClass(a,"desc-default")):(u.default.addClass(a,"desc-default"),u.default.removeClass(a,"desc-render"))},k.prototype.reRender=function(){this.init()},k.prototype.checkTextLength=function(a){var e=a.currentTarget.textContent;switch(a.currentTarget.id){case"snippet_meta":a.currentTarget.className="desc",e.length>y&&(YoastSEO.app.snippetPreview.unformattedText.snippet_meta=a.currentTarget.textContent,a.currentTarget.textContent=e.substring(0,y));break;case"snippet_title":a.currentTarget.className="title",e.length>600&&(YoastSEO.app.snippetPreview.unformattedText.snippet_title=a.currentTarget.textContent,a.currentTarget.textContent=e.substring(0,600))}},k.prototype.getUnformattedText=function(a){var e=a.currentTarget.id;void 0!==this.unformattedText[e]&&(a.currentTarget.textContent=this.unformattedText[e])},k.prototype.setUnformattedText=function(a){var e=a.currentTarget.id;this.unformattedText[e]=document.getElementById(e).textContent},k.prototype.validateFields=function(){var a=_.call(this),e=j.call(this);a.length>y?u.default.addClass(this.element.input.metaDesc,"snippet-editor__field--invalid"):u.default.removeClass(this.element.input.metaDesc,"snippet-editor__field--invalid"),e.length>600?u.default.addClass(this.element.input.title,"snippet-editor__field--invalid"):u.default.removeClass(this.element.input.title,"snippet-editor__field--invalid")},k.prototype.updateProgressBars=function(){var a,e,t;t=_.call(this),e=function(a){var e;switch(!0){case a>0&&a<=399:case a>600:e="ok";break;case a>=400&&a<=600:e="good";break;default:e="bad"}return e}(this.data.titleWidth),a=function(a){var e;switch(!0){case a>0&&a<120:case a>y:e="ok";break;case a>=120&&a<=y:e="good";break;default:e="bad"}return e}(t.length),v.call(this,this.element.progress.title,this.data.titleWidth,600,e),v.call(this,this.element.progress.metaDesc,t.length,y,a)},k.prototype.setInitialView=function(){var a=document.getElementById("snippet_preview").getBoundingClientRect().width;this.snippetPreviewToggle.setVisibility(a)},k.prototype.handleWindowResizing=(0,i.debounce)(function(){var a=document.getElementById("snippet_preview").getBoundingClientRect().width;this.snippetPreviewToggle.setScrollHintVisibility(a)},25),k.prototype.bindEvents=function(){var a;(0,i.forEach)(["title","slug","meta-description"],function(e){(a=document.getElementsByClassName("js-snippet-editor-"+e)[0]).addEventListener("keydown",this.changedInput.bind(this)),a.addEventListener("keyup",this.changedInput.bind(this)),a.addEventListener("input",this.changedInput.bind(this)),a.addEventListener("focus",this.changedInput.bind(this)),a.addEventListener("blur",this.changedInput.bind(this))}.bind(this)),this.element.editToggle.addEventListener("click",this.toggleEditor.bind(this)),this.element.closeEditor.addEventListener("click",this.closeEditor.bind(this)),window.addEventListener("resize",this.handleWindowResizing.bind(this)),(0,i.forEach)(w,function(a){var e=document.getElementById(a.preview),t=this.element.input[a.inputField];e.addEventListener("click",function(){this.openEditor(),t.focus()}.bind(this)),t.addEventListener("focus",function(){this._currentFocus=a.inputField,this._updateFocusCarets()}.bind(this)),t.addEventListener("blur",function(){this._currentFocus=null,this._updateFocusCarets()}.bind(this)),e.addEventListener("mouseover",function(){this._currentHover=a.inputField,this._updateHoverCarets()}.bind(this)),e.addEventListener("mouseout",function(){this._currentHover=null,this._updateHoverCarets()}.bind(this))}.bind(this))},k.prototype.changedInput=(0,i.debounce)(function(){this.updateDataFromDOM(),this.validateFields(),this.updateProgressBars(),this.refresh(),this.hasApp()&&this.refObj.refresh()},25),k.prototype.updateDataFromDOM=function(){this.data.title=this.element.input.title.value,this.data.urlPath=this.element.input.urlPath.value,this.data.metaDesc=this.element.input.metaDesc.value,this.opts.callbacks.saveSnippetData((0,i.clone)(this.data))},k.prototype.openEditor=function(){this.element.editToggle.setAttribute("aria-expanded","true"),u.default.removeClass(this.element.formContainer,"snippet-editor--hidden"),this.opened=!0},k.prototype.closeEditor=function(){u.default.addClass(this.element.formContainer,"snippet-editor--hidden"),this.element.editToggle.setAttribute("aria-expanded","false"),this.element.editToggle.focus(),this.opened=!1},k.prototype.toggleEditor=function(){this.opened?this.closeEditor():this.openEditor()},k.prototype._updateFocusCarets=function(){var a,e;(0,i.forEach)(this.element.label,function(a){u.default.removeClass(a,"snippet-editor__label--focus")}),(0,i.forEach)(this.element.preview,function(a){u.default.removeClass(a,"snippet-editor__container--focus")}),null!==this._currentFocus&&(a=this.element.label[this._currentFocus],e=this.element.preview[this._currentFocus],u.default.addClass(a,"snippet-editor__label--focus"),u.default.addClass(e,"snippet-editor__container--focus"))},k.prototype._updateHoverCarets=function(){var a;(0,i.forEach)(this.element.label,function(a){u.default.removeClass(a,"snippet-editor__label--hover")}),null!==this._currentHover&&(a=this.element.label[this._currentHover],u.default.addClass(a,"snippet-editor__label--hover"))},k.prototype.setTitle=function(a){this.element.input.title.value=a,this.changedInput()},k.prototype.setUrlPath=function(a){this.element.input.urlPath.value=a,this.changedInput()},k.prototype.setMetaDescription=function(a){this.element.input.metaDesc.value=a,this.changedInput()},k.prototype.createMeasurementElements=function(){var a,e;a=m({width:document.getElementById("meta_container").offsetWidth+"px",whiteSpace:""}),(e=document.createElement("div")).className="yoast-measurement-elements-holder",e.innerHTML=a,document.body.appendChild(e),this.element.measurers.metaHeight=e.childNodes[0]},k.prototype.measureTitle=function(){0===this.element.rendered.title.offsetWidth&&""!==this.element.rendered.title.textContent||(this.data.titleWidth=this.element.rendered.title.offsetWidth)},k.prototype.measureMetaDescription=function(){var a=this.element.measurers.metaHeight;a.innerHTML=this.element.rendered.metaDesc.innerHTML,this.data.metaHeight=a.offsetHeight},k.prototype.getTitleWidth=function(){return this.data.titleWidth},k.prototype.setTitleWidth=function(a){this.data.titleWidth=a},k.prototype.hasApp=function(){return!(0,i.isUndefined)(this.refObj)},k.prototype.hasPluggable=function(){return!(0,i.isUndefined)(this.refObj)&&!(0,i.isUndefined)(this.refObj.pluggable)},k.prototype.disableEnter=function(a){},k.prototype.textFeedback=function(a){},k.prototype.showEditIcon=function(a){},k.prototype.hideEditIcon=function(){},k.prototype.setFocus=function(a){},e.default=k},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.seo=e.readability=void 0;var i=C(t(729)),n=C(t(730)),o=C(t(732)),r=C(t(733)),s=C(t(1033)),d=C(t(734)),l=C(t(735)),c=C(t(738)),u=C(t(739)),p=C(t(1034)),z=C(t(360)),g=C(t(740)),m=C(t(361)),f=C(t(800)),y=C(t(363)),w=C(t(364)),b=C(t(1066)),h=C(t(367)),v=C(t(511)),k=C(t(750)),j=C(t(512)),_=C(t(513)),x=C(t(751)),q=C(t(1067)),E=C(t(481)),A=C(t(482)),T=C(t(514)),O=C(t(515)),S=C(t(516)),P=C(t(1068)),M=C(t(1069));function C(a){return a&&a.__esModule?a:{default:a}}var R={FleschReadingEaseAssessment:i.default,ParagraphTooLongAssessment:n.default,PassiveVoiceAssessment:o.default,SentenceBeginningsAssessment:r.default,SentenceLengthInDescriptionAssessment:s.default,SentenceLengthInTextAssessment:d.default,SubheadingDistributionTooLongAssessment:l.default,TextPresenceAssessment:c.default,TransitionWordsAssessment:u.default,WordComplexityAssessment:p.default},D={FunctionWordsInKeyphraseAssessment:z.default,InternalLinksAssessment:g.default,IntroductionKeywordAssessment:m.default,KeyphraseLengthAssessment:y.default,KeywordDensityAssessment:w.default,KeywordStopWordsAssessment:b.default,KeyphraseDistributionAssessment:f.default,MetaDescriptionKeywordAssessment:h.default,MetaDescriptionLengthAssessment:v.default,OutboundLinksAssessment:k.default,PageTitleWidthAssessment:j.default,SingleH1Assessment:_.default,SubheadingsKeywordAssessment:x.default,TaxonomyTextLengthAssessment:q.default,TextCompetingLinksAssessment:E.default,TextImagesAssessment:A.default,TextLengthAssessment:T.default,TitleKeywordAssessment:O.default,UrlKeywordAssessment:S.default,UrlLengthAssessment:P.default,UrlStopWordsAssessment:M.default};e.readability=R,e.seo=D},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a,e){return(0,i.filter)(a,function(a){return(0,n.default)(e,a.sentenceLength)})};var i=t(2),n=function(a){return a&&a.__esModule?a:{default:a}}(t(731))},function(a,e,t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function a(a,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(a,i.key,i)}}return function(e,t,i){return t&&a(e.prototype,t),i&&a(e,i),e}}(),o=t(2),r=c(t(83)),s=t(38),d=c(t(165)),l=c(t(34));function c(a){return a&&a.__esModule?a:{default:a}}var u=function(a){function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var t=function(a,e){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":i(e))&&"function"!=typeof e?a:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this)),n={parameters:{goodDistributionScore:30,acceptableDistributionScore:50},scores:{good:9,okay:6,bad:1,consideration:0},urlTitle:(0,s.createAnchorOpeningTag)("https://yoa.st/33q"),urlCallToAction:(0,s.createAnchorOpeningTag)("https://yoa.st/33u")};return t.identifier="keyphraseDistribution",t._config=(0,o.merge)(n,a),t}return function(a,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":i(e)));a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(a,e):a.__proto__=e)}(e,r.default),n(e,[{key:"getResult",value:function(a,e,t){this._keyphraseDistribution=e.getResearch("keyphraseDistribution");var i=new l.default,n=this.calculateResult(t);return i.setScore(n.score),i.setText(n.resultText),i.setHasMarks(this._keyphraseDistribution.sentencesToHighlight.length>0),i}},{key:"calculateResult",value:function(a){var e=this._keyphraseDistribution.keyphraseDistributionScore;return 100===e?{score:this._config.scores.consideration,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase distribution%3$s: %2$sInclude your keyphrase or its synonyms in the text so that we can check keyphrase distribution%3$s."),this._config.urlTitle,this._config.urlCallToAction,"</a>")}:e>this._config.parameters.acceptableDistributionScore?{score:this._config.scores.bad,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase distribution%3$s: Very uneven. Large parts of your text do not contain the keyphrase or its synonyms. %2$sDistribute them more evenly%3$s."),this._config.urlTitle,this._config.urlCallToAction,"</a>")}:e>this._config.parameters.goodDistributionScore&&e<=this._config.parameters.acceptableDistributionScore?{score:this._config.scores.okay,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase distribution%3$s: Uneven. Some parts of your text do not contain the keyphrase or its synonyms. %2$sDistribute them more evenly%3$s."),this._config.urlTitle,this._config.urlCallToAction,"</a>")}:{score:this._config.scores.good,resultText:a.sprintf(a.dgettext("js-text-analysis","%1$sKeyphrase distribution%2$s: Good job!"),this._config.urlTitle,"</a>")}}},{key:"getMarks",value:function(){return this._keyphraseDistribution.sentencesToHighlight}},{key:"isApplicable",value:function(a){return a.hasText()&&a.hasKeyword()&&(0,d.default)(a.getText()).length>=15}}]),e}();e.default=u},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=function(a){return a.replace(/ /g," ")},n=function(a){return a.replace(/\s/g," ")},o=function(a){return a=i(a),n(a)};e.unifyNonBreakingSpace=i,e.unifyWhiteSpace=n,e.unifyAllSpaces=o,e.default={unifyNonBreakingSpace:i,unifyWhiteSpace:n,unifyAllSpaces:o}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var a=(0,i.default)();return Object.keys(a)};var i=function(a){return a&&a.__esModule?a:{default:a}}(t(480))},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return{singleWords:i,multipleWords:n,allWords:i.concat(n)}};var i=["aber","abschließend","abschliessend","alldieweil","allerdings","also","anderenteils","andererseits","andernteils","anfaenglich","anfänglich","anfangs","angenommen","anschliessend","anschließend","aufgrund","ausgenommen","ausserdem","außerdem","beispielsweise","bevor","beziehungsweise","bspw","bzw","d.h","da","dabei","dadurch","dafuer","dafür","dagegen","daher","dahingegen","danach","dann","darauf","darum","dass","davor","dazu","dementgegen","dementsprechend","demgegenüber","demgegenueber","demgemaess","demgemäß","demzufolge","denn","dennoch","dergestalt","desto","deshalb","desungeachtet","deswegen","doch","dort","drittens","ebenfalls","ebenso","endlich","ehe","einerseits","einesteils","entsprechend","entweder","erst","erstens","falls","ferner","folgerichtig","folglich","fürderhin","fuerderhin","genauso","hierdurch","hierzu","hingegen","immerhin","indem","indes","indessen","infolge","infolgedessen","insofern","insoweit","inzwischen","jedenfalls","jedoch","kurzum","m.a.w","mitnichten","mitunter","möglicherweise","moeglicherweise","nachdem","nebenher","nichtsdestotrotz","nichtsdestoweniger","ob","obenrein","obgleich","obschon","obwohl","obzwar","ohnehin","richtigerweise","schliesslich","schließlich","seit","seitdem","sobald","sodass","so dass","sofern","sogar","solang","solange","somit","sondern","sooft","soviel","soweit","sowie","sowohl","statt","stattdessen","trotz","trotzdem","überdies","übrigens","ueberdies","uebrigens","ungeachtet","vielmehr","vorausgesetzt","vorher","waehrend","während","währenddessen","waehrenddessen","weder","wegen","weil","weiter","weiterhin","wenn","wenngleich","wennschon","wennzwar","weshalb","widrigenfalls","wiewohl","wobei","wohingegen","z.b","zudem","zuerst","zufolge","zuletzt","zumal","zuvor","zwar","zweitens"],n=["abgesehen von","abgesehen davon","als dass","als wenn","anders ausgedrückt","anders ausgedrueckt","anders formuliert","anders gefasst","anders gefragt","anders gesagt","anders gesprochen","anstatt dass","auch wenn","auf grund","auf jeden fall","aus diesem grund","ausser dass","außer dass","ausser wenn","außer wenn","besser ausgedrückt","besser ausgedrueckt","besser formuliert","besser gesagt","besser gesprochen","bloss dass","bloß dass","darüber hinaus","das heisst","das heißt","des weiteren","dessen ungeachtet","ebenso wie","genauso wie","geschweige denn","im fall","im falle","im folgenden","im gegensatz dazu","im grunde genommen","in diesem sinne","je nachdem","kurz gesagt","mit anderen worten","ohne dass","so dass","umso mehr als","umso weniger als","umso mehr, als","umso weniger, als","unbeschadet dessen","und zwar","ungeachtet dessen","unter dem strich","zum beispiel"]},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return{filteredAuxiliaries:i,notFilteredAuxiliaries:n,all:i.concat(n)}};var i=["am","is","are","was","were","been","get","gets","got","gotten","be","she's","he's","it's","i'm","we're","they're","you're","isn't","weren't","wasn't","that's","aren't"],n=["being","getting","having","what's"]},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return{singleWords:i,multipleWords:n,allWords:i.concat(n)}};var i=["accordingly","additionally","afterward","afterwards","albeit","also","although","altogether","another","basically","because","before","besides","but","certainly","chiefly","comparatively","concurrently","consequently","contrarily","conversely","correspondingly","despite","doubtedly","during","e.g.","earlier","emphatically","equally","especially","eventually","evidently","explicitly","finally","firstly","following","formerly","forthwith","fourthly","further","furthermore","generally","hence","henceforth","however","i.e.","identically","indeed","instead","last","lastly","later","lest","likewise","markedly","meanwhile","moreover","nevertheless","nonetheless","nor","notwithstanding","obviously","occasionally","otherwise","overall","particularly","presently","previously","rather","regardless","secondly","shortly","significantly","similarly","simultaneously","since","so","soon","specifically","still","straightaway","subsequently","surely","surprisingly","than","then","thereafter","therefore","thereupon","thirdly","though","thus","till","undeniably","undoubtedly","unless","unlike","unquestionably","until","when","whenever","whereas","while"],n=["above all","after all","after that","all in all","all of a sudden","all things considered","analogous to","although this may be true","analogous to","another key point","as a matter of fact","as a result","as an illustration","as can be seen","as has been noted","as I have noted","as I have said","as I have shown","as long as","as much as","as shown above","as soon as","as well as","at any rate","at first","at last","at least","at length","at the present time","at the same time","at this instant","at this point","at this time","balanced against","being that","by all means","by and large","by comparison","by the same token","by the time","compared to","be that as it may","coupled with","different from","due to","equally important","even if","even more","even so","even though","first thing to remember","for example","for fear that","for instance","for one thing","for that reason","for the most part","for the purpose of","for the same reason","for this purpose","for this reason","from time to time","given that","given these points","important to realize","in a word","in addition","in another case","in any case","in any event","in brief","in case","in conclusion","in contrast","in detail","in due time","in effect","in either case","in essence","in fact","in general","in light of","in like fashion","in like manner","in order that","in order to","in other words","in particular","in reality","in short","in similar fashion","in spite of","in sum","in summary","in that case","in the event that","in the final analysis","in the first place","in the fourth place","in the hope that","in the light of","in the long run","in the meantime","in the same fashion","in the same way","in the second place","in the third place","in this case","in this situation","in time","in truth","in view of","inasmuch as","most compelling evidence","most important","must be remembered","not to mention","now that","of course","on account of","on balance","on condition that","on one hand","on the condition that","on the contrary","on the negative side","on the other hand","on the positive side","on the whole","on this occasion","once","once in a while","only if","owing to","point often overlooked","prior to","provided that","seeing that","so as to","so far","so long as","so that","sooner or later","such as","summing up","take the case of","that is","that is to say","then again","this time","to be sure","to begin with","to clarify","to conclude","to demonstrate","to emphasize","to enumerate","to explain","to illustrate","to list","to point out","to put it another way","to put it differently","to repeat","to rephrase it","to say nothing of","to sum up","to summarize","to that end","to the end that","to this end","together with","under those circumstances","until now","up against","up to the present time","vis a vis","what's more","while it may be true","while this may be true","with attention to","with the result that","with this in mind","with this intention","with this purpose in mind","without a doubt","without delay","without doubt","without reservation"]},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return{filteredAtBeginning:[].concat(v,j,x,R),filteredAtEnding:[].concat(r,D),filteredAtBeginningAndEnding:[].concat(n,q,A,l,M,u),filteredAnywhere:[].concat(i,s,d,p,F,o,h,k,_,S,C,g,T,O,y,f,b,I,E,w,B,$,L,z,c),cannotDirectlyPrecedePassiveParticiple:[].concat(n,y,o,c,p,m,_,x,q),all:[].concat(n,o,r,l,c,p,z,s,d,u,g,m,f,y,w,b,E,h,v,k,j,_,x,q,A,T,O,S,i,P,M,C,R,F,D,B,L,I,W,U)}};var i=(0,function(a){return a&&a.__esModule?a:{default:a}}(t(807)).default)().singleWords,n=["de","het","een","der","des","den"],o=["eén","één","twee","drie","vier","vijf","zes","zeven","acht","negen","tien","elf","twaalf","dertien","veertien","vijftien","zestien","zeventien","achttien","negentien","twintig","honderd","honderden","duizend","duizenden","miljoen","miljoenen","biljoen","biljoenen"],r=["eerste","tweede","derde","vierde","vijfde","zesde","zevende","achtste","negende","tiende","elfde","twaalfde","dertiende","veertiende","vijftiende","zestiende","zeventiende","achttiende","negentiende","twinstigste"],s=["ik","je","jij","hij","ze","we","wij","jullie","zij","u","ge","gij","men"],d=["mij","jou","hem","haar","hen","hun","uw"],l=["dit","dat","deze","die","zelf"],c=["mijn","mijne","jouw","jouwe","zijne","hare","ons","onze","hunne","uwe","elkaars","elkanders"],u=["alle","sommige","sommigen","weinig","weinige","weinigen","veel","vele","velen","geen","beetje","elke","elk","genoeg","meer","meest","meeste","meesten","paar","zoveel","enkele","enkelen","zoveelste","hoeveelste","laatste","laatsten","iedere","allemaal","zekere","ander","andere","gene","enig","enige","verscheidene","verschillende","voldoende","allerlei","allerhande","enerlei","enerhande","beiderlei","beiderhande","tweeërlei","tweeërhande","drieërlei","drieërhande","velerlei","velerhande","menigerlei","menigerhande","enigerlei","enigerhande","generlei","generhande"],p=["mezelf","mijzelf","jezelf","jouzelf","zichzelf","haarzelf","hemzelf","onszelf","julliezelf","henzelf","hunzelf","uzelf","zich"],z=["mekaar","elkaar","elkander","mekander"],g=["iedereen","ieder","eenieder","alleman","allen","alles","iemand","niemand","iets","niets","menigeen"],m=["ieders","aller","iedereens","eenieders"],f=["welke","welk","wat","wie","wiens","wier"],y=["hoe","waarom","waar","hoezo","hoeveel"],w=["daaraan","daarachter","daaraf","daarbij","daarbinnen","daarboven","daarbuiten","daardoorheen","daarheen","daarin","daarjegens","daarmede","daarnaar","daarnaartoe","daaromtrent","daaronder","daarop","daarover","daaroverheen","daarrond","daartegen","daartussen","daartussenuit","daaruit","daarvan","daarvandaan","eraan","erachter","erachteraan","eraf","erbij","erbinnen","erboven","erbuiten","erdoor","erdoorheen","erheen","erin","erjegens","ermede","ermee","erna","ernaar","ernaartoe","ernaast","erom","eromtrent","eronder","eronderdoor","erop","eropaf","eropuit","erover","eroverheen","errond","ertegen","ertegenaan","ertoe","ertussen","ertussenuit","eruit","ervan","ervandaan","ervandoor","ervoor","hieraan","hierachter","hieraf","hierbij","hierbinnen","hierboven","hierbuiten","hierdoor","hierdoorheen","hierheen","hierin","hierjegens","hierlangs","hiermede","hiermee","hierna","hiernaar","hiernaartoe","hiernaast","hieromheen","hieromtrent","hieronder","hierop","hierover","hieroverheen","hierrond","hiertegen","hiertoe","hiertussen","hiertussenuit","hieruit","hiervan","hiervandaan","hiervoor","vandaan","waaraan","waarachter","waaraf","waarbij","waarboven","waarbuiten","waardoorheen","waarheen","waarin","waarjegens","waarmede","waarna","waarnaar","waarnaartoe","waarnaast","waarop","waarover","waaroverheen","waarrond","waartegen","waartegenin","waartoe","waartussen","waartussenuit","waaruit","waarvan","waarvandaan","waarvoor"],b=["daar","hier","ginder","daarginds","ginds","ver","veraf","ergens","nergens","overal","dichtbij","kortbij"],h=["word","wordt","werd","werden","ben","bent","is","was","waren"],v=["worden","zijn"],k=["heb","hebt","heeft","hadden","had","kun","kan","kunt","kon","konden","mag","mocht","mochten","dien","dient","diende","dienden","moet","moest","moesten","ga","gaat","ging","gingen"],j=["hebben","kunnen","mogen","dienen","moeten","gaan"],_=["blijkt","blijk","bleek","bleken","gebleken","dunkt","dunk","dunkte","dunkten","gedunkt","heet","heette","heetten","geheten","lijkt","lijk","geleken","leek","leken","schijn","schijnt","scheen","schenen","toescheen","toeschijnt","toeschijn","toeschenen"],x=["blijken","dunken","heten","lijken","schijnen","toeschijnen"],q=["à","aan","aangaande","achter","behalve","behoudens","beneden","benevens","benoorden","benoordoosten","benoordwesten","beoosten","betreffende","bewesten","bezijden","bezuiden","bezuidoosten","bezuidwesten","bij","binnen","blijkens","boven","bovenaan","buiten","circa","conform","contra","cum","dankzij","door","gedurende","gezien","in","ingevolge","inzake","jegens","krachtens","langs","luidens","met","middels","na","naar","naast","nabij","namens","nevens","niettegenstaande","nopens","om","omstreeks","omtrent","onder","onderaan","ongeacht","onverminderd","op","over","overeenkomstig","per","plus","post","richting","rond","rondom","spijts","staande","te","tegen","tegenover","ten","ter","tijdens","tot","tussen","uit","van","vanaf","vanuit","versus","via","vis-à-vis","volgens","voor","voorbij","wegens","zijdens","zonder"],E=["af","heen","mee","toe","achterop","onderin","voorin","bovenop","buitenop","achteraan","onderop","binnenin","tevoren"],A=["en","alsmede","of","ofwel","en/of"],T=["zowel","evenmin","zomin","hetzij"],O=["vermits","dewijl","dorodien","naardien","nademaal","overmits","wijl","eer","eerdat","aleer","vooraleer","alvorens","totdat","zolang","sinds","sedert","ingeval","tenware","alhoewel","hoezeer","uitgezonderd","zoverre","zover","naargelang","naarmate","alsof"],S=["zegt","zei","vraagt","vroeg","denkt","dacht","stelt","pleit","pleitte"],P=["absoluut","zeker","ongetwijfeld","sowieso","onmiddelijk","meteen","inclusief","direct","ogenblikkelijk","terstond","natuurlijk","vanzelfsprekend","gewoonlijk","normaliter","doorgaans","werkelijk","daadwerkelijk","inderdaad","waarachtig","oprecht","bijna","meestal","misschien","waarschijnlijk","wellicht","mogelijk","vermoedelijk","allicht","aannemelijk","oorspronkelijk","aanvankelijk","initieel","eigenlijk","feitelijk","wezenlijk","juist","reeds","alvast","bijv.","vaak","dikwijls","veelal","geregeld","menigmaal","regelmatig","veelvuldig","eenvoudigweg","simpelweg","louter","kortweg","stomweg","domweg","zomaar","eventueel","mogelijkerwijs","eens","weleens","nooit","ooit","anders","momenteel","thans","incidenteel","trouwens","elders","volgend","recent","onlangs","recentelijk","laatst","zojuist","relatief","duidelijk","overduidelijk","klaarblijkelijk","nadrukkelijk","ogenschijnlijk","kennelijk","schijnbaar","alweer","continu","herhaaldelijk","nog","steeds","nu"],M=["zeer","erg","redelijk","flink","tikkeltje","bijzonder","ernstig","enigszins","zo","tamelijk","nogal","behoorlijk","zwaar","heel","hele","reuze","buitengewoon","ontzettend","vreselijk"],C=["laat","liet","lieten","kom","komt","kwam","kwamen","maakt","maak","maakte","maakten","doe","doet","deed","deden","vindt","vind","vond","vonden"],R=["laten","komen","maken","doen","vinden"],D=["nieuw","nieuwe","nieuwer","nieuwere","nieuwst","nieuwste","oud","oude","ouder","oudere","oudst","oudste","vorig","vorige","goed","goede","beter","betere","best","beste","groot","grote","groter","grotere","grootst","grootste","makkelijk","makkelijke","makkelijker","makkelijkere","makkelijkst","makkelijste","gemakkelijk","gemakkelijke","gemakkelijker","gemakkelijkere","gemakkelijkst","gemakkelijste","simpel","simpele","simpeler","simpelere","simpelst","simpelste","snel","snelle","sneller","snellere","snelst","snelste","verre","verder","verdere","verst","verste","lang","lange","langer","langere","langst","langste","hard","harde","harder","hardere","hardst","hardste","minder","mindere","minst","minste","eigen","laag","lage","lager","lagere","laagst","laagste","hoog","hoge","hoger","hogere","hoogst","hoogste","klein","kleine","kleiner","kleinere","kleinst","kleinste","kort","korte","korter","kortere","kortst","kortste","herhaaldelijke","directe","ongeveer","slecht","slechte","slechter","slechtere","slechtst","slechtste","zulke","zulk","zo'n","zulks","er","extreem","extreme","bijbehorende","bijbehorend","niet"],F=["oh","wauw","hèhè","hè","hé","au","ai","jaja","welja","jawel","ssst","heremijntijd","hemeltjelief","aha","foei","hmm","nou","nee","tja","nja","okido","ho","halt","komaan","komop","verrek","nietwaar","brr","oef","ach","och","bah","enfin","afijn","haha","hihi","hatsjie","hatsjoe","hm","tring","vroem","boem","hopla"],B=["ml","cl","dl","l","tl","el","mg","g","gr","kg","ca","theel","min","sec","uur"],$=["seconde","secondes","seconden","minuut","minuten","uur","uren","dag","dagen","week","weken","maand","maanden","jaar","jaren","vandaag","morgen","overmorgen","gisteren","eergisteren","'s","morgens","avonds","middags","nachts"],L=["ding","dingen","manier","manieren","item","items","keer","maal","procent","geval","aspect","persoon","personen","deel"],I=["wel","ja","neen","oké","oke","okee","ok","zoiets","€","euro"],W=["mevr","dhr","mr","dr","prof"],U=["jr","sr"]},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return{singleWords:i,multipleWords:n,allWords:i.concat(n)}};var i=["aangezien","al","aldus","allereerst","als","alsook","anderzijds","bijgevolg","bijvoorbeeld","bovendien","concluderend","daardoor","daarentegen","daarmee","daarna","daarnaast","daarom","daartoe","daarvoor","dadelijk","dan","desondanks","dienovereenkomstig","dientegevolge","doch","doordat","dus","echter","eerst","evenals","eveneens","evenzeer","hierom","hoewel","immers","indien","integendeel","intussen","kortom","later","maar","mits","nadat","namelijk","net als","niettemin","noch","ofschoon","omdat","ondanks","ondertussen","ook","opdat","resumerend","samengevat","samenvattend","tegenwoordig","teneinde","tenzij","terwijl","tevens","toch","toen","uiteindelijk","vanwege","vervolgens","voorafgaand","vooralsnog","voordat","voorts","vroeger","waardoor","waarmee","waaronder","wanneer","want","zoals","zodat","zodoende","zodra"],n=["aan de andere kant","aan de ene kant","aangenomen dat","al met al","alles afwegend","alles bij elkaar","alles in aanmerking nemend","als gevolg van","anders gezegd","daar staat tegenover","daarbij komt","daaruit volgt","dat betekent","dat blijkt uit","de oorzaak daarvan is","de oorzaak hiervan is","door middel van","een voorbeeld hiervan","een voorbeeld van","gesteld dat","hetzelfde als","hieruit kunnen we afleiden","hieruit volgt","hoe het ook zij","in de derde plaats","in de eerste plaats","in de tweede plaats","in één woord","in het bijzonder","in het geval dat","in plaats van","in tegenstelling tot","in vergelijking met","maar ook","met als doel","met andere woorden","met behulp van","met de bedoeling","neem nou","net als","om kort te gaan","onder andere","op dezelfde wijze","stel dat","te danken aan","te wijten aan","ten derde","ten eerste","ten gevolge van","ten slotte","ten tweede","ter conclusie","ter illustratie","ter verduidelijking","tot nog toe","tot slot","vandaar dat","vergeleken met","voor het geval dat"]},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return{singleWords:i,multipleWords:n,allWords:i.concat(n)}};var i=["además","adicional","así","asimismo","aún","aunque","ciertamente","como","concluyendo","conque","contrariamente","cuando","decididamente","decisivamente","después","diferentemente","efectivamente","entonces","especialmente","específicamente","eventualmente","evidentemente","finalmente","frecuentemente","generalmente","igualmente","lógicamente","luego","mas","mientras","pero","por","porque","posteriormente","primero","principalmente","pronto","próximamente","pues","raramente","realmente","seguidamente","segundo","semejantemente","si","siguiente","sino","súbitamente","supongamos","también","tampoco","tercero","verbigracia","vice-versa","ya"],n=["a causa de","a continuación","a diferencia de","a fin de cuentas","a la inversa","a la misma vez","a más de","a más de esto","a menos que","a no ser que","a pesar de","a pesar de eso","a pesar de todo","a peser de","a propósito","a saber","a todo esto","ahora bien","al contrario","al fin y al cabo","al final","al inicio","al mismo tiempo","al principio","ante todo","antes bien","antes de","antes de nada","antes que nada","aparte de","as así como","así como","así mismo","así pues","así que","así y todo","aún así","claro está que","claro que","claro que sí","como caso típico","como decíamos","como era de esperar","como es de esperar","como muestra","como resultado","como se ha notado","como sigue","comparado con","con el objeto de","con el propósito de","con que","con relación a","con tal de que","con todo","dado que","de ahí","de cierta manera","de cualquier manera","de cualquier modo","de ello resulta que","de este modo","de golpe","de hecho","de igual manera","de igual modo","de igualmanera","de la manera siguiente","de la misma forma","de la misma manera","de manera semejante","del mismo modo","de modo que","de nuevo","de otra manera","de otro modo","de pronto","de qualquier manera","de repente","de suerte que","de tal modo","de todas formas","de todas maneras","de todos modos","de veras","debido a","debido a que","del mismo modo","dentro de poco","desde entonces","después de","después de todo","ejemplo de esto","el caso es que","en aquel tiempo","en cambio","en cierto modo","en comparación con","en conclusión","en concreto","en conformidad con","en consecuencia","en consiguiente","en contraste con","en cualquier caso","en cuanto","en cuanto a","en definitiva","en efecto","en el caso de que","en este sentido","en fin","en fin de cuentas","en general","en lugar de","en otras palabras","en otro orden","en otros términos","en particular","en primer lugar","en primer término","en primera instancia","en realidad","en relación a","en relación con","en representación de","en resumen","en resumidas cuentas","en segundo lugar","en seguida","en síntesis","en suma","en todo caso","en último término","en verdad","en vez de","en virtud de","entre ellas figura","entre ellos figura","es cierto que","es decir","es evidente que","es incuestionable","es indudable","es más","está claro que","esto indica","excepto si","generalmente por ejemplo","gracias a","hasta aquí","hasta cierto punto","hasta el momento","hay que añadir","igual que","la mayor parte del tiempo","la mayoría del tiempo","lo que es peor","más tarde","mejor dicho","mientras tanto","mirándolo todo","nadie puede ignorar","no faltaría más","no obstante","o sea","otra vez","otro aspecto","par ilustrar","para concluir","para conclusión","para continuar","para empezar","para finalizar","para mencionar una cosa","para que","para resumir","para terminar","pongamos por caso","por añadidura","por cierto","por consiguiente","por ejemplo","por el consiguiente","por el contrario","por el hecho que","por eso","por esta razón","por esto","por fin","por la mayor parte","por lo general","por lo que","por lo tanto","por otro lado","por otra parte","por otro lado","por supuesto","por tanto","por último","por un lado","por una parte","primero que nada","primero que todo","pues bien","puesto que","rara vez","resulta que","sea como sea","seguidamente entre tanto","si bien","siempre que","siempre y cuando","sigue que","sin duda","sin embargo","sin ir más lejos","sobre todo","supuesto que","tal como","tales como","tan pronto como","tanto como","una vez","ya que"]},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return{singleWords:i,multipleWords:n,allWords:i.concat(n)}};var i=["abbastanza","acciocché","acciocchè","adesso","affinché","affinchè","allora","almeno","alquanto","altrettanto","altrimenti","analogamente","anche","ancora","antecedentemente","anzi","anzitutto","apertamente","appena","assai","attualmente","benché","benchè","beninteso","bensì","brevemente","bruscamente","casomai","celermente","certamente","certo","chiaramente","ciononostante","cioé","cioè","comparabilmente","come","complessivamente","completamente","comunque","concisamente","concludendo","conformemente","congiuntamente","conseguentemente","considerando","considerato","considerevolmente","contemporaneamente","continuamente","contrariamente","controbilanciato","così","cosicché","cosicchè","dapprima","dato","davvero","definitivamente","dettagliatamente","differentemente","diversamente","dopo","dopodiché","dopodichè","durante","dunque","eccetto","eccome","effettivamente","egualmente","elencando","enfaticamente","eppure","esaurientemente","esplicitamente","espressamente","estesamente","evidentemente","finalmente","finché","finchè","fino","finora","fintanto","fintanto che","fintantoché","fintantochè","fondamentalmente","frattanto","frequentemente","generalmente","già","gradualmente","illustrando","immantinente","immediatamente","importantissimo","incontestabilmente","incredibilmente","indipendentemente","indiscutibilmente","indubbiamente","infatti","infine","innanzitutto","innegabilmente","inoltre","insomma","intanto","interamente","istantaneamente","invece","logicamente","lentamente","ma","malgrado","marcatamente","memorabile","mentre","motivatamente","naturalmente","né","nè","neanche","neppure","nonché","nonchè","nondimeno","nonostante","notevolmente","occasionalmente","oltretutto","onde","onestamente","ossia","ostinatamente","ovvero","ovviamente","parimenti","particolarmente","peraltro","perché","perchè","perciò","perlomeno","però","pertanto","pesantemente","piuttosto","poi","poiché","poichè","praticamente","precedentemente","preferibilmente","precisamente","prematuramente","presto","prima","primariamente","primo","principalmente","prontamente","proporzionalmente","pure","purché","purchè","quando","quanto","quantomeno","quindi","raramente","realmente","relativamente","riassumendo","riformulando","ripetutamente","saltuariamente","schiettamente","sebbene","secondariamente","secondo","sempre","sennò","seguente","sensibilmente","seppure","seriamente","siccome","sicuramente","significativamente","similmente","simultaneamente","singolarmente","sinteticamente","solitamente","solo","soltanto","soprattutto","sopravvalutato","sorprendentemente","sostanzialmente","sottolineando","sottovalutato","specialmente","specificamente","specificatamente","subitamente","subito","successivamente","successivo","talmente","terzo","totalmente","tranne","tuttavia","ugualmente","ulteriormente","ultimamente","veramente","verosimilmente","visto"],n=["a breve","a causa","a causa di","a condizione che","a conseguenza","a conti fatti","a differenza di","a differenza del","a differenza della","a differenza dei","a differenza degli","a differenza delle","a dire il vero","a dire la verità","a dirla tutta","a dispetto di","a lungo","a lungo termine","a maggior ragione","a meno che non","a parte","a patto che","a prescindere","a prima vista","a proposito","a qualunque costo","a quanto","a quel proposito","a quel tempo","a quell'epoca","a questo fine","a questo proposito","a questo punto","a questo riguardo","a questo scopo","a riguardo","a seguire","a seguito","a sottolineare","a tal fine","a tal proposito","a tempo debito","a tutti gli effetti","a tutti i costi","a una prima occhiata","ad eccezione di","ad esempio","ad essere maliziosi","ad essere sinceri","ad ogni buon conto","ad ogni costo","ad ogni modo","ad una prima occhiata","adesso che","al che","al contrario","al contrario di","al fine di","al fine di fare","al giorno d'oggi","al momento","al momento giusto","al momento opportuno","al più presto","al posto di","al suo posto","al termine","all'epoca","all'infuori di","all'inizio","all'opposto","all'ultimo","alla fine","alla fine della fiera","alla luce","alla luce di","alla lunga","alla moda","alla stessa maniera","allo scopo di","allo stesso modo","allo stesso tempo","anch'esso","anch'io","anche se","ancora più","ancora di più","assumendo che","bisogna chiarire che","bisogna considerare che","causato da","ciò nondimeno","ciò nonostante","col tempo","con il tempo","come a dire","come abbiamo dimostrato","come è stato notato","come è stato detto","come è stato dimostrato","come hanno detto","come ho detto","come ho dimostrato","come ho notato","come potete notare","come potete vedere","come puoi notare","come puoi vedere","come si è dimostrato","come si può vedere","come si può notare","come sopra indicato","comunque sia","con attenzione","con enfasi","con il risultato che","con l'obiettivo di","con ostinazione","con questa intenzione","con questa idea","con queste idee","con questo in testa","con questo scopo","così che","così da","d'altra parte","d'altro canto","d'altro lato","d'altronde","d'ora in avanti","d'ora in poi","da allora","da quando","da quanto","da quel momento","da quella volta","da questo momento in poi","da questo momento","da qui","da ultimo","da un certo punto di vista","da un lato","da una parte","dall'altro lato","dall'epoca","dal che","dato che","dato per assunto che","davanti a","del tutto","dell'epoca","detto questo","di certo","di colpo","di conseguenza","di fatto","di fronte","di fronte a","di lì a poco","di punto in bianco","di quando in quando","di quanto non sia","di quel tempo","di qui a","di rado","di seguito","di si","di sicuro","di solito","di tanto in tanto","di tutt'altra pasta","di quando in quando","differente da","diversamente da","diverso da","dopotutto","dovuto a","e anche","e inoltre","entro breve","fermo restando che","faccia a faccia","fin da","fin dall'inizio","fin quando","finché non","finchè non","fin dal primo momento","fin dall'inizio","fino a","fino a questo momento","fino ad oggi","fino ai giorni nostri","fino adesso","fino a un certo punto","fino adesso","fra quanto","il prima possibile","in aggiunta","in altre parole","in altri termini","in ambo i casi","in breve","in caso di","in conclusione","in conformità","in confronto","in confronto a","in conseguenza","in considerazione","in considerazione di","in definitiva","in dettaglio","importante rendersi conto","in effetti","in entrambi i casi","in fin dei conti","in generale","in genere","in linea di massima","in poche parole","il più possibile","in maggior parte","in maniera analoga","in maniera convincente","in maniera esauriente","in maniera esaustiva","in maniera esplicita","in maniera evidente","in maniera incontestabile","in maniera indiscutibile","in maniera innegabile","in maniera significativa","in maniera simile","in modo allusivo","in modo analogo","in modo che","in modo convincente","in modo da","in modo identico","in modo notevole","in modo significativo","in modo significativo","in modo simile","in ogni caso","in ogni modo","in ogni momento","in parte considerevole","in parti uguali","in particolare","in particolare per","in particolare","in più","in pratica","in precedenza","in prima battuta","in prima istanza","in primo luogo","in rapporto","in qualche modo","in qualsiasi modo","in qualsiasi momento","in qualunque modo","in qualunque momento","in quarta battuta","in quarta istanza","in quarto luogo","in quel caso","in quelle circostanze","in questa occasione","in questa situazione","in questo caso","in questo caso particolare","in questo istante","in questo momento","in rare occasioni","in realtà","in seconda battuta","in seconda istanza","in secondo luogo","in seguito","in sintesi","in sostanza","in tempo","in terza battuta","in terza istanza","in terzo luogo","in totale","in tutto","in ugual maniera","in ugual misura","in ugual modo","in ultima analisi","in ultima istanza","in un altro caso","in una parola","in verità","insieme a","insieme con","invece che","invece di","la prima cosa da considerare","la prima cosa da tenere a mente","lo stesso","mentre potrebbe essere vero","motivo per cui","motivo per il quale","ne consegue che","ne deriva che","nei dettagli","nel caso","nel caso che","nel caso in cui","nel complesso","nel corso del","nel corso di","nel frattempo","nel lungo periodo","nel mentre","nell'eventualità che","nella misura in cui","nella speranza che","nella stessa maniera","nella stessa misura","nello specifico","nello stesso modo","nello stesso momento","nello stesso stile","non appena","non per essere maliziosi","non più da","nonostante ciò","nonostante tutto","ogni qualvolta","ogni tanto","ogni volta","oltre a","oltre a ciò","ora che","passo dopo passo","per causa di","per certo","per chiarezza","per chiarire","per come","per concludere","per conto di","per contro","per cui","per davvero","per di più","per dirla in altro modo","per dirla meglio","per dirla tutta","per es.","per esempio","per essere sinceri","per far vedere","per farla breve","per finire","per l'avvenire","per l'ultima volta","per la maggior parte","per la stessa ragione","per la verità","per lo più","per mettere in luce","per metterla in altro modo","per non dire di","per non parlare di","per ora","per ovvi motivi","per paura di","per paura dei","per paura delle","per paura degli","per prima cosa","per quanto","per questa ragione","per questo motivo","per riassumere","per sottolineare","per timore","per trarre le conclusioni","per ultima","per ultime","per ultimi","per ultimo","per via di","perché si","perchè si","perfino se","piano piano","più di ogni altra cosa","più di tutto","più facilmente","più importante","più tardi","poco a poco","poco dopo","prendiamo il caso di","presto o tardi","prima che","prima di","prima di ogni cosa","prima di tutto","prima o dopo","prima o poi","questo è probabilmente vero","questo potrebbe essere vero","restando inteso che","riassumendo","quanto prima","questa volta","se confrontato con","se e solo se","se no","seduta stante","sempreché","semprechè","sempre che","senz'altro","senza alcun riguardo","senza dubbio","senz'ombra di dubbio","senza ombra di dubbio","senza riguardo per","senza tregua","senza ulteriore ritardo","sia quel che sia","solo se","sotto questa luce","sperando che","sta volta","su tutto","subito dopo","sul serio","tanto per cominciare","tanto quanto","tra breve","tra l'altro","tra poco","tra quanto","tutte le volte","tutti insieme","tutto a un tratto","tutto ad un tratto","tutto d'un tratto","tutto considerato","tutto sommato","un passo alla volta","un tempo","una volta","una volta ogni tanto","unito a","va chiarito che","va considerato che","vada come vada","vale a dire","visto che"]},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return{singleWords:i,multipleWords:n,allWords:i.concat(n)}};var i=["ainsi","alors","aussi","car","cependant","certainement","certes","conséquemment","d'abord","d'ailleurs","d'après","davantage","désormais","deuxièmement","donc","dorénavant","effectivement","également","enfin","ensuite","entre-temps","essentiellement","excepté","finalement","globalement","jusqu'ici","là-dessus","lorsque","mais","malgré","néanmoins","notamment","partant","plutôt","pourtant","précédemment","premièrement","probablement","puis","puisque","quoique","sauf","selon","semblablement","sinon","suivant","toutefois","troisièmement"],n=["à cause de","à ce jour","à ce propos","à ce sujet","à cet égard","à cette fin","à compter de","à condition que","à défaut de","à force de","à juste titre","à la lumière de","à la suite de","à l'aide de","à l'appui de","à l'encontre de","à l'époque actuelle","à l'exception de","à l'exclusion de","à l'heure actuelle","à l'image de","à l'instar de","à l'inverse","à l'inverse de","à l'opposé","à la condition que","à mesure que","à moins que","à nouveau","à partir de","à première vue","à savoir","à seule fin que","à supposer que","à tel point que","à tout prendre","à vrai dire","afin de","afin d'attirer l'attention sur","afin que","ainsi donc","ainsi que","alors que","antérieurement","après cela","après quoi","après que","après réflexion","après tout","attendu que","au cas où","au contraire","au fond","au fur et à mesure","au lieu de","au même temps","au moment où","au moyen de","au point que","au risque de","au surplus","au total","aussi bien que","aussitôt que","autant que","autrement dit","avant que","avant tout","ayant fini","bien que","c'est à dire que","c'est ainsi que","c'est dans ce but que","c'est dire","c'est le cas de","c'est pour cela que","c'est la raison pour laquelle","c'est pourquoi","c'est qu'en effet","c'est-à-dire","ça confirme que","ça montre que","ça prouve que","cela étant","cela dit","cependant que","compte tenu","comme l'illustre","comme le souligne","comme on pouvait s'y attendre","comme quoi","comme si","commençons par examiner","comparativement à","conformément à","contrairement à","considérons par exemple","d'autant plus","d'autant que","d'autre part","d'ici là","d'où","d'un autre côté","d'un côté","d'une façon générale","dans ce cas","dans ces conditions","dans cet esprit","dans l'ensemble","dans l'état actuel des choses","dans l'éventualité où","dans l'hypothèse où","dans la mesure où","dans le but de","dans le cadre de","dans le cas où","dans les circonstances actuelles","dans les grandes lignes","dans un autre ordre d'idée","dans un délai de","de ce fait","de cette façon","de crainte que","de façon à","de façon à ce que","de façon que","de fait","de l'autre côté","de la même manière","de la même façon que","de manière que","de même","de même qu'à","de même que","de nos jours","de peur que","de prime abord","de sorte que","de surcroît","de telle manière que","de telle sorte que","de toute évidence","de toute façon","de toute manière","depuis que","dès lors que","dès maintenant","dès qua","dès que","du fait que","du moins","du moment que","du point de vue de","du reste","d'ici là","d'ores et déjà","en admettant que","en attendant que","en bref","en cas de","en cas que","en ce cas","en ce domaine","en ce moment","en ce qui a trait à","en ce qui concerne","en ce sens","en cela","en comparaison de","en conclusion","en conformité avec","en conséquence","en d'autres termes","en définitive","en dépit de","en dernier lieu","en deuxième lieu","en effet","en face de","en fait","en fin de compte","en général","en guise de conclusion","en matière de","en même temps que","en outre","en particulier","en plus","en premier lieu","en principe","en raison de","en réalité","en règle générale","en résumé","en revanche","en second lieu","en somme","en sorte que","en supposant que","en tant que","en terminant","en théorie","en tout cas","en tout premier lieu","en troisième lieu","en un mot","en vérité","en vue que","encore que","encore une fois","entre autres","et même","et puis","étant donné qu'à","étant donné que","face à","grâce à","il est à noter que","il est indéniable que","il est question de","il est vrai que","il faut dire aussi que","il faut reconnaître que","il faut souligner que","il ne faut pas oublier que","il s'ensuit que","il suffit de prendre pour exemple","jusqu'ici","il y a aussi","jusqu'à ce que","jusqu'à ce jour","jusqu'à maintenant","jusqu'à présent","jusqu'au moment où","jusqu'ici","l'aspect le plus important de","l'exemple le plus significatif","jusqu'au moment où","la preuve c'est que","loin que","mais en réalité","malgré cela","malgré tout","même si","mentionnons que","mis à part le fait que","notons que","nul doute que","ou bien","outre cela","où que","par ailleurs","par conséquent","par contre","par exception","par exemple","par la suite","par l'entremise de","par l'intermédiaire de","par rapport à","par suite","par suite de","par surcroît","parce que","pareillement","partant de ce fait","pas du tout","pendant que","plus précisément","plus tard","pour ainsi dire","pour autant que","pour ce qui est de","pour ces motifs","pour ces raisons","pour cette raison","pour commencer","pour conclure","pour le moment","pour marquer la causalité","pour l'instant","pour peu que","pour prendre un autre exemple","pour que","pour résumé","pour terminer","pour tout dire","pour toutes ces raisons","pourvu que","prenons le cas de","quand bien même que","quand même","quant à","quel que soit","qui plus est","qui que","quitte à","quoi qu'il en soit","quoi que","quoiqu'il en soit","sans délai","sans doute","sans parler de","sans préjuger","sans tarder","sauf si","selon que","si bien que","si ce n'est que","si l'on songe que","sitôt que","somme toute","sous cette réserve","sous prétexte que","sous réserve de","sous réserve que","suivant que","supposé que","sur le plan de","tandis que","tant et si bien que","tant que","tel que","tellement que","touchant à","tout à fait","tout bien pesé","tout compte fait","tout d'abord","tout d'abord examinons","tout d'abord il faut dire que","tout de même","tout en reconnaissant que","une fois de plus","vu que"]},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return{singleWords:i,multipleWords:n,allWords:i.concat(n)}};var i=["ademais","afinal","aliás","analogamente","anteriormente","assim","certamente","conforme","conquanto","contudo","decerto","embora","enfim","enquanto","então","entretanto","eventualmente","igualmente","inegavelmente","inesperadamente","mas","outrossim","pois","porquanto","porque","portanto","posteriormente","precipuamente","primeiramente","primordialmente","principalmente","salvo","semelhantemente","similarmente","sobretudo","surpreendentemente","todavia"],n=["a fim de","a fim de que","a menos que","a princípio","a saber","acima de tudo","ainda assim","ainda mais","ainda que","além disso","antes de mais nada","antes de tudo","antes que","ao mesmo tempo","ao passo que","ao propósito","apesar de","às vezes","assim como","assim que","assim sendo","assim também","bem como","com a finalidade de","com efeito","com o fim de","com o intuito de","com o propósito de","com toda a certeza","como resultado","como se","da mesma forma","de acordo com","de conformidade com","de fato","de maneira idêntica","de tal forma que","de tal sorte que","depois que","desde que","dessa forma","dessa maneira","desse modo","do mesmo modo","é provável","em conclusão","em contrapartida","em contraste com","em outras palavras","em primeiro lugar","em princípio","em resumo","em seguida","em segundo lugar","em síntese","em suma","em terceiro lugar","em virtude de","finalmente agora atualmente","isto é","já que","logo após","logo depois","logo que","mesmo que","não apenas","nesse hiato","nesse ínterim","nesse meio tempo","nesse sentido","no entanto","no momento em que","ou por outra","ou seja","para que","pelo contrário","por analogia","por causa de","por certo","por conseguinte","por conseqüência","por exemplo","por fim","por isso","por mais que","por menos que","por outro lado","posto que","se acaso","se bem que","seja como for","sem dúvida","só para exemplificar","só para ilustrar","só que","sob o mesmo ponto de vista","talvez provavelmente","tanto quanto","uma vez que","visto que"]},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return{singleWords:i,multipleWords:n,allWords:i.concat(n)}};var i=["безусловно","бесспорно","вероятно","вестимо","вдобавок","видимо","вишь","во-вторых","во-первых","вообще-то","впрочем","дабы","едва","ежели","если","затем ","зачем","ибо","итак","кабы","кажется","кажись","коли","кстати","лишь","лучше","наверно","наверное","например","небось","нежели","несомненно","но","однако","особенно","оттого","отчего","поди","пожалуй","позволь","позвольте","покамест","покуда","поскольку","потому","притом","причем","только","хотя","чтоб","чтобы","чуть","якобы"],n=["а вдобавок","а вот","а именно","а не то","а не","а потом","а также","без всякого сомнения","без того чтобы не","без того, чтобы не","благодаря тому","более того","будто бы","будь то","буквально","в итоге","в конце концов","в общей сложности","в общем-то","в общем","в отношении того что","в отношении того, что","в принципе","в противовес тому что","в противовес тому, что","в противоположность тому","в результате","в самом деле","в свою очередь","в связи с тем что","в связи с тем","в силу того что","в силу того","в силу чего","в случа","в сравнении с тем","в сущности говоря","в сущности","в таком случае","в то время как","в то время, как","в том случае","в частности","в-третьих","ввиду того","вернее говоря","вероятнее всего","видите ли","видишь ли","вместе с тем","вместо того","вне всякого сомнения","вне сомнения","во всяком случае","воля ваша","воля твоя","вообще говоря","вопреки тому","вплоть до того","вроде того как","вроде того что","вроде того","вроде того","вследствие того что","вследствие чего","грубо говоря","да еще","да и то","дай бог память","даром что","для того чтобы","для того, чтобы","до тех пор пока","до тех пор, пока","до того как","до того, как","едва лишь","едва только","ежели бы","если угодно","жалко, что","жаль, что","за счет того что","за счет того, что","знамо дело","и вот еще","из-за того что","из-за того, что","иначе говоря","исходя из того","к вашему сведению","к несчастью","к огорчению","к примеру сказать","к примеру","к прискорбию","к радости","к слову сказать","к сожалению","к стыду своему","к стыду","к счастью","к твоему сведению","к тому же","к удивлению","к ужасу","к чести","как будто","как бы там ни было","как бы то ни было","как бы","как вам известно","как вдруг","как видите","как видишь","как видно","как водится","как выяснилось","как выясняется","как говорилось","как говорится","как если бы","как знать","как известно","как на заказ","как назло","как нарочно","как ни говори","как ни говорите","как ни странно","как оказалось","как оказывается","как полагается","как положено","как правило","как принято говорить","как принято","как сказано","как скоро","как следствие","как словно","как только","как хотите","как это ни странно","ко всему прочему","коль скоро","коль уж","коротко говоря","короче говоря","кроме всего прочего","кстати говоря","кстати сказать","лишь бы","лишь только","мало сказать","мало того","между нами говоря","между прочим","между тем как","может статься","можно подумать","мягко выражаясь","мягко говоря","на беду","на ваш взгляд","на мой взгляд","на несчастье","на основании того что","на основании того, что","на первый взгляд","на самом деле","на случай","на твой взгляд","на худой конец","надо полагать","наряду с тем что","наряду с тем","насчет того что","насчет того, что","не в пример тому как","не в пример тому, как","не то чтобы","невзирая на то","независимо от того","несмотря на то","ничего не скажешь","но вообще-то","но кроме того","однако же","откровенно сказать","относительно того что","относительно того, что","перед тем","по вашему мнению","по видимости","по всей вероятности","по всей видимости","по данным","по замыслу","по идее","по крайней мере","по мере того как","по мере того, как","по мнению","по моему мнению","по обыкновению","по обычаю","по определению","по поводу того","по правде говоря","по правде сказать","по правде","по преданию","по причине того","по прогнозам","по сведениям","по своему обыкновению","по слухам","по совести говоря","по совести сказать","по совести","по сообщению","по сообщениям","по справедливости говоря","по справедливости","по сравнению","по статистике","по сути говоря","по сути дела","по сути","по существу говоря","по существу","по счастью","по твоему мнению","по чести говоря","по чести признаться","по чести сказать","по-вашему","по-видимому","по-ихнему","по-моему","по-нашему","по-твоему","под видом того что","под видом того, что","под предлогом","подобно тому","подумать только","помимо всего прочего","помимо всего","помимо того","помимо того","помимо этого","понятное дело","попросту говоря","попросту сказать","после того","потому как","потому что","правду говоря","правду сказать","правильнее говоря","прежде всего","прежде нежели","прежде чем","при всем том","при условии что","при условии, что","против обыкновения","проще говоря","проще сказать","прямо-таки как","пускай бы","равно как","ради того чтобы","разве что","разумеется","с вашего позволения","с вашего разрешения","с другой стороны","с моей точки зрения","с одной стороны","с позволения сказать","с твоего позволения","с твоего разрешения","с тем чтобы","с тех пор как","с той целью чтобы","с точки зрения","само собой разумеется","сверх того что","сверх того","сказать по правде","сказать по совести","сказать по чести","скорее всего","смотря по тому","со своей стороны","собственно говоря","совсем как","стало быть","стоит отметить","строго говоря","судя по всему","судя по тому","так или иначе","так как","так что","так чтобы","тем более что","тем не менее","тем паче что","то бишь","то есть","тогда как","только бы","только лишь","только чуть","точнее говоря","точнее сказать","точно так же","что и говорить","что ни говори","что ни говорите","чуть лишь","чуть только","шутка ли сказать","шутка ли","шутка сказать","это значит, что"]},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return{singleWords:i,multipleWords:n,allWords:i.concat(n)}};var i=["aby","abym","abyśmy","abyś","abyście","acz","aczkolwiek","albowiem","ale","aliści","bo","bowiem","bynajmniej","choć","chociaż","chociażby","czyli","dlatego","dodatkowo","dopóki","dotychczas","faktycznie","gdy","gdyż","jakkolwiek","iż","jednak","jednakże","jeśli","kiedy","lecz","mianowicie","mimo","np","najpierw","następnie","natomiast","ni","niemniej","niż","notabene","oczywiście","ogółem","ostatecznie","owszem","podobnie","podsumowując","pokrótce","pomimo","ponadto","ponieważ","poprzednio","potem","później","przecież","przeto","przynajmniej","raczej","również","rzeczywiście","skoro","także","też","toteż","tudzież","tymczasem","wedle","według","więc","właściwie","wobec","wpierw","wprawdzie","wreszcie","wskutek","wstępnie","wszakże","wszelako","zamiast","zanim","zarówno","zaś","zatem","zresztą","zwłaszcza","żeby","żebym","żebyś","żebyście","żebyśmy"],n=["a konkretnie","a propos","aby wrocić do rzeczy","analogicznie do","bacząc na to że","bądź co bądź","bez wątpienia","bez względu","biorąc pod uwagę","choćby","chodzi o to","chyba że","co do","co gorsza","co prawda","co się tyczy","co ważniejsze","co więcej","dzięki czemu","dzięki któremu","dzięki której","dzięki którym","dzięki temu","faktem jest że","inaczej mówiąc","innymi słowy","jak dotąd","jak już mówiłam","jak już mówiłem","jak już wspomniano","jak widać","jako przykład","jednym słowem","jeśli chodzi o","jeżeli chodzi o","konkretnie to","krótko mówiąc","łącznie z","mając to na uwadzę","mam na myśli","mamy na myśli","mówiąc w skrócie","na celu","na dłuższą metę","na dodatek","na koniec","na końcu","na przykład","na skutek","na wstęp","na wypadek gdyby","na zakończenie","nade wszystko","należy pamiętać","nawiasem mówiąc","nie mówiąc już","nie mówiąc o tym","nie pomijając","nie schodząc z tematu","nie wspominając już","nie wspominając o","nie wspominając to","nie wspominając że","nie zważając na","o ile","o tyle","od czasu do czasu","od momentu","odnośnie do","ogólnie mówiąc","ogólnie rzecz biorąc","oprócz tego","oznacza to że","po czwarte","po drugie","po piąte","po pierwsze","po to","po trzecie","pod warunkiem","podczas gdy","podczas kiedy","podobnym sposobem","ponad wszystko","poza tym","prawdę mówiąc","prawdę powiedziawszy","prędzej czy później","przechodząc do","przede wszystkim","przez co","przez tą","przez tego","przez to","przy tym","przypuściwszy że","raz na jakiś czas","rzecz jasna","ściśle biorąc","ściśle mówiąc","skutkiem tego","tak czy inaczej","tak czy owak","tak naprawdę","takich jak","takie jak","to znaczy","tym samym","w celu","w ciągu","w dodatku","w efekcie","w innych słowach","w istocie","w każdym razie","w końcu","w konsekwencji","w kwestii","w międzyczasie","w nadziei że","w obawie że","w odróżnieniu","w podobny sposób","w podsumowaniu","w przeciwieństwie do","w przeciwnym razie","w przypadku","w rezultacie","w rozumieniu że","w rzeczy samej","w rzeczywistości","w skrócie","w szczególności","w takim razie","w ten sposób","w tych okolicznościach","w tym przypadku","w wyniku","w wyniku tego","w związku z tym","wbrew pozorom","włącznie z","wracając do rzeczy","wracając do tematu","wręcz przeciwnie","z drugiej strony","z drugiej zaś strony","z jednej strony","z mocy że","z obawy że","z pewnością","z powodu","z przyczyny","z tą intencją","z tego powodu","z uwagi że","zacznijmy od","zakładając że","ze względu na","ze względu że","zważywszy na to","zważywszy że"]},function(a,e,t){"use strict";var i=["alltså","ändå","annars","ännu","även","avslutningsvis","bl.a.","d.v.s.","då","därav","därefter","däremot","därför","därmed","därpå","dessutom","dock","efteråt","eftersom","emellertid","enligt","exempelvis","fastän","följaktligen","förrän","först","förutom","huvudsakligen","ifall","inledningsvis","innan","jämförelsevis","likadant","likaså","liksom","medan","men","nämligen","när","oavsett","också","omvänt","säkerligen","således","sålunda","sammanfattningsvis","sammantaget","samt","samtidigt","särskilt","såsom","sist","slutligen","speciellt","t.ex.","tidigare","tillika","tills","trots","tvärtemot","tvärtom","tydligen","varpå","vidare","uppenbarligen","ytterligare"],n=["å andra sidan","å ena sidan","allt som allt","anledningen är","anledningen blir","annorlunda än","av den orsaken","av detta skäl","beroende på","bland annat","därtill kommer","det beror på att","det vill säga","det visar","detta beror på","detta går ut på att","detta innebär att","detta leder till","detta medför att","effekten blir","efter ett tag","ej heller","en effekt av detta","en förklaring till detta","ett exempel på detta","ett liknande exempel","exakt som","följden blir","för att avrunda","för all del","för att förklara","för att inte säga","för att inte tala om","för att klargöra","för att poängtera","för att säga det på ett annat sätt","för att sammanfatta","för att understryka","för att visa","för det andra","för det första","för det tredje","förr eller senare","för närvarande","framför allt","fram till nu","har att göra med","härav följer","i båda fallen","i det fallet","i det hela","i det här fallet","i det långa loppet","i enlighet med","i förhållande till","i fråga om","i jämförelse med","i kontrast till","i likhet med","i ljuset av","i motsats till","i och med","i relation till","i samband med","i sin tur","i själva verket","i slutändan","i stället för","i syfte att","i synnerhet","i verkligheten","icke desto mindre","ihop med","inte desto mindre","jämfört med","kan sammanfattas","kort sagt","konsekvensen av detta","lika viktigt är","målet är att","med andra ord","med anledning av","med det i åtanke","med det i tankarna","med ett ord","med hänsyn till","med härledning av","mot bakgrund av","mot den bakgrunden","när allt kommer omkring","när det gäller","närmare bestämt","nu när","orsaken är","på det sättet","på grund av","på liknande sätt","på så sätt","på samma sätt","resultatet blir","så länge som","så småningom","så snart som","sist men inte minst","slutsatsen blir","som antytt","som en följd av","som en konsekvens av","som ett exempel på","som ett resultat","som jag tidigare antytt","som konklusion kan","som man kan se","som nämnt","som tidigare nämnts","summa summarum","tack vare","till att börja med","till dess","till exempel","till en början","till följd av","till sist","till skillnad från","till slut","till största delen","tillsammans med","tvärt om","under de omständigheterna","under omständigheterna","under tiden","vad mera är","viktigt att inse","vilket innebär"];a.exports=function(){return{singleWords:i,multipleWords:n,allWords:i.concat(n)}}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(a){return.7+a/3}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return Object.keys((0,i.default)())};var i=function(a){return a&&a.__esModule?a:{default:a}}(t(817))},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return{en:i.getForms,de:n.getForms}};var i=t(1042),n=t(1057)},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getSuffixesComparative=o,e.getSuffixesSuperlative=r,e.addRegularSuffixes=function(a,e){var t=a.regularSuffixes.slice();return(0,i.uniq)(t.map(function(a){return e.concat(a)}))},e.addComparativeSuffixes=function(a,e){return o(a,e).map(function(a){return e.concat(a)})},e.addSuperlativeSuffixes=function(a,e){return r(a,e).map(function(a){return e.concat(a)})},e.addAllAdjectiveSuffixes=function(a,e){var t=a.regularSuffixes.slice(),s=o(a,e),d=r(a,e),l=[].concat(n(t),n(s),n(d));return(0,i.uniq)(l.map(function(a){return e.concat(a)}))};var i=t(2);function n(a){if(Array.isArray(a)){for(var e=0,t=Array(a.length);e<a.length;e++)t[e]=a[e];return t}return Array.from(a)}function o(a,e){return a.takesComparativeREnding.slice().some(function(a){return e.endsWith(a)})?a.comparativeSuffixesR:a.comparativeSuffixesEr}function r(a,e){return a.takesSuperlativeEstEnding.slice().some(function(a){return e.endsWith(a)})?a.superlativeSuffixesEst:a.superlativeSuffixesSt}},function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return["geht","gämsbart","gemsbart","geäst","gebarungsbericht","geähnelt","geartet","gebäudetrakt","gebet","gebiet","gebietsrepräsentant","gebildbrot","gebirgsart","gebirgsgrat","gebirgskurort","gebirgsluft","gebirgsschlucht","geblüt","geblütsrecht","gebohntkraut","gebot","gebrauchsgut","gebrauchstext","gebrauchsverlust","gebrauchtgerät","gebrauchtwagengeschäft","gebrauchtwagenmarkt","geburt","geburtsakt","geburtsgeschwulst","geburtsgewicht","geburtsort","geburtsrecht","geburtsstadt","geburtstagsfest","geckenart","gedächtniskonzert","gedächtniskunst","gedächtnisverlust","gedankenarmut","gedankenexperiment","gedankenflucht","gedankengut","gedankenschritt","gedankenwelt","gedenkkonzert","gedicht","geest","gefahrengebiet","gefahrenmoment","gefahrenpunkt","gefahrgut","gefahrguttransport","gefährt","gefälligkeitsakzept","gefallsucht","gefangenenanstalt","gefangenentransport","gefängnisarzt","gefängniskluft","gefäßnaht","gefecht","gefechtsabschnitt","gefechtsbereit","gefechtsgebiet","gefechtsgewicht","gefechtshut","gefechtsmast","gefechtsmast","geflecht","geflügelaufzucht","geflügelleberwurst","geflügelmarkt","geflügelmast","geflügelpest","geflügelsalat","geflügelwurst","geflügelzucht","gefolgsleute","gefrett","gefriergerät","gefriergut","gefrierobst","gefrierpunkt","gefrierschnitt","gefühlsarmut","gefühlswelt","gegenangebot","gegenansicht","gegenargument","gegengeschäft","gegengewalt","gegengewicht","gegenkandidat","gegenkompliment","gegenkonzept","gegenlicht","gegenmacht","gegenpapst","gegenpart","gegensatzwort","gegenstandpunkt","gegenstandsgebiet","gegenwart","gegenwartskunst","gegenwelt","gegenwort","gehaart","gehandicapt","gehandikapt","geheimagent","geheimbericht","geheimdokument","geheimfavorit","geheimkontakt","geheimkult","geheimnisverrat","geheimpolizist","geheimrat","geheimrezept","geheimtext","gehirnakrobat","gehirngeschwulst","gehirnhaut","gehirnsandgeschwulst","gehirntot","gehirntrust","gehöft","gehörlosensport","geigenkonzert","geißbart","geißblatt","geißhirte","geißhirt","geist","geisterfahrt","geisterstadt","geisterwelt","geistesarmut","geistesart","geistesfürst","geistesgegenwart","geistesgestört","geistesprodukt","geistestat","geistesverwandt","geisteswelt","geklüft","geländefahrt","geländeritt","geländesport","gelangweilt","gelaut","geläut","gelblicht","gelbrost","gelbsucht","gelbwurst","gelcoat","geldausgabeautomat","geldautomat","geldgeschäft","geldheirat","geldinstitut","geldmarkt","geldsurrogat","geldtransport","geldverlust","gelehrtenstreit","gelehrtenwelt","geleit","geleitboot","geleitwort","gelenkgicht","gelenkwassersucht","geleucht","geltungssucht","gelüst","gemächt","gemeindeamt","gemeindebürgerrecht","gemeindegut","gemeindekirchenrat","gemeindepräsident","gemeinderat","gemeingeist","gemeingut","gemeinschaftsgeist","gemeinschaftsprojekt","gemeinschaftsunterkunft","gemengesaat","gemüseart","gemüsebeet","gemüsegeschäft","gemüsemarkt","gemüsesaft","gemüsesalat","gemüsezucht","gemüt","gemütsarmut","gemütsart","gemütsathlet","gemütskalt","genausogut","genausooft","genausoweit","gendefekt","generalagent","generalarzt","generalat","generalbassinstrument","generalbaßinstrument","generalbundesanwalt","generalgouvernement","generalintendant","generalist","generalkonsulat","generalleutnant","generaloberst","generalresident","generalsekretariat","generalstaaten","generalstaatsanwalt","generalsuperintendent","generalüberholt","generalvikariat","generalvollmacht","generationenkonflikt","generativist","genist","genitivattribut","genitivobjekt","genmanipuliert","gennesaret","genotzüchtigt","gent","genuasamt","genussgift","genußgift","genusssucht","genuss-sucht","genußsucht","genverändert","geobiont","geodät","geografieunterricht","geographieunterricht","geokrat","geophyt","gepäckfracht","geradeausfahrt","geradesogut","gefälligst","gerant","gerät","gerätewart","geräuschlaut","gerbextrakt","gericht","gerichtsarzt","gerichtsort","gerichtspräsident","germanisiert","germanist","germanistikstudent","gerodelt","geröllschicht","geröllschutt","geront","gerontokrat","gerstenbrot","gerstensaft","gerstenschrot","gerücht","gerüst","gesamtansicht","gesamtaspekt","gesamtdurchschnitt","gesamtgewicht","gesamtgut","gesamt","gesamtklassement","gesamtunterricht","gesandtschaftsrat","gesangskunst","gesangspart","gesangssolist","gesangsunterricht","gesangunterricht","geschäft","geschäftsaufsicht","geschäftsbericht","geschäftsgeist","geschäftswelt","geschenkpaket","geschichtsunterricht","geschicklichkeitstest","geschicklichkeitstest","geschlecht","geschlechtsakt","geschlechtslust","geschlechtsprodukt","geschlechtswort","geschmackstest","geschwindigkeitslimit","geschworenengericht","geschwulst","gesellschaftsfahrt","gesellschaftsschicht","gesetzblatt","gesetzespaket","gesetzestext","gesicht","gesichtshaut","gesichtspunkt","gesichtsschnitt","gesichtsverlust","gespenst","gespensterfurcht","gespinst","gespött","gesprächstherapeut","gestalt","gestaltungselement","gesteinsart","gesteinschutt","gesteinsschicht","gestüt","gestüthengst","verantwortungsbewusst","verantwortungsbewußt","getast","getränkeabholmarkt","getränkeautomat","getränkemarkt","getreideart","getreideaussaat","getreideexport","getreideimport","getreideprodukt","getreideschnitt","getreidevorrat","gewährfrist","gewalt","gewaltakt","gewaltbereit","gewalttat","gesprächsbereit","gewaltverbot","gewaltverzicht","gewässerbett","gewässerwart","gewebeschicht","gewebsrest","gewicht","gewichtsprozent","gewichtsverlust","gewerbeamt","gewerbearzt","gewerbeaufsicht","gewerbeaufsichtsamt","gewerbegebiet","gewerberecht","gewerbsunzucht","gewerkschaft","gewerkschaftsjournalist","gewindestift","gewinnsucht","gewinst","gewissensangst","gewissenskonflikt","gewitterfront","gewitterluft","gewohnheitsrecht","gewürzextrakt","gewürzkraut","gezücht","erbbaurecht","erbfolgerecht","erbfolgestreit","erbgut","erbhofrecht","erblast","erbpacht","erbrecht","erbschaftsstreit","erbsenkraut","erbbedingt","erbberechtigt","erblasst","erblaßt","erbswurst","erbverzicht","erbwort","erbzinsgut","erdbebengebiet","erdbeerjogurt","erdbeerjoghurt","erdbeeryoghurt","erdbeerkompott","erdbeerrot","erdbeersaft","erdbeersekt","erdengut","erdenlust","erdfrucht","erdgeist","erdkundeunterricht","erdlicht","erdmittelpunkt","erdnussfett","erdölprodukt","erdölproduzent","erdsatellit","erdschicht","erdsicht","erdtrabant","erdverhaftet","eremit","erfahrungsbericht","erfahrungshorizont","erfahrungswelt","erfindergeist","erfolgsaussicht","erfolgsorientiert","erfolgsrezept","erfolgsverwöhnt","erfüllungsort","erfurt","ergänzungsheft","ergänzungssport","ergänzungstest","ergostat","ergotherapeut","erholungsgebiet","erholungsort","erkundungsfahrt","erlaucht","erläuterungstext","erlebnisbericht","erlebnisorientiert","erlebniswelt","ernährungsamt","ernst","ernstgemeint","ernteaussicht","erntedankfest","erntefest","erntemonat","ernteresultat","eroberungsabsicht","eroberungsgeist","eroberungslust","eroberungssucht","eröffnungskonzert","ersatzgeschwächt","ersatzgut","ersatzkandidat","ersatzobjekt","ersatzpräparat","ersatzreservist","ersatztorwart","erscheinungsfest","erscheinungsort","erscheinungswelt","erschließungsgebiet","erst","erstbundesligist","erstfahrt","erstgebot","erstgeburt","erstgeburtsrecht","erstklassbillett","erstklaßbillett","erstkommunikant","erstkonsument","erstligist","erstplatziert","erstplaciert","erstplaziert","erstrecht","ertragsaussicht","erwartungsangst","erwartungshorizont","erwerbseinkünfte","erythrit","erythroblast","erythrozyt","erzählertalent","erzählgut","erzählkunst","erzähltalent","erzamt","erzdemokrat","erzeugungsschlacht","erzfaschist","erziehungsanstalt","erziehungsberechtigt","erziehungsinstitut","erzkommunist","erzprotestant","veranlassungswort","veranschaulicht","veranschlagt","verantwortungsbewusst","verantwortungsbewußt","veräußerungsverbot","verbalist","verbalkontrakt","verbändestaat","verbannungsort","verbildlicht","verbindungspunkt","verbindungsstudent","verbraucherkredit","verbrauchermarkt","verbrauchsgut","verbrechernest","verbrechersyndikat","verbrecherwelt","verbreitungsgebiet","verbrennungsprodukt","verdachtsmoment","verdampfungsgerät","verdauungstrakt","verdikt","veredelungsprodukt","verehrerpost","vereinspräsident","vereinsrecht","vereinssport","verfahrensrecht","verfassungsfahrt","verfassungsgericht","verfassungsrecht","verfassungsstaat","verfolgungsrecht","verfremdungseffekt","verfügungsgewalt","verfügungsrecht","verfügungsberechtigt","verführungskunst","vergegenständlicht","vergegenwärtigt","vergeltungsakt","vergenossenschaftlicht","vergissmeinnicht","vergißmeinnicht","vergleichsmonat","vergleichsobjekt","vergleichspunkt","vergnügungsetablissement","vergnügungsfahrt","vergnügungssucht","vergrößerungsgerät","verhaltensgestört","verhältniswahlrecht","verhältniswort","verhandlungsangebot","verhandlungsbereit","versandbereit","verteidigungsbereit","verhandlungsmandat","verhandlungsort","verhandlungspunkt","verhöramt","verist","verjährungsfrist","verkaufsagent","verkaufsangebot","verkaufsargument","verkaufsautomat","verkaufsfront","verkaufshit","verkaufsobjekt","verkaufsorientiert","verkaufspunkt","verkehrsamt","verkehrsdelikt","verkehrsinfarkt","verkehrsknotenpunkt","verkehrslicht","verkehrsnachricht","verkehrspolizist","verkehrsrecht","verkehrsunterricht","verkehrsverbot","verklarungsbericht","verknüpfungspunkt","verkündungsblatt","verlagsanstalt","verlagsprospekt","verlagsrecht","verlagsrepräsentant","verlagssignet","verlust","verlustgeschäft","verlust","verlustgeschäft","verlustpunkt","vermessungsamt","vermittlungsamt","vermögensrecht","vermont","vermummungsverbot","verneinungswort","vernichtungswut","vernunft","vernunftheirat","verordnungsblatt","verpackungsflut","verpflichtungsgeschäft","verrat","versammlungsort","versammlungsrecht","versandgeschäft","versandgut","versart","verschlusslaut","verschnitt","verschwendungssucht","versehrtensport","versicherungsagent","versicherungsanstalt","versicherungsrecht","verskunst","versöhnungsfest","versorgungsamt","versorgungsberechtigt","versorgungsgebiet","versorgungsgut","versorgungsstaat","verstakt","verständigungsbereit","verstellungskunst","verstürznaht","versuchsanstalt","versuchsobjekt","versuchsprojekt","vertebrat","verteidigungsbudget","verteidigungsetat","verteidigungspakt","verteilungskonflikt","verteilungszahlwort","vertikalschnitt","vertikutiergerät","vertragsgerecht","vertragspunkt","vertragsrecht","vertragsstaat","vertragstext","vertragswerkstatt","vertrauensanwalt","vertrauensarzt","vertrauensverlust","vertriebsrecht","vervielfältigungsrecht","vervielfältigungszahlwort","verwaltungsakt","verwaltungsgericht","verwaltungsrat","verwaltungsrecht","verwundetentransport","verzicht","verzweiflungsakt","verzweiflungstat","entbindungsanstalt","entdeckungsfahrt","entenbrust","entenfett","entertainment","enthusiast","entlastungsmoment","entlüftungsschacht","entnazifizierungsgericht","entoblast","entoparasit","entrechat","entrefilet","entrepot","entscheidungsfurcht","entscheidungsgewalt","entscheidungsrecht","entscheidungsschlacht","entstehungsort","entsteht","entwässerungsschacht","entwicklungsabschnitt","entwicklungsinstitut","entwicklungsprojekt","entwicklungsschritt","entziehungsanstalt","zerat","zerebrallaut","zerfallsprodukt","zergliederungskunst","zerit","zermatt","zersetzungsprodukt","zerstörungslust","zerstörungswut","zertifikat","zerussit","zervelat","zervelatwurst","beamtenrecht","beamtenschicht","beamtenstaat","beat","beatmungsgerät","beaufort","becherfrucht","beckengurt","becquereleffekt","bedarfsgut","bedenkfrist","bedienungselement","bedienungsgerät","bedienungskomfort","bedingtgut","bedürfnisanstalt","beeinflusst","beeinflußt","beerdigungsanstalt","beerdigungsinstitut","beerenfrucht","beerenobst","beerensaft","beet","befasst","befaßt","befehlsgewalt","beförderungsentgelt","beförderungsrecht","begabungstest","begegnungsort","begleitinstrument","begleittext","begleitwort","begnadigungsrecht","begräbt","begrenzungslicht","begriffswelt","begriffswort","begrüßungswort","behaviorist","behebungsfrist","behelfsausfahrt","behelfsunterkunft","behindertengerecht","behindertensport","behindertentransport","behmlot","beiblatt","beiboot","beignet","beiheft","beikost","beilast","beileidswort","beinamputiert","beinhaut","beirat","beirut","beistandskredit","beistandspakt","beitritt","beitrittsabsicht","beitrittsgebiet","beiwacht","beiwort","beizgerät","bekehrungswut","bekennergeist","bekennermut","bekleidungsamt","bekommen","belegarzt","belegbett","belegfrist","belehrungssucht","belemnit","belesprit","beleuchtungseffekt","beleuchtungsgerät","belfast","belkantist","belcantist","belletrist","bellizist","belt","benedikt","benediktenkraut","benefiziant","benefiziat","benefizkonzert","beneluxstaat","bentonit","benzindunst","beratungspunkt","bereit","bereicherungsabsicht","bereitschaftsarzt","bergamt","bergeslast","bergfahrt","bergfest","berggeist","berggrat","bergluft","bergpredigt","bergsport","berg-und-Tal-Fahrt","bergwacht","bergwelt","bericht","berichtsmonat","beritt","bermudashort","bernbiet","berserkerwut","berufsaussicht","berufssoldat","berufssport","berufsstart","berufstracht","berufsverbot","berufungsfrist","berufungsgericht","berufungsrecht","berührungsangst","berührungspunkt","besanmast","besatzungsgebiet","besatzungsmacht","besatzungsrecht","besatzungssoldat","besatzungsstatut","beschaffungsamt","beschäftigungstherapeut","beschlächt","beschlussrecht","beschlußrecht","beschmet","beschneidungsfest","beschlächt","beschlussrecht","beschlußrecht","beschmet","beschneidungsfest","beschwerdefrist","beschwerderecht","beschwörungskunst","beseitigungsanstalt","besetzungsgebiet","besetzungsmacht","besetzungsstatut","besichtigungsfahrt","besitzrecht","besoldungsrecht","besprechungspunkt","besserungsanstalt","bestattungsinstitut","bestimmungsort","bestimmungswort","bestinformiert","bestqualifiziert","bestrahlungsgerät","bestrenommiert","bestsituiert","bestverkauft","besucherrat","besuchsrecht","betpult","betracht","betreibungsamt","betriebsarzt","betriebsfest","betriebsrat","betriebswirt","bett","bettelmusikant","bettelvogt","bettstatt","bettwurst","beulenpest","beutegut","beutekunst","beuterecht","bevölkerungsschicht","bewahranstalt","bewährungsfrist","bewegungsarmut","beweislast","bewußt","bewusst","beziehungsgeflecht","bezirksamt","bezirksarzt","bezirksgericht","bezirkskabinett","bezirksschulrat","bezirksstadt","bezugspunkt","bezugsrecht","heraklit","herat","herbalist","herbst","herbstmonat","herbstpunkt","herdbuchzucht","herdeninstinkt","herfahrt","heringsfilet","heringssalat","herkuleskraut","herkunft","herkunftsort","hermaphrodit","heroenkult","heroinsucht","heroldsamt","heroldskunst","herostrat","herrenabfahrt","herrenbrot","herrendienst","herrenfest","herrenhut","herrenrecht","herrenschnitt","herrenwelt","herrgott","herrnhut","herrschaftsgebiet","herrschaftsgewalt","herrschaftsinstrument","herrschergeschlecht","herrscherkult","herrschsucht","herstellungsart","herzacht","herzangst","herzblatt","herzblut","herzensangst","herzensgut","herzenslust","herzenstrost","herzgeliebt","herzinfarkt","herzinnenhaut","herzklappendefekt","herzogshut","herzlichst","herzpatient","herzpunkt","herzspezialist","überbackt","ueberbackt","überbacktet","ueberbacktet","überbietet","ueberbietet","überbot","ueberbot","überbotet","ueberbotet","überbindet","ueberbindet","überbandet","ueberbandet","überbläst","ueberblaest","überbliest","ueberbliest","überbrät","ueberbraet","überbratet","ueberbratet","überbriet","ueberbriet","überbrietet","ueberbrietet","überbringt","ueberbringt","überbrachtet","ueberbrachtet","überbrücktet","ueberbruecktet","überbrühtet","ueberbrühtet","überbrülltet","ueberbruelltet","überbuchtet","ueberbuchtet","überbürdetet","ueberbuerdetet","überdecktet","ueberdecktet","überdehntet","ueberdehntet","überdenkt","ueberdenkt","überdachtet","ueberdachtet","überdosiertet","ueberdosiertet","überdrehtet","ueberdrehtet","überdrucktet","ueberdrucktet","überdüngtet","ueberdüngtet","übereignetet","uebereignetet","übereiltet","uebereiltet","übererfülltet","uebererfuelltet","überißt","ueberisst","ueberißt","überisst","überesst","ueberesst","übereßt","uebereßt","überaßt","ueberaßt","überesset","ueberesset","überäßet","ueberaesset","überfährt","ueberfaehrt","überfahrt","ueberfahrt","überfuhrt","ueberfuhrt","überfällt","ueberfaellt","überfallet","ueberfallet","überfielt","ueberfielt","überfielet","ueberfielet","überfängt","ueberfaengt","überfingt","ueberfingt","überfinget","ueberfinget","überfärbet","ueberfaerbet","überfettetet","ueberfettetet","überfirnisset","ueberfirnisset","überfirnißtet","ueberfirnisstet","überfischet","ueberfischet","überfischtet","ueberfischtet","überflanktet","ueberflanktet","überflanktet","ueberflanktet","überfliegt","ueberfliegt","überflieget","ueberflieget","überflöget","ueberflöget","überflösset","ueberfloesset","überflosst","ueberflosst","überfloßt","ueberflosst","überfließt","ueberfliesst","überflutetet","ueberflutetet","überformet","ueberformet","überformtet","ueberformtet","überfrachtetet","ueberfrachtetet","überfracht","ueberfracht","überfraget","ueberfraget","überfragtet","ueberfragtet","überfremdetet","ueberfremdetet","überfrisst","ueberfrisst","überfrißt","ueberfrißt","überfresst","ueberfresst","überfreßt","ueberfreßt","überfresset","ueberfresset","überfraßt","ueberfraßt","ueberfrasst","überfräßet","ueberfraesset","überfriert","ueberfriert","überfrieret","ueberfrieret","überfrort","ueberfrort","überfröret","ueberfroeret","überfrört","ueberfroert","überführet","ueberfuehret","überführtet","ueberfuehrtet","überfüllet","ueberfuellet","übergibt","uebergibt","übergebt","uebergebt","übergebet","uebergebet","übergabt","uebergabt","übergäbet","uebergaebet","übergäbt","uebergaebt","übergeht","uebergeht","übergehet","uebergehet","übergingt","uebergingt","übergewichtetet","uebergewichtetet","übergießet","uebergiesset","übergießt","uebergiesst","übergösset","uebergoesset","übergosst","uebergosst","uebergoßt","übergipset","uebergipset","übergipstet","uebergipstet","übergipset","uebergipset","übergipstet","uebergipstet","überglänzet","ueberglaenzet","überglänztet","ueberglaenztet","überglaset","ueberglaset","überglastet","ueberglastet","überglühet","uebergluehet","überglühtet","uebergluehtet","übergoldetet","uebergoldetet","übergraset","uebergraset","übergrastet","uebergrastet","übergrätschet","uebergraetschet","übergrätschtet","uebergraetschtet","übergreift","uebergreift","übergreifet","uebergreifet","übergrifft","uebergrifft","übergriffet","uebergriffet","übergreift","uebergreift","übergreifet","uebergreifet","übergriffet","uebergriffet","übergrifft","uebergrifft","übergrünet","uebergruenet","übergrüntet","uebergruentet","überhat","ueberhat","überhabt","ueberhabt","überhabet","ueberhabet","überhattet","ueberhattet","überhättet","ueberhaettet","überhält","ueberhaelt","überhaltet","ueberhaltet","überhielt","ueberhielt","überhieltet","ueberhieltet","überhändiget","ueberhaendiget","überhändigtet","ueberhaendigtet","überhängt","ueberhaengt","überhänget","ueberhaenget","überhingt","ueberhingt","überhinget","ueberhinget","überhängt","ueberhaengt","überhänget","ueberhaenget","überhängtet","ueberhaengtet","überhänget","ueberhaenget","überhängtet","ueberhaengtet","überhängt","ueberhaengt","überhänget","ueberhaenget","überhingt","ueberhingt","überhinget","ueberhinget","überhastetet","ueberhastetet","überhäufet","ueberhaeufet","überhäuftet","ueberhaeuftet","überhebt","ueberhebt","überhebet","ueberhebet","überhobt","ueberhobt","überhöbet","ueberhoebet","überhebt","ueberhebt","überhebet","ueberhebet","überhobt","ueberhobt","überheiztet","ueberheiztet","überheizet","ueberheizet","überhöhet","ueberhoehet","überhöhtet","ueberhoehtet","überhitzet","ueberhitzet","überhitztet","ueberhitztet","überholet","ueberholet","überholtet","ueberholtet","überhöret","ueberhoeret","überhörtet","ueberhoertet","überinterpretieret","ueberinterpretieret","überinterpretiertet","ueberinterpretiertet","überinterpretieret","ueberinterpretieret","überinterpretiertet","ueberinterpretiertet","überklebet","ueberklebet","überklebtet","ueberklebtet","überkleidetet","ueberkleidetet","überkochet","ueberkochet","überkochtet","ueberkochtet","überkommet","ueberkommet","überkamt","ueberkamt","überkämet","ueberkaemet","überkämt","ueberkaemt","überkompensieret","ueberkompensieret","überkompensiertet","ueberkompensiertet","überkreuzet","ueberkreuzet","überkreuztet","ueberkreuztet","überkronet","ueberkronet","überkrontet","ueberkrontet","überkrustetet","ueberkrustetet","überladet","ueberladet","überludet","ueberludet","überlüdet","ueberluedet","überlappet","ueberlappet","überlapptet","ueberlapptet","überlasset","ueberlasset","überlaßt","ueberlaßt","ueberlasst","ueberlasst","überlässt","ueberlaesst","überließt","ueberließt","ueberliesst","überließet","ueberließet","ueberliesset","überlastet","ueberlastet","überlastetet","ueberlastetet","überläuft","ueberlaeuft","überlaufet","ueberlaufet","überlieft","ueberlieft","überliefet","ueberliefet","überlebet","ueberlebet","überlebtet","ueberlebtet","überleget","ueberleget","überlegtet","ueberlegtet","überlegt","ueberlegt","überleget","ueberleget","überlegtet","ueberlegtet","überleitet","ueberleitet","überleitetet","ueberleitetet","überleset","ueberleset","überlast","ueberlast","überläset","ueberlaeset","überliegt","ueberliegt","überlieget","ueberlieget","überlagt","ueberlagt","überläget","ueberlaeget","überlägt","ueberlaegt","überlistetet","ueberlistetet","übermachet","uebermachet","übermachtet","uebermachtet","übermalet","uebermalet","übermaltet","uebermaltet","übermalet","uebermalet","übermaltet","uebermaltet","übermannet","uebermannet","überman
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|