From cf6b2de1eecfb92b07682cc499ad26472e8e3c17 Mon Sep 17 00:00:00 2001 From: Peter Petrov Date: Tue, 17 Dec 2024 12:23:50 +0200 Subject: [PATCH 1/9] Boost: Add "load default strings" to excludes in concatenate UI (#40496) Co-authored-by: Adnan Haque --- .../src/js/features/minify-meta/lib/stores.ts | 17 +++++ .../minify-meta/minify-meta.module.scss | 67 ++++--------------- .../js/features/minify-meta/minify-meta.tsx | 66 +++++++++++++----- .../app/assets/src/js/pages/index/index.tsx | 11 ++- .../boost/changelog/update-concat-exclude-ui | 4 ++ projects/plugins/boost/wp-js-data-sync.php | 13 ++++ 6 files changed, 101 insertions(+), 77 deletions(-) create mode 100644 projects/plugins/boost/app/assets/src/js/features/minify-meta/lib/stores.ts create mode 100644 projects/plugins/boost/changelog/update-concat-exclude-ui diff --git a/projects/plugins/boost/app/assets/src/js/features/minify-meta/lib/stores.ts b/projects/plugins/boost/app/assets/src/js/features/minify-meta/lib/stores.ts new file mode 100644 index 0000000000000..939cdc95beab9 --- /dev/null +++ b/projects/plugins/boost/app/assets/src/js/features/minify-meta/lib/stores.ts @@ -0,0 +1,17 @@ +import { z } from 'zod'; +import { useDataSync } from '@automattic/jetpack-react-data-sync-client'; + +const MinifyDefaults = z.array( z.string() ); +type MinifyDefaults = z.infer< typeof MinifyDefaults >; + +export function useMinifyDefaults( + preferenceDSKey: 'minify_js_excludes' | 'minify_css_excludes' +): MinifyDefaults | undefined { + const [ { data } ] = useDataSync( + 'jetpack_boost_ds', + `${ preferenceDSKey }_default`, + MinifyDefaults + ); + + return data; +} diff --git a/projects/plugins/boost/app/assets/src/js/features/minify-meta/minify-meta.module.scss b/projects/plugins/boost/app/assets/src/js/features/minify-meta/minify-meta.module.scss index 203f6bc1211ef..8af9e2cecb820 100644 --- a/projects/plugins/boost/app/assets/src/js/features/minify-meta/minify-meta.module.scss +++ b/projects/plugins/boost/app/assets/src/js/features/minify-meta/minify-meta.module.scss @@ -5,6 +5,10 @@ font-size: 14px; line-height: 22px; + :global(button ~ button) { + margin-left: 20px !important; + } + .summary { flex-grow: 1; } @@ -35,34 +39,20 @@ } } - .manage-excludes { - display: flex; - flex-direction: column; - align-items: center; - width: 100%; - - .help { - font-size: 14px; - line-height: 1.5; - color: var( --gray-60 ); - font-weight: 400; - } + .description { + margin-top: 8px; + font-size: 14px; + line-height: 1.5; + color: var( --gray-60 ); + font-weight: 400; } - .manage-excludes label { - display: block; - text-align: left; - margin-bottom: 16px; - font-weight: 600; - width: 100%; - font-size: 16px; - line-height: 1; + .button { + margin-top: 16px; } - .manage-excludes span { + .manage-excludes label { display: block; - text-align: left; - width: 100%; margin-bottom: 16px; line-height: 1.5; } @@ -72,37 +62,6 @@ padding: 10px; border-radius: 4px; border: 1px solid $gray_10; - margin-bottom: 16px; - } - - .buttons-container { - display: flex; - flex-direction: row; - justify-content: flex-start; - width: 100%; - - button { - margin-right: 10px; - padding: 8px 24px; - border: 1px solid $primary-black; - border-radius: 4px; - cursor: pointer; - color: $primary-black; - - } - button[disabled] { - border-color: $gray-5; - background-color: $gray-5; - color: $gray-20; - cursor: not-allowed; - } - button:not([disabled]) { - background-color: $primary-black; - color: $primary-white; - } - button:not([disabled]):hover { - background-color: lighten($primary-black, 10%); - } } .edit-button svg { diff --git a/projects/plugins/boost/app/assets/src/js/features/minify-meta/minify-meta.tsx b/projects/plugins/boost/app/assets/src/js/features/minify-meta/minify-meta.tsx index 399d8e934fb54..e882d8240a743 100644 --- a/projects/plugins/boost/app/assets/src/js/features/minify-meta/minify-meta.tsx +++ b/projects/plugins/boost/app/assets/src/js/features/minify-meta/minify-meta.tsx @@ -1,17 +1,25 @@ import { useEffect, useState } from 'react'; +import { Button } from '@automattic/jetpack-components'; import { __, sprintf } from '@wordpress/i18n'; import { type Props, useMetaQuery } from '$lib/stores/minify'; import { recordBoostEvent } from '$lib/utils/analytics'; import styles from './minify-meta.module.scss'; import CollapsibleMeta from '$features/ui/collapsible-meta/collapsible-meta'; +import { useMinifyDefaults } from './lib/stores'; const MetaComponent = ( { buttonText, placeholder, datasyncKey }: Props ) => { const [ values, updateValues ] = useMetaQuery( datasyncKey ); const [ inputValue, setInputValue ] = useState( () => values.join( ', ' ) ); + const minifyDefaults = useMinifyDefaults( datasyncKey ); const concatenateType = datasyncKey === 'minify_js_excludes' ? 'js' : 'css'; const togglePanelTracksEvent = 'concatenate_' + concatenateType + '_panel_toggle'; // possible events: concatenate_js_panel_toggle, concatenate_css_panel_toggle + let defaultValue = ''; + if ( minifyDefaults !== undefined ) { + defaultValue = minifyDefaults.join( ', ' ); + } + useEffect( () => { setInputValue( values.join( ', ' ) ); }, [ values ] ); @@ -35,20 +43,34 @@ const MetaComponent = ( { buttonText, placeholder, datasyncKey }: Props ) => { const htmlId = `jb-minify-meta-${ datasyncKey }`; - const summary = - values.length > 0 - ? /* Translators: %s refers to the list of excluded items. */ - sprintf( __( 'Except: %s', 'jetpack-boost' ), values.join( ', ' ) ) - : ''; - // Be explicit about this because the optimizer breaks the linter otherwise. + let summary; + if ( values.length > 0 ) { + /* Translators: %s refers to the list of excluded items. */ + summary = sprintf( __( 'Except: %s', 'jetpack-boost' ), values.join( ', ' ) ); + } + + if ( values.length === 0 ) { + summary = __( 'No exceptions.', 'jetpack-boost' ); + } + let subHeaderText = ''; if ( datasyncKey === 'minify_js_excludes' ) { - subHeaderText = __( 'Exclude JS Strings:', 'jetpack-boost' ); + subHeaderText = __( 'Exclude JS handles:', 'jetpack-boost' ); } if ( datasyncKey === 'minify_css_excludes' ) { - subHeaderText = __( 'Exclude CSS Strings:', 'jetpack-boost' ); + subHeaderText = __( 'Exclude CSS handles:', 'jetpack-boost' ); + } + + function loadDefaultValue() { + setInputValue( defaultValue ); + /* + * Possible Events: + * minify_js_exceptions_load_default + * minify_css_exceptions_load_default + */ + recordBoostEvent( 'minify_' + concatenateType + '_exceptions_load_default', {} ); } const content = ( @@ -56,7 +78,9 @@ const MetaComponent = ( { buttonText, placeholder, datasyncKey }: Props ) => {
{ __( 'Exceptions', 'jetpack-boost' ) }
- { subHeaderText } + { } } } /> - - { __( 'Use a comma (,) to separate the strings.', 'jetpack-boost' ) } - -
- +
+ { __( 'Use a comma (,) to separate the handles.', 'jetpack-boost' ) }
+ +
diff --git a/projects/plugins/boost/app/assets/src/js/pages/index/index.tsx b/projects/plugins/boost/app/assets/src/js/pages/index/index.tsx index 4373e1baeac18..7094ffd289914 100644 --- a/projects/plugins/boost/app/assets/src/js/pages/index/index.tsx +++ b/projects/plugins/boost/app/assets/src/js/pages/index/index.tsx @@ -184,8 +184,8 @@ const Index = () => { > { > fallback( Minify_JS::$default_excludes ), $js_excludes_entry ); jetpack_boost_register_option( 'minify_css_excludes', Schema::as_array( Schema::as_string() )->fallback( Minify_CSS::$default_excludes ), $css_excludes_entry ); +jetpack_boost_register_readonly_option( + 'minify_js_excludes_default', + function () { + return Minify_JS::$default_excludes; + } +); +jetpack_boost_register_readonly_option( + 'minify_css_excludes_default', + function () { + return Minify_CSS::$default_excludes; + } +); + jetpack_boost_register_option( 'image_cdn_quality', Schema::as_assoc_array( From 3815cf5923caf5b95717f57f3553aad538d8257b Mon Sep 17 00:00:00 2001 From: Jeremy Herve Date: Tue, 17 Dec 2024 11:57:12 +0100 Subject: [PATCH 2/9] Holiday Snow: switch to a CSS-only implementation (#40629) * Holiday Snow: switch to a CSS-only implementation Fixes #40569 Moving away from Javascript: - should be better for performance - will avoid glitches like the one described in #40569 - will avoid issues with other parts of the site, such as notifications or comments. (see p1734109348431089-slack-C029GN3KD ) * Do not ship the SCSS file in mirror repo * Lower snow density a bit * Switch to defining version number manually --- .../packages/jetpack-mu-wpcom/.gitattributes | 1 + .../changelog/update-snow-scss | 4 ++ .../holiday-snow/class-holiday-snow.php | 34 +++++++--- .../features/holiday-snow/holiday-snow.scss | 67 +++++++++++++++++++ .../src/features/holiday-snow/snowstorm.js | 29 -------- .../jetpack-mu-wpcom/webpack.config.js | 1 + 6 files changed, 98 insertions(+), 38 deletions(-) create mode 100644 projects/packages/jetpack-mu-wpcom/changelog/update-snow-scss create mode 100644 projects/packages/jetpack-mu-wpcom/src/features/holiday-snow/holiday-snow.scss delete mode 100644 projects/packages/jetpack-mu-wpcom/src/features/holiday-snow/snowstorm.js diff --git a/projects/packages/jetpack-mu-wpcom/.gitattributes b/projects/packages/jetpack-mu-wpcom/.gitattributes index f24c7138ab785..91e6d89703734 100644 --- a/projects/packages/jetpack-mu-wpcom/.gitattributes +++ b/projects/packages/jetpack-mu-wpcom/.gitattributes @@ -17,3 +17,4 @@ phpunit.xml.dist production-exclude tests/** production-exclude .phpcsignore production-exclude bin/** production-exclude +src/**/**/*.scss production-exclude diff --git a/projects/packages/jetpack-mu-wpcom/changelog/update-snow-scss b/projects/packages/jetpack-mu-wpcom/changelog/update-snow-scss new file mode 100644 index 0000000000000..bb147025e71ef --- /dev/null +++ b/projects/packages/jetpack-mu-wpcom/changelog/update-snow-scss @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Holiday Snow: switch to a CSS-only implementation. diff --git a/projects/packages/jetpack-mu-wpcom/src/features/holiday-snow/class-holiday-snow.php b/projects/packages/jetpack-mu-wpcom/src/features/holiday-snow/class-holiday-snow.php index e6dacf5da5548..90bcf477af7ad 100644 --- a/projects/packages/jetpack-mu-wpcom/src/features/holiday-snow/class-holiday-snow.php +++ b/projects/packages/jetpack-mu-wpcom/src/features/holiday-snow/class-holiday-snow.php @@ -52,6 +52,8 @@ public static function is_snow_season() { * p2 is currently not compatible with Holiday Snow. * This covers both P2 and P2020 themes. * + * @deprecated $$next-version$$ + * * @return bool */ private static function is_p2() { @@ -74,7 +76,7 @@ public static function is_snow_enabled() { * @return void */ public static function init() { - if ( ! self::is_snow_season() || self::is_p2() ) { + if ( ! self::is_snow_season() ) { return; } @@ -84,12 +86,23 @@ public static function init() { add_action( 'update_option_' . self::HOLIDAY_SNOW_OPTION_NAME, array( __CLASS__, 'holiday_snow_option_updated' ) ); if ( self::is_snow_enabled() ) { + add_action( 'wp_footer', array( __CLASS__, 'holiday_snow_markup' ) ); add_action( 'wp_enqueue_scripts', array( __CLASS__, 'holiday_snow_script' ) ); } } /** - * Enqueue the snowstorm script on the frontend. + * Add the snowstorm markup to the footer. + * + * @return void + * @since $$next-version$$ + */ + public static function holiday_snow_markup() { + echo '
'; + } + + /** + * Enqueue the snowstorm CSS on the frontend. * * @return void */ @@ -118,20 +131,23 @@ public static function holiday_snow_script() { * Filter the URL of the snowstorm script. * * @since $$next-version$$ + * @deprecated $$next-version$$ We've switched to a CSS-only snow effect. * * @param string $snowstorm_url URL of the snowstorm script. */ - $snowstorm_url = apply_filters( + $snowstorm_url = apply_filters_deprecated( // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable 'jetpack_holiday_snow_js_url', - plugins_url( 'snowstorm.js', __FILE__ ) + array( plugins_url( 'snowstorm.js', __FILE__ ) ), + '6.1.1', + '', + 'This filter is no longer useful. We use a CSS-only snow effect instead.' ); - wp_enqueue_script( - 'snowstorm', - $snowstorm_url, + wp_enqueue_style( + 'holiday-snow', + plugins_url( 'build/holiday-snow/holiday-snow.css', \Automattic\Jetpack\Jetpack_Mu_Wpcom::BASE_FILE ), array(), - \Automattic\Jetpack\Jetpack_Mu_Wpcom::PACKAGE_VERSION, - true + \Automattic\Jetpack\Jetpack_Mu_Wpcom::PACKAGE_VERSION ); } diff --git a/projects/packages/jetpack-mu-wpcom/src/features/holiday-snow/holiday-snow.scss b/projects/packages/jetpack-mu-wpcom/src/features/holiday-snow/holiday-snow.scss new file mode 100644 index 0000000000000..c548402cf8483 --- /dev/null +++ b/projects/packages/jetpack-mu-wpcom/src/features/holiday-snow/holiday-snow.scss @@ -0,0 +1,67 @@ +/** + * Holiday Snow + * Credits: https://codepen.io/keithclark/pen/DjXzBw + * + * @package automattic/jetpack-mu-wpcom + */ + +$grid_width: 600; +$snow_density: 10; +$snow_speed: 9s; +$snow_selector: '#jetpack-holiday-snow'; + +html { + $grad: ( + ); + + @for $i from 0 to $snow_density { + $v: random(4) + 2; + $alpha: random(5) * .1 + .5; + $grad: $grad, radial-gradient($v+px $v+px at (random($grid_width - $v * 2) + $v)+px (random($grid_width - $v * 2) + $v)+px, + rgba(255, 255, 255, $alpha) 50%, + rgba(0, 0, 0, 0)); + } + + #{$snow_selector} { + display: inline !important; + background-color: rgba(0, 0, 0, 0.05); + z-index: 9999999999 !important; + } + + #{$snow_selector}, + #{$snow_selector}:before, + #{$snow_selector}:after { + pointer-events: none; + position: fixed; + top: -600px; + left: 0; + bottom: 0; + right: 0; + background-image: $grad; + background-size: 600px 600px; + animation: snowstorm $snow_speed linear infinite; + content: ""; + } + + #{$snow_selector}:after { + margin-left: -$grid_width/3 + px; + opacity: .4; + animation-duration: $snow_speed * 2; + animation-direction: reverse; + filter: blur(3px); + } + + #{$snow_selector}:before { + animation-duration: $snow_speed * 3; + animation-direction: reverse; + margin-left: -$grid_width/2 + px; + opacity: .65; + filter: blur(1.5px); + } + + @keyframes snowstorm { + to { + transform: translateY($grid_width + px); + } + } +} diff --git a/projects/packages/jetpack-mu-wpcom/src/features/holiday-snow/snowstorm.js b/projects/packages/jetpack-mu-wpcom/src/features/holiday-snow/snowstorm.js deleted file mode 100644 index 1559e4e4df738..0000000000000 --- a/projects/packages/jetpack-mu-wpcom/src/features/holiday-snow/snowstorm.js +++ /dev/null @@ -1,29 +0,0 @@ -/** @license - - DHTML Snowstorm! JavaScript-based snow for web pages - Making it snow on the internets since 2003. You're welcome. - ----------------------------------------------------------- - Version 1.44.20131215 (Previous rev: 1.44.20131208) - Copyright (c) 2007, Scott Schiller. All rights reserved. - Code provided under the BSD License - http://schillmania.com/projects/snowstorm/license.txt -*/ -var snowStorm=function(g,f){function k(a,d){isNaN(d)&&(d=0);return Math.random()*a+d}function x(){g.setTimeout(function(){a.start(!0)},20);a.events.remove(m?f:g,"mousemove",x)}function y(){(!a.excludeMobile||!D)&&x();a.events.remove(g,"load",y)}this.excludeMobile=this.autoStart=!0;this.flakesMax=128;this.flakesMaxActive=64;this.animationInterval=33;this.useGPU=!0;this.className=null;this.excludeMobile=!0;this.flakeBottom=null;this.followMouse=!0;this.snowColor="#fff";this.snowCharacter="•";this.snowStick= -!0;this.targetElement=null;this.useMeltEffect=!0;this.usePixelPosition=this.usePositionFixed=this.useTwinkleEffect=!1;this.freezeOnBlur=!0;this.flakeRightOffset=this.flakeLeftOffset=0;this.flakeHeight=this.flakeWidth=8;this.vMaxX=5;this.vMaxY=4;this.zIndex=0;var a=this,q,m=navigator.userAgent.match(/msie/i),E=navigator.userAgent.match(/msie 6/i),D=navigator.userAgent.match(/mobile|opera m(ob|in)/i),r=m&&"BackCompat"===f.compatMode||E,h=null,n=null,l=null,p=null,s=null,z=null,A=null,v=1,t=!1,w=!1, -u;a:{try{f.createElement("div").style.opacity="0.5"}catch(F){u=!1;break a}u=!0}var B=!1,C=f.createDocumentFragment();q=function(){function c(b){g.setTimeout(b,1E3/(a.animationInterval||20))}function d(a){return void 0!==h.style[a]?a:null}var e,b=g.requestAnimationFrame||g.webkitRequestAnimationFrame||g.mozRequestAnimationFrame||g.oRequestAnimationFrame||g.msRequestAnimationFrame||c;e=b?function(){return b.apply(g,arguments)}:null;var h;h=f.createElement("div");e={transform:{ie:d("-ms-transform"), -moz:d("MozTransform"),opera:d("OTransform"),webkit:d("webkitTransform"),w3:d("transform"),prop:null},getAnimationFrame:e};e.transform.prop=e.transform.w3||e.transform.moz||e.transform.webkit||e.transform.ie||e.transform.opera;h=null;return e}();this.timer=null;this.flakes=[];this.active=this.disabled=!1;this.meltFrameCount=20;this.meltFrames=[];this.setXY=function(c,d,e){if(!c)return!1;a.usePixelPosition||w?(c.style.left=d-a.flakeWidth+"px",c.style.top=e-a.flakeHeight+"px"):r?(c.style.right=100-100* -(d/h)+"%",c.style.top=Math.min(e,s-a.flakeHeight)+"px"):a.flakeBottom?(c.style.right=100-100*(d/h)+"%",c.style.top=Math.min(e,s-a.flakeHeight)+"px"):(c.style.right=100-100*(d/h)+"%",c.style.bottom=100-100*(e/l)+"%")};this.events=function(){function a(c){c=b.call(c);var d=c.length;e?(c[1]="on"+c[1],3b.vX?b.vX=0.2:0>b.vX&&-0.2b.vY&&(b.vY=0.2)};this.move=function(){var c=b.vX*v;b.x+=c;b.y+=b.vY*b.vAmp;b.x>=h||h-b.xc&&b.x-a.flakeLeftOffset<-a.flakeWidth&&(b.x=h-a.flakeWidth-1);b.refresh();l+p-b.y+a.flakeHeightb.type&&!b.melting&&0.998b.twinkleFrame?0.97a.flakesMaxActive)a.flakes[a.flakes.length-1].active=-1;a.targetElement.appendChild(C)};this.timerInit= -function(){a.timer=!0;a.snow()};this.init=function(){var c;for(c=0;c Date: Tue, 17 Dec 2024 11:37:14 -0600 Subject: [PATCH 3/9] Fix premium content button CSS in editor and display (#40638) * Fix Premium Content button CSS * changelog * Use CSS variables * Use CSS variables * Import base styles --------- Co-authored-by: MILLER/F --- .../changelog/fix-premium-content-button-css | 4 ++++ .../blocks/premium-content/editor.scss | 14 ++++++++++++++ .../extensions/blocks/premium-content/view.scss | 16 ++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 projects/plugins/jetpack/changelog/fix-premium-content-button-css diff --git a/projects/plugins/jetpack/changelog/fix-premium-content-button-css b/projects/plugins/jetpack/changelog/fix-premium-content-button-css new file mode 100644 index 0000000000000..5d06533b0e2c7 --- /dev/null +++ b/projects/plugins/jetpack/changelog/fix-premium-content-button-css @@ -0,0 +1,4 @@ +Significance: patch +Type: other + +Fixes editor and display CSS for Premium Content buttons. diff --git a/projects/plugins/jetpack/extensions/blocks/premium-content/editor.scss b/projects/plugins/jetpack/extensions/blocks/premium-content/editor.scss index cf3d07d1e2c56..6dccbac43bfb9 100644 --- a/projects/plugins/jetpack/extensions/blocks/premium-content/editor.scss +++ b/projects/plugins/jetpack/extensions/blocks/premium-content/editor.scss @@ -61,6 +61,20 @@ margin: 0; } +%button-outline-style { + background-color: unset; + color: $gray-800; +} + +.wp-block-premium-content-login-button, +.wp-block-jetpack-button { + &.is-style-outline { + .wp-block-button__link { + @extend %button-outline-style; + } + } +} + /* Hide Stripe nudge from Jetpack payments block */ /* https://github.com/Automattic/wp-calypso/issues/44332 */ .wp-block-premium-content-container .premium-content-wrapper .jetpack-block-nudge { diff --git a/projects/plugins/jetpack/extensions/blocks/premium-content/view.scss b/projects/plugins/jetpack/extensions/blocks/premium-content/view.scss index 5c35d48a35813..d014f58bd8657 100644 --- a/projects/plugins/jetpack/extensions/blocks/premium-content/view.scss +++ b/projects/plugins/jetpack/extensions/blocks/premium-content/view.scss @@ -1,3 +1,5 @@ +@import '@automattic/jetpack-base-styles/gutenberg-base-styles'; + /** * The following styles get applied both on the front of your site * and in the editor. @@ -26,6 +28,20 @@ float: right; } +%button-outline-style { + background-color: unset; + color: $gray-800; +} + +.wp-block-premium-content-login-button, +.wp-block-jetpack-button { + &.is-style-outline { + .wp-block-button__link { + @extend %button-outline-style; + } + } +} + /* Legacy Subscribe/Login buttons */ .wp-block-premium-content-logged-out-view__buttons { From 9ad0850baa585c4c8d442c7c170fe292cea6fd01 Mon Sep 17 00:00:00 2001 From: Dylan Munson <65001528+CodeyGuyDylan@users.noreply.github.com> Date: Tue, 17 Dec 2024 11:53:58 -0700 Subject: [PATCH 4/9] Add/monetization tools feature copy to complete (#40651) * Add monetization tools feature copy to complete * changelog --- .../add-monetization-tools-feature-copy-to-complete | 5 +++++ projects/packages/my-jetpack/src/products/class-complete.php | 1 + 2 files changed, 6 insertions(+) create mode 100644 projects/packages/my-jetpack/changelog/add-monetization-tools-feature-copy-to-complete diff --git a/projects/packages/my-jetpack/changelog/add-monetization-tools-feature-copy-to-complete b/projects/packages/my-jetpack/changelog/add-monetization-tools-feature-copy-to-complete new file mode 100644 index 0000000000000..da968bcb6cd54 --- /dev/null +++ b/projects/packages/my-jetpack/changelog/add-monetization-tools-feature-copy-to-complete @@ -0,0 +1,5 @@ +Significance: patch +Type: added +Comment: Only copy change + + diff --git a/projects/packages/my-jetpack/src/products/class-complete.php b/projects/packages/my-jetpack/src/products/class-complete.php index 16efa7ecd380a..31be8bb4704a5 100644 --- a/projects/packages/my-jetpack/src/products/class-complete.php +++ b/projects/packages/my-jetpack/src/products/class-complete.php @@ -84,6 +84,7 @@ public static function get_features() { 'AI Assistant', _x( 'Stats (100K site views, upgradeable)', 'Complete Product Feature', 'jetpack-my-jetpack' ), _x( 'CRM Entrepreneur', 'Complete Product Feature', 'jetpack-my-jetpack' ), + _x( 'Newsletter and monetization tools', 'Complete Product Feature', 'jetpack-my-jetpack' ), ); } From 84b49d2d15a4536a3ede03eb7bf9093f9058a436 Mon Sep 17 00:00:00 2001 From: Anna McPhee <30754158+annacmc@users.noreply.github.com> Date: Wed, 18 Dec 2024 12:03:14 +1100 Subject: [PATCH 5/9] Charts: Add legend component (#40594) * add @visx/legend to package and update lockfile * create index file for legend component * add base default/fallback legend * add legend module scss for styling * add legend types * add legend to storybook * add both vertical and horizontal orientations for legend * changelog * add legend support to bar chart * bar chart legend styling update * add horizontsl and vertical legends to barchart stories * Add legend to barchart * add legend orientation styles * add legend to PieSemiCircleChartProps * create legend story for pie semi circle chart * update legend barrelfile export/imports * remove legendItem from barchart for now * fix data structure for legend barchart * fix up legend items display * tidy up * remove redundant legend prop defaults from chart components * fix up the data source for bar chart legend source * add legend to line chart * add legend to pie chart * update naming and comments for line chart legend generation * add a fallback in case --jp is not available * add legend = false value to all chart default stories * add legendOrientation to default args in storybook --- pnpm-lock.yaml | 17 +++++ .../add-chart-library-legend-component | 4 ++ projects/js-packages/charts/package.json | 1 + .../bar-chart/bar-chart.module.scss | 4 ++ .../src/components/bar-chart/bar-chart.tsx | 26 ++++++- .../bar-chart/stories/index.stories.tsx | 23 ++++++ .../src/components/legend/base-legend.tsx | 71 +++++++++++++++++++ .../charts/src/components/legend/index.ts | 2 + .../src/components/legend/legend.module.scss | 36 ++++++++++ .../legend/stories/index.stories.tsx | 49 +++++++++++++ .../charts/src/components/legend/types.ts | 14 ++++ .../src/components/line-chart/line-chart.tsx | 18 +++++ .../line-chart/stories/index.stories.tsx | 21 ++++-- .../src/components/pie-chart/pie-chart.tsx | 19 +++++ .../pie-chart/stories/index.stories.tsx | 18 +++++ .../pie-semi-circle-chart.module.scss | 4 ++ .../pie-semi-circle-chart.tsx | 18 +++++ .../stories/index.stories.tsx | 16 +++++ .../charts/src/components/shared/types.d.ts | 8 +++ 19 files changed, 364 insertions(+), 5 deletions(-) create mode 100644 projects/js-packages/charts/changelog/add-chart-library-legend-component create mode 100644 projects/js-packages/charts/src/components/legend/base-legend.tsx create mode 100644 projects/js-packages/charts/src/components/legend/index.ts create mode 100644 projects/js-packages/charts/src/components/legend/legend.module.scss create mode 100644 projects/js-packages/charts/src/components/legend/stories/index.stories.tsx create mode 100644 projects/js-packages/charts/src/components/legend/types.ts diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d2a2a658b2b2a..eba1d19846d96 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -304,6 +304,9 @@ importers: '@visx/group': specifier: ^3.12.0 version: 3.12.0(react@18.3.1) + '@visx/legend': + specifier: ^3.12.0 + version: 3.12.0(react@18.3.1) '@visx/responsive': specifier: 3.12.0 version: 3.12.0(react@18.3.1) @@ -7914,6 +7917,11 @@ packages: peerDependencies: react: ^16.0.0-0 || ^17.0.0-0 || ^18.0.0-0 + '@visx/legend@3.12.0': + resolution: {integrity: sha512-Tr6hdauEDXRXVNeNgIQ9JtCCrxn8Fbr8UCVlO9XsSxenk2hBC/2PIY5QPzpnKFEEEuH/C8vhj8T0JfFZV+D9zQ==} + peerDependencies: + react: ^16.3.0-0 || ^17.0.0-0 || ^18.0.0-0 + '@visx/point@3.12.0': resolution: {integrity: sha512-I6UrHoJAEVbx3RORQNupgTiX5EzjuZpiwLPxn8L2mI5nfERotPKi1Yus12Cq2WtXqEBR/WgqTnoImlqOXBykcA==} @@ -18510,6 +18518,15 @@ snapshots: prop-types: 15.8.1 react: 18.3.1 + '@visx/legend@3.12.0(react@18.3.1)': + dependencies: + '@types/react': 18.3.13 + '@visx/group': 3.12.0(react@18.3.1) + '@visx/scale': 3.12.0 + classnames: 2.5.1 + prop-types: 15.8.1 + react: 18.3.1 + '@visx/point@3.12.0': {} '@visx/react-spring@3.12.0(@react-spring/web@9.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': diff --git a/projects/js-packages/charts/changelog/add-chart-library-legend-component b/projects/js-packages/charts/changelog/add-chart-library-legend-component new file mode 100644 index 0000000000000..47958063ac1fa --- /dev/null +++ b/projects/js-packages/charts/changelog/add-chart-library-legend-component @@ -0,0 +1,4 @@ +Significance: minor +Type: added + +Chart library: add legend component diff --git a/projects/js-packages/charts/package.json b/projects/js-packages/charts/package.json index e51243ee01bc2..c9acca5d411b5 100644 --- a/projects/js-packages/charts/package.json +++ b/projects/js-packages/charts/package.json @@ -24,6 +24,7 @@ "@visx/responsive": "3.12.0", "@visx/axis": "^3.12.0", "@visx/group": "^3.12.0", + "@visx/legend": "^3.12.0", "@visx/scale": "^3.12.0", "@visx/shape": "^3.12.0", "@visx/text": "3.12.0", diff --git a/projects/js-packages/charts/src/components/bar-chart/bar-chart.module.scss b/projects/js-packages/charts/src/components/bar-chart/bar-chart.module.scss index ec94022ab4d88..cdf8d80241671 100644 --- a/projects/js-packages/charts/src/components/bar-chart/bar-chart.module.scss +++ b/projects/js-packages/charts/src/components/bar-chart/bar-chart.module.scss @@ -1,3 +1,7 @@ .bar-chart { position: relative; + + &-legend { + margin-top: 1rem; + } } diff --git a/projects/js-packages/charts/src/components/bar-chart/bar-chart.tsx b/projects/js-packages/charts/src/components/bar-chart/bar-chart.tsx index 7c6f4976eaa06..5c1b03a1d3d98 100644 --- a/projects/js-packages/charts/src/components/bar-chart/bar-chart.tsx +++ b/projects/js-packages/charts/src/components/bar-chart/bar-chart.tsx @@ -7,6 +7,7 @@ import { useTooltip } from '@visx/tooltip'; import clsx from 'clsx'; import { FC, useCallback, type MouseEvent } from 'react'; import { useChartTheme } from '../../providers/theme'; +import { Legend } from '../legend'; import { BaseTooltip } from '../tooltip'; import styles from './bar-chart.module.scss'; import type { BaseChartProps, DataPoint } from '../shared/types'; @@ -16,6 +17,10 @@ interface BarChartProps extends BaseChartProps { * Array of data points to display in the chart */ data: DataPoint[]; + /** + * Label for the data series + */ + seriesLabel?: string; } const BarChart: FC< BarChartProps > = ( { @@ -24,7 +29,10 @@ const BarChart: FC< BarChartProps > = ( { height, margin = { top: 20, right: 20, bottom: 40, left: 40 }, withTooltips = false, + showLegend = false, + legendOrientation = 'horizontal', className, + seriesLabel, } ) => { const theme = useChartTheme(); const { tooltipOpen, tooltipLeft, tooltipTop, tooltipData, hideTooltip, showTooltip } = @@ -34,6 +42,7 @@ const BarChart: FC< BarChartProps > = ( { const xMax = width - margins.left - margins.right; const yMax = height - margins.top - margins.bottom; + // Create scales const xScale = scaleBand< string >( { range: [ 0, xMax ], domain: data.map( d => d.label ), @@ -63,6 +72,14 @@ const BarChart: FC< BarChartProps > = ( { hideTooltip(); }, [ hideTooltip ] ); + const legendItems = [ + { + label: seriesLabel, + value: '', // Empty string since we don't want to show a specific value + color: theme.colors[ 0 ], + }, + ]; + return (
@@ -98,10 +115,17 @@ const BarChart: FC< BarChartProps > = ( { left={ tooltipLeft } /> ) } + + { showLegend && ( + + ) }
); }; BarChart.displayName = 'BarChart'; - export default BarChart; diff --git a/projects/js-packages/charts/src/components/bar-chart/stories/index.stories.tsx b/projects/js-packages/charts/src/components/bar-chart/stories/index.stories.tsx index 5e7f98699165d..5712257d6d35e 100644 --- a/projects/js-packages/charts/src/components/bar-chart/stories/index.stories.tsx +++ b/projects/js-packages/charts/src/components/bar-chart/stories/index.stories.tsx @@ -26,6 +26,9 @@ Default.args = { margin: { top: 20, right: 20, bottom: 40, left: 40 }, withTooltips: false, data: data[ 0 ].data, + seriesLabel: data[ 0 ].group, + showLegend: false, + legendOrientation: 'horizontal', }; export const WithTooltips = Template.bind( {} ); @@ -41,3 +44,23 @@ WithTooltips.parameters = { }, }, }; + +export const WithLegend = { + args: { + width: 500, + height: 350, + margin: { top: 20, right: 20, bottom: 40, left: 40 }, + data: data[ 0 ].data, + seriesLabel: data[ 0 ].group, + showTooltips: true, + showLegend: true, + legendOrientation: 'horizontal', + }, +}; + +export const WithVerticalLegend = { + args: { + ...WithLegend.args, + legendOrientation: 'vertical', + }, +}; diff --git a/projects/js-packages/charts/src/components/legend/base-legend.tsx b/projects/js-packages/charts/src/components/legend/base-legend.tsx new file mode 100644 index 0000000000000..fb6a32f1aa28a --- /dev/null +++ b/projects/js-packages/charts/src/components/legend/base-legend.tsx @@ -0,0 +1,71 @@ +import { LegendOrdinal } from '@visx/legend'; +import { scaleOrdinal } from '@visx/scale'; +import clsx from 'clsx'; +import { FC } from 'react'; +import styles from './legend.module.scss'; +import type { LegendProps } from './types'; + +/** + * Base legend component that displays color-coded items with labels using visx + * @param {object} props - Component properties + * @param {Array} props.items - Array of legend items to display + * @param {string} props.className - Additional CSS class names + * @param {string} props.orientation - Layout orientation (horizontal/vertical) + * @return {JSX.Element} Rendered legend component + */ +const orientationToFlexDirection = { + horizontal: 'row' as const, + vertical: 'column' as const, +}; + +export const BaseLegend: FC< LegendProps > = ( { + items, + className, + orientation = 'horizontal', +} ) => { + const legendScale = scaleOrdinal( { + domain: items.map( item => item.label ), + range: items.map( item => item.color ), + } ); + + return ( +
+ + { labels => ( +
+ { labels.map( label => ( +
+ + + + + { label.text } + { items.find( item => item.label === label.text )?.value && ( + + { items.find( item => item.label === label.text )?.value } + + ) } + +
+ ) ) } +
+ ) } +
+
+ ); +}; diff --git a/projects/js-packages/charts/src/components/legend/index.ts b/projects/js-packages/charts/src/components/legend/index.ts new file mode 100644 index 0000000000000..a7609da9a205f --- /dev/null +++ b/projects/js-packages/charts/src/components/legend/index.ts @@ -0,0 +1,2 @@ +export { BaseLegend as Legend } from './base-legend'; +export type { LegendProps } from './types'; diff --git a/projects/js-packages/charts/src/components/legend/legend.module.scss b/projects/js-packages/charts/src/components/legend/legend.module.scss new file mode 100644 index 0000000000000..4158534e0b2dc --- /dev/null +++ b/projects/js-packages/charts/src/components/legend/legend.module.scss @@ -0,0 +1,36 @@ +.legend { + &--horizontal { + display: flex; + flex-direction: row; + flex-wrap: wrap; + gap: 16px; + } + + &--vertical { + display: flex; + flex-direction: column; + gap: 8px; + } +} + +.legend-item { + display: flex; + align-items: center; + gap: 8px; + font-size: 0.875rem; +} + +.legend-item-swatch { + border-radius: 2px; +} + +.legend-item-label { + color: var(--jp-gray-80, #2c3338); + display: flex; + align-items: center; + gap: 0.5rem; +} + +.legend-item-value { + font-weight: 500; +} diff --git a/projects/js-packages/charts/src/components/legend/stories/index.stories.tsx b/projects/js-packages/charts/src/components/legend/stories/index.stories.tsx new file mode 100644 index 0000000000000..2844ecbfd8ea4 --- /dev/null +++ b/projects/js-packages/charts/src/components/legend/stories/index.stories.tsx @@ -0,0 +1,49 @@ +import { Meta, StoryObj } from '@storybook/react'; +import { BaseLegend } from '../base-legend'; + +const meta: Meta< typeof BaseLegend > = { + title: 'JS Packages/Charts/Legend', + component: BaseLegend, + parameters: { + layout: 'centered', + docs: { + description: { + component: + 'A flexible legend component that can be customized with different styles and orientations.', + }, + }, + }, +}; + +export default meta; +type Story = StoryObj< typeof BaseLegend >; + +const mockData = [ + { label: 'Desktop', value: '86%', color: '#3858E9' }, + { label: 'Mobile', value: '52%', color: '#80C8FF' }, +]; + +export const Horizontal: Story = { + args: { + items: mockData, + orientation: 'horizontal', + }, +}; + +export const Vertical: Story = { + args: { + items: mockData, + orientation: 'vertical', + }, +}; + +export const WithLongLabels: Story = { + args: { + items: [ + { label: 'Very Long Desktop Usage', value: '86%', color: '#3858E9' }, + { label: 'Extended Mobile Sessions', value: '52%', color: '#80C8FF' }, + { label: 'Tablet Device Access', value: '35%', color: '#44B556' }, + ], + orientation: 'horizontal', + }, +}; diff --git a/projects/js-packages/charts/src/components/legend/types.ts b/projects/js-packages/charts/src/components/legend/types.ts new file mode 100644 index 0000000000000..ab66fa1210c0f --- /dev/null +++ b/projects/js-packages/charts/src/components/legend/types.ts @@ -0,0 +1,14 @@ +import { scaleOrdinal } from '@visx/scale'; + +export type LegendItem = { + label: string; + value: number | string; + color: string; +}; + +export type LegendProps = { + items: LegendItem[]; + className?: string; + orientation?: 'horizontal' | 'vertical'; + scale?: ReturnType< typeof scaleOrdinal >; +}; diff --git a/projects/js-packages/charts/src/components/line-chart/line-chart.tsx b/projects/js-packages/charts/src/components/line-chart/line-chart.tsx index 155f2adee032a..0b1f19acca72f 100644 --- a/projects/js-packages/charts/src/components/line-chart/line-chart.tsx +++ b/projects/js-packages/charts/src/components/line-chart/line-chart.tsx @@ -9,6 +9,7 @@ import { import clsx from 'clsx'; import { FC } from 'react'; import { useChartTheme } from '../../providers/theme/theme-provider'; +import { Legend } from '../legend'; import styles from './line-chart.module.scss'; import type { BaseChartProps, DataPointDate, SeriesData } from '../shared/types'; @@ -77,6 +78,8 @@ const LineChart: FC< LineChartProps > = ( { margin = { top: 20, right: 20, bottom: 40, left: 40 }, className, withTooltips = true, + showLegend = false, + legendOrientation = 'horizontal', } ) => { const providerTheme = useChartTheme(); @@ -86,6 +89,13 @@ const LineChart: FC< LineChartProps > = ( { ); } + // Create legend items from group labels, this iterates over groups rather than data points + const legendItems = data.map( ( group, index ) => ( { + label: group.label, // Label for each unique group + value: '', // Empty string since we don't want to show a specific value + color: providerTheme.colors[ index % providerTheme.colors.length ], + } ) ); + const accessors = { xAccessor: ( d: DataPointDate ) => d.date, yAccessor: ( d: DataPointDate ) => d.value, @@ -134,6 +144,14 @@ const LineChart: FC< LineChartProps > = ( { /> ) } + + { showLegend && ( + + ) } ); }; diff --git a/projects/js-packages/charts/src/components/line-chart/stories/index.stories.tsx b/projects/js-packages/charts/src/components/line-chart/stories/index.stories.tsx index b09bc9594c4fd..8dcd69849cac8 100644 --- a/projects/js-packages/charts/src/components/line-chart/stories/index.stories.tsx +++ b/projects/js-packages/charts/src/components/line-chart/stories/index.stories.tsx @@ -26,6 +26,8 @@ Default.args = { height: 300, margin: { top: 20, right: 20, bottom: 30, left: 40 }, data: sampleData, + showLegend: false, + legendOrientation: 'horizontal', }; // Story with single data series @@ -40,10 +42,7 @@ SingleSeries.args = { // Story without tooltip export const WithoutTooltip = Template.bind( {} ); WithoutTooltip.args = { - width: 500, - height: 300, - margin: { top: 20, right: 20, bottom: 30, left: 40 }, - data: sampleData, + ...Default.args, withTooltips: false, }; @@ -55,3 +54,17 @@ CustomDimensions.args = { margin: { top: 20, right: 20, bottom: 30, left: 40 }, data: sampleData, }; + +// Story with horizontal legend +export const WithLegend = Template.bind( {} ); +WithLegend.args = { + ...Default.args, +}; + +// Story with vertical legend +export const WithVerticalLegend = Template.bind( {} ); +WithVerticalLegend.args = { + ...Default.args, + showLegend: true, + legendOrientation: 'vertical', +}; diff --git a/projects/js-packages/charts/src/components/pie-chart/pie-chart.tsx b/projects/js-packages/charts/src/components/pie-chart/pie-chart.tsx index 764910bfa82f7..74fdcefe4711e 100644 --- a/projects/js-packages/charts/src/components/pie-chart/pie-chart.tsx +++ b/projects/js-packages/charts/src/components/pie-chart/pie-chart.tsx @@ -4,6 +4,7 @@ import clsx from 'clsx'; import { SVGProps } from 'react'; import useChartMouseHandler from '../../hooks/use-chart-mouse-handler'; import { useChartTheme, defaultTheme } from '../../providers/theme'; +import { Legend } from '../legend'; import { BaseTooltip } from '../tooltip'; import styles from './pie-chart.module.scss'; import type { BaseChartProps, DataPoint } from '../shared/types'; @@ -30,6 +31,8 @@ const PieChart = ( { withTooltips = false, innerRadius = 0, className, + showLegend, + legendOrientation, }: PieChartProps ) => { const providerTheme = useChartTheme(); const { onMouseMove, onMouseLeave, tooltipOpen, tooltipData, tooltipLeft, tooltipTop } = @@ -48,6 +51,13 @@ const PieChart = ( { fill: d => d.color || providerTheme.colors[ d.index ], }; + // Create legend items from data + const legendItems = data.map( ( item, index ) => ( { + label: item.label, + value: item.value.toString(), + color: providerTheme.colors[ index % providerTheme.colors.length ], + } ) ); + return (
@@ -99,6 +109,15 @@ const PieChart = ( { + + { showLegend && ( + + ) } + { withTooltips && tooltipOpen && tooltipData && ( = ( { withTooltips = false, clockwise = true, thickness = 0.4, + showLegend, + legendOrientation, } ) => { const providerTheme = useChartTheme(); const { tooltipOpen, tooltipLeft, tooltipTop, tooltipData, hideTooltip, showTooltip } = @@ -98,6 +101,13 @@ const PieSemiCircleChart: FC< PieSemiCircleChartProps > = ( { [ handleMouseMove ] ); + // Create legend items + const legendItems = data.map( ( item, index ) => ( { + label: item.label, + value: item.valueDisplay || item.value.toString(), + color: accessors.fill( { ...item, index } ), + } ) ); + return (
= ( { left={ tooltipLeft } /> ) } + + { showLegend && ( + + ) }
); }; diff --git a/projects/js-packages/charts/src/components/pie-semi-circle-chart/stories/index.stories.tsx b/projects/js-packages/charts/src/components/pie-semi-circle-chart/stories/index.stories.tsx index 6f2eee9df73ae..6878a91700544 100644 --- a/projects/js-packages/charts/src/components/pie-semi-circle-chart/stories/index.stories.tsx +++ b/projects/js-packages/charts/src/components/pie-semi-circle-chart/stories/index.stories.tsx @@ -65,6 +65,8 @@ Default.args = { note: 'Windows +10%', thickness: 0.4, clockwise: true, + showLegend: false, + legendOrientation: 'horizontal', }; export const WithTooltips = Template.bind( {} ); @@ -75,3 +77,17 @@ WithTooltips.args = { note: 'Windows +10%', withTooltips: true, }; + +export const WithHorizontalLegend = Template.bind( {} ); +WithHorizontalLegend.args = { + ...Default.args, + showLegend: true, + legendOrientation: 'horizontal', +}; + +export const WithVerticalLegend = Template.bind( {} ); +WithVerticalLegend.args = { + ...Default.args, + showLegend: true, + legendOrientation: 'vertical', +}; diff --git a/projects/js-packages/charts/src/components/shared/types.d.ts b/projects/js-packages/charts/src/components/shared/types.d.ts index 4b0836d7b4770..f21641b23b4f1 100644 --- a/projects/js-packages/charts/src/components/shared/types.d.ts +++ b/projects/js-packages/charts/src/components/shared/types.d.ts @@ -96,4 +96,12 @@ export type BaseChartProps< T = DataPoint | DataPointDate > = { * Whether to show tooltips on hover. False by default. */ withTooltips?: boolean; + /** + * Whether to show legend + */ + showLegend?: boolean; + /** + * Legend orientation + */ + legendOrientation?: 'horizontal' | 'vertical'; }; From 38efec6d76d09c00e7d69dea2d2e40ad459cef6d Mon Sep 17 00:00:00 2001 From: Grzegorz Chudzinski-Pawlowski <112354940+grzegorz-cp@users.noreply.github.com> Date: Wed, 18 Dec 2024 18:03:19 +1300 Subject: [PATCH 6/9] Charts: Adding multi series support for bar chart (#40641) * Charts: Adding support to multi series for bar charts * changelog * Charts: Fixing bar chart series with legends * Charts: Adding TS type --- .../charts/changelog/add-charts-bar-multi | 4 + .../src/components/bar-chart/bar-chart.tsx | 150 ++--- .../bar-chart/stories/index.stories.tsx | 67 ++- .../bar-chart/stories/sample-data.ts | 525 +++++++++--------- .../legend/stories/index.stories.tsx | 2 +- .../src/components/line-chart/line-chart.tsx | 4 +- .../line-chart/stories/index.stories.tsx | 4 +- .../charts/src/components/shared/types.d.ts | 4 +- .../src/components/tooltip/base-tooltip.tsx | 25 +- .../tooltip/stories/index.stories.tsx | 2 +- .../providers/theme/stories/index.stories.tsx | 36 +- 11 files changed, 439 insertions(+), 384 deletions(-) create mode 100644 projects/js-packages/charts/changelog/add-charts-bar-multi diff --git a/projects/js-packages/charts/changelog/add-charts-bar-multi b/projects/js-packages/charts/changelog/add-charts-bar-multi new file mode 100644 index 0000000000000..cc4a689ae6231 --- /dev/null +++ b/projects/js-packages/charts/changelog/add-charts-bar-multi @@ -0,0 +1,4 @@ +Significance: patch +Type: added + +Adding support for multiple data series to the Bar chart component. diff --git a/projects/js-packages/charts/src/components/bar-chart/bar-chart.tsx b/projects/js-packages/charts/src/components/bar-chart/bar-chart.tsx index 5c1b03a1d3d98..08b87037e0b31 100644 --- a/projects/js-packages/charts/src/components/bar-chart/bar-chart.tsx +++ b/projects/js-packages/charts/src/components/bar-chart/bar-chart.tsx @@ -10,18 +10,11 @@ import { useChartTheme } from '../../providers/theme'; import { Legend } from '../legend'; import { BaseTooltip } from '../tooltip'; import styles from './bar-chart.module.scss'; -import type { BaseChartProps, DataPoint } from '../shared/types'; - -interface BarChartProps extends BaseChartProps { - /** - * Array of data points to display in the chart - */ - data: DataPoint[]; - /** - * Label for the data series - */ - seriesLabel?: string; -} +import type { BaseChartProps, SeriesData } from '../shared/types'; + +interface BarChartProps extends BaseChartProps< SeriesData[] > {} + +type BarChartTooltipData = { value: number; xLabel: string; yLabel: string; seriesIndex: number }; const BarChart: FC< BarChartProps > = ( { data, @@ -32,35 +25,24 @@ const BarChart: FC< BarChartProps > = ( { showLegend = false, legendOrientation = 'horizontal', className, - seriesLabel, } ) => { const theme = useChartTheme(); const { tooltipOpen, tooltipLeft, tooltipTop, tooltipData, hideTooltip, showTooltip } = - useTooltip< DataPoint >(); - - const margins = margin; - const xMax = width - margins.left - margins.right; - const yMax = height - margins.top - margins.bottom; - - // Create scales - const xScale = scaleBand< string >( { - range: [ 0, xMax ], - domain: data.map( d => d.label ), - padding: 0.2, - } ); - - const yScale = scaleLinear< number >( { - range: [ yMax, 0 ], - domain: [ 0, Math.max( ...data.map( d => d.value ) ) ], - } ); + useTooltip< BarChartTooltipData >(); const handleMouseMove = useCallback( - ( event: MouseEvent< SVGRectElement >, datum: DataPoint ) => { + ( + event: MouseEvent< SVGRectElement >, + value: number, + xLabel: string, + yLabel: string, + seriesIndex: number + ) => { const coords = localPoint( event ); if ( ! coords ) return; showTooltip( { - tooltipData: datum, + tooltipData: { value, xLabel, yLabel, seriesIndex }, tooltipLeft: coords.x, tooltipTop: coords.y - 10, } ); @@ -72,48 +54,90 @@ const BarChart: FC< BarChartProps > = ( { hideTooltip(); }, [ hideTooltip ] ); - const legendItems = [ - { - label: seriesLabel, - value: '', // Empty string since we don't want to show a specific value - color: theme.colors[ 0 ], - }, - ]; + if ( ! data?.length ) { + return
Empty...
; + } + + const margins = margin; + const xMax = width - margins.left - margins.right; + const yMax = height - margins.top - margins.bottom; + + // Get labels for x-axis from the first series (assuming all series have same labels) + const labels = data[ 0 ].data?.map( d => d?.label ); + + // Create scales + const xScale = scaleBand< string >( { + range: [ 0, xMax ], + domain: labels, + padding: 0.2, + } ); + + const innerScale = scaleBand( { + range: [ 0, xScale.bandwidth() ], + domain: data.map( ( _, i ) => i.toString() ), + padding: 0.1, + } ); + + const yScale = scaleLinear< number >( { + range: [ yMax, 0 ], + domain: [ + 0, + Math.max( ...data.map( series => Math.max( ...series.data.map( d => d?.value || 0 ) ) ) ), + ], + } ); + + // Create legend items from group labels, this iterates over groups rather than data points + const legendItems = data.map( ( group, index ) => ( { + label: group.label, // Label for each unique group + value: '', // Empty string since we don't want to show a specific value + color: theme.colors[ index % theme.colors.length ], + } ) ); return (
- { data.map( d => { - const handleBarMouseMove = event => handleMouseMove( event, d ); - - return ( - - ); - } ) } + { data.map( ( series, seriesIndex ) => ( + + { series.data.map( d => { + const xPos = xScale( d.label ); + if ( xPos === undefined ) return null; + + const barWidth = innerScale.bandwidth(); + const barX = xPos + ( innerScale( seriesIndex.toString() ) ?? 0 ); + + const handleBarMouseMove = event => + handleMouseMove( event, d.value, d.label, series.label, seriesIndex ); + + return ( + + ); + } ) } + + ) ) } { withTooltips && tooltipOpen && tooltipData && ( - + +
+
{ tooltipData.yLabel }
+
+ { tooltipData.xLabel }: { tooltipData.value } +
+
+
) } { showLegend && ( diff --git a/projects/js-packages/charts/src/components/bar-chart/stories/index.stories.tsx b/projects/js-packages/charts/src/components/bar-chart/stories/index.stories.tsx index 5712257d6d35e..0ca8d40d60462 100644 --- a/projects/js-packages/charts/src/components/bar-chart/stories/index.stories.tsx +++ b/projects/js-packages/charts/src/components/bar-chart/stories/index.stories.tsx @@ -1,6 +1,6 @@ import BarChart from '../index'; import data from './sample-data'; -import type { Meta } from '@storybook/react'; +import type { Meta, StoryObj } from '@storybook/react'; export default { title: 'JS Packages/Charts/Types/Bar Chart', @@ -17,41 +17,56 @@ export default { ], } satisfies Meta< typeof BarChart >; -const Template = args => ; +type StoryType = StoryObj< typeof BarChart >; -export const Default = Template.bind( {} ); -Default.args = { - width: 500, - height: 300, - margin: { top: 20, right: 20, bottom: 40, left: 40 }, - withTooltips: false, - data: data[ 0 ].data, - seriesLabel: data[ 0 ].group, - showLegend: false, - legendOrientation: 'horizontal', +// Default story with multiple series +export const Default: StoryType = { + args: { + width: 800, + height: 500, + withTooltips: true, + data: [ data[ 0 ], data[ 1 ], data[ 2 ] ], // limit to 3 series for better readability + showLegend: false, + legendOrientation: 'horizontal', + }, }; -export const WithTooltips = Template.bind( {} ); -WithTooltips.args = { - ...Default.args, - withTooltips: true, +// Story with single data series +export const SingleSeries: StoryType = { + args: { + ...Default.args, + data: [ data[ 0 ] ], + }, + parameters: { + docs: { + description: { + story: 'Bar chart with a single data series.', + }, + }, + }, }; -WithTooltips.parameters = { - docs: { - description: { - story: 'Bar chart with interactive tooltips that appear on hover.', +// Story without tooltip +export const ManyDataSeries: StoryType = { + args: { + ...Default.args, + width: 1200, + height: 700, + data, + }, + parameters: { + docs: { + description: { + story: 'Bar chart with many data series.', + }, }, }, }; export const WithLegend = { args: { - width: 500, - height: 350, - margin: { top: 20, right: 20, bottom: 40, left: 40 }, - data: data[ 0 ].data, - seriesLabel: data[ 0 ].group, + ...Default.args, + data, showTooltips: true, showLegend: true, legendOrientation: 'horizontal', @@ -61,6 +76,8 @@ export const WithLegend = { export const WithVerticalLegend = { args: { ...WithLegend.args, + data: [ data[ 0 ] ], + showLegend: true, legendOrientation: 'vertical', }, }; diff --git a/projects/js-packages/charts/src/components/bar-chart/stories/sample-data.ts b/projects/js-packages/charts/src/components/bar-chart/stories/sample-data.ts index 61e9478b82757..1aeda859a7050 100644 --- a/projects/js-packages/charts/src/components/bar-chart/stories/sample-data.ts +++ b/projects/js-packages/charts/src/components/bar-chart/stories/sample-data.ts @@ -6,304 +6,323 @@ const olympicMedals = [ { group: 'United States', + label: 'United States', data: [ - { label: '2024', value: 126 }, // France - { label: '2020', value: 113 }, // Tokyo - { label: '2016', value: 121 }, // Rio - { label: '2012', value: 104 }, // London - { label: '2008', value: 112 }, // Beijing - { label: '2004', value: 101 }, // Athens - { label: '2000', value: 93 }, // Sydney - { label: '1996', value: 101 }, // Atlanta - { label: '1992', value: 108 }, // Barcelona - { label: '1988', value: 94 }, // Seoul - { label: '1984', value: 174 }, // Los Angeles - { label: '1980', value: 0 }, // Moscow (boycott) - { label: '1976', value: 94 }, // Montreal - { label: '1972', value: 94 }, // Munich - { label: '1968', value: 107 }, // Mexico City - { label: '1964', value: 90 }, // Tokyo - { label: '1960', value: 71 }, // Rome - { label: '1956', value: 74 }, // Melbourne - { label: '1952', value: 76 }, // Helsinki - { label: '1948', value: 84 }, // London - { label: '1936', value: 56 }, // Berlin - { label: '1932', value: 103 }, // Los Angeles - { label: '1928', value: 56 }, // Amsterdam - { label: '1924', value: 99 }, // Paris - { label: '1920', value: 95 }, // Antwerp - { label: '1912', value: 63 }, // Stockholm - { label: '1908', value: 47 }, // London - { label: '1904', value: 239 }, // St. Louis - { label: '1900', value: 47 }, // Paris { label: '1896', value: 20 }, // Athens - ], - }, - { - group: 'China', - data: [ - { label: '2024', value: 91 }, - { label: '2020', value: 88 }, - { label: '2016', value: 70 }, - { label: '2012', value: 91 }, - { label: '2008', value: 100 }, // Host - { label: '2004', value: 63 }, - { label: '2000', value: 59 }, - { label: '1996', value: 50 }, - { label: '1992', value: 54 }, - { label: '1988', value: 28 }, - { label: '1984', value: 32 }, - { label: '1980', value: 0 }, // Did not participate - { label: '1976', value: 0 }, // Did not participate - { label: '1972', value: 0 }, // Did not participate - { label: '1968', value: 0 }, // Did not participate - { label: '1964', value: 0 }, // Did not participate - { label: '1960', value: 0 }, // Did not participate - { label: '1956', value: 0 }, // Did not participate - { label: '1952', value: 0 }, // First participation in 1984 - // No participation before 1984 + { label: '1900', value: 47 }, // Paris + { label: '1904', value: 239 }, // St. Louis + { label: '1908', value: 47 }, // London + { label: '1912', value: 63 }, // Stockholm + { label: '1920', value: 95 }, // Antwerp + { label: '1924', value: 99 }, // Paris + { label: '1928', value: 56 }, // Amsterdam + { label: '1932', value: 103 }, // Los Angeles + { label: '1936', value: 56 }, // Berlin + { label: '1948', value: 84 }, // London + { label: '1952', value: 76 }, // Helsinki + { label: '1956', value: 74 }, // Melbourne + { label: '1960', value: 71 }, // Rome + { label: '1964', value: 90 }, // Tokyo + { label: '1968', value: 107 }, // Mexico City + { label: '1972', value: 94 }, // Munich + { label: '1976', value: 94 }, // Montreal + { label: '1980', value: 0 }, // Moscow (boycott) + { label: '1984', value: 174 }, // Los Angeles + { label: '1988', value: 94 }, // Seoul + { label: '1992', value: 108 }, // Barcelona + { label: '1996', value: 101 }, // Atlanta + { label: '2000', value: 93 }, // Sydney + { label: '2004', value: 101 }, // Athens + { label: '2008', value: 112 }, // Beijing + { label: '2012', value: 104 }, // London + { label: '2016', value: 121 }, // Rio + { label: '2020', value: 113 }, // Tokyo + { label: '2024', value: 126 }, // France ], }, { group: 'Great Britain', + label: 'Great Britain', data: [ - { label: '2024', value: 60 }, - { label: '2020', value: 65 }, - { label: '2016', value: 67 }, - { label: '2012', value: 65 }, - { label: '2008', value: 47 }, - { label: '2004', value: 30 }, - { label: '2000', value: 28 }, - { label: '1996', value: 15 }, - { label: '1992', value: 20 }, - { label: '1988', value: 24 }, - { label: '1984', value: 37 }, - { label: '1980', value: 21 }, - { label: '1976', value: 13 }, - { label: '1972', value: 18 }, - { label: '1968', value: 13 }, - { label: '1964', value: 18 }, - { label: '1960', value: 20 }, - { label: '1956', value: 24 }, - { label: '1952', value: 11 }, - { label: '1948', value: 23 }, - { label: '1936', value: 14 }, - { label: '1932', value: 16 }, - { label: '1928', value: 20 }, - { label: '1924', value: 34 }, - { label: '1920', value: 43 }, - { label: '1912', value: 41 }, - { label: '1908', value: 146 }, // Host - { label: '1904', value: 1 }, - { label: '1900', value: 30 }, { label: '1896', value: 7 }, + { label: '1900', value: 30 }, + { label: '1904', value: 1 }, + { label: '1908', value: 146 }, // Host + { label: '1912', value: 41 }, + { label: '1920', value: 43 }, + { label: '1924', value: 34 }, + { label: '1928', value: 20 }, + { label: '1932', value: 16 }, + { label: '1936', value: 14 }, + { label: '1948', value: 23 }, + { label: '1952', value: 11 }, + { label: '1956', value: 24 }, + { label: '1960', value: 20 }, + { label: '1964', value: 18 }, + { label: '1968', value: 13 }, + { label: '1972', value: 18 }, + { label: '1976', value: 13 }, + { label: '1980', value: 21 }, + { label: '1984', value: 37 }, + { label: '1988', value: 24 }, + { label: '1992', value: 20 }, + { label: '1996', value: 15 }, + { label: '2000', value: 28 }, + { label: '2004', value: 30 }, + { label: '2008', value: 47 }, + { label: '2012', value: 65 }, + { label: '2016', value: 67 }, + { label: '2020', value: 65 }, + { label: '2024', value: 60 }, ], }, { group: 'Japan', + label: 'Japan', data: [ - { label: '2024', value: 45 }, - { label: '2020', value: 58 }, // Host - { label: '2016', value: 41 }, - { label: '2012', value: 38 }, - { label: '2008', value: 25 }, - { label: '2004', value: 37 }, - { label: '2000', value: 18 }, - { label: '1996', value: 14 }, - { label: '1992', value: 22 }, + { label: '1896', value: 0 }, // Did not participate + { label: '1900', value: 0 }, // Did not participate + { label: '1904', value: 0 }, // Did not participate + { label: '1908', value: 0 }, // Did not participate + { label: '1912', value: 2 }, + { label: '1920', value: 0 }, // Did not participate + { label: '1924', value: 4 }, + { label: '1928', value: 5 }, + { label: '1932', value: 18 }, + { label: '1936', value: 20 }, + { label: '1948', value: 0 }, // Excluded + { label: '1952', value: 9 }, + { label: '1956', value: 19 }, + { label: '1960', value: 18 }, + { label: '1964', value: 29 }, // Host + { label: '1968', value: 25 }, + { label: '1972', value: 29 }, + { label: '1976', value: 25 }, + { label: '1980', value: 0 }, // Boycott + { label: '1984', value: 32 }, { label: '1988', value: 14 }, + { label: '1992', value: 22 }, + { label: '1996', value: 14 }, + { label: '2000', value: 18 }, + { label: '2004', value: 37 }, + { label: '2008', value: 25 }, + { label: '2012', value: 38 }, + { label: '2016', value: 41 }, + { label: '2020', value: 58 }, // Host + { label: '2024', value: 45 }, + ], + }, + { + group: 'China', + label: 'China', + data: [ + { label: '1896', value: 0 }, // No participation before 1984 + { label: '1900', value: 0 }, // No participation before 1984 + { label: '1904', value: 0 }, // No participation before 1984 + { label: '1908', value: 0 }, // No participation before 1984 + { label: '1912', value: 0 }, // No participation before 1984 + { label: '1920', value: 0 }, // No participation before 1984 + { label: '1924', value: 0 }, // No participation before 1984 + { label: '1928', value: 0 }, // No participation before 1984 + { label: '1932', value: 0 }, // No participation before 1984 + { label: '1936', value: 0 }, // No participation before 1984 + { label: '1948', value: 0 }, // No participation before 1984 + { label: '1952', value: 0 }, // First participation in 1984 + { label: '1956', value: 0 }, // Did not participate + { label: '1960', value: 0 }, // Did not participate + { label: '1964', value: 0 }, // Did not participate + { label: '1968', value: 0 }, // Did not participate + { label: '1972', value: 0 }, // Did not participate + { label: '1976', value: 0 }, // Did not participate + { label: '1980', value: 0 }, // Did not participate { label: '1984', value: 32 }, - { label: '1980', value: 0 }, // Boycott - { label: '1976', value: 25 }, - { label: '1972', value: 29 }, - { label: '1968', value: 25 }, - { label: '1964', value: 29 }, // Host - { label: '1960', value: 18 }, - { label: '1956', value: 19 }, - { label: '1952', value: 9 }, - { label: '1948', value: 0 }, // Excluded - { label: '1936', value: 20 }, - { label: '1932', value: 18 }, - { label: '1928', value: 5 }, - { label: '1924', value: 4 }, - { label: '1920', value: 0 }, // Did not participate - { label: '1912', value: 2 }, - { label: '1908', value: 0 }, // Did not participate - { label: '1904', value: 0 }, // Did not participate - { label: '1900', value: 0 }, // Did not participate - { label: '1896', value: 0 }, // Did not participate + { label: '1988', value: 28 }, + { label: '1992', value: 54 }, + { label: '1996', value: 50 }, + { label: '2000', value: 59 }, + { label: '2004', value: 63 }, + { label: '2008', value: 100 }, // Host + { label: '2012', value: 91 }, + { label: '2016', value: 70 }, + { label: '2020', value: 88 }, + { label: '2024', value: 91 }, ], }, { group: 'France', + label: 'France', data: [ - { label: '2024', value: 55 }, // Host - { label: '2020', value: 33 }, - { label: '2016', value: 42 }, - { label: '2012', value: 35 }, - { label: '2008', value: 43 }, - { label: '2004', value: 33 }, - { label: '2000', value: 38 }, - { label: '1996', value: 37 }, - { label: '1992', value: 29 }, - { label: '1988', value: 16 }, - { label: '1984', value: 28 }, - { label: '1980', value: 14 }, - { label: '1976', value: 9 }, - { label: '1972', value: 13 }, - { label: '1968', value: 15 }, - { label: '1964', value: 15 }, - { label: '1960', value: 5 }, - { label: '1956', value: 14 }, - { label: '1952', value: 18 }, - { label: '1948', value: 29 }, - { label: '1936', value: 19 }, - { label: '1932', value: 19 }, - { label: '1928', value: 21 }, - { label: '1924', value: 38 }, // Host - { label: '1920', value: 41 }, - { label: '1912', value: 14 }, - { label: '1908', value: 19 }, - { label: '1904', value: 0 }, - { label: '1900', value: 101 }, // Host { label: '1896', value: 11 }, + { label: '1900', value: 101 }, // Host + { label: '1904', value: 0 }, + { label: '1908', value: 19 }, + { label: '1912', value: 14 }, + { label: '1920', value: 41 }, + { label: '1924', value: 38 }, // Host + { label: '1928', value: 21 }, + { label: '1932', value: 19 }, + { label: '1936', value: 19 }, + { label: '1948', value: 29 }, + { label: '1952', value: 18 }, + { label: '1956', value: 14 }, + { label: '1960', value: 5 }, + { label: '1964', value: 15 }, + { label: '1968', value: 15 }, + { label: '1972', value: 13 }, + { label: '1976', value: 9 }, + { label: '1980', value: 14 }, + { label: '1984', value: 28 }, + { label: '1988', value: 16 }, + { label: '1992', value: 29 }, + { label: '1996', value: 37 }, + { label: '2000', value: 38 }, + { label: '2004', value: 33 }, + { label: '2008', value: 43 }, + { label: '2012', value: 35 }, + { label: '2016', value: 42 }, + { label: '2020', value: 33 }, + { label: '2024', value: 55 }, // Host ], }, { group: 'Germany', + label: 'Germany', data: [ - { label: '2024', value: 40 }, - { label: '2020', value: 37 }, - { label: '2016', value: 42 }, - { label: '2012', value: 44 }, - { label: '2008', value: 41 }, - { label: '2004', value: 48 }, - { label: '2000', value: 56 }, - { label: '1996', value: 65 }, - { label: '1992', value: 82 }, // Unified team - { label: '1988', value: 142 }, // East and West combined - { label: '1984', value: 59 }, // West Germany only - { label: '1980', value: 126 }, // East Germany only - { label: '1976', value: 125 }, // East and West combined - { label: '1972', value: 133 }, // Host (West Germany) - { label: '1968', value: 91 }, // East and West combined - { label: '1964', value: 96 }, // United Team - { label: '1960', value: 87 }, // United Team - { label: '1956', value: 64 }, - { label: '1952', value: 24 }, - { label: '1936', value: 89 }, // Host - { label: '1932', value: 20 }, - { label: '1928', value: 31 }, - { label: '1912', value: 25 }, - { label: '1908', value: 22 }, - { label: '1904', value: 4 }, - { label: '1900', value: 8 }, { label: '1896', value: 13 }, + { label: '1900', value: 8 }, + { label: '1904', value: 4 }, + { label: '1908', value: 22 }, + { label: '1912', value: 25 }, + { label: '1928', value: 31 }, + { label: '1932', value: 20 }, + { label: '1936', value: 89 }, // Host + { label: '1952', value: 24 }, + { label: '1956', value: 64 }, + { label: '1960', value: 87 }, // United Team + { label: '1964', value: 96 }, // United Team + { label: '1968', value: 91 }, // East and West combined + { label: '1972', value: 133 }, // Host (West Germany) + { label: '1976', value: 125 }, // East and West combined + { label: '1980', value: 126 }, // East Germany only + { label: '1984', value: 59 }, // West Germany only + { label: '1988', value: 142 }, // East and West combined + { label: '1992', value: 82 }, // Unified team + { label: '1996', value: 65 }, + { label: '2000', value: 56 }, + { label: '2004', value: 48 }, + { label: '2008', value: 41 }, + { label: '2012', value: 44 }, + { label: '2016', value: 42 }, + { label: '2020', value: 37 }, + { label: '2024', value: 40 }, ], }, { group: 'Australia', + label: 'Australia', data: [ - { label: '2024', value: 42 }, - { label: '2020', value: 46 }, - { label: '2016', value: 29 }, - { label: '2012', value: 35 }, - { label: '2008', value: 46 }, - { label: '2004', value: 49 }, - { label: '2000', value: 58 }, // Host - { label: '1996', value: 41 }, - { label: '1992', value: 27 }, - { label: '1988', value: 14 }, - { label: '1984', value: 24 }, - { label: '1980', value: 9 }, - { label: '1976', value: 5 }, - { label: '1972', value: 8 }, - { label: '1968', value: 17 }, - { label: '1964', value: 18 }, - { label: '1960', value: 22 }, - { label: '1956', value: 35 }, // Host - { label: '1952', value: 11 }, - { label: '1948', value: 13 }, - { label: '1936', value: 3 }, - { label: '1932', value: 5 }, - { label: '1928', value: 4 }, - { label: '1924', value: 6 }, - { label: '1920', value: 3 }, - { label: '1912', value: 7 }, - { label: '1908', value: 15 }, - { label: '1904', value: 0 }, - { label: '1900', value: 2 }, { label: '1896', value: 0 }, + { label: '1900', value: 2 }, + { label: '1904', value: 0 }, + { label: '1908', value: 15 }, + { label: '1912', value: 7 }, + { label: '1920', value: 3 }, + { label: '1924', value: 6 }, + { label: '1928', value: 4 }, + { label: '1932', value: 5 }, + { label: '1936', value: 3 }, + { label: '1948', value: 13 }, + { label: '1952', value: 11 }, + { label: '1956', value: 35 }, // Host + { label: '1960', value: 22 }, + { label: '1964', value: 18 }, + { label: '1968', value: 17 }, + { label: '1972', value: 8 }, + { label: '1976', value: 5 }, + { label: '1980', value: 9 }, + { label: '1984', value: 24 }, + { label: '1988', value: 14 }, + { label: '1992', value: 27 }, + { label: '1996', value: 41 }, + { label: '2000', value: 58 }, // Host + { label: '2004', value: 49 }, + { label: '2008', value: 46 }, + { label: '2012', value: 35 }, + { label: '2016', value: 29 }, + { label: '2020', value: 46 }, + { label: '2024', value: 42 }, ], }, { group: 'Poland', + label: 'Poland', data: [ - { label: '2024', value: 15 }, - { label: '2020', value: 14 }, - { label: '2016', value: 11 }, - { label: '2012', value: 10 }, - { label: '2008', value: 10 }, - { label: '2004', value: 10 }, - { label: '2000', value: 14 }, - { label: '1996', value: 17 }, - { label: '1992', value: 19 }, - { label: '1988', value: 16 }, - { label: '1984', value: 0 }, // Boycott - { label: '1980', value: 32 }, - { label: '1976', value: 26 }, - { label: '1972', value: 21 }, - { label: '1968', value: 18 }, - { label: '1964', value: 23 }, - { label: '1960', value: 21 }, - { label: '1956', value: 9 }, - { label: '1952', value: 4 }, - { label: '1948', value: 0 }, - { label: '1936', value: 6 }, - { label: '1932', value: 7 }, - { label: '1928', value: 5 }, - { label: '1924', value: 0 }, - { label: '1920', value: 0 }, - { label: '1912', value: 0 }, // Part of Russian Empire - { label: '1908', value: 0 }, - { label: '1904', value: 0 }, - { label: '1900', value: 0 }, { label: '1896', value: 0 }, + { label: '1900', value: 0 }, + { label: '1904', value: 0 }, + { label: '1908', value: 0 }, + { label: '1912', value: 0 }, // Part of Russian Empire + { label: '1920', value: 0 }, + { label: '1924', value: 0 }, + { label: '1928', value: 5 }, + { label: '1932', value: 7 }, + { label: '1936', value: 6 }, + { label: '1948', value: 0 }, + { label: '1952', value: 4 }, + { label: '1956', value: 9 }, + { label: '1960', value: 21 }, + { label: '1964', value: 23 }, + { label: '1968', value: 18 }, + { label: '1972', value: 21 }, + { label: '1976', value: 26 }, + { label: '1980', value: 32 }, + { label: '1984', value: 0 }, // Boycott + { label: '1988', value: 16 }, + { label: '1992', value: 19 }, + { label: '1996', value: 17 }, + { label: '2000', value: 14 }, + { label: '2004', value: 10 }, + { label: '2008', value: 10 }, + { label: '2012', value: 10 }, + { label: '2016', value: 11 }, + { label: '2020', value: 14 }, + { label: '2024', value: 15 }, ], }, { group: 'Jamaica', + label: 'Jamaica', data: [ - { label: '2024', value: 10 }, - { label: '2020', value: 9 }, - { label: '2016', value: 11 }, - { label: '2012', value: 12 }, - { label: '2008', value: 11 }, - { label: '2004', value: 5 }, - { label: '2000', value: 9 }, - { label: '1996', value: 6 }, - { label: '1992', value: 4 }, - { label: '1988', value: 2 }, - { label: '1984', value: 3 }, - { label: '1980', value: 3 }, - { label: '1976', value: 2 }, - { label: '1972', value: 1 }, - { label: '1968', value: 1 }, - { label: '1964', value: 2 }, - { label: '1960', value: 0 }, - { label: '1956', value: 0 }, - { label: '1952', value: 2 }, - { label: '1948', value: 3 }, // First participation - { label: '1936', value: 0 }, - { label: '1932', value: 0 }, - { label: '1928', value: 0 }, - { label: '1924', value: 0 }, - { label: '1920', value: 0 }, - { label: '1912', value: 0 }, - { label: '1908', value: 0 }, - { label: '1904', value: 0 }, - { label: '1900', value: 0 }, { label: '1896', value: 0 }, + { label: '1900', value: 0 }, + { label: '1904', value: 0 }, + { label: '1908', value: 0 }, + { label: '1912', value: 0 }, + { label: '1920', value: 0 }, + { label: '1924', value: 0 }, + { label: '1928', value: 0 }, + { label: '1932', value: 0 }, + { label: '1936', value: 0 }, + { label: '1948', value: 3 }, // First participation + { label: '1952', value: 2 }, + { label: '1956', value: 0 }, + { label: '1960', value: 0 }, + { label: '1964', value: 2 }, + { label: '1968', value: 1 }, + { label: '1972', value: 1 }, + { label: '1976', value: 2 }, + { label: '1980', value: 3 }, + { label: '1984', value: 3 }, + { label: '1988', value: 2 }, + { label: '1992', value: 4 }, + { label: '1996', value: 6 }, + { label: '2000', value: 9 }, + { label: '2004', value: 5 }, + { label: '2008', value: 11 }, + { label: '2012', value: 12 }, + { label: '2016', value: 11 }, + { label: '2020', value: 9 }, + { label: '2024', value: 10 }, ], }, ]; diff --git a/projects/js-packages/charts/src/components/legend/stories/index.stories.tsx b/projects/js-packages/charts/src/components/legend/stories/index.stories.tsx index 2844ecbfd8ea4..50b9f6c79eb37 100644 --- a/projects/js-packages/charts/src/components/legend/stories/index.stories.tsx +++ b/projects/js-packages/charts/src/components/legend/stories/index.stories.tsx @@ -2,7 +2,7 @@ import { Meta, StoryObj } from '@storybook/react'; import { BaseLegend } from '../base-legend'; const meta: Meta< typeof BaseLegend > = { - title: 'JS Packages/Charts/Legend', + title: 'JS Packages/Charts/Composites/Legend', component: BaseLegend, parameters: { layout: 'centered', diff --git a/projects/js-packages/charts/src/components/line-chart/line-chart.tsx b/projects/js-packages/charts/src/components/line-chart/line-chart.tsx index 0b1f19acca72f..ad5a7a2d0562e 100644 --- a/projects/js-packages/charts/src/components/line-chart/line-chart.tsx +++ b/projects/js-packages/charts/src/components/line-chart/line-chart.tsx @@ -83,7 +83,7 @@ const LineChart: FC< LineChartProps > = ( { } ) => { const providerTheme = useChartTheme(); - if ( ! data.length ) { + if ( ! data?.length ) { return (
Empty...
); @@ -128,7 +128,7 @@ const LineChart: FC< LineChartProps > = ( { ; className?: string; }; +type DefaultDataTooltip = { + data: TooltipData; + component?: ComponentType< TooltipComponentProps >; + children?: never; +}; + +type CustomTooltip = { + children: ReactNode; + data?: never; + component?: never; +}; + +type BaseTooltipProps = TooltipCommonProps & ( DefaultDataTooltip | CustomTooltip ); + const DefaultTooltipContent = ( { data }: TooltipComponentProps ) => ( <> - { data.label }: { data.valueDisplay || data.value } + { data?.label }: { data?.valueDisplay || data?.value } ); @@ -32,11 +44,12 @@ export const BaseTooltip = ( { top, left, component: Component = DefaultTooltipContent, + children, className, }: BaseTooltipProps ) => { return (
- + { children || }
); }; diff --git a/projects/js-packages/charts/src/components/tooltip/stories/index.stories.tsx b/projects/js-packages/charts/src/components/tooltip/stories/index.stories.tsx index 0af79a7d0de00..6a4d07a951d90 100644 --- a/projects/js-packages/charts/src/components/tooltip/stories/index.stories.tsx +++ b/projects/js-packages/charts/src/components/tooltip/stories/index.stories.tsx @@ -9,7 +9,7 @@ const CustomTooltipContent = ( { data } ) => ( ); export default { - title: 'JS Packages/Charts/Tooltip', + title: 'JS Packages/Charts/Composites/Tooltip', component: BaseTooltip, parameters: { layout: 'centered', diff --git a/projects/js-packages/charts/src/providers/theme/stories/index.stories.tsx b/projects/js-packages/charts/src/providers/theme/stories/index.stories.tsx index 27a5f350232fd..31a1aa1c320b1 100644 --- a/projects/js-packages/charts/src/providers/theme/stories/index.stories.tsx +++ b/projects/js-packages/charts/src/providers/theme/stories/index.stories.tsx @@ -1,6 +1,7 @@ import { Meta, StoryObj } from '@storybook/react'; import { ThemeProvider, jetpackTheme, wooTheme } from '../.'; import { LineChart, BarChart, PieSemiCircleChart } from '../../..'; +import barSampleData from '../../../components/bar-chart/stories/sample-data'; const meta: Meta< typeof LineChart > = { title: 'JS Packages/Charts/Themes', @@ -13,16 +14,11 @@ const meta: Meta< typeof LineChart > = { export default meta; type Story = StoryObj< typeof ThemeProvider >; -const sampleData = [ - { date: new Date( '2024-01-01' ), value: 10, label: 'Jan 1' }, - { date: new Date( '2024-01-02' ), value: 20, label: 'Jan 2' }, - { date: new Date( '2024-01-03' ), value: 15, label: 'Jan 3' }, - { date: new Date( '2024-01-04' ), value: 25, label: 'Jan 4' }, - { date: new Date( '2024-01-05' ), value: 30, label: 'Jan 5' }, -]; +const sampleData = [ barSampleData[ 0 ], barSampleData[ 1 ], barSampleData[ 2 ] ]; const lineSampleData = [ { + group: 'Line 1', label: 'Line 1', data: [ { date: new Date( '2024-01-01' ), value: 10, label: 'Jan 1' }, @@ -33,6 +29,7 @@ const lineSampleData = [ ], }, { + group: 'Line 2', label: 'Line 2', data: [ { date: new Date( '2024-01-01' ), value: 1, label: 'Jan 1' }, @@ -79,13 +76,7 @@ export const Default: Story = { - + ), @@ -97,13 +88,7 @@ export const JetpackTheme: Story = { - + ), @@ -115,13 +100,7 @@ export const WooTheme: Story = { - + ), @@ -144,7 +123,6 @@ export const CustomColorTheme: Story = { From 693d3d5c2d087e7c66d97f89638c14027992c900 Mon Sep 17 00:00:00 2001 From: Miguel Torres <1233880+mmtr@users.noreply.github.com> Date: Wed, 18 Dec 2024 10:25:18 +0100 Subject: [PATCH 7/9] Remove duplicate views: Show notices (#40609) --- .../update-remove-duplicate-views-notices | 4 + .../removed-calypso-screen-notice.scss | 40 +++++++ .../removed-calypso-screen-notice.tsx | 75 +++++++++++++ .../screens/edit-php.webp | Bin 0 -> 61232 bytes .../edit-phppost_typejetpack-portfolio.webp | Bin 0 -> 29302 bytes .../edit-phppost_typejetpack-testimonial.webp | Bin 0 -> 25300 bytes .../edit-tags-phptaxonomycategory.webp | Bin 0 -> 57658 bytes .../edit-tags-phptaxonomypost_tag.webp | Bin 0 -> 39126 bytes .../wpcom-admin-interface.php | 105 +++++++++++++++++- .../jetpack-mu-wpcom/webpack.config.js | 2 + .../update-remove-duplicate-views-notices | 5 + .../src/admin-menu/class-base-admin-menu.php | 7 +- 12 files changed, 231 insertions(+), 7 deletions(-) create mode 100644 projects/packages/jetpack-mu-wpcom/changelog/update-remove-duplicate-views-notices create mode 100644 projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/removed-calypso-screen-notice.scss create mode 100644 projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/removed-calypso-screen-notice.tsx create mode 100644 projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/screens/edit-php.webp create mode 100644 projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/screens/edit-phppost_typejetpack-portfolio.webp create mode 100644 projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/screens/edit-phppost_typejetpack-testimonial.webp create mode 100644 projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/screens/edit-tags-phptaxonomycategory.webp create mode 100644 projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/screens/edit-tags-phptaxonomypost_tag.webp create mode 100644 projects/packages/masterbar/changelog/update-remove-duplicate-views-notices diff --git a/projects/packages/jetpack-mu-wpcom/changelog/update-remove-duplicate-views-notices b/projects/packages/jetpack-mu-wpcom/changelog/update-remove-duplicate-views-notices new file mode 100644 index 0000000000000..ffbc563527e4f --- /dev/null +++ b/projects/packages/jetpack-mu-wpcom/changelog/update-remove-duplicate-views-notices @@ -0,0 +1,4 @@ +Significance: minor +Type: added + +Remove duplicate views: Show notices diff --git a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/removed-calypso-screen-notice.scss b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/removed-calypso-screen-notice.scss new file mode 100644 index 0000000000000..39b4fdb0cab3a --- /dev/null +++ b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/removed-calypso-screen-notice.scss @@ -0,0 +1,40 @@ +.components-modal__frame.removed-calypso-screen-notice { + width: 512px; + + &.is-loading { + display: none; + } + + .removed-calypso-screen-notice__image { + background-color: #7b90ff; + padding-top: 60px; + padding-left: 32px; + padding-right: 32px; + + img { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + width: 100%; + display: block; + } + } + + h1 { + font-weight: 500; + font-size: 20px; + line-height: 24px; + margin: 16px 0; + padding: 8px 32px 0; + color: #1e1e1e; + } + + p { + line-height: 20px; + margin: 0 0 16px; + padding: 0 32px; + color: #1e1e1e; + } +} + + + diff --git a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/removed-calypso-screen-notice.tsx b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/removed-calypso-screen-notice.tsx new file mode 100644 index 0000000000000..cefb82a2305aa --- /dev/null +++ b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/removed-calypso-screen-notice.tsx @@ -0,0 +1,75 @@ +/* global removedCalypsoScreenNoticeConfig */ + +import { Guide } from '@wordpress/components'; +import { createRoot, useState } from '@wordpress/element'; +import { __, sprintf } from '@wordpress/i18n'; +import { addQueryArgs } from '@wordpress/url'; +import './removed-calypso-screen-notice.scss'; + +const Notice = () => { + const [ isOpen, setIsOpen ] = useState( true ); + const [ isImageLoading, setIsImageLoading ] = useState( true ); + + if ( ! isOpen ) { + return null; + } + + const dismiss = () => { + setIsOpen( false ); + fetch( + addQueryArgs( removedCalypsoScreenNoticeConfig.ajaxUrl, { + action: 'wpcom_dismiss_removed_calypso_screen_notice', + _ajax_nonce: removedCalypsoScreenNoticeConfig.dismissNonce, + screen: removedCalypsoScreenNoticeConfig.screen, + } ) + ); + }; + + const title = sprintf( + // translators: %s: page name + __( 'A better %s view for everyone', 'jetpack-mu-wpcom' ), + removedCalypsoScreenNoticeConfig.title + ); + + return ( + + setIsImageLoading( false ) } + /> +
+ ), + content: ( + <> +

{ title }

+

+ { sprintf( + // translators: %s: page name + __( + "We've switched to the standard WordPress %s view to bring you improvements that also benefit the entire WordPress community.", + 'jetpack-mu-wpcom' + ), + removedCalypsoScreenNoticeConfig.title + ) } +

+ + ), + }, + ] } + /> + ); +}; + +const container = document.createElement( 'div' ); +document.body.appendChild( container ); +const root = createRoot( container ); +root.render( ); diff --git a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/screens/edit-php.webp b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/screens/edit-php.webp new file mode 100644 index 0000000000000000000000000000000000000000..68784dd75759047195eb863cc98973f8ade82e1c GIT binary patch literal 61232 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 literal 0 HcmV?d00001 diff --git a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/screens/edit-phppost_typejetpack-portfolio.webp b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/screens/edit-phppost_typejetpack-portfolio.webp new file mode 100644 index 0000000000000000000000000000000000000000..a17d59331a5b54c779e5a6908b76f8f5b09cee67 GIT binary patch literal 29302 zcmeEsb967!vSw`Cwr%GZ+qP}nw(aBuC$>-QoSfLU?PSiqGjG<+efPcp=D%61d+qMM zx_9rcUG>#hRa;p~T-@Fn2uMRrL{VLlOA`hN2ngx#=>ZNz2nr-Dt0)=&_YN472t)S6 zYq>xiFce%V$zfRzHvQlqfIIgM-5&R((ax(g81OOr|M-Y7`_S0!je7$9J5M50r@!+Q z0m%cV@dPIV6|m#TkRl@~CLwP4F%}3PWo7??C`PoPyq-^Ecy+e@4a4&Z}_i}d%+KhGC_F3 zx^MXRme2PC*gJ(I!R@{-|FiG7m&-SUhs|*w!Po7l?Nk0BKbzOtcY~|%!#;C<=zzel z#V^=z%ooP*Z*qUPPlpeUXM@dx%kS^+H~+u@jIWrlnD^ytiRZq*Jzu-uT04VJgb#!- zg3G=@-^^cS-=H6qZ;YSc=K`q#iQko9qMrqq$1Q?0fbKS3>(RJhD^sJ~~NgU?MWGz(f=fq5piDkTU(< zb7h_@+Aa4`jnz7H2-B^HO5KfSVR zUEobNr|XA(UGhT=_ldwWwt&q+`>$T;Xc|$05Q5iNl{Ry~-DyW8hIE^|p?~={_vf7- zc~wx`oc>6wvBL#C7tC|DuY{;>5pl2*9V%pB%T1NYc-C)?n;%MTL=H-uyMHJoA(Hoa zT_c15Kx;-u%gu&iY1^)sizm z@`ke7YI9th87S_=E%RHZN#N$F9ST#1{nhwig<)~!@a6>8J)@W-R2$q-n#mDbyim7R zTf&vR--U+x5Zst6ZuovC+kXUQDL$_CZ>0*{=4u<4)W{(|wu(z?Y8yYIQL!j3Ex3L> z>B*7?--YczVwo%h6HjH&0$tCnI|Ra*5q8%y1`$8K^lz7o z^d4SjQ3UVV5xR)`Y6p=i)QwhSvhWl(_`$NO=V6XbLhAoY3k0dZd2$bzO+hT>ecHi(=S&o4!qg4ueNbA4dhmJ0xB-Y7ae%ve609e5 zG{4TjX3S}ai;Ird+ePHpcsL}cE`4jh-E4?ZMQmsPoWUQml`z?9otyrh8!8{5J60=H zzW8Z1Tk~HPufn`Bgwx}4%n=@b(f!!EVG>)?w!UY@ ztM3*~B|S`~M0@rV^F9o{D&@GhX~oRc5~#V%zcqnGS;1*rI`q;5jL_ zF+mF5U-mybOYaRauXUV4*hSsnvOkmp#uPZJY?r(p(6p*nDMdr)Z_LDYV?uh%{|iMV zy(4re3uRhHEKr({^!)`-y=cW-fzX6`&FptwWtM{bwA-g!I;jxLd7heObsPTa{8ySx z+qKFjoTHb3f)U)u3E5gt>Xy;qy%;egU--w}9qdBG56MJ?6yF|;+7&3v*co+h{?fvo z?D4-w0O1HSs1oDpsTy0VEQW}iyHT11H>D^fPNQ*1HY^Q18|%B=57cVCN%mfdG6kA% z%N0tzmk@RW^c$B5u%KJc!m4dn?w2=%9ECNJn#y~L9f)`}+JA$jBMv2n7GT`Q12Gs% z30j({HZOJ&m|tF-q3vtb zM?{xkB^XQh?)3#uS!4HhNbJmBOS}QyVl%}tileX(?O&LoREO)+7tnoWb|0DxCHPS zn!@=V690hpGwE0pbkH28CJDI;urZ1K!C_c6j{LinIqVFh*ef6mijk+34hyw;@mHG4 z16tuD@{eJKY!3Z2;#pm5b4n^?~is3;bHbV3B`C zK(T9Fk7M+dBDGIr(fmd5XL$C>AlU1mAtjU^*K7o^Duq)uu5I>DPa=KJG4(!}y+fo& zPw^kX4)xJR320o?9XR@co_6YF4%AmfEKYm#GnKAeOyO;Kcp8u)wuI1A-~2M@-yxM=faS1E%`(3a|91FSJ9O(}irG<^oY3~osA(CT ziAmz8DTQPumF-eVbrT?p2qH@8v!0!1VAo)a&vwa4h|Py8143|pcYX>Vb^hazH*bNA zF*g4p;;wz4eGJEdo=$k`umqedS{L*yu_t-jYC#0yie)OJX6{<3>YtSfzq-;WP?%p7 zH#pdVb~}M1$8BhV(o~P$z#I~;Qf;pLn+(!PxuVu-QjAj|OlNL~quEkEF zItdPJiMKOS!$1YW(AekGa@6ru@oD30AzpvXaOnp0BC^)j{)_Xoe#Ex@EA8fE8J6GM zDCtNosO@|AM&+Wux8S ze!fD|G)fbOTzb^MAvvn#VZVf&0<~0?Bv8q6BE7FC75zXo6axcaaCs{~I(~U|LNt5r zomel;i#*g*_s4L@{PQ8Tv9bCoB&iV+Eq}dN>ke!T!}RI~tEdu#_z$^By$b0dsIpvc zvz^dcgaPHJJ{jd6UwG6``HfWT@K=4}+M=I0hPJL^S4j7k35!khx!caFR0x#g@v9}4 zF_e{0D1DDqP-h^UY@FTcEP|>StF^$3p?H|df~7zlUx@J*72$+cq$lo%|8R%mCfkW( z&;KM5Si4tRZk7s!ciVgn-63ssOO;q=^)y|QaUk+N?9&XRZH}k_q$Z5T& zRLLZ0p~G9GCpqvAaIQj~T6L5E-ZlQS7j^U3Q~FB_#O}vb-+%Ht|LqF)@T3&^?x3gB zBh{8S=uiAMuuS)jp<4Q~`UfF_0D=LodBbJBxPasl(}tcRP+@A1qKgt;A7C#6YwjX7 zw!qI0m;`NLB6iRhcr08n|=Ol6x-l2ov2A>SQ=4lqpQ;kLy zP+A02O*5i~?_W;AEQ~ZVT6kmp)Pa9)&VE?YJ=nP27|hQ{q;P@fT{|~QfL97Fa=i~X z8k5a)Ek(HW!LnLV1etWAK^sP^%ULC~^cSttMhq^NshOmg^0MG5w7tJi@vHvf-9uYO z5?jnUKAjoRemZW~%BtA5H+KZr)v`&Eci-UXi~558@lSutJQ^>C{z(!zv?btEEim6k z$9NY4)Jc{AdNQS`f%@;z@IP$pe*-9;ixIU|mUb#DJyvfM*K<%a7Io+kzR{!m3|U^1 zRzA;@+RYwDAz}>EEPQ>&+v4b@R88WS()?K+5v!^XM?ujH-ZEGDH4+VUEU|x2`u`{0 z1_dG1e~l|dDxl-sEU`Qann6j`@}8~P61ex%`S0HQw|w}&3~K(BasGD!(Eoq-|4ZjT z;#0yDwX{Owu52GF2xBh$IDIB^S{-Z*Kkki2$Fd=17o=9al8aq4-m@HxNA=wQeoumNx!njX}6`?{oGf8`;6Dh=#YghA^z}97AH1&9t0zcOvllm26uDWOLKw-$$=r;6}Vc&Jc}J2HnjF zfpl^NzE-HLFcSAi=UYuL??BiO*y)!tugUTV?;xsse>{QjN^ro0&earWps*_S1Z^Hw zg8x#VQyQ(mQ1->*X0>>B>Mhd^ab`rmBOQCU%oP|B^n?(d?!vx;jVI>Q77l6vUl7lz!Vvb4QCkdMk{Bl5PiTnz$_XWIG8 zxJp$~i_$`~xto33e-!V|K)7M`|H!l)r!3rSE3Q~%u??jeDV?Yk2k4j@@tM~&&A}t_raqC)~?;zNZ8-nu|j7R z!GUqzD;pc2yQGk9xJqqLPbJ_09jKuE3xB+7N$6EL9uoLPgj#L;44c4l=2v_6>)ceOZ+ zf0Z}^@Z7;71Y^Kme-a9Vt}iA*uZ(X660d{UB4kr34lPC-c>&h!>ikWuG5TK)!mu29}ue(?{sD~PgXZ?T#Bm!aWp*DMCKW-g+j?S zTxT5>*0e_3NL@A#+{>RIe!+o<>WJ(80z!7L4cf;``#Z( z?6h^g6ibJsTW%yNY|Xk5B7K6uat@mOUL~5~=CdI>DqO(}xcN%G0j;atIa}dgxn2b# z9Frq!jear)m#y;gP--m?f6zI!Y_!$R`>nM5?##`7!xH)jjz(o$?WVQ&hD7SH4hV=i zuzGk~y+WzP)WG?(K5F$(bu;6oF>#`^d4j9<7Rg$kYeyDvevp?ubY6;*f@#f^Xz5`y z{6-jcVB$5p+YAr4s7E>F41L%TC;^ zsLYj$9j6_o_4*V6`&qR`G7JO~l>l@DR|k-Ay@&QTY!>p0n^HiTP~NFAjfO>vi$1H93-^5WhcR_!QgyR$ndoRge*4C6I1>)#xGZa=ij!~oiLZ`hOGXqYoZ{Ni-OkS{)Rt6E zbN0G*ke3ol*mo}gXY@HW<`HjK4gfWvat>YZ9Q%vX`Pqll*26U3J45C*oq?L950h%) z6B#RZON_}-uuzzu#^TJ!R}%t;xE-DVmf#gzz#=q6L-9vU5$t2ND&!q(OM7n){s58a zx-!@GEl$&Q0ieb$&Uvbr#aNc%0J>krJc;ZW3fFP7rzGvY(5e7lA0;!@q<=k zwyQzG35$}SCOYu7Eq?sSfyFfR2Di=J5po+DF=gWaUI7C78^9ZfJd*(m^4iXE@rZ9> zi#YEPuSPx$folUoL`&LnZF*Z)x~X{9@QdNO&*pIfBrQ+}=!%+B!GRh?e9)khi<3qLag{gR-lO+3zI5 zlNN<14{dQ8;< zR%l`Pur7EoF+rV^CKN#s+IXr&aa1~tBVr{l>lj^sD-YOTJFydcwqjYJEe>auvzj1` zX7I)wtns}p~I z#3SG1sPGBqDAht>_UF4Zb^N#hTlr2ht&5)d9b65i5MF4mVhDn0GvH8axj-)>n1z!~9c) zHImO2toeJb^3q|xBL-slKD|17r50aQ>0;N@QZ^O}Bi4CkR!o!*1_EPa z=v(9Tpt4-fs}{a|#p!#i*`o@dUiC0k8{CS|x7z9tOVJHyqGX(Z*qr5MmHtyM))vY+a%;EWhtY)*p z`_UEGxUG;gz2f-emDg$T@sh%4{l{SkDjJ9#w8Q)G$r^y(QfPybBk97ngpB%bAO1>0mdoO>74L!4*MV8yAo!QqC^YSYe&X@7W(*$HtJ z{NNq2ZAbySc5iGvTZ%E!W=8qe`pCbL8GW?=LPBWeo|rIY1zf)0HmVct-HNsG$|H{{;) zRSu-*fXF^c4{fhpf^((bmW}a7IdV)o`er9K5ITHX<`x4ys@PGSXmI4~cXgB&j3I&U z0mwTTT7O66U7tRo$*A;N*+;?3!H}&r{Vb(^x<@5WshBk^9rPHGU9?f!W5Lh8jUKi} zrb3yWza{rtB99K03)8uY67^xT#|jV)C`PU2mB@WC=^RP?BL%C>@M)sf1Y>JXR5DC@ zpoxpKpVItNtdndwG=-oE^|mv&$fy{K-OtB(*E^R5Kb)y@yed$7pgd4==+|mm2n_jK zN;6pXXPp_e#xYD45XS<8r;5>{1r&*TxV!Ho%*50z zoizgvs>Pf+l^wB?31bkYEGN#Mtq8&I=}9Q`+$6eqROjIQ)-UmlnsoPX9_VJyU_Ot2 zw@8CtMHf|6=Gp#O6IFnT7DDK;<|u$Q6C$l_QurOsORgJo>a^@hJ&wg!v#Ityl}_*) zDZ{hlU=JKk5Xb&pOeh8?C}QWSMK=&;Iadaof{<}&5L}s>j~7aFJz7l>rUHTXTb4F^ zJ&HK+SLlUy#`gEfin0Od6dUlFY@Dp2q&pfO?i;D$RL;RmT%PyEJCD_AQBv?X@tRF3 z%JAem?3}&&gSuQ(jRjN!zkFCe3wjF%Rxv4%uY?GbS?Z3erdR=nI)64TjoCbzDGngK zk?L!ESQ&;`9;1xvJ-Q;dpi+-`#B?sd&Pu_#p>=BgNU}sMi6%h1c7eVw>KqVXVj@kG zUjr6pgJ$VkJkKvbh@$qx*d{-Y-SX6Ga^>A$ma3t5g22HJ-J?t-`Kv!*&ZeAtR}c}+ z)#NU^2U>!R<*zQl2{K?32J1aoS#!ZL)+=jZeY-ZzO@Tk9o1tN>YX(MAE(>xFTv@KN zr#;pMkGtG;7WxU8SKp~4d*08dX79oit-!AW)2u0t!~4KPmhpUUR(i2i4cTwd z6xgPB7%G~t@C~#V(}FqJX(5qMrp| z>FIbJ=utOKCp24-iHQ6<`XdX@h7=ZoXgQjwad>D+SFOUiXZ|R%kP|!;8$rfEEyKip zsj*cpxA}J6v>J{=f}ilU?wO)j3-4zZ@CtM12TF(b?X#fq$=$WxxWgWqPLA$^?<;Nw&&rbbI&F zeaNP9Nj48LOj)ZRJ2(nnaN}N-`uyp4rWq9w-=Ja-D(U013q%KW{)b5VPW4i^RYIF? zsMOdC4*8KHmE3fkKYtO6qtS1Cpbm3=O+Pa;2Kmcg2za;ah#O7Zau! z#91VXxDF+?T65<_P1Fb31^~y7!(*4OJqEVyN>;8aKelD1U0%8MTfjZf%R}`oY3L}v z?K^%FOfkFnG1Y>BOHjbLK5hO_J`~1t?eVKW2NDNuPv89WdwA02g+OCLKjyeY8+DIu zYxcXhP;}KEJ?V%qzbh;&TjCdQ^l`$HS<#^rH_8529EDBKO1$g+n%uZ8hL=z^9^!y?;rA0Iz~J_ZFMKoXcpp4`6xaF3?WL5a&f=LhRciTI?x*t?%lArvR2*` z$(JDwHrr-jq-%-)!13+B2(aLRA*10|V!LCZgXVkbfrgVQp4>l^#F^0q_p>K-OLTVT z?FomY@#wvC98@<0bCjw|`}hv_$uizmkGP!j7p?PmVq5Nu&BQBfw!)9x$$jqT%Vk0g zPXD?ALSX>Xppt~f!;;A|%0QkXaksLlJslZZCbaXjO&x-~i2W^-*sY{NCvgi|1&O#z zI5F4H_Bh4MJ9cNyWk;)hacRMq38#&2(fm53xItGn*ic2mX-|uP^p0H-l&@pBjWkOO zEo4aNWWAwuihd~XBvYhtLR5e)glZr19MOp_TpVDaG0UUgH0O7*!5)=j9v#;3I?Cu7 z$ijwEezJt&Xul0Z=UKyJk+nxs<^6L`p*>0PE>a4q{*9)0LtM{25?MdGJIw15S;T+F zZOw8uORz5SYp?rwC+n7{Dh4#ImY6?|GvrgEoU&c3U&(7G`3nh@6v+>WWDGi_h}y8% zB&-4i{2=r6#vT?Mgk>3HGQSP^kh5f70L;qun>@$51_q>p5OEV{(^S~aRDKg{FrEjAh3cZbL)#iEP_I0O z;x+imOmRmc=OUu($AL0177kg6m(&7&b@RiMYuJ3NJkU^y9b0Ux5lG9(S4yxHg5ed;i>jv*eBSvOm!m)nGTjPwZFXtiD1Z0v{44g5T z5?}#G!>I#h^Z~W))nicI*g>_x{K63a(heb|!7&`F6S+6TU7{z;w2e$-RjRAz7tM@# zfZ5~yz;vAn3xq#MscHagC}U0dmcdEEv5woqwG$IkIj~N zrmc&$(cpyeEOd&<9!5N>Ii&hPvy7x{0Qvr`7h|uoU4M^{qkeuQY0i5JiU z$LNApvXqMUytk;ssu`ga7OTyvd+(Wm)GiQ7p2`tQxl#KpWBBR}mT$w5QBm?;a_)jS zpFd2BgIUXR$0uax)IrBxKDoXP5em|pRD_V_9By1nc;KH)0sS*FEUjj$a@9NszIVb1 z5Lva}5*}H|+Ud2(5B0nqPrp?9BYraVHs@KTdy5@^TH%S9Tl;o1#qx&hx>YbQoP&sD z5Zh!NWlmjI8S~^xTxSakR?A(@zmP^hK2Y1HbSo<3#gl?K@ojfOvYJEqGHTl@T3@1d>N9oFgRQsTqW% zZ=W%9Qeo{=XVJFdCG~aD#NTrNIb;SmHcXL6G(Fio`zm30bON_DpmM<31f)lcO%p=v z?U{pRKi=j6AbmW4Hyir0Iq<#|y!mT%i{8_i1yqyXJ@Z6+97p zr9*zK{Oecyyf-+D)@3D;7>-6Y)2XN86hEq_n2z1YO_7xS3fsEG52>|~bY-7B>e(ff z=nNZa@Q&z5VfT<;?wU226Ip9I%g`B=H8FeAq0MvrLCq50;L|{lZgtLtIg>71R`wnG zQSIe*?9<7I-ns=W0+Ts{cXwOa9Q~0Hz(FOCn5mcuZuSu&{I3PyHY?1FtBm#1&*79( zZDt>uB}umlyE*o`I^Zhbv*Up@JsM~CI(2S<9OjHop;R*AX;#cFGwdO{tH}l$(fwgC`Pf;^-J|~OCMmLS^G|mQVR>O z-O#v8F%Co^%N!h(yvRkvn_i|G9o^2)Xi$TG7_I|S;(RV8<|(Zn z^jbT@`9rOMzcgLB!Y`f&0lM+HF@*QURV4#yYyg>7|B=VBmlRm-q-Chj{ba5kQ{L58DrVw}zZ6p$>11eeBO z=s8(B7dBocdd#7BRUGIuxB8&VXjNrAw^HpRLUMy?EqIdb=5i)_puUGs7v4aKjx{kv z>L<*Vl^qHpHdOP38NQKaD4a^W@JtHgP6XYD*^cnMeG=F3*}}Fxkk`GwnZ-TIVYf~| zr4W69@swFZ8alH^?G3zNMP--a#rRwJHbbcCgNr7HZj@?y zJR!v>S<14J)Q8M)Us7*9$$d}vSrL&NlC)3gGoi>ns^C<1`H;h5id0T2{0SAqv-=i0 zX}hikiJGBeEXF8)XYfdl0mVlQ9+S5qUwWfBE|KSvZ}g#*rIT*sG*1(L>y^P9tA37m zZ-ws{Z`DLZc3fj(Icy1pv;SyQ!BFV$wZpLGpP_Sy?!Acoo?a6ukjhBG8QSaF}B51_iZN*HNHS;L8%QBk&8O4aTwuG zfD)V*5FEr&<7y|Z{QmL1hQxHr`}`%@w8ZorGy{Dh(a>4k6k(6d@|WJ zpZMC(ze0yY7yVS<7fvuEGc`qU0+V?{5Q_oy#vVLg(T1c!X zX*z~)N+kc^6pKGxRb8_@#HWH6K}G4P@bO(r&P$2NiBv~H?~CXmq@8#Rm9CxUB@VG*~E+K#;?Bqpi?)M!!tUHjgPrQ_2e5Jr9O`pj8wupCAXR} zewpbIKiHF)GFA}SI*x?yGb!<~B@AEeODK@dHOeE!&p|nId)y>QY$?r7AoPj;q~e-Obb*fbQ8kosF4n*GSVy|> zJ05nlZd~w#of8e~AF!tX_8tfQoTk6 zi?j=f`4Xs;47Hd;L(%|^Hg>Ye&sciP9m!3j?AryKSSnHGLSy!#A9G&ZnJR6a(HNa2 zYLwi4I8=NgS&IjQWCBfJA%HAy5ML(DLdw8_FY;$VnDIF3{t((7U}Mm+dXl%@X?8D= zK=5G^BSUpBlqB}}g)0e3YH-z;tyDUTze1Q+n39N{eDz~d$1FbqL7#@`Et!n!J#AbltoIC`L^5FI}9s^JLRIN z3o)}Vp7?p{*tm-SfgA~4j0jx|VY|0F0Ngeb?&vM{N88D2xB?^h|7eoHsy~+7&HB@Z zGrv{`(72`GaY@SSdZWuV#PIqO2#2ybJ>i@|r?X9B#5Sb-ae5ReRF4CG;-M=L7}QCi z7@!?~rPl64K2r&lO{QlQK!H0cP>Tl>tA(MK9iM4w$MmXMJ+n=snWobr_d5(6bz6K0 zlJhsENS>FSz2S?oYvPC@weXpA*=cu50P@9M5a1QdHFr&eQnn4vS$ar9;^nk-4D^lN zRmD^I%>iD!B!-uqo7Nn}wqu(pNF)8f?F6vmzySWn*{TWvtpJSkj3${@w>#M9%1cgP z>4nDzrUXL0)$F?bUP2vgJ z3W}#TCLt&h@7T(K+}`pPqX3@SF_X+tp0?l0r{PRi&yN!f-Xn%&17FyQ&a7-nOLjl8 zE!eEhXy!}|R-%6v^|luI>sZDE(+DBpuf@0%yt4*_xD5#be|J75p&k_p4zNZ{?PZc@ zds>JcU*RJ7(%mSGX7;B~8I(fIQ?~jKhg>`+-6Hf4!f`^!k=?l0ei|y=4_fhWapUE# za>lD`#wm`~Brn?bH`ioA+#;>;{JxLSTadIWC;6M@Nqm6Je{s3SGK(2sps*B4Bn3*l}Wu>{R?;rRdd;tUDQhYz8GN9btR z*pjR_UmN>%VSzmu?d=0~nRj)9z>-cL?sXR4gw>@y;eVaU&z{E*U@|ZX>@9Z{ z2@}AUVvHwg1Y}Yzr|%~|y^^=dZ`4o-Z$6cnlAG9$8tp|=yZ|pIxP2j@Vq46S<-mp) z%&$Ich=^%-iRl5Y68lxN)>m(j>2J2MO~5cyB?f;l zefHV>YB-%;D zCD>5A*)?w0HTec)Pm$dlnGbJhI%-X{-YPt`uGmw4SZcUYzMCUVMzG|+u8<4PN(!PXRBuur%5R|ySE&c=Qm!&C99Y}_UF(TS4D0#0A zjmrMLiSf2a0WtEaXHZGN7sO7cb1%C-r;cmyVPOdgcgDeWkJ29z>qbtDl9}L8fFL?# z+SJZE?h{Rv&F9j5$+si=@|p7C?N4gOsiXH?{!O4&zCrX2?@Top>)Gohr`@M0r(~oNVIDon3(=Dq)?K0^8&WEPcgez+c;#^>}9^?q4Cf4pjkkj$)GKL2x&BH zIt$xQ+)H|K5av4N{>7z3bAjResxpAf@VVdy4PsvQ)ne)<#w%;cl$yY zbI@ey4P6?wo3w+dcEChpi3%Q|GlAQrd{5}^b=*%UgWe80 zAPpAAZ``W$<6eusb+q>C=G;99#I3N5c2t(SFa zBt6$jb~62^X=pWw8|w{_#XyAad<hAH7|j8e{=ns`iCUCN^FnY zr@{D>TH|38tAXD;iMY+MoM&=@fJDY#EFQS_N)`&rn;oOeJiDly0P;9-AlUQiO+>tb3!+!7$nuS>FN^LGD?{h~ zx(uLwkqfzS=nklJAXJ*TpexOH<(c@1;J@A|Y%U|f{MpO6s)3U~n7j~*O}OerZ;zLP zNx;X2u_m^CS)+qAThlk^7)dz+cn+l5&ex+n%(WV3FHNHBSk}jAI1OCQ&qur1UPFPv zW@qJRDBxM7LsqXwkMgspL91c{Kml z7f>tkeo+QgJIB+PwM=oO*^$(w?g&)Q;H=}V!z6@K1|D|>%wFh_ZnJ(VKr2q=f(dhi z;S_zGoy|c*Avh9D9abuV^zPv*L*UA6RTOaCh}P8+6f`vKN=~7N4o8ErP(v(^w)-c* z?%lT-NY8&6mkHt=s>Sd&3T+^XC1#$=JU^=)$jw49ZHo8nd5fljGLtlg3EvK;I4Ec# zxu#W%l51@BqE38ExOaw#9l0{ zv$X<^uum;!P@}?w9{h5C#8E806`y~gA%}Jt+KqGZ55voThwIPKdlg;yLU3PqLubEt zSFIT?TQJG~gEb$!V?s_neWM{bcis#L@S|kT4t65%6RX7DGpHK6t1JUz3WMn=;x2N` zjpc=+fT4h$l!^<}b3Ok-NpF{7QxO6iQfD>w!fZo;o2?TAezoEo6xZsM_wyw9TlGBU zp+Gly{X77${eCfS8Szms>s9|zA(^K96F1Vc6lq_WR`}Fn-DEb{IkW5eKGx(kWj0gZ78rqn-_=A&rbHrwtU%p+tk zjmrtSUzI9xc7*0JNmHegs4eYgd5k{NypbKk-Wf|iXM2yTlYF|xF~{hy*n$+LX0Bmy zDt>`Y`B9VV)Kx}q!SG?5np?&X(O8^9k4H)jaB1#BV{af}3eNhJGf;J5W5E zG#roe9#@jH5^0v?bVjfw7S7HYaW)0q2$K#88=DW_N}(Wi7){)>$BlH^X@bz~mvTkK zR&g*E1)Z&ID$h|`k+=J_&iA>H(^Z$K!eFjq5|x~i_jehJ9ds$3Su6qnc zmd{@ZS89@*BWMi^1i1MGs7paH=SUp0^%9hV7el4jp1@lOE_{@W@8h$O*6Wv$(cLO?2F?ET z@WKeQzRiOWa<@0rcrEF6#I#40Bmd@?Sj{c25qh>O-H~WA{*FKJFR!pYEkKxl6ltD{ z=usJ8OR(~C)ZZRCuURRDo}UnqTBgWdGzH~!_o~?{k9@AVlZ0I;K9GQ_1{lV!d3ZKsc&qzV ztv^k1LCt>{yn*7@C*MK{C#2v9joB6c9M_(+)-1W)3wLJ(HBi5Rq)68lvI>Vy+>aa* zJ{D?(39hdP?EXMfg&NWWu>m*DC}dD`{K6oI5CO15gq94pFu~TR#gc^&=tX@xEIc~{ z((O{9k4%(~agF1iPb= zP5%tl4_}IW+uvHowM7@r(j(~JVg;`W$}5K;J0>k1?Eyf0JgfBdEm_>jnc^puCjrJ1 z++^Ga&;^M* zSYiKe-;!F(!;}8Wpob@}I_UVzK<6Sd+gV>oPi#&(%+j7xEoKrxL|)+XZPLO`B&D@Z zQRu&b^W1evLB;&b)ZxWKt)*es?p z+qP}nwr$(CZF~0Ew(Z$t+qUuT=dJS#PIpz3s#LCW(W$ItH5L8wdr@PGKmueC1NPoE zZh5CRL8U^6Vi>UJH=G%=CK@NvZbmQ^d_o}9_h*DaYk@4;IS+%vLSlI>=DhdrC47UzZ>*{pnFt$p(0$r8Y z>kce(prg=$BG6+_O?^Fj*~7dJnA!QIbf z;Uh*r(&(9YNrH&wht#v(Qeh(5dflXKAvPPip4c$(`_QvGQmx)}zhQVdXg*wlZ1q~j zY|H$XDo%i)2a{W7y~{Xdc)wd3cq-(lQ2|TE`K6L?8s_^SM_jwKkjDKQ5HnW{Eq-G0 zrod8&V~2mkMyHdZNxtmkrlsgHZPLQ{O4ydeFf=T|!^>8qx7l`Hl?s%)#_9|pH^_up zA5=W&Q?VC?sOJW8f+(SSj?_9w#xJ&`s8a(Tzh3@&AzR=w#N3BI(LLiW0>BaAMCd_A z@Xl2x{adqw@<>xl!qU|m7isGUmF_@rmLHYMr5{*1O2uaU(n6t_>q`z(t|ewFUv2-| zdm#5gf6(h>`VAVBg`i%}Y}A_Pas1`aXs!~i1fFk4?*_YIgL}H^KV@uB{_V+@Le%hD z%(X5!MFHoDWTKdeATy%>S&OFAguPhh!%2B4rcaW53mRO6JYImtGMvXMBbl&Vt?ug( zdglvMbg1`fKTsNR-FrEdp)gS9peCcMFd45-hx0YM}?COw&9Z8y- zW-8!~Ek-7l6yXID84lm#@d4KiU*?ALuDgaO@me9b2n|+3c*KtW2p*j;0-d9nyncv7 zfb~PnaMA1a1Quiiu4b}aPj1~HC{n-#^YCQY+h8dWqek^?7s7o8R)St_wO9*_A; zg@-nPume(zo8zQ)=j)D!QF)UF=p4Tdg7ia7hb;^5{zGf^y&61YF_4hHS+#hbP292N zqIVkLa#WJ6-)9QFrpGb+Qxb@6XX$e%Y(|JJFEDVw!RFJY=+cddQ=z`WVsTkx)@GYO z6U^)X#gWVBF`+j}nYcfgOj@D6T+CNz=r-YAP#Doaj@Rb2A#^il|G8fIZSrn0tmn$O z?wghpqv0?>$z-qK{nQDZxpHrjusILayebVEClJ$}54}aS(yCM`&qTW~2F=Uhz0fF| zD>@y7rEE zdc}H5moLtzn|V!oW;RB8)!vy#9Vduc7DoQDi5tCel~enG*Ko~Jm-a%I=pO)Q+#A#L z@Rq%r2%>%4|F6F5{=)tz0o=5E>p&y*Kn;~jUG_y5>quC<-C3Vl!!+3dRw-kG>^+2Z zy-<8V3S8TW{rMb3_$?v~*0aa)<@#jsJUHEr0~P|e3r$#*av`qzOf<(`FeyC{>kI1N zq=O@*Szqxj0FN1dJ0LqKS+>*&2r$mf--VrIRT!58Mc*Ba!dz3A2 zF`pEj4O4x%NXh7h9-Omx<=z&0Lb|JP&{R5J;39&x(%JZ&2P!zHV`ar?tcR$nu8^iM zU98aZ=QyGuYOb9n~FrJn;Hy;AO-0rLyuCU6rg2v**m5wyfXdB z*P9n$L%J>nGBxZ8IP;(rTvHf8Mp^bE@MF8RDxQrk^9{;ngva=wRdDX7e}L`#o21AFKM0sx#A z9hGzVH@#}<78)nzI?80HROUPR;`ZQa07|9Z-*@3SBhRd#m!`j2)MUty`%|>oz-gg0 zH#ssT>%$Yh=LvM1GPyEzd79vX5_u8r1J0>6aT}&Z{nwBVjOM4!{-qKxM=UXgjecWk z^3^MbevZ(A3nQrUIYoxx#qy$4A>1Bl14ZD_YUe_A3o78d1Ae-oG7|n%-kv{JgcHD3 zTP|>pdc6V9Mm*gd{Z}90!bDI5DfcRu79+0}HW_y+$SBU-(dx&PcgNSw?y-YM1wue7 zL5e2i0Cpg@m3A~k&3IBjZ)w6an7Pj-46}{sF34dUE%A)(W_BK80s>nMUcy^Rb^mu`qr2tY`vuBTsc^g#w%`EN)JRG>C37Hv`BO+%;wRk^-?Bgv#%3#-xNW2AEhfaMUG{oS8b zFCsr?&*7hh@__6mNTah4K|HH!j^4TWu~UWu!yo`a&Iw=Aq71A^HOu{wU8J`ihbaAC z2lvv8Lv#mgKrw*{hBvHzc_k!@TY?D%(2?wFM>l;!!apPPVT=1_Z>aM7^Qq(~xXoy* z?niC0Rr)Rv7b3bC7Wo}~)I$CO07<0YfsA8BEE1r6HUZ2J6xhu%1Z`zW=9x4A*>;Jc z&|um5xOXfI3P0`*&99B%ymS*21}5(HL?M!##Qr@wL*wf|NIZlPjMn`5d^UU&|IlhZ zbw{S9#)w5O<<#pUu;z__naNmf-tH)6z1-ma^QEE8Jbo?SfX*7T0zSg z0o`fE<93*!#k0<_pd*n1qvH8wWRt2vYN;m*pJqUxw5{)@pgsk5F&Hx?7*U&2EqAHS zO@sSa$YT?vdN_I$T)^+59KdnL&54ouC<7#~o>`y(1i=aCqK$x1`f%_5(y;I9q?gYi z;UWv~f=s6yr3k^Y-cWEU2HJ|hW(yr>k#FbL$vf?WirvsuE)NS%i#}!j`#9m*F((gW znubU7v<~H@G6FBCPk{_u3 z9m2yrzk(o)ZYN5B0h}H57RtPsrSGRX&OKRs9haZ_FYrzsv7~E9&iLuMyz|7>dgz4- z40GEmq^C7FUQV25D-)u!J`u>+%EUFG0fRdFCce%MnVbTOX)sTDUO3c*0`i^HiS|YH zu5BsTMuTL00i!d$joX}V!LHuCR>IqCOugxL~kssUz;2Ww7xulaTC2$Goh3vUHx!i>~g1< zn2(P_*S~y#S`8+vHoNwlH^69@OZB6SH)6 zs|&+}hMf%^x81RrD~k!lSc_5Qy}RV04t~}j2hhyV5n#__1;>vPN|g0_v$kG-E+HVD zSZ|2e4`yn#D0g^lM=&V+2Amz=i-L@l2NPr+9=zvz6oU}%W2NS1SsMkRAC<(ptMu7# zwGF89pMLv$^U&50x+wv!=&gcQA#HVJ4ta9z_k>qg7Yq^JZ4t&zG*YQJ|@DdmVhR9DWC z+X@D%>v1yp#EXcRn709XW5=R7v*WP59Dv9~^@VbLl%3MsVKxWhu$2?hAbh_fM$~EU z{bRH78E49^h0KJ=mIs$M#H@?o4T3#<=hc{uZUUQ8mSBZwGOu2y^WJzf?M^N^3@brr z-Gf87cHP}r^)BC2eWzsOV4<>#8dQ=d{e-z}-pb9rtFJUKc*=UN#PWb*osO)GvKOSe z)XW)H;P1pUi-Ty>2?q(3*ObLf;1~%KYX>#w0EYh>CIf&PHhx%8<+LvnOPRWeX}*%c zv}?DIeuUX>@(4Si=v{QrVy?`BU;bkbA~f7khO5XsHi3;@ZR&o+8VE--jgI%&FgDtk z|F^>jqTj26H_BQc$qN(Tm}2=400WF=u{9oxr9ZSjowjt>Qx@p9LB~~hp7+i-ZxrO_ z2rZ!#u$~t64!21KAcIK_T(4Mh{)z3YE>;lU)@tWf=aQU_MJG6z$66|hkek!pE>FQAT3%+NQP-RnJ@qK2|%+$A?&K@CoF}CpV*u|>2>QFjGI>$kHJmS0t&{CE5y1Xp@bWO29AaBD zXwonCvB)3p7i49YJqwK_d)m3Hw{DbNHA8h9*_aAbcjgG(ex=cnhq5}{Va?N?>M3tD z3@Iz7CtEoFPQdF_g3yz^E6rVef!RLvt!l3Z+#QJ75^CUXt{AiioR3>MWm*qacQwq< zS1CP|vE2uJ_YH$t5~%U8rhf9tH`j^-Q~9WZn_fi@BvUYL`lQzloN7T*alsesZ7v|FoW&zx{OFQ$BBnL^Ov_JqQID8 z>-z59G#n0EzzmM2ajvk2J7v@CB7X!Xl!s)35uKxD%>8+}Vi<3ATrR(qUV}Eg)0jOdhRXF#;&pq1Tkj-k}9ZsSNo^>O{$$%CC^EKZ0 z5Z8=DI-5nU=9!=H>{cOw6ete_qzPIAVT=D=Yf8HIPg%rbC=EK}2wj-I<`|*9iP3ww zv%vLssJn>uu7>xVU9%ALp{3oS^D9rbxXXe=>Qe`K0~iO0U!}mP6kFen<22^hUvS znt&N+P6jyzcSReQj<&3;@ilQzz&~~v5@%(?D52i(lChb?$Ty_KrAKGf_Lt>U?2jOi z!FFe|1V_+mm8%HD7K!2neOq@eh`N=g1)SA4K~)Y;T$f7JTRLom$Clmw4aPaH^Wk$3 zYI@L*;z>qS>%}d@fn*@?K;%KRZ)?$ey*v!t8pblqkISHLMK-e<1#X9y-xLP~0K7j5 zcoCf4x>tmi#Y!mZ!^qBGQyM^o&jvM8>3W-gOBi7wKZKwGm2C0Oj0~Z3_imBvsNq=S zqIA`1+(AuhhJuCWxWp`;FNKvmPy(X&g~Vt8Li}4L7`peHeEk^`tP^(SY--tev zzytyC#70ygOL`vaEp+H2WLxg$%G}6#;o(4jsXHx%;@@yK7Iuv{ir%X{g&4Z^d~gqD+Q5EH1v=0p4m3N^$#oMZ1s3d@kFjUw9SMReu? zL-yXyek5iAWEgvjfe5DgO)SBwMRK>!HzKwTJ@S>$viuz_`_LOxo@gNtFGVQgCYT*)$y4<02Y`D2x(YHvY?mAh=R)3Eu_p10v(fi`V$FtHGF?=e`6-? z?`w!M(cei8;&w0*x&X;tm4-7%X$M6f^fSC4BcFe!Ce%IY{Q*U*M5H()uKag%9+>a@ z6E-Ads7QLr{_tkv7E!SZmYf-{T0fAfFyTEocM$C1SwCC~iJ@09w$MB1lyzHA-Ad2i z|1l3DwK=>l_bzwSbs{G%xa3KK_)U7^W`yeI2tk{+-jXl9?$-FabIk_Vw|6d60Q|J3 zWmB0~CeQ`cHCJtPE4#4$w(RGSKE1-bS*L2T*pmw^j+h+&ylGd+MkA&XngC0gD6^@8 zubK63CG~aGTZH5-o`}T;1s0)=_U}^QZKTnye(Ph7u8fy}>V)p2j-kcSnVcX`oVGex zoEGva9jJ2mEd{aNF5tZl)Q`~JmxEA{RaHiJs^;g~48_ukA8EZ3m#?qS0t@;{1<(w+ zGTt2y!I z`u^qxn??}jF4CfoFy@iJ{pAAK&+*`0#Zq(>2k z$HQZqOb8ctBtoK?nqGa#Yy{~9oJVl$uXFtg{LK!Bmrowx@kh{_7Tpnem22i)`+ zYr~|e5$+`YYAXOL&m&r(x8`~~aGhDK1I>FFCe~rnpgpfMA`RzS-nU`Ik85B+-pMzz4ZTI{iKVgD$T{QPD2AVD8?H)dR}yMuKx`9*d=X})8c>fnps zi_>BB@QsF8=8JakBW4|@;(vY#wV;qxoBLgO$k5Oo&Bd`}A%k@_O4wjXaQ<%uAoE@hNP=SwDf>PG1pwWj#*<9_az8Azn399uDZJwZ?2oH%7voe>16G-} z#c4fmoJZOEIa4=^gURFVf@i*D86MU0>9FQpRCoe!Gbk@y3qRJ_=*uKsC_6M2a2bX(&H4xT6 zwf(N$ulRX^-%2RP<-djlM*`2_^%~b>B`n<<(?8~5@&@QW$i_t#EYrf&Sne!ZBr$UP zWLg5lww_rH``HCvM5U40;V-0CTsRAM6c)j)l-cphcxGQ{kV)?Qy(U?v;ucR1TVgH)btE^>&6tD!v!FX)pD9~X*SIl-_at;k{ulx>N zku~UTIH$NCskhf$8Z|i`qryaIQv3LB4wo|LAjY#gJRxXRsA2fAj1l8FMi{i}6P(di zy=Q~kfsUUuDaPdwqrAy~%dVto>>Z?x7S}fbz#3l>^8jwqx-5Dvb|5q7!3V`^<4X4Q z*i^-%XRILC&SI)%-UY`tLoRYZS)RDw$N{c|Th3o2Xy;9KOGQFCbgz319#u^orrpz3(UOA7EdB(3l;* zr8vZbi+%JTMDYJ{5In$)L{MLDDuen^tlO_?4oC{|gd(fQmYy8i-rx>ebjuM>_hXK; znho>{k^De@8ow7nUI?et!*JV}2qMfvc>A?pFLF98b`!ewm|0I@qA-LqHW*vEVVier ziRd3FCBo^BH|~{5E6>G25Ffd6hf)v(w=qtroWm5DvoH&!w~ND|znnbsR#^INJq@be zmyt|o_t6;lqlCux@R3aX6;&~ZWXfTFgsbtmCo`w}$Q)9D+C!BVwhr7~cNb5E=8>ei z_2yYE=mHl}bgFl-a!S;J@28ppO7#mZN`ama4IDL;!L>;BE^M52 z81-h8J?hOFrzV(qS=%@|pdF`0M1cxsR`KlkI1qVzr`qy4rP>b3P|0^wZRxZdHS!-2 z03{lM)nEiR9wd}@g`o|ul4P{GxLZ;H2t?`a^9?yNj&iOQx`7O@lZ>5DFBvk{vXS2R?F`r!;2q{^405B}9J9_y@Ez9=A#xoqA-`ka-1$$X=*>gapl=^UzIYJWOX5 z-UCziBW0xMDO8x?{D4H-SITlp27=D)5Bl!zk&IZ6b z$d1hXWWiUGi3=KYsjm}CHoHCC6;1b7I(efX>5IKlPHPqstrKLmb0skx2ah)iU)lP} zl51)Tgx>V5W$Pb(f4n{_trWV6Zc{3c`+Q|7`NOd>EB zDjhy!gusezpu)4!K2ag{7?Q8sDC1s+&8F}H`k}sN5Io1UOife2;Z}-yj8Hl2= z>u(hQ9=o7LqPP<}_rTUyRpWv(f)E@`ww$Y*_j(q(A!5~|i3HL#zWQ#zoihaEp1>De ztLzmC8+u8h5mTQ7P1Xq7;JyWWl1<*ZcIXH0IPIyrD--a+7g z>^NdT9AN{H)36fU)MasLmF|htG@&_c327&?v4+4iFGnxEK++K}kcSu+M#|{%LcP29eQ+Y?gms3mg)xp*p<~fx`-vE2- zn5cKGS=P4TPt;7U3!U1Bz&P)+&X-F<9qRZ$_yM4*KtP#Fk8bPf{xg>p96nHOjWGwr zveTXs6lvhczpH?93v~yuTSRG>cq0SoY_82E04U$00#AQOtN|fuNB1~-Gi4vafFpdW zS|x)q>kj86MY|DtDeYcZ|1ND-jZic=hMb9|u3+|by+ho0gY)lk)13z$R( zF~ipv*4B_XH(E95{~3%UUpLjILxd7yNTpN{@h#J67NhNtgGAkLmtBwZ4mpj;{5iL` z&{W1Q#}`*W2sWMWcDn>i)#TstCjsFvB%drjy8?;2F_l)do(rPm=}gyg0NM))JobK8 zs$>_N2EWaT^y56M&e&ITyV=~GmDz0dj<**!C2uM|K3gYiR+6Q1W=T zGshvrmWljitpD}m&<=)cJj{?Oq(fhbi`w<1nKc!M2;Q_5yK*)XX;;~M5#3^po$!11 zQa{p`E$Bn5_K~1@%5cNn!8?&|WtI=AE6@@VdxkGmwn1;H>##5ZuhtYn`#uIoWYerK zhgx64bKXpGpv+Oy03+X5B~pg}b-8vorH8`y@^mYJtW)X*AM3}c<<8+6l7ZLxJNS&P z`5Uw$Kh6lyQ*=Fet%_2k_>UbxRcDOH7<0udNBEa=8`TxldR|QdlBpWRrovOX^fBnf zJvAr<6Q8xSn}AIge4-w3s7{@5Xh*o#K*JFM{5F+l2lGM;Mj4&XvA(9XT=WNEzd(?_ z7_k@b9q+PP!S*U@;7UM(l#ZxE$?#-jY5-(-6g$eVan+)>jQ{Me*qY_OUH*Kc+@3$m z%M&s%R-EHc-NMt5cvqgs^B^JG*DI8&{R?TCVY57a#0RBWp*=m{SY_zvvzav!xW99S z^-!^7(MiT{?Sw+PG?~g8+G56^u)WqiPvu)y8zU*?;DDNFM8wUJbmN$UM+=a79KY^C zHoigWNa4f+G~ZfG)F$UQ^q7T2j)~ue9?l+hvT6* zEk_uX=1`PG+BNlkv|Vkb`J|H2R!GLYUz>DFJ1E1U7kyAe#YAl+G{^w_?bh8Z@-Wc) z6^_lQ7!9uCGq_XFvL`t;zqmB0o5Z>&^x(bo8R>WvZ8(TDwpiRIE?u%*NqibzEHm1^ zEJz)@R#($GB!EI}PT@5ch5|Cfveh%&?{_98R$I713{iPIp`xLpFMmIXA6u z88eb)HMay_K_?asA1h83oHmeU*`QrWm8y_PJsxnZml4}@X^OYmz^xw#fWZKu=)vvH zaY*}C4D16*3pfA*%q^N%omAg7FcDMrySLX{8V>AQgHKK_ZmKHVPQ z%<&2YuH1oi&5I9%@_nZ(@}U^Hz~7E_BN&FUloL1)gq29JK8|;V zEIY3)q=tb&DFq|+jG}l4Eq^zx2{#K*35*g);su;@xUa-LBNiYDOfM7`zO?8;Af{R$ zpRL1_>hWfK9-GqL$zItpJDuu~!ugw9b};ssk^^FCSQvX^n~yDQD4d(GfQVRj}xWgfYWwEA=Ig zC?LIG3Pr=|<4U6o+bg-esz!)g$RgW#iBFWsy}7fgy>qu~uWmi&Ibe?tk$egN^G270 z`Y^O=c_+c+%7>(2C9=OVzW7smEeNA`{}ILRV8BW1zGtG=I1zhkscF#+$!+$Ey-Fg{ zidLv?tk7#~pK+4NopuVZbABJ3x(e8%;doMD6tAo9=_l#gd-o|tU;mzk1t4{v*j#5j zZQv#2w^-U9X{^<{*(f>{O5e(N+Tsy;lLgd&DO}Ir`@^P?e=f`4;uTry=p0ARBZngK z3NfvepifYm_SKNN=j4+bY(eLK;Su-F2h@Ah2%^Cf$tO_YB%@60gBNO%*B^pf$BFxA zXh6;;trh?WQoHLQkwPusytwbAHUHxQY{K4meu9o;t2!?*)Ypz|bgsl9u&@G5$CHRxN_oX>cm z*tyG~0vrYKW`UpEA!75JOVZO~6P6g>M}x>~u52uRCJw$iZIXsD^(7GpYW@%T zV^YuqyqmBuO4w=7=K+b;_&Kz_4{3)hF1(3r-*oDo%IoY{iAcSLI%9IeBs40~`W{2O z0`4KQYL`cLmUJ!`hP*-VI?5VViG;#2p`3&hhEU-K=ewB2_QB|n5}HL^7h|p&dHl#} zBuccDT~`$SG`MY5hA(qB!TTA#frnN_HknJ=VH(iVM0cYizjo|1>ctITgdGzT{OqPT z;i8z}789G-AY{z@?C;mz5eV- ztP|i*OF=(p6^3BT!yI5f=`#aG>Jok&5(zzY&O5jxcuY#?ReYGj1u+4A&4x62ACK?! zMnuw%!g+Ab9dj6|?t82S#7jS$mo(^e`^)Ua$*{j~rxpEFFN@f%NzM|twSbi3TC$3$|I)}>9 zEJ#q&HBm8k&<9VUJ4);;mc;d#L6xdXCIJ$e(Jv&T3F4Bt(d{)eZL>*-!oHwIa3COD zjAu$|_l2oLh7nX4$%)FrbFt?LG|N$@(yKPO0P3I|deuPTImU6AUHeyB@C^!LbE&8h zaC2>!UFw7YH9!gpcCnK6X4AxH?5dIAQFJ+sUU_21<2p#X_%2(Tej0vIdhMXdOVocU zDT~oUM9?JTHKThh^*C!*`L9u-pe!gU_fK;ONy-9W|F3m{03h*C1OB`JPygowq4=K< h=AQ)Ozx$v4zZekV|JiT~MyBe32moLJ|Ir}<{2%39T=@V1 literal 0 HcmV?d00001 diff --git a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/screens/edit-phppost_typejetpack-testimonial.webp b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/screens/edit-phppost_typejetpack-testimonial.webp new file mode 100644 index 0000000000000000000000000000000000000000..e65f32fb50e2bb3689eb1a0577b04f5fb0f39a75 GIT binary patch literal 25300 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�TPlQyh=Vi4ll&Euw-UmO)JkE%r*-OfVLT}I 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 literal 0 HcmV?d00001 diff --git a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php index cabfcca1dfe58..6f366cd924c11 100644 --- a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php +++ b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php @@ -195,12 +195,8 @@ function wpcom_admin_get_user_option_jetpack( $value ) { * Hides the "View" switcher on WP Admin screens enforced by the "Remove duplicate views" experiment. */ function wpcom_duplicate_views_hide_view_switcher() { - if ( ! function_exists( '\Automattic\Jetpack\Masterbar\get_admin_menu_class' ) || ! function_exists( '\Automattic\Jetpack\Masterbar\should_customize_nav' ) ) { - return; - } - - $admin_menu_class = apply_filters( 'jetpack_admin_menu_class', \Automattic\Jetpack\Masterbar\get_admin_menu_class() ); - if ( \Automattic\Jetpack\Masterbar\should_customize_nav( $admin_menu_class ) ) { + $admin_menu_class = wpcom_get_custom_admin_menu_class(); + if ( $admin_menu_class ) { $admin_menu = $admin_menu_class::get_instance(); $current_screen = wpcom_admin_get_current_screen(); @@ -435,3 +431,100 @@ function wpcom_is_duplicate_views_experiment_enabled() { return $is_enabled; } } + +/** + * Displays a notice when a user visits the enforced WP Admin view of a removed Calypso screen for + * the first time. + */ +function wpcom_show_removed_calypso_screen_notice() { + $admin_menu_class = wpcom_get_custom_admin_menu_class(); + if ( ! $admin_menu_class ) { + return; + } + + $current_screen = wpcom_admin_get_current_screen(); + + if ( ! in_array( $current_screen, WPCOM_DUPLICATED_VIEW, true ) ) { + return; + } + + $dismissed_notices = get_user_option( 'wpcom_removed_calypso_screen_dismissed_notices' ); + if ( is_array( $dismissed_notices ) && in_array( $current_screen, $dismissed_notices, true ) ) { + return; + } + + if ( ! wpcom_is_duplicate_views_experiment_enabled() ) { + return; + } + + remove_filter( 'pre_option_wpcom_admin_interface', 'wpcom_admin_interface_pre_get_option' ); + $uses_wp_admin_interface = get_option( 'wpcom_admin_interface' ) === 'wp-admin'; + add_filter( 'pre_option_wpcom_admin_interface', 'wpcom_admin_interface_pre_get_option', 10 ); + if ( $uses_wp_admin_interface ) { + return; + } + + remove_filter( 'get_user_option_jetpack_admin_menu_preferred_views', 'wpcom_admin_get_user_option_jetpack' ); + $preferred_views = get_user_option( 'jetpack_admin_menu_preferred_views' ); + add_filter( 'get_user_option_jetpack_admin_menu_preferred_views', 'wpcom_admin_get_user_option_jetpack' ); + if ( ! empty( $preferred_views ) && isset( $preferred_views[ $current_screen ] ) && $preferred_views[ $current_screen ] === 'classic' ) { + return; + } + + $handle = jetpack_mu_wpcom_enqueue_assets( 'removed-calypso-screen-notice', array( 'js', 'css' ) ); + wp_set_script_translations( $handle, 'jetpack-mu-wpcom', Jetpack_Mu_Wpcom::PKG_DIR . 'languages' ); + + global $title; + $config = wp_json_encode( + array( + 'imageUrl' => plugins_url( 'screens/' . sanitize_title( $current_screen ) . '.webp', __FILE__ ), + 'title' => $title, + 'screen' => $current_screen, + 'ajaxUrl' => admin_url( 'admin-ajax.php' ), + 'dismissNonce' => wp_create_nonce( 'wpcom_dismiss_removed_calypso_screen_notice' ), + ) + ); + + wp_add_inline_script( + $handle, + "window.removedCalypsoScreenNoticeConfig = $config;", + 'before' + ); +} +add_action( 'admin_enqueue_scripts', 'wpcom_show_removed_calypso_screen_notice' ); + +/** + * Gets the name of the class used to customize the admin menu when Nav Unification is enabled. + * + * @return false|string The class name of the customized admin menu if any, false otherwise. + */ +function wpcom_get_custom_admin_menu_class() { + if ( ! function_exists( '\Automattic\Jetpack\Masterbar\get_admin_menu_class' ) || ! function_exists( '\Automattic\Jetpack\Masterbar\should_customize_nav' ) ) { + return false; + } + + $admin_menu_class = apply_filters( 'jetpack_admin_menu_class', \Automattic\Jetpack\Masterbar\get_admin_menu_class() ); + if ( ! \Automattic\Jetpack\Masterbar\should_customize_nav( $admin_menu_class ) ) { + return false; + } + + return $admin_menu_class; +} + +/** + * Handles the AJAX request to dismiss a notice of a removed Calypsos screen. + */ +function wpcom_dismiss_removed_calypso_screen_notice() { + check_ajax_referer( 'wpcom_dismiss_removed_calypso_screen_notice' ); + if ( isset( $_REQUEST['screen'] ) ) { + $screen = sanitize_text_field( wp_unslash( $_REQUEST['screen'] ) ); + $dismissed_notices = get_user_option( 'wpcom_removed_calypso_screen_dismissed_notices' ); + if ( ! is_array( $dismissed_notices ) ) { + $dismissed_notices = array(); + } + $dismissed_notices[] = $screen; + update_user_option( get_current_user_id(), 'wpcom_removed_calypso_screen_dismissed_notices', $dismissed_notices, true ); + } + wp_die(); +} +add_action( 'wp_ajax_wpcom_dismiss_removed_calypso_screen_notice', 'wpcom_dismiss_removed_calypso_screen_notice' ); diff --git a/projects/packages/jetpack-mu-wpcom/webpack.config.js b/projects/packages/jetpack-mu-wpcom/webpack.config.js index 3386412b45d23..b4ebf4c88b1d2 100644 --- a/projects/packages/jetpack-mu-wpcom/webpack.config.js +++ b/projects/packages/jetpack-mu-wpcom/webpack.config.js @@ -51,6 +51,8 @@ module.exports = [ './src/features/wpcom-profile-settings/profile-settings-link-to-wpcom.ts', 'wpcom-sidebar-notice': './src/features/wpcom-sidebar-notice/wpcom-sidebar-notice.js', 'starter-page-templates': './src/features/starter-page-templates/index.tsx', + 'removed-calypso-screen-notice': + './src/features/wpcom-admin-interface/removed-calypso-screen-notice.tsx', }, mode: jetpackWebpackConfig.mode, devtool: jetpackWebpackConfig.devtool, diff --git a/projects/packages/masterbar/changelog/update-remove-duplicate-views-notices b/projects/packages/masterbar/changelog/update-remove-duplicate-views-notices new file mode 100644 index 0000000000000..a1247b2d6cf66 --- /dev/null +++ b/projects/packages/masterbar/changelog/update-remove-duplicate-views-notices @@ -0,0 +1,5 @@ +Significance: patch +Type: changed +Comment: Persist only preferred views from option, skip experiment hooks + + diff --git a/projects/packages/masterbar/src/admin-menu/class-base-admin-menu.php b/projects/packages/masterbar/src/admin-menu/class-base-admin-menu.php index 3a5dea1f05b4b..65400fff1d1bc 100644 --- a/projects/packages/masterbar/src/admin-menu/class-base-admin-menu.php +++ b/projects/packages/masterbar/src/admin-menu/class-base-admin-menu.php @@ -602,7 +602,12 @@ public function dashboard_switcher_scripts() { * @param string $view Preferred view. */ public function set_preferred_view( $screen, $view ) { - $preferred_views = $this->get_preferred_views(); + remove_filter( 'get_user_option_jetpack_admin_menu_preferred_views', 'wpcom_admin_get_user_option_jetpack' ); + $preferred_views = $this->get_preferred_views(); + if ( function_exists( 'wpcom_admin_get_user_option_jetpack' ) ) { + add_filter( 'get_user_option_jetpack_admin_menu_preferred_views', 'wpcom_admin_get_user_option_jetpack' ); + } + $screen = str_replace( '?post_type=post', '', $screen ); $preferred_views[ $screen ] = $view; update_user_option( get_current_user_id(), 'jetpack_admin_menu_preferred_views', $preferred_views ); From f02d391fe6b479d8f19cb657fffbbf14c7d6b2c7 Mon Sep 17 00:00:00 2001 From: Ashar Fuadi Date: Wed, 18 Dec 2024 16:41:31 +0700 Subject: [PATCH 8/9] wpcom-block-editor-nux: avoid using useLocation which throws exception outside Site Editor in GB 19.9.0 (#40656) --- .../changelog/fix-uselocation-exception | 4 +++ .../src/common/hooks/use-canvas-mode.ts | 31 +++++++++++-------- 2 files changed, 22 insertions(+), 13 deletions(-) create mode 100644 projects/packages/jetpack-mu-wpcom/changelog/fix-uselocation-exception diff --git a/projects/packages/jetpack-mu-wpcom/changelog/fix-uselocation-exception b/projects/packages/jetpack-mu-wpcom/changelog/fix-uselocation-exception new file mode 100644 index 0000000000000..fc95eb7085776 --- /dev/null +++ b/projects/packages/jetpack-mu-wpcom/changelog/fix-uselocation-exception @@ -0,0 +1,4 @@ +Significance: patch +Type: fixed + +wpcom-block-editor-nux: avoid using useLocation which now throws exception outside Site Editor in Gutenberg 19.9.0 diff --git a/projects/packages/jetpack-mu-wpcom/src/common/hooks/use-canvas-mode.ts b/projects/packages/jetpack-mu-wpcom/src/common/hooks/use-canvas-mode.ts index fba0a4cbdf2c7..d4c1332de6386 100644 --- a/projects/packages/jetpack-mu-wpcom/src/common/hooks/use-canvas-mode.ts +++ b/projects/packages/jetpack-mu-wpcom/src/common/hooks/use-canvas-mode.ts @@ -1,20 +1,25 @@ -import { useSelect } from '@wordpress/data'; -import useLocation from './use-location'; +import { subscribe, useSelect } from '@wordpress/data'; +import { useEffect, useState } from 'react'; const useCanvasMode = () => { - const location = useLocation(); + const [ canvasMode, setCanvasMode ] = useState< string | null >( null ); + const isSiteEditor = useSelect( select => !! select( 'core/edit-site' ), [] ); - return useSelect( - select => { - // The canvas mode is limited to the site editor. - if ( ! select( 'core/edit-site' ) ) { - return null; - } + useEffect( () => { + // The canvas mode is limited to the site editor. + if ( ! isSiteEditor ) { + return; + } - return new URLSearchParams( location?.search ).get( 'canvas' ) || 'view'; - }, - [ location?.search ] - ); + const unsubscribe = subscribe( () => { + const mode = new URLSearchParams( window.location?.search ).get( 'canvas' ) || 'view'; + setCanvasMode( mode ); + } ); + + return () => unsubscribe(); + }, [ isSiteEditor ] ); + + return canvasMode; }; export default useCanvasMode; From f52f223ae2f9115e4dbbfb58b6b513da83953c75 Mon Sep 17 00:00:00 2001 From: Bogdan Ungureanu Date: Wed, 18 Dec 2024 12:26:10 +0200 Subject: [PATCH 9/9] Remove duplicate views: Fix the Stats and Promote with blaze pages (#40630) * Fix the Stats and Promote with blaze pages * Update fix-wp-admin-post-fixes Update the comment --- .../jetpack-mu-wpcom/changelog/fix-wp-admin-post-fixes | 5 +++++ .../features/wpcom-admin-interface/wpcom-admin-interface.php | 2 ++ 2 files changed, 7 insertions(+) create mode 100644 projects/packages/jetpack-mu-wpcom/changelog/fix-wp-admin-post-fixes diff --git a/projects/packages/jetpack-mu-wpcom/changelog/fix-wp-admin-post-fixes b/projects/packages/jetpack-mu-wpcom/changelog/fix-wp-admin-post-fixes new file mode 100644 index 0000000000000..bbf2e7375d50c --- /dev/null +++ b/projects/packages/jetpack-mu-wpcom/changelog/fix-wp-admin-post-fixes @@ -0,0 +1,5 @@ +Significance: patch +Type: fixed +Comment: Fix the stats and promote with blaze quicklinks in edit.php for Simple sites that are part of the remove duplicate views experiment + + diff --git a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php index 6f366cd924c11..fb7af7b332ac0 100644 --- a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php +++ b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php @@ -118,6 +118,8 @@ function ( $location ) { const WPCOM_DUPLICATED_VIEW = array( 'edit.php', + 'admin.php?page=stats', + 'tools.php?page=advertising', 'edit.php?post_type=jetpack-portfolio', 'edit.php?post_type=jetpack-testimonial', 'edit-tags.php?taxonomy=category',