summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/jetpack/modules/plugin-search')
-rw-r--r--plugins/jetpack/modules/plugin-search/plugin-search.css84
-rw-r--r--plugins/jetpack/modules/plugin-search/plugin-search.js264
-rw-r--r--plugins/jetpack/modules/plugin-search/psh-128.pngbin0 -> 12524 bytes
-rw-r--r--plugins/jetpack/modules/plugin-search/psh-256.pngbin0 -> 27512 bytes
-rw-r--r--plugins/jetpack/modules/plugin-search/psh.svg1
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
new file mode 100644
index 00000000..20c74c4c
--- /dev/null
+++ b/plugins/jetpack/modules/plugin-search/psh-128.png
Binary files differ
diff --git a/plugins/jetpack/modules/plugin-search/psh-256.png b/plugins/jetpack/modules/plugin-search/psh-256.png
new file mode 100644
index 00000000..2dfc2207
--- /dev/null
+++ b/plugins/jetpack/modules/plugin-search/psh-256.png
Binary files differ
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