diff options
Diffstat (limited to 'plugins/jetpack/modules/plugin-search')
-rw-r--r-- | plugins/jetpack/modules/plugin-search/plugin-search.css | 84 | ||||
-rw-r--r-- | plugins/jetpack/modules/plugin-search/plugin-search.js | 264 | ||||
-rw-r--r-- | plugins/jetpack/modules/plugin-search/psh-128.png | bin | 0 -> 12524 bytes | |||
-rw-r--r-- | plugins/jetpack/modules/plugin-search/psh-256.png | bin | 0 -> 27512 bytes | |||
-rw-r--r-- | plugins/jetpack/modules/plugin-search/psh.svg | 1 |
5 files changed, 349 insertions, 0 deletions
diff --git a/plugins/jetpack/modules/plugin-search/plugin-search.css b/plugins/jetpack/modules/plugin-search/plugin-search.css new file mode 100644 index 00000000..8623d3f4 --- /dev/null +++ b/plugins/jetpack/modules/plugin-search/plugin-search.css @@ -0,0 +1,84 @@ +.plugin-card-jetpack-plugin-search h3 { + margin: 0 0 4px 0; +} + +.plugin-card-jetpack-plugin-search .column-name, +.plugin-card-jetpack-plugin-search .column-description { + margin-right: 20px; +} + +.plugin-card-jetpack-plugin-search .action-links { + overflow: auto; + position: static; +} + +@media screen and (max-width: 1100px) and (min-width: 782px), (max-width: 480px) { + .plugin-card-jetpack-plugin-search .action-links { + margin-left: 0; + } +} + +.plugin-card-jetpack-plugin-search .plugin-action-buttons { + margin: 0; + width: 100%; + text-align: left; + white-space: nowrap; +} + +.plugin-card-jetpack-plugin-search .plugin-action-buttons .jetpack-plugin-search__primary { + background: #00be28; + border-color: #00a523; + color: #fff; + box-shadow: 0 1px 0 #c5e2c3; +} + +.plugin-card-jetpack-plugin-search .plugin-action-buttons .jetpack-plugin-search__primary:hover { + background: #00a523; + border-color: #008b1d; + color: #fff; +} + +.plugin-card-jetpack-plugin-search .plugin-card-bottom { + display: none; +} + +.jetpack-plugin-search__bottom { + display: flex; + align-items: center; + align-content: space-between; + clear: both; + padding: 12px 20px; + background-color: #fafafa; + border-top: 1px solid #ddd; + overflow: hidden; +} + +.jetpack-plugin-search__text { + flex: 1; + margin: 0 24px 0 16px; +} + +@media screen and (max-width: 1100px) and (min-width: 782px), (max-width: 480px) { + .plugin-card-jetpack-plugin-search .plugin-action-buttons li { + display: block; + } + .plugin-card-jetpack-plugin-search .plugin-action-buttons li button { + margin-right: 0; + } +} + +/* Hides the link to dismiss cards when it's in action links are before being moved to bottom row*/ +.action-links .jetpack-plugin-search__dismiss { + display: none; +} + +.jetpack-plugin-search__bottom .jetpack-plugin-search__dismiss { + color: #484848; + font-style: italic; + text-decoration: underline; + cursor: pointer; +} + +.jetpack-plugin-search__dismiss:hover { + color: #666; +} diff --git a/plugins/jetpack/modules/plugin-search/plugin-search.js b/plugins/jetpack/modules/plugin-search/plugin-search.js new file mode 100644 index 00000000..b277a5aa --- /dev/null +++ b/plugins/jetpack/modules/plugin-search/plugin-search.js @@ -0,0 +1,264 @@ +/** + * Handles the activation of a Jetpack feature, dismissing the card, and replacing the bottom row + * of the card with customized content. + */ + +/* global jetpackPluginSearch, JSON, jpTracksAJAX */ + +var JetpackPSH = {}; + +( function( $, jpsh ) { + JetpackPSH = { + + $pluginFilter: $( '#plugin-filter' ), + + /** + * Get parent search hint element. + * @returns {Element | null} + */ + getCard: function() { + return document.querySelector( '.plugin-card-jetpack-plugin-search' ); + }, + + /** + * Track user event such as a click on a button or a link. + * + * @param {string} eventName Event identifier. + * @param {object} feature Identifier of feature involved in the event. + * @param {object} target Object where action was performed. + */ + trackEvent: function( eventName, feature, target ) { + jpTracksAJAX + .record_ajax_event( eventName, 'click', { 'feature' : feature } ) + .always( function() { + if ( 'undefined' !== typeof target && !! target.getAttribute( 'href' ) ) { + // If it has an href, follow it. + window.location = target.getAttribute( 'href' ); + } + } ); + }, + + /** + * Update title of the card to add a mention that the result is from the Jetpack plugin. + */ + updateCardTitle: function() { + var hint = JetpackPSH.getCard(); + + if ( 'object' === typeof hint && null !== hint ) { + var title = hint.querySelector( '.column-name h3' ); + title.outerHTML = + title.outerHTML + '<strong>' + jetpackPluginSearch.poweredBy + '</strong>'; + } + }, + + /** + * Move action links below description. + */ + moveActionLinks: function() { + var hint = JetpackPSH.getCard(); + if ( 'object' === typeof hint && null !== hint ) { + var descriptionContainer = hint.querySelector( '.column-description' ); + // Keep only the first paragraph. The second is the plugin author. + var descriptionText = descriptionContainer.querySelector( 'p:first-child' ); + var actionLinks = hint.querySelector( '.action-links' ); + + // Change the contents of the description, to keep the description text and the action links. + descriptionContainer.innerHTML = descriptionText.outerHTML + actionLinks.outerHTML; + + // Remove the action links from their default location. + actionLinks.parentNode.removeChild( actionLinks ); + } + }, + + /** + * Replace bottom row of the card to insert logo, text and link to dismiss the card. + */ + replaceCardBottom: function() { + var hint = JetpackPSH.getCard(); + if ( 'object' === typeof hint && null !== hint ) { + hint.querySelector( '.plugin-card-bottom' ).outerHTML = + '<div class="jetpack-plugin-search__bottom"><img src="' + + jetpackPluginSearch.logo + + '" width="32" />' + + '<p class="jetpack-plugin-search__text">' + + jetpackPluginSearch.legend + + ' <a class="jetpack-plugin-search__support_link" href="' + + jetpackPluginSearch.supportLink + + '" target="_blank" rel="noopener noreferrer" data-track="support_link" >' + + jetpackPluginSearch.supportText + + '</a>' + + '</p>' + + '</div>'; + + // Remove link and parent li from action links and move it to bottom row + var dismissLink = document.querySelector( '.jetpack-plugin-search__dismiss' ); + dismissLink.parentNode.parentNode.removeChild( dismissLink.parentNode ); + document + .querySelector( '.jetpack-plugin-search__bottom' ) + .appendChild( dismissLink ); + } + }, + + /** + * Check if plugin card list nodes changed. If there's a Jetpack PSH card, replace the title and the bottom row. + * @param {array} mutationsList + */ + replaceOnNewResults: function( mutationsList ) { + mutationsList.forEach( function( mutation ) { + if ( + 'childList' === mutation.type && + 1 === document.querySelectorAll( '.plugin-card-jetpack-plugin-search' ).length + ) { + JetpackPSH.updateCardTitle(); + JetpackPSH.moveActionLinks(); + JetpackPSH.replaceCardBottom(); + } + } ); + }, + + dismiss: function( moduleName ) { + document.getElementById( 'the-list' ).removeChild( JetpackPSH.getCard() ); + $.ajax( { + url: jpsh.base_rest_url + '/hints', + method: 'post', + beforeSend: function( xhr ) { + xhr.setRequestHeader( 'X-WP-Nonce', jpsh.nonce ); + }, + data: JSON.stringify( { + hint: moduleName + } ), + contentType: 'application/json', + dataType: 'json' + } ).done( function() { + JetpackPSH.trackEvent( 'wpa_plugin_search_dismiss', moduleName ); + } ); + }, + + ajaxActivateModule: function( moduleName ) { + var $moduleBtn = JetpackPSH.$pluginFilter.find( '#plugin-select-activate' ); + $moduleBtn.toggleClass( 'install-now updating-message' ); + $moduleBtn.prop( 'disabled', true ); + $moduleBtn.text( jpsh.activating ); + var data = {}; + data[ moduleName ] = true; + $.ajax( { + url: jpsh.base_rest_url + '/settings', + method: 'post', + beforeSend: function( xhr ) { + xhr.setRequestHeader( 'X-WP-Nonce', jpsh.nonce ); + }, + data: JSON.stringify( data ), + contentType: 'application/json', + dataType: 'json' + } ).done( function() { + JetpackPSH.updateButton( moduleName ); + JetpackPSH.trackEvent( 'wpa_plugin_search_activate', moduleName ); + } ).error( function() { + $moduleBtn.toggleClass( 'install-now updating-message' ); + } ); + }, + + // Remove onclick handler, disable loading spinner, update button to redirect to module settings. + updateButton: function( moduleName ) { + $.ajax( { + url: jpsh.base_rest_url + '/module/' + moduleName, + method: 'get', + beforeSend: function( xhr ) { + xhr.setRequestHeader( 'X-WP-Nonce', jpsh.nonce ); + }, + dataType: 'json' + } ).done( function( response ) { + var $moduleBtn = JetpackPSH.$pluginFilter.find( '#plugin-select-activate' ); + $moduleBtn.prop( 'onclick', null ).off( 'click' ); + $moduleBtn.toggleClass( 'install-now updating-message' ); + $moduleBtn.text( jpsh.activated ); + setTimeout( function() { + var url = 'https://jetpack.com/redirect/?source=plugin-hint-learn-' + moduleName, + label = jpsh.getStarted, + classes = 'jetpack-plugin-search__primary button', + track = 'configure'; + + // If the feature has options in Jetpack admin UI, link to them. + if ( response.options && 0 < Object.keys( response.options ).length ) { + url = $moduleBtn.data( 'configure-url' ); + label = jpsh.manageSettings; + classes += ' jetpack-plugin-search__configure'; + } else { + // If it has no options, the Get started button will be displayed so remove the Learn more link if it's there. + var learnMore = document.querySelector( '.jetpack-plugin-search__learn-more' ); + learnMore.parentNode.removeChild( learnMore ); + classes += ' jetpack-plugin-search__get-started'; + track = 'get_started'; + } + $moduleBtn.replaceWith( + '<a id="plugin-select-settings" class="' + classes + '" href="' + url + '" data-module="' + moduleName + '" data-track="' + track + '">' + label + '</a>' + ); + }, 1000 ); + + } ); + }, + + /** + * Start suggesting. + */ + init: function() { + if ( JetpackPSH.$pluginFilter.length < 1 ) { + return; + } + + // Update title to show that the suggestion is from Jetpack. + JetpackPSH.updateCardTitle(); + + // Update the description and action links. + JetpackPSH.moveActionLinks(); + + // Replace PSH bottom row on page load + JetpackPSH.replaceCardBottom(); + + // Listen for changes in plugin search results + var resultsObserver = new MutationObserver( JetpackPSH.replaceOnNewResults ); + resultsObserver.observe( document.getElementById( 'plugin-filter' ), { childList: true } ); + + JetpackPSH.$pluginFilter + .on( 'click', '.jetpack-plugin-search__dismiss', function( event ) { + event.preventDefault(); + JetpackPSH.dismiss( $( this ).data( 'module' ) ); + } ) + .on( 'click', 'button#plugin-select-activate', function( event ) { + event.preventDefault(); + JetpackPSH.ajaxActivateModule( $( this ).data( 'module' ) ); + } ) + .on( 'click', '.jetpack-plugin-search__primary', function( event ) { + event.preventDefault(); + var $this = $( this ); + if ( $this.data( 'track' ) ) { + // This catches Purchase, Configure, and Get started. Feature activation is tracked when it ends successfully, in its callback. + JetpackPSH.trackEvent( 'wpa_plugin_search_' + $this.data( 'track' ), $this.data( 'module' ), $this.get(0) ); + } + } ) + .on( 'click', '.jetpack-plugin-search__learn-more', function( event ) { + event.preventDefault(); + var $this = $( this ); + + JetpackPSH.trackEvent( + 'wpa_plugin_search_learn_more', + $this.data( 'module' ), + $this.get( 0 ) + ); + } ) + .on( 'click', '.jetpack-plugin-search__support_link', function( event ) { + event.preventDefault(); + var $this = $( this ); + JetpackPSH.trackEvent( + 'wpa_plugin_search_support_link', + $this.data( 'module' ), + $this.get( 0 ) + ); + } ); + } + + }; + + JetpackPSH.init(); + +} )( jQuery, jetpackPluginSearch ); diff --git a/plugins/jetpack/modules/plugin-search/psh-128.png b/plugins/jetpack/modules/plugin-search/psh-128.png Binary files differnew file mode 100644 index 00000000..20c74c4c --- /dev/null +++ b/plugins/jetpack/modules/plugin-search/psh-128.png diff --git a/plugins/jetpack/modules/plugin-search/psh-256.png b/plugins/jetpack/modules/plugin-search/psh-256.png Binary files differnew file mode 100644 index 00000000..2dfc2207 --- /dev/null +++ b/plugins/jetpack/modules/plugin-search/psh-256.png diff --git a/plugins/jetpack/modules/plugin-search/psh.svg b/plugins/jetpack/modules/plugin-search/psh.svg new file mode 100644 index 00000000..5b2609ef --- /dev/null +++ b/plugins/jetpack/modules/plugin-search/psh.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 183 104" xmlns="http://www.w3.org/2000/svg"><path d="m.3 99.6c11-.6 22.1-.7 33.1-.8l16.6-.1h16.6l33.1.2c11 .1 22.1.2 33.1.6.2 0 .4.2.4.4s-.2.4-.4.4c-11 .4-22.1.5-33.1.6l-33.1.2h-16.6l-16.6-.1c-11-.1-22.1-.3-33.1-.8-.1 0-.2-.1-.2-.2 0-.3.1-.4.2-.4zm152.5 0c2.5-.5 5-.7 7.5-.8l3.7-.1h3.7c2.5 0 5 .1 7.5.2s5 .2 7.5.6c.2 0 .4.2.4.5 0 .2-.2.3-.4.4-2.5.4-5 .5-7.5.6s-5 .1-7.5.2h-3.7l-3.7-.1c-2.5-.1-5-.3-7.5-.8-.1 0-.2-.1-.2-.2 0-.4.1-.5.2-.5z" fill="#e3eaf0"/><path d="m46.1 82.8v-57.8h70.1v57.8h-66.3" fill="#d8dee4"/><path d="m46.1 24.7v-13.6h98.2v13.5h-92.8" fill="#BBC9D5"/><path d="m144.3 25.2.9 57.3-28.9.1v-57.4z" fill="#ccced0"/><path d="m102.5 82.7h-48.2v-32.1h53.1v32.1m0-35.7h-53.1v-13.2h53.1z" fill="#fff"/><path d="m96.1 41.6c-.7.2-1.4.5-2.1.8-.6.4-1.3.7-1.9 1.1-.4.3-.9.6-1.4.9.4-.5.9-1.1 1.3-1.6.5-.6 1-1.3 1.4-2 .5-.7.9-1.4 1.2-2.2 0-.1 0-.1-.1-.1h-.1c-.7.5-1.3 1.1-1.8 1.7s-1 1.3-1.5 1.9c-.4.6-.9 1.2-1.3 1.9.2-.7.5-1.4.7-2.2l.6-2.4c.2-.8.3-1.6.3-2.5v-.1h-.1c-.4.7-.8 1.5-1 2.2-.3.8-.5 1.6-.7 2.3-.2.6-.3 1.2-.4 1.8 0-.7-.1-1.5-.1-2.2-.1-.9-.2-1.7-.3-2.6s-.3-1.7-.5-2.6c0-.1-.1-.2-.2-.1-.1 0-.1.1-.1.2-.1.9-.1 1.8-.1 2.6 0 .9.1 1.7.1 2.6.1.9.1 1.7.2 2.6-.2-.5-.5-1.1-.8-1.6-.3-.6-.7-1.3-1-1.9l-1.2-1.8c-.1-.1-.2-.1-.3 0-.1 0-.1.1-.1.2.2.7.4 1.4.7 2.1s.6 1.3.9 2c.2.3.3.6.5.9-.5-.5-1-1.1-1.5-1.6-.7-.6-1.3-1.3-2-1.9s-1.4-1.2-2.2-1.7c-.1-.1-.2 0-.3.1v.2c.5.8 1.1 1.5 1.7 2.1.6.7 1.3 1.3 1.9 2 .6.6 1.3 1.3 2 1.9l.1.1c-.4-.2-.8-.4-1.2-.5-.6-.2-1.2-.5-1.9-.7-.6-.2-1.3-.4-1.9-.5-.1 0-.2.1-.2.2s0 .1.1.2c.5.4 1.1.7 1.7 1s1.2.6 1.8.8c.6.3 1.2.5 1.9.7.6.2 1.2.3 1.9.4h.3c.7-.3 1.4-.6 2-.9.6-.4 1.3-.7 1.9-1.1l1.8-1.2c.6-.4 1.2-.9 1.7-1.5v-.1c-.3.1-.4.1-.4.1z" fill="#ccced0"/><path d="m147.6 24.9c-8.7.9-17.4.9-26.1 1l-26.1.3h-26.1c-8.7 0-17.4.1-26.1-.7v-.5c8.7-.9 17.4-.9 26.1-1l26.1-.3h26.1c8.7 0 17.4-.1 26.1.7z" fill="#46799A"/><path d="m77.3 70c-1.1.6-2.1 1.3-2.9 2.2l.3-1.1c.4-1.7 1-3.4 1.6-5.1l-.3-.2c-.6.7-1.1 1.5-1.4 2.4-.4.9-.7 1.7-.9 2.6s-.4 1.8-.5 2.8v.8c-.2.6-.3 1.4-.1 2h.2l.1-.1v.1h.2c.1-.5.3-.9.4-1.4.1-.1.1-.2.2-.3.3-.5.7-1 1-1.5.4-.5.8-.9 1.3-1.4s.9-.9 1.3-1.5c-.2 0-.5-.3-.5-.3zm24.6-10.4c-.5-.9-1.3-2-2.8-2.5-.6-.2-1.3-.3-2-.3.3-.4.6-.7.9-1.1l-.3-.3c-.6.5-1.1 1-1.7 1.5-.5.1-1 .3-1.4.5-.2-1-.6-2.3-1.8-3.3-.8-.7-1.9-1.1-2.9-1.2-1.1-.1-2.1.7-2.3 1.8 0 .3 0 .5.1.8.3 1.1.9 2 1.8 2.7 1 .8 2.3 1.3 3.6 1.3.3 0 .6 0 .9-.1-1 1.5-1.8 3.1-2.5 4.8l-.1.1c-.2-1-.7-2.8-2.5-3.8-1.1-.6-2.3-.9-3.6-.7-1 .1-1.7 1-1.6 2.1 0 .1 0 .3.1.4.4 1.2 1.2 2.2 2.3 2.9 1.4.8 3 1 4.5.5 0 .1.1.2.2.3-.5 1.7-.8 3.4-1 5.1-.2-.6-1.4-2.8-3.9-3.3-1.2-.2-2.5 0-3.6.5-.9.5-1.3 1.6-.8 2.5.1.1.1.2.2.3.8 1 1.9 1.7 3.2 1.9.3.1.7.1 1.1.1 1.2 0 2.3-.4 3.3-1l-.1.2.2.3c.1.2.2.3.3.5-.1 1.5 0 3.1.2 4.6h.2c.2-1.3.3-2.5.4-3.8.9.8 2.1 1.2 3.4 1.2 1.2 0 2.3-.4 3.3-1 .5-.3.8-.8.8-1.4s-.2-1.1-.6-1.5c-.7-.7-1.9-1.5-3.5-1.5-1.1 0-2.1.3-3 .9.2-1.2.4-2.4.8-3.6.9.8 2 1.3 3.1 1.4h.5c1 0 2-.3 2.9-.8.5-.3.8-.8.9-1.3.1-.6-.1-1.1-.5-1.5-.7-.7-1.8-1.6-3.3-1.7-.8-.1-1.7.1-2.5.4.4-1 .9-2 1.5-3 .1-.1.1-.2.2-.4.6.9 1.6 1.7 2.7 2 .6.2 1.2.3 1.8.3s1.1-.1 1.6-.2c.5-.2 1-.6 1.2-1.1.5-.4.4-1 .1-1.5zm-15.2 4.9c-.9-.5-1.5-1.3-1.9-2.3-.1-.4.1-.9.5-1.1h.8c.8 0 1.6.2 2.3.6 1.5.9 1.9 2.6 2 3.3-1.2.3-2.6.1-3.7-.5zm-1.5 7.7c-1-.2-1.9-.7-2.6-1.6-.3-.4-.2-.9.1-1.2l.1-.1c.7-.3 1.4-.5 2.2-.5.3 0 .5 0 .8.1 1.7.3 2.7 1.8 3 2.5-.9.8-2.3 1.1-3.6.8zm8.8-1.3c1.3 0 2.2.6 2.8 1.2.3.3.4.9 0 1.2 0 0-.1.1-.2.1-.7.6-1.6.9-2.6.9-1.6 0-2.6-.8-3.2-1.5 0-.2.1-.4.1-.6.6-.5 1.7-1.3 3.1-1.3zm1.4-6.6c1.2.1 2.2.8 2.7 1.4.2.2.2.4.2.7s-.2.5-.4.6c-.9.5-1.9.7-2.9.6-1.1-.1-2.2-.7-2.9-1.5v-.1c.1-.3.2-.7.3-1 .9-.5 1.9-.8 3-.7zm-1.7-5.6c-1.3.2-2.6-.2-3.6-1-.7-.6-1.2-1.3-1.4-2.2-.2-.6.2-1.2.7-1.3h.4c.9.1 1.7.4 2.4 1 1.4 1 1.5 2.7 1.5 3.5zm7.4 2.1c-.1.2-.3.4-.6.5-.9.3-1.9.3-2.9-.1-1-.3-1.9-1.1-2.4-2l.9-1.2c.9-.2 1.8-.2 2.6.1 1.2.4 1.9 1.3 2.3 2 .2.2.2.5.1.7z" fill="#ccced0"/><path d="m178.2 57.1c-.1-.5-.5-.9-1-.9-2.1 0-4.2-.2-6.3-.5s-4.2-.8-6.2-1.5-3.9-1.6-5.7-2.7-3.3-2.5-4.6-4.1l-.1-.1c-.4-.3-1-.3-1.3.1-1.2 1.4-2.8 2.8-4.3 4-1.6 1.2-3.3 2.2-5.1 3s-3.7 1.4-5.6 1.8-3.9.5-5.9.3c-.4 0-.7.3-.8.6-.7 4.8-.9 9.5-.6 14.3.3 4.7 1.2 9.5 2.9 13.9 1.7 4.5 4.3 8.6 7.8 11.9s7.8 5.5 12.4 6.7h.1c2.5-.1 4.9-.8 7.1-1.8s4.4-2.3 6.2-4c3.8-3.2 6.7-7.4 8.6-12 2-4.6 2.8-9.5 3.1-14.4s0-9.8-.7-14.6z" fill="#00be28"/><path d="m145.3 78.3 7.4 5.9 15.1-17.2" fill="#00be28"/><path d="m168.1 66.9c-.1-.1-.3-.2-.5-.1-1.5 1.2-2.9 2.6-4.2 3.9l-3.9 4.2c-2.3 2.6-4.6 5.1-6.9 7.7-1-.8-1.9-1.5-2.9-2.3l-1.9-1.5c-.7-.5-1.2-1.1-2.1-1.2h-.4c-.4.2-.6.6-.4 1 .3.9 1 1.2 1.6 1.8l1.8 1.5c1.2 1 2.4 2 3.7 3 .5.4 1.1.3 1.5-.1 2.5-2.9 5-5.7 7.5-8.6 1.2-1.5 2.5-2.9 3.7-4.4s2.3-3 3.3-4.7c.2.1.1-.1.1-.2z" fill="#fff"/><path d="m137.2 99.7c-5-.2-10-.4-15-.5s-10-.2-15-.2c-10-.1-19.9-.1-29.9-.1l-29.9-.1h-18.7c-.7 0-1.1 0-1.6-.1s-.9-.3-1.3-.6c-.8-.6-1.3-1.4-1.5-2.4 0-.2-.1-.5-.1-.7v-1.6l52.9-.1h4.8v2.4c0 .3.2.5.5.5h24.5c.3 0 .5-.2.5-.5v-2.7c3.5 0 6.9-.1 10.4-.2 4.5-.1 9-.2 13.5-.4.1 0 .2-.1.2-.3 0-.1-.1-.2-.2-.2-4.5-.2-9-.3-13.5-.4s-9-.2-13.5-.2c-9-.1-18-.1-27-.1l-54.2-.2c-.6 0-1.2.5-1.2 1.2v2.8c0 .4 0 .8.1 1.2.5 2.3 2.2 4.2 4.5 4.8.7.2 1.6.2 2.2.2h18.7l29.9-.1c10 0 19.9 0 29.9-.1 5 0 10-.1 15-.2s10-.2 15-.5c.1 0 .2-.1.2-.3s-.1-.3-.2-.3zm16.6-99.4-25.8-.1h-85.1c-.6 0-1.2.1-1.8.3-1.2.3-2.3.9-3.3 1.7-1.9 1.6-3.1 4-3 6.5v82.5h2.2v-82.4c0-2.9 1.9-5.4 4.6-6.1.4-.1.9-.2 1.4-.2h85.1l24.9-.1.2 19.7.1 10.3.2 10.3c0 .2.2.3.4.3.1 0 .3-.1.3-.3l.2-10.3.1-10.3.2-20.6c-.1-.7-.4-1.1-.9-1.2z" fill="#ccced0"/><path d="m54.3 78.8c13.6-5.6 42.9-1.9 52.5 4.1l-52.5-.2z" fill="#6F93AD"/></svg>
\ No newline at end of file |