Version Description
- Add Inline Critical CSS to Inline Content Tool to reduce Layout Shift when CSS loading deferred
- Add Facebook share tooltip to explain why shares do not appear when under 100
- Add post and category IDs to Grow data
- Add status REST API endpoint
- Add the Grow saved class to the Trellis critical CSS bypass
- Fix inline content buttons showing up in WooCommerce product pages
- Fix outdated doc links in dashboard
- Fix inline content buttons not showing up before WPRM Jump to Recipe
- Fix Grow bookmark button not saving state
- Fix checking requirements on older WordPress versions causing fatal error
Download this release
Release Info
Developer | mediavine |
Plugin | Social Share Buttons – Social Pug |
Version | 1.20.0 |
Comparing to | |
See all releases |
Code changes from version 1.19.2 to 1.20.0
- assets/dist/{custom-social-media-image-pinterest.1.19.2.png → custom-social-media-image-pinterest.1.20.0.png} +0 -0
- assets/dist/{custom-social-media-image.1.19.2.png → custom-social-media-image.1.20.0.png} +0 -0
- assets/dist/dashboard-pro.1.19.2.js +0 -19
- assets/dist/dashboard-pro.1.20.0.js +44 -0
- assets/dist/{dashboard-tinymce.1.19.2.js → dashboard-tinymce.1.20.0.js} +0 -0
- assets/dist/{dpsp-selectable-empty.1.19.2.png → dpsp-selectable-empty.1.20.0.png} +0 -0
- assets/dist/{extension-bitly.1.19.2.png → extension-bitly.1.20.0.png} +0 -0
- assets/dist/{extension-branch.1.19.2.png → extension-branch.1.20.0.png} +0 -0
- assets/dist/{extension-ctt.1.19.2.png → extension-ctt.1.20.0.png} +0 -0
- assets/dist/{extension-ga-utm-tracking.1.19.2.png → extension-ga-utm-tracking.1.20.0.png} +0 -0
- assets/dist/{extension-networks.1.19.2.png → extension-networks.1.20.0.png} +0 -0
- assets/dist/front-end-free.1.19.2.js +0 -75
- assets/dist/front-end-free.1.20.0.js +63 -0
- assets/dist/{grow-logo-sq-navy.1.19.2.png → grow-logo-sq-navy.1.20.0.png} +0 -0
- assets/dist/intercom.1.19.2.js +0 -11
- assets/dist/intercom.1.20.0.js +3 -0
- assets/dist/{jquery.ui.touch-punch.min.1.19.2.js → jquery.ui.touch-punch.min.1.20.0.js} +0 -0
- assets/dist/{social-pug-upgrade.1.19.2.png → social-pug-upgrade.1.20.0.png} +0 -0
- assets/dist/{socialpug.1.19.2.eot → socialpug.1.20.0.eot} +0 -0
- assets/dist/{socialpug.1.19.2.svg → socialpug.1.20.0.svg} +0 -0
- assets/dist/{socialpug.1.19.2.ttf → socialpug.1.20.0.ttf} +0 -0
- assets/dist/{socialpug.1.19.2.woff → socialpug.1.20.0.woff} +0 -0
- assets/dist/{style-dashboard-pro.1.19.2.css → style-dashboard-pro.1.20.0.css} +1 -1
- assets/dist/style-frontend-pro-jquery.1.19.2.css +0 -1
- assets/dist/style-frontend-pro-jquery.1.20.0.css +1 -0
- assets/dist/style-frontend-pro.1.19.2.css +0 -1
- assets/dist/style-frontend-pro.1.20.0.css +1 -0
- assets/dist/{tool-content.1.19.2.png → tool-content.1.20.0.png} +0 -0
- assets/dist/{tool-follow-widget.1.19.2.png → tool-follow-widget.1.20.0.png} +0 -0
- assets/dist/{tool-image-hover-pinterest.1.19.2.png → tool-image-hover-pinterest.1.20.0.png} +0 -0
- assets/dist/{tool-misc-import-export.1.19.2.png → tool-misc-import-export.1.20.0.png} +0 -0
- assets/dist/{tool-mobile.1.19.2.png → tool-mobile.1.20.0.png} +0 -0
- assets/dist/{tool-pop-up.1.19.2.png → tool-pop-up.1.20.0.png} +0 -0
- assets/dist/{tool-sidebar.1.19.2.png → tool-sidebar.1.20.0.png} +0 -0
- assets/src/css/abstract/_mixins.scss +1 -1
- assets/src/css/components/_buttons-general.scss +5 -3
- assets/src/css/components/_buttons-sticky.scss +11 -3
- constants.php +5 -0
- inc/admin/admin-metaboxes.php +75 -26
- inc/admin/class-admin-messages.php +122 -0
- inc/admin/submenu-page-extensions.php +0 -2
- inc/admin/submenu-page-settings.php +6 -2
- inc/admin/views/view-submenu-page-debugger.php +5 -5
- inc/admin/views/view-submenu-page-settings.php +3 -18
- inc/admin/views/view-submenu-page-sidebar.php +1 -1
- inc/api/v1/class-status-schema.php +1 -1
- inc/api/v1/settings-args.php +1 -2
- inc/api/v1/settings-partials.php +9 -9
- inc/api/v1/settings-schema.php +68 -1
- inc/class-activation.php +146 -46
- inc/class-admin-notices.php +56 -56
- inc/class-critical-styles.php +99 -0
- inc/class-custom-color.php +8 -4
- inc/class-data-sync.php +4 -0
- inc/class-dpsp-network-buttons-outputter.php +33 -25
- inc/class-frontend-data.php +30 -3
- inc/class-icon.php +5 -2
- inc/class-mobile-detect.php +0 -899
- inc/class-previous-urls.php +124 -0
- inc/class-settings.php +19 -0
- inc/class-share-count-client.php +212 -0
- inc/class-share-count-url-counts.php +186 -0
- inc/class-share-count-url.php +39 -0
- inc/class-share-counts.php +633 -8
- inc/class-social-pug.php +44 -16
- inc/class-status-api-controller.php +3 -3
- inc/class-view-loader.php +4 -1
- inc/functions-admin.php +64 -60
- inc/functions-deprecated.php +222 -0
- inc/functions-frontend.php +12 -9
- inc/functions-mobile.php +0 -55
- inc/functions-requirements.php +16 -27
- inc/functions-share-counts.php +108 -539
- inc/functions-tools.php +23 -11
- inc/functions.php +22 -12
- inc/integrations/class-mv-trellis.php +9 -16
- inc/networks/class-networks.php +8 -8
- inc/tools/class-tool.php +5 -0
- inc/tools/share-floating-sidebar/class-floating-sidebar.php +10 -3
- inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php +8 -10
- inc/tools/share-inline-content/class-inline-content.php +9 -2
- inc/tools/share-inline-content/functions-frontend.php +75 -26
- inc/tools/share-inline-content/views/frontend.php +3 -3
- inc/tools/share-inline-content/views/view-submenu-page-content.php +7 -9
- inc/tools/share-sticky-bar/class-sticky-bar.php +8 -0
- inc/tools/share-sticky-bar/functions-frontend.php +2 -1
- inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php +8 -8
- inc/views/single-button.php +7 -3
- inc/views/total-share-count.php +6 -2
- inc/widgets/class-dpsp-top-shared-posts.php +13 -4
- index.php +14 -15
- kernl.version +1 -0
- readme.txt +14 -4
- translations/social-pug.pot +245 -279
- vendor/autoload.php +1 -1
- vendor/composer/ClassLoader.php +139 -12
- vendor/composer/InstalledVersions.php +330 -218
assets/dist/{custom-social-media-image-pinterest.1.19.2.png → custom-social-media-image-pinterest.1.20.0.png}
RENAMED
File without changes
|
assets/dist/{custom-social-media-image.1.19.2.png → custom-social-media-image.1.20.0.png}
RENAMED
File without changes
|
assets/dist/dashboard-pro.1.19.2.js
DELETED
@@ -1,19 +0,0 @@
|
|
1 |
-
parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c<t.length;c++)try{f(t[c])}catch(e){i||(i=e)}if(t.length){var l=f(t[t.length-1]);"object"==typeof exports&&"undefined"!=typeof module?module.exports=l:"function"==typeof define&&define.amd?define(function(){return l}):n&&(this[n]=l)}if(parcelRequire=f,i)throw i;return f}({"LGpM":[function(require,module,exports) {
|
2 |
-
function e(e,o){(null==o||o>e.length)&&(o=e.length);for(var l=0,r=new Array(o);l<o;l++)r[l]=e[l];return r}module.exports=e,module.exports.default=module.exports,module.exports.__esModule=!0;
|
3 |
-
},{}],"o3SL":[function(require,module,exports) {
|
4 |
-
var r=require("./arrayLikeToArray.js");function e(e){if(Array.isArray(e))return r(e)}module.exports=e,module.exports.default=module.exports,module.exports.__esModule=!0;
|
5 |
-
},{"./arrayLikeToArray.js":"LGpM"}],"lZpU":[function(require,module,exports) {
|
6 |
-
function e(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}module.exports=e,module.exports.default=module.exports,module.exports.__esModule=!0;
|
7 |
-
},{}],"Vzqv":[function(require,module,exports) {
|
8 |
-
var r=require("./arrayLikeToArray.js");function e(e,t){if(e){if("string"==typeof e)return r(e,t);var o=Object.prototype.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?r(e,t):void 0}}module.exports=e,module.exports.default=module.exports,module.exports.__esModule=!0;
|
9 |
-
},{"./arrayLikeToArray.js":"LGpM"}],"NCaH":[function(require,module,exports) {
|
10 |
-
function e(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}module.exports=e,module.exports.default=module.exports,module.exports.__esModule=!0;
|
11 |
-
},{}],"I9dH":[function(require,module,exports) {
|
12 |
-
var e=require("./arrayWithoutHoles.js"),r=require("./iterableToArray.js"),o=require("./unsupportedIterableToArray.js"),u=require("./nonIterableSpread.js");function t(t){return e(t)||r(t)||o(t)||u()}module.exports=t,module.exports.default=module.exports,module.exports.__esModule=!0;
|
13 |
-
},{"./arrayWithoutHoles.js":"o3SL","./iterableToArray.js":"lZpU","./unsupportedIterableToArray.js":"Vzqv","./nonIterableSpread.js":"NCaH"}],"Mzb7":[function(require,module,exports) {
|
14 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=t(require("@babel/runtime/helpers/toConsumableArray"));function t(e){return e&&e.__esModule?e:{default:e}}var a=function(t){if(!t)return!1;var a=document.createElementNS("http://www.w3.org/2000/svg","svg");return[{name:"version",value:"1.1"},{name:"xmlns",value:"http://www.w3.org/2000/svg"},{name:"viewBox",value:"0 0 ".concat(t.width," ").concat(t.height)},{name:"height",value:t.referenceHeight?t.referenceHeight:t.height},{name:"width",value:t.referenceHeight?"100%":t.width},{name:"class",value:t.class?t.class:""}].concat((0,e.default)(function(e){return e.fill?[{name:"fill",value:e.fill}]:[]}(t)),(0,e.default)(function(e){return e.y?[{name:"y",value:e.y}]:[]}(t)),(0,e.default)(function(e){return e.x?[{name:"x",value:e.x}]:[]}(t))).forEach(function(e){var t=e.name,n=e.value;return a.setAttribute(t,n)}),t.paths.forEach(function(e){var t=document.createElementNS("http://www.w3.org/2000/svg","path");t.setAttribute("d",e),a.appendChild(t)}),a},n=a;exports.default=n;
|
15 |
-
},{"@babel/runtime/helpers/toConsumableArray":"I9dH"}],"tCTD":[function(require,module,exports) {
|
16 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var t=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mv-grow-data";return window.mvGrowData&&window.mvGrowData.init?window.mvGrowData:(document.getElementById(t)&&document.getElementById(t).dataset.settings&&(window.mvGrowData=JSON.parse(document.getElementById(t).dataset.settings),window.mvGrowData.init=!0),{init:!0})},e=t;exports.default=e;
|
17 |
-
},{}],"dNy0":[function(require,module,exports) {
|
18 |
-
"use strict";var t=s(require("./fn/utils/create-svg-icon")),e=s(require("./fn/utils/get-settings"));function s(t){return t&&t.__esModule?t:{default:t}}jQuery(function(s){function i(t,e,s){var i=-1!==s.indexOf("?")?"&":"?";return s+i+t+"="+e}function p(t){s('.dpsp-social-platforms-sort-list li[data-network="'+t+'"]').remove(),s(".dpsp-social-platforms-sort-list li").removeClass("dpsp-last"),s(".dpsp-social-platforms-sort-list li").last().addClass("dpsp-last"),0==s(".dpsp-social-platforms-sort-list li").length&&(s(".dpsp-social-platforms-sort-list").fadeOut(1),s(".dpsp-social-platforms-sort-list").removeClass("dpsp-active"))}(0,e.default)("mv-grow-admin-data"),s(document).on("click",".dpsp-tool-wrapper .dpsp-switch label",function(t){var e=s(this).closest(".dpsp-tool-actions"),i=e.find(".dpsp-tool-settings");i.fadeOut(200),e.append('<div class="dpsp-tool-actions-overlay"><div class="spinner"></div></div>'),e.find(".dpsp-tool-actions-overlay").animate({opacity:1},200);var p=s(this).siblings("input").data("tool");s(this).siblings("input").data("tool-activation");"undefined"!=p&&(e.hasClass("dpsp-inactive")?function(t){var e={action:"dpsp_activate_tool",dpsptkn:s("#dpsptkn").val(),tool:t};return s.post(ajaxurl,e,function(){})}(p).done(function(t){1==t&&(e.find(".dpsp-tool-actions-overlay").animate({opacity:0},200,function(){s(this).remove()}),e.removeClass("dpsp-inactive").addClass("dpsp-active"),e.find("span").text("Active"),i.fadeIn(200))}):function(t){var e={action:"dpsp_deactivate_tool",dpsptkn:s("#dpsptkn").val(),tool:t};return s.post(ajaxurl,e,function(){})}(p).done(function(t){var i;1==t&&(e.find(".dpsp-tool-actions-overlay").animate({opacity:0},200,function(){s(this).remove()}),e.removeClass("dpsp-active").addClass("dpsp-inactive"),e.find("span").text("Inactive"),i=(i=p).replace("share_","").replace("follow_","").replace("misc_","").replace("_","-"),s("#toplevel_page_dpsp-social-pug .wp-submenu li a").each(function(){s(this).attr("href").indexOf(i),"images"!==i&&s(this).parent().hide()}))}))}),s.fn.wpColorPicker&&s(".dpsp-color-picker").wpColorPicker(),s.fn.select2&&s(".dpsp-setting-field-select select").select2({minimumResultsForSearch:1/0}).on("select2:open",function(){s(".select2-container").last().addClass("dpsp-select2")}),s(function(){s(".dpsp-social-platforms-sort-list").sortable({handle:".dpsp-sort-handle",placeholder:"dpsp-sort-placeholder",containment:"#wpwrap",stop:function(){s(".dpsp-social-platforms-sort-list li").removeClass("dpsp-last"),s(".dpsp-social-platforms-sort-list li").last().addClass("dpsp-last")}})}),s(document).on("click","#dpsp-networks-selector .dpsp-network-item",function(){var t=s(this);t.children(".dpsp-network-item-checkbox");t.attr("data-checked")?t.removeAttr("data-checked"):t.attr("data-checked","true")}),s(document).on("click","#dpsp-select-networks",function(t){t.preventDefault(),s("#dpsp-networks-selector-wrapper").hasClass("dpsp-active")?(s("#dpsp-networks-selector-wrapper").removeClass("dpsp-active"),s("#dpsp-networks-selector-wrapper").stop().fadeOut(250,function(){0==s(".dpsp-social-platforms-sort-list").find("li").length?(s("#dpsp-sortable-networks-empty").stop().fadeIn(400),s("#dpsp-sortable-networks-empty").addClass("dpsp-active")):(s(".dpsp-social-platforms-sort-list").stop().fadeIn(400),s(".dpsp-social-platforms-sort-list").addClass("dpsp-active"))})):(s("#dpsp-select-networks").hide(),s("#dpsp-networks-selector-wrapper").addClass("dpsp-active"),0==s(".dpsp-social-platforms-sort-list").find("li").length?(s(".dpsp-social-platforms-sort-list").hide(),s("#dpsp-sortable-networks-empty").removeClass("dpsp-active"),s("#dpsp-sortable-networks-empty").stop().fadeOut(250,function(){s("#dpsp-networks-selector-wrapper").stop().fadeIn(250)})):(s(".dpsp-social-platforms-sort-list").removeClass("dpsp-active"),s(".dpsp-social-platforms-sort-list").stop().fadeOut(250,function(){s("#dpsp-networks-selector-wrapper").stop().fadeIn(250)})))}),s(document).on("click","#dpsp-networks-selector-footer a",function(e){e.preventDefault(),s("#dpsp-select-networks").show(),s("#dpsp-networks-selector .dpsp-network-item").each(function(){var e=s(this),i=e.attr("data-network"),a=e.attr("data-network-name");if(e.attr("data-checked")){var n=!1;if(s(".dpsp-social-platforms-sort-list li").each(function(){s(this).attr("data-network")==i&&(n=!0)}),n)return n;!function(e,i){if("undefined"==e)return!1;if("undefined"==i)return!1;var p="",a=s('input[name="dpsp_buttons_location"]').val(),n=window.mvGrowData.iconData[e];p+='<li data-network="'+e+'">',p+='<div class="dpsp-sort-handle ui-sortable-handle">\x3c!-- --\x3e</div>',p+='<div class="dpsp-list-icon dpsp-list-icon-social dpsp-icon-'+e+" dpsp-background-color-network-"+e+'">'+(0,t.default)(n).outerHTML+"</div>",p+='<div class="dpsp-list-input-wrapper"><input type="text" placeholder="This button has no label text." name="'+a+"[networks]["+e+'][label]" value="'+i+'"></div>',p+='<div class="dpsp-list-actions">',p+='<a class="dpsp-list-edit-label dpsp-transition" href="#"><span class="dashicons dashicons-edit"></span>Edit Label</a>',p+='<a class="dpsp-list-remove dpsp-transition" href="#"><span class="dashicons dashicons-no-alt"></span>Remove</a>',p+="</div>",p+="</li>",s(".dpsp-social-platforms-sort-list").append(p),s(".dpsp-social-platforms-sort-list li").removeClass("dpsp-last"),s(".dpsp-social-platforms-sort-list li").last().addClass("dpsp-last")}(i,a)}else p(i)}),s("#dpsp-networks-selector-wrapper").removeClass("dpsp-active").stop().fadeOut(250,function(){0==s(".dpsp-social-platforms-sort-list").find("li").length?(s("#dpsp-sortable-networks-empty").stop().fadeIn(250),s("#dpsp-sortable-networks-empty").addClass("dpsp-active")):(s(".dpsp-social-platforms-sort-list").stop().fadeIn(250),s(".dpsp-social-platforms-sort-list").addClass("dpsp-active"))})}),s(document).on("click",".dpsp-list-edit-label",function(t){t.preventDefault(),s(this).closest("li").find(".dpsp-list-input-wrapper input").focus().select()}),s(document).on("click",".dpsp-list-remove",function(t){t.preventDefault();var e=s(this).closest("li").attr("data-network");p(e),s('#dpsp-networks-selector .dpsp-network-item[data-network="'+e+'"]').removeAttr("data-checked"),0==s(".dpsp-social-platforms-sort-list").find("li").length&&(s("#dpsp-sortable-networks-empty").stop().fadeIn(250),s("#dpsp-sortable-networks-empty").addClass("dpsp-active"),s(".dpsp-social-platforms-sort-list").removeClass("dpsp-active"))}),s(document).ready(function(){s(".dpsp-network-btn").attr("href","#")}),s(document).on("click",".dpsp-network-btn",function(t){t.preventDefault(),s(this).closest("label").trigger("click")}),s(document).on("focus",".dpsp-page-mobile .dpsp-list-input-wrapper input",function(){s(this).blur()}),s(document).on("focus",".dpsp-page-sticky-bar .dpsp-list-input-wrapper input",function(){s(this).blur()}),s(document).on("focus",".dpsp-list-input-wrapper input",function(){s(this).attr("data-placeholder",s(this).attr("placeholder")),s(this).attr("placeholder"," ")}),s(document).on("blur",".dpsp-list-input-wrapper input",function(){s(this).attr("placeholder",s(this).attr("data-placeholder")),s(this).attr("data-placeholder"," ")}),s(document).on("change",".dpsp-setting-field-button-shape select",function(){s(this).closest(".dpsp-page-wrapper").find(".dpsp-networks-btns-wrapper").parent().removeClass("dpsp-shape-circle dpsp-shape-rounded dpsp-shape-rectangular").addClass("dpsp-shape-"+s(this).val())}),s(document).on("mouseenter",".dpsp-setting-field-tooltip-icon",function(){s(this).siblings("div").css("opacity",1).css("visibility","visible")}),s(document).on("mouseleave",".dpsp-setting-field-tooltip-icon",function(){s(this).siblings("div").css("opacity",0).css("visibility","hidden")}),s(document).on("mouseenter",".dpsp-setting-field-tooltip-wrapper.dpsp-has-link",function(){s(this).find("div").css("opacity",1).css("visibility","visible")}),s(document).on("mouseleave",".dpsp-setting-field-tooltip-wrapper.dpsp-has-link",function(){s(this).find("div").css("opacity",0).css("visibility","hidden")}),s(".dpsp-image-select").on("click",function(t){t.preventDefault();var e,i=s(this),p=i.siblings(".dpsp-image-remove"),a=i.siblings(".dpsp-image-id"),n=i.siblings(".dpsp-image-src"),d=i.siblings("div").find("img");e?e.open():((e=wp.media({title:"Choose Image",button:{text:"Use Image"},multiple:!1})).on("select",function(){var t=e.state().get("selection").first().toJSON();a.val(t.id),n.val(t.url),d.attr("src",""),d.attr("src",t.url),i.addClass("dpsp-hidden"),p.removeClass("dpsp-hidden");var s=new CustomEvent("dpsp_settings_field_image_select_image",{detail:{field:i.closest(".dpsp-setting-field-image"),attachment:t}});document.dispatchEvent(s)}),e.open())}),s(".dpsp-image-remove").on("click",function(t){t.preventDefault();var e=s(this),i=e.siblings(".dpsp-image-select"),p=e.siblings(".dpsp-image-id"),a=e.siblings(".dpsp-image-src"),n=e.siblings("div").find("img");e.addClass("dpsp-hidden"),i.removeClass("dpsp-hidden"),p.val(""),a.val(""),n.attr("src",void 0!==n.siblings(".dpsp-field-image-placeholder").data("src")?n.siblings(".dpsp-field-image-placeholder").data("src"):"");var d=new CustomEvent("dpsp_settings_field_image_remove_image",{detail:{field:i.closest(".dpsp-setting-field-image")}});document.dispatchEvent(d)});var a,n=s(".dpsp-setting-field-show-share-count input[type=checkbox]"),d=s(".dpsp-setting-field-show-total-share-count input[type=checkbox]"),o=s(".dpsp-setting-field-share-count-round input[type=checkbox]"),l=s(".dpsp-setting-field-minimum-global-share-count input[type=text]"),r=s(".dpsp-setting-field-minimum-individual-share-count input[type=text]"),c=o.closest(".dpsp-setting-field-wrapper"),u=l.closest(".dpsp-setting-field-wrapper"),f=r.closest(".dpsp-setting-field-wrapper"),h=s(".dpsp-setting-field-show-after-user-scrolls input[type=checkbox]"),m=h.closest(".dpsp-setting-field-wrapper").next(".dpsp-setting-field-wrapper"),g=m.find("input"),v=s(".dpsp-setting-field-hide-after-reaching-element input[type=checkbox]"),w=v.closest(".dpsp-setting-field-wrapper").next(".dpsp-setting-field-wrapper"),_=w.find("input");function b(){d.is(":checked")||n.is(":checked")?(c.removeClass("disabled"),o.attr("disabled",!1)):(c.addClass("disabled"),o.attr("disabled",!0))}function k(){d.is(":checked")||n.is(":checked")?(u.removeClass("disabled"),l.attr("disabled",!1)):(u.addClass("disabled"),l.attr("disabled",!0))}function x(){d.is(":checked")||n.is(":checked")?(f.removeClass("disabled"),r.attr("disabled",!1)):(f.addClass("disabled"),r.attr("disabled",!0))}if(d.is(":checked")||(d.closest(".dpsp-setting-field-wrapper").next().addClass("disabled"),d.closest(".dpsp-setting-field-wrapper").next().find("select").attr("disabled",!0)),d.on("change",function(){d.is(":checked")?(d.closest(".dpsp-setting-field-wrapper").next().removeClass("disabled"),d.closest(".dpsp-setting-field-wrapper").next().find("select").attr("disabled",!1)):(d.closest(".dpsp-setting-field-wrapper").next().addClass("disabled"),d.closest(".dpsp-setting-field-wrapper").next().find("select").attr("disabled",!0))}),b(),k(),x(),n.on("change",function(){b(),k(),x()}),d.on("change",function(){b(),k(),x()}),h.is(":checked")||(m.addClass("disabled"),g.attr("disabled",!0)),h.on("change",function(){h.is(":checked")?(m.removeClass("disabled"),g.attr("disabled",!1)):(m.addClass("disabled"),g.attr("disabled",!0))}),v.is(":checked")||(w.addClass("disabled"),_.attr("disabled",!0)),v.on("change",function(){v.is(":checked")?(w.removeClass("disabled"),_.attr("disabled",!1)):(w.addClass("disabled"),_.attr("disabled",!0))}),s(".dpsp-nav-tab").on("click",function(t){t.preventDefault(),"pinterest-image-hover"===s(this).attr("data-tab")&&(document.location.search="?page=dpsp-pinterest-images");var e=s("input[name=_wp_http_referer]"),p=e.val();p=function(t,e){var s=e.split("?")[0],i=[],p=-1!==e.indexOf("?")?e.split("?")[1]:"";if(""!==p){for(var a=(i=p.split("&")).length-1;a>=0;a-=1)i[a].split("=")[0]===t&&i.splice(a,1);s=s+"?"+i.join("&")}return""==s.split("?")[1]&&(s=s.split("?")[0]),s}("dpsp-tab",p),e.val(i("dpsp-tab",s(this).attr("data-tab"),p)),s(".dpsp-nav-tab").removeClass("dpsp-active"),s(this).addClass("dpsp-active"),s(".dpsp-tab").removeClass("dpsp-active");var a=s(this).attr("data-tab");s("#dpsp-tab-"+a).addClass("dpsp-active")}),s(document).on("click","#dpsp-refresh-share-counts",function(t){if(t.preventDefault(),s(this).hasClass("disabled"))return!1;var e=s(this),i=e.siblings(".spinner");e.addClass("disabled"),i.css("visibility","visible"),s(".dpsp-statistic-bar-wrapper-network").css("opacity",.6);var p={action:"dpsp_refresh_share_counts",nonce:e.siblings('[name="dpsp_refresh_share_counts"]').val(),post_id:parseInt(s("#post_ID").val())};s.post(ajaxurl,p,function(t){t&&s(".dpsp-statistic-bars-wrapper").replaceWith(t)})}),s(document).on("click","#dpsp-global-refresh-share-counts",function(t){if(t.preventDefault(),s(this).hasClass("disabled"))return!1;var e=s(this),i=e.siblings(".action-text");e.addClass("disabled"),i.fadeIn();var p={action:"dpsp_refresh_all_share_counts",nonce:s("#dpsp_refresh_all_share_counts").val()};s.post(ajaxurl,p)}),s(document).ready(function(){s('[name="dpsp_settings[shortening_service]"]').on("change",function(){s(".dpsp-subsection-link-shortening").hide(),s(".dpsp-subsection-link-shortening[data-link-shortening-service="+s(this).val()+"]").show(),s("#dpsp-purge-shortened-links span").text(s(this).find("option:selected").text())}),s('[name="dpsp_settings[shortening_service]"]').trigger("change")}),s(document).on("change",'[name="dpsp_location_sticky_bar[display][show_on_device]"]',function(){"all"==s(this).val()?(s(".dpsp-setting-field-desktop-position").show(),s(".dpsp-setting-field-mobile-position").show()):(s(".dpsp-setting-field-desktop-position").hide(),s(".dpsp-setting-field-mobile-position").hide()),"desktop"==s(this).val()&&s(".dpsp-setting-field-desktop-position").show(),"mobile"==s(this).val()&&s(".dpsp-setting-field-mobile-position").show()}),s('[name="dpsp_location_sticky_bar[display][show_on_device]"]').trigger("change"),s(document).on("change",'[name="dpsp_settings[facebook_share_counts_provider]"]',function(){s(".dpsp-setting-field-facebook-authorize-app").hide(),s(".dpsp-setting-field-facebook-app-id, .dpsp-setting-field-facebook-app-secret").hide(),"authorized_app"==s(this).val()&&s(".dpsp-setting-field-facebook-authorize-app").show(),"own_app"==s(this).val()&&s(".dpsp-setting-field-facebook-app-id, .dpsp-setting-field-facebook-app-secret").show()}),s('[name="dpsp_settings[facebook_share_counts_provider]"]').trigger("change"),s(document).on("click","#dpsp-purge-shortened-links",function(t){if(t.preventDefault(),!dpsp_confirm_shorten_link_purge)return!1;var e=s(this),p=e.closest("form"),a={action:"dpsp_purge_shortened_links",nonce:s("#_wpnonce").val(),shortening_service:s('[name="dpsp_settings[shortening_service]"]').val()};p.find(":input").attr("disabled",!0),e.closest(".dpsp-setting-field-button").addClass("dpsp-loading"),s.post(ajaxurl,a,function(t){if(void 0!==(t=JSON.parse(t)).success){var e=window.location,s="dpsp_purge_shortened_links_fail";1==t.success&&(s="dpsp_purge_shortened_links_success"),e=i("updated",s,window.location.href),window.location=e}})}),s(document).on("change",".dpsp-setting-field-enable-twitter-tweet-counts input[type=checkbox]",function(){s(this).is(":checked")?s(".dpsp-setting-field-tweet-counts-provider").show():s(".dpsp-setting-field-tweet-counts-provider").hide()}),s(".dpsp-setting-field-enable-twitter-tweet-counts input[type=checkbox]").trigger("change"),s(document).on("change",".dpsp-setting-field-show-button-label input[type=checkbox]",function(){s(this).is(":checked")?s(".dpsp-setting-field-button-text-label").show():s(".dpsp-setting-field-button-text-label").hide()}),s(".dpsp-setting-field-show-button-label input[type=checkbox]").trigger("change"),s(document).on("change","#dpsp_location_follow_widget\\[display\\]\\[column_count\\]",function(t){"auto"==s(this).val()?s(".dpsp-setting-field-button-alignment").show():s(".dpsp-setting-field-button-alignment").hide()}),s("#dpsp_location_follow_widget\\[display\\]\\[column_count\\]").trigger("change"),document.addEventListener("dpsp_settings_field_image_select_image",function(t){if(0==t.detail.field.parents("#dpsp_share_options_content").length)return!1;t.detail.field.find("img").height(parseInt(200*t.detail.attachment.height/t.detail.attachment.width)),t.detail.field.closest(".dpsp-section").css("min-height",t.detail.field.height())}),document.addEventListener("dpsp_settings_field_image_remove_image",function(t){if(0==t.detail.field.parents("#dpsp_share_options_content").length)return!1;t.detail.field.find('label[for="dpsp_share_options[custom_image]"]').length>0?t.detail.field.find("img").height(105):t.detail.field.find("img").height(300),t.detail.field.closest(".dpsp-section").css("min-height",t.detail.field.height())}),s(window).on("load",function(){s("#dpsp_share_options_content .dpsp-section").each(function(){s(this).css("min-height",s(this).find(".dpsp-setting-field-image").height())})}),s(".dpsp-setting-field-wrapper textarea").on("input",function(){var t=s(this),e=t.closest(".dpsp-setting-field-wrapper").find(".dpsp-textarea-characters-remaining"),i=parseInt(e.parent().data("maximum-count")),p=parseInt(i-t.val().length);e.text(p),p<0?e.parent().addClass("dpsp-excedeed"):e.parent().removeClass("dpsp-excedeed")}),s('.dpsp-setting-field-wrapper textarea[name="dpsp_share_options[custom_tweet]"]').on("input",function(){var t=s(this),e=t.closest(".dpsp-setting-field-wrapper").find(".dpsp-textarea-characters-remaining"),i=parseInt(e.parent().data("maximum-count")),p=t.val().match(/(http(s?):\/\/[\S]*)/g),a=23*(p?p.length:0),n=parseInt(i-t.val().replace(/(http(s?):\/\/[\S]*)/g,"").length-a);e.text(n),n<0?e.parent().addClass("dpsp-excedeed"):e.parent().removeClass("dpsp-excedeed")}),s(document).on("change",'select[name="dpsp_settings[ctt_style]"]',function(){s("#section-click-to-tweet-preview > a").removeClass("dpsp-click-to-tweet").attr("class",function(t,e){return e.replace(/(^|\s)dpsp-style-\S+/g,"")}),s("#section-click-to-tweet-preview > a").addClass("dpsp-click-to-tweet").addClass("dpsp-style-"+s(this).val())}),s(document).on("keyup",'input[name="dpsp_settings[ctt_link_text]"]',function(){s("#section-click-to-tweet-preview > a .dpsp-click-to-tweet-cta > span").html(s(this).val())}),s(document).on("change",'select[name="dpsp_settings[ctt_link_position]"]',function(){s("#section-click-to-tweet-preview > a").removeClass("dpsp-click-to-tweet-cta-left dpsp-click-to-tweet-cta-right").addClass("dpsp-click-to-tweet-cta-"+s(this).val())}),s(document).on("click",'input[name="dpsp_settings[ctt_link_icon_animation]"]',function(){s(this).is(":checked")?s("#section-click-to-tweet-preview > a").addClass("dpsp-click-to-tweet-cta-icon-animation"):s("#section-click-to-tweet-preview > a").removeClass("dpsp-click-to-tweet-cta-icon-animation")}),s('select[name="dpsp_settings[ctt_style]"]').trigger("change"),s('input[name="dpsp_settings[ctt_link_text]"]').trigger("keyup"),s('select[name="dpsp_settings[ctt_link_position]"]').trigger("change"),s('select[name="dpsp_settings[ctt_link_icon_animation]"]').trigger("click"),s("#section-click-to-tweet-preview").show(),s(document).on("change",".dpsp-setting-field-wrapper *",function(){s(".dpsp-card-inner").each(function(){s(this).find(".dpsp-setting-field-wrapper").removeClass("dpsp-last"),s(this).find(".dpsp-setting-field-wrapper:not(.disabled)").last().addClass("dpsp-last")})}),s(".dpsp-setting-field-wrapper *").first().trigger("change"),s(document).on("click","#dpsp-add-post-previous-url",function(t){t.preventDefault(),s("#dpsp-shares-recovery-post-previous-urls-empty").hide(),s(this).before(s(".dpsp-post-previous-url.dpsp-hidden").clone()),s(this).parent().find(".dpsp-post-previous-url.dpsp-hidden").hide().removeClass("dpsp-hidden").fadeIn(),s(this).parent().find(".dpsp-post-previous-url input").focus()}),s(document).on("click",".dpsp-post-previous-url a",function(t){t.preventDefault(),s(this).parent().remove(),0==s(".dpsp-post-previous-url:not(.dpsp-hidden)").length&&s("#dpsp-shares-recovery-post-previous-urls-empty").fadeIn()}),s(document).on("change",'[name="dpsp_settings[previous_permalink_structure]"]',function(){"custom"==s(this).val()&&setTimeout(function(){s('[name="dpsp_settings[previous_permalink_structure_custom]"]').focus()},100)}),s('[name="dpsp_settings[previous_base_domain]"]').attr("placeholder","eg. domain.com"),window.mvGrowData&&!window.mvGrowData.isFree){var C=s("#tmpl-image-details");if(C.length>0&&void 0!==window.pagenow&&"widgets"!=window.pagenow&&"customize"!=window.pagenow){var y=C.html(),I='<label class="setting pin-title"><span>Pin Title</span><input type="text" data-setting="pin_title" value="{{ data.model.pin_title }}" /><p class="description" style="font-style: italic; margin-top: 5px;">Please note: Pinterest does not yet support pin titles. Pinterest is still in the process of releasing this feature. We\'ve added the field in advance, to make sure you\'re ready for when the feature rolls out.</p></label>',D='<label class="setting pin-description"><span>Pin Description</span><textarea data-setting="pin_description">{{ data.model.pin_description }}</textarea></label>',O='<label class="setting pin-repin-id"><span>Pin Repin ID</span><input type="text" data-setting="pin_repin_id" value="{{ data.model.pin_repin_id }}" /></label>',$='<label class="setting pin-nopin"><span>Disable Pinning</span><select data-setting="pin_nopin"><option value="">No</option><option value="1" <# if ( data.model.pin_nopin ) { #> selected="selected" <# } #>>Yes</option></select></label>';-1!=C.text().indexOf('<span class="setting alt-text')?C.text(y.replace(/(<span class="setting alt-text)/,I+D+O+$+"$1")):-1!=C.text().indexOf('<span class="setting caption')&&C.text(y.replace(/(<span class="setting caption)/,I+D+O+$+"$1")),-1!=C.text().indexOf('<label class="setting alt-text">')?C.text(y.replace(/(<label class="setting alt-text">)/,I+D+O+$+"$1")):-1!=C.text().indexOf('<label class="setting caption">')&&C.text(y.replace(/(<label class="setting caption">)/,I+D+O+$+"$1"))}"undefined"!=typeof wp&&void 0!==wp.media&&void 0!==wp.media.events&&(wp.media.events.on("editor:image-edit",function(t){t.metadata.pin_title=t.editor.$(t.image).attr("data-pin-title"),t.metadata.pin_description=t.editor.$(t.image).attr("data-pin-description"),t.metadata.pin_repin_id=t.editor.$(t.image).attr("data-pin-id"),t.metadata.pin_nopin=t.editor.$(t.image).attr("data-pin-nopin")?"1":""}),wp.media.events.on("editor:image-update",function(t){t.editor.$(t.image).attr("data-pin-title",t.metadata.pin_title),t.editor.$(t.image).attr("data-pin-description",t.metadata.pin_description),t.editor.$(t.image).attr("data-pin-id",t.metadata.pin_repin_id),t.metadata.pin_nopin?t.editor.$(t.image).attr("data-pin-nopin","true"):t.editor.$(t.image).removeAttr("data-pin-nopin")}))}s(document).on("click","#dpsp-meta-box-section-multiple-pinterest-images .dpsp-hidden-image-wrapper .dpsp-button-secondary",function(t){t.preventDefault(),s(this).parent().remove()}),s(document).on("click","#dpsp-meta-box-section-multiple-pinterest-images .dpsp-hidden-image-add-new",function(t){t.preventDefault();var e=s(this);a?a.open():((a=wp.media({title:"Select Pinterest Hidden Images",button:{text:"Use Images"},library:{type:["image"]},multiple:!0})).on("select",function(){var t=a.state().get("selection").map(function(t){return t.toJSON()});for(var i in t)if("image"==t[i].type&&!(s('.dpsp-hidden-image-wrapper[data-image-id="'+t[i].id+'"]').length>0)){var p="",n=void 0!==t[i].sizes.thumbnail?t[i].sizes.thumbnail.url:t[i].sizes.full.url;p='<div class="dpsp-hidden-image-wrapper" data-image-id="'+t[i].id+'">',p+='<img src="'+n+'" data-pin-nopin="true" />',p+='<a href="#" class="dpsp-button-secondary" title="Remove image"><span class="dashicons dashicons-no-alt"></span></a>',p+='<input type="hidden" name="dpsp_pinterest_hidden_images[]" value="'+t[i].id+'" />',p+="</div>",e.before(p)}}),a.open())})});
|
19 |
-
},{"./fn/utils/create-svg-icon":"Mzb7","./fn/utils/get-settings":"tCTD"}]},{},["dNy0"], null)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/dist/dashboard-pro.1.20.0.js
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c<t.length;c++)try{f(t[c])}catch(e){i||(i=e)}if(t.length){var l=f(t[t.length-1]);"object"==typeof exports&&"undefined"!=typeof module?module.exports=l:"function"==typeof define&&define.amd?define(function(){return l}):n&&(this[n]=l)}if(parcelRequire=f,i)throw i;return f}({"Mzb7":[function(require,module,exports) {
|
2 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;const e=e=>{if(!e)return!1;const t=document.createElementNS("http://www.w3.org/2000/svg","svg");return[{name:"version",value:"1.1"},{name:"xmlns",value:"http://www.w3.org/2000/svg"},{name:"viewBox",value:`0 0 ${e.width} ${e.height}`},{name:"height",value:e.referenceHeight?e.referenceHeight:e.height},{name:"width",value:e.referenceHeight?"100%":e.width},{name:"class",value:e.class?e.class:""},...(e=>e.fill?[{name:"fill",value:e.fill}]:[])(e),...(e=>e.y?[{name:"y",value:e.y}]:[])(e),...(e=>e.x?[{name:"x",value:e.x}]:[])(e)].forEach(({name:e,value:a})=>t.setAttribute(e,a)),e.paths.forEach(e=>{const a=document.createElementNS("http://www.w3.org/2000/svg","path");a.setAttribute("d",e),t.appendChild(a)}),t};var t=e;exports.default=t;
|
3 |
+
},{}],"tCTD":[function(require,module,exports) {
|
4 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;const t=(t="mv-grow-data")=>window.mvGrowData&&window.mvGrowData.init?window.mvGrowData:(document.getElementById(t)&&document.getElementById(t).dataset.settings&&(window.mvGrowData=JSON.parse(document.getElementById(t).dataset.settings),window.mvGrowData.init=!0),{init:!0});var e=t;exports.default=e;
|
5 |
+
},{}],"xgwM":[function(require,module,exports) {
|
6 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.__extends=e,exports.__rest=n,exports.__decorate=o,exports.__param=a,exports.__metadata=i,exports.__awaiter=c,exports.__generator=u,exports.__exportStar=l,exports.__values=s,exports.__read=p,exports.__spread=y,exports.__spreadArrays=h,exports.__spreadArray=d,exports.__await=_,exports.__asyncGenerator=v,exports.__asyncDelegator=b,exports.__asyncValues=w,exports.__makeTemplateObject=x,exports.__importStar=O,exports.__importDefault=g,exports.__classPrivateFieldGet=j,exports.__classPrivateFieldSet=P,exports.__createBinding=exports.__assign=void 0;var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};function e(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}var r=function(){return exports.__assign=r=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t},r.apply(this,arguments)};function n(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(t);o<n.length;o++)e.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(t,n[o])&&(r[n[o]]=t[n[o]])}return r}function o(t,e,r,n){var o,a=arguments.length,i=a<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,r,n);else for(var c=t.length-1;c>=0;c--)(o=t[c])&&(i=(a<3?o(i):a>3?o(e,r,i):o(e,r))||i);return a>3&&i&&Object.defineProperty(e,r,i),i}function a(t,e){return function(r,n){e(r,n,t)}}function i(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function c(t,e,r,n){return new(r||(r=Promise))(function(o,a){function i(t){try{u(n.next(t))}catch(e){a(e)}}function c(t){try{u(n.throw(t))}catch(e){a(e)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(i,c)}u((n=n.apply(t,e||[])).next())})}function u(t,e){var r,n,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(a){return function(c){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;i;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,n=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===a[0]||2===a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=e.call(t,i)}catch(c){a=[6,c],n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}}exports.__assign=r;var f=Object.create?function(t,e,r,n){void 0===n&&(n=r),Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,n){void 0===n&&(n=r),t[n]=e[r]};function l(t,e){for(var r in t)"default"===r||Object.prototype.hasOwnProperty.call(e,r)||f(e,t,r)}function s(t){var e="function"==typeof Symbol&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function p(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,o,a=r.call(t),i=[];try{for(;(void 0===e||e-- >0)&&!(n=a.next()).done;)i.push(n.value)}catch(c){o={error:c}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i}function y(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(p(arguments[e]));return t}function h(){for(var t=0,e=0,r=arguments.length;e<r;e++)t+=arguments[e].length;var n=Array(t),o=0;for(e=0;e<r;e++)for(var a=arguments[e],i=0,c=a.length;i<c;i++,o++)n[o]=a[i];return n}function d(t,e,r){if(r||2===arguments.length)for(var n,o=0,a=e.length;o<a;o++)!n&&o in e||(n||(n=Array.prototype.slice.call(e,0,o)),n[o]=e[o]);return t.concat(n||e)}function _(t){return this instanceof _?(this.v=t,this):new _(t)}function v(t,e,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,o=r.apply(t,e||[]),a=[];return n={},i("next"),i("throw"),i("return"),n[Symbol.asyncIterator]=function(){return this},n;function i(t){o[t]&&(n[t]=function(e){return new Promise(function(r,n){a.push([t,e,r,n])>1||c(t,e)})})}function c(t,e){try{(r=o[t](e)).value instanceof _?Promise.resolve(r.value.v).then(u,f):l(a[0][2],r)}catch(n){l(a[0][3],n)}var r}function u(t){c("next",t)}function f(t){c("throw",t)}function l(t,e){t(e),a.shift(),a.length&&c(a[0][0],a[0][1])}}function b(t){var e,r;return e={},n("next"),n("throw",function(t){throw t}),n("return"),e[Symbol.iterator]=function(){return this},e;function n(n,o){e[n]=t[n]?function(e){return(r=!r)?{value:_(t[n](e)),done:"return"===n}:o?o(e):e}:o}}function w(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,r=t[Symbol.asyncIterator];return r?r.call(t):(t="function"==typeof s?s(t):t[Symbol.iterator](),e={},n("next"),n("throw"),n("return"),e[Symbol.asyncIterator]=function(){return this},e);function n(r){e[r]=t[r]&&function(e){return new Promise(function(n,o){(function(t,e,r,n){Promise.resolve(n).then(function(e){t({value:e,done:r})},e)})(n,o,(e=t[r](e)).done,e.value)})}}}function x(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}exports.__createBinding=f;var m=Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e};function O(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)"default"!==r&&Object.prototype.hasOwnProperty.call(t,r)&&f(e,t,r);return m(e,t),e}function g(t){return t&&t.__esModule?t:{default:t}}function j(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)}function P(t,e,r,n,o){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?o.call(t,r):o?o.value=r:e.set(t,r),r}
|
7 |
+
},{}],"tG4k":[function(require,module,exports) {
|
8 |
+
var e="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(e){var o=new Uint8Array(16);module.exports=function(){return e(o),o}}else{var r=new Array(16);module.exports=function(){for(var e,o=0;o<16;o++)0==(3&o)&&(e=4294967296*Math.random()),r[o]=e>>>((3&o)<<3)&255;return r}}
|
9 |
+
},{}],"NxCc":[function(require,module,exports) {
|
10 |
+
for(var r=[],o=0;o<256;++o)r[o]=(o+256).toString(16).substr(1);function t(o,t){var n=t||0,u=r;return[u[o[n++]],u[o[n++]],u[o[n++]],u[o[n++]],"-",u[o[n++]],u[o[n++]],"-",u[o[n++]],u[o[n++]],"-",u[o[n++]],u[o[n++]],"-",u[o[n++]],u[o[n++]],u[o[n++]],u[o[n++]],u[o[n++]],u[o[n++]]].join("")}module.exports=t;
|
11 |
+
},{}],"LOnp":[function(require,module,exports) {
|
12 |
+
var e,r,o=require("./lib/rng"),s=require("./lib/bytesToUuid"),i=0,n=0;function c(c,l,u){var v=l&&u||0,a=l||[],d=(c=c||{}).node||e,t=void 0!==c.clockseq?c.clockseq:r;if(null==d||null==t){var m=o();null==d&&(d=e=[1|m[0],m[1],m[2],m[3],m[4],m[5]]),null==t&&(t=r=16383&(m[6]<<8|m[7]))}var q=void 0!==c.msecs?c.msecs:(new Date).getTime(),f=void 0!==c.nsecs?c.nsecs:n+1,b=q-i+(f-n)/1e4;if(b<0&&void 0===c.clockseq&&(t=t+1&16383),(b<0||q>i)&&void 0===c.nsecs&&(f=0),f>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");i=q,n=f,r=t;var k=(1e4*(268435455&(q+=122192928e5))+f)%4294967296;a[v++]=k>>>24&255,a[v++]=k>>>16&255,a[v++]=k>>>8&255,a[v++]=255&k;var w=q/4294967296*1e4&268435455;a[v++]=w>>>8&255,a[v++]=255&w,a[v++]=w>>>24&15|16,a[v++]=w>>>16&255,a[v++]=t>>>8|128,a[v++]=255&t;for(var g=0;g<6;++g)a[v+g]=d[g];return l||s(a)}module.exports=c;
|
13 |
+
},{"./lib/rng":"tG4k","./lib/bytesToUuid":"NxCc"}],"A0Zv":[function(require,module,exports) {
|
14 |
+
var r=require("./lib/rng"),n=require("./lib/bytesToUuid");function e(e,i,u){var a=i&&u||0;"string"==typeof e&&(i="binary"===e?new Array(16):null,e=null);var l=(e=e||{}).random||(e.rng||r)();if(l[6]=15&l[6]|64,l[8]=63&l[8]|128,i)for(var o=0;o<16;++o)i[a+o]=l[o];return i||n(l)}module.exports=e;
|
15 |
+
},{"./lib/rng":"tG4k","./lib/bytesToUuid":"NxCc"}],"e1H7":[function(require,module,exports) {
|
16 |
+
var e=require("./v1"),r=require("./v4"),v=r;v.v1=e,v.v4=r,module.exports=v;
|
17 |
+
},{"./v1":"LOnp","./v4":"A0Zv"}],"tPgf":[function(require,module,exports) {
|
18 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildAdClick=ee,exports.buildAdConversion=ne,exports.buildAdImpression=Q,exports.buildAddToCart=re,exports.buildConsentGranted=ue,exports.buildConsentWithdrawn=ce,exports.buildEcommerceTransaction=W,exports.buildEcommerceTransactionItem=$,exports.buildFormFocusOrChange=ae,exports.buildFormSubmission=ie,exports.buildLinkClick=K,exports.buildPagePing=X,exports.buildPageView=Z,exports.buildRemoveFromCart=oe,exports.buildScreenView=H,exports.buildSelfDescribingEvent=F,exports.buildSiteSearch=se,exports.buildSocialInteraction=te,exports.buildStructEvent=Y,exports.getRuleParts=x,exports.getSchemaParts=y,exports.globalContexts=m,exports.isConditionalContextProvider=O,exports.isContextCallbackFunction=P,exports.isContextPrimitive=j,exports.isFilterProvider=k,exports.isJson=u,exports.isNonEmptyJson=c,exports.isRuleSet=C,exports.isRuleSetProvider=S,exports.isSelfDescribingJson=I,exports.isStringArray=b,exports.isValidRule=_,exports.isValidRuleSetArg=A,exports.matchSchemaAgainstRule=N,exports.matchSchemaAgainstRuleSet=E,exports.payloadBuilder=i,exports.payloadJsonProcessor=s,exports.pluginContexts=v,exports.resolveDynamicContext=g,exports.trackerCore=B,exports.validateVendor=w,exports.validateVendorParts=h,exports.version=exports.LOG_LEVEL=exports.LOG=void 0;var e=require("tslib"),n=require("uuid"),t="3.1.1";function r(e){return e?a(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"):e}var o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function a(e){var n,t,r,a,i,s=0,c=0,u=[];if(!e)return e;e=unescape(encodeURIComponent(e));do{n=(i=e.charCodeAt(s++)<<16|e.charCodeAt(s++)<<8|e.charCodeAt(s++))>>18&63,t=i>>12&63,r=i>>6&63,a=63&i,u[c++]=o.charAt(n)+o.charAt(t)+o.charAt(r)+o.charAt(a)}while(s<e.length);var l=u.join(""),d=e.length%3;return(d?l.slice(0,d-3):l)+"===".slice(d||3)}function i(){var e,n={},t=[],r=[],o=function(e,t){null!=t&&""!==t&&(n[e]=t)};return{add:o,addDict:function(e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&o(n,e[n])},addJson:function(e,n,o){if(o&&c(o)){var a={keyIfEncoded:e,keyIfNotEncoded:n,json:o};r.push(a),t.push(a)}},getPayload:function(){return n},getJson:function(){return t},withJsonProcessor:function(n){e=n},build:function(){return null==e||e(this,r),n}}}function s(e){return function(n,t){for(var o=0,a=t;o<a.length;o++){var i=a[o],s=JSON.stringify(i.json);e?n.add(i.keyIfEncoded,r(s)):n.add(i.keyIfNotEncoded,s)}t.length=0}}function c(e){if(!u(e))return!1;for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n))return!0;return!1}function u(e){return null!=e&&(e.constructor==={}.constructor||e.constructor===[].constructor)}var l,d="Snowplow: ";exports.LOG_LEVEL=l,function(e){e[e.none=0]="none",e[e.error=1]="error",e[e.warn=2]="warn",e[e.debug=3]="debug",e[e.info=4]="info"}(l||(exports.LOG_LEVEL=l={}));var f=p();function p(n){return void 0===n&&(n=l.warn),{setLogLevel:function(e){n=l[e]?e:l.warn},warn:function(t,r){for(var o=[],a=2;a<arguments.length;a++)o[a-2]=arguments[a];if(n>=l.warn&&"undefined"!=typeof console){var i=d+t;r?console.warn.apply(console,(0,e.__spreadArray)([i+"\n",r],o)):console.warn.apply(console,(0,e.__spreadArray)([i],o))}},error:function(t,r){for(var o=[],a=2;a<arguments.length;a++)o[a-2]=arguments[a];if(n>=l.error&&"undefined"!=typeof console){var i=d+t+"\n";r?console.error.apply(console,(0,e.__spreadArray)([i+"\n",r],o)):console.error.apply(console,(0,e.__spreadArray)([i],o))}},debug:function(t){for(var r=[],o=1;o<arguments.length;o++)r[o-1]=arguments[o];n>=l.debug&&"undefined"!=typeof console&&console.debug.apply(console,(0,e.__spreadArray)([d+t],r))},info:function(t){for(var r=[],o=1;o<arguments.length;o++)r[o-1]=arguments[o];n>=l.info&&"undefined"!=typeof console&&console.info.apply(console,(0,e.__spreadArray)([d+t],r))}}}function m(){var e=[],n=[];return{getGlobalPrimitives:function(){return e},getConditionalProviders:function(){return n},addGlobalContexts:function(t){for(var r=[],o=[],a=0,i=t;a<i.length;a++){var s=i[a];O(s)?r.push(s):j(s)&&o.push(s)}e=e.concat(o),n=n.concat(r)},clearGlobalContexts:function(){n=[],e=[]},removeGlobalContexts:function(t){for(var r=function(t){O(t)?n=n.filter(function(e){return JSON.stringify(e)===JSON.stringify(t)}):j(t)&&(e=e.filter(function(e){return JSON.stringify(e)===JSON.stringify(t)}))},o=0,a=t;o<a.length;o++){r(a[o])}},getApplicableContexts:function(t){return function(t){var r=J(t),o=R(t),a=[],i=z(e,t,o,r);a.push.apply(a,i);var s=q(n,t,o,r);return a.push.apply(a,s),a}(t)}}}function v(e){return{addPluginContexts:function(n){var t=null!=n?n:[];return e.forEach(function(e){try{e.contexts&&t.push.apply(t,e.contexts())}catch(n){f.error("Error adding plugin contexts",n)}}),t}}}function g(e){for(var n,t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return null!==(n=null==e?void 0:e.map(function(e){if("function"!=typeof e)return e;try{return e.apply(void 0,t)}catch(n){return}}).filter(Boolean))&&void 0!==n?n:[]}function y(e){var n=new RegExp("^iglu:([a-zA-Z0-9-_.]+)/([a-zA-Z0-9-_]+)/jsonschema/([1-9][0-9]*)-(0|[1-9][0-9]*)-(0|[1-9][0-9]*)$").exec(e);if(null!==n)return n.slice(1,6)}function h(e){if("*"===e[0]||"*"===e[1])return!1;if(e.slice(2).length>0){for(var n=!1,t=0,r=e.slice(2);t<r.length;t++){if("*"===r[t])n=!0;else if(n)return!1}return!0}return 2==e.length}function w(e){var n=e.split(".");return!!(n&&n.length>1)&&h(n)}function x(e){var n=new RegExp("^iglu:((?:(?:[a-zA-Z0-9-_]+|\\*).)+(?:[a-zA-Z0-9-_]+|\\*))/([a-zA-Z0-9-_.]+|\\*)/jsonschema/([1-9][0-9]*|\\*)-(0|[1-9][0-9]*|\\*)-(0|[1-9][0-9]*|\\*)$").exec(e);if(null!==n&&w(n[1]))return n.slice(1,6)}function _(e){var n=x(e);if(n){var t=n[0];return 5===n.length&&w(t)}return!1}function b(e){return Array.isArray(e)&&e.every(function(e){return"string"==typeof e})}function A(e){return b(e)?e.every(function(e){return _(e)}):"string"==typeof e&&_(e)}function I(e){var n=e;return!!(c(n)&&"schema"in n&&"data"in n)&&("string"==typeof n.schema&&"object"==typeof n.data)}function C(e){var n=e,t=0;if(null!=e&&"object"==typeof e&&!Array.isArray(e)){if(Object.prototype.hasOwnProperty.call(n,"accept")){if(!A(n.accept))return!1;t+=1}if(Object.prototype.hasOwnProperty.call(n,"reject")){if(!A(n.reject))return!1;t+=1}return t>0&&t<=2}return!1}function P(e){return"function"==typeof e&&e.length<=1}function j(e){return P(e)||I(e)}function k(e){return!(!Array.isArray(e)||2!==e.length)&&(Array.isArray(e[1])?P(e[0])&&e[1].every(j):P(e[0])&&j(e[1]))}function S(e){return!(!Array.isArray(e)||2!==e.length)&&(!!C(e[0])&&(Array.isArray(e[1])?e[1].every(j):j(e[1])))}function O(e){return k(e)||S(e)}function E(e,n){var t=0,r=0,o=e.accept;Array.isArray(o)?e.accept.some(function(e){return N(e,n)})&&r++:"string"==typeof o&&N(o,n)&&r++;var a=e.reject;return Array.isArray(a)?e.reject.some(function(e){return N(e,n)})&&t++:"string"==typeof a&&N(a,n)&&t++,r>0&&0===t}function N(e,n){if(!_(e))return!1;var t=x(e),r=y(n);if(t&&r){if(!T(t[0],r[0]))return!1;for(var o=1;o<5;o++)if(!G(t[o],r[o]))return!1;return!0}return!1}function T(e,n){var t=n.split("."),r=e.split(".");if(t&&r){if(t.length!==r.length)return!1;for(var o=0;o<r.length;o++)if(!G(t[o],r[o]))return!1;return!0}return!1}function G(e,n){return e&&n&&"*"===e||e===n}function J(e){for(var n=0,t=e.getJson();n<t.length;n++){var r=t[n];if("ue_px"===r.keyIfEncoded&&"object"==typeof r.json.data){var o=r.json.data.schema;if("string"==typeof o)return o}}return""}function R(e){var n=e.getPayload().e;return"string"==typeof n?n:""}function L(e,n,t,r){var o=void 0;try{return o=e({event:n.getPayload(),eventType:t,eventSchema:r}),Array.isArray(o)&&o.every(I)?o:I(o)?o:void 0}catch(a){o=void 0}return o}function V(e){return Array.isArray(e)?e:Array.of(e)}function z(e,n,t,r){var o,a=V(e).map(function(e){var o=U(e,n,t,r);if(o&&0!==o.length)return o});return(o=[]).concat.apply(o,a.filter(function(e){return null!=e&&e.filter(Boolean)}))}function U(e,n,t,r){if(I(e))return[e];if(P(e)){var o=L(e,n,t,r);if(I(o))return[o];if(Array.isArray(o))return o}}function D(e,n,t,r){if(k(e)){var o=e[0],a=!1;try{a=o({event:n.getPayload(),eventType:t,eventSchema:r})}catch(i){a=!1}if(!0===a)return z(e[1],n,t,r)}else if(S(e)&&E(e[0],r))return z(e[1],n,t,r);return[]}function q(e,n,t,r){var o,a=V(e).map(function(e){var o=D(e,n,t,r);if(o&&0!==o.length)return o});return(o=[]).concat.apply(o,a.filter(function(e){return null!=e&&e.filter(Boolean)}))}function M(e){return null==e?{type:"dtm",value:(new Date).getTime()}:"number"==typeof e?{type:"dtm",value:e}:"ttm"===e.type?{type:"ttm",value:e.value}:{type:"dtm",value:e.value||(new Date).getTime()}}function B(t){void 0===t&&(t={});var r=t.base64,o=t.corePlugins,a=t.callback,i=null!=o?o:[],c=function(e,t,r){var o=v(t),a=m(),i=e,c={};function l(e,n){c[e]=n}return{track:function(e,u,l){e.withJsonProcessor(s(i)),e.add("eid",(0,n.v4)()),e.addDict(c);var d=M(l);e.add(d.type,d.value.toString());var p=function(e){if(e&&e.length)return{schema:"iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",data:e}}(function(e,n){var t=a.getApplicableContexts(e),r=[];return n&&n.length&&r.push.apply(r,n),t&&t.length&&r.push.apply(r,t),r}(e,o.addPluginContexts(u)));void 0!==p&&e.addJson("cx","co",p),t.forEach(function(n){try{n.beforeTrack&&n.beforeTrack(e)}catch(t){f.error("Plugin beforeTrack",t)}}),"function"==typeof r&&r(e);var m=e.build();return t.forEach(function(e){try{e.afterTrack&&e.afterTrack(m)}catch(n){f.error("Plugin afterTrack",n)}}),m},addPayloadPair:l,getBase64Encoding:function(){return i},setBase64Encoding:function(e){i=e},addPayloadDict:function(e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(c[n]=e[n])},resetPayloadPairs:function(e){c=u(e)?e:{}},setTrackerVersion:function(e){l("tv",e)},setTrackerNamespace:function(e){l("tna",e)},setAppId:function(e){l("aid",e)},setPlatform:function(e){l("p",e)},setUserId:function(e){l("uid",e)},setScreenResolution:function(e,n){l("res",e+"x"+n)},setViewport:function(e,n){l("vp",e+"x"+n)},setColorDepth:function(e){l("cd",e)},setTimezone:function(e){l("tz",e)},setLang:function(e){l("lang",e)},setIpAddress:function(e){l("ip",e)},setUseragent:function(e){l("ua",e)},addGlobalContexts:function(e){a.addGlobalContexts(e)},clearGlobalContexts:function(){a.clearGlobalContexts()},removeGlobalContexts:function(e){a.removeGlobalContexts(e)}}}(null==r||r,i,a),l=(0,e.__assign)((0,e.__assign)({},c),{addPlugin:function(e){var n,t,r=e.plugin;i.push(r),null===(n=r.logger)||void 0===n||n.call(r,f),null===(t=r.activateCorePlugin)||void 0===t||t.call(r,l)}});return null==i||i.forEach(function(e){var n,t;null===(n=e.logger)||void 0===n||n.call(e,f),null===(t=e.activateCorePlugin)||void 0===t||t.call(e,l)}),l}function F(e){var n=e.event,t=n.schema,r=n.data,o=i(),a={schema:"iglu:com.snowplowanalytics.snowplow/unstruct_event/jsonschema/1-0-0",data:{schema:t,data:r}};return o.add("e","ue"),o.addJson("ue_px","ue_pr",a),o}function Z(e){var n=e.pageUrl,t=e.pageTitle,r=e.referrer,o=i();return o.add("e","pv"),o.add("url",n),o.add("page",t),o.add("refr",r),o}function X(e){var n=e.pageUrl,t=e.pageTitle,r=e.referrer,o=e.minXOffset,a=e.maxXOffset,s=e.minYOffset,c=e.maxYOffset,u=i();return u.add("e","pp"),u.add("url",n),u.add("page",t),u.add("refr",r),o&&!isNaN(Number(o))&&u.add("pp_mix",o.toString()),a&&!isNaN(Number(a))&&u.add("pp_max",a.toString()),s&&!isNaN(Number(s))&&u.add("pp_miy",s.toString()),c&&!isNaN(Number(c))&&u.add("pp_may",c.toString()),u}function Y(e){var n=e.category,t=e.action,r=e.label,o=e.property,a=e.value,s=i();return s.add("e","se"),s.add("se_ca",n),s.add("se_ac",t),s.add("se_la",r),s.add("se_pr",o),s.add("se_va",null==a?void 0:a.toString()),s}function W(e){var n=e.orderId,t=e.total,r=e.affiliation,o=e.tax,a=e.shipping,s=e.city,c=e.state,u=e.country,l=e.currency,d=i();return d.add("e","tr"),d.add("tr_id",n),d.add("tr_af",r),d.add("tr_tt",t),d.add("tr_tx",o),d.add("tr_sh",a),d.add("tr_ci",s),d.add("tr_st",c),d.add("tr_co",u),d.add("tr_cu",l),d}function $(e){var n=e.orderId,t=e.sku,r=e.price,o=e.name,a=e.category,s=e.quantity,c=e.currency,u=i();return u.add("e","ti"),u.add("ti_id",n),u.add("ti_sk",t),u.add("ti_nm",o),u.add("ti_ca",a),u.add("ti_pr",r),u.add("ti_qu",s),u.add("ti_cu",c),u}function H(e){return F({event:{schema:"iglu:com.snowplowanalytics.snowplow/screen_view/jsonschema/1-0-0",data:le({name:e.name,id:e.id})}})}function K(e){return F({event:{schema:"iglu:com.snowplowanalytics.snowplow/link_click/jsonschema/1-0-1",data:le({targetUrl:e.targetUrl,elementId:e.elementId,elementClasses:e.elementClasses,elementTarget:e.elementTarget,elementContent:e.elementContent})}})}function Q(e){return F({event:{schema:"iglu:com.snowplowanalytics.snowplow/ad_impression/jsonschema/1-0-0",data:le({impressionId:e.impressionId,costModel:e.costModel,cost:e.cost,targetUrl:e.targetUrl,bannerId:e.bannerId,zoneId:e.zoneId,advertiserId:e.advertiserId,campaignId:e.campaignId})}})}function ee(e){return F({event:{schema:"iglu:com.snowplowanalytics.snowplow/ad_click/jsonschema/1-0-0",data:le({targetUrl:e.targetUrl,clickId:e.clickId,costModel:e.costModel,cost:e.cost,bannerId:e.bannerId,zoneId:e.zoneId,impressionId:e.impressionId,advertiserId:e.advertiserId,campaignId:e.campaignId})}})}function ne(e){return F({event:{schema:"iglu:com.snowplowanalytics.snowplow/ad_conversion/jsonschema/1-0-0",data:le({conversionId:e.conversionId,costModel:e.costModel,cost:e.cost,category:e.category,action:e.action,property:e.property,initialValue:e.initialValue,advertiserId:e.advertiserId,campaignId:e.campaignId})}})}function te(e){return F({event:{schema:"iglu:com.snowplowanalytics.snowplow/social_interaction/jsonschema/1-0-0",data:le({action:e.action,network:e.network,target:e.target})}})}function re(e){return F({event:{schema:"iglu:com.snowplowanalytics.snowplow/add_to_cart/jsonschema/1-0-0",data:le({sku:e.sku,quantity:e.quantity,name:e.name,category:e.category,unitPrice:e.unitPrice,currency:e.currency})}})}function oe(e){return F({event:{schema:"iglu:com.snowplowanalytics.snowplow/remove_from_cart/jsonschema/1-0-0",data:le({sku:e.sku,quantity:e.quantity,name:e.name,category:e.category,unitPrice:e.unitPrice,currency:e.currency})}})}function ae(e){var n="",t=e.schema,r=e.formId,o=e.elementId,a=e.nodeName,i=e.elementClasses,s=e.value,c=e.type,u={formId:r,elementId:o,nodeName:a,elementClasses:i,value:s};return"change_form"===t?(n="iglu:com.snowplowanalytics.snowplow/change_form/jsonschema/1-0-0",u.type=c):"focus_form"===t&&(n="iglu:com.snowplowanalytics.snowplow/focus_form/jsonschema/1-0-0",u.elementType=c),F({event:{schema:n,data:le(u,{value:!0})}})}function ie(e){return F({event:{schema:"iglu:com.snowplowanalytics.snowplow/submit_form/jsonschema/1-0-0",data:le({formId:e.formId,formClasses:e.formClasses,elements:e.elements})}})}function se(e){return F({event:{schema:"iglu:com.snowplowanalytics.snowplow/site_search/jsonschema/1-0-0",data:le({terms:e.terms,filters:e.filters,totalResults:e.totalResults,pageResults:e.pageResults})}})}function ce(e){var n=e.all,t={schema:"iglu:com.snowplowanalytics.snowplow/consent_document/jsonschema/1-0-0",data:le({id:e.id,version:e.version,name:e.name,description:e.description})};return{event:F({event:{schema:"iglu:com.snowplowanalytics.snowplow/consent_withdrawn/jsonschema/1-0-0",data:le({all:n})}}),context:[t]}}function ue(e){var n=e.expiry,t={schema:"iglu:com.snowplowanalytics.snowplow/consent_document/jsonschema/1-0-0",data:le({id:e.id,version:e.version,name:e.name,description:e.description})};return{event:F({event:{schema:"iglu:com.snowplowanalytics.snowplow/consent_granted/jsonschema/1-0-0",data:le({expiry:n})}}),context:[t]}}function le(e,n){void 0===n&&(n={});var t={};for(var r in e)(n[r]||null!==e[r]&&void 0!==e[r])&&(t[r]=e[r]);return t}exports.LOG=f;var de=t;exports.version=de;
|
19 |
+
},{"tslib":"xgwM","uuid":"e1H7"}],"pWas":[function(require,module,exports) {
|
20 |
+
!function(){var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t={rotl:function(r,t){return r<<t|r>>>32-t},rotr:function(r,t){return r<<32-t|r>>>t},endian:function(r){if(r.constructor==Number)return 16711935&t.rotl(r,8)|4278255360&t.rotl(r,24);for(var n=0;n<r.length;n++)r[n]=t.endian(r[n]);return r},randomBytes:function(r){for(var t=[];r>0;r--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(r){for(var t=[],n=0,o=0;n<r.length;n++,o+=8)t[o>>>5]|=r[n]<<24-o%32;return t},wordsToBytes:function(r){for(var t=[],n=0;n<32*r.length;n+=8)t.push(r[n>>>5]>>>24-n%32&255);return t},bytesToHex:function(r){for(var t=[],n=0;n<r.length;n++)t.push((r[n]>>>4).toString(16)),t.push((15&r[n]).toString(16));return t.join("")},hexToBytes:function(r){for(var t=[],n=0;n<r.length;n+=2)t.push(parseInt(r.substr(n,2),16));return t},bytesToBase64:function(t){for(var n=[],o=0;o<t.length;o+=3)for(var e=t[o]<<16|t[o+1]<<8|t[o+2],u=0;u<4;u++)8*o+6*u<=8*t.length?n.push(r.charAt(e>>>6*(3-u)&63)):n.push("=");return n.join("")},base64ToBytes:function(t){t=t.replace(/[^A-Z0-9+\/]/gi,"");for(var n=[],o=0,e=0;o<t.length;e=++o%4)0!=e&&n.push((r.indexOf(t.charAt(o-1))&Math.pow(2,-2*e+8)-1)<<2*e|r.indexOf(t.charAt(o))>>>6-2*e);return n}};module.exports=t}();
|
21 |
+
},{}],"BteN":[function(require,module,exports) {
|
22 |
+
var n={utf8:{stringToBytes:function(t){return n.bin.stringToBytes(unescape(encodeURIComponent(t)))},bytesToString:function(t){return decodeURIComponent(escape(n.bin.bytesToString(t)))}},bin:{stringToBytes:function(n){for(var t=[],e=0;e<n.length;e++)t.push(255&n.charCodeAt(e));return t},bytesToString:function(n){for(var t=[],e=0;e<n.length;e++)t.push(String.fromCharCode(n[e]));return t.join("")}}};module.exports=n;
|
23 |
+
},{}],"QAnv":[function(require,module,exports) {
|
24 |
+
"use strict";exports.byteLength=u,exports.toByteArray=i,exports.fromByteArray=d;for(var r=[],t=[],e="undefined"!=typeof Uint8Array?Uint8Array:Array,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,a=n.length;o<a;++o)r[o]=n[o],t[n.charCodeAt(o)]=o;function h(r){var t=r.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var e=r.indexOf("=");return-1===e&&(e=t),[e,e===t?0:4-e%4]}function u(r){var t=h(r),e=t[0],n=t[1];return 3*(e+n)/4-n}function c(r,t,e){return 3*(t+e)/4-e}function i(r){var n,o,a=h(r),u=a[0],i=a[1],f=new e(c(r,u,i)),A=0,d=i>0?u-4:u;for(o=0;o<d;o+=4)n=t[r.charCodeAt(o)]<<18|t[r.charCodeAt(o+1)]<<12|t[r.charCodeAt(o+2)]<<6|t[r.charCodeAt(o+3)],f[A++]=n>>16&255,f[A++]=n>>8&255,f[A++]=255&n;return 2===i&&(n=t[r.charCodeAt(o)]<<2|t[r.charCodeAt(o+1)]>>4,f[A++]=255&n),1===i&&(n=t[r.charCodeAt(o)]<<10|t[r.charCodeAt(o+1)]<<4|t[r.charCodeAt(o+2)]>>2,f[A++]=n>>8&255,f[A++]=255&n),f}function f(t){return r[t>>18&63]+r[t>>12&63]+r[t>>6&63]+r[63&t]}function A(r,t,e){for(var n,o=[],a=t;a<e;a+=3)n=(r[a]<<16&16711680)+(r[a+1]<<8&65280)+(255&r[a+2]),o.push(f(n));return o.join("")}function d(t){for(var e,n=t.length,o=n%3,a=[],h=0,u=n-o;h<u;h+=16383)a.push(A(t,h,h+16383>u?u:h+16383));return 1===o?(e=t[n-1],a.push(r[e>>2]+r[e<<4&63]+"==")):2===o&&(e=(t[n-2]<<8)+t[n-1],a.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"=")),a.join("")}t["-".charCodeAt(0)]=62,t["_".charCodeAt(0)]=63;
|
25 |
+
},{}],"O1Qa":[function(require,module,exports) {
|
26 |
+
exports.read=function(a,o,t,r,h){var M,p,w=8*h-r-1,f=(1<<w)-1,e=f>>1,i=-7,N=t?h-1:0,n=t?-1:1,s=a[o+N];for(N+=n,M=s&(1<<-i)-1,s>>=-i,i+=w;i>0;M=256*M+a[o+N],N+=n,i-=8);for(p=M&(1<<-i)-1,M>>=-i,i+=r;i>0;p=256*p+a[o+N],N+=n,i-=8);if(0===M)M=1-e;else{if(M===f)return p?NaN:1/0*(s?-1:1);p+=Math.pow(2,r),M-=e}return(s?-1:1)*p*Math.pow(2,M-r)},exports.write=function(a,o,t,r,h,M){var p,w,f,e=8*M-h-1,i=(1<<e)-1,N=i>>1,n=23===h?Math.pow(2,-24)-Math.pow(2,-77):0,s=r?0:M-1,u=r?1:-1,l=o<0||0===o&&1/o<0?1:0;for(o=Math.abs(o),isNaN(o)||o===1/0?(w=isNaN(o)?1:0,p=i):(p=Math.floor(Math.log(o)/Math.LN2),o*(f=Math.pow(2,-p))<1&&(p--,f*=2),(o+=p+N>=1?n/f:n*Math.pow(2,1-N))*f>=2&&(p++,f/=2),p+N>=i?(w=0,p=i):p+N>=1?(w=(o*f-1)*Math.pow(2,h),p+=N):(w=o*Math.pow(2,N-1)*Math.pow(2,h),p=0));h>=8;a[t+s]=255&w,s+=u,w/=256,h-=8);for(p=p<<h|w,e+=h;e>0;a[t+s]=255&p,s+=u,p/=256,e-=8);a[t+s-u]|=128*l};
|
27 |
+
},{}],"ZCp3":[function(require,module,exports) {
|
28 |
+
var r={}.toString;module.exports=Array.isArray||function(t){return"[object Array]"==r.call(t)};
|
29 |
+
},{}],"fe91":[function(require,module,exports) {
|
30 |
+
|
31 |
+
var global = arguments[3];
|
32 |
+
var t=arguments[3],r=require("base64-js"),e=require("ieee754"),n=require("isarray");function i(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()&&"function"==typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(r){return!1}}function o(){return f.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function u(t,r){if(o()<r)throw new RangeError("Invalid typed array length");return f.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(r)).__proto__=f.prototype:(null===t&&(t=new f(r)),t.length=r),t}function f(t,r,e){if(!(f.TYPED_ARRAY_SUPPORT||this instanceof f))return new f(t,r,e);if("number"==typeof t){if("string"==typeof r)throw new Error("If encoding is specified then the first argument must be a string");return c(this,t)}return s(this,t,r,e)}function s(t,r,e,n){if("number"==typeof r)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&r instanceof ArrayBuffer?g(t,r,e,n):"string"==typeof r?l(t,r,e):y(t,r)}function h(t){if("number"!=typeof t)throw new TypeError('"size" argument must be a number');if(t<0)throw new RangeError('"size" argument must not be negative')}function a(t,r,e,n){return h(r),r<=0?u(t,r):void 0!==e?"string"==typeof n?u(t,r).fill(e,n):u(t,r).fill(e):u(t,r)}function c(t,r){if(h(r),t=u(t,r<0?0:0|w(r)),!f.TYPED_ARRAY_SUPPORT)for(var e=0;e<r;++e)t[e]=0;return t}function l(t,r,e){if("string"==typeof e&&""!==e||(e="utf8"),!f.isEncoding(e))throw new TypeError('"encoding" must be a valid string encoding');var n=0|v(r,e),i=(t=u(t,n)).write(r,e);return i!==n&&(t=t.slice(0,i)),t}function p(t,r){var e=r.length<0?0:0|w(r.length);t=u(t,e);for(var n=0;n<e;n+=1)t[n]=255&r[n];return t}function g(t,r,e,n){if(r.byteLength,e<0||r.byteLength<e)throw new RangeError("'offset' is out of bounds");if(r.byteLength<e+(n||0))throw new RangeError("'length' is out of bounds");return r=void 0===e&&void 0===n?new Uint8Array(r):void 0===n?new Uint8Array(r,e):new Uint8Array(r,e,n),f.TYPED_ARRAY_SUPPORT?(t=r).__proto__=f.prototype:t=p(t,r),t}function y(t,r){if(f.isBuffer(r)){var e=0|w(r.length);return 0===(t=u(t,e)).length?t:(r.copy(t,0,0,e),t)}if(r){if("undefined"!=typeof ArrayBuffer&&r.buffer instanceof ArrayBuffer||"length"in r)return"number"!=typeof r.length||W(r.length)?u(t,0):p(t,r);if("Buffer"===r.type&&n(r.data))return p(t,r.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function w(t){if(t>=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|t}function d(t){return+t!=t&&(t=0),f.alloc(+t)}function v(t,r){if(f.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var e=t.length;if(0===e)return 0;for(var n=!1;;)switch(r){case"ascii":case"latin1":case"binary":return e;case"utf8":case"utf-8":case void 0:return $(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*e;case"hex":return e>>>1;case"base64":return K(t).length;default:if(n)return $(t).length;r=(""+r).toLowerCase(),n=!0}}function E(t,r,e){var n=!1;if((void 0===r||r<0)&&(r=0),r>this.length)return"";if((void 0===e||e>this.length)&&(e=this.length),e<=0)return"";if((e>>>=0)<=(r>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return x(this,r,e);case"utf8":case"utf-8":return Y(this,r,e);case"ascii":return L(this,r,e);case"latin1":case"binary":return D(this,r,e);case"base64":return S(this,r,e);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,r,e);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function b(t,r,e){var n=t[r];t[r]=t[e],t[e]=n}function R(t,r,e,n,i){if(0===t.length)return-1;if("string"==typeof e?(n=e,e=0):e>2147483647?e=2147483647:e<-2147483648&&(e=-2147483648),e=+e,isNaN(e)&&(e=i?0:t.length-1),e<0&&(e=t.length+e),e>=t.length){if(i)return-1;e=t.length-1}else if(e<0){if(!i)return-1;e=0}if("string"==typeof r&&(r=f.from(r,n)),f.isBuffer(r))return 0===r.length?-1:_(t,r,e,n,i);if("number"==typeof r)return r&=255,f.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,r,e):Uint8Array.prototype.lastIndexOf.call(t,r,e):_(t,[r],e,n,i);throw new TypeError("val must be string, number or Buffer")}function _(t,r,e,n,i){var o,u=1,f=t.length,s=r.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||r.length<2)return-1;u=2,f/=2,s/=2,e/=2}function h(t,r){return 1===u?t[r]:t.readUInt16BE(r*u)}if(i){var a=-1;for(o=e;o<f;o++)if(h(t,o)===h(r,-1===a?0:o-a)){if(-1===a&&(a=o),o-a+1===s)return a*u}else-1!==a&&(o-=o-a),a=-1}else for(e+s>f&&(e=f-s),o=e;o>=0;o--){for(var c=!0,l=0;l<s;l++)if(h(t,o+l)!==h(r,l)){c=!1;break}if(c)return o}return-1}function A(t,r,e,n){e=Number(e)||0;var i=t.length-e;n?(n=Number(n))>i&&(n=i):n=i;var o=r.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var u=0;u<n;++u){var f=parseInt(r.substr(2*u,2),16);if(isNaN(f))return u;t[e+u]=f}return u}function m(t,r,e,n){return Q($(r,t.length-e),t,e,n)}function P(t,r,e,n){return Q(G(r),t,e,n)}function T(t,r,e,n){return P(t,r,e,n)}function B(t,r,e,n){return Q(K(r),t,e,n)}function U(t,r,e,n){return Q(H(r,t.length-e),t,e,n)}function S(t,e,n){return 0===e&&n===t.length?r.fromByteArray(t):r.fromByteArray(t.slice(e,n))}function Y(t,r,e){e=Math.min(t.length,e);for(var n=[],i=r;i<e;){var o,u,f,s,h=t[i],a=null,c=h>239?4:h>223?3:h>191?2:1;if(i+c<=e)switch(c){case 1:h<128&&(a=h);break;case 2:128==(192&(o=t[i+1]))&&(s=(31&h)<<6|63&o)>127&&(a=s);break;case 3:o=t[i+1],u=t[i+2],128==(192&o)&&128==(192&u)&&(s=(15&h)<<12|(63&o)<<6|63&u)>2047&&(s<55296||s>57343)&&(a=s);break;case 4:o=t[i+1],u=t[i+2],f=t[i+3],128==(192&o)&&128==(192&u)&&128==(192&f)&&(s=(15&h)<<18|(63&o)<<12|(63&u)<<6|63&f)>65535&&s<1114112&&(a=s)}null===a?(a=65533,c=1):a>65535&&(a-=65536,n.push(a>>>10&1023|55296),a=56320|1023&a),n.push(a),i+=c}return O(n)}exports.Buffer=f,exports.SlowBuffer=d,exports.INSPECT_MAX_BYTES=50,f.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:i(),exports.kMaxLength=o(),f.poolSize=8192,f._augment=function(t){return t.__proto__=f.prototype,t},f.from=function(t,r,e){return s(null,t,r,e)},f.TYPED_ARRAY_SUPPORT&&(f.prototype.__proto__=Uint8Array.prototype,f.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&f[Symbol.species]===f&&Object.defineProperty(f,Symbol.species,{value:null,configurable:!0})),f.alloc=function(t,r,e){return a(null,t,r,e)},f.allocUnsafe=function(t){return c(null,t)},f.allocUnsafeSlow=function(t){return c(null,t)},f.isBuffer=function(t){return!(null==t||!t._isBuffer)},f.compare=function(t,r){if(!f.isBuffer(t)||!f.isBuffer(r))throw new TypeError("Arguments must be Buffers");if(t===r)return 0;for(var e=t.length,n=r.length,i=0,o=Math.min(e,n);i<o;++i)if(t[i]!==r[i]){e=t[i],n=r[i];break}return e<n?-1:n<e?1:0},f.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},f.concat=function(t,r){if(!n(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return f.alloc(0);var e;if(void 0===r)for(r=0,e=0;e<t.length;++e)r+=t[e].length;var i=f.allocUnsafe(r),o=0;for(e=0;e<t.length;++e){var u=t[e];if(!f.isBuffer(u))throw new TypeError('"list" argument must be an Array of Buffers');u.copy(i,o),o+=u.length}return i},f.byteLength=v,f.prototype._isBuffer=!0,f.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var r=0;r<t;r+=2)b(this,r,r+1);return this},f.prototype.swap32=function(){var t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var r=0;r<t;r+=4)b(this,r,r+3),b(this,r+1,r+2);return this},f.prototype.swap64=function(){var t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var r=0;r<t;r+=8)b(this,r,r+7),b(this,r+1,r+6),b(this,r+2,r+5),b(this,r+3,r+4);return this},f.prototype.toString=function(){var t=0|this.length;return 0===t?"":0===arguments.length?Y(this,0,t):E.apply(this,arguments)},f.prototype.equals=function(t){if(!f.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===f.compare(this,t)},f.prototype.inspect=function(){var t="",r=exports.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),"<Buffer "+t+">"},f.prototype.compare=function(t,r,e,n,i){if(!f.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===r&&(r=0),void 0===e&&(e=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),r<0||e>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&r>=e)return 0;if(n>=i)return-1;if(r>=e)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(n>>>=0),u=(e>>>=0)-(r>>>=0),s=Math.min(o,u),h=this.slice(n,i),a=t.slice(r,e),c=0;c<s;++c)if(h[c]!==a[c]){o=h[c],u=a[c];break}return o<u?-1:u<o?1:0},f.prototype.includes=function(t,r,e){return-1!==this.indexOf(t,r,e)},f.prototype.indexOf=function(t,r,e){return R(this,t,r,e,!0)},f.prototype.lastIndexOf=function(t,r,e){return R(this,t,r,e,!1)},f.prototype.write=function(t,r,e,n){if(void 0===r)n="utf8",e=this.length,r=0;else if(void 0===e&&"string"==typeof r)n=r,e=this.length,r=0;else{if(!isFinite(r))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");r|=0,isFinite(e)?(e|=0,void 0===n&&(n="utf8")):(n=e,e=void 0)}var i=this.length-r;if((void 0===e||e>i)&&(e=i),t.length>0&&(e<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return A(this,t,r,e);case"utf8":case"utf-8":return m(this,t,r,e);case"ascii":return P(this,t,r,e);case"latin1":case"binary":return T(this,t,r,e);case"base64":return B(this,t,r,e);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return U(this,t,r,e);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},f.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var I=4096;function O(t){var r=t.length;if(r<=I)return String.fromCharCode.apply(String,t);for(var e="",n=0;n<r;)e+=String.fromCharCode.apply(String,t.slice(n,n+=I));return e}function L(t,r,e){var n="";e=Math.min(t.length,e);for(var i=r;i<e;++i)n+=String.fromCharCode(127&t[i]);return n}function D(t,r,e){var n="";e=Math.min(t.length,e);for(var i=r;i<e;++i)n+=String.fromCharCode(t[i]);return n}function x(t,r,e){var n=t.length;(!r||r<0)&&(r=0),(!e||e<0||e>n)&&(e=n);for(var i="",o=r;o<e;++o)i+=Z(t[o]);return i}function C(t,r,e){for(var n=t.slice(r,e),i="",o=0;o<n.length;o+=2)i+=String.fromCharCode(n[o]+256*n[o+1]);return i}function M(t,r,e){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+r>e)throw new RangeError("Trying to access beyond buffer length")}function k(t,r,e,n,i,o){if(!f.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(r>i||r<o)throw new RangeError('"value" argument is out of bounds');if(e+n>t.length)throw new RangeError("Index out of range")}function N(t,r,e,n){r<0&&(r=65535+r+1);for(var i=0,o=Math.min(t.length-e,2);i<o;++i)t[e+i]=(r&255<<8*(n?i:1-i))>>>8*(n?i:1-i)}function z(t,r,e,n){r<0&&(r=4294967295+r+1);for(var i=0,o=Math.min(t.length-e,4);i<o;++i)t[e+i]=r>>>8*(n?i:3-i)&255}function F(t,r,e,n,i,o){if(e+n>t.length)throw new RangeError("Index out of range");if(e<0)throw new RangeError("Index out of range")}function j(t,r,n,i,o){return o||F(t,r,n,4,3.4028234663852886e38,-3.4028234663852886e38),e.write(t,r,n,i,23,4),n+4}function q(t,r,n,i,o){return o||F(t,r,n,8,1.7976931348623157e308,-1.7976931348623157e308),e.write(t,r,n,i,52,8),n+8}f.prototype.slice=function(t,r){var e,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(r=void 0===r?n:~~r)<0?(r+=n)<0&&(r=0):r>n&&(r=n),r<t&&(r=t),f.TYPED_ARRAY_SUPPORT)(e=this.subarray(t,r)).__proto__=f.prototype;else{var i=r-t;e=new f(i,void 0);for(var o=0;o<i;++o)e[o]=this[o+t]}return e},f.prototype.readUIntLE=function(t,r,e){t|=0,r|=0,e||M(t,r,this.length);for(var n=this[t],i=1,o=0;++o<r&&(i*=256);)n+=this[t+o]*i;return n},f.prototype.readUIntBE=function(t,r,e){t|=0,r|=0,e||M(t,r,this.length);for(var n=this[t+--r],i=1;r>0&&(i*=256);)n+=this[t+--r]*i;return n},f.prototype.readUInt8=function(t,r){return r||M(t,1,this.length),this[t]},f.prototype.readUInt16LE=function(t,r){return r||M(t,2,this.length),this[t]|this[t+1]<<8},f.prototype.readUInt16BE=function(t,r){return r||M(t,2,this.length),this[t]<<8|this[t+1]},f.prototype.readUInt32LE=function(t,r){return r||M(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},f.prototype.readUInt32BE=function(t,r){return r||M(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},f.prototype.readIntLE=function(t,r,e){t|=0,r|=0,e||M(t,r,this.length);for(var n=this[t],i=1,o=0;++o<r&&(i*=256);)n+=this[t+o]*i;return n>=(i*=128)&&(n-=Math.pow(2,8*r)),n},f.prototype.readIntBE=function(t,r,e){t|=0,r|=0,e||M(t,r,this.length);for(var n=r,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*r)),o},f.prototype.readInt8=function(t,r){return r||M(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},f.prototype.readInt16LE=function(t,r){r||M(t,2,this.length);var e=this[t]|this[t+1]<<8;return 32768&e?4294901760|e:e},f.prototype.readInt16BE=function(t,r){r||M(t,2,this.length);var e=this[t+1]|this[t]<<8;return 32768&e?4294901760|e:e},f.prototype.readInt32LE=function(t,r){return r||M(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},f.prototype.readInt32BE=function(t,r){return r||M(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},f.prototype.readFloatLE=function(t,r){return r||M(t,4,this.length),e.read(this,t,!0,23,4)},f.prototype.readFloatBE=function(t,r){return r||M(t,4,this.length),e.read(this,t,!1,23,4)},f.prototype.readDoubleLE=function(t,r){return r||M(t,8,this.length),e.read(this,t,!0,52,8)},f.prototype.readDoubleBE=function(t,r){return r||M(t,8,this.length),e.read(this,t,!1,52,8)},f.prototype.writeUIntLE=function(t,r,e,n){(t=+t,r|=0,e|=0,n)||k(this,t,r,e,Math.pow(2,8*e)-1,0);var i=1,o=0;for(this[r]=255&t;++o<e&&(i*=256);)this[r+o]=t/i&255;return r+e},f.prototype.writeUIntBE=function(t,r,e,n){(t=+t,r|=0,e|=0,n)||k(this,t,r,e,Math.pow(2,8*e)-1,0);var i=e-1,o=1;for(this[r+i]=255&t;--i>=0&&(o*=256);)this[r+i]=t/o&255;return r+e},f.prototype.writeUInt8=function(t,r,e){return t=+t,r|=0,e||k(this,t,r,1,255,0),f.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[r]=255&t,r+1},f.prototype.writeUInt16LE=function(t,r,e){return t=+t,r|=0,e||k(this,t,r,2,65535,0),f.TYPED_ARRAY_SUPPORT?(this[r]=255&t,this[r+1]=t>>>8):N(this,t,r,!0),r+2},f.prototype.writeUInt16BE=function(t,r,e){return t=+t,r|=0,e||k(this,t,r,2,65535,0),f.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=255&t):N(this,t,r,!1),r+2},f.prototype.writeUInt32LE=function(t,r,e){return t=+t,r|=0,e||k(this,t,r,4,4294967295,0),f.TYPED_ARRAY_SUPPORT?(this[r+3]=t>>>24,this[r+2]=t>>>16,this[r+1]=t>>>8,this[r]=255&t):z(this,t,r,!0),r+4},f.prototype.writeUInt32BE=function(t,r,e){return t=+t,r|=0,e||k(this,t,r,4,4294967295,0),f.TYPED_ARRAY_SUPPORT?(this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=255&t):z(this,t,r,!1),r+4},f.prototype.writeIntLE=function(t,r,e,n){if(t=+t,r|=0,!n){var i=Math.pow(2,8*e-1);k(this,t,r,e,i-1,-i)}var o=0,u=1,f=0;for(this[r]=255&t;++o<e&&(u*=256);)t<0&&0===f&&0!==this[r+o-1]&&(f=1),this[r+o]=(t/u>>0)-f&255;return r+e},f.prototype.writeIntBE=function(t,r,e,n){if(t=+t,r|=0,!n){var i=Math.pow(2,8*e-1);k(this,t,r,e,i-1,-i)}var o=e-1,u=1,f=0;for(this[r+o]=255&t;--o>=0&&(u*=256);)t<0&&0===f&&0!==this[r+o+1]&&(f=1),this[r+o]=(t/u>>0)-f&255;return r+e},f.prototype.writeInt8=function(t,r,e){return t=+t,r|=0,e||k(this,t,r,1,127,-128),f.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[r]=255&t,r+1},f.prototype.writeInt16LE=function(t,r,e){return t=+t,r|=0,e||k(this,t,r,2,32767,-32768),f.TYPED_ARRAY_SUPPORT?(this[r]=255&t,this[r+1]=t>>>8):N(this,t,r,!0),r+2},f.prototype.writeInt16BE=function(t,r,e){return t=+t,r|=0,e||k(this,t,r,2,32767,-32768),f.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=255&t):N(this,t,r,!1),r+2},f.prototype.writeInt32LE=function(t,r,e){return t=+t,r|=0,e||k(this,t,r,4,2147483647,-2147483648),f.TYPED_ARRAY_SUPPORT?(this[r]=255&t,this[r+1]=t>>>8,this[r+2]=t>>>16,this[r+3]=t>>>24):z(this,t,r,!0),r+4},f.prototype.writeInt32BE=function(t,r,e){return t=+t,r|=0,e||k(this,t,r,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),f.TYPED_ARRAY_SUPPORT?(this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=255&t):z(this,t,r,!1),r+4},f.prototype.writeFloatLE=function(t,r,e){return j(this,t,r,!0,e)},f.prototype.writeFloatBE=function(t,r,e){return j(this,t,r,!1,e)},f.prototype.writeDoubleLE=function(t,r,e){return q(this,t,r,!0,e)},f.prototype.writeDoubleBE=function(t,r,e){return q(this,t,r,!1,e)},f.prototype.copy=function(t,r,e,n){if(e||(e=0),n||0===n||(n=this.length),r>=t.length&&(r=t.length),r||(r=0),n>0&&n<e&&(n=e),n===e)return 0;if(0===t.length||0===this.length)return 0;if(r<0)throw new RangeError("targetStart out of bounds");if(e<0||e>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-r<n-e&&(n=t.length-r+e);var i,o=n-e;if(this===t&&e<r&&r<n)for(i=o-1;i>=0;--i)t[i+r]=this[i+e];else if(o<1e3||!f.TYPED_ARRAY_SUPPORT)for(i=0;i<o;++i)t[i+r]=this[i+e];else Uint8Array.prototype.set.call(t,this.subarray(e,e+o),r);return o},f.prototype.fill=function(t,r,e,n){if("string"==typeof t){if("string"==typeof r?(n=r,r=0,e=this.length):"string"==typeof e&&(n=e,e=this.length),1===t.length){var i=t.charCodeAt(0);i<256&&(t=i)}if(void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!f.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"==typeof t&&(t&=255);if(r<0||this.length<r||this.length<e)throw new RangeError("Out of range index");if(e<=r)return this;var o;if(r>>>=0,e=void 0===e?this.length:e>>>0,t||(t=0),"number"==typeof t)for(o=r;o<e;++o)this[o]=t;else{var u=f.isBuffer(t)?t:$(new f(t,n).toString()),s=u.length;for(o=0;o<e-r;++o)this[o+r]=u[o%s]}return this};var V=/[^+\/0-9A-Za-z-_]/g;function X(t){if((t=J(t).replace(V,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}function J(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function Z(t){return t<16?"0"+t.toString(16):t.toString(16)}function $(t,r){var e;r=r||1/0;for(var n=t.length,i=null,o=[],u=0;u<n;++u){if((e=t.charCodeAt(u))>55295&&e<57344){if(!i){if(e>56319){(r-=3)>-1&&o.push(239,191,189);continue}if(u+1===n){(r-=3)>-1&&o.push(239,191,189);continue}i=e;continue}if(e<56320){(r-=3)>-1&&o.push(239,191,189),i=e;continue}e=65536+(i-55296<<10|e-56320)}else i&&(r-=3)>-1&&o.push(239,191,189);if(i=null,e<128){if((r-=1)<0)break;o.push(e)}else if(e<2048){if((r-=2)<0)break;o.push(e>>6|192,63&e|128)}else if(e<65536){if((r-=3)<0)break;o.push(e>>12|224,e>>6&63|128,63&e|128)}else{if(!(e<1114112))throw new Error("Invalid code point");if((r-=4)<0)break;o.push(e>>18|240,e>>12&63|128,e>>6&63|128,63&e|128)}}return o}function G(t){for(var r=[],e=0;e<t.length;++e)r.push(255&t.charCodeAt(e));return r}function H(t,r){for(var e,n,i,o=[],u=0;u<t.length&&!((r-=2)<0);++u)n=(e=t.charCodeAt(u))>>8,i=e%256,o.push(i),o.push(n);return o}function K(t){return r.toByteArray(X(t))}function Q(t,r,e,n){for(var i=0;i<n&&!(i+e>=r.length||i>=t.length);++i)r[i+e]=t[i];return i}function W(t){return t!=t}
|
33 |
+
},{"base64-js":"QAnv","ieee754":"O1Qa","isarray":"ZCp3","buffer":"fe91"}],"AIYl":[function(require,module,exports) {
|
34 |
+
var Buffer = require("buffer").Buffer;
|
35 |
+
var r=require("buffer").Buffer;!function(){var e=require("crypt"),t=require("charenc").utf8,i=require("charenc").bin,o=function(o,n){var s=e.wordsToBytes(function(i){i.constructor==String?i=t.stringToBytes(i):void 0!==r&&"function"==typeof r.isBuffer&&r.isBuffer(i)?i=Array.prototype.slice.call(i,0):Array.isArray(i)||(i=i.toString());var o=e.bytesToWords(i),n=8*i.length,s=[],f=1732584193,u=-271733879,a=-1732584194,c=271733878,y=-1009589776;o[n>>5]|=128<<24-n%32,o[15+(n+64>>>9<<4)]=n;for(var v=0;v<o.length;v+=16){for(var g=f,l=u,b=a,B=c,d=y,p=0;p<80;p++){if(p<16)s[p]=o[v+p];else{var T=s[p-3]^s[p-8]^s[p-14]^s[p-16];s[p]=T<<1|T>>>31}var h=(f<<5|f>>>27)+y+(s[p]>>>0)+(p<20?1518500249+(u&a|~u&c):p<40?1859775393+(u^a^c):p<60?(u&a|u&c|a&c)-1894007588:(u^a^c)-899497514);y=c,c=a,a=u<<30|u>>>2,u=f,f=h}f+=g,u+=l,a+=b,c+=B,y+=d}return[f,u,a,c,y]}(o));return n&&n.asBytes?s:n&&n.asString?i.bytesToString(s):e.bytesToHex(s)};o._blocksize=16,o._digestsize=20,module.exports=o}();
|
36 |
+
},{"crypt":"pWas","charenc":"BteN","buffer":"fe91"}],"kDFE":[function(require,module,exports) {
|
37 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addEventListener=h,exports.addTracker=X,exports.allTrackerNames=J,exports.allTrackers=Y,exports.attemptDeleteLocalStorage=k,exports.attemptGetLocalStorage=S,exports.attemptGetSessionStorage=b,exports.attemptWriteLocalStorage=x,exports.attemptWriteSessionStorage=T,exports.cookie=D,exports.createSharedState=$,exports.decorateQuerystring=y,exports.deleteCookie=P,exports.detectDocumentSize=s,exports.detectViewport=c,exports.dispatchToTrackers=q,exports.dispatchToTrackersInCollection=z,exports.findRootDomain=O,exports.fixupDomain=p,exports.fixupTitle=g,exports.fixupUrl=H,exports.fromQuerystring=w,exports.getCookiesWithPrefix=L,exports.getCssClasses=N,exports.getFilterByClass=C,exports.getFilterByName=A,exports.getHostName=v,exports.getReferrer=m,exports.getTracker=G,exports.getTrackers=Q,exports.hasLocalStorage=a,exports.hasSessionStorage=i,exports.isFunction=d,exports.isInteger=f,exports.isString=l,exports.isValueInArray=I,exports.localStorageAccessible=u,exports.parseAndValidateFloat=_,exports.parseAndValidateInt=E,exports.trackerExists=W,exports.SharedState=void 0;var e=require("@snowplow/tracker-core"),t=require("tslib"),n=r(require("sha1")),o=require("uuid");function r(e){return e&&e.__esModule?e:{default:e}}function i(){try{return!!window.sessionStorage}catch(e){return!0}}function a(){try{return!!window.localStorage}catch(e){return!0}}function u(){var e="modernizr";if(!a())return!1;try{var t=window.localStorage;return t.setItem(e,e),t.removeItem(e),!0}catch(n){return!1}}function c(){var e,t;if("innerWidth"in window)e=window.innerWidth,t=window.innerHeight;else{var n=document.documentElement||document.body;e=n.clientWidth,t=n.clientHeight}return e>=0&&t>=0?e+"x"+t:null}function s(){var e=document.documentElement,t=document.body,n=t?Math.max(t.offsetHeight,t.scrollHeight):0,o=Math.max(e.clientWidth,e.offsetWidth,e.scrollWidth),r=Math.max(e.clientHeight,e.offsetHeight,e.scrollHeight,n);return isNaN(o)||isNaN(r)?"":o+"x"+r}function l(e){return!(!e||"string"!=typeof e.valueOf())}function f(e){return Number.isInteger&&Number.isInteger(e)||"number"==typeof e&&isFinite(e)&&Math.floor(e)===e}function d(e){return!(!e||"function"!=typeof e)}function g(e){if(!l(e)){e=e.text||"";var t=document.getElementsByTagName("title");t&&null!=t[0]&&(e=t[0].text)}return e}function v(e){var t=new RegExp("^(?:(?:https?|ftp):)/*(?:[^@]+@)?([^:/#]+)").exec(e);return t?t[1]:e}function p(e){var t=e.length;return"."===e.charAt(--t)&&(e=e.slice(0,t)),"*."===e.slice(0,2)&&(e=e.slice(1)),e}function m(e){var t=window,n="",o=w("referrer",t.location.href)||w("referer",t.location.href);if(o)return o;if(e)return e;try{n=t.top.document.referrer}catch(r){if(t.parent)try{n=t.parent.document.referrer}catch(i){n=""}}return""===n&&(n=document.referrer),n}function h(e,t,n,o){return e.addEventListener?(e.addEventListener(t,n,o),!0):e.attachEvent?e.attachEvent("on"+t,n):void(e["on"+t]=n)}function w(e,t){var n=new RegExp("^[^#]*[?&]"+e+"=([^&#]*)").exec(t);return n?decodeURIComponent(n[1].replace(/\+/g," ")):null}function y(e,t,n){var o=t+"="+n,r=e.split("#"),i=r[0].split("?"),a=i.shift(),u=i.join("?");if(u){for(var c=!0,s=u.split("&"),l=0;l<s.length;l++)if(s[l].substr(0,t.length+1)===t+"="){c=!1,s[l]=o,u=s.join("&");break}c&&(u=o+"&"+u)}else u=o;return r[0]=a+"?"+u,r.join("#")}function S(e){try{var t=window.localStorage,n=t.getItem(e+".expires");return null===n||+n>Date.now()?t.getItem(e):(t.removeItem(e),void t.removeItem(e+".expires"))}catch(o){return}}function x(e,t,n){void 0===n&&(n=63072e3);try{var o=window.localStorage,r=Date.now()+1e3*n;return o.setItem(e+".expires",r.toString()),o.setItem(e,t),!0}catch(i){return!1}}function k(e){try{var t=window.localStorage;return t.removeItem(e),t.removeItem(e+".expires"),!0}catch(n){return!1}}function b(e){try{return window.sessionStorage.getItem(e)}catch(t){return}}function T(e,t){try{return window.sessionStorage.setItem(e,t),!0}catch(n){return!1}}function O(e,t){for(var n=window.location.hostname,o="_sp_root_domain_test_"+(new Date).getTime(),r="_test_value_"+(new Date).getTime(),i=n.split("."),a=i.length-1;a>=0;){var u=i.slice(a,i.length).join(".");if(D(o,r,0,"/",u,e,t),D(o)===r){P(o,u,e,t);for(var c=L("_sp_root_domain_test_"),s=0;s<c.length;s++)P(c[s],u,e,t);return u}a-=1}return n}function I(e,t){for(var n=0;n<t.length;n++)if(t[n]===e)return!0;return!1}function P(e,t,n,o){D(e,"",-1,"/",t,n,o)}function L(e){for(var t=document.cookie.split("; "),n=[],o=0;o<t.length;o++)t[o].substring(0,e.length)===e&&n.push(t[o]);return n}function D(e,t,n,o,r,i,a){return arguments.length>1?document.cookie=e+"="+encodeURIComponent(null!=t?t:"")+(n?"; Expires="+new Date(+new Date+1e3*n).toUTCString():"")+(o?"; Path="+o:"")+(r?"; Domain="+r:"")+(i?"; SameSite="+i:"")+(a?"; Secure":""):decodeURIComponent((("; "+document.cookie).split("; "+e+"=")[1]||"").split(";")[0])}function E(e){var t=parseInt(e);return isNaN(t)?void 0:t}function _(e){var t=parseFloat(e);return isNaN(t)?void 0:t}function C(e){if(null==e||"object"!=typeof e||Array.isArray(e))return function(){return!0};var t=Object.prototype.hasOwnProperty.call(e,"allowlist"),n=B(e);return M(e,function(e){return U(e,n)===t})}function A(e){if(null==e||"object"!=typeof e||Array.isArray(e))return function(){return!0};var t=e.hasOwnProperty("allowlist"),n=B(e);return M(e,function(e){return e.name in n===t})}function N(e){return e.className.match(/\S+/g)||[]}function U(e,t){for(var n=0,o=N(e);n<o.length;n++){if(t[o[n]])return!0}return!1}function M(e,t){return e.hasOwnProperty("filter")&&e.filter?e.filter:t}function B(e){var t={},n=e.allowlist||e.denylist;if(n){Array.isArray(n)||(n=[n]);for(var o=0;o<n.length;o++)t[n[o]]=!0}return t}function R(t,n,o,r,i,a,c,s,f,d,g){var v,p=!1,m=[],h=null===(r="string"==typeof r?r.toLowerCase():r)||!0===r||"beacon"===r||"true"===r,w=Boolean(h&&window.navigator&&window.navigator.sendBeacon&&!function(e){return function(e,t){var n=t.match("(iP.+; CPU .*OS (d+)[_d]*.*) AppleWebKit/");if(n&&n.length)return parseInt(n[0])<=e;return!1}(13,e)||function(e,t,n){var o=n.match("(Macintosh;.*Mac OS X (d+)_(d+)[_d]*.*) AppleWebKit/");if(o&&o.length)return parseInt(o[0])<=e||parseInt(o[0])===e&&parseInt(o[1])<=t;return!1}(10,15,e)&&function(e){return e.match("Version/.* Safari/")&&!function(e){return e.match("Chrom(e|ium)")}(e)}(e)}(window.navigator.userAgent))&&h,y="get"===r,S=Boolean(window.XMLHttpRequest&&"withCredentials"in new XMLHttpRequest),k=!y&&S&&("post"===r||h),b=k?i:"/i",T="snowplowOutQueue_"+t+"_"+(k?"post2":"get");if(a=o&&u()&&k&&a||1,o)try{var O=window.localStorage.getItem(T);m=O?JSON.parse(O):[]}catch(A){}function I(e){for(var t=0,n=0;n<e.length;n++){var o=e.charCodeAt(n);o<=127?t+=1:o<=2047?t+=2:o>=55296&&o<=57343?(t+=4,n++):t+=o<65535?3:4}return t}Array.isArray(m)||(m=[]),n.outQueues.push(m),S&&a>1&&n.bufferFlushers.push(function(e){p||L(e)});var P=function(e){return"object"==typeof e[0]};function L(e){for(void 0===e&&(e=!1);m.length&&"string"!=typeof m[0]&&"object"!=typeof m[0];)m.shift();if(m.length<1)p=!1;else{if(!l(v))throw"No collector configured";if(p=!0,S){var t,n,r=void 0;P(m)?(t=D(r=v,!0,e),n=function(e){for(var t=0,n=0;t<e.length&&!((n+=e[t].bytes)>=c);)t+=1;return t}(m)):(r=C(m[0]),t=D(r,!1,e),n=1);var i=setTimeout(function(){t.abort(),p=!1},d),a=function(e){for(var t=0;t<e;t++)m.shift();o&&x(T,JSON.stringify(m.slice(0,f))),L()};if(t.onreadystatechange=function(){4===t.readyState&&t.status>=200&&t.status<400?(clearTimeout(i),a(n)):4===t.readyState&&t.status>=400&&(clearTimeout(i),p=!1)},P(m)){var u=m.slice(0,n);if(u.length>0){var s=!1,h=u.map(function(e){return e.evt});if(w){var y=new Blob([E(_(h))],{type:"application/json"});try{s=navigator.sendBeacon(r,y)}catch(O){s=!1}}!0===s?a(n):t.send(E(_(h)))}}else t.send()}else if(g||P(m))p=!1;else{var k=new Image(1,1),b=!0;k.onload=function(){b&&(b=!1,m.shift(),o&&x(T,JSON.stringify(m.slice(0,f))),L())},k.onerror=function(){b&&(b=!1,p=!1)},k.src=C(m[0]),setTimeout(function(){b&&p&&(b=!1,L())},d)}}}function D(e,t,n){var o=new XMLHttpRequest;return t?(o.open("POST",e,!n),o.setRequestHeader("Content-Type","application/json; charset=UTF-8")):o.open("GET",e,!n),o.withCredentials=!0,g&&o.setRequestHeader("SP-Anonymous","*"),o}function E(e){return JSON.stringify({schema:"iglu:com.snowplowanalytics.snowplow/payload_data/jsonschema/1-0-4",data:e})}function _(e){for(var t=(new Date).getTime().toString(),n=0;n<e.length;n++)e[n].stm=t;return e}function C(e){return s?v+e.replace("?","?stm="+(new Date).getTime()+"&"):v+e}return{enqueueRequest:function(t,n){if(v=n+b,k){var r=function(e){var t=Object.keys(e).map(function(t){return[t,e[t]]}).reduce(function(e,t){var n=t[0],o=t[1];return e[n]=o.toString(),e},{});return{evt:t,bytes:I(JSON.stringify(t))}}(t);if(r.bytes>=c)return e.LOG.warn("Event ("+r.bytes+"B) too big, max is "+c),void D(v,!0,!1).send(E(_([r.evt])));m.push(r)}else m.push(function(e){var t="?",n={co:!0,cx:!0},o=!0;for(var r in e)e.hasOwnProperty(r)&&!n.hasOwnProperty(r)&&(o?o=!1:t+="&",t+=encodeURIComponent(r)+"="+encodeURIComponent(e[r]));for(var i in n)e.hasOwnProperty(i)&&n.hasOwnProperty(i)&&(t+="&"+i+"="+encodeURIComponent(e[i]));return t}(t));var i=!1;o&&(i=x(T,JSON.stringify(m.slice(0,f)))),p||i&&!(m.length>=a)||L()},executeQueue:function(){p||L()},setUseLocalStorage:function(e){o=e},setAnonymousTracking:function(e){g=e},setCollectorUrl:function(e){v=e+b},setBufferSize:function(e){a=e}}}function V(e,t){var n=new RegExp("^(?:https?|ftp)(?::/*(?:[^?]+))([?][^#]+)").exec(e);return n&&(null==n?void 0:n.length)>1?w(t,n[1]):null}function H(e,t,n){var o;return"translate.googleusercontent.com"===e?(""===n&&(n=t),e=v(t=null!==(o=V(t,"u"))&&void 0!==o?o:"")):"cc.bingj.com"!==e&&"webcache.googleusercontent.com"!==e||(e=v(t=document.links[0].href)),[e,t,n]}function j(r,i,a,u,l,d){var b;void 0===d&&(d={});var T=function(r,i,a,u,l,d){var b,T,I,L,E,_,C,A,N,U,M,B,V,j,F,q,z,W,X;d.eventMethod=null!==(b=d.eventMethod)&&void 0!==b?b:"post";var G=function(e){var t;return null!==(t=e.stateStorageStrategy)&&void 0!==t?t:"cookieAndLocalStorage"},Q=function(e){var t,n;return"boolean"!=typeof e.anonymousTracking&&null!==(n=!0===(null===(t=e.anonymousTracking)||void 0===t?void 0:t.withSessionTracking))&&void 0!==n&&n},Y=function(e){var t,n;return"boolean"!=typeof e.anonymousTracking&&null!==(n=!0===(null===(t=e.anonymousTracking)||void 0===t?void 0:t.withServerAnonymisation))&&void 0!==n&&n},J=function(e){return!!e.anonymousTracking};d.plugins=null!==(T=d.plugins)&&void 0!==T?T:[],(null===(L=null===(I=null==d?void 0:d.contexts)||void 0===I?void 0:I.webPage)||void 0===L||L)&&d.plugins.push({contexts:function(){return[{schema:"iglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0",data:{id:dt()}}]}});var K,Z,$,ee,te,ne,oe,re,ie,ae,ue,ce,se,le,fe,de=(0,e.trackerCore)({base64:d.encodeBase64,corePlugins:d.plugins,callback:function(e){var t,n;!function(e){var t,n=function(e){return Me?null:e},r=function(e){return Ne?e:n(e)},i=Math.round((new Date).getTime()/1e3),a=Je("ses"),u=st(),l=u[0],f=u[1],d=u[2],g=u[3],v=u[4],p=u[5],m=u[6];t=!!ne&&!!D(ne),_e||t?at():("0"===l?(le=m,a||"none"==Be||(g++,p=v,le=(0,o.v4)()),Ve=g):(new Date).getTime()-Re>1e3*Ae&&(le=(0,o.v4)(),Ve++),e.add("vp",c()),e.add("ds",s()),e.add("vid",r(Ve)),e.add("sid",r(le)),e.add("duid",n(f)),e.add("uid",n(fe)),ze(),e.add("refr",Ge(K||we)),e.add("url",Ge(Z||he)),"none"!=Be&&(rt(f,d,Ve,i,p,le),ot()),Re=(new Date).getTime())}(e),t=e,n=!!ne&&!!D(ne),_e||n||He.enqueueRequest(t.build(),Se)}}),ge=navigator.userLanguage||navigator.language,ve=document.characterSet||document.charset,pe=H(window.location.hostname,window.location.href,m()),me=p(pe[0]),he=pe[1],we=pe[2],ye=null!==(E=d.platform)&&void 0!==E?E:"web",Se=lt(u),xe=null!==(_=d.postPath)&&void 0!==_?_:"/com.snowplowanalytics.snowplow/tp2",ke=null!==(C=d.appId)&&void 0!==C?C:"",be=document.title,Te=null===(A=d.resetActivityTrackingOnPageView)||void 0===A||A,Oe=null!==(N=d.cookieName)&&void 0!==N?N:"_sp_",Ie=null!==(U=d.cookieDomain)&&void 0!==U?U:void 0,Pe="/",Le=null!==(M=d.cookieSameSite)&&void 0!==M?M:"None",De=null===(B=d.cookieSecure)||void 0===B||B,Ee=navigator.doNotTrack||navigator.msDoNotTrack||window.doNotTrack,_e=void 0!==d.respectDoNotTrack&&d.respectDoNotTrack&&("yes"===Ee||"1"===Ee),Ce=null!==(V=d.cookieLifetime)&&void 0!==V?V:63072e3,Ae=null!==(j=d.sessionCookieTimeout)&&void 0!==j?j:1800,Ne=Q(d),Ue=Y(d),Me=J(d),Be=G(d),Re=(new Date).getTime(),Ve=1,He=R(r,l,"localStorage"==Be||"cookieAndLocalStorage"==Be,d.eventMethod,xe,null!==(F=d.bufferSize)&&void 0!==F?F:1,null!==(q=d.maxPostBytes)&&void 0!==q?q:4e4,null===(z=d.useStm)||void 0===z||z,null!==(W=d.maxLocalStorageQueueSize)&&void 0!==W?W:1e3,null!==(X=d.connectionTimeout)&&void 0!==X?X:5e3,Ue),je=!1,Fe=!1,qe={enabled:!1,installed:!1,configurations:{}};function ze(){(pe=H(window.location.hostname,window.location.href,m()))[1]!==he&&(we=m(he)),me=p(pe[0]),he=pe[1]}function We(e){var t=(new Date).getTime(),n=e.target;(null==n?void 0:n.href)&&(n.href=y(n.href,"_sp",se+"."+t))}function Xe(e){for(var t=0;t<document.links.length;t++){var n=document.links[t];!n.spDecorationEnabled&&e(n)&&(h(n,"click",We,!0),h(n,"mousedown",We,!0),n.spDecorationEnabled=!0)}}function Ge(e){var t;return ee&&(t=new RegExp("#.*"),e=e.replace(t,"")),te&&(t=new RegExp("[{}]","g"),e=e.replace(t,"")),e}function Qe(e){var t=new RegExp("^([a-z]+):").exec(e);return t?t[1]:null}function Ye(e){return Oe+e+"."+ce}function Je(e){var t=Ye(e);return"localStorage"==Be?S(t):"cookie"==Be||"cookieAndLocalStorage"==Be?D(t):void 0}function Ke(){ze(),ce=(0,n.default)((Ie||me)+(Pe||"/")).slice(0,4)}function Ze(){var e=new Date;oe=e.getTime()}function $e(){!function(){var e=et(),t=e[0];t<re?re=t:t>ie&&(ie=t);var n=e[1];n<ae?ae=n:n>ue&&(ue=n)}(),Ze()}function et(){var e=document.documentElement;return e?[e.scrollLeft||window.pageXOffset,e.scrollTop||window.pageYOffset]:[0,0]}function tt(){var e=et(),t=e[0];re=t,ie=t;var n=e[1];ae=n,ue=n}function nt(e){return Math.round(e)}function ot(){it(Ye("ses"),"*",Ae)}function rt(e,t,n,o,r,i){it(Ye("id"),e+"."+t+"."+n+"."+o+"."+r+"."+i,Ce)}function it(e,t,n){Me&&!Ne||("localStorage"==Be?x(e,t,n):"cookie"!=Be&&"cookieAndLocalStorage"!=Be||D(e,t,n,Pe,Ie,Le,De))}function at(e){var t=Ye("id"),n=Ye("ses");k(t),k(n),P(t,Ie,Le,De),P(n,Ie,Le,De),(null==e?void 0:e.preserveSession)||(le=(0,o.v4)(),Ve=0),(null==e?void 0:e.preserveUser)||(se=(0,o.v4)(),fe=null)}function ut(e){e&&e.stateStorageStrategy&&(d.stateStorageStrategy=e.stateStorageStrategy,Be=G(d)),Me=J(d),Ne=Q(d),Ue=Y(d),He.setUseLocalStorage("localStorage"==Be||"cookieAndLocalStorage"==Be),He.setAnonymousTracking(Ue)}function ct(){if(!Me||Ne){var e="none"!=Be&&!!Je("ses"),t=st();t[1]?se=t[1]:Me?(se="",t[1]=se):(se=(0,o.v4)(),t[1]=se),le=t[6],e||(t[3]++,le=(0,o.v4)(),t[6]=le,t[5]=t[4]),"none"!=Be&&(ot(),t[4]=Math.round((new Date).getTime()/1e3),t.shift(),rt.apply(null,t))}}function st(){if("none"==Be)return[];var e,t=new Date,n=Math.round(t.getTime()/1e3),r=Je("id");return r?(e=r.split(".")).unshift("0"):e=["1",se,n,0,n,""],e[6]&&"undefined"!==e[6]||(e[6]=(0,o.v4)()),e}function lt(e){return 0===e.indexOf("http")?e:("https:"===document.location.protocol?"https":"http")+"://"+e}function ft(){je&&null!=l.pageViewId||(l.pageViewId=(0,o.v4)())}function dt(){return null==l.pageViewId&&(l.pageViewId=(0,o.v4)()),l.pageViewId}function gt(e,t){return(e||[]).concat(t?t():[])}function vt(e,t,n){var o=function(e,t){ze(),e({context:t,pageViewId:dt(),minXOffset:re,minYOffset:ae,maxXOffset:ie,maxYOffset:ue}),tt()},r=function(){var r=new Date;oe+e.configHeartBeatTimer>r.getTime()&&o(e.callback,gt(t,n))};0!=e.configMinimumVisitLength?e.activityInterval=window.setTimeout(function(){var i=new Date;oe+e.configMinimumVisitLength>i.getTime()&&o(e.callback,gt(t,n)),e.activityInterval=window.setInterval(r,e.configHeartBeatTimer)},e.configMinimumVisitLength):e.activityInterval=window.setInterval(r,e.configHeartBeatTimer)}function pt(t){var n=t.minimumVisitLength,o=t.heartbeatDelay,r=t.callback;if(f(n)&&f(o))return{configMinimumVisitLength:1e3*n,configHeartBeatTimer:1e3*o,callback:r};e.LOG.error("Activity tracking minimumVisitLength & heartbeatDelay must be integers")}function mt(t){var n=t.context,o=t.minXOffset,r=t.minYOffset,i=t.maxXOffset,a=t.maxYOffset,u=document.title;u!==be&&(be=u,$=void 0),de.track((0,e.buildPagePing)({pageUrl:Ge(Z||he),pageTitle:g($||be),referrer:Ge(K||we),minXOffset:nt(o),maxXOffset:nt(i),minYOffset:nt(r),maxYOffset:nt(a)}),n)}d.hasOwnProperty("discoverRootDomain")&&d.discoverRootDomain&&(Ie=O(Le,De)),de.setTrackerVersion(a),de.setTrackerNamespace(i),de.setAppId(ke),de.setPlatform(ye),de.addPayloadPair("cookie",navigator.cookieEnabled?"1":"0"),de.addPayloadPair("cs",ve),de.addPayloadPair("lang",ge),de.addPayloadPair("res",screen.width+"x"+screen.height),de.addPayloadPair("cd",screen.colorDepth),Ke(),ct(),d.crossDomainLinker&&Xe(d.crossDomainLinker);var ht={getDomainSessionIndex:function(){return Ve},getPageViewId:function(){return dt()},newSession:function(){var e=Math.round((new Date).getTime()/1e3),t=st(),n=t[0],r=t[1],i=t[2],a=t[3],u=t[4],c=t[5],s=t[6];"0"===n?(le=s,"none"!=Be&&(a++,c=u,le=(0,o.v4)()),Ve=a,ot()):(le=(0,o.v4)(),Ve++),"none"!=Be&&(rt(r,i,Ve,e,c,le),ot()),Re=(new Date).getTime()},getCookieName:function(e){return Ye(e)},getUserId:function(){return fe},getDomainUserId:function(){return st()[1]},getDomainUserInfo:function(){return st()},setReferrerUrl:function(e){K=e},setCustomUrl:function(e){ze(),Z=function(e,t){var n;return Qe(t)?t:"/"===t.slice(0,1)?Qe(e)+"://"+v(e)+t:((n=(e=Ge(e)).indexOf("?"))>=0&&(e=e.slice(0,n)),(n=e.lastIndexOf("/"))!==e.length-1&&(e=e.slice(0,n+1)),e+t)}(he,e)},setDocumentTitle:function(e){be=document.title,$=e},discardHashTag:function(e){ee=e},discardBrace:function(e){te=e},setCookiePath:function(e){Pe=e,Ke()},setVisitorCookieTimeout:function(e){Ce=e},crossDomainLinker:function(e){Xe(e)},enableActivityTracking:function(e){qe.configurations.pagePing||(qe.enabled=!0,qe.configurations.pagePing=pt((0,t.__assign)((0,t.__assign)({},e),{callback:mt})))},enableActivityTrackingCallback:function(e){qe.configurations.callback||(qe.enabled=!0,qe.configurations.callback=pt(e))},updatePageActivity:function(){Ze()},setOptOutCookie:function(e){ne=e},setUserId:function(e){fe=e},setUserIdFromLocation:function(e){ze(),fe=w(e,he)},setUserIdFromReferrer:function(e){ze(),fe=w(e,we)},setUserIdFromCookie:function(e){fe=D(e)},setCollectorUrl:function(e){Se=lt(e),He.setCollectorUrl(Se)},setBufferSize:function(e){He.setBufferSize(e)},flushBuffer:function(e){void 0===e&&(e={}),He.executeQueue(),e.newBufferSize&&He.setBufferSize(e.newBufferSize)},trackPageView:function(t){void 0===t&&(t={}),function(t){var n=t.title,o=t.context,r=t.timestamp,i=t.contextCallback;ze(),Fe&&ft(),Fe=!0,be=document.title;var a=g(($=n)||be);de.track((0,e.buildPageView)({pageUrl:Ge(Z||he),pageTitle:a,referrer:Ge(K||we)}),gt(o,i),r);var u=new Date,c=!1;if(qe.enabled&&!qe.installed){qe.installed=!0,c=!0;var s={update:function(){if("undefined"!=typeof window&&"function"==typeof window.addEventListener){var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}}),n=function(){};window.addEventListener("testPassiveEventSupport",n,t),window.removeEventListener("testPassiveEventSupport",n,t),s.hasSupport=e}}};s.update();var l="onwheel"in document.createElement("div")?"wheel":void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll";Object.prototype.hasOwnProperty.call(s,"hasSupport")?h(document,l,Ze,{passive:!0}):h(document,l,Ze),tt();var f=function(e,t){return void 0===t&&(t=Ze),function(e){return h(document,e,t)}};["click","mouseup","mousedown","mousemove","keypress","keydown","keyup"].forEach(f(document)),["resize","focus","blur"].forEach(f(window)),f(window,$e)("scroll")}if(qe.enabled&&(Te||c)){oe=u.getTime();var d=void 0;for(d in qe.configurations){var v=qe.configurations[d];v&&(window.clearInterval(v.activityInterval),vt(v,o,i))}}}(t)},preservePageViewId:function(){je=!0},disableAnonymousTracking:function(e){d.anonymousTracking=!1,ut(e),ct(),He.executeQueue()},enableAnonymousTracking:function(e){var t;d.anonymousTracking=null===(t=e&&(null==e?void 0:e.options))||void 0===t||t,ut(e),Ne||ft()},clearUserData:at};return(0,t.__assign)((0,t.__assign)({},ht),{id:r,namespace:i,core:de,sharedState:l})}(r,i,a,u,l,d),I=(0,t.__assign)((0,t.__assign)({},T),{addPlugin:function(e){var t,n;I.core.addPlugin(e),null===(n=(t=e.plugin).activateBrowserPlugin)||void 0===n||n.call(t,I)}});return null===(b=d.plugins)||void 0===b||b.forEach(function(e){var t;null===(t=e.activateBrowserPlugin)||void 0===t||t.call(e,I)}),I}var F={};function q(t,n){try{Q(null!=t?t:J()).forEach(n)}catch(o){e.LOG.error("Function failed",o)}}function z(t,n,o){try{K(null!=t?t:Object.keys(n),n).forEach(o)}catch(r){e.LOG.error("Function failed",r)}}function W(e){return F.hasOwnProperty(e)}function X(e,t,n,o,r,i){return F.hasOwnProperty(e)?null:(F[e]=j(e,t,n,o,r,i),F[e])}function G(t){return F.hasOwnProperty(t)?F[t]:(e.LOG.warn(t+" not configured"),null)}function Q(e){return K(e,F)}function Y(){return F}function J(){return Object.keys(F)}function K(t,n){for(var o=[],r=0,i=t;r<i.length;r++){var a=i[r];n.hasOwnProperty(a)?o.push(n[a]):e.LOG.warn(a+" not configured")}return o}var Z=function(){return function(){this.outQueues=[],this.bufferFlushers=[],this.hasLoaded=!1,this.registeredOnLoadHandlers=[]}}();function $(){var e=new Z,t=document,n=window;function o(){var t;if(!e.hasLoaded)for(e.hasLoaded=!0,t=0;t<e.registeredOnLoadHandlers.length;t++)e.registeredOnLoadHandlers[t]();return!0}return t.visibilityState&&h(t,"visibilitychange",function(){"hidden"==t.visibilityState&&e.bufferFlushers.forEach(function(e){e(!1)})},!1),h(n,"beforeunload",function(){e.bufferFlushers.forEach(function(e){e(!1)})},!1),"loading"===document.readyState?(t.addEventListener?t.addEventListener("DOMContentLoaded",function e(){t.removeEventListener("DOMContentLoaded",e,!1),o()}):t.attachEvent&&t.attachEvent("onreadystatechange",function e(){"complete"===t.readyState&&(t.detachEvent("onreadystatechange",e),o())}),h(n,"load",o,!1)):o(),e}exports.SharedState=Z;
|
38 |
+
},{"@snowplow/tracker-core":"tPgf","tslib":"xgwM","sha1":"AIYl","uuid":"e1H7"}],"DVTu":[function(require,module,exports) {
|
39 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addGlobalContexts=y,exports.addPlugin=F,exports.clearGlobalContexts=A,exports.clearUserData=B,exports.crossDomainLinker=f,exports.disableAnonymousTracking=S,exports.discardBrace=i,exports.discardHashTag=s,exports.enableActivityTracking=p,exports.enableActivityTrackingCallback=T,exports.enableAnonymousTracking=D,exports.flushBuffer=g,exports.newSession=o,exports.newTracker=O,exports.preservePageViewId=I,exports.removeGlobalContexts=P,exports.setBufferSize=b,exports.setCollectorUrl=v,exports.setCookiePath=a,exports.setCustomUrl=n,exports.setDocumentTitle=c,exports.setOptOutCookie=k,exports.setReferrerUrl=r,exports.setUserId=l,exports.setUserIdFromCookie=m,exports.setUserIdFromLocation=x,exports.setUserIdFromReferrer=h,exports.setVisitorCookieTimeout=u,exports.trackPageView=C,exports.trackSelfDescribingEvent=w,exports.trackStructEvent=U,exports.updatePageActivity=d,Object.defineProperty(exports,"version",{enumerable:!0,get:function(){return t.version}});var e=require("@snowplow/browser-tracker-core"),t=require("@snowplow/tracker-core");function o(t){(0,e.dispatchToTrackers)(t,function(e){e.newSession()})}function r(t,o){(0,e.dispatchToTrackers)(o,function(e){e.setReferrerUrl(t)})}function n(t,o){(0,e.dispatchToTrackers)(o,function(e){e.setCustomUrl(t)})}function c(t,o){(0,e.dispatchToTrackers)(o,function(e){e.setDocumentTitle(t)})}function s(t,o){(0,e.dispatchToTrackers)(o,function(e){e.discardHashTag(t)})}function i(t,o){(0,e.dispatchToTrackers)(o,function(e){e.discardBrace(t)})}function a(t,o){(0,e.dispatchToTrackers)(o,function(e){e.setCookiePath(t)})}function u(t,o){(0,e.dispatchToTrackers)(o,function(e){e.setVisitorCookieTimeout(t)})}function f(t,o){(0,e.dispatchToTrackers)(o,function(e){e.crossDomainLinker(t)})}function p(t,o){(0,e.dispatchToTrackers)(o,function(e){e.enableActivityTracking(t)})}function T(t,o){(0,e.dispatchToTrackers)(o,function(e){e.enableActivityTrackingCallback(t)})}function d(t){(0,e.dispatchToTrackers)(t,function(e){e.updatePageActivity()})}function k(t,o){(0,e.dispatchToTrackers)(o,function(e){e.setOptOutCookie(t)})}function l(t,o){(0,e.dispatchToTrackers)(o,function(e){e.setUserId(t)})}function x(t,o){(0,e.dispatchToTrackers)(o,function(e){e.setUserIdFromLocation(t)})}function h(t,o){(0,e.dispatchToTrackers)(o,function(e){e.setUserIdFromReferrer(t)})}function m(t,o){(0,e.dispatchToTrackers)(o,function(e){e.setUserIdFromCookie(t)})}function v(t,o){(0,e.dispatchToTrackers)(o,function(e){e.setCollectorUrl(t)})}function b(t,o){(0,e.dispatchToTrackers)(o,function(e){e.setBufferSize(t)})}function g(t,o){(0,e.dispatchToTrackers)(o,function(e){e.flushBuffer(t)})}function C(t,o){(0,e.dispatchToTrackers)(o,function(e){e.trackPageView(t)})}function U(o,r){(0,e.dispatchToTrackers)(r,function(e){e.core.track((0,t.buildStructEvent)(o),o.context,o.timestamp)})}function w(o,r){(0,e.dispatchToTrackers)(r,function(e){e.core.track((0,t.buildSelfDescribingEvent)({event:o.event}),o.context,o.timestamp)})}function y(t,o){(0,e.dispatchToTrackers)(o,function(e){e.core.addGlobalContexts(t)})}function P(t,o){(0,e.dispatchToTrackers)(o,function(e){e.core.removeGlobalContexts(t)})}function A(t){(0,e.dispatchToTrackers)(t,function(e){e.core.clearGlobalContexts()})}function I(t){(0,e.dispatchToTrackers)(t,function(e){e.preservePageViewId()})}function S(t,o){(0,e.dispatchToTrackers)(o,function(e){e.disableAnonymousTracking(t)})}function D(t,o){(0,e.dispatchToTrackers)(o,function(e){e.enableAnonymousTracking(t)})}function B(t,o){(0,e.dispatchToTrackers)(o,function(e){e.clearUserData(t)})}function F(t,o){(0,e.dispatchToTrackers)(o,function(e){e.addPlugin(t)})}var G="undefined"!=typeof window?(0,e.createSharedState)():void 0;function O(o,r,n){return void 0===n&&(n={}),G?(0,e.addTracker)(o,o,"js-"+t.version,r,G,n):void 0}
|
40 |
+
},{"@snowplow/browser-tracker-core":"kDFE","@snowplow/tracker-core":"tPgf"}],"KSvI":[function(require,module,exports) {
|
41 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("@snowplow/browser-tracker");const o={endpoint:"snowplow.mediavine.com",namespace:"grow_social_prod"},a={endpoint:"snowplow-dev.mediavine.com",namespace:"grow_social_dev"},t=a,r=()=>{(0,e.newTracker)(t.namespace,t.endpoint,{appId:"grow_social",cookieSameSite:"Lax",anonymousTracking:!0,stateStorageStrategy:"cookieAndLocalStorage"});const o=window.document.getElementById("dpsp-global-refresh-share-counts");o&&o.addEventListener("click",()=>{(0,e.trackStructEvent)({category:"adminAction",action:"refresh_all_share_counts"})})};var n=r;exports.default=n;
|
42 |
+
},{"@snowplow/browser-tracker":"DVTu"}],"dNy0":[function(require,module,exports) {
|
43 |
+
"use strict";var t=i(require("./fn/utils/create-svg-icon")),e=i(require("./fn/utils/get-settings")),s=i(require("./fn/init-admin-click-tracking"));function i(t){return t&&t.__esModule?t:{default:t}}jQuery(function(i){function p(t,e,s){var i=-1!==s.indexOf("?")?"&":"?";return s+i+t+"="+e}function a(t){i('.dpsp-social-platforms-sort-list li[data-network="'+t+'"]').remove(),i(".dpsp-social-platforms-sort-list li").removeClass("dpsp-last"),i(".dpsp-social-platforms-sort-list li").last().addClass("dpsp-last"),0==i(".dpsp-social-platforms-sort-list li").length&&(i(".dpsp-social-platforms-sort-list").fadeOut(1),i(".dpsp-social-platforms-sort-list").removeClass("dpsp-active"))}(0,e.default)("mv-grow-admin-data"),(0,s.default)(),i(document).on("click",".dpsp-tool-wrapper .dpsp-switch label",function(t){var e=i(this).closest(".dpsp-tool-actions"),s=e.find(".dpsp-tool-settings");s.fadeOut(200),e.append('<div class="dpsp-tool-actions-overlay"><div class="spinner"></div></div>'),e.find(".dpsp-tool-actions-overlay").animate({opacity:1},200);var p=i(this).siblings("input").data("tool");i(this).siblings("input").data("tool-activation");"undefined"!=p&&(e.hasClass("dpsp-inactive")?function(t){var e={action:"dpsp_activate_tool",dpsptkn:i("#dpsptkn").val(),tool:t};return i.post(ajaxurl,e,function(){})}(p).done(function(t){1==t&&(e.find(".dpsp-tool-actions-overlay").animate({opacity:0},200,function(){i(this).remove()}),e.removeClass("dpsp-inactive").addClass("dpsp-active"),e.find("span").text("Active"),s.fadeIn(200))}):function(t){var e={action:"dpsp_deactivate_tool",dpsptkn:i("#dpsptkn").val(),tool:t};return i.post(ajaxurl,e,function(){})}(p).done(function(t){var s;1==t&&(e.find(".dpsp-tool-actions-overlay").animate({opacity:0},200,function(){i(this).remove()}),e.removeClass("dpsp-active").addClass("dpsp-inactive"),e.find("span").text("Inactive"),s=(s=p).replace("share_","").replace("follow_","").replace("misc_","").replace("_","-"),i("#toplevel_page_dpsp-social-pug .wp-submenu li a").each(function(){i(this).attr("href").indexOf(s),"images"!==s&&i(this).parent().hide()}))}))}),i.fn.wpColorPicker&&i(".dpsp-color-picker").wpColorPicker(),i.fn.select2&&i(".dpsp-setting-field-select select").select2({minimumResultsForSearch:1/0}).on("select2:open",function(){i(".select2-container").last().addClass("dpsp-select2")}),i(function(){i(".dpsp-social-platforms-sort-list").sortable({handle:".dpsp-sort-handle",placeholder:"dpsp-sort-placeholder",containment:"#wpwrap",stop:function(){i(".dpsp-social-platforms-sort-list li").removeClass("dpsp-last"),i(".dpsp-social-platforms-sort-list li").last().addClass("dpsp-last")}})}),i(document).on("click","#dpsp-networks-selector .dpsp-network-item",function(){const t=i(this);t.children(".dpsp-network-item-checkbox");t.attr("data-checked")?t.removeAttr("data-checked"):t.attr("data-checked","true")}),i(document).on("click","#dpsp-select-networks",function(t){t.preventDefault(),i("#dpsp-networks-selector-wrapper").hasClass("dpsp-active")?(i("#dpsp-networks-selector-wrapper").removeClass("dpsp-active"),i("#dpsp-networks-selector-wrapper").stop().fadeOut(250,function(){0==i(".dpsp-social-platforms-sort-list").find("li").length?(i("#dpsp-sortable-networks-empty").stop().fadeIn(400),i("#dpsp-sortable-networks-empty").addClass("dpsp-active")):(i(".dpsp-social-platforms-sort-list").stop().fadeIn(400),i(".dpsp-social-platforms-sort-list").addClass("dpsp-active"))})):(i("#dpsp-select-networks").hide(),i("#dpsp-networks-selector-wrapper").addClass("dpsp-active"),0==i(".dpsp-social-platforms-sort-list").find("li").length?(i(".dpsp-social-platforms-sort-list").hide(),i("#dpsp-sortable-networks-empty").removeClass("dpsp-active"),i("#dpsp-sortable-networks-empty").stop().fadeOut(250,function(){i("#dpsp-networks-selector-wrapper").stop().fadeIn(250)})):(i(".dpsp-social-platforms-sort-list").removeClass("dpsp-active"),i(".dpsp-social-platforms-sort-list").stop().fadeOut(250,function(){i("#dpsp-networks-selector-wrapper").stop().fadeIn(250)})))}),i(document).on("click","#dpsp-networks-selector-footer a",function(e){e.preventDefault(),i("#dpsp-select-networks").show(),i("#dpsp-networks-selector .dpsp-network-item").each(function(){const e=i(this);var s=e.attr("data-network"),p=e.attr("data-network-name");if(e.attr("data-checked")){var n=!1;if(i(".dpsp-social-platforms-sort-list li").each(function(){i(this).attr("data-network")==s&&(n=!0)}),n)return n;!function(e,s){if("undefined"==e)return!1;if("undefined"==s)return!1;var p="",a=i('input[name="dpsp_buttons_location"]').val();const n=window.mvGrowData.iconData[e];p+='<li data-network="'+e+'">',p+='<div class="dpsp-sort-handle ui-sortable-handle">\x3c!-- --\x3e</div>',p+='<div class="dpsp-list-icon dpsp-list-icon-social dpsp-icon-'+e+" dpsp-background-color-network-"+e+'">'+(0,t.default)(n).outerHTML+"</div>",p+='<div class="dpsp-list-input-wrapper"><input type="text" placeholder="This button has no label text." name="'+a+"[networks]["+e+'][label]" value="'+s+'"></div>',p+='<div class="dpsp-list-actions">',p+='<a class="dpsp-list-edit-label dpsp-transition" href="#"><span class="dashicons dashicons-edit"></span>Edit Label</a>',p+='<a class="dpsp-list-remove dpsp-transition" href="#"><span class="dashicons dashicons-no-alt"></span>Remove</a>',p+="</div>",p+="</li>",i(".dpsp-social-platforms-sort-list").append(p),i(".dpsp-social-platforms-sort-list li").removeClass("dpsp-last"),i(".dpsp-social-platforms-sort-list li").last().addClass("dpsp-last")}(s,p)}else a(s)}),i("#dpsp-networks-selector-wrapper").removeClass("dpsp-active").stop().fadeOut(250,function(){0==i(".dpsp-social-platforms-sort-list").find("li").length?(i("#dpsp-sortable-networks-empty").stop().fadeIn(250),i("#dpsp-sortable-networks-empty").addClass("dpsp-active")):(i(".dpsp-social-platforms-sort-list").stop().fadeIn(250),i(".dpsp-social-platforms-sort-list").addClass("dpsp-active"))})}),i(document).on("click",".dpsp-list-edit-label",function(t){t.preventDefault(),i(this).closest("li").find(".dpsp-list-input-wrapper input").focus().select()}),i(document).on("click",".dpsp-list-remove",function(t){t.preventDefault();var e=i(this).closest("li").attr("data-network");a(e),i('#dpsp-networks-selector .dpsp-network-item[data-network="'+e+'"]').removeAttr("data-checked"),0==i(".dpsp-social-platforms-sort-list").find("li").length&&(i("#dpsp-sortable-networks-empty").stop().fadeIn(250),i("#dpsp-sortable-networks-empty").addClass("dpsp-active"),i(".dpsp-social-platforms-sort-list").removeClass("dpsp-active"))}),i(document).ready(function(){i(".dpsp-network-btn").attr("href","#")}),i(document).on("click",".dpsp-network-btn",function(t){t.preventDefault(),i(this).closest("label").trigger("click")}),i(document).on("focus",".dpsp-page-mobile .dpsp-list-input-wrapper input",function(){i(this).blur()}),i(document).on("focus",".dpsp-page-sticky-bar .dpsp-list-input-wrapper input",function(){i(this).blur()}),i(document).on("focus",".dpsp-list-input-wrapper input",function(){i(this).attr("data-placeholder",i(this).attr("placeholder")),i(this).attr("placeholder"," ")}),i(document).on("blur",".dpsp-list-input-wrapper input",function(){i(this).attr("placeholder",i(this).attr("data-placeholder")),i(this).attr("data-placeholder"," ")}),i(document).on("change",".dpsp-setting-field-button-shape select",function(){i(this).closest(".dpsp-page-wrapper").find(".dpsp-networks-btns-wrapper").parent().removeClass("dpsp-shape-circle dpsp-shape-rounded dpsp-shape-rectangular").addClass("dpsp-shape-"+i(this).val())}),i(document).on("mouseenter",".dpsp-setting-field-tooltip-icon",function(){i(this).siblings("div").css("opacity",1).css("visibility","visible")}),i(document).on("mouseleave",".dpsp-setting-field-tooltip-icon",function(){i(this).siblings("div").css("opacity",0).css("visibility","hidden")}),i(document).on("mouseenter",".dpsp-setting-field-tooltip-wrapper.dpsp-has-link",function(){i(this).find("div").css("opacity",1).css("visibility","visible")}),i(document).on("mouseleave",".dpsp-setting-field-tooltip-wrapper.dpsp-has-link",function(){i(this).find("div").css("opacity",0).css("visibility","hidden")}),i(".dpsp-image-select").on("click",function(t){t.preventDefault();let e,s=i(this),p=s.siblings(".dpsp-image-remove"),a=s.siblings(".dpsp-image-id"),n=s.siblings(".dpsp-image-src"),d=s.siblings("div").find("img");e?e.open():((e=wp.media({title:"Choose Image",button:{text:"Use Image"},multiple:!1})).on("select",function(){var t=e.state().get("selection").first().toJSON();a.val(t.id),n.val(t.url),d.attr("src",""),d.attr("src",t.url),s.addClass("dpsp-hidden"),p.removeClass("dpsp-hidden");var i=new CustomEvent("dpsp_settings_field_image_select_image",{detail:{field:s.closest(".dpsp-setting-field-image"),attachment:t}});document.dispatchEvent(i)}),e.open())}),i(".dpsp-image-remove").on("click",function(t){t.preventDefault();let e=i(this),s=e.siblings(".dpsp-image-select"),p=e.siblings(".dpsp-image-id"),a=e.siblings(".dpsp-image-src"),n=e.siblings("div").find("img");e.addClass("dpsp-hidden"),s.removeClass("dpsp-hidden"),p.val(""),a.val(""),n.attr("src",void 0!==n.siblings(".dpsp-field-image-placeholder").data("src")?n.siblings(".dpsp-field-image-placeholder").data("src"):"");var d=new CustomEvent("dpsp_settings_field_image_remove_image",{detail:{field:s.closest(".dpsp-setting-field-image")}});document.dispatchEvent(d)});const n=i(".dpsp-setting-field-show-share-count input[type=checkbox]"),d=i(".dpsp-setting-field-show-total-share-count input[type=checkbox]"),o=i(".dpsp-setting-field-share-count-round input[type=checkbox]"),l=i(".dpsp-setting-field-minimum-global-share-count input[type=text]"),c=i(".dpsp-setting-field-minimum-individual-share-count input[type=text]"),r=o.closest(".dpsp-setting-field-wrapper"),u=l.closest(".dpsp-setting-field-wrapper"),f=c.closest(".dpsp-setting-field-wrapper"),h=i(".dpsp-setting-field-show-after-user-scrolls input[type=checkbox]"),m=h.closest(".dpsp-setting-field-wrapper").next(".dpsp-setting-field-wrapper"),g=m.find("input"),v=i(".dpsp-setting-field-hide-after-reaching-element input[type=checkbox]"),w=v.closest(".dpsp-setting-field-wrapper").next(".dpsp-setting-field-wrapper"),_=w.find("input");function b(){d.is(":checked")||n.is(":checked")?(r.removeClass("disabled"),o.attr("disabled",!1)):(r.addClass("disabled"),o.attr("disabled",!0))}function k(){d.is(":checked")||n.is(":checked")?(u.removeClass("disabled"),l.attr("disabled",!1)):(u.addClass("disabled"),l.attr("disabled",!0))}function x(){d.is(":checked")||n.is(":checked")?(f.removeClass("disabled"),c.attr("disabled",!1)):(f.addClass("disabled"),c.attr("disabled",!0))}if(d.is(":checked")||(d.closest(".dpsp-setting-field-wrapper").next().addClass("disabled"),d.closest(".dpsp-setting-field-wrapper").next().find("select").attr("disabled",!0)),d.on("change",function(){d.is(":checked")?(d.closest(".dpsp-setting-field-wrapper").next().removeClass("disabled"),d.closest(".dpsp-setting-field-wrapper").next().find("select").attr("disabled",!1)):(d.closest(".dpsp-setting-field-wrapper").next().addClass("disabled"),d.closest(".dpsp-setting-field-wrapper").next().find("select").attr("disabled",!0))}),b(),k(),x(),n.on("change",function(){b(),k(),x()}),d.on("change",function(){b(),k(),x()}),h.is(":checked")||(m.addClass("disabled"),g.attr("disabled",!0)),h.on("change",function(){h.is(":checked")?(m.removeClass("disabled"),g.attr("disabled",!1)):(m.addClass("disabled"),g.attr("disabled",!0))}),v.is(":checked")||(w.addClass("disabled"),_.attr("disabled",!0)),v.on("change",function(){v.is(":checked")?(w.removeClass("disabled"),_.attr("disabled",!1)):(w.addClass("disabled"),_.attr("disabled",!0))}),i(".dpsp-nav-tab").on("click",function(t){t.preventDefault(),"pinterest-image-hover"===i(this).attr("data-tab")&&(document.location.search="?page=dpsp-pinterest-images");const e=i("input[name=_wp_http_referer]");var s=e.val();s=function(t,e){var s=e.split("?")[0],i=[],p=-1!==e.indexOf("?")?e.split("?")[1]:"";if(""!==p){for(var a=(i=p.split("&")).length-1;a>=0;a-=1)i[a].split("=")[0]===t&&i.splice(a,1);s=s+"?"+i.join("&")}return""==s.split("?")[1]&&(s=s.split("?")[0]),s}("dpsp-tab",s),e.val(p("dpsp-tab",i(this).attr("data-tab"),s)),i(".dpsp-nav-tab").removeClass("dpsp-active"),i(this).addClass("dpsp-active"),i(".dpsp-tab").removeClass("dpsp-active");var a=i(this).attr("data-tab");i("#dpsp-tab-"+a).addClass("dpsp-active")}),i(document).on("click","#dpsp-refresh-share-counts",function(t){if(t.preventDefault(),i(this).hasClass("disabled"))return!1;const e=i(this),s=e.siblings(".spinner");e.addClass("disabled"),s.css("visibility","visible"),i(".dpsp-statistic-bar-wrapper-network").css("opacity",.6);var p={action:"dpsp_refresh_share_counts",nonce:e.siblings('[name="dpsp_refresh_share_counts"]').val(),post_id:parseInt(i("#post_ID").val())};i.post(ajaxurl,p,function(t){t&&i(".dpsp-statistic-bars-wrapper").replaceWith(t)})}),i(document).on("click","#dpsp-global-refresh-share-counts",function(t){if(t.preventDefault(),i(this).hasClass("disabled"))return!1;const e=i(this),s=e.siblings(".action-text");e.addClass("disabled"),s.fadeIn();var p={action:"dpsp_refresh_all_share_counts",nonce:i("#dpsp_refresh_all_share_counts").val()};i.post(ajaxurl,p)}),i(document).ready(function(){i('[name="dpsp_settings[shortening_service]"]').on("change",function(){i(".dpsp-subsection-link-shortening").hide(),i(".dpsp-subsection-link-shortening[data-link-shortening-service="+i(this).val()+"]").show(),i("#dpsp-purge-shortened-links span").text(i(this).find("option:selected").text())}),i('[name="dpsp_settings[shortening_service]"]').trigger("change")}),i(document).on("change",'[name="dpsp_location_sticky_bar[display][show_on_device]"]',function(){"all"==i(this).val()?(i(".dpsp-setting-field-desktop-position").show(),i(".dpsp-setting-field-mobile-position").show()):(i(".dpsp-setting-field-desktop-position").hide(),i(".dpsp-setting-field-mobile-position").hide()),"desktop"==i(this).val()&&i(".dpsp-setting-field-desktop-position").show(),"mobile"==i(this).val()&&i(".dpsp-setting-field-mobile-position").show()}),i('[name="dpsp_location_sticky_bar[display][show_on_device]"]').trigger("change"),i(document).on("change",'[name="dpsp_settings[facebook_share_counts_provider]"]',function(){i(".dpsp-setting-field-facebook-authorize-app").hide(),i(".dpsp-setting-field-facebook-app-id, .dpsp-setting-field-facebook-app-secret").hide(),"authorized_app"==i(this).val()&&i(".dpsp-setting-field-facebook-authorize-app").show(),"own_app"==i(this).val()&&i(".dpsp-setting-field-facebook-app-id, .dpsp-setting-field-facebook-app-secret").show()}),i('[name="dpsp_settings[facebook_share_counts_provider]"]').trigger("change"),i(document).on("click","#dpsp-purge-shortened-links",function(t){if(t.preventDefault(),!dpsp_confirm_shorten_link_purge)return!1;let e=i(this),s=e.closest("form");var a={action:"dpsp_purge_shortened_links",nonce:i("#_wpnonce").val(),shortening_service:i('[name="dpsp_settings[shortening_service]"]').val()};s.find(":input").attr("disabled",!0),e.closest(".dpsp-setting-field-button").addClass("dpsp-loading"),i.post(ajaxurl,a,function(t){if(void 0!==(t=JSON.parse(t)).success){var e=window.location,s="dpsp_purge_shortened_links_fail";1==t.success&&(s="dpsp_purge_shortened_links_success"),e=p("updated",s,window.location.href),window.location=e}})}),i(document).on("change",".dpsp-setting-field-enable-twitter-tweet-counts input[type=checkbox]",function(){i(this).is(":checked")?i(".dpsp-setting-field-tweet-counts-provider").show():i(".dpsp-setting-field-tweet-counts-provider").hide()}),i(".dpsp-setting-field-enable-twitter-tweet-counts input[type=checkbox]").trigger("change"),i(document).on("change",".dpsp-setting-field-show-button-label input[type=checkbox]",function(){i(this).is(":checked")?i(".dpsp-setting-field-button-text-label").show():i(".dpsp-setting-field-button-text-label").hide()}),i(".dpsp-setting-field-show-button-label input[type=checkbox]").trigger("change"),i(document).on("change","#dpsp_location_follow_widget\\[display\\]\\[column_count\\]",function(t){"auto"==i(this).val()?i(".dpsp-setting-field-button-alignment").show():i(".dpsp-setting-field-button-alignment").hide()}),i("#dpsp_location_follow_widget\\[display\\]\\[column_count\\]").trigger("change"),document.addEventListener("dpsp_settings_field_image_select_image",function(t){if(0==t.detail.field.parents("#dpsp_share_options_content").length)return!1;t.detail.field.find("img").height(parseInt(200*t.detail.attachment.height/t.detail.attachment.width)),t.detail.field.closest(".dpsp-section").css("min-height",t.detail.field.height())}),document.addEventListener("dpsp_settings_field_image_remove_image",function(t){if(0==t.detail.field.parents("#dpsp_share_options_content").length)return!1;t.detail.field.find('label[for="dpsp_share_options[custom_image]"]').length>0?t.detail.field.find("img").height(105):t.detail.field.find("img").height(300),t.detail.field.closest(".dpsp-section").css("min-height",t.detail.field.height())}),i(window).on("load",function(){i("#dpsp_share_options_content .dpsp-section").each(function(){i(this).css("min-height",i(this).find(".dpsp-setting-field-image").height())})}),i(".dpsp-setting-field-wrapper textarea").on("input",function(){var t=i(this),e=t.closest(".dpsp-setting-field-wrapper").find(".dpsp-textarea-characters-remaining"),s=parseInt(e.parent().data("maximum-count")),p=parseInt(s-t.val().length);e.text(p),p<0?e.parent().addClass("dpsp-excedeed"):e.parent().removeClass("dpsp-excedeed")}),i('.dpsp-setting-field-wrapper textarea[name="dpsp_share_options[custom_tweet]"]').on("input",function(){var t=i(this),e=t.closest(".dpsp-setting-field-wrapper").find(".dpsp-textarea-characters-remaining"),s=parseInt(e.parent().data("maximum-count"));let p=t.val().match(/(http(s?):\/\/[\S]*)/g),a=23*(p?p.length:0);var n=parseInt(s-t.val().replace(/(http(s?):\/\/[\S]*)/g,"").length-a);e.text(n),n<0?e.parent().addClass("dpsp-excedeed"):e.parent().removeClass("dpsp-excedeed")}),i(document).on("change",'select[name="dpsp_settings[ctt_style]"]',function(){i("#section-click-to-tweet-preview > a").removeClass("dpsp-click-to-tweet").attr("class",function(t,e){return e.replace(/(^|\s)dpsp-style-\S+/g,"")}),i("#section-click-to-tweet-preview > a").addClass("dpsp-click-to-tweet").addClass("dpsp-style-"+i(this).val())}),i(document).on("keyup",'input[name="dpsp_settings[ctt_link_text]"]',function(){i("#section-click-to-tweet-preview > a .dpsp-click-to-tweet-cta > span").html(i(this).val())}),i(document).on("change",'select[name="dpsp_settings[ctt_link_position]"]',function(){i("#section-click-to-tweet-preview > a").removeClass("dpsp-click-to-tweet-cta-left dpsp-click-to-tweet-cta-right").addClass("dpsp-click-to-tweet-cta-"+i(this).val())}),i(document).on("click",'input[name="dpsp_settings[ctt_link_icon_animation]"]',function(){i(this).is(":checked")?i("#section-click-to-tweet-preview > a").addClass("dpsp-click-to-tweet-cta-icon-animation"):i("#section-click-to-tweet-preview > a").removeClass("dpsp-click-to-tweet-cta-icon-animation")}),i('select[name="dpsp_settings[ctt_style]"]').trigger("change"),i('input[name="dpsp_settings[ctt_link_text]"]').trigger("keyup"),i('select[name="dpsp_settings[ctt_link_position]"]').trigger("change"),i('select[name="dpsp_settings[ctt_link_icon_animation]"]').trigger("click"),i("#section-click-to-tweet-preview").show(),i(document).on("change",".dpsp-setting-field-wrapper *",function(){i(".dpsp-card-inner").each(function(){i(this).find(".dpsp-setting-field-wrapper").removeClass("dpsp-last"),i(this).find(".dpsp-setting-field-wrapper:not(.disabled)").last().addClass("dpsp-last")})}),i(".dpsp-setting-field-wrapper *").first().trigger("change"),i(document).on("click","#dpsp-add-post-previous-url",function(t){t.preventDefault(),i("#dpsp-shares-recovery-post-previous-urls-empty").hide(),i(this).before(i(".dpsp-post-previous-url.dpsp-hidden").clone()),i(this).parent().find(".dpsp-post-previous-url.dpsp-hidden").hide().removeClass("dpsp-hidden").fadeIn(),i(this).parent().find(".dpsp-post-previous-url input").focus()}),i(document).on("click",".dpsp-post-previous-url a",function(t){t.preventDefault(),i(this).parent().remove(),0==i(".dpsp-post-previous-url:not(.dpsp-hidden)").length&&i("#dpsp-shares-recovery-post-previous-urls-empty").fadeIn()}),i(document).on("change",'[name="dpsp_settings[previous_permalink_structure]"]',function(){"custom"==i(this).val()&&setTimeout(function(){i('[name="dpsp_settings[previous_permalink_structure_custom]"]').focus()},100)}),i('[name="dpsp_settings[previous_base_domain]"]').attr("placeholder","eg. domain.com"),window.mvGrowData&&!window.mvGrowData.isFree){var C=i("#tmpl-image-details");if(C.length>0&&void 0!==window.pagenow&&"widgets"!=window.pagenow&&"customize"!=window.pagenow){var y=C.html(),D='<label class="setting pin-title"><span>Pin Title</span><input type="text" data-setting="pin_title" value="{{ data.model.pin_title }}" /><p class="description" style="font-style: italic; margin-top: 5px;">Please note: Pinterest has unofficially switched from custom titles to Open Graph metadata to pull titles. You can add og:title using the Social Media Title field. The Custom Title field will be visible to show historic values.</p></label>',I='<label class="setting pin-description"><span>Pin Description</span><textarea data-setting="pin_description">{{ data.model.pin_description }}</textarea><p class="description" style="font-style: italic; margin-top: 5px;">Please Note: Pinterest has unofficially switched from custom descriptions to Open Graph metadata to pull descriptions. You can add the og:description using the Social Media Description field. The Custom Descriptions field will be visible to show historic values.</p></label>',O='<label class="setting pin-repin-id"><span>Pin Repin ID</span><input type="text" data-setting="pin_repin_id" value="{{ data.model.pin_repin_id }}" /></label>',$='<label class="setting pin-nopin"><span>Disable Pinning</span><select data-setting="pin_nopin"><option value="">No</option><option value="1" <# if ( data.model.pin_nopin ) { #> selected="selected" <# } #>>Yes</option></select></label>';-1!=C.text().indexOf('<span class="setting alt-text')?C.text(y.replace(/(<span class="setting alt-text)/,D+I+O+$+"$1")):-1!=C.text().indexOf('<span class="setting caption')&&C.text(y.replace(/(<span class="setting caption)/,D+I+O+$+"$1")),-1!=C.text().indexOf('<label class="setting alt-text">')?C.text(y.replace(/(<label class="setting alt-text">)/,D+I+O+$+"$1")):-1!=C.text().indexOf('<label class="setting caption">')&&C.text(y.replace(/(<label class="setting caption">)/,D+I+O+$+"$1"))}"undefined"!=typeof wp&&void 0!==wp.media&&void 0!==wp.media.events&&(wp.media.events.on("editor:image-edit",function(t){t.metadata.pin_title=t.editor.$(t.image).attr("data-pin-title"),t.metadata.pin_description=t.editor.$(t.image).attr("data-pin-description"),t.metadata.pin_repin_id=t.editor.$(t.image).attr("data-pin-id"),t.metadata.pin_nopin=t.editor.$(t.image).attr("data-pin-nopin")?"1":""}),wp.media.events.on("editor:image-update",function(t){t.editor.$(t.image).attr("data-pin-title",t.metadata.pin_title),t.editor.$(t.image).attr("data-pin-description",t.metadata.pin_description),t.editor.$(t.image).attr("data-pin-id",t.metadata.pin_repin_id),t.metadata.pin_nopin?t.editor.$(t.image).attr("data-pin-nopin","true"):t.editor.$(t.image).removeAttr("data-pin-nopin")}))}var P;i(document).on("click","#dpsp-meta-box-section-multiple-pinterest-images .dpsp-hidden-image-wrapper .dpsp-button-secondary",function(t){t.preventDefault(),i(this).parent().remove()}),i(document).on("click","#dpsp-meta-box-section-multiple-pinterest-images .dpsp-hidden-image-add-new",function(t){t.preventDefault();let e=i(this);P?P.open():((P=wp.media({title:"Select Pinterest Hidden Images",button:{text:"Use Images"},library:{type:["image"]},multiple:!0})).on("select",function(){var t=P.state().get("selection").map(function(t){return t.toJSON()});for(var s in t)if("image"==t[s].type&&!(i('.dpsp-hidden-image-wrapper[data-image-id="'+t[s].id+'"]').length>0)){var p="",a=void 0!==t[s].sizes.thumbnail?t[s].sizes.thumbnail.url:t[s].sizes.full.url;p='<div class="dpsp-hidden-image-wrapper" data-image-id="'+t[s].id+'">',p+='<img src="'+a+'" data-pin-nopin="true" />',p+='<a href="#" class="dpsp-button-secondary" title="Remove image"><span class="dashicons dashicons-no-alt"></span></a>',p+='<input type="hidden" name="dpsp_pinterest_hidden_images[]" value="'+t[s].id+'" />',p+="</div>",e.before(p)}}),P.open())})});
|
44 |
+
},{"./fn/utils/create-svg-icon":"Mzb7","./fn/utils/get-settings":"tCTD","./fn/init-admin-click-tracking":"KSvI"}]},{},["dNy0"], null)
|
assets/dist/{dashboard-tinymce.1.19.2.js → dashboard-tinymce.1.20.0.js}
RENAMED
File without changes
|
assets/dist/{dpsp-selectable-empty.1.19.2.png → dpsp-selectable-empty.1.20.0.png}
RENAMED
File without changes
|
assets/dist/{extension-bitly.1.19.2.png → extension-bitly.1.20.0.png}
RENAMED
File without changes
|
assets/dist/{extension-branch.1.19.2.png → extension-branch.1.20.0.png}
RENAMED
File without changes
|
assets/dist/{extension-ctt.1.19.2.png → extension-ctt.1.20.0.png}
RENAMED
File without changes
|
assets/dist/{extension-ga-utm-tracking.1.19.2.png → extension-ga-utm-tracking.1.20.0.png}
RENAMED
File without changes
|
assets/dist/{extension-networks.1.19.2.png → extension-networks.1.20.0.png}
RENAMED
File without changes
|
assets/dist/front-end-free.1.19.2.js
DELETED
@@ -1,75 +0,0 @@
|
|
1 |
-
parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c<t.length;c++)try{f(t[c])}catch(e){i||(i=e)}if(t.length){var l=f(t[t.length-1]);"object"==typeof exports&&"undefined"!=typeof module?module.exports=l:"function"==typeof define&&define.amd?define(function(){return l}):n&&(this[n]=l)}if(parcelRequire=f,i)throw i;return f}({"LGpM":[function(require,module,exports) {
|
2 |
-
function e(e,o){(null==o||o>e.length)&&(o=e.length);for(var l=0,r=new Array(o);l<o;l++)r[l]=e[l];return r}module.exports=e,module.exports.default=module.exports,module.exports.__esModule=!0;
|
3 |
-
},{}],"o3SL":[function(require,module,exports) {
|
4 |
-
var r=require("./arrayLikeToArray.js");function e(e){if(Array.isArray(e))return r(e)}module.exports=e,module.exports.default=module.exports,module.exports.__esModule=!0;
|
5 |
-
},{"./arrayLikeToArray.js":"LGpM"}],"lZpU":[function(require,module,exports) {
|
6 |
-
function e(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}module.exports=e,module.exports.default=module.exports,module.exports.__esModule=!0;
|
7 |
-
},{}],"Vzqv":[function(require,module,exports) {
|
8 |
-
var r=require("./arrayLikeToArray.js");function e(e,t){if(e){if("string"==typeof e)return r(e,t);var o=Object.prototype.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?r(e,t):void 0}}module.exports=e,module.exports.default=module.exports,module.exports.__esModule=!0;
|
9 |
-
},{"./arrayLikeToArray.js":"LGpM"}],"NCaH":[function(require,module,exports) {
|
10 |
-
function e(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}module.exports=e,module.exports.default=module.exports,module.exports.__esModule=!0;
|
11 |
-
},{}],"I9dH":[function(require,module,exports) {
|
12 |
-
var e=require("./arrayWithoutHoles.js"),r=require("./iterableToArray.js"),o=require("./unsupportedIterableToArray.js"),u=require("./nonIterableSpread.js");function t(t){return e(t)||r(t)||o(t)||u()}module.exports=t,module.exports.default=module.exports,module.exports.__esModule=!0;
|
13 |
-
},{"./arrayWithoutHoles.js":"o3SL","./iterableToArray.js":"lZpU","./unsupportedIterableToArray.js":"Vzqv","./nonIterableSpread.js":"NCaH"}],"Mzb7":[function(require,module,exports) {
|
14 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=t(require("@babel/runtime/helpers/toConsumableArray"));function t(e){return e&&e.__esModule?e:{default:e}}var a=function(t){if(!t)return!1;var a=document.createElementNS("http://www.w3.org/2000/svg","svg");return[{name:"version",value:"1.1"},{name:"xmlns",value:"http://www.w3.org/2000/svg"},{name:"viewBox",value:"0 0 ".concat(t.width," ").concat(t.height)},{name:"height",value:t.referenceHeight?t.referenceHeight:t.height},{name:"width",value:t.referenceHeight?"100%":t.width},{name:"class",value:t.class?t.class:""}].concat((0,e.default)(function(e){return e.fill?[{name:"fill",value:e.fill}]:[]}(t)),(0,e.default)(function(e){return e.y?[{name:"y",value:e.y}]:[]}(t)),(0,e.default)(function(e){return e.x?[{name:"x",value:e.x}]:[]}(t))).forEach(function(e){var t=e.name,n=e.value;return a.setAttribute(t,n)}),t.paths.forEach(function(e){var t=document.createElementNS("http://www.w3.org/2000/svg","path");t.setAttribute("d",e),a.appendChild(t)}),a},n=a;exports.default=n;
|
15 |
-
},{"@babel/runtime/helpers/toConsumableArray":"I9dH"}],"ZFee":[function(require,module,exports) {
|
16 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.isDebug=exports.debugTimeLog=exports.debugTimeEnd=exports.debugTime=exports.debugTable=exports.debugGroupEnd=exports.debugGroupCollapsed=exports.debugGroup=exports.debugError=exports.debugWarn=exports.debugInfo=exports.debugLog=void 0;var e=function(e){return function(){var o;r()&&(o=console)[e].apply(o,arguments)}},r=function(){return window.MV_GROW_DEBUG||new URLSearchParams(window.location.search).has("MV_GROW_DEBUG")};exports.isDebug=r;var o=e("log");exports.debugLog=o;var u=e("info");exports.debugInfo=u;var p=e("warn");exports.debugWarn=p;var t=e("error");exports.debugError=t;var s=e("group");exports.debugGroup=s;var d=e("groupCollapsed");exports.debugGroupCollapsed=d;var g=e("groupEnd");exports.debugGroupEnd=g;var a=e("table");exports.debugTable=a;var b=e("time");exports.debugTime=b;var n=e("timeEnd");exports.debugTimeEnd=n;var x=e("timeLog");exports.debugTimeLog=x;
|
17 |
-
},{}],"LvEJ":[function(require,module,exports) {
|
18 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=o(require("./utils/create-svg-icon")),t=require("./utils/debug");function o(e){return e&&e.__esModule?e:{default:e}}var n=function(){[].slice.call(document.getElementsByClassName("dpsp-network-btn")).forEach(function(o){if(o.getElementsByTagName("svg").length>0)return!0;var n=o.classList[1].split("-")[1],a=window.mvGrowData.buttonSVG[n],r=(0,e.default)(a);try{o.getElementsByClassName("dpsp-network-icon-inner")[0].appendChild(r)}catch(s){(0,t.debugGroup)("MV Grow: Icon Loading Failed for ".concat(n)),(0,t.debugLog)(s),window.mvGrowData&&window.mvGrowData.buttonSVG?a?r||(0,t.debugLog)("Malformed SVG for ".concat(n)):(0,t.debugLog)("Missing Icon Data for ".concat(n)):(0,t.debugLog)("All Icon Data Missing"),(0,t.debugGroupEnd)()}})},a=n;exports.default=a;
|
19 |
-
},{"./utils/create-svg-icon":"Mzb7","./utils/debug":"ZFee"}],"qbcG":[function(require,module,exports) {
|
20 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var t=require("./utils/debug"),e={width:700,height:300,toolbar:!1,location:!1,status:!1,menubar:!1,scrollbars:!1,resizable:!0,top:200},n={width:800,height:575},r={width:720,height:520,scrollbars:!0},o=function(n){n.blur();var r=Object.assign({},e,s(n.classList));return(0,t.debugTable)(r),window.open(n.href||n.getAttribute("data-href"),"targetWindow",i(r))},i=function(t){var e=Object.keys(t).reduce(function(e,n){return"".concat(e).concat(n,"=").concat(a(t[n]),",")},"");return t.hasOwnProperty("left")||(e="".concat(e,"left=").concat((window.innerWidth-t.width)/2)),e},a=function(t){return"boolean"!=typeof t?t:t?"yes":"no"},s=function(t){return t.contains("dpsp-buffer")?n:t.contains("dpsp-pinterest")||t.contains("dpsp-pin-it-button")?r:{}},c=o;exports.default=c;
|
21 |
-
},{"./utils/debug":"ZFee"}],"CR0T":[function(require,module,exports) {
|
22 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.initializeButtonHover=n,exports.initializeButtons=r;var t=e(require("./open-popup"));function e(t){return t&&t.__esModule?t:{default:t}}function n(){var t=document.querySelectorAll(".dpsp-networks-btns-wrapper li .dpsp-network-btn");Array.prototype.forEach.call(t,function(t){t.addEventListener("mouseenter",function(t){t.target.parentNode.classList.add("dpsp-hover")}),t.addEventListener("mouseleave",function(t){t.target.parentNode.classList.remove("dpsp-hover")})})}function r(){var e=document.querySelectorAll(".dpsp-networks-btns-share .dpsp-network-btn, .dpsp-click-to-tweet, .dpsp-pin-it-button");Array.prototype.forEach.call(e,function(e){e.addEventListener("click",function(n){e.classList.contains("dpsp-whatsapp")||e.classList.contains("dpsp-email")||(n.preventDefault(),/#$/.test(e.href)||/#$/.test(e.getAttribute("data-href"))?n.stopPropagation():(0,t.default)(e))})})}
|
23 |
-
},{"./open-popup":"qbcG"}],"jsG1":[function(require,module,exports) {
|
24 |
-
"use strict";function e(){var e=document.querySelectorAll(".dpsp-network-btn.dpsp-print");Array.prototype.forEach.call(e,function(e){e.addEventListener("click",function(){window.print()})})}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var t=e;exports.default=t;
|
25 |
-
},{}],"fkUf":[function(require,module,exports) {
|
26 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=function(){return window.mvGrowData&&window.mvGrowData.shouldRun};exports.default=e;
|
27 |
-
},{}],"i355":[function(require,module,exports) {
|
28 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=function(e){var t=e.target,r=e.callback,o=e.options,s=new IntersectionObserver(r,o);return s.observe(t),s},t=e;exports.default=t;
|
29 |
-
},{}],"tCTD":[function(require,module,exports) {
|
30 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var t=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mv-grow-data";return window.mvGrowData&&window.mvGrowData.init?window.mvGrowData:(document.getElementById(t)&&document.getElementById(t).dataset.settings&&(window.mvGrowData=JSON.parse(document.getElementById(t).dataset.settings),window.mvGrowData.init=!0),{init:!0})},e=t;exports.default=e;
|
31 |
-
},{}],"VRvp":[function(require,module,exports) {
|
32 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=o(require("./utils/should-run")),t=o(require("./utils/observe-intersection")),r=o(require("./utils/get-settings"));function o(e){return e&&e.__esModule?e:{default:e}}function i(){var o=document.getElementById("dpsp-floating-sidebar");if(o&&(0,e.default)()){var i=(0,r.default)(),n=Number(o.getAttribute("data-trigger-scroll"));if(n?window.addEventListener("scroll",function(){Number(window.scrollY/document.body.clientHeight*100)>n?o.classList.add("opened"):o.classList.remove("opened")}):o.classList.add("opened"),i.floatingSidebar&&i.floatingSidebar.stopSelector){var d=document.querySelector(i.floatingSidebar.stopSelector);d&&(0,t.default)({target:d,callback:function(e){var t=e[0].intersectionRect,r=o.getBoundingClientRect();t.top-50<=r.bottom&&e[0].isIntersecting?o.classList.add("stop-hidden"):o.classList.remove("stop-hidden")},options:{threshold:s()}})}}}function s(){for(var e=[],t=1;t<=20;t++){var r=t/20;e.push(r)}return e.push(0),e}var n=i;exports.default=n;
|
33 |
-
},{"./utils/should-run":"fkUf","./utils/observe-intersection":"i355","./utils/get-settings":"tCTD"}],"rtwc":[function(require,module,exports) {
|
34 |
-
function e(e){if(null==e)throw new TypeError("Cannot destructure undefined")}module.exports=e,module.exports.default=module.exports,module.exports.__esModule=!0;
|
35 |
-
},{}],"X18c":[function(require,module,exports) {
|
36 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.manageNoPinSingle=void 0;var t=e(require("@babel/runtime/helpers/objectDestructuringEmpty"));function e(t){return t&&t.__esModule?t:{default:t}}var n=function(e){return(0,t.default)(e),function(t){return!t.classList.contains("dpsp-post-pinterest-image-hidden-inner")&&(t.setAttribute("data-pin-nopin","true"),!0)}},r=function(t){var e=t.content;return function(t){return!e.contains(t)&&(t.setAttribute("data-pin-nopin","true"),!0)}},i={post_custom_images:n,post_images:r,all_images:function(){return function(){return!0}}},u=function(t){var e=t.pinnableImages,n=t.content;return function(t){return Object.keys(i).includes(e)||(e="all_images"),i[e]({content:n})(t)}};exports.manageNoPinSingle=u;
|
37 |
-
},{"@babel/runtime/helpers/objectDestructuringEmpty":"rtwc"}],"DKSj":[function(require,module,exports) {
|
38 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=function(){if(window.mvGrowData&&window.mvGrowData.general&&window.mvGrowData.general.contentSelector)return document.querySelector(window.mvGrowData.general.contentSelector);if(document.getElementsByTagName("body")[0].classList.contains("mediavine-trellis"))return document.getElementById("content").getElementsByClassName("article")[0];var e=document.getElementById("theme-content-section");if(e)return e;var t=document.getElementById("dpsp-post-content-markup");return t&&t.parentNode?t.parentNode:document.body},t=e;exports.default=t;
|
39 |
-
},{}],"XSCr":[function(require,module,exports) {
|
40 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getSettings=void 0;var e=t(require("../utils/get-content-wrapper"));function t(e){return e&&e.__esModule?e:{default:e}}var i={minimumImageHeight:200,minimumImageWidth:200,buttonPosition:"top_left",buttonShareBehavior:"post_image",hoverButtonShareBehavior:"hover_image",showImageOverlay:!0,showButtonLabel:!0,buttonLabelText:"Save",buttonShape:"rectangular",pinImageURL:"",pinnableImages:"all_images",pinDescriptionSource:"image_alt_tag",pinDescription:"",pinTitle:"",postTypeDisplay:["post"],postImageHidden:!1,postImageHiddenMultiple:!1,lazyLoadCompatibility:!1,disableIframes:!1,imagePinIt:!1,hasContent:!1,shareURL:"",ignoreSelectors:[],bypassClasses:[]},a=function(){return Object.assign({},i,window.mvGrowData.pinterest,{content:(0,e.default)()})};exports.getSettings=a;
|
41 |
-
},{"../utils/get-content-wrapper":"DKSj"}],"QgJj":[function(require,module,exports) {
|
42 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addButtonSingle=void 0;var t='<svg xmlns="http://www.w3.org/2000/svg" width="23" height="32" viewBox="0 0 23 32"><path d="M0 10.656q0-1.92 0.672-3.616t1.856-2.976 2.72-2.208 3.296-1.408 3.616-0.448q2.816 0 5.248 1.184t3.936 3.456 1.504 5.12q0 1.728-0.32 3.36t-1.088 3.168-1.792 2.656-2.56 1.856-3.392 0.672q-1.216 0-2.4-0.576t-1.728-1.568q-0.16 0.704-0.48 2.016t-0.448 1.696-0.352 1.28-0.48 1.248-0.544 1.12-0.832 1.408-1.12 1.536l-0.224 0.096-0.16-0.192q-0.288-2.816-0.288-3.36 0-1.632 0.384-3.68t1.184-5.152 0.928-3.616q-0.576-1.152-0.576-3.008 0-1.504 0.928-2.784t2.368-1.312q1.088 0 1.696 0.736t0.608 1.824q0 1.184-0.768 3.392t-0.8 3.36q0 1.12 0.8 1.856t1.952 0.736q0.992 0 1.824-0.448t1.408-1.216 0.992-1.696 0.672-1.952 0.352-1.984 0.128-1.792q0-3.072-1.952-4.8t-5.12-1.728q-3.552 0-5.952 2.304t-2.4 5.856q0 0.8 0.224 1.536t0.48 1.152 0.48 0.832 0.224 0.544q0 0.48-0.256 1.28t-0.672 0.8q-0.032 0-0.288-0.032-0.928-0.288-1.632-0.992t-1.088-1.696-0.576-1.92-0.192-1.92z"></path></svg>',e=function(e){return function(i){if(!n(e)(i))return!1;var a=e.buttonPosition,s=e.hoverButtonShareBehavior,r=e.showImageOverlay,o=e.showButtonLabel,p=e.buttonLabelText,c=e.buttonShape,d=e.pinImageURL,l=e.pinDescription,u=e.shareURL,m=i.getAttribute("data-pin-media")||i.getAttribute("data-media")||i.getAttribute("data-lazy-src")||i.getAttribute("data-src")||i.getAttribute("src"),b=i.getAttribute("data-pin-description")||"";if("post_image"===s&&(m=d||m,b=l||b),!m)return!1;var g=i.getAttribute("class"),h=i.getAttribute("style");if(g){var v=["lazyloaded","lazyload","td-animation-stack"];g=g.split(" ").filter(function(t){return!v.includes(t)}).join(" ")}var A=document.createElement("div");A.setAttribute("class","dpsp-pin-it-wrapper ".concat(g||"")),h&&A.setAttribute("style",h),g&&g.split(" ").forEach(function(t){t.trim()&&i.classList.remove(t)}),i.setAttribute("style",""),i.parentNode.insertBefore(A,i),A.appendChild(i);var L=i.getAttribute("data-pin-id"),f=L?"https://pinterest.com/pin/".concat(L,"/repin/x"):"https://pinterest.com/pin/create/bookmarklet/?media=".concat(encodeURIComponent(m),"&url=").concat(encodeURIComponent(u),"&is_video=false&description=").concat(encodeURIComponent(b)),q=document.createElement("a");if(q.classList.add("dpsp-pin-it-button"),q.classList.add("dpsp-pin-it-button-".concat(a)),q.classList.add("dpsp-pin-it-button-shape-".concat(c)),q.setAttribute("target","_blank"),q.rel="noopener",q.innerHTML='<span class="dpsp-network-icon">'+t+"</span>",o&&(q.classList.add("dpsp-pin-it-button-has-label"),q.title=p,q.setAttribute("aria-label",p)),q.href=f,r){var y=document.createElement("span");y.setAttribute("class","dpsp-pin-it-overlay"),A.appendChild(y)}return A.appendChild(q),!0}};exports.addButtonSingle=e;var n=function(t){var e=t.imagePinIt,n=t.imageInContent,i=t.minimumImageWidth,a=t.minimumImageHeight;return function(t){return"1"===e&&(!!n&&("IFRAME"!==t.nodeName&&(!t.parentNode.parentNode.classList.contains("rll-youtube-player")&&(!t.parentNode.classList.contains("dpsp-pin-it-wrapper")&&(!!t.parentNode.parentNode.classList.contains("blocks-gallery-item")||(!(t.clientWidth<=0||t.clientHeight<=0)||"lazy"===t.loading)&&(!t.getAttribute("data-pin-nopin")&&(t.classList.contains("dpsp_no_pin")||t.classList.contains("nopin")||t.parentNode.classList.contains("nopin")?(t.setAttribute("data-pin-nopin","true"),!1):!(t.clientWidth<Number(i)||t.clientHeight<Number(a))&&!t.classList.contains("emoji"))))))))}};
|
43 |
-
},{}],"a47m":[function(require,module,exports) {
|
44 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addDescriptionSingle=void 0;var t=function(t){var i=t.pinDescriptionSource,r=t.pinDescription,n=t.imageInContent;return function(t){if(!e({imageInContent:n})(t))return!1;var o="";"image_alt_tag"===i&&t.getAttribute("alt")&&(o=t.getAttribute("alt")),"image_title"===i&&t.getAttribute("title")&&(o=t.getAttribute("title")),r&&"post_pinterest_description"===i&&(o=r),!o&&r&&(o=r);var a=document.querySelector('[property="og:title"]');return!o&&a&&(o=a.getAttribute("content")),o&&t.setAttribute("data-pin-description",o),!0}};exports.addDescriptionSingle=t;var e=function(t){var e=t.imageInContent;return function(t){return!!e&&!t.getAttribute("data-pin-description")}};
|
45 |
-
},{}],"QfZG":[function(require,module,exports) {
|
46 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addTitleSingle=void 0;var t=function(t){var n=t.pinTitle,r=t.imageInContent;return function(t){if(!e({imageInContent:r})(t))return!1;var i="";!i&&n&&(i=n);var o=document.querySelector('[property="og:title"]');return!i&&o&&(i=o.getAttribute("content")),!!i&&(t.setAttribute("data-pin-title",i),!0)}};exports.addTitleSingle=t;var e=function(t){var e=t.imageInContent;return function(t){return!!e&&!t.getAttribute("data-pin-title")}};
|
47 |
-
},{}],"UfYi":[function(require,module,exports) {
|
48 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.removeBrowserExtensionButton=void 0;var e=t(require("@babel/runtime/helpers/objectDestructuringEmpty"));function t(e){return e&&e.__esModule?e:{default:e}}var r=function(t){return(0,e.default)(t),function(e){return!e.parentNode.classList.contains("dpsp-pin-it-wrapper")&&(e.addEventListener("mouseenter",function(){var e=Array.prototype.slice.call(document.querySelectorAll('[style*="z-index: 8675309"][style*="data:image/svg+xml"]')),t=Array.prototype.slice.call(document.querySelectorAll('span[class^="PIN_"][data-pin-log^="button_pinit_floating"]'));e.concat(t).forEach(function(e){return e.remove()})}),!0)}};exports.removeBrowserExtensionButton=r;
|
49 |
-
},{"@babel/runtime/helpers/objectDestructuringEmpty":"rtwc"}],"kZhX":[function(require,module,exports) {
|
50 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=function(e,s){var t=e.minimumImageHeight,a=e.minimumImageWidth,i=e.disableIframes,n=e.bypassClasses;return!e.bypassDenyClasses.some(function(e){return s.classList.contains(e)})&&("true"===s.dataset.pinNopin||!s.parentNode.parentNode.classList.contains("blocks-gallery-item")&&(s.height<t||(s.width<a||("yes"===i&&"IFRAME"===s.nodeName||n.some(function(e){return s.classList.contains(e)})))))},s=e;exports.default=s;
|
51 |
-
},{}],"xUEp":[function(require,module,exports) {
|
52 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("./add-button"),t=require("./add-descriptions"),r=require("./add-titles"),n=require("./remove-extension"),i=o(require("./filter-image"));function o(e){return e&&e.__esModule?e:{default:e}}var u=function(o){return function(u){return(0,i.default)(o,u)?(u.setAttribute("data-pin-nopin","true"),!1):(o.imageInContent=o.content.contains(u),[t.addDescriptionSingle,r.addTitleSingle,e.addButtonSingle,n.removeBrowserExtensionButton].forEach(function(e){return e(o)(u)}),!0)}},d=u;exports.default=d;
|
53 |
-
},{"./add-button":"QgJj","./add-descriptions":"a47m","./add-titles":"QfZG","./remove-extension":"UfYi","./filter-image":"kZhX"}],"Bmo8":[function(require,module,exports) {
|
54 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=function(){return function(e){e.parentNode.classList.contains("dpsp-post-pinterest-image-hidden")&&(e.parentNode.style.cssText="position:absolute;height:0;width:0;"),e.removeAttribute("loading")}},t=e;exports.default=t;
|
55 |
-
},{}],"xtn3":[function(require,module,exports) {
|
56 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("./get-settings"),t=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=(0,e.getSettings)();[].slice.call(document.getElementsByTagName("img")).map(function(e){t.forEach(function(t){return t(n)(e)})})},n=t;exports.default=n;
|
57 |
-
},{"./get-settings":"XSCr"}],"h63O":[function(require,module,exports) {
|
58 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addShareURL=void 0;var t=function(t){var e=t.shareURL;return function(t){return!t.getAttribute("data-pin-url")&&(!!e&&(t.setAttribute("data-pin-url",e),!0))}};exports.addShareURL=t;
|
59 |
-
},{}],"axgK":[function(require,module,exports) {
|
60 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var t=require("../utils/debug"),e=function(){var e=document.createElement("script"),s=(0,t.isDebug)()?"https://cdn.mediavine.com/pinmarklet.js":"https://assets.pinterest.com/js/pinmarklet.js";e.setAttribute("type","text/javascript"),e.setAttribute("charset","UTF-8"),e.setAttribute("src",s),document.body.appendChild(e)},s=e;exports.default=s;
|
61 |
-
},{"../utils/debug":"ZFee"}],"dCCy":[function(require,module,exports) {
|
62 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=function(e){var t=e.target,r=e.callback,s=new MutationObserver(r);return s.observe(t,{childList:!0,subtree:!0}),s},t=e;exports.default=t;
|
63 |
-
},{}],"AalF":[function(require,module,exports) {
|
64 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=n(require("../utils/observe-mutation")),t=require("../pinterest/manage-nopin"),r=require("../pinterest");function n(e){return e&&e.__esModule?e:{default:e}}var a=function(){[].slice.call(document.getElementsByClassName("tl-widget-container")).forEach(function(n){(0,e.default)({target:n,callback:function(){Array.prototype.forEach.call(document.querySelectorAll("img"),(0,t.manageNoPinSingle)((0,r.getPinterestSettings)()))}})})},i=a;exports.default=i;
|
65 |
-
},{"../utils/observe-mutation":"dCCy","../pinterest/manage-nopin":"X18c","../pinterest":"b4YO"}],"dRtE":[function(require,module,exports) {
|
66 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=r(require("@babel/runtime/helpers/toConsumableArray"));function r(e){return e&&e.__esModule?e:{default:e}}var t=function(r){var t=r.ignoreSelectors;(void 0===t?[]:t).forEach(function(r){(0,e.default)(document.querySelectorAll("".concat(r,", ").concat(r," img"))).forEach(function(e){return"IMG"===e.tagName&&e.classList.add("mv-grow-bypass")})})},o=t;exports.default=o;
|
67 |
-
},{"@babel/runtime/helpers/toConsumableArray":"I9dH"}],"b4YO":[function(require,module,exports) {
|
68 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.initializePinterest=p,exports.initializeProPinterest=g,Object.defineProperty(exports,"getPinterestSettings",{enumerable:!0,get:function(){return r.getSettings}});var e=c(require("@babel/runtime/helpers/toConsumableArray")),t=require("./manage-nopin"),r=require("./get-settings"),n=c(require("./process-image")),i=c(require("./un-lazy-image")),a=c(require("./on-demand-data")),u=require("./add-share-url"),o=c(require("./load-grid")),d=c(require("../observations/thrive-leads")),l=c(require("../utils/get-content-wrapper")),s=c(require("../utils/should-run")),f=c(require("./ignore-images"));function c(e){return e&&e.__esModule?e:{default:e}}function p(){if(!(0,s.default)())return!1;(0,e.default)(document.querySelectorAll(".dpsp-networks-btns-share .dpsp-network-btn.dpsp-pinterest")).forEach(function(e){e.addEventListener("click",function(t){/#$/.test(e.href)||/#$/.test(e.getAttribute("data-href"))?(t.preventDefault(),(0,a.default)([i.default,u.addShareURL]),(0,o.default)()):t.preventDefault()}),e.addEventListener("keydown",function(t){"Space"!==t.code&&"Enter"!==t.code||e.click()})})}function g(){if(document.body.classList.contains("tve_editor_page"))return!1;if(!window.mvGrowData||!window.mvGrowData.pinterest)return!1;var i=(0,r.getSettings)();return!(!(0,s.default)()||"1"!==i.hasContent)&&((0,e.default)(document.querySelectorAll("img, iframe")).forEach((0,t.manageNoPinSingle)(i)),(0,f.default)(i),(0,d.default)(),Array.prototype.forEach.call((0,l.default)().querySelectorAll("img, iframe"),(0,n.default)(i)),!0)}
|
69 |
-
},{"@babel/runtime/helpers/toConsumableArray":"I9dH","./manage-nopin":"X18c","./get-settings":"XSCr","./process-image":"xUEp","./un-lazy-image":"Bmo8","./on-demand-data":"xtn3","./add-share-url":"h63O","./load-grid":"axgK","../observations/thrive-leads":"AalF","../utils/get-content-wrapper":"DKSj","../utils/should-run":"fkUf","./ignore-images":"dRtE"}],"nDkI":[function(require,module,exports) {
|
70 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=function(){if(document.querySelector(".dpsp-top-shared-post")||document.querySelector(".dpsp-click-to-tweet")||document.querySelector(".dpsp-network-btn")){var e=document.querySelector(".mv-grow-style");e&&(e.rel="stylesheet",e.type="text/css")}},t=e;exports.default=t;
|
71 |
-
},{}],"YvVA":[function(require,module,exports) {
|
72 |
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=t(require("@babel/runtime/helpers/toConsumableArray")),o=t(require("./utils/should-run")),r=t(require("./utils/create-svg-icon"));function t(e){return e&&e.__esModule?e:{default:e}}function n(){if(!(0,o.default)())return!1;window.growMe?window.growMe(d):(window.growMe=function(e){window.growMe._.push(e)},window.growMe._=[d])}var d=function(){var o=(0,e.default)(document.querySelectorAll(".dpsp-networks-btns-share .dpsp-network-list-item.dpsp-network-list-item-grow"));o.forEach(function(e){var r=e.querySelector(".dpsp-network-label"),t=e.querySelector(".dpsp-network-btn"),n=window.growMe.getIsBookmarked();i(t),n&&(r.innerText="Saved!"),window.growMe.on("isBookmarkedChanged",function(e){(n=e.isBookmarked)&&(r&&(r.innerText="Saved!"),t.classList.add("dpsp-grow-saved"))}),e.classList.add("dpsp-grow-load-in"),setTimeout(function(){e.classList.remove("dpsp-grow-load-in"),e.classList.add("dpsp-grow-loaded")},900),t.addEventListener("click",function(e){e.preventDefault(),window.growMe.addBookmark({source:"grow_social_pro",tooltipReferenceElement:t}).then(function(e){s(o)}).catch(function(e){s(o)})}),t.addEventListener("keydown",function(e){"Space"!==e.code&&"Enter"!==e.code||t.click()})})},i=function(e){var o=(0,r.default)({paths:["M9.19481 0L3.14304 6.31111L0.80576 3.8777L0 4.71887L3.14304 8L10 0.841163L9.19481 0Z"],height:8,width:10,class:"dpsp-grow-check-icon",referenceHeight:"5",y:3}),t=e.querySelector(".dpsp-network-icon-inner > svg");t&&t.appendChild(o.cloneNode(!0))},s=function(e){e.forEach(function(e){var o=e.querySelector(".dpsp-network-label");o&&(o.innerText="Saved!"),e.querySelector(".dpsp-network-btn").classList.add("dpsp-grow-saved"),e.querySelector(".dpsp-network-icon").classList.remove("dpsp-network-icon-outlined")})},a=n;exports.default=a;
|
73 |
-
},{"@babel/runtime/helpers/toConsumableArray":"I9dH","./utils/should-run":"fkUf","./utils/create-svg-icon":"Mzb7"}],"gSkV":[function(require,module,exports) {
|
74 |
-
"use strict";var e=l(require("./fn/add-missing-icons")),i=require("./fn/init-buttons"),t=l(require("./fn/init-print")),n=l(require("./fn/init-sidebar")),r=require("./fn/pinterest"),u=require("./fn/utils/debug"),d=l(require("./fn/utils/get-settings")),o=l(require("./fn/load-styles")),a=l(require("./fn/init-grow-me"));function l(e){return e&&e.__esModule?e:{default:e}}var s=function(){(0,d.default)(),(0,u.debugLog)(window.mvGrowData),(0,o.default)();window.addEventListener("scroll",function(){Number(window.scrollY/document.body.clientHeight*100)}),(0,i.initializeButtonHover)(),(0,r.initializePinterest)(),(0,t.default)(),(0,i.initializeButtons)(),(0,n.default)(),(0,e.default)(),(0,a.default)()};"loading"===document.readyState?window.addEventListener("DOMContentLoaded",s):s();
|
75 |
-
},{"./fn/add-missing-icons":"LvEJ","./fn/init-buttons":"CR0T","./fn/init-print":"jsG1","./fn/init-sidebar":"VRvp","./fn/pinterest":"b4YO","./fn/utils/debug":"ZFee","./fn/utils/get-settings":"tCTD","./fn/load-styles":"nDkI","./fn/init-grow-me":"YvVA"}]},{},["gSkV"], null)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/dist/front-end-free.1.20.0.js
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c<t.length;c++)try{f(t[c])}catch(e){i||(i=e)}if(t.length){var l=f(t[t.length-1]);"object"==typeof exports&&"undefined"!=typeof module?module.exports=l:"function"==typeof define&&define.amd?define(function(){return l}):n&&(this[n]=l)}if(parcelRequire=f,i)throw i;return f}({"Mzb7":[function(require,module,exports) {
|
2 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;const e=e=>{if(!e)return!1;const t=document.createElementNS("http://www.w3.org/2000/svg","svg");return[{name:"version",value:"1.1"},{name:"xmlns",value:"http://www.w3.org/2000/svg"},{name:"viewBox",value:`0 0 ${e.width} ${e.height}`},{name:"height",value:e.referenceHeight?e.referenceHeight:e.height},{name:"width",value:e.referenceHeight?"100%":e.width},{name:"class",value:e.class?e.class:""},...(e=>e.fill?[{name:"fill",value:e.fill}]:[])(e),...(e=>e.y?[{name:"y",value:e.y}]:[])(e),...(e=>e.x?[{name:"x",value:e.x}]:[])(e)].forEach(({name:e,value:a})=>t.setAttribute(e,a)),e.paths.forEach(e=>{const a=document.createElementNS("http://www.w3.org/2000/svg","path");a.setAttribute("d",e),t.appendChild(a)}),t};var t=e;exports.default=t;
|
3 |
+
},{}],"ZFee":[function(require,module,exports) {
|
4 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.isDebug=exports.debugTimeLog=exports.debugTimeEnd=exports.debugTime=exports.debugTable=exports.debugGroupEnd=exports.debugGroupCollapsed=exports.debugGroup=exports.debugError=exports.debugWarn=exports.debugInfo=exports.debugLog=void 0;const e=e=>(...r)=>{o()&&console[e](...r)},o=()=>window.MV_GROW_DEBUG||new URLSearchParams(window.location.search).has("MV_GROW_DEBUG");exports.isDebug=o;const r=e("log");exports.debugLog=r;const s=e("info");exports.debugInfo=s;const t=e("warn");exports.debugWarn=t;const p=e("error");exports.debugError=p;const d=e("group");exports.debugGroup=d;const u=e("groupCollapsed");exports.debugGroupCollapsed=u;const g=e("groupEnd");exports.debugGroupEnd=g;const n=e("table");exports.debugTable=n;const b=e("time");exports.debugTime=b;const x=e("timeEnd");exports.debugTimeEnd=x;const c=e("timeLog");exports.debugTimeLog=c;
|
5 |
+
},{}],"LvEJ":[function(require,module,exports) {
|
6 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=o(require("./utils/create-svg-icon")),t=require("./utils/debug");function o(e){return e&&e.__esModule?e:{default:e}}const a=()=>{[].slice.call(document.getElementsByClassName("dpsp-network-btn")).forEach(e=>{if(e.getElementsByTagName("svg").length>0)return!0;const t=e.classList[1].split("-")[1],o=Boolean(window.mvGrowData.buttonSVG[`${t}_override`]);n(o?`${t}_override`:t,e.getElementsByClassName("dpsp-network-icon-inner")[0])}),[].slice.call(document.getElementsByClassName("dpsp-icon-total-share")).forEach(e=>{if(e.getElementsByTagName("svg").length>0)return!0;n("share",e)})},n=(o,a)=>{const n=window.mvGrowData.buttonSVG[o],r=(0,e.default)(n);try{a.appendChild(r)}catch(s){(0,t.debugGroup)(`MV Grow: Icon Loading Failed for ${o}`),(0,t.debugLog)(s),window.mvGrowData&&window.mvGrowData.buttonSVG?n?r||(0,t.debugLog)(`Malformed SVG for ${o}`):(0,t.debugLog)(`Missing Icon Data for ${o}`):(0,t.debugLog)("All Icon Data Missing"),(0,t.debugGroupEnd)()}};var r=a;exports.default=r;
|
7 |
+
},{"./utils/create-svg-icon":"Mzb7","./utils/debug":"ZFee"}],"qbcG":[function(require,module,exports) {
|
8 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var t=require("./utils/debug");const e={width:700,height:300,toolbar:!1,location:!1,status:!1,menubar:!1,scrollbars:!1,resizable:!0,top:200},r={width:800,height:575},s={width:720,height:520,scrollbars:!0},i=r=>{r.blur();const s=Object.assign({},e,a(r.classList));return(0,t.debugTable)(s),window.open(r.href||r.getAttribute("data-href"),"targetWindow",n(s))},n=t=>{let e=Object.keys(t).reduce(function(e,r){return`${e}${r}=${o(t[r])},`},"");return t.hasOwnProperty("left")||(e=`${e}left=${(window.innerWidth-t.width)/2}`),e},o=t=>"boolean"!=typeof t?t:t?"yes":"no",a=t=>t.contains("dpsp-buffer")?r:t.contains("dpsp-pinterest")||t.contains("dpsp-pin-it-button")?s:{};var d=i;exports.default=d;
|
9 |
+
},{"./utils/debug":"ZFee"}],"CR0T":[function(require,module,exports) {
|
10 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.initializeButtonHover=s,exports.initializeButtons=r;var t=e(require("./open-popup"));function e(t){return t&&t.__esModule?t:{default:t}}function s(){const t=document.querySelectorAll(".dpsp-networks-btns-wrapper li .dpsp-network-btn");Array.prototype.forEach.call(t,t=>{t.addEventListener("mouseenter",({target:t})=>{t.parentNode.classList.add("dpsp-hover")}),t.addEventListener("mouseleave",({target:t})=>{t.parentNode.classList.remove("dpsp-hover")})})}function r(){const e=document.querySelectorAll(".dpsp-networks-btns-share .dpsp-network-btn, .dpsp-click-to-tweet, .dpsp-pin-it-button");Array.prototype.forEach.call(e,e=>{e.addEventListener("click",s=>{e.classList.contains("dpsp-whatsapp")||e.classList.contains("dpsp-email")||(s.preventDefault(),/#$/.test(e.href)||/#$/.test(e.getAttribute("data-href"))?s.stopPropagation():(0,t.default)(e))})})}
|
11 |
+
},{"./open-popup":"qbcG"}],"jsG1":[function(require,module,exports) {
|
12 |
+
"use strict";function e(){const e=document.querySelectorAll(".dpsp-network-btn.dpsp-print");Array.prototype.forEach.call(e,e=>{e.addEventListener("click",()=>{window.print()})})}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var t=e;exports.default=t;
|
13 |
+
},{}],"fkUf":[function(require,module,exports) {
|
14 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=()=>window.mvGrowData&&window.mvGrowData.shouldRun;exports.default=e;
|
15 |
+
},{}],"i355":[function(require,module,exports) {
|
16 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;const e=({target:e,callback:t,options:r})=>{const o=new IntersectionObserver(t,r);return o.observe(e),o};var t=e;exports.default=t;
|
17 |
+
},{}],"tCTD":[function(require,module,exports) {
|
18 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;const t=(t="mv-grow-data")=>window.mvGrowData&&window.mvGrowData.init?window.mvGrowData:(document.getElementById(t)&&document.getElementById(t).dataset.settings&&(window.mvGrowData=JSON.parse(document.getElementById(t).dataset.settings),window.mvGrowData.init=!0),{init:!0});var e=t;exports.default=e;
|
19 |
+
},{}],"VRvp":[function(require,module,exports) {
|
20 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=s(require("./utils/should-run")),t=s(require("./utils/observe-intersection")),o=s(require("./utils/get-settings"));function s(e){return e&&e.__esModule?e:{default:e}}function r(){const s=document.getElementById("dpsp-floating-sidebar");if(!s||!(0,e.default)())return;const r=(0,o.default)(),n=Number(s.getAttribute("data-trigger-scroll"));let d=0;if(n?window.addEventListener("scroll",()=>{(d=Number(window.scrollY/document.body.clientHeight*100))>n?s.classList.add("opened"):s.classList.remove("opened")}):s.classList.add("opened"),r.floatingSidebar&&r.floatingSidebar.stopSelector){const e=document.querySelector(r.floatingSidebar.stopSelector);e&&(0,t.default)({target:e,callback:e=>{const t=e[0].intersectionRect,o=s.getBoundingClientRect();t.top-50<=o.bottom&&e[0].isIntersecting?s.classList.add("stop-hidden"):s.classList.remove("stop-hidden")},options:{threshold:i()}})}}function i(){let e=[];for(let t=1;t<=20;t++){let o=t/20;e.push(o)}return e.push(0),e}var n=r;exports.default=n;
|
21 |
+
},{"./utils/should-run":"fkUf","./utils/observe-intersection":"i355","./utils/get-settings":"tCTD"}],"X18c":[function(require,module,exports) {
|
22 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.manageNoPinSingle=void 0;const e=({})=>e=>!e.classList.contains("dpsp-post-pinterest-image-hidden-inner")&&(e.setAttribute("data-pin-nopin","true"),!0),t=({content:e})=>t=>!e.contains(t)&&(t.setAttribute("data-pin-nopin","true"),!0),n={post_custom_images:e,post_images:t,all_images:()=>()=>!0},s=({pinnableImages:e,content:t})=>s=>(Object.keys(n).includes(e)||(e="all_images"),n[e]({content:t})(s));exports.manageNoPinSingle=s;
|
23 |
+
},{}],"DKSj":[function(require,module,exports) {
|
24 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;const e=()=>{if(window.mvGrowData&&window.mvGrowData.general&&window.mvGrowData.general.contentSelector)return document.querySelector(window.mvGrowData.general.contentSelector);if(window.mvGrowData&&window.mvGrowData.general&&window.mvGrowData.general.isTrellis&&document.getElementById("content")&&document.getElementById("content").getElementsByClassName("article"))return document.getElementById("content").getElementsByClassName("article")[0];const e=document.getElementById("theme-content-section");if(e)return e;const t=document.getElementById("dpsp-post-content-markup");return t&&t.parentNode?t.parentNode:document.body};var t=e;exports.default=t;
|
25 |
+
},{}],"jp0L":[function(require,module,exports) {
|
26 |
+
"use strict";var e=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getSettings=void 0;var t=e(require("../utils/get-content-wrapper")),i={minimumImageHeight:200,minimumImageWidth:200,buttonPosition:"top_left",buttonShareBehavior:"post_image",hoverButtonShareBehavior:"hover_image",showImageOverlay:!0,showButtonLabel:!0,buttonLabelText:"Save",buttonShape:"rectangular",pinImageURL:"",pinnableImages:"all_images",pinDescriptionSource:"image_alt_tag",pinDescription:"",pinTitle:"",postTypeDisplay:["post"],postImageHidden:!1,postImageHiddenMultiple:!1,lazyLoadCompatibility:!1,disableIframes:!1,imagePinIt:!1,hasContent:!1,shareURL:"",ignoreSelectors:[],bypassClasses:[],hoverButtonIgnoreClasses:[]},a=function(){return Object.assign({},i,mvGrowData.pinterest,{content:(0,t.default)()})};exports.getSettings=a;
|
27 |
+
},{"../utils/get-content-wrapper":"DKSj"}],"sWuK":[function(require,module,exports) {
|
28 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addButtonSingle=void 0;var t='<svg xmlns="http://www.w3.org/2000/svg" width="23" height="32" viewBox="0 0 23 32"><path d="M0 10.656q0-1.92 0.672-3.616t1.856-2.976 2.72-2.208 3.296-1.408 3.616-0.448q2.816 0 5.248 1.184t3.936 3.456 1.504 5.12q0 1.728-0.32 3.36t-1.088 3.168-1.792 2.656-2.56 1.856-3.392 0.672q-1.216 0-2.4-0.576t-1.728-1.568q-0.16 0.704-0.48 2.016t-0.448 1.696-0.352 1.28-0.48 1.248-0.544 1.12-0.832 1.408-1.12 1.536l-0.224 0.096-0.16-0.192q-0.288-2.816-0.288-3.36 0-1.632 0.384-3.68t1.184-5.152 0.928-3.616q-0.576-1.152-0.576-3.008 0-1.504 0.928-2.784t2.368-1.312q1.088 0 1.696 0.736t0.608 1.824q0 1.184-0.768 3.392t-0.8 3.36q0 1.12 0.8 1.856t1.952 0.736q0.992 0 1.824-0.448t1.408-1.216 0.992-1.696 0.672-1.952 0.352-1.984 0.128-1.792q0-3.072-1.952-4.8t-5.12-1.728q-3.552 0-5.952 2.304t-2.4 5.856q0 0.8 0.224 1.536t0.48 1.152 0.48 0.832 0.224 0.544q0 0.48-0.256 1.28t-0.672 0.8q-0.032 0-0.288-0.032-0.928-0.288-1.632-0.992t-1.088-1.696-0.576-1.92-0.192-1.92z"></path></svg>',e=function(e){return function(i){if(!n(e)(i))return!1;var a=e.buttonPosition,s=e.hoverButtonShareBehavior,r=e.showImageOverlay,o=e.showButtonLabel,p=e.buttonLabelText,c=e.buttonShape,d=e.pinImageURL,l=e.pinDescription,u=e.shareURL,m=e.hoverButtonIgnoreClasses,b=i.getAttribute("data-pin-media")||i.getAttribute("data-media")||i.getAttribute("data-lazy-src")||i.getAttribute("data-src")||i.getAttribute("src"),g=i.getAttribute("data-pin-description")||"";if("post_image"===s&&(b=d||b,g=l||g),!b)return!1;var h=i.getAttribute("class"),v=i.getAttribute("style");h&&(h=h.split(" ").filter(function(t){return!m.includes(t)}).join(" "));var A=document.createElement("div");A.setAttribute("class","dpsp-pin-it-wrapper ".concat(h||"")),v&&A.setAttribute("style",v),h&&h.split(" ").forEach(function(t){t.trim()&&i.classList.remove(t)}),i.setAttribute("style",""),i.parentNode.insertBefore(A,i),A.appendChild(i);var L=i.getAttribute("data-pin-id"),q=L?"https://pinterest.com/pin/".concat(L,"/repin/x"):"https://pinterest.com/pin/create/bookmarklet/?media=".concat(encodeURIComponent(b),"&url=").concat(encodeURIComponent(u),"&is_video=false&description=").concat(encodeURIComponent(g)),f=document.createElement("a");if(f.classList.add("dpsp-pin-it-button"),f.classList.add("dpsp-pin-it-button-".concat(a)),f.classList.add("dpsp-pin-it-button-shape-".concat(c)),f.setAttribute("target","_blank"),f.rel="noopener",f.innerHTML='<span class="dpsp-network-icon">'+t+"</span>",o&&(f.classList.add("dpsp-pin-it-button-has-label"),f.title=p,f.setAttribute("aria-label",p)),f.href=q,r){var w=document.createElement("span");w.setAttribute("class","dpsp-pin-it-overlay"),A.appendChild(w)}return A.appendChild(f),!0}};exports.addButtonSingle=e;var n=function(t){return function(e){var n=t.imagePinIt,i=t.imageInContent,a=t.minimumImageWidth,s=t.minimumImageHeight;return"1"===n&&(!!i&&("IFRAME"!==e.nodeName&&(!e.parentNode.parentNode.classList.contains("rll-youtube-player")&&(!e.parentNode.classList.contains("dpsp-pin-it-wrapper")&&(!!e.parentNode.parentNode.classList.contains("blocks-gallery-item")||(!(e.clientWidth<=0||e.clientHeight<=0)||"lazy"===e.loading)&&(!e.getAttribute("data-pin-nopin")&&(e.classList.contains("dpsp_no_pin")||e.classList.contains("nopin")||e.parentNode.classList.contains("nopin")?(e.setAttribute("data-pin-nopin","true"),!1):!(e.clientWidth<Number(a)||e.clientHeight<Number(s))&&!e.classList.contains("emoji"))))))))}};
|
29 |
+
},{}],"a47m":[function(require,module,exports) {
|
30 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addDescriptionSingle=void 0;const t=({pinDescriptionSource:t,pinDescription:i,imageInContent:n})=>r=>{if(!e({imageInContent:n})(r))return!1;let o="";"image_alt_tag"===t&&r.getAttribute("alt")&&(o=r.getAttribute("alt")),"image_title"===t&&r.getAttribute("title")&&(o=r.getAttribute("title")),i&&"post_pinterest_description"===t&&(o=i),!o&&i&&(o=i);const p=document.querySelector('[property="og:title"]');return!o&&p&&(o=p.getAttribute("content")),o&&r.setAttribute("data-pin-description",o),!0};exports.addDescriptionSingle=t;const e=({imageInContent:t})=>e=>!!t&&!e.getAttribute("data-pin-description");
|
31 |
+
},{}],"QfZG":[function(require,module,exports) {
|
32 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addTitleSingle=void 0;const t=({pinTitle:t,imageInContent:n})=>i=>{if(!e({imageInContent:n})(i))return!1;let o="";!o&&t&&(o=t);const r=document.querySelector('[property="og:title"]');return!o&&r&&(o=r.getAttribute("content")),!!o&&(i.setAttribute("data-pin-title",o),!0)};exports.addTitleSingle=t;const e=({imageInContent:t})=>e=>!!t&&!e.getAttribute("data-pin-title");
|
33 |
+
},{}],"UfYi":[function(require,module,exports) {
|
34 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.removeBrowserExtensionButton=void 0;const e=({})=>e=>!e.parentNode.classList.contains("dpsp-pin-it-wrapper")&&(e.addEventListener("mouseenter",()=>{const e=Array.prototype.slice.call(document.querySelectorAll('[style*="z-index: 8675309"][style*="data:image/svg+xml"]')),t=Array.prototype.slice.call(document.querySelectorAll('span[class^="PIN_"][data-pin-log^="button_pinit_floating"]'));e.concat(t).forEach(e=>e.remove())}),!0);exports.removeBrowserExtensionButton=e;
|
35 |
+
},{}],"kZhX":[function(require,module,exports) {
|
36 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;const s=({minimumImageHeight:s,minimumImageWidth:e,disableIframes:t,bypassClasses:a,bypassDenyClasses:i},o)=>!i.some(s=>o.classList.contains(s))&&("true"===o.dataset.pinNopin||!o.parentNode.parentNode.classList.contains("blocks-gallery-item")&&(o.height<s||(o.width<e||("yes"===t&&"IFRAME"===o.nodeName||a.some(s=>o.classList.contains(s))))));var e=s;exports.default=e;
|
37 |
+
},{}],"xUEp":[function(require,module,exports) {
|
38 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("./add-button.ts"),t=require("./add-descriptions"),r=require("./add-titles"),i=require("./remove-extension"),n=o(require("./filter-image"));function o(e){return e&&e.__esModule?e:{default:e}}const d=o=>d=>(0,n.default)(o,d)?(d.setAttribute("data-pin-nopin","true"),!1):(o.imageInContent=o.content.contains(d),[t.addDescriptionSingle,r.addTitleSingle,e.addButtonSingle,i.removeBrowserExtensionButton].forEach(e=>e(o)(d)),!0);var u=d;exports.default=u;
|
39 |
+
},{"./add-button.ts":"sWuK","./add-descriptions":"a47m","./add-titles":"QfZG","./remove-extension":"UfYi","./filter-image":"kZhX"}],"Bmo8":[function(require,module,exports) {
|
40 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;const e=()=>e=>{e.parentNode.classList.contains("dpsp-post-pinterest-image-hidden")&&(e.parentNode.style.cssText="position:absolute;height:0;width:0;"),e.removeAttribute("loading")};var t=e;exports.default=t;
|
41 |
+
},{}],"xtn3":[function(require,module,exports) {
|
42 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("./get-settings.ts");const t=(t=[])=>{const s=(0,e.getSettings)();[].slice.call(document.getElementsByTagName("img")).map(e=>{t.forEach(t=>t(s)(e))})};var s=t;exports.default=s;
|
43 |
+
},{"./get-settings.ts":"jp0L"}],"h63O":[function(require,module,exports) {
|
44 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.addShareURL=void 0;const e=({shareURL:e})=>t=>!t.getAttribute("data-pin-url")&&(!!e&&(t.setAttribute("data-pin-url",e),!0));exports.addShareURL=e;
|
45 |
+
},{}],"axgK":[function(require,module,exports) {
|
46 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var t=require("../utils/debug");const e=()=>{const e=document.createElement("script"),s=(0,t.isDebug)()?"https://cdn.mediavine.com/pinmarklet.js":"https://assets.pinterest.com/js/pinmarklet.js";e.setAttribute("type","text/javascript"),e.setAttribute("charset","UTF-8"),e.setAttribute("src",s),document.body.appendChild(e)};var s=e;exports.default=s;
|
47 |
+
},{"../utils/debug":"ZFee"}],"dCCy":[function(require,module,exports) {
|
48 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;const e=({target:e,callback:t})=>{const r=new MutationObserver(t);return r.observe(e,{childList:!0,subtree:!0}),r};var t=e;exports.default=t;
|
49 |
+
},{}],"AalF":[function(require,module,exports) {
|
50 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=a(require("../utils/observe-mutation")),t=require("../pinterest/manage-nopin"),r=require("../pinterest");function a(e){return e&&e.__esModule?e:{default:e}}const l=()=>{[].slice.call(document.getElementsByClassName("tl-widget-container")).forEach(a=>{(0,e.default)({target:a,callback:()=>{Array.prototype.forEach.call(document.querySelectorAll("img"),(0,t.manageNoPinSingle)((0,r.getPinterestSettings)()))}})})};var n=l;exports.default=n;
|
51 |
+
},{"../utils/observe-mutation":"dCCy","../pinterest/manage-nopin":"X18c","../pinterest":"b4YO"}],"dRtE":[function(require,module,exports) {
|
52 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;const e=({ignoreSelectors:e=[]})=>{e.forEach(e=>{[...document.querySelectorAll(`${e}, ${e} img`)].forEach(e=>"IMG"===e.tagName&&e.classList.add("mv-grow-bypass"))})};var t=e;exports.default=t;
|
53 |
+
},{}],"b4YO":[function(require,module,exports) {
|
54 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.initializePinterest=f,exports.initializeProPinterest=p,Object.defineProperty(exports,"getPinterestSettings",{enumerable:!0,get:function(){return t.getSettings}});var e=require("./manage-nopin"),t=require("./get-settings.ts"),r=c(require("./process-image")),i=c(require("./un-lazy-image")),n=c(require("./on-demand-data")),a=require("./add-share-url"),u=c(require("./load-grid")),o=c(require("../observations/thrive-leads")),s=c(require("../utils/get-content-wrapper")),d=c(require("../utils/should-run")),l=c(require("./ignore-images"));function c(e){return e&&e.__esModule?e:{default:e}}function f(){if(!(0,d.default)())return!1;[...document.querySelectorAll(".dpsp-networks-btns-share .dpsp-network-btn.dpsp-pinterest")].forEach(e=>{e.addEventListener("click",t=>{/#$/.test(e.href)||/#$/.test(e.getAttribute("data-href"))?(t.preventDefault(),(0,n.default)([i.default,a.addShareURL]),(0,u.default)()):t.preventDefault()}),e.addEventListener("keydown",t=>{"Space"!==t.code&&"Enter"!==t.code||e.click()})})}function p(){if(document.body.classList.contains("tve_editor_page"))return!1;if(!window.mvGrowData||!window.mvGrowData.pinterest)return!1;const i=(0,t.getSettings)();return!(!(0,d.default)()||"1"!==i.hasContent)&&([...document.querySelectorAll("img, iframe")].forEach((0,e.manageNoPinSingle)(i)),(0,l.default)(i),(0,o.default)(),Array.prototype.forEach.call((0,s.default)().querySelectorAll("img, iframe"),(0,r.default)(i)),!0)}
|
55 |
+
},{"./manage-nopin":"X18c","./get-settings.ts":"jp0L","./process-image":"xUEp","./un-lazy-image":"Bmo8","./on-demand-data":"xtn3","./add-share-url":"h63O","./load-grid":"axgK","../observations/thrive-leads":"AalF","../utils/get-content-wrapper":"DKSj","../utils/should-run":"fkUf","./ignore-images":"dRtE"}],"nDkI":[function(require,module,exports) {
|
56 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;const e=()=>{if(document.querySelector(".dpsp-top-shared-post")||document.querySelector(".dpsp-click-to-tweet")||document.querySelector(".dpsp-network-btn")){const e=document.querySelector(".mv-grow-style");e&&(e.rel="stylesheet",e.type="text/css")}};var t=e;exports.default=t;
|
57 |
+
},{}],"SYuf":[function(require,module,exports) {
|
58 |
+
"use strict";function t(t,e){if(t instanceof HTMLElement&&"number"==typeof e&&null===t.querySelector(".dpsp-network-count")){var o=document.createElement("span");o.classList.add("dpsp-network-count"),o.appendChild(document.createTextNode(e.toString())),t.classList.add("dpsp-has-count"),t.appendChild(o)}}function e(t){if("object"!=typeof window.mvGrowData||"object"!=typeof window.mvGrowData.general)return null;var e=window.mvGrowData.general||!1,o={};"object"==typeof e&&"object"==typeof e.show_count&&(o=e.show_count);var n=[];for(var r in o)o.hasOwnProperty(r)&&o[r]&&("string"==typeof t&&t.length>0?n.push(".dpsp-networks-btns-".concat(r,".dpsp-networks-btns-share ").concat(t)):n.push(".dpsp-networks-btns-".concat(r,".dpsp-networks-btns-share")));return n.length<1?null:document.querySelectorAll(n.join(", "))}Object.defineProperty(exports,"__esModule",{value:!0}),exports.queryButtonContainersWithCounts=exports.appendBookmarkCountToButton=void 0,exports.appendBookmarkCountToButton=t,exports.queryButtonContainersWithCounts=e;
|
59 |
+
},{}],"YvVA":[function(require,module,exports) {
|
60 |
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=n(require("./utils/should-run")),o=n(require("./utils/create-svg-icon")),t=require("./button-utils.ts");function n(e){return e&&e.__esModule?e:{default:e}}function r(){if(!(0,e.default)())return!1;window.growMe?window.growMe(s):(window.growMe=function(e){window.growMe._.push(e)},window.growMe._=[s])}const s=()=>{const e=[...document.querySelectorAll(".dpsp-networks-btns-share .dpsp-network-list-item.dpsp-network-list-item-grow")];e.forEach(o=>{const t=o.querySelector(".dpsp-network-label"),n=o.querySelector(".dpsp-network-btn");let r=window.growMe.getIsBookmarked();d(n),r&&(t.innerText="Saved!"),window.growMe.on("isBookmarkedChanged",e=>{(r=e.isBookmarked)&&(t&&(t.innerText="Saved!"),n.classList.add("dpsp-grow-saved"))}),o.classList.add("dpsp-grow-load-in"),setTimeout(()=>{o.classList.remove("dpsp-grow-load-in"),o.classList.add("dpsp-grow-loaded")},900),n.addEventListener("click",o=>{o.preventDefault(),window.growMe.addBookmark({source:"grow_social_pro",tooltipReferenceElement:n}).then(function(o){i(e)}).catch(function(o){i(e)})}),n.addEventListener("keydown",e=>{"Space"!==e.code&&"Enter"!==e.code||n.click()})}),c()},d=e=>{const t=(0,o.default)({paths:["M9.19481 0L3.14304 6.31111L0.80576 3.8777L0 4.71887L3.14304 8L10 0.841163L9.19481 0Z"],height:8,width:10,class:"dpsp-grow-check-icon",referenceHeight:"5",y:3}),n=e.querySelector(".dpsp-network-icon-inner > svg");n&&n.appendChild(t.cloneNode(!0))},i=e=>{e.forEach(e=>{const o=e.querySelector(".dpsp-network-label");o&&(o.innerText="Saved!"),e.querySelector(".dpsp-network-btn").classList.add("dpsp-grow-saved"),e.querySelector(".dpsp-network-icon").classList.remove("dpsp-network-icon-outlined")})},c=()=>{const e=(0,t.queryButtonContainersWithCounts)(".dpsp-network-list-item.dpsp-network-list-item-grow");if(e instanceof NodeList&&!(e.length<1)&&"function"==typeof window.growMe&&"function"==typeof window.growMe.getBookmarkCount){const o=window.growMe.getBookmarkCount();o instanceof Promise&&o.then(o=>{e.forEach(e=>{if(!(e instanceof HTMLElement))return;const n=e.querySelector(".dpsp-network-btn");n instanceof HTMLElement&&(0,t.appendBookmarkCountToButton)(n,o)})})}};var a=r;exports.default=a;
|
61 |
+
},{"./utils/should-run":"fkUf","./utils/create-svg-icon":"Mzb7","./button-utils.ts":"SYuf"}],"gSkV":[function(require,module,exports) {
|
62 |
+
"use strict";var e=l(require("./fn/add-missing-icons")),i=require("./fn/init-buttons"),t=l(require("./fn/init-print")),n=l(require("./fn/init-sidebar")),r=require("./fn/pinterest"),u=require("./fn/utils/debug"),d=l(require("./fn/utils/get-settings")),o=l(require("./fn/load-styles")),a=l(require("./fn/init-grow-me"));function l(e){return e&&e.__esModule?e:{default:e}}const s=()=>{(0,d.default)(),(0,u.debugLog)(window.mvGrowData),(0,o.default)();let l=0;window.addEventListener("scroll",()=>{l=Number(window.scrollY/document.body.clientHeight*100)}),(0,i.initializeButtonHover)(),(0,r.initializePinterest)(),(0,t.default)(),(0,i.initializeButtons)(),(0,n.default)(),(0,a.default)(),(0,e.default)()};"loading"===document.readyState?window.addEventListener("DOMContentLoaded",s):s();
|
63 |
+
},{"./fn/add-missing-icons":"LvEJ","./fn/init-buttons":"CR0T","./fn/init-print":"jsG1","./fn/init-sidebar":"VRvp","./fn/pinterest":"b4YO","./fn/utils/debug":"ZFee","./fn/utils/get-settings":"tCTD","./fn/load-styles":"nDkI","./fn/init-grow-me":"YvVA"}]},{},["gSkV"], null)
|
assets/dist/{grow-logo-sq-navy.1.19.2.png → grow-logo-sq-navy.1.20.0.png}
RENAMED
File without changes
|
assets/dist/intercom.1.19.2.js
DELETED
@@ -1,11 +0,0 @@
|
|
1 |
-
parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c<t.length;c++)try{f(t[c])}catch(e){i||(i=e)}if(t.length){var l=f(t[t.length-1]);"object"==typeof exports&&"undefined"!=typeof module?module.exports=l:"function"==typeof define&&define.amd?define(function(){return l}):n&&(this[n]=l)}if(parcelRequire=f,i)throw i;return f}({"x3DH":[function(require,module,exports) {
|
2 |
-
function e(e,o,r){return o in e?Object.defineProperty(e,o,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[o]=r,e}module.exports=e,module.exports.default=module.exports,module.exports.__esModule=!0;
|
3 |
-
},{}],"Ittk":[function(require,module,exports) {
|
4 |
-
function e(e,o,t,n,r,u,i){try{var d=e[u](i),l=d.value}catch(s){return void t(s)}d.done?o(l):Promise.resolve(l).then(n,r)}function o(o){return function(){var t=this,n=arguments;return new Promise(function(r,u){var i=o.apply(t,n);function d(o){e(i,r,u,d,l,"next",o)}function l(o){e(i,r,u,d,l,"throw",o)}d(void 0)})}}module.exports=o,module.exports.default=module.exports,module.exports.__esModule=!0;
|
5 |
-
},{}],"VuXv":[function(require,module,exports) {
|
6 |
-
var t=function(t){"use strict";var r,e=Object.prototype,n=e.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function u(t,r,e,n){var o=r&&r.prototype instanceof v?r:v,i=Object.create(o.prototype),a=new k(n||[]);return i._invoke=function(t,r,e){var n=f;return function(o,i){if(n===l)throw new Error("Generator is already running");if(n===p){if("throw"===o)throw i;return N()}for(e.method=o,e.arg=i;;){var a=e.delegate;if(a){var c=_(a,e);if(c){if(c===y)continue;return c}}if("next"===e.method)e.sent=e._sent=e.arg;else if("throw"===e.method){if(n===f)throw n=p,e.arg;e.dispatchException(e.arg)}else"return"===e.method&&e.abrupt("return",e.arg);n=l;var u=h(t,r,e);if("normal"===u.type){if(n=e.done?p:s,u.arg===y)continue;return{value:u.arg,done:e.done}}"throw"===u.type&&(n=p,e.method="throw",e.arg=u.arg)}}}(t,e,a),i}function h(t,r,e){try{return{type:"normal",arg:t.call(r,e)}}catch(n){return{type:"throw",arg:n}}}t.wrap=u;var f="suspendedStart",s="suspendedYield",l="executing",p="completed",y={};function v(){}function d(){}function g(){}var m={};m[i]=function(){return this};var w=Object.getPrototypeOf,L=w&&w(w(G([])));L&&L!==e&&n.call(L,i)&&(m=L);var x=g.prototype=v.prototype=Object.create(m);function E(t){["next","throw","return"].forEach(function(r){t[r]=function(t){return this._invoke(r,t)}})}function b(t,r){var e;this._invoke=function(o,i){function a(){return new r(function(e,a){!function e(o,i,a,c){var u=h(t[o],t,i);if("throw"!==u.type){var f=u.arg,s=f.value;return s&&"object"==typeof s&&n.call(s,"__await")?r.resolve(s.__await).then(function(t){e("next",t,a,c)},function(t){e("throw",t,a,c)}):r.resolve(s).then(function(t){f.value=t,a(f)},function(t){return e("throw",t,a,c)})}c(u.arg)}(o,i,e,a)})}return e=e?e.then(a,a):a()}}function _(t,e){var n=t.iterator[e.method];if(n===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=r,_(t,e),"throw"===e.method))return y;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return y}var o=h(n,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,y;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=r),e.delegate=null,y):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,y)}function j(t){var r={tryLoc:t[0]};1 in t&&(r.catchLoc=t[1]),2 in t&&(r.finallyLoc=t[2],r.afterLoc=t[3]),this.tryEntries.push(r)}function O(t){var r=t.completion||{};r.type="normal",delete r.arg,t.completion=r}function k(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(j,this),this.reset(!0)}function G(t){if(t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,a=function e(){for(;++o<t.length;)if(n.call(t,o))return e.value=t[o],e.done=!1,e;return e.value=r,e.done=!0,e};return a.next=a}}return{next:N}}function N(){return{value:r,done:!0}}return d.prototype=x.constructor=g,g.constructor=d,g[c]=d.displayName="GeneratorFunction",t.isGeneratorFunction=function(t){var r="function"==typeof t&&t.constructor;return!!r&&(r===d||"GeneratorFunction"===(r.displayName||r.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,g):(t.__proto__=g,c in t||(t[c]="GeneratorFunction")),t.prototype=Object.create(x),t},t.awrap=function(t){return{__await:t}},E(b.prototype),b.prototype[a]=function(){return this},t.AsyncIterator=b,t.async=function(r,e,n,o,i){void 0===i&&(i=Promise);var a=new b(u(r,e,n,o),i);return t.isGeneratorFunction(e)?a:a.next().then(function(t){return t.done?t.value:a.next()})},E(x),x[c]="Generator",x[i]=function(){return this},x.toString=function(){return"[object Generator]"},t.keys=function(t){var r=[];for(var e in t)r.push(e);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=G,k.prototype={constructor:k,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=r,this.done=!1,this.delegate=null,this.method="next",this.arg=r,this.tryEntries.forEach(O),!t)for(var e in this)"t"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=r)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function o(n,o){return c.type="throw",c.arg=t,e.next=n,o&&(e.method="next",e.arg=r),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),h=n.call(a,"finallyLoc");if(u&&h){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!h)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(t,r){for(var e=this.tryEntries.length-1;e>=0;--e){var o=this.tryEntries[e];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=r&&r<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=r,i?(this.method="next",this.next=i.finallyLoc,y):this.complete(a)},complete:function(t,r){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&r&&(this.next=r),y},finish:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.finallyLoc===t)return this.complete(e.completion,e.afterLoc),O(e),y}},catch:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.tryLoc===t){var n=e.completion;if("throw"===n.type){var o=n.arg;O(e)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:G(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=r),y}},t}("object"==typeof module?module.exports:{});try{regeneratorRuntime=t}catch(r){Function("r","regeneratorRuntime = r")(t)}
|
7 |
-
},{}],"y2KZ":[function(require,module,exports) {
|
8 |
-
module.exports=require("regenerator-runtime");
|
9 |
-
},{"regenerator-runtime":"VuXv"}],"HVsC":[function(require,module,exports) {
|
10 |
-
"use strict";var e=n(require("@babel/runtime/helpers/defineProperty")),t=n(require("@babel/runtime/helpers/asyncToGenerator")),r=n(require("@babel/runtime/regenerator"));function n(e){return e&&e.__esModule?e:{default:e}}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function o(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?a(Object(n),!0).forEach(function(r){(0,e.default)(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var c="j6qtyr66",i=JSON.parse(localStorage.getItem("mvGrowIntercomCache")||"{}");function u(){return s.apply(this,arguments)}function s(){return(s=(0,t.default)(r.default.mark(function e(){var t,n,a,u,s,p,m,w,h,_,b,O,v,g;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!l()){e.next=2;break}return e.abrupt("return");case 2:if(t=window.mvgrow_intercom.options.license,n=window.mvgrow_intercom.user,a=n.current_user_email,u=n.current_firstname,s=n.current_lastname,a){e.next=6;break}return e.abrupt("return");case 6:if(h=i.email,_=i.expirationDate,!(h&&h===a&&new Date<=_)){e.next=14;break}p=h,m=i.name,w=i.user_hash,e.next=24;break;case 14:return e.next=16,f(a,t);case 16:b=e.sent,O=b.hash,v=b.customer_name,g=b.customer_email,p=g||a,m=v||"".concat(u," ").concat(s),w=O||null,localStorage.setItem("mvGrowIntercomCache",JSON.stringify({user_hash:O,name:v,email:g,expirationDate:d()}));case 24:return window.intercomSettings=o(o({},w?{user_hash:w}:{}),{},{app_id:c,name:m,email:p,is_using_mv_grow_pro:!0}),function(){var e=window,t=e.Intercom;if("function"==typeof t)t("reattach_activator"),t("update",e.intercomSettings);else{var r=document,n=function e(){e.c(arguments)};n.q=[],n.c=function(e){n.q.push(e)},e.Intercom=n;var a=function(){var e=r.createElement("script");e.type="text/javascript",e.async=!0,e.src="https://widget.intercom.io/widget/"+c;var t=r.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)};"complete"===document.readyState?a():e.attachEvent?e.attachEvent("onload",a):e.addEventListener("load",a,!1)}}(),window.MV_HAS_GROW_INTERCOM_BOOTED=!0,e.abrupt("return",window.Intercom("boot",o(o({},w?{user_hash:w}:{}),{},{app_id:c,email:p})));case 29:case"end":return e.stop()}},e)}))).apply(this,arguments)}function p(){if(window.Intercom)return window.MV_HAS_GROW_INTERCOM_BOOTED=!1,window.Intercom("shutdown")}function l(){return window.MV_HAS_GROW_INTERCOM_BOOTED}function f(e,t){return m.apply(this,arguments)}function m(){return(m=(0,t.default)(r.default.mark(function e(t,n){var a;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n){e.next=2;break}return e.abrupt("return",void 0);case 2:return e.prev=2,e.next=5,fetch("https://product-data-sync.herokuapp.com/validate_user",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:t,grow_license:n,plugin_slug:"mediavine-grow"})});case 5:if(401!==(a=e.sent).status&&403!==a.status){e.next=8;break}return e.abrupt("return",{hash:null});case 8:return e.abrupt("return",a.json());case 11:e.prev=11,e.t0=e.catch(2),console.error(e.t0);case 14:case"end":return e.stop()}},e,null,[[2,11]])}))).apply(this,arguments)}function d(){var e=new Date;return e.setDate(e.getDate()+7),e}i||localStorage.setItem("mvGrowIntercomCache",JSON.stringify({})),l()||u();
|
11 |
-
},{"@babel/runtime/helpers/defineProperty":"x3DH","@babel/runtime/helpers/asyncToGenerator":"Ittk","@babel/runtime/regenerator":"y2KZ"}]},{},["HVsC"], null)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/dist/intercom.1.20.0.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c<t.length;c++)try{f(t[c])}catch(e){i||(i=e)}if(t.length){var l=f(t[t.length-1]);"object"==typeof exports&&"undefined"!=typeof module?module.exports=l:"function"==typeof define&&define.amd?define(function(){return l}):n&&(this[n]=l)}if(parcelRequire=f,i)throw i;return f}({"HVsC":[function(require,module,exports) {
|
2 |
+
const t="j6qtyr66",e=JSON.parse(localStorage.getItem("mvGrowIntercomCache")||"{}");async function n(){if(a())return;const n=window.mvgrow_intercom.options.license,{current_user_email:o,current_firstname:c,current_lastname:s}=window.mvgrow_intercom.user;let m,u,l;if(!o)return;const w=null==e?void 0:e.email,_=null==e?void 0:e.expirationDate;if(w&&w===o&&new Date<=_)m=w,u=e.name,l=e.user_hash;else{const{hash:t,customer_name:e,customer_email:a}=await r(o,n);m=a||o,u=e||`${c} ${s}`,l=t||null,localStorage.setItem("mvGrowIntercomCache",JSON.stringify({user_hash:t,name:e,email:a,expirationDate:i()}))}window.intercomSettings={...l?{user_hash:l}:{},app_id:t,name:u,email:m,is_using_mv_grow_pro:!0},function(){var e=window,n=e.Intercom;if("function"==typeof n)n("reattach_activator"),n("update",e.intercomSettings);else{var o=document,a=function(){a.c(arguments)};a.q=[],a.c=function(t){a.q.push(t)},e.Intercom=a;var r=function(){var e=o.createElement("script");e.type="text/javascript",e.async=!0,e.src="https://widget.intercom.io/widget/"+t;var n=o.getElementsByTagName("script")[0];n.parentNode.insertBefore(e,n)};"complete"===document.readyState?r():e.attachEvent?e.attachEvent("onload",r):e.addEventListener("load",r,!1)}}(),window.MV_HAS_GROW_INTERCOM_BOOTED=!0;const d={...l?{user_hash:l}:{},app_id:t,email:m};return window.Intercom("boot",d)}function o(){if(window.Intercom)return window.MV_HAS_GROW_INTERCOM_BOOTED=!1,window.Intercom("shutdown")}function a(){return window.MV_HAS_GROW_INTERCOM_BOOTED}async function r(t,e){if(e)try{const o=await fetch("https://product-data-sync.herokuapp.com/validate_user",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:t,grow_license:e,plugin_slug:"mediavine-grow"})});return 401===o.status||403===o.status?{hash:null}:await o.json()}catch(n){console.error(n)}}function i(){let t=new Date;return t.setDate(t.getDate()+7),t}e||localStorage.setItem("mvGrowIntercomCache",JSON.stringify({})),a()||n();
|
3 |
+
},{}]},{},["HVsC"], null)
|
assets/dist/{jquery.ui.touch-punch.min.1.19.2.js → jquery.ui.touch-punch.min.1.20.0.js}
RENAMED
File without changes
|
assets/dist/{social-pug-upgrade.1.19.2.png → social-pug-upgrade.1.20.0.png}
RENAMED
File without changes
|
assets/dist/{socialpug.1.19.2.eot → socialpug.1.20.0.eot}
RENAMED
File without changes
|
assets/dist/{socialpug.1.19.2.svg → socialpug.1.20.0.svg}
RENAMED
File without changes
|
assets/dist/{socialpug.1.19.2.ttf → socialpug.1.20.0.ttf}
RENAMED
File without changes
|
assets/dist/{socialpug.1.19.2.woff → socialpug.1.20.0.woff}
RENAMED
File without changes
|
assets/dist/{style-dashboard-pro.1.19.2.css → style-dashboard-pro.1.20.0.css}
RENAMED
@@ -1 +1 @@
|
|
1 |
-
@charset "UTF-8";@import url("https://fonts.googleapis.com/css?family=Raleway:400,700,800");.dpsp-settings-sidebar{float:left;-moz-box-sizing:border-box;box-sizing:border-box;width:365px;margin-top:63px;padding-left:20px}.dpsp-settings-sidebar p{color:#767676}@media screen and (max-width:1225px){.dpsp-settings-sidebar{padding-left:0;border-left:0}}#dpsp-settings-sidebar-social-pug-pro img{box-sizing:border-box;max-width:100%;height:auto;padding:0 20px}#dpsp-settings-sidebar-social-pug-pro h3{font-weight:700;line-height:1.7em;text-align:center}#dpsp-settings-sidebar-social-pug-pro p{position:relative;margin-bottom:20px;padding-left:45px;color:#454545}#dpsp-settings-sidebar-social-pug-pro p .dpsp-dashicons{display:inline-block;position:absolute;top:-5px;left:0;width:30px;height:30px}#dpsp-settings-sidebar-social-pug-pro p .dpsp-dashicons:after{display:block;position:absolute;top:-1px;left:2px;width:30px;height:30px;border-radius:20px;background:#41a4a9;content:"";z-index:1}#dpsp-settings-sidebar-social-pug-pro p .dashicons{position:absolute;top:0;left:0;width:30px;height:30px;color:#fff;font-size:24px;line-height:30px;z-index:2}#dpsp-settings-sidebar-social-pug-pro .dpsp-button-primary{box-sizing:border-box;width:100%;padding:10px 0;text-align:center}.dpsp-page-wrapper.dpsp-page-extensions{max-width:1000px}.dpsp-page-extensions .dpsp-card{margin-top:0;margin-bottom:0}.dpsp-unavailable>a{display:block;line-height:0}.dpsp-unavailable h4{padding-bottom:0;border-top:1px solid #f1f1f1;border-bottom:0;text-align:left}.dpsp-unavailable p.dpsp-description{margin:0;padding:10px}.dpsp-unavailable .dpsp-tool-actions{overflow:hidden;padding:15px 10px;border-top:1px solid #f1f1f1;background:#f9f9f9;text-align:center}.dpsp-unavailable .dpsp-tool-actions .button{padding-right:25px;padding-left:25px}.dpsp-unavailable .dpsp-description{height:57px}@font-face{font-family:Social Pug;src:url(./socialpug.1.19.2.eot?gd6mr8);src:url(./socialpug.1.19.2.eot?#iefix) format("embedded-opentype"),url(./socialpug.1.19.2.woff) format("woff"),url(./socialpug.1.19.2.ttf) format("truetype"),url(./socialpug.1.19.2.svg#socialpug) format("svg");font-weight:400;font-style:normal}[class*=" dpsp-icon-"]:before,[class^=dpsp-icon-]:before{display:inline-block;font-family:Social Pug,sans-serif;font-weight:400;font-style:normal;font-variant:normal;line-height:1em;text-align:center;text-decoration:inherit;text-transform:none}.dpsp-transition{-webkit-transition:all .15s ease-in;-moz-transition:all .15s ease-in;-o-transition:all .15s ease-in;transition:all .15s ease-in}[class*=dpsp-col-]{float:left;-moz-box-sizing:border-box;box-sizing:border-box;padding:5px}.dpsp-row{margin:0 -5px}.dpsp-row.dpsp-m-padding{margin:0 -8px}.dpsp-row.dpsp-m-padding [class*=dpsp-col-]{padding:8px}.dpsp-row.dpsp-big-padding{margin:0 -15px}.dpsp-row.dpsp-big-padding [class*=dpsp-col-]{padding:15px}.dpsp-col-1-1{width:100%}.dpsp-col-1-2{width:50%}.dpsp-col-1-3{width:33.3333%}.dpsp-col-2-3{width:66.6666%}.dpsp-col-1-4{width:25%}.dpsp-col-3-4{width:75%}.dpsp-col-1-5{width:20%}.dpsp-col-2-5{width:40%}.dpsp-col-3-5{width:60%}.dpsp-col-4-5{width:80%}.dpsp-col-3-8{width:37.5%}.dpsp-row:after{display:block;clear:both;content:""}.dpsp-page-wrapper{position:relative;float:left;width:100%;max-width:675px}h1.dpsp-page-title{padding-right:0;padding-bottom:15px}.dpsp-section{margin-bottom:50px}.dpsp-section:after{display:block;clear:both;content:""}.dpsp-section-title{margin:2.75em 0 1.3em;padding-bottom:15px;border-bottom:1px solid #e5e5e5}.dpsp-background-color-network-facebook{background:#3a579a}.dpsp-background-color-network-twitter{background:#00abf0}.dpsp-background-color-network-pinterest{background:#c92228}.dpsp-background-color-network-linkedin{background:#0077b5}.dpsp-background-color-network-reddit{background:#ff5700}.dpsp-background-color-network-vkontakte{background:#4d75a3}.dpsp-background-color-network-whatsapp{background:#25d366}.dpsp-background-color-network-instagram{background:#bc2a8d}.dpsp-background-color-network-youtube{background:#b00}.dpsp-background-color-network-vimeo{background:#4bf}.dpsp-background-color-network-soundcloud{background:#f50}.dpsp-background-color-network-twitch{background:#6441a5}.dpsp-background-color-network-yummly{background:#e55a27}.dpsp-background-color-network-behance{background:#005cff}.dpsp-background-color-network-email{background:#27ae60}.dpsp-background-color-network-print{background:#bdc3c7}.dpsp-background-color-network-pocket{background:#ed4055}.dpsp-background-color-network-buffer{background:#29323b}.dpsp-background-color-network-tumblr{background:#35465c}.dpsp-background-color-network-xing{background:#00888d}.dpsp-background-color-network-github{background:#333}.dpsp-background-color-network-flipboard{background:#e12828}.dpsp-background-color-network-telegram{background:#08c}.dpsp-background-color-network-medium{background:#333}.dpsp-background-color-network-mix{background:#fd8235}.dpsp-background-color-network-grow{background:#41a4a9}body.dpsp-pagestyles{background:#f3f6f8}.dpsp-page-header{margin-left:-20px;color:#fff;background:#41a4a9;line-height:60px}.dpsp-page-header .dpsp-logo{padding:0 10px 0 20px}.dpsp-page-header .dpsp-logo-inner{font-family:Raleway,sans-serif;font-size:22px;font-weight:700}.dpsp-page-header .dpsp-logo-inner span{font-weight:300}.mv-grow-logo{display:inline-block;max-width:80px;padding-top:.25rem;vertical-align:top}.dpsp-page-header:after{display:block;clear:both;content:""}.dpsp-page-header nav{display:inline-block;margin-left:25px;line-height:62px}.dpsp-page-header nav a{display:inline-block;margin:0 5px;padding:8px 12px;border-radius:3px;color:#fff;background:hsla(0,0%,100%,.2);box-shadow:0 0 2px 2px rgba(52,152,219,.15);font-size:.9em;font-weight:700;line-height:1;text-decoration:none}.dpsp-page-header nav a .dashicons{width:auto;height:auto;margin-top:-2px;margin-right:5px;font-size:14px}.dpsp-page-header nav a:hover{background:hsla(0,0%,100%,.3)}.dpsp-card{box-sizing:border-box;max-width:675px;margin-top:1.5em;margin-bottom:2em;border-radius:3px;background:#fff;box-shadow:0 3px 10px -2px rgba(94,135,161,.3)}.dpsp-card-header{position:relative;padding:20px;border-bottom:1px solid rgba(200,215,225,.5);font-size:14px;font-weight:700}.dpsp-card-inner{padding:20px}.dpsp-card-inner:after{display:block;clear:both;content:""}.dpsp-card-footer{position:relative;padding:20px;border-top:1px solid rgba(200,215,225,.5);background:rgba(200,215,225,.15)}.dpsp-card-footer-actions{text-align:right}.dpsp-card-footer-actions:after{display:block;clear:both;content:""}.dpsp-card-footer-actions a{float:left;outline:0;color:#777;box-shadow:none;line-height:34px}.dpsp-card-footer-actions a:hover{color:#444}.dpsp-nav-tab-wrapper{margin:0}.dpsp-nav-tab-wrapper:after{display:block;clear:both;content:""}.dpsp-nav-tab{float:left;margin:0;border-bottom:2px solid transparent}.dpsp-nav-tab.dpsp-active{border-bottom-color:#2e4453}.dpsp-nav-tab.dpsp-active a{color:#2e4453}.dpsp-nav-tab a{display:block;box-sizing:border-box;width:auto;padding:16px 16px 14px;box-shadow:none;text-decoration:none}.dpsp-tab{display:none;margin-top:25px}.dpsp-tab.dpsp-active{display:block}.dpsp-button-primary{display:inline-block;overflow:hidden;box-sizing:border-box;margin:0;padding:.5em 2em;border:none;border-radius:3em;outline:0;color:#fff!important;background:#41a4a9;box-shadow:none!important;font-size:13px;font-weight:500;line-height:21px;vertical-align:middle;text-decoration:none;text-overflow:ellipsis;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.dpsp-button-primary:hover{color:#fff;background-color:#243c4a}.dpsp-button-primary:focus{color:#fff}.dpsp-button-primary.dpsp-active,.dpsp-button-primary:active{border-width:2px 1px 1px}.dpsp-button-primary.dpsp-hidden{display:none}.dpsp-button-secondary{display:inline-block;overflow:hidden;box-sizing:border-box;margin:0;padding:5px 11px;border:solid #c8d7e1;border-width:1px 1px 2px;border-radius:4px;outline:0;color:#2e4453;background:#fff;box-shadow:none!important;font-size:13px;font-weight:500;line-height:21px;vertical-align:middle;text-decoration:none;text-overflow:ellipsis;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.dpsp-button-secondary:hover{border-color:#a8bece;color:#2e4453}.dpsp-button-secondary:focus{color:#2e4453}.dpsp-button-secondary.dpsp-active,.dpsp-button-secondary:active{border-width:2px 1px 1px}.dpsp-button-secondary.dpsp-hidden{display:none}.dpsp-button-secondary.disabled,.dpsp-button-secondary[disabled]{border-color:#e9eff3;color:#e9eff3;background:#fff;cursor:default}.dpsp-widget-section-title{display:block;margin-top:20px;margin-bottom:5px;font-weight:700}.dpsp-widget-label{display:inline-block;width:200px}.widget-content .dpsp-settings-field-checkbox{margin-right:12px}.dpsp-setting-field-button-alignment{display:none}.wrap div.dpsp-admin-notice{position:relative;margin-top:16px}.wrap div.dpsp-admin-notice h4{font-size:16px}.wrap div.dpsp-admin-notice p{font-size:14px}.wrap div.dpsp-admin-notice.dpsp-serial-missing{border-color:rgba(52,152,219,.75)}.wrap div.dpsp-admin-notice.dpsp-serial-missing .dpsp-get-license{margin-left:10px}.wrap div.dpsp-admin-notice.dpsp-admin-notice-twitter-counts{border-color:rgba(52,152,219,.75)}.wrap div.dpsp-admin-notice.dpsp-admin-notice-twitter-counts h4{font-size:1.05em}.wrap div.dpsp-admin-notice.dpsp-admin-notice-twitter-counts a{text-decoration:none}.wrap div.dpsp-admin-notice.dpsp-admin-notice-twitter-counts .dpsp-admin-notice-link{display:inline-block;margin-right:10px;margin-bottom:18px;padding:6px 8px;border-radius:2px;color:#3498db;background:#e9e9e9;font-weight:500}.wrap div.dpsp-admin-notice.dpsp-admin-notice-twitter-counts .dpsp-admin-notice-link span{display:inline-block;margin-right:10px;text-decoration:none}.wrap div.dpsp-admin-notice.dpsp-admin-notice-twitter-counts .dpsp-admin-notice-link:hover{color:#fff;background:rgba(52,152,219,.75)}.wrap div.dpsp-admin-notice-icon-animation .button-primary{display:inline-block;margin-bottom:1.33em}.wrap div.dpsp-admin-notice-icon-animation h4{margin-bottom:0}.wrap div.dpsp-admin-notice-icon-animation p{margin-bottom:.75em}.wrap div.dpsp-admin-notice.dpsp-admin-grow-notice{display:flex;flex-flow:row}@media screen and (max-width:500px){.wrap div.dpsp-admin-notice.dpsp-admin-grow-notice{flex-flow:column}}.wrap div.dpsp-admin-notice .notice-img-wrap{padding:1em;flex:0 0 150px}.wrap div.dpsp-admin-notice .notice-img-wrap img{float:left}.wrap div.dpsp-admin-notice .notice-text-wrap{flex:1 1 auto}.wrap div.dpsp-admin-notice .notice-subtext{font-size:.9em;font-style:italic}#dpsp-select-networks{position:absolute;top:50%;right:10px;margin-top:-17px}#dpsp-sortable-networks-empty{display:none;position:relative;color:#848484;text-align:center}#dpsp-sortable-networks-empty:after{display:block;position:absolute;top:-17px;right:80px;width:130px;height:70px;opacity:0;background:url(./dpsp-selectable-empty.1.19.2.png) no-repeat 50%;background-size:100%;content:"";transition:all .15s ease-in}#dpsp-sortable-networks-empty.dpsp-active{display:block}#dpsp-sortable-networks-empty.dpsp-active:after{opacity:1}.dpsp-social-platforms-sort-list{margin-top:0;margin-bottom:0}.dpsp-social-platforms-sort-list li{position:relative;overflow:hidden;box-sizing:border-box;margin:0;padding-top:5px;padding-bottom:5px;border-bottom:1px solid #f1f1f1;background:#fff}.dpsp-social-platforms-sort-list li.dpsp-last{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.dpsp-social-platforms-sort-list li.ui-sortable-helper{box-shadow:0 3px 12px 3px rgba(0,0,0,.1)}.dpsp-social-platforms-sort-list.empty li{padding:20px;border:2px dashed #c1c1c1;background:none}.dpsp-social-platforms-sort-list li:after{display:block;clear:both;height:0;content:""}.dpsp-social-platforms-sort-list li:last-of-type{margin-bottom:0}.dpsp-social-platforms-sort-list li.dpsp-sort-placeholder{height:55px;border-radius:0;background:#f9f9f9;box-shadow:inset 0 3px 12px 3px rgba(0,0,0,.02)}.dpsp-social-platforms-sort-list li .dpsp-sort-handle{display:block;float:left;width:44px;height:44px;cursor:move}.dpsp-social-platforms-sort-list li .dpsp-sort-handle:before{position:absolute;top:23px;left:12px;width:20px;height:1px;background:#c1c1c1;box-shadow:0 .25em 0 0 #c1c1c1,0 .5em 0 0 #c1c1c1;content:""}.dpsp-social-platforms-sort-list li .dpsp-list-icon{display:flex;float:left;width:44px;height:44px;font-size:1.1em;line-height:44px;text-align:center;align-items:center;justify-content:center}.dpsp-social-platforms-sort-list li .dpsp-list-icon-social svg{width:auto;height:20px;fill:#fff}.dpsp-social-platforms-sort-list li .dpsp-list-input-wrapper{position:relative;float:left;padding:8px}.dpsp-social-platforms-sort-list li .dpsp-list-input-wrapper input{width:250px;margin:0;padding:0 7px;border:0;border-radius:3px;outline:0;color:#444;box-shadow:none;font-size:1em;font-weight:700;line-height:28px;transition:background-color .1s ease-in-out}.dpsp-social-platforms-sort-list li .dpsp-list-input-wrapper input:placeholder-shown{font-weight:400;font-style:italic}.dpsp-social-platforms-sort-list li .dpsp-list-input-wrapper:hover input,.dpsp-social-platforms-sort-list li .dpsp-list-input-wrapper input:focus{background:#f5f5f5}.dpsp-page-sticky-bar .dpsp-social-platforms-sort-list li .dpsp-list-input-wrapper input{background-color:initial!important;cursor:default}.dpsp-social-platforms-sort-list li .dpsp-list-actions{float:right;margin-right:6px}.dpsp-social-platforms-sort-list li .dpsp-list-actions a{display:inline-block;position:relative;margin:8px 2px 8px 0;padding:0 6px 0 3px;border-radius:3px;color:#747474;box-shadow:none;line-height:28px;vertical-align:middle;text-decoration:none;transition:background-color .1s ease-in-out,color .1s ease-in-out}.dpsp-social-platforms-sort-list li .dpsp-list-actions a .dashicons{position:relative;top:-1px;width:18px;height:18px;margin-right:2px;font-size:18px;line-height:18px;vertical-align:text-top}.dpsp-social-platforms-sort-list li .dpsp-list-actions a:hover{color:#353535;background:#f4f4f4}#dpsp-networks-selector-wrapper,.dpsp-page-sticky-bar .dpsp-social-platforms-sort-list li .dpsp-list-actions .dpsp-list-edit-label{display:none}#dpsp-networks-selector{margin:0;padding:20px}#dpsp-networks-selector li{position:relative;float:left;box-sizing:border-box;width:33.3333%;margin-bottom:1em;padding:0 10px}#dpsp-networks-selector:after{display:block;clear:both;height:0;content:""}#dpsp-networks-selector .dpsp-network-item{position:relative;box-sizing:border-box;padding-left:35px;cursor:pointer}#dpsp-networks-selector .dpsp-network-item-checkbox{position:absolute;top:0;left:0;width:26px;height:26px;border:2px solid #c8d7e1;border-radius:15px;color:#555;background:#fff;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1);font-size:16px;line-height:26px;text-align:center;vertical-align:middle}#dpsp-networks-selector .dpsp-network-item-checkbox svg{position:relative;max-width:1rem;opacity:0;transition:all .15s ease-in;fill:currentColor}#dpsp-networks-selector .dpsp-network-item:hover .dpsp-network-item-checkbox svg{opacity:.15}#dpsp-networks-selector .dpsp-network-item[data-checked=true] .dpsp-network-item-checkbox svg,#dpsp-networks-selector .dpsp-network-item[data-checked=true]:hover .dpsp-network-item-checkbox svg{opacity:1}#dpsp-networks-selector .dpsp-network-item-name-wrapper{height:30px;padding-left:10px;border-radius:3px;color:#fff;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1);line-height:30px;vertical-align:middle}#dpsp-networks-selector .dpsp-network-item-name-wrapper .dpsp-list-icon{display:inline-block;margin-right:12px;margin-left:5px}#dpsp-networks-selector .dpsp-network-item-name-wrapper .dpsp-list-icon svg{position:relative;width:auto;max-height:14px;vertical-align:text-top;fill:#fff}#dpsp-networks-selector .dpsp-network-item-name-wrapper h4{display:inline-block;margin:0}.dpsp-setting-field-wrapper{position:relative;left:auto;min-height:39px;margin-bottom:12px;transition:opacity .4s ease-in-out}.dpsp-setting-field-wrapper.disabled{position:absolute;left:-9999px;visibility:hidden;opacity:0}.dpsp-setting-field-wrapper.dpsp-last{margin-bottom:0}.dpsp-setting-field-label{display:inline-block;position:absolute;top:2px;left:0;box-sizing:border-box;width:235px;padding-right:15px;vertical-align:top}.dpsp-setting-field-wrapper.dpsp-has-field-label{padding-left:243px}.dpsp-setting-field-wrapper.dpsp-has-field-label .dpsp-setting-field-inner{position:relative;top:-18px;margin-left:243px}.dpsp-setting-field-wrapper input[type=text]{width:100%;margin:0;padding:10px 12px;border:1px solid #c8d7e1;border-radius:2px;box-shadow:none}.dpsp-setting-field-wrapper input[type=text]:disabled{background:#edf2f5}.dpsp-setting-field-wrapper input[type=text]:focus{border-color:#0087be;box-shadow:0 0 1px 0 #78dcfa}.dpsp-setting-field-wrapper button{vertical-align:middle!important}.dpsp-setting-field-button .spinner{position:absolute;right:auto;left:auto;float:none}.dpsp-setting-field-button .action-text{display:none;margin-left:2rem;color:#333}.dpsp-setting-field-button.dpsp-loading .action-text,.dpsp-setting-field-button.dpsp-loading .spinner{visibility:visible}.dpsp-setting-field-wrapper select{min-width:200px}.dpsp-setting-field-select :focus{outline:0!important}.dpsp-setting-field-select .select2-container{width:100%!important}.dpsp-setting-field-select .select2-selection{height:39px;border:1px solid #c8d7e1;border-radius:2px}.dpsp-setting-field-select .select2-selection .select2-selection__rendered{padding-left:10px;line-height:37px!important}.dpsp-setting-field-select .select2-selection .select2-selection__arrow{height:37px;padding-right:10px}.dpsp-select2 .select2-dropdown{border-color:#c8d7e1;border-radius:0}.dpsp-select2 .select2-dropdown li{margin:0;padding:0 10px;line-height:36px}.dpsp-select2 .select2-results__option[aria-selected=true]{background:#e8eaeb}.dpsp-select2 .select2-results__option--highlighted{background:#00aadc!important}.dpsp-select2 .select2-dropdown--below{top:32px;box-shadow:0 4px 3px 2px rgba(0,0,0,.08)}.dpsp-select2 .select2-dropdown--above{box-shadow:0 -4px 3px 2px rgba(0,0,0,.08)}.dpsp-setting-field-select .select2-container--open{box-shadow:0 0 3px 2px rgba(0,0,0,.08)}.dpsp-setting-field-wrapper .wp-picker-container .wp-color-result.button{height:32px;margin-bottom:0;border:solid #c8d7e1;border-width:1px 1px 2px;box-shadow:none;cursor:pointer}.dpsp-setting-field-wrapper .wp-picker-container .wp-color-result.button span{box-sizing:border-box;padding:5px 11px;background:#fff;font-size:13px;font-weight:500;line-height:19px;vertical-align:top;text-decoration:none;text-overflow:ellipsis}.dpsp-setting-field-wrapper .wp-picker-container .wp-picker-input-wrap .button{height:32px;border:solid #c8d7e1;border-width:1px 1px 2px;background:#fff;box-shadow:none;cursor:pointer}.dpsp-setting-field-wrapper .wp-picker-container input[type=text].wp-color-picker{width:65px;margin:0;padding:7px;font-family:monospace;font-size:12px;line-height:16px;vertical-align:top}.dpsp-setting-field-wrapper textarea{min-width:450px;min-height:100px;padding:5px 8px;border-radius:3px}.dpsp-page-wrapper .dpsp-setting-field-wrapper textarea{border:0;box-shadow:none}.postbox .dpsp-setting-field-wrapper textarea{min-height:80px}.dpsp-setting-field-wrapper input[type=checkbox],.dpsp-setting-field-wrapper input[type=radio]{display:none}.dpsp-setting-field-checkbox.dpsp-single .dpsp-setting-field-label{box-sizing:border-box;width:260px;padding-right:20px}.dpsp-setting-field-checkbox.dpsp-multiple .dpsp-settings-field-checkbox,.dpsp-setting-field-radio.dpsp-multiple .dpsp-settings-field-radio{display:inline-block;position:relative;margin-right:12px;padding-left:23px}.dpsp-setting-field-checkbox input[type=checkbox]+label span,.dpsp-setting-field-radio input[type=radio]+label span{display:block;position:absolute;box-sizing:initial!important;width:16px;height:16px;border:1px solid #e7e7e7;border-radius:3px;background:#fff;content:"";transition:background .1s ease-in-out,border-color .1s ease-in-out}.dpsp-setting-field-radio input[type=radio]+label span{border-radius:50%}.dpsp-setting-field-checkbox.dpsp-single input[type=checkbox]+label span{top:0;right:0}.dpsp-setting-field-checkbox.dpsp-multiple input[type=checkbox]+label span,.dpsp-setting-field-radio.dpsp-multiple input[type=radio]+label span{top:0;left:0}.dpsp-setting-field-checkbox input[type=checkbox]+label span:before{display:inline-block;width:16px;height:16px;margin:-5px 0 0 -3px;color:transparent;font:400 20px/1 dashicons;line-height:16px;vertical-align:middle;content:"";transition:color .1s ease-in-out}.dpsp-setting-field-radio input[type=radio]+label span:before{display:block;position:relative;top:5px;left:5px;width:6px;height:6px;border-radius:50%;content:""}.dpsp-setting-field-checkbox input[type=checkbox]:checked+label span{border-color:transparent;background:#41a4a9}.dpsp-setting-field-checkbox input[type=checkbox]:checked+label span:before{color:#fff}.dpsp-setting-field-radio input[type=radio]:checked+label span{border-color:transparent;background:#41a4a9}.dpsp-setting-field-radio input[type=radio]:checked+label span:before{background:#fff}.dpsp-setting-field-wrapper img{max-width:200px;height:auto;border-radius:2px}.dpsp-setting-field-tooltip-wrapper{display:inline-block;position:absolute;top:2px;left:217px;width:18px;height:18px;margin-left:5px}.dpsp-network-item .dpsp-setting-field-tooltip-wrapper{top:5px;right:0;left:auto}.dpsp-network-item .dpsp-setting-field-tooltip-wrapper a{color:#fff}.dpsp-network-item .dpsp-setting-field-tooltip-wrapper a:hover{opacity:.9;text-decoration:none}.dpsp-setting-field-tooltip-icon:before{display:inline-block;width:14px;height:14px;border-radius:9px;color:#fff;background:#34495e;font-size:10px;font-weight:700;line-height:14px;text-align:center;vertical-align:middle;content:"?";cursor:pointer;transition:all .15s ease-in}.dpsp-setting-field-tooltip-icon:hover:before{background:#34495e}.dpsp-setting-field-tooltip{position:absolute;top:28px;left:-25px;visibility:hidden;width:220px;padding:8px 12px;border-radius:4px;opacity:0;color:#fff;background:rgba(52,73,94,.975);z-index:10}.dpsp-setting-field-tooltip a{color:#3498db}.dpsp-setting-field-tooltip:before{display:block;position:absolute;top:-6px;left:27px;width:0;height:0;border-color:transparent transparent rgba(52,73,94,.975);border-style:solid;border-width:0 4.5px 6px;content:""}.dpsp-settings-button-style{float:left;-moz-box-sizing:border-box;box-sizing:border-box;width:12%;margin-right:1.5%;margin-bottom:10px;padding:12px;border:1px solid transparent;border-radius:5px;cursor:pointer}.dpsp-setting-field-wrapper .dpsp-switch{float:none;margin-left:0}.dpsp-setting-field-share-text input{width:350px}.dpsp-page-pop-up .dpsp-setting-field-title input{min-width:450px}.dpsp-setting-field-button-text-label,.dpsp-setting-field-desktop-position,.dpsp-setting-field-mobile-position,.dpsp-setting-field-tweet-counts-provider{display:none}.dpsp-setting-field-facebook-app-authorized{padding:9px;border-radius:3px;color:#27ae60;background:rgba(0,184,148,.3)}.dpsp-setting-field-facebook-app-authorized-expired{margin-bottom:10px;padding:9px;border-radius:3px;color:#c0392b;background:rgba(192,57,43,.3)}.dpsp-setting-field-facebook-app-id,.dpsp-setting-field-facebook-app-secret,.dpsp-setting-field-facebook-authorize-app{display:none}.dpsp-page-wrapper .dpsp-settings-button-style .dpsp-networks-btns-wrapper li{margin-bottom:6px}.dpsp-page-wrapper .dpsp-settings-button-style .dpsp-networks-btns-wrapper li:last-of-type{margin-bottom:0}.dpsp-page-sidebar .dpsp-settings-button-style .dpsp-networks-btns-wrapper .dpsp-network-btn{margin:0 auto}.dpsp-page-sidebar .dpsp-settings-button-style .dpsp-shape-rounded .dpsp-networks-btns-wrapper .dpsp-network-btn,.dpsp-page-sidebar .dpsp-settings-button-style .dpsp-shape-rounded .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon{border-radius:5px}.dpsp-page-sidebar .dpsp-settings-button-style :not(.dpsp-button-style-8) .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon{left:0}.dpsp-page-sidebar .dpsp-settings-button-style .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon svg{top:1px}.dpsp-page-content .dpsp-settings-button-style,.dpsp-page-pop-up .dpsp-settings-button-style{width:32.3333%;margin-right:1%}.dpsp-page-content .dpsp-section-button-style label:nth-of-type(4n),.dpsp-page-pop-up .dpsp-section-button-style label:nth-of-type(4n){margin-right:0}.dpsp-settings-button-style:hover{border-color:#e1e1e1}.dpsp-settings-button-style-input{display:none!important}.dpsp-settings-button-style-input:checked+label{border-color:rgba(52,152,219,.3);background:rgba(52,152,219,.075)}#section-click-to-tweet-preview,.dpsp-subsection-link-shortening{display:none}#section-click-to-tweet-preview>a{margin-top:0;margin-bottom:0}#dpsp-serial-key-status{display:none;position:relative;top:-1px;padding:4px 0;border-bottom-right-radius:3px;border-bottom-left-radius:3px;line-height:20px}#dpsp-serial-key-status span{vertical-align:middle}#dpsp-serial-key-status.dpsp-valid{color:#27ae60;background:rgba(0,184,148,.3)}#dpsp-serial-key-status .dashicons{margin-right:5px;margin-left:5px}#dpsp-serial-key-status .dashicons-yes{color:#27ae60}#dpsp-serial-key-status .dashicons-warning{color:#c0392b}#dpsp-bitly-key-status{position:relative;top:-1px;margin-top:-6px;margin-bottom:12px;padding:4px 0;border-bottom-right-radius:3px;border-bottom-left-radius:3px;line-height:20px;text-align:right}#dpsp-bitly-key-status span{vertical-align:middle}#dpsp-bitly-key-status.dpsp-valid{color:#27ae60;background:rgba(0,184,148,.3)}#dpsp-serial-key-status.dpsp-invalid{color:#c0392b;background:rgba(192,57,43,.3)}#dpsp-bitly-key-status .dashicons{margin-right:5px;margin-left:5px}#dpsp-bitly-key-status .dashicons-yes{color:#27ae60}#dpsp-bitly-key-status .dashicons-warning{color:#c0392b}#dpsp-card-settings-social-shares-recovery .dpsp-card-inner{border-bottom:1px solid rgba(200,215,225,.5)}#dpsp-card-settings-social-shares-recovery .dpsp-card-inner.dpsp-last{border-bottom:0}#dpsp-toolkit-welcome{margin-left:-20px;padding:5px 20px;background:#fff}.dpsp-page-toolkit:not(.dpsp-page-free){max-width:1000px}.dpsp-page-toolkit .dpsp-row{margin-bottom:2.5em}.dpsp-page-toolkit .dpsp-card{margin-top:0;margin-bottom:0}.dpsp-tool-wrapper{overflow:hidden;border-radius:3px;background:#fff}.dpsp-tool-wrapper img{max-width:100%;height:auto}.dpsp-tool-wrapper a{color:#777;text-decoration:none}.dpsp-tool-wrapper a:hover{color:rgba(52,152,219,.75)}.dpsp-tool-wrapper h4{margin-top:0;margin-bottom:0;padding:10px;font-size:15px;text-align:center}.dpsp-tool-wrapper .dpsp-tool-actions{position:relative;padding:15px}.dpsp-tool-wrapper .dpsp-tool-actions:after{display:block;clear:both;content:""}.dpsp-tool-wrapper .dpsp-tool-actions-overlay{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;background:hsla(0,0%,100%,.6);z-index:1}.dpsp-tool-wrapper .dpsp-tool-actions-overlay .spinner{visibility:visible;float:none;margin:15px 0 0 15px;opacity:1}.dpsp-tool-wrapper .dpsp-tool-actions.dpsp-active span{opacity:0}.dpsp-tool-wrapper .dpsp-tool-actions.dpsp-inactive span{opacity:.4}.dpsp-tool-wrapper .dpsp-tool-actions .dpsp-tool-settings{line-height:1;vertical-align:middle}.dpsp-tool-wrapper .dpsp-tool-actions .dpsp-tool-settings:focus{box-shadow:none}.dpsp-tool-wrapper .dpsp-tool-actions.dpsp-inactive .dpsp-tool-settings{display:none}.dpsp-tool-wrapper .dpsp-tool-actions .dpsp-tool-settings i{margin-right:3px}.dpsp-tool-wrapper .dpsp-switch span{margin-right:5px;font-size:.85em;text-transform:uppercase}.dpsp-tool-wrapper .dpsp-switch label{display:inline-block!important}.dpsp-switch{display:inline-block;position:relative;float:right;margin-left:20px}.dpsp-page-wrapper .cmn-toggle{position:absolute;visibility:hidden;margin-left:-9999px}.dpsp-page-wrapper .cmn-toggle+label{display:block;position:relative;outline:none;cursor:pointer;user-select:none}.dpsp-page-wrapper input.cmn-toggle-round+label{box-sizing:initial;width:36px;height:18px;padding:3px;border-radius:20px;background-color:#c9d6e0;transition:background .4s}.dpsp-page-wrapper input.cmn-toggle-round+label:after,.dpsp-page-wrapper input.cmn-toggle-round+label:before{display:block;position:absolute;top:2px;bottom:2px;left:2px;content:""}.dpsp-page-wrapper input.cmn-toggle-round+label:before{right:2px;border-radius:18px;transition:background .4s}.dpsp-page-wrapper input.cmn-toggle-round+label:after{width:20px;border-radius:100%;background-color:#fff;box-shadow:0 2px 5px rgba(0,0,0,.1);transition:margin .4s}.dpsp-page-wrapper input.cmn-toggle-round:checked+label{background-color:#41a4a9}.dpsp-page-wrapper input.cmn-toggle-round:checked+label:after{margin-left:18px}.dpsp-switch.small input.cmn-toggle-round+label{width:30px;height:15px}.dpsp-switch.small input.cmn-toggle-round+label:after{width:17px}.dpsp-switch.small input.cmn-toggle-round:checked+label:after{margin-left:15px}.dpsp-statistic-bars-wrapper{padding-top:10px}.dpsp-statistic-bars-wrapper:after{display:block;clear:both;width:0;content:""}.dpsp-statistic-bar-header{margin-bottom:10px;padding-bottom:5px;border-bottom:1px solid #f1f1f1;opacity:.6}.dpsp-statistic-bar-wrapper.dpsp-statistic-bar-header:hover{background:none}.dpsp-statistic-bar-wrapper{position:relative;height:30px;padding-right:110px;padding-left:110px;transition:opacity .2s ease-in-out}.dpsp-statistic-bar-wrapper:hover{background:#f7f7f7}.dpsp-statistic-bar-wrapper label{position:absolute;top:0;left:10px;width:109px;height:30px;font-size:12px;font-weight:700;line-height:30px}.dpsp-statistic-bar-wrapper .dpsp-network-share-count{position:absolute;top:0;right:0;width:110px;height:30px;font-size:12px;font-weight:700;line-height:30px}.dpsp-statistic-bar-wrapper .dpsp-network-share-count .dpsp-count{display:inline-block;width:55px;text-align:center}.dpsp-statistic-bar-wrapper .dpsp-network-share-count .dpsp-percentage{display:inline-block;width:40px;text-align:center}.dpsp-statistic-bar-wrapper .dpsp-network-share-count .dpsp-divider{width:1px;margin:0 2px;opacity:.5}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar{position:relative;top:10px;width:100%;height:10px;border-radius:5px;background:#e7e7e7}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar-inner{width:0;height:10px;border-radius:5px}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar-facebook .dpsp-statistic-bar-inner{background:#3a579a}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar-twitter .dpsp-statistic-bar-inner{background:#00abf0}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar-google-plus .dpsp-statistic-bar-inner{background:#df4a32}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar-pinterest .dpsp-statistic-bar-inner{background:#c92228}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar-linkedin .dpsp-statistic-bar-inner{background:#0077b5}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar-reddit .dpsp-statistic-bar-inner{background:#ff5700}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar-vkontakte .dpsp-statistic-bar-inner{background:#4d75a3}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar-buffer .dpsp-statistic-bar-inner{background:#29323b}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar-tumblr .dpsp-statistic-bar-inner{background:#35465c}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar-yummly .dpsp-statistic-bar-inner{background:#e55a27}.dpsp-statistic-bar-footer{margin:10px 0;border-top:1px solid #f1f1f1;border-bottom:1px solid #f1f1f1;opacity:.6}.dpsp-statistic-bar-wrapper.dpsp-statistic-bar-footer:hover{background:none}#dpsp-refresh-share-counts-wrapper:after{display:block;clear:both;width:0;content:""}#dpsp-refresh-share-counts{float:right}#dpsp_share_options span[class*=dpsp-icon-]{display:inline-block;width:24px;height:24px;margin-right:10px;border-radius:2px;color:#fff;line-height:24px;text-align:center}#dpsp_share_options .dpsp-icon-share{background:#34495e}#dpsp_share_options .dpsp-icon-twitter{background:#00abf0}#dpsp_share_options .dpsp-icon-pinterest{background:#c92228}#dpsp_share_options_content .dpsp-section{position:relative;margin:15px 0 25px;padding-left:220px}#dpsp_share_options_content label{display:block;margin-bottom:10px;font-weight:700}#dpsp_share_options_content textarea{width:100%;min-height:70px}#dpsp_share_options_content .dpsp-setting-field-image{position:absolute;top:0;left:0;width:100%;max-width:200px}#dpsp_share_options_content .dpsp-setting-field-image .dpsp-button-primary,#dpsp_share_options_content .dpsp-setting-field-image .dpsp-button-secondary{width:100%;text-align:center}#dpsp_share_options .dpsp-setting-field-tooltip-wrapper{position:relative;top:-2px;left:auto}.dpsp-textarea-characters-remaining-wrapper{float:right;height:24px;padding:0 10px;border-radius:2px;background:#f1f1f1;font-size:12px;line-height:24px}.dpsp-textarea-characters-remaining-wrapper.dpsp-excedeed{color:#fff;background:rgba(192,57,43,.75)}#dpsp-meta-box-section-multiple-pinterest-images{padding-left:0!important}#dpsp-meta-box-section-multiple-pinterest-images .dpsp-hidden-image-wrapper{position:relative;float:left;max-width:125px;margin-right:5px;margin-bottom:5px;line-height:0}#dpsp-meta-box-section-multiple-pinterest-images .dpsp-hidden-image-wrapper img{max-width:100%;height:auto;max-height:auto}#dpsp-meta-box-section-multiple-pinterest-images .dpsp-hidden-image-wrapper .dpsp-button-secondary{position:absolute;top:5px;right:5px;visibility:hidden;padding:1px 2px;opacity:0;transition:all .1s ease-in}#dpsp-meta-box-section-multiple-pinterest-images .dpsp-hidden-image-wrapper:hover .dpsp-button-secondary{visibility:visible;opacity:1}#dpsp-meta-box-section-multiple-pinterest-images .dpsp-hidden-image-add-new{float:left;box-sizing:border-box;width:125px;height:125px;border-radius:2px;text-align:center}#dpsp-meta-box-section-multiple-pinterest-images .dpsp-hidden-image-add-new .dashicons{display:inline-block;box-sizing:initial;margin-top:28px;margin-bottom:5px;padding:5px;border-radius:50px;background:#ebf0f4}#dpsp-meta-box-section-multiple-pinterest-images .dpsp-hidden-image-add-new .dashicons:before{position:relative;top:1px}#dpsp-meta-box-section-multiple-pinterest-images:after{display:block;clear:both;content:""}.mce-i-dpsp-icon-twitter{position:relative;top:-2px}.mce-i-dpsp-icon-twitter:before{color:#00abf0;font-family:Social Pug,sans-serif;font-size:20px;font-weight:400;font-style:normal;content:""}#dpsp_click_to_tweet_dialog #dpsp_tweet_length{position:absolute;top:105px;right:0;padding-right:25px;color:#a1a1a1}#dpsp_click_to_tweet_dialog #dpsp_tweet_length em,#dpsp_click_to_tweet_dialog #dpsp_tweet_length span{font-size:12px;font-weight:700}#dpsp_click_to_tweet_dialog #dpsp_tweet_length span{position:absolute;top:0;right:0}#dpsp_click_to_tweet_dialog #dpsp_tweet_hide_url-al,#dpsp_click_to_tweet_dialog #dpsp_tweet_hide_via-al{position:relative;top:-3px}table.wp-list-table .column-dpsp_shares{width:5.5em}#screen-options-wrap .dpsp-list-table-shares i,table.wp-list-table .dpsp-list-table-shares span{display:none}.dpsp-list-table-post-share-count{display:inline-block;margin-top:5px;padding:0 8px;border-radius:5px;color:#fff;background:#b6b6b6;line-height:24px;text-align:center;vertical-align:middle}body.post-type-attachment.post-php table.compat-attachment-fields{width:100%;border-spacing:0}body.post-type-attachment.post-php table .compat-field-pin_description td,body.post-type-attachment.post-php table .compat-field-pin_description th,body.post-type-attachment.post-php table .compat-field-pin_nopin td,body.post-type-attachment.post-php table .compat-field-pin_nopin th,body.post-type-attachment.post-php table .compat-field-pin_repin_id td,body.post-type-attachment.post-php table .compat-field-pin_repin_id th,body.post-type-attachment.post-php table .compat-field-pin_title td,body.post-type-attachment.post-php table .compat-field-pin_title th{display:block;width:100%}body.post-type-attachment.post-php table .compat-field-pin_description textarea{width:100%;min-height:75px}body.post-type-attachment.post-php table .compat-field-pin_repin_id input,body.post-type-attachment.post-php table .compat-field-pin_title input{width:100%}@media screen and (max-width:785px){.dpsp-page-title-wrapper h2{position:relative;padding-right:50px}.dpsp-page-title-wrapper h2 .dpsp-switch{position:absolute;top:15px;right:0}.dpsp-social-platforms-sort-list{overflow:auto}}@media screen and (max-width:720px){.dpsp-col-1-4{width:50%}#dpsp-networks-selector li{width:100%;padding:0}#dpsp-networks-selector-footer{text-align:center}.dpsp-social-platforms-sort-list li .dpsp-list-input-wrapper{width:auto}.dpsp-page-sidebar .dpsp-social-platforms-sort-list li .dpsp-list-input-wrapper:hover input,.dpsp-page-sidebar .dpsp-social-platforms-sort-list li .dpsp-list-input-wrapper input:focus,.dpsp-social-platforms-sort-list li .dpsp-list-input-wrapper input{width:150px;padding-right:10px}.dpsp-settings-button-style{width:auto}.dpsp-page-content .dpsp-settings-button-style{width:49.5%}.dpsp-page-content .dpsp-section-button-style label:nth-of-type(4n){margin-right:1%}.dpsp-page-content .dpsp-section-button-style label:nth-of-type(2n){margin-right:0}.dpsp-setting-field-label{width:100%;margin-bottom:10px}.dpsp-setting-field-wrapper{margin-bottom:30px}}#dpsp-shares-recovery-post-previous-urls{position:relative}.dpsp-shares-recovery-post-previous-urls-header{display:flex;align-items:center}#dpsp-shares-recovery-post-previous-urls h4{margin:10px 0;padding:10px 0;border-bottom:1px solid #f1f1f1}#dpsp-shares-recovery-post-previous-urls .dpsp-setting-field-tooltip-wrapper{position:relative;left:auto;padding-bottom:.5rem}#dpsp-shares-recovery-post-previous-urls-empty{padding:10px 15px;background:#f1f1f1}#dpsp-shares-recovery-post-previous-urls-empty>:first-child{margin-top:0}#dpsp-shares-recovery-post-previous-urls-empty>:last-child{margin-bottom:0}.dpsp-post-previous-url{display:flex;margin-top:5px}.dpsp-post-previous-url.dpsp-hidden{display:none}.dpsp-post-previous-url input{margin-right:5px;flex:1}.dpsp-post-previous-url a{padding:3px 10px}#dpsp-add-post-previous-url{margin-top:10px}.dpsp-admin-icon{display:inline-block;width:24px;height:24px;margin-right:10px;border-radius:2px;color:#fff;line-height:24px;text-align:center}.dpsp-admin-icon svg{max-width:14px;max-height:14px;margin:5px;fill:#fff}.dpsp-admin-icon-share{background:#34495e}.dpsp-admin-icon-twitter{background:#00abf0}.dpsp-admin-icon-pinterest{background:#c92228}
|
1 |
+
@charset "UTF-8";@import url("https://fonts.googleapis.com/css?family=Raleway:400,700,800");.dpsp-settings-sidebar{float:left;-moz-box-sizing:border-box;box-sizing:border-box;width:365px;margin-top:63px;padding-left:20px}.dpsp-settings-sidebar p{color:#767676}@media screen and (max-width:1225px){.dpsp-settings-sidebar{padding-left:0;border-left:0}}#dpsp-settings-sidebar-social-pug-pro img{box-sizing:border-box;max-width:100%;height:auto;padding:0 20px}#dpsp-settings-sidebar-social-pug-pro h3{font-weight:700;line-height:1.7em;text-align:center}#dpsp-settings-sidebar-social-pug-pro p{position:relative;margin-bottom:20px;padding-left:45px;color:#454545}#dpsp-settings-sidebar-social-pug-pro p .dpsp-dashicons{display:inline-block;position:absolute;top:-5px;left:0;width:30px;height:30px}#dpsp-settings-sidebar-social-pug-pro p .dpsp-dashicons:after{display:block;position:absolute;top:-1px;left:2px;width:30px;height:30px;border-radius:20px;background:#41a4a9;content:"";z-index:1}#dpsp-settings-sidebar-social-pug-pro p .dashicons{position:absolute;top:0;left:0;width:30px;height:30px;color:#fff;font-size:24px;line-height:30px;z-index:2}#dpsp-settings-sidebar-social-pug-pro .dpsp-button-primary{box-sizing:border-box;width:100%;padding:10px 0;text-align:center}.dpsp-page-wrapper.dpsp-page-extensions{max-width:1000px}.dpsp-page-extensions .dpsp-card{margin-top:0;margin-bottom:0}.dpsp-unavailable>a{display:block;line-height:0}.dpsp-unavailable h4{padding-bottom:0;border-top:1px solid #f1f1f1;border-bottom:0;text-align:left}.dpsp-unavailable p.dpsp-description{margin:0;padding:10px}.dpsp-unavailable .dpsp-tool-actions{overflow:hidden;padding:15px 10px;border-top:1px solid #f1f1f1;background:#f9f9f9;text-align:center}.dpsp-unavailable .dpsp-tool-actions .button{padding-right:25px;padding-left:25px}.dpsp-unavailable .dpsp-description{height:57px}@font-face{font-family:Social Pug;src:url(./socialpug.1.20.0.eot?gd6mr8);src:url(./socialpug.1.20.0.eot?#iefix) format("embedded-opentype"),url(./socialpug.1.20.0.woff) format("woff"),url(./socialpug.1.20.0.ttf) format("truetype"),url(./socialpug.1.20.0.svg#socialpug) format("svg");font-weight:400;font-style:normal}[class*=" dpsp-icon-"]:before,[class^=dpsp-icon-]:before{display:inline-block;font-family:Social Pug,sans-serif;font-weight:400;font-style:normal;font-variant:normal;line-height:1em;text-align:center;text-decoration:inherit;text-transform:none}.dpsp-transition{-webkit-transition:all .15s ease-in;-moz-transition:all .15s ease-in;-o-transition:all .15s ease-in;transition:all .15s ease-in}[class*=dpsp-col-]{float:left;-moz-box-sizing:border-box;box-sizing:border-box;padding:5px}.dpsp-row{margin:0 -5px}.dpsp-row.dpsp-m-padding{margin:0 -8px}.dpsp-row.dpsp-m-padding [class*=dpsp-col-]{padding:8px}.dpsp-row.dpsp-big-padding{margin:0 -15px}.dpsp-row.dpsp-big-padding [class*=dpsp-col-]{padding:15px}.dpsp-col-1-1{width:100%}.dpsp-col-1-2{width:50%}.dpsp-col-1-3{width:33.3333%}.dpsp-col-2-3{width:66.6666%}.dpsp-col-1-4{width:25%}.dpsp-col-3-4{width:75%}.dpsp-col-1-5{width:20%}.dpsp-col-2-5{width:40%}.dpsp-col-3-5{width:60%}.dpsp-col-4-5{width:80%}.dpsp-col-3-8{width:37.5%}.dpsp-row:after{display:block;clear:both;content:""}.dpsp-page-wrapper{position:relative;float:left;width:100%;max-width:675px}h1.dpsp-page-title{padding-right:0;padding-bottom:15px}.dpsp-section{margin-bottom:50px}.dpsp-section:after{display:block;clear:both;content:""}.dpsp-section-title{margin:2.75em 0 1.3em;padding-bottom:15px;border-bottom:1px solid #e5e5e5}.dpsp-background-color-network-facebook{background:#3a579a}.dpsp-background-color-network-twitter{background:#00abf0}.dpsp-background-color-network-pinterest{background:#c92228}.dpsp-background-color-network-linkedin{background:#0077b5}.dpsp-background-color-network-reddit{background:#ff5700}.dpsp-background-color-network-vkontakte{background:#4d75a3}.dpsp-background-color-network-whatsapp{background:#25d366}.dpsp-background-color-network-instagram{background:#bc2a8d}.dpsp-background-color-network-youtube{background:#b00}.dpsp-background-color-network-vimeo{background:#4bf}.dpsp-background-color-network-soundcloud{background:#f50}.dpsp-background-color-network-twitch{background:#6441a5}.dpsp-background-color-network-yummly{background:#e55a27}.dpsp-background-color-network-behance{background:#005cff}.dpsp-background-color-network-email{background:#27ae60}.dpsp-background-color-network-print{background:#bdc3c7}.dpsp-background-color-network-pocket{background:#ed4055}.dpsp-background-color-network-buffer{background:#29323b}.dpsp-background-color-network-tumblr{background:#35465c}.dpsp-background-color-network-xing{background:#00888d}.dpsp-background-color-network-github{background:#333}.dpsp-background-color-network-flipboard{background:#e12828}.dpsp-background-color-network-telegram{background:#08c}.dpsp-background-color-network-medium{background:#333}.dpsp-background-color-network-mix{background:#fd8235}.dpsp-background-color-network-grow{background:#41a4a9}body.dpsp-pagestyles{background:#f3f6f8}.dpsp-page-header{margin-left:-20px;color:#fff;background:#41a4a9;line-height:60px}.dpsp-page-header .dpsp-logo{padding:0 10px 0 20px}.dpsp-page-header .dpsp-logo-inner{font-family:Raleway,sans-serif;font-size:22px;font-weight:700}.dpsp-page-header .dpsp-logo-inner span{font-weight:300}.mv-grow-logo{display:inline-block;max-width:80px;padding-top:.25rem;vertical-align:top}.dpsp-page-header:after{display:block;clear:both;content:""}.dpsp-page-header nav{display:inline-block;margin-left:25px;line-height:62px}.dpsp-page-header nav a{display:inline-block;margin:0 5px;padding:8px 12px;border-radius:3px;color:#fff;background:hsla(0,0%,100%,.2);box-shadow:0 0 2px 2px rgba(52,152,219,.15);font-size:.9em;font-weight:700;line-height:1;text-decoration:none}.dpsp-page-header nav a .dashicons{width:auto;height:auto;margin-top:-2px;margin-right:5px;font-size:14px}.dpsp-page-header nav a:hover{background:hsla(0,0%,100%,.3)}.dpsp-card{box-sizing:border-box;max-width:675px;margin-top:1.5em;margin-bottom:2em;border-radius:3px;background:#fff;box-shadow:0 3px 10px -2px rgba(94,135,161,.3)}.dpsp-card-header{position:relative;padding:20px;border-bottom:1px solid rgba(200,215,225,.5);font-size:14px;font-weight:700}.dpsp-card-inner{padding:20px}.dpsp-card-inner:after{display:block;clear:both;content:""}.dpsp-card-footer{position:relative;padding:20px;border-top:1px solid rgba(200,215,225,.5);background:rgba(200,215,225,.15)}.dpsp-card-footer-actions{text-align:right}.dpsp-card-footer-actions:after{display:block;clear:both;content:""}.dpsp-card-footer-actions a{float:left;outline:0;color:#777;box-shadow:none;line-height:34px}.dpsp-card-footer-actions a:hover{color:#444}.dpsp-nav-tab-wrapper{margin:0}.dpsp-nav-tab-wrapper:after{display:block;clear:both;content:""}.dpsp-nav-tab{float:left;margin:0;border-bottom:2px solid transparent}.dpsp-nav-tab.dpsp-active{border-bottom-color:#2e4453}.dpsp-nav-tab.dpsp-active a{color:#2e4453}.dpsp-nav-tab a{display:block;box-sizing:border-box;width:auto;padding:16px 16px 14px;box-shadow:none;text-decoration:none}.dpsp-tab{display:none;margin-top:25px}.dpsp-tab.dpsp-active{display:block}.dpsp-button-primary{display:inline-block;overflow:hidden;box-sizing:border-box;margin:0;padding:.5em 2em;border:none;border-radius:3em;outline:0;color:#fff!important;background:#41a4a9;box-shadow:none!important;font-size:13px;font-weight:500;line-height:21px;vertical-align:middle;text-decoration:none;text-overflow:ellipsis;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.dpsp-button-primary:hover{color:#fff;background-color:#243c4a}.dpsp-button-primary:focus{color:#fff}.dpsp-button-primary.dpsp-active,.dpsp-button-primary:active{border-width:2px 1px 1px}.dpsp-button-primary.dpsp-hidden{display:none}.dpsp-button-secondary{display:inline-block;overflow:hidden;box-sizing:border-box;margin:0;padding:5px 11px;border:solid #c8d7e1;border-width:1px 1px 2px;border-radius:4px;outline:0;color:#2e4453;background:#fff;box-shadow:none!important;font-size:13px;font-weight:500;line-height:21px;vertical-align:middle;text-decoration:none;text-overflow:ellipsis;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.dpsp-button-secondary:hover{border-color:#a8bece;color:#2e4453}.dpsp-button-secondary:focus{color:#2e4453}.dpsp-button-secondary.dpsp-active,.dpsp-button-secondary:active{border-width:2px 1px 1px}.dpsp-button-secondary.dpsp-hidden{display:none}.dpsp-button-secondary.disabled,.dpsp-button-secondary[disabled]{border-color:#e9eff3;color:#e9eff3;background:#fff;cursor:default}.dpsp-widget-section-title{display:block;margin-top:20px;margin-bottom:5px;font-weight:700}.dpsp-widget-label{display:inline-block;width:200px}.widget-content .dpsp-settings-field-checkbox{margin-right:12px}.dpsp-setting-field-button-alignment{display:none}.wrap div.dpsp-admin-notice{position:relative;margin-top:16px}.wrap div.dpsp-admin-notice h4{font-size:16px}.wrap div.dpsp-admin-notice p{font-size:14px}.wrap div.dpsp-admin-notice.dpsp-serial-missing{border-color:rgba(52,152,219,.75)}.wrap div.dpsp-admin-notice.dpsp-serial-missing .dpsp-get-license{margin-left:10px}.wrap div.dpsp-admin-notice.dpsp-admin-notice-twitter-counts{border-color:rgba(52,152,219,.75)}.wrap div.dpsp-admin-notice.dpsp-admin-notice-twitter-counts h4{font-size:1.05em}.wrap div.dpsp-admin-notice.dpsp-admin-notice-twitter-counts a{text-decoration:none}.wrap div.dpsp-admin-notice.dpsp-admin-notice-twitter-counts .dpsp-admin-notice-link{display:inline-block;margin-right:10px;margin-bottom:18px;padding:6px 8px;border-radius:2px;color:#3498db;background:#e9e9e9;font-weight:500}.wrap div.dpsp-admin-notice.dpsp-admin-notice-twitter-counts .dpsp-admin-notice-link span{display:inline-block;margin-right:10px;text-decoration:none}.wrap div.dpsp-admin-notice.dpsp-admin-notice-twitter-counts .dpsp-admin-notice-link:hover{color:#fff;background:rgba(52,152,219,.75)}.wrap div.dpsp-admin-notice-icon-animation .button-primary{display:inline-block;margin-bottom:1.33em}.wrap div.dpsp-admin-notice-icon-animation h4{margin-bottom:0}.wrap div.dpsp-admin-notice-icon-animation p{margin-bottom:.75em}.wrap div.dpsp-admin-notice.dpsp-admin-grow-notice{display:flex;flex-flow:row}@media screen and (max-width:500px){.wrap div.dpsp-admin-notice.dpsp-admin-grow-notice{flex-flow:column}}.wrap div.dpsp-admin-notice .notice-img-wrap{padding:1em;flex:0 0 150px}.wrap div.dpsp-admin-notice .notice-img-wrap img{float:left}.wrap div.dpsp-admin-notice .notice-text-wrap{flex:1 1 auto}.wrap div.dpsp-admin-notice .notice-subtext{font-size:.9em;font-style:italic}#dpsp-select-networks{position:absolute;top:50%;right:10px;margin-top:-17px}#dpsp-sortable-networks-empty{display:none;position:relative;color:#848484;text-align:center}#dpsp-sortable-networks-empty:after{display:block;position:absolute;top:-17px;right:80px;width:130px;height:70px;opacity:0;background:url(./dpsp-selectable-empty.1.20.0.png) no-repeat 50%;background-size:100%;content:"";transition:all .15s ease-in}#dpsp-sortable-networks-empty.dpsp-active{display:block}#dpsp-sortable-networks-empty.dpsp-active:after{opacity:1}.dpsp-social-platforms-sort-list{margin-top:0;margin-bottom:0}.dpsp-social-platforms-sort-list li{position:relative;overflow:hidden;box-sizing:border-box;margin:0;padding-top:5px;padding-bottom:5px;border-bottom:1px solid #f1f1f1;background:#fff}.dpsp-social-platforms-sort-list li.dpsp-last{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.dpsp-social-platforms-sort-list li.ui-sortable-helper{box-shadow:0 3px 12px 3px rgba(0,0,0,.1)}.dpsp-social-platforms-sort-list.empty li{padding:20px;border:2px dashed #c1c1c1;background:none}.dpsp-social-platforms-sort-list li:after{display:block;clear:both;height:0;content:""}.dpsp-social-platforms-sort-list li:last-of-type{margin-bottom:0}.dpsp-social-platforms-sort-list li.dpsp-sort-placeholder{height:55px;border-radius:0;background:#f9f9f9;box-shadow:inset 0 3px 12px 3px rgba(0,0,0,.02)}.dpsp-social-platforms-sort-list li .dpsp-sort-handle{display:block;float:left;width:44px;height:44px;cursor:move}.dpsp-social-platforms-sort-list li .dpsp-sort-handle:before{position:absolute;top:23px;left:12px;width:20px;height:1px;background:#c1c1c1;box-shadow:0 .25em 0 0 #c1c1c1,0 .5em 0 0 #c1c1c1;content:""}.dpsp-social-platforms-sort-list li .dpsp-list-icon{display:flex;float:left;width:44px;height:44px;font-size:1.1em;line-height:44px;text-align:center;align-items:center;justify-content:center}.dpsp-social-platforms-sort-list li .dpsp-list-icon-social svg{width:auto;height:20px;fill:#fff}.dpsp-social-platforms-sort-list li .dpsp-list-input-wrapper{position:relative;float:left;padding:8px}.dpsp-social-platforms-sort-list li .dpsp-list-input-wrapper input{width:250px;margin:0;padding:0 7px;border:0;border-radius:3px;outline:0;color:#444;box-shadow:none;font-size:1em;font-weight:700;line-height:28px;transition:background-color .1s ease-in-out}.dpsp-social-platforms-sort-list li .dpsp-list-input-wrapper input:placeholder-shown{font-weight:400;font-style:italic}.dpsp-social-platforms-sort-list li .dpsp-list-input-wrapper:hover input,.dpsp-social-platforms-sort-list li .dpsp-list-input-wrapper input:focus{background:#f5f5f5}.dpsp-page-sticky-bar .dpsp-social-platforms-sort-list li .dpsp-list-input-wrapper input{background-color:initial!important;cursor:default}.dpsp-social-platforms-sort-list li .dpsp-list-actions{float:right;margin-right:6px}.dpsp-social-platforms-sort-list li .dpsp-list-actions a{display:inline-block;position:relative;margin:8px 2px 8px 0;padding:0 6px 0 3px;border-radius:3px;color:#747474;box-shadow:none;line-height:28px;vertical-align:middle;text-decoration:none;transition:background-color .1s ease-in-out,color .1s ease-in-out}.dpsp-social-platforms-sort-list li .dpsp-list-actions a .dashicons{position:relative;top:-1px;width:18px;height:18px;margin-right:2px;font-size:18px;line-height:18px;vertical-align:text-top}.dpsp-social-platforms-sort-list li .dpsp-list-actions a:hover{color:#353535;background:#f4f4f4}#dpsp-networks-selector-wrapper,.dpsp-page-sticky-bar .dpsp-social-platforms-sort-list li .dpsp-list-actions .dpsp-list-edit-label{display:none}#dpsp-networks-selector{margin:0;padding:20px}#dpsp-networks-selector li{position:relative;float:left;box-sizing:border-box;width:33.3333%;margin-bottom:1em;padding:0 10px}#dpsp-networks-selector:after{display:block;clear:both;height:0;content:""}#dpsp-networks-selector .dpsp-network-item{position:relative;box-sizing:border-box;padding-left:35px;cursor:pointer}#dpsp-networks-selector .dpsp-network-item-checkbox{position:absolute;top:0;left:0;width:26px;height:26px;border:2px solid #c8d7e1;border-radius:15px;color:#555;background:#fff;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1);font-size:16px;line-height:26px;text-align:center;vertical-align:middle}#dpsp-networks-selector .dpsp-network-item-checkbox svg{position:relative;max-width:1rem;opacity:0;transition:all .15s ease-in;fill:currentColor}#dpsp-networks-selector .dpsp-network-item:hover .dpsp-network-item-checkbox svg{opacity:.15}#dpsp-networks-selector .dpsp-network-item[data-checked=true] .dpsp-network-item-checkbox svg,#dpsp-networks-selector .dpsp-network-item[data-checked=true]:hover .dpsp-network-item-checkbox svg{opacity:1}#dpsp-networks-selector .dpsp-network-item-name-wrapper{height:30px;padding-left:10px;border-radius:3px;color:#fff;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1);line-height:30px;vertical-align:middle}#dpsp-networks-selector .dpsp-network-item-name-wrapper .dpsp-list-icon{display:inline-block;margin-right:12px;margin-left:5px}#dpsp-networks-selector .dpsp-network-item-name-wrapper .dpsp-list-icon svg{position:relative;width:auto;max-height:14px;vertical-align:text-top;fill:#fff}#dpsp-networks-selector .dpsp-network-item-name-wrapper h4{display:inline-block;margin:0}.dpsp-setting-field-wrapper{position:relative;left:auto;min-height:39px;margin-bottom:12px;transition:opacity .4s ease-in-out}.dpsp-setting-field-wrapper.disabled{position:absolute;left:-9999px;visibility:hidden;opacity:0}.dpsp-setting-field-wrapper.dpsp-last{margin-bottom:0}.dpsp-setting-field-label{display:inline-block;position:absolute;top:2px;left:0;box-sizing:border-box;width:235px;padding-right:15px;vertical-align:top}.dpsp-setting-field-wrapper.dpsp-has-field-label{padding-left:243px}.dpsp-setting-field-wrapper.dpsp-has-field-label .dpsp-setting-field-inner{position:relative;top:-18px;margin-left:243px}.dpsp-setting-field-wrapper input[type=text]{width:100%;margin:0;padding:10px 12px;border:1px solid #c8d7e1;border-radius:2px;box-shadow:none}.dpsp-setting-field-wrapper input[type=text]:disabled{background:#edf2f5}.dpsp-setting-field-wrapper input[type=text]:focus{border-color:#0087be;box-shadow:0 0 1px 0 #78dcfa}.dpsp-setting-field-wrapper button{vertical-align:middle!important}.dpsp-setting-field-button .spinner{position:absolute;right:auto;left:auto;float:none}.dpsp-setting-field-button .action-text{display:none;margin-left:2rem;color:#333}.dpsp-setting-field-button.dpsp-loading .action-text,.dpsp-setting-field-button.dpsp-loading .spinner{visibility:visible}.dpsp-setting-field-wrapper select{min-width:200px}.dpsp-setting-field-select :focus{outline:0!important}.dpsp-setting-field-select .select2-container{width:100%!important}.dpsp-setting-field-select .select2-selection{height:39px;border:1px solid #c8d7e1;border-radius:2px}.dpsp-setting-field-select .select2-selection .select2-selection__rendered{padding-left:10px;line-height:37px!important}.dpsp-setting-field-select .select2-selection .select2-selection__arrow{height:37px;padding-right:10px}.dpsp-select2 .select2-dropdown{border-color:#c8d7e1;border-radius:0}.dpsp-select2 .select2-dropdown li{margin:0;padding:0 10px;line-height:36px}.dpsp-select2 .select2-results__option[aria-selected=true]{background:#e8eaeb}.dpsp-select2 .select2-results__option--highlighted{background:#00aadc!important}.dpsp-select2 .select2-dropdown--below{top:32px;box-shadow:0 4px 3px 2px rgba(0,0,0,.08)}.dpsp-select2 .select2-dropdown--above{box-shadow:0 -4px 3px 2px rgba(0,0,0,.08)}.dpsp-setting-field-select .select2-container--open{box-shadow:0 0 3px 2px rgba(0,0,0,.08)}.dpsp-setting-field-wrapper .wp-picker-container .wp-color-result.button{height:32px;margin-bottom:0;border:solid #c8d7e1;border-width:1px 1px 2px;box-shadow:none;cursor:pointer}.dpsp-setting-field-wrapper .wp-picker-container .wp-color-result.button span{box-sizing:border-box;padding:5px 11px;background:#fff;font-size:13px;font-weight:500;line-height:19px;vertical-align:top;text-decoration:none;text-overflow:ellipsis}.dpsp-setting-field-wrapper .wp-picker-container .wp-picker-input-wrap .button{height:32px;border:solid #c8d7e1;border-width:1px 1px 2px;background:#fff;box-shadow:none;cursor:pointer}.dpsp-setting-field-wrapper .wp-picker-container input[type=text].wp-color-picker{width:65px;margin:0;padding:7px;font-family:monospace;font-size:12px;line-height:16px;vertical-align:top}.dpsp-setting-field-wrapper textarea{min-width:450px;min-height:100px;padding:5px 8px;border-radius:3px}.dpsp-page-wrapper .dpsp-setting-field-wrapper textarea{border:0;box-shadow:none}.postbox .dpsp-setting-field-wrapper textarea{min-height:80px}.dpsp-setting-field-wrapper input[type=checkbox],.dpsp-setting-field-wrapper input[type=radio]{display:none}.dpsp-setting-field-checkbox.dpsp-single .dpsp-setting-field-label{box-sizing:border-box;width:260px;padding-right:20px}.dpsp-setting-field-checkbox.dpsp-multiple .dpsp-settings-field-checkbox,.dpsp-setting-field-radio.dpsp-multiple .dpsp-settings-field-radio{display:inline-block;position:relative;margin-right:12px;padding-left:23px}.dpsp-setting-field-checkbox input[type=checkbox]+label span,.dpsp-setting-field-radio input[type=radio]+label span{display:block;position:absolute;box-sizing:initial!important;width:16px;height:16px;border:1px solid #e7e7e7;border-radius:3px;background:#fff;content:"";transition:background .1s ease-in-out,border-color .1s ease-in-out}.dpsp-setting-field-radio input[type=radio]+label span{border-radius:50%}.dpsp-setting-field-checkbox.dpsp-single input[type=checkbox]+label span{top:0;right:0}.dpsp-setting-field-checkbox.dpsp-multiple input[type=checkbox]+label span,.dpsp-setting-field-radio.dpsp-multiple input[type=radio]+label span{top:0;left:0}.dpsp-setting-field-checkbox input[type=checkbox]+label span:before{display:inline-block;width:16px;height:16px;margin:-5px 0 0 -3px;color:transparent;font:400 20px/1 dashicons;line-height:16px;vertical-align:middle;content:"";transition:color .1s ease-in-out}.dpsp-setting-field-radio input[type=radio]+label span:before{display:block;position:relative;top:5px;left:5px;width:6px;height:6px;border-radius:50%;content:""}.dpsp-setting-field-checkbox input[type=checkbox]:checked+label span{border-color:transparent;background:#41a4a9}.dpsp-setting-field-checkbox input[type=checkbox]:checked+label span:before{color:#fff}.dpsp-setting-field-radio input[type=radio]:checked+label span{border-color:transparent;background:#41a4a9}.dpsp-setting-field-radio input[type=radio]:checked+label span:before{background:#fff}.dpsp-setting-field-wrapper img{max-width:200px;height:auto;border-radius:2px}.dpsp-setting-field-tooltip-wrapper{display:inline-block;position:absolute;top:2px;left:217px;width:18px;height:18px;margin-left:5px}.dpsp-network-item .dpsp-setting-field-tooltip-wrapper{top:5px;right:0;left:auto}.dpsp-network-item .dpsp-setting-field-tooltip-wrapper a{color:#fff}.dpsp-network-item .dpsp-setting-field-tooltip-wrapper a:hover{opacity:.9;text-decoration:none}.dpsp-setting-field-tooltip-icon:before{display:inline-block;width:14px;height:14px;border-radius:9px;color:#fff;background:#34495e;font-size:10px;font-weight:700;line-height:14px;text-align:center;vertical-align:middle;content:"?";cursor:pointer;transition:all .15s ease-in}.dpsp-setting-field-tooltip-icon:hover:before{background:#34495e}.dpsp-setting-field-tooltip{position:absolute;top:28px;left:-25px;visibility:hidden;width:220px;padding:8px 12px;border-radius:4px;opacity:0;color:#fff;background:rgba(52,73,94,.975);z-index:10}.dpsp-setting-field-tooltip a{color:#3498db}.dpsp-setting-field-tooltip:before{display:block;position:absolute;top:-6px;left:27px;width:0;height:0;border-color:transparent transparent rgba(52,73,94,.975);border-style:solid;border-width:0 4.5px 6px;content:""}.dpsp-settings-button-style{float:left;-moz-box-sizing:border-box;box-sizing:border-box;width:12%;margin-right:1.5%;margin-bottom:10px;padding:12px;border:1px solid transparent;border-radius:5px;cursor:pointer}.dpsp-setting-field-wrapper .dpsp-switch{float:none;margin-left:0}.dpsp-setting-field-share-text input{width:350px}.dpsp-page-pop-up .dpsp-setting-field-title input{min-width:450px}.dpsp-setting-field-button-text-label,.dpsp-setting-field-desktop-position,.dpsp-setting-field-mobile-position,.dpsp-setting-field-tweet-counts-provider{display:none}.dpsp-setting-field-facebook-app-authorized{padding:9px;border-radius:3px;color:#27ae60;background:rgba(0,184,148,.3)}.dpsp-setting-field-facebook-app-authorized-expired{margin-bottom:10px;padding:9px;border-radius:3px;color:#c0392b;background:rgba(192,57,43,.3)}.dpsp-setting-field-facebook-app-id,.dpsp-setting-field-facebook-app-secret,.dpsp-setting-field-facebook-authorize-app{display:none}.dpsp-page-wrapper .dpsp-settings-button-style .dpsp-networks-btns-wrapper li{margin-bottom:6px}.dpsp-page-wrapper .dpsp-settings-button-style .dpsp-networks-btns-wrapper li:last-of-type{margin-bottom:0}.dpsp-page-sidebar .dpsp-settings-button-style .dpsp-networks-btns-wrapper .dpsp-network-btn{margin:0 auto}.dpsp-page-sidebar .dpsp-settings-button-style .dpsp-shape-rounded .dpsp-networks-btns-wrapper .dpsp-network-btn,.dpsp-page-sidebar .dpsp-settings-button-style .dpsp-shape-rounded .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon{border-radius:5px}.dpsp-page-sidebar .dpsp-settings-button-style :not(.dpsp-button-style-8) .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon{left:0}.dpsp-page-sidebar .dpsp-settings-button-style .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon svg{top:1px}.dpsp-page-content .dpsp-settings-button-style,.dpsp-page-pop-up .dpsp-settings-button-style{width:32.3333%;margin-right:1%}.dpsp-page-content .dpsp-section-button-style label:nth-of-type(4n),.dpsp-page-pop-up .dpsp-section-button-style label:nth-of-type(4n){margin-right:0}.dpsp-settings-button-style:hover{border-color:#e1e1e1}.dpsp-settings-button-style-input{display:none!important}.dpsp-settings-button-style-input:checked+label{border-color:rgba(52,152,219,.3);background:rgba(52,152,219,.075)}#section-click-to-tweet-preview,.dpsp-subsection-link-shortening{display:none}#section-click-to-tweet-preview>a{margin-top:0;margin-bottom:0}#dpsp-serial-key-status{display:none;position:relative;top:-1px;padding:4px 0;border-bottom-right-radius:3px;border-bottom-left-radius:3px;line-height:20px}#dpsp-serial-key-status span{vertical-align:middle}#dpsp-serial-key-status.dpsp-valid{color:#27ae60;background:rgba(0,184,148,.3)}#dpsp-serial-key-status .dashicons{margin-right:5px;margin-left:5px}#dpsp-serial-key-status .dashicons-yes{color:#27ae60}#dpsp-serial-key-status .dashicons-warning{color:#c0392b}#dpsp-bitly-key-status{position:relative;top:-1px;margin-top:-6px;margin-bottom:12px;padding:4px 0;border-bottom-right-radius:3px;border-bottom-left-radius:3px;line-height:20px;text-align:right}#dpsp-bitly-key-status span{vertical-align:middle}#dpsp-bitly-key-status.dpsp-valid{color:#27ae60;background:rgba(0,184,148,.3)}#dpsp-serial-key-status.dpsp-invalid{color:#c0392b;background:rgba(192,57,43,.3)}#dpsp-bitly-key-status .dashicons{margin-right:5px;margin-left:5px}#dpsp-bitly-key-status .dashicons-yes{color:#27ae60}#dpsp-bitly-key-status .dashicons-warning{color:#c0392b}#dpsp-card-settings-social-shares-recovery .dpsp-card-inner{border-bottom:1px solid rgba(200,215,225,.5)}#dpsp-card-settings-social-shares-recovery .dpsp-card-inner.dpsp-last{border-bottom:0}#dpsp-toolkit-welcome{margin-left:-20px;padding:5px 20px;background:#fff}.dpsp-page-toolkit:not(.dpsp-page-free){max-width:1000px}.dpsp-page-toolkit .dpsp-row{margin-bottom:2.5em}.dpsp-page-toolkit .dpsp-card{margin-top:0;margin-bottom:0}.dpsp-tool-wrapper{overflow:hidden;border-radius:3px;background:#fff}.dpsp-tool-wrapper img{max-width:100%;height:auto}.dpsp-tool-wrapper a{color:#777;text-decoration:none}.dpsp-tool-wrapper a:hover{color:rgba(52,152,219,.75)}.dpsp-tool-wrapper h4{margin-top:0;margin-bottom:0;padding:10px;font-size:15px;text-align:center}.dpsp-tool-wrapper .dpsp-tool-actions{position:relative;padding:15px}.dpsp-tool-wrapper .dpsp-tool-actions:after{display:block;clear:both;content:""}.dpsp-tool-wrapper .dpsp-tool-actions-overlay{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;background:hsla(0,0%,100%,.6);z-index:1}.dpsp-tool-wrapper .dpsp-tool-actions-overlay .spinner{visibility:visible;float:none;margin:15px 0 0 15px;opacity:1}.dpsp-tool-wrapper .dpsp-tool-actions.dpsp-active span{opacity:0}.dpsp-tool-wrapper .dpsp-tool-actions.dpsp-inactive span{opacity:.4}.dpsp-tool-wrapper .dpsp-tool-actions .dpsp-tool-settings{line-height:1;vertical-align:middle}.dpsp-tool-wrapper .dpsp-tool-actions .dpsp-tool-settings:focus{box-shadow:none}.dpsp-tool-wrapper .dpsp-tool-actions.dpsp-inactive .dpsp-tool-settings{display:none}.dpsp-tool-wrapper .dpsp-tool-actions .dpsp-tool-settings i{margin-right:3px}.dpsp-tool-wrapper .dpsp-switch span{margin-right:5px;font-size:.85em;text-transform:uppercase}.dpsp-tool-wrapper .dpsp-switch label{display:inline-block!important}.dpsp-switch{display:inline-block;position:relative;float:right;margin-left:20px}.dpsp-page-wrapper .cmn-toggle{position:absolute;visibility:hidden;margin-left:-9999px}.dpsp-page-wrapper .cmn-toggle+label{display:block;position:relative;outline:none;cursor:pointer;user-select:none}.dpsp-page-wrapper input.cmn-toggle-round+label{box-sizing:initial;width:36px;height:18px;padding:3px;border-radius:20px;background-color:#c9d6e0;transition:background .4s}.dpsp-page-wrapper input.cmn-toggle-round+label:after,.dpsp-page-wrapper input.cmn-toggle-round+label:before{display:block;position:absolute;top:2px;bottom:2px;left:2px;content:""}.dpsp-page-wrapper input.cmn-toggle-round+label:before{right:2px;border-radius:18px;transition:background .4s}.dpsp-page-wrapper input.cmn-toggle-round+label:after{width:20px;border-radius:100%;background-color:#fff;box-shadow:0 2px 5px rgba(0,0,0,.1);transition:margin .4s}.dpsp-page-wrapper input.cmn-toggle-round:checked+label{background-color:#41a4a9}.dpsp-page-wrapper input.cmn-toggle-round:checked+label:after{margin-left:18px}.dpsp-switch.small input.cmn-toggle-round+label{width:30px;height:15px}.dpsp-switch.small input.cmn-toggle-round+label:after{width:17px}.dpsp-switch.small input.cmn-toggle-round:checked+label:after{margin-left:15px}.dpsp-statistic-bars-wrapper{padding-top:10px}.dpsp-statistic-bars-wrapper:after{display:block;clear:both;width:0;content:""}.dpsp-statistic-bar-header{margin-bottom:10px;padding-bottom:5px;border-bottom:1px solid #f1f1f1;opacity:.6}.dpsp-statistic-bar-wrapper.dpsp-statistic-bar-header:hover{background:none}.dpsp-statistic-bar-wrapper{position:relative;height:30px;padding-right:110px;padding-left:110px;transition:opacity .2s ease-in-out}.dpsp-statistic-bar-wrapper:hover{background:#f7f7f7}.dpsp-statistic-bar-wrapper label{position:absolute;top:0;left:10px;width:109px;height:30px;font-size:12px;font-weight:700;line-height:30px}.dpsp-statistic-bar-wrapper .dpsp-network-share-count{position:absolute;top:0;right:0;width:110px;height:30px;font-size:12px;font-weight:700;line-height:30px}.dpsp-statistic-bar-wrapper .dpsp-network-share-count .dpsp-count{display:inline-block;width:55px;text-align:center}.dpsp-statistic-bar-wrapper .dpsp-network-share-count .dpsp-percentage{display:inline-block;width:40px;text-align:center}.dpsp-statistic-bar-wrapper .dpsp-network-share-count .dpsp-divider{width:1px;margin:0 2px;opacity:.5}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar{position:relative;top:10px;width:100%;height:10px;border-radius:5px;background:#e7e7e7}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar-inner{width:0;height:10px;border-radius:5px}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar-facebook .dpsp-statistic-bar-inner{background:#3a579a}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar-twitter .dpsp-statistic-bar-inner{background:#00abf0}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar-google-plus .dpsp-statistic-bar-inner{background:#df4a32}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar-pinterest .dpsp-statistic-bar-inner{background:#c92228}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar-linkedin .dpsp-statistic-bar-inner{background:#0077b5}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar-reddit .dpsp-statistic-bar-inner{background:#ff5700}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar-vkontakte .dpsp-statistic-bar-inner{background:#4d75a3}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar-buffer .dpsp-statistic-bar-inner{background:#29323b}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar-tumblr .dpsp-statistic-bar-inner{background:#35465c}.dpsp-statistic-bar-wrapper .dpsp-statistic-bar-yummly .dpsp-statistic-bar-inner{background:#e55a27}.dpsp-statistic-bar-footer{margin:10px 0;border-top:1px solid #f1f1f1;border-bottom:1px solid #f1f1f1;opacity:.6}.dpsp-statistic-bar-wrapper.dpsp-statistic-bar-footer:hover{background:none}#dpsp-refresh-share-counts-wrapper:after{display:block;clear:both;width:0;content:""}#dpsp-refresh-share-counts{float:right}#dpsp_share_options span[class*=dpsp-icon-]{display:inline-block;width:24px;height:24px;margin-right:10px;border-radius:2px;color:#fff;line-height:24px;text-align:center}#dpsp_share_options .dpsp-icon-share{background:#34495e}#dpsp_share_options .dpsp-icon-twitter{background:#00abf0}#dpsp_share_options .dpsp-icon-pinterest{background:#c92228}#dpsp_share_options_content .dpsp-section{position:relative;margin:15px 0 25px;padding-left:220px}#dpsp_share_options_content label{display:block;margin-bottom:10px;font-weight:700}#dpsp_share_options_content textarea{width:100%;min-height:70px}#dpsp_share_options_content .dpsp-setting-field-image{position:absolute;top:0;left:0;width:100%;max-width:200px}#dpsp_share_options_content .dpsp-setting-field-image .dpsp-button-primary,#dpsp_share_options_content .dpsp-setting-field-image .dpsp-button-secondary{width:100%;text-align:center}#dpsp_share_options .dpsp-setting-field-tooltip-wrapper{position:relative;top:-2px;left:auto}.dpsp-textarea-characters-remaining-wrapper{float:right;height:24px;padding:0 10px;border-radius:2px;background:#f1f1f1;font-size:12px;line-height:24px}.dpsp-textarea-characters-remaining-wrapper.dpsp-excedeed{color:#fff;background:rgba(192,57,43,.75)}#dpsp-meta-box-section-multiple-pinterest-images{padding-left:0!important}#dpsp-meta-box-section-multiple-pinterest-images .dpsp-hidden-image-wrapper{position:relative;float:left;max-width:125px;margin-right:5px;margin-bottom:5px;line-height:0}#dpsp-meta-box-section-multiple-pinterest-images .dpsp-hidden-image-wrapper img{max-width:100%;height:auto;max-height:auto}#dpsp-meta-box-section-multiple-pinterest-images .dpsp-hidden-image-wrapper .dpsp-button-secondary{position:absolute;top:5px;right:5px;visibility:hidden;padding:1px 2px;opacity:0;transition:all .1s ease-in}#dpsp-meta-box-section-multiple-pinterest-images .dpsp-hidden-image-wrapper:hover .dpsp-button-secondary{visibility:visible;opacity:1}#dpsp-meta-box-section-multiple-pinterest-images .dpsp-hidden-image-add-new{float:left;box-sizing:border-box;width:125px;height:125px;border-radius:2px;text-align:center}#dpsp-meta-box-section-multiple-pinterest-images .dpsp-hidden-image-add-new .dashicons{display:inline-block;box-sizing:initial;margin-top:28px;margin-bottom:5px;padding:5px;border-radius:50px;background:#ebf0f4}#dpsp-meta-box-section-multiple-pinterest-images .dpsp-hidden-image-add-new .dashicons:before{position:relative;top:1px}#dpsp-meta-box-section-multiple-pinterest-images:after{display:block;clear:both;content:""}.mce-i-dpsp-icon-twitter{position:relative;top:-2px}.mce-i-dpsp-icon-twitter:before{color:#00abf0;font-family:Social Pug,sans-serif;font-size:20px;font-weight:400;font-style:normal;content:""}#dpsp_click_to_tweet_dialog #dpsp_tweet_length{position:absolute;top:105px;right:0;padding-right:25px;color:#a1a1a1}#dpsp_click_to_tweet_dialog #dpsp_tweet_length em,#dpsp_click_to_tweet_dialog #dpsp_tweet_length span{font-size:12px;font-weight:700}#dpsp_click_to_tweet_dialog #dpsp_tweet_length span{position:absolute;top:0;right:0}#dpsp_click_to_tweet_dialog #dpsp_tweet_hide_url-al,#dpsp_click_to_tweet_dialog #dpsp_tweet_hide_via-al{position:relative;top:-3px}table.wp-list-table .column-dpsp_shares{width:5.5em}#screen-options-wrap .dpsp-list-table-shares i,table.wp-list-table .dpsp-list-table-shares span{display:none}.dpsp-list-table-post-share-count{display:inline-block;margin-top:5px;padding:0 8px;border-radius:5px;color:#fff;background:#b6b6b6;line-height:24px;text-align:center;vertical-align:middle}body.post-type-attachment.post-php table.compat-attachment-fields{width:100%;border-spacing:0}body.post-type-attachment.post-php table .compat-field-pin_description td,body.post-type-attachment.post-php table .compat-field-pin_description th,body.post-type-attachment.post-php table .compat-field-pin_nopin td,body.post-type-attachment.post-php table .compat-field-pin_nopin th,body.post-type-attachment.post-php table .compat-field-pin_repin_id td,body.post-type-attachment.post-php table .compat-field-pin_repin_id th,body.post-type-attachment.post-php table .compat-field-pin_title td,body.post-type-attachment.post-php table .compat-field-pin_title th{display:block;width:100%}body.post-type-attachment.post-php table .compat-field-pin_description textarea{width:100%;min-height:75px}body.post-type-attachment.post-php table .compat-field-pin_repin_id input,body.post-type-attachment.post-php table .compat-field-pin_title input{width:100%}@media screen and (max-width:785px){.dpsp-page-title-wrapper h2{position:relative;padding-right:50px}.dpsp-page-title-wrapper h2 .dpsp-switch{position:absolute;top:15px;right:0}.dpsp-social-platforms-sort-list{overflow:auto}}@media screen and (max-width:720px){.dpsp-col-1-4{width:50%}#dpsp-networks-selector li{width:100%;padding:0}#dpsp-networks-selector-footer{text-align:center}.dpsp-social-platforms-sort-list li .dpsp-list-input-wrapper{width:auto}.dpsp-page-sidebar .dpsp-social-platforms-sort-list li .dpsp-list-input-wrapper:hover input,.dpsp-page-sidebar .dpsp-social-platforms-sort-list li .dpsp-list-input-wrapper input:focus,.dpsp-social-platforms-sort-list li .dpsp-list-input-wrapper input{width:150px;padding-right:10px}.dpsp-settings-button-style{width:auto}.dpsp-page-content .dpsp-settings-button-style{width:49.5%}.dpsp-page-content .dpsp-section-button-style label:nth-of-type(4n){margin-right:1%}.dpsp-page-content .dpsp-section-button-style label:nth-of-type(2n){margin-right:0}.dpsp-setting-field-label{width:100%;margin-bottom:10px}.dpsp-setting-field-wrapper{margin-bottom:30px}}#dpsp-shares-recovery-post-previous-urls{position:relative}.dpsp-shares-recovery-post-previous-urls-header{display:flex;align-items:center}#dpsp-shares-recovery-post-previous-urls h4{margin:10px 0;padding:10px 0;border-bottom:1px solid #f1f1f1}#dpsp-shares-recovery-post-previous-urls .dpsp-setting-field-tooltip-wrapper{position:relative;left:auto;padding-bottom:.5rem}#dpsp-shares-recovery-post-previous-urls-empty{padding:10px 15px;background:#f1f1f1}#dpsp-shares-recovery-post-previous-urls-empty>:first-child{margin-top:0}#dpsp-shares-recovery-post-previous-urls-empty>:last-child{margin-bottom:0}.dpsp-post-previous-url{display:flex;margin-top:5px}.dpsp-post-previous-url.dpsp-hidden{display:none}.dpsp-post-previous-url input{margin-right:5px;flex:1}.dpsp-post-previous-url a{padding:3px 10px}#dpsp-add-post-previous-url{margin-top:10px}.dpsp-admin-icon{display:inline-block;width:24px;height:24px;margin-right:10px;border-radius:2px;color:#fff;line-height:24px;text-align:center}.dpsp-admin-icon svg{max-width:14px;max-height:14px;margin:5px;fill:#fff}.dpsp-admin-icon-share{background:#34495e}.dpsp-admin-icon-twitter{background:#00abf0}.dpsp-admin-icon-pinterest{background:#c92228}
|
assets/dist/style-frontend-pro-jquery.1.19.2.css
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
#dpsp-content-top{margin-bottom:1.2em}#dpsp-content-bottom{margin-top:1.2em}.dpsp-share-text{margin-bottom:10px;font-weight:700}.dpsp-networks-btns-wrapper{margin:0!important;padding:0!important;list-style:none!important}.dpsp-networks-btns-wrapper:after{display:block;clear:both;height:0;content:""}.dpsp-networks-btns-wrapper li{float:left;margin:0;padding:0;border:0;list-style-type:none!important;-webkit-transition:all .15s ease-in;-moz-transition:all .15s ease-in;-o-transition:all .15s ease-in;transition:all .15s ease-in}.dpsp-networks-btns-wrapper li:before{display:none!important}.dpsp-networks-btns-wrapper li:first-child{margin-left:0!important}.dpsp-networks-btns-wrapper .dpsp-network-btn{display:flex;position:relative;-moz-box-sizing:border-box;box-sizing:border-box;width:100%;min-width:40px;height:40px;max-height:40px;padding:0;border:2px solid;border-radius:0;box-shadow:none;font-family:Arial,sans-serif;font-size:14px;font-weight:700;line-height:36px;text-align:center;vertical-align:middle;text-decoration:none!important;text-transform:unset!important;cursor:pointer;-webkit-transition:all .15s ease-in;-moz-transition:all .15s ease-in;-o-transition:all .15s ease-in;transition:all .15s ease-in}.dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-label{padding-right:.5em;padding-left:.5em}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count .dpsp-network-label{padding-right:.25em}.dpsp-networks-btns-wrapper.dpsp-column-auto .dpsp-network-btn.dpsp-no-label{width:40px}.dpsp-networks-btns-wrapper.dpsp-column-auto .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{left:0}.dpsp-button-style-6 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-button-style-7 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-button-style-8 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{left:-2px}.dpsp-networks-btns-wrapper .dpsp-network-btn:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn:hover{border:2px solid;outline:none;box-shadow:0 0 0 3px rgba(21,156,228,.4);box-shadow:0 0 0 3px var(--networkHover)}.dpsp-networks-btns-wrapper .dpsp-network-btn:after{display:block;clear:both;height:0;content:""}.dpsp-networks-btns-wrapper.dpsp-column-auto .dpsp-network-btn.dpsp-no-label{padding-left:0!important}.dpsp-size-small .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{width:28px}.dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-count{padding-right:.5em;padding-left:.25em;font-size:13px;font-weight:400;white-space:nowrap}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-count{position:absolute;bottom:0;left:0;width:100%;height:20px;margin-left:0;padding-left:.5em;font-size:11px;line-height:20px;text-align:center}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sticky-bar .dpsp-network-btn .dpsp-network-count{padding-left:.5em}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label .dpsp-network-label-wrapper{display:none}.dpsp-button-style-6 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-column-auto):not(.dpsp-column-6) .dpsp-network-btn.dpsp-has-count-only .dpsp-network-label-wrapper,.dpsp-button-style-7 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-column-auto):not(.dpsp-column-6) .dpsp-network-btn.dpsp-has-count-only .dpsp-network-label-wrapper{display:inline-block;text-indent:2em}.dpsp-networks-btns-wrapper.dpsp-column-1 li{width:100%;margin-left:0}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-1 li{margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-2 li{width:50%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-2 li{width:49%}.dpsp-networks-btns-wrapper.dpsp-column-2 li:nth-child(2n){margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-3 li{width:33.3333%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-3 li{width:32%}.dpsp-networks-btns-wrapper.dpsp-column-3 li:nth-child(3n){margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-4 li{width:25%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-4 li{width:23.5%}.dpsp-networks-btns-wrapper.dpsp-column-4 li:nth-child(4n){margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-5 li{width:20%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-5 li{width:18.4%}.dpsp-networks-btns-wrapper.dpsp-column-5 li:nth-child(5n){margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-6 li{width:16.6666%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-6 li{width:15%}.dpsp-networks-btns-wrapper.dpsp-column-6 li:nth-child(6n){margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-7 li{width:14.285%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-7 li{width:13%}.dpsp-networks-btns-wrapper.dpsp-column-7 li:nth-child(6n){margin-right:0}.dpsp-shape-circle .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:not(.dpsp-no-label){padding-right:10px}.dpsp-no-labels .dpsp-networks-btns-wrapper .dpsp-network-btn{padding:0!important;text-align:center}.dpsp-facebook{--networkAccent:#334d87;--networkColor:#3a579a;--networkHover:rgba(51,77,135,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook{border-color:#3a579a;color:#3a579a;background:#3a579a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:not(:hover):not(:active){color:#3a579a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook .dpsp-network-icon{border-color:#3a579a;color:#3a579a;background:#3a579a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#3a579a));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#3a579a))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#3a579a));stroke:var(--customNetworkColor,var(--networkColor,#3a579a));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:hover .dpsp-network-icon{border-color:#334d87;color:#334d87;background:#334d87}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#334d87}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#334d87));stroke:var(--customNetworkHoverColor,var(--networkHover,#334d87))}.dpsp-twitter{--networkAccent:#0099d7;--networkColor:#00abf0;--networkHover:rgba(0,153,215,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter{border-color:#00abf0;color:#00abf0;background:#00abf0}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:not(:hover):not(:active){color:#00abf0}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter .dpsp-network-icon{border-color:#00abf0;color:#00abf0;background:#00abf0}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#00abf0));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#00abf0))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#00abf0));stroke:var(--customNetworkColor,var(--networkColor,#00abf0));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:hover .dpsp-network-icon{border-color:#0099d7;color:#0099d7;background:#0099d7}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#0099d7}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#0099d7));stroke:var(--customNetworkHoverColor,var(--networkHover,#0099d7))}.dpsp-pinterest{--networkAccent:#b31e24;--networkColor:#c92228;--networkHover:rgba(179,30,36,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest{border-color:#c92228;color:#c92228;background:#c92228}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:not(:hover):not(:active){color:#c92228}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest .dpsp-network-icon{border-color:#c92228;color:#c92228;background:#c92228}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#c92228));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#c92228))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#c92228));stroke:var(--customNetworkColor,var(--networkColor,#c92228));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:hover .dpsp-network-icon{border-color:#b31e24;color:#b31e24;background:#b31e24}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#b31e24}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#b31e24));stroke:var(--customNetworkHoverColor,var(--networkHover,#b31e24))}.dpsp-linkedin{--networkAccent:#00669c;--networkColor:#0077b5;--networkHover:rgba(0,102,156,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin{border-color:#0077b5;color:#0077b5;background:#0077b5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:not(:hover):not(:active){color:#0077b5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin .dpsp-network-icon{border-color:#0077b5;color:#0077b5;background:#0077b5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#0077b5));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#0077b5))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#0077b5));stroke:var(--customNetworkColor,var(--networkColor,#0077b5));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:hover .dpsp-network-icon{border-color:#00669c;color:#00669c;background:#00669c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#00669c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#00669c));stroke:var(--customNetworkHoverColor,var(--networkHover,#00669c))}.dpsp-reddit{--networkAccent:#ff4200;--networkColor:#ff5700;--networkHover:rgba(255,66,0,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit{border-color:#ff5700;color:#ff5700;background:#ff5700}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:not(:hover):not(:active){color:#ff5700}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit .dpsp-network-icon{border-color:#ff5700;color:#ff5700;background:#ff5700}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#ff5700));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#ff5700))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#ff5700));stroke:var(--customNetworkColor,var(--networkColor,#ff5700));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:hover .dpsp-network-icon{border-color:#ff4200;color:#ff4200;background:#ff4200}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#ff4200}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#ff4200));stroke:var(--customNetworkHoverColor,var(--networkHover,#ff4200))}.dpsp-vkontakte{--networkAccent:#456992;--networkColor:#4d75a3;--networkHover:rgba(69,105,146,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte{border-color:#4d75a3;color:#4d75a3;background:#4d75a3}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:not(:hover):not(:active){color:#4d75a3}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte .dpsp-network-icon{border-color:#4d75a3;color:#4d75a3;background:#4d75a3}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#4d75a3));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#4d75a3))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#4d75a3));stroke:var(--customNetworkColor,var(--networkColor,#4d75a3));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:hover .dpsp-network-icon{border-color:#456992;color:#456992;background:#456992}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#456992}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#456992));stroke:var(--customNetworkHoverColor,var(--networkHover,#456992))}.dpsp-whatsapp{--networkAccent:#21c960;--networkColor:#25d366;--networkHover:rgba(33,201,96,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp{border-color:#25d366;color:#25d366;background:#25d366}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:not(:hover):not(:active){color:#25d366}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp .dpsp-network-icon{border-color:#25d366;color:#25d366;background:#25d366}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#25d366));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#25d366))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#25d366));stroke:var(--customNetworkColor,var(--networkColor,#25d366));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:hover .dpsp-network-icon{border-color:#21c960;color:#21c960;background:#21c960}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#21c960}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#21c960));stroke:var(--customNetworkHoverColor,var(--networkHover,#21c960))}.dpsp-instagram{--networkAccent:#a9257e;--networkColor:#bc2a8d;--networkHover:rgba(169,37,126,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram{border-color:#bc2a8d;color:#bc2a8d;background:#bc2a8d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:not(:hover):not(:active){color:#bc2a8d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram .dpsp-network-icon{border-color:#bc2a8d;color:#bc2a8d;background:#bc2a8d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#bc2a8d));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#bc2a8d))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#bc2a8d));stroke:var(--customNetworkColor,var(--networkColor,#bc2a8d));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:hover .dpsp-network-icon{border-color:#a9257e;color:#a9257e;background:#a9257e}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#a9257e}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#a9257e));stroke:var(--customNetworkHoverColor,var(--networkHover,#a9257e))}.dpsp-youtube{--networkAccent:#a20000;--networkColor:#b00;--networkHover:rgba(162,0,0,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube{border-color:#b00;color:#b00;background:#b00}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:not(:hover):not(:active){color:#b00}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube .dpsp-network-icon{border-color:#b00;color:#b00;background:#b00}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#b00));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#b00))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#b00));stroke:var(--customNetworkColor,var(--networkColor,#b00));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:hover .dpsp-network-icon{border-color:#a20000;color:#a20000;background:#a20000}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#a20000}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#a20000));stroke:var(--customNetworkHoverColor,var(--networkHover,#a20000))}.dpsp-vimeo{--networkAccent:#2bb2ff;--networkColor:#4bf;--networkHover:rgba(43,178,255,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo{border-color:#4bf;color:#4bf;background:#4bf}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:not(:hover):not(:active){color:#4bf}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo .dpsp-network-icon{border-color:#4bf;color:#4bf;background:#4bf}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#4bf));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#4bf))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#4bf));stroke:var(--customNetworkColor,var(--networkColor,#4bf));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:hover .dpsp-network-icon{border-color:#2bb2ff;color:#2bb2ff;background:#2bb2ff}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#2bb2ff}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#2bb2ff));stroke:var(--customNetworkHoverColor,var(--networkHover,#2bb2ff))}.dpsp-soundcloud{--networkAccent:#e64c00;--networkColor:#f50;--networkHover:rgba(230,76,0,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud{border-color:#f50;color:#f50;background:#f50}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:not(:hover):not(:active){color:#f50}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud .dpsp-network-icon{border-color:#f50;color:#f50;background:#f50}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#f50));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#f50))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#f50));stroke:var(--customNetworkColor,var(--networkColor,#f50));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:hover .dpsp-network-icon{border-color:#e64c00;color:#e64c00;background:#e64c00}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#e64c00}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#e64c00));stroke:var(--customNetworkHoverColor,var(--networkHover,#e64c00))}.dpsp-twitch{--networkAccent:#593a93;--networkColor:#6441a5;--networkHover:rgba(89,58,147,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch{border-color:#6441a5;color:#6441a5;background:#6441a5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:not(:hover):not(:active){color:#6441a5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch .dpsp-network-icon{border-color:#6441a5;color:#6441a5;background:#6441a5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#6441a5));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#6441a5))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#6441a5));stroke:var(--customNetworkColor,var(--networkColor,#6441a5));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:hover .dpsp-network-icon{border-color:#593a93;color:#593a93;background:#593a93}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#593a93}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#593a93));stroke:var(--customNetworkHoverColor,var(--networkHover,#593a93))}.dpsp-yummly{--networkAccent:#d84d1a;--networkColor:#e55a27;--networkHover:rgba(216,77,26,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly{border-color:#e55a27;color:#e55a27;background:#e55a27}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:not(:hover):not(:active){color:#e55a27}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly .dpsp-network-icon{border-color:#e55a27;color:#e55a27;background:#e55a27}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#e55a27));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#e55a27))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#e55a27));stroke:var(--customNetworkColor,var(--networkColor,#e55a27));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:hover .dpsp-network-icon{border-color:#d84d1a;color:#d84d1a;background:#d84d1a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#d84d1a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#d84d1a));stroke:var(--customNetworkHoverColor,var(--networkHover,#d84d1a))}.dpsp-behance{--networkAccent:#0053e6;--networkColor:#005cff;--networkHover:rgba(0,83,230,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance{border-color:#005cff;color:#005cff;background:#005cff}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:not(:hover):not(:active){color:#005cff}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance .dpsp-network-icon{border-color:#005cff;color:#005cff;background:#005cff}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#005cff));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#005cff))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#005cff));stroke:var(--customNetworkColor,var(--networkColor,#005cff));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:hover .dpsp-network-icon{border-color:#0053e6;color:#0053e6;background:#0053e6}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#0053e6}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#0053e6));stroke:var(--customNetworkHoverColor,var(--networkHover,#0053e6))}.dpsp-email{--networkAccent:#239e57;--networkColor:#27ae60;--networkHover:rgba(35,158,87,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email{border-color:#27ae60;color:#27ae60;background:#27ae60}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:not(:hover):not(:active){color:#27ae60}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email .dpsp-network-icon{border-color:#27ae60;color:#27ae60;background:#27ae60}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#27ae60));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#27ae60))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#27ae60));stroke:var(--customNetworkColor,var(--networkColor,#27ae60));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:hover .dpsp-network-icon{border-color:#239e57;color:#239e57;background:#239e57}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#239e57}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#239e57));stroke:var(--customNetworkHoverColor,var(--networkHover,#239e57))}.dpsp-print{--networkAccent:#afb6bb;--networkColor:#bdc3c7;--networkHover:rgba(175,182,187,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print{border-color:#bdc3c7;color:#bdc3c7;background:#bdc3c7}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:not(:hover):not(:active){color:#bdc3c7}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print .dpsp-network-icon{border-color:#bdc3c7;color:#bdc3c7;background:#bdc3c7}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#bdc3c7));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#bdc3c7))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#bdc3c7));stroke:var(--customNetworkColor,var(--networkColor,#bdc3c7));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:hover .dpsp-network-icon{border-color:#afb6bb;color:#afb6bb;background:#afb6bb}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#afb6bb}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#afb6bb));stroke:var(--customNetworkHoverColor,var(--networkHover,#afb6bb))}.dpsp-pocket{--networkAccent:#e63c51;--networkColor:#ed4055;--networkHover:rgba(230,60,81,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket{border-color:#ed4055;color:#ed4055;background:#ed4055}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:not(:hover):not(:active){color:#ed4055}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket .dpsp-network-icon{border-color:#ed4055;color:#ed4055;background:#ed4055}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#ed4055));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#ed4055))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#ed4055));stroke:var(--customNetworkColor,var(--networkColor,#ed4055));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:hover .dpsp-network-icon{border-color:#e63c51;color:#e63c51;background:#e63c51}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#e63c51}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#e63c51));stroke:var(--customNetworkHoverColor,var(--networkHover,#e63c51))}.dpsp-buffer{--networkAccent:#21282f;--networkColor:#29323b;--networkHover:rgba(33,40,47,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer{border-color:#29323b;color:#29323b;background:#29323b}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:not(:hover):not(:active){color:#29323b}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer .dpsp-network-icon{border-color:#29323b;color:#29323b;background:#29323b}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#29323b));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#29323b))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#29323b));stroke:var(--customNetworkColor,var(--networkColor,#29323b));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:hover .dpsp-network-icon{border-color:#21282f;color:#21282f;background:#21282f}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#21282f}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#21282f));stroke:var(--customNetworkHoverColor,var(--networkHover,#21282f))}.dpsp-tumblr{--networkAccent:#2e3d50;--networkColor:#35465c;--networkHover:rgba(46,61,80,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr{border-color:#35465c;color:#35465c;background:#35465c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:not(:hover):not(:active){color:#35465c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr .dpsp-network-icon{border-color:#35465c;color:#35465c;background:#35465c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#35465c));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#35465c))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#35465c));stroke:var(--customNetworkColor,var(--networkColor,#35465c));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:hover .dpsp-network-icon{border-color:#2e3d50;color:#2e3d50;background:#2e3d50}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#2e3d50}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#2e3d50));stroke:var(--customNetworkHoverColor,var(--networkHover,#2e3d50))}.dpsp-xing{--networkAccent:#006a6c;--networkColor:#00888d;--networkHover:rgba(0,106,108,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing{border-color:#00888d;color:#00888d;background:#00888d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:not(:hover):not(:active){color:#00888d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing .dpsp-network-icon{border-color:#00888d;color:#00888d;background:#00888d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#00888d));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#00888d))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#00888d));stroke:var(--customNetworkColor,var(--networkColor,#00888d));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:hover .dpsp-network-icon{border-color:#006a6c;color:#006a6c;background:#006a6c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#006a6c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#006a6c));stroke:var(--customNetworkHoverColor,var(--networkHover,#006a6c))}.dpsp-github{--networkAccent:#222;--networkColor:#333;--networkHover:rgba(34,34,34,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github{border-color:#333;color:#333;background:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:not(:hover):not(:active){color:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github .dpsp-network-icon{border-color:#333;color:#333;background:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#333));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#333))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#333));stroke:var(--customNetworkColor,var(--networkColor,#333));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:hover .dpsp-network-icon{border-color:#222;color:#222;background:#222}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#222}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#222));stroke:var(--customNetworkHoverColor,var(--networkHover,#222))}.dpsp-flipboard{--networkAccent:#d21d1d;--networkColor:#e12828;--networkHover:rgba(210,29,29,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard{border-color:#e12828;color:#e12828;background:#e12828}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:not(:hover):not(:active){color:#e12828}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard .dpsp-network-icon{border-color:#e12828;color:#e12828;background:#e12828}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#e12828));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#e12828))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#e12828));stroke:var(--customNetworkColor,var(--networkColor,#e12828));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:hover .dpsp-network-icon{border-color:#d21d1d;color:#d21d1d;background:#d21d1d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#d21d1d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#d21d1d));stroke:var(--customNetworkHoverColor,var(--networkHover,#d21d1d))}.dpsp-telegram{--networkAccent:#0077b3;--networkColor:#08c;--networkHover:rgba(0,119,179,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram{border-color:#08c;color:#08c;background:#08c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:not(:hover):not(:active){color:#08c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram .dpsp-network-icon{border-color:#08c;color:#08c;background:#08c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#08c));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#08c))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#08c));stroke:var(--customNetworkColor,var(--networkColor,#08c));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:hover .dpsp-network-icon{border-color:#0077b3;color:#0077b3;background:#0077b3}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#0077b3}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#0077b3));stroke:var(--customNetworkHoverColor,var(--networkHover,#0077b3))}.dpsp-medium{--networkAccent:#111;--networkColor:#333;--networkHover:rgba(17,17,17,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium{border-color:#333;color:#333;background:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:not(:hover):not(:active){color:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium .dpsp-network-icon{border-color:#333;color:#333;background:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#333));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#333))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#333));stroke:var(--customNetworkColor,var(--networkColor,#333));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:hover .dpsp-network-icon{border-color:#111;color:#111;background:#111}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#111}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#111));stroke:var(--customNetworkHoverColor,var(--networkHover,#111))}.dpsp-mix{--networkAccent:#fd721c;--networkColor:#fd8235;--networkHover:rgba(253,114,28,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix{border-color:#fd8235;color:#fd8235;background:#fd8235}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:not(:hover):not(:active){color:#fd8235}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix .dpsp-network-icon{border-color:#fd8235;color:#fd8235;background:#fd8235}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#fd8235));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#fd8235))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#fd8235));stroke:var(--customNetworkColor,var(--networkColor,#fd8235));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:hover .dpsp-network-icon{border-color:#fd721c;color:#fd721c;background:#fd721c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fd721c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#fd721c));stroke:var(--customNetworkHoverColor,var(--networkHover,#fd721c))}.dpsp-grow{--networkAccent:#243c4a;--networkColor:#41a4a9;--networkHover:rgba(36,60,74,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow{border-color:#41a4a9;color:#41a4a9;background:#41a4a9}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:not(:hover):not(:active){color:#41a4a9}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow .dpsp-network-icon{border-color:#41a4a9;color:#41a4a9;background:#41a4a9}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#41a4a9));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#41a4a9))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#41a4a9));stroke:var(--customNetworkColor,var(--networkColor,#41a4a9));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:hover .dpsp-network-icon{border-color:#243c4a;color:#243c4a;background:#243c4a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#243c4a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#243c4a));stroke:var(--customNetworkHoverColor,var(--networkHover,#243c4a))}.dpsp-shape-rounded .dpsp-network-btn,.dpsp-shape-rounded .dpsp-network-btn .dpsp-network-icon{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.dpsp-shape-rounded .dpsp-network-btn,.dpsp-shape-rounded .dpsp-no-label.dpsp-network-btn .dpsp-network-icon{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.dpsp-shape-circle .dpsp-network-btn{border-radius:30px}.dpsp-shape-circle .dpsp-network-btn .dpsp-network-icon{overflow:hidden;border-radius:30px}.dpsp-has-spacing .dpsp-networks-btns-wrapper li{margin-right:2%;margin-bottom:10px;margin-left:0!important}.dpsp-size-small .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn{min-width:32px;height:32px;max-height:32px;line-height:28px}.dpsp-size-small .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{width:32px}.dpsp-size-small .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn .dpsp-network-icon{width:32px;height:32px;line-height:28px}.dpsp-size-small .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn .dpsp-network-icon-inner{height:28px}.dpsp-size-small .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label{width:32px}.dpsp-size-small .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{left:0}.dpsp-size-small.dpsp-button-style-6 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-size-small.dpsp-button-style-7 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-size-small.dpsp-button-style-8 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{left:-2px}.dpsp-size-large .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn{min-width:46px;height:46px;max-height:46px;line-height:42px}.dpsp-size-large .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon{width:46px;height:46px;line-height:42px}.dpsp-size-large .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon-inner{height:42px}.dpsp-size-large .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label{width:46px}.dpsp-size-large .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{left:0}.dpsp-size-large.dpsp-button-style-6 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-size-large.dpsp-button-style-7 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-size-large.dpsp-button-style-8 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{left:-2px}.dpsp-size-medium .dpsp-networks-btns-sidebar .dpsp-network-btn{min-width:45px;height:45px;max-height:45px;padding-left:0;line-height:41px}.dpsp-size-medium .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{width:45px;line-height:41px}.dpsp-size-medium .dpsp-networks-btns-sidebar.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count .dpsp-network-icon{height:26px;line-height:26px}.dpsp-size-large .dpsp-networks-btns-sidebar .dpsp-network-btn{min-width:50px;height:50px;max-height:50px;padding-left:0;line-height:46px}.dpsp-size-large .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{width:50px;line-height:46px}.dpsp-size-large .dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon{height:30px;line-height:30px}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow{max-width:0;max-height:0;opacity:0;transition:all .4s ease;transform-origin:top}.dpsp-card-inner .dpsp-networks-btns-wrapper .dpsp-network-list-item-grow{max-width:unset;max-height:unset;opacity:unset}.dpsp-card-inner .dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-count,.dpsp-card-inner .dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-icon,.dpsp-card-inner .dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-label{opacity:unset}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-count,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-label{opacity:0}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-load-in{max-width:20rem;max-height:70px;opacity:1;transition:all .5s ease}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-load-in .dpsp-network-count,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-load-in .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-load-in .dpsp-network-label{opacity:1;transition:opacity .4s ease .5s}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-loaded{max-width:20rem;max-height:70px;opacity:1;transition:all .2s ease}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-loaded .dpsp-network-count,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-loaded .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-loaded .dpsp-network-label{opacity:1;transition:all .2s ease}.dpsp-grow-check-icon{opacity:0;transition:all .2s ease;transform-origin:center center}.dpsp-grow-saved .dpsp-grow-check-icon{opacity:1}@media print{#dpsp-content-bottom,#dpsp-content-top,#dpsp-floating-sidebar,#dpsp-pop-up,#dpsp-pop-up-overlay,#dpsp-sticky-bar-wrapper,.dpsp-share-text{display:none!important}}.dpsp-pin-it-wrapper{display:inline-table;position:relative!important;line-height:0}.blocks-gallery-item .dpsp-pin-it-wrapper{display:inline-block}.dpsp-pin-it-wrapper.aligncenter,.dpsp-pin-it-wrapper.alignleft,.dpsp-pin-it-wrapper.alignright{display:table!important}.dpsp-pin-it-wrapper:hover .dpsp-pin-it-button{visibility:visible;color:#fff!important;background-color:#c92228!important}.dpsp-pin-it-wrapper.aligncenter{margin-right:auto;margin-left:auto}.wp-block-gallery.is-cropped .blocks-gallery-item .dpsp-pin-it-wrapper{height:100%;flex:1;object-fit:cover}.dpsp-pin-it-button{display:inline-block;position:absolute;visibility:hidden;width:auto!important;height:40px!important;border:0!important;color:transparent!important;background:transparent;background-image:none!important;box-shadow:none!important;font-family:Arial;font-size:14px;font-weight:700;line-height:40px;vertical-align:middle;text-decoration:none!important;transition:all .25s ease-in-out}.dpsp-pin-it-button:hover{color:#fff;background:#b31e24;box-shadow:none!important}.dpsp-pin-it-button.dpsp-pin-it-button-has-label{padding-right:20px}.dpsp-pin-it-button.dpsp-pin-it-button-has-label:after{display:inline-block;content:attr(title)}.dpsp-pin-it-button .dpsp-network-icon{display:inline-block;width:40px;height:40px;text-align:center;vertical-align:top}.dpsp-pin-it-button .dpsp-network-icon svg{display:inline-block;height:20px;vertical-align:middle;fill:#fff}.dpsp-pin-it-button.dpsp-pin-it-button-top-left{top:10px;left:10px}.dpsp-pin-it-button.dpsp-pin-it-button-top-right{top:10px;right:10px}.dpsp-pin-it-button.dpsp-pin-it-button-bottom-left{bottom:10px;left:10px}.dpsp-pin-it-button.dpsp-pin-it-button-bottom-right{right:10px;bottom:10px}.dpsp-pin-it-button.dpsp-pin-it-button-center{top:50%;left:50%;white-space:nowrap;transform:translate(-50%,-50%)}.dpsp-pin-it-button.dpsp-pin-it-button-shape-rectangular{border-radius:0}.dpsp-pin-it-button.dpsp-pin-it-button-shape-rounded{border-radius:4px}.dpsp-pin-it-button.dpsp-pin-it-button-shape-circle{border-radius:40px}.dpsp-pin-it-wrapper .dpsp-pin-it-overlay{display:block;position:absolute;top:0;left:0;visibility:hidden;width:100%;height:100%;opacity:0;background:#fff;transition:all .25s ease-in-out;pointer-events:none}.dpsp-pin-it-wrapper:hover .dpsp-pin-it-overlay{visibility:visible;opacity:.4}.dpsp-networks-btns-wrapper.dpsp-networks-btns-pop-up.dpsp-column-auto{text-align:center}.dpsp-networks-btns-wrapper.dpsp-networks-btns-pop-up.dpsp-column-auto li{display:inline-block;float:none}.dpsp-shortcode-wrapper{margin-bottom:1.2em}#dpsp-floating-sidebar{position:fixed;top:50%;transform:translateY(-50%);z-index:9998}#dpsp-floating-sidebar.dpsp-position-left{left:0}#dpsp-floating-sidebar.dpsp-position-right{right:0}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar li{float:none;margin-left:0}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn{width:40px;padding:0}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{border-color:transparent!important;background:transparent!important}.dpsp-size-medium .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon-inner{height:41px}.dpsp-size-large .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon-inner{height:46px}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon{height:22px;line-height:22px}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon-inner{height:18px}.dpsp-size-large .dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon-inner{height:30px}#dpsp-floating-sidebar.dpsp-no-animation{display:none}#dpsp-floating-sidebar.dpsp-no-animation.opened{display:block}#dpsp-floating-sidebar.stop-hidden,#dpsp-floating-sidebar.stop-hidden.opened{visibility:hidden}#dpsp-floating-sidebar.dpsp-animation-1{opacity:0;transition:opacity .2s ease-in-out}#dpsp-floating-sidebar.dpsp-animation-1.opened{opacity:1}#dpsp-floating-sidebar.dpsp-position-left.dpsp-animation-2,#dpsp-floating-sidebar.dpsp-position-left.dpsp-shape-circle.dpsp-animation-2{left:-60px;transition:left .2s ease-in-out}#dpsp-floating-sidebar.dpsp-position-left.dpsp-animation-2.opened{left:0}#dpsp-floating-sidebar.dpsp-position-left.dpsp-shape-circle.dpsp-animation-2.opened{left:12px}#dpsp-floating-sidebar.dpsp-position-right.dpsp-animation-2,#dpsp-floating-sidebar.dpsp-position-right.dpsp-shape-circle.dpsp-animation-2{right:-60px;transition:right .2s ease-in-out}#dpsp-floating-sidebar.dpsp-position-right.dpsp-animation-2.opened{right:0}#dpsp-floating-sidebar.dpsp-position-right.dpsp-shape-circle.dpsp-animation-2.opened{right:10px}.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn,.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{border-radius:0}.dpsp-position-left.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-first,.dpsp-position-left.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-first .dpsp-network-icon{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px}.dpsp-position-left.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-last,.dpsp-position-left.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-last .dpsp-network-icon{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.dpsp-position-left.dpsp-shape-rounded.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn,.dpsp-position-left.dpsp-shape-rounded.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.dpsp-position-right.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-first,.dpsp-position-right.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-first .dpsp-network-icon{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}.dpsp-position-right.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-last,.dpsp-position-right.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-last .dpsp-network-icon{-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.dpsp-position-right.dpsp-shape-rounded.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn,.dpsp-position-right.dpsp-shape-rounded.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.dpsp-shape-rounded.dpsp-has-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{border-radius:4px}#dpsp-floating-sidebar.dpsp-position-left.dpsp-shape-circle{left:12px}#dpsp-floating-sidebar.dpsp-position-right.dpsp-shape-circle{right:10px}.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn{margin-bottom:6px}.dpsp-shape-rounded.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}#dpsp-floating-sidebar.dpsp-style-2 .dpsp-network-btn .dpsp-network-icon{background:none}#dpsp-floating-sidebar .dpsp-networks-btns-wrapper li{position:relative;overflow:visible}#dpsp-floating-sidebar .dpsp-networks-btns-wrapper .dpsp-network-label{display:inline-block;position:absolute;top:50%;visibility:hidden;box-sizing:border-box;width:auto;height:30px;margin-top:-15px;padding:6px 12px;border-radius:3px;opacity:0;color:#fff;background:#34495e;font-size:12px;font-weight:400;line-height:18px;white-space:nowrap;transition:all .2s ease-in-out;z-index:1}#dpsp-floating-sidebar.dpsp-position-left .dpsp-networks-btns-wrapper .dpsp-network-label{left:100%}#dpsp-floating-sidebar.dpsp-position-right .dpsp-networks-btns-wrapper .dpsp-network-label{right:100%}#dpsp-floating-sidebar.dpsp-position-left .dpsp-networks-btns-wrapper li.dpsp-hover .dpsp-network-label{visibility:visible;opacity:1;transform:translateX(10px)}#dpsp-floating-sidebar.dpsp-position-right .dpsp-networks-btns-wrapper li.dpsp-hover .dpsp-network-label{visibility:visible;opacity:1;transform:translateX(-10px)}#dpsp-floating-sidebar .dpsp-networks-btns-wrapper .dpsp-network-label:before{display:block;position:absolute;top:50%;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;content:""}#dpsp-floating-sidebar.dpsp-position-left .dpsp-networks-btns-wrapper .dpsp-network-label:before{left:-5px;border-right:5px solid #34495e}#dpsp-floating-sidebar.dpsp-position-right .dpsp-networks-btns-wrapper .dpsp-network-label:before{right:-5px;border-left:5px solid #34495e}.dpsp-settings-button-style .dpsp-networks-btns-sidebar .dpsp-network-label{display:none}#dpsp-sticky-bar-wrapper{position:fixed;bottom:0;left:0;width:100%;background:#fff;z-index:1000}#dpsp-sticky-bar-wrapper.dpsp-position-desktop-top{top:0;bottom:auto}#dpsp-sticky-bar-wrapper.dpsp-position-desktop-bottom{top:auto;bottom:0}#dpsp-sticky-bar-wrapper.dpsp-no-animation{visibility:hidden;opacity:0}#dpsp-sticky-bar-wrapper.dpsp-no-animation.opened{visibility:visible;opacity:1}#dpsp-sticky-bar{display:none;position:relative;box-sizing:border-box;margin:7px 0}#dpsp-sticky-bar .dpsp-networks-btns-wrapper{display:flex}#dpsp-sticky-bar .dpsp-networks-btns-wrapper li{float:none;margin-right:3px;margin-bottom:0;margin-left:3px;flex:1}#dpsp-sticky-bar .dpsp-networks-btns-wrapper li:last-of-type{margin-right:0}#dpsp-sticky-bar .dpsp-network-btn{padding-right:1em;padding-left:1em;text-align:center}#dpsp-sticky-bar .dpsp-network-btn .dpsp-network-icon{display:inline-block;position:relative;overflow:visible;width:20px}#dpsp-sticky-bar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon{margin-right:5px}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-top{top:0;bottom:auto}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-bottom{top:auto;bottom:0}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar{position:static;width:100%!important;margin:0;padding:0}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar .dpsp-networks-btns-wrapper li{margin:0}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar .dpsp-network-btn{height:44px;max-height:44px;padding-right:0;padding-left:0;border-radius:0;line-height:40px;text-align:center}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar .dpsp-network-btn .dpsp-network-icon{display:inline-block;position:relative;left:auto;float:none;font-size:18px;line-height:40px}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon{display:block;position:absolute;width:100%;height:26px;line-height:26px}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar .dpsp-network-btn .dpsp-network-count{position:absolute;bottom:0;left:0;width:100%;height:20px;margin-left:0;font-size:11px;line-height:20px;text-align:center}#dpsp-sticky-bar-wrapper.dpsp-animation-1{visibility:hidden;opacity:0;transition:opacity .2s ease-in-out}#dpsp-sticky-bar-wrapper.dpsp-animation-1.opened{visibility:visible;opacity:1}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-bottom.dpsp-animation-2,#dpsp-sticky-bar-wrapper:not(.dpsp-is-mobile).dpsp-position-desktop-bottom.dpsp-animation-2{bottom:-88px;visibility:hidden;transition:bottom .3s ease-in-out,visibility .3s ease-in-out}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-bottom.dpsp-animation-2.opened,#dpsp-sticky-bar-wrapper:not(.dpsp-is-mobile).dpsp-position-desktop-bottom.dpsp-animation-2.opened{bottom:0;visibility:visible}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-top.dpsp-animation-2,#dpsp-sticky-bar-wrapper:not(.dpsp-is-mobile).dpsp-position-desktop-top.dpsp-animation-2{top:-88px;bottom:auto;visibility:hidden;transition:top .3s ease-in-out,visibility .3s ease-in-out}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-top.dpsp-animation-2.opened,#dpsp-sticky-bar-wrapper:not(.dpsp-is-mobile).dpsp-position-desktop-top.dpsp-animation-2.opened{top:0;visibility:visible}@media screen and (min-width:782px){body.admin-bar #dpsp-sticky-bar-wrapper{margin-top:32px}}.dpsp-click-to-tweet{display:block;position:relative;margin:1.5em 0;font-size:105%;text-decoration:none;transition:all .15s ease-in}.dpsp-click-to-tweet,.dpsp-click-to-tweet:hover{box-shadow:none!important}.dpsp-click-to-tweet.dpsp-has-avatar{min-height:115px;padding-left:120px!important}.dpsp-click-to-tweet.dpsp-has-avatar .avatar{position:absolute;top:15px;left:15px;border-radius:50%;box-shadow:none!important}.dpsp-click-to-tweet-footer:after,.dpsp-click-to-tweet:after{display:block;clear:both;content:""}.dpsp-click-to-tweet-content{display:block;position:relative;font-family:Georgia;font-size:18px;line-height:1.5;text-align:left;z-index:2}.dpsp-click-to-tweet-footer{display:block;margin-top:1em;color:#999;font-family:Arial;font-size:14px;font-weight:700}.dpsp-click-to-tweet.dpsp-click-to-tweet-cta-left .dpsp-click-to-tweet-cta{float:left}.dpsp-click-to-tweet.dpsp-click-to-tweet-cta-right .dpsp-click-to-tweet-cta{float:right}.dpsp-click-to-tweet-cta{color:#00abf0;line-height:1}.dpsp-click-to-tweet-cta svg{fill:#00abf0}.dpsp-click-to-tweet-cta .dpsp-twitter{display:inline-block;vertical-align:middle}.dpsp-click-to-tweet-cta>span{margin-right:10px;vertical-align:middle}.dpsp-click-to-tweet:hover .dpsp-twitter .dpsp-network-icon-inner{transition:all .2s ease-in-out}.dpsp-click-to-tweet.dpsp-click-to-tweet-cta-icon-animation:hover .dpsp-click-to-tweet-cta .dpsp-twitter .dpsp-network-icon-after{margin-left:-10px;opacity:1}.dpsp-click-to-tweet.dpsp-click-to-tweet-cta-icon-animation:hover .dpsp-click-to-tweet-cta .dpsp-twitter .dpsp-network-icon-before{margin-left:10px;opacity:0}a.dpsp-click-to-tweet.dpsp-style-1{padding:15px 5px 5px 30px;border:0;border-left:5px solid #00abf0;color:#555}a.dpsp-click-to-tweet.dpsp-style-1:hover{border-left:5px solid #0099d7}a.dpsp-click-to-tweet.dpsp-style-2{padding:20px 30px;border:0;border-left:5px solid #00abf0;color:#555;background:#f6f6f6}a.dpsp-click-to-tweet.dpsp-style-2:hover{border-left:5px solid #0099d7}a.dpsp-click-to-tweet.dpsp-style-3{padding:20px 30px;border:1px solid #e1e1e1;border-radius:3px;color:#838383}a.dpsp-click-to-tweet.dpsp-style-3:hover{color:#555}a.dpsp-click-to-tweet.dpsp-style-4{padding:20px 30px;border:4px double #e1e1e1;border-radius:0;color:#838383}a.dpsp-click-to-tweet.dpsp-style-4:hover{color:#555}a.dpsp-click-to-tweet.dpsp-style-5{padding:20px 30px;border:0;border-left:0 solid transparent;border-radius:3px;color:#fff;background:#00abf0;transition:border .2s ease-in-out}a.dpsp-click-to-tweet.dpsp-style-5 .dpsp-click-to-tweet-cta{color:#fff}a.dpsp-click-to-tweet.dpsp-style-5 .dpsp-click-to-tweet-cta svg{fill:#fff}a.dpsp-click-to-tweet.dpsp-style-5:hover{border-left:9px solid #0099d7;color:#fff}a.dpsp-click-to-tweet.dpsp-style-5 .dpsp-click-to-tweet-content,a.dpsp-click-to-tweet.dpsp-style-5 .dpsp-click-to-tweet-footer,a.dpsp-click-to-tweet.dpsp-style-5>img{transition:margin-left .2s ease-in-out}a.dpsp-click-to-tweet.dpsp-style-5:hover .dpsp-click-to-tweet-content,a.dpsp-click-to-tweet.dpsp-style-5:hover .dpsp-click-to-tweet-footer,a.dpsp-click-to-tweet.dpsp-style-5:hover>img{margin-left:-9px}.dpsp-shortcode-follow-wrapper>.dpsp-networks-btns-follow-widget{display:flex;flex-flow:row wrap}.dpsp-shortcode-follow-wrapper.dpsp-follow-align-left>.dpsp-networks-btns-follow-widget{justify-content:flex-start}.dpsp-shortcode-follow-wrapper.dpsp-follow-align-center>.dpsp-networks-btns-follow-widget{justify-content:center}.dpsp-shortcode-follow-wrapper.dpsp-follow-align-right>.dpsp-networks-btns-follow-widget{justify-content:flex-end}.dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon{display:block;position:relative;top:-2px;left:-2px;-moz-box-sizing:border-box;box-sizing:border-box;width:40px;height:40px;border:2px solid;font-size:14px;line-height:36px;text-align:center;-webkit-transition:all .15s ease-in;-moz-transition:all .15s ease-in;-o-transition:all .15s ease-in;transition:all .15s ease-in;align-self:start;flex:0 0 auto}.dpsp-icon-total-share svg,.dpsp-network-icon .dpsp-network-icon-inner svg{position:relative;overflow:visible;width:auto;max-height:14px;transition:fill .15s ease-in-out}.dpsp-size-large .dpsp-icon-total-share svg,.dpsp-size-large .dpsp-network-icon .dpsp-network-icon-inner svg{max-height:22px}.widget_dpsp_social_media_follow .dpsp-network-icon .dpsp-network-icon-inner svg{top:.05em}.dpsp-icon-total-share,.dpsp-network-icon-inner{display:flex;align-items:center;justify-content:center}.dpsp-network-icon-inner{height:36px;transition:all .2s ease}.dpsp-networks-btns-wrapper.dpsp-has-button-icon-animation .dpsp-network-btn:hover .dpsp-network-icon-inner{transition:all .2s cubic-bezier(.62,3.15,.4,-.64);transform:scale(1.5)}#dpsp-pop-up{position:fixed;width:100%;max-width:750px;padding:40px;border-radius:10px;opacity:0;background:#fff;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;transform:translate(-50%,-50%);z-index:9999}#dpsp-pop-up.dpsp-animation-1{transform:translate(-50%,-50%) scale(.1)}#dpsp-pop-up.dpsp-animation-3{transform:translate(-50%)}#dpsp-pop-up.dpsp-animation-4{transform:translate(-50%,-100%)}#dpsp-pop-up-overlay.no-animation,#dpsp-pop-up.no-animation{-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}#dpsp-pop-up.opened{top:50%;left:50%;opacity:1;transform:scale(1) translate(-50%,-50%)}#dpsp-pop-up-overlay{display:block;position:fixed;top:0;left:0;width:0;height:0;opacity:0;background:#000;-webkit-transition:opacity .25s ease-in-out,margin .25s ease-in-out;-moz-transition:opacity .25s ease-in-out,margin .25s ease-in-out;-o-transition:opacity .25s ease-in-out,margin .25s ease-in-out;transition:opacity .25s ease-in-out,margin .25s ease-in-out;z-index:9998}#dpsp-pop-up-overlay.opened{width:100%;height:100%;opacity:.65}#dpsp-pop-up-content{text-align:center}#dpsp-pop-up-close{display:block;position:absolute;top:10px;right:10px;width:22px;height:22px;line-height:22px;text-align:center;vertical-align:middle;cursor:pointer}#dpsp-pop-up-close svg{position:relative;top:2px;width:auto;max-height:16px;vertical-align:top;fill:#999}#dpsp-pop-up h2{margin-bottom:1em}#dpsp-pop-up h2 p{font-size:inherit}#dpsp-pop-up h2 p:last-of-type{margin-top:0;margin-bottom:0}#dpsp-pop-up p{margin-top:1em;margin-bottom:1em}#dpsp-post-bottom{width:0;height:0;margin:0;padding:0}@media screen and (max-width:800px){#dpsp-pop-up{width:90%}}@media screen and (max-width:720px){#dpsp-pop-up .dpsp-networks-btns-wrapper li{width:100%;margin-right:0;margin-left:0}}.dpsp-top-shared-post{margin-bottom:2em}.dpsp-top-shared-post-thumbnail{display:block;margin-bottom:1.2em}.dpsp-top-shared-post-thumbnail img{max-width:100%;height:auto}.dpsp-top-shared-post-title{display:inline-block;margin-bottom:.5em}.dpsp-show-total-share-count{position:relative}.dpsp-total-share-wrapper{position:relative;margin-top:10px;color:#5d6368;font-family:Helvetica,Helvetica Neue,Arial,sans-serif;line-height:1.345}.dpsp-total-share-wrapper .dpsp-total-share-count{font-size:15px;line-height:18px;white-space:nowrap}.dpsp-total-share-wrapper .dpsp-icon-total-share{position:absolute;top:6px;left:0;margin-top:0;margin-left:0}.dpsp-total-share-wrapper .dpsp-icon-total-share svg{top:2px;width:auto;max-height:16px;fill:#5d6368}#dpsp-floating-sidebar .dpsp-total-share-wrapper{margin-bottom:10px}#dpsp-floating-sidebar .dpsp-total-share-wrapper .dpsp-icon-total-share{display:none}.dpsp-total-share-wrapper span{display:block;font-size:11px;font-weight:700;text-align:center;white-space:nowrap;text-transform:uppercase}.dpsp-content-wrapper .dpsp-total-share-wrapper,.dpsp-pop-up-buttons-wrapper .dpsp-total-share-wrapper,.dpsp-share-buttons-wrapper .dpsp-total-share-wrapper,.dpsp-shortcode-wrapper .dpsp-total-share-wrapper{position:absolute;top:50%;box-sizing:border-box;width:60px;height:40px;margin-top:-21px;padding-left:20px}#dpsp-sticky-bar .dpsp-total-share-wrapper{height:32px;margin-top:-16px}#dpsp-sticky-bar-wrapper.dpsp-is-mobile .dpsp-total-share-wrapper{display:none}.dpsp-content-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before,.dpsp-pop-up-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before,.dpsp-share-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before,.dpsp-shortcode-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before{padding-left:75px}.dpsp-content-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after,.dpsp-pop-up-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after,.dpsp-share-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after,.dpsp-shortcode-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after{padding-right:70px}.dpsp-content-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before .dpsp-total-share-wrapper,.dpsp-pop-up-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before .dpsp-total-share-wrapper,.dpsp-share-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before .dpsp-total-share-wrapper,.dpsp-shortcode-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before .dpsp-total-share-wrapper{left:0}.dpsp-content-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after .dpsp-total-share-wrapper,.dpsp-pop-up-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after .dpsp-total-share-wrapper,.dpsp-share-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after .dpsp-total-share-wrapper,.dpsp-shortcode-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after .dpsp-total-share-wrapper{right:0}.dpsp-button-style-1 .dpsp-network-btn{color:#fff!important}.dpsp-button-style-1 .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label),.dpsp-button-style-1 .dpsp-network-btn.dpsp-no-label{justify-content:center}.dpsp-button-style-1 .dpsp-network-btn .dpsp-network-icon:not(.dpsp-network-icon-outlined) .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-1 .dpsp-network-btn .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{stroke:#fff!important}.dpsp-button-style-1 .dpsp-network-btn.dpsp-grow-saved .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg,.dpsp-button-style-1 .dpsp-network-btn:focus .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg,.dpsp-button-style-1 .dpsp-network-btn:hover .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn{color:#fff!important}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon{border-color:var(--customNetworkHoverColor,var(--networkAccent));background-color:var(--customNetworkHoverColor,var(--networkAccent))}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label),.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn.dpsp-no-label{justify-content:center}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon:not(.dpsp-network-icon-outlined) .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{stroke:#fff!important}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn.dpsp-grow-saved .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg,.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:focus .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg,.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:hover .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-2 .dpsp-networks-btns-sidebar .dpsp-network-btn,.dpsp-button-style-2 .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{background:transparent!important}.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label),.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label{justify-content:center}.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{stroke:#fff!important}.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count.dpsp-has-label:not(:hover):not(:focus),.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count:not(:hover):not(:focus),.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn:not(.dpsp-no-label):not(:hover):not(:focus):not(.dpsp-has-count){background:#fff}.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label{background:var(--customNetworkColor,var(--networkColor,#fff))}.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:focus,.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:hover{color:#fff}.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn.dpsp-grow-saved .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-networks-btns-sidebar .dpsp-network-btn,.dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{border-color:transparent;background:transparent}.dpsp-networks-btns-sidebar .dpsp-network-btn:focus,.dpsp-networks-btns-sidebar .dpsp-network-btn:hover{border-color:transparent}.dpsp-networks-btns-sidebar .dpsp-network-btn:focus .dpsp-network-icon,.dpsp-networks-btns-sidebar .dpsp-network-btn:hover .dpsp-network-icon{border-color:transparent;background:transparent}.dpsp-button-style-4.dpsp-shape-rounded .dpsp-network-btn .dpsp-network-icon{border-radius:4px}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-has-label{color:#fff}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label),.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-no-label{justify-content:center}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label):not(:hover):not(:focus),.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-no-label:not(:hover):not(:focus){background-color:initial}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label) .dpsp-network-icon,.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{border-color:transparent;background-color:initial}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn .dpsp-network-icon{background:#fff}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:focus,.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:hover{color:#fff}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:focus .dpsp-network-icon,.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:hover .dpsp-network-icon{background:transparent}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important;stroke:#fff}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor))!important}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:#fff;stroke:#fff}.dpsp-button-style-5 .dpsp-network-btn .dpsp-network-icon{border-color:transparent!important}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn,.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon{background:transparent}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus,.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover{border-color:transparent!important;color:#fff!important}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon,.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon{background:transparent}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg,.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:#fff!important;stroke:#fff!important}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor))!important}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg>svg{fill:#fff;stroke:#fff}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label),.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label{justify-content:center}.dpsp-button-style-6.dpsp-shape-rounded .dpsp-network-btn .dpsp-network-icon{border-radius:4px}.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn{border-color:transparent!important;background:transparent!important}.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:40px}.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus,.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover{border-color:transparent!important}.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon:not(.dpsp-network-icon-outlined) .dpsp-network-icon-inner>svg,.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{stroke:#fff!important}.dpsp-button-style-6.dpsp-size-small .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:32px}.dpsp-button-style-7.dpsp-shape-rounded .dpsp-network-btn .dpsp-network-icon{border-radius:4px}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn{background:transparent}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label{border-color:transparent}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon{background:transparent}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:32px}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus,.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover{background:transparent!important}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important;stroke:#fff}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor))!important}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:#fff;stroke:#fff}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-size-small .dpsp-networks-btns-wrapper .dpsp-network-btn,.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-size-small .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:32px}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn{border-color:transparent;background:transparent}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:40px}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus,.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon,.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover,.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon{border-color:transparent;background:transparent}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkHoverColor,var(--networkAccent))!important;stroke:var(--customNetworkHoverColor,var(--networkAccent))!important}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:#fff;stroke:#fff}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor))!important}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:#fff;stroke:#fff}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon{border-color:transparent;background:transparent}.dpsp-button-style-8 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon{margin-right:-10px}.dpsp-button-style-8.dpsp-size-small .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:32px}
|
|
assets/dist/style-frontend-pro-jquery.1.20.0.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
#dpsp-content-top{margin-bottom:1.2em}#dpsp-content-bottom{margin-top:1.2em}.dpsp-share-text{margin-bottom:10px;font-weight:700}.dpsp-networks-btns-wrapper{margin:0!important;padding:0!important;list-style:none!important}.dpsp-networks-btns-wrapper:after{display:block;clear:both;height:0;content:""}.dpsp-networks-btns-wrapper li{float:left;margin:0;padding:0;border:0;list-style-type:none!important;-webkit-transition:all .15s ease-in;-moz-transition:all .15s ease-in;-o-transition:all .15s ease-in;transition:all .15s ease-in}.dpsp-networks-btns-wrapper li:before{display:none!important}.dpsp-networks-btns-wrapper li:first-child{margin-left:0!important}.dpsp-networks-btns-wrapper .dpsp-network-btn{display:flex;position:relative;-moz-box-sizing:border-box;box-sizing:border-box;width:100%;min-width:40px;height:40px;max-height:40px;padding:0;border:2px solid;border-radius:0;box-shadow:none;font-family:Arial,sans-serif;font-size:14px;font-weight:700;line-height:36px;text-align:center;vertical-align:middle;text-decoration:none!important;text-transform:unset!important;cursor:pointer;-webkit-transition:all .15s ease-in;-moz-transition:all .15s ease-in;-o-transition:all .15s ease-in;transition:all .15s ease-in}.dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-label{padding-right:.5em;padding-left:.5em}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count .dpsp-network-label{padding-right:.25em}.dpsp-networks-btns-wrapper.dpsp-column-auto .dpsp-network-btn.dpsp-no-label{width:40px}.dpsp-button-style-6 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-button-style-7 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-button-style-8 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{left:-2px}.dpsp-networks-btns-wrapper .dpsp-network-btn:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn:hover{border:2px solid;outline:none;box-shadow:0 0 0 3px rgba(21,156,228,.4);box-shadow:0 0 0 3px var(--networkHover)}.dpsp-networks-btns-wrapper .dpsp-network-btn:after{display:block;clear:both;height:0;content:""}.dpsp-networks-btns-wrapper.dpsp-column-auto .dpsp-network-btn.dpsp-no-label{padding-left:0!important}.dpsp-size-small .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{width:28px}.dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-count{padding-right:.5em;padding-left:.25em;font-size:13px;font-weight:400;white-space:nowrap}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-count{position:absolute;bottom:0;left:0;width:100%;height:20px;margin-left:0;padding-left:.5em;font-size:11px;line-height:20px;text-align:center}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sticky-bar .dpsp-network-btn .dpsp-network-count{padding-left:.5em}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label .dpsp-network-label-wrapper{display:none}.dpsp-button-style-6 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-column-auto):not(.dpsp-column-6) .dpsp-network-btn.dpsp-has-count-only .dpsp-network-label-wrapper,.dpsp-button-style-7 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-column-auto):not(.dpsp-column-6) .dpsp-network-btn.dpsp-has-count-only .dpsp-network-label-wrapper{display:inline-block;text-indent:2em}.dpsp-networks-btns-wrapper.dpsp-column-1 li{width:100%;margin-left:0}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-1 li{margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-2 li{width:50%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-2 li{width:49%}.dpsp-networks-btns-wrapper.dpsp-column-2 li:nth-child(2n){margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-3 li{width:33.3333%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-3 li{width:32%}.dpsp-networks-btns-wrapper.dpsp-column-3 li:nth-child(3n){margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-4 li{width:25%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-4 li{width:23.5%}.dpsp-networks-btns-wrapper.dpsp-column-4 li:nth-child(4n){margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-5 li{width:20%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-5 li{width:18.4%}.dpsp-networks-btns-wrapper.dpsp-column-5 li:nth-child(5n){margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-6 li{width:16.6666%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-6 li{width:15%}.dpsp-networks-btns-wrapper.dpsp-column-6 li:nth-child(6n){margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-7 li{width:14.285%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-7 li{width:13%}.dpsp-networks-btns-wrapper.dpsp-column-7 li:nth-child(6n){margin-right:0}.dpsp-shape-circle .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:not(.dpsp-no-label){padding-right:10px}.dpsp-no-labels .dpsp-networks-btns-wrapper .dpsp-network-btn{padding:0!important;text-align:center}.dpsp-facebook{--networkAccent:#334d87;--networkColor:#3a579a;--networkHover:rgba(51,77,135,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook{border-color:#3a579a;color:#3a579a;background:#3a579a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:not(:hover):not(:active){color:#3a579a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook .dpsp-network-icon{border-color:#3a579a;color:#3a579a;background:#3a579a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#3a579a));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#3a579a))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#3a579a));stroke:var(--customNetworkColor,var(--networkColor,#3a579a));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:hover .dpsp-network-icon{border-color:#334d87;color:#334d87;background:#334d87}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#334d87}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#334d87));stroke:var(--customNetworkHoverColor,var(--networkHover,#334d87))}.dpsp-twitter{--networkAccent:#0099d7;--networkColor:#00abf0;--networkHover:rgba(0,153,215,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter{border-color:#00abf0;color:#00abf0;background:#00abf0}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:not(:hover):not(:active){color:#00abf0}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter .dpsp-network-icon{border-color:#00abf0;color:#00abf0;background:#00abf0}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#00abf0));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#00abf0))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#00abf0));stroke:var(--customNetworkColor,var(--networkColor,#00abf0));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:hover .dpsp-network-icon{border-color:#0099d7;color:#0099d7;background:#0099d7}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#0099d7}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#0099d7));stroke:var(--customNetworkHoverColor,var(--networkHover,#0099d7))}.dpsp-pinterest{--networkAccent:#b31e24;--networkColor:#c92228;--networkHover:rgba(179,30,36,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest{border-color:#c92228;color:#c92228;background:#c92228}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:not(:hover):not(:active){color:#c92228}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest .dpsp-network-icon{border-color:#c92228;color:#c92228;background:#c92228}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#c92228));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#c92228))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#c92228));stroke:var(--customNetworkColor,var(--networkColor,#c92228));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:hover .dpsp-network-icon{border-color:#b31e24;color:#b31e24;background:#b31e24}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#b31e24}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#b31e24));stroke:var(--customNetworkHoverColor,var(--networkHover,#b31e24))}.dpsp-linkedin{--networkAccent:#00669c;--networkColor:#0077b5;--networkHover:rgba(0,102,156,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin{border-color:#0077b5;color:#0077b5;background:#0077b5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:not(:hover):not(:active){color:#0077b5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin .dpsp-network-icon{border-color:#0077b5;color:#0077b5;background:#0077b5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#0077b5));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#0077b5))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#0077b5));stroke:var(--customNetworkColor,var(--networkColor,#0077b5));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:hover .dpsp-network-icon{border-color:#00669c;color:#00669c;background:#00669c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#00669c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#00669c));stroke:var(--customNetworkHoverColor,var(--networkHover,#00669c))}.dpsp-reddit{--networkAccent:#ff4200;--networkColor:#ff5700;--networkHover:rgba(255,66,0,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit{border-color:#ff5700;color:#ff5700;background:#ff5700}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:not(:hover):not(:active){color:#ff5700}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit .dpsp-network-icon{border-color:#ff5700;color:#ff5700;background:#ff5700}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#ff5700));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#ff5700))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#ff5700));stroke:var(--customNetworkColor,var(--networkColor,#ff5700));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:hover .dpsp-network-icon{border-color:#ff4200;color:#ff4200;background:#ff4200}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#ff4200}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#ff4200));stroke:var(--customNetworkHoverColor,var(--networkHover,#ff4200))}.dpsp-vkontakte{--networkAccent:#456992;--networkColor:#4d75a3;--networkHover:rgba(69,105,146,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte{border-color:#4d75a3;color:#4d75a3;background:#4d75a3}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:not(:hover):not(:active){color:#4d75a3}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte .dpsp-network-icon{border-color:#4d75a3;color:#4d75a3;background:#4d75a3}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#4d75a3));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#4d75a3))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#4d75a3));stroke:var(--customNetworkColor,var(--networkColor,#4d75a3));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:hover .dpsp-network-icon{border-color:#456992;color:#456992;background:#456992}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#456992}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#456992));stroke:var(--customNetworkHoverColor,var(--networkHover,#456992))}.dpsp-whatsapp{--networkAccent:#21c960;--networkColor:#25d366;--networkHover:rgba(33,201,96,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp{border-color:#25d366;color:#25d366;background:#25d366}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:not(:hover):not(:active){color:#25d366}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp .dpsp-network-icon{border-color:#25d366;color:#25d366;background:#25d366}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#25d366));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#25d366))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#25d366));stroke:var(--customNetworkColor,var(--networkColor,#25d366));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:hover .dpsp-network-icon{border-color:#21c960;color:#21c960;background:#21c960}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#21c960}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#21c960));stroke:var(--customNetworkHoverColor,var(--networkHover,#21c960))}.dpsp-instagram{--networkAccent:#a9257e;--networkColor:#bc2a8d;--networkHover:rgba(169,37,126,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram{border-color:#bc2a8d;color:#bc2a8d;background:#bc2a8d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:not(:hover):not(:active){color:#bc2a8d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram .dpsp-network-icon{border-color:#bc2a8d;color:#bc2a8d;background:#bc2a8d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#bc2a8d));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#bc2a8d))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#bc2a8d));stroke:var(--customNetworkColor,var(--networkColor,#bc2a8d));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:hover .dpsp-network-icon{border-color:#a9257e;color:#a9257e;background:#a9257e}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#a9257e}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#a9257e));stroke:var(--customNetworkHoverColor,var(--networkHover,#a9257e))}.dpsp-youtube{--networkAccent:#a20000;--networkColor:#b00;--networkHover:rgba(162,0,0,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube{border-color:#b00;color:#b00;background:#b00}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:not(:hover):not(:active){color:#b00}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube .dpsp-network-icon{border-color:#b00;color:#b00;background:#b00}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#b00));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#b00))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#b00));stroke:var(--customNetworkColor,var(--networkColor,#b00));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:hover .dpsp-network-icon{border-color:#a20000;color:#a20000;background:#a20000}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#a20000}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#a20000));stroke:var(--customNetworkHoverColor,var(--networkHover,#a20000))}.dpsp-vimeo{--networkAccent:#2bb2ff;--networkColor:#4bf;--networkHover:rgba(43,178,255,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo{border-color:#4bf;color:#4bf;background:#4bf}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:not(:hover):not(:active){color:#4bf}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo .dpsp-network-icon{border-color:#4bf;color:#4bf;background:#4bf}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#4bf));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#4bf))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#4bf));stroke:var(--customNetworkColor,var(--networkColor,#4bf));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:hover .dpsp-network-icon{border-color:#2bb2ff;color:#2bb2ff;background:#2bb2ff}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#2bb2ff}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#2bb2ff));stroke:var(--customNetworkHoverColor,var(--networkHover,#2bb2ff))}.dpsp-soundcloud{--networkAccent:#e64c00;--networkColor:#f50;--networkHover:rgba(230,76,0,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud{border-color:#f50;color:#f50;background:#f50}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:not(:hover):not(:active){color:#f50}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud .dpsp-network-icon{border-color:#f50;color:#f50;background:#f50}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#f50));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#f50))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#f50));stroke:var(--customNetworkColor,var(--networkColor,#f50));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:hover .dpsp-network-icon{border-color:#e64c00;color:#e64c00;background:#e64c00}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#e64c00}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#e64c00));stroke:var(--customNetworkHoverColor,var(--networkHover,#e64c00))}.dpsp-twitch{--networkAccent:#593a93;--networkColor:#6441a5;--networkHover:rgba(89,58,147,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch{border-color:#6441a5;color:#6441a5;background:#6441a5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:not(:hover):not(:active){color:#6441a5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch .dpsp-network-icon{border-color:#6441a5;color:#6441a5;background:#6441a5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#6441a5));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#6441a5))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#6441a5));stroke:var(--customNetworkColor,var(--networkColor,#6441a5));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:hover .dpsp-network-icon{border-color:#593a93;color:#593a93;background:#593a93}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#593a93}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#593a93));stroke:var(--customNetworkHoverColor,var(--networkHover,#593a93))}.dpsp-yummly{--networkAccent:#d84d1a;--networkColor:#e55a27;--networkHover:rgba(216,77,26,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly{border-color:#e55a27;color:#e55a27;background:#e55a27}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:not(:hover):not(:active){color:#e55a27}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly .dpsp-network-icon{border-color:#e55a27;color:#e55a27;background:#e55a27}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#e55a27));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#e55a27))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#e55a27));stroke:var(--customNetworkColor,var(--networkColor,#e55a27));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:hover .dpsp-network-icon{border-color:#d84d1a;color:#d84d1a;background:#d84d1a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#d84d1a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#d84d1a));stroke:var(--customNetworkHoverColor,var(--networkHover,#d84d1a))}.dpsp-behance{--networkAccent:#0053e6;--networkColor:#005cff;--networkHover:rgba(0,83,230,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance{border-color:#005cff;color:#005cff;background:#005cff}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:not(:hover):not(:active){color:#005cff}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance .dpsp-network-icon{border-color:#005cff;color:#005cff;background:#005cff}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#005cff));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#005cff))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#005cff));stroke:var(--customNetworkColor,var(--networkColor,#005cff));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:hover .dpsp-network-icon{border-color:#0053e6;color:#0053e6;background:#0053e6}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#0053e6}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#0053e6));stroke:var(--customNetworkHoverColor,var(--networkHover,#0053e6))}.dpsp-email{--networkAccent:#239e57;--networkColor:#27ae60;--networkHover:rgba(35,158,87,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email{border-color:#27ae60;color:#27ae60;background:#27ae60}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:not(:hover):not(:active){color:#27ae60}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email .dpsp-network-icon{border-color:#27ae60;color:#27ae60;background:#27ae60}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#27ae60));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#27ae60))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#27ae60));stroke:var(--customNetworkColor,var(--networkColor,#27ae60));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:hover .dpsp-network-icon{border-color:#239e57;color:#239e57;background:#239e57}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#239e57}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#239e57));stroke:var(--customNetworkHoverColor,var(--networkHover,#239e57))}.dpsp-print{--networkAccent:#afb6bb;--networkColor:#bdc3c7;--networkHover:rgba(175,182,187,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print{border-color:#bdc3c7;color:#bdc3c7;background:#bdc3c7}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:not(:hover):not(:active){color:#bdc3c7}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print .dpsp-network-icon{border-color:#bdc3c7;color:#bdc3c7;background:#bdc3c7}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#bdc3c7));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#bdc3c7))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#bdc3c7));stroke:var(--customNetworkColor,var(--networkColor,#bdc3c7));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:hover .dpsp-network-icon{border-color:#afb6bb;color:#afb6bb;background:#afb6bb}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#afb6bb}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#afb6bb));stroke:var(--customNetworkHoverColor,var(--networkHover,#afb6bb))}.dpsp-pocket{--networkAccent:#e63c51;--networkColor:#ed4055;--networkHover:rgba(230,60,81,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket{border-color:#ed4055;color:#ed4055;background:#ed4055}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:not(:hover):not(:active){color:#ed4055}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket .dpsp-network-icon{border-color:#ed4055;color:#ed4055;background:#ed4055}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#ed4055));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#ed4055))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#ed4055));stroke:var(--customNetworkColor,var(--networkColor,#ed4055));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:hover .dpsp-network-icon{border-color:#e63c51;color:#e63c51;background:#e63c51}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#e63c51}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#e63c51));stroke:var(--customNetworkHoverColor,var(--networkHover,#e63c51))}.dpsp-buffer{--networkAccent:#21282f;--networkColor:#29323b;--networkHover:rgba(33,40,47,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer{border-color:#29323b;color:#29323b;background:#29323b}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:not(:hover):not(:active){color:#29323b}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer .dpsp-network-icon{border-color:#29323b;color:#29323b;background:#29323b}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#29323b));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#29323b))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#29323b));stroke:var(--customNetworkColor,var(--networkColor,#29323b));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:hover .dpsp-network-icon{border-color:#21282f;color:#21282f;background:#21282f}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#21282f}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#21282f));stroke:var(--customNetworkHoverColor,var(--networkHover,#21282f))}.dpsp-tumblr{--networkAccent:#2e3d50;--networkColor:#35465c;--networkHover:rgba(46,61,80,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr{border-color:#35465c;color:#35465c;background:#35465c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:not(:hover):not(:active){color:#35465c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr .dpsp-network-icon{border-color:#35465c;color:#35465c;background:#35465c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#35465c));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#35465c))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#35465c));stroke:var(--customNetworkColor,var(--networkColor,#35465c));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:hover .dpsp-network-icon{border-color:#2e3d50;color:#2e3d50;background:#2e3d50}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#2e3d50}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#2e3d50));stroke:var(--customNetworkHoverColor,var(--networkHover,#2e3d50))}.dpsp-xing{--networkAccent:#006a6c;--networkColor:#00888d;--networkHover:rgba(0,106,108,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing{border-color:#00888d;color:#00888d;background:#00888d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:not(:hover):not(:active){color:#00888d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing .dpsp-network-icon{border-color:#00888d;color:#00888d;background:#00888d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#00888d));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#00888d))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#00888d));stroke:var(--customNetworkColor,var(--networkColor,#00888d));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:hover .dpsp-network-icon{border-color:#006a6c;color:#006a6c;background:#006a6c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#006a6c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#006a6c));stroke:var(--customNetworkHoverColor,var(--networkHover,#006a6c))}.dpsp-github{--networkAccent:#222;--networkColor:#333;--networkHover:rgba(34,34,34,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github{border-color:#333;color:#333;background:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:not(:hover):not(:active){color:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github .dpsp-network-icon{border-color:#333;color:#333;background:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#333));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#333))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#333));stroke:var(--customNetworkColor,var(--networkColor,#333));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:hover .dpsp-network-icon{border-color:#222;color:#222;background:#222}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#222}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#222));stroke:var(--customNetworkHoverColor,var(--networkHover,#222))}.dpsp-flipboard{--networkAccent:#d21d1d;--networkColor:#e12828;--networkHover:rgba(210,29,29,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard{border-color:#e12828;color:#e12828;background:#e12828}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:not(:hover):not(:active){color:#e12828}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard .dpsp-network-icon{border-color:#e12828;color:#e12828;background:#e12828}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#e12828));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#e12828))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#e12828));stroke:var(--customNetworkColor,var(--networkColor,#e12828));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:hover .dpsp-network-icon{border-color:#d21d1d;color:#d21d1d;background:#d21d1d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#d21d1d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#d21d1d));stroke:var(--customNetworkHoverColor,var(--networkHover,#d21d1d))}.dpsp-telegram{--networkAccent:#0077b3;--networkColor:#08c;--networkHover:rgba(0,119,179,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram{border-color:#08c;color:#08c;background:#08c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:not(:hover):not(:active){color:#08c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram .dpsp-network-icon{border-color:#08c;color:#08c;background:#08c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#08c));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#08c))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#08c));stroke:var(--customNetworkColor,var(--networkColor,#08c));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:hover .dpsp-network-icon{border-color:#0077b3;color:#0077b3;background:#0077b3}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#0077b3}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#0077b3));stroke:var(--customNetworkHoverColor,var(--networkHover,#0077b3))}.dpsp-medium{--networkAccent:#111;--networkColor:#333;--networkHover:rgba(17,17,17,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium{border-color:#333;color:#333;background:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:not(:hover):not(:active){color:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium .dpsp-network-icon{border-color:#333;color:#333;background:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#333));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#333))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#333));stroke:var(--customNetworkColor,var(--networkColor,#333));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:hover .dpsp-network-icon{border-color:#111;color:#111;background:#111}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#111}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#111));stroke:var(--customNetworkHoverColor,var(--networkHover,#111))}.dpsp-mix{--networkAccent:#fd721c;--networkColor:#fd8235;--networkHover:rgba(253,114,28,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix{border-color:#fd8235;color:#fd8235;background:#fd8235}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:not(:hover):not(:active){color:#fd8235}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix .dpsp-network-icon{border-color:#fd8235;color:#fd8235;background:#fd8235}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#fd8235));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#fd8235))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#fd8235));stroke:var(--customNetworkColor,var(--networkColor,#fd8235));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:hover .dpsp-network-icon{border-color:#fd721c;color:#fd721c;background:#fd721c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fd721c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#fd721c));stroke:var(--customNetworkHoverColor,var(--networkHover,#fd721c))}.dpsp-grow{--networkAccent:#243c4a;--networkColor:#41a4a9;--networkHover:rgba(36,60,74,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow{border-color:#41a4a9;color:#41a4a9;background:#41a4a9}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:not(:hover):not(:active){color:#41a4a9}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow .dpsp-network-icon{border-color:#41a4a9;color:#41a4a9;background:#41a4a9}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#41a4a9));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#41a4a9))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#41a4a9));stroke:var(--customNetworkColor,var(--networkColor,#41a4a9));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:hover .dpsp-network-icon{border-color:#243c4a;color:#243c4a;background:#243c4a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#243c4a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#243c4a));stroke:var(--customNetworkHoverColor,var(--networkHover,#243c4a))}.dpsp-shape-rounded .dpsp-network-btn,.dpsp-shape-rounded .dpsp-network-btn .dpsp-network-icon{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.dpsp-shape-rounded .dpsp-network-btn,.dpsp-shape-rounded .dpsp-no-label.dpsp-network-btn .dpsp-network-icon{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.dpsp-shape-circle .dpsp-network-btn{border-radius:30px}.dpsp-shape-circle .dpsp-network-btn .dpsp-network-icon{overflow:hidden;border-radius:30px}.dpsp-has-spacing .dpsp-networks-btns-wrapper li{margin-right:2%;margin-bottom:10px;margin-left:0!important}.dpsp-size-small .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn{min-width:32px;height:32px;max-height:32px;line-height:28px}.dpsp-size-small .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{width:32px}.dpsp-size-small .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn .dpsp-network-icon{width:32px;height:32px;line-height:28px}.dpsp-size-small .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn .dpsp-network-icon-inner{height:28px}.dpsp-size-small .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label{width:32px}.dpsp-size-small .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{left:0}.dpsp-size-small.dpsp-button-style-6 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-size-small.dpsp-button-style-7 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-size-small.dpsp-button-style-8 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{left:-2px}.dpsp-size-large .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn{min-width:46px;height:46px;max-height:46px;line-height:42px}.dpsp-size-large .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon{width:46px;height:46px;line-height:42px}.dpsp-size-large .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon-inner{height:42px}.dpsp-size-large .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label{width:46px}.dpsp-size-large .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{left:0}.dpsp-size-large.dpsp-button-style-6 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-size-large.dpsp-button-style-7 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-size-large.dpsp-button-style-8 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{left:-2px}.dpsp-size-medium .dpsp-networks-btns-sidebar .dpsp-network-btn{min-width:45px;height:45px;max-height:45px;padding-left:0;line-height:41px}.dpsp-size-medium .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{width:45px;line-height:41px}.dpsp-size-medium .dpsp-networks-btns-sidebar.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count .dpsp-network-icon{height:26px;line-height:26px}.dpsp-size-large .dpsp-networks-btns-sidebar .dpsp-network-btn{min-width:50px;height:50px;max-height:50px;padding-left:0;line-height:46px}.dpsp-size-large .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{width:50px;line-height:46px}.dpsp-size-large .dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon{height:30px;line-height:30px}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:not(.dpsp-grow-saved) .dpsp-network-label{padding-right:2.15ch}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow{max-width:0;max-height:0;opacity:0;transition:all .4s ease;transform-origin:top}.dpsp-card-inner .dpsp-networks-btns-wrapper .dpsp-network-list-item-grow{max-width:unset;max-height:unset;opacity:unset}.dpsp-card-inner .dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-count,.dpsp-card-inner .dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-icon,.dpsp-card-inner .dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-label{opacity:unset}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-count,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-label{opacity:0}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-load-in{max-width:20rem;max-height:70px;opacity:1;transition:all .5s ease}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-load-in .dpsp-network-count,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-load-in .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-load-in .dpsp-network-label{opacity:1;transition:opacity .4s ease .5s}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-loaded{max-width:20rem;max-height:70px;opacity:1;transition:all .2s ease}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-loaded .dpsp-network-count,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-loaded .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-loaded .dpsp-network-label{opacity:1;transition:all .2s ease}.dpsp-grow-check-icon{opacity:0;transition:all .2s ease;transform-origin:center center}.dpsp-grow-saved .dpsp-grow-check-icon{opacity:1}@media print{#dpsp-content-bottom,#dpsp-content-top,#dpsp-floating-sidebar,#dpsp-pop-up,#dpsp-pop-up-overlay,#dpsp-sticky-bar-wrapper,.dpsp-share-text{display:none!important}}.dpsp-pin-it-wrapper{display:inline-table;position:relative!important;line-height:0}.blocks-gallery-item .dpsp-pin-it-wrapper{display:inline-block}.dpsp-pin-it-wrapper.aligncenter,.dpsp-pin-it-wrapper.alignleft,.dpsp-pin-it-wrapper.alignright{display:table!important}.dpsp-pin-it-wrapper:hover .dpsp-pin-it-button{visibility:visible;color:#fff!important;background-color:#c92228!important}.dpsp-pin-it-wrapper.aligncenter{margin-right:auto;margin-left:auto}.wp-block-gallery.is-cropped .blocks-gallery-item .dpsp-pin-it-wrapper{height:100%;flex:1;object-fit:cover}.dpsp-pin-it-button{display:inline-block;position:absolute;visibility:hidden;width:auto!important;height:40px!important;border:0!important;color:transparent!important;background:transparent;background-image:none!important;box-shadow:none!important;font-family:Arial;font-size:14px;font-weight:700;line-height:40px;vertical-align:middle;text-decoration:none!important;transition:all .25s ease-in-out}.dpsp-pin-it-button:hover{color:#fff;background:#b31e24;box-shadow:none!important}.dpsp-pin-it-button.dpsp-pin-it-button-has-label{padding-right:20px}.dpsp-pin-it-button.dpsp-pin-it-button-has-label:after{display:inline-block;content:attr(title)}.dpsp-pin-it-button .dpsp-network-icon{display:inline-block;width:40px;height:40px;text-align:center;vertical-align:top}.dpsp-pin-it-button .dpsp-network-icon svg{display:inline-block;height:20px;vertical-align:middle;fill:#fff}.dpsp-pin-it-button.dpsp-pin-it-button-top-left{top:10px;left:10px}.dpsp-pin-it-button.dpsp-pin-it-button-top-right{top:10px;right:10px}.dpsp-pin-it-button.dpsp-pin-it-button-bottom-left{bottom:10px;left:10px}.dpsp-pin-it-button.dpsp-pin-it-button-bottom-right{right:10px;bottom:10px}.dpsp-pin-it-button.dpsp-pin-it-button-center{top:50%;left:50%;white-space:nowrap;transform:translate(-50%,-50%)}.dpsp-pin-it-button.dpsp-pin-it-button-shape-rectangular{border-radius:0}.dpsp-pin-it-button.dpsp-pin-it-button-shape-rounded{border-radius:4px}.dpsp-pin-it-button.dpsp-pin-it-button-shape-circle{border-radius:40px}.dpsp-pin-it-wrapper .dpsp-pin-it-overlay{display:block;position:absolute;top:0;left:0;visibility:hidden;width:100%;height:100%;opacity:0;background:#fff;transition:all .25s ease-in-out;pointer-events:none}.dpsp-pin-it-wrapper:hover .dpsp-pin-it-overlay{visibility:visible;opacity:.4}.dpsp-networks-btns-wrapper.dpsp-networks-btns-pop-up.dpsp-column-auto{text-align:center}.dpsp-networks-btns-wrapper.dpsp-networks-btns-pop-up.dpsp-column-auto li{display:inline-block;float:none}.dpsp-shortcode-wrapper{margin-bottom:1.2em}#dpsp-floating-sidebar{position:fixed;top:50%;transform:translateY(-50%);z-index:9998}#dpsp-floating-sidebar.dpsp-position-left{left:0}#dpsp-floating-sidebar.dpsp-position-right{right:0}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar li{float:none;margin-left:0}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn{width:40px;padding:0}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{border-color:transparent!important;background:transparent!important}.dpsp-size-medium .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon-inner{height:41px}.dpsp-size-large .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon-inner{height:46px}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon{height:22px;line-height:22px}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon-inner{height:18px}.dpsp-size-large .dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon-inner{height:30px}#dpsp-floating-sidebar.dpsp-no-animation{display:none}#dpsp-floating-sidebar.dpsp-no-animation.opened{display:block}#dpsp-floating-sidebar.stop-hidden,#dpsp-floating-sidebar.stop-hidden.opened{visibility:hidden}#dpsp-floating-sidebar.dpsp-animation-1{opacity:0;transition:opacity .2s ease-in-out}#dpsp-floating-sidebar.dpsp-animation-1.opened{opacity:1}#dpsp-floating-sidebar.dpsp-position-left.dpsp-animation-2,#dpsp-floating-sidebar.dpsp-position-left.dpsp-shape-circle.dpsp-animation-2{left:-60px;transition:left .2s ease-in-out}#dpsp-floating-sidebar.dpsp-position-left.dpsp-animation-2.opened{left:0}#dpsp-floating-sidebar.dpsp-position-left.dpsp-shape-circle.dpsp-animation-2.opened{left:12px}#dpsp-floating-sidebar.dpsp-position-right.dpsp-animation-2,#dpsp-floating-sidebar.dpsp-position-right.dpsp-shape-circle.dpsp-animation-2{right:-60px;transition:right .2s ease-in-out}#dpsp-floating-sidebar.dpsp-position-right.dpsp-animation-2.opened{right:0}#dpsp-floating-sidebar.dpsp-position-right.dpsp-shape-circle.dpsp-animation-2.opened{right:10px}.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn,.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{border-radius:0}.dpsp-position-left.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-first,.dpsp-position-left.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-first .dpsp-network-icon{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px}.dpsp-position-left.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-last,.dpsp-position-left.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-last .dpsp-network-icon{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.dpsp-position-left.dpsp-shape-rounded.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn,.dpsp-position-left.dpsp-shape-rounded.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.dpsp-position-right.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-first,.dpsp-position-right.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-first .dpsp-network-icon{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}.dpsp-position-right.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-last,.dpsp-position-right.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-last .dpsp-network-icon{-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.dpsp-position-right.dpsp-shape-rounded.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn,.dpsp-position-right.dpsp-shape-rounded.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.dpsp-shape-rounded.dpsp-has-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{border-radius:4px}#dpsp-floating-sidebar.dpsp-position-left.dpsp-shape-circle{left:12px}#dpsp-floating-sidebar.dpsp-position-right.dpsp-shape-circle{right:10px}.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn{margin-bottom:6px}.dpsp-shape-rounded.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}#dpsp-floating-sidebar.dpsp-style-2 .dpsp-network-btn .dpsp-network-icon{background:none}#dpsp-floating-sidebar .dpsp-networks-btns-wrapper li{position:relative;overflow:visible}#dpsp-floating-sidebar .dpsp-networks-btns-wrapper .dpsp-network-label{display:inline-block;position:absolute;top:50%;visibility:hidden;box-sizing:border-box;width:auto;height:30px;margin-top:-15px;padding:6px 12px;border-radius:3px;opacity:0;color:#fff;background:#34495e;font-size:12px;font-weight:400;line-height:18px;white-space:nowrap;transition:all .2s ease-in-out;z-index:1}#dpsp-floating-sidebar.dpsp-position-left .dpsp-networks-btns-wrapper .dpsp-network-label{left:100%}#dpsp-floating-sidebar.dpsp-position-right .dpsp-networks-btns-wrapper .dpsp-network-label{right:100%}#dpsp-floating-sidebar.dpsp-position-left .dpsp-networks-btns-wrapper li.dpsp-hover .dpsp-network-label{visibility:visible;opacity:1;transform:translateX(10px)}#dpsp-floating-sidebar.dpsp-position-right .dpsp-networks-btns-wrapper li.dpsp-hover .dpsp-network-label{visibility:visible;opacity:1;transform:translateX(-10px)}#dpsp-floating-sidebar .dpsp-networks-btns-wrapper .dpsp-network-label:before{display:block;position:absolute;top:50%;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;content:""}#dpsp-floating-sidebar.dpsp-position-left .dpsp-networks-btns-wrapper .dpsp-network-label:before{left:-5px;border-right:5px solid #34495e}#dpsp-floating-sidebar.dpsp-position-right .dpsp-networks-btns-wrapper .dpsp-network-label:before{right:-5px;border-left:5px solid #34495e}.dpsp-settings-button-style .dpsp-networks-btns-sidebar .dpsp-network-label{display:none}#dpsp-sticky-bar-wrapper{position:fixed;bottom:0;left:0;width:100%;max-width:100vw;background:#fff;z-index:1000}#dpsp-sticky-bar-wrapper.dpsp-position-desktop-top{top:0;bottom:auto}#dpsp-sticky-bar-wrapper.dpsp-position-desktop-bottom{top:auto;bottom:0}#dpsp-sticky-bar-wrapper.dpsp-no-animation{visibility:hidden;opacity:0}#dpsp-sticky-bar-wrapper.dpsp-no-animation.opened{visibility:visible;opacity:1}#dpsp-sticky-bar-wrapper.dpsp-device-desktop.dpsp-is-mobile,#dpsp-sticky-bar-wrapper.dpsp-device-mobile:not(.dpsp-is-mobile){display:none}#dpsp-sticky-bar{display:none;position:relative;box-sizing:border-box;margin:7px 0}#dpsp-sticky-bar .dpsp-networks-btns-wrapper{display:flex}#dpsp-sticky-bar .dpsp-networks-btns-wrapper li{float:none;margin-right:3px;margin-bottom:0;margin-left:3px;flex:1}#dpsp-sticky-bar .dpsp-networks-btns-wrapper li:last-of-type{margin-right:0}#dpsp-sticky-bar .dpsp-network-btn{padding-right:1em;padding-left:1em;text-align:center}#dpsp-sticky-bar .dpsp-network-btn .dpsp-network-icon{display:inline-block;position:relative;overflow:visible;width:20px}#dpsp-sticky-bar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon{margin-right:5px}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-top{top:0;bottom:auto}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-bottom{top:auto;bottom:0}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar{position:static;width:100%!important;margin:0;padding:0}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar .dpsp-networks-btns-wrapper li{margin:0}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar .dpsp-network-btn{height:44px;max-height:44px;padding-right:0;padding-left:0;border-radius:0;line-height:40px;text-align:center}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar .dpsp-network-btn .dpsp-network-icon{display:inline-block;position:relative;left:auto;float:none;font-size:18px;line-height:40px}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon{display:block;position:absolute;width:100%;height:26px;line-height:26px}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar .dpsp-network-btn .dpsp-network-count{position:absolute;bottom:0;left:0;width:100%;height:20px;margin-left:0;font-size:11px;line-height:20px;text-align:center}#dpsp-sticky-bar-wrapper.dpsp-animation-1{visibility:hidden;opacity:0;transition:opacity .2s ease-in-out}#dpsp-sticky-bar-wrapper.dpsp-animation-1.opened{visibility:visible;opacity:1}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-bottom.dpsp-animation-2,#dpsp-sticky-bar-wrapper:not(.dpsp-is-mobile).dpsp-position-desktop-bottom.dpsp-animation-2{bottom:0;transform:translateY(60px);visibility:hidden;transition:transform .3s ease-in-out,visibility .3s ease-in-out}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-bottom.dpsp-animation-2.opened,#dpsp-sticky-bar-wrapper:not(.dpsp-is-mobile).dpsp-position-desktop-bottom.dpsp-animation-2.opened{transform:translateY(0);visibility:visible}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-top.dpsp-animation-2,#dpsp-sticky-bar-wrapper:not(.dpsp-is-mobile).dpsp-position-desktop-top.dpsp-animation-2{top:-88px;bottom:auto;visibility:hidden;transition:top .3s ease-in-out,visibility .3s ease-in-out}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-top.dpsp-animation-2.opened,#dpsp-sticky-bar-wrapper:not(.dpsp-is-mobile).dpsp-position-desktop-top.dpsp-animation-2.opened{top:0;visibility:visible}@media screen and (min-width:782px){body.admin-bar #dpsp-sticky-bar-wrapper{margin-top:32px}}.dpsp-click-to-tweet{display:block;position:relative;margin:1.5em 0;font-size:105%;text-decoration:none;transition:all .15s ease-in}.dpsp-click-to-tweet,.dpsp-click-to-tweet:hover{box-shadow:none!important}.dpsp-click-to-tweet.dpsp-has-avatar{min-height:115px;padding-left:120px!important}.dpsp-click-to-tweet.dpsp-has-avatar .avatar{position:absolute;top:15px;left:15px;border-radius:50%;box-shadow:none!important}.dpsp-click-to-tweet-footer:after,.dpsp-click-to-tweet:after{display:block;clear:both;content:""}.dpsp-click-to-tweet-content{display:block;position:relative;font-family:Georgia;font-size:18px;line-height:1.5;text-align:left;z-index:2}.dpsp-click-to-tweet-footer{display:block;margin-top:1em;color:#999;font-family:Arial;font-size:14px;font-weight:700}.dpsp-click-to-tweet.dpsp-click-to-tweet-cta-left .dpsp-click-to-tweet-cta{float:left}.dpsp-click-to-tweet.dpsp-click-to-tweet-cta-right .dpsp-click-to-tweet-cta{float:right}.dpsp-click-to-tweet-cta{color:#00abf0;line-height:1}.dpsp-click-to-tweet-cta svg{fill:#00abf0}.dpsp-click-to-tweet-cta .dpsp-twitter{display:inline-block;vertical-align:middle}.dpsp-click-to-tweet-cta>span{margin-right:10px;vertical-align:middle}.dpsp-click-to-tweet:hover .dpsp-twitter .dpsp-network-icon-inner{transition:all .2s ease-in-out}.dpsp-click-to-tweet.dpsp-click-to-tweet-cta-icon-animation:hover .dpsp-click-to-tweet-cta .dpsp-twitter .dpsp-network-icon-after{margin-left:-10px;opacity:1}.dpsp-click-to-tweet.dpsp-click-to-tweet-cta-icon-animation:hover .dpsp-click-to-tweet-cta .dpsp-twitter .dpsp-network-icon-before{margin-left:10px;opacity:0}a.dpsp-click-to-tweet.dpsp-style-1{padding:15px 5px 5px 30px;border:0;border-left:5px solid #00abf0;color:#555}a.dpsp-click-to-tweet.dpsp-style-1:hover{border-left:5px solid #0099d7}a.dpsp-click-to-tweet.dpsp-style-2{padding:20px 30px;border:0;border-left:5px solid #00abf0;color:#555;background:#f6f6f6}a.dpsp-click-to-tweet.dpsp-style-2:hover{border-left:5px solid #0099d7}a.dpsp-click-to-tweet.dpsp-style-3{padding:20px 30px;border:1px solid #e1e1e1;border-radius:3px;color:#838383}a.dpsp-click-to-tweet.dpsp-style-3:hover{color:#555}a.dpsp-click-to-tweet.dpsp-style-4{padding:20px 30px;border:4px double #e1e1e1;border-radius:0;color:#838383}a.dpsp-click-to-tweet.dpsp-style-4:hover{color:#555}a.dpsp-click-to-tweet.dpsp-style-5{padding:20px 30px;border:0;border-left:0 solid transparent;border-radius:3px;color:#fff;background:#00abf0;transition:border .2s ease-in-out}a.dpsp-click-to-tweet.dpsp-style-5 .dpsp-click-to-tweet-cta{color:#fff}a.dpsp-click-to-tweet.dpsp-style-5 .dpsp-click-to-tweet-cta svg{fill:#fff}a.dpsp-click-to-tweet.dpsp-style-5:hover{border-left:9px solid #0099d7;color:#fff}a.dpsp-click-to-tweet.dpsp-style-5 .dpsp-click-to-tweet-content,a.dpsp-click-to-tweet.dpsp-style-5 .dpsp-click-to-tweet-footer,a.dpsp-click-to-tweet.dpsp-style-5>img{transition:margin-left .2s ease-in-out}a.dpsp-click-to-tweet.dpsp-style-5:hover .dpsp-click-to-tweet-content,a.dpsp-click-to-tweet.dpsp-style-5:hover .dpsp-click-to-tweet-footer,a.dpsp-click-to-tweet.dpsp-style-5:hover>img{margin-left:-9px}.dpsp-shortcode-follow-wrapper>.dpsp-networks-btns-follow-widget{display:flex;flex-flow:row wrap}.dpsp-shortcode-follow-wrapper.dpsp-follow-align-left>.dpsp-networks-btns-follow-widget{justify-content:flex-start}.dpsp-shortcode-follow-wrapper.dpsp-follow-align-center>.dpsp-networks-btns-follow-widget{justify-content:center}.dpsp-shortcode-follow-wrapper.dpsp-follow-align-right>.dpsp-networks-btns-follow-widget{justify-content:flex-end}.dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon{display:block;position:relative;top:-2px;left:-2px;-moz-box-sizing:border-box;box-sizing:border-box;width:40px;height:40px;border:2px solid;font-size:14px;line-height:36px;text-align:center;-webkit-transition:all .15s ease-in;-moz-transition:all .15s ease-in;-o-transition:all .15s ease-in;transition:all .15s ease-in;align-self:start;flex:0 0 auto}.dpsp-icon-total-share svg,.dpsp-network-icon .dpsp-network-icon-inner svg{position:relative;overflow:visible;width:auto;max-height:14px;transition:fill .15s ease-in-out}.dpsp-size-large .dpsp-icon-total-share svg,.dpsp-size-large .dpsp-network-icon .dpsp-network-icon-inner svg{max-height:22px}.widget_dpsp_social_media_follow .dpsp-network-icon .dpsp-network-icon-inner svg{top:.05em}.dpsp-icon-total-share,.dpsp-network-icon-inner{display:flex;align-items:center;justify-content:center}.dpsp-network-icon-inner{height:36px;transition:all .2s ease}.dpsp-networks-btns-wrapper.dpsp-has-button-icon-animation .dpsp-network-btn:hover .dpsp-network-icon-inner{transition:all .2s cubic-bezier(.62,3.15,.4,-.64);transform:scale(1.5)}#dpsp-pop-up{position:fixed;width:100%;max-width:750px;padding:40px;border-radius:10px;opacity:0;background:#fff;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;transform:translate(-50%,-50%);z-index:9999}#dpsp-pop-up.dpsp-animation-1{transform:translate(-50%,-50%) scale(.1)}#dpsp-pop-up.dpsp-animation-3{transform:translate(-50%)}#dpsp-pop-up.dpsp-animation-4{transform:translate(-50%,-100%)}#dpsp-pop-up-overlay.no-animation,#dpsp-pop-up.no-animation{-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}#dpsp-pop-up.opened{top:50%;left:50%;opacity:1;transform:scale(1) translate(-50%,-50%)}#dpsp-pop-up-overlay{display:block;position:fixed;top:0;left:0;width:0;height:0;opacity:0;background:#000;-webkit-transition:opacity .25s ease-in-out,margin .25s ease-in-out;-moz-transition:opacity .25s ease-in-out,margin .25s ease-in-out;-o-transition:opacity .25s ease-in-out,margin .25s ease-in-out;transition:opacity .25s ease-in-out,margin .25s ease-in-out;z-index:9998}#dpsp-pop-up-overlay.opened{width:100%;height:100%;opacity:.65}#dpsp-pop-up-content{text-align:center}#dpsp-pop-up-close{display:block;position:absolute;top:10px;right:10px;width:22px;height:22px;line-height:22px;text-align:center;vertical-align:middle;cursor:pointer}#dpsp-pop-up-close svg{position:relative;top:2px;width:auto;max-height:16px;vertical-align:top;fill:#999}#dpsp-pop-up h2{margin-bottom:1em}#dpsp-pop-up h2 p{font-size:inherit}#dpsp-pop-up h2 p:last-of-type{margin-top:0;margin-bottom:0}#dpsp-pop-up p{margin-top:1em;margin-bottom:1em}#dpsp-post-bottom{width:0;height:0;margin:0;padding:0}@media screen and (max-width:800px){#dpsp-pop-up{width:90%}}@media screen and (max-width:720px){#dpsp-pop-up .dpsp-networks-btns-wrapper li{width:100%;margin-right:0;margin-left:0}}.dpsp-top-shared-post{margin-bottom:2em}.dpsp-top-shared-post-thumbnail{display:block;margin-bottom:1.2em}.dpsp-top-shared-post-thumbnail img{max-width:100%;height:auto}.dpsp-top-shared-post-title{display:inline-block;margin-bottom:.5em}.dpsp-show-total-share-count{position:relative}.dpsp-total-share-wrapper{position:relative;margin-top:10px;color:#5d6368;font-family:Helvetica,Helvetica Neue,Arial,sans-serif;line-height:1.345}.dpsp-total-share-wrapper .dpsp-total-share-count{font-size:15px;line-height:18px;white-space:nowrap}.dpsp-total-share-wrapper .dpsp-icon-total-share{position:absolute;top:6px;left:0;margin-top:0;margin-left:0}.dpsp-total-share-wrapper .dpsp-icon-total-share svg{top:2px;width:auto;max-height:16px;fill:#5d6368}#dpsp-floating-sidebar .dpsp-total-share-wrapper{margin-bottom:10px}#dpsp-floating-sidebar .dpsp-total-share-wrapper .dpsp-icon-total-share{display:none}.dpsp-total-share-wrapper span{display:block;font-size:11px;font-weight:700;text-align:center;white-space:nowrap;text-transform:uppercase}.dpsp-content-wrapper .dpsp-total-share-wrapper,.dpsp-pop-up-buttons-wrapper .dpsp-total-share-wrapper,.dpsp-share-buttons-wrapper .dpsp-total-share-wrapper,.dpsp-shortcode-wrapper .dpsp-total-share-wrapper{position:absolute;top:50%;box-sizing:border-box;width:60px;height:40px;margin-top:-21px;padding-left:20px}#dpsp-sticky-bar .dpsp-total-share-wrapper{height:32px;margin-top:-16px}#dpsp-sticky-bar-wrapper.dpsp-is-mobile .dpsp-total-share-wrapper{display:none}.dpsp-content-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before,.dpsp-pop-up-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before,.dpsp-share-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before,.dpsp-shortcode-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before{padding-left:75px}.dpsp-content-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after,.dpsp-pop-up-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after,.dpsp-share-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after,.dpsp-shortcode-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after{padding-right:70px}.dpsp-content-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before .dpsp-total-share-wrapper,.dpsp-pop-up-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before .dpsp-total-share-wrapper,.dpsp-share-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before .dpsp-total-share-wrapper,.dpsp-shortcode-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before .dpsp-total-share-wrapper{left:0}.dpsp-content-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after .dpsp-total-share-wrapper,.dpsp-pop-up-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after .dpsp-total-share-wrapper,.dpsp-share-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after .dpsp-total-share-wrapper,.dpsp-shortcode-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after .dpsp-total-share-wrapper{right:0}.dpsp-button-style-1 .dpsp-network-btn{color:#fff!important}.dpsp-button-style-1 .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label),.dpsp-button-style-1 .dpsp-network-btn.dpsp-no-label{justify-content:center}.dpsp-button-style-1 .dpsp-network-btn .dpsp-network-icon:not(.dpsp-network-icon-outlined) .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-1 .dpsp-network-btn .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{stroke:#fff!important}.dpsp-button-style-1 .dpsp-network-btn.dpsp-grow-saved .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg,.dpsp-button-style-1 .dpsp-network-btn:focus .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg,.dpsp-button-style-1 .dpsp-network-btn:hover .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn{color:#fff!important}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon{border-color:var(--customNetworkHoverColor,var(--networkAccent));background-color:var(--customNetworkHoverColor,var(--networkAccent))}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label),.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn.dpsp-no-label{justify-content:center}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon:not(.dpsp-network-icon-outlined) .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{stroke:#fff!important}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn.dpsp-grow-saved .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg,.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:focus .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg,.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:hover .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-2 .dpsp-networks-btns-sidebar .dpsp-network-btn,.dpsp-button-style-2 .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{background:transparent!important}.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label),.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label{justify-content:center}.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{stroke:#fff!important}.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count.dpsp-has-label:not(:hover):not(:focus),.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count:not(:hover):not(:focus),.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn:not(.dpsp-no-label):not(:hover):not(:focus):not(.dpsp-has-count){background:#fff}.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label{background:var(--customNetworkColor,var(--networkColor,#fff))}.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:focus,.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:hover{color:#fff}.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn.dpsp-grow-saved .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-networks-btns-sidebar .dpsp-network-btn,.dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{border-color:transparent;background:transparent}.dpsp-networks-btns-sidebar .dpsp-network-btn:focus,.dpsp-networks-btns-sidebar .dpsp-network-btn:hover{border-color:transparent}.dpsp-networks-btns-sidebar .dpsp-network-btn:focus .dpsp-network-icon,.dpsp-networks-btns-sidebar .dpsp-network-btn:hover .dpsp-network-icon{border-color:transparent;background:transparent}.dpsp-button-style-4.dpsp-shape-rounded .dpsp-network-btn .dpsp-network-icon{border-radius:4px}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-has-label{color:#fff}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label),.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-no-label{justify-content:center}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label):not(:hover):not(:focus),.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-no-label:not(:hover):not(:focus){background-color:initial}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label) .dpsp-network-icon,.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{border-color:transparent;background-color:initial}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn .dpsp-network-icon{background:#fff}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:focus,.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:hover{color:#fff}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:focus .dpsp-network-icon,.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:hover .dpsp-network-icon{background:transparent}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important;stroke:#fff}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor))!important}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:#fff;stroke:#fff}.dpsp-button-style-5 .dpsp-network-btn .dpsp-network-icon{border-color:transparent!important}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn,.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon{background:transparent}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus,.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover{border-color:transparent!important;color:#fff!important}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon,.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon{background:transparent}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg,.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:#fff!important;stroke:#fff!important}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor))!important}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg>svg{fill:#fff;stroke:#fff}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label),.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label{justify-content:center}.dpsp-button-style-6.dpsp-shape-rounded .dpsp-network-btn .dpsp-network-icon{border-radius:4px}.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn{border-color:transparent!important;background:transparent!important}.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:40px}.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus,.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover{border-color:transparent!important}.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon:not(.dpsp-network-icon-outlined) .dpsp-network-icon-inner>svg,.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{stroke:#fff!important}.dpsp-button-style-6.dpsp-size-small .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:32px}.dpsp-button-style-7.dpsp-shape-rounded .dpsp-network-btn .dpsp-network-icon{border-radius:4px}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn{background:transparent}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label{border-color:transparent}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon{background:transparent}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:32px}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus,.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover{background:transparent!important}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important;stroke:#fff}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor))!important}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:#fff;stroke:#fff}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-size-small .dpsp-networks-btns-wrapper .dpsp-network-btn,.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-size-small .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:32px}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn{border-color:transparent;background:transparent}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:40px}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus,.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon,.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover,.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon{border-color:transparent;background:transparent}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkHoverColor,var(--networkAccent))!important;stroke:var(--customNetworkHoverColor,var(--networkAccent))!important}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:#fff;stroke:#fff}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor))!important}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:#fff;stroke:#fff}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon{border-color:transparent;background:transparent}.dpsp-button-style-8 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon{margin-right:-10px}.dpsp-button-style-8.dpsp-size-small .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:32px}
|
assets/dist/style-frontend-pro.1.19.2.css
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
#dpsp-content-top{margin-bottom:1.2em}#dpsp-content-bottom{margin-top:1.2em}.dpsp-share-text{margin-bottom:10px;font-weight:700}.dpsp-networks-btns-wrapper{margin:0!important;padding:0!important;list-style:none!important}.dpsp-networks-btns-wrapper:after{display:block;clear:both;height:0;content:""}.dpsp-networks-btns-wrapper li{float:left;margin:0;padding:0;border:0;list-style-type:none!important;-webkit-transition:all .15s ease-in;-moz-transition:all .15s ease-in;-o-transition:all .15s ease-in;transition:all .15s ease-in}.dpsp-networks-btns-wrapper li:before{display:none!important}.dpsp-networks-btns-wrapper li:first-child{margin-left:0!important}.dpsp-networks-btns-wrapper .dpsp-network-btn{display:flex;position:relative;-moz-box-sizing:border-box;box-sizing:border-box;width:100%;min-width:40px;height:40px;max-height:40px;padding:0;border:2px solid;border-radius:0;box-shadow:none;font-family:Arial,sans-serif;font-size:14px;font-weight:700;line-height:36px;text-align:center;vertical-align:middle;text-decoration:none!important;text-transform:unset!important;cursor:pointer;-webkit-transition:all .15s ease-in;-moz-transition:all .15s ease-in;-o-transition:all .15s ease-in;transition:all .15s ease-in}.dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-label{padding-right:.5em;padding-left:.5em}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count .dpsp-network-label{padding-right:.25em}.dpsp-networks-btns-wrapper.dpsp-column-auto .dpsp-network-btn.dpsp-no-label{width:40px}.dpsp-networks-btns-wrapper.dpsp-column-auto .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{left:0}.dpsp-button-style-6 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-button-style-7 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-button-style-8 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{left:-2px}.dpsp-networks-btns-wrapper .dpsp-network-btn:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn:hover{border:2px solid;outline:none;box-shadow:0 0 0 3px rgba(21,156,228,.4);box-shadow:0 0 0 3px var(--networkHover)}.dpsp-networks-btns-wrapper .dpsp-network-btn:after{display:block;clear:both;height:0;content:""}.dpsp-networks-btns-wrapper.dpsp-column-auto .dpsp-network-btn.dpsp-no-label{padding-left:0!important}.dpsp-size-small .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{width:28px}.dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-count{padding-right:.5em;padding-left:.25em;font-size:13px;font-weight:400;white-space:nowrap}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-count{position:absolute;bottom:0;left:0;width:100%;height:20px;margin-left:0;padding-left:.5em;font-size:11px;line-height:20px;text-align:center}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sticky-bar .dpsp-network-btn .dpsp-network-count{padding-left:.5em}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label .dpsp-network-label-wrapper{display:none}.dpsp-button-style-6 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-column-auto):not(.dpsp-column-6) .dpsp-network-btn.dpsp-has-count-only .dpsp-network-label-wrapper,.dpsp-button-style-7 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-column-auto):not(.dpsp-column-6) .dpsp-network-btn.dpsp-has-count-only .dpsp-network-label-wrapper{display:inline-block;text-indent:2em}.dpsp-networks-btns-wrapper.dpsp-column-1 li{width:100%;margin-left:0}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-1 li{margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-2 li{width:50%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-2 li{width:49%}.dpsp-networks-btns-wrapper.dpsp-column-2 li:nth-child(2n){margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-3 li{width:33.3333%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-3 li{width:32%}.dpsp-networks-btns-wrapper.dpsp-column-3 li:nth-child(3n){margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-4 li{width:25%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-4 li{width:23.5%}.dpsp-networks-btns-wrapper.dpsp-column-4 li:nth-child(4n){margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-5 li{width:20%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-5 li{width:18.4%}.dpsp-networks-btns-wrapper.dpsp-column-5 li:nth-child(5n){margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-6 li{width:16.6666%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-6 li{width:15%}.dpsp-networks-btns-wrapper.dpsp-column-6 li:nth-child(6n){margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-7 li{width:14.285%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-7 li{width:13%}.dpsp-networks-btns-wrapper.dpsp-column-7 li:nth-child(6n){margin-right:0}.dpsp-shape-circle .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:not(.dpsp-no-label){padding-right:10px}.dpsp-no-labels .dpsp-networks-btns-wrapper .dpsp-network-btn{padding:0!important;text-align:center}.dpsp-facebook{--networkAccent:#334d87;--networkColor:#3a579a;--networkHover:rgba(51,77,135,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook{border-color:#3a579a;color:#3a579a;background:#3a579a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:not(:hover):not(:active){color:#3a579a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook .dpsp-network-icon{border-color:#3a579a;color:#3a579a;background:#3a579a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#3a579a));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#3a579a))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#3a579a));stroke:var(--customNetworkColor,var(--networkColor,#3a579a));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:hover .dpsp-network-icon{border-color:#334d87;color:#334d87;background:#334d87}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#334d87}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#334d87));stroke:var(--customNetworkHoverColor,var(--networkHover,#334d87))}.dpsp-twitter{--networkAccent:#0099d7;--networkColor:#00abf0;--networkHover:rgba(0,153,215,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter{border-color:#00abf0;color:#00abf0;background:#00abf0}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:not(:hover):not(:active){color:#00abf0}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter .dpsp-network-icon{border-color:#00abf0;color:#00abf0;background:#00abf0}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#00abf0));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#00abf0))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#00abf0));stroke:var(--customNetworkColor,var(--networkColor,#00abf0));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:hover .dpsp-network-icon{border-color:#0099d7;color:#0099d7;background:#0099d7}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#0099d7}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#0099d7));stroke:var(--customNetworkHoverColor,var(--networkHover,#0099d7))}.dpsp-pinterest{--networkAccent:#b31e24;--networkColor:#c92228;--networkHover:rgba(179,30,36,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest{border-color:#c92228;color:#c92228;background:#c92228}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:not(:hover):not(:active){color:#c92228}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest .dpsp-network-icon{border-color:#c92228;color:#c92228;background:#c92228}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#c92228));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#c92228))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#c92228));stroke:var(--customNetworkColor,var(--networkColor,#c92228));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:hover .dpsp-network-icon{border-color:#b31e24;color:#b31e24;background:#b31e24}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#b31e24}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#b31e24));stroke:var(--customNetworkHoverColor,var(--networkHover,#b31e24))}.dpsp-linkedin{--networkAccent:#00669c;--networkColor:#0077b5;--networkHover:rgba(0,102,156,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin{border-color:#0077b5;color:#0077b5;background:#0077b5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:not(:hover):not(:active){color:#0077b5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin .dpsp-network-icon{border-color:#0077b5;color:#0077b5;background:#0077b5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#0077b5));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#0077b5))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#0077b5));stroke:var(--customNetworkColor,var(--networkColor,#0077b5));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:hover .dpsp-network-icon{border-color:#00669c;color:#00669c;background:#00669c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#00669c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#00669c));stroke:var(--customNetworkHoverColor,var(--networkHover,#00669c))}.dpsp-reddit{--networkAccent:#ff4200;--networkColor:#ff5700;--networkHover:rgba(255,66,0,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit{border-color:#ff5700;color:#ff5700;background:#ff5700}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:not(:hover):not(:active){color:#ff5700}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit .dpsp-network-icon{border-color:#ff5700;color:#ff5700;background:#ff5700}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#ff5700));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#ff5700))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#ff5700));stroke:var(--customNetworkColor,var(--networkColor,#ff5700));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:hover .dpsp-network-icon{border-color:#ff4200;color:#ff4200;background:#ff4200}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#ff4200}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#ff4200));stroke:var(--customNetworkHoverColor,var(--networkHover,#ff4200))}.dpsp-vkontakte{--networkAccent:#456992;--networkColor:#4d75a3;--networkHover:rgba(69,105,146,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte{border-color:#4d75a3;color:#4d75a3;background:#4d75a3}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:not(:hover):not(:active){color:#4d75a3}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte .dpsp-network-icon{border-color:#4d75a3;color:#4d75a3;background:#4d75a3}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#4d75a3));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#4d75a3))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#4d75a3));stroke:var(--customNetworkColor,var(--networkColor,#4d75a3));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:hover .dpsp-network-icon{border-color:#456992;color:#456992;background:#456992}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#456992}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#456992));stroke:var(--customNetworkHoverColor,var(--networkHover,#456992))}.dpsp-whatsapp{--networkAccent:#21c960;--networkColor:#25d366;--networkHover:rgba(33,201,96,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp{border-color:#25d366;color:#25d366;background:#25d366}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:not(:hover):not(:active){color:#25d366}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp .dpsp-network-icon{border-color:#25d366;color:#25d366;background:#25d366}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#25d366));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#25d366))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#25d366));stroke:var(--customNetworkColor,var(--networkColor,#25d366));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:hover .dpsp-network-icon{border-color:#21c960;color:#21c960;background:#21c960}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#21c960}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#21c960));stroke:var(--customNetworkHoverColor,var(--networkHover,#21c960))}.dpsp-instagram{--networkAccent:#a9257e;--networkColor:#bc2a8d;--networkHover:rgba(169,37,126,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram{border-color:#bc2a8d;color:#bc2a8d;background:#bc2a8d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:not(:hover):not(:active){color:#bc2a8d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram .dpsp-network-icon{border-color:#bc2a8d;color:#bc2a8d;background:#bc2a8d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#bc2a8d));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#bc2a8d))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#bc2a8d));stroke:var(--customNetworkColor,var(--networkColor,#bc2a8d));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:hover .dpsp-network-icon{border-color:#a9257e;color:#a9257e;background:#a9257e}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#a9257e}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#a9257e));stroke:var(--customNetworkHoverColor,var(--networkHover,#a9257e))}.dpsp-youtube{--networkAccent:#a20000;--networkColor:#b00;--networkHover:rgba(162,0,0,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube{border-color:#b00;color:#b00;background:#b00}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:not(:hover):not(:active){color:#b00}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube .dpsp-network-icon{border-color:#b00;color:#b00;background:#b00}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#b00));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#b00))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#b00));stroke:var(--customNetworkColor,var(--networkColor,#b00));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:hover .dpsp-network-icon{border-color:#a20000;color:#a20000;background:#a20000}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#a20000}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#a20000));stroke:var(--customNetworkHoverColor,var(--networkHover,#a20000))}.dpsp-vimeo{--networkAccent:#2bb2ff;--networkColor:#4bf;--networkHover:rgba(43,178,255,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo{border-color:#4bf;color:#4bf;background:#4bf}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:not(:hover):not(:active){color:#4bf}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo .dpsp-network-icon{border-color:#4bf;color:#4bf;background:#4bf}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#4bf));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#4bf))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#4bf));stroke:var(--customNetworkColor,var(--networkColor,#4bf));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:hover .dpsp-network-icon{border-color:#2bb2ff;color:#2bb2ff;background:#2bb2ff}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#2bb2ff}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#2bb2ff));stroke:var(--customNetworkHoverColor,var(--networkHover,#2bb2ff))}.dpsp-soundcloud{--networkAccent:#e64c00;--networkColor:#f50;--networkHover:rgba(230,76,0,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud{border-color:#f50;color:#f50;background:#f50}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:not(:hover):not(:active){color:#f50}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud .dpsp-network-icon{border-color:#f50;color:#f50;background:#f50}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#f50));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#f50))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#f50));stroke:var(--customNetworkColor,var(--networkColor,#f50));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:hover .dpsp-network-icon{border-color:#e64c00;color:#e64c00;background:#e64c00}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#e64c00}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#e64c00));stroke:var(--customNetworkHoverColor,var(--networkHover,#e64c00))}.dpsp-twitch{--networkAccent:#593a93;--networkColor:#6441a5;--networkHover:rgba(89,58,147,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch{border-color:#6441a5;color:#6441a5;background:#6441a5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:not(:hover):not(:active){color:#6441a5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch .dpsp-network-icon{border-color:#6441a5;color:#6441a5;background:#6441a5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#6441a5));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#6441a5))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#6441a5));stroke:var(--customNetworkColor,var(--networkColor,#6441a5));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:hover .dpsp-network-icon{border-color:#593a93;color:#593a93;background:#593a93}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#593a93}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#593a93));stroke:var(--customNetworkHoverColor,var(--networkHover,#593a93))}.dpsp-yummly{--networkAccent:#d84d1a;--networkColor:#e55a27;--networkHover:rgba(216,77,26,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly{border-color:#e55a27;color:#e55a27;background:#e55a27}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:not(:hover):not(:active){color:#e55a27}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly .dpsp-network-icon{border-color:#e55a27;color:#e55a27;background:#e55a27}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#e55a27));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#e55a27))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#e55a27));stroke:var(--customNetworkColor,var(--networkColor,#e55a27));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:hover .dpsp-network-icon{border-color:#d84d1a;color:#d84d1a;background:#d84d1a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#d84d1a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#d84d1a));stroke:var(--customNetworkHoverColor,var(--networkHover,#d84d1a))}.dpsp-behance{--networkAccent:#0053e6;--networkColor:#005cff;--networkHover:rgba(0,83,230,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance{border-color:#005cff;color:#005cff;background:#005cff}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:not(:hover):not(:active){color:#005cff}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance .dpsp-network-icon{border-color:#005cff;color:#005cff;background:#005cff}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#005cff));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#005cff))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#005cff));stroke:var(--customNetworkColor,var(--networkColor,#005cff));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:hover .dpsp-network-icon{border-color:#0053e6;color:#0053e6;background:#0053e6}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#0053e6}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#0053e6));stroke:var(--customNetworkHoverColor,var(--networkHover,#0053e6))}.dpsp-email{--networkAccent:#239e57;--networkColor:#27ae60;--networkHover:rgba(35,158,87,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email{border-color:#27ae60;color:#27ae60;background:#27ae60}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:not(:hover):not(:active){color:#27ae60}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email .dpsp-network-icon{border-color:#27ae60;color:#27ae60;background:#27ae60}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#27ae60));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#27ae60))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#27ae60));stroke:var(--customNetworkColor,var(--networkColor,#27ae60));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:hover .dpsp-network-icon{border-color:#239e57;color:#239e57;background:#239e57}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#239e57}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#239e57));stroke:var(--customNetworkHoverColor,var(--networkHover,#239e57))}.dpsp-print{--networkAccent:#afb6bb;--networkColor:#bdc3c7;--networkHover:rgba(175,182,187,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print{border-color:#bdc3c7;color:#bdc3c7;background:#bdc3c7}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:not(:hover):not(:active){color:#bdc3c7}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print .dpsp-network-icon{border-color:#bdc3c7;color:#bdc3c7;background:#bdc3c7}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#bdc3c7));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#bdc3c7))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#bdc3c7));stroke:var(--customNetworkColor,var(--networkColor,#bdc3c7));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:hover .dpsp-network-icon{border-color:#afb6bb;color:#afb6bb;background:#afb6bb}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#afb6bb}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#afb6bb));stroke:var(--customNetworkHoverColor,var(--networkHover,#afb6bb))}.dpsp-pocket{--networkAccent:#e63c51;--networkColor:#ed4055;--networkHover:rgba(230,60,81,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket{border-color:#ed4055;color:#ed4055;background:#ed4055}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:not(:hover):not(:active){color:#ed4055}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket .dpsp-network-icon{border-color:#ed4055;color:#ed4055;background:#ed4055}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#ed4055));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#ed4055))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#ed4055));stroke:var(--customNetworkColor,var(--networkColor,#ed4055));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:hover .dpsp-network-icon{border-color:#e63c51;color:#e63c51;background:#e63c51}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#e63c51}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#e63c51));stroke:var(--customNetworkHoverColor,var(--networkHover,#e63c51))}.dpsp-buffer{--networkAccent:#21282f;--networkColor:#29323b;--networkHover:rgba(33,40,47,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer{border-color:#29323b;color:#29323b;background:#29323b}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:not(:hover):not(:active){color:#29323b}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer .dpsp-network-icon{border-color:#29323b;color:#29323b;background:#29323b}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#29323b));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#29323b))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#29323b));stroke:var(--customNetworkColor,var(--networkColor,#29323b));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:hover .dpsp-network-icon{border-color:#21282f;color:#21282f;background:#21282f}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#21282f}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#21282f));stroke:var(--customNetworkHoverColor,var(--networkHover,#21282f))}.dpsp-tumblr{--networkAccent:#2e3d50;--networkColor:#35465c;--networkHover:rgba(46,61,80,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr{border-color:#35465c;color:#35465c;background:#35465c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:not(:hover):not(:active){color:#35465c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr .dpsp-network-icon{border-color:#35465c;color:#35465c;background:#35465c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#35465c));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#35465c))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#35465c));stroke:var(--customNetworkColor,var(--networkColor,#35465c));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:hover .dpsp-network-icon{border-color:#2e3d50;color:#2e3d50;background:#2e3d50}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#2e3d50}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#2e3d50));stroke:var(--customNetworkHoverColor,var(--networkHover,#2e3d50))}.dpsp-xing{--networkAccent:#006a6c;--networkColor:#00888d;--networkHover:rgba(0,106,108,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing{border-color:#00888d;color:#00888d;background:#00888d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:not(:hover):not(:active){color:#00888d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing .dpsp-network-icon{border-color:#00888d;color:#00888d;background:#00888d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#00888d));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#00888d))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#00888d));stroke:var(--customNetworkColor,var(--networkColor,#00888d));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:hover .dpsp-network-icon{border-color:#006a6c;color:#006a6c;background:#006a6c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#006a6c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#006a6c));stroke:var(--customNetworkHoverColor,var(--networkHover,#006a6c))}.dpsp-github{--networkAccent:#222;--networkColor:#333;--networkHover:rgba(34,34,34,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github{border-color:#333;color:#333;background:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:not(:hover):not(:active){color:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github .dpsp-network-icon{border-color:#333;color:#333;background:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#333));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#333))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#333));stroke:var(--customNetworkColor,var(--networkColor,#333));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:hover .dpsp-network-icon{border-color:#222;color:#222;background:#222}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#222}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#222));stroke:var(--customNetworkHoverColor,var(--networkHover,#222))}.dpsp-flipboard{--networkAccent:#d21d1d;--networkColor:#e12828;--networkHover:rgba(210,29,29,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard{border-color:#e12828;color:#e12828;background:#e12828}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:not(:hover):not(:active){color:#e12828}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard .dpsp-network-icon{border-color:#e12828;color:#e12828;background:#e12828}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#e12828));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#e12828))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#e12828));stroke:var(--customNetworkColor,var(--networkColor,#e12828));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:hover .dpsp-network-icon{border-color:#d21d1d;color:#d21d1d;background:#d21d1d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#d21d1d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#d21d1d));stroke:var(--customNetworkHoverColor,var(--networkHover,#d21d1d))}.dpsp-telegram{--networkAccent:#0077b3;--networkColor:#08c;--networkHover:rgba(0,119,179,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram{border-color:#08c;color:#08c;background:#08c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:not(:hover):not(:active){color:#08c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram .dpsp-network-icon{border-color:#08c;color:#08c;background:#08c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#08c));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#08c))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#08c));stroke:var(--customNetworkColor,var(--networkColor,#08c));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:hover .dpsp-network-icon{border-color:#0077b3;color:#0077b3;background:#0077b3}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#0077b3}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#0077b3));stroke:var(--customNetworkHoverColor,var(--networkHover,#0077b3))}.dpsp-medium{--networkAccent:#111;--networkColor:#333;--networkHover:rgba(17,17,17,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium{border-color:#333;color:#333;background:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:not(:hover):not(:active){color:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium .dpsp-network-icon{border-color:#333;color:#333;background:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#333));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#333))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#333));stroke:var(--customNetworkColor,var(--networkColor,#333));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:hover .dpsp-network-icon{border-color:#111;color:#111;background:#111}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#111}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#111));stroke:var(--customNetworkHoverColor,var(--networkHover,#111))}.dpsp-mix{--networkAccent:#fd721c;--networkColor:#fd8235;--networkHover:rgba(253,114,28,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix{border-color:#fd8235;color:#fd8235;background:#fd8235}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:not(:hover):not(:active){color:#fd8235}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix .dpsp-network-icon{border-color:#fd8235;color:#fd8235;background:#fd8235}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#fd8235));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#fd8235))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#fd8235));stroke:var(--customNetworkColor,var(--networkColor,#fd8235));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:hover .dpsp-network-icon{border-color:#fd721c;color:#fd721c;background:#fd721c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fd721c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#fd721c));stroke:var(--customNetworkHoverColor,var(--networkHover,#fd721c))}.dpsp-grow{--networkAccent:#243c4a;--networkColor:#41a4a9;--networkHover:rgba(36,60,74,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow{border-color:#41a4a9;color:#41a4a9;background:#41a4a9}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:not(:hover):not(:active){color:#41a4a9}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow .dpsp-network-icon{border-color:#41a4a9;color:#41a4a9;background:#41a4a9}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none;stroke:var(--customNetworkColor,var(--networkColor,#41a4a9));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#41a4a9))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#41a4a9));stroke:var(--customNetworkColor,var(--networkColor,#41a4a9));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:hover .dpsp-network-icon{border-color:#243c4a;color:#243c4a;background:#243c4a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#243c4a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#243c4a));stroke:var(--customNetworkHoverColor,var(--networkHover,#243c4a))}.dpsp-shape-rounded .dpsp-network-btn,.dpsp-shape-rounded .dpsp-network-btn .dpsp-network-icon{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.dpsp-shape-rounded .dpsp-network-btn,.dpsp-shape-rounded .dpsp-no-label.dpsp-network-btn .dpsp-network-icon{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.dpsp-shape-circle .dpsp-network-btn{border-radius:30px}.dpsp-shape-circle .dpsp-network-btn .dpsp-network-icon{overflow:hidden;border-radius:30px}.dpsp-has-spacing .dpsp-networks-btns-wrapper li{margin-right:2%;margin-bottom:10px;margin-left:0!important}.dpsp-size-small .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn{min-width:32px;height:32px;max-height:32px;line-height:28px}.dpsp-size-small .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{width:32px}.dpsp-size-small .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn .dpsp-network-icon{width:32px;height:32px;line-height:28px}.dpsp-size-small .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn .dpsp-network-icon-inner{height:28px}.dpsp-size-small .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label{width:32px}.dpsp-size-small .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{left:0}.dpsp-size-small.dpsp-button-style-6 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-size-small.dpsp-button-style-7 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-size-small.dpsp-button-style-8 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{left:-2px}.dpsp-size-large .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn{min-width:46px;height:46px;max-height:46px;line-height:42px}.dpsp-size-large .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon{width:46px;height:46px;line-height:42px}.dpsp-size-large .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon-inner{height:42px}.dpsp-size-large .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label{width:46px}.dpsp-size-large .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{left:0}.dpsp-size-large.dpsp-button-style-6 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-size-large.dpsp-button-style-7 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-size-large.dpsp-button-style-8 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{left:-2px}.dpsp-size-medium .dpsp-networks-btns-sidebar .dpsp-network-btn{min-width:45px;height:45px;max-height:45px;padding-left:0;line-height:41px}.dpsp-size-medium .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{width:45px;line-height:41px}.dpsp-size-medium .dpsp-networks-btns-sidebar.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count .dpsp-network-icon{height:26px;line-height:26px}.dpsp-size-large .dpsp-networks-btns-sidebar .dpsp-network-btn{min-width:50px;height:50px;max-height:50px;padding-left:0;line-height:46px}.dpsp-size-large .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{width:50px;line-height:46px}.dpsp-size-large .dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon{height:30px;line-height:30px}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow{max-width:0;max-height:0;opacity:0;transition:all .4s ease;transform-origin:top}.dpsp-card-inner .dpsp-networks-btns-wrapper .dpsp-network-list-item-grow{max-width:unset;max-height:unset;opacity:unset}.dpsp-card-inner .dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-count,.dpsp-card-inner .dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-icon,.dpsp-card-inner .dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-label{opacity:unset}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-count,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-label{opacity:0}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-load-in{max-width:20rem;max-height:70px;opacity:1;transition:all .5s ease}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-load-in .dpsp-network-count,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-load-in .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-load-in .dpsp-network-label{opacity:1;transition:opacity .4s ease .5s}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-loaded{max-width:20rem;max-height:70px;opacity:1;transition:all .2s ease}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-loaded .dpsp-network-count,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-loaded .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-loaded .dpsp-network-label{opacity:1;transition:all .2s ease}.dpsp-grow-check-icon{opacity:0;transition:all .2s ease;transform-origin:center center}.dpsp-grow-saved .dpsp-grow-check-icon{opacity:1}@media print{#dpsp-content-bottom,#dpsp-content-top,#dpsp-floating-sidebar,#dpsp-pop-up,#dpsp-pop-up-overlay,#dpsp-sticky-bar-wrapper,.dpsp-share-text{display:none!important}}.dpsp-pin-it-wrapper{display:inline-table;position:relative!important;line-height:0}.blocks-gallery-item .dpsp-pin-it-wrapper{display:inline-block}.dpsp-pin-it-wrapper.aligncenter,.dpsp-pin-it-wrapper.alignleft,.dpsp-pin-it-wrapper.alignright{display:table!important}.dpsp-pin-it-wrapper:hover .dpsp-pin-it-button{visibility:visible;color:#fff!important;background-color:#c92228!important}.dpsp-pin-it-wrapper.aligncenter{margin-right:auto;margin-left:auto}.wp-block-gallery.is-cropped .blocks-gallery-item .dpsp-pin-it-wrapper{height:100%;flex:1;object-fit:cover}.dpsp-pin-it-button{display:inline-block;position:absolute;visibility:hidden;width:auto!important;height:40px!important;border:0!important;color:transparent!important;background:transparent;background-image:none!important;box-shadow:none!important;font-family:Arial;font-size:14px;font-weight:700;line-height:40px;vertical-align:middle;text-decoration:none!important;transition:all .25s ease-in-out}.dpsp-pin-it-button:hover{color:#fff;background:#b31e24;box-shadow:none!important}.dpsp-pin-it-button.dpsp-pin-it-button-has-label{padding-right:20px}.dpsp-pin-it-button.dpsp-pin-it-button-has-label:after{display:inline-block;content:attr(title)}.dpsp-pin-it-button .dpsp-network-icon{display:inline-block;width:40px;height:40px;text-align:center;vertical-align:top}.dpsp-pin-it-button .dpsp-network-icon svg{display:inline-block;height:20px;vertical-align:middle;fill:#fff}.dpsp-pin-it-button.dpsp-pin-it-button-top-left{top:10px;left:10px}.dpsp-pin-it-button.dpsp-pin-it-button-top-right{top:10px;right:10px}.dpsp-pin-it-button.dpsp-pin-it-button-bottom-left{bottom:10px;left:10px}.dpsp-pin-it-button.dpsp-pin-it-button-bottom-right{right:10px;bottom:10px}.dpsp-pin-it-button.dpsp-pin-it-button-center{top:50%;left:50%;white-space:nowrap;transform:translate(-50%,-50%)}.dpsp-pin-it-button.dpsp-pin-it-button-shape-rectangular{border-radius:0}.dpsp-pin-it-button.dpsp-pin-it-button-shape-rounded{border-radius:4px}.dpsp-pin-it-button.dpsp-pin-it-button-shape-circle{border-radius:40px}.dpsp-pin-it-wrapper .dpsp-pin-it-overlay{display:block;position:absolute;top:0;left:0;visibility:hidden;width:100%;height:100%;opacity:0;background:#fff;transition:all .25s ease-in-out;pointer-events:none}.dpsp-pin-it-wrapper:hover .dpsp-pin-it-overlay{visibility:visible;opacity:.4}.dpsp-networks-btns-wrapper.dpsp-networks-btns-pop-up.dpsp-column-auto{text-align:center}.dpsp-networks-btns-wrapper.dpsp-networks-btns-pop-up.dpsp-column-auto li{display:inline-block;float:none}.dpsp-shortcode-wrapper{margin-bottom:1.2em}#dpsp-floating-sidebar{position:fixed;top:50%;transform:translateY(-50%);z-index:9998}#dpsp-floating-sidebar.dpsp-position-left{left:0}#dpsp-floating-sidebar.dpsp-position-right{right:0}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar li{float:none;margin-left:0}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn{width:40px;padding:0}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{border-color:transparent!important;background:transparent!important}.dpsp-size-medium .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon-inner{height:41px}.dpsp-size-large .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon-inner{height:46px}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon{height:22px;line-height:22px}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon-inner{height:18px}.dpsp-size-large .dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon-inner{height:30px}#dpsp-floating-sidebar.dpsp-no-animation{display:none}#dpsp-floating-sidebar.dpsp-no-animation.opened{display:block}#dpsp-floating-sidebar.stop-hidden,#dpsp-floating-sidebar.stop-hidden.opened{visibility:hidden}#dpsp-floating-sidebar.dpsp-animation-1{opacity:0;transition:opacity .2s ease-in-out}#dpsp-floating-sidebar.dpsp-animation-1.opened{opacity:1}#dpsp-floating-sidebar.dpsp-position-left.dpsp-animation-2,#dpsp-floating-sidebar.dpsp-position-left.dpsp-shape-circle.dpsp-animation-2{left:-60px;transition:left .2s ease-in-out}#dpsp-floating-sidebar.dpsp-position-left.dpsp-animation-2.opened{left:0}#dpsp-floating-sidebar.dpsp-position-left.dpsp-shape-circle.dpsp-animation-2.opened{left:12px}#dpsp-floating-sidebar.dpsp-position-right.dpsp-animation-2,#dpsp-floating-sidebar.dpsp-position-right.dpsp-shape-circle.dpsp-animation-2{right:-60px;transition:right .2s ease-in-out}#dpsp-floating-sidebar.dpsp-position-right.dpsp-animation-2.opened{right:0}#dpsp-floating-sidebar.dpsp-position-right.dpsp-shape-circle.dpsp-animation-2.opened{right:10px}.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn,.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{border-radius:0}.dpsp-position-left.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-first,.dpsp-position-left.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-first .dpsp-network-icon{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px}.dpsp-position-left.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-last,.dpsp-position-left.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-last .dpsp-network-icon{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.dpsp-position-left.dpsp-shape-rounded.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn,.dpsp-position-left.dpsp-shape-rounded.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.dpsp-position-right.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-first,.dpsp-position-right.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-first .dpsp-network-icon{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}.dpsp-position-right.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-last,.dpsp-position-right.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-last .dpsp-network-icon{-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.dpsp-position-right.dpsp-shape-rounded.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn,.dpsp-position-right.dpsp-shape-rounded.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.dpsp-shape-rounded.dpsp-has-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{border-radius:4px}#dpsp-floating-sidebar.dpsp-position-left.dpsp-shape-circle{left:12px}#dpsp-floating-sidebar.dpsp-position-right.dpsp-shape-circle{right:10px}.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn{margin-bottom:6px}.dpsp-shape-rounded.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}#dpsp-floating-sidebar.dpsp-style-2 .dpsp-network-btn .dpsp-network-icon{background:none}#dpsp-floating-sidebar .dpsp-networks-btns-wrapper li{position:relative;overflow:visible}#dpsp-floating-sidebar .dpsp-networks-btns-wrapper .dpsp-network-label{display:inline-block;position:absolute;top:50%;visibility:hidden;box-sizing:border-box;width:auto;height:30px;margin-top:-15px;padding:6px 12px;border-radius:3px;opacity:0;color:#fff;background:#34495e;font-size:12px;font-weight:400;line-height:18px;white-space:nowrap;transition:all .2s ease-in-out;z-index:1}#dpsp-floating-sidebar.dpsp-position-left .dpsp-networks-btns-wrapper .dpsp-network-label{left:100%}#dpsp-floating-sidebar.dpsp-position-right .dpsp-networks-btns-wrapper .dpsp-network-label{right:100%}#dpsp-floating-sidebar.dpsp-position-left .dpsp-networks-btns-wrapper li.dpsp-hover .dpsp-network-label{visibility:visible;opacity:1;transform:translateX(10px)}#dpsp-floating-sidebar.dpsp-position-right .dpsp-networks-btns-wrapper li.dpsp-hover .dpsp-network-label{visibility:visible;opacity:1;transform:translateX(-10px)}#dpsp-floating-sidebar .dpsp-networks-btns-wrapper .dpsp-network-label:before{display:block;position:absolute;top:50%;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;content:""}#dpsp-floating-sidebar.dpsp-position-left .dpsp-networks-btns-wrapper .dpsp-network-label:before{left:-5px;border-right:5px solid #34495e}#dpsp-floating-sidebar.dpsp-position-right .dpsp-networks-btns-wrapper .dpsp-network-label:before{right:-5px;border-left:5px solid #34495e}.dpsp-settings-button-style .dpsp-networks-btns-sidebar .dpsp-network-label{display:none}#dpsp-sticky-bar-wrapper{position:fixed;bottom:0;left:0;width:100%;background:#fff;z-index:1000}#dpsp-sticky-bar-wrapper.dpsp-position-desktop-top{top:0;bottom:auto}#dpsp-sticky-bar-wrapper.dpsp-position-desktop-bottom{top:auto;bottom:0}#dpsp-sticky-bar-wrapper.dpsp-no-animation{visibility:hidden;opacity:0}#dpsp-sticky-bar-wrapper.dpsp-no-animation.opened{visibility:visible;opacity:1}#dpsp-sticky-bar{display:none;position:relative;box-sizing:border-box;margin:7px 0}#dpsp-sticky-bar .dpsp-networks-btns-wrapper{display:flex}#dpsp-sticky-bar .dpsp-networks-btns-wrapper li{float:none;margin-right:3px;margin-bottom:0;margin-left:3px;flex:1}#dpsp-sticky-bar .dpsp-networks-btns-wrapper li:last-of-type{margin-right:0}#dpsp-sticky-bar .dpsp-network-btn{padding-right:1em;padding-left:1em;text-align:center}#dpsp-sticky-bar .dpsp-network-btn .dpsp-network-icon{display:inline-block;position:relative;overflow:visible;width:20px}#dpsp-sticky-bar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon{margin-right:5px}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-top{top:0;bottom:auto}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-bottom{top:auto;bottom:0}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar{position:static;width:100%!important;margin:0;padding:0}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar .dpsp-networks-btns-wrapper li{margin:0}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar .dpsp-network-btn{height:44px;max-height:44px;padding-right:0;padding-left:0;border-radius:0;line-height:40px;text-align:center}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar .dpsp-network-btn .dpsp-network-icon{display:inline-block;position:relative;left:auto;float:none;font-size:18px;line-height:40px}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon{display:block;position:absolute;width:100%;height:26px;line-height:26px}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar .dpsp-network-btn .dpsp-network-count{position:absolute;bottom:0;left:0;width:100%;height:20px;margin-left:0;font-size:11px;line-height:20px;text-align:center}#dpsp-sticky-bar-wrapper.dpsp-animation-1{visibility:hidden;opacity:0;transition:opacity .2s ease-in-out}#dpsp-sticky-bar-wrapper.dpsp-animation-1.opened{visibility:visible;opacity:1}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-bottom.dpsp-animation-2,#dpsp-sticky-bar-wrapper:not(.dpsp-is-mobile).dpsp-position-desktop-bottom.dpsp-animation-2{bottom:-88px;visibility:hidden;transition:bottom .3s ease-in-out,visibility .3s ease-in-out}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-bottom.dpsp-animation-2.opened,#dpsp-sticky-bar-wrapper:not(.dpsp-is-mobile).dpsp-position-desktop-bottom.dpsp-animation-2.opened{bottom:0;visibility:visible}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-top.dpsp-animation-2,#dpsp-sticky-bar-wrapper:not(.dpsp-is-mobile).dpsp-position-desktop-top.dpsp-animation-2{top:-88px;bottom:auto;visibility:hidden;transition:top .3s ease-in-out,visibility .3s ease-in-out}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-top.dpsp-animation-2.opened,#dpsp-sticky-bar-wrapper:not(.dpsp-is-mobile).dpsp-position-desktop-top.dpsp-animation-2.opened{top:0;visibility:visible}@media screen and (min-width:782px){body.admin-bar #dpsp-sticky-bar-wrapper{margin-top:32px}}.dpsp-click-to-tweet{display:block;position:relative;margin:1.5em 0;font-size:105%;text-decoration:none;transition:all .15s ease-in}.dpsp-click-to-tweet,.dpsp-click-to-tweet:hover{box-shadow:none!important}.dpsp-click-to-tweet.dpsp-has-avatar{min-height:115px;padding-left:120px!important}.dpsp-click-to-tweet.dpsp-has-avatar .avatar{position:absolute;top:15px;left:15px;border-radius:50%;box-shadow:none!important}.dpsp-click-to-tweet-footer:after,.dpsp-click-to-tweet:after{display:block;clear:both;content:""}.dpsp-click-to-tweet-content{display:block;position:relative;font-family:Georgia;font-size:18px;line-height:1.5;text-align:left;z-index:2}.dpsp-click-to-tweet-footer{display:block;margin-top:1em;color:#999;font-family:Arial;font-size:14px;font-weight:700}.dpsp-click-to-tweet.dpsp-click-to-tweet-cta-left .dpsp-click-to-tweet-cta{float:left}.dpsp-click-to-tweet.dpsp-click-to-tweet-cta-right .dpsp-click-to-tweet-cta{float:right}.dpsp-click-to-tweet-cta{color:#00abf0;line-height:1}.dpsp-click-to-tweet-cta svg{fill:#00abf0}.dpsp-click-to-tweet-cta .dpsp-twitter{display:inline-block;vertical-align:middle}.dpsp-click-to-tweet-cta>span{margin-right:10px;vertical-align:middle}.dpsp-click-to-tweet:hover .dpsp-twitter .dpsp-network-icon-inner{transition:all .2s ease-in-out}.dpsp-click-to-tweet.dpsp-click-to-tweet-cta-icon-animation:hover .dpsp-click-to-tweet-cta .dpsp-twitter .dpsp-network-icon-after{margin-left:-10px;opacity:1}.dpsp-click-to-tweet.dpsp-click-to-tweet-cta-icon-animation:hover .dpsp-click-to-tweet-cta .dpsp-twitter .dpsp-network-icon-before{margin-left:10px;opacity:0}a.dpsp-click-to-tweet.dpsp-style-1{padding:15px 5px 5px 30px;border:0;border-left:5px solid #00abf0;color:#555}a.dpsp-click-to-tweet.dpsp-style-1:hover{border-left:5px solid #0099d7}a.dpsp-click-to-tweet.dpsp-style-2{padding:20px 30px;border:0;border-left:5px solid #00abf0;color:#555;background:#f6f6f6}a.dpsp-click-to-tweet.dpsp-style-2:hover{border-left:5px solid #0099d7}a.dpsp-click-to-tweet.dpsp-style-3{padding:20px 30px;border:1px solid #e1e1e1;border-radius:3px;color:#838383}a.dpsp-click-to-tweet.dpsp-style-3:hover{color:#555}a.dpsp-click-to-tweet.dpsp-style-4{padding:20px 30px;border:4px double #e1e1e1;border-radius:0;color:#838383}a.dpsp-click-to-tweet.dpsp-style-4:hover{color:#555}a.dpsp-click-to-tweet.dpsp-style-5{padding:20px 30px;border:0;border-left:0 solid transparent;border-radius:3px;color:#fff;background:#00abf0;transition:border .2s ease-in-out}a.dpsp-click-to-tweet.dpsp-style-5 .dpsp-click-to-tweet-cta{color:#fff}a.dpsp-click-to-tweet.dpsp-style-5 .dpsp-click-to-tweet-cta svg{fill:#fff}a.dpsp-click-to-tweet.dpsp-style-5:hover{border-left:9px solid #0099d7;color:#fff}a.dpsp-click-to-tweet.dpsp-style-5 .dpsp-click-to-tweet-content,a.dpsp-click-to-tweet.dpsp-style-5 .dpsp-click-to-tweet-footer,a.dpsp-click-to-tweet.dpsp-style-5>img{transition:margin-left .2s ease-in-out}a.dpsp-click-to-tweet.dpsp-style-5:hover .dpsp-click-to-tweet-content,a.dpsp-click-to-tweet.dpsp-style-5:hover .dpsp-click-to-tweet-footer,a.dpsp-click-to-tweet.dpsp-style-5:hover>img{margin-left:-9px}.dpsp-shortcode-follow-wrapper>.dpsp-networks-btns-follow-widget{display:flex;flex-flow:row wrap}.dpsp-shortcode-follow-wrapper.dpsp-follow-align-left>.dpsp-networks-btns-follow-widget{justify-content:flex-start}.dpsp-shortcode-follow-wrapper.dpsp-follow-align-center>.dpsp-networks-btns-follow-widget{justify-content:center}.dpsp-shortcode-follow-wrapper.dpsp-follow-align-right>.dpsp-networks-btns-follow-widget{justify-content:flex-end}.dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon{display:block;position:relative;top:-2px;left:-2px;-moz-box-sizing:border-box;box-sizing:border-box;width:40px;height:40px;border:2px solid;font-size:14px;line-height:36px;text-align:center;-webkit-transition:all .15s ease-in;-moz-transition:all .15s ease-in;-o-transition:all .15s ease-in;transition:all .15s ease-in;align-self:start;flex:0 0 auto}.dpsp-icon-total-share svg,.dpsp-network-icon .dpsp-network-icon-inner svg{position:relative;overflow:visible;width:auto;max-height:14px;transition:fill .15s ease-in-out}.dpsp-size-large .dpsp-icon-total-share svg,.dpsp-size-large .dpsp-network-icon .dpsp-network-icon-inner svg{max-height:22px}.widget_dpsp_social_media_follow .dpsp-network-icon .dpsp-network-icon-inner svg{top:.05em}.dpsp-icon-total-share,.dpsp-network-icon-inner{display:flex;align-items:center;justify-content:center}.dpsp-network-icon-inner{height:36px;transition:all .2s ease}.dpsp-networks-btns-wrapper.dpsp-has-button-icon-animation .dpsp-network-btn:hover .dpsp-network-icon-inner{transition:all .2s cubic-bezier(.62,3.15,.4,-.64);transform:scale(1.5)}#dpsp-pop-up{position:fixed;width:100%;max-width:750px;padding:40px;border-radius:10px;opacity:0;background:#fff;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;transform:translate(-50%,-50%);z-index:9999}#dpsp-pop-up.dpsp-animation-1{transform:translate(-50%,-50%) scale(.1)}#dpsp-pop-up.dpsp-animation-3{transform:translate(-50%)}#dpsp-pop-up.dpsp-animation-4{transform:translate(-50%,-100%)}#dpsp-pop-up-overlay.no-animation,#dpsp-pop-up.no-animation{-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}#dpsp-pop-up.opened{top:50%;left:50%;opacity:1;transform:scale(1) translate(-50%,-50%)}#dpsp-pop-up-overlay{display:block;position:fixed;top:0;left:0;width:0;height:0;opacity:0;background:#000;-webkit-transition:opacity .25s ease-in-out,margin .25s ease-in-out;-moz-transition:opacity .25s ease-in-out,margin .25s ease-in-out;-o-transition:opacity .25s ease-in-out,margin .25s ease-in-out;transition:opacity .25s ease-in-out,margin .25s ease-in-out;z-index:9998}#dpsp-pop-up-overlay.opened{width:100%;height:100%;opacity:.65}#dpsp-pop-up-content{text-align:center}#dpsp-pop-up-close{display:block;position:absolute;top:10px;right:10px;width:22px;height:22px;line-height:22px;text-align:center;vertical-align:middle;cursor:pointer}#dpsp-pop-up-close svg{position:relative;top:2px;width:auto;max-height:16px;vertical-align:top;fill:#999}#dpsp-pop-up h2{margin-bottom:1em}#dpsp-pop-up h2 p{font-size:inherit}#dpsp-pop-up h2 p:last-of-type{margin-top:0;margin-bottom:0}#dpsp-pop-up p{margin-top:1em;margin-bottom:1em}#dpsp-post-bottom{width:0;height:0;margin:0;padding:0}@media screen and (max-width:800px){#dpsp-pop-up{width:90%}}@media screen and (max-width:720px){#dpsp-pop-up .dpsp-networks-btns-wrapper li{width:100%;margin-right:0;margin-left:0}}.dpsp-top-shared-post{margin-bottom:2em}.dpsp-top-shared-post-thumbnail{display:block;margin-bottom:1.2em}.dpsp-top-shared-post-thumbnail img{max-width:100%;height:auto}.dpsp-top-shared-post-title{display:inline-block;margin-bottom:.5em}.dpsp-show-total-share-count{position:relative}.dpsp-total-share-wrapper{position:relative;margin-top:10px;color:#5d6368;font-family:Helvetica,Helvetica Neue,Arial,sans-serif;line-height:1.345}.dpsp-total-share-wrapper .dpsp-total-share-count{font-size:15px;line-height:18px;white-space:nowrap}.dpsp-total-share-wrapper .dpsp-icon-total-share{position:absolute;top:6px;left:0;margin-top:0;margin-left:0}.dpsp-total-share-wrapper .dpsp-icon-total-share svg{top:2px;width:auto;max-height:16px;fill:#5d6368}#dpsp-floating-sidebar .dpsp-total-share-wrapper{margin-bottom:10px}#dpsp-floating-sidebar .dpsp-total-share-wrapper .dpsp-icon-total-share{display:none}.dpsp-total-share-wrapper span{display:block;font-size:11px;font-weight:700;text-align:center;white-space:nowrap;text-transform:uppercase}.dpsp-content-wrapper .dpsp-total-share-wrapper,.dpsp-pop-up-buttons-wrapper .dpsp-total-share-wrapper,.dpsp-share-buttons-wrapper .dpsp-total-share-wrapper,.dpsp-shortcode-wrapper .dpsp-total-share-wrapper{position:absolute;top:50%;box-sizing:border-box;width:60px;height:40px;margin-top:-21px;padding-left:20px}#dpsp-sticky-bar .dpsp-total-share-wrapper{height:32px;margin-top:-16px}#dpsp-sticky-bar-wrapper.dpsp-is-mobile .dpsp-total-share-wrapper{display:none}.dpsp-content-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before,.dpsp-pop-up-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before,.dpsp-share-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before,.dpsp-shortcode-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before{padding-left:75px}.dpsp-content-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after,.dpsp-pop-up-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after,.dpsp-share-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after,.dpsp-shortcode-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after{padding-right:70px}.dpsp-content-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before .dpsp-total-share-wrapper,.dpsp-pop-up-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before .dpsp-total-share-wrapper,.dpsp-share-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before .dpsp-total-share-wrapper,.dpsp-shortcode-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before .dpsp-total-share-wrapper{left:0}.dpsp-content-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after .dpsp-total-share-wrapper,.dpsp-pop-up-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after .dpsp-total-share-wrapper,.dpsp-share-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after .dpsp-total-share-wrapper,.dpsp-shortcode-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after .dpsp-total-share-wrapper{right:0}.dpsp-button-style-1 .dpsp-network-btn{color:#fff!important}.dpsp-button-style-1 .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label),.dpsp-button-style-1 .dpsp-network-btn.dpsp-no-label{justify-content:center}.dpsp-button-style-1 .dpsp-network-btn .dpsp-network-icon:not(.dpsp-network-icon-outlined) .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-1 .dpsp-network-btn .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{stroke:#fff!important}.dpsp-button-style-1 .dpsp-network-btn.dpsp-grow-saved .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg,.dpsp-button-style-1 .dpsp-network-btn:focus .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg,.dpsp-button-style-1 .dpsp-network-btn:hover .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn{color:#fff!important}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon{border-color:var(--customNetworkHoverColor,var(--networkAccent));background-color:var(--customNetworkHoverColor,var(--networkAccent))}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label),.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn.dpsp-no-label{justify-content:center}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon:not(.dpsp-network-icon-outlined) .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{stroke:#fff!important}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn.dpsp-grow-saved .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg,.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:focus .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg,.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:hover .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-2 .dpsp-networks-btns-sidebar .dpsp-network-btn,.dpsp-button-style-2 .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{background:transparent!important}.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label),.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label{justify-content:center}.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{stroke:#fff!important}.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count.dpsp-has-label:not(:hover):not(:focus),.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count:not(:hover):not(:focus),.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn:not(.dpsp-no-label):not(:hover):not(:focus):not(.dpsp-has-count){background:#fff}.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label{background:var(--customNetworkColor,var(--networkColor,#fff))}.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:focus,.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:hover{color:#fff}.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn.dpsp-grow-saved .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-networks-btns-sidebar .dpsp-network-btn,.dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{border-color:transparent;background:transparent}.dpsp-networks-btns-sidebar .dpsp-network-btn:focus,.dpsp-networks-btns-sidebar .dpsp-network-btn:hover{border-color:transparent}.dpsp-networks-btns-sidebar .dpsp-network-btn:focus .dpsp-network-icon,.dpsp-networks-btns-sidebar .dpsp-network-btn:hover .dpsp-network-icon{border-color:transparent;background:transparent}.dpsp-button-style-4.dpsp-shape-rounded .dpsp-network-btn .dpsp-network-icon{border-radius:4px}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-has-label{color:#fff}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label),.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-no-label{justify-content:center}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label):not(:hover):not(:focus),.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-no-label:not(:hover):not(:focus){background-color:initial}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label) .dpsp-network-icon,.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{border-color:transparent;background-color:initial}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn .dpsp-network-icon{background:#fff}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:focus,.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:hover{color:#fff}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:focus .dpsp-network-icon,.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:hover .dpsp-network-icon{background:transparent}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important;stroke:#fff}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor))!important}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:#fff;stroke:#fff}.dpsp-button-style-5 .dpsp-network-btn .dpsp-network-icon{border-color:transparent!important}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn,.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon{background:transparent}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus,.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover{border-color:transparent!important;color:#fff!important}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon,.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon{background:transparent}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg,.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:#fff!important;stroke:#fff!important}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor))!important}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg>svg{fill:#fff;stroke:#fff}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label),.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label{justify-content:center}.dpsp-button-style-6.dpsp-shape-rounded .dpsp-network-btn .dpsp-network-icon{border-radius:4px}.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn{border-color:transparent!important;background:transparent!important}.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:40px}.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus,.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover{border-color:transparent!important}.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon:not(.dpsp-network-icon-outlined) .dpsp-network-icon-inner>svg,.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{stroke:#fff!important}.dpsp-button-style-6.dpsp-size-small .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:32px}.dpsp-button-style-7.dpsp-shape-rounded .dpsp-network-btn .dpsp-network-icon{border-radius:4px}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn{background:transparent}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label{border-color:transparent}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon{background:transparent}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:32px}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus,.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover{background:transparent!important}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important;stroke:#fff}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor))!important}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:#fff;stroke:#fff}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-size-small .dpsp-networks-btns-wrapper .dpsp-network-btn,.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-size-small .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:32px}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn{border-color:transparent;background:transparent}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:40px}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus,.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon,.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover,.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon{border-color:transparent;background:transparent}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkHoverColor,var(--networkAccent))!important;stroke:var(--customNetworkHoverColor,var(--networkAccent))!important}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:#fff;stroke:#fff}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor))!important}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:#fff;stroke:#fff}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon{border-color:transparent;background:transparent}.dpsp-button-style-8 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon{margin-right:-10px}.dpsp-button-style-8.dpsp-size-small .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:32px}
|
|
assets/dist/style-frontend-pro.1.20.0.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
#dpsp-content-top{margin-bottom:1.2em}#dpsp-content-bottom{margin-top:1.2em}.dpsp-share-text{margin-bottom:10px;font-weight:700}.dpsp-networks-btns-wrapper{margin:0!important;padding:0!important;list-style:none!important}.dpsp-networks-btns-wrapper:after{display:block;clear:both;height:0;content:""}.dpsp-networks-btns-wrapper li{float:left;margin:0;padding:0;border:0;list-style-type:none!important;-webkit-transition:all .15s ease-in;-moz-transition:all .15s ease-in;-o-transition:all .15s ease-in;transition:all .15s ease-in}.dpsp-networks-btns-wrapper li:before{display:none!important}.dpsp-networks-btns-wrapper li:first-child{margin-left:0!important}.dpsp-networks-btns-wrapper .dpsp-network-btn{display:flex;position:relative;-moz-box-sizing:border-box;box-sizing:border-box;width:100%;min-width:40px;height:40px;max-height:40px;padding:0;border:2px solid;border-radius:0;box-shadow:none;font-family:Arial,sans-serif;font-size:14px;font-weight:700;line-height:36px;text-align:center;vertical-align:middle;text-decoration:none!important;text-transform:unset!important;cursor:pointer;-webkit-transition:all .15s ease-in;-moz-transition:all .15s ease-in;-o-transition:all .15s ease-in;transition:all .15s ease-in}.dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-label{padding-right:.5em;padding-left:.5em}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count .dpsp-network-label{padding-right:.25em}.dpsp-networks-btns-wrapper.dpsp-column-auto .dpsp-network-btn.dpsp-no-label{width:40px}.dpsp-button-style-6 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-button-style-7 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-button-style-8 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{left:-2px}.dpsp-networks-btns-wrapper .dpsp-network-btn:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn:hover{border:2px solid;outline:none;box-shadow:0 0 0 3px rgba(21,156,228,.4);box-shadow:0 0 0 3px var(--networkHover)}.dpsp-networks-btns-wrapper .dpsp-network-btn:after{display:block;clear:both;height:0;content:""}.dpsp-networks-btns-wrapper.dpsp-column-auto .dpsp-network-btn.dpsp-no-label{padding-left:0!important}.dpsp-size-small .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{width:28px}.dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-count{padding-right:.5em;padding-left:.25em;font-size:13px;font-weight:400;white-space:nowrap}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-count{position:absolute;bottom:0;left:0;width:100%;height:20px;margin-left:0;padding-left:.5em;font-size:11px;line-height:20px;text-align:center}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sticky-bar .dpsp-network-btn .dpsp-network-count{padding-left:.5em}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label .dpsp-network-label-wrapper{display:none}.dpsp-button-style-6 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-column-auto):not(.dpsp-column-6) .dpsp-network-btn.dpsp-has-count-only .dpsp-network-label-wrapper,.dpsp-button-style-7 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-column-auto):not(.dpsp-column-6) .dpsp-network-btn.dpsp-has-count-only .dpsp-network-label-wrapper{display:inline-block;text-indent:2em}.dpsp-networks-btns-wrapper.dpsp-column-1 li{width:100%;margin-left:0}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-1 li{margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-2 li{width:50%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-2 li{width:49%}.dpsp-networks-btns-wrapper.dpsp-column-2 li:nth-child(2n){margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-3 li{width:33.3333%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-3 li{width:32%}.dpsp-networks-btns-wrapper.dpsp-column-3 li:nth-child(3n){margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-4 li{width:25%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-4 li{width:23.5%}.dpsp-networks-btns-wrapper.dpsp-column-4 li:nth-child(4n){margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-5 li{width:20%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-5 li{width:18.4%}.dpsp-networks-btns-wrapper.dpsp-column-5 li:nth-child(5n){margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-6 li{width:16.6666%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-6 li{width:15%}.dpsp-networks-btns-wrapper.dpsp-column-6 li:nth-child(6n){margin-right:0}.dpsp-networks-btns-wrapper.dpsp-column-7 li{width:14.285%}.dpsp-has-spacing .dpsp-networks-btns-wrapper.dpsp-column-7 li{width:13%}.dpsp-networks-btns-wrapper.dpsp-column-7 li:nth-child(6n){margin-right:0}.dpsp-shape-circle .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:not(.dpsp-no-label){padding-right:10px}.dpsp-no-labels .dpsp-networks-btns-wrapper .dpsp-network-btn{padding:0!important;text-align:center}.dpsp-facebook{--networkAccent:#334d87;--networkColor:#3a579a;--networkHover:rgba(51,77,135,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook{border-color:#3a579a;color:#3a579a;background:#3a579a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:not(:hover):not(:active){color:#3a579a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook .dpsp-network-icon{border-color:#3a579a;color:#3a579a;background:#3a579a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#3a579a));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#3a579a))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#3a579a));stroke:var(--customNetworkColor,var(--networkColor,#3a579a));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:hover .dpsp-network-icon{border-color:#334d87;color:#334d87;background:#334d87}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#334d87}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-facebook:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#334d87));stroke:var(--customNetworkHoverColor,var(--networkHover,#334d87))}.dpsp-twitter{--networkAccent:#0099d7;--networkColor:#00abf0;--networkHover:rgba(0,153,215,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter{border-color:#00abf0;color:#00abf0;background:#00abf0}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:not(:hover):not(:active){color:#00abf0}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter .dpsp-network-icon{border-color:#00abf0;color:#00abf0;background:#00abf0}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#00abf0));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#00abf0))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#00abf0));stroke:var(--customNetworkColor,var(--networkColor,#00abf0));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:hover .dpsp-network-icon{border-color:#0099d7;color:#0099d7;background:#0099d7}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#0099d7}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitter:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#0099d7));stroke:var(--customNetworkHoverColor,var(--networkHover,#0099d7))}.dpsp-pinterest{--networkAccent:#b31e24;--networkColor:#c92228;--networkHover:rgba(179,30,36,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest{border-color:#c92228;color:#c92228;background:#c92228}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:not(:hover):not(:active){color:#c92228}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest .dpsp-network-icon{border-color:#c92228;color:#c92228;background:#c92228}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#c92228));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#c92228))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#c92228));stroke:var(--customNetworkColor,var(--networkColor,#c92228));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:hover .dpsp-network-icon{border-color:#b31e24;color:#b31e24;background:#b31e24}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#b31e24}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pinterest:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#b31e24));stroke:var(--customNetworkHoverColor,var(--networkHover,#b31e24))}.dpsp-linkedin{--networkAccent:#00669c;--networkColor:#0077b5;--networkHover:rgba(0,102,156,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin{border-color:#0077b5;color:#0077b5;background:#0077b5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:not(:hover):not(:active){color:#0077b5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin .dpsp-network-icon{border-color:#0077b5;color:#0077b5;background:#0077b5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#0077b5));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#0077b5))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#0077b5));stroke:var(--customNetworkColor,var(--networkColor,#0077b5));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:hover .dpsp-network-icon{border-color:#00669c;color:#00669c;background:#00669c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#00669c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-linkedin:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#00669c));stroke:var(--customNetworkHoverColor,var(--networkHover,#00669c))}.dpsp-reddit{--networkAccent:#ff4200;--networkColor:#ff5700;--networkHover:rgba(255,66,0,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit{border-color:#ff5700;color:#ff5700;background:#ff5700}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:not(:hover):not(:active){color:#ff5700}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit .dpsp-network-icon{border-color:#ff5700;color:#ff5700;background:#ff5700}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#ff5700));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#ff5700))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#ff5700));stroke:var(--customNetworkColor,var(--networkColor,#ff5700));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:hover .dpsp-network-icon{border-color:#ff4200;color:#ff4200;background:#ff4200}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#ff4200}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-reddit:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#ff4200));stroke:var(--customNetworkHoverColor,var(--networkHover,#ff4200))}.dpsp-vkontakte{--networkAccent:#456992;--networkColor:#4d75a3;--networkHover:rgba(69,105,146,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte{border-color:#4d75a3;color:#4d75a3;background:#4d75a3}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:not(:hover):not(:active){color:#4d75a3}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte .dpsp-network-icon{border-color:#4d75a3;color:#4d75a3;background:#4d75a3}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#4d75a3));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#4d75a3))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#4d75a3));stroke:var(--customNetworkColor,var(--networkColor,#4d75a3));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:hover .dpsp-network-icon{border-color:#456992;color:#456992;background:#456992}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#456992}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vkontakte:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#456992));stroke:var(--customNetworkHoverColor,var(--networkHover,#456992))}.dpsp-whatsapp{--networkAccent:#21c960;--networkColor:#25d366;--networkHover:rgba(33,201,96,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp{border-color:#25d366;color:#25d366;background:#25d366}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:not(:hover):not(:active){color:#25d366}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp .dpsp-network-icon{border-color:#25d366;color:#25d366;background:#25d366}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#25d366));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#25d366))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#25d366));stroke:var(--customNetworkColor,var(--networkColor,#25d366));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:hover .dpsp-network-icon{border-color:#21c960;color:#21c960;background:#21c960}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#21c960}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-whatsapp:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#21c960));stroke:var(--customNetworkHoverColor,var(--networkHover,#21c960))}.dpsp-instagram{--networkAccent:#a9257e;--networkColor:#bc2a8d;--networkHover:rgba(169,37,126,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram{border-color:#bc2a8d;color:#bc2a8d;background:#bc2a8d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:not(:hover):not(:active){color:#bc2a8d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram .dpsp-network-icon{border-color:#bc2a8d;color:#bc2a8d;background:#bc2a8d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#bc2a8d));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#bc2a8d))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#bc2a8d));stroke:var(--customNetworkColor,var(--networkColor,#bc2a8d));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:hover .dpsp-network-icon{border-color:#a9257e;color:#a9257e;background:#a9257e}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#a9257e}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-instagram:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#a9257e));stroke:var(--customNetworkHoverColor,var(--networkHover,#a9257e))}.dpsp-youtube{--networkAccent:#a20000;--networkColor:#b00;--networkHover:rgba(162,0,0,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube{border-color:#b00;color:#b00;background:#b00}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:not(:hover):not(:active){color:#b00}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube .dpsp-network-icon{border-color:#b00;color:#b00;background:#b00}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#b00));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#b00))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#b00));stroke:var(--customNetworkColor,var(--networkColor,#b00));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:hover .dpsp-network-icon{border-color:#a20000;color:#a20000;background:#a20000}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#a20000}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-youtube:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#a20000));stroke:var(--customNetworkHoverColor,var(--networkHover,#a20000))}.dpsp-vimeo{--networkAccent:#2bb2ff;--networkColor:#4bf;--networkHover:rgba(43,178,255,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo{border-color:#4bf;color:#4bf;background:#4bf}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:not(:hover):not(:active){color:#4bf}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo .dpsp-network-icon{border-color:#4bf;color:#4bf;background:#4bf}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#4bf));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#4bf))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#4bf));stroke:var(--customNetworkColor,var(--networkColor,#4bf));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:hover .dpsp-network-icon{border-color:#2bb2ff;color:#2bb2ff;background:#2bb2ff}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#2bb2ff}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-vimeo:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#2bb2ff));stroke:var(--customNetworkHoverColor,var(--networkHover,#2bb2ff))}.dpsp-soundcloud{--networkAccent:#e64c00;--networkColor:#f50;--networkHover:rgba(230,76,0,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud{border-color:#f50;color:#f50;background:#f50}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:not(:hover):not(:active){color:#f50}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud .dpsp-network-icon{border-color:#f50;color:#f50;background:#f50}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#f50));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#f50))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#f50));stroke:var(--customNetworkColor,var(--networkColor,#f50));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:hover .dpsp-network-icon{border-color:#e64c00;color:#e64c00;background:#e64c00}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#e64c00}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-soundcloud:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#e64c00));stroke:var(--customNetworkHoverColor,var(--networkHover,#e64c00))}.dpsp-twitch{--networkAccent:#593a93;--networkColor:#6441a5;--networkHover:rgba(89,58,147,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch{border-color:#6441a5;color:#6441a5;background:#6441a5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:not(:hover):not(:active){color:#6441a5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch .dpsp-network-icon{border-color:#6441a5;color:#6441a5;background:#6441a5}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#6441a5));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#6441a5))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#6441a5));stroke:var(--customNetworkColor,var(--networkColor,#6441a5));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:hover .dpsp-network-icon{border-color:#593a93;color:#593a93;background:#593a93}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#593a93}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-twitch:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#593a93));stroke:var(--customNetworkHoverColor,var(--networkHover,#593a93))}.dpsp-yummly{--networkAccent:#d84d1a;--networkColor:#e55a27;--networkHover:rgba(216,77,26,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly{border-color:#e55a27;color:#e55a27;background:#e55a27}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:not(:hover):not(:active){color:#e55a27}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly .dpsp-network-icon{border-color:#e55a27;color:#e55a27;background:#e55a27}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#e55a27));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#e55a27))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#e55a27));stroke:var(--customNetworkColor,var(--networkColor,#e55a27));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:hover .dpsp-network-icon{border-color:#d84d1a;color:#d84d1a;background:#d84d1a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#d84d1a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-yummly:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#d84d1a));stroke:var(--customNetworkHoverColor,var(--networkHover,#d84d1a))}.dpsp-behance{--networkAccent:#0053e6;--networkColor:#005cff;--networkHover:rgba(0,83,230,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance{border-color:#005cff;color:#005cff;background:#005cff}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:not(:hover):not(:active){color:#005cff}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance .dpsp-network-icon{border-color:#005cff;color:#005cff;background:#005cff}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#005cff));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#005cff))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#005cff));stroke:var(--customNetworkColor,var(--networkColor,#005cff));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:hover .dpsp-network-icon{border-color:#0053e6;color:#0053e6;background:#0053e6}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#0053e6}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-behance:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#0053e6));stroke:var(--customNetworkHoverColor,var(--networkHover,#0053e6))}.dpsp-email{--networkAccent:#239e57;--networkColor:#27ae60;--networkHover:rgba(35,158,87,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email{border-color:#27ae60;color:#27ae60;background:#27ae60}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:not(:hover):not(:active){color:#27ae60}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email .dpsp-network-icon{border-color:#27ae60;color:#27ae60;background:#27ae60}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#27ae60));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#27ae60))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#27ae60));stroke:var(--customNetworkColor,var(--networkColor,#27ae60));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:hover .dpsp-network-icon{border-color:#239e57;color:#239e57;background:#239e57}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#239e57}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-email:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#239e57));stroke:var(--customNetworkHoverColor,var(--networkHover,#239e57))}.dpsp-print{--networkAccent:#afb6bb;--networkColor:#bdc3c7;--networkHover:rgba(175,182,187,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print{border-color:#bdc3c7;color:#bdc3c7;background:#bdc3c7}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:not(:hover):not(:active){color:#bdc3c7}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print .dpsp-network-icon{border-color:#bdc3c7;color:#bdc3c7;background:#bdc3c7}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#bdc3c7));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#bdc3c7))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#bdc3c7));stroke:var(--customNetworkColor,var(--networkColor,#bdc3c7));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:hover .dpsp-network-icon{border-color:#afb6bb;color:#afb6bb;background:#afb6bb}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#afb6bb}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-print:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#afb6bb));stroke:var(--customNetworkHoverColor,var(--networkHover,#afb6bb))}.dpsp-pocket{--networkAccent:#e63c51;--networkColor:#ed4055;--networkHover:rgba(230,60,81,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket{border-color:#ed4055;color:#ed4055;background:#ed4055}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:not(:hover):not(:active){color:#ed4055}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket .dpsp-network-icon{border-color:#ed4055;color:#ed4055;background:#ed4055}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#ed4055));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#ed4055))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#ed4055));stroke:var(--customNetworkColor,var(--networkColor,#ed4055));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:hover .dpsp-network-icon{border-color:#e63c51;color:#e63c51;background:#e63c51}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#e63c51}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-pocket:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#e63c51));stroke:var(--customNetworkHoverColor,var(--networkHover,#e63c51))}.dpsp-buffer{--networkAccent:#21282f;--networkColor:#29323b;--networkHover:rgba(33,40,47,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer{border-color:#29323b;color:#29323b;background:#29323b}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:not(:hover):not(:active){color:#29323b}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer .dpsp-network-icon{border-color:#29323b;color:#29323b;background:#29323b}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#29323b));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#29323b))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#29323b));stroke:var(--customNetworkColor,var(--networkColor,#29323b));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:hover .dpsp-network-icon{border-color:#21282f;color:#21282f;background:#21282f}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#21282f}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-buffer:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#21282f));stroke:var(--customNetworkHoverColor,var(--networkHover,#21282f))}.dpsp-tumblr{--networkAccent:#2e3d50;--networkColor:#35465c;--networkHover:rgba(46,61,80,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr{border-color:#35465c;color:#35465c;background:#35465c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:not(:hover):not(:active){color:#35465c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr .dpsp-network-icon{border-color:#35465c;color:#35465c;background:#35465c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#35465c));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#35465c))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#35465c));stroke:var(--customNetworkColor,var(--networkColor,#35465c));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:hover .dpsp-network-icon{border-color:#2e3d50;color:#2e3d50;background:#2e3d50}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#2e3d50}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-tumblr:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#2e3d50));stroke:var(--customNetworkHoverColor,var(--networkHover,#2e3d50))}.dpsp-xing{--networkAccent:#006a6c;--networkColor:#00888d;--networkHover:rgba(0,106,108,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing{border-color:#00888d;color:#00888d;background:#00888d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:not(:hover):not(:active){color:#00888d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing .dpsp-network-icon{border-color:#00888d;color:#00888d;background:#00888d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#00888d));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#00888d))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#00888d));stroke:var(--customNetworkColor,var(--networkColor,#00888d));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:hover .dpsp-network-icon{border-color:#006a6c;color:#006a6c;background:#006a6c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#006a6c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-xing:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#006a6c));stroke:var(--customNetworkHoverColor,var(--networkHover,#006a6c))}.dpsp-github{--networkAccent:#222;--networkColor:#333;--networkHover:rgba(34,34,34,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github{border-color:#333;color:#333;background:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:not(:hover):not(:active){color:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github .dpsp-network-icon{border-color:#333;color:#333;background:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#333));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#333))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#333));stroke:var(--customNetworkColor,var(--networkColor,#333));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:hover .dpsp-network-icon{border-color:#222;color:#222;background:#222}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#222}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-github:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#222));stroke:var(--customNetworkHoverColor,var(--networkHover,#222))}.dpsp-flipboard{--networkAccent:#d21d1d;--networkColor:#e12828;--networkHover:rgba(210,29,29,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard{border-color:#e12828;color:#e12828;background:#e12828}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:not(:hover):not(:active){color:#e12828}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard .dpsp-network-icon{border-color:#e12828;color:#e12828;background:#e12828}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#e12828));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#e12828))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#e12828));stroke:var(--customNetworkColor,var(--networkColor,#e12828));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:hover .dpsp-network-icon{border-color:#d21d1d;color:#d21d1d;background:#d21d1d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#d21d1d}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-flipboard:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#d21d1d));stroke:var(--customNetworkHoverColor,var(--networkHover,#d21d1d))}.dpsp-telegram{--networkAccent:#0077b3;--networkColor:#08c;--networkHover:rgba(0,119,179,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram{border-color:#08c;color:#08c;background:#08c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:not(:hover):not(:active){color:#08c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram .dpsp-network-icon{border-color:#08c;color:#08c;background:#08c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#08c));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#08c))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#08c));stroke:var(--customNetworkColor,var(--networkColor,#08c));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:hover .dpsp-network-icon{border-color:#0077b3;color:#0077b3;background:#0077b3}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#0077b3}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-telegram:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#0077b3));stroke:var(--customNetworkHoverColor,var(--networkHover,#0077b3))}.dpsp-medium{--networkAccent:#111;--networkColor:#333;--networkHover:rgba(17,17,17,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium{border-color:#333;color:#333;background:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:not(:hover):not(:active){color:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium .dpsp-network-icon{border-color:#333;color:#333;background:#333}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#333));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#333))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#333));stroke:var(--customNetworkColor,var(--networkColor,#333));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:hover .dpsp-network-icon{border-color:#111;color:#111;background:#111}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#111}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-medium:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#111));stroke:var(--customNetworkHoverColor,var(--networkHover,#111))}.dpsp-mix{--networkAccent:#fd721c;--networkColor:#fd8235;--networkHover:rgba(253,114,28,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix{border-color:#fd8235;color:#fd8235;background:#fd8235}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:not(:hover):not(:active){color:#fd8235}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix .dpsp-network-icon{border-color:#fd8235;color:#fd8235;background:#fd8235}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#fd8235));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#fd8235))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#fd8235));stroke:var(--customNetworkColor,var(--networkColor,#fd8235));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:hover .dpsp-network-icon{border-color:#fd721c;color:#fd721c;background:#fd721c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fd721c}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-mix:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#fd721c));stroke:var(--customNetworkHoverColor,var(--networkHover,#fd721c))}.dpsp-grow{--networkAccent:#243c4a;--networkColor:#41a4a9;--networkHover:rgba(36,60,74,0.4)}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow{border-color:#41a4a9;color:#41a4a9;background:#41a4a9}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:not(:hover):not(:active){color:#41a4a9}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow .dpsp-network-icon{border-color:#41a4a9;color:#41a4a9;background:#41a4a9}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:none!important;stroke:var(--customNetworkColor,var(--networkColor,#41a4a9));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor,#41a4a9))}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkColor,var(--networkColor,#41a4a9));stroke:var(--customNetworkColor,var(--networkColor,#41a4a9));stroke-width:1}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:focus,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:focus .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:hover,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:hover .dpsp-network-icon{border-color:#243c4a;color:#243c4a;background:#243c4a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#243c4a}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:var(--customNetworkHoverColor,var(--networkHover,#243c4a));stroke:var(--customNetworkHoverColor,var(--networkHover,#243c4a))}.dpsp-shape-rounded .dpsp-network-btn,.dpsp-shape-rounded .dpsp-network-btn .dpsp-network-icon{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.dpsp-shape-rounded .dpsp-network-btn,.dpsp-shape-rounded .dpsp-no-label.dpsp-network-btn .dpsp-network-icon{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.dpsp-shape-circle .dpsp-network-btn{border-radius:30px}.dpsp-shape-circle .dpsp-network-btn .dpsp-network-icon{overflow:hidden;border-radius:30px}.dpsp-has-spacing .dpsp-networks-btns-wrapper li{margin-right:2%;margin-bottom:10px;margin-left:0!important}.dpsp-size-small .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn{min-width:32px;height:32px;max-height:32px;line-height:28px}.dpsp-size-small .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{width:32px}.dpsp-size-small .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn .dpsp-network-icon{width:32px;height:32px;line-height:28px}.dpsp-size-small .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn .dpsp-network-icon-inner{height:28px}.dpsp-size-small .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label{width:32px}.dpsp-size-small .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{left:0}.dpsp-size-small.dpsp-button-style-6 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-size-small.dpsp-button-style-7 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-size-small.dpsp-button-style-8 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{left:-2px}.dpsp-size-large .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn{min-width:46px;height:46px;max-height:46px;line-height:42px}.dpsp-size-large .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon{width:46px;height:46px;line-height:42px}.dpsp-size-large .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon-inner{height:42px}.dpsp-size-large .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label{width:46px}.dpsp-size-large .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{left:0}.dpsp-size-large.dpsp-button-style-6 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-size-large.dpsp-button-style-7 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon,.dpsp-size-large.dpsp-button-style-8 .dpsp-networks-btns-wrapper.dpsp-column-auto:not(.dpsp-networks-btns-sidebar):not(.dpsp-networks-btns-sticky-bar) .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{left:-2px}.dpsp-size-medium .dpsp-networks-btns-sidebar .dpsp-network-btn{min-width:45px;height:45px;max-height:45px;padding-left:0;line-height:41px}.dpsp-size-medium .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{width:45px;line-height:41px}.dpsp-size-medium .dpsp-networks-btns-sidebar.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count .dpsp-network-icon{height:26px;line-height:26px}.dpsp-size-large .dpsp-networks-btns-sidebar .dpsp-network-btn{min-width:50px;height:50px;max-height:50px;padding-left:0;line-height:46px}.dpsp-size-large .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{width:50px;line-height:46px}.dpsp-size-large .dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon{height:30px;line-height:30px}.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:not(.dpsp-grow-saved) .dpsp-network-label{padding-right:2.15ch}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow{max-width:0;max-height:0;opacity:0;transition:all .4s ease;transform-origin:top}.dpsp-card-inner .dpsp-networks-btns-wrapper .dpsp-network-list-item-grow{max-width:unset;max-height:unset;opacity:unset}.dpsp-card-inner .dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-count,.dpsp-card-inner .dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-icon,.dpsp-card-inner .dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-label{opacity:unset}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-count,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow .dpsp-network-label{opacity:0}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-load-in{max-width:20rem;max-height:70px;opacity:1;transition:all .5s ease}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-load-in .dpsp-network-count,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-load-in .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-load-in .dpsp-network-label{opacity:1;transition:opacity .4s ease .5s}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-loaded{max-width:20rem;max-height:70px;opacity:1;transition:all .2s ease}.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-loaded .dpsp-network-count,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-loaded .dpsp-network-icon,.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow.dpsp-grow-loaded .dpsp-network-label{opacity:1;transition:all .2s ease}.dpsp-grow-check-icon{opacity:0;transition:all .2s ease;transform-origin:center center}.dpsp-grow-saved .dpsp-grow-check-icon{opacity:1}@media print{#dpsp-content-bottom,#dpsp-content-top,#dpsp-floating-sidebar,#dpsp-pop-up,#dpsp-pop-up-overlay,#dpsp-sticky-bar-wrapper,.dpsp-share-text{display:none!important}}.dpsp-pin-it-wrapper{display:inline-table;position:relative!important;line-height:0}.blocks-gallery-item .dpsp-pin-it-wrapper{display:inline-block}.dpsp-pin-it-wrapper.aligncenter,.dpsp-pin-it-wrapper.alignleft,.dpsp-pin-it-wrapper.alignright{display:table!important}.dpsp-pin-it-wrapper:hover .dpsp-pin-it-button{visibility:visible;color:#fff!important;background-color:#c92228!important}.dpsp-pin-it-wrapper.aligncenter{margin-right:auto;margin-left:auto}.wp-block-gallery.is-cropped .blocks-gallery-item .dpsp-pin-it-wrapper{height:100%;flex:1;object-fit:cover}.dpsp-pin-it-button{display:inline-block;position:absolute;visibility:hidden;width:auto!important;height:40px!important;border:0!important;color:transparent!important;background:transparent;background-image:none!important;box-shadow:none!important;font-family:Arial;font-size:14px;font-weight:700;line-height:40px;vertical-align:middle;text-decoration:none!important;transition:all .25s ease-in-out}.dpsp-pin-it-button:hover{color:#fff;background:#b31e24;box-shadow:none!important}.dpsp-pin-it-button.dpsp-pin-it-button-has-label{padding-right:20px}.dpsp-pin-it-button.dpsp-pin-it-button-has-label:after{display:inline-block;content:attr(title)}.dpsp-pin-it-button .dpsp-network-icon{display:inline-block;width:40px;height:40px;text-align:center;vertical-align:top}.dpsp-pin-it-button .dpsp-network-icon svg{display:inline-block;height:20px;vertical-align:middle;fill:#fff}.dpsp-pin-it-button.dpsp-pin-it-button-top-left{top:10px;left:10px}.dpsp-pin-it-button.dpsp-pin-it-button-top-right{top:10px;right:10px}.dpsp-pin-it-button.dpsp-pin-it-button-bottom-left{bottom:10px;left:10px}.dpsp-pin-it-button.dpsp-pin-it-button-bottom-right{right:10px;bottom:10px}.dpsp-pin-it-button.dpsp-pin-it-button-center{top:50%;left:50%;white-space:nowrap;transform:translate(-50%,-50%)}.dpsp-pin-it-button.dpsp-pin-it-button-shape-rectangular{border-radius:0}.dpsp-pin-it-button.dpsp-pin-it-button-shape-rounded{border-radius:4px}.dpsp-pin-it-button.dpsp-pin-it-button-shape-circle{border-radius:40px}.dpsp-pin-it-wrapper .dpsp-pin-it-overlay{display:block;position:absolute;top:0;left:0;visibility:hidden;width:100%;height:100%;opacity:0;background:#fff;transition:all .25s ease-in-out;pointer-events:none}.dpsp-pin-it-wrapper:hover .dpsp-pin-it-overlay{visibility:visible;opacity:.4}.dpsp-networks-btns-wrapper.dpsp-networks-btns-pop-up.dpsp-column-auto{text-align:center}.dpsp-networks-btns-wrapper.dpsp-networks-btns-pop-up.dpsp-column-auto li{display:inline-block;float:none}.dpsp-shortcode-wrapper{margin-bottom:1.2em}#dpsp-floating-sidebar{position:fixed;top:50%;transform:translateY(-50%);z-index:9998}#dpsp-floating-sidebar.dpsp-position-left{left:0}#dpsp-floating-sidebar.dpsp-position-right{right:0}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar li{float:none;margin-left:0}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn{width:40px;padding:0}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{border-color:transparent!important;background:transparent!important}.dpsp-size-medium .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon-inner{height:41px}.dpsp-size-large .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon-inner{height:46px}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon{height:22px;line-height:22px}.dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon-inner{height:18px}.dpsp-size-large .dpsp-networks-btns-wrapper.dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon-inner{height:30px}#dpsp-floating-sidebar.dpsp-no-animation{display:none}#dpsp-floating-sidebar.dpsp-no-animation.opened{display:block}#dpsp-floating-sidebar.stop-hidden,#dpsp-floating-sidebar.stop-hidden.opened{visibility:hidden}#dpsp-floating-sidebar.dpsp-animation-1{opacity:0;transition:opacity .2s ease-in-out}#dpsp-floating-sidebar.dpsp-animation-1.opened{opacity:1}#dpsp-floating-sidebar.dpsp-position-left.dpsp-animation-2,#dpsp-floating-sidebar.dpsp-position-left.dpsp-shape-circle.dpsp-animation-2{left:-60px;transition:left .2s ease-in-out}#dpsp-floating-sidebar.dpsp-position-left.dpsp-animation-2.opened{left:0}#dpsp-floating-sidebar.dpsp-position-left.dpsp-shape-circle.dpsp-animation-2.opened{left:12px}#dpsp-floating-sidebar.dpsp-position-right.dpsp-animation-2,#dpsp-floating-sidebar.dpsp-position-right.dpsp-shape-circle.dpsp-animation-2{right:-60px;transition:right .2s ease-in-out}#dpsp-floating-sidebar.dpsp-position-right.dpsp-animation-2.opened{right:0}#dpsp-floating-sidebar.dpsp-position-right.dpsp-shape-circle.dpsp-animation-2.opened{right:10px}.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn,.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{border-radius:0}.dpsp-position-left.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-first,.dpsp-position-left.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-first .dpsp-network-icon{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px}.dpsp-position-left.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-last,.dpsp-position-left.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-last .dpsp-network-icon{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.dpsp-position-left.dpsp-shape-rounded.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn,.dpsp-position-left.dpsp-shape-rounded.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.dpsp-position-right.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-first,.dpsp-position-right.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-first .dpsp-network-icon{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}.dpsp-position-right.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-last,.dpsp-position-right.dpsp-shape-rounded .dpsp-networks-btns-sidebar .dpsp-network-btn.dpsp-last .dpsp-network-icon{-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.dpsp-position-right.dpsp-shape-rounded.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn,.dpsp-position-right.dpsp-shape-rounded.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.dpsp-shape-rounded.dpsp-has-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{border-radius:4px}#dpsp-floating-sidebar.dpsp-position-left.dpsp-shape-circle{left:12px}#dpsp-floating-sidebar.dpsp-position-right.dpsp-shape-circle{right:10px}.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn{margin-bottom:6px}.dpsp-shape-rounded.dpsp-bottom-spacing .dpsp-networks-btns-sidebar .dpsp-network-btn{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}#dpsp-floating-sidebar.dpsp-style-2 .dpsp-network-btn .dpsp-network-icon{background:none}#dpsp-floating-sidebar .dpsp-networks-btns-wrapper li{position:relative;overflow:visible}#dpsp-floating-sidebar .dpsp-networks-btns-wrapper .dpsp-network-label{display:inline-block;position:absolute;top:50%;visibility:hidden;box-sizing:border-box;width:auto;height:30px;margin-top:-15px;padding:6px 12px;border-radius:3px;opacity:0;color:#fff;background:#34495e;font-size:12px;font-weight:400;line-height:18px;white-space:nowrap;transition:all .2s ease-in-out;z-index:1}#dpsp-floating-sidebar.dpsp-position-left .dpsp-networks-btns-wrapper .dpsp-network-label{left:100%}#dpsp-floating-sidebar.dpsp-position-right .dpsp-networks-btns-wrapper .dpsp-network-label{right:100%}#dpsp-floating-sidebar.dpsp-position-left .dpsp-networks-btns-wrapper li.dpsp-hover .dpsp-network-label{visibility:visible;opacity:1;transform:translateX(10px)}#dpsp-floating-sidebar.dpsp-position-right .dpsp-networks-btns-wrapper li.dpsp-hover .dpsp-network-label{visibility:visible;opacity:1;transform:translateX(-10px)}#dpsp-floating-sidebar .dpsp-networks-btns-wrapper .dpsp-network-label:before{display:block;position:absolute;top:50%;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;content:""}#dpsp-floating-sidebar.dpsp-position-left .dpsp-networks-btns-wrapper .dpsp-network-label:before{left:-5px;border-right:5px solid #34495e}#dpsp-floating-sidebar.dpsp-position-right .dpsp-networks-btns-wrapper .dpsp-network-label:before{right:-5px;border-left:5px solid #34495e}.dpsp-settings-button-style .dpsp-networks-btns-sidebar .dpsp-network-label{display:none}#dpsp-sticky-bar-wrapper{position:fixed;bottom:0;left:0;width:100%;max-width:100vw;background:#fff;z-index:1000}#dpsp-sticky-bar-wrapper.dpsp-position-desktop-top{top:0;bottom:auto}#dpsp-sticky-bar-wrapper.dpsp-position-desktop-bottom{top:auto;bottom:0}#dpsp-sticky-bar-wrapper.dpsp-no-animation{visibility:hidden;opacity:0}#dpsp-sticky-bar-wrapper.dpsp-no-animation.opened{visibility:visible;opacity:1}#dpsp-sticky-bar-wrapper.dpsp-device-desktop.dpsp-is-mobile,#dpsp-sticky-bar-wrapper.dpsp-device-mobile:not(.dpsp-is-mobile){display:none}#dpsp-sticky-bar{display:none;position:relative;box-sizing:border-box;margin:7px 0}#dpsp-sticky-bar .dpsp-networks-btns-wrapper{display:flex}#dpsp-sticky-bar .dpsp-networks-btns-wrapper li{float:none;margin-right:3px;margin-bottom:0;margin-left:3px;flex:1}#dpsp-sticky-bar .dpsp-networks-btns-wrapper li:last-of-type{margin-right:0}#dpsp-sticky-bar .dpsp-network-btn{padding-right:1em;padding-left:1em;text-align:center}#dpsp-sticky-bar .dpsp-network-btn .dpsp-network-icon{display:inline-block;position:relative;overflow:visible;width:20px}#dpsp-sticky-bar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon{margin-right:5px}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-top{top:0;bottom:auto}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-bottom{top:auto;bottom:0}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar{position:static;width:100%!important;margin:0;padding:0}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar .dpsp-networks-btns-wrapper li{margin:0}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar .dpsp-network-btn{height:44px;max-height:44px;padding-right:0;padding-left:0;border-radius:0;line-height:40px;text-align:center}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar .dpsp-network-btn .dpsp-network-icon{display:inline-block;position:relative;left:auto;float:none;font-size:18px;line-height:40px}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar .dpsp-network-btn.dpsp-has-count .dpsp-network-icon{display:block;position:absolute;width:100%;height:26px;line-height:26px}#dpsp-sticky-bar-wrapper.dpsp-is-mobile #dpsp-sticky-bar .dpsp-network-btn .dpsp-network-count{position:absolute;bottom:0;left:0;width:100%;height:20px;margin-left:0;font-size:11px;line-height:20px;text-align:center}#dpsp-sticky-bar-wrapper.dpsp-animation-1{visibility:hidden;opacity:0;transition:opacity .2s ease-in-out}#dpsp-sticky-bar-wrapper.dpsp-animation-1.opened{visibility:visible;opacity:1}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-bottom.dpsp-animation-2,#dpsp-sticky-bar-wrapper:not(.dpsp-is-mobile).dpsp-position-desktop-bottom.dpsp-animation-2{bottom:0;transform:translateY(60px);visibility:hidden;transition:transform .3s ease-in-out,visibility .3s ease-in-out}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-bottom.dpsp-animation-2.opened,#dpsp-sticky-bar-wrapper:not(.dpsp-is-mobile).dpsp-position-desktop-bottom.dpsp-animation-2.opened{transform:translateY(0);visibility:visible}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-top.dpsp-animation-2,#dpsp-sticky-bar-wrapper:not(.dpsp-is-mobile).dpsp-position-desktop-top.dpsp-animation-2{top:-88px;bottom:auto;visibility:hidden;transition:top .3s ease-in-out,visibility .3s ease-in-out}#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-top.dpsp-animation-2.opened,#dpsp-sticky-bar-wrapper:not(.dpsp-is-mobile).dpsp-position-desktop-top.dpsp-animation-2.opened{top:0;visibility:visible}@media screen and (min-width:782px){body.admin-bar #dpsp-sticky-bar-wrapper{margin-top:32px}}.dpsp-click-to-tweet{display:block;position:relative;margin:1.5em 0;font-size:105%;text-decoration:none;transition:all .15s ease-in}.dpsp-click-to-tweet,.dpsp-click-to-tweet:hover{box-shadow:none!important}.dpsp-click-to-tweet.dpsp-has-avatar{min-height:115px;padding-left:120px!important}.dpsp-click-to-tweet.dpsp-has-avatar .avatar{position:absolute;top:15px;left:15px;border-radius:50%;box-shadow:none!important}.dpsp-click-to-tweet-footer:after,.dpsp-click-to-tweet:after{display:block;clear:both;content:""}.dpsp-click-to-tweet-content{display:block;position:relative;font-family:Georgia;font-size:18px;line-height:1.5;text-align:left;z-index:2}.dpsp-click-to-tweet-footer{display:block;margin-top:1em;color:#999;font-family:Arial;font-size:14px;font-weight:700}.dpsp-click-to-tweet.dpsp-click-to-tweet-cta-left .dpsp-click-to-tweet-cta{float:left}.dpsp-click-to-tweet.dpsp-click-to-tweet-cta-right .dpsp-click-to-tweet-cta{float:right}.dpsp-click-to-tweet-cta{color:#00abf0;line-height:1}.dpsp-click-to-tweet-cta svg{fill:#00abf0}.dpsp-click-to-tweet-cta .dpsp-twitter{display:inline-block;vertical-align:middle}.dpsp-click-to-tweet-cta>span{margin-right:10px;vertical-align:middle}.dpsp-click-to-tweet:hover .dpsp-twitter .dpsp-network-icon-inner{transition:all .2s ease-in-out}.dpsp-click-to-tweet.dpsp-click-to-tweet-cta-icon-animation:hover .dpsp-click-to-tweet-cta .dpsp-twitter .dpsp-network-icon-after{margin-left:-10px;opacity:1}.dpsp-click-to-tweet.dpsp-click-to-tweet-cta-icon-animation:hover .dpsp-click-to-tweet-cta .dpsp-twitter .dpsp-network-icon-before{margin-left:10px;opacity:0}a.dpsp-click-to-tweet.dpsp-style-1{padding:15px 5px 5px 30px;border:0;border-left:5px solid #00abf0;color:#555}a.dpsp-click-to-tweet.dpsp-style-1:hover{border-left:5px solid #0099d7}a.dpsp-click-to-tweet.dpsp-style-2{padding:20px 30px;border:0;border-left:5px solid #00abf0;color:#555;background:#f6f6f6}a.dpsp-click-to-tweet.dpsp-style-2:hover{border-left:5px solid #0099d7}a.dpsp-click-to-tweet.dpsp-style-3{padding:20px 30px;border:1px solid #e1e1e1;border-radius:3px;color:#838383}a.dpsp-click-to-tweet.dpsp-style-3:hover{color:#555}a.dpsp-click-to-tweet.dpsp-style-4{padding:20px 30px;border:4px double #e1e1e1;border-radius:0;color:#838383}a.dpsp-click-to-tweet.dpsp-style-4:hover{color:#555}a.dpsp-click-to-tweet.dpsp-style-5{padding:20px 30px;border:0;border-left:0 solid transparent;border-radius:3px;color:#fff;background:#00abf0;transition:border .2s ease-in-out}a.dpsp-click-to-tweet.dpsp-style-5 .dpsp-click-to-tweet-cta{color:#fff}a.dpsp-click-to-tweet.dpsp-style-5 .dpsp-click-to-tweet-cta svg{fill:#fff}a.dpsp-click-to-tweet.dpsp-style-5:hover{border-left:9px solid #0099d7;color:#fff}a.dpsp-click-to-tweet.dpsp-style-5 .dpsp-click-to-tweet-content,a.dpsp-click-to-tweet.dpsp-style-5 .dpsp-click-to-tweet-footer,a.dpsp-click-to-tweet.dpsp-style-5>img{transition:margin-left .2s ease-in-out}a.dpsp-click-to-tweet.dpsp-style-5:hover .dpsp-click-to-tweet-content,a.dpsp-click-to-tweet.dpsp-style-5:hover .dpsp-click-to-tweet-footer,a.dpsp-click-to-tweet.dpsp-style-5:hover>img{margin-left:-9px}.dpsp-shortcode-follow-wrapper>.dpsp-networks-btns-follow-widget{display:flex;flex-flow:row wrap}.dpsp-shortcode-follow-wrapper.dpsp-follow-align-left>.dpsp-networks-btns-follow-widget{justify-content:flex-start}.dpsp-shortcode-follow-wrapper.dpsp-follow-align-center>.dpsp-networks-btns-follow-widget{justify-content:center}.dpsp-shortcode-follow-wrapper.dpsp-follow-align-right>.dpsp-networks-btns-follow-widget{justify-content:flex-end}.dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon{display:block;position:relative;top:-2px;left:-2px;-moz-box-sizing:border-box;box-sizing:border-box;width:40px;height:40px;border:2px solid;font-size:14px;line-height:36px;text-align:center;-webkit-transition:all .15s ease-in;-moz-transition:all .15s ease-in;-o-transition:all .15s ease-in;transition:all .15s ease-in;align-self:start;flex:0 0 auto}.dpsp-icon-total-share svg,.dpsp-network-icon .dpsp-network-icon-inner svg{position:relative;overflow:visible;width:auto;max-height:14px;transition:fill .15s ease-in-out}.dpsp-size-large .dpsp-icon-total-share svg,.dpsp-size-large .dpsp-network-icon .dpsp-network-icon-inner svg{max-height:22px}.widget_dpsp_social_media_follow .dpsp-network-icon .dpsp-network-icon-inner svg{top:.05em}.dpsp-icon-total-share,.dpsp-network-icon-inner{display:flex;align-items:center;justify-content:center}.dpsp-network-icon-inner{height:36px;transition:all .2s ease}.dpsp-networks-btns-wrapper.dpsp-has-button-icon-animation .dpsp-network-btn:hover .dpsp-network-icon-inner{transition:all .2s cubic-bezier(.62,3.15,.4,-.64);transform:scale(1.5)}#dpsp-pop-up{position:fixed;width:100%;max-width:750px;padding:40px;border-radius:10px;opacity:0;background:#fff;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;transform:translate(-50%,-50%);z-index:9999}#dpsp-pop-up.dpsp-animation-1{transform:translate(-50%,-50%) scale(.1)}#dpsp-pop-up.dpsp-animation-3{transform:translate(-50%)}#dpsp-pop-up.dpsp-animation-4{transform:translate(-50%,-100%)}#dpsp-pop-up-overlay.no-animation,#dpsp-pop-up.no-animation{-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}#dpsp-pop-up.opened{top:50%;left:50%;opacity:1;transform:scale(1) translate(-50%,-50%)}#dpsp-pop-up-overlay{display:block;position:fixed;top:0;left:0;width:0;height:0;opacity:0;background:#000;-webkit-transition:opacity .25s ease-in-out,margin .25s ease-in-out;-moz-transition:opacity .25s ease-in-out,margin .25s ease-in-out;-o-transition:opacity .25s ease-in-out,margin .25s ease-in-out;transition:opacity .25s ease-in-out,margin .25s ease-in-out;z-index:9998}#dpsp-pop-up-overlay.opened{width:100%;height:100%;opacity:.65}#dpsp-pop-up-content{text-align:center}#dpsp-pop-up-close{display:block;position:absolute;top:10px;right:10px;width:22px;height:22px;line-height:22px;text-align:center;vertical-align:middle;cursor:pointer}#dpsp-pop-up-close svg{position:relative;top:2px;width:auto;max-height:16px;vertical-align:top;fill:#999}#dpsp-pop-up h2{margin-bottom:1em}#dpsp-pop-up h2 p{font-size:inherit}#dpsp-pop-up h2 p:last-of-type{margin-top:0;margin-bottom:0}#dpsp-pop-up p{margin-top:1em;margin-bottom:1em}#dpsp-post-bottom{width:0;height:0;margin:0;padding:0}@media screen and (max-width:800px){#dpsp-pop-up{width:90%}}@media screen and (max-width:720px){#dpsp-pop-up .dpsp-networks-btns-wrapper li{width:100%;margin-right:0;margin-left:0}}.dpsp-top-shared-post{margin-bottom:2em}.dpsp-top-shared-post-thumbnail{display:block;margin-bottom:1.2em}.dpsp-top-shared-post-thumbnail img{max-width:100%;height:auto}.dpsp-top-shared-post-title{display:inline-block;margin-bottom:.5em}.dpsp-show-total-share-count{position:relative}.dpsp-total-share-wrapper{position:relative;margin-top:10px;color:#5d6368;font-family:Helvetica,Helvetica Neue,Arial,sans-serif;line-height:1.345}.dpsp-total-share-wrapper .dpsp-total-share-count{font-size:15px;line-height:18px;white-space:nowrap}.dpsp-total-share-wrapper .dpsp-icon-total-share{position:absolute;top:6px;left:0;margin-top:0;margin-left:0}.dpsp-total-share-wrapper .dpsp-icon-total-share svg{top:2px;width:auto;max-height:16px;fill:#5d6368}#dpsp-floating-sidebar .dpsp-total-share-wrapper{margin-bottom:10px}#dpsp-floating-sidebar .dpsp-total-share-wrapper .dpsp-icon-total-share{display:none}.dpsp-total-share-wrapper span{display:block;font-size:11px;font-weight:700;text-align:center;white-space:nowrap;text-transform:uppercase}.dpsp-content-wrapper .dpsp-total-share-wrapper,.dpsp-pop-up-buttons-wrapper .dpsp-total-share-wrapper,.dpsp-share-buttons-wrapper .dpsp-total-share-wrapper,.dpsp-shortcode-wrapper .dpsp-total-share-wrapper{position:absolute;top:50%;box-sizing:border-box;width:60px;height:40px;margin-top:-21px;padding-left:20px}#dpsp-sticky-bar .dpsp-total-share-wrapper{height:32px;margin-top:-16px}#dpsp-sticky-bar-wrapper.dpsp-is-mobile .dpsp-total-share-wrapper{display:none}.dpsp-content-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before,.dpsp-pop-up-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before,.dpsp-share-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before,.dpsp-shortcode-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before{padding-left:75px}.dpsp-content-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after,.dpsp-pop-up-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after,.dpsp-share-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after,.dpsp-shortcode-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after{padding-right:70px}.dpsp-content-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before .dpsp-total-share-wrapper,.dpsp-pop-up-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before .dpsp-total-share-wrapper,.dpsp-share-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before .dpsp-total-share-wrapper,.dpsp-shortcode-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-before .dpsp-total-share-wrapper{left:0}.dpsp-content-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after .dpsp-total-share-wrapper,.dpsp-pop-up-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after .dpsp-total-share-wrapper,.dpsp-share-buttons-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after .dpsp-total-share-wrapper,.dpsp-shortcode-wrapper.dpsp-show-total-share-count.dpsp-show-total-share-count-after .dpsp-total-share-wrapper{right:0}.dpsp-button-style-1 .dpsp-network-btn{color:#fff!important}.dpsp-button-style-1 .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label),.dpsp-button-style-1 .dpsp-network-btn.dpsp-no-label{justify-content:center}.dpsp-button-style-1 .dpsp-network-btn .dpsp-network-icon:not(.dpsp-network-icon-outlined) .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-1 .dpsp-network-btn .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{stroke:#fff!important}.dpsp-button-style-1 .dpsp-network-btn.dpsp-grow-saved .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg,.dpsp-button-style-1 .dpsp-network-btn:focus .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg,.dpsp-button-style-1 .dpsp-network-btn:hover .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn{color:#fff!important}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon{border-color:var(--customNetworkHoverColor,var(--networkAccent));background-color:var(--customNetworkHoverColor,var(--networkAccent))}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label),.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn.dpsp-no-label{justify-content:center}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon:not(.dpsp-network-icon-outlined) .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{stroke:#fff!important}.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn.dpsp-grow-saved .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg,.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:focus .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg,.dpsp-button-style-2 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:hover .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-2 .dpsp-networks-btns-sidebar .dpsp-network-btn,.dpsp-button-style-2 .dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{background:transparent!important}.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label),.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label{justify-content:center}.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{stroke:#fff!important}.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count.dpsp-has-label:not(:hover):not(:focus),.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count:not(:hover):not(:focus),.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn:not(.dpsp-no-label):not(:hover):not(:focus):not(.dpsp-has-count){background:#fff}.dpsp-button-style-3 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label{background:var(--customNetworkColor,var(--networkColor,#fff))}.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:focus,.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:hover{color:#fff}.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn.dpsp-grow-saved .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-3 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-networks-btns-sidebar .dpsp-network-btn,.dpsp-networks-btns-sidebar .dpsp-network-btn .dpsp-network-icon{border-color:transparent;background:transparent}.dpsp-networks-btns-sidebar .dpsp-network-btn:focus,.dpsp-networks-btns-sidebar .dpsp-network-btn:hover{border-color:transparent}.dpsp-networks-btns-sidebar .dpsp-network-btn:focus .dpsp-network-icon,.dpsp-networks-btns-sidebar .dpsp-network-btn:hover .dpsp-network-icon{border-color:transparent;background:transparent}.dpsp-button-style-4.dpsp-shape-rounded .dpsp-network-btn .dpsp-network-icon{border-radius:4px}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-has-label{color:#fff}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label),.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-no-label{justify-content:center}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label):not(:hover):not(:focus),.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-no-label:not(:hover):not(:focus){background-color:initial}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label) .dpsp-network-icon,.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-no-label .dpsp-network-icon{border-color:transparent;background-color:initial}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn .dpsp-network-icon{background:#fff}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:focus,.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:hover{color:#fff}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:focus .dpsp-network-icon,.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:hover .dpsp-network-icon{background:transparent}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important;stroke:#fff}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor))!important}.dpsp-button-style-4 .dpsp-networks-btns-wrapper .dpsp-network-list-item .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:#fff;stroke:#fff}.dpsp-button-style-5 .dpsp-network-btn .dpsp-network-icon{border-color:transparent!important}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn,.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon{background:transparent}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus,.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover{border-color:transparent!important;color:#fff!important}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon,.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon{background:transparent}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg,.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:#fff!important;stroke:#fff!important}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor))!important}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg>svg{fill:#fff;stroke:#fff}.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-has-count:not(.dpsp-has-label),.dpsp-button-style-5 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label{justify-content:center}.dpsp-button-style-6.dpsp-shape-rounded .dpsp-network-btn .dpsp-network-icon{border-radius:4px}.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn{border-color:transparent!important;background:transparent!important}.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:40px}.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus,.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover{border-color:transparent!important}.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon:not(.dpsp-network-icon-outlined) .dpsp-network-icon-inner>svg,.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important}.dpsp-button-style-6 .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon.dpsp-network-icon-outlined .dpsp-network-icon-inner>svg{stroke:#fff!important}.dpsp-button-style-6.dpsp-size-small .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:32px}.dpsp-button-style-7.dpsp-shape-rounded .dpsp-network-btn .dpsp-network-icon{border-radius:4px}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn{background:transparent}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label{border-color:transparent}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon{background:transparent}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:32px}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus,.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover{background:transparent!important}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:#fff!important;stroke:#fff}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor))!important}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:#fff;stroke:#fff}.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-size-small .dpsp-networks-btns-wrapper .dpsp-network-btn,.dpsp-button-style-7 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-size-small .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:32px}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn{border-color:transparent;background:transparent}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:40px}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus,.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon,.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover,.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon{border-color:transparent;background:transparent}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg,.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkHoverColor,var(--networkAccent))!important;stroke:var(--customNetworkHoverColor,var(--networkAccent))!important}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:focus .dpsp-network-icon .dpsp-network-icon-inner>svg>svg,.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn:hover .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:#fff;stroke:#fff}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg{fill:var(--customNetworkColor,var(--networkColor))!important}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow-saved:not(:hover):not(:focus) .dpsp-network-icon .dpsp-network-icon-inner>svg>svg{fill:#fff;stroke:#fff}.dpsp-button-style-8 .dpsp-networks-btns-wrapper .dpsp-network-btn .dpsp-network-icon{border-color:transparent;background:transparent}.dpsp-button-style-8 .dpsp-networks-btns-wrapper:not(.dpsp-networks-btns-sidebar) .dpsp-network-btn .dpsp-network-icon{margin-right:-10px}.dpsp-button-style-8.dpsp-size-small .dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-no-label:not(.dpsp-has-count){max-width:32px}
|
assets/dist/{tool-content.1.19.2.png → tool-content.1.20.0.png}
RENAMED
File without changes
|
assets/dist/{tool-follow-widget.1.19.2.png → tool-follow-widget.1.20.0.png}
RENAMED
File without changes
|
assets/dist/{tool-image-hover-pinterest.1.19.2.png → tool-image-hover-pinterest.1.20.0.png}
RENAMED
File without changes
|
assets/dist/{tool-misc-import-export.1.19.2.png → tool-misc-import-export.1.20.0.png}
RENAMED
File without changes
|
assets/dist/{tool-mobile.1.19.2.png → tool-mobile.1.20.0.png}
RENAMED
File without changes
|
assets/dist/{tool-pop-up.1.19.2.png → tool-pop-up.1.20.0.png}
RENAMED
File without changes
|
assets/dist/{tool-sidebar.1.19.2.png → tool-sidebar.1.20.0.png}
RENAMED
File without changes
|
assets/src/css/abstract/_mixins.scss
CHANGED
@@ -18,7 +18,7 @@
|
|
18 |
background: $default;
|
19 |
&.dpsp-network-icon-outlined {
|
20 |
.dpsp-network-icon-inner > svg {
|
21 |
-
fill: none;
|
22 |
stroke: var(--customNetworkColor, var(--networkColor, $default));
|
23 |
stroke-width: 1;
|
24 |
}
|
18 |
background: $default;
|
19 |
&.dpsp-network-icon-outlined {
|
20 |
.dpsp-network-icon-inner > svg {
|
21 |
+
fill: none !important;
|
22 |
stroke: var(--customNetworkColor, var(--networkColor, $default));
|
23 |
stroke-width: 1;
|
24 |
}
|
assets/src/css/components/_buttons-general.scss
CHANGED
@@ -76,9 +76,6 @@
|
|
76 |
|
77 |
.dpsp-networks-btns-wrapper.dpsp-column-auto .dpsp-network-btn.dpsp-no-label {
|
78 |
width: 40px;
|
79 |
-
.dpsp-network-icon {
|
80 |
-
left: 0;
|
81 |
-
}
|
82 |
}
|
83 |
|
84 |
.dpsp-button-style-6, .dpsp-button-style-7, .dpsp-button-style-8 {
|
@@ -436,6 +433,11 @@
|
|
436 |
}
|
437 |
|
438 |
|
|
|
|
|
|
|
|
|
|
|
439 |
/* Grow.me Loading Functions */
|
440 |
.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow {
|
441 |
max-width: 0;
|
76 |
|
77 |
.dpsp-networks-btns-wrapper.dpsp-column-auto .dpsp-network-btn.dpsp-no-label {
|
78 |
width: 40px;
|
|
|
|
|
|
|
79 |
}
|
80 |
|
81 |
.dpsp-button-style-6, .dpsp-button-style-7, .dpsp-button-style-8 {
|
433 |
}
|
434 |
|
435 |
|
436 |
+
/* Account for the text change when button is clicked */
|
437 |
+
.dpsp-networks-btns-wrapper .dpsp-network-btn.dpsp-grow:not(.dpsp-grow-saved) .dpsp-network-label {
|
438 |
+
padding-right: 2.15ch;
|
439 |
+
}
|
440 |
+
|
441 |
/* Grow.me Loading Functions */
|
442 |
.dpsp-networks-btns-wrapper .dpsp-network-list-item-grow {
|
443 |
max-width: 0;
|
assets/src/css/components/_buttons-sticky.scss
CHANGED
@@ -8,6 +8,7 @@
|
|
8 |
bottom: 0;
|
9 |
left: 0;
|
10 |
width: 100%;
|
|
|
11 |
background: #fff;
|
12 |
z-index: 1000;
|
13 |
/* Position */
|
@@ -27,6 +28,12 @@
|
|
27 |
visibility: visible;
|
28 |
opacity: 1;
|
29 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
}
|
31 |
|
32 |
#dpsp-sticky-bar {
|
@@ -140,14 +147,15 @@
|
|
140 |
/* Animation 2 */
|
141 |
#dpsp-sticky-bar-wrapper:not(.dpsp-is-mobile).dpsp-position-desktop-bottom.dpsp-animation-2,
|
142 |
#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-bottom.dpsp-animation-2 {
|
143 |
-
bottom:
|
|
|
144 |
visibility: hidden;
|
145 |
-
transition:
|
146 |
}
|
147 |
|
148 |
#dpsp-sticky-bar-wrapper:not(.dpsp-is-mobile).dpsp-position-desktop-bottom.dpsp-animation-2.opened,
|
149 |
#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-bottom.dpsp-animation-2.opened {
|
150 |
-
|
151 |
visibility: visible;
|
152 |
}
|
153 |
|
8 |
bottom: 0;
|
9 |
left: 0;
|
10 |
width: 100%;
|
11 |
+
max-width: 100vw;
|
12 |
background: #fff;
|
13 |
z-index: 1000;
|
14 |
/* Position */
|
28 |
visibility: visible;
|
29 |
opacity: 1;
|
30 |
}
|
31 |
+
&.dpsp-device-desktop.dpsp-is-mobile {
|
32 |
+
display: none;
|
33 |
+
}
|
34 |
+
&.dpsp-device-mobile:not(.dpsp-is-mobile) {
|
35 |
+
display: none;
|
36 |
+
}
|
37 |
}
|
38 |
|
39 |
#dpsp-sticky-bar {
|
147 |
/* Animation 2 */
|
148 |
#dpsp-sticky-bar-wrapper:not(.dpsp-is-mobile).dpsp-position-desktop-bottom.dpsp-animation-2,
|
149 |
#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-bottom.dpsp-animation-2 {
|
150 |
+
bottom: 0;
|
151 |
+
transform: translateY(60px);
|
152 |
visibility: hidden;
|
153 |
+
transition: transform 0.3s ease-in-out, visibility 0.3s ease-in-out;
|
154 |
}
|
155 |
|
156 |
#dpsp-sticky-bar-wrapper:not(.dpsp-is-mobile).dpsp-position-desktop-bottom.dpsp-animation-2.opened,
|
157 |
#dpsp-sticky-bar-wrapper.dpsp-is-mobile.dpsp-position-mobile-bottom.dpsp-animation-2.opened {
|
158 |
+
transform: translateY(0px);
|
159 |
visibility: visible;
|
160 |
}
|
161 |
|
constants.php
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Environment setup.
|
3 |
+
define( 'MV_GROW_PLUGIN_BASENAME', plugin_basename( __DIR__ . '/index.php' ) );
|
4 |
+
define( 'DPSP_PLUGIN_DIR', __DIR__ );
|
5 |
+
define( 'DPSP_PLUGIN_DIR_URL', plugin_dir_url( __FILE__ ) );
|
inc/admin/admin-metaboxes.php
CHANGED
@@ -2,7 +2,11 @@
|
|
2 |
/**
|
3 |
* Meta-boxes file
|
4 |
*/
|
|
|
|
|
5 |
use Mediavine\Grow\View_Loader;
|
|
|
|
|
6 |
/**
|
7 |
* Individual posts share statistics meta-box.
|
8 |
*/
|
@@ -24,11 +28,9 @@ function dpsp_meta_boxes() {
|
|
24 |
// Share option meta-box (Pro only)
|
25 |
if ( ! Social_Pug::is_free() ) {
|
26 |
add_meta_box( 'dpsp_share_options', __( 'Grow: Share Options', 'social-pug' ), 'dpsp_share_options_output', $screen, 'normal', 'core' );
|
|
|
|
|
27 |
}
|
28 |
-
|
29 |
-
// Share statistics meta-box
|
30 |
-
add_meta_box( 'dpsp_share_statistics', __( 'Grow: Share Statistics', 'social-pug' ), 'dpsp_share_statistics_output', $screen, 'normal', 'core' );
|
31 |
-
|
32 |
// Add debugger metabox
|
33 |
if ( ! empty( $settings['debugger_enabled'] ) ) {
|
34 |
add_meta_box( 'dpsp_post_debugger', __( 'Grow: Debug Log', 'social-pug' ), 'dpsp_post_debugger_output', $screen, 'normal', 'core' );
|
@@ -40,6 +42,7 @@ function dpsp_meta_boxes() {
|
|
40 |
/**
|
41 |
* Callback for the Share Options meta box
|
42 |
*
|
|
|
43 |
*/
|
44 |
function dpsp_share_options_output( $post ) {
|
45 |
|
@@ -67,7 +70,7 @@ function dpsp_share_options_output( $post ) {
|
|
67 |
echo '<div class="dpsp-section">';
|
68 |
// Social media image
|
69 |
echo '<div class="dpsp-setting-field-wrapper dpsp-setting-field-image">';
|
70 |
-
echo '<label for="dpsp_share_options[custom_image]"
|
71 |
dpsp_output_backend_tooltip( __( 'Add an image that will populate the "og:image" Open Graph meta tag. For maximum exposure on Facebook, Google, or LinkedIn we recommend an image size of 1200px X 630px.', 'social-pug' ), false );
|
72 |
echo '</label>';
|
73 |
echo '<div>';
|
@@ -109,7 +112,7 @@ function dpsp_share_options_output( $post ) {
|
|
109 |
$current_count = ( ! empty( $share_options['custom_title'] ) ? strlen( wp_kses_post( $share_options['custom_title'] ) ) : 0 );
|
110 |
$remaining_count = $maximum_count - $current_count;
|
111 |
|
112 |
-
echo '<label for="dpsp_share_options[custom_title]"
|
113 |
dpsp_output_backend_tooltip( __( 'Add a title that will populate the "og:title" Open Graph meta tag. This will be used when users share your content on Facebook, Google+ or LinkedIn. The title of the post will be used if this field is empty.', 'social-pug' ), false );
|
114 |
echo '</label>';
|
115 |
echo '<textarea id="dpsp_share_options[custom_title]" name="dpsp_share_options[custom_title]" placeholder="' . esc_attr__( 'Write a social media title...', 'social-pug' ) . '">' . ( isset( $share_options['custom_title'] ) ? wp_kses_post( $share_options['custom_title'] ) : '' ) . '</textarea>';
|
@@ -122,7 +125,7 @@ function dpsp_share_options_output( $post ) {
|
|
122 |
$current_count = ( ! empty( $share_options['custom_description'] ) ? strlen( wp_kses_post( $share_options['custom_description'] ) ) : 0 );
|
123 |
$remaining_count = $maximum_count - $current_count;
|
124 |
|
125 |
-
echo '<label for="dpsp_share_options[custom_description]"
|
126 |
dpsp_output_backend_tooltip( __( 'Add a description that will populate the "og:description" Open Graph meta tag. This will be used when users share your content on Facebook, Google+ or LinkedIn.', 'social-pug' ), false );
|
127 |
echo '</label>';
|
128 |
echo '<textarea id="dpsp_share_options[custom_description]" name="dpsp_share_options[custom_description]" placeholder="' . esc_html__( 'Write a social media description...', 'social-pug' ) . '">' . ( isset( $share_options['custom_description'] ) ? wp_kses_post( $share_options['custom_description'] ) : '' ) . '</textarea>';
|
@@ -135,7 +138,7 @@ function dpsp_share_options_output( $post ) {
|
|
135 |
|
136 |
// Pinterest image
|
137 |
echo '<div class="dpsp-setting-field-wrapper dpsp-setting-field-image">';
|
138 |
-
echo '<label for="dpsp_share_options[custom_image_pinterest]"
|
139 |
dpsp_output_backend_tooltip( __( 'Add an image that will be used when this post is shared on Pinterest. For maximum exposure we recommend using an image that has a 2:3 aspect ratio, for example 800px X 1200px.', 'social-pug' ), false );
|
140 |
echo '</label>';
|
141 |
echo '<div>';
|
@@ -177,9 +180,9 @@ function dpsp_share_options_output( $post ) {
|
|
177 |
$current_count = ( ! empty( $share_options['custom_title_pinterest'] ) ? strlen( wp_kses_post( $share_options['custom_title_pinterest'] ) ) : 0 );
|
178 |
$remaining_count = $maximum_count - $current_count;
|
179 |
|
180 |
-
echo '<label for="dpsp_share_options[custom_title_pinterest]"
|
181 |
echo '<textarea id="dpsp_share_options[custom_title_pinterest]" name="dpsp_share_options[custom_title_pinterest]" placeholder="' . esc_attr__( 'Write a custom Pinterest title...', 'social-pug' ) . '">' . ( isset( $share_options['custom_title_pinterest'] ) ? wp_kses_post( $share_options['custom_title_pinterest'] ) : '' ) . '</textarea>';
|
182 |
-
echo '<p class="description">' .
|
183 |
echo '</div>';
|
184 |
|
185 |
// Pinterest description
|
@@ -189,10 +192,11 @@ function dpsp_share_options_output( $post ) {
|
|
189 |
$current_count = ( ! empty( $share_options['custom_description_pinterest'] ) ? strlen( wp_kses_post( $share_options['custom_description_pinterest'] ) ) : 0 );
|
190 |
$remaining_count = $maximum_count - $current_count;
|
191 |
|
192 |
-
echo '<label for="dpsp_share_options[custom_description_pinterest]"
|
193 |
dpsp_output_backend_tooltip( __( 'Add a customized message that will be used when this post is shared on Pinterest.', 'social-pug' ), false );
|
194 |
echo '</label>';
|
195 |
echo '<textarea id="dpsp_share_options[custom_description_pinterest]" name="dpsp_share_options[custom_description_pinterest]" placeholder="' . esc_attr__( 'Write a custom Pinterest description...', 'social-pug' ) . '">' . ( isset( $share_options['custom_description_pinterest'] ) ? wp_kses_post( $share_options['custom_description_pinterest'] ) : '' ) . '</textarea>';
|
|
|
196 |
echo '</div>';
|
197 |
|
198 |
// Twitter custom tweet
|
@@ -207,7 +211,7 @@ function dpsp_share_options_output( $post ) {
|
|
207 |
$current_count = ( ! empty( $share_options['custom_tweet'] ) ? strlen( wp_kses_post( $share_options['custom_tweet'] ) ) : 0 );
|
208 |
$remaining_count = $maximum_count - $current_count;
|
209 |
|
210 |
-
echo '<label for="dpsp_share_options[custom_tweet]"
|
211 |
dpsp_output_backend_tooltip( __( 'Add a customized tweet that will be used when this post is shared on Twitter.', 'social-pug' ), false );
|
212 |
echo '</label>';
|
213 |
echo '<textarea id="dpsp_share_options[custom_tweet]" name="dpsp_share_options[custom_tweet]" placeholder="' . esc_attr__( 'Write a custom tweet...', 'social-pug' ) . '">' . ( isset( $share_options['custom_tweet'] ) ? wp_kses_post( $share_options['custom_tweet'] ) : '' ) . '</textarea>';
|
@@ -226,7 +230,7 @@ function dpsp_share_options_output( $post ) {
|
|
226 |
|
227 |
echo '<div class="dpsp-setting-field-wrapper">';
|
228 |
|
229 |
-
echo '<label
|
230 |
|
231 |
$hidden_images = dpsp_maybe_unserialize( get_post_meta( $post->ID, 'dpsp_pinterest_hidden_images', true ) );
|
232 |
$hidden_images = ( ! empty( $hidden_images ) && is_array( $hidden_images ) ? $hidden_images : [] );
|
@@ -283,22 +287,27 @@ function dpsp_share_options_output( $post ) {
|
|
283 |
|
284 |
/**
|
285 |
* Callback for the share statistics meta-box.
|
|
|
|
|
|
|
286 |
*/
|
287 |
-
function dpsp_share_statistics_output( $post ) {
|
288 |
|
289 |
$networks = dpsp_get_active_networks();
|
290 |
|
291 |
if ( ! empty( $networks ) ) {
|
292 |
|
|
|
|
|
293 |
$networks_container = \Mediavine\Grow\Networks::get_instance();
|
294 |
|
295 |
echo '<div class="dpsp-statistic-bars-wrapper">';
|
296 |
|
297 |
// Get share counts
|
298 |
-
$networks_shares =
|
299 |
|
300 |
// Get total share counts
|
301 |
-
$total_shares =
|
302 |
|
303 |
// Shares header
|
304 |
echo '<div class="dpsp-statistic-bar-wrapper dpsp-statistic-bar-header">';
|
@@ -332,15 +341,34 @@ function dpsp_share_statistics_output( $post ) {
|
|
332 |
|
333 |
}
|
334 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
335 |
// Shares footer with total count
|
336 |
echo '<div class="dpsp-statistic-bar-wrapper dpsp-statistic-bar-footer">';
|
337 |
echo '<label>' . esc_html__( 'Total shares', 'social-pug' ) . '</label>';
|
338 |
echo '<div class="dpsp-network-share-count"><span class="dpsp-count">' . esc_html( $total_shares ) . '</span></div>';
|
339 |
echo '</div>';
|
340 |
|
|
|
|
|
|
|
|
|
341 |
// Refresh counts button
|
342 |
echo '<div id="dpsp-refresh-share-counts-wrapper">';
|
343 |
-
echo '<a id="dpsp-refresh-share-counts" class="dpsp-button-secondary" href="#">' . esc_html__( 'Refresh shares', '
|
344 |
echo '<span class="spinner"></span>';
|
345 |
wp_nonce_field( 'dpsp_refresh_share_counts', 'dpsp_refresh_share_counts', false, true );
|
346 |
echo '</div>';
|
@@ -461,38 +489,59 @@ function dpsp_post_debugger_output( $post ) {
|
|
461 |
*/
|
462 |
function dpsp_refresh_share_counts() {
|
463 |
|
|
|
|
|
464 |
if ( empty( $_POST['action'] ) || empty( $_POST['nonce'] ) || empty( $_POST['post_id'] ) ) {
|
465 |
-
|
466 |
}
|
467 |
|
468 |
$action = filter_input( INPUT_POST, 'action' );
|
469 |
if ( 'dpsp_refresh_share_counts' !== $action ) {
|
470 |
-
|
471 |
}
|
472 |
|
|
|
473 |
$nonce = filter_input( INPUT_POST, 'nonce' );
|
474 |
if ( ! wp_verify_nonce( $nonce, 'dpsp_refresh_share_counts' ) ) {
|
475 |
-
|
476 |
}
|
477 |
|
478 |
$post_id = (int) $_POST['post_id'];
|
479 |
$post = get_post( $post_id );
|
480 |
|
481 |
-
|
|
|
|
|
482 |
|
483 |
// Flush existing shares before pulling a new set
|
484 |
update_post_meta( $post_id, 'dpsp_networks_shares', '' );
|
485 |
|
|
|
486 |
// Get social shares from the networks
|
487 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
488 |
|
489 |
// Update share counts in the db
|
490 |
-
$shares_updated =
|
491 |
|
|
|
|
|
|
|
|
|
|
|
492 |
}
|
493 |
|
494 |
// Echos the share statistics
|
495 |
-
dpsp_share_statistics_output( $post );
|
496 |
wp_die();
|
497 |
}
|
498 |
|
@@ -563,7 +612,7 @@ function dpsp_save_post_meta( $post_id ) {
|
|
563 |
}
|
564 |
|
565 |
// Save information for the Share Statistics meta-box
|
566 |
-
$dpsp_post_single_previous_urls = filter_input( INPUT_POST, 'dpsp_post_single_previous_urls' );
|
567 |
if ( ! empty( $dpsp_post_single_previous_urls ) ) {
|
568 |
|
569 |
$previous_urls = ( is_array( $dpsp_post_single_previous_urls ) ? $dpsp_post_single_previous_urls : [] );
|
@@ -603,7 +652,7 @@ function dpsp_refresh_all_share_counts_ajax() {
|
|
603 |
return;
|
604 |
}
|
605 |
|
606 |
-
|
607 |
wp_die();
|
608 |
}
|
609 |
|
2 |
/**
|
3 |
* Meta-boxes file
|
4 |
*/
|
5 |
+
|
6 |
+
use Mediavine\Grow\Share_Count_Url_Counts;
|
7 |
use Mediavine\Grow\View_Loader;
|
8 |
+
use Mediavine\Grow\Share_Counts;
|
9 |
+
use Mediavine\Grow\Admin_Messages;
|
10 |
/**
|
11 |
* Individual posts share statistics meta-box.
|
12 |
*/
|
28 |
// Share option meta-box (Pro only)
|
29 |
if ( ! Social_Pug::is_free() ) {
|
30 |
add_meta_box( 'dpsp_share_options', __( 'Grow: Share Options', 'social-pug' ), 'dpsp_share_options_output', $screen, 'normal', 'core' );
|
31 |
+
// Share statistics meta-box
|
32 |
+
add_meta_box( 'dpsp_share_statistics', __( 'Grow: Share Statistics', 'social-pug' ), 'dpsp_share_statistics_output', $screen, 'normal', 'core' );
|
33 |
}
|
|
|
|
|
|
|
|
|
34 |
// Add debugger metabox
|
35 |
if ( ! empty( $settings['debugger_enabled'] ) ) {
|
36 |
add_meta_box( 'dpsp_post_debugger', __( 'Grow: Debug Log', 'social-pug' ), 'dpsp_post_debugger_output', $screen, 'normal', 'core' );
|
42 |
/**
|
43 |
* Callback for the Share Options meta box
|
44 |
*
|
45 |
+
* @param mixed $post The post the output share options for
|
46 |
*/
|
47 |
function dpsp_share_options_output( $post ) {
|
48 |
|
70 |
echo '<div class="dpsp-section">';
|
71 |
// Social media image
|
72 |
echo '<div class="dpsp-setting-field-wrapper dpsp-setting-field-image">';
|
73 |
+
echo '<label for="dpsp_share_options[custom_image]"><span class="dpsp-admin-icon dpsp-admin-icon-share">' . wp_kses( dpsp_get_svg_icon_output( 'share' ), View_Loader::get_allowed_tags() ) . '</span>' . esc_html__( 'Social Media Image', 'social-pug' );
|
74 |
dpsp_output_backend_tooltip( __( 'Add an image that will populate the "og:image" Open Graph meta tag. For maximum exposure on Facebook, Google, or LinkedIn we recommend an image size of 1200px X 630px.', 'social-pug' ), false );
|
75 |
echo '</label>';
|
76 |
echo '<div>';
|
112 |
$current_count = ( ! empty( $share_options['custom_title'] ) ? strlen( wp_kses_post( $share_options['custom_title'] ) ) : 0 );
|
113 |
$remaining_count = $maximum_count - $current_count;
|
114 |
|
115 |
+
echo '<label for="dpsp_share_options[custom_title]"><span class="dpsp-admin-icon dpsp-admin-icon-share">' . wp_kses( dpsp_get_svg_icon_output( 'share' ), View_Loader::get_allowed_tags() ) . '</span>' . esc_html__( 'Social Media Title', 'social-pug' ) . '<span class="dpsp-textarea-characters-remaining-wrapper" data-maximum-count="' . esc_attr( $maximum_count ) . '"><span class="dpsp-textarea-characters-remaining">' . esc_attr( $remaining_count ) . '</span> ' . esc_html__( 'Characters Remaining', 'social-pug' ) . '</span>';
|
116 |
dpsp_output_backend_tooltip( __( 'Add a title that will populate the "og:title" Open Graph meta tag. This will be used when users share your content on Facebook, Google+ or LinkedIn. The title of the post will be used if this field is empty.', 'social-pug' ), false );
|
117 |
echo '</label>';
|
118 |
echo '<textarea id="dpsp_share_options[custom_title]" name="dpsp_share_options[custom_title]" placeholder="' . esc_attr__( 'Write a social media title...', 'social-pug' ) . '">' . ( isset( $share_options['custom_title'] ) ? wp_kses_post( $share_options['custom_title'] ) : '' ) . '</textarea>';
|
125 |
$current_count = ( ! empty( $share_options['custom_description'] ) ? strlen( wp_kses_post( $share_options['custom_description'] ) ) : 0 );
|
126 |
$remaining_count = $maximum_count - $current_count;
|
127 |
|
128 |
+
echo '<label for="dpsp_share_options[custom_description]"><span class="dpsp-admin-icon dpsp-admin-icon-share">' . wp_kses( dpsp_get_svg_icon_output( 'share' ), View_Loader::get_allowed_tags() ) . '</span>' . esc_html__( 'Social Media Description', 'social-pug' ) . '<span class="dpsp-textarea-characters-remaining-wrapper" data-maximum-count="' . esc_attr( $maximum_count ) . '"><span class="dpsp-textarea-characters-remaining">' . esc_attr( $remaining_count ) . '</span> ' . esc_html__( 'Characters Remaining', 'social-pug' ) . '</span>';
|
129 |
dpsp_output_backend_tooltip( __( 'Add a description that will populate the "og:description" Open Graph meta tag. This will be used when users share your content on Facebook, Google+ or LinkedIn.', 'social-pug' ), false );
|
130 |
echo '</label>';
|
131 |
echo '<textarea id="dpsp_share_options[custom_description]" name="dpsp_share_options[custom_description]" placeholder="' . esc_html__( 'Write a social media description...', 'social-pug' ) . '">' . ( isset( $share_options['custom_description'] ) ? wp_kses_post( $share_options['custom_description'] ) : '' ) . '</textarea>';
|
138 |
|
139 |
// Pinterest image
|
140 |
echo '<div class="dpsp-setting-field-wrapper dpsp-setting-field-image">';
|
141 |
+
echo '<label for="dpsp_share_options[custom_image_pinterest]"><span class="dpsp-admin-icon dpsp-admin-icon-pinterest">' . wp_kses( dpsp_get_svg_icon_output( 'pinterest' ), View_Loader::get_allowed_tags() ) . '</span>' . esc_html__( 'Pinterest Image', 'social-pug' );
|
142 |
dpsp_output_backend_tooltip( __( 'Add an image that will be used when this post is shared on Pinterest. For maximum exposure we recommend using an image that has a 2:3 aspect ratio, for example 800px X 1200px.', 'social-pug' ), false );
|
143 |
echo '</label>';
|
144 |
echo '<div>';
|
180 |
$current_count = ( ! empty( $share_options['custom_title_pinterest'] ) ? strlen( wp_kses_post( $share_options['custom_title_pinterest'] ) ) : 0 );
|
181 |
$remaining_count = $maximum_count - $current_count;
|
182 |
|
183 |
+
echo '<label for="dpsp_share_options[custom_title_pinterest]"><span class="dpsp-admin-icon dpsp-admin-icon-pinterest">' . wp_kses( dpsp_get_svg_icon_output( 'pinterest' ), View_Loader::get_allowed_tags() ) . '</span>' . esc_html__( 'Pinterest Title', 'social-pug' ) . '<span class="dpsp-textarea-characters-remaining-wrapper" data-maximum-count="' . esc_attr( $maximum_count ) . '"><span class="dpsp-textarea-characters-remaining">' . esc_attr( $remaining_count ) . '</span> ' . esc_html__( 'Characters Remaining', 'social-pug' ) . '</span></label>';
|
184 |
echo '<textarea id="dpsp_share_options[custom_title_pinterest]" name="dpsp_share_options[custom_title_pinterest]" placeholder="' . esc_attr__( 'Write a custom Pinterest title...', 'social-pug' ) . '">' . ( isset( $share_options['custom_title_pinterest'] ) ? wp_kses_post( $share_options['custom_title_pinterest'] ) : '' ) . '</textarea>';
|
185 |
+
echo '<p class="description">' . esc_html__( 'Please note: Pinterest has unofficially switched from custom titles to Open Graph metadata to pull titles. You can add og:title using the Social Media Title field. The Custom Title field will be visible to show historic values.', 'social-pug' ) . '</p>';
|
186 |
echo '</div>';
|
187 |
|
188 |
// Pinterest description
|
192 |
$current_count = ( ! empty( $share_options['custom_description_pinterest'] ) ? strlen( wp_kses_post( $share_options['custom_description_pinterest'] ) ) : 0 );
|
193 |
$remaining_count = $maximum_count - $current_count;
|
194 |
|
195 |
+
echo '<label for="dpsp_share_options[custom_description_pinterest]"><span class="dpsp-admin-icon dpsp-admin-icon-pinterest">' . wp_kses( dpsp_get_svg_icon_output( 'pinterest' ), View_Loader::get_allowed_tags() ) . '</span>' . esc_html__( 'Pinterest Description', 'social-pug' ) . '<span class="dpsp-textarea-characters-remaining-wrapper" data-maximum-count="' . esc_attr( $maximum_count ) . '"><span class="dpsp-textarea-characters-remaining">' . esc_attr( $remaining_count ) . '</span> ' . esc_html__( 'Characters Remaining', 'social-pug' ) . '</span>';
|
196 |
dpsp_output_backend_tooltip( __( 'Add a customized message that will be used when this post is shared on Pinterest.', 'social-pug' ), false );
|
197 |
echo '</label>';
|
198 |
echo '<textarea id="dpsp_share_options[custom_description_pinterest]" name="dpsp_share_options[custom_description_pinterest]" placeholder="' . esc_attr__( 'Write a custom Pinterest description...', 'social-pug' ) . '">' . ( isset( $share_options['custom_description_pinterest'] ) ? wp_kses_post( $share_options['custom_description_pinterest'] ) : '' ) . '</textarea>';
|
199 |
+
echo '<p class="description">' . esc_html__( 'Please Note: Pinterest has unofficially switched from custom descriptions to Open Graph metadata to pull descriptions. You can add the og:description using the Social Media Description field. The Custom Descriptions field will be visible to show historic values.', 'social-pug' ) . '</p>';
|
200 |
echo '</div>';
|
201 |
|
202 |
// Twitter custom tweet
|
211 |
$current_count = ( ! empty( $share_options['custom_tweet'] ) ? strlen( wp_kses_post( $share_options['custom_tweet'] ) ) : 0 );
|
212 |
$remaining_count = $maximum_count - $current_count;
|
213 |
|
214 |
+
echo '<label for="dpsp_share_options[custom_tweet]"><span class="dpsp-admin-icon dpsp-admin-icon-twitter">' . wp_kses( dpsp_get_svg_icon_output( 'twitter' ), View_Loader::get_allowed_tags() ) . '</span>' . esc_html__( 'Custom Tweet', 'social-pug' ) . '<span class="dpsp-textarea-characters-remaining-wrapper" data-maximum-count="' . esc_attr( $maximum_count ) . '"><span class="dpsp-textarea-characters-remaining">' . esc_html( $remaining_count ) . '</span> ' . esc_html__( 'Characters Remaining', 'social-pug' ) . '</span>';
|
215 |
dpsp_output_backend_tooltip( __( 'Add a customized tweet that will be used when this post is shared on Twitter.', 'social-pug' ), false );
|
216 |
echo '</label>';
|
217 |
echo '<textarea id="dpsp_share_options[custom_tweet]" name="dpsp_share_options[custom_tweet]" placeholder="' . esc_attr__( 'Write a custom tweet...', 'social-pug' ) . '">' . ( isset( $share_options['custom_tweet'] ) ? wp_kses_post( $share_options['custom_tweet'] ) : '' ) . '</textarea>';
|
230 |
|
231 |
echo '<div class="dpsp-setting-field-wrapper">';
|
232 |
|
233 |
+
echo '<label><span class="dpsp-admin-icon dpsp-admin-icon-pinterest">' . wp_kses( dpsp_get_svg_icon_output( 'pinterest' ), View_Loader::get_allowed_tags() ) . '</span>' . esc_html__( 'Pinterest Hidden Images', 'social-pug' ) . '</label>';
|
234 |
|
235 |
$hidden_images = dpsp_maybe_unserialize( get_post_meta( $post->ID, 'dpsp_pinterest_hidden_images', true ) );
|
236 |
$hidden_images = ( ! empty( $hidden_images ) && is_array( $hidden_images ) ? $hidden_images : [] );
|
287 |
|
288 |
/**
|
289 |
* Callback for the share statistics meta-box.
|
290 |
+
*
|
291 |
+
* @param WP_Post $post WordPress post object instance.
|
292 |
+
* @param array $config Config options for the rendered output.
|
293 |
*/
|
294 |
+
function dpsp_share_statistics_output( $post, array $config = [] ) {
|
295 |
|
296 |
$networks = dpsp_get_active_networks();
|
297 |
|
298 |
if ( ! empty( $networks ) ) {
|
299 |
|
300 |
+
$messages = ! empty( $config['messages'] ) ? $config['messages'] : new Admin_Messages();
|
301 |
+
|
302 |
$networks_container = \Mediavine\Grow\Networks::get_instance();
|
303 |
|
304 |
echo '<div class="dpsp-statistic-bars-wrapper">';
|
305 |
|
306 |
// Get share counts
|
307 |
+
$networks_shares = Share_Counts::post_share_counts( $post->ID );
|
308 |
|
309 |
// Get total share counts
|
310 |
+
$total_shares = Share_Counts::post_total_share_counts( $post->ID );
|
311 |
|
312 |
// Shares header
|
313 |
echo '<div class="dpsp-statistic-bar-wrapper dpsp-statistic-bar-header">';
|
341 |
|
342 |
}
|
343 |
|
344 |
+
$has_refresh_timeout = Share_Counts::has_refresh_timeout( $post );
|
345 |
+
|
346 |
+
if ( $has_refresh_timeout ) {
|
347 |
+
$refresh_timeout = (int) Share_Counts::get_refresh_timeout( $post );
|
348 |
+
$minutes_remaining = ceil(abs( $refresh_timeout - time() ) / 60 );
|
349 |
+
|
350 |
+
/* translators: %d: Minutes until the counts may be refreshed. */
|
351 |
+
$refresh_shares_message = esc_html__(
|
352 |
+
'This post may only be refreshed once per hour and the clock is ticking! Please wait %d minutes before refreshing again',
|
353 |
+
'mediavine'
|
354 |
+
);
|
355 |
+
$rendered_message = sprintf($refresh_shares_message, $minutes_remaining);
|
356 |
+
$messages->add_message( $rendered_message, Admin_Messages::MESSAGE_TYPE_WARNING );
|
357 |
+
}
|
358 |
+
|
359 |
// Shares footer with total count
|
360 |
echo '<div class="dpsp-statistic-bar-wrapper dpsp-statistic-bar-footer">';
|
361 |
echo '<label>' . esc_html__( 'Total shares', 'social-pug' ) . '</label>';
|
362 |
echo '<div class="dpsp-network-share-count"><span class="dpsp-count">' . esc_html( $total_shares ) . '</span></div>';
|
363 |
echo '</div>';
|
364 |
|
365 |
+
// phpcs:disable WordPress.Security.EscapeOutput
|
366 |
+
echo $messages;
|
367 |
+
// phpcs:enable
|
368 |
+
|
369 |
// Refresh counts button
|
370 |
echo '<div id="dpsp-refresh-share-counts-wrapper">';
|
371 |
+
echo '<a id="dpsp-refresh-share-counts" class="dpsp-button-secondary ' . ( $has_refresh_timeout ? 'dpsp-refresh-shares-timeout disabled' : '' ) . '" href="#">' . esc_html__( 'Refresh shares', 'mediavine' ) . '</a>';
|
372 |
echo '<span class="spinner"></span>';
|
373 |
wp_nonce_field( 'dpsp_refresh_share_counts', 'dpsp_refresh_share_counts', false, true );
|
374 |
echo '</div>';
|
489 |
*/
|
490 |
function dpsp_refresh_share_counts() {
|
491 |
|
492 |
+
$messages = new Admin_Messages();
|
493 |
+
|
494 |
if ( empty( $_POST['action'] ) || empty( $_POST['nonce'] ) || empty( $_POST['post_id'] ) ) {
|
495 |
+
wp_die( 'Invalid Request, missing parameters', 'Missing Parameters', [ 'response' => 400 ] );
|
496 |
}
|
497 |
|
498 |
$action = filter_input( INPUT_POST, 'action' );
|
499 |
if ( 'dpsp_refresh_share_counts' !== $action ) {
|
500 |
+
wp_die('Incorrect Action, Share counts not retrieved.', 'Incorrect Action', [ 'response' => 400 ] );
|
501 |
}
|
502 |
|
503 |
+
|
504 |
$nonce = filter_input( INPUT_POST, 'nonce' );
|
505 |
if ( ! wp_verify_nonce( $nonce, 'dpsp_refresh_share_counts' ) ) {
|
506 |
+
wp_die('Nonce not verified, please try again.', 'Invalid Nonce', [ 'response' => 403 ] );
|
507 |
}
|
508 |
|
509 |
$post_id = (int) $_POST['post_id'];
|
510 |
$post = get_post( $post_id );
|
511 |
|
512 |
+
$valid_post_status = ! in_array( $post->post_status, [ 'future', 'draft', 'pending', 'trash', 'auto-draft' ], true );
|
513 |
+
|
514 |
+
if ( $valid_post_status ) {
|
515 |
|
516 |
// Flush existing shares before pulling a new set
|
517 |
update_post_meta( $post_id, 'dpsp_networks_shares', '' );
|
518 |
|
519 |
+
$share_count_instance = Share_Counts::get_instance();
|
520 |
// Get social shares from the networks
|
521 |
+
try {
|
522 |
+
$share_counts = $share_count_instance->refresh_post_share_counts( $post );
|
523 |
+
} catch ( Exception $e ) {
|
524 |
+
$share_counts = null;
|
525 |
+
$messages->add_message( $e->getMessage(), Admin_Messages::MESSAGE_TYPE_ERROR );
|
526 |
+
}
|
527 |
+
|
528 |
+
// Flush existing shares before pulling a new set
|
529 |
+
if ( $share_counts instanceof Share_Count_Url_Counts ) {
|
530 |
+
update_post_meta( $post_id, 'dpsp_networks_shares', '' );
|
531 |
+
}
|
532 |
|
533 |
// Update share counts in the db
|
534 |
+
$shares_updated = $share_counts && $share_count_instance->update_post_share_counts( $post, $share_counts );
|
535 |
|
536 |
+
if ( $shares_updated ) {
|
537 |
+
$messages->add_message('Share Counts refreshed successfully', Admin_Messages::MESSAGE_TYPE_SUCCESS);
|
538 |
+
}
|
539 |
+
} else {
|
540 |
+
$messages->add_message('Only Published Posts can refresh share counts.', Admin_Messages::MESSAGE_TYPE_ERROR );
|
541 |
}
|
542 |
|
543 |
// Echos the share statistics
|
544 |
+
dpsp_share_statistics_output( $post, [ 'messages' => $messages ] );
|
545 |
wp_die();
|
546 |
}
|
547 |
|
612 |
}
|
613 |
|
614 |
// Save information for the Share Statistics meta-box
|
615 |
+
$dpsp_post_single_previous_urls = filter_input( INPUT_POST, 'dpsp_post_single_previous_urls', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY );
|
616 |
if ( ! empty( $dpsp_post_single_previous_urls ) ) {
|
617 |
|
618 |
$previous_urls = ( is_array( $dpsp_post_single_previous_urls ) ? $dpsp_post_single_previous_urls : [] );
|
652 |
return;
|
653 |
}
|
654 |
|
655 |
+
Share_Counts::invalidate_all();
|
656 |
wp_die();
|
657 |
}
|
658 |
|
inc/admin/class-admin-messages.php
ADDED
@@ -0,0 +1,122 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Mediavine\Grow;
|
4 |
+
|
5 |
+
use InvalidArgumentException;
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Handles storing and retrieving a set of messages for the admin
|
9 |
+
*/
|
10 |
+
class Admin_Messages {
|
11 |
+
|
12 |
+
/** @var string MESSAGE_TYPE_ERROR Key for Error message type */
|
13 |
+
public const MESSAGE_TYPE_ERROR = 'error';
|
14 |
+
|
15 |
+
/** @var string MESSAGE_TYPE_INFO Key for Info message type */
|
16 |
+
public const MESSAGE_TYPE_INFO = 'info';
|
17 |
+
|
18 |
+
/** @var string MESSAGE_TYPE_WARNING Key for Warning message type */
|
19 |
+
public const MESSAGE_TYPE_WARNING = 'warning';
|
20 |
+
|
21 |
+
/** @var string MESSAGE_TYPE_SUCCESS Key for Success message type */
|
22 |
+
public const MESSAGE_TYPE_SUCCESS = 'success';
|
23 |
+
|
24 |
+
/** @var array<string, array{message: string, type: string}> $messages Stores the messages */
|
25 |
+
private $messages = [
|
26 |
+
self::MESSAGE_TYPE_ERROR => [],
|
27 |
+
self::MESSAGE_TYPE_INFO => [],
|
28 |
+
self::MESSAGE_TYPE_WARNING => [],
|
29 |
+
self::MESSAGE_TYPE_SUCCESS => [],
|
30 |
+
];
|
31 |
+
|
32 |
+
/** @var array<string, string> Valid message types. Initial value is generated on-demand. */
|
33 |
+
private $valid_types;
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Returns the string representation of the object.
|
37 |
+
*
|
38 |
+
* @return string
|
39 |
+
*/
|
40 |
+
public function __toString() {
|
41 |
+
if ( $this->is_empty() ) {
|
42 |
+
return '';
|
43 |
+
}
|
44 |
+
|
45 |
+
$result = '<div class="wrap">';
|
46 |
+
foreach ( $this->messages as $message_type_messages ) {
|
47 |
+
foreach ( $message_type_messages as $message ) {
|
48 |
+
$result .= '<div class="dpsp-admin-notice inline notice ' . esc_attr( 'notice-' . $message['type'] ) . '">';
|
49 |
+
$result .= '<p>' . $message['message'] . '</p>';
|
50 |
+
$result .= '</div>';
|
51 |
+
}
|
52 |
+
}
|
53 |
+
$result .= '</div>';
|
54 |
+
|
55 |
+
return $result;
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Add a new message to the collection.
|
60 |
+
*
|
61 |
+
* @param string $message Message body to include.
|
62 |
+
* @param string $type Type of message. Must be one of the MESSAGE_TYPE_* constants.
|
63 |
+
* @throws InvalidArgumentException If the message type is not one of the MESSAGE_TYPE_* constants.
|
64 |
+
*/
|
65 |
+
public function add_message( string $message, string $type = self::MESSAGE_TYPE_INFO ) {
|
66 |
+
if ( ! $this->is_valid_type( $type ) ) {
|
67 |
+
throw new InvalidArgumentException( "Invalid message type: {$type}." );
|
68 |
+
}
|
69 |
+
$this->messages[ $type ][] = [
|
70 |
+
'message' => $message,
|
71 |
+
'type' => $type,
|
72 |
+
];
|
73 |
+
}
|
74 |
+
|
75 |
+
/**
|
76 |
+
* Get all messages.
|
77 |
+
*
|
78 |
+
* @return array<string, array{message: string, type: int}>
|
79 |
+
*/
|
80 |
+
public function get_messages() : array {
|
81 |
+
return $this->messages;
|
82 |
+
}
|
83 |
+
|
84 |
+
/**
|
85 |
+
* Get all known valid message types.
|
86 |
+
*
|
87 |
+
* @return string[]
|
88 |
+
*/
|
89 |
+
private function get_valid_types() : array {
|
90 |
+
if ( null === $this->valid_types ) {
|
91 |
+
$types = array_keys( $this->messages );
|
92 |
+
$this->valid_types = array_combine( $types, $types );
|
93 |
+
}
|
94 |
+
return $this->valid_types;
|
95 |
+
}
|
96 |
+
|
97 |
+
/**
|
98 |
+
* Should this object be considered empty?
|
99 |
+
*
|
100 |
+
* @return bool
|
101 |
+
*/
|
102 |
+
private function is_empty() : bool {
|
103 |
+
$result = true;
|
104 |
+
foreach ( $this->messages as $type_messages ) {
|
105 |
+
if ( count( $type_messages ) > 0 ) {
|
106 |
+
$result = false;
|
107 |
+
break;
|
108 |
+
}
|
109 |
+
}
|
110 |
+
return $result;
|
111 |
+
}
|
112 |
+
|
113 |
+
/**
|
114 |
+
* Is the type a valid message type?
|
115 |
+
*
|
116 |
+
* @param string $type Message type to validate.
|
117 |
+
* @return bool
|
118 |
+
*/
|
119 |
+
private function is_valid_type( string $type ) : bool {
|
120 |
+
return array_key_exists( $type, $this->get_valid_types() );
|
121 |
+
}
|
122 |
+
}
|
inc/admin/submenu-page-extensions.php
CHANGED
@@ -9,8 +9,6 @@ function dpsp_register_extensions_subpage() {
|
|
9 |
|
10 |
/**
|
11 |
* Function that adds content to the extensions subpage.
|
12 |
-
*
|
13 |
-
* @return string
|
14 |
*/
|
15 |
function dpsp_extensions_subpage() {
|
16 |
$sub_page = filter_input( INPUT_GET, 'sub-page', FILTER_SANITIZE_STRING );
|
9 |
|
10 |
/**
|
11 |
* Function that adds content to the extensions subpage.
|
|
|
|
|
12 |
*/
|
13 |
function dpsp_extensions_subpage() {
|
14 |
$sub_page = filter_input( INPUT_GET, 'sub-page', FILTER_SANITIZE_STRING );
|
inc/admin/submenu-page-settings.php
CHANGED
@@ -32,11 +32,15 @@ function dpsp_settings_register_settings() {
|
|
32 |
/**
|
33 |
* Filter and sanitize settings.
|
34 |
*
|
35 |
-
* @param array $new_settings
|
36 |
* @return array
|
37 |
-
* @deprecated
|
38 |
*/
|
39 |
function dpsp_settings_sanitize( $new_settings ) {
|
|
|
|
|
|
|
|
|
|
|
40 |
return $new_settings;
|
41 |
}
|
42 |
|
32 |
/**
|
33 |
* Filter and sanitize settings.
|
34 |
*
|
35 |
+
* @param array $new_settings Incoming settings values.
|
36 |
* @return array
|
|
|
37 |
*/
|
38 |
function dpsp_settings_sanitize( $new_settings ) {
|
39 |
+
// Explicitly save a value for the inline_critical_css setting.
|
40 |
+
if ( ! isset( $new_settings['inline_critical_css'] ) ) {
|
41 |
+
$new_settings['inline_critical_css'] = '1';
|
42 |
+
}
|
43 |
+
|
44 |
return $new_settings;
|
45 |
}
|
46 |
|
inc/admin/views/view-submenu-page-debugger.php
CHANGED
@@ -89,10 +89,10 @@ All Plugins:
|
|
89 |
<?php
|
90 |
if ( ! empty( $plugins ) ) {
|
91 |
foreach ( $plugins as $key => $plugin ) {
|
92 |
-
echo esc_attr( $plugin['Name'] ) . ' (' . esc_attr( $key ) . ')
|
93 |
}
|
94 |
} else {
|
95 |
-
echo 'None
|
96 |
}
|
97 |
?>
|
98 |
|
@@ -101,10 +101,10 @@ Active Plugins:
|
|
101 |
<?php
|
102 |
if ( ! empty( $active_plugins ) ) {
|
103 |
foreach ( $active_plugins as $key => $plugin ) {
|
104 |
-
echo esc_attr( $plugin['Name'] ) . ' (' . esc_attr( $key ) . ')
|
105 |
}
|
106 |
} else {
|
107 |
-
echo 'None
|
108 |
}
|
109 |
|
110 |
?>
|
@@ -117,7 +117,7 @@ Grow Cron Jobs:
|
|
117 |
echo esc_attr( $cron_job ) . ' ';
|
118 |
}
|
119 |
} else {
|
120 |
-
echo 'None
|
121 |
}
|
122 |
?>
|
123 |
|
89 |
<?php
|
90 |
if ( ! empty( $plugins ) ) {
|
91 |
foreach ( $plugins as $key => $plugin ) {
|
92 |
+
echo esc_attr( $plugin['Name'] ) . ' (' . esc_attr( $key ) . ') ';
|
93 |
}
|
94 |
} else {
|
95 |
+
echo 'None ';
|
96 |
}
|
97 |
?>
|
98 |
|
101 |
<?php
|
102 |
if ( ! empty( $active_plugins ) ) {
|
103 |
foreach ( $active_plugins as $key => $plugin ) {
|
104 |
+
echo esc_attr( $plugin['Name'] ) . ' (' . esc_attr( $key ) . ') ';
|
105 |
}
|
106 |
} else {
|
107 |
+
echo 'None ';
|
108 |
}
|
109 |
|
110 |
?>
|
117 |
echo esc_attr( $cron_job ) . ' ';
|
118 |
}
|
119 |
} else {
|
120 |
+
echo 'None ';
|
121 |
}
|
122 |
?>
|
123 |
|
inc/admin/views/view-submenu-page-settings.php
CHANGED
@@ -19,7 +19,7 @@
|
|
19 |
|
20 |
<div class="dpsp-card-inner">
|
21 |
|
22 |
-
<?php dpsp_settings_field( 'text', 'dpsp_settings[twitter_username]', ( isset( $dpsp_settings['twitter_username'] ) ? $dpsp_settings['twitter_username'] : '' ), __( 'Twitter Username', 'social-pug' ),
|
23 |
<?php dpsp_settings_field( 'switch', 'dpsp_settings[tweets_have_username]', ( isset( $dpsp_settings['tweets_have_username'] ) ? $dpsp_settings['tweets_have_username'] : '' ), __( 'Add Twitter Username to all tweets', 'social-pug' ), [ 'yes' ] ); ?>
|
24 |
|
25 |
</div>
|
@@ -100,24 +100,9 @@
|
|
100 |
|
101 |
</div>
|
102 |
|
103 |
-
<?php dpsp_settings_field( 'text', 'dpsp_settings[facebook_app_id]', ( isset( $dpsp_settings['facebook_app_id'] ) ? $dpsp_settings['facebook_app_id'] : '' ), __( 'Facebook App ID', 'social-pug' ),
|
104 |
-
<?php dpsp_settings_field( 'text', 'dpsp_settings[facebook_app_secret]', ( isset( $dpsp_settings['facebook_app_secret'] ) ? $dpsp_settings['facebook_app_secret'] : '' ), __( 'Facebook App Secret', 'social-pug' ),
|
105 |
<?php dpsp_settings_field( 'switch', 'dpsp_settings[disable_meta_tags]', ( isset( $dpsp_settings['disable_meta_tags'] ) ? $dpsp_settings['disable_meta_tags'] : '' ), __( 'Disable Open Graph Meta Tags', 'social-pug' ), [ 'yes' ] ); ?>
|
106 |
-
<?php
|
107 |
-
dpsp_settings_field(
|
108 |
-
'switch',
|
109 |
-
'dpsp_settings[twitter_share_counts]',
|
110 |
-
( isset( $dpsp_settings['twitter_share_counts'] ) ? $dpsp_settings['twitter_share_counts'] : '' ),
|
111 |
-
__( 'Enable Twitter Tweet Counts', 'social-pug' ),
|
112 |
-
[ 'yes' ],
|
113 |
-
sprintf(
|
114 |
-
// translators: %1$s, %2$s
|
115 |
-
__( 'You will need to register your website on %1$sTwitCount%2$s in order for Grow to be able to return the share counts.', 'social-pug' ),
|
116 |
-
'<a href="http://twitcount.com/" target="_blank">',
|
117 |
-
'</a>'
|
118 |
-
)
|
119 |
-
);
|
120 |
-
?>
|
121 |
|
122 |
</div>
|
123 |
|
19 |
|
20 |
<div class="dpsp-card-inner">
|
21 |
|
22 |
+
<?php dpsp_settings_field( 'text', 'dpsp_settings[twitter_username]', ( isset( $dpsp_settings['twitter_username'] ) ? $dpsp_settings['twitter_username'] : '' ), __( 'Twitter Username', 'social-pug' ), [] ); ?>
|
23 |
<?php dpsp_settings_field( 'switch', 'dpsp_settings[tweets_have_username]', ( isset( $dpsp_settings['tweets_have_username'] ) ? $dpsp_settings['tweets_have_username'] : '' ), __( 'Add Twitter Username to all tweets', 'social-pug' ), [ 'yes' ] ); ?>
|
24 |
|
25 |
</div>
|
100 |
|
101 |
</div>
|
102 |
|
103 |
+
<?php dpsp_settings_field( 'text', 'dpsp_settings[facebook_app_id]', ( isset( $dpsp_settings['facebook_app_id'] ) ? $dpsp_settings['facebook_app_id'] : '' ), __( 'Facebook App ID', 'social-pug' ), [] ); ?>
|
104 |
+
<?php dpsp_settings_field( 'text', 'dpsp_settings[facebook_app_secret]', ( isset( $dpsp_settings['facebook_app_secret'] ) ? $dpsp_settings['facebook_app_secret'] : '' ), __( 'Facebook App Secret', 'social-pug' ), [] ); ?>
|
105 |
<?php dpsp_settings_field( 'switch', 'dpsp_settings[disable_meta_tags]', ( isset( $dpsp_settings['disable_meta_tags'] ) ? $dpsp_settings['disable_meta_tags'] : '' ), __( 'Disable Open Graph Meta Tags', 'social-pug' ), [ 'yes' ] ); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
|
107 |
</div>
|
108 |
|
inc/admin/views/view-submenu-page-sidebar.php
CHANGED
@@ -87,7 +87,7 @@
|
|
87 |
|
88 |
<div class="dpsp-card-inner">
|
89 |
|
90 |
-
<?php dpsp_settings_field( 'switch', 'dpsp_location_sidebar[display][show_count]', ( isset( $dpsp_location_sidebar['display']['show_count'] ) ? $dpsp_location_sidebar['display']['show_count'] : '' ), __( 'Show share count', '
|
91 |
|
92 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_sidebar[display][show_count_total]', ( isset( $dpsp_location_sidebar['display']['show_count_total'] ) ? $dpsp_location_sidebar['display']['show_count_total'] : '' ), __( 'Show total share count', 'social-pug' ), [ 'yes' ], __( 'Display the share count for all social networks.', 'social-pug' ) ); ?>
|
93 |
|
87 |
|
88 |
<div class="dpsp-card-inner">
|
89 |
|
90 |
+
<?php dpsp_settings_field( 'switch', 'dpsp_location_sidebar[display][show_count]', ( isset( $dpsp_location_sidebar['display']['show_count'] ) ? $dpsp_location_sidebar['display']['show_count'] : '' ), __( 'Show share count', 'mediavine' ), [ 'yes' ], __( 'Display the share count for each social network.<br /><br />Please note: You may see a zero share count for Facebook if the share count is under 100 shares due to limitations with Facebook’s API.', 'mediavine' ) ); ?>
|
91 |
|
92 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_sidebar[display][show_count_total]', ( isset( $dpsp_location_sidebar['display']['show_count_total'] ) ? $dpsp_location_sidebar['display']['show_count_total'] : '' ), __( 'Show total share count', 'social-pug' ), [ 'yes' ], __( 'Display the share count for all social networks.', 'social-pug' ) ); ?>
|
93 |
|
inc/api/v1/class-status-schema.php
CHANGED
@@ -14,7 +14,7 @@ class Status_Schema {
|
|
14 |
*
|
15 |
* @return array
|
16 |
*/
|
17 |
-
public function json_schema() {
|
18 |
$schema = [
|
19 |
'$schema' => 'https://json-schema.org/draft/2020-12/schema',
|
20 |
'title' => 'grow-social-status',
|
14 |
*
|
15 |
* @return array
|
16 |
*/
|
17 |
+
public function json_schema() : array {
|
18 |
$schema = [
|
19 |
'$schema' => 'https://json-schema.org/draft/2020-12/schema',
|
20 |
'title' => 'grow-social-status',
|
inc/api/v1/settings-args.php
CHANGED
@@ -110,11 +110,10 @@ function put_general_settings() {
|
|
110 |
'facebook_app_secret',
|
111 |
'facebook_app_access_token',
|
112 |
'facebook_share_counts_provider',
|
113 |
-
'twitter_share_counts',
|
114 |
-
'twitter_share_counts_provider',
|
115 |
'shortening_service',
|
116 |
'debugger_enabled',
|
117 |
'legacy_javascript',
|
|
|
118 |
'tweets_have_username',
|
119 |
'twitter_username',
|
120 |
'facebook_username',
|
110 |
'facebook_app_secret',
|
111 |
'facebook_app_access_token',
|
112 |
'facebook_share_counts_provider',
|
|
|
|
|
113 |
'shortening_service',
|
114 |
'debugger_enabled',
|
115 |
'legacy_javascript',
|
116 |
+
'inline_critical_css',
|
117 |
'tweets_have_username',
|
118 |
'twitter_username',
|
119 |
'facebook_username',
|
inc/api/v1/settings-partials.php
CHANGED
@@ -3,6 +3,11 @@
|
|
3 |
|
4 |
namespace Mediavine\Grow\API\V1\Partials;
|
5 |
|
|
|
|
|
|
|
|
|
|
|
6 |
function get_settings_partials() {
|
7 |
return [
|
8 |
'active' => [
|
@@ -297,15 +302,6 @@ function get_settings_partials() {
|
|
297 |
'own_app',
|
298 |
],
|
299 |
],
|
300 |
-
'twitter_share_counts' => [
|
301 |
-
'type' => 'boolean',
|
302 |
-
'description' => esc_html__( 'Enable Twitter Tweet Counts', 'mediavine' ),
|
303 |
-
],
|
304 |
-
'twitter_share_counts_provider' => [
|
305 |
-
'type' => 'string',
|
306 |
-
'description' => esc_html__( 'Tweet Counts Provider', 'mediavine' ),
|
307 |
-
'enum' => [ 'twitcount' ],
|
308 |
-
],
|
309 |
'shortening_service' => [
|
310 |
'type' => 'string',
|
311 |
'description' => esc_html__( 'WHich Shortening Service to use', 'mediavine' ),
|
@@ -322,6 +318,10 @@ function get_settings_partials() {
|
|
322 |
'type' => 'boolean',
|
323 |
'description' => esc_html__( 'Use Legacy jQuery javascript', 'mediavine' ),
|
324 |
],
|
|
|
|
|
|
|
|
|
325 |
'tweets_have_username' => [
|
326 |
'type' => 'boolean',
|
327 |
'description' => esc_html__( 'Add Twitter Username to all tweets', 'mediavine' ),
|
3 |
|
4 |
namespace Mediavine\Grow\API\V1\Partials;
|
5 |
|
6 |
+
/**
|
7 |
+
* Get settings partials.
|
8 |
+
*
|
9 |
+
* @return array[]
|
10 |
+
*/
|
11 |
function get_settings_partials() {
|
12 |
return [
|
13 |
'active' => [
|
302 |
'own_app',
|
303 |
],
|
304 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
305 |
'shortening_service' => [
|
306 |
'type' => 'string',
|
307 |
'description' => esc_html__( 'WHich Shortening Service to use', 'mediavine' ),
|
318 |
'type' => 'boolean',
|
319 |
'description' => esc_html__( 'Use Legacy jQuery javascript', 'mediavine' ),
|
320 |
],
|
321 |
+
'inline_critical_css' => [
|
322 |
+
'type' => 'boolean',
|
323 |
+
'description' => esc_html__( 'Inline Critical CSS to reduce Cumulative Layout Shift when CSS loading deferred', 'mediavine' ),
|
324 |
+
],
|
325 |
'tweets_have_username' => [
|
326 |
'type' => 'boolean',
|
327 |
'description' => esc_html__( 'Add Twitter Username to all tweets', 'mediavine' ),
|
inc/api/v1/settings-schema.php
CHANGED
@@ -4,7 +4,12 @@ namespace Mediavine\Grow\API\V1\SettingsSchema;
|
|
4 |
|
5 |
use Mediavine\Grow\API\V1\Partials;
|
6 |
|
7 |
-
|
|
|
|
|
|
|
|
|
|
|
8 |
$schema = Partials\get_settings_partials();
|
9 |
|
10 |
return [
|
@@ -42,3 +47,65 @@ function get_tool_settings() {
|
|
42 |
];
|
43 |
|
44 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
5 |
use Mediavine\Grow\API\V1\Partials;
|
6 |
|
7 |
+
/**
|
8 |
+
* Get the schema for the GET Tool settings endpoint
|
9 |
+
*
|
10 |
+
* @return array
|
11 |
+
*/
|
12 |
+
function get_tool_settings() : array {
|
13 |
$schema = Partials\get_settings_partials();
|
14 |
|
15 |
return [
|
47 |
];
|
48 |
|
49 |
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Get the schema for the GET General settings endpoint
|
53 |
+
*
|
54 |
+
* @return array
|
55 |
+
*/
|
56 |
+
function get_general_settings() : array {
|
57 |
+
return Partials\get_partials_by_keys(
|
58 |
+
[
|
59 |
+
'utm_tracking',
|
60 |
+
'utm_source',
|
61 |
+
'utm_medium',
|
62 |
+
'utm_campaign',
|
63 |
+
'http_and_https_share_counts',
|
64 |
+
'previous_permalink_share_counts',
|
65 |
+
'previous_permalink_structure',
|
66 |
+
'previous_permalink_structure_custom',
|
67 |
+
'previous_domain_share_counts',
|
68 |
+
'previous_base_domain',
|
69 |
+
'branch_key',
|
70 |
+
'branch_custom_id_parameter',
|
71 |
+
'branch_custom_title_parameter',
|
72 |
+
'branch_custom_description_parameter',
|
73 |
+
'branch_custom_image_url_parameter',
|
74 |
+
'branch_custom_date_parameter',
|
75 |
+
'branch_custom_post_url_parameter',
|
76 |
+
'ctt_style',
|
77 |
+
'ctt_link_position',
|
78 |
+
'ctt_link_text',
|
79 |
+
'ctt_link_icon_animation',
|
80 |
+
'product_serial',
|
81 |
+
'mv_grow_license',
|
82 |
+
'facebook_app_id',
|
83 |
+
'facebook_app_secret',
|
84 |
+
'facebook_app_access_token',
|
85 |
+
'facebook_share_counts_provider',
|
86 |
+
'shortening_service',
|
87 |
+
'debugger_enabled',
|
88 |
+
'legacy_javascript',
|
89 |
+
'inline_critical_css',
|
90 |
+
'tweets_have_username',
|
91 |
+
'twitter_username',
|
92 |
+
'facebook_username',
|
93 |
+
'pinterest_username',
|
94 |
+
'linkedin_username',
|
95 |
+
'reddit_username',
|
96 |
+
'vkontakte_username',
|
97 |
+
'tumblr_username',
|
98 |
+
'instagram_username',
|
99 |
+
'youtube_username',
|
100 |
+
'vimeo_username',
|
101 |
+
'soundcloud_username',
|
102 |
+
'twitch_username',
|
103 |
+
'yummly_username',
|
104 |
+
'behance_username',
|
105 |
+
'xing_username',
|
106 |
+
'github_username',
|
107 |
+
'telegram_username',
|
108 |
+
'medium_username',
|
109 |
+
] );
|
110 |
+
}
|
111 |
+
|
inc/class-activation.php
CHANGED
@@ -1,11 +1,70 @@
|
|
1 |
<?php
|
2 |
namespace Mediavine\Grow;
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
class Activation extends \Social_Pug {
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
/** @var null */
|
7 |
private static $instance = null;
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
/**
|
10 |
*
|
11 |
*
|
@@ -26,8 +85,6 @@ class Activation extends \Social_Pug {
|
|
26 |
public function init() {
|
27 |
add_action( 'update_option_dpsp_settings', [ $this, 'manage_grow_license' ], 10, 2 );
|
28 |
add_action( 'wp_loaded', [ $this, 'plugin_updated_check' ] );
|
29 |
-
add_action( 'mv_grow_plugin_updated', [ $this, 'relicense' ], 10 );
|
30 |
-
add_action( 'wp_loaded', [ $this, 'relicense_check' ] );
|
31 |
|
32 |
register_activation_hook( mv_grow_get_activation_path(), [ $this, 'plugin_activation' ] );
|
33 |
register_deactivation_hook( mv_grow_get_activation_path(), [ $this, 'plugin_deactivation' ] );
|
@@ -75,6 +132,7 @@ class Activation extends \Social_Pug {
|
|
75 |
/**
|
76 |
* Checks to make sure there's a license, and runs relicense if not found.
|
77 |
*
|
|
|
78 |
* @return void
|
79 |
*/
|
80 |
public function relicense_check() {
|
@@ -84,7 +142,7 @@ class Activation extends \Social_Pug {
|
|
84 |
}
|
85 |
|
86 |
/**
|
87 |
-
*
|
88 |
*/
|
89 |
public function relicense() {
|
90 |
if ( 'LOCK' === get_transient( 'mv_grow_relicense_lockout' ) ) {
|
@@ -141,60 +199,102 @@ class Activation extends \Social_Pug {
|
|
141 |
$settings['mv_grow_license'] = $body->license->license_key;
|
142 |
update_option( 'dpsp_settings', $settings );
|
143 |
update_option( 'mv_grow_license', $body->license->license_key );
|
144 |
-
$KernlUpdater = new \MV_GROW_PRO_PluginUpdateChecker_2_0(
|
145 |
-
'https://kernl.us/api/v1/updates/5d9de9137dd3c26d2ebaad23/',
|
146 |
-
mv_grow_get_activation_path(),
|
147 |
-
'social-pug',
|
148 |
-
1,
|
149 |
-
'Grow Social Pro by Mediavine',
|
150 |
-
'external_updates-mv-grow'
|
151 |
-
);
|
152 |
-
|
153 |
-
$KernlUpdater->license = $body->license->license_key;
|
154 |
-
add_filter( 'puc_check_now-social-pug', '__return_true' );
|
155 |
-
$KernlUpdater->handleManualCheck();
|
156 |
}
|
157 |
|
158 |
-
|
159 |
-
|
160 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
|
162 |
-
$
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
'url' => get_site_url(),
|
167 |
];
|
|
|
|
|
|
|
168 |
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
$KernlUpdater = new \MV_GROW_PRO_PluginUpdateChecker_2_0(
|
173 |
-
'https://kernl.us/api/v1/updates/5d9de9137dd3c26d2ebaad23/',
|
174 |
-
mv_grow_get_activation_path(),
|
175 |
-
'social-pug',
|
176 |
-
1,
|
177 |
-
'Grow Social Pro by Mediavine',
|
178 |
-
'external_updates-mv-grow'
|
179 |
-
);
|
180 |
-
$KernlUpdater->license = $grow_license;
|
181 |
-
add_filter( 'puc_check_now-social-pug', '__return_true' );
|
182 |
-
$KernlUpdater->handleManualCheck();
|
183 |
}
|
184 |
|
185 |
/**
|
|
|
186 |
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
187 |
*
|
188 |
-
* @param $old_values
|
189 |
-
* @param $new_values
|
190 |
*/
|
191 |
-
function manage_grow_license( $old_values, $new_values ) {
|
192 |
-
$
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
|
|
|
|
|
|
|
|
|
|
198 |
}
|
199 |
}
|
200 |
}
|
1 |
<?php
|
2 |
namespace Mediavine\Grow;
|
3 |
|
4 |
+
use InvalidArgumentException;
|
5 |
+
use Requests_Exception_HTTP;
|
6 |
+
use RuntimeException;
|
7 |
+
use WP_Error;
|
8 |
+
use WP_HTTP_Requests_Response;
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Handler for license and activation requirements.
|
12 |
+
*/
|
13 |
class Activation extends \Social_Pug {
|
14 |
|
15 |
+
public const ITEM_ID = 28;
|
16 |
+
|
17 |
+
public const MARKETPLACE_API_BASE_URL = 'https://marketplace.mediavine.com';
|
18 |
+
|
19 |
+
public const LICENSE_STATUS_INVALID = 'invalid';
|
20 |
+
|
21 |
+
public const LICENSE_STATUS_EXPIRED = 'expired';
|
22 |
+
|
23 |
+
public const LICENSE_STATUS_VALID = 'valid';
|
24 |
+
|
25 |
+
public const OPTION_LICENSE_STATUS = 'mv_grow_license_status';
|
26 |
+
|
27 |
+
public const OPTION_LICENSE_STATUS_DATE = 'mv_grow_license_status_date';
|
28 |
+
|
29 |
/** @var null */
|
30 |
private static $instance = null;
|
31 |
|
32 |
+
/**
|
33 |
+
* Make a request to the marketplace API.
|
34 |
+
*
|
35 |
+
* @param array $query Query string to pass as part of the request.
|
36 |
+
* @return array
|
37 |
+
* @throws RuntimeException If an error is encountered during the request.
|
38 |
+
*/
|
39 |
+
private function api_request( array $query = [] ) : array {
|
40 |
+
$query_string = http_build_query( $query );
|
41 |
+
$url = self::MARKETPLACE_API_BASE_URL;
|
42 |
+
if ( ! empty( $query_string ) ) {
|
43 |
+
$url .= false === strstr( $url, '?' ) ? '?' : '&';
|
44 |
+
$url .= $query_string;
|
45 |
+
}
|
46 |
+
|
47 |
+
$request_result = wp_remote_get( $url );
|
48 |
+
if ( ! is_array( $request_result ) ) {
|
49 |
+
if ( $request_result instanceof WP_Error ) {
|
50 |
+
throw new RuntimeException( $request_result->get_error_message() );
|
51 |
+
} else {
|
52 |
+
throw new RuntimeException( 'An unknown error occurred while making a marketplace API request.' );
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
/** @var WP_HTTP_Requests_Response $requests_response */
|
57 |
+
$requests_response = $request_result['http_response'];
|
58 |
+
$requests_response->get_response_object()->throw_for_status();
|
59 |
+
|
60 |
+
$result = json_decode( $requests_response->get_data(), true );
|
61 |
+
if ( ! is_array( $result ) ) {
|
62 |
+
throw new RuntimeException( 'Unexpected format of marketplace API response.' );
|
63 |
+
}
|
64 |
+
|
65 |
+
return $result;
|
66 |
+
}
|
67 |
+
|
68 |
/**
|
69 |
*
|
70 |
*
|
85 |
public function init() {
|
86 |
add_action( 'update_option_dpsp_settings', [ $this, 'manage_grow_license' ], 10, 2 );
|
87 |
add_action( 'wp_loaded', [ $this, 'plugin_updated_check' ] );
|
|
|
|
|
88 |
|
89 |
register_activation_hook( mv_grow_get_activation_path(), [ $this, 'plugin_activation' ] );
|
90 |
register_deactivation_hook( mv_grow_get_activation_path(), [ $this, 'plugin_deactivation' ] );
|
132 |
/**
|
133 |
* Checks to make sure there's a license, and runs relicense if not found.
|
134 |
*
|
135 |
+
* @deprecated 2.16 Old license system upgrade. Do not use.
|
136 |
* @return void
|
137 |
*/
|
138 |
public function relicense_check() {
|
142 |
}
|
143 |
|
144 |
/**
|
145 |
+
* @deprecated 2.16 Old license system upgrade. Do not use.
|
146 |
*/
|
147 |
public function relicense() {
|
148 |
if ( 'LOCK' === get_transient( 'mv_grow_relicense_lockout' ) ) {
|
199 |
$settings['mv_grow_license'] = $body->license->license_key;
|
200 |
update_option( 'dpsp_settings', $settings );
|
201 |
update_option( 'mv_grow_license', $body->license->license_key );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
202 |
}
|
203 |
|
204 |
+
/**
|
205 |
+
* Set the addon license status.
|
206 |
+
*
|
207 |
+
* @param string|null $license_status Updated license status. Must be one of the LICENSE_STATUS_* constants. Null to delete.
|
208 |
+
* @throws InvalidArgumentException If $license_status is invalid.
|
209 |
+
*/
|
210 |
+
private function set_license_status( ?string $license_status ) : void {
|
211 |
+
if ( null === $license_status ) {
|
212 |
+
delete_option( self::OPTION_LICENSE_STATUS );
|
213 |
+
delete_option( self::OPTION_LICENSE_STATUS_DATE );
|
214 |
+
return;
|
215 |
+
}
|
216 |
|
217 |
+
$valid_statuses = [
|
218 |
+
self::LICENSE_STATUS_EXPIRED => self::LICENSE_STATUS_EXPIRED,
|
219 |
+
self::LICENSE_STATUS_INVALID => self::LICENSE_STATUS_INVALID,
|
220 |
+
self::LICENSE_STATUS_VALID => self::LICENSE_STATUS_VALID,
|
|
|
221 |
];
|
222 |
+
if ( ! array_key_exists( $license_status, $valid_statuses ) ) {
|
223 |
+
throw new InvalidArgumentException( 'Invalid $license_status: ' . $license_status );
|
224 |
+
}
|
225 |
|
226 |
+
update_option( self::OPTION_LICENSE_STATUS, $license_status );
|
227 |
+
update_option( self::OPTION_LICENSE_STATUS_DATE, time() );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
228 |
}
|
229 |
|
230 |
/**
|
231 |
+
* Validate a software license as part of a settings update.
|
232 |
*
|
233 |
+
* @param array $old_values Original settings form values.
|
234 |
+
* @param array $new_values Updated settings form values.
|
235 |
+
*/
|
236 |
+
public function validate_license( $old_values, $new_values ) {
|
237 |
+
$grow_license = $new_values['mv_grow_license'] ?? null;
|
238 |
+
if ( null === $grow_license ) {
|
239 |
+
return;
|
240 |
+
}
|
241 |
+
|
242 |
+
try {
|
243 |
+
$response = $this->api_request( [
|
244 |
+
'edd_action' => 'check_license',
|
245 |
+
'item_id' => self::ITEM_ID,
|
246 |
+
'license' => $grow_license,
|
247 |
+
'url' => get_site_url(),
|
248 |
+
] );
|
249 |
+
} catch ( \Exception $e ) {
|
250 |
+
add_settings_error(
|
251 |
+
'mv_grow_license',
|
252 |
+
'mv_grow_license_request_error',
|
253 |
+
__( 'An error was encountered while verifying the license.', 'mediavine' )
|
254 |
+
);
|
255 |
+
$this->set_license_status( null );
|
256 |
+
return;
|
257 |
+
}
|
258 |
+
|
259 |
+
$license_valid = $response['license'] ?? null;
|
260 |
+
switch ( $license_valid ) {
|
261 |
+
case 'expired':
|
262 |
+
$this->set_license_status( self::LICENSE_STATUS_EXPIRED );
|
263 |
+
return;
|
264 |
+
case 'invalid':
|
265 |
+
$this->set_license_status( self::LICENSE_STATUS_INVALID );
|
266 |
+
return;
|
267 |
+
case 'valid':
|
268 |
+
$this->set_license_status( self::LICENSE_STATUS_VALID );
|
269 |
+
return;
|
270 |
+
}
|
271 |
+
|
272 |
+
$this->set_license_status( null );
|
273 |
+
add_settings_error(
|
274 |
+
'mv_grow_license',
|
275 |
+
'mv_grow_license_invalid',
|
276 |
+
__( 'The Grow Social Pro license could not be validated.', 'mediavine' )
|
277 |
+
);
|
278 |
+
}
|
279 |
+
|
280 |
+
/**
|
281 |
+
* Conditionally verify the license during a settings update, if modified.
|
282 |
*
|
283 |
+
* @param array $old_values Original settings form values.
|
284 |
+
* @param array $new_values Updated settings form values.
|
285 |
*/
|
286 |
+
public function manage_grow_license( $old_values, $new_values ) {
|
287 |
+
$new_license = $new_values['mv_grow_license'] ?? null;
|
288 |
+
$old_license = $old_values['mv_grow_license'] ?? null;
|
289 |
+
|
290 |
+
if ( $old_license !== $new_license ) {
|
291 |
+
update_option( 'mv_grow_license', $new_license );
|
292 |
+
|
293 |
+
if ( ! empty( $new_license ) ) {
|
294 |
+
$this->validate_license( $old_values, $new_values );
|
295 |
+
} else {
|
296 |
+
$this->set_license_status( null );
|
297 |
+
}
|
298 |
}
|
299 |
}
|
300 |
}
|
inc/class-admin-notices.php
CHANGED
@@ -1,20 +1,16 @@
|
|
1 |
<?php
|
2 |
namespace Mediavine\Grow;
|
3 |
|
|
|
|
|
|
|
|
|
|
|
4 |
class Admin_Notices {
|
5 |
|
6 |
/** @var null */
|
7 |
private static $instance = null;
|
8 |
|
9 |
-
/** @var string */
|
10 |
-
const SHARE_REMOVAL_VERSION = '1.20.0';
|
11 |
-
|
12 |
-
/** @var string */
|
13 |
-
const SHARE_REMOVAL_FINAL_NOTICE_DATE = '2022-02-10 00:00:00';
|
14 |
-
|
15 |
-
/** @var string */
|
16 |
-
const SHARE_REMOVAL_DATE = 'February 2022';
|
17 |
-
|
18 |
/**
|
19 |
*
|
20 |
*
|
@@ -37,15 +33,15 @@ class Admin_Notices {
|
|
37 |
add_action( 'admin_notices', [ $this, 'dpsp_admin_notice_initial_setup_nag' ] );
|
38 |
add_action( 'admin_notices', [ $this, 'dpsp_admin_notice_facebook_access_token_expired' ] );
|
39 |
add_action( 'admin_notices', [ $this, 'dpsp_admin_notice_google_plus_removal' ] );
|
40 |
-
add_action( 'admin_notices', [ $this, 'dpsp_admin_notice_free_share_count_removal' ] );
|
41 |
add_action( 'admin_notices', [ $this, 'dpsp_admin_notice_grow_name_change' ] );
|
42 |
add_action( 'admin_init', [ $this, 'dpsp_admin_notice_dismiss' ] );
|
43 |
add_action( 'dpsp_first_activation', [ $this, 'dpsp_setup_activation_notices' ] );
|
44 |
add_filter( 'removable_query_args', [ $this, 'dpsp_removable_query_args' ] );
|
45 |
|
46 |
if ( ! \Social_Pug::is_free() ) {
|
47 |
-
add_action( 'admin_notices', [ $this, '
|
48 |
add_action( 'admin_notices', [ $this, 'dpsp_admin_notice_jquery_deprecation' ] );
|
|
|
49 |
}
|
50 |
}
|
51 |
|
@@ -123,7 +119,7 @@ class Admin_Notices {
|
|
123 |
* Adds admin notifications for entering the license serial key.
|
124 |
*/
|
125 |
function dpsp_serial_admin_notification() {
|
126 |
-
if ( ! current_user_can( 'manage_options' )
|
127 |
return;
|
128 |
}
|
129 |
|
@@ -138,17 +134,10 @@ class Admin_Notices {
|
|
138 |
// translators: %1$s is replaced by admin url, %2$s is replaced by store url
|
139 |
$message = sprintf( __( 'Your <strong>Grow Social Pro by Mediavine</strong> license key is empty. Please <a href="%1$s">register your copy</a> to receive automatic updates and support. <br /><br /> Need a license key? <a class="dpsp-get-license button button-primary" target="_blank" href="%2$s">Get your license here</a>', 'social-pug' ), admin_url( 'admin.php?page=dpsp-settings' ), 'https://marketplace.mediavine.com/grow-social-pro/' );
|
140 |
|
141 |
-
|
142 |
-
|
143 |
-
// Display the notice if notice classes have been added
|
144 |
-
if ( isset( $notice_classes ) ) {
|
145 |
echo '<div class="dpsp-admin-notice notice ' . esc_attr( $notice_classes ) . '">';
|
146 |
echo '<p>' . wp_kses( $message, View_Loader::get_allowed_tags() ) . '</p>';
|
147 |
|
148 |
-
if ( isset( $extra_content ) ) {
|
149 |
-
echo wp_kses_post( $extra_content );
|
150 |
-
}
|
151 |
-
|
152 |
echo '</div>';
|
153 |
}
|
154 |
}
|
@@ -225,38 +214,6 @@ class Admin_Notices {
|
|
225 |
echo '</div>';
|
226 |
}
|
227 |
|
228 |
-
/**
|
229 |
-
* Add admin notice to anounce the removal of Share Counts in Free.
|
230 |
-
*/
|
231 |
-
function dpsp_admin_notice_free_share_count_removal() {
|
232 |
-
// Do not display this notice if user cannot activate plugins
|
233 |
-
if ( ! current_user_can( 'activate_plugins' ) || ! \Social_Pug::is_free() ) {
|
234 |
-
return;
|
235 |
-
}
|
236 |
-
|
237 |
-
// Don't show this if the plugin has been activated after the Share Removal Final Notice Date
|
238 |
-
if ( $this->was_first_activation_after( self::SHARE_REMOVAL_FINAL_NOTICE_DATE ) ) {
|
239 |
-
return;
|
240 |
-
}
|
241 |
-
|
242 |
-
// Do not display this notice for users that have dismissed it
|
243 |
-
if ( '' !== get_user_meta( get_current_user_id(), 'dpsp_admin_notice_free_share_count_removal', true ) ) {
|
244 |
-
return;
|
245 |
-
}
|
246 |
-
|
247 |
-
$branding = \Social_Pug::get_branding_name();
|
248 |
-
|
249 |
-
// Echo the admin notice
|
250 |
-
echo '<div class="dpsp-admin-notice notice notice-info">';
|
251 |
-
echo '<a class="notice-dismiss" href="' . esc_attr( add_query_arg( [ 'dpsp_admin_notice_free_share_count_removal' => 1 ] ) ) . '"></a>';
|
252 |
-
// translators: %s Branding name, free or pro version
|
253 |
-
echo '<h4>' . sprintf( esc_html__( '%s Important Notification', 'social-pug' ), esc_html( $branding ) ) . '</h4>';
|
254 |
-
// translators: %s Branding name, free or pro version
|
255 |
-
echo '<p>' . sprintf( esc_html__( 'Social share counts for Twitter are not functioning as intended due to limitations with Twitter\'s API. In order to make them function properly, we are changing the way they operate which is causing us to incur additional costs. As such, version %1$s will remove share counts for Twitter from our free offering. Facebook and Pinterest share counts will remain in both versions of the plugin.', 'social-pug' ), esc_html( self::SHARE_REMOVAL_VERSION ) ) . '</p>';
|
256 |
-
echo '<p>If you would like to maintain share counts for Twitter please update to Grow Social Pro.</p><hr/><p>Have you ever wished you could bundle <em>all</em> your audience engagement tools in one program? We\'re GROWing something pretty great, coming soon!</p>';
|
257 |
-
echo '</div>';
|
258 |
-
}
|
259 |
-
|
260 |
/**
|
261 |
* Add admin notice to announce the name change.
|
262 |
*/
|
@@ -386,10 +343,6 @@ class Admin_Notices {
|
|
386 |
add_user_meta( get_current_user_id(), 'dpsp_admin_notice_google_plus_removal', 1, true );
|
387 |
}
|
388 |
|
389 |
-
if ( ! empty( filter_input( INPUT_GET, 'dpsp_admin_notice_free_share_count_removal' ) ) ) {
|
390 |
-
add_user_meta( get_current_user_id(), 'dpsp_admin_notice_free_share_count_removal', 1, true );
|
391 |
-
}
|
392 |
-
|
393 |
if ( ! empty( filter_input( INPUT_GET, 'dpsp_admin_notice_grow_name_change' ) ) ) {
|
394 |
add_user_meta( get_current_user_id(), 'dpsp_admin_notice_grow_name_change', 1, true );
|
395 |
}
|
@@ -414,4 +367,51 @@ class Admin_Notices {
|
|
414 |
|
415 |
return array_merge( $new_args, $removable_query_args );
|
416 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
417 |
}
|
1 |
<?php
|
2 |
namespace Mediavine\Grow;
|
3 |
|
4 |
+
use WP_Screen;
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Tools to help manage admin notices.
|
8 |
+
*/
|
9 |
class Admin_Notices {
|
10 |
|
11 |
/** @var null */
|
12 |
private static $instance = null;
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
/**
|
15 |
*
|
16 |
*
|
33 |
add_action( 'admin_notices', [ $this, 'dpsp_admin_notice_initial_setup_nag' ] );
|
34 |
add_action( 'admin_notices', [ $this, 'dpsp_admin_notice_facebook_access_token_expired' ] );
|
35 |
add_action( 'admin_notices', [ $this, 'dpsp_admin_notice_google_plus_removal' ] );
|
|
|
36 |
add_action( 'admin_notices', [ $this, 'dpsp_admin_notice_grow_name_change' ] );
|
37 |
add_action( 'admin_init', [ $this, 'dpsp_admin_notice_dismiss' ] );
|
38 |
add_action( 'dpsp_first_activation', [ $this, 'dpsp_setup_activation_notices' ] );
|
39 |
add_filter( 'removable_query_args', [ $this, 'dpsp_removable_query_args' ] );
|
40 |
|
41 |
if ( ! \Social_Pug::is_free() ) {
|
42 |
+
add_action( 'admin_notices', [ $this, 'notify_license_status' ] );
|
43 |
add_action( 'admin_notices', [ $this, 'dpsp_admin_notice_jquery_deprecation' ] );
|
44 |
+
add_action( 'admin_notices', [ $this, 'dpsp_serial_admin_notification' ] );
|
45 |
}
|
46 |
}
|
47 |
|
119 |
* Adds admin notifications for entering the license serial key.
|
120 |
*/
|
121 |
function dpsp_serial_admin_notification() {
|
122 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
123 |
return;
|
124 |
}
|
125 |
|
134 |
// translators: %1$s is replaced by admin url, %2$s is replaced by store url
|
135 |
$message = sprintf( __( 'Your <strong>Grow Social Pro by Mediavine</strong> license key is empty. Please <a href="%1$s">register your copy</a> to receive automatic updates and support. <br /><br /> Need a license key? <a class="dpsp-get-license button button-primary" target="_blank" href="%2$s">Get your license here</a>', 'social-pug' ), admin_url( 'admin.php?page=dpsp-settings' ), 'https://marketplace.mediavine.com/grow-social-pro/' );
|
136 |
|
137 |
+
// Display the notice if notice classes have been added
|
|
|
|
|
|
|
138 |
echo '<div class="dpsp-admin-notice notice ' . esc_attr( $notice_classes ) . '">';
|
139 |
echo '<p>' . wp_kses( $message, View_Loader::get_allowed_tags() ) . '</p>';
|
140 |
|
|
|
|
|
|
|
|
|
141 |
echo '</div>';
|
142 |
}
|
143 |
}
|
214 |
echo '</div>';
|
215 |
}
|
216 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
217 |
/**
|
218 |
* Add admin notice to announce the name change.
|
219 |
*/
|
343 |
add_user_meta( get_current_user_id(), 'dpsp_admin_notice_google_plus_removal', 1, true );
|
344 |
}
|
345 |
|
|
|
|
|
|
|
|
|
346 |
if ( ! empty( filter_input( INPUT_GET, 'dpsp_admin_notice_grow_name_change' ) ) ) {
|
347 |
add_user_meta( get_current_user_id(), 'dpsp_admin_notice_grow_name_change', 1, true );
|
348 |
}
|
367 |
|
368 |
return array_merge( $new_args, $removable_query_args );
|
369 |
}
|
370 |
+
|
371 |
+
/**
|
372 |
+
* Notify users of their current license status, if available, while on the Grow Social settings page.
|
373 |
+
*/
|
374 |
+
public function notify_license_status() : void {
|
375 |
+
$screen = get_current_screen();
|
376 |
+
if ( ! ( $screen instanceof WP_Screen ) || 'grow_page_dpsp-settings' !== $screen->id ) {
|
377 |
+
return;
|
378 |
+
}
|
379 |
+
|
380 |
+
$license_status = get_option( Activation::OPTION_LICENSE_STATUS );
|
381 |
+
$license_status_date = get_option( Activation::OPTION_LICENSE_STATUS_DATE );
|
382 |
+
|
383 |
+
if ( ! $license_status ) {
|
384 |
+
return;
|
385 |
+
}
|
386 |
+
|
387 |
+
switch ( $license_status ) {
|
388 |
+
case Activation::LICENSE_STATUS_VALID:
|
389 |
+
$notice_type = Admin_Messages::MESSAGE_TYPE_SUCCESS;
|
390 |
+
$license_notice = __( 'The Grow Social Pro license is valid.', 'mediavine' );
|
391 |
+
break;
|
392 |
+
case Activation::LICENSE_STATUS_INVALID:
|
393 |
+
$notice_type = Admin_Messages::MESSAGE_TYPE_ERROR;
|
394 |
+
$license_notice = __( 'The Grow Social Pro license is not valid.', 'mediavine' );
|
395 |
+
break;
|
396 |
+
case Activation::LICENSE_STATUS_EXPIRED:
|
397 |
+
$notice_type = Admin_Messages::MESSAGE_TYPE_WARNING;
|
398 |
+
$license_notice = __( 'The Grow Social Pro license has expired.', 'mediavine' );
|
399 |
+
break;
|
400 |
+
default:
|
401 |
+
return;
|
402 |
+
}
|
403 |
+
|
404 |
+
if ( $license_status_date && filter_var( $license_status_date, FILTER_VALIDATE_INT ) ) {
|
405 |
+
$date_format = get_option( 'date_format', 'F j, Y' );
|
406 |
+
$license_status_date_formatted = gmdate( $date_format, $license_status_date );
|
407 |
+
$license_notice = sprintf(
|
408 |
+
// translators: %1$s is the license status message, %2$s is the last-checked date.
|
409 |
+
__( '%1$s Last checked %2$s.', 'mediavine' ),
|
410 |
+
$license_notice,
|
411 |
+
$license_status_date_formatted
|
412 |
+
);
|
413 |
+
}
|
414 |
+
|
415 |
+
mv_grow_admin_error_notice( $license_notice, $notice_type );
|
416 |
+
}
|
417 |
}
|
inc/class-critical-styles.php
ADDED
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Mediavine\Grow;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Class Critical_Styles
|
6 |
+
* This class helps manage creating the critical css styles to be inserted inline in tools
|
7 |
+
* @package Mediavine\Grow
|
8 |
+
*/
|
9 |
+
class Critical_Styles {
|
10 |
+
|
11 |
+
/** @var null|Critical_Styles */
|
12 |
+
private static $instance = null;
|
13 |
+
|
14 |
+
/** @var bool Whether critical styles are active or not */
|
15 |
+
private $is_active = false;
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Get the instance of the class
|
19 |
+
*
|
20 |
+
* @return Critical_Styles|null
|
21 |
+
*/
|
22 |
+
public static function get_instance() : Critical_Styles {
|
23 |
+
if ( null === self::$instance ) {
|
24 |
+
self::$instance = new self();
|
25 |
+
self::$instance->init();
|
26 |
+
}
|
27 |
+
|
28 |
+
return self::$instance;
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Init function in case it is needed in the future.
|
33 |
+
*/
|
34 |
+
public function init() : void {
|
35 |
+
$settings = Settings::get_setting( 'dpsp_settings' );
|
36 |
+
$is_active = \Social_Pug::is_free() || ( $settings['inline_critical_css'] ?? '1' );
|
37 |
+
$this->set_active( filter_var( $is_active, \FILTER_VALIDATE_BOOLEAN ) );
|
38 |
+
if ( $is_active ) {
|
39 |
+
add_filter( 'safe_style_css', [ __CLASS__, 'allowed_properties' ] );
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Set the is active state for the Critical CSS Singleton
|
45 |
+
*
|
46 |
+
* @param bool $active Active state to set
|
47 |
+
*/
|
48 |
+
private function set_active( bool $active = false ) : void {
|
49 |
+
$this->is_active = boolval( $active );
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* Get Style attribute at a location
|
54 |
+
*
|
55 |
+
* @param string $slug Slug identifier for the element to get inline css for
|
56 |
+
* @param string $location Location that this is being called from
|
57 |
+
* @return string
|
58 |
+
*/
|
59 |
+
public static function get( string $slug, string $location = '' ) : string {
|
60 |
+
$instance = self::get_instance();
|
61 |
+
if ( ! $instance->is_active ) {
|
62 |
+
return '';
|
63 |
+
}
|
64 |
+
$styles = apply_filters( 'mv_grow_critical_styles_' . $location, [], $slug );
|
65 |
+
if ( ! is_array( $styles ) ) {
|
66 |
+
return '';
|
67 |
+
}
|
68 |
+
$styles = esc_attr( join( ';', $styles ) );
|
69 |
+
return empty( $styles ) ? '' : 'style="' . $styles . '"';
|
70 |
+
}
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Set the instance of the class
|
74 |
+
*
|
75 |
+
* @since 2.16.0
|
76 |
+
* @param Critical_Styles|null $instance Current Instance of the Class
|
77 |
+
*/
|
78 |
+
public static function set_instance( ? Critical_Styles $instance ) : void {
|
79 |
+
self::$instance = $instance;
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* @param mixed $styles Existing Allowed Properties
|
84 |
+
*
|
85 |
+
* @return mixed
|
86 |
+
*/
|
87 |
+
public static function allowed_properties( $styles ) {
|
88 |
+
if ( ! is_array( $styles ) ) {
|
89 |
+
return $styles;
|
90 |
+
}
|
91 |
+
$styles[] = 'position';
|
92 |
+
$styles[] = 'float';
|
93 |
+
$styles[] = 'right';
|
94 |
+
$styles[] = 'left';
|
95 |
+
return $styles;
|
96 |
+
}
|
97 |
+
|
98 |
+
|
99 |
+
}
|
inc/class-custom-color.php
CHANGED
@@ -1,6 +1,9 @@
|
|
1 |
<?php
|
2 |
namespace Mediavine\Grow;
|
3 |
|
|
|
|
|
|
|
4 |
class Custom_Color {
|
5 |
/**
|
6 |
* Get CSS output of custom color styles for all passed locations.
|
@@ -35,8 +38,9 @@ class Custom_Color {
|
|
35 |
$output = '';
|
36 |
|
37 |
// Custom colors
|
38 |
-
$color
|
39 |
-
$hover_color
|
|
|
40 |
|
41 |
// Have clases with normal line
|
42 |
$location = str_replace( '_', '-', $location );
|
@@ -46,7 +50,7 @@ class Custom_Color {
|
|
46 |
$output .= self::sticky_bar( $location_settings );
|
47 |
}
|
48 |
|
49 |
-
$output .= self::style_variation( $
|
50 |
|
51 |
if ( $hover_color ) {
|
52 |
$output .= '.dpsp-networks-btns-wrapper.dpsp-networks-btns-' . $location . ' .dpsp-network-btn {--networkHover: ' . Color_Utilities::opacity( $hover_color, 0.4 ) . '; --networkAccent: ' . Color_Utilities::opacity( $hover_color, 1 ) . ';}';
|
@@ -311,9 +315,9 @@ class Custom_Color {
|
|
311 |
$output .= sprintf( $variations[ $style_variation ]['color'], $location, $color, $hover_color, $darker_color );
|
312 |
}
|
313 |
if ( $hover_color ) {
|
|
|
314 |
$output .= sprintf( $variations[ $style_variation ]['hover_color'], $location, $color, $hover_color, $darker_color );
|
315 |
}
|
316 |
-
|
317 |
return $output;
|
318 |
}
|
319 |
}
|
1 |
<?php
|
2 |
namespace Mediavine\Grow;
|
3 |
|
4 |
+
/**
|
5 |
+
* Handles the css output needed to allow custom button colors
|
6 |
+
*/
|
7 |
class Custom_Color {
|
8 |
/**
|
9 |
* Get CSS output of custom color styles for all passed locations.
|
38 |
$output = '';
|
39 |
|
40 |
// Custom colors
|
41 |
+
$color = ! empty( $location_settings['display']['custom_color'] ) ? $location_settings['display']['custom_color'] : false;
|
42 |
+
$hover_color = ! empty( $location_settings['display']['custom_hover_color'] ) ? $location_settings['display']['custom_hover_color'] : false;
|
43 |
+
$button_style = ! empty( $location_settings['button_style'] ) ? $location_settings['button_style'] : 1;
|
44 |
|
45 |
// Have clases with normal line
|
46 |
$location = str_replace( '_', '-', $location );
|
50 |
$output .= self::sticky_bar( $location_settings );
|
51 |
}
|
52 |
|
53 |
+
$output .= self::style_variation( $button_style, $location, $color, $hover_color );
|
54 |
|
55 |
if ( $hover_color ) {
|
56 |
$output .= '.dpsp-networks-btns-wrapper.dpsp-networks-btns-' . $location . ' .dpsp-network-btn {--networkHover: ' . Color_Utilities::opacity( $hover_color, 0.4 ) . '; --networkAccent: ' . Color_Utilities::opacity( $hover_color, 1 ) . ';}';
|
315 |
$output .= sprintf( $variations[ $style_variation ]['color'], $location, $color, $hover_color, $darker_color );
|
316 |
}
|
317 |
if ( $hover_color ) {
|
318 |
+
/** @phpstan-ignore-next-line */
|
319 |
$output .= sprintf( $variations[ $style_variation ]['hover_color'], $location, $color, $hover_color, $darker_color );
|
320 |
}
|
|
|
321 |
return $output;
|
322 |
}
|
323 |
}
|
inc/class-data-sync.php
CHANGED
@@ -1,6 +1,9 @@
|
|
1 |
<?php
|
2 |
namespace Mediavine\Grow;
|
3 |
|
|
|
|
|
|
|
4 |
class Data_Sync extends \Social_Pug {
|
5 |
|
6 |
/** @var null */
|
@@ -120,6 +123,7 @@ class Data_Sync extends \Social_Pug {
|
|
120 |
}
|
121 |
|
122 |
// Get site domain and remove www if exists
|
|
|
123 |
if ( isset( $_SERVER['HTTP_HOST'] ) ) { // Input var okay
|
124 |
$site_domain = wp_unslash( $_SERVER['HTTP_HOST'] ); // Input var okay; sanitization okay.
|
125 |
if ( strpos( $site_domain, 'www.' ) === 0 ) {
|
1 |
<?php
|
2 |
namespace Mediavine\Grow;
|
3 |
|
4 |
+
/**
|
5 |
+
* Data syncing.
|
6 |
+
*/
|
7 |
class Data_Sync extends \Social_Pug {
|
8 |
|
9 |
/** @var null */
|
123 |
}
|
124 |
|
125 |
// Get site domain and remove www if exists
|
126 |
+
$site_domain = false;
|
127 |
if ( isset( $_SERVER['HTTP_HOST'] ) ) { // Input var okay
|
128 |
$site_domain = wp_unslash( $_SERVER['HTTP_HOST'] ); // Input var okay; sanitization okay.
|
129 |
if ( strpos( $site_domain, 'www.' ) === 0 ) {
|
inc/class-dpsp-network-buttons-outputter.php
CHANGED
@@ -2,11 +2,14 @@
|
|
2 |
|
3 |
use Mediavine\Grow\Network;
|
4 |
use Mediavine\Grow\Networks;
|
|
|
|
|
5 |
/**
|
6 |
* Class that handles the output of the social button list items and unordered list wrapper.
|
7 |
*/
|
8 |
class DPSP_Network_Buttons_Outputter {
|
9 |
|
|
|
10 |
private static $button_defaults = [
|
11 |
'tag' => 'a',
|
12 |
'rel' => '',
|
@@ -26,10 +29,10 @@ class DPSP_Network_Buttons_Outputter {
|
|
26 |
/**
|
27 |
* Return the output for a button location.
|
28 |
*
|
29 |
-
* @param array
|
30 |
* @param string $action The action these buttons will be used for, either share or follow
|
31 |
* @param string $location The location slug where these buttons will be output
|
32 |
-
* @param array
|
33 |
* @return string
|
34 |
*/
|
35 |
public static function get_render( $settings = [], $action = '', $location = '', $data = [] ) {
|
@@ -41,7 +44,7 @@ class DPSP_Network_Buttons_Outputter {
|
|
41 |
}
|
42 |
$data['post_details'] = self::get_post_details( $data );
|
43 |
// Start concatenating the output
|
44 |
-
$output = '<ul class="' . self::make_wrapper_classes( $data['settings'], $data['action'], $data['location'] ) . '">';
|
45 |
|
46 |
// Array position for css classes, start off with first
|
47 |
$array_position = [ 'first' ];
|
@@ -75,9 +78,9 @@ class DPSP_Network_Buttons_Outputter {
|
|
75 |
* Collects general data about the current post.
|
76 |
*
|
77 |
* @param array $data Data about the current call for buttons
|
78 |
-
* @return array $post_details
|
79 |
*/
|
80 |
-
public static function get_post_details( $data ) {
|
81 |
if ( is_admin() ) {
|
82 |
return [];
|
83 |
}
|
@@ -113,12 +116,14 @@ class DPSP_Network_Buttons_Outputter {
|
|
113 |
$post_details['post_custom_image_pinterest'] = rawurlencode( esc_url( $share_options['custom_image_pinterest']['src'] ) );
|
114 |
}
|
115 |
|
|
|
116 |
// Get networks share count for this post
|
117 |
if ( $post_obj ) {
|
118 |
-
$networks_shares = apply_filters( 'dpsp_get_output_post_shares_counts',
|
119 |
}
|
120 |
|
121 |
$post_details['networks_shares'] = ( ! empty( $networks_shares ) ? $networks_shares : [] );
|
|
|
122 |
|
123 |
return $post_details;
|
124 |
}
|
@@ -126,7 +131,7 @@ class DPSP_Network_Buttons_Outputter {
|
|
126 |
/**
|
127 |
* Generate the wrapper class string.
|
128 |
*
|
129 |
-
* @param array
|
130 |
* @param string $action string representing the action, either share or follow
|
131 |
* @param string $location string representing the location
|
132 |
*
|
@@ -148,10 +153,10 @@ class DPSP_Network_Buttons_Outputter {
|
|
148 |
/**
|
149 |
* Returns an array of data that contains all information for button output.
|
150 |
*
|
151 |
-
* @param array
|
152 |
* @param Network $network Associative array of network data
|
153 |
-
* @param string
|
154 |
-
* @param array
|
155 |
* @return array
|
156 |
*/
|
157 |
private static function single_button_data( $data, $network, $network_label, $array_position ) {
|
@@ -167,16 +172,18 @@ class DPSP_Network_Buttons_Outputter {
|
|
167 |
'action' => $data['action'],
|
168 |
];
|
169 |
|
170 |
-
$button_data['show_share_counts'] = self::should_count_show( $data['settings'], $slug, $
|
171 |
$button_data['show_labels'] = self::should_label_show( $data['settings'] );
|
172 |
|
173 |
// Get the link of the button
|
174 |
$network_share_link = 'share' === $data['action'] ? self::get_button_share_link( $slug, $data ) : self::get_button_follow_link( $slug );
|
175 |
|
|
|
|
|
176 |
// Set button classes
|
177 |
$button_data['button_classes'] = [ 'dpsp-network-btn' ];
|
178 |
-
$button_data['button_classes'][] = (
|
179 |
-
$button_data['button_classes'][] = ( ( empty( $network->get_label() ) || ! isset( $data['settings']['display']['show_labels'] ) ) && ( ! in_array( $slug,
|
180 |
$button_data['button_classes'][] = ( $button_data['show_share_counts'] ? 'dpsp-has-count' : '' );
|
181 |
foreach ( $array_position as $position ) {
|
182 |
$button_data['button_classes'][] = 'dpsp-' . $position;
|
@@ -214,8 +221,8 @@ class DPSP_Network_Buttons_Outputter {
|
|
214 |
/**
|
215 |
* Returns the value that should be populated in the link's "title" attribute, based on the provided network.
|
216 |
*
|
217 |
-
* @param string $network_slug
|
218 |
-
* @param string $network_label
|
219 |
* @return string
|
220 |
*/
|
221 |
private static function get_share_link_title_attribute( $network_slug, $network_label ) {
|
@@ -253,8 +260,8 @@ class DPSP_Network_Buttons_Outputter {
|
|
253 |
/**
|
254 |
* Returns the value that should be populated in the link's "title" attribute, based on the provided network.
|
255 |
*
|
256 |
-
* @param string $network_slug
|
257 |
-
* @param string $network_label
|
258 |
* @return string
|
259 |
*/
|
260 |
private static function get_follow_link_title_attribute( $network_slug, $network_label ) {
|
@@ -268,7 +275,7 @@ class DPSP_Network_Buttons_Outputter {
|
|
268 |
* Get the network shares for a given network.
|
269 |
*
|
270 |
* @param string $network_slug Machine readable name of network
|
271 |
-
* @param int
|
272 |
* @param string $location Location where these buttons are being output
|
273 |
*
|
274 |
* @return int|string Represents the count that will be displayed on the front end
|
@@ -281,17 +288,18 @@ class DPSP_Network_Buttons_Outputter {
|
|
281 |
/**
|
282 |
* Determine if the share count should be output for a given button.
|
283 |
*
|
284 |
-
* @param array
|
285 |
-
* @param string $network_slug
|
286 |
-
* @param int
|
287 |
* @return bool
|
288 |
*/
|
289 |
-
private static function should_count_show( $settings, $network_slug, $network_shares ) {
|
290 |
if ( ! isset( $settings['display']['show_count'] ) ) {
|
291 |
// Settings are not set for showing count
|
292 |
return false;
|
293 |
}
|
294 |
-
|
|
|
295 |
// Network doesn't support share counts
|
296 |
return false;
|
297 |
}
|
@@ -299,7 +307,7 @@ class DPSP_Network_Buttons_Outputter {
|
|
299 |
//Shares are not more than zero
|
300 |
return false;
|
301 |
}
|
302 |
-
if ( ! empty( $settings['display']['minimum_count'] ) && $settings['display']['minimum_count'] >
|
303 |
// Minimum global count is set, and there are not enough shares
|
304 |
return false;
|
305 |
}
|
@@ -325,7 +333,7 @@ class DPSP_Network_Buttons_Outputter {
|
|
325 |
* Get the url string that a button or link will point to.
|
326 |
*
|
327 |
* @param string $network_slug Machine readable name of the network
|
328 |
-
* @param array
|
329 |
* @return string
|
330 |
*/
|
331 |
private static function get_button_share_link( $network_slug, $data ) {
|
2 |
|
3 |
use Mediavine\Grow\Network;
|
4 |
use Mediavine\Grow\Networks;
|
5 |
+
use Mediavine\Grow\Critical_Styles;
|
6 |
+
use Mediavine\Grow\Share_Counts;
|
7 |
/**
|
8 |
* Class that handles the output of the social button list items and unordered list wrapper.
|
9 |
*/
|
10 |
class DPSP_Network_Buttons_Outputter {
|
11 |
|
12 |
+
/** @var array $button_defaults Default button Settings */
|
13 |
private static $button_defaults = [
|
14 |
'tag' => 'a',
|
15 |
'rel' => '',
|
29 |
/**
|
30 |
* Return the output for a button location.
|
31 |
*
|
32 |
+
* @param array $settings Array of settings for this location
|
33 |
* @param string $action The action these buttons will be used for, either share or follow
|
34 |
* @param string $location The location slug where these buttons will be output
|
35 |
+
* @param array $data Other data about how these buttons should be output
|
36 |
* @return string
|
37 |
*/
|
38 |
public static function get_render( $settings = [], $action = '', $location = '', $data = [] ) {
|
44 |
}
|
45 |
$data['post_details'] = self::get_post_details( $data );
|
46 |
// Start concatenating the output
|
47 |
+
$output = '<ul class="' . self::make_wrapper_classes( $data['settings'], $data['action'], $data['location'] ) . '" ' . Critical_Styles::get( 'button-list-wrapper', $location ) . '>';
|
48 |
|
49 |
// Array position for css classes, start off with first
|
50 |
$array_position = [ 'first' ];
|
78 |
* Collects general data about the current post.
|
79 |
*
|
80 |
* @param array $data Data about the current call for buttons
|
81 |
+
* @return array|bool $post_details
|
82 |
*/
|
83 |
+
public static function get_post_details( array $data ) {
|
84 |
if ( is_admin() ) {
|
85 |
return [];
|
86 |
}
|
116 |
$post_details['post_custom_image_pinterest'] = rawurlencode( esc_url( $share_options['custom_image_pinterest']['src'] ) );
|
117 |
}
|
118 |
|
119 |
+
$share_counts = Share_Counts::post_share_counts( $post_obj->ID );
|
120 |
// Get networks share count for this post
|
121 |
if ( $post_obj ) {
|
122 |
+
$networks_shares = apply_filters( 'dpsp_get_output_post_shares_counts', $share_counts, $data['location'] );
|
123 |
}
|
124 |
|
125 |
$post_details['networks_shares'] = ( ! empty( $networks_shares ) ? $networks_shares : [] );
|
126 |
+
$post_details['networks_shares_unfiltered'] = ( ! empty( $share_counts ) ? $share_counts : [] );
|
127 |
|
128 |
return $post_details;
|
129 |
}
|
131 |
/**
|
132 |
* Generate the wrapper class string.
|
133 |
*
|
134 |
+
* @param array $settings settings for this location
|
135 |
* @param string $action string representing the action, either share or follow
|
136 |
* @param string $location string representing the location
|
137 |
*
|
153 |
/**
|
154 |
* Returns an array of data that contains all information for button output.
|
155 |
*
|
156 |
+
* @param array $data Data about how button should be output
|
157 |
* @param Network $network Associative array of network data
|
158 |
+
* @param string $network_label Network Label for Display
|
159 |
+
* @param array $array_position An array of string identifiers for css classes to indicate the position
|
160 |
* @return array
|
161 |
*/
|
162 |
private static function single_button_data( $data, $network, $network_label, $array_position ) {
|
172 |
'action' => $data['action'],
|
173 |
];
|
174 |
|
175 |
+
$button_data['show_share_counts'] = self::should_count_show( $data['settings'], $slug, $data['post_details']['networks_shares_unfiltered'][ $slug ] ?? 0 );
|
176 |
$button_data['show_labels'] = self::should_label_show( $data['settings'] );
|
177 |
|
178 |
// Get the link of the button
|
179 |
$network_share_link = 'share' === $data['action'] ? self::get_button_share_link( $slug, $data ) : self::get_button_follow_link( $slug );
|
180 |
|
181 |
+
$networks_with_count = array_keys( Networks::get_instance()->get_countable() );
|
182 |
+
|
183 |
// Set button classes
|
184 |
$button_data['button_classes'] = [ 'dpsp-network-btn' ];
|
185 |
+
$button_data['button_classes'][] = ( ! empty( $slug ) ? 'dpsp-' . $slug : '' );
|
186 |
+
$button_data['button_classes'][] = ( ( empty( $network->get_label() ) || ! isset( $data['settings']['display']['show_labels'] ) ) && ( ! in_array( $slug, $networks_with_count, true ) || ! $button_data['show_share_counts'] ) ? 'dpsp-no-label' : '' );
|
187 |
$button_data['button_classes'][] = ( $button_data['show_share_counts'] ? 'dpsp-has-count' : '' );
|
188 |
foreach ( $array_position as $position ) {
|
189 |
$button_data['button_classes'][] = 'dpsp-' . $position;
|
221 |
/**
|
222 |
* Returns the value that should be populated in the link's "title" attribute, based on the provided network.
|
223 |
*
|
224 |
+
* @param string $network_slug Network Slug to get the title attribute for
|
225 |
+
* @param string $network_label The Label to use for the title attribute
|
226 |
* @return string
|
227 |
*/
|
228 |
private static function get_share_link_title_attribute( $network_slug, $network_label ) {
|
260 |
/**
|
261 |
* Returns the value that should be populated in the link's "title" attribute, based on the provided network.
|
262 |
*
|
263 |
+
* @param string $network_slug Network to get title attribute for
|
264 |
+
* @param string $network_label Label to use for the title attribute
|
265 |
* @return string
|
266 |
*/
|
267 |
private static function get_follow_link_title_attribute( $network_slug, $network_label ) {
|
275 |
* Get the network shares for a given network.
|
276 |
*
|
277 |
* @param string $network_slug Machine readable name of network
|
278 |
+
* @param int $networks_shares Array representing share counts from various networks
|
279 |
* @param string $location Location where these buttons are being output
|
280 |
*
|
281 |
* @return int|string Represents the count that will be displayed on the front end
|
288 |
/**
|
289 |
* Determine if the share count should be output for a given button.
|
290 |
*
|
291 |
+
* @param array $settings Array of settings for this location
|
292 |
+
* @param string $network_slug Slug of the network we are checking for
|
293 |
+
* @param int $network_shares Shares for this network
|
294 |
* @return bool
|
295 |
*/
|
296 |
+
private static function should_count_show( array $settings, string $network_slug, int $network_shares ) : bool {
|
297 |
if ( ! isset( $settings['display']['show_count'] ) ) {
|
298 |
// Settings are not set for showing count
|
299 |
return false;
|
300 |
}
|
301 |
+
$networks_with_count = array_keys( Networks::get_instance()->get_countable() );
|
302 |
+
if ( ! in_array( $network_slug, $networks_with_count, true ) ) {
|
303 |
// Network doesn't support share counts
|
304 |
return false;
|
305 |
}
|
307 |
//Shares are not more than zero
|
308 |
return false;
|
309 |
}
|
310 |
+
if ( ! empty( $settings['display']['minimum_count'] ) && $settings['display']['minimum_count'] > Share_Counts::post_total_share_counts() ) {
|
311 |
// Minimum global count is set, and there are not enough shares
|
312 |
return false;
|
313 |
}
|
333 |
* Get the url string that a button or link will point to.
|
334 |
*
|
335 |
* @param string $network_slug Machine readable name of the network
|
336 |
+
* @param array $data Data bout the post and button output
|
337 |
* @return string
|
338 |
*/
|
339 |
private static function get_button_share_link( $network_slug, $data ) {
|
inc/class-frontend-data.php
CHANGED
@@ -1,7 +1,9 @@
|
|
1 |
<?php
|
2 |
namespace Mediavine\Grow;
|
3 |
|
|
|
4 |
use Social_Pug;
|
|
|
5 |
use WP_Post;
|
6 |
use WP_Term;
|
7 |
|
@@ -47,6 +49,7 @@ class Frontend_Data extends Asset_Loader {
|
|
47 |
add_filter( 'mv_grow_frontend_admin_data', [ $this, 'get_admin_svg' ] );
|
48 |
add_filter( 'mv_grow_frontend_admin_data', [ $this, 'get_admin_is_free' ] );
|
49 |
add_filter( 'mv_grow_frontend_admin_data', [ $this, 'get_admin_api_data' ] );
|
|
|
50 |
}
|
51 |
|
52 |
/**
|
@@ -78,7 +81,7 @@ class Frontend_Data extends Asset_Loader {
|
|
78 |
public function get_counts( $data = [] ) {
|
79 |
$post = dpsp_get_current_post();
|
80 |
if ( $post ) {
|
81 |
-
$data['shareCounts'] =
|
82 |
|
83 |
foreach ( $data['shareCounts'] as $social => $value ) {
|
84 |
$data['shareCounts'][ $social ] = (int) $value;
|
@@ -116,9 +119,22 @@ class Frontend_Data extends Asset_Loader {
|
|
116 |
* @return array
|
117 |
*/
|
118 |
public function general_data( $data = [] ) {
|
119 |
-
$
|
|
|
120 |
'contentSelector' => apply_filters( 'mv_grow_content_wrapper_selector', false ),
|
|
|
|
|
121 |
];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
122 |
$data['general'] = $general;
|
123 |
|
124 |
$data = $this->with_current_post( $data );
|
@@ -161,6 +177,17 @@ class Frontend_Data extends Asset_Loader {
|
|
161 |
return $admin_data;
|
162 |
}
|
163 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
/**
|
165 |
* Output API Data for Admin
|
166 |
*
|
@@ -181,7 +208,7 @@ class Frontend_Data extends Asset_Loader {
|
|
181 |
* @param array $data Current Grow data.
|
182 |
* @return array
|
183 |
*/
|
184 |
-
private function with_current_post( $data ) {
|
185 |
if ( 'post' !== get_post_type() || false === is_single() ) {
|
186 |
$data['post'] = null;
|
187 |
return $data;
|
1 |
<?php
|
2 |
namespace Mediavine\Grow;
|
3 |
|
4 |
+
use Mediavine\Grow\Tools\Toolkit;
|
5 |
use Social_Pug;
|
6 |
+
use Mediavine\Grow\Share_Counts;
|
7 |
use WP_Post;
|
8 |
use WP_Term;
|
9 |
|
49 |
add_filter( 'mv_grow_frontend_admin_data', [ $this, 'get_admin_svg' ] );
|
50 |
add_filter( 'mv_grow_frontend_admin_data', [ $this, 'get_admin_is_free' ] );
|
51 |
add_filter( 'mv_grow_frontend_admin_data', [ $this, 'get_admin_api_data' ] );
|
52 |
+
add_filter( 'mv_grow_frontend_admin_data', [ $this, 'get_admin_is_development' ] );
|
53 |
}
|
54 |
|
55 |
/**
|
81 |
public function get_counts( $data = [] ) {
|
82 |
$post = dpsp_get_current_post();
|
83 |
if ( $post ) {
|
84 |
+
$data['shareCounts'] = Share_Counts::post_share_counts( $post->ID );
|
85 |
|
86 |
foreach ( $data['shareCounts'] as $social => $value ) {
|
87 |
$data['shareCounts'][ $social ] = (int) $value;
|
119 |
* @return array
|
120 |
*/
|
121 |
public function general_data( $data = [] ) {
|
122 |
+
$trellis_integration = \Mediavine\Grow\Integrations\MV_Trellis::get_instance();
|
123 |
+
$general = [
|
124 |
'contentSelector' => apply_filters( 'mv_grow_content_wrapper_selector', false ),
|
125 |
+
'show_count' => [],
|
126 |
+
'isTrellis' => $trellis_integration->should_run(),
|
127 |
];
|
128 |
+
$tools_with_counts = [ 'content', 'pop_up', 'sidebar', 'sticky_bar' ];
|
129 |
+
foreach ( Toolkit::get_instance()->get_all() as $tool_slug => $tool ) {
|
130 |
+
if ( ! in_array( $tool_slug, $tools_with_counts, true ) ) {
|
131 |
+
continue;
|
132 |
+
}
|
133 |
+
$tool_settings = $tool->get_settings();
|
134 |
+
$show_count = $tool_settings['display']['show_count'] ?? null;
|
135 |
+
$general['show_count'][ $tool_slug ] = filter_var( $show_count, FILTER_VALIDATE_BOOLEAN );
|
136 |
+
}
|
137 |
+
|
138 |
$data['general'] = $general;
|
139 |
|
140 |
$data = $this->with_current_post( $data );
|
177 |
return $admin_data;
|
178 |
}
|
179 |
|
180 |
+
/**
|
181 |
+
* Output Whether or not the plugin is running in development mode
|
182 |
+
*
|
183 |
+
* @param $admin_data array Existing data that will be output to frontend
|
184 |
+
* @return array
|
185 |
+
*/
|
186 |
+
public function get_admin_is_development( $admin_data = [] ) {
|
187 |
+
$admin_data['isDevelopment'] = apply_filters( 'mv_grow_dev_mode', false );
|
188 |
+
return $admin_data;
|
189 |
+
}
|
190 |
+
|
191 |
/**
|
192 |
* Output API Data for Admin
|
193 |
*
|
208 |
* @param array $data Current Grow data.
|
209 |
* @return array
|
210 |
*/
|
211 |
+
private function with_current_post( array $data ) : array {
|
212 |
if ( 'post' !== get_post_type() || false === is_single() ) {
|
213 |
$data['post'] = null;
|
214 |
return $data;
|
inc/class-icon.php
CHANGED
@@ -1,6 +1,9 @@
|
|
1 |
<?php
|
2 |
namespace Mediavine\Grow;
|
3 |
|
|
|
|
|
|
|
4 |
class Icon {
|
5 |
|
6 |
/** @var int Width of icon that represents pixel width and SVG coordinate width, used for width and viewBox attributes */
|
@@ -22,9 +25,9 @@ class Icon {
|
|
22 |
* Icon constructor.
|
23 |
*
|
24 |
* @param string $slug Identifier for this icon
|
25 |
-
* @param array
|
26 |
*/
|
27 |
-
public function __construct( $slug = '', $args ) {
|
28 |
$this->slug = $slug;
|
29 |
$this->width = $args['width'];
|
30 |
$this->height = $args['height'];
|
1 |
<?php
|
2 |
namespace Mediavine\Grow;
|
3 |
|
4 |
+
/**
|
5 |
+
* Represents a single Icon
|
6 |
+
*/
|
7 |
class Icon {
|
8 |
|
9 |
/** @var int Width of icon that represents pixel width and SVG coordinate width, used for width and viewBox attributes */
|
25 |
* Icon constructor.
|
26 |
*
|
27 |
* @param string $slug Identifier for this icon
|
28 |
+
* @param array $args Icon Data to regsiter with
|
29 |
*/
|
30 |
+
public function __construct( string $slug = '', array $args = [] ) {
|
31 |
$this->slug = $slug;
|
32 |
$this->width = $args['width'];
|
33 |
$this->height = $args['height'];
|
inc/class-mobile-detect.php
DELETED
@@ -1,899 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
namespace Mediavine\Grow;
|
3 |
-
|
4 |
-
/**
|
5 |
-
* Mobile Detect Library.
|
6 |
-
*
|
7 |
-
* Motto: "Every business should have a mobile detection script to detect mobile readers"
|
8 |
-
*
|
9 |
-
* Mobile_Detect is a lightweight PHP class for detecting mobile devices (including tablets).
|
10 |
-
* It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.
|
11 |
-
*
|
12 |
-
* @author Current authors: Serban Ghita <serbanghita@gmail.com>
|
13 |
-
* Nick Ilyin <nick.ilyin@gmail.com>
|
14 |
-
*
|
15 |
-
* Original author: Victor Stanciu <vic.stanciu@gmail.com>
|
16 |
-
*
|
17 |
-
* @license Code and contributions have 'MIT License'
|
18 |
-
* More details: https://github.com/serbanghita/Mobile-Detect/blob/master/LICENSE.txt
|
19 |
-
*
|
20 |
-
* @link Homepage: http://mobiledetect.net
|
21 |
-
* GitHub Repo: https://github.com/serbanghita/Mobile-Detect
|
22 |
-
* Google Code: http://code.google.com/p/php-mobile-detect/
|
23 |
-
* README: https://github.com/serbanghita/Mobile-Detect/blob/master/README.md
|
24 |
-
* HOWTO: https://github.com/serbanghita/Mobile-Detect/wiki/Code-examples
|
25 |
-
*
|
26 |
-
* @version 2.8.24
|
27 |
-
*/
|
28 |
-
class Mobile_Detect {
|
29 |
-
/**
|
30 |
-
* Mobile detection type.
|
31 |
-
*
|
32 |
-
* @deprecated since version 2.6.9
|
33 |
-
*/
|
34 |
-
const DETECTION_TYPE_MOBILE = 'mobile';
|
35 |
-
|
36 |
-
/**
|
37 |
-
* Extended detection type.
|
38 |
-
*
|
39 |
-
* @deprecated since version 2.6.9
|
40 |
-
*/
|
41 |
-
const DETECTION_TYPE_EXTENDED = 'extended';
|
42 |
-
|
43 |
-
/**
|
44 |
-
* A frequently used regular expression to extract version #s.
|
45 |
-
*
|
46 |
-
* @deprecated since version 2.6.9
|
47 |
-
*/
|
48 |
-
const VER = '([\w._\+]+)';
|
49 |
-
|
50 |
-
/**
|
51 |
-
* Top-level device.
|
52 |
-
*/
|
53 |
-
const MOBILE_GRADE_A = 'A';
|
54 |
-
|
55 |
-
/**
|
56 |
-
* Mid-level device.
|
57 |
-
*/
|
58 |
-
const MOBILE_GRADE_B = 'B';
|
59 |
-
|
60 |
-
/**
|
61 |
-
* Low-level device.
|
62 |
-
*/
|
63 |
-
const MOBILE_GRADE_C = 'C';
|
64 |
-
|
65 |
-
/**
|
66 |
-
* Stores the version number of the current release.
|
67 |
-
*/
|
68 |
-
const VERSION = '2.8.24';
|
69 |
-
|
70 |
-
/**
|
71 |
-
* A type for the version() method indicating a string return value.
|
72 |
-
*/
|
73 |
-
const VERSION_TYPE_STRING = 'text';
|
74 |
-
|
75 |
-
/**
|
76 |
-
* A type for the version() method indicating a float return value.
|
77 |
-
*/
|
78 |
-
const VERSION_TYPE_FLOAT = 'float';
|
79 |
-
/**
|
80 |
-
* HTTP headers that trigger the 'is_mobile' detection
|
81 |
-
* to be true.
|
82 |
-
*
|
83 |
-
* @var array
|
84 |
-
*/
|
85 |
-
protected static $mobileHeaders = [
|
86 |
-
|
87 |
-
'HTTP_ACCEPT' => [
|
88 |
-
'matches' => [
|
89 |
-
// Opera Mini; @reference: http://dev.opera.com/articles/view/opera-binary-markup-language/
|
90 |
-
'application/x-obml2d',
|
91 |
-
// BlackBerry devices.
|
92 |
-
'application/vnd.rim.html',
|
93 |
-
'text/vnd.wap.wml',
|
94 |
-
'application/vnd.wap.xhtml+xml',
|
95 |
-
],
|
96 |
-
],
|
97 |
-
'HTTP_X_WAP_PROFILE' => null,
|
98 |
-
'HTTP_X_WAP_CLIENTID' => null,
|
99 |
-
'HTTP_WAP_CONNECTION' => null,
|
100 |
-
'HTTP_PROFILE' => null,
|
101 |
-
// Reported by Opera on Nokia devices (eg. C3).
|
102 |
-
'HTTP_X_OPERAMINI_PHONE_UA' => null,
|
103 |
-
'HTTP_X_NOKIA_GATEWAY_ID' => null,
|
104 |
-
'HTTP_X_ORANGE_ID' => null,
|
105 |
-
'HTTP_X_VODAFONE_3GPDPCONTEXT' => null,
|
106 |
-
'HTTP_X_HUAWEI_USERID' => null,
|
107 |
-
// Reported by Windows Smartphones.
|
108 |
-
'HTTP_UA_OS' => null,
|
109 |
-
// Reported by Verizon, Vodafone proxy system.
|
110 |
-
'HTTP_X_MOBILE_GATEWAY' => null,
|
111 |
-
// Seen this on HTC Sensation. SensationXE_Beats_Z715e.
|
112 |
-
'HTTP_X_ATT_DEVICEID' => null,
|
113 |
-
// Seen this on a HTC.
|
114 |
-
'HTTP_UA_CPU' => [ 'matches' => [ 'ARM' ] ],
|
115 |
-
];
|
116 |
-
/**
|
117 |
-
* List of mobile devices (phones).
|
118 |
-
*
|
119 |
-
* @var array
|
120 |
-
*/
|
121 |
-
protected static $phoneDevices = [
|
122 |
-
'iPhone' => '\biPhone\b|\biPod\b',
|
123 |
-
// |\biTunes
|
124 |
-
'BlackBerry' => 'BlackBerry|\bBB10\b|rim[0-9]+',
|
125 |
-
'HTC' => 'HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\bEVO\b|T-Mobile G1|Z520m',
|
126 |
-
'Nexus' => 'Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile|Nexus 4|Nexus 5|Nexus 6',
|
127 |
-
// @todo: Is 'Dell Streak' a tablet or a phone? ;)
|
128 |
-
'Dell' => 'Dell.*Streak|Dell.*Aero|Dell.*Venue|DELL.*Venue Pro|Dell Flash|Dell Smoke|Dell Mini 3iX|XCD28|XCD35|\b001DL\b|\b101DL\b|\bGS01\b',
|
129 |
-
'Motorola' => 'Motorola|DROIDX|DROID BIONIC|\bDroid\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925|XT1021|\bMoto E\b',
|
130 |
-
'Samsung' => '\bSamsung\b|SM-G9250|GT-19300|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9082|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-I959|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535|SM-N900A|SGH-I317|SGH-T999L|GT-S5360B|GT-I8262|GT-S6802|GT-S6312|GT-S6310|GT-S5312|GT-S5310|GT-I9105|GT-I8510|GT-S6790N|SM-G7105|SM-N9005|GT-S5301|GT-I9295|GT-I9195|SM-C101|GT-S7392|GT-S7560|GT-B7610|GT-I5510|GT-S7582|GT-S7530E|GT-I8750|SM-G9006V|SM-G9008V|SM-G9009D|SM-G900A|SM-G900D|SM-G900F|SM-G900H|SM-G900I|SM-G900J|SM-G900K|SM-G900L|SM-G900M|SM-G900P|SM-G900R4|SM-G900S|SM-G900T|SM-G900V|SM-G900W8|SHV-E160K|SCH-P709|SCH-P729|SM-T2558|GT-I9205|SM-G9350|SM-J120F',
|
131 |
-
'LG' => '\bLG\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS740|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802|MS323)',
|
132 |
-
'Sony' => 'SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i|C5303|C6902|C6903|C6906|C6943|D2533',
|
133 |
-
'Asus' => 'Asus.*Galaxy|PadFone.*Mobile',
|
134 |
-
'NokiaLumia' => 'Lumia [0-9]{3,4}',
|
135 |
-
// http://www.micromaxinfo.com/mobiles/smartphones
|
136 |
-
// Added because the codes might conflict with Acer Tablets.
|
137 |
-
'Micromax' => 'Micromax.*\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\b',
|
138 |
-
// @todo Complete the regex.
|
139 |
-
'Palm' => 'PalmSource|Palm',
|
140 |
-
// avantgo|blazer|elaine|hiptop|plucker|xiino ;
|
141 |
-
'Vertu' => 'Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature',
|
142 |
-
// Just for fun ;)
|
143 |
-
// http://www.pantech.co.kr/en/prod/prodList.do?gbrand=VEGA (PANTECH)
|
144 |
-
// Most of the VEGA devices are legacy. PANTECH seem to be newer devices based on Android.
|
145 |
-
'Pantech' => 'PANTECH|IM-A850S|IM-A840S|IM-A830L|IM-A830K|IM-A830S|IM-A820L|IM-A810K|IM-A810S|IM-A800S|IM-T100K|IM-A725L|IM-A780L|IM-A775C|IM-A770K|IM-A760S|IM-A750K|IM-A740S|IM-A730S|IM-A720L|IM-A710K|IM-A690L|IM-A690S|IM-A650S|IM-A630K|IM-A600S|VEGA PTL21|PT003|P8010|ADR910L|P6030|P6020|P9070|P4100|P9060|P5000|CDM8992|TXT8045|ADR8995|IS11PT|P2030|P6010|P8000|PT002|IS06|CDM8999|P9050|PT001|TXT8040|P2020|P9020|P2000|P7040|P7000|C790',
|
146 |
-
// http://www.fly-phone.com/devices/smartphones/ ; Included only smartphones.
|
147 |
-
'Fly' => 'IQ230|IQ444|IQ450|IQ440|IQ442|IQ441|IQ245|IQ256|IQ236|IQ255|IQ235|IQ245|IQ275|IQ240|IQ285|IQ280|IQ270|IQ260|IQ250',
|
148 |
-
// http://fr.wikomobile.com
|
149 |
-
'Wiko' => 'KITE 4G|HIGHWAY|GETAWAY|STAIRWAY|DARKSIDE|DARKFULL|DARKNIGHT|DARKMOON|SLIDE|WAX 4G|RAINBOW|BLOOM|SUNSET|GOA(?!nna)|LENNY|BARRY|IGGY|OZZY|CINK FIVE|CINK PEAX|CINK PEAX 2|CINK SLIM|CINK SLIM 2|CINK +|CINK KING|CINK PEAX|CINK SLIM|SUBLIM',
|
150 |
-
'iMobile' => 'i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)',
|
151 |
-
// Added simvalley mobile just for fun. They have some interesting devices.
|
152 |
-
// http://www.simvalley.fr/telephonie---gps-_22_telephonie-mobile_telephones_.html
|
153 |
-
'SimValley' => '\b(SP-80|XT-930|SX-340|XT-930|SX-310|SP-360|SP60|SPT-800|SP-120|SPT-800|SP-140|SPX-5|SPX-8|SP-100|SPX-8|SPX-12)\b',
|
154 |
-
// Wolfgang - a brand that is sold by Aldi supermarkets.
|
155 |
-
// http://www.wolfgangmobile.com/
|
156 |
-
'Wolfgang' => 'AT-B24D|AT-AS50HD|AT-AS40W|AT-AS55HD|AT-AS45q2|AT-B26D|AT-AS50Q',
|
157 |
-
'Alcatel' => 'Alcatel',
|
158 |
-
'Nintendo' => 'Nintendo 3DS',
|
159 |
-
// http://en.wikipedia.org/wiki/Amoi
|
160 |
-
'Amoi' => 'Amoi',
|
161 |
-
// http://en.wikipedia.org/wiki/INQ
|
162 |
-
'INQ' => 'INQ',
|
163 |
-
// @Tapatalk is a mobile app; http://support.tapatalk.com/threads/smf-2-0-2-os-and-browser-detection-plugin-and-tapatalk.15565/#post-79039
|
164 |
-
'GenericPhone' => 'Tapatalk|PDA;|SAGEM|\bmmp\b|pocket|\bpsp\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\bwap\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser',
|
165 |
-
];
|
166 |
-
/**
|
167 |
-
* List of mobile Operating Systems.
|
168 |
-
*
|
169 |
-
* @var array
|
170 |
-
*/
|
171 |
-
protected static $operatingSystems = [
|
172 |
-
'AndroidOS' => 'Android',
|
173 |
-
'BlackBerryOS' => 'blackberry|\bBB10\b|rim tablet os',
|
174 |
-
'PalmOS' => 'PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino',
|
175 |
-
'SymbianOS' => 'Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\bS60\b',
|
176 |
-
// @reference: http://en.wikipedia.org/wiki/Windows_Mobile
|
177 |
-
'WindowsMobileOS' => 'Windows CE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Window Mobile|Windows Phone [0-9.]+|WCE;',
|
178 |
-
// @reference: http://en.wikipedia.org/wiki/Windows_Phone
|
179 |
-
// http://wifeng.cn/?r=blog&a=view&id=106
|
180 |
-
// http://nicksnettravels.builttoroam.com/post/2011/01/10/Bogus-Windows-Phone-7-User-Agent-String.aspx
|
181 |
-
// http://msdn.microsoft.com/library/ms537503.aspx
|
182 |
-
// https://msdn.microsoft.com/en-us/library/hh869301(v=vs.85).aspx
|
183 |
-
'WindowsPhoneOS' => 'Windows Phone 10.0|Windows Phone 8.1|Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7|Windows NT 6.[23]; ARM;',
|
184 |
-
'iOS' => '\biPhone.*Mobile|\biPod|\biPad',
|
185 |
-
// http://en.wikipedia.org/wiki/MeeGo
|
186 |
-
// @todo: research MeeGo in UAs
|
187 |
-
'MeeGoOS' => 'MeeGo',
|
188 |
-
// http://en.wikipedia.org/wiki/Maemo
|
189 |
-
// @todo: research Maemo in UAs
|
190 |
-
'MaemoOS' => 'Maemo',
|
191 |
-
'JavaOS' => 'J2ME/|\bMIDP\b|\bCLDC\b', // '|Java/' produces bug #135
|
192 |
-
'webOS' => 'webOS|hpwOS',
|
193 |
-
'badaOS' => '\bBada\b',
|
194 |
-
'BREWOS' => 'BREW',
|
195 |
-
];
|
196 |
-
/**
|
197 |
-
* List of mobile User Agents.
|
198 |
-
*
|
199 |
-
* IMPORTANT: This is a list of only mobile browsers.
|
200 |
-
* Mobile Detect 2.x supports only mobile browsers,
|
201 |
-
* it was never designed to detect all browsers.
|
202 |
-
* The change will come in 2017 in the 3.x release for PHP7.
|
203 |
-
*
|
204 |
-
* @var array
|
205 |
-
*/
|
206 |
-
protected static $browsers = [
|
207 |
-
//'Vivaldi' => 'Vivaldi',
|
208 |
-
// @reference: https://developers.google.com/chrome/mobile/docs/user-agent
|
209 |
-
'Chrome' => '\bCrMo\b|CriOS|Android.*Chrome/[.0-9]* (Mobile)?',
|
210 |
-
'Dolfin' => '\bDolfin\b',
|
211 |
-
'Opera' => 'Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR/[0-9.]+|Coast/[0-9.]+',
|
212 |
-
'Skyfire' => 'Skyfire',
|
213 |
-
'Edge' => 'Mobile Safari/[.0-9]* Edge',
|
214 |
-
'IE' => 'IEMobile|MSIEMobile',
|
215 |
-
// |Trident/[.0-9]+
|
216 |
-
'Firefox' => 'fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile|FxiOS',
|
217 |
-
'Bolt' => 'bolt',
|
218 |
-
'TeaShark' => 'teashark',
|
219 |
-
'Blazer' => 'Blazer',
|
220 |
-
// @reference: http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/OptimizingforSafarioniPhone/OptimizingforSafarioniPhone.html#//apple_ref/doc/uid/TP40006517-SW3
|
221 |
-
'Safari' => 'Version.*Mobile.*Safari|Safari.*Mobile|MobileSafari',
|
222 |
-
// http://en.wikipedia.org/wiki/Midori_(web_browser)
|
223 |
-
//'Midori' => 'midori',
|
224 |
-
//'Tizen' => 'Tizen',
|
225 |
-
'UCBrowser' => 'UC.*Browser|UCWEB',
|
226 |
-
'baiduboxapp' => 'baiduboxapp',
|
227 |
-
'baidubrowser' => 'baidubrowser',
|
228 |
-
// https://github.com/serbanghita/Mobile-Detect/issues/7
|
229 |
-
'DiigoBrowser' => 'DiigoBrowser',
|
230 |
-
// http://www.puffinbrowser.com/index.php
|
231 |
-
'Puffin' => 'Puffin',
|
232 |
-
// http://mercury-browser.com/index.html
|
233 |
-
'Mercury' => '\bMercury\b',
|
234 |
-
// http://en.wikipedia.org/wiki/Obigo_Browser
|
235 |
-
'ObigoBrowser' => 'Obigo',
|
236 |
-
// http://en.wikipedia.org/wiki/NetFront
|
237 |
-
'NetFront' => 'NF-Browser',
|
238 |
-
// @reference: http://en.wikipedia.org/wiki/Minimo
|
239 |
-
// http://en.wikipedia.org/wiki/Vision_Mobile_Browser
|
240 |
-
'GenericBrowser' => 'NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger',
|
241 |
-
// @reference: https://en.wikipedia.org/wiki/Pale_Moon_(web_browser)
|
242 |
-
'PaleMoon' => 'Android.*PaleMoon|Mobile.*PaleMoon',
|
243 |
-
];
|
244 |
-
/**
|
245 |
-
* Utilities.
|
246 |
-
*
|
247 |
-
* @var array
|
248 |
-
*/
|
249 |
-
protected static $utilities = [
|
250 |
-
// Experimental. When a mobile device wants to switch to 'Desktop Mode'.
|
251 |
-
// http://scottcate.com/technology/windows-phone-8-ie10-desktop-or-mobile/
|
252 |
-
// https://github.com/serbanghita/Mobile-Detect/issues/57#issuecomment-15024011
|
253 |
-
// https://developers.facebook.com/docs/sharing/best-practices
|
254 |
-
'Bot' => 'Googlebot|facebookexternalhit|AdsBot-Google|Google Keyword Suggestion|Facebot|YandexBot|YandexMobileBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor|Exabot|MJ12bot|YandexImages|TurnitinBot|Pingdom',
|
255 |
-
'MobileBot' => 'Googlebot-Mobile|AdsBot-Google-Mobile|YahooSeeker/M1A1-R2D2',
|
256 |
-
'DesktopMode' => 'WPDesktop',
|
257 |
-
'TV' => 'SonyDTV|HbbTV', // experimental
|
258 |
-
'WebKit' => '(webkit)[ /]([\w.]+)',
|
259 |
-
// @todo: Include JXD consoles.
|
260 |
-
'Console' => '\b(Nintendo|Nintendo WiiU|Nintendo 3DS|PLAYSTATION|Xbox)\b',
|
261 |
-
'Watch' => 'SM-V700',
|
262 |
-
];
|
263 |
-
/**
|
264 |
-
* All possible HTTP headers that represent the
|
265 |
-
* User-Agent string.
|
266 |
-
*
|
267 |
-
* @var array
|
268 |
-
*/
|
269 |
-
protected static $uaHttpHeaders = [
|
270 |
-
// The default User-Agent string.
|
271 |
-
'HTTP_USER_AGENT',
|
272 |
-
// Header can occur on devices using Opera Mini.
|
273 |
-
'HTTP_X_OPERAMINI_PHONE_UA',
|
274 |
-
// Vodafone specific header: http://www.seoprinciple.com/mobile-web-community-still-angry-at-vodafone/24/
|
275 |
-
'HTTP_X_DEVICE_USER_AGENT',
|
276 |
-
'HTTP_X_ORIGINAL_USER_AGENT',
|
277 |
-
'HTTP_X_SKYFIRE_PHONE',
|
278 |
-
'HTTP_X_BOLT_PHONE_UA',
|
279 |
-
'HTTP_DEVICE_STOCK_UA',
|
280 |
-
'HTTP_X_UCBROWSER_DEVICE_UA',
|
281 |
-
];
|
282 |
-
/**
|
283 |
-
* The individual segments that could exist in a User-Agent string. VER refers to the regular
|
284 |
-
* expression defined in the constant self::VER.
|
285 |
-
*
|
286 |
-
* @var array
|
287 |
-
*/
|
288 |
-
protected static $properties = [
|
289 |
-
|
290 |
-
// Build
|
291 |
-
'Mobile' => 'Mobile/[VER]',
|
292 |
-
'Build' => 'Build/[VER]',
|
293 |
-
'Version' => 'Version/[VER]',
|
294 |
-
'VendorID' => 'VendorID/[VER]',
|
295 |
-
|
296 |
-
// Devices
|
297 |
-
'iPad' => 'iPad.*CPU[a-z ]+[VER]',
|
298 |
-
'iPhone' => 'iPhone.*CPU[a-z ]+[VER]',
|
299 |
-
'iPod' => 'iPod.*CPU[a-z ]+[VER]',
|
300 |
-
//'BlackBerry' => array('BlackBerry[VER]', 'BlackBerry [VER];'),
|
301 |
-
'Kindle' => 'Kindle/[VER]',
|
302 |
-
|
303 |
-
// Browser
|
304 |
-
'Chrome' => [ 'Chrome/[VER]', 'CriOS/[VER]', 'CrMo/[VER]' ],
|
305 |
-
'Coast' => [ 'Coast/[VER]' ],
|
306 |
-
'Dolfin' => 'Dolfin/[VER]',
|
307 |
-
// @reference: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox
|
308 |
-
'Firefox' => [ 'Firefox/[VER]', 'FxiOS/[VER]' ],
|
309 |
-
'Fennec' => 'Fennec/[VER]',
|
310 |
-
// http://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx
|
311 |
-
// https://msdn.microsoft.com/en-us/library/ie/hh869301(v=vs.85).aspx
|
312 |
-
'Edge' => 'Edge/[VER]',
|
313 |
-
'IE' => [ 'IEMobile/[VER];', 'IEMobile [VER]', 'MSIE [VER];', 'Trident/[0-9.]+;.*rv:[VER]' ],
|
314 |
-
// http://en.wikipedia.org/wiki/NetFront
|
315 |
-
'NetFront' => 'NetFront/[VER]',
|
316 |
-
'NokiaBrowser' => 'NokiaBrowser/[VER]',
|
317 |
-
'Opera' => [ ' OPR/[VER]', 'Opera Mini/[VER]', 'Version/[VER]' ],
|
318 |
-
'Opera Mini' => 'Opera Mini/[VER]',
|
319 |
-
'Opera Mobi' => 'Version/[VER]',
|
320 |
-
'UC Browser' => 'UC Browser[VER]',
|
321 |
-
'MQQBrowser' => 'MQQBrowser/[VER]',
|
322 |
-
'MicroMessenger' => 'MicroMessenger/[VER]',
|
323 |
-
'baiduboxapp' => 'baiduboxapp/[VER]',
|
324 |
-
'baidubrowser' => 'baidubrowser/[VER]',
|
325 |
-
'SamsungBrowser' => 'SamsungBrowser/[VER]',
|
326 |
-
'Iron' => 'Iron/[VER]',
|
327 |
-
// @note: Safari 7534.48.3 is actually Version 5.1.
|
328 |
-
// @note: On BlackBerry the Version is overwriten by the OS.
|
329 |
-
'Safari' => [ 'Version/[VER]', 'Safari/[VER]' ],
|
330 |
-
'Skyfire' => 'Skyfire/[VER]',
|
331 |
-
'Tizen' => 'Tizen/[VER]',
|
332 |
-
'Webkit' => 'webkit[ /][VER]',
|
333 |
-
'PaleMoon' => 'PaleMoon/[VER]',
|
334 |
-
|
335 |
-
// Engine
|
336 |
-
'Gecko' => 'Gecko/[VER]',
|
337 |
-
'Trident' => 'Trident/[VER]',
|
338 |
-
'Presto' => 'Presto/[VER]',
|
339 |
-
'Goanna' => 'Goanna/[VER]',
|
340 |
-
|
341 |
-
// OS
|
342 |
-
'iOS' => ' \bi?OS\b [VER][ ;]{1}',
|
343 |
-
'Android' => 'Android [VER]',
|
344 |
-
'BlackBerry' => [ 'BlackBerry[\w]+/[VER]', 'BlackBerry.*Version/[VER]', 'Version/[VER]' ],
|
345 |
-
'BREW' => 'BREW [VER]',
|
346 |
-
'Java' => 'Java/[VER]',
|
347 |
-
// @reference: http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/08/29/introducing-the-ie9-on-windows-phone-mango-user-agent-string.aspx
|
348 |
-
// @reference: http://en.wikipedia.org/wiki/Windows_NT#Releases
|
349 |
-
'Windows Phone OS' => [ 'Windows Phone OS [VER]', 'Windows Phone [VER]' ],
|
350 |
-
'Windows Phone' => 'Windows Phone [VER]',
|
351 |
-
'Windows CE' => 'Windows CE/[VER]',
|
352 |
-
// http://social.msdn.microsoft.com/Forums/en-US/windowsdeveloperpreviewgeneral/thread/6be392da-4d2f-41b4-8354-8dcee20c85cd
|
353 |
-
'Windows NT' => 'Windows NT [VER]',
|
354 |
-
'Symbian' => [ 'SymbianOS/[VER]', 'Symbian/[VER]' ],
|
355 |
-
'webOS' => [ 'webOS/[VER]', 'hpwOS/[VER];' ],
|
356 |
-
];
|
357 |
-
/**
|
358 |
-
* A cache for resolved matches
|
359 |
-
* @var array
|
360 |
-
*/
|
361 |
-
protected $cache = [];
|
362 |
-
/**
|
363 |
-
* The User-Agent HTTP header is stored in here.
|
364 |
-
* @var string
|
365 |
-
*/
|
366 |
-
protected $userAgent = null;
|
367 |
-
/**
|
368 |
-
* HTTP headers in the PHP-flavor. So HTTP_USER_AGENT and SERVER_SOFTWARE.
|
369 |
-
* @var array
|
370 |
-
*/
|
371 |
-
protected $httpHeaders = [];
|
372 |
-
/**
|
373 |
-
* CloudFront headers. E.g. CloudFront-Is-Desktop-Viewer, CloudFront-Is-Mobile-Viewer & CloudFront-Is-Tablet-Viewer.
|
374 |
-
* @var array
|
375 |
-
*/
|
376 |
-
protected $cloudfrontHeaders = [];
|
377 |
-
/**
|
378 |
-
* The matching Regex.
|
379 |
-
* This is good for debug.
|
380 |
-
* @var string
|
381 |
-
*/
|
382 |
-
protected $matchingRegex = null;
|
383 |
-
/**
|
384 |
-
* The matches extracted from the regex expression.
|
385 |
-
* This is good for debug.
|
386 |
-
* @var string
|
387 |
-
*/
|
388 |
-
protected $matchesArray = null;
|
389 |
-
/**
|
390 |
-
* The detection type, using self::DETECTION_TYPE_MOBILE or self::DETECTION_TYPE_EXTENDED.
|
391 |
-
*
|
392 |
-
* @deprecated since version 2.6.9
|
393 |
-
*
|
394 |
-
* @var string
|
395 |
-
*/
|
396 |
-
protected $detectionType = self::DETECTION_TYPE_MOBILE;
|
397 |
-
|
398 |
-
/**
|
399 |
-
* Construct an instance of this class.
|
400 |
-
*
|
401 |
-
* @param array $headers Specify the headers as injection. Should be PHP _SERVER flavored.
|
402 |
-
* If left empty, will use the global _SERVER['HTTP_*'] vars instead.
|
403 |
-
* @param string $userAgent Inject the User-Agent header. If null, will use HTTP_USER_AGENT
|
404 |
-
* from the $headers array instead.
|
405 |
-
*/
|
406 |
-
public function __construct(
|
407 |
-
array $headers = null,
|
408 |
-
$userAgent = null
|
409 |
-
) {
|
410 |
-
$this->set_http_headers( $headers );
|
411 |
-
$this->set_user_agent( $userAgent );
|
412 |
-
}
|
413 |
-
|
414 |
-
/**
|
415 |
-
* Get the current script version.
|
416 |
-
* This is useful for the demo.php file,
|
417 |
-
* so people can check on what version they are testing
|
418 |
-
* for mobile devices.
|
419 |
-
*
|
420 |
-
* @return string The version number in semantic version format.
|
421 |
-
*/
|
422 |
-
public static function get_script_version() {
|
423 |
-
return self::$VERSION;
|
424 |
-
}
|
425 |
-
|
426 |
-
/**
|
427 |
-
* Retrieve the list of known phone devices.
|
428 |
-
*
|
429 |
-
* @return array List of phone devices.
|
430 |
-
*/
|
431 |
-
public static function get_phone_devices() {
|
432 |
-
return self::$phoneDevices;
|
433 |
-
}
|
434 |
-
|
435 |
-
/**
|
436 |
-
* Alias for get_browsers() method.
|
437 |
-
*
|
438 |
-
* @return array List of user agents.
|
439 |
-
*/
|
440 |
-
public static function get_user_agents() {
|
441 |
-
return self::get_browsers();
|
442 |
-
}
|
443 |
-
|
444 |
-
/**
|
445 |
-
* Retrieve the list of known browsers. Specifically, the user agents.
|
446 |
-
*
|
447 |
-
* @return array List of browsers / user agents.
|
448 |
-
*/
|
449 |
-
public static function get_browsers() {
|
450 |
-
return self::$browsers;
|
451 |
-
}
|
452 |
-
|
453 |
-
/**
|
454 |
-
* Retrieve the list of known utilities.
|
455 |
-
*
|
456 |
-
* @return array List of utilities.
|
457 |
-
*/
|
458 |
-
public static function get_utilities() {
|
459 |
-
return self::$utilities;
|
460 |
-
}
|
461 |
-
|
462 |
-
/**
|
463 |
-
* Retrieve the list of mobile operating systems.
|
464 |
-
*
|
465 |
-
* @return array The list of mobile operating systems.
|
466 |
-
*/
|
467 |
-
public static function get_operating_systems() {
|
468 |
-
return self::$operatingSystems;
|
469 |
-
}
|
470 |
-
|
471 |
-
/**
|
472 |
-
* Retrieves the HTTP headers.
|
473 |
-
*
|
474 |
-
* @return array
|
475 |
-
*/
|
476 |
-
public function get_http_headers() {
|
477 |
-
return $this->httpHeaders;
|
478 |
-
}
|
479 |
-
|
480 |
-
/**
|
481 |
-
* Set the HTTP Headers. Must be PHP-flavored. This method will reset existing headers.
|
482 |
-
*
|
483 |
-
* @param array $httpHeaders The headers to set. If null, then using PHP's _SERVER to extract
|
484 |
-
* the headers. The default null is left for backwards compatibility.
|
485 |
-
*/
|
486 |
-
public function set_http_headers( $httpHeaders = null ) {
|
487 |
-
// use global _SERVER if $httpHeaders aren't defined
|
488 |
-
if ( ! is_array( $httpHeaders ) || ! count( $httpHeaders ) ) {
|
489 |
-
$httpHeaders = $_SERVER;
|
490 |
-
}
|
491 |
-
|
492 |
-
// clear existing headers
|
493 |
-
$this->httpHeaders = [];
|
494 |
-
|
495 |
-
// Only save HTTP headers. In PHP land, that means only _SERVER vars that
|
496 |
-
// start with HTTP_.
|
497 |
-
foreach ( $httpHeaders as $key => $value ) {
|
498 |
-
if ( substr( $key, 0, 5 ) === 'HTTP_' ) {
|
499 |
-
$this->httpHeaders[ $key ] = $value;
|
500 |
-
}
|
501 |
-
}
|
502 |
-
|
503 |
-
// In case we're dealing with CloudFront, we need to know.
|
504 |
-
$this->set_cf_headers( $httpHeaders );
|
505 |
-
}
|
506 |
-
|
507 |
-
/**
|
508 |
-
* Retrieves a particular header. If it doesn't exist, no exception/error is caused.
|
509 |
-
* Simply null is returned.
|
510 |
-
*
|
511 |
-
* @param string $header The name of the header to retrieve. Can be HTTP compliant such as
|
512 |
-
* "User-Agent" or "X-Device-User-Agent" or can be php-esque with the
|
513 |
-
* all-caps, HTTP_ prefixed, underscore seperated awesomeness.
|
514 |
-
*
|
515 |
-
* @return string|null The value of the header.
|
516 |
-
*/
|
517 |
-
public function get_http_header( $header ) {
|
518 |
-
// are we using PHP-flavored headers?
|
519 |
-
if ( strpos( $header, '_' ) === false ) {
|
520 |
-
$header = str_replace( '-', '_', $header );
|
521 |
-
$header = strtoupper( $header );
|
522 |
-
}
|
523 |
-
|
524 |
-
// test the alternate, too
|
525 |
-
$altHeader = 'HTTP_' . $header;
|
526 |
-
|
527 |
-
//Test both the regular and the HTTP_ prefix
|
528 |
-
if ( isset( $this->httpHeaders[ $header ] ) ) {
|
529 |
-
return $this->httpHeaders[ $header ];
|
530 |
-
} elseif ( isset( $this->httpHeaders[ $altHeader ] ) ) {
|
531 |
-
return $this->httpHeaders[ $altHeader ];
|
532 |
-
}
|
533 |
-
|
534 |
-
return null;
|
535 |
-
}
|
536 |
-
|
537 |
-
/**
|
538 |
-
* Get all possible HTTP headers that
|
539 |
-
* can contain the User-Agent string.
|
540 |
-
*
|
541 |
-
* @return array List of HTTP headers.
|
542 |
-
*/
|
543 |
-
public function get_ua_http_headers() {
|
544 |
-
return self::$uaHttpHeaders;
|
545 |
-
}
|
546 |
-
|
547 |
-
/**
|
548 |
-
* Set CloudFront headers
|
549 |
-
* http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html#header-caching-web-device
|
550 |
-
*
|
551 |
-
* @param array $cfHeaders List of HTTP headers
|
552 |
-
*
|
553 |
-
* @return boolean If there were CloudFront headers to be set
|
554 |
-
*/
|
555 |
-
public function set_cf_headers( $cfHeaders = null ) {
|
556 |
-
// use global _SERVER if $cfHeaders aren't defined
|
557 |
-
if ( ! is_array( $cfHeaders ) || ! count( $cfHeaders ) ) {
|
558 |
-
$cfHeaders = $_SERVER;
|
559 |
-
}
|
560 |
-
|
561 |
-
// clear existing headers
|
562 |
-
$this->cloudfrontHeaders = [];
|
563 |
-
|
564 |
-
// Only save CLOUDFRONT headers. In PHP land, that means only _SERVER vars that
|
565 |
-
// start with cloudfront-.
|
566 |
-
$response = false;
|
567 |
-
foreach ( $cfHeaders as $key => $value ) {
|
568 |
-
if ( substr( strtolower( $key ), 0, 16 ) === 'http_cloudfront_' ) {
|
569 |
-
$this->cloudfrontHeaders[ strtoupper( $key ) ] = $value;
|
570 |
-
$response = true;
|
571 |
-
}
|
572 |
-
}
|
573 |
-
|
574 |
-
return $response;
|
575 |
-
}
|
576 |
-
|
577 |
-
public function get_matching_regex() {
|
578 |
-
return $this->matchingRegex;
|
579 |
-
}
|
580 |
-
|
581 |
-
public function get_matches_array() {
|
582 |
-
return $this->matchesArray;
|
583 |
-
}
|
584 |
-
|
585 |
-
/**
|
586 |
-
* Magic overloading method.
|
587 |
-
*
|
588 |
-
* @method boolean is[...]()
|
589 |
-
* @param string $name
|
590 |
-
* @param array $arguments
|
591 |
-
*
|
592 |
-
* @return mixed
|
593 |
-
* @throws BadMethodCallException when the method doesn't exist and doesn't start with 'is'
|
594 |
-
*/
|
595 |
-
public function __call( $name, $arguments ) {
|
596 |
-
// make sure the name starts with 'is', otherwise
|
597 |
-
if ( substr( $name, 0, 2 ) !== 'is' ) {
|
598 |
-
throw new BadMethodCallException( "No such method exists: $name" );
|
599 |
-
}
|
600 |
-
|
601 |
-
$this->set_detection_type( self::DETECTION_TYPE_MOBILE );
|
602 |
-
|
603 |
-
$key = substr( $name, 2 );
|
604 |
-
|
605 |
-
return $this->match_ua_against_key( $key );
|
606 |
-
}
|
607 |
-
|
608 |
-
/**
|
609 |
-
* Set the detection type. Must be one of self::DETECTION_TYPE_MOBILE or
|
610 |
-
* self::DETECTION_TYPE_EXTENDED. Otherwise, nothing is set.
|
611 |
-
*
|
612 |
-
* @param string $type The type. Must be a self::DETECTION_TYPE_* constant. The default
|
613 |
-
* parameter is null which will default to self::DETECTION_TYPE_MOBILE.
|
614 |
-
*
|
615 |
-
* @deprecated since version 2.6.9
|
616 |
-
*
|
617 |
-
*/
|
618 |
-
public function set_detection_type( $type = null ) {
|
619 |
-
if ( null === $type ) {
|
620 |
-
$type = self::DETECTION_TYPE_MOBILE;
|
621 |
-
}
|
622 |
-
|
623 |
-
if ( self::DETECTION_TYPE_MOBILE !== $type && self::DETECTION_TYPE_EXTENDED !== $type ) {
|
624 |
-
return;
|
625 |
-
}
|
626 |
-
|
627 |
-
$this->detectionType = $type;
|
628 |
-
}
|
629 |
-
|
630 |
-
/**
|
631 |
-
* Search for a certain key in the rules array.
|
632 |
-
* If the key is found then try to match the corresponding
|
633 |
-
* regex against the User-Agent.
|
634 |
-
*
|
635 |
-
* @param string $key
|
636 |
-
*
|
637 |
-
* @return boolean
|
638 |
-
*/
|
639 |
-
protected function match_ua_against_key( $key ) {
|
640 |
-
// Make the keys lowercase so we can match: isIphone(), isiPhone(), isiphone(), etc.
|
641 |
-
$key = strtolower( $key );
|
642 |
-
if ( false === isset( $this->cache[ $key ] ) ) {
|
643 |
-
|
644 |
-
// change the keys to lower case
|
645 |
-
$_rules = array_change_key_case( $this->get_rules() );
|
646 |
-
|
647 |
-
if ( false === empty( $_rules[ $key ] ) ) {
|
648 |
-
$this->cache[ $key ] = $this->match( $_rules[ $key ] );
|
649 |
-
}
|
650 |
-
|
651 |
-
if ( false === isset( $this->cache[ $key ] ) ) {
|
652 |
-
$this->cache[ $key ] = false;
|
653 |
-
}
|
654 |
-
}
|
655 |
-
|
656 |
-
return $this->cache[ $key ];
|
657 |
-
}
|
658 |
-
|
659 |
-
/**
|
660 |
-
* Retrieve the current set of rules.
|
661 |
-
*
|
662 |
-
* @return array
|
663 |
-
* @deprecated since version 2.6.9
|
664 |
-
*
|
665 |
-
*/
|
666 |
-
public function get_rules() {
|
667 |
-
if ( self::DETECTION_TYPE_EXTENDED === $this->detectionType ) {
|
668 |
-
return self::get_mobile_detection_rules_extended();
|
669 |
-
} else {
|
670 |
-
return self::get_mobile_detection_rules();
|
671 |
-
}
|
672 |
-
}
|
673 |
-
|
674 |
-
/**
|
675 |
-
* Method gets the mobile detection rules + utilities.
|
676 |
-
* The reason this is separate is because utilities rules
|
677 |
-
* don't necessary imply mobile. This method is used inside
|
678 |
-
* the new $detect->is('stuff') method.
|
679 |
-
*
|
680 |
-
* @return array All the rules + extended.
|
681 |
-
* @deprecated since version 2.6.9
|
682 |
-
*
|
683 |
-
*/
|
684 |
-
public function get_mobile_detection_rules_extended() {
|
685 |
-
static $rules;
|
686 |
-
|
687 |
-
if ( ! $rules ) {
|
688 |
-
// Merge all rules together.
|
689 |
-
$rules = array_merge(
|
690 |
-
self::$phoneDevices,
|
691 |
-
self::$tabletDevices,
|
692 |
-
self::$operatingSystems,
|
693 |
-
self::$browsers,
|
694 |
-
self::$utilities
|
695 |
-
);
|
696 |
-
}
|
697 |
-
|
698 |
-
return $rules;
|
699 |
-
}
|
700 |
-
|
701 |
-
/**
|
702 |
-
* Method gets the mobile detection rules. This method is used for the magic methods $detect->is*().
|
703 |
-
*
|
704 |
-
* @return array All the rules (but not extended).
|
705 |
-
* @deprecated since version 2.6.9
|
706 |
-
*
|
707 |
-
*/
|
708 |
-
public static function get_mobile_detection_rules() {
|
709 |
-
static $rules;
|
710 |
-
|
711 |
-
if ( ! $rules ) {
|
712 |
-
$rules = array_merge(
|
713 |
-
self::$phoneDevices,
|
714 |
-
//self::$tabletDevices,
|
715 |
-
self::$operatingSystems,
|
716 |
-
self::$browsers
|
717 |
-
);
|
718 |
-
}
|
719 |
-
|
720 |
-
return $rules;
|
721 |
-
|
722 |
-
}
|
723 |
-
|
724 |
-
/**
|
725 |
-
* Some detection rules are relative (not standard),
|
726 |
-
* because of the diversity of devices, vendors and
|
727 |
-
* their conventions in representing the User-Agent or
|
728 |
-
* the HTTP headers.
|
729 |
-
*
|
730 |
-
* This method will be used to check custom regexes against
|
731 |
-
* the User-Agent string.
|
732 |
-
*
|
733 |
-
* @param $regex
|
734 |
-
* @param string $userAgent
|
735 |
-
*
|
736 |
-
* @return bool
|
737 |
-
*
|
738 |
-
* @todo: search in the HTTP headers too.
|
739 |
-
*/
|
740 |
-
public function match( $regex, $userAgent = null ) {
|
741 |
-
$match = (bool) preg_match( sprintf( '#%s#is', $regex ), ( false === empty( $userAgent ) ? $userAgent : $this->userAgent ), $matches );
|
742 |
-
// If positive match is found, store the results for debug.
|
743 |
-
if ( $match ) {
|
744 |
-
$this->matchingRegex = $regex;
|
745 |
-
$this->matchesArray = $matches;
|
746 |
-
}
|
747 |
-
|
748 |
-
return $match;
|
749 |
-
}
|
750 |
-
|
751 |
-
/**
|
752 |
-
* Check if the device is mobile.
|
753 |
-
* Returns true if any type of mobile device detected, including special ones
|
754 |
-
*
|
755 |
-
* @param null $userAgent deprecated
|
756 |
-
* @param null $httpHeaders deprecated
|
757 |
-
*
|
758 |
-
* @return bool
|
759 |
-
*/
|
760 |
-
public function is_mobile( $userAgent = null, $httpHeaders = null ) {
|
761 |
-
|
762 |
-
if ( $httpHeaders ) {
|
763 |
-
$this->set_http_headers( $httpHeaders );
|
764 |
-
}
|
765 |
-
|
766 |
-
if ( $userAgent ) {
|
767 |
-
$this->set_user_agent( $userAgent );
|
768 |
-
}
|
769 |
-
|
770 |
-
// Check specifically for cloudfront headers if the useragent === 'Amazon CloudFront'
|
771 |
-
if ( 'Amazon CloudFront' === $this->get_user_agent() ) {
|
772 |
-
$cfHeaders = $this->get_cf_headers();
|
773 |
-
if ( array_key_exists( 'HTTP_CLOUDFRONT_IS_MOBILE_VIEWER', $cfHeaders, true ) && 'true' === $cfHeaders['HTTP_CLOUDFRONT_IS_MOBILE_VIEWER'] ) {
|
774 |
-
return true;
|
775 |
-
}
|
776 |
-
}
|
777 |
-
|
778 |
-
$this->set_detection_type( self::DETECTION_TYPE_MOBILE );
|
779 |
-
|
780 |
-
if ( $this->check_http_headers_for_mobile() ) {
|
781 |
-
return true;
|
782 |
-
} else {
|
783 |
-
return $this->match_detection_rules_against_ua();
|
784 |
-
}
|
785 |
-
|
786 |
-
}
|
787 |
-
|
788 |
-
/**
|
789 |
-
* Retrieve the User-Agent.
|
790 |
-
*
|
791 |
-
* @return string|null The user agent if it's set.
|
792 |
-
*/
|
793 |
-
public function get_user_agent() {
|
794 |
-
return $this->userAgent;
|
795 |
-
}
|
796 |
-
|
797 |
-
/**
|
798 |
-
* Set the User-Agent to be used.
|
799 |
-
*
|
800 |
-
* @param string $userAgent The user agent string to set.
|
801 |
-
*
|
802 |
-
* @return string|null
|
803 |
-
*/
|
804 |
-
public function set_user_agent( $userAgent = null ) {
|
805 |
-
// Invalidate cache due to #375
|
806 |
-
$this->cache = [];
|
807 |
-
|
808 |
-
if ( empty( $userAgent ) ) {
|
809 |
-
$this->userAgent = $userAgent;
|
810 |
-
|
811 |
-
return $this->userAgent;
|
812 |
-
} else {
|
813 |
-
$this->userAgent = null;
|
814 |
-
foreach ( $this->get_ua_http_headers() as $altHeader ) {
|
815 |
-
if ( false === empty( $this->httpHeaders[ $altHeader ] ) ) { // @todo: should use get_http_header(), but it would be slow. (Serban)
|
816 |
-
$this->userAgent .= $this->httpHeaders[ $altHeader ] . ' ';
|
817 |
-
}
|
818 |
-
}
|
819 |
-
|
820 |
-
if ( ! empty( $this->userAgent ) ) {
|
821 |
-
$this->userAgent = trim( $this->userAgent );
|
822 |
-
return $this->userAgent;
|
823 |
-
}
|
824 |
-
}
|
825 |
-
|
826 |
-
if ( count( $this->get_cf_headers() ) > 0 ) {
|
827 |
-
$this->userAgent = 'Amazon CloudFront';
|
828 |
-
|
829 |
-
return $this->userAgent;
|
830 |
-
}
|
831 |
-
|
832 |
-
return null;
|
833 |
-
}
|
834 |
-
|
835 |
-
/**
|
836 |
-
* Retrieves the cloudfront headers.
|
837 |
-
*
|
838 |
-
* @return array
|
839 |
-
*/
|
840 |
-
public function get_cf_headers() {
|
841 |
-
return $this->cloudfrontHeaders;
|
842 |
-
}
|
843 |
-
|
844 |
-
/**
|
845 |
-
* Check the HTTP headers for signs of mobile.
|
846 |
-
* This is the fastest mobile check possible; it's used
|
847 |
-
* inside is_mobile() method.
|
848 |
-
*
|
849 |
-
* @return bool
|
850 |
-
*/
|
851 |
-
public function check_http_headers_for_mobile() {
|
852 |
-
|
853 |
-
foreach ( $this->get_mobile_headers() as $mobileHeader => $matchType ) {
|
854 |
-
if ( isset( $this->httpHeaders[ $mobileHeader ] ) ) {
|
855 |
-
if ( is_array( $matchType['matches'] ) ) {
|
856 |
-
foreach ( $matchType['matches'] as $_match ) {
|
857 |
-
if ( strpos( $this->httpHeaders[ $mobileHeader ], $_match ) !== false ) {
|
858 |
-
return true;
|
859 |
-
}
|
860 |
-
}
|
861 |
-
|
862 |
-
return false;
|
863 |
-
} else {
|
864 |
-
return true;
|
865 |
-
}
|
866 |
-
}
|
867 |
-
}
|
868 |
-
|
869 |
-
return false;
|
870 |
-
|
871 |
-
}
|
872 |
-
|
873 |
-
public function get_mobile_headers() {
|
874 |
-
return self::$mobileHeaders;
|
875 |
-
}
|
876 |
-
|
877 |
-
/**
|
878 |
-
* Find a detection rule that matches the current User-agent.
|
879 |
-
*
|
880 |
-
* @param null $userAgent deprecated
|
881 |
-
*
|
882 |
-
* @return boolean
|
883 |
-
*/
|
884 |
-
protected function match_detection_rules_against_ua( $userAgent = null ) {
|
885 |
-
// Begin general search.
|
886 |
-
foreach ( $this->get_rules() as $_regex ) {
|
887 |
-
if ( empty( $_regex ) ) {
|
888 |
-
continue;
|
889 |
-
}
|
890 |
-
|
891 |
-
if ( $this->match( $_regex, $userAgent ) ) {
|
892 |
-
return true;
|
893 |
-
}
|
894 |
-
}
|
895 |
-
|
896 |
-
return false;
|
897 |
-
}
|
898 |
-
|
899 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inc/class-previous-urls.php
ADDED
@@ -0,0 +1,124 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Mediavine\Grow;
|
3 |
+
|
4 |
+
use Mediavine\Grow\Settings;
|
5 |
+
|
6 |
+
class Previous_URLs {
|
7 |
+
|
8 |
+
/** @var array Settings for the plugin that options are pulled from */
|
9 |
+
private $settings;
|
10 |
+
|
11 |
+
/** @var int $post_id ID of the post we are getting previous URLs for */
|
12 |
+
private $post_id;
|
13 |
+
|
14 |
+
/**
|
15 |
+
* @param int $post_id Post ID to get previous URLS for
|
16 |
+
* @param array $settings Settings for the plugin
|
17 |
+
*/
|
18 |
+
public function __construct( int $post_id, array $settings ) {
|
19 |
+
$this->post_id = $post_id;
|
20 |
+
$this->settings = $settings;
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Get all forms of previous urls for a post
|
25 |
+
*
|
26 |
+
* @return array|mixed
|
27 |
+
*/
|
28 |
+
public function get_previous_urls() {
|
29 |
+
$previous_domain_structure_urls = $this->get_previous_domain( $this->get_previous_permalink_structure() );
|
30 |
+
$previous_post_urls = $this->get_previous_post_urls();
|
31 |
+
|
32 |
+
$previous_urls = array_merge( $previous_domain_structure_urls, $previous_post_urls );
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Filter the previous URLs for the post before returning.
|
36 |
+
* @param array $previous_urls
|
37 |
+
* @param int $post_id
|
38 |
+
*/
|
39 |
+
$previous_urls = apply_filters( 'dpsp_get_post_previous_urls', $previous_urls, $this->post_id );
|
40 |
+
|
41 |
+
// Exclude the post's current URL if it's found in the post previous URLs array
|
42 |
+
$current_url = get_permalink( $this->post_id );
|
43 |
+
|
44 |
+
if ( in_array( $current_url, $previous_urls, true ) ) {
|
45 |
+
unset( $previous_urls[ array_search( $current_url, $previous_urls, true ) ] );
|
46 |
+
$previous_urls = array_values( $previous_urls );
|
47 |
+
}
|
48 |
+
|
49 |
+
// Update the post previous URLs
|
50 |
+
update_post_meta( $this->post_id, 'dpsp_post_previous_urls', $previous_urls );
|
51 |
+
|
52 |
+
return $previous_urls;
|
53 |
+
}
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Get URLs for the post based on the site's previous permalink structure, this is from global site settings
|
57 |
+
*
|
58 |
+
* @param array $previous_urls Previous URLs
|
59 |
+
*
|
60 |
+
* @return array
|
61 |
+
*/
|
62 |
+
private function get_previous_permalink_structure( array $previous_urls = [] ) : array {
|
63 |
+
if ( ! empty( $this->settings['previous_permalink_share_counts'] ) ) {
|
64 |
+
// Get the predefined permalink structure
|
65 |
+
$permalink = ( ! empty( $this->settings['previous_permalink_structure'] ) ? $this->settings['previous_permalink_structure'] : '' );
|
66 |
+
|
67 |
+
// Get the custom permalink structure if is set
|
68 |
+
if ( ! empty( $this->settings['previous_permalink_structure'] ) && 'custom' === $this->settings['previous_permalink_structure'] ) {
|
69 |
+
$permalink = ( ! empty( $this->settings['previous_permalink_structure_custom'] ) ? $this->settings['previous_permalink_structure_custom'] : '' );
|
70 |
+
}
|
71 |
+
|
72 |
+
// Get the previous permalink and if it exists add it to the list
|
73 |
+
$post_previous_permalink = dpsp_get_post_permalink( $this->post_id, $permalink );
|
74 |
+
|
75 |
+
if ( false !== $post_previous_permalink ) {
|
76 |
+
$previous_urls[] = $post_previous_permalink;
|
77 |
+
}
|
78 |
+
}
|
79 |
+
|
80 |
+
return $previous_urls;
|
81 |
+
}
|
82 |
+
|
83 |
+
/**
|
84 |
+
* Get the post URL using a previous domain, this is from global site settings
|
85 |
+
*
|
86 |
+
* @param array $previous_urls
|
87 |
+
*
|
88 |
+
* @return array
|
89 |
+
*/
|
90 |
+
private function get_previous_domain( array $previous_urls = [] ) : array {
|
91 |
+
if ( ! empty( $this->settings['previous_domain_share_counts'] ) ) {
|
92 |
+
// Get site URL
|
93 |
+
$site_url = get_site_url();
|
94 |
+
|
95 |
+
// Get current base domain
|
96 |
+
$base_domain = preg_replace( '#^www\.(.+\.)#i', '$1', parse_url( $site_url, PHP_URL_HOST ) );
|
97 |
+
|
98 |
+
// Go through each URL and change the domain
|
99 |
+
foreach ( $previous_urls as $previous_url ) {
|
100 |
+
if ( empty( $this->settings['previous_base_domain'] ) ) {
|
101 |
+
continue;
|
102 |
+
}
|
103 |
+
$previous_urls[] = str_replace( $base_domain, $this->settings['previous_base_domain'], $previous_url );
|
104 |
+
}
|
105 |
+
|
106 |
+
// If there aren't any previous permalinks, in the case of a domain change,
|
107 |
+
// the current post's URL must be taken into account
|
108 |
+
if ( empty( $previous_urls ) ) {
|
109 |
+
$previous_urls[] = str_replace( $base_domain, $this->settings['previous_base_domain'], get_permalink( $this->post_id ) );
|
110 |
+
}
|
111 |
+
}
|
112 |
+
return $previous_urls;
|
113 |
+
}
|
114 |
+
|
115 |
+
/**
|
116 |
+
* Get the manually set previous URLs for a post from the post meta, this is for an individual post
|
117 |
+
*
|
118 |
+
* @return array
|
119 |
+
*/
|
120 |
+
private function get_previous_post_urls() : array {
|
121 |
+
$post_previous_urls = dpsp_maybe_unserialize( get_post_meta( $this->post_id, 'dpsp_post_single_previous_urls', true ) );
|
122 |
+
return ( ! empty( $post_previous_urls ) ? $post_previous_urls : [] );
|
123 |
+
}
|
124 |
+
}
|
inc/class-settings.php
CHANGED
@@ -27,6 +27,11 @@ class Settings extends \Social_Pug {
|
|
27 |
* Set up hooks.
|
28 |
*/
|
29 |
public function init() {
|
|
|
|
|
|
|
|
|
|
|
30 |
}
|
31 |
|
32 |
/**
|
@@ -76,4 +81,18 @@ class Settings extends \Social_Pug {
|
|
76 |
$setting = filter_input( INPUT_GET, $slug );
|
77 |
return ! empty( $setting ) ? $setting : $this->no_setting_flag;
|
78 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
}
|
27 |
* Set up hooks.
|
28 |
*/
|
29 |
public function init() {
|
30 |
+
// @TODO: Remove kludge for getting rid of old Grow network name
|
31 |
+
$tools = [ 'sticky_bar', 'sidebar', 'mobile', 'follow_widget', 'content', 'pop_up' ];
|
32 |
+
foreach ( $tools as $tool_slug ) {
|
33 |
+
add_filter( 'mv_grow_setting_dpsp_location_' . $tool_slug, [ $this, 'covert_grow_me_label' ] );
|
34 |
+
}
|
35 |
}
|
36 |
|
37 |
/**
|
81 |
$setting = filter_input( INPUT_GET, $slug );
|
82 |
return ! empty( $setting ) ? $setting : $this->no_setting_flag;
|
83 |
}
|
84 |
+
|
85 |
+
/**
|
86 |
+
* Convert an old Grow.me label to a new Grow label when reading from settings
|
87 |
+
* @param mixed $settings Ideally an Array of settings for a location
|
88 |
+
* @TODO: Remove this because it's kludgey
|
89 |
+
* @return mixed
|
90 |
+
*/
|
91 |
+
public function covert_grow_me_label( $settings ) {
|
92 |
+
$grow_label = $settings['networks']['grow']['label'] ?? false;
|
93 |
+
if ( 'Grow.me' === $grow_label ) {
|
94 |
+
$settings['networks']['grow']['label'] = 'Grow';
|
95 |
+
}
|
96 |
+
return $settings;
|
97 |
+
}
|
98 |
}
|
inc/class-share-count-client.php
ADDED
@@ -0,0 +1,212 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Mediavine\Grow;
|
4 |
+
|
5 |
+
use Exception;
|
6 |
+
use InvalidArgumentException;
|
7 |
+
use Requests;
|
8 |
+
use Requests_Exception;
|
9 |
+
use UnexpectedValueException;
|
10 |
+
use WP_Error;
|
11 |
+
use WP_HTTP_Requests_Response;
|
12 |
+
|
13 |
+
/**
|
14 |
+
* API client for fetching and refreshing URL share counts.
|
15 |
+
*/
|
16 |
+
class Share_Count_Client {
|
17 |
+
|
18 |
+
private const CONSUMER = 'grow-social-pro';
|
19 |
+
|
20 |
+
private const API_BASE_URL = 'https://share-count-api.grow.me';
|
21 |
+
|
22 |
+
/** @var string */
|
23 |
+
private $license;
|
24 |
+
|
25 |
+
/** @var string */
|
26 |
+
private $site_url;
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Set up the client.
|
30 |
+
*
|
31 |
+
* @param string $site_url Full base URL of the site requesting share counts (e.g. https://www.example.com).
|
32 |
+
* @param string $license License key for Grow Pro Social.
|
33 |
+
*/
|
34 |
+
public function __construct( string $site_url, string $license ) {
|
35 |
+
$this->site_url = $site_url;
|
36 |
+
$this->license = $license;
|
37 |
+
}
|
38 |
+
|
39 |
+
/**
|
40 |
+
* Given a relative URL, get an absolute URL.
|
41 |
+
*
|
42 |
+
* @param string $url Relative API URL.
|
43 |
+
* @return string
|
44 |
+
*/
|
45 |
+
public function api_url( string $url ) : string {
|
46 |
+
$url = trim( $url, '/' );
|
47 |
+
return self::API_BASE_URL . '/' . $url;
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Perform an API request.
|
52 |
+
*
|
53 |
+
* @param string $method One of the Requests::* verb constants.
|
54 |
+
* @param string $url Relative API URL.
|
55 |
+
* @param array|null $body Body of the request.
|
56 |
+
* @param array $headers Custom headers to be sent with the request.
|
57 |
+
* @return WP_HTTP_Requests_Response
|
58 |
+
* @throws InvalidArgumentException If the HTTP method is unsupported.
|
59 |
+
* @throws Requests_Exception If an error is encountered during the HTTP request.
|
60 |
+
* @throws UnexpectedValueException If an error is encountered while reading the HTTP request response.
|
61 |
+
*/
|
62 |
+
private function api_request( string $method, string $url, ?array $body = null, array $headers = [] ) : WP_HTTP_Requests_Response {
|
63 |
+
$valid_methods = [ Requests::DELETE, Requests::HEAD, Requests::GET, Requests::PATCH, Requests::POST ];
|
64 |
+
if ( ! in_array( $method, $valid_methods, true ) ) {
|
65 |
+
// @codeCoverageIgnoreStart
|
66 |
+
throw new InvalidArgumentException( "Invalid HTTP request method: {$method}" );
|
67 |
+
// @codeCoverageIgnoreEnd
|
68 |
+
}
|
69 |
+
|
70 |
+
// This is a JSON API. We'll always communicate via JSON.
|
71 |
+
$headers['Content-Type'] = 'application/json; charset=utf-8';
|
72 |
+
|
73 |
+
$url = self::api_url( $url );
|
74 |
+
|
75 |
+
$request_args = [
|
76 |
+
'headers' => $headers,
|
77 |
+
'method' => $method,
|
78 |
+
];
|
79 |
+
if ( is_array( $body ) ) {
|
80 |
+
$encoded_body = json_encode( $body );
|
81 |
+
if ( false === $encoded_body ) {
|
82 |
+
// @codeCoverageIgnoreStart
|
83 |
+
throw new UnexpectedValueException( 'Failed to encode request body.' );
|
84 |
+
// @codeCoverageIgnoreEnd
|
85 |
+
}
|
86 |
+
$request_args['body'] = $encoded_body;
|
87 |
+
}
|
88 |
+
|
89 |
+
$response = wp_remote_request(
|
90 |
+
$url,
|
91 |
+
$request_args
|
92 |
+
);
|
93 |
+
if ( $response instanceof WP_Error ) {
|
94 |
+
throw new Requests_Exception(
|
95 |
+
$response->get_error_message(),
|
96 |
+
'wp_http.' . $response->get_error_code()
|
97 |
+
);
|
98 |
+
} elseif ( ! is_array( $response ) ) {
|
99 |
+
// @codeCoverageIgnoreStart
|
100 |
+
throw new UnexpectedValueException( 'Unexpected response type from API request.' );
|
101 |
+
// @codeCoverageIgnoreEnd
|
102 |
+
}
|
103 |
+
|
104 |
+
if ( ! array_key_exists( 'http_response', $response ) || ! ( $response['http_response'] instanceof WP_HTTP_Requests_Response ) ) {
|
105 |
+
// @codeCoverageIgnoreStart
|
106 |
+
throw new UnexpectedValueException( 'Unexpected HTTP response object type.' );
|
107 |
+
// @codeCoverageIgnoreEnd
|
108 |
+
}
|
109 |
+
|
110 |
+
// Create a copy of the response, so it can be modified without affecting the underlying objects/references.
|
111 |
+
$request_response_clone = clone $response['http_response']->get_response_object();
|
112 |
+
$response_array = $response['http_response']->to_array();
|
113 |
+
$response_object = new WP_HTTP_Requests_Response(
|
114 |
+
$request_response_clone,
|
115 |
+
$response_array['filename'] ?? ''
|
116 |
+
);
|
117 |
+
|
118 |
+
if ( is_string( $response_object->get_data() ) ) {
|
119 |
+
$decoded_data = json_decode( $response_object->get_data(), true );
|
120 |
+
if ( false !== $decoded_data ) {
|
121 |
+
$response_object->set_data( $decoded_data );
|
122 |
+
}
|
123 |
+
}
|
124 |
+
|
125 |
+
return $response_object;
|
126 |
+
}
|
127 |
+
|
128 |
+
/**
|
129 |
+
* Get share counts for a URL.
|
130 |
+
*
|
131 |
+
* @param Share_Count_URL[] $urls An array of URLs for which to retrieve counts.
|
132 |
+
* @param bool $combine Whether the API should combine results from all requested urls into a single result.
|
133 |
+
* @param bool $force Whether we should force-refresh the share counts or use cached values.
|
134 |
+
*
|
135 |
+
* @return Share_Count_Url_Counts[]|null
|
136 |
+
* @throws InvalidArgumentException If URL array does not contain exclusively Share_Count_URL.
|
137 |
+
*/
|
138 |
+
public function fetch_counts( array $urls, bool $combine = false, bool $force = false ) : ?array {
|
139 |
+
foreach ( $urls as $url ) {
|
140 |
+
if ( ! ( $url instanceof Share_Count_URL ) ) {
|
141 |
+
throw new InvalidArgumentException( 'URLs contains an invalid value.' );
|
142 |
+
}
|
143 |
+
}
|
144 |
+
|
145 |
+
try {
|
146 |
+
$response = $this->api_request(
|
147 |
+
Requests::POST,
|
148 |
+
'shares',
|
149 |
+
[
|
150 |
+
'combine' => $combine,
|
151 |
+
'consumer' => self::CONSUMER,
|
152 |
+
'force' => $force,
|
153 |
+
'license' => $this->license,
|
154 |
+
'site_url' => $this->site_url,
|
155 |
+
'urls' => $urls,
|
156 |
+
]
|
157 |
+
);
|
158 |
+
|
159 |
+
// Very basic check for a 2xx success status code.
|
160 |
+
if ( $response->get_status() < 200 || $response->get_status() > 299 ) {
|
161 |
+
return null;
|
162 |
+
}
|
163 |
+
|
164 |
+
$response_body = $response->get_data();
|
165 |
+
if ( ! is_array( $response_body ) ) {
|
166 |
+
return null;
|
167 |
+
}
|
168 |
+
|
169 |
+
$result = [];
|
170 |
+
foreach ( $response_body as $lookup_url => $totals ) {
|
171 |
+
$result[ $lookup_url ] = new Share_Count_Url_Counts( $totals );
|
172 |
+
}
|
173 |
+
} catch ( Exception $e ) {
|
174 |
+
return null;
|
175 |
+
}
|
176 |
+
|
177 |
+
return $result;
|
178 |
+
}
|
179 |
+
|
180 |
+
/**
|
181 |
+
* Force a refresh of share counts for a given URL.
|
182 |
+
*
|
183 |
+
* @param string $url URL to refresh updated share count totals.
|
184 |
+
*
|
185 |
+
* @return Share_Count_Url_Counts|null
|
186 |
+
*/
|
187 |
+
public function refresh_counts( string $url ) : ?Share_Count_Url_Counts {
|
188 |
+
try {
|
189 |
+
$response = $this->api_request(
|
190 |
+
Requests::POST,
|
191 |
+
'shares/refresh',
|
192 |
+
[
|
193 |
+
'consumer' => self::CONSUMER,
|
194 |
+
'license' => $this->license,
|
195 |
+
'site_url' => $this->site_url,
|
196 |
+
'url' => $url,
|
197 |
+
]
|
198 |
+
);
|
199 |
+
|
200 |
+
$response_body = $response->get_data();
|
201 |
+
if ( ! is_array( $response_body ) ) {
|
202 |
+
return null;
|
203 |
+
}
|
204 |
+
|
205 |
+
$result = new Share_Count_Url_Counts( $response_body[ $url ] ?? [] );
|
206 |
+
} catch ( Exception $e ) {
|
207 |
+
return null;
|
208 |
+
}
|
209 |
+
|
210 |
+
return $result;
|
211 |
+
}
|
212 |
+
}
|
inc/class-share-count-url-counts.php
ADDED
@@ -0,0 +1,186 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Mediavine\Grow;
|
4 |
+
|
5 |
+
use ArrayAccess;
|
6 |
+
use ArrayIterator;
|
7 |
+
use InvalidArgumentException;
|
8 |
+
use IteratorAggregate;
|
9 |
+
use RuntimeException;
|
10 |
+
use Serializable;
|
11 |
+
use Traversable;
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Data object for communicating individual Share Count URL service counts.
|
15 |
+
*/
|
16 |
+
class Share_Count_Url_Counts implements ArrayAccess, IteratorAggregate, Serializable {
|
17 |
+
|
18 |
+
/** The API may return keys with this suffix. */
|
19 |
+
private const API_SUFFIX = '_share_count';
|
20 |
+
|
21 |
+
/** @var int */
|
22 |
+
private $count_total;
|
23 |
+
|
24 |
+
/** @var array<string, int> */
|
25 |
+
private $network_counts = [
|
26 |
+
'facebook' => 0,
|
27 |
+
'pinterest' => 0,
|
28 |
+
'reddit' => 0,
|
29 |
+
'twitter' => 0,
|
30 |
+
];
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Set up the instance.
|
34 |
+
*
|
35 |
+
* @param array $counts An array containing individual site counts.
|
36 |
+
*/
|
37 |
+
public function __construct( array $counts ) {
|
38 |
+
$this->load_counts( $counts );
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Create a new instance with counts from another instance added to the current.
|
43 |
+
*
|
44 |
+
* @param Share_Count_Url_Counts $share_counts
|
45 |
+
*
|
46 |
+
* @return Share_Count_Url_Counts
|
47 |
+
*/
|
48 |
+
public function with_sum( Share_Count_Url_Counts $share_counts ) : Share_Count_Url_Counts {
|
49 |
+
$counts = $this->get_counts();
|
50 |
+
$additional_counts = $share_counts->get_counts();
|
51 |
+
|
52 |
+
foreach ( $counts as $network => &$network_count ) {
|
53 |
+
$add_total = $additional_counts[ $network ] ?? 0;
|
54 |
+
$network_count += $add_total;
|
55 |
+
}
|
56 |
+
|
57 |
+
return new Share_Count_Url_Counts( $counts );
|
58 |
+
}
|
59 |
+
|
60 |
+
/**
|
61 |
+
* Get all available share counts.
|
62 |
+
*
|
63 |
+
* @return array{facebook: int, pinterest: int, reddit: int, twitter: int}
|
64 |
+
*/
|
65 |
+
public function get_counts() : array {
|
66 |
+
return $this->network_counts;
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Get the total number of network shares API.
|
71 |
+
*
|
72 |
+
* @return int
|
73 |
+
*/
|
74 |
+
public function get_count_total() : int {
|
75 |
+
if ( null === $this->count_total ) {
|
76 |
+
$this->count_total = array_sum( $this->network_counts );
|
77 |
+
}
|
78 |
+
|
79 |
+
return $this->count_total;
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* Given an array of network counts, load them into the object state.
|
84 |
+
*
|
85 |
+
* @param array $counts Individual network counts.
|
86 |
+
*/
|
87 |
+
private function load_counts( array $counts ) : void {
|
88 |
+
foreach ( $this->network_counts as $network => $network_count_current ) {
|
89 |
+
$network_count = $counts[ $network ] ?? $counts[ $network . self::API_SUFFIX ] ?? null;
|
90 |
+
if ( null !== $network_count ) {
|
91 |
+
$this->set_count( $network, $network_count );
|
92 |
+
}
|
93 |
+
}
|
94 |
+
}
|
95 |
+
|
96 |
+
/**
|
97 |
+
* Whether an offset exists.
|
98 |
+
*
|
99 |
+
* @param mixed $offset An offset to check for.
|
100 |
+
* @return bool Returns true on success or false on failure.
|
101 |
+
*/
|
102 |
+
public function offsetExists( $offset ) {
|
103 |
+
return array_key_exists( $offset, $this->network_counts );
|
104 |
+
}
|
105 |
+
|
106 |
+
/**
|
107 |
+
* Returns the value at specified offset.
|
108 |
+
*
|
109 |
+
* @param mixed $offset The offset to retrieve.
|
110 |
+
* @return mixed Can return all value types.
|
111 |
+
*/
|
112 |
+
public function offsetGet( $offset ) {
|
113 |
+
return $this->network_counts[ $offset ] ?? null;
|
114 |
+
}
|
115 |
+
|
116 |
+
/**
|
117 |
+
* Assigns a value to the specified offset.
|
118 |
+
*
|
119 |
+
* @param mixed $offset The offset to assign the value to.
|
120 |
+
* @param mixed $value The value to set.
|
121 |
+
*/
|
122 |
+
public function offsetSet( $offset, $value ) {
|
123 |
+
throw new RuntimeException( 'Failed to mutate immutable object.' );
|
124 |
+
}
|
125 |
+
|
126 |
+
/**
|
127 |
+
* Unsets an offset.
|
128 |
+
*
|
129 |
+
* @param mixed $offset The offset to unset.
|
130 |
+
*/
|
131 |
+
public function offsetUnset( $offset ) {
|
132 |
+
throw new RuntimeException( 'Failed to mutate immutable object.' );
|
133 |
+
}
|
134 |
+
|
135 |
+
/**
|
136 |
+
* Should return the string representation of the object.
|
137 |
+
*
|
138 |
+
* @return string
|
139 |
+
*/
|
140 |
+
public function serialize() {
|
141 |
+
$result = serialize( $this->network_counts );
|
142 |
+
return $result;
|
143 |
+
}
|
144 |
+
|
145 |
+
/**
|
146 |
+
* Set the count for a specific network.
|
147 |
+
*
|
148 |
+
* @param string $network Network to update.
|
149 |
+
* @param int $network_count Count to use when updating the network.
|
150 |
+
* @return int
|
151 |
+
* @throws InvalidArgumentException When the network is invalid.
|
152 |
+
*/
|
153 |
+
private function set_count( string $network, int $network_count ) : int {
|
154 |
+
if ( ! array_key_exists( $network, $this->network_counts ) ) {
|
155 |
+
// @codeCoverageIgnoreStart
|
156 |
+
throw new InvalidArgumentException( "Invalid network specified: {$network}" );
|
157 |
+
// @codeCoverageIgnoreEnd
|
158 |
+
}
|
159 |
+
$this->network_counts[ $network ] = $network_count;
|
160 |
+
return $network_count;
|
161 |
+
}
|
162 |
+
|
163 |
+
/**
|
164 |
+
* Called during unserialization of the object.
|
165 |
+
*
|
166 |
+
* @param string $data
|
167 |
+
*/
|
168 |
+
public function unserialize( $data ) {
|
169 |
+
$counts = unserialize( $data );
|
170 |
+
if ( ! is_array( $counts ) ) {
|
171 |
+
// @codeCoverageIgnoreStart
|
172 |
+
throw new InvalidArgumentException( 'Failed to unserialize ' . self::class . '.' );
|
173 |
+
// @codeCoverageIgnoreEnd
|
174 |
+
}
|
175 |
+
$this->load_counts( $counts );
|
176 |
+
}
|
177 |
+
|
178 |
+
/**
|
179 |
+
* Returns an external iterator.
|
180 |
+
*
|
181 |
+
* @return Traversable
|
182 |
+
*/
|
183 |
+
public function getIterator() {
|
184 |
+
return new ArrayIterator( $this->network_counts );
|
185 |
+
}
|
186 |
+
}
|
inc/class-share-count-url.php
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Mediavine\Grow;
|
4 |
+
|
5 |
+
use JsonSerializable;
|
6 |
+
/**
|
7 |
+
* Simple data class for configuring a share count URL.
|
8 |
+
*/
|
9 |
+
class Share_Count_URL implements JsonSerializable {
|
10 |
+
|
11 |
+
/** @var bool */
|
12 |
+
private $recently_published;
|
13 |
+
|
14 |
+
/** @var string */
|
15 |
+
private $url;
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Set up the share URL.
|
19 |
+
*
|
20 |
+
* @param string $url URL for determining counts.
|
21 |
+
* @param bool $recently_published Was the URL published within the last seven days?
|
22 |
+
*/
|
23 |
+
public function __construct( string $url, bool $recently_published ) {
|
24 |
+
$this->url = $url;
|
25 |
+
$this->recently_published = $recently_published;
|
26 |
+
}
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Specify data which should be serialized to JSON.
|
30 |
+
*
|
31 |
+
* @return array
|
32 |
+
*/
|
33 |
+
public function jsonSerialize() {
|
34 |
+
return [
|
35 |
+
'recently_published' => $this->recently_published,
|
36 |
+
'url' => $this->url,
|
37 |
+
];
|
38 |
+
}
|
39 |
+
}
|
inc/class-share-counts.php
CHANGED
@@ -1,27 +1,71 @@
|
|
1 |
<?php
|
2 |
namespace Mediavine\Grow;
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
class Share_Counts extends \Social_Pug {
|
5 |
|
6 |
/** @var string WordPress post meta key for the last updated timestamp. */
|
7 |
-
public
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
9 |
-
/** @var
|
|
|
|
|
|
|
10 |
private static $instance = null;
|
11 |
|
|
|
|
|
|
|
12 |
/**
|
13 |
-
* @return Share_Counts
|
14 |
*/
|
15 |
-
public static function get_instance() {
|
16 |
if ( null === self::$instance ) {
|
17 |
-
self::$instance = new self;
|
18 |
self::$instance->init();
|
19 |
}
|
20 |
|
21 |
return self::$instance;
|
22 |
}
|
23 |
|
24 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
}
|
26 |
|
27 |
/**
|
@@ -30,7 +74,7 @@ class Share_Counts extends \Social_Pug {
|
|
30 |
public static function invalidate_all() {
|
31 |
$posts = self::get_all_posts_with_counts();
|
32 |
foreach ( $posts as $post ) {
|
33 |
-
\update_post_meta( $post->ID, self
|
34 |
}
|
35 |
}
|
36 |
|
@@ -43,7 +87,7 @@ class Share_Counts extends \Social_Pug {
|
|
43 |
$args = [
|
44 |
'meta_query' => [ // @codingStandardsIgnoreLine
|
45 |
[
|
46 |
-
'key' => self
|
47 |
'compare' => 'EXISTS',
|
48 |
],
|
49 |
],
|
@@ -55,4 +99,585 @@ class Share_Counts extends \Social_Pug {
|
|
55 |
|
56 |
return \get_posts( $args );
|
57 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
}
|
1 |
<?php
|
2 |
namespace Mediavine\Grow;
|
3 |
|
4 |
+
use Exception;
|
5 |
+
use Mediavine\Grow\Tools\Toolkit;
|
6 |
+
use Social_Pug;
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Handles display and manipulating share counts for posts
|
10 |
+
*/
|
11 |
class Share_Counts extends \Social_Pug {
|
12 |
|
13 |
/** @var string WordPress post meta key for the last updated timestamp. */
|
14 |
+
public const LAST_UPDATED_META_KEY = 'dpsp_networks_shares_last_updated';
|
15 |
+
|
16 |
+
/** @var string Key for Timeout Transient */
|
17 |
+
private const REFRESH_TIMEOUT_KEY = 'mv_grow_refresh_timeout_';
|
18 |
+
|
19 |
+
/** @var string Key for External Lockout Transient */
|
20 |
+
private const EXTERNAL_LOCKOUT_KEY = 'mv_grow_external_lockout_';
|
21 |
+
|
22 |
+
/** @var float|int Duration of timeout time in seconds */
|
23 |
+
private const REFRESH_TIMEOUT_DURATION = HOUR_IN_SECONDS;
|
24 |
|
25 |
+
/** @var float|int Duration of lockout time in seconds */
|
26 |
+
private const EXTERNAL_LOCKOUT_DURATION = 60;
|
27 |
+
|
28 |
+
/** @var null|Share_Counts */
|
29 |
private static $instance = null;
|
30 |
|
31 |
+
/** @var null|Share_Count_Client Share count client for use by this class */
|
32 |
+
private $share_count_client = null;
|
33 |
+
|
34 |
/**
|
35 |
+
* @return Share_Counts|null
|
36 |
*/
|
37 |
+
public static function get_instance() : ?Share_Counts {
|
38 |
if ( null === self::$instance ) {
|
39 |
+
self::$instance = new self();
|
40 |
self::$instance->init();
|
41 |
}
|
42 |
|
43 |
return self::$instance;
|
44 |
}
|
45 |
|
46 |
+
/**
|
47 |
+
* Initialize class and set up hooks
|
48 |
+
*/
|
49 |
+
public function init() : void {
|
50 |
+
add_action( 'wp_head', [ $this, 'check_share_counts' ] );
|
51 |
+
add_action( 'dpsp_update_post_share_counts', __CLASS__ . '::update_top_shared_posts', 10, 2 );
|
52 |
+
add_filter( 'dpsp_get_post_total_share_count', __CLASS__ . '::post_total_shares_minimum', 20, 3 );
|
53 |
+
add_filter( 'dpsp_get_output_post_shares_counts', 'Mediavine\Grow\Share_Counts::round_counts', 10, 2 );
|
54 |
+
add_filter( 'dpsp_get_output_total_share_count', 'Mediavine\Grow\Share_Counts::round_counts', 10, 2 );
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Grab a share count API client.
|
59 |
+
*
|
60 |
+
* @return Share_Count_Client
|
61 |
+
*/
|
62 |
+
private function get_share_count_client() : ?Share_Count_Client {
|
63 |
+
if ( ! ( $this->share_count_client instanceof Share_Count_Client ) ) {
|
64 |
+
$license = Settings::get_setting( 'mv_grow_license', '' );
|
65 |
+
$this->share_count_client = new Share_Count_Client( site_url(), $license );
|
66 |
+
}
|
67 |
+
|
68 |
+
return $this->share_count_client;
|
69 |
}
|
70 |
|
71 |
/**
|
74 |
public static function invalidate_all() {
|
75 |
$posts = self::get_all_posts_with_counts();
|
76 |
foreach ( $posts as $post ) {
|
77 |
+
\update_post_meta( $post->ID, self::LAST_UPDATED_META_KEY, 1 );
|
78 |
}
|
79 |
}
|
80 |
|
87 |
$args = [
|
88 |
'meta_query' => [ // @codingStandardsIgnoreLine
|
89 |
[
|
90 |
+
'key' => self::LAST_UPDATED_META_KEY,
|
91 |
'compare' => 'EXISTS',
|
92 |
],
|
93 |
],
|
99 |
|
100 |
return \get_posts( $args );
|
101 |
}
|
102 |
+
|
103 |
+
/**
|
104 |
+
* Determine if counts should be retrieved
|
105 |
+
*
|
106 |
+
* @param \WP_Post $current_post The current post to check counts for.
|
107 |
+
* @return bool;
|
108 |
+
*/
|
109 |
+
public static function should_get_count( \WP_Post $current_post ) {
|
110 |
+
if ( isset( $_SERVER['HTTP_USER_AGENT'] ) && preg_match( '/bot|crawl|facebookexternalhit|slurp|spider/i', wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) ) { // @codingStandardsIgnoreLine
|
111 |
+
return false;
|
112 |
+
}
|
113 |
+
|
114 |
+
if ( ! is_singular() ) {
|
115 |
+
return false;
|
116 |
+
}
|
117 |
+
|
118 |
+
if ( is_null( $current_post ) ) {
|
119 |
+
return false;
|
120 |
+
}
|
121 |
+
|
122 |
+
//Make sure this post has an assigned permalink before fetching share counts by checking the path of the url
|
123 |
+
$permalink = get_permalink( $current_post->ID );
|
124 |
+
$parsed_permalink = parse_url( $permalink );
|
125 |
+
|
126 |
+
//Pull the path from the permalink
|
127 |
+
$permalink_path = $parsed_permalink['path'];
|
128 |
+
|
129 |
+
// Check if the permalink has a query to indicate a post
|
130 |
+
$has_post_query = ! empty( $parsed_permalink['query'] ) && preg_match( '/p=[0-9]+/', $parsed_permalink['query'] );
|
131 |
+
|
132 |
+
if ( '/' === $permalink_path && ! $has_post_query ) {
|
133 |
+
// If there is no path, Grow thinks this is the front page we are working with
|
134 |
+
$front_page = get_option( 'page_on_front' );
|
135 |
+
if ( $front_page !== $current_post->ID ) {
|
136 |
+
// If we aren't actually on the front page, return early because we don't want to get the wrong counts
|
137 |
+
return false;
|
138 |
+
}
|
139 |
+
}
|
140 |
+
|
141 |
+
if ( is_attachment( $current_post->ID ) ) {
|
142 |
+
return false;
|
143 |
+
}
|
144 |
+
|
145 |
+
if ( in_array( $current_post->post_status, [ 'future', 'draft', 'pending', 'trash', 'auto-draft' ], true ) ) {
|
146 |
+
return false;
|
147 |
+
}
|
148 |
+
|
149 |
+
if ( self::has_external_lockout( $current_post ) ) {
|
150 |
+
return false;
|
151 |
+
}
|
152 |
+
|
153 |
+
$expired = self::is_post_count_expired( $current_post );
|
154 |
+
if ( ! $expired ) {
|
155 |
+
return false;
|
156 |
+
}
|
157 |
+
self::set_external_lockout( $current_post );
|
158 |
+
|
159 |
+
return true;
|
160 |
+
}
|
161 |
+
|
162 |
+
/**
|
163 |
+
* Get the refresh rate for a post that was created at a given time
|
164 |
+
*
|
165 |
+
* @param int $post_time Unix timestamp of post time
|
166 |
+
* @return int
|
167 |
+
*/
|
168 |
+
public static function get_refresh_rate( $post_time ) {
|
169 |
+
// Set the refresh rate, depending on how many days
|
170 |
+
// have pased since it was created
|
171 |
+
if ( time() - $post_time <= 10 * DAY_IN_SECONDS ) {
|
172 |
+
$refresh_rate = 2;
|
173 |
+
} elseif ( time() - $post_time <= 20 * DAY_IN_SECONDS ) {
|
174 |
+
$refresh_rate = 6;
|
175 |
+
} else {
|
176 |
+
$refresh_rate = 12;
|
177 |
+
}
|
178 |
+
|
179 |
+
/**
|
180 |
+
* Filter the share counts cache refresh rate.
|
181 |
+
*
|
182 |
+
* @param int $refresh_rate
|
183 |
+
* @param int $post_time
|
184 |
+
*/
|
185 |
+
return apply_filters( 'dpsp_post_share_counts_cache_refresh_rate', $refresh_rate, $post_time );
|
186 |
+
}
|
187 |
+
|
188 |
+
/**
|
189 |
+
* Determine if the share counts are expired for a given post
|
190 |
+
*
|
191 |
+
* @param \WP_Post $post_obj Post object to check if count is exipired for/
|
192 |
+
* @return bool
|
193 |
+
*/
|
194 |
+
public static function is_post_count_expired( \WP_Post $post_obj ) : bool {
|
195 |
+
// Get the post's time
|
196 |
+
$post_time = mysql2date( 'U', $post_obj->post_date, false );
|
197 |
+
|
198 |
+
$refresh_rate = (int) self::get_refresh_rate( $post_time );
|
199 |
+
|
200 |
+
// Get the last updated time for the share counts
|
201 |
+
$shares_last_updated = (int) get_post_meta( $post_obj->ID, self::LAST_UPDATED_META_KEY, true );
|
202 |
+
|
203 |
+
return $shares_last_updated < time() - $refresh_rate * HOUR_IN_SECONDS;
|
204 |
+
}
|
205 |
+
|
206 |
+
/**
|
207 |
+
* Turn the Passed Counts into rounded count strings
|
208 |
+
*
|
209 |
+
* @param int|array $counts Counts to round
|
210 |
+
* @param string $location Location where these counts will be shown
|
211 |
+
* @param int $precision Decimal points to round to
|
212 |
+
* @return array|string Rounded counts
|
213 |
+
*/
|
214 |
+
public static function round_counts( $counts, string $location = '', int $precision = 1 ) {
|
215 |
+
|
216 |
+
if ( empty( $location ) ) {
|
217 |
+
return $counts;
|
218 |
+
}
|
219 |
+
|
220 |
+
if ( empty( $counts ) ) {
|
221 |
+
return $counts;
|
222 |
+
}
|
223 |
+
|
224 |
+
$location_settings = Settings::get_setting( 'dpsp_location_' . $location, [] );
|
225 |
+
|
226 |
+
if ( ! isset( $location_settings['display']['count_round'] ) ) {
|
227 |
+
return $counts;
|
228 |
+
}
|
229 |
+
|
230 |
+
/**
|
231 |
+
* Filter the precision at which the number should be rounded.
|
232 |
+
*
|
233 |
+
* @param int $round_precision
|
234 |
+
*/
|
235 |
+
$precision = apply_filters( 'dpsp_share_counts_round_precision', $precision );
|
236 |
+
|
237 |
+
if ( is_array( $counts ) ) {
|
238 |
+
return array_map(
|
239 |
+
function( $count ) use ( $precision ) {
|
240 |
+
return self::round_count_single( $count, $precision );
|
241 |
+
}, $counts
|
242 |
+
);
|
243 |
+
}
|
244 |
+
return self::round_count_single( $counts, $precision );
|
245 |
+
}
|
246 |
+
|
247 |
+
/**
|
248 |
+
* Round a single count to the given precision
|
249 |
+
*
|
250 |
+
* @param int|string $count Count that will be rounded
|
251 |
+
* @param int $precision number of decimal points to round to.
|
252 |
+
* @return string|int Rounded count string if applicable
|
253 |
+
*/
|
254 |
+
private static function round_count_single( $count, int $precision ) {
|
255 |
+
if ( ! is_int( $count ) ) {
|
256 |
+
$count = (int) $count;
|
257 |
+
}
|
258 |
+
if ( $count / 1000000 >= 1 ) {
|
259 |
+
$count = number_format( $count / 1000000, $precision ) . 'M';
|
260 |
+
} elseif ( $count / 1000 >= 1 ) {
|
261 |
+
$count = number_format( $count / 1000, $precision ) . 'K';
|
262 |
+
}
|
263 |
+
return $count;
|
264 |
+
}
|
265 |
+
|
266 |
+
|
267 |
+
/**
|
268 |
+
* Return whether or not counts are enabled for any active tool
|
269 |
+
*
|
270 |
+
* @since 2.15.0
|
271 |
+
* @return bool
|
272 |
+
*/
|
273 |
+
public static function are_counts_enabled() : bool {
|
274 |
+
// Get all Tools
|
275 |
+
$tools = Toolkit::get_instance()->get_all();
|
276 |
+
|
277 |
+
foreach ( $tools as $tool ) {
|
278 |
+
|
279 |
+
// Skip if tool not active
|
280 |
+
if ( ! $tool->is_active() ) {
|
281 |
+
continue;
|
282 |
+
}
|
283 |
+
|
284 |
+
$settings = $tool->get_settings();
|
285 |
+
|
286 |
+
// Skip if no settings or no display section in the settings
|
287 |
+
if ( ! ( $settings && isset( $settings['display'] ) ) ) {
|
288 |
+
continue;
|
289 |
+
}
|
290 |
+
|
291 |
+
$has_count = isset( $settings['display']['show_count'] ) && 'yes' === $settings['display']['show_count'];
|
292 |
+
$has_count_total = isset( $settings['display']['show_count_total'] ) && 'yes' === $settings['display']['show_count_total'];
|
293 |
+
|
294 |
+
// If we find one with counts the whole function returns true
|
295 |
+
if ( $has_count || $has_count_total ) {
|
296 |
+
return true;
|
297 |
+
}
|
298 |
+
}
|
299 |
+
|
300 |
+
// If we haven't returned true yet we know it's false
|
301 |
+
return false;
|
302 |
+
}
|
303 |
+
|
304 |
+
/**
|
305 |
+
* Check and perhaps update the share counts for the current post
|
306 |
+
*
|
307 |
+
* @return bool Whether the update was successful
|
308 |
+
*/
|
309 |
+
public function check_share_counts() : bool {
|
310 |
+
$current_post = dpsp_get_current_post();
|
311 |
+
|
312 |
+
if ( ! $current_post || ! self::should_get_count( $current_post ) ) {
|
313 |
+
return false;
|
314 |
+
}
|
315 |
+
|
316 |
+
$share_counts = $this->pull_post_share_counts( $current_post );
|
317 |
+
|
318 |
+
return $this->update_post_share_counts( $current_post, $share_counts );
|
319 |
+
}
|
320 |
+
|
321 |
+
/**
|
322 |
+
* Fetch social share counts for a post using local querying.
|
323 |
+
*
|
324 |
+
* @param \WP_Post $post Post to be used for retrieving counts.
|
325 |
+
* @return Share_Count_Url_Counts
|
326 |
+
*/
|
327 |
+
private function fetch_counts_local( \WP_Post $post ) : Share_Count_Url_Counts {
|
328 |
+
if ( ! is_numeric( $post->ID ) || $post->ID < 0 ) {
|
329 |
+
return new Share_Count_Url_Counts( [] );
|
330 |
+
}
|
331 |
+
|
332 |
+
try {
|
333 |
+
$counts = dpsp_pull_post_share_counts( $post->ID );
|
334 |
+
} catch ( Exception $e ) {
|
335 |
+
$counts = [];
|
336 |
+
}
|
337 |
+
|
338 |
+
$result = new Share_Count_Url_Counts( $counts );
|
339 |
+
return $result;
|
340 |
+
}
|
341 |
+
|
342 |
+
/**
|
343 |
+
* Load the share counts
|
344 |
+
*
|
345 |
+
* @param int $post_id Id to get counts for
|
346 |
+
*
|
347 |
+
* @return array
|
348 |
+
*/
|
349 |
+
public static function post_share_counts( int $post_id ) : array {
|
350 |
+
$meta_shares = dpsp_maybe_unserialize( get_post_meta( $post_id, 'dpsp_networks_shares', true ) );
|
351 |
+
$shares = $meta_shares ? $meta_shares : [];
|
352 |
+
return apply_filters( 'dpsp_get_post_share_counts', $shares, $post_id );
|
353 |
+
}
|
354 |
+
|
355 |
+
/**
|
356 |
+
* Load the share counts
|
357 |
+
*
|
358 |
+
* @param int $post_id Id to get counts for
|
359 |
+
* @param string $location Location where total shares are being gotten
|
360 |
+
*
|
361 |
+
* @return int Total Share Count
|
362 |
+
*/
|
363 |
+
public static function post_total_share_counts( int $post_id = 0, string $location = '' ) : int {
|
364 |
+
if ( 0 === $post_id ) {
|
365 |
+
$post_obj = dpsp_get_current_post();
|
366 |
+
if ( ! $post_obj ) {
|
367 |
+
return 0;
|
368 |
+
}
|
369 |
+
$post_id = $post_obj->ID;
|
370 |
+
}
|
371 |
+
|
372 |
+
$total_share_meta = dpsp_maybe_unserialize( get_post_meta( $post_id, 'dpsp_networks_shares_total', true ) );
|
373 |
+
$total_shares = $total_share_meta ? $total_share_meta : [];
|
374 |
+
|
375 |
+
/**
|
376 |
+
* Filter total shares before returning them.
|
377 |
+
*
|
378 |
+
* @param int $total_shares
|
379 |
+
* @param int $post_id
|
380 |
+
* @param string $location
|
381 |
+
*/
|
382 |
+
return apply_filters( 'dpsp_get_post_total_share_count', (int) $total_shares, $post_id, $location );
|
383 |
+
}
|
384 |
+
|
385 |
+
/**
|
386 |
+
* Retrieve share counts for a given post
|
387 |
+
*
|
388 |
+
* @param \WP_Post $current_post The post to get share for
|
389 |
+
*
|
390 |
+
* @return Share_Count_Url_Counts
|
391 |
+
*/
|
392 |
+
public function pull_post_share_counts( \WP_Post $current_post ) : Share_Count_Url_Counts {
|
393 |
+
if ( Social_Pug::is_pro() && Social_Pug::get_instance()->has_license ) {
|
394 |
+
$settings = Settings::get_setting( 'dpsp_settings' );
|
395 |
+
|
396 |
+
$permalink = get_permalink( $current_post );
|
397 |
+
$is_recently_published = mysql2date( 'U', $current_post->post_date, false ) <= 10 * DAY_IN_SECONDS;
|
398 |
+
|
399 |
+
$previous_urls = new Previous_URLs( $current_post->ID, $settings );
|
400 |
+
|
401 |
+
$all_urls = array_merge( [ $permalink ], $previous_urls->get_previous_urls() );
|
402 |
+
|
403 |
+
$share_count_url_chunks = $this->build_url_groups( $all_urls, $is_recently_published );
|
404 |
+
$share_count_client = $this->get_share_count_client();
|
405 |
+
|
406 |
+
$start_shares = new Share_Count_Url_Counts( [] );
|
407 |
+
$combined_shares = array_reduce( $share_count_url_chunks, function ( Share_Count_Url_Counts $totals, array $share_count_urls ) use ( $share_count_client ) {
|
408 |
+
try {
|
409 |
+
$all_share_counts = $share_count_client->fetch_counts( $share_count_urls, true );
|
410 |
+
} catch ( Exception $e ) {
|
411 |
+
$all_share_counts = null;
|
412 |
+
}
|
413 |
+
if ( ! is_array( $all_share_counts ) ) {
|
414 |
+
return $totals;
|
415 |
+
}
|
416 |
+
|
417 |
+
$new_shares = reset( $all_share_counts );
|
418 |
+
if ( ! ( $new_shares instanceof Share_Count_Url_Counts ) ) {
|
419 |
+
return $totals;
|
420 |
+
}
|
421 |
+
|
422 |
+
return $totals->with_sum( $new_shares );
|
423 |
+
}, $start_shares );
|
424 |
+
} else {
|
425 |
+
$combined_shares = $this->fetch_counts_local( $current_post );
|
426 |
+
}
|
427 |
+
|
428 |
+
return $combined_shares;
|
429 |
+
}
|
430 |
+
|
431 |
+
/**
|
432 |
+
* Refresh share counts for a given post
|
433 |
+
*
|
434 |
+
* @param \WP_Post $current_post The post to get share for
|
435 |
+
*
|
436 |
+
* @return Share_Count_Url_Counts|null
|
437 |
+
*/
|
438 |
+
public function refresh_post_share_counts( \WP_Post $current_post ) : ?Share_Count_Url_Counts {
|
439 |
+
if ( self::has_refresh_timeout( $current_post ) ) {
|
440 |
+
return null;
|
441 |
+
}
|
442 |
+
|
443 |
+
$share_counts = $this->pull_post_share_counts( $current_post );
|
444 |
+
|
445 |
+
self::set_refresh_timeout( $current_post );
|
446 |
+
|
447 |
+
$result = $share_counts;
|
448 |
+
return $result;
|
449 |
+
}
|
450 |
+
|
451 |
+
/**
|
452 |
+
* Check to see if the given post has a refresh timeout
|
453 |
+
*
|
454 |
+
* @param \WP_Post $post Post to check timeout for
|
455 |
+
*
|
456 |
+
* @return bool If the post has a timeout set
|
457 |
+
*/
|
458 |
+
public static function has_refresh_timeout( \WP_Post $post ) : bool {
|
459 |
+
$timeout = self::get_refresh_timeout( $post );
|
460 |
+
return ( null !== $timeout && 0 < $timeout );
|
461 |
+
}
|
462 |
+
|
463 |
+
/**
|
464 |
+
* Check to see if the given post is locked out from external requests
|
465 |
+
*
|
466 |
+
* @param \WP_Post $post Post to check lockout for
|
467 |
+
*
|
468 |
+
* @return bool If the post is locked out
|
469 |
+
*/
|
470 |
+
public static function has_external_lockout( \WP_Post $post ) : bool {
|
471 |
+
return ! ( ( time() - self::get_external_lockout( $post ) ) > 60 );
|
472 |
+
}
|
473 |
+
|
474 |
+
/**
|
475 |
+
* Was this post published recently?
|
476 |
+
*
|
477 |
+
* @param \WP_Post $post A post.
|
478 |
+
* @return bool
|
479 |
+
*/
|
480 |
+
private function is_recently_published( \WP_Post $post ) : bool {
|
481 |
+
$result = mysql2date( 'U', $post->post_date, false ) <= 10 * DAY_IN_SECONDS;
|
482 |
+
return $result;
|
483 |
+
}
|
484 |
+
|
485 |
+
/**
|
486 |
+
* Get the expiration of the refresh timeout for the given post
|
487 |
+
*
|
488 |
+
* @param \WP_Post $post Post to check timeout for
|
489 |
+
*
|
490 |
+
* @return int|null If the post has a timeout set
|
491 |
+
*/
|
492 |
+
public static function get_refresh_timeout( \WP_Post $post ) : ?int {
|
493 |
+
$transient = get_transient( self::REFRESH_TIMEOUT_KEY . $post->ID );
|
494 |
+
|
495 |
+
return false !== $transient ? $transient : null;
|
496 |
+
}
|
497 |
+
|
498 |
+
/**
|
499 |
+
* Get the lockout value
|
500 |
+
*
|
501 |
+
* @param \WP_Post $post Post to check lockout for
|
502 |
+
*
|
503 |
+
* @return int The value of the lockout
|
504 |
+
*/
|
505 |
+
public static function get_external_lockout( \WP_Post $post ) : int {
|
506 |
+
$transient = get_transient( self::EXTERNAL_LOCKOUT_KEY . $post->ID );
|
507 |
+
return $transient ?? 0;
|
508 |
+
}
|
509 |
+
|
510 |
+
/**
|
511 |
+
* Set the refresh timeout transient
|
512 |
+
* @param \WP_Post $post Post to set the timeout for
|
513 |
+
*
|
514 |
+
* @return bool Success of timeout transient being set
|
515 |
+
*/
|
516 |
+
public static function set_refresh_timeout( \WP_Post $post ) : bool {
|
517 |
+
return set_transient( self::REFRESH_TIMEOUT_KEY . $post->ID, time() + self::REFRESH_TIMEOUT_DURATION, self::REFRESH_TIMEOUT_DURATION );
|
518 |
+
}
|
519 |
+
|
520 |
+
/**
|
521 |
+
* Set the external lockout time for the post
|
522 |
+
* @param \WP_Post $post Post to set the lockout for
|
523 |
+
*
|
524 |
+
* @return bool Success of lockout transient being set
|
525 |
+
*/
|
526 |
+
public static function set_external_lockout( \WP_Post $post ) : bool {
|
527 |
+
return set_transient( self::EXTERNAL_LOCKOUT_KEY . $post->ID, time(), self::EXTERNAL_LOCKOUT_DURATION );
|
528 |
+
}
|
529 |
+
|
530 |
+
|
531 |
+
/**
|
532 |
+
* Build the Share Count URL objects and chunk into groups of 10
|
533 |
+
*
|
534 |
+
* @param string[] $urls URLs to split into groups
|
535 |
+
* @param bool $is_recently_published Whether the post was recently published
|
536 |
+
*
|
537 |
+
* @return array
|
538 |
+
*/
|
539 |
+
private function build_url_groups( array $urls, bool $is_recently_published ) : array {
|
540 |
+
$url_objects = array_map(function( $url ) use ( $is_recently_published ) {
|
541 |
+
return new Share_Count_URL( $url, $is_recently_published );
|
542 |
+
}, $urls);
|
543 |
+
return array_chunk( $url_objects, 10 );
|
544 |
+
}
|
545 |
+
|
546 |
+
/**
|
547 |
+
* Update the share counts in the database with new counts
|
548 |
+
*
|
549 |
+
* @param \WP_Post $current_post The post we are updating counts for
|
550 |
+
* @param \Mediavine\Grow\Share_Count_Url_Counts $share_counts the new total share counts for the post
|
551 |
+
*
|
552 |
+
* @return bool Whether the update was successful
|
553 |
+
*/
|
554 |
+
public function update_post_share_counts( \WP_Post $current_post, Share_Count_Url_Counts $share_counts ) : bool {
|
555 |
+
$current_shares = self::post_share_counts( $current_post->ID );
|
556 |
+
$updated_shares = $share_counts->get_counts();
|
557 |
+
|
558 |
+
$updated_shares = $this->compare_counts( $updated_shares, $current_shares );
|
559 |
+
|
560 |
+
$share_count_total = $share_counts->get_count_total();
|
561 |
+
|
562 |
+
// Update post meta with all shares
|
563 |
+
$shares_updated = update_post_meta( $current_post->ID, 'dpsp_networks_shares', $updated_shares );
|
564 |
+
|
565 |
+
// Update post meta with total share counts
|
566 |
+
$totals_updated = update_post_meta( $current_post->ID, 'dpsp_networks_shares_total', $share_count_total );
|
567 |
+
|
568 |
+
// Update post meta with last updated timestamp
|
569 |
+
$updated_time_updated = update_post_meta( $current_post->ID, 'dpsp_networks_shares_last_updated', time() );
|
570 |
+
|
571 |
+
/**
|
572 |
+
* Do extra actions after updating the post's share counts
|
573 |
+
*
|
574 |
+
* @param int $post_id - the id of the post to save the shares
|
575 |
+
* @param array $shares - an array with the network shares and total shares
|
576 |
+
*
|
577 |
+
*/
|
578 |
+
do_action( 'dpsp_update_post_share_counts', $current_post->ID, $updated_shares );
|
579 |
+
|
580 |
+
return $shares_updated && $totals_updated && $updated_time_updated;
|
581 |
+
}
|
582 |
+
|
583 |
+
/**
|
584 |
+
* Compare counts from two collections, returning the higher counts from each.
|
585 |
+
*
|
586 |
+
* @param array<string, int> $a The first count to check against
|
587 |
+
* @param array<string, int> $b The second count to be added to the first
|
588 |
+
*
|
589 |
+
* @return array<string, int>
|
590 |
+
*/
|
591 |
+
private function compare_counts( array $a, array $b ) : array {
|
592 |
+
$total = [];
|
593 |
+
$a = $a + $b;
|
594 |
+
foreach ( $a as $key => $value ) {
|
595 |
+
$b_value = $b[ $key ] ?? 0;
|
596 |
+
$total[ $key ] = $value > $b_value ? $value : $b_value;
|
597 |
+
}
|
598 |
+
return $total;
|
599 |
+
}
|
600 |
+
|
601 |
+
/**
|
602 |
+
* Check to see if the passed post with the passed share counts belonds in the top shared posts list
|
603 |
+
*
|
604 |
+
* @param int $post_id Id for the post to update shares for
|
605 |
+
* @param array $updated_shares New Share counts
|
606 |
+
*
|
607 |
+
* @return bool Whether the update was successful
|
608 |
+
*/
|
609 |
+
public static function update_top_shared_posts( int $post_id, array $updated_shares ) : bool {
|
610 |
+
// Get the post's post type
|
611 |
+
$post_type = get_post_type( $post_id );
|
612 |
+
|
613 |
+
if ( ! $post_type ) {
|
614 |
+
return false;
|
615 |
+
}
|
616 |
+
// Get current saved top shared posts
|
617 |
+
$top_posts = Settings::get_setting( 'dpsp_top_shared_posts', [] );
|
618 |
+
|
619 |
+
// Decode the top posts into an array
|
620 |
+
if ( ! empty( $top_posts ) && ! is_array( $top_posts ) ) {
|
621 |
+
$top_posts = json_decode( $top_posts, ARRAY_A );
|
622 |
+
}
|
623 |
+
|
624 |
+
$top_posts[ $post_type ][ $post_id ] = array_sum( $updated_shares );
|
625 |
+
|
626 |
+
/**
|
627 |
+
* Filter top shared posts before saving in the db.
|
628 |
+
*
|
629 |
+
* @param array $top_posts
|
630 |
+
* @param int $post_id
|
631 |
+
*
|
632 |
+
* @return bool Whether the meta was updated or not
|
633 |
+
*/
|
634 |
+
$top_posts = apply_filters( 'dpsp_top_shared_posts_raw', $top_posts, $post_id );
|
635 |
+
|
636 |
+
// Filter top posts array
|
637 |
+
if ( ! empty( $top_posts ) ) {
|
638 |
+
foreach ( $top_posts as $post_type => $post_list ) {
|
639 |
+
if ( ! empty( $top_posts[ $post_type ] ) ) {
|
640 |
+
// Sort descending
|
641 |
+
arsort( $top_posts[ $post_type ] );
|
642 |
+
|
643 |
+
// Get only first ten
|
644 |
+
$top_posts[ $post_type ] = array_slice( $top_posts[ $post_type ], 0, 10, true );
|
645 |
+
}
|
646 |
+
}
|
647 |
+
}
|
648 |
+
|
649 |
+
// Update top posts
|
650 |
+
return update_option( 'dpsp_top_shared_posts', json_encode( $top_posts ) );
|
651 |
+
}
|
652 |
+
|
653 |
+
/**
|
654 |
+
* Checks to see if total shares are at least as high as the minimum count
|
655 |
+
* needed. Return null if the minimum shares is greater than the total.
|
656 |
+
*
|
657 |
+
* @param int|string $total_shares - the total shares of the post for all active networks
|
658 |
+
* @param int $post_id - the ID of the post
|
659 |
+
* @param string $location - the location where the buttons are displayed
|
660 |
+
* @return string|int|null
|
661 |
+
*/
|
662 |
+
public static function post_total_shares_minimum( $total_shares, int $post_id, string $location = '' ) {
|
663 |
+
if ( filter_var( $total_shares, FILTER_VALIDATE_INT ) === false ) {
|
664 |
+
return $total_shares;
|
665 |
+
}
|
666 |
+
|
667 |
+
if ( empty( $location ) ) {
|
668 |
+
return $total_shares;
|
669 |
+
}
|
670 |
+
|
671 |
+
$location_settings = Settings::get_setting( 'dpsp_location_' . $location );
|
672 |
+
|
673 |
+
if ( empty( $location_settings['display']['minimum_count'] ) ) {
|
674 |
+
return $total_shares;
|
675 |
+
}
|
676 |
+
|
677 |
+
if ( ctype_digit( (string) $location_settings['display']['minimum_count'] ) && intval( $location_settings['display']['minimum_count'] ) > intval( $total_shares ) ) {
|
678 |
+
$total_shares = null;
|
679 |
+
}
|
680 |
+
|
681 |
+
return $total_shares;
|
682 |
+
}
|
683 |
}
|
inc/class-social-pug.php
CHANGED
@@ -1,5 +1,7 @@
|
|
1 |
<?php
|
2 |
|
|
|
|
|
3 |
use Mediavine\Grow\Status_API_Controller;
|
4 |
|
5 |
/**
|
@@ -7,10 +9,10 @@ use Mediavine\Grow\Status_API_Controller;
|
|
7 |
*/
|
8 |
class Social_Pug {
|
9 |
|
10 |
-
const API_NAMESPACE = 'mv-grow-social/v1';
|
11 |
|
12 |
/** @var string|null Build tool sets this. */
|
13 |
-
const VERSION = '1.
|
14 |
|
15 |
/** @var string|null Version number for this release. @deprecated Use MV_GROW_VERSION */
|
16 |
public static $VERSION;
|
@@ -41,12 +43,18 @@ class Social_Pug {
|
|
41 |
/** @var \Mediavine\Grow\Tools\Toolkit Container for all the tools. */
|
42 |
public $tools = null;
|
43 |
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
/**
|
45 |
* Get the defined addon version, if available.
|
46 |
*
|
47 |
* @return string|null
|
48 |
*/
|
49 |
-
public function get_version() {
|
50 |
$version = defined( 'MV_GROW_VERSION' ) ? MV_GROW_VERSION : null;
|
51 |
return $version;
|
52 |
}
|
@@ -57,14 +65,18 @@ class Social_Pug {
|
|
57 |
public function set_version() {
|
58 |
if ( ! is_null( self::VERSION ) ) {
|
59 |
// If the build tool has run, use its version.
|
60 |
-
self::$VERSION = self::VERSION;
|
61 |
define( 'MV_GROW_VERSION', self::VERSION );
|
62 |
-
|
63 |
-
// Dynamically set version in `kernl.version`.
|
64 |
-
$kernl_version = explode( "\n", file_get_contents( __DIR__ . '/../kernl.version' ) )[0]; // {{-KERNL_VERSION-}} DO NOT REMOVE: WILL BE REPLACED IN BUILD
|
65 |
-
self::$VERSION = $kernl_version;
|
66 |
-
define( 'MV_GROW_VERSION', $kernl_version );
|
67 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
}
|
69 |
|
70 |
/**
|
@@ -87,8 +99,11 @@ class Social_Pug {
|
|
87 |
public function init() {
|
88 |
$this->set_version();
|
89 |
define( 'DPSP_VERSION', self::$VERSION );
|
|
|
90 |
define( 'DPSP_TRANSLATION_TEXTDOMAIN', 'social-pug' );
|
91 |
|
|
|
|
|
92 |
// Register feature flags early.
|
93 |
add_action( 'after_setup_theme', '\Mediavine\Grow\register_flags' );
|
94 |
|
@@ -135,6 +150,8 @@ class Social_Pug {
|
|
135 |
add_action( 'admin_init', [ $this, 'update_database' ] );
|
136 |
add_filter( 'body_class', [ $this, 'add_body_class' ] );
|
137 |
|
|
|
|
|
138 |
// Add a class to the admin body to tell plugin pages apart
|
139 |
add_filter( 'admin_body_class', [ $this, 'admin_body_class' ] );
|
140 |
|
@@ -148,9 +165,13 @@ class Social_Pug {
|
|
148 |
dpsp_register_functions();
|
149 |
dpsp_register_functions_admin();
|
150 |
dpsp_register_functions_cron();
|
151 |
-
dpsp_register_functions_mobile();
|
152 |
dpsp_register_functions_post();
|
153 |
-
|
|
|
|
|
|
|
|
|
|
|
154 |
dpsp_register_functions_tools();
|
155 |
|
156 |
// Hook registration in tools files.
|
@@ -319,10 +340,11 @@ class Social_Pug {
|
|
319 |
/**
|
320 |
* Enqueue scripts and styles for the admin dashboard
|
321 |
*
|
|
|
322 |
*/
|
323 |
-
public function init_admin_scripts( $
|
324 |
|
325 |
-
if ( strpos( $
|
326 |
wp_register_script( 'select2-js', DPSP_PLUGIN_DIR_URL . 'assets/libs/select2/select2.min.js', [ 'jquery' ] );
|
327 |
wp_enqueue_script( 'select2-js' );
|
328 |
wp_register_style( 'select2-css', DPSP_PLUGIN_DIR_URL . 'assets/libs/select2/select2.min.css' );
|
@@ -330,7 +352,7 @@ class Social_Pug {
|
|
330 |
|
331 |
wp_register_script(
|
332 |
'dpsp-touch-punch-js',
|
333 |
-
|
334 |
[
|
335 |
'jquery-ui-sortable',
|
336 |
'jquery',
|
@@ -365,6 +387,12 @@ class Social_Pug {
|
|
365 |
*
|
366 |
*/
|
367 |
public function init_gutenberg_scripts() {
|
|
|
|
|
|
|
|
|
|
|
|
|
368 |
$IS_DEVELOPMENT = apply_filters( 'mv_grow_dev_mode', false );
|
369 |
$script_url = $IS_DEVELOPMENT ? DPSP_PLUGIN_DIR_URL . 'assets/dist/dev-entry.js' : DPSP_PLUGIN_DIR_URL . 'assets/dist/block-editor.' . self::$VERSION . '.js';
|
370 |
wp_enqueue_script(
|
@@ -486,7 +514,7 @@ class Social_Pug {
|
|
486 |
*
|
487 |
* @return bool
|
488 |
*/
|
489 |
-
public function is_pro() {
|
490 |
return ! self::is_free();
|
491 |
}
|
492 |
|
@@ -502,4 +530,4 @@ class Social_Pug {
|
|
502 |
|
503 |
return __( 'Grow Social Pro by Mediavine', 'social-pug' );
|
504 |
}
|
505 |
-
}
|
1 |
<?php
|
2 |
|
3 |
+
use Mediavine\Grow\Settings;
|
4 |
+
use Mediavine\Grow\Share_Counts;
|
5 |
use Mediavine\Grow\Status_API_Controller;
|
6 |
|
7 |
/**
|
9 |
*/
|
10 |
class Social_Pug {
|
11 |
|
12 |
+
public const API_NAMESPACE = 'mv-grow-social/v1';
|
13 |
|
14 |
/** @var string|null Build tool sets this. */
|
15 |
+
const VERSION = '1.20.0';
|
16 |
|
17 |
/** @var string|null Version number for this release. @deprecated Use MV_GROW_VERSION */
|
18 |
public static $VERSION;
|
43 |
/** @var \Mediavine\Grow\Tools\Toolkit Container for all the tools. */
|
44 |
public $tools = null;
|
45 |
|
46 |
+
/** @var Share_Counts|null Count class. */
|
47 |
+
public $share_counts = null;
|
48 |
+
|
49 |
+
/** @var string $has_license Whether or not there is a license */
|
50 |
+
public $has_license = false;
|
51 |
+
|
52 |
/**
|
53 |
* Get the defined addon version, if available.
|
54 |
*
|
55 |
* @return string|null
|
56 |
*/
|
57 |
+
public function get_version() : ?string {
|
58 |
$version = defined( 'MV_GROW_VERSION' ) ? MV_GROW_VERSION : null;
|
59 |
return $version;
|
60 |
}
|
65 |
public function set_version() {
|
66 |
if ( ! is_null( self::VERSION ) ) {
|
67 |
// If the build tool has run, use its version.
|
68 |
+
self::$VERSION = self::VERSION; // @codingStandardsIgnoreLine
|
69 |
define( 'MV_GROW_VERSION', self::VERSION );
|
70 |
+
return;
|
|
|
|
|
|
|
|
|
71 |
}
|
72 |
+
// Pull version from the plugin bootstrap file
|
73 |
+
$version = \get_file_data(DPSP_PLUGIN_DIR . '/index.php', [
|
74 |
+
'version' => 'Version',
|
75 |
+
])['version'];
|
76 |
+
|
77 |
+
$version = ! empty( $version ) ? $version : '99';
|
78 |
+
self::$VERSION = $version; // @codingStandardsIgnoreLine
|
79 |
+
define( 'MV_GROW_VERSION', $version );
|
80 |
}
|
81 |
|
82 |
/**
|
99 |
public function init() {
|
100 |
$this->set_version();
|
101 |
define( 'DPSP_VERSION', self::$VERSION );
|
102 |
+
|
103 |
define( 'DPSP_TRANSLATION_TEXTDOMAIN', 'social-pug' );
|
104 |
|
105 |
+
$this->has_license = (bool) Settings::get_setting( 'mv_grow_license', false );
|
106 |
+
|
107 |
// Register feature flags early.
|
108 |
add_action( 'after_setup_theme', '\Mediavine\Grow\register_flags' );
|
109 |
|
150 |
add_action( 'admin_init', [ $this, 'update_database' ] );
|
151 |
add_filter( 'body_class', [ $this, 'add_body_class' ] );
|
152 |
|
153 |
+
// Set up Facebook Authorization
|
154 |
+
add_action( 'admin_init', 'dpsp_capture_authorize_facebook_access_token' );
|
155 |
// Add a class to the admin body to tell plugin pages apart
|
156 |
add_filter( 'admin_body_class', [ $this, 'admin_body_class' ] );
|
157 |
|
165 |
dpsp_register_functions();
|
166 |
dpsp_register_functions_admin();
|
167 |
dpsp_register_functions_cron();
|
|
|
168 |
dpsp_register_functions_post();
|
169 |
+
|
170 |
+
if ( Share_Counts::are_counts_enabled() ) {
|
171 |
+
// Only Register Count functions if counts are enabled
|
172 |
+
$this->share_counts = Share_Counts::get_instance();
|
173 |
+
}
|
174 |
+
|
175 |
dpsp_register_functions_tools();
|
176 |
|
177 |
// Hook registration in tools files.
|
340 |
/**
|
341 |
* Enqueue scripts and styles for the admin dashboard
|
342 |
*
|
343 |
+
* @param string $hook_suffix The current admin page. this is being run on
|
344 |
*/
|
345 |
+
public function init_admin_scripts( string $hook_suffix ) {
|
346 |
|
347 |
+
if ( strpos( $hook_suffix, 'dpsp' ) !== false ) {
|
348 |
wp_register_script( 'select2-js', DPSP_PLUGIN_DIR_URL . 'assets/libs/select2/select2.min.js', [ 'jquery' ] );
|
349 |
wp_enqueue_script( 'select2-js' );
|
350 |
wp_register_style( 'select2-css', DPSP_PLUGIN_DIR_URL . 'assets/libs/select2/select2.min.css' );
|
352 |
|
353 |
wp_register_script(
|
354 |
'dpsp-touch-punch-js',
|
355 |
+
DPSP_PLUGIN_DIR_URL . 'assets/dist/jquery.ui.touch-punch.min.' . MV_GROW_VERSION . '.js',
|
356 |
[
|
357 |
'jquery-ui-sortable',
|
358 |
'jquery',
|
387 |
*
|
388 |
*/
|
389 |
public function init_gutenberg_scripts() {
|
390 |
+
|
391 |
+
$screen = get_current_screen();
|
392 |
+
// Don't load on the widgets screen because these scripts conflict with the widget editor scripts
|
393 |
+
if ( $screen && 'widgets' === $screen->id ) {
|
394 |
+
return false;
|
395 |
+
}
|
396 |
$IS_DEVELOPMENT = apply_filters( 'mv_grow_dev_mode', false );
|
397 |
$script_url = $IS_DEVELOPMENT ? DPSP_PLUGIN_DIR_URL . 'assets/dist/dev-entry.js' : DPSP_PLUGIN_DIR_URL . 'assets/dist/block-editor.' . self::$VERSION . '.js';
|
398 |
wp_enqueue_script(
|
514 |
*
|
515 |
* @return bool
|
516 |
*/
|
517 |
+
public function is_pro() : bool {
|
518 |
return ! self::is_free();
|
519 |
}
|
520 |
|
530 |
|
531 |
return __( 'Grow Social Pro by Mediavine', 'social-pug' );
|
532 |
}
|
533 |
+
}
|
inc/class-status-api-controller.php
CHANGED
@@ -27,7 +27,7 @@ class Status_API_Controller extends WP_REST_Controller {
|
|
27 |
* @param WP_REST_Server $wp_rest_server Server object.
|
28 |
* @param Social_Pug $addon_class Primary addon class.
|
29 |
*/
|
30 |
-
public function __construct( $wp_rest_server, $addon_class ) {
|
31 |
$this->plugin_instance = $addon_class;
|
32 |
$this->wp_rest_server = $wp_rest_server;
|
33 |
}
|
@@ -37,7 +37,7 @@ class Status_API_Controller extends WP_REST_Controller {
|
|
37 |
*
|
38 |
* @return WP_REST_Response
|
39 |
*/
|
40 |
-
public function get_status() {
|
41 |
$data = [
|
42 |
'is_pro' => $this->plugin_instance->is_pro(),
|
43 |
'version' => $this->plugin_instance->get_version(),
|
@@ -48,7 +48,7 @@ class Status_API_Controller extends WP_REST_Controller {
|
|
48 |
/**
|
49 |
* Registers the routes for the objects of the controller.
|
50 |
*/
|
51 |
-
public function register_routes() {
|
52 |
$status_schema = new Status_Schema();
|
53 |
$this->wp_rest_server->register_route(
|
54 |
Social_Pug::API_NAMESPACE,
|
27 |
* @param WP_REST_Server $wp_rest_server Server object.
|
28 |
* @param Social_Pug $addon_class Primary addon class.
|
29 |
*/
|
30 |
+
public function __construct( WP_REST_Server $wp_rest_server, Social_Pug $addon_class ) {
|
31 |
$this->plugin_instance = $addon_class;
|
32 |
$this->wp_rest_server = $wp_rest_server;
|
33 |
}
|
37 |
*
|
38 |
* @return WP_REST_Response
|
39 |
*/
|
40 |
+
public function get_status() : WP_REST_Response {
|
41 |
$data = [
|
42 |
'is_pro' => $this->plugin_instance->is_pro(),
|
43 |
'version' => $this->plugin_instance->get_version(),
|
48 |
/**
|
49 |
* Registers the routes for the objects of the controller.
|
50 |
*/
|
51 |
+
public function register_routes() : void {
|
52 |
$status_schema = new Status_Schema();
|
53 |
$this->wp_rest_server->register_route(
|
54 |
Social_Pug::API_NAMESPACE,
|
inc/class-view-loader.php
CHANGED
@@ -32,7 +32,7 @@ class View_Loader {
|
|
32 |
/**
|
33 |
* Custom version of wp_kses to allow SVG tags.
|
34 |
*
|
35 |
-
* @return
|
36 |
*/
|
37 |
public static function get_allowed_tags() {
|
38 |
$kses_defaults = wp_kses_allowed_html( 'post' );
|
@@ -47,6 +47,7 @@ class View_Loader {
|
|
47 |
'width' => true,
|
48 |
'height' => true,
|
49 |
'viewbox' => true, // <= Must be lower case!
|
|
|
50 |
],
|
51 |
'g' => [ 'fill' => true ],
|
52 |
'title' => [ 'title' => true ],
|
@@ -63,6 +64,7 @@ class View_Loader {
|
|
63 |
'class' => true,
|
64 |
'rx' => true,
|
65 |
'ry' => true,
|
|
|
66 |
],
|
67 |
'ellipse' => [
|
68 |
'x' => true,
|
@@ -70,6 +72,7 @@ class View_Loader {
|
|
70 |
'height' => true,
|
71 |
'width' => true,
|
72 |
'class' => true,
|
|
|
73 |
],
|
74 |
];
|
75 |
|
32 |
/**
|
33 |
* Custom version of wp_kses to allow SVG tags.
|
34 |
*
|
35 |
+
* @return array
|
36 |
*/
|
37 |
public static function get_allowed_tags() {
|
38 |
$kses_defaults = wp_kses_allowed_html( 'post' );
|
47 |
'width' => true,
|
48 |
'height' => true,
|
49 |
'viewbox' => true, // <= Must be lower case!
|
50 |
+
'fill' => true,
|
51 |
],
|
52 |
'g' => [ 'fill' => true ],
|
53 |
'title' => [ 'title' => true ],
|
64 |
'class' => true,
|
65 |
'rx' => true,
|
66 |
'ry' => true,
|
67 |
+
'fill' => true,
|
68 |
],
|
69 |
'ellipse' => [
|
70 |
'x' => true,
|
72 |
'height' => true,
|
73 |
'width' => true,
|
74 |
'class' => true,
|
75 |
+
'fill' => true,
|
76 |
],
|
77 |
];
|
78 |
|
inc/functions-admin.php
CHANGED
@@ -2,6 +2,7 @@
|
|
2 |
|
3 |
use Mediavine\Grow\View_Loader;
|
4 |
use Mediavine\Grow\Networks;
|
|
|
5 |
|
6 |
/**
|
7 |
* Displays the HTML of the plugin admin header.
|
@@ -25,13 +26,13 @@ function dpsp_admin_header() {
|
|
25 |
*
|
26 |
* @param string $page The current page that the header will appear on
|
27 |
*/
|
28 |
-
function dpsp_get_admin_header( $page ) {
|
29 |
$logo_base_url = 'https://grow-img-host.grow.me/grow-logo-icon-white-RGB.svg';
|
30 |
|
31 |
// translators: %1$s is replaced by the type of logo (e.g. Grow Social).
|
32 |
$logo_alt = esc_attr( sprintf( __( '%1$s logo', 'mediavine' ), __( 'Grow Social', 'mediavine' ) ) );
|
33 |
$logo_src = esc_attr( $logo_base_url );
|
34 |
-
$html_version = esc_html(
|
35 |
$documentation_href = esc_attr( dpsp_get_documentation_link( $page ) );
|
36 |
|
37 |
$result = /** @lang HTML */ <<<HTML
|
@@ -54,11 +55,11 @@ HTML;
|
|
54 |
/**
|
55 |
* Returns the link to the docs depending on the page the user is on.
|
56 |
*
|
57 |
-
* @param $page
|
58 |
*
|
59 |
* @return string
|
60 |
*/
|
61 |
-
function dpsp_get_documentation_link( $page ) {
|
62 |
$page = str_replace( 'dpsp-', '', $page );
|
63 |
|
64 |
switch ( $page ) {
|
@@ -75,8 +76,10 @@ function dpsp_get_documentation_link( $page ) {
|
|
75 |
case 'pinterest-images':
|
76 |
$url = 'https://product-help.mediavine.com/en/articles/4460982-how-to-add-a-pin-it-button-to-your-post-s-images';
|
77 |
break;
|
78 |
-
case 'import-export':
|
79 |
case 'follow-widget':
|
|
|
|
|
|
|
80 |
case 'pop-up':
|
81 |
default:
|
82 |
$url = 'https://product-help.mediavine.com/en/collections/2458145-grow-social-pro';
|
@@ -89,10 +92,10 @@ function dpsp_get_documentation_link( $page ) {
|
|
89 |
/**
|
90 |
* Displays the HTML for a given tool.
|
91 |
*
|
92 |
-
* @param string $tool_slug
|
93 |
-
* @param array
|
94 |
*/
|
95 |
-
function dpsp_output_tool_box( $tool_slug, $tool ) {
|
96 |
$grow_url = 'https://marketplace.mediavine.com/grow-social-pro/';
|
97 |
$is_extension = empty( $tool['admin_page'] );
|
98 |
$box_class = Social_Pug::is_free() && ! $is_extension ? 'dpsp-col-3-8' : 'dpsp-col-1-4';
|
@@ -156,16 +159,16 @@ function dpsp_output_tool_box( $tool_slug, $tool ) {
|
|
156 |
/**
|
157 |
* Function that displays the HTML for a settings field.
|
158 |
*
|
159 |
-
* @param $type
|
160 |
-
* @param $name
|
161 |
-
* @param
|
162 |
-
* @param string $label
|
163 |
-
* @param array
|
164 |
-
* @param string $tooltip
|
165 |
-
* @param array
|
166 |
-
* @param string $disabled
|
167 |
*/
|
168 |
-
function dpsp_settings_field( $type, $name, $saved_value = '', $label = '', $options = [], $tooltip = '', $editor_settings = [], $disabled = '' ) {
|
169 |
|
170 |
$settings_field_slug = ( ! empty( $label ) ? strtolower( str_replace( ' ', '-', $label ) ) : '' );
|
171 |
|
@@ -174,29 +177,29 @@ function dpsp_settings_field( $type, $name, $saved_value = '', $label = '', $opt
|
|
174 |
switch ( $type ) {
|
175 |
// Display input type text
|
176 |
case 'text':
|
177 |
-
echo ! empty( $label ) ? '<label for="' . esc_attr( $name ) . '" class="dpsp-setting-field-label">' .
|
178 |
-
echo '<input type="text" ' . (
|
179 |
break;
|
180 |
|
181 |
// Display textareas
|
182 |
case 'textarea':
|
183 |
-
echo ! empty( $label ) ? '<label for="' . esc_attr( $name ) . '" class="dpsp-setting-field-label">' .
|
184 |
-
echo '<textarea ' . (
|
185 |
break;
|
186 |
|
187 |
// Display wp_editors
|
188 |
case 'editor':
|
189 |
-
echo ! empty( $label ) ? '<label for="' . esc_attr( $name ) . '" class="dpsp-setting-field-label">' .
|
190 |
wp_editor( $saved_value, $name, $editor_settings );
|
191 |
break;
|
192 |
|
193 |
// Display input type radio
|
194 |
case 'radio':
|
195 |
-
echo ! empty( $label ) ? '<label class="dpsp-setting-field-label">' .
|
196 |
if ( ! empty( $options ) ) {
|
197 |
foreach ( $options as $option_value => $option_name ) {
|
198 |
-
echo '<input type="radio" id="' . esc_attr( $name ) . '[' . esc_attr( $option_value ) . ']
|
199 |
-
echo '<label for="' . esc_attr( $name ) . '[' . esc_attr( $option_value ) . ']
|
200 |
}
|
201 |
}
|
202 |
break;
|
@@ -208,16 +211,16 @@ function dpsp_settings_field( $type, $name, $saved_value = '', $label = '', $opt
|
|
208 |
if ( is_array( $saved_value ) ) {
|
209 |
$saved_value = $saved_value[0];
|
210 |
}
|
211 |
-
echo '<input type="checkbox" ' . (
|
212 |
-
echo ! empty( $label ) ? '<label for="' . esc_attr( $name ) . '" class="dpsp-setting-field-label">' .
|
213 |
|
214 |
// Else display checkboxes just like radios
|
215 |
} else {
|
216 |
-
echo ! empty( $label ) ? '<label class="dpsp-setting-field-label">' .
|
217 |
if ( ! empty( $options ) ) {
|
218 |
foreach ( $options as $option_value => $option_name ) {
|
219 |
-
echo '<input type="checkbox" id="' . esc_attr( $name ) . '[' . esc_attr( $option_value ) . ']
|
220 |
-
echo '<label for="' . esc_attr( $name ) . '[' . esc_attr( $option_value ) . ']
|
221 |
}
|
222 |
}
|
223 |
}
|
@@ -230,29 +233,29 @@ function dpsp_settings_field( $type, $name, $saved_value = '', $label = '', $opt
|
|
230 |
$saved_value = $saved_value[0];
|
231 |
}
|
232 |
echo '<div class="dpsp-switch">';
|
233 |
-
echo '<input type="checkbox" ' . (
|
234 |
echo ! empty( $label ) ? '<label for="' . esc_attr( $name ) . '"></label>' : '';
|
235 |
echo '</div>';
|
236 |
-
echo ! empty( $label ) ? '<label for="' . esc_attr( $name ) . '" class="dpsp-setting-field-label">' .
|
237 |
}
|
238 |
break;
|
239 |
|
240 |
case 'select':
|
241 |
-
echo ! empty( $label ) ? '<label for="' . esc_attr( $name ) . '" class="dpsp-setting-field-label">' .
|
242 |
echo '<select id="' . esc_attr( $name ) . '" name="' . esc_attr( $name ) . '"' . esc_attr( $disabled ) . '>';
|
243 |
foreach ( $options as $option_value => $option_name ) {
|
244 |
-
echo '<option value="' . esc_attr( $option_value ) . '" ' . selected( $saved_value, $option_value, false ) . '>' .
|
245 |
}
|
246 |
echo '</select>';
|
247 |
break;
|
248 |
|
249 |
case 'color-picker':
|
250 |
-
echo ! empty( $label ) ? '<label for="' . esc_attr( $name ) . '" class="dpsp-setting-field-label">' .
|
251 |
-
echo '<input class="dpsp-color-picker" type="text" ' . (
|
252 |
break;
|
253 |
|
254 |
case 'image':
|
255 |
-
echo ! empty( $label ) ? '<label for="' . esc_attr( $name ) . '" class="dpsp-setting-field-label">' .
|
256 |
echo '<div>';
|
257 |
if ( ! empty( $saved_value['id'] ) ) {
|
258 |
$thumb_details = wp_get_attachment_image_src( $saved_value['id'], 'medium' );
|
@@ -267,7 +270,7 @@ function dpsp_settings_field( $type, $name, $saved_value = '', $label = '', $opt
|
|
267 |
$saved_value['id'] = '';
|
268 |
}
|
269 |
echo '<div>';
|
270 |
-
echo '<img src="' .
|
271 |
echo '</div>';
|
272 |
echo '<a class="dpsp-image-select button button-primary ' . ( ! empty( $saved_value['id'] ) ? 'hidden' : '' ) . '" href="#">' . esc_html__( 'Select Image', 'social-pug' ) . '</a>';
|
273 |
echo '<a class="dpsp-image-remove button button-secondary ' . ( empty( $saved_value['id'] ) ? 'hidden' : '' ) . '" href="#">' . esc_html__( 'Remove Image', 'social-pug' ) . '</a>';
|
@@ -290,11 +293,11 @@ function dpsp_settings_field( $type, $name, $saved_value = '', $label = '', $opt
|
|
290 |
/**
|
291 |
* Set the column_count option to 1 when displaying the buttons inside the WP dashboard admin
|
292 |
*
|
293 |
-
* @param array
|
294 |
* @param string $action - the current type of action ( share/follow )
|
295 |
* @param string $location - the display location for the buttons
|
296 |
*
|
297 |
-
* @return
|
298 |
*/
|
299 |
function dpsp_admin_buttons_display_column_count_to_one( $settings, $action, $location ) {
|
300 |
if ( empty( $settings['display']['column_count'] ) ) {
|
@@ -317,7 +320,7 @@ function dpsp_admin_buttons_display_column_count_to_one( $settings, $action, $lo
|
|
317 |
*
|
318 |
* @return string
|
319 |
*/
|
320 |
-
function dpsp_output_selectable_networks( $networks = [], $settings_networks ) {
|
321 |
$networks_container = Networks::get_instance();
|
322 |
$output = '<div id="dpsp-networks-selector-wrapper">';
|
323 |
$output .= '<ul id="dpsp-networks-selector">';
|
@@ -357,19 +360,18 @@ function dpsp_output_selectable_networks( $networks = [], $settings_networks ) {
|
|
357 |
/**
|
358 |
* Returns the HTML output with the sortable networks.
|
359 |
*
|
360 |
-
* @param $networks
|
361 |
-
* @param $settings_name
|
362 |
*
|
363 |
* @return string
|
364 |
*/
|
365 |
-
function dpsp_output_sortable_networks( $networks, $settings_name ) {
|
366 |
$networks_container = Networks::get_instance();
|
367 |
$output = '<ul class="dpsp-social-platforms-sort-list sortable">';
|
368 |
$current_network = 1;
|
369 |
if ( ! empty( $networks ) ) {
|
370 |
|
371 |
foreach ( $networks as $network_slug => $network_name ) {
|
372 |
-
//var_dump($networks[$network_slug]);
|
373 |
$network = $networks_container->get( $network_slug );
|
374 |
if ( ! $network ) {
|
375 |
continue;
|
@@ -389,8 +391,8 @@ function dpsp_output_sortable_networks( $networks, $settings_name ) {
|
|
389 |
|
390 |
// List item actions
|
391 |
$output .= '<div class="dpsp-list-actions">';
|
392 |
-
$output .= '<a class="dpsp-list-edit-label" href="#"><span class="dashicons dashicons-edit"></span>' . esc_html__( 'Edit Label' ) . '</a>';
|
393 |
-
$output .= '<a class="dpsp-list-remove" href="#"><span class="dashicons dashicons-no-alt"></span>' . esc_html__( 'Remove' ) . '</a>';
|
394 |
$output .= '</div>';
|
395 |
$output .= '</li>';
|
396 |
|
@@ -408,12 +410,12 @@ function dpsp_output_sortable_networks( $networks, $settings_name ) {
|
|
408 |
/**
|
409 |
* Outputs the HTML of the tooltip
|
410 |
*
|
411 |
-
* @param string tooltip - the text of the tooltip
|
412 |
-
* @param bool
|
413 |
*
|
414 |
* @return string
|
415 |
*/
|
416 |
-
function dpsp_output_backend_tooltip( $tooltip = '', $return = false ) {
|
417 |
$output = '<div class="dpsp-setting-field-tooltip-wrapper ' . ( ( strpos( $tooltip, '</a>' ) !== false ) ? 'dpsp-has-link' : '' ) . '">';
|
418 |
$output .= '<span class="dpsp-setting-field-tooltip-icon"></span>';
|
419 |
$output .= '<div class="dpsp-setting-field-tooltip dpsp-transition">' . $tooltip . '</div>';
|
@@ -424,6 +426,8 @@ function dpsp_output_backend_tooltip( $tooltip = '', $return = false ) {
|
|
424 |
} else {
|
425 |
echo wp_kses( $output, View_Loader::get_allowed_tags() );
|
426 |
}
|
|
|
|
|
427 |
}
|
428 |
|
429 |
/**
|
@@ -444,7 +448,7 @@ function dpsp_register_custom_post_type_columns() {
|
|
444 |
/**
|
445 |
* Adds the Shares column to all active post types.
|
446 |
*
|
447 |
-
* @param array $columns
|
448 |
*
|
449 |
* @return array
|
450 |
*/
|
@@ -467,7 +471,7 @@ function dpsp_set_shares_column( $columns ) {
|
|
467 |
/**
|
468 |
* Defines the total shares column as sortable.
|
469 |
*
|
470 |
-
* @param array $columns
|
471 |
*
|
472 |
* @return array
|
473 |
*/
|
@@ -480,12 +484,12 @@ function dpsp_set_shares_column_sortable( $columns ) {
|
|
480 |
/**
|
481 |
* Outputs the share counts in the Shares columns.
|
482 |
*
|
483 |
-
* @param string $column_name
|
484 |
-
* @param int
|
485 |
*/
|
486 |
-
function dpsp_output_shares_column( $column_name, $post_id ) {
|
487 |
if ( 'dpsp_shares' === $column_name ) {
|
488 |
-
echo '<span class="dpsp-list-table-post-share-count">' . esc_html(
|
489 |
}
|
490 |
}
|
491 |
|
@@ -493,7 +497,7 @@ function dpsp_output_shares_column( $column_name, $post_id ) {
|
|
493 |
/**
|
494 |
* Check to see if the user selected to order the posts by share counts and changes the query accordingly.
|
495 |
*
|
496 |
-
* @param WP_Query $query
|
497 |
*/
|
498 |
function dpsp_pre_get_posts_shares_query( $query ) {
|
499 |
if ( ! is_admin() ) {
|
@@ -510,10 +514,10 @@ function dpsp_pre_get_posts_shares_query( $query ) {
|
|
510 |
/**
|
511 |
* Makes a call to Facebook to scrape the post's Open Graph data after the post has been saved.
|
512 |
*
|
513 |
-
* @param int
|
514 |
-
* @param WP_Post $post
|
515 |
*/
|
516 |
-
function dpsp_save_post_facebook_scrape_url( $post_id, $post ) {
|
517 |
if ( ! is_admin() ) {
|
518 |
return;
|
519 |
}
|
2 |
|
3 |
use Mediavine\Grow\View_Loader;
|
4 |
use Mediavine\Grow\Networks;
|
5 |
+
use Mediavine\Grow\Share_Counts;
|
6 |
|
7 |
/**
|
8 |
* Displays the HTML of the plugin admin header.
|
26 |
*
|
27 |
* @param string $page The current page that the header will appear on
|
28 |
*/
|
29 |
+
function dpsp_get_admin_header( string $page ) : string {
|
30 |
$logo_base_url = 'https://grow-img-host.grow.me/grow-logo-icon-white-RGB.svg';
|
31 |
|
32 |
// translators: %1$s is replaced by the type of logo (e.g. Grow Social).
|
33 |
$logo_alt = esc_attr( sprintf( __( '%1$s logo', 'mediavine' ), __( 'Grow Social', 'mediavine' ) ) );
|
34 |
$logo_src = esc_attr( $logo_base_url );
|
35 |
+
$html_version = esc_html(MV_GROW_VERSION );
|
36 |
$documentation_href = esc_attr( dpsp_get_documentation_link( $page ) );
|
37 |
|
38 |
$result = /** @lang HTML */ <<<HTML
|
55 |
/**
|
56 |
* Returns the link to the docs depending on the page the user is on.
|
57 |
*
|
58 |
+
* @param string $page Page slug used to determine external documentation URL.
|
59 |
*
|
60 |
* @return string
|
61 |
*/
|
62 |
+
function dpsp_get_documentation_link( string $page ) : string {
|
63 |
$page = str_replace( 'dpsp-', '', $page );
|
64 |
|
65 |
switch ( $page ) {
|
76 |
case 'pinterest-images':
|
77 |
$url = 'https://product-help.mediavine.com/en/articles/4460982-how-to-add-a-pin-it-button-to-your-post-s-images';
|
78 |
break;
|
|
|
79 |
case 'follow-widget':
|
80 |
+
$url = 'https://product-help.mediavine.com/en/articles/4460920-using-the-follow-widget-in-grow-social-pro';
|
81 |
+
break;
|
82 |
+
case 'import-export':
|
83 |
case 'pop-up':
|
84 |
default:
|
85 |
$url = 'https://product-help.mediavine.com/en/collections/2458145-grow-social-pro';
|
92 |
/**
|
93 |
* Displays the HTML for a given tool.
|
94 |
*
|
95 |
+
* @param string $tool_slug Slug for the tool we are outputting
|
96 |
+
* @param array $tool An array of data about the tool
|
97 |
*/
|
98 |
+
function dpsp_output_tool_box( string $tool_slug, array $tool ) : void {
|
99 |
$grow_url = 'https://marketplace.mediavine.com/grow-social-pro/';
|
100 |
$is_extension = empty( $tool['admin_page'] );
|
101 |
$box_class = Social_Pug::is_free() && ! $is_extension ? 'dpsp-col-3-8' : 'dpsp-col-1-4';
|
159 |
/**
|
160 |
* Function that displays the HTML for a settings field.
|
161 |
*
|
162 |
+
* @param string $type The type of settings field
|
163 |
+
* @param string $name Name for the settings field
|
164 |
+
* @param mixed $saved_value The current value saved in the database for this setting
|
165 |
+
* @param string $label The label for the setting
|
166 |
+
* @param array $options Options for setting types that feature different choices
|
167 |
+
* @param string $tooltip Tooltip to display for the setting
|
168 |
+
* @param array $editor_settings Settings for the tinyMCE editor that will be passed to the editor rendered when setting type is 'editor'
|
169 |
+
* @param string $disabled This string will be rendered in the input attribute if the type is select or text, used to pass a disabled attribute
|
170 |
*/
|
171 |
+
function dpsp_settings_field( string $type, string $name, $saved_value = '', string $label = '', array $options = [], string $tooltip = '', array $editor_settings = [], string $disabled = '' ) : void {
|
172 |
|
173 |
$settings_field_slug = ( ! empty( $label ) ? strtolower( str_replace( ' ', '-', $label ) ) : '' );
|
174 |
|
177 |
switch ( $type ) {
|
178 |
// Display input type text
|
179 |
case 'text':
|
180 |
+
echo ! empty( $label ) ? '<label for="' . esc_attr( $name ) . '" class="dpsp-setting-field-label">' . esc_html( $label ) . '</label>' : '';
|
181 |
+
echo '<input type="text" ' . ( ! empty( $label ) ? 'id="' . esc_attr( $name ) . '"' : '' ) . ' name="' . esc_attr( $name ) . '" value="' . esc_attr( $saved_value ) . '" ' . esc_attr( $disabled ) . ' />'; // @todo WordPress' disabled() function should be used instead
|
182 |
break;
|
183 |
|
184 |
// Display textareas
|
185 |
case 'textarea':
|
186 |
+
echo ! empty( $label ) ? '<label for="' . esc_attr( $name ) . '" class="dpsp-setting-field-label">' . esc_html( $label ) . '</label>' : '';
|
187 |
+
echo '<textarea ' . ( ! empty( $label ) ? 'id="' . esc_attr( $name ) . '"' : '' ) . ' name="' . esc_attr( $name ) . '">' . esc_textarea( $saved_value ) . '</textarea>';
|
188 |
break;
|
189 |
|
190 |
// Display wp_editors
|
191 |
case 'editor':
|
192 |
+
echo ! empty( $label ) ? '<label for="' . esc_attr( $name ) . '" class="dpsp-setting-field-label">' . esc_html( $label ) . '</label>' : '';
|
193 |
wp_editor( $saved_value, $name, $editor_settings );
|
194 |
break;
|
195 |
|
196 |
// Display input type radio
|
197 |
case 'radio':
|
198 |
+
echo ! empty( $label ) ? '<label class="dpsp-setting-field-label">' . esc_html( $label ) . '</label>' : '';
|
199 |
if ( ! empty( $options ) ) {
|
200 |
foreach ( $options as $option_value => $option_name ) {
|
201 |
+
echo '<input type="radio" id="' . esc_attr( $name ) . '[' . esc_attr( $option_value ) . ']" name="' . esc_attr( $name ) . '" value="' . esc_attr( $option_value ) . '" ' . checked( $option_value, $saved_value, false ) . ' />';
|
202 |
+
echo '<label for="' . esc_attr( $name ) . '[' . esc_attr( $option_value ) . ']" class="dpsp-settings-field-radio">' . ( isset( $option_name ) ? esc_attr( $option_name ) : esc_attr( $option_value ) ) . '<span></span></label>';
|
203 |
}
|
204 |
}
|
205 |
break;
|
211 |
if ( is_array( $saved_value ) ) {
|
212 |
$saved_value = $saved_value[0];
|
213 |
}
|
214 |
+
echo '<input type="checkbox" ' . ( ! empty( $label ) ? 'id="' . esc_attr( $name ) . '"' : '' ) . ' name="' . esc_attr( $name ) . '" value="' . esc_attr( $options[0] ) . '" ' . checked( $options[0], $saved_value, false ) . ' />';
|
215 |
+
echo ! empty( $label ) ? '<label for="' . esc_attr( $name ) . '" class="dpsp-setting-field-label">' . esc_html( $label ) . '<span></span></label>' : '';
|
216 |
|
217 |
// Else display checkboxes just like radios
|
218 |
} else {
|
219 |
+
echo ! empty( $label ) ? '<label class="dpsp-setting-field-label">' . esc_html( $label ) . '</label>' : '';
|
220 |
if ( ! empty( $options ) ) {
|
221 |
foreach ( $options as $option_value => $option_name ) {
|
222 |
+
echo '<input type="checkbox" id="' . esc_attr( $name ) . '[' . esc_attr( $option_value ) . ']" name="' . esc_attr( $name ) . '" value="' . esc_attr( $option_value ) . '" ' . ( in_array( $option_value, $saved_value, true ) ? 'checked' : '' ) . ' />';
|
223 |
+
echo '<label for="' . esc_attr( $name ) . '[' . esc_attr( $option_value ) . ']" class="dpsp-settings-field-checkbox">' . ( isset( $option_name ) ? esc_attr( $option_name ) : esc_attr( $option_value ) ) . '<span></span></label>';
|
224 |
}
|
225 |
}
|
226 |
}
|
233 |
$saved_value = $saved_value[0];
|
234 |
}
|
235 |
echo '<div class="dpsp-switch">';
|
236 |
+
echo '<input type="checkbox" ' . ( ! empty( $label ) ? 'id="' . esc_attr( $name ) . '"' : '' ) . ' name="' . esc_attr( $name ) . '" class="cmn-toggle cmn-toggle-round" value="' . esc_attr( $options[0] ) . '" ' . checked( $options[0], $saved_value, false ) . ' />';
|
237 |
echo ! empty( $label ) ? '<label for="' . esc_attr( $name ) . '"></label>' : '';
|
238 |
echo '</div>';
|
239 |
+
echo ! empty( $label ) ? '<label for="' . esc_attr( $name ) . '" class="dpsp-setting-field-label">' . esc_html( $label ) . '<span></span></label>' : '';
|
240 |
}
|
241 |
break;
|
242 |
|
243 |
case 'select':
|
244 |
+
echo ! empty( $label ) ? '<label for="' . esc_attr( $name ) . '" class="dpsp-setting-field-label">' . esc_html( $label ) . '</label>' : '';
|
245 |
echo '<select id="' . esc_attr( $name ) . '" name="' . esc_attr( $name ) . '"' . esc_attr( $disabled ) . '>';
|
246 |
foreach ( $options as $option_value => $option_name ) {
|
247 |
+
echo '<option value="' . esc_attr( $option_value ) . '" ' . selected( $saved_value, $option_value, false ) . '>' . esc_html( $option_name ) . '</option>';
|
248 |
}
|
249 |
echo '</select>';
|
250 |
break;
|
251 |
|
252 |
case 'color-picker':
|
253 |
+
echo ! empty( $label ) ? '<label for="' . esc_attr( $name ) . '" class="dpsp-setting-field-label">' . esc_html( $label ) . '</label>' : '';
|
254 |
+
echo '<input class="dpsp-color-picker" type="text" ' . ( ! empty( $label ) ? 'id="' . esc_attr( $name ) . '"' : '' ) . ' name="' . esc_attr( $name ) . '" value="' . esc_attr( $saved_value ) . '" />';
|
255 |
break;
|
256 |
|
257 |
case 'image':
|
258 |
+
echo ! empty( $label ) ? '<label for="' . esc_attr( $name ) . '" class="dpsp-setting-field-label">' . esc_html( $label ) . '</label>' : '';
|
259 |
echo '<div>';
|
260 |
if ( ! empty( $saved_value['id'] ) ) {
|
261 |
$thumb_details = wp_get_attachment_image_src( $saved_value['id'], 'medium' );
|
270 |
$saved_value['id'] = '';
|
271 |
}
|
272 |
echo '<div>';
|
273 |
+
echo '<img src="' . esc_url( $thumb_src ) . '">';
|
274 |
echo '</div>';
|
275 |
echo '<a class="dpsp-image-select button button-primary ' . ( ! empty( $saved_value['id'] ) ? 'hidden' : '' ) . '" href="#">' . esc_html__( 'Select Image', 'social-pug' ) . '</a>';
|
276 |
echo '<a class="dpsp-image-remove button button-secondary ' . ( empty( $saved_value['id'] ) ? 'hidden' : '' ) . '" href="#">' . esc_html__( 'Remove Image', 'social-pug' ) . '</a>';
|
293 |
/**
|
294 |
* Set the column_count option to 1 when displaying the buttons inside the WP dashboard admin
|
295 |
*
|
296 |
+
* @param array $settings - the settings array for the current location
|
297 |
* @param string $action - the current type of action ( share/follow )
|
298 |
* @param string $location - the display location for the buttons
|
299 |
*
|
300 |
+
* @return mixed
|
301 |
*/
|
302 |
function dpsp_admin_buttons_display_column_count_to_one( $settings, $action, $location ) {
|
303 |
if ( empty( $settings['display']['column_count'] ) ) {
|
320 |
*
|
321 |
* @return string
|
322 |
*/
|
323 |
+
function dpsp_output_selectable_networks( array $networks = [], array $settings_networks = [] ) : string {
|
324 |
$networks_container = Networks::get_instance();
|
325 |
$output = '<div id="dpsp-networks-selector-wrapper">';
|
326 |
$output .= '<ul id="dpsp-networks-selector">';
|
360 |
/**
|
361 |
* Returns the HTML output with the sortable networks.
|
362 |
*
|
363 |
+
* @param array $networks The networks to sort
|
364 |
+
* @param string $settings_name The name for the setting that the sorted networks will be saved to
|
365 |
*
|
366 |
* @return string
|
367 |
*/
|
368 |
+
function dpsp_output_sortable_networks( array $networks, string $settings_name = '' ) : string {
|
369 |
$networks_container = Networks::get_instance();
|
370 |
$output = '<ul class="dpsp-social-platforms-sort-list sortable">';
|
371 |
$current_network = 1;
|
372 |
if ( ! empty( $networks ) ) {
|
373 |
|
374 |
foreach ( $networks as $network_slug => $network_name ) {
|
|
|
375 |
$network = $networks_container->get( $network_slug );
|
376 |
if ( ! $network ) {
|
377 |
continue;
|
391 |
|
392 |
// List item actions
|
393 |
$output .= '<div class="dpsp-list-actions">';
|
394 |
+
$output .= '<a class="dpsp-list-edit-label" href="#"><span class="dashicons dashicons-edit"></span>' . esc_html__( 'Edit Label', 'social-pug' ) . '</a>';
|
395 |
+
$output .= '<a class="dpsp-list-remove" href="#"><span class="dashicons dashicons-no-alt"></span>' . esc_html__( 'Remove', 'social-pug' ) . '</a>';
|
396 |
$output .= '</div>';
|
397 |
$output .= '</li>';
|
398 |
|
410 |
/**
|
411 |
* Outputs the HTML of the tooltip
|
412 |
*
|
413 |
+
* @param string $tooltip - the text of the tooltip
|
414 |
+
* @param bool $return - whether to return or to output the HTML
|
415 |
*
|
416 |
* @return string
|
417 |
*/
|
418 |
+
function dpsp_output_backend_tooltip( string $tooltip = '', bool $return = false ) : ?string {
|
419 |
$output = '<div class="dpsp-setting-field-tooltip-wrapper ' . ( ( strpos( $tooltip, '</a>' ) !== false ) ? 'dpsp-has-link' : '' ) . '">';
|
420 |
$output .= '<span class="dpsp-setting-field-tooltip-icon"></span>';
|
421 |
$output .= '<div class="dpsp-setting-field-tooltip dpsp-transition">' . $tooltip . '</div>';
|
426 |
} else {
|
427 |
echo wp_kses( $output, View_Loader::get_allowed_tags() );
|
428 |
}
|
429 |
+
|
430 |
+
return null;
|
431 |
}
|
432 |
|
433 |
/**
|
448 |
/**
|
449 |
* Adds the Shares column to all active post types.
|
450 |
*
|
451 |
+
* @param array $columns The current columns in the post editor screen
|
452 |
*
|
453 |
* @return array
|
454 |
*/
|
471 |
/**
|
472 |
* Defines the total shares column as sortable.
|
473 |
*
|
474 |
+
* @param array $columns The current sortable columns
|
475 |
*
|
476 |
* @return array
|
477 |
*/
|
484 |
/**
|
485 |
* Outputs the share counts in the Shares columns.
|
486 |
*
|
487 |
+
* @param string $column_name The column name, this function will not do anything if it's not the share count column
|
488 |
+
* @param int $post_id The post id for this row
|
489 |
*/
|
490 |
+
function dpsp_output_shares_column( string $column_name, int $post_id ) : void {
|
491 |
if ( 'dpsp_shares' === $column_name ) {
|
492 |
+
echo '<span class="dpsp-list-table-post-share-count">' . esc_html( Share_Counts::post_total_share_counts( $post_id ) ) . '</span>';
|
493 |
}
|
494 |
}
|
495 |
|
497 |
/**
|
498 |
* Check to see if the user selected to order the posts by share counts and changes the query accordingly.
|
499 |
*
|
500 |
+
* @param WP_Query $query The current Query
|
501 |
*/
|
502 |
function dpsp_pre_get_posts_shares_query( $query ) {
|
503 |
if ( ! is_admin() ) {
|
514 |
/**
|
515 |
* Makes a call to Facebook to scrape the post's Open Graph data after the post has been saved.
|
516 |
*
|
517 |
+
* @param int $post_id the post id to scrape
|
518 |
+
* @param WP_Post $post The post itself
|
519 |
*/
|
520 |
+
function dpsp_save_post_facebook_scrape_url( $post_id, $post ) : void {
|
521 |
if ( ! is_admin() ) {
|
522 |
return;
|
523 |
}
|
inc/functions-deprecated.php
ADDED
@@ -0,0 +1,222 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
use Mediavine\Grow\Share_Counts;
|
4 |
+
use Mediavine\Grow\Networks;
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Originally from functions-mobile.php
|
8 |
+
* Used to filter out WhatsApp from showing on desktop
|
9 |
+
* removed in favor of using media queries
|
10 |
+
* Public function but unlikely to be used
|
11 |
+
* @since 2.15.0
|
12 |
+
* @param array $settings
|
13 |
+
* @param $action
|
14 |
+
* @param $location
|
15 |
+
*
|
16 |
+
* @return array
|
17 |
+
* @deprecated 2.15.0
|
18 |
+
*/
|
19 |
+
function dpsp_handle_mobile_only_networks( $settings, $action, $location ) {
|
20 |
+
return $settings;
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Refreshes the share counts if the share counts cache has expired.
|
25 |
+
*
|
26 |
+
* @return bool
|
27 |
+
* @deprecated 2.16.0
|
28 |
+
*/
|
29 |
+
function dpsp_refresh_post_share_counts() {
|
30 |
+
return Share_Counts::get_instance()->check_share_counts();
|
31 |
+
}
|
32 |
+
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Checks to see if the post's share counts were updated recently or not.
|
36 |
+
*
|
37 |
+
* @deprecated 2.16.0
|
38 |
+
* @param WP_Post $post_obj
|
39 |
+
* @return bool
|
40 |
+
*/
|
41 |
+
function dpsp_is_post_share_counts_cache_expired( $post_obj ) {
|
42 |
+
return Share_Counts::is_post_count_expired( $post_obj );
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* @deprecated 2.16.0
|
47 |
+
*/
|
48 |
+
function dpsp_invalidate_all_share_counts() {
|
49 |
+
Share_Counts::invalidate_all();
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* Returns an array with the saved shares from the database.
|
54 |
+
*
|
55 |
+
* @param $post_id
|
56 |
+
* @return array
|
57 |
+
* @deprecated 2.16.0
|
58 |
+
*/
|
59 |
+
function dpsp_get_post_share_counts( $post_id = 0 ) {
|
60 |
+
return Share_Counts::post_share_counts( $post_id );
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Updates the given share counts for a post into the database.
|
65 |
+
*
|
66 |
+
* @param int $post_id - the id of the post to save the shares
|
67 |
+
* @param array $updated_share_counts - an array with the network shares and total shares
|
68 |
+
* @return bool
|
69 |
+
* @deprecated 2.16.0
|
70 |
+
*/
|
71 |
+
function dpsp_update_post_share_counts( $post_id = 0, $updated_share_counts = [] ) {
|
72 |
+
if ( empty( $post_id ) || empty( $updated_share_counts ) ) {
|
73 |
+
return false;
|
74 |
+
}
|
75 |
+
|
76 |
+
$share_counts = Share_Counts::get_instance();
|
77 |
+
$post = get_post( $post_id );
|
78 |
+
$formatted_shares = [];
|
79 |
+
foreach ( $updated_share_counts as $network_slug => $count ) {
|
80 |
+
$formatted_shares[ $network_slug . '_share_count' ] = $count;
|
81 |
+
}
|
82 |
+
$updated_shares = new \Mediavine\Grow\Share_Count_Url_Counts( $formatted_shares );
|
83 |
+
$share_counts->update_post_share_counts( $post, $updated_shares );
|
84 |
+
|
85 |
+
return true;
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* Updates the top shared posts array.
|
90 |
+
*
|
91 |
+
* @param int $post_id - the id of the post to save the shares
|
92 |
+
* @param array $share_counts - an array with the network shares and total shares
|
93 |
+
* @return bool
|
94 |
+
* @deprecated 1.16.0
|
95 |
+
*/
|
96 |
+
function dpsp_update_top_shared_posts( $post_id = 0, $share_counts = [] ) {
|
97 |
+
return Share_Counts::update_top_shared_posts( $post_id, $share_counts );
|
98 |
+
}
|
99 |
+
|
100 |
+
/**
|
101 |
+
* Return total share count calculated for the social networks passed, if no social network is passed
|
102 |
+
* the total share value will be calculated for all active networks.
|
103 |
+
*
|
104 |
+
* @param int $post_id - the id for the post to get
|
105 |
+
* @param array $networks - the networks for which we want to return the total count
|
106 |
+
* @param string $location - the location of the share buttons
|
107 |
+
* @return int
|
108 |
+
* @deprecated 2.16.0
|
109 |
+
*/
|
110 |
+
function dpsp_get_post_total_share_count( $post_id = 0, $networks = [], $location = '' ) {
|
111 |
+
if ( 0 === $post_id ) {
|
112 |
+
$post_obj = dpsp_get_current_post();
|
113 |
+
$post_id = $post_obj->ID;
|
114 |
+
}
|
115 |
+
|
116 |
+
return Share_Counts::post_total_share_counts( $post_id, $location );
|
117 |
+
}
|
118 |
+
|
119 |
+
/**
|
120 |
+
* Checks to see if total shares are at least as high as the minimum count
|
121 |
+
* needed. Return null if the minimum shares is greater than the total.
|
122 |
+
*
|
123 |
+
* @param $total_shares - the total shares of the post for all active networks
|
124 |
+
* @param $post_id - the ID of the post
|
125 |
+
* @param $location - the location where the buttons are displayed
|
126 |
+
* @return mixed int|null
|
127 |
+
* @deprecated 2.16.0
|
128 |
+
*/
|
129 |
+
function dpsp_post_total_share_count_minimum_count( $total_shares, $post_id, $location ) {
|
130 |
+
return Share_Counts::post_total_shares_minimum( $total_shares, $post_id, $location );
|
131 |
+
}
|
132 |
+
|
133 |
+
/**
|
134 |
+
* Transients have proved to be unreliable for Facebook App tokens,
|
135 |
+
* so we've moved them over to options.
|
136 |
+
*
|
137 |
+
* This function migrates the value saved in the Facebook App token transient to an option.
|
138 |
+
*/
|
139 |
+
function dpsp_migrate_facebook_access_token_transient_to_option() {
|
140 |
+
// Get the access token saved in transient
|
141 |
+
$facebook_access_token = get_transient( 'dpsp_facebook_access_token' );
|
142 |
+
|
143 |
+
// If the transient value doesn't exit, no need to do anything
|
144 |
+
if ( empty( $facebook_access_token ) ) {
|
145 |
+
return false;
|
146 |
+
}
|
147 |
+
|
148 |
+
// Add the transient value as an option
|
149 |
+
update_option( 'dpsp_facebook_access_token', $facebook_access_token );
|
150 |
+
|
151 |
+
// Delete the transient value altogether
|
152 |
+
delete_transient( 'dpsp_facebook_access_token' );
|
153 |
+
}
|
154 |
+
|
155 |
+
/**
|
156 |
+
* Returns the share count saved for a post given the post_id and the
|
157 |
+
* network we wish to retreive the value for.
|
158 |
+
*
|
159 |
+
* @param int $post_id - id of the post
|
160 |
+
* @param string $network_slug - slug of the social network
|
161 |
+
* @return mixed - bool false if something went wrong, and int if everything went well
|
162 |
+
* @deprecated 2.16.0
|
163 |
+
*/
|
164 |
+
function dpsp_get_post_share_count( $post_id, $network_slug ) {
|
165 |
+
if ( empty( $post_id ) && empty( $network_slug ) ) {
|
166 |
+
return false;
|
167 |
+
}
|
168 |
+
|
169 |
+
$shares = Share_Counts::post_share_counts( $post_id );
|
170 |
+
if ( isset( $shares[ $network_slug ] ) && in_array( $network_slug, dpsp_get_networks_with_social_count(), true ) ) {
|
171 |
+
return $shares[ $network_slug ];
|
172 |
+
} else {
|
173 |
+
return false;
|
174 |
+
}
|
175 |
+
}
|
176 |
+
|
177 |
+
/**
|
178 |
+
* Rounds the share counts.
|
179 |
+
*
|
180 |
+
* @param int|array $share_count
|
181 |
+
* @param string $location
|
182 |
+
* @return int
|
183 |
+
* @deprecated 2.16.0
|
184 |
+
*/
|
185 |
+
function dpsp_round_share_counts( $share_count, $location = '' ) {
|
186 |
+
if ( empty( $location ) ) {
|
187 |
+
return $share_count;
|
188 |
+
}
|
189 |
+
|
190 |
+
if ( empty( $share_count ) ) {
|
191 |
+
return $share_count;
|
192 |
+
}
|
193 |
+
|
194 |
+
$location_settings = Mediavine\Grow\Settings::get_setting( 'dpsp_location_' . $location, [] );
|
195 |
+
|
196 |
+
if ( ! isset( $location_settings['display']['count_round'] ) ) {
|
197 |
+
return $share_count;
|
198 |
+
}
|
199 |
+
|
200 |
+
/**
|
201 |
+
* Filter the precision at which the number should be rounded.
|
202 |
+
*
|
203 |
+
* @param int $round_precision
|
204 |
+
*/
|
205 |
+
$round_precision = apply_filters( 'dpsp_share_counts_round_precision', 1 );
|
206 |
+
|
207 |
+
$share_count = Share_Counts::round_counts( $share_count, $location, $round_precision );
|
208 |
+
|
209 |
+
return $share_count;
|
210 |
+
}
|
211 |
+
|
212 |
+
/**
|
213 |
+
* Used to register share count hooks, now taken care of inside the class
|
214 |
+
*
|
215 |
+
* @return bool
|
216 |
+
* @deprecated 2.16.0
|
217 |
+
*/
|
218 |
+
function dpsp_register_functions_share_counts() {
|
219 |
+
return false;
|
220 |
+
}
|
221 |
+
|
222 |
+
|
inc/functions-frontend.php
CHANGED
@@ -1,5 +1,7 @@
|
|
1 |
<?php
|
2 |
|
|
|
|
|
3 |
/**
|
4 |
* Returns the social network buttons.
|
5 |
*
|
@@ -30,15 +32,16 @@ function dpsp_get_output_total_share_count( $location = '', $networks = [] ) {
|
|
30 |
return null;
|
31 |
}
|
32 |
|
33 |
-
$total_shares =
|
34 |
if ( is_null( $total_shares ) ) {
|
35 |
return '';
|
36 |
}
|
37 |
|
38 |
$args = [
|
39 |
-
'icon'
|
40 |
-
'count'
|
41 |
-
'text'
|
|
|
42 |
];
|
43 |
|
44 |
return \Mediavine\Grow\View_Loader::get_view( '/inc/views/total-share-count.php', $args );
|
@@ -177,8 +180,8 @@ function dpsp_get_share_buttons( $args = [] ) {
|
|
177 |
// Round counts cannot be changed direcly because they are too dependent on the location settings saved in the database.
|
178 |
// For the moment removing the filters and adding them again is the only solution.
|
179 |
if ( ! isset( $settings['display']['count_round'] ) ) {
|
180 |
-
remove_filter( 'dpsp_get_output_post_shares_counts', '
|
181 |
-
remove_filter( 'dpsp_get_output_total_share_count', '
|
182 |
}
|
183 |
|
184 |
// Start outputing
|
@@ -196,7 +199,7 @@ function dpsp_get_share_buttons( $args = [] ) {
|
|
196 |
|
197 |
// Button total share counts
|
198 |
$minimum_count = ( ! empty( $settings['display']['minimum_count'] ) ? (int) $settings['display']['minimum_count'] : 0 );
|
199 |
-
$show_total_count = ( $minimum_count <= (int)
|
200 |
|
201 |
$wrapper_classes[] = ( $show_total_count ? 'dpsp-show-total-share-count' : '' );
|
202 |
$wrapper_classes[] = ( $show_total_count ? ( ! empty( $settings['display']['total_count_position'] ) ? 'dpsp-show-total-share-count-' . $settings['display']['total_count_position'] : 'dpsp-show-total-share-count-before' ) : '' );
|
@@ -220,8 +223,8 @@ function dpsp_get_share_buttons( $args = [] ) {
|
|
220 |
|
221 |
// Add back the filters
|
222 |
if ( ! isset( $settings['display']['count_round'] ) ) {
|
223 |
-
add_filter( 'dpsp_get_output_post_shares_counts', '
|
224 |
-
add_filter( 'dpsp_get_output_total_share_count', '
|
225 |
}
|
226 |
|
227 |
return $output;
|
1 |
<?php
|
2 |
|
3 |
+
use Mediavine\Grow\Share_Counts;
|
4 |
+
|
5 |
/**
|
6 |
* Returns the social network buttons.
|
7 |
*
|
32 |
return null;
|
33 |
}
|
34 |
|
35 |
+
$total_shares = Share_Counts::post_total_share_counts( $post_obj->ID, $location );
|
36 |
if ( is_null( $total_shares ) ) {
|
37 |
return '';
|
38 |
}
|
39 |
|
40 |
$args = [
|
41 |
+
'icon' => dpsp_get_svg_icon_output( 'share' ),
|
42 |
+
'count' => apply_filters( 'dpsp_get_output_total_share_count', $total_shares, $location ),
|
43 |
+
'text' => apply_filters( 'dpsp_total_share_count_text', __( 'shares', 'social-pug' ) ),
|
44 |
+
'location' => $location,
|
45 |
];
|
46 |
|
47 |
return \Mediavine\Grow\View_Loader::get_view( '/inc/views/total-share-count.php', $args );
|
180 |
// Round counts cannot be changed direcly because they are too dependent on the location settings saved in the database.
|
181 |
// For the moment removing the filters and adding them again is the only solution.
|
182 |
if ( ! isset( $settings['display']['count_round'] ) ) {
|
183 |
+
remove_filter( 'dpsp_get_output_post_shares_counts', 'Mediavine\Grow\Share_Counts::round_counts', 10, 2 );
|
184 |
+
remove_filter( 'dpsp_get_output_total_share_count', 'Mediavine\Grow\Share_Counts::round_counts', 10, 2 );
|
185 |
}
|
186 |
|
187 |
// Start outputing
|
199 |
|
200 |
// Button total share counts
|
201 |
$minimum_count = ( ! empty( $settings['display']['minimum_count'] ) ? (int) $settings['display']['minimum_count'] : 0 );
|
202 |
+
$show_total_count = ( $minimum_count <= (int) Share_Counts::post_total_share_counts() && ! empty( $settings['display']['show_count_total'] ) ? true : false );
|
203 |
|
204 |
$wrapper_classes[] = ( $show_total_count ? 'dpsp-show-total-share-count' : '' );
|
205 |
$wrapper_classes[] = ( $show_total_count ? ( ! empty( $settings['display']['total_count_position'] ) ? 'dpsp-show-total-share-count-' . $settings['display']['total_count_position'] : 'dpsp-show-total-share-count-before' ) : '' );
|
223 |
|
224 |
// Add back the filters
|
225 |
if ( ! isset( $settings['display']['count_round'] ) ) {
|
226 |
+
add_filter( 'dpsp_get_output_post_shares_counts', 'Mediavine\Grow\Share_Counts::round_counts', 10, 2 );
|
227 |
+
add_filter( 'dpsp_get_output_total_share_count', 'Mediavine\Grow\Share_Counts::round_counts', 10, 2 );
|
228 |
}
|
229 |
|
230 |
return $output;
|
inc/functions-mobile.php
DELETED
@@ -1,55 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Hides social networks that are mobile only from the share tools when these are
|
5 |
-
* displayed on devices that are not mobile
|
6 |
-
*
|
7 |
-
* @param array $settings - the settings array for the current location
|
8 |
-
* @param string $action - the current type of action ( share/follow )
|
9 |
-
* @param string $location - the display location for the buttons
|
10 |
-
* @return array
|
11 |
-
*/
|
12 |
-
function dpsp_handle_mobile_only_networks( $settings, $action, $location ) {
|
13 |
-
if ( 'share' !== $action ) {
|
14 |
-
return $settings;
|
15 |
-
}
|
16 |
-
|
17 |
-
if ( empty( $settings['networks'] ) || ! is_array( $settings['networks'] ) ) {
|
18 |
-
return $settings;
|
19 |
-
}
|
20 |
-
|
21 |
-
if ( ! array_key_exists( 'whatsapp', $settings['networks'] ) ) {
|
22 |
-
return $settings;
|
23 |
-
}
|
24 |
-
|
25 |
-
$plugin_settings = Mediavine\Grow\Settings::get_setting( 'dpsp_settings', [] );
|
26 |
-
|
27 |
-
if ( empty( $plugin_settings['whatsapp_display_only_mobile'] ) ) {
|
28 |
-
return $settings;
|
29 |
-
}
|
30 |
-
|
31 |
-
$mobile_detect = new \Mediavine\Grow\Mobile_Detect();
|
32 |
-
|
33 |
-
// Remove WhatsApp from the networks array if we are not on a mobile device
|
34 |
-
if ( ! $mobile_detect->is_mobile() ) {
|
35 |
-
unset( $settings['networks']['whatsapp'] );
|
36 |
-
} else {
|
37 |
-
if ( ! empty( $settings['display']['column_count'] ) && 'auto' !== $settings['display']['column_count'] ) {
|
38 |
-
$networks_count = count( $settings['networks'] );
|
39 |
-
$column_count = (int) $settings['display']['column_count'];
|
40 |
-
|
41 |
-
if ( ( ( $networks_count + 1 ) / $column_count < 2 ) && ( $networks_count > $column_count ) ) {
|
42 |
-
$settings['display']['column_count'] += 1;
|
43 |
-
}
|
44 |
-
}
|
45 |
-
}
|
46 |
-
|
47 |
-
return $settings;
|
48 |
-
}
|
49 |
-
|
50 |
-
/**
|
51 |
-
* Register hooks for functions-mobile.php
|
52 |
-
*/
|
53 |
-
function dpsp_register_functions_mobile() {
|
54 |
-
add_filter( 'dpsp_network_buttons_outputter_settings', 'dpsp_handle_mobile_only_networks', 10, 3 );
|
55 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inc/functions-requirements.php
CHANGED
@@ -32,8 +32,8 @@ function mv_grow_is_compatible_check( $minimum, $compare = 0 ) {
|
|
32 |
*/
|
33 |
function mv_grow_is_compatible( $return_errors = false ) {
|
34 |
$minimum_wp = '5.2';
|
35 |
-
$deprecated_wp = '5.
|
36 |
-
$minimum_php = '
|
37 |
$deprecated_php = '7.3'; // WP requires 5.6.20, but that's not the last version of EOL PHP 5.6
|
38 |
$recommended_php = '7.4';
|
39 |
$errors = [];
|
@@ -101,17 +101,15 @@ function mv_grow_admin_error_notice( $message, $level = 'error' ) {
|
|
101 |
function mv_grow_incompatible_notice() {
|
102 |
$compatible_errors = mv_grow_is_compatible( true );
|
103 |
$deactivate_plugin = false;
|
104 |
-
$branding = \Social_Pug::get_branding_name();
|
105 |
if ( is_array( $compatible_errors ) ) {
|
106 |
if ( isset( $compatible_errors['php'] ) ) {
|
107 |
$notice = sprintf(
|
108 |
// translators: Required PHP version number; Recommended PHP version number; Current PHP version number; Link to learn about updating PHP
|
109 |
-
__( '<strong
|
110 |
$compatible_errors['php'],
|
111 |
$compatible_errors['recommended_php'],
|
112 |
PHP_VERSION,
|
113 |
-
'<a href="https://wordpress.org/support/update-php/" target="_blank">' . __( 'Learn about updating PHP', 'mediavine' ) . '</a>'
|
114 |
-
$branding
|
115 |
);
|
116 |
mv_grow_admin_error_notice( $notice );
|
117 |
$deactivate_plugin = true;
|
@@ -120,10 +118,9 @@ function mv_grow_incompatible_notice() {
|
|
120 |
global $wp_version;
|
121 |
$notice = sprintf(
|
122 |
// translators: Required WP version number; Current WP version number
|
123 |
-
__( '<strong
|
124 |
$compatible_errors['wp'],
|
125 |
-
$wp_version
|
126 |
-
$branding
|
127 |
);
|
128 |
mv_grow_admin_error_notice( $notice );
|
129 |
$deactivate_plugin = true;
|
@@ -131,12 +128,11 @@ function mv_grow_incompatible_notice() {
|
|
131 |
if ( isset( $compatible_errors['deprecated_php'] ) ) {
|
132 |
$notice = sprintf(
|
133 |
// translators: Required PHP version number; Recommended PHP version number; Current PHP version number; Link to learn about updating PHP
|
134 |
-
__( 'A future version of <strong
|
135 |
$compatible_errors['deprecated_php'],
|
136 |
$compatible_errors['recommended_php'],
|
137 |
PHP_VERSION,
|
138 |
-
'<a href="https://wordpress.org/support/update-php/" target="_blank">' . __( 'Learn about updating PHP', 'mediavine' ) . '</a>'
|
139 |
-
$branding
|
140 |
);
|
141 |
mv_grow_admin_error_notice( $notice );
|
142 |
}
|
@@ -147,10 +143,9 @@ function mv_grow_incompatible_notice() {
|
|
147 |
$notice = '<div style="border-bottom: solid 3px #5ca2a8; font-size: 1.25em; padding-bottom: 1em; margin-bottom: 1em;">';
|
148 |
$notice .= sprintf(
|
149 |
// translators: Date within styled tag; Required WP version number
|
150 |
-
__( 'Starting %1$s, WordPress %2$s will be required for all functionality, however keeping WordPress up-to-date at the latest version is still recommended. To maintain future compatibility with <strong
|
151 |
'<strong style="font-size: 1.2em;">' . __( 'January 2021', 'mediavine' ) . '</strong>',
|
152 |
-
$compatible_errors['deprecated_wp']
|
153 |
-
$branding
|
154 |
);
|
155 |
$notice .= '<br><br><a href="https://wordpress.org/support/article/updating-wordpress/" target="_blank">' . __( 'Learn about updating WordPress', 'mediavine' ) . '</a>';
|
156 |
mv_grow_admin_error_notice( $notice );
|
@@ -158,12 +153,7 @@ function mv_grow_incompatible_notice() {
|
|
158 |
|
159 |
// Should we deactivate the plugin?
|
160 |
if ( $deactivate_plugin ) {
|
161 |
-
|
162 |
-
// translators: The plugin branding name, either pro or free version
|
163 |
-
__( '<strong>%1$s</strong> has been deactivated.', 'mediavine' ),
|
164 |
-
$branding
|
165 |
-
);
|
166 |
-
mv_grow_admin_error_notice( $notice );
|
167 |
deactivate_plugins( plugin_basename( __FILE__ ) );
|
168 |
return;
|
169 |
}
|
@@ -188,13 +178,12 @@ function mv_grow_throw_warnings() {
|
|
188 |
return;
|
189 |
}
|
190 |
|
191 |
-
$message
|
192 |
-
|
193 |
-
$notice
|
194 |
// translators: a list of disabled PHP extensions
|
195 |
-
__( '<strong
|
196 |
-
$message
|
197 |
-
$branding
|
198 |
);
|
199 |
|
200 |
mv_grow_admin_error_notice( $notice );
|
32 |
*/
|
33 |
function mv_grow_is_compatible( $return_errors = false ) {
|
34 |
$minimum_wp = '5.2';
|
35 |
+
$deprecated_wp = '5.4';
|
36 |
+
$minimum_php = '7.1';
|
37 |
$deprecated_php = '7.3'; // WP requires 5.6.20, but that's not the last version of EOL PHP 5.6
|
38 |
$recommended_php = '7.4';
|
39 |
$errors = [];
|
101 |
function mv_grow_incompatible_notice() {
|
102 |
$compatible_errors = mv_grow_is_compatible( true );
|
103 |
$deactivate_plugin = false;
|
|
|
104 |
if ( is_array( $compatible_errors ) ) {
|
105 |
if ( isset( $compatible_errors['php'] ) ) {
|
106 |
$notice = sprintf(
|
107 |
// translators: Required PHP version number; Recommended PHP version number; Current PHP version number; Link to learn about updating PHP
|
108 |
+
__( '<strong>Grow Social Pro by Mediavine</strong> requires PHP version %1$s or higher, but recommends %2$s or higher. This site is running PHP version %3$s. %4$s.', 'mediavine' ),
|
109 |
$compatible_errors['php'],
|
110 |
$compatible_errors['recommended_php'],
|
111 |
PHP_VERSION,
|
112 |
+
'<a href="https://wordpress.org/support/update-php/" target="_blank">' . __( 'Learn about updating PHP', 'mediavine' ) . '</a>'
|
|
|
113 |
);
|
114 |
mv_grow_admin_error_notice( $notice );
|
115 |
$deactivate_plugin = true;
|
118 |
global $wp_version;
|
119 |
$notice = sprintf(
|
120 |
// translators: Required WP version number; Current WP version number
|
121 |
+
__( '<strong>Grow Social Pro by Mediavine</strong> requires WordPress %1$s or higher. This site is running WordPress %2$s. Please update WordPress to activate <strong>Grow Social Pro by Mediavine</strong>.', 'mediavine' ),
|
122 |
$compatible_errors['wp'],
|
123 |
+
$wp_version
|
|
|
124 |
);
|
125 |
mv_grow_admin_error_notice( $notice );
|
126 |
$deactivate_plugin = true;
|
128 |
if ( isset( $compatible_errors['deprecated_php'] ) ) {
|
129 |
$notice = sprintf(
|
130 |
// translators: Required PHP version number; Recommended PHP version number; Current PHP version number; Link to learn about updating PHP
|
131 |
+
__( 'A future version of <strong>Grow Social Pro by Mediavine</strong> will require PHP version %1$s, but recommends %2$s or higher. This site is running PHP version %3$s. To maintain compatibility with <strong>Grow Social Pro by Mediavine</strong>, please upgrade your PHP version. %4$s.', 'mediavine' ),
|
132 |
$compatible_errors['deprecated_php'],
|
133 |
$compatible_errors['recommended_php'],
|
134 |
PHP_VERSION,
|
135 |
+
'<a href="https://wordpress.org/support/update-php/" target="_blank">' . __( 'Learn about updating PHP', 'mediavine' ) . '</a>'
|
|
|
136 |
);
|
137 |
mv_grow_admin_error_notice( $notice );
|
138 |
}
|
143 |
$notice = '<div style="border-bottom: solid 3px #5ca2a8; font-size: 1.25em; padding-bottom: 1em; margin-bottom: 1em;">';
|
144 |
$notice .= sprintf(
|
145 |
// translators: Date within styled tag; Required WP version number
|
146 |
+
__( 'Starting %1$s, WordPress %2$s will be required for all functionality, however keeping WordPress up-to-date at the latest version is still recommended. To maintain future compatibility with <strong>Grow Social Pro by Mediavine</strong>, please update WordPress.', 'mediavine' ),
|
147 |
'<strong style="font-size: 1.2em;">' . __( 'January 2021', 'mediavine' ) . '</strong>',
|
148 |
+
$compatible_errors['deprecated_wp']
|
|
|
149 |
);
|
150 |
$notice .= '<br><br><a href="https://wordpress.org/support/article/updating-wordpress/" target="_blank">' . __( 'Learn about updating WordPress', 'mediavine' ) . '</a>';
|
151 |
mv_grow_admin_error_notice( $notice );
|
153 |
|
154 |
// Should we deactivate the plugin?
|
155 |
if ( $deactivate_plugin ) {
|
156 |
+
mv_grow_admin_error_notice( __( '<strong>Grow Social Pro by Mediavine</strong> has been deactivated.', 'mediavine' ) );
|
|
|
|
|
|
|
|
|
|
|
157 |
deactivate_plugins( plugin_basename( __FILE__ ) );
|
158 |
return;
|
159 |
}
|
178 |
return;
|
179 |
}
|
180 |
|
181 |
+
$message = trim( implode( ', ', $missing_items ), ', ' );
|
182 |
+
|
183 |
+
$notice = sprintf(
|
184 |
// translators: a list of disabled PHP extensions
|
185 |
+
__( '<strong>Grow Social Pro by Mediavine</strong> requires the following disabled PHP extensions in order to function properly: <code>%1$s</code>.<br/><br/>Your hosting environment does not currently have these enabled.<br/><br/>Please contact your hosting provider and ask them to ensure these extensions are enabled.', 'mediavine' ),
|
186 |
+
$message
|
|
|
187 |
);
|
188 |
|
189 |
mv_grow_admin_error_notice( $notice );
|
inc/functions-share-counts.php
CHANGED
@@ -1,7 +1,44 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
use Mediavine\Grow\Share_Counts;
|
4 |
use Mediavine\Grow\Networks;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
/**
|
6 |
* Not all social networks support social count.
|
7 |
*
|
@@ -13,17 +50,6 @@ function dpsp_get_networks_with_social_count() {
|
|
13 |
$networks = Networks::get_instance();
|
14 |
$countable_networks = $networks->get_countable();
|
15 |
|
16 |
-
// Twitter share counts are handled through TwitCount ( http://www.twitcount.com/ )
|
17 |
-
$settings = Mediavine\Grow\Settings::get_setting( 'dpsp_settings' );
|
18 |
-
|
19 |
-
if ( empty( $settings['twitter_share_counts'] ) ) {
|
20 |
-
$countable_networks = array_filter(
|
21 |
-
$countable_networks, function( $network ) {
|
22 |
-
return $network->get_slug() !== 'twitter';
|
23 |
-
}
|
24 |
-
);
|
25 |
-
}
|
26 |
-
|
27 |
$countable_networks = $networks->make_slug_array( $countable_networks );
|
28 |
|
29 |
/**
|
@@ -35,219 +61,18 @@ function dpsp_get_networks_with_social_count() {
|
|
35 |
return apply_filters( 'dpsp_get_networks_with_social_count', $countable_networks );
|
36 |
}
|
37 |
|
38 |
-
/**
|
39 |
-
* Pulls the share counts for all active networks for a certain post
|
40 |
-
*
|
41 |
-
* @param int $post_id
|
42 |
-
* @return array
|
43 |
-
*/
|
44 |
-
function dpsp_pull_post_share_counts( $post_id = 0 ) {
|
45 |
-
if ( 0 === $post_id ) {
|
46 |
-
return [];
|
47 |
-
}
|
48 |
-
$networks_class = Networks::get_instance();
|
49 |
-
|
50 |
-
// Get active social networks
|
51 |
-
$social_networks = dpsp_get_active_networks();
|
52 |
-
|
53 |
-
// Get saved shares
|
54 |
-
$networks_shares = dpsp_maybe_unserialize( get_post_meta( $post_id, 'dpsp_networks_shares', true ) );
|
55 |
-
|
56 |
-
if ( empty( $networks_shares ) ) {
|
57 |
-
$networks_shares = [];
|
58 |
-
}
|
59 |
-
|
60 |
-
// Set temporary variable
|
61 |
-
$_networks_shares = [];
|
62 |
-
|
63 |
-
// Pass through each active social networks and grab the share counts for the post
|
64 |
-
foreach ( $social_networks as $network_slug ) {
|
65 |
-
$network = $networks_class->get( $network_slug );
|
66 |
-
if ( ! $network || ! $network->has_count() ) {
|
67 |
-
continue;
|
68 |
-
}
|
69 |
-
|
70 |
-
$share_count = dpsp_get_post_network_share_count( $post_id, $network_slug );
|
71 |
-
if ( false === $share_count ) {
|
72 |
-
continue;
|
73 |
-
}
|
74 |
-
|
75 |
-
// Take into account Twitter old counts from NewShareCounts and OpenShareCount
|
76 |
-
// The post meta "dpsp_cache_shares_twitter" was used for NewShareCounts
|
77 |
-
// The post meta "dpsp_cache_shares_twitter_2" was used for OpenShareCount
|
78 |
-
if ( 'twitter' === $network->get_slug() && isset( $networks_shares[ $network->get_slug() ] ) ) {
|
79 |
-
$cached_old_twitter_shares = get_post_meta( $post_id, 'dpsp_cache_shares_twitter_2', true );
|
80 |
-
|
81 |
-
// Add the Twitter shares to the cache if they do not exist
|
82 |
-
if ( '' === $cached_old_twitter_shares ) {
|
83 |
-
$cached_old_twitter_shares = absint( $networks_shares[ $network->get_slug() ] );
|
84 |
-
update_post_meta( $post_id, 'dpsp_cache_shares_twitter_2', $cached_old_twitter_shares );
|
85 |
-
|
86 |
-
// Delete the post meta for NewShareCounts
|
87 |
-
delete_post_meta( $post_id, 'dpsp_cache_shares_twitter' );
|
88 |
-
}
|
89 |
-
|
90 |
-
// Add the current shares to the cached ones
|
91 |
-
$share_count += $cached_old_twitter_shares;
|
92 |
-
}
|
93 |
-
|
94 |
-
// Add the share counts
|
95 |
-
$_networks_shares[ $network->get_slug() ] = $share_count;
|
96 |
-
} // End of social_networks loop
|
97 |
-
|
98 |
-
/**
|
99 |
-
* Filter the social share counts as they are retrieved from the social networks.
|
100 |
-
* @param array $_networks_shares
|
101 |
-
* @param int $post_id
|
102 |
-
*/
|
103 |
-
$_networks_shares = apply_filters( 'dpsp_pull_post_share_counts_raw', $_networks_shares, $post_id );
|
104 |
-
|
105 |
-
// Update the share counts only if they are bigger
|
106 |
-
foreach ( $_networks_shares as $network_slug => $share_count ) {
|
107 |
-
if ( isset( $networks_shares[ $network_slug ] ) ) {
|
108 |
-
$networks_shares[ $network_slug ] = ( absint( $share_count ) > absint( $networks_shares[ $network_slug ] ) ? absint( $share_count ) : absint( $networks_shares[ $network_slug ] ) );
|
109 |
-
} else {
|
110 |
-
// If the share counts don't exist for the network, add them
|
111 |
-
$networks_shares[ $network_slug ] = absint( $_networks_shares[ $network_slug ] );
|
112 |
-
}
|
113 |
-
}
|
114 |
-
|
115 |
-
// Remove social counts for networks that are not required
|
116 |
-
if ( ! empty( $networks_shares ) ) {
|
117 |
-
foreach ( $networks_shares as $network_slug => $share_count ) {
|
118 |
-
if ( ! in_array( $network_slug, $social_networks, true ) ) {
|
119 |
-
unset( $networks_shares[ $network_slug ] );
|
120 |
-
}
|
121 |
-
}
|
122 |
-
}
|
123 |
-
|
124 |
-
return $networks_shares;
|
125 |
-
}
|
126 |
-
|
127 |
-
/**
|
128 |
-
* Refreshes the share counts if the share counts cache has expired.
|
129 |
-
*/
|
130 |
-
function dpsp_refresh_post_share_counts() {
|
131 |
-
if ( isset( $_SERVER['HTTP_USER_AGENT'] ) && preg_match( '/bot|crawl|slurp|spider/i', wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) ) { // @codingStandardsIgnoreLine
|
132 |
-
return;
|
133 |
-
}
|
134 |
-
|
135 |
-
if ( ! is_singular() ) {
|
136 |
-
return;
|
137 |
-
}
|
138 |
-
|
139 |
-
$current_post = dpsp_get_current_post();
|
140 |
-
if ( is_null( $current_post ) ) {
|
141 |
-
return;
|
142 |
-
}
|
143 |
-
|
144 |
-
if ( in_array( $current_post->post_status, [ 'future', 'draft', 'pending', 'trash', 'auto-draft' ], true ) ) {
|
145 |
-
return;
|
146 |
-
}
|
147 |
-
|
148 |
-
$expired = dpsp_is_post_share_counts_cache_expired( $current_post );
|
149 |
-
if ( ! $expired ) {
|
150 |
-
return;
|
151 |
-
}
|
152 |
-
|
153 |
-
// Get social shares from the networks
|
154 |
-
$share_counts = dpsp_pull_post_share_counts( $current_post->ID );
|
155 |
-
|
156 |
-
// Update share counts in the db
|
157 |
-
$shares_updated = dpsp_update_post_share_counts( $current_post->ID, $share_counts );
|
158 |
-
}
|
159 |
-
|
160 |
-
/**
|
161 |
-
* Refreshes the share counts if the share counts cache has expired.
|
162 |
-
*/
|
163 |
-
function dpsp_refresh_post_share_counts_edit() {
|
164 |
-
$current_post = dpsp_get_current_post();
|
165 |
-
if ( is_null( $current_post ) ) {
|
166 |
-
return;
|
167 |
-
}
|
168 |
-
|
169 |
-
//Make sure this post has an assigned permalink before fetching share counts by checking the path of the url
|
170 |
-
$permalink = get_permalink( $current_post->ID );
|
171 |
-
|
172 |
-
//Pull the path from the permalink
|
173 |
-
$permalink_path = parse_url( $permalink )['path'];
|
174 |
-
|
175 |
-
if ( '/' === $permalink_path ) {
|
176 |
-
// If there is no path, Grow thinks this is the front page we are working with
|
177 |
-
$front_page = get_option( 'page_on_front' );
|
178 |
-
if ( $front_page !== $current_post->ID ) {
|
179 |
-
// If we aren't actually on the front page, return early because we don't want to get the wrong counts
|
180 |
-
return;
|
181 |
-
}
|
182 |
-
}
|
183 |
-
|
184 |
-
if ( is_attachment( $current_post->ID ) ) {
|
185 |
-
return;
|
186 |
-
}
|
187 |
-
|
188 |
-
if ( in_array( $current_post->post_status, [ 'future', 'draft', 'pending', 'trash', 'auto-draft' ], true ) ) {
|
189 |
-
return;
|
190 |
-
}
|
191 |
-
|
192 |
-
$expired = dpsp_is_post_share_counts_cache_expired( $current_post );
|
193 |
-
if ( ! $expired ) {
|
194 |
-
return;
|
195 |
-
}
|
196 |
-
|
197 |
-
// Get social shares from the networks
|
198 |
-
$share_counts = dpsp_pull_post_share_counts( $current_post->ID );
|
199 |
-
|
200 |
-
// Update share counts in the db
|
201 |
-
$shares_updated = dpsp_update_post_share_counts( $current_post->ID, $share_counts );
|
202 |
-
}
|
203 |
-
|
204 |
-
/**
|
205 |
-
* Checks to see if the post's share counts were updated recently or not.
|
206 |
-
*
|
207 |
-
* @param WP_Post $post_obj
|
208 |
-
* @return bool
|
209 |
-
*/
|
210 |
-
function dpsp_is_post_share_counts_cache_expired( $post_obj ) {
|
211 |
-
// Get the post's time
|
212 |
-
$post_time = mysql2date( 'U', $post_obj->post_date, false );
|
213 |
-
|
214 |
-
// Set the refresh rate, depending on how many days
|
215 |
-
// have pased since it was created
|
216 |
-
if ( time() - $post_time <= 10 * DAY_IN_SECONDS ) {
|
217 |
-
$refresh_rate = 2;
|
218 |
-
} elseif ( time() - $post_time <= 20 * DAY_IN_SECONDS ) {
|
219 |
-
$refresh_rate = 6;
|
220 |
-
} else {
|
221 |
-
$refresh_rate = 12;
|
222 |
-
}
|
223 |
-
|
224 |
-
/**
|
225 |
-
* Filter the share counts cache refresh rate.
|
226 |
-
* @param int $refresh_rate
|
227 |
-
* @param int $post_time
|
228 |
-
*/
|
229 |
-
$refresh_rate = apply_filters( 'dpsp_post_share_counts_cache_refresh_rate', $refresh_rate, $post_time );
|
230 |
-
|
231 |
-
// Get the last updated time for the share counts
|
232 |
-
$shares_last_updated = (int) get_post_meta( $post_obj->ID, 'dpsp_networks_shares_last_updated', true );
|
233 |
-
|
234 |
-
if ( $shares_last_updated >= time() - $refresh_rate * HOUR_IN_SECONDS ) {
|
235 |
-
return false;
|
236 |
-
} else {
|
237 |
-
return true;
|
238 |
-
}
|
239 |
-
}
|
240 |
-
|
241 |
-
|
242 |
/**
|
243 |
* Returns the share count for a post and a social network from the social network through an API.
|
|
|
|
|
|
|
244 |
*
|
245 |
-
* @param int
|
246 |
-
* @param string $network_slug
|
247 |
-
* @return
|
248 |
*/
|
249 |
function dpsp_get_post_network_share_count( $post_id, $network_slug ) {
|
250 |
-
if (
|
251 |
return false;
|
252 |
}
|
253 |
|
@@ -317,7 +142,7 @@ function dpsp_get_post_network_share_count( $post_id, $network_slug ) {
|
|
317 |
/**
|
318 |
* Returns the share count for a given url and a social network from the social network through an API.
|
319 |
*
|
320 |
-
* @param
|
321 |
* @param string $network_slug - slug of the social network
|
322 |
* @return mixed - bool false if something went wrong, and int if everything went well
|
323 |
*/
|
@@ -333,7 +158,8 @@ function dpsp_get_url_network_share_count( $url = '', $network_slug = '' ) {
|
|
333 |
$page_url = rawurlencode( $url );
|
334 |
|
335 |
// Default post arguments
|
336 |
-
|
|
|
337 |
|
338 |
// Prepare urls to get remote request
|
339 |
switch ( $network_slug ) {
|
@@ -366,10 +192,6 @@ function dpsp_get_url_network_share_count( $url = '', $network_slug = '' ) {
|
|
366 |
case 'grow':
|
367 |
$remote_url = 'https://api.grow.me/graphql?query=%0A++query+GetPageBookmarkCount%28%24where%3A+PageWhereUniqueInput%21%29+%7B%0A++++page%28where%3A+%24where%29+%7B%0A++++++__typename%0A++++++id%0A++++++bookmarkCount%0A++++%7D%0A++%7D%0A&variables=%7B%22where%22%3A%7B%22url%22%3A%22' . $page_url . '%22%7D%7D&operationName=GetPageBookmarkCount';
|
368 |
break;
|
369 |
-
default:
|
370 |
-
if ( function_exists( 'dpsp_get_pro_url_network_share_count' ) ) {
|
371 |
-
$remote_url = dpsp_get_pro_url_network_share_count( $network_slug, $page_url, $settings );
|
372 |
-
}
|
373 |
}
|
374 |
|
375 |
// If we have no remote URL, then return false early
|
@@ -384,7 +206,6 @@ function dpsp_get_url_network_share_count( $url = '', $network_slug = '' ) {
|
|
384 |
if ( 200 === wp_remote_retrieve_response_code( $response ) ) {
|
385 |
$body = json_decode( wp_remote_retrieve_body( $response ), true );
|
386 |
|
387 |
-
$share_count = false;
|
388 |
// Get share value from response body
|
389 |
switch ( $network_slug ) {
|
390 |
|
@@ -423,10 +244,7 @@ function dpsp_get_url_network_share_count( $url = '', $network_slug = '' ) {
|
|
423 |
// If we have a Facebook error, we need to possibly adjust the expires date
|
424 |
$body = json_decode( wp_remote_retrieve_body( $response ), true );
|
425 |
|
426 |
-
if (
|
427 |
-
isset( $body['error']['code'] ) &&
|
428 |
-
190 === $body['error']['code']
|
429 |
-
) {
|
430 |
$facebook_access_token = Mediavine\Grow\Settings::get_setting( 'dpsp_facebook_access_token' );
|
431 |
|
432 |
// Adjust Facebook access token expiration if the token is marked as invalid by Facebook
|
@@ -441,340 +259,91 @@ function dpsp_get_url_network_share_count( $url = '', $network_slug = '' ) {
|
|
441 |
}
|
442 |
|
443 |
/**
|
444 |
-
*
|
445 |
*
|
446 |
-
* @param $post_id
|
447 |
* @return array
|
448 |
*/
|
449 |
-
function
|
450 |
-
|
451 |
-
|
452 |
-
if ( empty( $networks_shares ) ) {
|
453 |
-
$networks_shares = [];
|
454 |
-
}
|
455 |
-
|
456 |
-
/**
|
457 |
-
* Filter the post's network shares before returning them.
|
458 |
-
* @param array $networks_shares
|
459 |
-
* @param int $post_id
|
460 |
-
*/
|
461 |
-
$networks_shares = apply_filters( 'dpsp_get_post_share_counts', $networks_shares, $post_id );
|
462 |
-
|
463 |
-
return $networks_shares;
|
464 |
-
}
|
465 |
-
|
466 |
-
/**
|
467 |
-
* Updates the given share counts for a post into the database.
|
468 |
-
*
|
469 |
-
* @param int $post_id - the id of the post to save the shares
|
470 |
-
* @param array $share_counts - an array with the network shares and total shares
|
471 |
-
* @return bool
|
472 |
-
*/
|
473 |
-
function dpsp_update_post_share_counts( $post_id = 0, $share_counts = [] ) {
|
474 |
-
if ( empty( $post_id ) || empty( $share_counts ) ) {
|
475 |
-
return false;
|
476 |
-
}
|
477 |
-
|
478 |
-
// Update post meta with all shares
|
479 |
-
update_post_meta( $post_id, 'dpsp_networks_shares', $share_counts );
|
480 |
-
|
481 |
-
// Update post meta with total share counts
|
482 |
-
update_post_meta( $post_id, 'dpsp_networks_shares_total', array_sum( $share_counts ) );
|
483 |
-
|
484 |
-
// Update post meta with last updated timestamp
|
485 |
-
update_post_meta( $post_id, 'dpsp_networks_shares_last_updated', time() );
|
486 |
-
|
487 |
-
/**
|
488 |
-
* Do extra actions after updating the post's share counts
|
489 |
-
*
|
490 |
-
* @param int $post_id - the id of the post to save the shares
|
491 |
-
* @param array $shares - an array with the network shares and total shares
|
492 |
-
*
|
493 |
-
*/
|
494 |
-
do_action( 'dpsp_update_post_share_counts', $post_id, $share_counts );
|
495 |
-
|
496 |
-
return true;
|
497 |
-
}
|
498 |
-
|
499 |
-
/**
|
500 |
-
* Updates the top shared posts array.
|
501 |
-
*
|
502 |
-
* @param int $post_id - the id of the post to save the shares
|
503 |
-
* @param array $shares - an array with the network shares and total shares
|
504 |
-
*
|
505 |
-
* @return bool
|
506 |
-
*
|
507 |
-
*/
|
508 |
-
function dpsp_update_top_shared_posts( $post_id = 0, $share_counts = [] ) {
|
509 |
-
if ( empty( $post_id ) || empty( $share_counts ) ) {
|
510 |
-
return false;
|
511 |
}
|
|
|
512 |
|
513 |
-
// Get
|
514 |
-
$
|
515 |
|
516 |
-
// Get
|
517 |
-
$
|
518 |
-
$top_posts = ( ! empty( $top_posts ) ? $top_posts : [] );
|
519 |
|
520 |
-
|
521 |
-
|
522 |
-
$top_posts = json_decode( $top_posts, ARRAY_A );
|
523 |
}
|
524 |
|
525 |
-
|
526 |
-
|
527 |
-
/**
|
528 |
-
* Filter top shared posts before saving in the db.
|
529 |
-
* @param array $top_posts
|
530 |
-
* @param int $post_id
|
531 |
-
*/
|
532 |
-
$top_posts = apply_filters( 'dpsp_top_shared_posts_raw', $top_posts, $post_id );
|
533 |
-
|
534 |
-
// Filter top posts array
|
535 |
-
if ( ! empty( $top_posts ) ) {
|
536 |
-
foreach ( $top_posts as $post_type => $post_list ) {
|
537 |
-
if ( ! empty( $top_posts[ $post_type ] ) ) {
|
538 |
-
|
539 |
-
// Sort descending
|
540 |
-
arsort( $top_posts[ $post_type ] );
|
541 |
-
|
542 |
-
// Get only first ten
|
543 |
-
$top_posts[ $post_type ] = array_slice( $top_posts[ $post_type ], 0, 10, true );
|
544 |
|
545 |
-
|
|
|
|
|
|
|
|
|
546 |
}
|
547 |
-
}
|
548 |
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
/**
|
554 |
-
* Return total share count calculated for the social networks passed, if no social network is passed
|
555 |
-
* the total share value will be calculated for all active networks.
|
556 |
-
*
|
557 |
-
* @param array $networks - the networks for which we want to return the total count
|
558 |
-
* @param string $location - the location of the share buttons
|
559 |
-
* @return int
|
560 |
-
*/
|
561 |
-
function dpsp_get_post_total_share_count( $post_id = 0, $networks = [], $location = '' ) {
|
562 |
-
if ( 0 === $post_id ) {
|
563 |
-
$post_obj = dpsp_get_current_post();
|
564 |
-
$post_id = $post_obj->ID;
|
565 |
-
}
|
566 |
-
|
567 |
-
if ( empty( $networks ) ) {
|
568 |
-
$networks = dpsp_get_active_networks();
|
569 |
-
}
|
570 |
-
|
571 |
-
// Get saved total share counts
|
572 |
-
$total_shares = get_post_meta( $post_id, 'dpsp_networks_shares_total', true );
|
573 |
|
574 |
-
|
575 |
-
|
576 |
-
|
|
|
|
|
577 |
|
578 |
-
|
|
|
|
|
|
|
579 |
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
|
584 |
-
|
585 |
-
|
586 |
-
$total_shares += ( isset( $networks_shares[ $network_slug ] ) && in_array( $network_slug, dpsp_get_networks_with_social_count(), true ) ? $networks_shares[ $network_slug ] : 0 );
|
587 |
}
|
588 |
-
|
|
|
|
|
|
|
589 |
|
590 |
/**
|
591 |
-
* Filter
|
592 |
-
*
|
|
|
593 |
* @param int $post_id
|
594 |
-
* @param string $location
|
595 |
*/
|
596 |
-
$
|
597 |
-
|
598 |
-
return $total_shares;
|
599 |
-
}
|
600 |
-
|
601 |
-
/**
|
602 |
-
* Checks to see if total shares are at least as high as the minimum count
|
603 |
-
* needed. Return null if the minimum shares is greater than the total.
|
604 |
-
*
|
605 |
-
* @param $total_shares - the total shares of the post for all active networks
|
606 |
-
* @param $post_id - the ID of the post
|
607 |
-
* @param $location - the location where the buttons are displayed
|
608 |
-
* @return mixed int | null
|
609 |
-
*/
|
610 |
-
function dpsp_post_total_share_count_minimum_count( $total_shares, $post_id, $location ) {
|
611 |
-
if ( ! ctype_digit( $total_shares ) ) {
|
612 |
-
return $total_shares;
|
613 |
-
}
|
614 |
-
|
615 |
-
if ( empty( $location ) ) {
|
616 |
-
return $total_shares;
|
617 |
-
}
|
618 |
-
|
619 |
-
$location_settings = Mediavine\Grow\Settings::get_setting( 'dpsp_location_' . $location );
|
620 |
-
|
621 |
-
if ( isset( $location_settings['display']['minimum_count'] ) && ctype_digit( $location_settings['display']['minimum_count'] ) && $location_settings['display']['minimum_count'] > $total_shares ) {
|
622 |
-
$total_shares = null;
|
623 |
-
}
|
624 |
-
|
625 |
-
return $total_shares;
|
626 |
-
}
|
627 |
-
|
628 |
-
/**
|
629 |
-
* Rounds the share counts.
|
630 |
-
*
|
631 |
-
* @param int $share_count
|
632 |
-
* @param string $location
|
633 |
-
* @return int
|
634 |
-
*/
|
635 |
-
function dpsp_round_share_counts( $share_count, $location = '' ) {
|
636 |
-
if ( empty( $location ) ) {
|
637 |
-
return $share_count;
|
638 |
-
}
|
639 |
-
|
640 |
-
if ( empty( $share_count ) ) {
|
641 |
-
return $share_count;
|
642 |
-
}
|
643 |
-
|
644 |
-
$location_settings = Mediavine\Grow\Settings::get_setting( 'dpsp_location_' . $location, [] );
|
645 |
|
646 |
-
|
647 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
648 |
}
|
649 |
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
if ( is_array( $share_count ) ) {
|
657 |
-
foreach ( $share_count as $key => $count ) {
|
658 |
-
|
659 |
-
if ( $count / 1000000 >= 1 ) {
|
660 |
-
$share_count[ $key ] = number_format( $count / 1000000, $round_precision ) . 'M';
|
661 |
-
} elseif ( $count / 1000 >= 1 ) {
|
662 |
-
$share_count[ $key ] = number_format( $count / 1000, $round_precision ) . 'K';
|
663 |
}
|
664 |
}
|
665 |
-
} else {
|
666 |
-
if ( $share_count / 1000000 >= 1 ) {
|
667 |
-
$share_count = number_format( $share_count / 1000000, $round_precision ) . 'M';
|
668 |
-
} elseif ( $share_count / 1000 >= 1 ) {
|
669 |
-
$share_count = number_format( $share_count / 1000, $round_precision ) . 'K';
|
670 |
-
}
|
671 |
-
}
|
672 |
-
|
673 |
-
return $share_count;
|
674 |
-
}
|
675 |
-
|
676 |
-
/**
|
677 |
-
* Listens for the Facebook response with the access code from the Grow Social by Mediavine app.
|
678 |
-
*/
|
679 |
-
function dpsp_capture_authorize_facebook_access_token() {
|
680 |
-
$token = filter_input( INPUT_GET, 'tkn' );
|
681 |
-
if ( empty( $token ) || ! wp_verify_nonce( $token, 'dpsp_authorize_facebook_app' ) ) {
|
682 |
-
return;
|
683 |
-
}
|
684 |
-
|
685 |
-
if ( empty( $_GET['facebook_access_token'] ) ) {
|
686 |
-
return;
|
687 |
-
}
|
688 |
-
|
689 |
-
if ( empty( $_GET['expires_in'] ) ) {
|
690 |
-
return;
|
691 |
-
}
|
692 |
-
|
693 |
-
$facebook_access_token = [
|
694 |
-
'access_token' => sanitize_text_field( filter_input( INPUT_GET, 'facebook_access_token' ) ),
|
695 |
-
'expires_in' => time() + absint( filter_input( INPUT_GET, 'expires_in' ) ),
|
696 |
-
];
|
697 |
-
|
698 |
-
update_option( 'dpsp_facebook_access_token', $facebook_access_token );
|
699 |
-
wp_redirect(
|
700 |
-
add_query_arg(
|
701 |
-
[
|
702 |
-
'page' => 'dpsp-settings',
|
703 |
-
'dpsp_message_id' => 4,
|
704 |
-
'settings-updated' => '',
|
705 |
-
],
|
706 |
-
admin_url( 'admin.php' )
|
707 |
-
)
|
708 |
-
);
|
709 |
-
exit;
|
710 |
-
}
|
711 |
-
|
712 |
-
/**
|
713 |
-
* Transients have proved to be unreliable for Facebook App tokens,
|
714 |
-
* so we've moved them over to options.
|
715 |
-
*
|
716 |
-
* This function migrates the value saved in the Facebook App token transient to an option.
|
717 |
-
*
|
718 |
-
* @todo This function can be removed sometime in the future, as it won't be needed anymore.
|
719 |
-
* The token is saved in a token once every two months, because it expires and it needs
|
720 |
-
* manual reauthorization. This code was added to Pro on the 5th of February 2020 and to Free
|
721 |
-
* on the 1st of December 2020.
|
722 |
-
*/
|
723 |
-
function dpsp_migrate_facebook_access_token_transient_to_option() {
|
724 |
-
// Get the access token saved in transient
|
725 |
-
$facebook_access_token = get_transient( 'dpsp_facebook_access_token' );
|
726 |
-
|
727 |
-
// If the transient value doesn't exit, no need to do anything
|
728 |
-
if ( empty( $facebook_access_token ) ) {
|
729 |
-
return;
|
730 |
}
|
731 |
|
732 |
-
|
733 |
-
update_option( 'dpsp_facebook_access_token', $facebook_access_token );
|
734 |
-
|
735 |
-
// Delete the transient value altogether
|
736 |
-
delete_transient( 'dpsp_facebook_access_token' );
|
737 |
-
}
|
738 |
-
|
739 |
-
/**
|
740 |
-
* Returns the share count saved for a post given the post_id and the
|
741 |
-
* network we wish to retreive the value for.
|
742 |
-
*
|
743 |
-
* @param int post_id - id of the post
|
744 |
-
* @param string $network_slug - slug of the social network
|
745 |
-
* @return mixed - bool false if something went wrong, and int if everything went well
|
746 |
-
* @deprecated 2.6.0
|
747 |
-
*/
|
748 |
-
function dpsp_get_post_share_count( $post_id, $network_slug ) {
|
749 |
-
if ( ! isset( $post_id ) && ! isset( $network_slug ) ) {
|
750 |
-
return false;
|
751 |
-
}
|
752 |
-
|
753 |
-
$shares = dpsp_get_post_share_counts( $post_id );
|
754 |
-
if ( isset( $shares[ $network_slug ] ) && in_array( $network_slug, dpsp_get_networks_with_social_count(), true ) ) {
|
755 |
-
return $shares[ $network_slug ];
|
756 |
-
} else {
|
757 |
-
return false;
|
758 |
-
}
|
759 |
-
}
|
760 |
-
|
761 |
-
/**
|
762 |
-
*
|
763 |
-
*/
|
764 |
-
function dpsp_invalidate_all_share_counts() {
|
765 |
-
Share_Counts::invalidate_all();
|
766 |
-
}
|
767 |
-
|
768 |
-
/**
|
769 |
-
* Register hooks for functions-share-counts.php.
|
770 |
-
*/
|
771 |
-
function dpsp_register_functions_share_counts() {
|
772 |
-
add_action( 'wp_head', 'dpsp_refresh_post_share_counts', 10 );
|
773 |
-
add_action( 'admin_head', 'dpsp_refresh_post_share_counts_edit', 10 );
|
774 |
-
add_action( 'dpsp_update_post_share_counts', 'dpsp_update_top_shared_posts', 10, 2 );
|
775 |
-
add_filter( 'dpsp_get_post_total_share_count', 'dpsp_post_total_share_count_minimum_count', 20, 3 );
|
776 |
-
add_filter( 'dpsp_get_output_post_shares_counts', 'dpsp_round_share_counts', 10, 2 );
|
777 |
-
add_filter( 'dpsp_get_output_total_share_count', 'dpsp_round_share_counts', 10, 2 );
|
778 |
-
add_action( 'admin_init', 'dpsp_capture_authorize_facebook_access_token' );
|
779 |
-
add_action( 'admin_init', 'dpsp_migrate_facebook_access_token_transient_to_option' );
|
780 |
}
|
1 |
<?php
|
2 |
|
|
|
3 |
use Mediavine\Grow\Networks;
|
4 |
+
use Mediavine\Grow\Share_Counts;
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Listens for the Facebook response with the access code from the Grow Social by Mediavine app.
|
8 |
+
*/
|
9 |
+
function dpsp_capture_authorize_facebook_access_token() {
|
10 |
+
$token = filter_input( INPUT_GET, 'tkn' );
|
11 |
+
if ( empty( $token ) || ! wp_verify_nonce( $token, 'dpsp_authorize_facebook_app' ) ) {
|
12 |
+
return false;
|
13 |
+
}
|
14 |
+
|
15 |
+
if ( empty( $_GET['facebook_access_token'] ) ) {
|
16 |
+
return false;
|
17 |
+
}
|
18 |
+
|
19 |
+
if ( empty( $_GET['expires_in'] ) ) {
|
20 |
+
return false;
|
21 |
+
}
|
22 |
+
|
23 |
+
$facebook_access_token = [
|
24 |
+
'access_token' => sanitize_text_field( filter_input( INPUT_GET, 'facebook_access_token' ) ),
|
25 |
+
'expires_in' => time() + absint( filter_input( INPUT_GET, 'expires_in' ) ),
|
26 |
+
];
|
27 |
+
|
28 |
+
update_option( 'dpsp_facebook_access_token', $facebook_access_token );
|
29 |
+
wp_redirect(
|
30 |
+
add_query_arg(
|
31 |
+
[
|
32 |
+
'page' => 'dpsp-settings',
|
33 |
+
'dpsp_message_id' => 4,
|
34 |
+
'settings-updated' => '',
|
35 |
+
],
|
36 |
+
admin_url( 'admin.php' )
|
37 |
+
)
|
38 |
+
);
|
39 |
+
exit;
|
40 |
+
}
|
41 |
+
|
42 |
/**
|
43 |
* Not all social networks support social count.
|
44 |
*
|
50 |
$networks = Networks::get_instance();
|
51 |
$countable_networks = $networks->get_countable();
|
52 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
$countable_networks = $networks->make_slug_array( $countable_networks );
|
54 |
|
55 |
/**
|
61 |
return apply_filters( 'dpsp_get_networks_with_social_count', $countable_networks );
|
62 |
}
|
63 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
/**
|
65 |
* Returns the share count for a post and a social network from the social network through an API.
|
66 |
+
* This function determines if the requested network differentiates between https and http, and if
|
67 |
+
* so creates urls to check for each and pings the network, otherwise it will just pass through to
|
68 |
+
* dpsp_get_url_network_share_count, then allow the result of that function to be filtered
|
69 |
*
|
70 |
+
* @param int $post_id ID of the post.
|
71 |
+
* @param string $network_slug Slug of the social network.
|
72 |
+
* @return bool|int False if something went wrong, and int if everything went well
|
73 |
*/
|
74 |
function dpsp_get_post_network_share_count( $post_id, $network_slug ) {
|
75 |
+
if ( empty( $post_id ) || empty( $network_slug ) ) {
|
76 |
return false;
|
77 |
}
|
78 |
|
142 |
/**
|
143 |
* Returns the share count for a given url and a social network from the social network through an API.
|
144 |
*
|
145 |
+
* @param string $url - the URL for which we want the share counts
|
146 |
* @param string $network_slug - slug of the social network
|
147 |
* @return mixed - bool false if something went wrong, and int if everything went well
|
148 |
*/
|
158 |
$page_url = rawurlencode( $url );
|
159 |
|
160 |
// Default post arguments
|
161 |
+
// TODO Does this need to be so high?
|
162 |
+
$args = [ 'timeout' => 10 ]; // phpcs:ignore WordPressVIPMinimum.Performance.RemoteRequestTimeout
|
163 |
|
164 |
// Prepare urls to get remote request
|
165 |
switch ( $network_slug ) {
|
192 |
case 'grow':
|
193 |
$remote_url = 'https://api.grow.me/graphql?query=%0A++query+GetPageBookmarkCount%28%24where%3A+PageWhereUniqueInput%21%29+%7B%0A++++page%28where%3A+%24where%29+%7B%0A++++++__typename%0A++++++id%0A++++++bookmarkCount%0A++++%7D%0A++%7D%0A&variables=%7B%22where%22%3A%7B%22url%22%3A%22' . $page_url . '%22%7D%7D&operationName=GetPageBookmarkCount';
|
194 |
break;
|
|
|
|
|
|
|
|
|
195 |
}
|
196 |
|
197 |
// If we have no remote URL, then return false early
|
206 |
if ( 200 === wp_remote_retrieve_response_code( $response ) ) {
|
207 |
$body = json_decode( wp_remote_retrieve_body( $response ), true );
|
208 |
|
|
|
209 |
// Get share value from response body
|
210 |
switch ( $network_slug ) {
|
211 |
|
244 |
// If we have a Facebook error, we need to possibly adjust the expires date
|
245 |
$body = json_decode( wp_remote_retrieve_body( $response ), true );
|
246 |
|
247 |
+
if ( isset( $body['error']['code'] ) && 190 === $body['error']['code'] ) {
|
|
|
|
|
|
|
248 |
$facebook_access_token = Mediavine\Grow\Settings::get_setting( 'dpsp_facebook_access_token' );
|
249 |
|
250 |
// Adjust Facebook access token expiration if the token is marked as invalid by Facebook
|
259 |
}
|
260 |
|
261 |
/**
|
262 |
+
* Pulls the share counts for all active networks for a certain post
|
263 |
*
|
264 |
+
* @param int $post_id The unique ID of the post.
|
265 |
* @return array
|
266 |
*/
|
267 |
+
function dpsp_pull_post_share_counts( $post_id = 0 ) {
|
268 |
+
if ( 0 === $post_id ) {
|
269 |
+
return [];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
270 |
}
|
271 |
+
$networks_class = Networks::get_instance();
|
272 |
|
273 |
+
// Get active social networks
|
274 |
+
$social_networks = dpsp_get_active_networks();
|
275 |
|
276 |
+
// Get saved shares
|
277 |
+
$networks_shares = Share_Counts::post_share_counts( $post_id );
|
|
|
278 |
|
279 |
+
if ( empty( $networks_shares ) ) {
|
280 |
+
$networks_shares = [];
|
|
|
281 |
}
|
282 |
|
283 |
+
// Set temporary variable
|
284 |
+
$_networks_shares = [];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
285 |
|
286 |
+
// Pass through each active social networks and grab the share counts for the post
|
287 |
+
foreach ( $social_networks as $network_slug ) {
|
288 |
+
$network = $networks_class->get( $network_slug );
|
289 |
+
if ( ! $network || ! $network->has_count() ) {
|
290 |
+
continue;
|
291 |
}
|
|
|
292 |
|
293 |
+
$share_count = dpsp_get_post_network_share_count( $post_id, $network_slug );
|
294 |
+
if ( false === $share_count ) {
|
295 |
+
continue;
|
296 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
297 |
|
298 |
+
// Take into account Twitter old counts from NewShareCounts and OpenShareCount
|
299 |
+
// The post meta "dpsp_cache_shares_twitter" was used for NewShareCounts
|
300 |
+
// The post meta "dpsp_cache_shares_twitter_2" was used for OpenShareCount
|
301 |
+
if ( 'twitter' === $network->get_slug() && isset( $networks_shares[ $network->get_slug() ] ) ) {
|
302 |
+
$cached_old_twitter_shares = get_post_meta( $post_id, 'dpsp_cache_shares_twitter_2', true );
|
303 |
|
304 |
+
// Add the Twitter shares to the cache if they do not exist
|
305 |
+
if ( '' === $cached_old_twitter_shares ) {
|
306 |
+
$cached_old_twitter_shares = absint( $networks_shares[ $network->get_slug() ] );
|
307 |
+
update_post_meta( $post_id, 'dpsp_cache_shares_twitter_2', $cached_old_twitter_shares );
|
308 |
|
309 |
+
// Delete the post meta for NewShareCounts
|
310 |
+
delete_post_meta( $post_id, 'dpsp_cache_shares_twitter' );
|
311 |
+
}
|
312 |
|
313 |
+
// Add the current shares to the cached ones
|
314 |
+
$share_count += $cached_old_twitter_shares;
|
|
|
315 |
}
|
316 |
+
|
317 |
+
// Add the share counts
|
318 |
+
$_networks_shares[ $network->get_slug() ] = $share_count;
|
319 |
+
} // End of social_networks loop
|
320 |
|
321 |
/**
|
322 |
+
* Filter the social share counts as they are retrieved from the social networks.
|
323 |
+
*
|
324 |
+
* @param array $_networks_shares
|
325 |
* @param int $post_id
|
|
|
326 |
*/
|
327 |
+
$_networks_shares = apply_filters( 'dpsp_pull_post_share_counts_raw', $_networks_shares, $post_id );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
328 |
|
329 |
+
// Update the share counts only if they are bigger
|
330 |
+
foreach ( $_networks_shares as $network_slug => $share_count ) {
|
331 |
+
if ( isset( $networks_shares[ $network_slug ] ) ) {
|
332 |
+
$networks_shares[ $network_slug ] = ( absint( $share_count ) > absint( $networks_shares[ $network_slug ] ) ? absint( $share_count ) : absint( $networks_shares[ $network_slug ] ) );
|
333 |
+
} else {
|
334 |
+
// If the share counts don't exist for the network, add them
|
335 |
+
$networks_shares[ $network_slug ] = absint( $_networks_shares[ $network_slug ] );
|
336 |
+
}
|
337 |
}
|
338 |
|
339 |
+
// Remove social counts for networks that are not required
|
340 |
+
if ( ! empty( $networks_shares ) ) {
|
341 |
+
foreach ( $networks_shares as $network_slug => $share_count ) {
|
342 |
+
if ( ! in_array( $network_slug, $social_networks, true ) ) {
|
343 |
+
unset( $networks_shares[ $network_slug ] );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
344 |
}
|
345 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
346 |
}
|
347 |
|
348 |
+
return $networks_shares;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
349 |
}
|
inc/functions-tools.php
CHANGED
@@ -53,9 +53,13 @@ function dpsp_get_active_tools() {
|
|
53 |
$legacy_slugs = array_diff( array_keys( $tools ), $active_tools );
|
54 |
|
55 |
// Check the tool settings to see if any of the tools not in the active tools array are in fact active, then merge in.
|
56 |
-
$active_tools = array_merge(
|
57 |
-
|
58 |
-
|
|
|
|
|
|
|
|
|
59 |
|
60 |
return $active_tools;
|
61 |
}
|
@@ -104,20 +108,24 @@ function dpsp_is_legacy_tool_active( $tool ) {
|
|
104 |
function dpsp_activate_tool() {
|
105 |
$tool = dpsp_validate_tool_ajax_action();
|
106 |
|
107 |
-
dpsp_update_combined_tools_active_setting(
|
|
|
108 |
if ( ! in_array( $tool, $active_tools, true ) ) {
|
109 |
array_push( $active_tools, $tool );
|
110 |
}
|
111 |
|
112 |
return $active_tools;
|
113 |
-
|
|
|
114 |
|
115 |
-
dpsp_update_tool_activation_setting(
|
|
|
116 |
if ( ! $is_active ) {
|
117 |
$settings[ $active_option ] = 1;
|
118 |
}
|
119 |
return $settings;
|
120 |
-
|
|
|
121 |
|
122 |
echo 1;
|
123 |
wp_die();
|
@@ -130,7 +138,8 @@ function dpsp_activate_tool() {
|
|
130 |
function dpsp_deactivate_tool() {
|
131 |
$tool = dpsp_validate_tool_ajax_action();
|
132 |
|
133 |
-
dpsp_update_combined_tools_active_setting(
|
|
|
134 |
$key = array_search( $tool, $active_tools, true );
|
135 |
if ( false !== $key ) {
|
136 |
unset( $active_tools[ $key ] );
|
@@ -138,14 +147,17 @@ function dpsp_deactivate_tool() {
|
|
138 |
}
|
139 |
|
140 |
return $active_tools;
|
141 |
-
|
|
|
142 |
|
143 |
-
dpsp_update_tool_activation_setting(
|
|
|
144 |
if ( $is_active ) {
|
145 |
unset( $settings[ $active_option ] );
|
146 |
}
|
147 |
return $settings;
|
148 |
-
|
|
|
149 |
echo 1;
|
150 |
wp_die();
|
151 |
}
|
53 |
$legacy_slugs = array_diff( array_keys( $tools ), $active_tools );
|
54 |
|
55 |
// Check the tool settings to see if any of the tools not in the active tools array are in fact active, then merge in.
|
56 |
+
$active_tools = array_merge(
|
57 |
+
$active_tools, array_filter(
|
58 |
+
$legacy_slugs, function ( $tool_slug ) use ( $tools ) {
|
59 |
+
return dpsp_is_legacy_tool_active( $tools[ $tool_slug ] );
|
60 |
+
}
|
61 |
+
)
|
62 |
+
);
|
63 |
|
64 |
return $active_tools;
|
65 |
}
|
108 |
function dpsp_activate_tool() {
|
109 |
$tool = dpsp_validate_tool_ajax_action();
|
110 |
|
111 |
+
dpsp_update_combined_tools_active_setting(
|
112 |
+
$tool, function ( $active_tools, $tool ) {
|
113 |
if ( ! in_array( $tool, $active_tools, true ) ) {
|
114 |
array_push( $active_tools, $tool );
|
115 |
}
|
116 |
|
117 |
return $active_tools;
|
118 |
+
}
|
119 |
+
);
|
120 |
|
121 |
+
dpsp_update_tool_activation_setting(
|
122 |
+
$tool, function ( $settings, $active_option, $is_active ) {
|
123 |
if ( ! $is_active ) {
|
124 |
$settings[ $active_option ] = 1;
|
125 |
}
|
126 |
return $settings;
|
127 |
+
}
|
128 |
+
);
|
129 |
|
130 |
echo 1;
|
131 |
wp_die();
|
138 |
function dpsp_deactivate_tool() {
|
139 |
$tool = dpsp_validate_tool_ajax_action();
|
140 |
|
141 |
+
dpsp_update_combined_tools_active_setting(
|
142 |
+
$tool, function ( $active_tools, $tool ) {
|
143 |
$key = array_search( $tool, $active_tools, true );
|
144 |
if ( false !== $key ) {
|
145 |
unset( $active_tools[ $key ] );
|
147 |
}
|
148 |
|
149 |
return $active_tools;
|
150 |
+
}
|
151 |
+
);
|
152 |
|
153 |
+
dpsp_update_tool_activation_setting(
|
154 |
+
$tool, function ( $settings, $active_option, $is_active ) {
|
155 |
if ( $is_active ) {
|
156 |
unset( $settings[ $active_option ] );
|
157 |
}
|
158 |
return $settings;
|
159 |
+
}
|
160 |
+
);
|
161 |
echo 1;
|
162 |
wp_die();
|
163 |
}
|
inc/functions.php
CHANGED
@@ -244,10 +244,10 @@ function dpsp_get_active_post_types() {
|
|
244 |
* Returns the saved option, but replaces the saved social network
|
245 |
* data with simple data to display in the back-end
|
246 |
*
|
247 |
-
* @param string $option_name
|
248 |
* @return array $settings
|
249 |
*/
|
250 |
-
function dpsp_get_back_end_display_option( $option_name ) {
|
251 |
$settings = Mediavine\Grow\Settings::get_setting( $option_name );
|
252 |
$networks = dpsp_get_networks( 'all' );
|
253 |
|
@@ -261,7 +261,9 @@ function dpsp_get_back_end_display_option( $option_name ) {
|
|
261 |
if ( $current_network > 2 ) {
|
262 |
unset( $settings['networks'][ $network_slug ] );
|
263 |
} else {
|
264 |
-
|
|
|
|
|
265 |
}
|
266 |
|
267 |
$current_network ++;
|
@@ -283,16 +285,16 @@ function dpsp_get_back_end_display_option( $option_name ) {
|
|
283 |
/**
|
284 |
* Returns the share link for a social network given the network slug.
|
285 |
*
|
286 |
-
* @param string $network_slug
|
287 |
-
* @param string $post_url
|
288 |
-
* @param string $post_title
|
289 |
-
* @param string $post_description
|
290 |
-
* @param string $post_image
|
291 |
*
|
292 |
* @return string
|
293 |
*
|
294 |
*/
|
295 |
-
function dpsp_get_network_share_link( $network_slug = '', $post_url = null, $post_title = null, $post_description = null, $post_image = null ) {
|
296 |
if ( empty( $network_slug ) ) {
|
297 |
return '';
|
298 |
}
|
@@ -377,7 +379,7 @@ function dpsp_first_activation_active_networks( $networks = [], $for = 'share' )
|
|
377 |
return $networks;
|
378 |
}
|
379 |
|
380 |
-
$networks = [ 'facebook', '
|
381 |
|
382 |
return $networks;
|
383 |
}
|
@@ -415,6 +417,10 @@ function dpsp_default_settings() {
|
|
415 |
$dpsp_settings['utm_campaign'] = 'grow-social-pro';
|
416 |
}
|
417 |
|
|
|
|
|
|
|
|
|
418 |
// Update settings
|
419 |
update_option( 'dpsp_settings', $dpsp_settings );
|
420 |
|
@@ -713,13 +719,17 @@ function dpsp_get_svg_data_for_networks( $networks ) {
|
|
713 |
$icons = \Mediavine\Grow\Icons::get_instance();
|
714 |
$slugs = array_keys( $networks );
|
715 |
$data = [];
|
|
|
|
|
|
|
|
|
|
|
716 |
foreach ( $slugs as $slug ) {
|
717 |
$icon = $icons->get( $slug );
|
718 |
if ( empty( $icon ) ) {
|
719 |
continue;
|
720 |
}
|
721 |
-
$
|
722 |
-
$data[ $slug ] = empty( $icon_override ) ? $icon->get_data() : $icon_override->get_data();
|
723 |
}
|
724 |
return $data;
|
725 |
}
|
244 |
* Returns the saved option, but replaces the saved social network
|
245 |
* data with simple data to display in the back-end
|
246 |
*
|
247 |
+
* @param string $option_name Name of the option to get
|
248 |
* @return array $settings
|
249 |
*/
|
250 |
+
function dpsp_get_back_end_display_option( string $option_name ) : array {
|
251 |
$settings = Mediavine\Grow\Settings::get_setting( $option_name );
|
252 |
$networks = dpsp_get_networks( 'all' );
|
253 |
|
261 |
if ( $current_network > 2 ) {
|
262 |
unset( $settings['networks'][ $network_slug ] );
|
263 |
} else {
|
264 |
+
if ( ! empty( $networks[ $network_slug ] ) ) {
|
265 |
+
$settings['networks'][ $network_slug ] = [ 'label' => $networks[ $network_slug ] ];
|
266 |
+
}
|
267 |
}
|
268 |
|
269 |
$current_network ++;
|
285 |
/**
|
286 |
* Returns the share link for a social network given the network slug.
|
287 |
*
|
288 |
+
* @param string $network_slug Slug for Network
|
289 |
+
* @param string $post_url Post URL to get share link for
|
290 |
+
* @param string $post_title Post Title to be included in share link
|
291 |
+
* @param string $post_description Post description to be included in share link
|
292 |
+
* @param string $post_image Post image to be included in share link
|
293 |
*
|
294 |
* @return string
|
295 |
*
|
296 |
*/
|
297 |
+
function dpsp_get_network_share_link( string $network_slug = '', string $post_url = null, string $post_title = null, string $post_description = null, string $post_image = null ) : string {
|
298 |
if ( empty( $network_slug ) ) {
|
299 |
return '';
|
300 |
}
|
379 |
return $networks;
|
380 |
}
|
381 |
|
382 |
+
$networks = [ 'facebook', 'twitter', 'pinterest' ];
|
383 |
|
384 |
return $networks;
|
385 |
}
|
417 |
$dpsp_settings['utm_campaign'] = 'grow-social-pro';
|
418 |
}
|
419 |
|
420 |
+
if ( ! isset( $dpsp_settings['inline_critical_css'] ) ) {
|
421 |
+
$dpsp_settings['inline_critical_css'] = '1';
|
422 |
+
}
|
423 |
+
|
424 |
// Update settings
|
425 |
update_option( 'dpsp_settings', $dpsp_settings );
|
426 |
|
719 |
$icons = \Mediavine\Grow\Icons::get_instance();
|
720 |
$slugs = array_keys( $networks );
|
721 |
$data = [];
|
722 |
+
|
723 |
+
$share_icon = $icons->get( 'share' );
|
724 |
+
|
725 |
+
$data['share'] = $share_icon ? $share_icon->get_data() : [];
|
726 |
+
|
727 |
foreach ( $slugs as $slug ) {
|
728 |
$icon = $icons->get( $slug );
|
729 |
if ( empty( $icon ) ) {
|
730 |
continue;
|
731 |
}
|
732 |
+
$data[ $slug ] = $icon->get_data();
|
|
|
733 |
}
|
734 |
return $data;
|
735 |
}
|
inc/integrations/class-mv-trellis.php
CHANGED
@@ -34,7 +34,7 @@ class MV_Trellis extends Integration {
|
|
34 |
*/
|
35 |
public static function get_instance() {
|
36 |
if ( null === self::$instance ) {
|
37 |
-
self::$instance = new self;
|
38 |
self::$instance->init();
|
39 |
}
|
40 |
|
@@ -46,7 +46,6 @@ class MV_Trellis extends Integration {
|
|
46 |
*/
|
47 |
public function init() {
|
48 |
add_filter( 'mv_trellis_css_allowlist', [ $this, 'css_bypass' ] );
|
49 |
-
add_filter( 'mv_trellis_disable_lazy_load_classes', [ $this, 'lazyload_bypass' ] );
|
50 |
if ( dpsp_is_location_active( 'share_content' ) ) {
|
51 |
$this->inline_content = [
|
52 |
'top' => '',
|
@@ -63,7 +62,7 @@ class MV_Trellis extends Integration {
|
|
63 |
* @return bool|mixed
|
64 |
*/
|
65 |
public function should_run() {
|
66 |
-
return class_exists( 'Mediavine\Trellis\
|
67 |
}
|
68 |
|
69 |
/**
|
@@ -84,16 +83,22 @@ class MV_Trellis extends Integration {
|
|
84 |
|
85 |
/**
|
86 |
* Echo the top inline content position if it is enabled.
|
|
|
|
|
87 |
*/
|
88 |
public function inline_content_share_top() {
|
89 |
echo wp_kses( $this->get_inline_content_position( 'top' ), View_Loader::get_allowed_tags() );
|
|
|
90 |
}
|
91 |
|
92 |
/**
|
93 |
* Echo the bottom inline content position if it is enabled.
|
|
|
|
|
94 |
*/
|
95 |
public function inline_content_share_bottom() {
|
96 |
echo wp_kses( $this->get_inline_content_position( 'bottom' ), View_Loader::get_allowed_tags() );
|
|
|
97 |
}
|
98 |
|
99 |
/**
|
@@ -160,7 +165,7 @@ class MV_Trellis extends Integration {
|
|
160 |
/**
|
161 |
*
|
162 |
*
|
163 |
-
* @param array $bypass
|
164 |
* @return array
|
165 |
*/
|
166 |
public static function css_bypass( $bypass = [] ) {
|
@@ -168,16 +173,4 @@ class MV_Trellis extends Integration {
|
|
168 |
|
169 |
return $bypass;
|
170 |
}
|
171 |
-
|
172 |
-
/**
|
173 |
-
*
|
174 |
-
*
|
175 |
-
* @param array $bypass
|
176 |
-
* @return array
|
177 |
-
*/
|
178 |
-
public static function lazyload_bypass( $bypass = [] ) {
|
179 |
-
$bypass[] = 'dpsp-post-pinterest-image-hidden-inner';
|
180 |
-
|
181 |
-
return $bypass;
|
182 |
-
}
|
183 |
}
|
34 |
*/
|
35 |
public static function get_instance() {
|
36 |
if ( null === self::$instance ) {
|
37 |
+
self::$instance = new self();
|
38 |
self::$instance->init();
|
39 |
}
|
40 |
|
46 |
*/
|
47 |
public function init() {
|
48 |
add_filter( 'mv_trellis_css_allowlist', [ $this, 'css_bypass' ] );
|
|
|
49 |
if ( dpsp_is_location_active( 'share_content' ) ) {
|
50 |
$this->inline_content = [
|
51 |
'top' => '',
|
62 |
* @return bool|mixed
|
63 |
*/
|
64 |
public function should_run() {
|
65 |
+
return class_exists( 'Mediavine\Trellis\Init' );
|
66 |
}
|
67 |
|
68 |
/**
|
83 |
|
84 |
/**
|
85 |
* Echo the top inline content position if it is enabled.
|
86 |
+
*
|
87 |
+
* @return boolean
|
88 |
*/
|
89 |
public function inline_content_share_top() {
|
90 |
echo wp_kses( $this->get_inline_content_position( 'top' ), View_Loader::get_allowed_tags() );
|
91 |
+
return true;
|
92 |
}
|
93 |
|
94 |
/**
|
95 |
* Echo the bottom inline content position if it is enabled.
|
96 |
+
*
|
97 |
+
* @return boolean
|
98 |
*/
|
99 |
public function inline_content_share_bottom() {
|
100 |
echo wp_kses( $this->get_inline_content_position( 'bottom' ), View_Loader::get_allowed_tags() );
|
101 |
+
return true;
|
102 |
}
|
103 |
|
104 |
/**
|
165 |
/**
|
166 |
*
|
167 |
*
|
168 |
+
* @param array $bypass Current array of bypass regexes
|
169 |
* @return array
|
170 |
*/
|
171 |
public static function css_bypass( $bypass = [] ) {
|
173 |
|
174 |
return $bypass;
|
175 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
176 |
}
|
inc/networks/class-networks.php
CHANGED
@@ -2,6 +2,7 @@
|
|
2 |
namespace Mediavine\Grow;
|
3 |
|
4 |
use Mediavine\Grow\Network;
|
|
|
5 |
|
6 |
class Networks {
|
7 |
/** @var Networks */
|
@@ -62,7 +63,7 @@ class Networks {
|
|
62 |
'name' => 'Twitter',
|
63 |
'share_format' => 'https://twitter.com/intent/tweet?text=%2$s&url=%1$s',
|
64 |
'follow_format' => 'https://twitter.com/%1$s',
|
65 |
-
'has_share_count' =>
|
66 |
],
|
67 |
[
|
68 |
'slug' => 'pinterest',
|
@@ -78,13 +79,12 @@ class Networks {
|
|
78 |
'follow_format' => 'https://www.linkedin.com/in/%1$s',
|
79 |
],
|
80 |
[
|
81 |
-
'name'
|
82 |
-
'slug'
|
83 |
-
'label_override'
|
84 |
-
'icon_override'
|
85 |
-
'share_format'
|
86 |
-
'
|
87 |
-
'tooltip' => 'The Grow.me button will only show as an option if the Grow.me widget is also on the post. Currently, the Grow.me widget is only available to Mediavine Publishers. <a rel="noopener" href="https://www.grow.me/">Learn more about Grow.me</a>',
|
88 |
],
|
89 |
[
|
90 |
'slug' => 'email',
|
2 |
namespace Mediavine\Grow;
|
3 |
|
4 |
use Mediavine\Grow\Network;
|
5 |
+
use Social_Pug;
|
6 |
|
7 |
class Networks {
|
8 |
/** @var Networks */
|
63 |
'name' => 'Twitter',
|
64 |
'share_format' => 'https://twitter.com/intent/tweet?text=%2$s&url=%1$s',
|
65 |
'follow_format' => 'https://twitter.com/%1$s',
|
66 |
+
'has_share_count' => Social_Pug::get_instance()->has_license,
|
67 |
],
|
68 |
[
|
69 |
'slug' => 'pinterest',
|
79 |
'follow_format' => 'https://www.linkedin.com/in/%1$s',
|
80 |
],
|
81 |
[
|
82 |
+
'name' => 'Grow',
|
83 |
+
'slug' => 'grow',
|
84 |
+
'label_override' => 'Save',
|
85 |
+
'icon_override' => 'grow-heart',
|
86 |
+
'share_format' => '#',
|
87 |
+
'tooltip' => 'The Grow button will only show as an option if the Grow widget is also on the post. Currently, the Grow widget is only available to Mediavine Publishers. <a rel="noopener" href="https://www.grow.me/">Learn more about Grow</a>',
|
|
|
88 |
],
|
89 |
[
|
90 |
'slug' => 'email',
|
inc/tools/class-tool.php
CHANGED
@@ -173,6 +173,11 @@ abstract class Tool implements Has_Settings_API {
|
|
173 |
*/
|
174 |
public function update_settings( $settings ) {
|
175 |
$this->settings = $settings;
|
|
|
|
|
|
|
|
|
|
|
176 |
return update_option( $this->get_settings_slug(), $settings );
|
177 |
}
|
178 |
|
173 |
*/
|
174 |
public function update_settings( $settings ) {
|
175 |
$this->settings = $settings;
|
176 |
+
if ( $settings['active'] ) {
|
177 |
+
$this->active = true;
|
178 |
+
} else {
|
179 |
+
$this->active = false;
|
180 |
+
}
|
181 |
return update_option( $this->get_settings_slug(), $settings );
|
182 |
}
|
183 |
|
inc/tools/share-floating-sidebar/class-floating-sidebar.php
CHANGED
@@ -3,6 +3,7 @@ namespace Mediavine\Grow\Tools;
|
|
3 |
|
4 |
use Mediavine\Grow\Settings;
|
5 |
use Mediavine\Grow\Custom_Color;
|
|
|
6 |
|
7 |
class Floating_Sidebar extends Tool {
|
8 |
use Renderable;
|
@@ -52,7 +53,7 @@ class Floating_Sidebar extends Tool {
|
|
52 |
*/
|
53 |
public static function get_prepared_settings() {
|
54 |
$settings = Settings::get_setting( 'dpsp_location_sidebar', [] );
|
55 |
-
$settings['show_total_count'] = ! isset( $settings['display']['minimum_count'] ) || empty( $settings['display']['minimum_count'] ) || ( ! empty( $settings['display']['minimum_count'] ) && (int) $settings['display']['minimum_count'] <
|
56 |
return $settings;
|
57 |
}
|
58 |
|
@@ -90,14 +91,20 @@ class Floating_Sidebar extends Tool {
|
|
90 |
public function inline_styles( $styles ) {
|
91 |
if ( $this->active ) {
|
92 |
$mobile_screen_width = ( ! empty( $this->settings['display']['screen_size'] ) ? (int) $this->settings['display']['screen_size'] : $this->default_mobile_breakpoint );
|
93 |
-
$
|
|
|
|
|
|
|
|
|
|
|
94 |
@media screen and ( max-width : ' . $mobile_screen_width . 'px ) {
|
95 |
#dpsp-floating-sidebar.dpsp-hide-on-mobile.opened {
|
96 |
display: none;
|
97 |
}
|
98 |
}
|
99 |
';
|
100 |
-
$styles
|
|
|
101 |
}
|
102 |
|
103 |
return $styles;
|
3 |
|
4 |
use Mediavine\Grow\Settings;
|
5 |
use Mediavine\Grow\Custom_Color;
|
6 |
+
use Mediavine\Grow\Share_Counts;
|
7 |
|
8 |
class Floating_Sidebar extends Tool {
|
9 |
use Renderable;
|
53 |
*/
|
54 |
public static function get_prepared_settings() {
|
55 |
$settings = Settings::get_setting( 'dpsp_location_sidebar', [] );
|
56 |
+
$settings['show_total_count'] = ! isset( $settings['display']['minimum_count'] ) || empty( $settings['display']['minimum_count'] ) || ( ! empty( $settings['display']['minimum_count'] ) && (int) $settings['display']['minimum_count'] < Share_Counts::post_total_share_counts() );
|
57 |
return $settings;
|
58 |
}
|
59 |
|
91 |
public function inline_styles( $styles ) {
|
92 |
if ( $this->active ) {
|
93 |
$mobile_screen_width = ( ! empty( $this->settings['display']['screen_size'] ) ? (int) $this->settings['display']['screen_size'] : $this->default_mobile_breakpoint );
|
94 |
+
$plugin_settings = Settings::get_setting( 'dpsp_settings', [] );
|
95 |
+
$whatsapp_style = '';
|
96 |
+
if ( ! empty( $plugin_settings['whatsapp_display_only_mobile'] ) ) {
|
97 |
+
$whatsapp_style = '@media screen and ( min-width : ' . $mobile_screen_width . 'px ) { #dpsp-floating-sidebar .dpsp-network-list-item.dpsp-network-list-item-whatsapp { display: none } }';
|
98 |
+
}
|
99 |
+
$styles .= '
|
100 |
@media screen and ( max-width : ' . $mobile_screen_width . 'px ) {
|
101 |
#dpsp-floating-sidebar.dpsp-hide-on-mobile.opened {
|
102 |
display: none;
|
103 |
}
|
104 |
}
|
105 |
';
|
106 |
+
$styles .= $whatsapp_style;
|
107 |
+
$styles .= Custom_Color::get_style( 'sidebar' );
|
108 |
}
|
109 |
|
110 |
return $styles;
|
inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php
CHANGED
@@ -159,21 +159,20 @@
|
|
159 |
|
160 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_sidebar[display][show_after_scrolling]', ( isset( $dpsp_location_sidebar['display']['show_after_scrolling'] ) ? $dpsp_location_sidebar['display']['show_after_scrolling'] : '' ), __( 'Show after user scrolls', 'social-pug' ), [ 'yes' ] ); ?>
|
161 |
|
162 |
-
<?php dpsp_settings_field( 'text', 'dpsp_location_sidebar[display][scroll_distance]', ( isset( $dpsp_location_sidebar['display']['scroll_distance'] ) ? $dpsp_location_sidebar['display']['scroll_distance'] : '' ), __( 'Scroll distance (%)', 'social-pug' ), '30', __( 'The distance in percentage (%) of the total page height the user has to scroll before the buttons will appear.', 'social-pug' ) ); ?>
|
163 |
|
164 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_sidebar[display][hide_at_stop_selector]', ( isset( $dpsp_location_sidebar['display']['hide_at_stop_selector'] ) ? $dpsp_location_sidebar['display']['hide_at_stop_selector'] : '' ), __( 'Hide after reaching Element', 'social-pug' ), [ 'yes' ] ); ?>
|
165 |
|
166 |
-
<?php dpsp_settings_field( 'text', 'dpsp_location_sidebar[display][stop_selector]', ( isset( $dpsp_location_sidebar['display']['stop_selector'] ) ? $dpsp_location_sidebar['display']['stop_selector'] : '' ), __( 'Hide Element Selector', 'social-pug' ), '30', __( 'Hides the floating sidebar when it reaches this element on the page. By default, an empty value here will make it so the floating sidebar will not hide when it reaches the footer area.', 'social-pug' ) ); ?>
|
167 |
|
168 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_sidebar[display][show_mobile]', ( isset( $dpsp_location_sidebar['display']['show_mobile'] ) ? $dpsp_location_sidebar['display']['show_mobile'] : '' ), __( 'Show on mobile', 'social-pug' ), [ 'yes' ] ); ?>
|
169 |
|
170 |
-
<?php dpsp_settings_field( 'text', 'dpsp_location_sidebar[display][screen_size]', ( isset( $dpsp_location_sidebar['display']['screen_size'] ) ? $dpsp_location_sidebar['display']['screen_size'] : '' ), __( 'Mobile screen width (pixels)', 'social-pug' ),
|
171 |
|
172 |
</div>
|
173 |
|
174 |
</div>
|
175 |
|
176 |
-
|
177 |
<!-- Share Counts -->
|
178 |
<div class="dpsp-card">
|
179 |
|
@@ -183,7 +182,7 @@
|
|
183 |
|
184 |
<div class="dpsp-card-inner">
|
185 |
|
186 |
-
<?php dpsp_settings_field( 'switch', 'dpsp_location_sidebar[display][show_count]', ( isset( $dpsp_location_sidebar['display']['show_count'] ) ? $dpsp_location_sidebar['display']['show_count'] : '' ), __( 'Show share count', '
|
187 |
|
188 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_sidebar[display][show_count_total]', ( isset( $dpsp_location_sidebar['display']['show_count_total'] ) ? $dpsp_location_sidebar['display']['show_count_total'] : '' ), __( 'Show total share count', 'social-pug' ), [ 'yes' ], __( 'Display the share count for all social networks.', 'social-pug' ) ); ?>
|
189 |
|
@@ -205,14 +204,13 @@
|
|
205 |
|
206 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_sidebar[display][count_round]', ( isset( $dpsp_location_sidebar['display']['count_round'] ) ? $dpsp_location_sidebar['display']['count_round'] : '' ), __( 'Share count round', 'social-pug' ), [ 'yes' ], __( 'If the share count for each network is bigger than 1000 it will be rounded to one decimal ( eg. 1267 will show as 1.2k ). Applies to Total Share Counts as well.', 'social-pug' ) ); ?>
|
207 |
|
208 |
-
<?php dpsp_settings_field( 'text', 'dpsp_location_sidebar[display][minimum_count]', ( isset( $dpsp_location_sidebar['display']['minimum_count'] ) ? $dpsp_location_sidebar['display']['minimum_count'] : '' ), __( 'Minimum global share count', 'social-pug' ),
|
209 |
|
210 |
-
<?php dpsp_settings_field( 'text', 'dpsp_location_sidebar[display][minimum_individual_count]', ( isset( $dpsp_location_sidebar['display']['minimum_individual_count'] ) ? $dpsp_location_sidebar['display']['minimum_individual_count'] : '' ), __( 'Minimum individual share count', 'social-pug' ),
|
211 |
</div>
|
212 |
|
213 |
</div>
|
214 |
|
215 |
-
|
216 |
<!-- Custom Colors Settings -->
|
217 |
<div class="dpsp-card">
|
218 |
|
@@ -222,8 +220,8 @@
|
|
222 |
|
223 |
<div class="dpsp-card-inner">
|
224 |
|
225 |
-
<?php dpsp_settings_field( 'color-picker', 'dpsp_location_sidebar[display][custom_color]', ( isset( $dpsp_location_sidebar['display']['custom_color'] ) ? $dpsp_location_sidebar['display']['custom_color'] : '' ), __( 'Buttons color', 'social-pug' ),
|
226 |
-
<?php dpsp_settings_field( 'color-picker', 'dpsp_location_sidebar[display][custom_hover_color]', ( isset( $dpsp_location_sidebar['display']['custom_hover_color'] ) ? $dpsp_location_sidebar['display']['custom_hover_color'] : '' ), __( 'Buttons hover color', 'social-pug' ),
|
227 |
|
228 |
</div>
|
229 |
|
159 |
|
160 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_sidebar[display][show_after_scrolling]', ( isset( $dpsp_location_sidebar['display']['show_after_scrolling'] ) ? $dpsp_location_sidebar['display']['show_after_scrolling'] : '' ), __( 'Show after user scrolls', 'social-pug' ), [ 'yes' ] ); ?>
|
161 |
|
162 |
+
<?php dpsp_settings_field( 'text', 'dpsp_location_sidebar[display][scroll_distance]', ( isset( $dpsp_location_sidebar['display']['scroll_distance'] ) ? $dpsp_location_sidebar['display']['scroll_distance'] : '' ), __( 'Scroll distance (%)', 'social-pug' ), [ '30' ], __( 'The distance in percentage (%) of the total page height the user has to scroll before the buttons will appear.', 'social-pug' ) ); ?>
|
163 |
|
164 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_sidebar[display][hide_at_stop_selector]', ( isset( $dpsp_location_sidebar['display']['hide_at_stop_selector'] ) ? $dpsp_location_sidebar['display']['hide_at_stop_selector'] : '' ), __( 'Hide after reaching Element', 'social-pug' ), [ 'yes' ] ); ?>
|
165 |
|
166 |
+
<?php dpsp_settings_field( 'text', 'dpsp_location_sidebar[display][stop_selector]', ( isset( $dpsp_location_sidebar['display']['stop_selector'] ) ? $dpsp_location_sidebar['display']['stop_selector'] : '' ), __( 'Hide Element Selector', 'social-pug' ), [ '30' ], __( 'Hides the floating sidebar when it reaches this element on the page. By default, an empty value here will make it so the floating sidebar will not hide when it reaches the footer area.', 'social-pug' ) ); ?>
|
167 |
|
168 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_sidebar[display][show_mobile]', ( isset( $dpsp_location_sidebar['display']['show_mobile'] ) ? $dpsp_location_sidebar['display']['show_mobile'] : '' ), __( 'Show on mobile', 'social-pug' ), [ 'yes' ] ); ?>
|
169 |
|
170 |
+
<?php dpsp_settings_field( 'text', 'dpsp_location_sidebar[display][screen_size]', ( isset( $dpsp_location_sidebar['display']['screen_size'] ) ? $dpsp_location_sidebar['display']['screen_size'] : '' ), __( 'Mobile screen width (pixels)', 'social-pug' ), [], __( 'For screen widths smaller than this value ( in pixels ) the buttons will be displayed on screen if the show on mobile option is checked.', 'social-pug' ) ); ?>
|
171 |
|
172 |
</div>
|
173 |
|
174 |
</div>
|
175 |
|
|
|
176 |
<!-- Share Counts -->
|
177 |
<div class="dpsp-card">
|
178 |
|
182 |
|
183 |
<div class="dpsp-card-inner">
|
184 |
|
185 |
+
<?php dpsp_settings_field( 'switch', 'dpsp_location_sidebar[display][show_count]', ( isset( $dpsp_location_sidebar['display']['show_count'] ) ? $dpsp_location_sidebar['display']['show_count'] : '' ), __( 'Show share count', 'mediavine' ), [ 'yes' ], __( 'Display the share count for each social network.<br /><br />Please note: You may see a zero share count for Facebook if the share count is under 100 shares due to limitations with Facebook’s API.', 'mediavine' ) ); ?>
|
186 |
|
187 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_sidebar[display][show_count_total]', ( isset( $dpsp_location_sidebar['display']['show_count_total'] ) ? $dpsp_location_sidebar['display']['show_count_total'] : '' ), __( 'Show total share count', 'social-pug' ), [ 'yes' ], __( 'Display the share count for all social networks.', 'social-pug' ) ); ?>
|
188 |
|
204 |
|
205 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_sidebar[display][count_round]', ( isset( $dpsp_location_sidebar['display']['count_round'] ) ? $dpsp_location_sidebar['display']['count_round'] : '' ), __( 'Share count round', 'social-pug' ), [ 'yes' ], __( 'If the share count for each network is bigger than 1000 it will be rounded to one decimal ( eg. 1267 will show as 1.2k ). Applies to Total Share Counts as well.', 'social-pug' ) ); ?>
|
206 |
|
207 |
+
<?php dpsp_settings_field( 'text', 'dpsp_location_sidebar[display][minimum_count]', ( isset( $dpsp_location_sidebar['display']['minimum_count'] ) ? $dpsp_location_sidebar['display']['minimum_count'] : '' ), __( 'Minimum global share count', 'social-pug' ), [], __( 'Display share counts only if the total share count is higher than this value.', 'social-pug' ) ); ?>
|
208 |
|
209 |
+
<?php dpsp_settings_field( 'text', 'dpsp_location_sidebar[display][minimum_individual_count]', ( isset( $dpsp_location_sidebar['display']['minimum_individual_count'] ) ? $dpsp_location_sidebar['display']['minimum_individual_count'] : '' ), __( 'Minimum individual share count', 'social-pug' ), [], __( 'Display share counts for an individual network only if the share count for that network is higher than this value.', 'social-pug' ) ); ?>
|
210 |
</div>
|
211 |
|
212 |
</div>
|
213 |
|
|
|
214 |
<!-- Custom Colors Settings -->
|
215 |
<div class="dpsp-card">
|
216 |
|
220 |
|
221 |
<div class="dpsp-card-inner">
|
222 |
|
223 |
+
<?php dpsp_settings_field( 'color-picker', 'dpsp_location_sidebar[display][custom_color]', ( isset( $dpsp_location_sidebar['display']['custom_color'] ) ? $dpsp_location_sidebar['display']['custom_color'] : '' ), __( 'Buttons color', 'social-pug' ), [] ); ?>
|
224 |
+
<?php dpsp_settings_field( 'color-picker', 'dpsp_location_sidebar[display][custom_hover_color]', ( isset( $dpsp_location_sidebar['display']['custom_hover_color'] ) ? $dpsp_location_sidebar['display']['custom_hover_color'] : '' ), __( 'Buttons hover color', 'social-pug' ), [] ); ?>
|
225 |
|
226 |
</div>
|
227 |
|
inc/tools/share-inline-content/class-inline-content.php
CHANGED
@@ -2,6 +2,7 @@
|
|
2 |
namespace Mediavine\Grow\Tools;
|
3 |
|
4 |
use Mediavine\Grow\Custom_Color;
|
|
|
5 |
|
6 |
class Inline_Content extends Tool {
|
7 |
use Renderable;
|
@@ -80,7 +81,12 @@ class Inline_Content extends Tool {
|
|
80 |
public function inline_styles( $styles ) {
|
81 |
if ( $this->active ) {
|
82 |
$mobile_screen_width = ( ! empty( $this->settings['display']['screen_size'] ) ? (int) $this->settings['display']['screen_size'] : $this->default_mobile_breakpoint );
|
83 |
-
$
|
|
|
|
|
|
|
|
|
|
|
84 |
@media screen and ( max-width : ' . $mobile_screen_width . 'px ) {
|
85 |
.dpsp-content-wrapper.dpsp-hide-on-mobile,
|
86 |
.dpsp-share-text.dpsp-hide-on-mobile,
|
@@ -103,7 +109,8 @@ class Inline_Content extends Tool {
|
|
103 |
}
|
104 |
}
|
105 |
';
|
106 |
-
$styles
|
|
|
107 |
}
|
108 |
|
109 |
return $styles;
|
2 |
namespace Mediavine\Grow\Tools;
|
3 |
|
4 |
use Mediavine\Grow\Custom_Color;
|
5 |
+
use \Mediavine\Grow\Settings;
|
6 |
|
7 |
class Inline_Content extends Tool {
|
8 |
use Renderable;
|
81 |
public function inline_styles( $styles ) {
|
82 |
if ( $this->active ) {
|
83 |
$mobile_screen_width = ( ! empty( $this->settings['display']['screen_size'] ) ? (int) $this->settings['display']['screen_size'] : $this->default_mobile_breakpoint );
|
84 |
+
$plugin_settings = Settings::get_setting( 'dpsp_settings', [] );
|
85 |
+
$whatsapp_style = '';
|
86 |
+
if ( ! empty( $plugin_settings['whatsapp_display_only_mobile'] ) ) {
|
87 |
+
$whatsapp_style = '@media screen and ( min-width : ' . $mobile_screen_width . 'px ) { .dpsp-content-wrapper .dpsp-network-list-item.dpsp-network-list-item-whatsapp { display: none } }';
|
88 |
+
}
|
89 |
+
$styles .= '
|
90 |
@media screen and ( max-width : ' . $mobile_screen_width . 'px ) {
|
91 |
.dpsp-content-wrapper.dpsp-hide-on-mobile,
|
92 |
.dpsp-share-text.dpsp-hide-on-mobile,
|
109 |
}
|
110 |
}
|
111 |
';
|
112 |
+
$styles .= $whatsapp_style;
|
113 |
+
$styles .= Custom_Color::get_style( $this->slug );
|
114 |
}
|
115 |
|
116 |
return $styles;
|
inc/tools/share-inline-content/functions-frontend.php
CHANGED
@@ -3,10 +3,16 @@ namespace Mediavine\Grow;
|
|
3 |
|
4 |
use Mediavine\Grow\Tools\Renderable;
|
5 |
use Mediavine\Grow\Tools\Toolkit;
|
|
|
6 |
|
|
|
|
|
|
|
|
|
|
|
7 |
class Frontend_Content {
|
8 |
|
9 |
-
/** @var Frontend_Content|null */
|
10 |
private static $instance = null;
|
11 |
|
12 |
/** @var array $markup */
|
@@ -18,12 +24,14 @@ class Frontend_Content {
|
|
18 |
/** @var array */
|
19 |
private $hooks = [];
|
20 |
|
|
|
|
|
21 |
/**
|
22 |
* Makes sure class is only instantiated once and runs init.
|
23 |
*
|
24 |
-
* @return
|
25 |
*/
|
26 |
-
public static function get_instance() {
|
27 |
if ( ! self::$instance ) {
|
28 |
self::$instance = new self();
|
29 |
self::$instance->init();
|
@@ -38,9 +46,9 @@ class Frontend_Content {
|
|
38 |
* @return void
|
39 |
*/
|
40 |
public function init() {
|
41 |
-
// Only run if share content is active
|
42 |
$toolkit = Toolkit::get_instance();
|
43 |
$inline_content = $toolkit->get( 'content' );
|
|
|
44 |
if ( ! ( $inline_content && $inline_content->is_active() ) ) {
|
45 |
return;
|
46 |
}
|
@@ -53,17 +61,18 @@ class Frontend_Content {
|
|
53 |
|
54 |
$settings = $inline_content->get_settings();
|
55 |
|
56 |
-
if ( ! empty( $settings['post_type_display'] ) && in_array( 'product', $settings['post_type_display']
|
57 |
add_filter( 'woocommerce_short_description', [ $this, 'generate_content_markup' ], 20 );
|
58 |
}
|
59 |
add_filter( 'mv_grow_frontend_data', [ $this, 'localize_icon_svg_data' ] );
|
|
|
60 |
}
|
61 |
|
62 |
/**
|
63 |
* Perform checks to determine if it's safe to hook to the_content.
|
64 |
* @return bool Whether or not the output has been added to the proper hooks.
|
65 |
*/
|
66 |
-
public function pre_output_frontend_content() {
|
67 |
if ( ! self::is_valid_location() ) {
|
68 |
return false;
|
69 |
}
|
@@ -116,17 +125,17 @@ class Frontend_Content {
|
|
116 |
|
117 |
// Loop through hooks
|
118 |
foreach ( $this->hooks as $hook ) {
|
119 |
-
add_filter( $hook, [ $this, 'output_frontend_content' ] );
|
120 |
}
|
121 |
}
|
122 |
|
123 |
/**
|
124 |
* Output content.
|
125 |
*
|
126 |
-
* @param string $content
|
127 |
-
* @return string
|
128 |
*/
|
129 |
-
public function output_frontend_content( $content =
|
130 |
if ( empty( $this->markup ) ) {
|
131 |
return $content;
|
132 |
}
|
@@ -146,6 +155,7 @@ class Frontend_Content {
|
|
146 |
echo wp_kses_post( $this->markup['bottom'] );
|
147 |
return null;
|
148 |
}
|
|
|
149 |
return null;
|
150 |
}
|
151 |
|
@@ -156,7 +166,7 @@ class Frontend_Content {
|
|
156 |
foreach ( $this->hooks as $hook ) {
|
157 |
if ( ( 'the_content' !== $hook ) && ( doing_action( $hook ) || did_action( $hook ) ) ) {
|
158 |
if ( has_filter( 'the_content', [ $this, 'output_frontend_content' ] ) ) {
|
159 |
-
remove_filter( 'the_content', [ $this, 'output_frontend_content' ] );
|
160 |
}
|
161 |
}
|
162 |
}
|
@@ -167,9 +177,8 @@ class Frontend_Content {
|
|
167 |
*
|
168 |
* @return boolean
|
169 |
*/
|
170 |
-
public static function is_blocked_filter() {
|
171 |
global $wp_current_filter;
|
172 |
-
|
173 |
// We need to filter out all instances where this callback functions is applied
|
174 |
// due to the_content filter being used by other plugins
|
175 |
if ( ! empty( $wp_current_filter ) && is_array( $wp_current_filter ) ) {
|
@@ -200,7 +209,7 @@ class Frontend_Content {
|
|
200 |
*
|
201 |
* @return bool
|
202 |
*/
|
203 |
-
public static function is_valid_location() {
|
204 |
if ( self::is_blocked_filter() ) {
|
205 |
return false;
|
206 |
}
|
@@ -266,14 +275,14 @@ class Frontend_Content {
|
|
266 |
*
|
267 |
* @return array
|
268 |
*/
|
269 |
-
public static function get_prepared_settings() {
|
270 |
$settings = dpsp_get_location_settings( 'content' );
|
271 |
|
272 |
// Get minimum count or default to 0
|
273 |
$settings['minimum_count'] = ( ! empty( $settings['display']['minimum_count'] ) ? (int) $settings['display']['minimum_count'] : 0 );
|
274 |
|
275 |
// Check show total count setting and also check count against the minimum to determine if the total will actually be shown for this post.
|
276 |
-
$settings['show_total_count'] = $settings['minimum_count'] <= (int)
|
277 |
|
278 |
return $settings;
|
279 |
}
|
@@ -283,7 +292,7 @@ class Frontend_Content {
|
|
283 |
*
|
284 |
* @return array Content with buttons added
|
285 |
*/
|
286 |
-
public function dpsp_prepare_front_end_content() {
|
287 |
// Get saved settings
|
288 |
$settings = self::get_prepared_settings();
|
289 |
$output = [];
|
@@ -317,7 +326,7 @@ class Frontend_Content {
|
|
317 |
* @param array $settings Tool settings
|
318 |
* @return string CSS Classes separated by space
|
319 |
*/
|
320 |
-
public static function get_wrapper_classes( $settings ) {
|
321 |
$wrapper_classes = [ 'dpsp-content-wrapper' ];
|
322 |
$wrapper_classes[] = ( isset( $settings['display']['shape'] ) ? 'dpsp-shape-' . $settings['display']['shape'] : '' );
|
323 |
$wrapper_classes[] = ( isset( $settings['display']['size'] ) ? 'dpsp-size-' . $settings['display']['size'] : 'dpsp-size-medium' );
|
@@ -341,7 +350,7 @@ class Frontend_Content {
|
|
341 |
* @param array $settings Tool settings
|
342 |
* @return string
|
343 |
*/
|
344 |
-
public static function compose_buttons( $settings ) {
|
345 |
$button_output = '';
|
346 |
|
347 |
// Output total share counts
|
@@ -363,14 +372,17 @@ class Frontend_Content {
|
|
363 |
* @param array $data Data coming in from the filter
|
364 |
* @return array Data to be output
|
365 |
*/
|
366 |
-
public function localize_icon_svg_data( $data = [] ) {
|
367 |
$settings = dpsp_get_location_settings( 'content' );
|
368 |
if ( ! isset( $settings['networks'] ) || empty( $settings['networks'] ) ) {
|
369 |
return $data;
|
370 |
}
|
371 |
-
$svg_arr
|
|
|
|
|
|
|
|
|
372 |
$data['buttonSVG'] = array_merge( $svg_arr, dpsp_get_svg_data_for_networks( $settings['networks'] ) );
|
373 |
-
|
374 |
return $data;
|
375 |
}
|
376 |
|
@@ -379,7 +391,7 @@ class Frontend_Content {
|
|
379 |
*
|
380 |
* @return bool
|
381 |
*/
|
382 |
-
public static function has_pagebuilder() {
|
383 |
if ( class_exists( 'ET_GB_Block_Layout' ) ) {
|
384 |
return ( \ET_GB_Block_Layout::is_layout_block_preview() && is_main_query() );
|
385 |
}
|
@@ -396,13 +408,13 @@ class Frontend_Content {
|
|
396 |
* @param string $content Post content string. Required.
|
397 |
* @return string
|
398 |
*/
|
399 |
-
public function generate_content_markup( $content ) {
|
400 |
if ( ! dpsp_is_location_displayable( 'content' ) ) {
|
401 |
return $content;
|
402 |
}
|
403 |
// if $this->markup is empty, then this method is being called directly
|
404 |
// or hooked to a 3rd party content filter, for example woocommerce_short_description
|
405 |
-
if (
|
406 |
$this->markup = $this->dpsp_prepare_front_end_content();
|
407 |
}
|
408 |
|
@@ -412,9 +424,46 @@ class Frontend_Content {
|
|
412 |
|
413 |
--$this->markup_count_limit;
|
414 |
if ( 1 > $this->markup_count_limit ) {
|
415 |
-
$this->markup =
|
416 |
}
|
417 |
|
418 |
return $content;
|
419 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
420 |
}
|
3 |
|
4 |
use Mediavine\Grow\Tools\Renderable;
|
5 |
use Mediavine\Grow\Tools\Toolkit;
|
6 |
+
use Mediavine\Grow\Share_Counts;
|
7 |
|
8 |
+
/**
|
9 |
+
* Handles the front end of the Inline Content tool
|
10 |
+
*
|
11 |
+
* To be merged with the main inline conten class
|
12 |
+
*/
|
13 |
class Frontend_Content {
|
14 |
|
15 |
+
/** @var Frontend_Content|null $instance */
|
16 |
private static $instance = null;
|
17 |
|
18 |
/** @var array $markup */
|
24 |
/** @var array */
|
25 |
private $hooks = [];
|
26 |
|
27 |
+
private const OUTPUT_HOOK_PRIORITY = 30;
|
28 |
+
|
29 |
/**
|
30 |
* Makes sure class is only instantiated once and runs init.
|
31 |
*
|
32 |
+
* @return Frontend_Content Instantiated class
|
33 |
*/
|
34 |
+
public static function get_instance() : Frontend_Content {
|
35 |
if ( ! self::$instance ) {
|
36 |
self::$instance = new self();
|
37 |
self::$instance->init();
|
46 |
* @return void
|
47 |
*/
|
48 |
public function init() {
|
|
|
49 |
$toolkit = Toolkit::get_instance();
|
50 |
$inline_content = $toolkit->get( 'content' );
|
51 |
+
// Only run if share content is active
|
52 |
if ( ! ( $inline_content && $inline_content->is_active() ) ) {
|
53 |
return;
|
54 |
}
|
61 |
|
62 |
$settings = $inline_content->get_settings();
|
63 |
|
64 |
+
if ( ! empty( $settings['post_type_display'] ) && in_array( 'product', $settings['post_type_display'] ) ) {
|
65 |
add_filter( 'woocommerce_short_description', [ $this, 'generate_content_markup' ], 20 );
|
66 |
}
|
67 |
add_filter( 'mv_grow_frontend_data', [ $this, 'localize_icon_svg_data' ] );
|
68 |
+
self::critical_inline_css();
|
69 |
}
|
70 |
|
71 |
/**
|
72 |
* Perform checks to determine if it's safe to hook to the_content.
|
73 |
* @return bool Whether or not the output has been added to the proper hooks.
|
74 |
*/
|
75 |
+
public function pre_output_frontend_content() : bool {
|
76 |
if ( ! self::is_valid_location() ) {
|
77 |
return false;
|
78 |
}
|
125 |
|
126 |
// Loop through hooks
|
127 |
foreach ( $this->hooks as $hook ) {
|
128 |
+
add_filter( $hook, [ $this, 'output_frontend_content' ], self::OUTPUT_HOOK_PRIORITY );
|
129 |
}
|
130 |
}
|
131 |
|
132 |
/**
|
133 |
* Output content.
|
134 |
*
|
135 |
+
* @param string $content Content passed through filter
|
136 |
+
* @return string|null
|
137 |
*/
|
138 |
+
public function output_frontend_content( string $content = '' ) : ?string {
|
139 |
if ( empty( $this->markup ) ) {
|
140 |
return $content;
|
141 |
}
|
155 |
echo wp_kses_post( $this->markup['bottom'] );
|
156 |
return null;
|
157 |
}
|
158 |
+
|
159 |
return null;
|
160 |
}
|
161 |
|
166 |
foreach ( $this->hooks as $hook ) {
|
167 |
if ( ( 'the_content' !== $hook ) && ( doing_action( $hook ) || did_action( $hook ) ) ) {
|
168 |
if ( has_filter( 'the_content', [ $this, 'output_frontend_content' ] ) ) {
|
169 |
+
remove_filter( 'the_content', [ $this, 'output_frontend_content' ], self::OUTPUT_HOOK_PRIORITY );
|
170 |
}
|
171 |
}
|
172 |
}
|
177 |
*
|
178 |
* @return boolean
|
179 |
*/
|
180 |
+
public static function is_blocked_filter() : bool {
|
181 |
global $wp_current_filter;
|
|
|
182 |
// We need to filter out all instances where this callback functions is applied
|
183 |
// due to the_content filter being used by other plugins
|
184 |
if ( ! empty( $wp_current_filter ) && is_array( $wp_current_filter ) ) {
|
209 |
*
|
210 |
* @return bool
|
211 |
*/
|
212 |
+
public static function is_valid_location() : bool {
|
213 |
if ( self::is_blocked_filter() ) {
|
214 |
return false;
|
215 |
}
|
275 |
*
|
276 |
* @return array
|
277 |
*/
|
278 |
+
public static function get_prepared_settings() : array {
|
279 |
$settings = dpsp_get_location_settings( 'content' );
|
280 |
|
281 |
// Get minimum count or default to 0
|
282 |
$settings['minimum_count'] = ( ! empty( $settings['display']['minimum_count'] ) ? (int) $settings['display']['minimum_count'] : 0 );
|
283 |
|
284 |
// Check show total count setting and also check count against the minimum to determine if the total will actually be shown for this post.
|
285 |
+
$settings['show_total_count'] = $settings['minimum_count'] <= (int) Share_Counts::post_total_share_counts() && ! empty( $settings['display']['show_count_total'] );
|
286 |
|
287 |
return $settings;
|
288 |
}
|
292 |
*
|
293 |
* @return array Content with buttons added
|
294 |
*/
|
295 |
+
public function dpsp_prepare_front_end_content() : array {
|
296 |
// Get saved settings
|
297 |
$settings = self::get_prepared_settings();
|
298 |
$output = [];
|
326 |
* @param array $settings Tool settings
|
327 |
* @return string CSS Classes separated by space
|
328 |
*/
|
329 |
+
public static function get_wrapper_classes( array $settings = [] ) : string {
|
330 |
$wrapper_classes = [ 'dpsp-content-wrapper' ];
|
331 |
$wrapper_classes[] = ( isset( $settings['display']['shape'] ) ? 'dpsp-shape-' . $settings['display']['shape'] : '' );
|
332 |
$wrapper_classes[] = ( isset( $settings['display']['size'] ) ? 'dpsp-size-' . $settings['display']['size'] : 'dpsp-size-medium' );
|
350 |
* @param array $settings Tool settings
|
351 |
* @return string
|
352 |
*/
|
353 |
+
public static function compose_buttons( array $settings ) : string {
|
354 |
$button_output = '';
|
355 |
|
356 |
// Output total share counts
|
372 |
* @param array $data Data coming in from the filter
|
373 |
* @return array Data to be output
|
374 |
*/
|
375 |
+
public function localize_icon_svg_data( array $data = [] ): array {
|
376 |
$settings = dpsp_get_location_settings( 'content' );
|
377 |
if ( ! isset( $settings['networks'] ) || empty( $settings['networks'] ) ) {
|
378 |
return $data;
|
379 |
}
|
380 |
+
$svg_arr = $data['buttonSVG'] ?? [];
|
381 |
+
if ( isset( $settings['networks']['grow'] ) ) {
|
382 |
+
// @TODO: Clean up grow.me icon variation better
|
383 |
+
$settings['networks']['grow_override'] = [ 'label' => 'Save' ];
|
384 |
+
}
|
385 |
$data['buttonSVG'] = array_merge( $svg_arr, dpsp_get_svg_data_for_networks( $settings['networks'] ) );
|
|
|
386 |
return $data;
|
387 |
}
|
388 |
|
391 |
*
|
392 |
* @return bool
|
393 |
*/
|
394 |
+
public static function has_pagebuilder() : bool {
|
395 |
if ( class_exists( 'ET_GB_Block_Layout' ) ) {
|
396 |
return ( \ET_GB_Block_Layout::is_layout_block_preview() && is_main_query() );
|
397 |
}
|
408 |
* @param string $content Post content string. Required.
|
409 |
* @return string
|
410 |
*/
|
411 |
+
public function generate_content_markup( string $content ) : string {
|
412 |
if ( ! dpsp_is_location_displayable( 'content' ) ) {
|
413 |
return $content;
|
414 |
}
|
415 |
// if $this->markup is empty, then this method is being called directly
|
416 |
// or hooked to a 3rd party content filter, for example woocommerce_short_description
|
417 |
+
if ( empty( $this->markup ) ) {
|
418 |
$this->markup = $this->dpsp_prepare_front_end_content();
|
419 |
}
|
420 |
|
424 |
|
425 |
--$this->markup_count_limit;
|
426 |
if ( 1 > $this->markup_count_limit ) {
|
427 |
+
$this->markup = [];
|
428 |
}
|
429 |
|
430 |
return $content;
|
431 |
}
|
432 |
+
|
433 |
+
/**
|
434 |
+
* Generate critical inline css for the buttons to reduce layout shift when external css may be deferred
|
435 |
+
*
|
436 |
+
* @since 2.16.0
|
437 |
+
*
|
438 |
+
* @return bool
|
439 |
+
*/
|
440 |
+
public static function critical_inline_css() : bool {
|
441 |
+
$settings = self::get_prepared_settings();
|
442 |
+
$size = empty( $settings ) || empty( $settings['display'] ) || empty( $settings['display']['size'] ) ? 'medium' : $settings['display']['size'];
|
443 |
+
$height_map = [
|
444 |
+
'large' => '46px',
|
445 |
+
'medium' => '40px',
|
446 |
+
'small' => '32px',
|
447 |
+
];
|
448 |
+
$total_share_position = ( empty( $settings ) || empty( $settings['display'] ) || empty( $settings['display']['total_count_position'] ) || 'after' === $settings['display']['total_count_position'] ) ? 'right' : 'left';
|
449 |
+
$critical_map = [
|
450 |
+
'single-button-link' => [ 'font-size:14px', 'padding:0rem', 'max-height:' . $height_map[ $size ] ],
|
451 |
+
'single-button-list-item' => [ 'float:left' ],
|
452 |
+
'button-list-wrapper' => [ 'padding:0', 'margin:0', 'list-style-type:none' ],
|
453 |
+
'content-wrapper' => [ 'min-height:' . $height_map[ $size ], 'position:relative' ],
|
454 |
+
'content-share-text' => [ 'margin-bottom:10px' ],
|
455 |
+
'total-share-wrapper' => [ 'position:absolute', $total_share_position . ':0' ],
|
456 |
+
];
|
457 |
+
|
458 |
+
add_filter(
|
459 |
+
'mv_grow_critical_styles_content', function( $styles, $slug ) use ( $critical_map ) {
|
460 |
+
if ( empty( $critical_map[ $slug ] ) ) {
|
461 |
+
return $styles;
|
462 |
+
}
|
463 |
+
return array_merge( $styles, $critical_map[ $slug ] );
|
464 |
+
}, 100, 2
|
465 |
+
);
|
466 |
+
|
467 |
+
return true;
|
468 |
+
}
|
469 |
}
|
inc/tools/share-inline-content/views/frontend.php
CHANGED
@@ -1,14 +1,14 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
use Mediavine\Grow\Frontend_Content;
|
4 |
|
5 |
if ( ! empty( $args['settings']['display']['message'] ) ) { ?>
|
6 |
-
<p class="dpsp-share-text <?php echo isset( $args['settings']['display']['show_mobile'] ) ? '' : 'dpsp-hide-on-mobile'; ?>"
|
7 |
<?php echo esc_html( apply_filters( 'gettext', $args['settings']['display']['message'], $args['settings']['display']['message'], 'social-pug' ) ); ?>
|
8 |
</p>
|
9 |
<?php
|
10 |
}
|
11 |
?>
|
12 |
-
<div id="dpsp-content-<?php echo esc_attr( $args['position'] ); ?>" class="<?php echo esc_attr( $args['wrapper_classes'] ); ?>"
|
13 |
<?php echo apply_filters( 'dpsp_prepare_front_end_content', Frontend_Content::compose_buttons( $args['settings'] ) ); ?>
|
14 |
</div>
|
1 |
<?php
|
2 |
+
use Mediavine\Grow\Critical_Styles;
|
3 |
use Mediavine\Grow\Frontend_Content;
|
4 |
|
5 |
if ( ! empty( $args['settings']['display']['message'] ) ) { ?>
|
6 |
+
<p class="dpsp-share-text <?php echo isset( $args['settings']['display']['show_mobile'] ) ? '' : 'dpsp-hide-on-mobile'; ?>" <?php echo Critical_Styles::get( 'content-share-text', 'content' ); ?>>
|
7 |
<?php echo esc_html( apply_filters( 'gettext', $args['settings']['display']['message'], $args['settings']['display']['message'], 'social-pug' ) ); ?>
|
8 |
</p>
|
9 |
<?php
|
10 |
}
|
11 |
?>
|
12 |
+
<div id="dpsp-content-<?php echo esc_attr( $args['position'] ); ?>" class="<?php echo esc_attr( $args['wrapper_classes'] ); ?>" <?php echo Critical_Styles::get( 'content-wrapper', 'content' ); ?>>
|
13 |
<?php echo apply_filters( 'dpsp_prepare_front_end_content', Frontend_Content::compose_buttons( $args['settings'] ) ); ?>
|
14 |
</div>
|
inc/tools/share-inline-content/views/view-submenu-page-content.php
CHANGED
@@ -192,7 +192,7 @@
|
|
192 |
);
|
193 |
?>
|
194 |
|
195 |
-
<?php dpsp_settings_field( 'text', 'dpsp_location_content[display][message]', ( isset( $dpsp_location_content['display']['message'] ) ? $dpsp_location_content['display']['message'] : 'Sharing is caring!' ), __( 'Share Text', 'social-pug' ),
|
196 |
|
197 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_content[display][show_labels]', ( isset( $dpsp_location_content['display']['show_labels'] ) ? $dpsp_location_content['display']['show_labels'] : '' ), __( 'Show button labels', 'social-pug' ), [ 'yes' ] ); ?>
|
198 |
|
@@ -200,7 +200,7 @@
|
|
200 |
|
201 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_content[display][show_mobile]', ( isset( $dpsp_location_content['display']['show_mobile'] ) ? $dpsp_location_content['display']['show_mobile'] : '' ), __( 'Show on mobile', 'social-pug' ), [ 'yes' ] ); ?>
|
202 |
|
203 |
-
<?php dpsp_settings_field( 'text', 'dpsp_location_content[display][screen_size]', ( isset( $dpsp_location_content['display']['screen_size'] ) ? $dpsp_location_content['display']['screen_size'] : '' ), __( 'Mobile screen width (pixels)', 'social-pug' ),
|
204 |
|
205 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_content[display][double_inline_content_markup]', ( isset( $dpsp_location_content['display']['double_inline_content_markup'] ) ? $dpsp_location_content['display']['double_inline_content_markup'] : '' ), __( 'Enable second content render', 'social-pug' ), [ true ], __( 'By default, Grow displays the inline content buttons a single time. Some themes and plugins may cause Grow to display at an incorrect time and cause it not to appear. Enabling this setting can help with this issue.', 'social-pug' ) ); ?>
|
206 |
|
@@ -208,7 +208,6 @@
|
|
208 |
|
209 |
</div>
|
210 |
|
211 |
-
|
212 |
<!-- Share Counts -->
|
213 |
<div class="dpsp-card">
|
214 |
|
@@ -218,7 +217,7 @@
|
|
218 |
|
219 |
<div class="dpsp-card-inner">
|
220 |
|
221 |
-
<?php dpsp_settings_field( 'switch', 'dpsp_location_content[display][show_count]', ( isset( $dpsp_location_content['display']['show_count'] ) ? $dpsp_location_content['display']['show_count'] : '' ), __( 'Show share count', '
|
222 |
|
223 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_content[display][show_count_total]', ( isset( $dpsp_location_content['display']['show_count_total'] ) ? $dpsp_location_content['display']['show_count_total'] : '' ), __( 'Show total share count', 'social-pug' ), [ 'yes' ], __( 'Display the share count for all social networks.', 'social-pug' ) ); ?>
|
224 |
|
@@ -240,15 +239,14 @@
|
|
240 |
|
241 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_content[display][count_round]', ( isset( $dpsp_location_content['display']['count_round'] ) ? $dpsp_location_content['display']['count_round'] : '' ), __( 'Share count round', 'social-pug' ), [ 'yes' ], __( 'If the share count for each network is bigger than 1000 it will be rounded to one decimal ( eg. 1267 will show as 1.2k ). Applies to Total Share Counts as well.', 'social-pug' ) ); ?>
|
242 |
|
243 |
-
<?php dpsp_settings_field( 'text', 'dpsp_location_content[display][minimum_count]', ( isset( $dpsp_location_content['display']['minimum_count'] ) ? $dpsp_location_content['display']['minimum_count'] : '' ), __( 'Minimum global share count', 'social-pug' ),
|
244 |
|
245 |
-
<?php dpsp_settings_field( 'text', 'dpsp_location_content[display][minimum_individual_count]', ( isset( $dpsp_location_content['display']['minimum_individual_count'] ) ? $dpsp_location_content['display']['minimum_individual_count'] : '' ), __( 'Minimum individual share count', 'social-pug' ),
|
246 |
|
247 |
</div>
|
248 |
|
249 |
</div>
|
250 |
|
251 |
-
|
252 |
<!-- Custom Colors Settings -->
|
253 |
<div class="dpsp-card">
|
254 |
|
@@ -258,8 +256,8 @@
|
|
258 |
|
259 |
<div class="dpsp-card-inner">
|
260 |
|
261 |
-
<?php dpsp_settings_field( 'color-picker', 'dpsp_location_content[display][custom_color]', ( isset( $dpsp_location_content['display']['custom_color'] ) ? $dpsp_location_content['display']['custom_color'] : '' ), __( 'Buttons color', 'social-pug' ),
|
262 |
-
<?php dpsp_settings_field( 'color-picker', 'dpsp_location_content[display][custom_hover_color]', ( isset( $dpsp_location_content['display']['custom_hover_color'] ) ? $dpsp_location_content['display']['custom_hover_color'] : '' ), __( 'Buttons hover color', 'social-pug' ),
|
263 |
|
264 |
</div>
|
265 |
|
192 |
);
|
193 |
?>
|
194 |
|
195 |
+
<?php dpsp_settings_field( 'text', 'dpsp_location_content[display][message]', ( isset( $dpsp_location_content['display']['message'] ) ? $dpsp_location_content['display']['message'] : 'Sharing is caring!' ), __( 'Share Text', 'social-pug' ), [] ); ?>
|
196 |
|
197 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_content[display][show_labels]', ( isset( $dpsp_location_content['display']['show_labels'] ) ? $dpsp_location_content['display']['show_labels'] : '' ), __( 'Show button labels', 'social-pug' ), [ 'yes' ] ); ?>
|
198 |
|
200 |
|
201 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_content[display][show_mobile]', ( isset( $dpsp_location_content['display']['show_mobile'] ) ? $dpsp_location_content['display']['show_mobile'] : '' ), __( 'Show on mobile', 'social-pug' ), [ 'yes' ] ); ?>
|
202 |
|
203 |
+
<?php dpsp_settings_field( 'text', 'dpsp_location_content[display][screen_size]', ( isset( $dpsp_location_content['display']['screen_size'] ) ? $dpsp_location_content['display']['screen_size'] : '' ), __( 'Mobile screen width (pixels)', 'social-pug' ), [], __( 'For screen widths smaller than this value ( in pixels ) the buttons will be displayed on screen if the show on mobile option is checked.', 'social-pug' ) ); ?>
|
204 |
|
205 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_content[display][double_inline_content_markup]', ( isset( $dpsp_location_content['display']['double_inline_content_markup'] ) ? $dpsp_location_content['display']['double_inline_content_markup'] : '' ), __( 'Enable second content render', 'social-pug' ), [ true ], __( 'By default, Grow displays the inline content buttons a single time. Some themes and plugins may cause Grow to display at an incorrect time and cause it not to appear. Enabling this setting can help with this issue.', 'social-pug' ) ); ?>
|
206 |
|
208 |
|
209 |
</div>
|
210 |
|
|
|
211 |
<!-- Share Counts -->
|
212 |
<div class="dpsp-card">
|
213 |
|
217 |
|
218 |
<div class="dpsp-card-inner">
|
219 |
|
220 |
+
<?php dpsp_settings_field( 'switch', 'dpsp_location_content[display][show_count]', ( isset( $dpsp_location_content['display']['show_count'] ) ? $dpsp_location_content['display']['show_count'] : '' ), __( 'Show share count', 'mediavine' ), [ 'yes' ], __( 'Display the share count for each social network.<br /><br />Please note: You may see a zero share count for Facebook if the share count is under 100 shares due to limitations with Facebook’s API.', 'mediavine' ) ); ?>
|
221 |
|
222 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_content[display][show_count_total]', ( isset( $dpsp_location_content['display']['show_count_total'] ) ? $dpsp_location_content['display']['show_count_total'] : '' ), __( 'Show total share count', 'social-pug' ), [ 'yes' ], __( 'Display the share count for all social networks.', 'social-pug' ) ); ?>
|
223 |
|
239 |
|
240 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_content[display][count_round]', ( isset( $dpsp_location_content['display']['count_round'] ) ? $dpsp_location_content['display']['count_round'] : '' ), __( 'Share count round', 'social-pug' ), [ 'yes' ], __( 'If the share count for each network is bigger than 1000 it will be rounded to one decimal ( eg. 1267 will show as 1.2k ). Applies to Total Share Counts as well.', 'social-pug' ) ); ?>
|
241 |
|
242 |
+
<?php dpsp_settings_field( 'text', 'dpsp_location_content[display][minimum_count]', ( isset( $dpsp_location_content['display']['minimum_count'] ) ? $dpsp_location_content['display']['minimum_count'] : '' ), __( 'Minimum global share count', 'social-pug' ), [], __( 'Display share counts only if the total share count is higher than this value.', 'social-pug' ) ); ?>
|
243 |
|
244 |
+
<?php dpsp_settings_field( 'text', 'dpsp_location_content[display][minimum_individual_count]', ( isset( $dpsp_location_content['display']['minimum_individual_count'] ) ? $dpsp_location_content['display']['minimum_individual_count'] : '' ), __( 'Minimum individual share count', 'social-pug' ), [], __( 'Display share counts for an individual network only if the share count for that network is higher than this value.', 'social-pug' ) ); ?>
|
245 |
|
246 |
</div>
|
247 |
|
248 |
</div>
|
249 |
|
|
|
250 |
<!-- Custom Colors Settings -->
|
251 |
<div class="dpsp-card">
|
252 |
|
256 |
|
257 |
<div class="dpsp-card-inner">
|
258 |
|
259 |
+
<?php dpsp_settings_field( 'color-picker', 'dpsp_location_content[display][custom_color]', ( isset( $dpsp_location_content['display']['custom_color'] ) ? $dpsp_location_content['display']['custom_color'] : '' ), __( 'Buttons color', 'social-pug' ), [] ); ?>
|
260 |
+
<?php dpsp_settings_field( 'color-picker', 'dpsp_location_content[display][custom_hover_color]', ( isset( $dpsp_location_content['display']['custom_hover_color'] ) ? $dpsp_location_content['display']['custom_hover_color'] : '' ), __( 'Buttons hover color', 'social-pug' ), [] ); ?>
|
261 |
|
262 |
</div>
|
263 |
|
inc/tools/share-sticky-bar/class-sticky-bar.php
CHANGED
@@ -2,6 +2,7 @@
|
|
2 |
namespace Mediavine\Grow\Tools;
|
3 |
|
4 |
use Mediavine\Grow\Custom_Color;
|
|
|
5 |
|
6 |
class Sticky_Bar extends Tool {
|
7 |
use Renderable;
|
@@ -39,6 +40,13 @@ class Sticky_Bar extends Tool {
|
|
39 |
*/
|
40 |
public function inline_styles( $styles ) {
|
41 |
if ( $this->active ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
$styles .= Custom_Color::get_style( 'sticky_bar' );
|
43 |
}
|
44 |
|
2 |
namespace Mediavine\Grow\Tools;
|
3 |
|
4 |
use Mediavine\Grow\Custom_Color;
|
5 |
+
use Mediavine\Grow\Settings;
|
6 |
|
7 |
class Sticky_Bar extends Tool {
|
8 |
use Renderable;
|
40 |
*/
|
41 |
public function inline_styles( $styles ) {
|
42 |
if ( $this->active ) {
|
43 |
+
$mobile_screen_width = ( ! empty( $this->settings['display']['screen_size'] ) ? (int) $this->settings['display']['screen_size'] : $this->default_mobile_breakpoint );
|
44 |
+
$plugin_settings = Settings::get_setting( 'dpsp_settings', [] );
|
45 |
+
$whatsapp_style = '';
|
46 |
+
if ( ! empty( $plugin_settings['whatsapp_display_only_mobile'] ) ) {
|
47 |
+
$whatsapp_style = '@media screen and ( min-width : ' . $mobile_screen_width . 'px ) { #dpsp-sticky-bar .dpsp-network-list-item.dpsp-network-list-item-whatsapp { display: none } }';
|
48 |
+
}
|
49 |
+
$styles .= $whatsapp_style;
|
50 |
$styles .= Custom_Color::get_style( 'sticky_bar' );
|
51 |
}
|
52 |
|
inc/tools/share-sticky-bar/functions-frontend.php
CHANGED
@@ -4,6 +4,7 @@
|
|
4 |
global $dpsp_output_front_end_sticky_bar;
|
5 |
|
6 |
use Mediavine\Grow\View_Loader;
|
|
|
7 |
|
8 |
/**
|
9 |
* Displays the sticky bar sharing buttons.
|
@@ -37,7 +38,7 @@ function dpsp_output_front_end_sticky_bar() {
|
|
37 |
|
38 |
// Button total share counts
|
39 |
$minimum_count = ( ! empty( $settings['display']['minimum_count'] ) ? (int) $settings['display']['minimum_count'] : 0 );
|
40 |
-
$show_total_count = ( $minimum_count <= (int)
|
41 |
|
42 |
$wrapper_classes[] = ( $show_total_count ? 'dpsp-show-total-share-count' : '' );
|
43 |
$wrapper_classes[] = ( $show_total_count ? ( ! empty( $settings['display']['total_count_position'] ) ? 'dpsp-show-total-share-count-' . $settings['display']['total_count_position'] : 'dpsp-show-total-share-count-before' ) : '' );
|
4 |
global $dpsp_output_front_end_sticky_bar;
|
5 |
|
6 |
use Mediavine\Grow\View_Loader;
|
7 |
+
use Mediavine\Grow\Share_Counts;
|
8 |
|
9 |
/**
|
10 |
* Displays the sticky bar sharing buttons.
|
38 |
|
39 |
// Button total share counts
|
40 |
$minimum_count = ( ! empty( $settings['display']['minimum_count'] ) ? (int) $settings['display']['minimum_count'] : 0 );
|
41 |
+
$show_total_count = ( $minimum_count <= (int) Share_Counts::post_total_share_counts() && ! empty( $settings['display']['show_count_total'] ) ? true : false );
|
42 |
|
43 |
$wrapper_classes[] = ( $show_total_count ? 'dpsp-show-total-share-count' : '' );
|
44 |
$wrapper_classes[] = ( $show_total_count ? ( ! empty( $settings['display']['total_count_position'] ) ? 'dpsp-show-total-share-count-' . $settings['display']['total_count_position'] : 'dpsp-show-total-share-count-before' ) : '' );
|
inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php
CHANGED
@@ -115,7 +115,7 @@
|
|
115 |
);
|
116 |
?>
|
117 |
|
118 |
-
<?php dpsp_settings_field( 'text', 'dpsp_location_sticky_bar[display][screen_size]', ( isset( $dpsp_location_sticky_bar['display']['screen_size'] ) ? $dpsp_location_sticky_bar['display']['screen_size'] : '' ), __( 'Mobile screen width (pixels)', 'social-pug' ),
|
119 |
|
120 |
<?php
|
121 |
dpsp_settings_field(
|
@@ -136,7 +136,7 @@
|
|
136 |
|
137 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_sticky_bar[display][show_after_scrolling]', ( isset( $dpsp_location_sticky_bar['display']['show_after_scrolling'] ) ? $dpsp_location_sticky_bar['display']['show_after_scrolling'] : '' ), __( 'Show after user scrolls', 'social-pug' ), [ 'yes' ] ); ?>
|
138 |
|
139 |
-
<?php dpsp_settings_field( 'text', 'dpsp_location_sticky_bar[display][scroll_distance]', ( isset( $dpsp_location_sticky_bar['display']['scroll_distance'] ) ? $dpsp_location_sticky_bar['display']['scroll_distance'] : '' ), __( 'Scroll distance (%)', 'social-pug' ), '30', __( 'The distance in percentage (%) of the total page height the user has to scroll before the buttons will appear.', 'social-pug' ) ); ?>
|
140 |
|
141 |
</div>
|
142 |
|
@@ -152,7 +152,7 @@
|
|
152 |
|
153 |
<div class="dpsp-card-inner">
|
154 |
|
155 |
-
<?php dpsp_settings_field( 'switch', 'dpsp_location_sticky_bar[display][show_count]', ( isset( $dpsp_location_sticky_bar['display']['show_count'] ) ? $dpsp_location_sticky_bar['display']['show_count'] : '' ), __( 'Show share count', '
|
156 |
|
157 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_sticky_bar[display][show_count_total]', ( isset( $dpsp_location_sticky_bar['display']['show_count_total'] ) ? $dpsp_location_sticky_bar['display']['show_count_total'] : '' ), __( 'Show total share count', 'social-pug' ), [ 'yes' ], __( 'Display the share count for all social networks. Is available only when the buttons are displayed on a desktop.', 'social-pug' ) ); ?>
|
158 |
|
@@ -174,9 +174,9 @@
|
|
174 |
|
175 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_sticky_bar[display][count_round]', ( isset( $dpsp_location_sticky_bar['display']['count_round'] ) ? $dpsp_location_sticky_bar['display']['count_round'] : '' ), __( 'Share count round', 'social-pug' ), [ 'yes' ], __( 'If the share count for each network is bigger than 1000 it will be rounded to one decimal ( eg. 1267 will show as 1.2k ).', 'social-pug' ) ); ?>
|
176 |
|
177 |
-
<?php dpsp_settings_field( 'text', 'dpsp_location_sticky_bar[display][minimum_count]', ( isset( $dpsp_location_sticky_bar['display']['minimum_count'] ) ? $dpsp_location_sticky_bar['display']['minimum_count'] : '' ), __( 'Minimum global share count', 'social-pug' ),
|
178 |
|
179 |
-
<?php dpsp_settings_field( 'text', 'dpsp_location_sticky_bar[display][minimum_individual_count]', ( isset( $dpsp_location_sticky_bar['display']['minimum_individual_count'] ) ? $dpsp_location_sticky_bar['display']['minimum_individual_count'] : '' ), __( 'Minimum individual share count', 'social-pug' ),
|
180 |
|
181 |
</div>
|
182 |
|
@@ -192,9 +192,9 @@
|
|
192 |
|
193 |
<div class="dpsp-card-inner">
|
194 |
|
195 |
-
<?php dpsp_settings_field( 'color-picker', 'dpsp_location_sticky_bar[display][custom_color]', ( isset( $dpsp_location_sticky_bar['display']['custom_color'] ) ? $dpsp_location_sticky_bar['display']['custom_color'] : '' ), __( 'Buttons color', 'social-pug' ),
|
196 |
-
<?php dpsp_settings_field( 'color-picker', 'dpsp_location_sticky_bar[display][custom_hover_color]', ( isset( $dpsp_location_sticky_bar['display']['custom_hover_color'] ) ? $dpsp_location_sticky_bar['display']['custom_hover_color'] : '' ), __( 'Buttons hover color', 'social-pug' ),
|
197 |
-
<?php dpsp_settings_field( 'color-picker', 'dpsp_location_sticky_bar[display][custom_background_color]', ( isset( $dpsp_location_sticky_bar['display']['custom_background_color'] ) ? $dpsp_location_sticky_bar['display']['custom_background_color'] : '' ), __( 'Bar background color', 'social-pug' ),
|
198 |
|
199 |
</div>
|
200 |
|
115 |
);
|
116 |
?>
|
117 |
|
118 |
+
<?php dpsp_settings_field( 'text', 'dpsp_location_sticky_bar[display][screen_size]', ( isset( $dpsp_location_sticky_bar['display']['screen_size'] ) ? $dpsp_location_sticky_bar['display']['screen_size'] : '' ), __( 'Mobile screen width (pixels)', 'social-pug' ), [], __( 'For screen widths smaller than this value ( in pixels ) the Mobile Sticky will be displayed on screen.', 'social-pug' ) ); ?>
|
119 |
|
120 |
<?php
|
121 |
dpsp_settings_field(
|
136 |
|
137 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_sticky_bar[display][show_after_scrolling]', ( isset( $dpsp_location_sticky_bar['display']['show_after_scrolling'] ) ? $dpsp_location_sticky_bar['display']['show_after_scrolling'] : '' ), __( 'Show after user scrolls', 'social-pug' ), [ 'yes' ] ); ?>
|
138 |
|
139 |
+
<?php dpsp_settings_field( 'text', 'dpsp_location_sticky_bar[display][scroll_distance]', ( isset( $dpsp_location_sticky_bar['display']['scroll_distance'] ) ? $dpsp_location_sticky_bar['display']['scroll_distance'] : '' ), __( 'Scroll distance (%)', 'social-pug' ), [ '30' ], __( 'The distance in percentage (%) of the total page height the user has to scroll before the buttons will appear.', 'social-pug' ) ); ?>
|
140 |
|
141 |
</div>
|
142 |
|
152 |
|
153 |
<div class="dpsp-card-inner">
|
154 |
|
155 |
+
<?php dpsp_settings_field( 'switch', 'dpsp_location_sticky_bar[display][show_count]', ( isset( $dpsp_location_sticky_bar['display']['show_count'] ) ? $dpsp_location_sticky_bar['display']['show_count'] : '' ), __( 'Show share count', 'mediavine' ), [ 'yes' ], __( 'Display the share count for each social network.<br /><br />Please note: You may see a zero share count for Facebook if the share count is under 100 shares due to limitations with Facebook’s API.', 'mediavine' ) ); ?>
|
156 |
|
157 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_sticky_bar[display][show_count_total]', ( isset( $dpsp_location_sticky_bar['display']['show_count_total'] ) ? $dpsp_location_sticky_bar['display']['show_count_total'] : '' ), __( 'Show total share count', 'social-pug' ), [ 'yes' ], __( 'Display the share count for all social networks. Is available only when the buttons are displayed on a desktop.', 'social-pug' ) ); ?>
|
158 |
|
174 |
|
175 |
<?php dpsp_settings_field( 'switch', 'dpsp_location_sticky_bar[display][count_round]', ( isset( $dpsp_location_sticky_bar['display']['count_round'] ) ? $dpsp_location_sticky_bar['display']['count_round'] : '' ), __( 'Share count round', 'social-pug' ), [ 'yes' ], __( 'If the share count for each network is bigger than 1000 it will be rounded to one decimal ( eg. 1267 will show as 1.2k ).', 'social-pug' ) ); ?>
|
176 |
|
177 |
+
<?php dpsp_settings_field( 'text', 'dpsp_location_sticky_bar[display][minimum_count]', ( isset( $dpsp_location_sticky_bar['display']['minimum_count'] ) ? $dpsp_location_sticky_bar['display']['minimum_count'] : '' ), __( 'Minimum global share count', 'social-pug' ), [], __( 'Display share counts only if the total share count is higher than this value.', 'social-pug' ) ); ?>
|
178 |
|
179 |
+
<?php dpsp_settings_field( 'text', 'dpsp_location_sticky_bar[display][minimum_individual_count]', ( isset( $dpsp_location_sticky_bar['display']['minimum_individual_count'] ) ? $dpsp_location_sticky_bar['display']['minimum_individual_count'] : '' ), __( 'Minimum individual share count', 'social-pug' ), [], __( 'Display share counts for an individual network only if the share count for that network is higher than this value.', 'social-pug' ) ); ?>
|
180 |
|
181 |
</div>
|
182 |
|
192 |
|
193 |
<div class="dpsp-card-inner">
|
194 |
|
195 |
+
<?php dpsp_settings_field( 'color-picker', 'dpsp_location_sticky_bar[display][custom_color]', ( isset( $dpsp_location_sticky_bar['display']['custom_color'] ) ? $dpsp_location_sticky_bar['display']['custom_color'] : '' ), __( 'Buttons color', 'social-pug' ), [] ); ?>
|
196 |
+
<?php dpsp_settings_field( 'color-picker', 'dpsp_location_sticky_bar[display][custom_hover_color]', ( isset( $dpsp_location_sticky_bar['display']['custom_hover_color'] ) ? $dpsp_location_sticky_bar['display']['custom_hover_color'] : '' ), __( 'Buttons hover color', 'social-pug' ), [] ); ?>
|
197 |
+
<?php dpsp_settings_field( 'color-picker', 'dpsp_location_sticky_bar[display][custom_background_color]', ( isset( $dpsp_location_sticky_bar['display']['custom_background_color'] ) ? $dpsp_location_sticky_bar['display']['custom_background_color'] : '' ), __( 'Bar background color', 'social-pug' ), [] ); ?>
|
198 |
|
199 |
</div>
|
200 |
|
inc/views/single-button.php
CHANGED
@@ -1,9 +1,13 @@
|
|
1 |
-
|
|
|
|
|
|
|
|
|
2 |
<?php
|
3 |
-
echo'<' . $args['tag'] . ' rel="' . $args['rel'] . '" ' . $args['href_attribute'] . ' class="' . $args['button_classes'] . '" target="_blank" aria-label="' . $args['title_attribute'] . '" title="' . $args['title_attribute'] . '">';
|
4 |
?>
|
5 |
<span class="dpsp-network-icon <?php echo 'grow' === $args['network_slug'] ? 'dpsp-network-icon-outlined' : ''; ?>">
|
6 |
-
<span class="dpsp-network-icon-inner"
|
7 |
</span>
|
8 |
<?php
|
9 |
if ( $args['show_labels'] && 'sidebar' !== $args['location'] ) {
|
1 |
+
<?php
|
2 |
+
use Mediavine\Grow\Critical_Styles;
|
3 |
+
?>
|
4 |
+
|
5 |
+
<li class="dpsp-network-list-item <?php echo 'dpsp-network-list-item-' . $args['network_slug']; ?>" <?php echo Critical_Styles::get( 'single-button-list-item', $args['location'] ); ?>>
|
6 |
<?php
|
7 |
+
echo'<' . $args['tag'] . ' rel="' . $args['rel'] . '" ' . $args['href_attribute'] . ' class="' . $args['button_classes'] . '" target="_blank" aria-label="' . $args['title_attribute'] . '" title="' . $args['title_attribute'] . '" ' . Critical_Styles::get( 'single-button-link', $args['location'] ) . ' >';
|
8 |
?>
|
9 |
<span class="dpsp-network-icon <?php echo 'grow' === $args['network_slug'] ? 'dpsp-network-icon-outlined' : ''; ?>">
|
10 |
+
<span class="dpsp-network-icon-inner" <?php echo Critical_Styles::get( 'single-button-icon-inner', $args['location'] ); ?>><?php echo $args['icon_svg']; ?></span>
|
11 |
</span>
|
12 |
<?php
|
13 |
if ( $args['show_labels'] && 'sidebar' !== $args['location'] ) {
|
inc/views/total-share-count.php
CHANGED
@@ -1,5 +1,9 @@
|
|
1 |
-
|
2 |
-
|
|
|
|
|
|
|
|
|
3 |
<span class="dpsp-total-share-count"><?php echo esc_html( $args['count'] ); ?></span>
|
4 |
<span><?php echo esc_html( $args['text'] ); ?></span>
|
5 |
</div>
|
1 |
+
<?php
|
2 |
+
use Mediavine\Grow\Critical_Styles;
|
3 |
+
?>
|
4 |
+
|
5 |
+
<div class="dpsp-total-share-wrapper" <?php echo Critical_Styles::get( 'total-share-wrapper', $args['location'] ); ?>>
|
6 |
+
<span class="dpsp-icon-total-share" <?php echo Critical_Styles::get( 'total-share-icon', $args['location'] ); ?>><?php echo $args['icon']; ?></span>
|
7 |
<span class="dpsp-total-share-count"><?php echo esc_html( $args['count'] ); ?></span>
|
8 |
<span><?php echo esc_html( $args['text'] ); ?></span>
|
9 |
</div>
|
inc/widgets/class-dpsp-top-shared-posts.php
CHANGED
@@ -5,6 +5,8 @@ if ( ! class_exists( 'WP_Widget' ) ) {
|
|
5 |
return;
|
6 |
}
|
7 |
|
|
|
|
|
8 |
/**
|
9 |
* Class DPSP_Top_Shared_Posts
|
10 |
*/
|
@@ -22,10 +24,13 @@ class DPSP_Top_Shared_Posts extends WP_Widget {
|
|
22 |
}
|
23 |
|
24 |
/**
|
25 |
-
*
|
|
|
|
|
26 |
*
|
27 |
-
* @param array $args
|
28 |
-
*
|
|
|
29 |
*/
|
30 |
public function widget( $args, $instance ) {
|
31 |
add_filter( 'mv_grow_scripts_should_enqueue', '__return_true' );
|
@@ -73,13 +78,14 @@ class DPSP_Top_Shared_Posts extends WP_Widget {
|
|
73 |
echo( isset( $args['after_title'] ) ? wp_kses_post( $args['after_title'] ) : '' );
|
74 |
|
75 |
// If there are posts loop through them and display them
|
|
|
76 |
if ( ! empty( $top_shared_posts ) ) {
|
77 |
foreach ( $top_shared_posts as $top_post ) {
|
78 |
$permalink = get_permalink( $top_post->ID );
|
79 |
$title = $top_post->post_title;
|
80 |
|
81 |
if ( ! empty( $display_share_count ) ) {
|
82 |
-
$total_share_count =
|
83 |
}
|
84 |
|
85 |
// Open top post wrapper
|
@@ -205,6 +211,9 @@ class DPSP_Top_Shared_Posts extends WP_Widget {
|
|
205 |
echo '<label class="dpsp-widget-label" for="' . esc_attr( $this->get_field_id( 'display_share_count' ) ) . '">' . esc_html__( 'Display post total share count:', 'social-pug' ) . '</label>';
|
206 |
echo '<input type="checkbox" id="' . esc_attr( $this->get_field_id( 'display_share_count' ) ) . '" name="' . esc_attr( $this->get_field_name( 'display_share_count' ) ) . '" value="yes" ' . checked( $display_share_count, 'yes', false ) . ' />';
|
207 |
echo '</p>';
|
|
|
|
|
|
|
208 |
}
|
209 |
|
210 |
/**
|
5 |
return;
|
6 |
}
|
7 |
|
8 |
+
use Mediavine\Grow\Share_Counts;
|
9 |
+
|
10 |
/**
|
11 |
* Class DPSP_Top_Shared_Posts
|
12 |
*/
|
24 |
}
|
25 |
|
26 |
/**
|
27 |
+
* Echoes the widget content.
|
28 |
+
*
|
29 |
+
* Sub-classes should over-ride this function to generate their widget code.
|
30 |
*
|
31 |
+
* @param array $args Display arguments including 'before_title', 'after_title',
|
32 |
+
* 'before_widget', and 'after_widget'.
|
33 |
+
* @param array $instance The settings for the particular instance of the widget.
|
34 |
*/
|
35 |
public function widget( $args, $instance ) {
|
36 |
add_filter( 'mv_grow_scripts_should_enqueue', '__return_true' );
|
78 |
echo( isset( $args['after_title'] ) ? wp_kses_post( $args['after_title'] ) : '' );
|
79 |
|
80 |
// If there are posts loop through them and display them
|
81 |
+
$total_share_count = 0;
|
82 |
if ( ! empty( $top_shared_posts ) ) {
|
83 |
foreach ( $top_shared_posts as $top_post ) {
|
84 |
$permalink = get_permalink( $top_post->ID );
|
85 |
$title = $top_post->post_title;
|
86 |
|
87 |
if ( ! empty( $display_share_count ) ) {
|
88 |
+
$total_share_count = Share_Counts::post_total_share_counts( $top_post->ID );
|
89 |
}
|
90 |
|
91 |
// Open top post wrapper
|
211 |
echo '<label class="dpsp-widget-label" for="' . esc_attr( $this->get_field_id( 'display_share_count' ) ) . '">' . esc_html__( 'Display post total share count:', 'social-pug' ) . '</label>';
|
212 |
echo '<input type="checkbox" id="' . esc_attr( $this->get_field_id( 'display_share_count' ) ) . '" name="' . esc_attr( $this->get_field_name( 'display_share_count' ) ) . '" value="yes" ' . checked( $display_share_count, 'yes', false ) . ' />';
|
213 |
echo '</p>';
|
214 |
+
|
215 |
+
// Need to match the signature of the parent method. Returning noform will render no save button. Otherwise, save is rendered.
|
216 |
+
return '';
|
217 |
}
|
218 |
|
219 |
/**
|
index.php
CHANGED
@@ -3,12 +3,13 @@
|
|
3 |
* Plugin Name: Grow Social by Mediavine
|
4 |
* Plugin URI: https://marketplace.mediavine.com/grow-social-pro/
|
5 |
* Description: Add beautiful social sharing buttons to your posts, pages and custom post types.
|
6 |
-
* Version: 1.
|
|
|
7 |
* Requires at least: 5.2
|
8 |
-
* Requires PHP:
|
9 |
* Author: Mediavine
|
10 |
* Text Domain: social-pug
|
11 |
-
* Author URI: https://marketplace.mediavine.com/
|
12 |
* License: GPL2
|
13 |
*/
|
14 |
|
@@ -17,13 +18,17 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
17 |
exit( 'This plugin requires WordPress' );
|
18 |
}
|
19 |
|
20 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
require_once __DIR__ . '/vendor/autoload.php';
|
22 |
|
23 |
-
|
24 |
-
define( 'MV_GROW_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
|
25 |
-
define( 'DPSP_PLUGIN_DIR', __DIR__ );
|
26 |
-
define( 'DPSP_PLUGIN_DIR_URL', plugin_dir_url( __FILE__ ) );
|
27 |
|
28 |
/**
|
29 |
* Returns plugin activation path. Here for backwards compatibility.
|
@@ -34,10 +39,4 @@ function mv_grow_get_activation_path() {
|
|
34 |
return __FILE__;
|
35 |
}
|
36 |
|
37 |
-
|
38 |
-
if ( mv_grow_is_compatible() ) {
|
39 |
-
Social_Pug::get_instance();
|
40 |
-
}
|
41 |
-
|
42 |
-
add_action( 'admin_notices', 'mv_grow_incompatible_notice' );
|
43 |
-
add_action( 'admin_head', 'mv_grow_throw_warnings' );
|
3 |
* Plugin Name: Grow Social by Mediavine
|
4 |
* Plugin URI: https://marketplace.mediavine.com/grow-social-pro/
|
5 |
* Description: Add beautiful social sharing buttons to your posts, pages and custom post types.
|
6 |
+
* Version: 1.20.0
|
7 |
+
|
8 |
* Requires at least: 5.2
|
9 |
+
* Requires PHP: 7.1
|
10 |
* Author: Mediavine
|
11 |
* Text Domain: social-pug
|
12 |
+
* Author URI: https://marketplace.mediavine.com/grow-social-pro/
|
13 |
* License: GPL2
|
14 |
*/
|
15 |
|
18 |
exit( 'This plugin requires WordPress' );
|
19 |
}
|
20 |
|
21 |
+
require_once __DIR__ . '/inc/functions-requirements.php';
|
22 |
+
|
23 |
+
if ( ! mv_grow_is_compatible() ) {
|
24 |
+
add_action( 'admin_notices', 'mv_grow_incompatible_notice' );
|
25 |
+
add_action( 'admin_head', 'mv_grow_throw_warnings' );
|
26 |
+
return false;
|
27 |
+
}
|
28 |
+
|
29 |
require_once __DIR__ . '/vendor/autoload.php';
|
30 |
|
31 |
+
require_once __DIR__ . '/constants.php';
|
|
|
|
|
|
|
32 |
|
33 |
/**
|
34 |
* Returns plugin activation path. Here for backwards compatibility.
|
39 |
return __FILE__;
|
40 |
}
|
41 |
|
42 |
+
Social_Pug::get_instance();
|
|
|
|
|
|
|
|
|
|
|
|
kernl.version
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
1.20.0
|
readme.txt
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
Contributors: Mediavine, iova.mihai
|
3 |
Tags: social share, social sharing, social sharing buttons, social share buttons, social, social media, social share icon, social share counts, social sharing icon
|
4 |
Requires at least: 4.7
|
5 |
-
Tested up to: 5.
|
6 |
-
Requires PHP:
|
7 |
Stable tag: trunk
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
@@ -28,7 +28,6 @@ You can place the social sharing buttons before and after the post content or ha
|
|
28 |
= Main Features =
|
29 |
* **Before and After Content Social Share Buttons** - Place the social share buttons right before your content, after your content or both
|
30 |
* **Floating Sidebar Social Share Buttons** - Make the social share buttons follow the user as he/she scrolls up and down your webpage by adding floating buttons on the left or right side of the screen
|
31 |
-
* **Social Share Counts and Total Share Counts** - Display social share counts for all social media networks, including Twitter
|
32 |
* **Editable Button Labels** - Edit the labels that appear in the share buttons, to maximize your engagement
|
33 |
* **Retina Ready Sharp Share Icons** - Grow Social by Mediavine uses an icon font to display the best looking social media icons on any screen
|
34 |
|
@@ -42,7 +41,6 @@ You can place the social sharing buttons before and after the post content or ha
|
|
42 |
* **Google Analytics UTM tracking** - Track the source of your incoming traffic with the help of the Google Analytics UTM parameters
|
43 |
* **Social Media Follow Buttons Widget** - Place social media follow buttons for the following social media networks: Facebook, Twitter, Pinterest, LinkedIn, Reddit, Instagram, YouTube, Vimeo, SoundCloud, Twitch, Yummly and Behance. Use the [mv_grow_follow] shortcode to place the follow buttons anywere in your template files
|
44 |
* **Sharable Quotes ( Click to Tweet ) Feature** - Let your readers easily share a custom tweet with just one click
|
45 |
-
* **Top Social Media Shared Posts Widget** - Want to showcase your most social shared articles? No problem. You can use this widget in any widget area to add your top shared posts
|
46 |
* **Import / Export Settings** - Move all the settings from one website to another with just a few clicks
|
47 |
|
48 |
= Powerful Social Sharing Features =
|
@@ -103,6 +101,18 @@ You can place both the inline social share buttons and the floating sidebar soci
|
|
103 |
== Changelog ==
|
104 |
[Looking for the changelog for Grow Social Pro? Click here to access it.](https://marketplace.mediavine.com/grow-social-pro/grow-social-pro-changelog/)
|
105 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
= 1.19.2 =
|
107 |
* FEATURE: Add notice of Share Count Removal
|
108 |
* FIX: Images prevented from being pinned
|
2 |
Contributors: Mediavine, iova.mihai
|
3 |
Tags: social share, social sharing, social sharing buttons, social share buttons, social, social media, social share icon, social share counts, social sharing icon
|
4 |
Requires at least: 4.7
|
5 |
+
Tested up to: 5.8
|
6 |
+
Requires PHP: 7.1
|
7 |
Stable tag: trunk
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
28 |
= Main Features =
|
29 |
* **Before and After Content Social Share Buttons** - Place the social share buttons right before your content, after your content or both
|
30 |
* **Floating Sidebar Social Share Buttons** - Make the social share buttons follow the user as he/she scrolls up and down your webpage by adding floating buttons on the left or right side of the screen
|
|
|
31 |
* **Editable Button Labels** - Edit the labels that appear in the share buttons, to maximize your engagement
|
32 |
* **Retina Ready Sharp Share Icons** - Grow Social by Mediavine uses an icon font to display the best looking social media icons on any screen
|
33 |
|
41 |
* **Google Analytics UTM tracking** - Track the source of your incoming traffic with the help of the Google Analytics UTM parameters
|
42 |
* **Social Media Follow Buttons Widget** - Place social media follow buttons for the following social media networks: Facebook, Twitter, Pinterest, LinkedIn, Reddit, Instagram, YouTube, Vimeo, SoundCloud, Twitch, Yummly and Behance. Use the [mv_grow_follow] shortcode to place the follow buttons anywere in your template files
|
43 |
* **Sharable Quotes ( Click to Tweet ) Feature** - Let your readers easily share a custom tweet with just one click
|
|
|
44 |
* **Import / Export Settings** - Move all the settings from one website to another with just a few clicks
|
45 |
|
46 |
= Powerful Social Sharing Features =
|
101 |
== Changelog ==
|
102 |
[Looking for the changelog for Grow Social Pro? Click here to access it.](https://marketplace.mediavine.com/grow-social-pro/grow-social-pro-changelog/)
|
103 |
|
104 |
+
= 1.20.0 =
|
105 |
+
* Add Inline Critical CSS to Inline Content Tool to reduce Layout Shift when CSS loading deferred
|
106 |
+
* Add Facebook share tooltip to explain why shares do not appear when under 100
|
107 |
+
* Add post and category IDs to Grow data
|
108 |
+
* Add status REST API endpoint
|
109 |
+
* Add the Grow saved class to the Trellis critical CSS bypass
|
110 |
+
* Fix inline content buttons showing up in WooCommerce product pages
|
111 |
+
* Fix outdated doc links in dashboard
|
112 |
+
* Fix inline content buttons not showing up before WPRM Jump to Recipe
|
113 |
+
* Fix Grow bookmark button not saving state
|
114 |
+
* Fix checking requirements on older WordPress versions causing fatal error
|
115 |
+
|
116 |
= 1.19.2 =
|
117 |
* FEATURE: Add notice of Share Count Removal
|
118 |
* FIX: Images prevented from being pinned
|
translations/social-pug.pot
CHANGED
@@ -2,24 +2,25 @@
|
|
2 |
# This file is distributed under the GPL2.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Grow Social Pro by Mediavine
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/project\n"
|
7 |
"Last-Translator: \n"
|
8 |
"Language-Team: \n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"POT-Creation-Date: 2022-
|
13 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
-
"X-Generator: WP-CLI 2.
|
15 |
"X-Domain: social-pug\n"
|
16 |
|
17 |
#. Plugin Name of the plugin
|
18 |
-
#: inc/class-social-pug.php:
|
19 |
msgid "Grow Social Pro by Mediavine"
|
20 |
msgstr ""
|
21 |
|
22 |
#. Plugin URI of the plugin
|
|
|
23 |
msgid "https://marketplace.mediavine.com/grow-social-pro/"
|
24 |
msgstr ""
|
25 |
|
@@ -31,182 +32,179 @@ msgstr ""
|
|
31 |
msgid "Mediavine"
|
32 |
msgstr ""
|
33 |
|
34 |
-
|
35 |
-
msgid "https://marketplace.mediavine.com/"
|
36 |
-
msgstr ""
|
37 |
-
|
38 |
-
#: inc/admin/admin-metaboxes.php:26
|
39 |
msgid "Grow: Share Options"
|
40 |
msgstr ""
|
41 |
|
42 |
-
#: inc/admin/admin-metaboxes.php:
|
43 |
msgid "Grow: Share Statistics"
|
44 |
msgstr ""
|
45 |
|
46 |
-
#: inc/admin/admin-metaboxes.php:
|
47 |
msgid "Grow: Debug Log"
|
48 |
msgstr ""
|
49 |
|
50 |
-
#: inc/admin/admin-metaboxes.php:
|
51 |
msgid "Social Media Image"
|
52 |
msgstr ""
|
53 |
|
54 |
-
#: inc/admin/admin-metaboxes.php:
|
55 |
msgid "Add an image that will populate the \"og:image\" Open Graph meta tag. For maximum exposure on Facebook, Google, or LinkedIn we recommend an image size of 1200px X 630px."
|
56 |
msgstr ""
|
57 |
|
58 |
-
#: inc/admin/admin-metaboxes.php:
|
59 |
-
#: inc/admin/admin-metaboxes.php:
|
60 |
-
#: inc/functions-admin.php:
|
61 |
msgid "Select Image"
|
62 |
msgstr ""
|
63 |
|
64 |
-
#: inc/admin/admin-metaboxes.php:
|
65 |
-
#: inc/admin/admin-metaboxes.php:
|
66 |
-
#: inc/functions-admin.php:
|
67 |
msgid "Remove Image"
|
68 |
msgstr ""
|
69 |
|
70 |
-
#: inc/admin/admin-metaboxes.php:
|
71 |
msgid "Social Media Title"
|
72 |
msgstr ""
|
73 |
|
74 |
-
#: inc/admin/admin-metaboxes.php:
|
75 |
-
#: inc/admin/admin-metaboxes.php:
|
76 |
-
#: inc/admin/admin-metaboxes.php:
|
77 |
-
#: inc/admin/admin-metaboxes.php:
|
78 |
-
#: inc/admin/admin-metaboxes.php:
|
79 |
msgid "Characters Remaining"
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: inc/admin/admin-metaboxes.php:
|
83 |
msgid "Add a title that will populate the \"og:title\" Open Graph meta tag. This will be used when users share your content on Facebook, Google+ or LinkedIn. The title of the post will be used if this field is empty."
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: inc/admin/admin-metaboxes.php:
|
87 |
msgid "Write a social media title..."
|
88 |
msgstr ""
|
89 |
|
90 |
-
#: inc/admin/admin-metaboxes.php:
|
91 |
msgid "Social Media Description"
|
92 |
msgstr ""
|
93 |
|
94 |
-
#: inc/admin/admin-metaboxes.php:
|
95 |
msgid "Add a description that will populate the \"og:description\" Open Graph meta tag. This will be used when users share your content on Facebook, Google+ or LinkedIn."
|
96 |
msgstr ""
|
97 |
|
98 |
-
#: inc/admin/admin-metaboxes.php:
|
99 |
msgid "Write a social media description..."
|
100 |
msgstr ""
|
101 |
|
102 |
-
#: inc/admin/admin-metaboxes.php:
|
103 |
msgid "Pinterest Image"
|
104 |
msgstr ""
|
105 |
|
106 |
-
#: inc/admin/admin-metaboxes.php:
|
107 |
msgid "Add an image that will be used when this post is shared on Pinterest. For maximum exposure we recommend using an image that has a 2:3 aspect ratio, for example 800px X 1200px."
|
108 |
msgstr ""
|
109 |
|
110 |
-
#: inc/admin/admin-metaboxes.php:
|
111 |
msgid "Pinterest Title"
|
112 |
msgstr ""
|
113 |
|
114 |
-
#: inc/admin/admin-metaboxes.php:
|
115 |
msgid "Write a custom Pinterest title..."
|
116 |
msgstr ""
|
117 |
|
118 |
-
#: inc/admin/admin-metaboxes.php:
|
119 |
-
msgid "Please note: Pinterest
|
120 |
msgstr ""
|
121 |
|
122 |
-
#: inc/admin/admin-metaboxes.php:
|
123 |
msgid "Pinterest Description"
|
124 |
msgstr ""
|
125 |
|
126 |
-
#: inc/admin/admin-metaboxes.php:
|
127 |
msgid "Add a customized message that will be used when this post is shared on Pinterest."
|
128 |
msgstr ""
|
129 |
|
130 |
-
#: inc/admin/admin-metaboxes.php:
|
131 |
msgid "Write a custom Pinterest description..."
|
132 |
msgstr ""
|
133 |
|
134 |
-
#: inc/admin/admin-metaboxes.php:
|
|
|
|
|
|
|
|
|
135 |
msgid "Custom Tweet"
|
136 |
msgstr ""
|
137 |
|
138 |
-
#: inc/admin/admin-metaboxes.php:
|
139 |
msgid "Add a customized tweet that will be used when this post is shared on Twitter."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: inc/admin/admin-metaboxes.php:
|
143 |
msgid "Write a custom tweet..."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: inc/admin/admin-metaboxes.php:
|
147 |
msgid "Maximum characters is based off of the Twitter maximum, the post permalink, and whether your Twitter username is included in the tweet."
|
148 |
msgstr ""
|
149 |
|
150 |
-
#: inc/admin/admin-metaboxes.php:
|
151 |
msgid "Pinterest Hidden Images"
|
152 |
msgstr ""
|
153 |
|
154 |
-
#: inc/admin/admin-metaboxes.php:
|
155 |
msgid "Remove image"
|
156 |
msgstr ""
|
157 |
|
158 |
-
#: inc/admin/admin-metaboxes.php:
|
159 |
msgid "Add images"
|
160 |
msgstr ""
|
161 |
|
162 |
-
#: inc/admin/admin-metaboxes.php:
|
163 |
msgid "Display Options"
|
164 |
msgstr ""
|
165 |
|
166 |
-
#: inc/admin/admin-metaboxes.php:
|
167 |
msgid "Hide buttons for the"
|
168 |
msgstr ""
|
169 |
|
170 |
-
#: inc/admin/admin-metaboxes.php:
|
171 |
msgid "Show buttons for the"
|
172 |
msgstr ""
|
173 |
|
174 |
-
#: inc/admin/admin-metaboxes.php:
|
175 |
msgid "Network"
|
176 |
msgstr ""
|
177 |
|
178 |
-
#: inc/admin/admin-metaboxes.php:
|
179 |
-
#: inc/functions-admin.php:
|
180 |
msgid "Shares"
|
181 |
msgstr ""
|
182 |
|
183 |
-
#: inc/admin/admin-metaboxes.php:
|
184 |
msgid "Total shares"
|
185 |
msgstr ""
|
186 |
|
187 |
-
#: inc/admin/admin-metaboxes.php:
|
188 |
-
msgid "Refresh shares"
|
189 |
-
msgstr ""
|
190 |
-
|
191 |
-
#: inc/admin/admin-metaboxes.php:365
|
192 |
#: inc/tools/misc-social-shares-recovery/views/view-submenu-page-settings-general-tab-social-shares-recovery.php:5
|
193 |
msgid "Social Shares Recovery"
|
194 |
msgstr ""
|
195 |
|
196 |
-
#: inc/admin/admin-metaboxes.php:
|
197 |
msgid "If you have modified the permalink for this particular post, add the previous URL variations for the post, so that Grow can recover the social shares for each individual URL."
|
198 |
msgstr ""
|
199 |
|
200 |
-
#: inc/admin/admin-metaboxes.php:
|
201 |
msgid "If you have ever modified the permalink for this particular post and want to recover lost shares for any previous links this post had, add the old links by pressing the Add Link button."
|
202 |
msgstr ""
|
203 |
|
204 |
-
#: inc/admin/admin-metaboxes.php:
|
205 |
-
#: inc/admin/admin-metaboxes.php:
|
|
|
206 |
msgid "Remove"
|
207 |
msgstr ""
|
208 |
|
209 |
-
#: inc/admin/admin-metaboxes.php:
|
210 |
msgid "Add Link"
|
211 |
msgstr ""
|
212 |
|
@@ -288,10 +286,10 @@ msgid "Extensions"
|
|
288 |
msgstr ""
|
289 |
|
290 |
#: inc/admin/submenu-page-settings.php:7
|
291 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
292 |
#: inc/admin/views/view-submenu-page-settings.php:3
|
293 |
-
#: inc/class-social-pug.php:
|
294 |
-
#: inc/functions-admin.php:
|
295 |
msgid "Settings"
|
296 |
msgstr ""
|
297 |
|
@@ -304,11 +302,11 @@ msgstr ""
|
|
304 |
msgid "Social Identity"
|
305 |
msgstr ""
|
306 |
|
307 |
-
#: inc/admin/submenu-page-settings.php:
|
308 |
msgid "Serial key is valid."
|
309 |
msgstr ""
|
310 |
|
311 |
-
#: inc/admin/submenu-page-settings.php:
|
312 |
msgid "Serial key is invalid or expired."
|
313 |
msgstr ""
|
314 |
|
@@ -468,230 +466,215 @@ msgstr ""
|
|
468 |
msgid "Track shared links with the help of the UTM parameters."
|
469 |
msgstr ""
|
470 |
|
471 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
472 |
msgid "Google Analytics UTM Tracking"
|
473 |
msgstr ""
|
474 |
|
475 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
476 |
msgid "Activate UTM Tracking"
|
477 |
msgstr ""
|
478 |
|
479 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
480 |
msgid "Campaign Source"
|
481 |
msgstr ""
|
482 |
|
483 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
484 |
msgid "Use utm_source to identify a search engine, newsletter name, or other source. Using \"{{network_name}}\" as value here will add the name of the social network button as the value of the utm_source parameter."
|
485 |
msgstr ""
|
486 |
|
487 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
488 |
msgid "Campaign Medium"
|
489 |
msgstr ""
|
490 |
|
491 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
492 |
msgid "Use utm_medium to identify a medium such as email or social."
|
493 |
msgstr ""
|
494 |
|
495 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
496 |
msgid "Campaign Name"
|
497 |
msgstr ""
|
498 |
|
499 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
500 |
msgid "Use utm_campaign to identify a specific product promotion or strategic campaign."
|
501 |
msgstr ""
|
502 |
|
503 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
504 |
#: inc/admin/views/view-submenu-page-settings.php:33
|
505 |
msgid "Misc"
|
506 |
msgstr ""
|
507 |
|
508 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
509 |
#: inc/admin/views/view-submenu-page-settings.php:40
|
510 |
msgid "Facebook Share Counts Provider"
|
511 |
msgstr ""
|
512 |
|
513 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
514 |
-
#: inc/class-social-pug.php:
|
515 |
-
#: inc/class-social-pug.php:
|
516 |
msgid "Grow Social by Mediavine"
|
517 |
msgstr ""
|
518 |
|
519 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
520 |
#: inc/admin/views/view-submenu-page-settings.php:42
|
521 |
msgid "Facebook Graph API"
|
522 |
msgstr ""
|
523 |
|
524 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
525 |
#: inc/admin/views/view-submenu-page-settings.php:57
|
526 |
msgid "Authorized"
|
527 |
msgstr ""
|
528 |
|
529 |
#. translators: %s
|
530 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
531 |
msgid "- Expires on %s"
|
532 |
msgstr ""
|
533 |
|
534 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
535 |
#: inc/admin/views/view-submenu-page-settings.php:68
|
536 |
msgid "Authorization Expired"
|
537 |
msgstr ""
|
538 |
|
539 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
540 |
msgid "- Please reauthorize."
|
541 |
msgstr ""
|
542 |
|
543 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
544 |
#: inc/admin/views/view-submenu-page-settings.php:81
|
545 |
msgid "Reauthorize Grow"
|
546 |
msgstr ""
|
547 |
|
548 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
549 |
#: inc/admin/views/view-submenu-page-settings.php:97
|
550 |
msgid "Authorize Grow"
|
551 |
msgstr ""
|
552 |
|
553 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
554 |
#: inc/admin/views/view-submenu-page-settings.php:103
|
555 |
msgid "Facebook App ID"
|
556 |
msgstr ""
|
557 |
|
558 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
559 |
#: inc/admin/views/view-submenu-page-settings.php:104
|
560 |
msgid "Facebook App Secret"
|
561 |
msgstr ""
|
562 |
|
563 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
564 |
-
#: inc/admin/views/view-submenu-page-settings.php:111
|
565 |
-
msgid "Enable Twitter Tweet Counts"
|
566 |
-
msgstr ""
|
567 |
-
|
568 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:183
|
569 |
-
msgid "Tweet Counts Provider"
|
570 |
-
msgstr ""
|
571 |
-
|
572 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:184
|
573 |
-
msgid "TwitCount"
|
574 |
-
msgstr ""
|
575 |
-
|
576 |
-
#. translators: %1$s, %2$s
|
577 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:186
|
578 |
-
#: inc/admin/views/view-submenu-page-settings.php:115
|
579 |
-
msgid "You will need to register your website on %1$sTwitCount%2$s in order for Grow to be able to return the share counts."
|
580 |
-
msgstr ""
|
581 |
-
|
582 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:189
|
583 |
#: inc/admin/views/view-submenu-page-settings.php:105
|
584 |
msgid "Disable Open Graph Meta Tags"
|
585 |
msgstr ""
|
586 |
|
587 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
588 |
msgid "WhatsApp only on mobile devices"
|
589 |
msgstr ""
|
590 |
|
591 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
592 |
msgid "The WhatsApp share button will be displayed on all devices by default. By checking this option the WhatsApp button will only be shown on mobile devices."
|
593 |
msgstr ""
|
594 |
|
595 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
596 |
msgid "Enable System Debugger"
|
597 |
msgstr ""
|
598 |
|
599 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
600 |
msgid "Use jQuery JavaScript"
|
601 |
msgstr ""
|
602 |
|
603 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
|
|
|
|
|
|
|
|
604 |
msgid "Refresh all share counts"
|
605 |
msgstr ""
|
606 |
|
607 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
608 |
msgid "Register Version"
|
609 |
msgstr ""
|
610 |
|
611 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
612 |
msgid "Previous Social Pug Serial"
|
613 |
msgstr ""
|
614 |
|
615 |
#. translators: %s Plugin Name
|
616 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
617 |
msgid "%s License"
|
618 |
msgstr ""
|
619 |
|
620 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
621 |
msgid "Facebook Username"
|
622 |
msgstr ""
|
623 |
|
624 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
625 |
#: inc/admin/views/view-submenu-page-settings.php:22
|
626 |
msgid "Twitter Username"
|
627 |
msgstr ""
|
628 |
|
629 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
630 |
#: inc/admin/views/view-submenu-page-settings.php:23
|
631 |
msgid "Add Twitter Username to all tweets"
|
632 |
msgstr ""
|
633 |
|
634 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
635 |
msgid "Pinterest Username"
|
636 |
msgstr ""
|
637 |
|
638 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
639 |
msgid "LinkedIn Username"
|
640 |
msgstr ""
|
641 |
|
642 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
643 |
msgid "Reddit Username"
|
644 |
msgstr ""
|
645 |
|
646 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
647 |
msgid "VK Username"
|
648 |
msgstr ""
|
649 |
|
650 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
651 |
msgid "Tumblr Username"
|
652 |
msgstr ""
|
653 |
|
654 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
655 |
msgid "Instagram Username"
|
656 |
msgstr ""
|
657 |
|
658 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
659 |
msgid "YouTube Channel"
|
660 |
msgstr ""
|
661 |
|
662 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
663 |
msgid "Vimeo Username"
|
664 |
msgstr ""
|
665 |
|
666 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
667 |
msgid "SoundCloud Username"
|
668 |
msgstr ""
|
669 |
|
670 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
671 |
msgid "Twitch Username"
|
672 |
msgstr ""
|
673 |
|
674 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
675 |
msgid "Yummly Username"
|
676 |
msgstr ""
|
677 |
|
678 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
679 |
msgid "Behance Username"
|
680 |
msgstr ""
|
681 |
|
682 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
683 |
msgid "Xing Username"
|
684 |
msgstr ""
|
685 |
|
686 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
687 |
msgid "Github Username"
|
688 |
msgstr ""
|
689 |
|
690 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
691 |
msgid "Telegram Username/Channel"
|
692 |
msgstr ""
|
693 |
|
694 |
-
#: inc/admin/views/view-submenu-page-settings-pro.php:
|
695 |
msgid "Medium Username"
|
696 |
msgstr ""
|
697 |
|
@@ -870,86 +853,70 @@ msgid "For screen widths smaller than this value ( in pixels ) the buttons will
|
|
870 |
msgstr ""
|
871 |
|
872 |
#: inc/admin/views/view-submenu-page-sidebar.php:85
|
873 |
-
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:
|
874 |
-
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:
|
875 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:191
|
876 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:150
|
877 |
msgid "Buttons Share Counts"
|
878 |
msgstr ""
|
879 |
|
880 |
-
#: inc/admin/views/view-submenu-page-sidebar.php:90
|
881 |
-
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:186
|
882 |
-
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:221
|
883 |
-
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:196
|
884 |
-
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:155
|
885 |
-
msgid "Show share count"
|
886 |
-
msgstr ""
|
887 |
-
|
888 |
-
#: inc/admin/views/view-submenu-page-sidebar.php:90
|
889 |
-
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:186
|
890 |
-
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:221
|
891 |
-
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:196
|
892 |
-
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:155
|
893 |
-
msgid "Display the share count for each social network."
|
894 |
-
msgstr ""
|
895 |
-
|
896 |
#: inc/admin/views/view-submenu-page-sidebar.php:92
|
897 |
-
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:
|
898 |
-
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:
|
899 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:198
|
900 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:157
|
901 |
msgid "Show total share count"
|
902 |
msgstr ""
|
903 |
|
904 |
#: inc/admin/views/view-submenu-page-sidebar.php:92
|
905 |
-
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:
|
906 |
-
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:
|
907 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:198
|
908 |
msgid "Display the share count for all social networks."
|
909 |
msgstr ""
|
910 |
|
911 |
#: inc/admin/views/view-submenu-page-sidebar.php:96
|
912 |
-
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:
|
913 |
-
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:
|
914 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:205
|
915 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:164
|
916 |
msgid "Total count position"
|
917 |
msgstr ""
|
918 |
|
919 |
#: inc/admin/views/view-submenu-page-sidebar.php:97
|
920 |
-
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:
|
921 |
-
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:
|
922 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:207
|
923 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:166
|
924 |
msgid "Before Buttons"
|
925 |
msgstr ""
|
926 |
|
927 |
#: inc/admin/views/view-submenu-page-sidebar.php:98
|
928 |
-
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:
|
929 |
-
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:
|
930 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:208
|
931 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:167
|
932 |
msgid "After Buttons"
|
933 |
msgstr ""
|
934 |
|
935 |
#: inc/admin/views/view-submenu-page-sidebar.php:103
|
936 |
-
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:
|
937 |
-
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:
|
938 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:216
|
939 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:175
|
940 |
msgid "Share count round"
|
941 |
msgstr ""
|
942 |
|
943 |
#: inc/admin/views/view-submenu-page-sidebar.php:103
|
944 |
-
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:
|
945 |
-
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:
|
946 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:216
|
947 |
msgid "If the share count for each network is bigger than 1000 it will be rounded to one decimal ( eg. 1267 will show as 1.2k ). Applies to Total Share Counts as well."
|
948 |
msgstr ""
|
949 |
|
950 |
#: inc/admin/views/view-submenu-page-sidebar.php:113
|
951 |
-
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:
|
952 |
-
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:
|
953 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:352
|
954 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:208
|
955 |
msgid "Post Type Display Settings"
|
@@ -967,236 +934,234 @@ msgstr ""
|
|
967 |
msgid "Misc Tools"
|
968 |
msgstr ""
|
969 |
|
970 |
-
#: inc/class-admin-notices.php:
|
971 |
msgid "Settings saved."
|
972 |
msgstr ""
|
973 |
|
974 |
-
#: inc/class-admin-notices.php:
|
975 |
msgid "Settings imported."
|
976 |
msgstr ""
|
977 |
|
978 |
-
#: inc/class-admin-notices.php:
|
979 |
msgid "Please select an import file."
|
980 |
msgstr ""
|
981 |
|
982 |
-
#: inc/class-admin-notices.php:
|
983 |
msgid "Import file is not valid."
|
984 |
msgstr ""
|
985 |
|
986 |
-
#: inc/class-admin-notices.php:
|
987 |
msgid "Grow Social by Mediavine App authorized successfully."
|
988 |
msgstr ""
|
989 |
|
990 |
#. translators: %1$s is replaced by admin url, %2$s is replaced by store url
|
991 |
-
#: inc/class-admin-notices.php:
|
992 |
msgid "Your <strong>Grow Social Pro by Mediavine</strong> license key is empty. Please <a href=\"%1$s\">register your copy</a> to receive automatic updates and support. <br /><br /> Need a license key? <a class=\"dpsp-get-license button button-primary\" target=\"_blank\" href=\"%2$s\">Get your license here</a>"
|
993 |
msgstr ""
|
994 |
|
995 |
#. translators: %s Branding name, free or pro version
|
996 |
-
#: inc/class-admin-notices.php:
|
997 |
-
#: inc/class-admin-notices.php:
|
998 |
-
#: inc/class-admin-notices.php:253
|
999 |
msgid "%s Important Notification"
|
1000 |
msgstr ""
|
1001 |
|
1002 |
#. translators: %s Branding name, free or pro version
|
1003 |
-
#: inc/class-admin-notices.php:
|
1004 |
msgid "Your %s Facebook app authorization has expired. Please reauthorize the app for continued Facebook share counts functionality."
|
1005 |
msgstr ""
|
1006 |
|
1007 |
#. translators: %s Branding name, free or pro version
|
1008 |
-
#: inc/class-admin-notices.php:
|
1009 |
msgid "Reauthorize Grow Social by Mediavine App"
|
1010 |
msgstr ""
|
1011 |
|
1012 |
#. translators: %s Branding name, free or pro version
|
1013 |
-
#: inc/class-admin-notices.php:
|
1014 |
msgid "As you may already know, Google+ has shut down on April 2nd. As a result, with this latest update, %s no longer supports Google+ functionality."
|
1015 |
msgstr ""
|
1016 |
|
1017 |
#. translators: %s Branding name, free or pro version
|
1018 |
-
#: inc/class-admin-notices.php:
|
1019 |
msgid "Please make sure to verify your settings, your widgets, your shortcodes, and remove any Google+ buttons you may have placed within your website."
|
1020 |
msgstr ""
|
1021 |
|
1022 |
-
#: inc/class-admin-notices.php:
|
1023 |
-
#: inc/class-admin-notices.php:
|
1024 |
-
#: inc/class-admin-notices.php:
|
1025 |
msgid "Thank you, I understand."
|
1026 |
msgstr ""
|
1027 |
|
1028 |
-
|
1029 |
-
#: inc/class-admin-notices.php:255
|
1030 |
-
msgid "Social share counts for Twitter are not functioning as intended due to limitations with Twitter's API. In order to make them function properly, we are changing the way they operate which is causing us to incur additional costs. As such, version %1$s will remove share counts for Twitter from our free offering. Facebook and Pinterest share counts will remain in both versions of the plugin."
|
1031 |
-
msgstr ""
|
1032 |
-
|
1033 |
-
#: inc/class-admin-notices.php:285
|
1034 |
msgid "Social Pug is now Grow Social by Mediavine!"
|
1035 |
msgstr ""
|
1036 |
|
1037 |
-
#: inc/class-admin-notices.php:
|
1038 |
msgid "You're going to notice some new paint and a new name today and we wanted to let you know what that's all about. The short version is that Grow Social by Mediavine is the same plugin you know and love but with a new, larger development team!"
|
1039 |
msgstr ""
|
1040 |
|
1041 |
-
#: inc/class-admin-notices.php:
|
1042 |
msgid "Check out the blog post"
|
1043 |
msgstr ""
|
1044 |
|
1045 |
-
#: inc/class-admin-notices.php:
|
1046 |
msgid " for all the details on this development and our exciting plans to continue Growing an already awesome plugin."
|
1047 |
msgstr ""
|
1048 |
|
1049 |
-
#: inc/class-admin-notices.php:
|
1050 |
msgid "(Those who are familiar with Mediavine for our full-service ad management, rest assured that this plugin is totally independent of ads and available to anyone and everyone who wants to Grow their social presence.)"
|
1051 |
msgstr ""
|
1052 |
|
1053 |
-
#: inc/class-admin-notices.php:
|
1054 |
msgid "<strong>Your Grow Social Pro by Mediavine JavaScript has been optimized!</strong>"
|
1055 |
msgstr ""
|
1056 |
|
1057 |
-
#: inc/class-admin-notices.php:
|
1058 |
msgid "The Legacy jQuery version of our JavaScript is now deprecated, and all users have been switched to the Optimized JavaScipt. "
|
1059 |
msgstr ""
|
1060 |
|
1061 |
#. translators: Link to contact Mediavine
|
1062 |
-
#: inc/class-admin-notices.php:
|
1063 |
msgid "If you find an issue with the optimized settings where you need to revert to the jQuery JavaScript, %s. "
|
1064 |
msgstr ""
|
1065 |
|
1066 |
#. translators: Link to contact Mediavine
|
1067 |
-
#: inc/class-admin-notices.php:
|
1068 |
msgid "please contact Mediavine"
|
1069 |
msgstr ""
|
1070 |
|
1071 |
#. translators: Link to settings
|
1072 |
-
#: inc/class-admin-notices.php:
|
1073 |
msgid "You can revert the JavaScript so on the %s."
|
1074 |
msgstr ""
|
1075 |
|
1076 |
#. translators: Link to settings
|
1077 |
-
#: inc/class-admin-notices.php:
|
1078 |
msgid "Grow Settings page under Misc"
|
1079 |
msgstr ""
|
1080 |
|
1081 |
-
#: inc/class-admin-notices.php:
|
1082 |
msgid "<strong>After July 2021, the jQuery JavaScript will be removed completely.</strong>"
|
1083 |
msgstr ""
|
1084 |
|
1085 |
-
#: inc/class-admin-notices.php:
|
1086 |
msgid "Grow Social by Mediavine Notification"
|
1087 |
msgstr ""
|
1088 |
|
1089 |
-
#: inc/class-admin-notices.php:
|
1090 |
msgid "Looking to get started with Grow Social? Click the button below for a step by step guide to setting everything up!"
|
1091 |
msgstr ""
|
1092 |
|
1093 |
-
#: inc/class-admin-notices.php:
|
1094 |
msgid "Learn how to set up Grow Social"
|
1095 |
msgstr ""
|
1096 |
|
1097 |
#. translators: %s
|
1098 |
-
#: inc/class-dpsp-network-buttons-outputter.php:
|
1099 |
msgid "Share on %s"
|
1100 |
msgstr ""
|
1101 |
|
1102 |
-
#: inc/class-dpsp-network-buttons-outputter.php:
|
1103 |
msgid "Save to Pinterest"
|
1104 |
msgstr ""
|
1105 |
|
1106 |
-
#: inc/class-dpsp-network-buttons-outputter.php:
|
1107 |
msgid "Send over email"
|
1108 |
msgstr ""
|
1109 |
|
1110 |
-
#: inc/class-dpsp-network-buttons-outputter.php:
|
1111 |
msgid "Print this webpage"
|
1112 |
msgstr ""
|
1113 |
|
1114 |
-
#: inc/class-dpsp-network-buttons-outputter.php:
|
1115 |
msgid "Save on Grow.me"
|
1116 |
msgstr ""
|
1117 |
|
1118 |
#. translators: %s
|
1119 |
-
#: inc/class-dpsp-network-buttons-outputter.php:
|
1120 |
msgid "Follow on %s"
|
1121 |
msgstr ""
|
1122 |
|
1123 |
-
#: inc/class-social-pug.php:
|
1124 |
msgid "Grow"
|
1125 |
msgstr ""
|
1126 |
|
1127 |
-
#: inc/functions-admin.php:
|
1128 |
msgid "Active"
|
1129 |
msgstr ""
|
1130 |
|
1131 |
-
#: inc/functions-admin.php:
|
1132 |
msgid "Inactive"
|
1133 |
msgstr ""
|
1134 |
|
1135 |
-
#: inc/functions-admin.php:
|
1136 |
msgid "Learn More"
|
1137 |
msgstr ""
|
1138 |
|
1139 |
-
#: inc/functions-admin.php:
|
1140 |
msgid "Apply Selection"
|
1141 |
msgstr ""
|
1142 |
|
1143 |
-
#: inc/functions-admin.php:
|
1144 |
msgid "This button has no label text."
|
1145 |
msgstr ""
|
1146 |
|
1147 |
-
#: inc/functions-admin.php:
|
|
|
|
|
|
|
|
|
1148 |
msgid "Skyrocket your social media marketing"
|
1149 |
msgstr ""
|
1150 |
|
1151 |
-
#: inc/functions-admin.php:
|
1152 |
msgid "Force a custom image to be shared on Pinterest when using the Pinterest button."
|
1153 |
msgstr ""
|
1154 |
|
1155 |
-
#: inc/functions-admin.php:
|
1156 |
msgid "Add unlimited hidden Pinterest images to your posts and pages."
|
1157 |
msgstr ""
|
1158 |
|
1159 |
-
#: inc/functions-admin.php:
|
1160 |
msgid "Make your website mobile-friendly with sticky footer social share buttons."
|
1161 |
msgstr ""
|
1162 |
|
1163 |
-
#: inc/functions-admin.php:
|
1164 |
msgid "Trigger a pop-up with the social sharing buttons when a user starts to scroll, arrives at the bottom of a post or begins to leave your site."
|
1165 |
msgstr ""
|
1166 |
|
1167 |
-
#: inc/functions-admin.php:
|
1168 |
msgid "Attract users to your social media profiles with our Follow Buttons Widget and follow shortcode. You can place it in your sidebar, template files, or anywhere on your site. Buttons include Facebook, Twitter, Pinterest, LinkedIn, Reddit, Instagram, YouTube, Vimeo, SoundCloud, Twitch, Yummly, and Behance."
|
1169 |
msgstr ""
|
1170 |
|
1171 |
-
#: inc/functions-admin.php:
|
1172 |
msgid "Display Social Share counts for Facebook, Twitter, Pinterest, and Reddit."
|
1173 |
msgstr ""
|
1174 |
|
1175 |
-
#: inc/functions-admin.php:
|
1176 |
msgid "Add a \"Pin It\" button that appears when visitors hover your in-post images."
|
1177 |
msgstr ""
|
1178 |
|
1179 |
-
#: inc/functions-admin.php:
|
1180 |
msgid "Add custom pin descriptions and repin IDs to your in-post images."
|
1181 |
msgstr ""
|
1182 |
|
1183 |
-
#: inc/functions-admin.php:
|
1184 |
msgid "Recover your lost social share counts if you've ever changed your permalink structure."
|
1185 |
msgstr ""
|
1186 |
|
1187 |
-
#: inc/functions-admin.php:
|
1188 |
msgid "Add unlimited \"Click to Tweet\" boxes so that your users can share your content on Twitter with just one click."
|
1189 |
msgstr ""
|
1190 |
|
1191 |
-
#: inc/functions-admin.php:
|
1192 |
msgid "Get immediate help with priority support."
|
1193 |
msgstr ""
|
1194 |
|
1195 |
-
#: inc/functions-admin.php:
|
1196 |
msgid "And much, much more..."
|
1197 |
msgstr ""
|
1198 |
|
1199 |
-
#: inc/functions-admin.php:
|
1200 |
msgid "Upgrade to Pro"
|
1201 |
msgstr ""
|
1202 |
|
@@ -1208,44 +1173,44 @@ msgstr ""
|
|
1208 |
msgid "Once every week"
|
1209 |
msgstr ""
|
1210 |
|
1211 |
-
#: inc/functions-frontend.php:
|
1212 |
msgid "shares"
|
1213 |
msgstr ""
|
1214 |
|
1215 |
-
#: inc/functions.php:
|
1216 |
msgid "Sharing is Caring"
|
1217 |
msgstr ""
|
1218 |
|
1219 |
-
#: inc/functions.php:
|
1220 |
msgid "Help spread the word. You're awesome for doing it!"
|
1221 |
msgstr ""
|
1222 |
|
1223 |
-
#: inc/tools/follow-widget/class-dpsp-social-media-follow-buttons.php:
|
1224 |
msgid "Grow Social by Mediavine: Social Media Follow Buttons"
|
1225 |
msgstr ""
|
1226 |
|
1227 |
-
#: inc/tools/follow-widget/class-dpsp-social-media-follow-buttons.php:
|
1228 |
msgid "Display social media follow buttons."
|
1229 |
msgstr ""
|
1230 |
|
1231 |
-
#: inc/tools/follow-widget/class-dpsp-social-media-follow-buttons.php:
|
1232 |
-
#: inc/widgets/class-dpsp-top-shared-posts.php:
|
1233 |
msgid "Title:"
|
1234 |
msgstr ""
|
1235 |
|
1236 |
-
#: inc/tools/follow-widget/class-dpsp-social-media-follow-buttons.php:
|
1237 |
msgid "Description:"
|
1238 |
msgstr ""
|
1239 |
|
1240 |
-
#: inc/tools/follow-widget/class-dpsp-social-media-follow-buttons.php:
|
1241 |
msgid "Buttons Settings:"
|
1242 |
msgstr ""
|
1243 |
|
1244 |
-
#: inc/tools/follow-widget/class-dpsp-social-media-follow-buttons.php:
|
1245 |
msgid "You can edit the look and feel of the buttons by pressing the button below:"
|
1246 |
msgstr ""
|
1247 |
|
1248 |
-
#: inc/tools/follow-widget/class-dpsp-social-media-follow-buttons.php:
|
1249 |
msgid "Buttons Settings"
|
1250 |
msgstr ""
|
1251 |
|
@@ -1352,24 +1317,24 @@ msgid "Center"
|
|
1352 |
msgstr ""
|
1353 |
|
1354 |
#: inc/tools/follow-widget/views/view-submenu-page-follow-widget.php:211
|
1355 |
-
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:
|
1356 |
-
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:
|
1357 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:230
|
1358 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:190
|
1359 |
msgid "Buttons Custom Colors"
|
1360 |
msgstr ""
|
1361 |
|
1362 |
#: inc/tools/follow-widget/views/view-submenu-page-follow-widget.php:216
|
1363 |
-
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:
|
1364 |
-
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:
|
1365 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:235
|
1366 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:195
|
1367 |
msgid "Buttons color"
|
1368 |
msgstr ""
|
1369 |
|
1370 |
#: inc/tools/follow-widget/views/view-submenu-page-follow-widget.php:217
|
1371 |
-
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:
|
1372 |
-
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:
|
1373 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:236
|
1374 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:196
|
1375 |
msgid "Buttons hover color"
|
@@ -1648,7 +1613,7 @@ msgstr ""
|
|
1648 |
msgid "Will animate the call to action icon when the user hovers over the Click to Tweet box."
|
1649 |
msgstr ""
|
1650 |
|
1651 |
-
#: inc/tools/share-floating-sidebar/class-floating-sidebar.php:
|
1652 |
#: inc/tools/share-floating-sidebar/share-floating-sidebar.php:12
|
1653 |
#: inc/tools/share-floating-sidebar/submenu-page-sidebar.php:12
|
1654 |
msgid "Floating Sidebar"
|
@@ -1706,35 +1671,35 @@ msgstr ""
|
|
1706 |
msgid "Hides the floating sidebar when it reaches this element on the page. By default, an empty value here will make it so the floating sidebar will not hide when it reaches the footer area."
|
1707 |
msgstr ""
|
1708 |
|
1709 |
-
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:
|
1710 |
-
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:
|
1711 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:218
|
1712 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:177
|
1713 |
msgid "Minimum global share count"
|
1714 |
msgstr ""
|
1715 |
|
1716 |
-
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:
|
1717 |
-
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:
|
1718 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:218
|
1719 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:177
|
1720 |
msgid "Display share counts only if the total share count is higher than this value."
|
1721 |
msgstr ""
|
1722 |
|
1723 |
-
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:
|
1724 |
-
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:
|
1725 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:220
|
1726 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:179
|
1727 |
msgid "Minimum individual share count"
|
1728 |
msgstr ""
|
1729 |
|
1730 |
-
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:
|
1731 |
-
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:
|
1732 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:220
|
1733 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:179
|
1734 |
msgid "Display share counts for an individual network only if the share count for that network is higher than this value."
|
1735 |
msgstr ""
|
1736 |
|
1737 |
-
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:
|
1738 |
msgid "Save Changes"
|
1739 |
msgstr ""
|
1740 |
|
@@ -1754,27 +1719,27 @@ msgstr ""
|
|
1754 |
msgid "Save"
|
1755 |
msgstr ""
|
1756 |
|
1757 |
-
#: inc/tools/share-images-pinterest/share-images-pinterest.php:
|
1758 |
msgid "Grow Social by Mediavine: Pin Title"
|
1759 |
msgstr ""
|
1760 |
|
1761 |
-
#: inc/tools/share-images-pinterest/share-images-pinterest.php:
|
1762 |
msgid "Grow Social by Mediavine: Pin Description"
|
1763 |
msgstr ""
|
1764 |
|
1765 |
-
#: inc/tools/share-images-pinterest/share-images-pinterest.php:
|
1766 |
msgid "Grow Social by Mediavine: Pin Repin ID"
|
1767 |
msgstr ""
|
1768 |
|
1769 |
-
#: inc/tools/share-images-pinterest/share-images-pinterest.php:
|
1770 |
msgid "Grow Social by Mediavine: Disable Pinning"
|
1771 |
msgstr ""
|
1772 |
|
1773 |
-
#: inc/tools/share-images-pinterest/share-images-pinterest.php:
|
1774 |
msgid "No"
|
1775 |
msgstr ""
|
1776 |
|
1777 |
-
#: inc/tools/share-images-pinterest/share-images-pinterest.php:
|
1778 |
msgid "Yes"
|
1779 |
msgstr ""
|
1780 |
|
@@ -1962,9 +1927,10 @@ msgstr ""
|
|
1962 |
msgid "Post type display"
|
1963 |
msgstr ""
|
1964 |
|
1965 |
-
#: inc/tools/share-inline-content/class-inline-content.php:
|
1966 |
#: inc/tools/share-inline-content/share-inline-content.php:11
|
1967 |
#: inc/tools/share-inline-content/submenu-page-content.php:12
|
|
|
1968 |
msgid "Inline Content"
|
1969 |
msgstr ""
|
1970 |
|
@@ -2000,7 +1966,7 @@ msgstr ""
|
|
2000 |
msgid "By default, Grow displays the inline content buttons a single time. Some themes and plugins may cause Grow to display at an incorrect time and cause it not to appear. Enabling this setting can help with this issue."
|
2001 |
msgstr ""
|
2002 |
|
2003 |
-
#: inc/tools/share-pop-up/class-pop-up.php:
|
2004 |
#: inc/tools/share-pop-up/share-pop-up.php:11
|
2005 |
#: inc/tools/share-pop-up/submenu-page-pop-up.php:12
|
2006 |
msgid "Pop-Up"
|
@@ -2098,7 +2064,7 @@ msgstr ""
|
|
2098 |
msgid "The pop-up will appear to users once every X number of days you select. If you select \"Everytime\" the pop-up will appear for each page the user visits."
|
2099 |
msgstr ""
|
2100 |
|
2101 |
-
#: inc/tools/share-sticky-bar/class-sticky-bar.php:
|
2102 |
#: inc/tools/share-sticky-bar/share-sticky-bar.php:12
|
2103 |
#: inc/tools/share-sticky-bar/submenu-page-sticky-bar.php:12
|
2104 |
msgid "Sticky Bar"
|
@@ -2158,42 +2124,42 @@ msgstr ""
|
|
2158 |
msgid "Bar background color"
|
2159 |
msgstr ""
|
2160 |
|
2161 |
-
#: inc/widgets/class-dpsp-top-shared-posts.php:
|
2162 |
msgid "Grow Social by Mediavine: Top Shared Posts"
|
2163 |
msgstr ""
|
2164 |
|
2165 |
-
#: inc/widgets/class-dpsp-top-shared-posts.php:
|
2166 |
msgid "Display the most shared posts from any custom post type."
|
2167 |
msgstr ""
|
2168 |
|
2169 |
-
#: inc/widgets/class-dpsp-top-shared-posts.php:
|
2170 |
msgid "Shares: "
|
2171 |
msgstr ""
|
2172 |
|
2173 |
-
#: inc/widgets/class-dpsp-top-shared-posts.php:
|
2174 |
msgid "Post types:"
|
2175 |
msgstr ""
|
2176 |
|
2177 |
-
#: inc/widgets/class-dpsp-top-shared-posts.php:
|
2178 |
msgid "Post Options:"
|
2179 |
msgstr ""
|
2180 |
|
2181 |
-
#: inc/widgets/class-dpsp-top-shared-posts.php:
|
2182 |
msgid "Number of posts to show: "
|
2183 |
msgstr ""
|
2184 |
|
2185 |
-
#: inc/widgets/class-dpsp-top-shared-posts.php:
|
2186 |
msgid "Display featured image:"
|
2187 |
msgstr ""
|
2188 |
|
2189 |
-
#: inc/widgets/class-dpsp-top-shared-posts.php:
|
2190 |
msgid "Featured image size: "
|
2191 |
msgstr ""
|
2192 |
|
2193 |
-
#: inc/widgets/class-dpsp-top-shared-posts.php:
|
2194 |
msgid "Display post excerpt:"
|
2195 |
msgstr ""
|
2196 |
|
2197 |
-
#: inc/widgets/class-dpsp-top-shared-posts.php:
|
2198 |
msgid "Display post total share count:"
|
2199 |
msgstr ""
|
2 |
# This file is distributed under the GPL2.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Grow Social Pro by Mediavine 2.16.0\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/project\n"
|
7 |
"Last-Translator: \n"
|
8 |
"Language-Team: \n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"POT-Creation-Date: 2022-03-10T23:25:31+00:00\n"
|
13 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
+
"X-Generator: WP-CLI 2.6.0\n"
|
15 |
"X-Domain: social-pug\n"
|
16 |
|
17 |
#. Plugin Name of the plugin
|
18 |
+
#: inc/class-social-pug.php:531
|
19 |
msgid "Grow Social Pro by Mediavine"
|
20 |
msgstr ""
|
21 |
|
22 |
#. Plugin URI of the plugin
|
23 |
+
#. Author URI of the plugin
|
24 |
msgid "https://marketplace.mediavine.com/grow-social-pro/"
|
25 |
msgstr ""
|
26 |
|
32 |
msgid "Mediavine"
|
33 |
msgstr ""
|
34 |
|
35 |
+
#: inc/admin/admin-metaboxes.php:30
|
|
|
|
|
|
|
|
|
36 |
msgid "Grow: Share Options"
|
37 |
msgstr ""
|
38 |
|
39 |
+
#: inc/admin/admin-metaboxes.php:32
|
40 |
msgid "Grow: Share Statistics"
|
41 |
msgstr ""
|
42 |
|
43 |
+
#: inc/admin/admin-metaboxes.php:36
|
44 |
msgid "Grow: Debug Log"
|
45 |
msgstr ""
|
46 |
|
47 |
+
#: inc/admin/admin-metaboxes.php:73
|
48 |
msgid "Social Media Image"
|
49 |
msgstr ""
|
50 |
|
51 |
+
#: inc/admin/admin-metaboxes.php:74
|
52 |
msgid "Add an image that will populate the \"og:image\" Open Graph meta tag. For maximum exposure on Facebook, Google, or LinkedIn we recommend an image size of 1200px X 630px."
|
53 |
msgstr ""
|
54 |
|
55 |
+
#: inc/admin/admin-metaboxes.php:99
|
56 |
+
#: inc/admin/admin-metaboxes.php:167
|
57 |
+
#: inc/functions-admin.php:275
|
58 |
msgid "Select Image"
|
59 |
msgstr ""
|
60 |
|
61 |
+
#: inc/admin/admin-metaboxes.php:100
|
62 |
+
#: inc/admin/admin-metaboxes.php:168
|
63 |
+
#: inc/functions-admin.php:276
|
64 |
msgid "Remove Image"
|
65 |
msgstr ""
|
66 |
|
67 |
+
#: inc/admin/admin-metaboxes.php:115
|
68 |
msgid "Social Media Title"
|
69 |
msgstr ""
|
70 |
|
71 |
+
#: inc/admin/admin-metaboxes.php:115
|
72 |
+
#: inc/admin/admin-metaboxes.php:128
|
73 |
+
#: inc/admin/admin-metaboxes.php:183
|
74 |
+
#: inc/admin/admin-metaboxes.php:195
|
75 |
+
#: inc/admin/admin-metaboxes.php:214
|
76 |
msgid "Characters Remaining"
|
77 |
msgstr ""
|
78 |
|
79 |
+
#: inc/admin/admin-metaboxes.php:116
|
80 |
msgid "Add a title that will populate the \"og:title\" Open Graph meta tag. This will be used when users share your content on Facebook, Google+ or LinkedIn. The title of the post will be used if this field is empty."
|
81 |
msgstr ""
|
82 |
|
83 |
+
#: inc/admin/admin-metaboxes.php:118
|
84 |
msgid "Write a social media title..."
|
85 |
msgstr ""
|
86 |
|
87 |
+
#: inc/admin/admin-metaboxes.php:128
|
88 |
msgid "Social Media Description"
|
89 |
msgstr ""
|
90 |
|
91 |
+
#: inc/admin/admin-metaboxes.php:129
|
92 |
msgid "Add a description that will populate the \"og:description\" Open Graph meta tag. This will be used when users share your content on Facebook, Google+ or LinkedIn."
|
93 |
msgstr ""
|
94 |
|
95 |
+
#: inc/admin/admin-metaboxes.php:131
|
96 |
msgid "Write a social media description..."
|
97 |
msgstr ""
|
98 |
|
99 |
+
#: inc/admin/admin-metaboxes.php:141
|
100 |
msgid "Pinterest Image"
|
101 |
msgstr ""
|
102 |
|
103 |
+
#: inc/admin/admin-metaboxes.php:142
|
104 |
msgid "Add an image that will be used when this post is shared on Pinterest. For maximum exposure we recommend using an image that has a 2:3 aspect ratio, for example 800px X 1200px."
|
105 |
msgstr ""
|
106 |
|
107 |
+
#: inc/admin/admin-metaboxes.php:183
|
108 |
msgid "Pinterest Title"
|
109 |
msgstr ""
|
110 |
|
111 |
+
#: inc/admin/admin-metaboxes.php:184
|
112 |
msgid "Write a custom Pinterest title..."
|
113 |
msgstr ""
|
114 |
|
115 |
+
#: inc/admin/admin-metaboxes.php:185
|
116 |
+
msgid "Please note: Pinterest has unofficially switched from custom titles to Open Graph metadata to pull titles. You can add og:title using the Social Media Title field. The Custom Title field will be visible to show historic values."
|
117 |
msgstr ""
|
118 |
|
119 |
+
#: inc/admin/admin-metaboxes.php:195
|
120 |
msgid "Pinterest Description"
|
121 |
msgstr ""
|
122 |
|
123 |
+
#: inc/admin/admin-metaboxes.php:196
|
124 |
msgid "Add a customized message that will be used when this post is shared on Pinterest."
|
125 |
msgstr ""
|
126 |
|
127 |
+
#: inc/admin/admin-metaboxes.php:198
|
128 |
msgid "Write a custom Pinterest description..."
|
129 |
msgstr ""
|
130 |
|
131 |
+
#: inc/admin/admin-metaboxes.php:199
|
132 |
+
msgid "Please Note: Pinterest has unofficially switched from custom descriptions to Open Graph metadata to pull descriptions. You can add the og:description using the Social Media Description field. The Custom Descriptions field will be visible to show historic values."
|
133 |
+
msgstr ""
|
134 |
+
|
135 |
+
#: inc/admin/admin-metaboxes.php:214
|
136 |
msgid "Custom Tweet"
|
137 |
msgstr ""
|
138 |
|
139 |
+
#: inc/admin/admin-metaboxes.php:215
|
140 |
msgid "Add a customized tweet that will be used when this post is shared on Twitter."
|
141 |
msgstr ""
|
142 |
|
143 |
+
#: inc/admin/admin-metaboxes.php:217
|
144 |
msgid "Write a custom tweet..."
|
145 |
msgstr ""
|
146 |
|
147 |
+
#: inc/admin/admin-metaboxes.php:218
|
148 |
msgid "Maximum characters is based off of the Twitter maximum, the post permalink, and whether your Twitter username is included in the tweet."
|
149 |
msgstr ""
|
150 |
|
151 |
+
#: inc/admin/admin-metaboxes.php:233
|
152 |
msgid "Pinterest Hidden Images"
|
153 |
msgstr ""
|
154 |
|
155 |
+
#: inc/admin/admin-metaboxes.php:253
|
156 |
msgid "Remove image"
|
157 |
msgstr ""
|
158 |
|
159 |
+
#: inc/admin/admin-metaboxes.php:265
|
160 |
msgid "Add images"
|
161 |
msgstr ""
|
162 |
|
163 |
+
#: inc/admin/admin-metaboxes.php:277
|
164 |
msgid "Display Options"
|
165 |
msgstr ""
|
166 |
|
167 |
+
#: inc/admin/admin-metaboxes.php:279
|
168 |
msgid "Hide buttons for the"
|
169 |
msgstr ""
|
170 |
|
171 |
+
#: inc/admin/admin-metaboxes.php:282
|
172 |
msgid "Show buttons for the"
|
173 |
msgstr ""
|
174 |
|
175 |
+
#: inc/admin/admin-metaboxes.php:314
|
176 |
msgid "Network"
|
177 |
msgstr ""
|
178 |
|
179 |
+
#: inc/admin/admin-metaboxes.php:315
|
180 |
+
#: inc/functions-admin.php:456
|
181 |
msgid "Shares"
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: inc/admin/admin-metaboxes.php:361
|
185 |
msgid "Total shares"
|
186 |
msgstr ""
|
187 |
|
188 |
+
#: inc/admin/admin-metaboxes.php:393
|
|
|
|
|
|
|
|
|
189 |
#: inc/tools/misc-social-shares-recovery/views/view-submenu-page-settings-general-tab-social-shares-recovery.php:5
|
190 |
msgid "Social Shares Recovery"
|
191 |
msgstr ""
|
192 |
|
193 |
+
#: inc/admin/admin-metaboxes.php:395
|
194 |
msgid "If you have modified the permalink for this particular post, add the previous URL variations for the post, so that Grow can recover the social shares for each individual URL."
|
195 |
msgstr ""
|
196 |
|
197 |
+
#: inc/admin/admin-metaboxes.php:401
|
198 |
msgid "If you have ever modified the permalink for this particular post and want to recover lost shares for any previous links this post had, add the old links by pressing the Add Link button."
|
199 |
msgstr ""
|
200 |
|
201 |
+
#: inc/admin/admin-metaboxes.php:413
|
202 |
+
#: inc/admin/admin-metaboxes.php:429
|
203 |
+
#: inc/functions-admin.php:395
|
204 |
msgid "Remove"
|
205 |
msgstr ""
|
206 |
|
207 |
+
#: inc/admin/admin-metaboxes.php:420
|
208 |
msgid "Add Link"
|
209 |
msgstr ""
|
210 |
|
286 |
msgstr ""
|
287 |
|
288 |
#: inc/admin/submenu-page-settings.php:7
|
289 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:19
|
290 |
#: inc/admin/views/view-submenu-page-settings.php:3
|
291 |
+
#: inc/class-social-pug.php:491
|
292 |
+
#: inc/functions-admin.php:134
|
293 |
msgid "Settings"
|
294 |
msgstr ""
|
295 |
|
302 |
msgid "Social Identity"
|
303 |
msgstr ""
|
304 |
|
305 |
+
#: inc/admin/submenu-page-settings.php:125
|
306 |
msgid "Serial key is valid."
|
307 |
msgstr ""
|
308 |
|
309 |
+
#: inc/admin/submenu-page-settings.php:128
|
310 |
msgid "Serial key is invalid or expired."
|
311 |
msgstr ""
|
312 |
|
466 |
msgid "Track shared links with the help of the UTM parameters."
|
467 |
msgstr ""
|
468 |
|
469 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:72
|
470 |
msgid "Google Analytics UTM Tracking"
|
471 |
msgstr ""
|
472 |
|
473 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:77
|
474 |
msgid "Activate UTM Tracking"
|
475 |
msgstr ""
|
476 |
|
477 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:78
|
478 |
msgid "Campaign Source"
|
479 |
msgstr ""
|
480 |
|
481 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:78
|
482 |
msgid "Use utm_source to identify a search engine, newsletter name, or other source. Using \"{{network_name}}\" as value here will add the name of the social network button as the value of the utm_source parameter."
|
483 |
msgstr ""
|
484 |
|
485 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:79
|
486 |
msgid "Campaign Medium"
|
487 |
msgstr ""
|
488 |
|
489 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:79
|
490 |
msgid "Use utm_medium to identify a medium such as email or social."
|
491 |
msgstr ""
|
492 |
|
493 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:80
|
494 |
msgid "Campaign Name"
|
495 |
msgstr ""
|
496 |
|
497 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:80
|
498 |
msgid "Use utm_campaign to identify a specific product promotion or strategic campaign."
|
499 |
msgstr ""
|
500 |
|
501 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:89
|
502 |
#: inc/admin/views/view-submenu-page-settings.php:33
|
503 |
msgid "Misc"
|
504 |
msgstr ""
|
505 |
|
506 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:98
|
507 |
#: inc/admin/views/view-submenu-page-settings.php:40
|
508 |
msgid "Facebook Share Counts Provider"
|
509 |
msgstr ""
|
510 |
|
511 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:100
|
512 |
+
#: inc/class-social-pug.php:326
|
513 |
+
#: inc/class-social-pug.php:528
|
514 |
msgid "Grow Social by Mediavine"
|
515 |
msgstr ""
|
516 |
|
517 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:101
|
518 |
#: inc/admin/views/view-submenu-page-settings.php:42
|
519 |
msgid "Facebook Graph API"
|
520 |
msgstr ""
|
521 |
|
522 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:119
|
523 |
#: inc/admin/views/view-submenu-page-settings.php:57
|
524 |
msgid "Authorized"
|
525 |
msgstr ""
|
526 |
|
527 |
#. translators: %s
|
528 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:122
|
529 |
msgid "- Expires on %s"
|
530 |
msgstr ""
|
531 |
|
532 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:130
|
533 |
#: inc/admin/views/view-submenu-page-settings.php:68
|
534 |
msgid "Authorization Expired"
|
535 |
msgstr ""
|
536 |
|
537 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:131
|
538 |
msgid "- Please reauthorize."
|
539 |
msgstr ""
|
540 |
|
541 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:150
|
542 |
#: inc/admin/views/view-submenu-page-settings.php:81
|
543 |
msgid "Reauthorize Grow"
|
544 |
msgstr ""
|
545 |
|
546 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:171
|
547 |
#: inc/admin/views/view-submenu-page-settings.php:97
|
548 |
msgid "Authorize Grow"
|
549 |
msgstr ""
|
550 |
|
551 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:177
|
552 |
#: inc/admin/views/view-submenu-page-settings.php:103
|
553 |
msgid "Facebook App ID"
|
554 |
msgstr ""
|
555 |
|
556 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:178
|
557 |
#: inc/admin/views/view-submenu-page-settings.php:104
|
558 |
msgid "Facebook App Secret"
|
559 |
msgstr ""
|
560 |
|
561 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:180
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
562 |
#: inc/admin/views/view-submenu-page-settings.php:105
|
563 |
msgid "Disable Open Graph Meta Tags"
|
564 |
msgstr ""
|
565 |
|
566 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:181
|
567 |
msgid "WhatsApp only on mobile devices"
|
568 |
msgstr ""
|
569 |
|
570 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:181
|
571 |
msgid "The WhatsApp share button will be displayed on all devices by default. By checking this option the WhatsApp button will only be shown on mobile devices."
|
572 |
msgstr ""
|
573 |
|
574 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:182
|
575 |
msgid "Enable System Debugger"
|
576 |
msgstr ""
|
577 |
|
578 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:183
|
579 |
msgid "Use jQuery JavaScript"
|
580 |
msgstr ""
|
581 |
|
582 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:186
|
583 |
+
msgid "CLS Optimization"
|
584 |
+
msgstr ""
|
585 |
+
|
586 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:191
|
587 |
msgid "Refresh all share counts"
|
588 |
msgstr ""
|
589 |
|
590 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:204
|
591 |
msgid "Register Version"
|
592 |
msgstr ""
|
593 |
|
594 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:214
|
595 |
msgid "Previous Social Pug Serial"
|
596 |
msgstr ""
|
597 |
|
598 |
#. translators: %s Plugin Name
|
599 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:220
|
600 |
msgid "%s License"
|
601 |
msgstr ""
|
602 |
|
603 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:239
|
604 |
msgid "Facebook Username"
|
605 |
msgstr ""
|
606 |
|
607 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:240
|
608 |
#: inc/admin/views/view-submenu-page-settings.php:22
|
609 |
msgid "Twitter Username"
|
610 |
msgstr ""
|
611 |
|
612 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:241
|
613 |
#: inc/admin/views/view-submenu-page-settings.php:23
|
614 |
msgid "Add Twitter Username to all tweets"
|
615 |
msgstr ""
|
616 |
|
617 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:242
|
618 |
msgid "Pinterest Username"
|
619 |
msgstr ""
|
620 |
|
621 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:243
|
622 |
msgid "LinkedIn Username"
|
623 |
msgstr ""
|
624 |
|
625 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:244
|
626 |
msgid "Reddit Username"
|
627 |
msgstr ""
|
628 |
|
629 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:245
|
630 |
msgid "VK Username"
|
631 |
msgstr ""
|
632 |
|
633 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:246
|
634 |
msgid "Tumblr Username"
|
635 |
msgstr ""
|
636 |
|
637 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:247
|
638 |
msgid "Instagram Username"
|
639 |
msgstr ""
|
640 |
|
641 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:248
|
642 |
msgid "YouTube Channel"
|
643 |
msgstr ""
|
644 |
|
645 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:249
|
646 |
msgid "Vimeo Username"
|
647 |
msgstr ""
|
648 |
|
649 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:250
|
650 |
msgid "SoundCloud Username"
|
651 |
msgstr ""
|
652 |
|
653 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:251
|
654 |
msgid "Twitch Username"
|
655 |
msgstr ""
|
656 |
|
657 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:252
|
658 |
msgid "Yummly Username"
|
659 |
msgstr ""
|
660 |
|
661 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:253
|
662 |
msgid "Behance Username"
|
663 |
msgstr ""
|
664 |
|
665 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:254
|
666 |
msgid "Xing Username"
|
667 |
msgstr ""
|
668 |
|
669 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:255
|
670 |
msgid "Github Username"
|
671 |
msgstr ""
|
672 |
|
673 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:256
|
674 |
msgid "Telegram Username/Channel"
|
675 |
msgstr ""
|
676 |
|
677 |
+
#: inc/admin/views/view-submenu-page-settings-pro.php:257
|
678 |
msgid "Medium Username"
|
679 |
msgstr ""
|
680 |
|
853 |
msgstr ""
|
854 |
|
855 |
#: inc/admin/views/view-submenu-page-sidebar.php:85
|
856 |
+
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:180
|
857 |
+
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:215
|
858 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:191
|
859 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:150
|
860 |
msgid "Buttons Share Counts"
|
861 |
msgstr ""
|
862 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
863 |
#: inc/admin/views/view-submenu-page-sidebar.php:92
|
864 |
+
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:187
|
865 |
+
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:222
|
866 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:198
|
867 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:157
|
868 |
msgid "Show total share count"
|
869 |
msgstr ""
|
870 |
|
871 |
#: inc/admin/views/view-submenu-page-sidebar.php:92
|
872 |
+
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:187
|
873 |
+
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:222
|
874 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:198
|
875 |
msgid "Display the share count for all social networks."
|
876 |
msgstr ""
|
877 |
|
878 |
#: inc/admin/views/view-submenu-page-sidebar.php:96
|
879 |
+
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:194
|
880 |
+
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:229
|
881 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:205
|
882 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:164
|
883 |
msgid "Total count position"
|
884 |
msgstr ""
|
885 |
|
886 |
#: inc/admin/views/view-submenu-page-sidebar.php:97
|
887 |
+
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:196
|
888 |
+
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:231
|
889 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:207
|
890 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:166
|
891 |
msgid "Before Buttons"
|
892 |
msgstr ""
|
893 |
|
894 |
#: inc/admin/views/view-submenu-page-sidebar.php:98
|
895 |
+
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:197
|
896 |
+
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:232
|
897 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:208
|
898 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:167
|
899 |
msgid "After Buttons"
|
900 |
msgstr ""
|
901 |
|
902 |
#: inc/admin/views/view-submenu-page-sidebar.php:103
|
903 |
+
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:205
|
904 |
+
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:240
|
905 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:216
|
906 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:175
|
907 |
msgid "Share count round"
|
908 |
msgstr ""
|
909 |
|
910 |
#: inc/admin/views/view-submenu-page-sidebar.php:103
|
911 |
+
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:205
|
912 |
+
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:240
|
913 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:216
|
914 |
msgid "If the share count for each network is bigger than 1000 it will be rounded to one decimal ( eg. 1267 will show as 1.2k ). Applies to Total Share Counts as well."
|
915 |
msgstr ""
|
916 |
|
917 |
#: inc/admin/views/view-submenu-page-sidebar.php:113
|
918 |
+
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:235
|
919 |
+
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:271
|
920 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:352
|
921 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:208
|
922 |
msgid "Post Type Display Settings"
|
934 |
msgid "Misc Tools"
|
935 |
msgstr ""
|
936 |
|
937 |
+
#: inc/class-admin-notices.php:107
|
938 |
msgid "Settings saved."
|
939 |
msgstr ""
|
940 |
|
941 |
+
#: inc/class-admin-notices.php:108
|
942 |
msgid "Settings imported."
|
943 |
msgstr ""
|
944 |
|
945 |
+
#: inc/class-admin-notices.php:109
|
946 |
msgid "Please select an import file."
|
947 |
msgstr ""
|
948 |
|
949 |
+
#: inc/class-admin-notices.php:110
|
950 |
msgid "Import file is not valid."
|
951 |
msgstr ""
|
952 |
|
953 |
+
#: inc/class-admin-notices.php:111
|
954 |
msgid "Grow Social by Mediavine App authorized successfully."
|
955 |
msgstr ""
|
956 |
|
957 |
#. translators: %1$s is replaced by admin url, %2$s is replaced by store url
|
958 |
+
#: inc/class-admin-notices.php:135
|
959 |
msgid "Your <strong>Grow Social Pro by Mediavine</strong> license key is empty. Please <a href=\"%1$s\">register your copy</a> to receive automatic updates and support. <br /><br /> Need a license key? <a class=\"dpsp-get-license button button-primary\" target=\"_blank\" href=\"%2$s\">Get your license here</a>"
|
960 |
msgstr ""
|
961 |
|
962 |
#. translators: %s Branding name, free or pro version
|
963 |
+
#: inc/class-admin-notices.php:178
|
964 |
+
#: inc/class-admin-notices.php:209
|
|
|
965 |
msgid "%s Important Notification"
|
966 |
msgstr ""
|
967 |
|
968 |
#. translators: %s Branding name, free or pro version
|
969 |
+
#: inc/class-admin-notices.php:180
|
970 |
msgid "Your %s Facebook app authorization has expired. Please reauthorize the app for continued Facebook share counts functionality."
|
971 |
msgstr ""
|
972 |
|
973 |
#. translators: %s Branding name, free or pro version
|
974 |
+
#: inc/class-admin-notices.php:181
|
975 |
msgid "Reauthorize Grow Social by Mediavine App"
|
976 |
msgstr ""
|
977 |
|
978 |
#. translators: %s Branding name, free or pro version
|
979 |
+
#: inc/class-admin-notices.php:211
|
980 |
msgid "As you may already know, Google+ has shut down on April 2nd. As a result, with this latest update, %s no longer supports Google+ functionality."
|
981 |
msgstr ""
|
982 |
|
983 |
#. translators: %s Branding name, free or pro version
|
984 |
+
#: inc/class-admin-notices.php:212
|
985 |
msgid "Please make sure to verify your settings, your widgets, your shortcodes, and remove any Google+ buttons you may have placed within your website."
|
986 |
msgstr ""
|
987 |
|
988 |
+
#: inc/class-admin-notices.php:213
|
989 |
+
#: inc/class-admin-notices.php:246
|
990 |
+
#: inc/class-admin-notices.php:287
|
991 |
msgid "Thank you, I understand."
|
992 |
msgstr ""
|
993 |
|
994 |
+
#: inc/class-admin-notices.php:242
|
|
|
|
|
|
|
|
|
|
|
995 |
msgid "Social Pug is now Grow Social by Mediavine!"
|
996 |
msgstr ""
|
997 |
|
998 |
+
#: inc/class-admin-notices.php:243
|
999 |
msgid "You're going to notice some new paint and a new name today and we wanted to let you know what that's all about. The short version is that Grow Social by Mediavine is the same plugin you know and love but with a new, larger development team!"
|
1000 |
msgstr ""
|
1001 |
|
1002 |
+
#: inc/class-admin-notices.php:244
|
1003 |
msgid "Check out the blog post"
|
1004 |
msgstr ""
|
1005 |
|
1006 |
+
#: inc/class-admin-notices.php:244
|
1007 |
msgid " for all the details on this development and our exciting plans to continue Growing an already awesome plugin."
|
1008 |
msgstr ""
|
1009 |
|
1010 |
+
#: inc/class-admin-notices.php:245
|
1011 |
msgid "(Those who are familiar with Mediavine for our full-service ad management, rest assured that this plugin is totally independent of ads and available to anyone and everyone who wants to Grow their social presence.)"
|
1012 |
msgstr ""
|
1013 |
|
1014 |
+
#: inc/class-admin-notices.php:271
|
1015 |
msgid "<strong>Your Grow Social Pro by Mediavine JavaScript has been optimized!</strong>"
|
1016 |
msgstr ""
|
1017 |
|
1018 |
+
#: inc/class-admin-notices.php:273
|
1019 |
msgid "The Legacy jQuery version of our JavaScript is now deprecated, and all users have been switched to the Optimized JavaScipt. "
|
1020 |
msgstr ""
|
1021 |
|
1022 |
#. translators: Link to contact Mediavine
|
1023 |
+
#: inc/class-admin-notices.php:276
|
1024 |
msgid "If you find an issue with the optimized settings where you need to revert to the jQuery JavaScript, %s. "
|
1025 |
msgstr ""
|
1026 |
|
1027 |
#. translators: Link to contact Mediavine
|
1028 |
+
#: inc/class-admin-notices.php:277
|
1029 |
msgid "please contact Mediavine"
|
1030 |
msgstr ""
|
1031 |
|
1032 |
#. translators: Link to settings
|
1033 |
+
#: inc/class-admin-notices.php:281
|
1034 |
msgid "You can revert the JavaScript so on the %s."
|
1035 |
msgstr ""
|
1036 |
|
1037 |
#. translators: Link to settings
|
1038 |
+
#: inc/class-admin-notices.php:282
|
1039 |
msgid "Grow Settings page under Misc"
|
1040 |
msgstr ""
|
1041 |
|
1042 |
+
#: inc/class-admin-notices.php:285
|
1043 |
msgid "<strong>After July 2021, the jQuery JavaScript will be removed completely.</strong>"
|
1044 |
msgstr ""
|
1045 |
|
1046 |
+
#: inc/class-admin-notices.php:309
|
1047 |
msgid "Grow Social by Mediavine Notification"
|
1048 |
msgstr ""
|
1049 |
|
1050 |
+
#: inc/class-admin-notices.php:310
|
1051 |
msgid "Looking to get started with Grow Social? Click the button below for a step by step guide to setting everything up!"
|
1052 |
msgstr ""
|
1053 |
|
1054 |
+
#: inc/class-admin-notices.php:311
|
1055 |
msgid "Learn how to set up Grow Social"
|
1056 |
msgstr ""
|
1057 |
|
1058 |
#. translators: %s
|
1059 |
+
#: inc/class-dpsp-network-buttons-outputter.php:230
|
1060 |
msgid "Share on %s"
|
1061 |
msgstr ""
|
1062 |
|
1063 |
+
#: inc/class-dpsp-network-buttons-outputter.php:233
|
1064 |
msgid "Save to Pinterest"
|
1065 |
msgstr ""
|
1066 |
|
1067 |
+
#: inc/class-dpsp-network-buttons-outputter.php:237
|
1068 |
msgid "Send over email"
|
1069 |
msgstr ""
|
1070 |
|
1071 |
+
#: inc/class-dpsp-network-buttons-outputter.php:241
|
1072 |
msgid "Print this webpage"
|
1073 |
msgstr ""
|
1074 |
|
1075 |
+
#: inc/class-dpsp-network-buttons-outputter.php:245
|
1076 |
msgid "Save on Grow.me"
|
1077 |
msgstr ""
|
1078 |
|
1079 |
#. translators: %s
|
1080 |
+
#: inc/class-dpsp-network-buttons-outputter.php:269
|
1081 |
msgid "Follow on %s"
|
1082 |
msgstr ""
|
1083 |
|
1084 |
+
#: inc/class-social-pug.php:326
|
1085 |
msgid "Grow"
|
1086 |
msgstr ""
|
1087 |
|
1088 |
+
#: inc/functions-admin.php:139
|
1089 |
msgid "Active"
|
1090 |
msgstr ""
|
1091 |
|
1092 |
+
#: inc/functions-admin.php:139
|
1093 |
msgid "Inactive"
|
1094 |
msgstr ""
|
1095 |
|
1096 |
+
#: inc/functions-admin.php:150
|
1097 |
msgid "Learn More"
|
1098 |
msgstr ""
|
1099 |
|
1100 |
+
#: inc/functions-admin.php:352
|
1101 |
msgid "Apply Selection"
|
1102 |
msgstr ""
|
1103 |
|
1104 |
+
#: inc/functions-admin.php:389
|
1105 |
msgid "This button has no label text."
|
1106 |
msgstr ""
|
1107 |
|
1108 |
+
#: inc/functions-admin.php:394
|
1109 |
+
msgid "Edit Label"
|
1110 |
+
msgstr ""
|
1111 |
+
|
1112 |
+
#: inc/functions-admin.php:569
|
1113 |
msgid "Skyrocket your social media marketing"
|
1114 |
msgstr ""
|
1115 |
|
1116 |
+
#: inc/functions-admin.php:570
|
1117 |
msgid "Force a custom image to be shared on Pinterest when using the Pinterest button."
|
1118 |
msgstr ""
|
1119 |
|
1120 |
+
#: inc/functions-admin.php:571
|
1121 |
msgid "Add unlimited hidden Pinterest images to your posts and pages."
|
1122 |
msgstr ""
|
1123 |
|
1124 |
+
#: inc/functions-admin.php:572
|
1125 |
msgid "Make your website mobile-friendly with sticky footer social share buttons."
|
1126 |
msgstr ""
|
1127 |
|
1128 |
+
#: inc/functions-admin.php:573
|
1129 |
msgid "Trigger a pop-up with the social sharing buttons when a user starts to scroll, arrives at the bottom of a post or begins to leave your site."
|
1130 |
msgstr ""
|
1131 |
|
1132 |
+
#: inc/functions-admin.php:574
|
1133 |
msgid "Attract users to your social media profiles with our Follow Buttons Widget and follow shortcode. You can place it in your sidebar, template files, or anywhere on your site. Buttons include Facebook, Twitter, Pinterest, LinkedIn, Reddit, Instagram, YouTube, Vimeo, SoundCloud, Twitch, Yummly, and Behance."
|
1134 |
msgstr ""
|
1135 |
|
1136 |
+
#: inc/functions-admin.php:575
|
1137 |
msgid "Display Social Share counts for Facebook, Twitter, Pinterest, and Reddit."
|
1138 |
msgstr ""
|
1139 |
|
1140 |
+
#: inc/functions-admin.php:576
|
1141 |
msgid "Add a \"Pin It\" button that appears when visitors hover your in-post images."
|
1142 |
msgstr ""
|
1143 |
|
1144 |
+
#: inc/functions-admin.php:577
|
1145 |
msgid "Add custom pin descriptions and repin IDs to your in-post images."
|
1146 |
msgstr ""
|
1147 |
|
1148 |
+
#: inc/functions-admin.php:578
|
1149 |
msgid "Recover your lost social share counts if you've ever changed your permalink structure."
|
1150 |
msgstr ""
|
1151 |
|
1152 |
+
#: inc/functions-admin.php:579
|
1153 |
msgid "Add unlimited \"Click to Tweet\" boxes so that your users can share your content on Twitter with just one click."
|
1154 |
msgstr ""
|
1155 |
|
1156 |
+
#: inc/functions-admin.php:580
|
1157 |
msgid "Get immediate help with priority support."
|
1158 |
msgstr ""
|
1159 |
|
1160 |
+
#: inc/functions-admin.php:581
|
1161 |
msgid "And much, much more..."
|
1162 |
msgstr ""
|
1163 |
|
1164 |
+
#: inc/functions-admin.php:584
|
1165 |
msgid "Upgrade to Pro"
|
1166 |
msgstr ""
|
1167 |
|
1173 |
msgid "Once every week"
|
1174 |
msgstr ""
|
1175 |
|
1176 |
+
#: inc/functions-frontend.php:43
|
1177 |
msgid "shares"
|
1178 |
msgstr ""
|
1179 |
|
1180 |
+
#: inc/functions.php:475
|
1181 |
msgid "Sharing is Caring"
|
1182 |
msgstr ""
|
1183 |
|
1184 |
+
#: inc/functions.php:476
|
1185 |
msgid "Help spread the word. You're awesome for doing it!"
|
1186 |
msgstr ""
|
1187 |
|
1188 |
+
#: inc/tools/follow-widget/class-dpsp-social-media-follow-buttons.php:19
|
1189 |
msgid "Grow Social by Mediavine: Social Media Follow Buttons"
|
1190 |
msgstr ""
|
1191 |
|
1192 |
+
#: inc/tools/follow-widget/class-dpsp-social-media-follow-buttons.php:20
|
1193 |
msgid "Display social media follow buttons."
|
1194 |
msgstr ""
|
1195 |
|
1196 |
+
#: inc/tools/follow-widget/class-dpsp-social-media-follow-buttons.php:63
|
1197 |
+
#: inc/widgets/class-dpsp-top-shared-posts.php:164
|
1198 |
msgid "Title:"
|
1199 |
msgstr ""
|
1200 |
|
1201 |
+
#: inc/tools/follow-widget/class-dpsp-social-media-follow-buttons.php:69
|
1202 |
msgid "Description:"
|
1203 |
msgstr ""
|
1204 |
|
1205 |
+
#: inc/tools/follow-widget/class-dpsp-social-media-follow-buttons.php:75
|
1206 |
msgid "Buttons Settings:"
|
1207 |
msgstr ""
|
1208 |
|
1209 |
+
#: inc/tools/follow-widget/class-dpsp-social-media-follow-buttons.php:76
|
1210 |
msgid "You can edit the look and feel of the buttons by pressing the button below:"
|
1211 |
msgstr ""
|
1212 |
|
1213 |
+
#: inc/tools/follow-widget/class-dpsp-social-media-follow-buttons.php:77
|
1214 |
msgid "Buttons Settings"
|
1215 |
msgstr ""
|
1216 |
|
1317 |
msgstr ""
|
1318 |
|
1319 |
#: inc/tools/follow-widget/views/view-submenu-page-follow-widget.php:211
|
1320 |
+
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:218
|
1321 |
+
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:254
|
1322 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:230
|
1323 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:190
|
1324 |
msgid "Buttons Custom Colors"
|
1325 |
msgstr ""
|
1326 |
|
1327 |
#: inc/tools/follow-widget/views/view-submenu-page-follow-widget.php:216
|
1328 |
+
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:223
|
1329 |
+
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:259
|
1330 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:235
|
1331 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:195
|
1332 |
msgid "Buttons color"
|
1333 |
msgstr ""
|
1334 |
|
1335 |
#: inc/tools/follow-widget/views/view-submenu-page-follow-widget.php:217
|
1336 |
+
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:224
|
1337 |
+
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:260
|
1338 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:236
|
1339 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:196
|
1340 |
msgid "Buttons hover color"
|
1613 |
msgid "Will animate the call to action icon when the user hovers over the Click to Tweet box."
|
1614 |
msgstr ""
|
1615 |
|
1616 |
+
#: inc/tools/share-floating-sidebar/class-floating-sidebar.php:17
|
1617 |
#: inc/tools/share-floating-sidebar/share-floating-sidebar.php:12
|
1618 |
#: inc/tools/share-floating-sidebar/submenu-page-sidebar.php:12
|
1619 |
msgid "Floating Sidebar"
|
1671 |
msgid "Hides the floating sidebar when it reaches this element on the page. By default, an empty value here will make it so the floating sidebar will not hide when it reaches the footer area."
|
1672 |
msgstr ""
|
1673 |
|
1674 |
+
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:207
|
1675 |
+
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:242
|
1676 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:218
|
1677 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:177
|
1678 |
msgid "Minimum global share count"
|
1679 |
msgstr ""
|
1680 |
|
1681 |
+
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:207
|
1682 |
+
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:242
|
1683 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:218
|
1684 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:177
|
1685 |
msgid "Display share counts only if the total share count is higher than this value."
|
1686 |
msgstr ""
|
1687 |
|
1688 |
+
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:209
|
1689 |
+
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:244
|
1690 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:220
|
1691 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:179
|
1692 |
msgid "Minimum individual share count"
|
1693 |
msgstr ""
|
1694 |
|
1695 |
+
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:209
|
1696 |
+
#: inc/tools/share-inline-content/views/view-submenu-page-content.php:244
|
1697 |
#: inc/tools/share-pop-up/views/view-submenu-page-pop-up.php:220
|
1698 |
#: inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php:179
|
1699 |
msgid "Display share counts for an individual network only if the share count for that network is higher than this value."
|
1700 |
msgstr ""
|
1701 |
|
1702 |
+
#: inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php:249
|
1703 |
msgid "Save Changes"
|
1704 |
msgstr ""
|
1705 |
|
1719 |
msgid "Save"
|
1720 |
msgstr ""
|
1721 |
|
1722 |
+
#: inc/tools/share-images-pinterest/share-images-pinterest.php:645
|
1723 |
msgid "Grow Social by Mediavine: Pin Title"
|
1724 |
msgstr ""
|
1725 |
|
1726 |
+
#: inc/tools/share-images-pinterest/share-images-pinterest.php:652
|
1727 |
msgid "Grow Social by Mediavine: Pin Description"
|
1728 |
msgstr ""
|
1729 |
|
1730 |
+
#: inc/tools/share-images-pinterest/share-images-pinterest.php:659
|
1731 |
msgid "Grow Social by Mediavine: Pin Repin ID"
|
1732 |
msgstr ""
|
1733 |
|
1734 |
+
#: inc/tools/share-images-pinterest/share-images-pinterest.php:664
|
1735 |
msgid "Grow Social by Mediavine: Disable Pinning"
|
1736 |
msgstr ""
|
1737 |
|
1738 |
+
#: inc/tools/share-images-pinterest/share-images-pinterest.php:665
|
1739 |
msgid "No"
|
1740 |
msgstr ""
|
1741 |
|
1742 |
+
#: inc/tools/share-images-pinterest/share-images-pinterest.php:665
|
1743 |
msgid "Yes"
|
1744 |
msgstr ""
|
1745 |
|
1927 |
msgid "Post type display"
|
1928 |
msgstr ""
|
1929 |
|
1930 |
+
#: inc/tools/share-inline-content/class-inline-content.php:16
|
1931 |
#: inc/tools/share-inline-content/share-inline-content.php:11
|
1932 |
#: inc/tools/share-inline-content/submenu-page-content.php:12
|
1933 |
+
#: tests/test-admin-functions.php:129
|
1934 |
msgid "Inline Content"
|
1935 |
msgstr ""
|
1936 |
|
1966 |
msgid "By default, Grow displays the inline content buttons a single time. Some themes and plugins may cause Grow to display at an incorrect time and cause it not to appear. Enabling this setting can help with this issue."
|
1967 |
msgstr ""
|
1968 |
|
1969 |
+
#: inc/tools/share-pop-up/class-pop-up.php:16
|
1970 |
#: inc/tools/share-pop-up/share-pop-up.php:11
|
1971 |
#: inc/tools/share-pop-up/submenu-page-pop-up.php:12
|
1972 |
msgid "Pop-Up"
|
2064 |
msgid "The pop-up will appear to users once every X number of days you select. If you select \"Everytime\" the pop-up will appear for each page the user visits."
|
2065 |
msgstr ""
|
2066 |
|
2067 |
+
#: inc/tools/share-sticky-bar/class-sticky-bar.php:16
|
2068 |
#: inc/tools/share-sticky-bar/share-sticky-bar.php:12
|
2069 |
#: inc/tools/share-sticky-bar/submenu-page-sticky-bar.php:12
|
2070 |
msgid "Sticky Bar"
|
2124 |
msgid "Bar background color"
|
2125 |
msgstr ""
|
2126 |
|
2127 |
+
#: inc/widgets/class-dpsp-top-shared-posts.php:21
|
2128 |
msgid "Grow Social by Mediavine: Top Shared Posts"
|
2129 |
msgstr ""
|
2130 |
|
2131 |
+
#: inc/widgets/class-dpsp-top-shared-posts.php:22
|
2132 |
msgid "Display the most shared posts from any custom post type."
|
2133 |
msgstr ""
|
2134 |
|
2135 |
+
#: inc/widgets/class-dpsp-top-shared-posts.php:131
|
2136 |
msgid "Shares: "
|
2137 |
msgstr ""
|
2138 |
|
2139 |
+
#: inc/widgets/class-dpsp-top-shared-posts.php:170
|
2140 |
msgid "Post types:"
|
2141 |
msgstr ""
|
2142 |
|
2143 |
+
#: inc/widgets/class-dpsp-top-shared-posts.php:180
|
2144 |
msgid "Post Options:"
|
2145 |
msgstr ""
|
2146 |
|
2147 |
+
#: inc/widgets/class-dpsp-top-shared-posts.php:181
|
2148 |
msgid "Number of posts to show: "
|
2149 |
msgstr ""
|
2150 |
|
2151 |
+
#: inc/widgets/class-dpsp-top-shared-posts.php:187
|
2152 |
msgid "Display featured image:"
|
2153 |
msgstr ""
|
2154 |
|
2155 |
+
#: inc/widgets/class-dpsp-top-shared-posts.php:193
|
2156 |
msgid "Featured image size: "
|
2157 |
msgstr ""
|
2158 |
|
2159 |
+
#: inc/widgets/class-dpsp-top-shared-posts.php:205
|
2160 |
msgid "Display post excerpt:"
|
2161 |
msgstr ""
|
2162 |
|
2163 |
+
#: inc/widgets/class-dpsp-top-shared-posts.php:211
|
2164 |
msgid "Display post total share count:"
|
2165 |
msgstr ""
|
vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit176c1a369d4446f3c21d03bb975ee0b7::getLoader();
|
vendor/composer/ClassLoader.php
CHANGED
@@ -42,21 +42,75 @@ namespace Composer\Autoload;
|
|
42 |
*/
|
43 |
class ClassLoader
|
44 |
{
|
|
|
|
|
|
|
45 |
// PSR-4
|
|
|
|
|
|
|
|
|
46 |
private $prefixLengthsPsr4 = array();
|
|
|
|
|
|
|
|
|
47 |
private $prefixDirsPsr4 = array();
|
|
|
|
|
|
|
|
|
48 |
private $fallbackDirsPsr4 = array();
|
49 |
|
50 |
// PSR-0
|
|
|
|
|
|
|
|
|
51 |
private $prefixesPsr0 = array();
|
|
|
|
|
|
|
|
|
52 |
private $fallbackDirsPsr0 = array();
|
53 |
|
|
|
54 |
private $useIncludePath = false;
|
|
|
|
|
|
|
|
|
|
|
55 |
private $classMap = array();
|
|
|
|
|
56 |
private $classMapAuthoritative = false;
|
|
|
|
|
|
|
|
|
|
|
57 |
private $missingClasses = array();
|
|
|
|
|
58 |
private $apcuPrefix;
|
59 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
public function getPrefixes()
|
61 |
{
|
62 |
if (!empty($this->prefixesPsr0)) {
|
@@ -66,28 +120,47 @@ class ClassLoader
|
|
66 |
return array();
|
67 |
}
|
68 |
|
|
|
|
|
|
|
|
|
69 |
public function getPrefixesPsr4()
|
70 |
{
|
71 |
return $this->prefixDirsPsr4;
|
72 |
}
|
73 |
|
|
|
|
|
|
|
|
|
74 |
public function getFallbackDirs()
|
75 |
{
|
76 |
return $this->fallbackDirsPsr0;
|
77 |
}
|
78 |
|
|
|
|
|
|
|
|
|
79 |
public function getFallbackDirsPsr4()
|
80 |
{
|
81 |
return $this->fallbackDirsPsr4;
|
82 |
}
|
83 |
|
|
|
|
|
|
|
|
|
84 |
public function getClassMap()
|
85 |
{
|
86 |
return $this->classMap;
|
87 |
}
|
88 |
|
89 |
/**
|
90 |
-
* @param
|
|
|
|
|
|
|
91 |
*/
|
92 |
public function addClassMap(array $classMap)
|
93 |
{
|
@@ -102,9 +175,11 @@ class ClassLoader
|
|
102 |
* Registers a set of PSR-0 directories for a given prefix, either
|
103 |
* appending or prepending to the ones previously set for this prefix.
|
104 |
*
|
105 |
-
* @param string
|
106 |
-
* @param
|
107 |
-
* @param bool
|
|
|
|
|
108 |
*/
|
109 |
public function add($prefix, $paths, $prepend = false)
|
110 |
{
|
@@ -147,11 +222,13 @@ class ClassLoader
|
|
147 |
* Registers a set of PSR-4 directories for a given namespace, either
|
148 |
* appending or prepending to the ones previously set for this namespace.
|
149 |
*
|
150 |
-
* @param string
|
151 |
-
* @param
|
152 |
-
* @param bool
|
153 |
*
|
154 |
* @throws \InvalidArgumentException
|
|
|
|
|
155 |
*/
|
156 |
public function addPsr4($prefix, $paths, $prepend = false)
|
157 |
{
|
@@ -195,8 +272,10 @@ class ClassLoader
|
|
195 |
* Registers a set of PSR-0 directories for a given prefix,
|
196 |
* replacing any others previously set for this prefix.
|
197 |
*
|
198 |
-
* @param string
|
199 |
-
* @param
|
|
|
|
|
200 |
*/
|
201 |
public function set($prefix, $paths)
|
202 |
{
|
@@ -211,10 +290,12 @@ class ClassLoader
|
|
211 |
* Registers a set of PSR-4 directories for a given namespace,
|
212 |
* replacing any others previously set for this namespace.
|
213 |
*
|
214 |
-
* @param string
|
215 |
-
* @param
|
216 |
*
|
217 |
* @throws \InvalidArgumentException
|
|
|
|
|
218 |
*/
|
219 |
public function setPsr4($prefix, $paths)
|
220 |
{
|
@@ -234,6 +315,8 @@ class ClassLoader
|
|
234 |
* Turns on searching the include path for class files.
|
235 |
*
|
236 |
* @param bool $useIncludePath
|
|
|
|
|
237 |
*/
|
238 |
public function setUseIncludePath($useIncludePath)
|
239 |
{
|
@@ -256,6 +339,8 @@ class ClassLoader
|
|
256 |
* that have not been registered with the class map.
|
257 |
*
|
258 |
* @param bool $classMapAuthoritative
|
|
|
|
|
259 |
*/
|
260 |
public function setClassMapAuthoritative($classMapAuthoritative)
|
261 |
{
|
@@ -276,6 +361,8 @@ class ClassLoader
|
|
276 |
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
|
277 |
*
|
278 |
* @param string|null $apcuPrefix
|
|
|
|
|
279 |
*/
|
280 |
public function setApcuPrefix($apcuPrefix)
|
281 |
{
|
@@ -296,25 +383,44 @@ class ClassLoader
|
|
296 |
* Registers this instance as an autoloader.
|
297 |
*
|
298 |
* @param bool $prepend Whether to prepend the autoloader or not
|
|
|
|
|
299 |
*/
|
300 |
public function register($prepend = false)
|
301 |
{
|
302 |
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
303 |
}
|
304 |
|
305 |
/**
|
306 |
* Unregisters this instance as an autoloader.
|
|
|
|
|
307 |
*/
|
308 |
public function unregister()
|
309 |
{
|
310 |
spl_autoload_unregister(array($this, 'loadClass'));
|
|
|
|
|
|
|
|
|
311 |
}
|
312 |
|
313 |
/**
|
314 |
* Loads the given class or interface.
|
315 |
*
|
316 |
* @param string $class The name of the class
|
317 |
-
* @return
|
318 |
*/
|
319 |
public function loadClass($class)
|
320 |
{
|
@@ -323,6 +429,8 @@ class ClassLoader
|
|
323 |
|
324 |
return true;
|
325 |
}
|
|
|
|
|
326 |
}
|
327 |
|
328 |
/**
|
@@ -367,6 +475,21 @@ class ClassLoader
|
|
367 |
return $file;
|
368 |
}
|
369 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
370 |
private function findFileWithExtension($class, $ext)
|
371 |
{
|
372 |
// PSR-4 lookup
|
@@ -438,6 +561,10 @@ class ClassLoader
|
|
438 |
* Scope isolated include.
|
439 |
*
|
440 |
* Prevents access to $this/self from included files.
|
|
|
|
|
|
|
|
|
441 |
*/
|
442 |
function includeFile($file)
|
443 |
{
|
42 |
*/
|
43 |
class ClassLoader
|
44 |
{
|
45 |
+
/** @var ?string */
|
46 |
+
private $vendorDir;
|
47 |
+
|
48 |
// PSR-4
|
49 |
+
/**
|
50 |
+
* @var array[]
|
51 |
+
* @psalm-var array<string, array<string, int>>
|
52 |
+
*/
|
53 |
private $prefixLengthsPsr4 = array();
|
54 |
+
/**
|
55 |
+
* @var array[]
|
56 |
+
* @psalm-var array<string, array<int, string>>
|
57 |
+
*/
|
58 |
private $prefixDirsPsr4 = array();
|
59 |
+
/**
|
60 |
+
* @var array[]
|
61 |
+
* @psalm-var array<string, string>
|
62 |
+
*/
|
63 |
private $fallbackDirsPsr4 = array();
|
64 |
|
65 |
// PSR-0
|
66 |
+
/**
|
67 |
+
* @var array[]
|
68 |
+
* @psalm-var array<string, array<string, string[]>>
|
69 |
+
*/
|
70 |
private $prefixesPsr0 = array();
|
71 |
+
/**
|
72 |
+
* @var array[]
|
73 |
+
* @psalm-var array<string, string>
|
74 |
+
*/
|
75 |
private $fallbackDirsPsr0 = array();
|
76 |
|
77 |
+
/** @var bool */
|
78 |
private $useIncludePath = false;
|
79 |
+
|
80 |
+
/**
|
81 |
+
* @var string[]
|
82 |
+
* @psalm-var array<string, string>
|
83 |
+
*/
|
84 |
private $classMap = array();
|
85 |
+
|
86 |
+
/** @var bool */
|
87 |
private $classMapAuthoritative = false;
|
88 |
+
|
89 |
+
/**
|
90 |
+
* @var bool[]
|
91 |
+
* @psalm-var array<string, bool>
|
92 |
+
*/
|
93 |
private $missingClasses = array();
|
94 |
+
|
95 |
+
/** @var ?string */
|
96 |
private $apcuPrefix;
|
97 |
|
98 |
+
/**
|
99 |
+
* @var self[]
|
100 |
+
*/
|
101 |
+
private static $registeredLoaders = array();
|
102 |
+
|
103 |
+
/**
|
104 |
+
* @param ?string $vendorDir
|
105 |
+
*/
|
106 |
+
public function __construct($vendorDir = null)
|
107 |
+
{
|
108 |
+
$this->vendorDir = $vendorDir;
|
109 |
+
}
|
110 |
+
|
111 |
+
/**
|
112 |
+
* @return string[]
|
113 |
+
*/
|
114 |
public function getPrefixes()
|
115 |
{
|
116 |
if (!empty($this->prefixesPsr0)) {
|
120 |
return array();
|
121 |
}
|
122 |
|
123 |
+
/**
|
124 |
+
* @return array[]
|
125 |
+
* @psalm-return array<string, array<int, string>>
|
126 |
+
*/
|
127 |
public function getPrefixesPsr4()
|
128 |
{
|
129 |
return $this->prefixDirsPsr4;
|
130 |
}
|
131 |
|
132 |
+
/**
|
133 |
+
* @return array[]
|
134 |
+
* @psalm-return array<string, string>
|
135 |
+
*/
|
136 |
public function getFallbackDirs()
|
137 |
{
|
138 |
return $this->fallbackDirsPsr0;
|
139 |
}
|
140 |
|
141 |
+
/**
|
142 |
+
* @return array[]
|
143 |
+
* @psalm-return array<string, string>
|
144 |
+
*/
|
145 |
public function getFallbackDirsPsr4()
|
146 |
{
|
147 |
return $this->fallbackDirsPsr4;
|
148 |
}
|
149 |
|
150 |
+
/**
|
151 |
+
* @return string[] Array of classname => path
|
152 |
+
* @psalm-var array<string, string>
|
153 |
+
*/
|
154 |
public function getClassMap()
|
155 |
{
|
156 |
return $this->classMap;
|
157 |
}
|
158 |
|
159 |
/**
|
160 |
+
* @param string[] $classMap Class to filename map
|
161 |
+
* @psalm-param array<string, string> $classMap
|
162 |
+
*
|
163 |
+
* @return void
|
164 |
*/
|
165 |
public function addClassMap(array $classMap)
|
166 |
{
|
175 |
* Registers a set of PSR-0 directories for a given prefix, either
|
176 |
* appending or prepending to the ones previously set for this prefix.
|
177 |
*
|
178 |
+
* @param string $prefix The prefix
|
179 |
+
* @param string[]|string $paths The PSR-0 root directories
|
180 |
+
* @param bool $prepend Whether to prepend the directories
|
181 |
+
*
|
182 |
+
* @return void
|
183 |
*/
|
184 |
public function add($prefix, $paths, $prepend = false)
|
185 |
{
|
222 |
* Registers a set of PSR-4 directories for a given namespace, either
|
223 |
* appending or prepending to the ones previously set for this namespace.
|
224 |
*
|
225 |
+
* @param string $prefix The prefix/namespace, with trailing '\\'
|
226 |
+
* @param string[]|string $paths The PSR-4 base directories
|
227 |
+
* @param bool $prepend Whether to prepend the directories
|
228 |
*
|
229 |
* @throws \InvalidArgumentException
|
230 |
+
*
|
231 |
+
* @return void
|
232 |
*/
|
233 |
public function addPsr4($prefix, $paths, $prepend = false)
|
234 |
{
|
272 |
* Registers a set of PSR-0 directories for a given prefix,
|
273 |
* replacing any others previously set for this prefix.
|
274 |
*
|
275 |
+
* @param string $prefix The prefix
|
276 |
+
* @param string[]|string $paths The PSR-0 base directories
|
277 |
+
*
|
278 |
+
* @return void
|
279 |
*/
|
280 |
public function set($prefix, $paths)
|
281 |
{
|
290 |
* Registers a set of PSR-4 directories for a given namespace,
|
291 |
* replacing any others previously set for this namespace.
|
292 |
*
|
293 |
+
* @param string $prefix The prefix/namespace, with trailing '\\'
|
294 |
+
* @param string[]|string $paths The PSR-4 base directories
|
295 |
*
|
296 |
* @throws \InvalidArgumentException
|
297 |
+
*
|
298 |
+
* @return void
|
299 |
*/
|
300 |
public function setPsr4($prefix, $paths)
|
301 |
{
|
315 |
* Turns on searching the include path for class files.
|
316 |
*
|
317 |
* @param bool $useIncludePath
|
318 |
+
*
|
319 |
+
* @return void
|
320 |
*/
|
321 |
public function setUseIncludePath($useIncludePath)
|
322 |
{
|
339 |
* that have not been registered with the class map.
|
340 |
*
|
341 |
* @param bool $classMapAuthoritative
|
342 |
+
*
|
343 |
+
* @return void
|
344 |
*/
|
345 |
public function setClassMapAuthoritative($classMapAuthoritative)
|
346 |
{
|
361 |
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
|
362 |
*
|
363 |
* @param string|null $apcuPrefix
|
364 |
+
*
|
365 |
+
* @return void
|
366 |
*/
|
367 |
public function setApcuPrefix($apcuPrefix)
|
368 |
{
|
383 |
* Registers this instance as an autoloader.
|
384 |
*
|
385 |
* @param bool $prepend Whether to prepend the autoloader or not
|
386 |
+
*
|
387 |
+
* @return void
|
388 |
*/
|
389 |
public function register($prepend = false)
|
390 |
{
|
391 |
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
392 |
+
|
393 |
+
if (null === $this->vendorDir) {
|
394 |
+
return;
|
395 |
+
}
|
396 |
+
|
397 |
+
if ($prepend) {
|
398 |
+
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
|
399 |
+
} else {
|
400 |
+
unset(self::$registeredLoaders[$this->vendorDir]);
|
401 |
+
self::$registeredLoaders[$this->vendorDir] = $this;
|
402 |
+
}
|
403 |
}
|
404 |
|
405 |
/**
|
406 |
* Unregisters this instance as an autoloader.
|
407 |
+
*
|
408 |
+
* @return void
|
409 |
*/
|
410 |
public function unregister()
|
411 |
{
|
412 |
spl_autoload_unregister(array($this, 'loadClass'));
|
413 |
+
|
414 |
+
if (null !== $this->vendorDir) {
|
415 |
+
unset(self::$registeredLoaders[$this->vendorDir]);
|
416 |
+
}
|
417 |
}
|
418 |
|
419 |
/**
|
420 |
* Loads the given class or interface.
|
421 |
*
|
422 |
* @param string $class The name of the class
|
423 |
+
* @return true|null True if loaded, null otherwise
|
424 |
*/
|
425 |
public function loadClass($class)
|
426 |
{
|
429 |
|
430 |
return true;
|
431 |
}
|
432 |
+
|
433 |
+
return null;
|
434 |
}
|
435 |
|
436 |
/**
|
475 |
return $file;
|
476 |
}
|
477 |
|
478 |
+
/**
|
479 |
+
* Returns the currently registered loaders indexed by their corresponding vendor directories.
|
480 |
+
*
|
481 |
+
* @return self[]
|
482 |
+
*/
|
483 |
+
public static function getRegisteredLoaders()
|
484 |
+
{
|
485 |
+
return self::$registeredLoaders;
|
486 |
+
}
|
487 |
+
|
488 |
+
/**
|
489 |
+
* @param string $class
|
490 |
+
* @param string $ext
|
491 |
+
* @return string|false
|
492 |
+
*/
|
493 |
private function findFileWithExtension($class, $ext)
|
494 |
{
|
495 |
// PSR-4 lookup
|
561 |
* Scope isolated include.
|
562 |
*
|
563 |
* Prevents access to $this/self from included files.
|
564 |
+
*
|
565 |
+
* @param string $file
|
566 |
+
* @return void
|
567 |
+
* @private
|
568 |
*/
|
569 |
function includeFile($file)
|
570 |
{
|
vendor/composer/InstalledVersions.php
CHANGED
@@ -1,228 +1,350 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
|
13 |
namespace Composer;
|
14 |
|
|
|
15 |
use Composer\Semver\VersionParser;
|
16 |
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
|
|
|
|
22 |
class InstalledVersions
|
23 |
{
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
return
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
return
|
101 |
-
}
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
$
|
119 |
-
|
120 |
-
|
121 |
-
}
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
{
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
{
|
192 |
-
return
|
193 |
-
}
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
return
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
<?php
|
2 |
|
3 |
+
/*
|
4 |
+
* This file is part of Composer.
|
5 |
+
*
|
6 |
+
* (c) Nils Adermann <naderman@naderman.de>
|
7 |
+
* Jordi Boggiano <j.boggiano@seld.be>
|
8 |
+
*
|
9 |
+
* For the full copyright and license information, please view the LICENSE
|
10 |
+
* file that was distributed with this source code.
|
11 |
+
*/
|
12 |
|
13 |
namespace Composer;
|
14 |
|
15 |
+
use Composer\Autoload\ClassLoader;
|
16 |
use Composer\Semver\VersionParser;
|
17 |
|
18 |
+
/**
|
19 |
+
* This class is copied in every Composer installed project and available to all
|
20 |
+
*
|
21 |
+
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
22 |
+
*
|
23 |
+
* To require its presence, you can require `composer-runtime-api ^2.0`
|
24 |
+
*/
|
25 |
class InstalledVersions
|
26 |
{
|
27 |
+
/**
|
28 |
+
* @var mixed[]|null
|
29 |
+
* @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}|array{}|null
|
30 |
+
*/
|
31 |
+
private static $installed;
|
32 |
+
|
33 |
+
/**
|
34 |
+
* @var bool|null
|
35 |
+
*/
|
36 |
+
private static $canGetVendors;
|
37 |
+
|
38 |
+
/**
|
39 |
+
* @var array[]
|
40 |
+
* @psalm-var array<string, array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
|
41 |
+
*/
|
42 |
+
private static $installedByVendor = array();
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Returns a list of all package names which are present, either by being installed, replaced or provided
|
46 |
+
*
|
47 |
+
* @return string[]
|
48 |
+
* @psalm-return list<string>
|
49 |
+
*/
|
50 |
+
public static function getInstalledPackages()
|
51 |
+
{
|
52 |
+
$packages = array();
|
53 |
+
foreach (self::getInstalled() as $installed) {
|
54 |
+
$packages[] = array_keys($installed['versions']);
|
55 |
+
}
|
56 |
+
|
57 |
+
if (1 === \count($packages)) {
|
58 |
+
return $packages[0];
|
59 |
+
}
|
60 |
+
|
61 |
+
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
62 |
+
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* Returns a list of all package names with a specific type e.g. 'library'
|
66 |
+
*
|
67 |
+
* @param string $type
|
68 |
+
* @return string[]
|
69 |
+
* @psalm-return list<string>
|
70 |
+
*/
|
71 |
+
public static function getInstalledPackagesByType($type)
|
72 |
+
{
|
73 |
+
$packagesByType = array();
|
74 |
+
|
75 |
+
foreach (self::getInstalled() as $installed) {
|
76 |
+
foreach ($installed['versions'] as $name => $package) {
|
77 |
+
if (isset($package['type']) && $package['type'] === $type) {
|
78 |
+
$packagesByType[] = $name;
|
79 |
+
}
|
80 |
+
}
|
81 |
+
}
|
82 |
+
|
83 |
+
return $packagesByType;
|
84 |
+
}
|
85 |
+
|
86 |
+
/**
|
87 |
+
* Checks whether the given package is installed
|
88 |
+
*
|
89 |
+
* This also returns true if the package name is provided or replaced by another package
|
90 |
+
*
|
91 |
+
* @param string $packageName
|
92 |
+
* @param bool $includeDevRequirements
|
93 |
+
* @return bool
|
94 |
+
*/
|
95 |
+
public static function isInstalled($packageName, $includeDevRequirements = true)
|
96 |
+
{
|
97 |
+
foreach (self::getInstalled() as $installed) {
|
98 |
+
if (isset($installed['versions'][$packageName])) {
|
99 |
+
return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
|
100 |
+
}
|
101 |
+
}
|
102 |
+
|
103 |
+
return false;
|
104 |
+
}
|
105 |
+
|
106 |
+
/**
|
107 |
+
* Checks whether the given package satisfies a version constraint
|
108 |
+
*
|
109 |
+
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
|
110 |
+
*
|
111 |
+
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
|
112 |
+
*
|
113 |
+
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
|
114 |
+
* @param string $packageName
|
115 |
+
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
|
116 |
+
* @return bool
|
117 |
+
*/
|
118 |
+
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
119 |
+
{
|
120 |
+
$constraint = $parser->parseConstraints($constraint);
|
121 |
+
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
122 |
+
|
123 |
+
return $provided->matches($constraint);
|
124 |
+
}
|
125 |
+
|
126 |
+
/**
|
127 |
+
* Returns a version constraint representing all the range(s) which are installed for a given package
|
128 |
+
*
|
129 |
+
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
|
130 |
+
* whether a given version of a package is installed, and not just whether it exists
|
131 |
+
*
|
132 |
+
* @param string $packageName
|
133 |
+
* @return string Version constraint usable with composer/semver
|
134 |
+
*/
|
135 |
+
public static function getVersionRanges($packageName)
|
136 |
+
{
|
137 |
+
foreach (self::getInstalled() as $installed) {
|
138 |
+
if (!isset($installed['versions'][$packageName])) {
|
139 |
+
continue;
|
140 |
+
}
|
141 |
+
|
142 |
+
$ranges = array();
|
143 |
+
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
144 |
+
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
145 |
+
}
|
146 |
+
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
147 |
+
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
148 |
+
}
|
149 |
+
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
150 |
+
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
151 |
+
}
|
152 |
+
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
153 |
+
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
154 |
+
}
|
155 |
+
|
156 |
+
return implode(' || ', $ranges);
|
157 |
+
}
|
158 |
+
|
159 |
+
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
160 |
+
}
|
161 |
+
|
162 |
+
/**
|
163 |
+
* @param string $packageName
|
164 |
+
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
165 |
+
*/
|
166 |
+
public static function getVersion($packageName)
|
167 |
+
{
|
168 |
+
foreach (self::getInstalled() as $installed) {
|
169 |
+
if (!isset($installed['versions'][$packageName])) {
|
170 |
+
continue;
|
171 |
+
}
|
172 |
+
|
173 |
+
if (!isset($installed['versions'][$packageName]['version'])) {
|
174 |
+
return null;
|
175 |
+
}
|
176 |
+
|
177 |
+
return $installed['versions'][$packageName]['version'];
|
178 |
+
}
|
179 |
+
|
180 |
+
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
181 |
+
}
|
182 |
+
|
183 |
+
/**
|
184 |
+
* @param string $packageName
|
185 |
+
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
186 |
+
*/
|
187 |
+
public static function getPrettyVersion($packageName)
|
188 |
+
{
|
189 |
+
foreach (self::getInstalled() as $installed) {
|
190 |
+
if (!isset($installed['versions'][$packageName])) {
|
191 |
+
continue;
|
192 |
+
}
|
193 |
+
|
194 |
+
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
195 |
+
return null;
|
196 |
+
}
|
197 |
+
|
198 |
+
return $installed['versions'][$packageName]['pretty_version'];
|
199 |
+
}
|
200 |
+
|
201 |
+
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
202 |
+
}
|
203 |
+
|
204 |
+
/**
|
205 |
+
* @param string $packageName
|
206 |
+
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
|
207 |
+
*/
|
208 |
+
public static function getReference($packageName)
|
209 |
+
{
|
210 |
+
foreach (self::getInstalled() as $installed) {
|
211 |
+
if (!isset($installed['versions'][$packageName])) {
|
212 |
+
continue;
|
213 |
+
}
|
214 |
+
|
215 |
+
if (!isset($installed['versions'][$packageName]['reference'])) {
|
216 |
+
return null;
|
217 |
+
}
|
218 |
+
|
219 |
+
return $installed['versions'][$packageName]['reference'];
|
220 |
+
}
|
221 |
+
|
222 |
+
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
223 |
+
}
|
224 |
+
|
225 |
+
/**
|
226 |
+
* @param string $packageName
|
227 |
+
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
|
228 |
+
*/
|
229 |
+
public static function getInstallPath($packageName)
|
230 |
+
{
|
231 |
+
foreach (self::getInstalled() as $installed) {
|
232 |
+
if (!isset($installed['versions'][$packageName])) {
|
233 |
+
continue;
|
234 |
+
}
|
235 |
+
|
236 |
+
return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
|
237 |
+
}
|
238 |
+
|
239 |
+
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
240 |
+
}
|
241 |
+
|
242 |
+
/**
|
243 |
+
* @return array
|
244 |
+
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
|
245 |
+
*/
|
246 |
+
public static function getRootPackage()
|
247 |
+
{
|
248 |
+
$installed = self::getInstalled();
|
249 |
+
|
250 |
+
return $installed[0]['root'];
|
251 |
+
}
|
252 |
+
|
253 |
+
/**
|
254 |
+
* Returns the raw installed.php data for custom implementations
|
255 |
+
*
|
256 |
+
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
257 |
+
* @return array[]
|
258 |
+
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}
|
259 |
+
*/
|
260 |
+
public static function getRawData()
|
261 |
+
{
|
262 |
+
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
|
263 |
+
|
264 |
+
if (null === self::$installed) {
|
265 |
+
// only require the installed.php file if this file is loaded from its dumped location,
|
266 |
+
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
267 |
+
if (substr(__DIR__, -8, 1) !== 'C') {
|
268 |
+
self::$installed = include __DIR__ . '/installed.php';
|
269 |
+
} else {
|
270 |
+
self::$installed = array();
|
271 |
+
}
|
272 |
+
}
|
273 |
+
|
274 |
+
return self::$installed;
|
275 |
+
}
|
276 |
+
|
277 |
+
/**
|
278 |
+
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
279 |
+
*
|
280 |
+
* @return array[]
|
281 |
+
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
|
282 |
+
*/
|
283 |
+
public static function getAllRawData()
|
284 |
+
{
|
285 |
+
return self::getInstalled();
|
286 |
+
}
|
287 |
+
|
288 |
+
/**
|
289 |
+
* Lets you reload the static array from another file
|
290 |
+
*
|
291 |
+
* This is only useful for complex integrations in which a project needs to use
|
292 |
+
* this class but then also needs to execute another project's autoloader in process,
|
293 |
+
* and wants to ensure both projects have access to their version of installed.php.
|
294 |
+
*
|
295 |
+
* A typical case would be PHPUnit, where it would need to make sure it reads all
|
296 |
+
* the data it needs from this class, then call reload() with
|
297 |
+
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
|
298 |
+
* the project in which it runs can then also use this class safely, without
|
299 |
+
* interference between PHPUnit's dependencies and the project's dependencies.
|
300 |
+
*
|
301 |
+
* @param array[] $data A vendor/composer/installed.php data set
|
302 |
+
* @return void
|
303 |
+
*
|
304 |
+
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} $data
|
305 |
+
*/
|
306 |
+
public static function reload($data)
|
307 |
+
{
|
308 |
+
self::$installed = $data;
|
309 |
+
self::$installedByVendor = array();
|
310 |
+
}
|
311 |
+
|
312 |
+
/**
|
313 |
+
* @return array[]
|
314 |
+
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
|
315 |
+
*/
|
316 |
+
private static function getInstalled()
|
317 |
+
{
|
318 |
+
if (null === self::$canGetVendors) {
|
319 |
+
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
320 |
+
}
|
321 |
+
|
322 |
+
$installed = array();
|
323 |
+
|
324 |
+
if (self::$canGetVendors) {
|
325 |
+
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
326 |
+
if (isset(self::$installedByVendor[$vendorDir])) {
|
327 |
+
$installed[] = self::$installedByVendor[$vendorDir];
|
328 |
+
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
329 |
+
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
|
330 |
+
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
331 |
+
self::$installed = $installed[count($installed) - 1];
|
332 |
+
}
|
333 |
+
}
|
334 |
+
}
|
335 |
+
}
|
336 |
+
|
337 |
+
if (null === self::$installed) {
|
338 |
+
// only require the installed.php file if this file is loaded from its dumped location,
|
339 |
+
// and not fr
|