Social Share Buttons – Social Pug - Version 1.20.0

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 Icon 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

Files changed (97) hide show
  1. assets/dist/{custom-social-media-image-pinterest.1.19.2.png → custom-social-media-image-pinterest.1.20.0.png} +0 -0
  2. assets/dist/{custom-social-media-image.1.19.2.png → custom-social-media-image.1.20.0.png} +0 -0
  3. assets/dist/dashboard-pro.1.19.2.js +0 -19
  4. assets/dist/dashboard-pro.1.20.0.js +44 -0
  5. assets/dist/{dashboard-tinymce.1.19.2.js → dashboard-tinymce.1.20.0.js} +0 -0
  6. assets/dist/{dpsp-selectable-empty.1.19.2.png → dpsp-selectable-empty.1.20.0.png} +0 -0
  7. assets/dist/{extension-bitly.1.19.2.png → extension-bitly.1.20.0.png} +0 -0
  8. assets/dist/{extension-branch.1.19.2.png → extension-branch.1.20.0.png} +0 -0
  9. assets/dist/{extension-ctt.1.19.2.png → extension-ctt.1.20.0.png} +0 -0
  10. assets/dist/{extension-ga-utm-tracking.1.19.2.png → extension-ga-utm-tracking.1.20.0.png} +0 -0
  11. assets/dist/{extension-networks.1.19.2.png → extension-networks.1.20.0.png} +0 -0
  12. assets/dist/front-end-free.1.19.2.js +0 -75
  13. assets/dist/front-end-free.1.20.0.js +63 -0
  14. assets/dist/{grow-logo-sq-navy.1.19.2.png → grow-logo-sq-navy.1.20.0.png} +0 -0
  15. assets/dist/intercom.1.19.2.js +0 -11
  16. assets/dist/intercom.1.20.0.js +3 -0
  17. assets/dist/{jquery.ui.touch-punch.min.1.19.2.js → jquery.ui.touch-punch.min.1.20.0.js} +0 -0
  18. assets/dist/{social-pug-upgrade.1.19.2.png → social-pug-upgrade.1.20.0.png} +0 -0
  19. assets/dist/{socialpug.1.19.2.eot → socialpug.1.20.0.eot} +0 -0
  20. assets/dist/{socialpug.1.19.2.svg → socialpug.1.20.0.svg} +0 -0
  21. assets/dist/{socialpug.1.19.2.ttf → socialpug.1.20.0.ttf} +0 -0
  22. assets/dist/{socialpug.1.19.2.woff → socialpug.1.20.0.woff} +0 -0
  23. assets/dist/{style-dashboard-pro.1.19.2.css → style-dashboard-pro.1.20.0.css} +1 -1
  24. assets/dist/style-frontend-pro-jquery.1.19.2.css +0 -1
  25. assets/dist/style-frontend-pro-jquery.1.20.0.css +1 -0
  26. assets/dist/style-frontend-pro.1.19.2.css +0 -1
  27. assets/dist/style-frontend-pro.1.20.0.css +1 -0
  28. assets/dist/{tool-content.1.19.2.png → tool-content.1.20.0.png} +0 -0
  29. assets/dist/{tool-follow-widget.1.19.2.png → tool-follow-widget.1.20.0.png} +0 -0
  30. assets/dist/{tool-image-hover-pinterest.1.19.2.png → tool-image-hover-pinterest.1.20.0.png} +0 -0
  31. assets/dist/{tool-misc-import-export.1.19.2.png → tool-misc-import-export.1.20.0.png} +0 -0
  32. assets/dist/{tool-mobile.1.19.2.png → tool-mobile.1.20.0.png} +0 -0
  33. assets/dist/{tool-pop-up.1.19.2.png → tool-pop-up.1.20.0.png} +0 -0
  34. assets/dist/{tool-sidebar.1.19.2.png → tool-sidebar.1.20.0.png} +0 -0
  35. assets/src/css/abstract/_mixins.scss +1 -1
  36. assets/src/css/components/_buttons-general.scss +5 -3
  37. assets/src/css/components/_buttons-sticky.scss +11 -3
  38. constants.php +5 -0
  39. inc/admin/admin-metaboxes.php +75 -26
  40. inc/admin/class-admin-messages.php +122 -0
  41. inc/admin/submenu-page-extensions.php +0 -2
  42. inc/admin/submenu-page-settings.php +6 -2
  43. inc/admin/views/view-submenu-page-debugger.php +5 -5
  44. inc/admin/views/view-submenu-page-settings.php +3 -18
  45. inc/admin/views/view-submenu-page-sidebar.php +1 -1
  46. inc/api/v1/class-status-schema.php +1 -1
  47. inc/api/v1/settings-args.php +1 -2
  48. inc/api/v1/settings-partials.php +9 -9
  49. inc/api/v1/settings-schema.php +68 -1
  50. inc/class-activation.php +146 -46
  51. inc/class-admin-notices.php +56 -56
  52. inc/class-critical-styles.php +99 -0
  53. inc/class-custom-color.php +8 -4
  54. inc/class-data-sync.php +4 -0
  55. inc/class-dpsp-network-buttons-outputter.php +33 -25
  56. inc/class-frontend-data.php +30 -3
  57. inc/class-icon.php +5 -2
  58. inc/class-mobile-detect.php +0 -899
  59. inc/class-previous-urls.php +124 -0
  60. inc/class-settings.php +19 -0
  61. inc/class-share-count-client.php +212 -0
  62. inc/class-share-count-url-counts.php +186 -0
  63. inc/class-share-count-url.php +39 -0
  64. inc/class-share-counts.php +633 -8
  65. inc/class-social-pug.php +44 -16
  66. inc/class-status-api-controller.php +3 -3
  67. inc/class-view-loader.php +4 -1
  68. inc/functions-admin.php +64 -60
  69. inc/functions-deprecated.php +222 -0
  70. inc/functions-frontend.php +12 -9
  71. inc/functions-mobile.php +0 -55
  72. inc/functions-requirements.php +16 -27
  73. inc/functions-share-counts.php +108 -539
  74. inc/functions-tools.php +23 -11
  75. inc/functions.php +22 -12
  76. inc/integrations/class-mv-trellis.php +9 -16
  77. inc/networks/class-networks.php +8 -8
  78. inc/tools/class-tool.php +5 -0
  79. inc/tools/share-floating-sidebar/class-floating-sidebar.php +10 -3
  80. inc/tools/share-floating-sidebar/views/view-submenu-page-sidebar.php +8 -10
  81. inc/tools/share-inline-content/class-inline-content.php +9 -2
  82. inc/tools/share-inline-content/functions-frontend.php +75 -26
  83. inc/tools/share-inline-content/views/frontend.php +3 -3
  84. inc/tools/share-inline-content/views/view-submenu-page-content.php +7 -9
  85. inc/tools/share-sticky-bar/class-sticky-bar.php +8 -0
  86. inc/tools/share-sticky-bar/functions-frontend.php +2 -1
  87. inc/tools/share-sticky-bar/views/view-submenu-page-sticky-bar.php +8 -8
  88. inc/views/single-button.php +7 -3
  89. inc/views/total-share-count.php +6 -2
  90. inc/widgets/class-dpsp-top-shared-posts.php +13 -4
  91. index.php +14 -15
  92. kernl.version +1 -0
  93. readme.txt +14 -4
  94. translations/social-pug.pot +245 -279
  95. vendor/autoload.php +1 -1
  96. vendor/composer/ClassLoader.php +139 -12
  97. 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: -88px;
 
144
  visibility: hidden;
145
- transition: bottom 0.3s ease-in-out, visibility 0.3s ease-in-out;
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
- bottom: 0;
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]">' . '<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' );
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]">' . '<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>';
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]">' . '<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>';
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]">' . '<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' );
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]">' . '<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>';
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">' . esc_attr__( "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.", 'social-pug' ) . '</p>';
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]">' . '<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>';
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]">' . '<span class="dpsp-admin-icon dpsp-admin-icon-twitter">' . wp_kses( dpsp_get_svg_icon_output( 'pinterest' ), View_Loader::get_allowed_tags() ) . '</span>' . esc_attr__( '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_attr( $remaining_count ) . '</span> ' . esc_html__( 'Characters Remaining', 'social-pug' ) . '</span>';
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>' . '<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>';
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 = dpsp_get_post_share_counts( $post->ID );
299
 
300
  // Get total share counts
301
- $total_shares = dpsp_get_post_total_share_count( $post->ID );
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', 'social-pug' ) . '</a>';
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
- return;
466
  }
467
 
468
  $action = filter_input( INPUT_POST, 'action' );
469
  if ( 'dpsp_refresh_share_counts' !== $action ) {
470
- return;
471
  }
472
 
 
473
  $nonce = filter_input( INPUT_POST, 'nonce' );
474
  if ( ! wp_verify_nonce( $nonce, 'dpsp_refresh_share_counts' ) ) {
475
- return;
476
  }
477
 
478
  $post_id = (int) $_POST['post_id'];
479
  $post = get_post( $post_id );
480
 
481
- if ( ! in_array( $post->post_status, [ 'future', 'draft', 'pending', 'trash', 'auto-draft' ], true ) ) {
 
 
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
- $share_counts = dpsp_pull_post_share_counts( $post_id );
 
 
 
 
 
 
 
 
 
 
488
 
489
  // Update share counts in the db
490
- $shares_updated = dpsp_update_post_share_counts( $post_id, $share_counts );
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
- dpsp_invalidate_all_share_counts();
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 ) . ')' . '&#13;';
93
  }
94
  } else {
95
- echo 'None' . '&#13;';
96
  }
97
  ?>
98
  &#13;
@@ -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 ) . ')' . '&#13;';
105
  }
106
  } else {
107
- echo 'None' . '&#13;';
108
  }
109
 
110
  ?>
@@ -117,7 +117,7 @@ Grow Cron Jobs:
117
  echo esc_attr( $cron_job ) . '&#13;';
118
  }
119
  } else {
120
- echo 'None' . '&#13;';
121
  }
122
  ?>
123
  &#13;
89
  <?php
90
  if ( ! empty( $plugins ) ) {
91
  foreach ( $plugins as $key => $plugin ) {
92
+ echo esc_attr( $plugin['Name'] ) . ' (' . esc_attr( $key ) . ')&#13;';
93
  }
94
  } else {
95
+ echo 'None&#13;';
96
  }
97
  ?>
98
  &#13;
101
  <?php
102
  if ( ! empty( $active_plugins ) ) {
103
  foreach ( $active_plugins as $key => $plugin ) {
104
+ echo esc_attr( $plugin['Name'] ) . ' (' . esc_attr( $key ) . ')&#13;';
105
  }
106
  } else {
107
+ echo 'None&#13;';
108
  }
109
 
110
  ?>
117
  echo esc_attr( $cron_job ) . '&#13;';
118
  }
119
  } else {
120
+ echo 'None&#13;';
121
  }
122
  ?>
123
  &#13;
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', 'social-pug' ), [ 'yes' ], __( 'Display the share count for each social network.', 'social-pug' ) ); ?>
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
- function get_tool_settings() {
 
 
 
 
 
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
- function validate_license( $old_values, $new_values ) {
159
- $grow_license = $new_values['mv_grow_license'];
160
- update_option( 'mv_grow_license', $new_values['mv_grow_license'] );
 
 
 
 
 
 
 
 
 
161
 
162
- $params = [
163
- 'edd_action' => 'activate_license',
164
- 'item_id' => '28',
165
- 'license' => $grow_license,
166
- 'url' => get_site_url(),
167
  ];
 
 
 
168
 
169
- $url_string = http_build_query( $params );
170
- $result = wp_remote_get( 'https://marketplace.mediavine.com/?' . $url_string );
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
- $grow_license = null;
193
- if (
194
- isset( $new_values['mv_grow_license'] ) &&
195
- ( $old_values['mv_grow_license'] !== $new_values['mv_grow_license'] )
196
- ) {
197
- $this->validate_license( $old_values, $new_values );
 
 
 
 
 
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, 'dpsp_serial_admin_notification' ] );
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' ) || \Social_Pug::is_free() ) {
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 = ! empty( $location_settings['display']['custom_color'] ) ? $location_settings['display']['custom_color'] : false;
39
- $hover_color = ! empty( $location_settings['display']['custom_hover_color'] ) ? $location_settings['display']['custom_hover_color'] : false;
 
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( $location_settings['button_style'], $location, $color, $hover_color );
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 $settings Array of settings for this location
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 $data Other data about how these buttons should be output
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', dpsp_get_post_share_counts( $post_obj->ID ), $data['location'] );
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 $settings settings for this location
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 $data Data about how button should be output
152
  * @param Network $network Associative array of network data
153
- * @param string $network_label Network Label for Display
154
- * @param array $array_position An array of string identifiers for css classes to indicate the position
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, $button_data['network_shares'] );
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'][] = ( isset( $slug ) ? 'dpsp-' . $slug : '' );
179
- $button_data['button_classes'][] = ( ( empty( $network->get_label() ) || ! isset( $data['settings']['display']['show_labels'] ) ) && ( ! in_array( $slug, dpsp_get_networks_with_social_count(), true ) || ! $button_data['show_share_counts'] ) ? 'dpsp-no-label' : '' );
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 $networks_shares Array representing share counts from various networks
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 $settings Array of settings for this location
285
- * @param string $network_slug
286
- * @param int $network_shares
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
- if ( ! in_array( $network_slug, dpsp_get_networks_with_social_count(), true ) ) {
 
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'] > dpsp_get_post_total_share_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 $data Data bout the post and button output
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'] = dpsp_get_post_share_counts( $post->ID );
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
- $general = [
 
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 $args Icon Data to regsiter with
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 static $last_updated_key = 'dpsp_networks_shares_last_updated';
 
 
 
 
 
 
 
 
 
8
 
9
- /** @var null */
 
 
 
10
  private static $instance = null;
11
 
 
 
 
12
  /**
13
- * @return Share_Counts|\Social_Pug|null
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
- public function init() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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::$last_updated_key, 1 );
34
  }
35
  }
36
 
@@ -43,7 +87,7 @@ class Share_Counts extends \Social_Pug {
43
  $args = [
44
  'meta_query' => [ // @codingStandardsIgnoreLine
45
  [
46
- 'key' => self::$last_updated_key,
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.19.2';
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
- } else {
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
- dpsp_register_functions_share_counts();
 
 
 
 
 
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( $hook ) {
324
 
325
- if ( strpos( $hook, 'dpsp' ) !== false ) {
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
- plugin_dir_url( __FILE__ ) . 'assets/dist/jquery.ui.touch-punch.min.' . self::$VERSION . '.js',
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 string
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( MV_GROW_VERSION );
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 $tool
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 string $saved_value
162
- * @param string $label
163
- * @param array $options
164
- * @param string $tooltip
165
- * @param array $editor_settings
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">' . esc_attr( $label ) . '</label>' : '';
178
- echo '<input type="text" ' . ( isset( $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
179
  break;
180
 
181
  // Display textareas
182
  case 'textarea':
183
- echo ! empty( $label ) ? '<label for="' . esc_attr( $name ) . '" class="dpsp-setting-field-label">' . esc_attr( $label ) . '</label>' : '';
184
- echo '<textarea ' . ( isset( $label ) ? 'id="' . esc_attr( $name ) . '"' : '' ) . ' name="' . esc_attr( $name ) . '">' . esc_attr( $saved_value ) . '</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">' . esc_attr( $label ) . '</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">' . esc_attr( $label ) . '</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 ) . ']' . '" name="' . esc_attr( $name ) . '" value="' . esc_attr( $option_value ) . '" ' . checked( $option_value, $saved_value, false ) . ' />';
199
- 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>';
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" ' . ( isset( $label ) ? 'id="' . esc_attr( $name ) . '"' : '' ) . ' name="' . esc_attr( $name ) . '" value="' . esc_attr( $options[0] ) . '" ' . checked( $options[0], $saved_value, false ) . ' />';
212
- echo ! empty( $label ) ? '<label for="' . esc_attr( $name ) . '" class="dpsp-setting-field-label">' . esc_attr( $label ) . '<span></span></label>' : '';
213
 
214
  // Else display checkboxes just like radios
215
  } else {
216
- echo ! empty( $label ) ? '<label class="dpsp-setting-field-label">' . esc_attr( $label ) . '</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 ) . ']' . '" name="' . esc_attr( $name ) . '" value="' . esc_attr( $option_value ) . '" ' . ( in_array( $option_value, $saved_value, true ) ? 'checked' : '' ) . ' />';
220
- 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>';
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" ' . ( isset( $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 ) . ' />';
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">' . esc_attr( $label ) . '<span></span></label>' : '';
237
  }
238
  break;
239
 
240
  case 'select':
241
- echo ! empty( $label ) ? '<label for="' . esc_attr( $name ) . '" class="dpsp-setting-field-label">' . esc_attr( $label ) . '</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 ) . '>' . esc_attr( $option_name ) . '</option>';
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">' . esc_attr( $label ) . '</label>' : '';
251
- echo '<input class="dpsp-color-picker" type="text" ' . ( isset( $label ) ? 'id="' . esc_attr( $name ) . '"' : '' ) . ' name="' . esc_attr( $name ) . '" value="' . esc_attr( $saved_value ) . '" />';
252
  break;
253
 
254
  case 'image':
255
- echo ! empty( $label ) ? '<label for="' . esc_attr( $name ) . '" class="dpsp-setting-field-label">' . esc_attr( $label ) . '</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="' . esc_attr( $thumb_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 $settings - the settings array for the current location
294
  * @param string $action - the current type of action ( share/follow )
295
  * @param string $location - the display location for the buttons
296
  *
297
- * @return array
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 $return - wether to return or to output the HTML
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 $post_id
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( dpsp_get_post_total_share_count( $post_id ) ) . '</span>';
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 $post_id
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 = dpsp_get_post_total_share_count( $post_obj->ID, $networks, $location );
34
  if ( is_null( $total_shares ) ) {
35
  return '';
36
  }
37
 
38
  $args = [
39
- 'icon' => dpsp_get_svg_icon_output( 'share' ),
40
- 'count' => apply_filters( 'dpsp_get_output_total_share_count', $total_shares, $location ),
41
- 'text' => apply_filters( 'dpsp_total_share_count_text', __( 'shares', 'social-pug' ) ),
 
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', 'dpsp_round_share_counts', 10, 2 );
181
- remove_filter( 'dpsp_get_output_total_share_count', 'dpsp_round_share_counts', 10, 2 );
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) dpsp_get_post_total_share_count() && ! empty( $settings['display']['show_count_total'] ) ? true : false );
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', 'dpsp_round_share_counts', 10, 2 );
224
- add_filter( 'dpsp_get_output_total_share_count', 'dpsp_round_share_counts', 10, 2 );
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.2';
36
- $minimum_php = '5.6';
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>%5$s</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' ),
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>%3$s</strong> requires WordPress %1$s or higher. This site is running WordPress %2$s. Please update WordPress to activate <strong>%3$s</strong>.', 'mediavine' ),
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>%5$s</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>%5$s</strong>, please upgrade your PHP version. %4$s.', 'mediavine' ),
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>%3$s</strong>, please update WordPress.', 'mediavine' ),
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
- $notice = sprintf(
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 = trim( implode( ', ', $missing_items ), ', ' );
192
- $branding = \Social_Pug::get_branding_name();
193
- $notice = sprintf(
194
  // translators: a list of disabled PHP extensions
195
- __( '<strong>%2$s</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' ),
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 post_id - id of the post
246
- * @param string $network_slug - slug of the social network
247
- * @return mixed - bool false if something went wrong, and int if everything went well
248
  */
249
  function dpsp_get_post_network_share_count( $post_id, $network_slug ) {
250
- if ( ! isset( $post_id ) && ! isset( $network_slug ) ) {
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 int post_id - the URL for which we want the share counts
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
- $args = [ 'timeout' => 30 ];
 
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
- * Returns an array with the saved shares from the database.
445
  *
446
- * @param $post_id
447
  * @return array
448
  */
449
- function dpsp_get_post_share_counts( $post_id = 0 ) {
450
- $networks_shares = dpsp_maybe_unserialize( get_post_meta( $post_id, 'dpsp_networks_shares', true ) );
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 the post's post type
514
- $post_type = get_post_type( $post_id );
515
 
516
- // Get current saved top shared posts
517
- $top_posts = Mediavine\Grow\Settings::get_setting( 'dpsp_top_shared_posts', [] );
518
- $top_posts = ( ! empty( $top_posts ) ? $top_posts : [] );
519
 
520
- // Decode the top posts into an array
521
- if ( ! empty( $top_posts ) && ! is_array( $top_posts ) ) {
522
- $top_posts = json_decode( $top_posts, ARRAY_A );
523
  }
524
 
525
- $top_posts[ $post_type ][ $post_id ] = array_sum( $share_counts );
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
- // Update top posts
550
- update_option( 'dpsp_top_shared_posts', json_encode( $top_posts ) );
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
- // If the total shares are not set in the post meta, calculate them
575
- // based on the shares for each platform
576
- if ( empty( $total_shares ) ) {
 
 
577
 
578
- $total_shares = 0;
 
 
 
579
 
580
- // Get network shares for this post
581
- $networks_shares = dpsp_maybe_unserialize( get_post_meta( $post_id, 'dpsp_networks_shares', true ) );
582
- $networks_shares = ( ! empty( $networks_shares ) ? $networks_shares : [] );
583
 
584
- // Pass through each network and increment the total shares counter
585
- foreach ( $networks as $network_slug ) {
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 total shares before returning them.
592
- * @param int $total_shares
 
593
  * @param int $post_id
594
- * @param string $location
595
  */
596
- $total_shares = apply_filters( 'dpsp_get_post_total_share_count', (int) $total_shares, $post_id, $location );
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
- if ( ! isset( $location_settings['display']['count_round'] ) ) {
647
- return $share_count;
 
 
 
 
 
 
648
  }
649
 
650
- /**
651
- * Filter the precision at which the number should be rounded.
652
- * @param int $round_precision
653
- */
654
- $round_precision = apply_filters( 'dpsp_share_counts_round_precision', 1 );
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
- // Add the transient value as an option
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( $active_tools, array_filter( $legacy_slugs, function ( $tool_slug ) use ( $tools ) {
57
- return dpsp_is_legacy_tool_active( $tools[ $tool_slug ] );
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( $tool, function ( $active_tools, $tool ) {
 
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( $tool, function ( $settings, $active_option, $is_active ) {
 
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( $tool, function ( $active_tools, $tool ) {
 
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( $tool, function ( $settings, $active_option, $is_active ) {
 
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
- $settings['networks'][ $network_slug ] = [ 'label' => $networks[ $network_slug ] ];
 
 
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', 'pinterest', 'pinterest' ];
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
- $icon_override = $icons->get( $slug . '_override' );
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\Post_Meta' );
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' => true,
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' => 'Grow.me',
82
- 'slug' => 'grow',
83
- 'label_override' => 'Save',
84
- 'icon_override' => 'grow-heart',
85
- 'share_format' => '#',
86
- 'has_share_count' => true,
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'] < dpsp_get_post_total_share_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
- $styles .= '
 
 
 
 
 
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 .= Custom_Color::get_style( 'sidebar' );
 
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' ), '', __( '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
-
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', 'social-pug' ), [ 'yes' ], __( 'Display the share count for each social network.', 'social-pug' ) ); ?>
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' ), '', __( 'Display share counts only if the total share count is higher than this value.', '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' ), '', __( 'Display share counts for an individual network only if the share count for that network is higher than this value.', '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
- $styles .= '
 
 
 
 
 
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 .= Custom_Color::get_style( $this->slug );
 
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 object Instantiated class
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'], true ) ) {
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 = null ) {
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) dpsp_get_post_total_share_count() && ! empty( $settings['display']['show_count_total'] );
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 = isset( $data['buttonSVG'] ) ? $data['buttonSVG'] : [];
 
 
 
 
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 ( ! $this->markup ) {
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 = false;
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' ), '', __( '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,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', 'social-pug' ), [ 'yes' ], __( 'Display the share count for each social network.', 'social-pug' ) ); ?>
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' ), '', __( 'Display share counts only if the total share count is higher than this value.', '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' ), '', __( 'Display share counts for an individual network only if the share count for that network is higher than this value.', '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) dpsp_get_post_total_share_count() && ! empty( $settings['display']['show_count_total'] ) ? true : false );
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' ), '', __( '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,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', 'social-pug' ), [ 'yes' ], __( 'Display the share count for each social network.', 'social-pug' ) ); ?>
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' ), '', __( '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,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
- <li class="dpsp-network-list-item <?php echo 'dpsp-network-list-item-' . $args['network_slug']; ?>">
 
 
 
 
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"><?php echo $args['icon_svg']; ?></span>
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
- <div class="dpsp-total-share-wrapper">
2
- <span class="dpsp-icon-total-share"><?php echo $args['icon']; ?></span>
 
 
 
 
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
- * Outputs the content of the widget in the front-end.
 
 
26
  *
27
- * @param array $args
28
- * @param array $instance
 
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 = dpsp_get_post_total_share_count( $top_post->ID );
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.19.2
 
7
  * Requires at least: 5.2
8
- * Requires PHP: 5.6
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
- // Autoload via Composer.
 
 
 
 
 
 
 
21
  require_once __DIR__ . '/vendor/autoload.php';
22
 
23
- // Environment setup.
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
- // Bootstrap.
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.7.2
6
- Requires PHP: 5.4.45
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 99: Development, this build not for production\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-01-19T17:56:47+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
- "X-Generator: WP-CLI 2.5.0\n"
15
  "X-Domain: social-pug\n"
16
 
17
  #. Plugin Name of the plugin
18
- #: inc/class-social-pug.php:503
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
- #. Author URI of the plugin
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:30
43
  msgid "Grow: Share Statistics"
44
  msgstr ""
45
 
46
- #: inc/admin/admin-metaboxes.php:34
47
  msgid "Grow: Debug Log"
48
  msgstr ""
49
 
50
- #: inc/admin/admin-metaboxes.php:70
51
  msgid "Social Media Image"
52
  msgstr ""
53
 
54
- #: inc/admin/admin-metaboxes.php:71
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:96
59
- #: inc/admin/admin-metaboxes.php:164
60
- #: inc/functions-admin.php:272
61
  msgid "Select Image"
62
  msgstr ""
63
 
64
- #: inc/admin/admin-metaboxes.php:97
65
- #: inc/admin/admin-metaboxes.php:165
66
- #: inc/functions-admin.php:273
67
  msgid "Remove Image"
68
  msgstr ""
69
 
70
- #: inc/admin/admin-metaboxes.php:112
71
  msgid "Social Media Title"
72
  msgstr ""
73
 
74
- #: inc/admin/admin-metaboxes.php:112
75
- #: inc/admin/admin-metaboxes.php:125
76
- #: inc/admin/admin-metaboxes.php:180
77
- #: inc/admin/admin-metaboxes.php:192
78
- #: inc/admin/admin-metaboxes.php:210
79
  msgid "Characters Remaining"
80
  msgstr ""
81
 
82
- #: inc/admin/admin-metaboxes.php:113
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:115
87
  msgid "Write a social media title..."
88
  msgstr ""
89
 
90
- #: inc/admin/admin-metaboxes.php:125
91
  msgid "Social Media Description"
92
  msgstr ""
93
 
94
- #: inc/admin/admin-metaboxes.php:126
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:128
99
  msgid "Write a social media description..."
100
  msgstr ""
101
 
102
- #: inc/admin/admin-metaboxes.php:138
103
  msgid "Pinterest Image"
104
  msgstr ""
105
 
106
- #: inc/admin/admin-metaboxes.php:139
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:180
111
  msgid "Pinterest Title"
112
  msgstr ""
113
 
114
- #: inc/admin/admin-metaboxes.php:181
115
  msgid "Write a custom Pinterest title..."
116
  msgstr ""
117
 
118
- #: inc/admin/admin-metaboxes.php:182
119
- msgid "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."
120
  msgstr ""
121
 
122
- #: inc/admin/admin-metaboxes.php:192
123
  msgid "Pinterest Description"
124
  msgstr ""
125
 
126
- #: inc/admin/admin-metaboxes.php:193
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:195
131
  msgid "Write a custom Pinterest description..."
132
  msgstr ""
133
 
134
- #: inc/admin/admin-metaboxes.php:210
 
 
 
 
135
  msgid "Custom Tweet"
136
  msgstr ""
137
 
138
- #: inc/admin/admin-metaboxes.php:211
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:213
143
  msgid "Write a custom tweet..."
144
  msgstr ""
145
 
146
- #: inc/admin/admin-metaboxes.php:214
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:229
151
  msgid "Pinterest Hidden Images"
152
  msgstr ""
153
 
154
- #: inc/admin/admin-metaboxes.php:249
155
  msgid "Remove image"
156
  msgstr ""
157
 
158
- #: inc/admin/admin-metaboxes.php:261
159
  msgid "Add images"
160
  msgstr ""
161
 
162
- #: inc/admin/admin-metaboxes.php:273
163
  msgid "Display Options"
164
  msgstr ""
165
 
166
- #: inc/admin/admin-metaboxes.php:275
167
  msgid "Hide buttons for the"
168
  msgstr ""
169
 
170
- #: inc/admin/admin-metaboxes.php:278
171
  msgid "Show buttons for the"
172
  msgstr ""
173
 
174
- #: inc/admin/admin-metaboxes.php:305
175
  msgid "Network"
176
  msgstr ""
177
 
178
- #: inc/admin/admin-metaboxes.php:306
179
- #: inc/functions-admin.php:452
180
  msgid "Shares"
181
  msgstr ""
182
 
183
- #: inc/admin/admin-metaboxes.php:337
184
  msgid "Total shares"
185
  msgstr ""
186
 
187
- #: inc/admin/admin-metaboxes.php:343
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:367
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:373
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:385
205
- #: inc/admin/admin-metaboxes.php:401
 
206
  msgid "Remove"
207
  msgstr ""
208
 
209
- #: inc/admin/admin-metaboxes.php:392
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:16
292
  #: inc/admin/views/view-submenu-page-settings.php:3
293
- #: inc/class-social-pug.php:463
294
- #: inc/functions-admin.php:131
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:121
308
  msgid "Serial key is valid."
309
  msgstr ""
310
 
311
- #: inc/admin/submenu-page-settings.php:124
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:69
472
  msgid "Google Analytics UTM Tracking"
473
  msgstr ""
474
 
475
- #: inc/admin/views/view-submenu-page-settings-pro.php:74
476
  msgid "Activate UTM Tracking"
477
  msgstr ""
478
 
479
- #: inc/admin/views/view-submenu-page-settings-pro.php:75
480
  msgid "Campaign Source"
481
  msgstr ""
482
 
483
- #: inc/admin/views/view-submenu-page-settings-pro.php:75
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:76
488
  msgid "Campaign Medium"
489
  msgstr ""
490
 
491
- #: inc/admin/views/view-submenu-page-settings-pro.php:76
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:77
496
  msgid "Campaign Name"
497
  msgstr ""
498
 
499
- #: inc/admin/views/view-submenu-page-settings-pro.php:77
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:86
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:95
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:97
514
- #: inc/class-social-pug.php:305
515
- #: inc/class-social-pug.php:500
516
  msgid "Grow Social by Mediavine"
517
  msgstr ""
518
 
519
- #: inc/admin/views/view-submenu-page-settings-pro.php:98
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:116
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:119
531
  msgid "- Expires on %s"
532
  msgstr ""
533
 
534
- #: inc/admin/views/view-submenu-page-settings-pro.php:127
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:128
540
  msgid "- Please reauthorize."
541
  msgstr ""
542
 
543
- #: inc/admin/views/view-submenu-page-settings-pro.php:147
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:168
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:174
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:175
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:177
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:190
588
  msgid "WhatsApp only on mobile devices"
589
  msgstr ""
590
 
591
- #: inc/admin/views/view-submenu-page-settings-pro.php:190
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:191
596
  msgid "Enable System Debugger"
597
  msgstr ""
598
 
599
- #: inc/admin/views/view-submenu-page-settings-pro.php:192
600
  msgid "Use jQuery JavaScript"
601
  msgstr ""
602
 
603
- #: inc/admin/views/view-submenu-page-settings-pro.php:195
 
 
 
 
604
  msgid "Refresh all share counts"
605
  msgstr ""
606
 
607
- #: inc/admin/views/view-submenu-page-settings-pro.php:207
608
  msgid "Register Version"
609
  msgstr ""
610
 
611
- #: inc/admin/views/view-submenu-page-settings-pro.php:217
612
  msgid "Previous Social Pug Serial"
613
  msgstr ""
614
 
615
  #. translators: %s Plugin Name
616
- #: inc/admin/views/view-submenu-page-settings-pro.php:223
617
  msgid "%s License"
618
  msgstr ""
619
 
620
- #: inc/admin/views/view-submenu-page-settings-pro.php:242
621
  msgid "Facebook Username"
622
  msgstr ""
623
 
624
- #: inc/admin/views/view-submenu-page-settings-pro.php:243
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:244
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:245
635
  msgid "Pinterest Username"
636
  msgstr ""
637
 
638
- #: inc/admin/views/view-submenu-page-settings-pro.php:246
639
  msgid "LinkedIn Username"
640
  msgstr ""
641
 
642
- #: inc/admin/views/view-submenu-page-settings-pro.php:247
643
  msgid "Reddit Username"
644
  msgstr ""
645
 
646
- #: inc/admin/views/view-submenu-page-settings-pro.php:248
647
  msgid "VK Username"
648
  msgstr ""
649
 
650
- #: inc/admin/views/view-submenu-page-settings-pro.php:249
651
  msgid "Tumblr Username"
652
  msgstr ""
653
 
654
- #: inc/admin/views/view-submenu-page-settings-pro.php:250
655
  msgid "Instagram Username"
656
  msgstr ""
657
 
658
- #: inc/admin/views/view-submenu-page-settings-pro.php:251
659
  msgid "YouTube Channel"
660
  msgstr ""
661
 
662
- #: inc/admin/views/view-submenu-page-settings-pro.php:252
663
  msgid "Vimeo Username"
664
  msgstr ""
665
 
666
- #: inc/admin/views/view-submenu-page-settings-pro.php:253
667
  msgid "SoundCloud Username"
668
  msgstr ""
669
 
670
- #: inc/admin/views/view-submenu-page-settings-pro.php:254
671
  msgid "Twitch Username"
672
  msgstr ""
673
 
674
- #: inc/admin/views/view-submenu-page-settings-pro.php:255
675
  msgid "Yummly Username"
676
  msgstr ""
677
 
678
- #: inc/admin/views/view-submenu-page-settings-pro.php:256
679
  msgid "Behance Username"
680
  msgstr ""
681
 
682
- #: inc/admin/views/view-submenu-page-settings-pro.php:257
683
  msgid "Xing Username"
684
  msgstr ""
685
 
686
- #: inc/admin/views/view-submenu-page-settings-pro.php:258
687
  msgid "Github Username"
688
  msgstr ""
689
 
690
- #: inc/admin/views/view-submenu-page-settings-pro.php:259
691
  msgid "Telegram Username/Channel"
692
  msgstr ""
693
 
694
- #: inc/admin/views/view-submenu-page-settings-pro.php:260
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:181
874
- #: inc/tools/share-inline-content/views/view-submenu-page-content.php:216
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:188
898
- #: inc/tools/share-inline-content/views/view-submenu-page-content.php:223
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:188
906
- #: inc/tools/share-inline-content/views/view-submenu-page-content.php:223
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:195
913
- #: inc/tools/share-inline-content/views/view-submenu-page-content.php:230
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:197
921
- #: inc/tools/share-inline-content/views/view-submenu-page-content.php:232
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:198
929
- #: inc/tools/share-inline-content/views/view-submenu-page-content.php:233
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:206
937
- #: inc/tools/share-inline-content/views/view-submenu-page-content.php:241
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:206
945
- #: inc/tools/share-inline-content/views/view-submenu-page-content.php:241
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:237
952
- #: inc/tools/share-inline-content/views/view-submenu-page-content.php:273
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:111
971
  msgid "Settings saved."
972
  msgstr ""
973
 
974
- #: inc/class-admin-notices.php:112
975
  msgid "Settings imported."
976
  msgstr ""
977
 
978
- #: inc/class-admin-notices.php:113
979
  msgid "Please select an import file."
980
  msgstr ""
981
 
982
- #: inc/class-admin-notices.php:114
983
  msgid "Import file is not valid."
984
  msgstr ""
985
 
986
- #: inc/class-admin-notices.php:115
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:139
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:189
997
- #: inc/class-admin-notices.php:220
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:191
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:192
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:222
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:223
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:224
1023
- #: inc/class-admin-notices.php:289
1024
- #: inc/class-admin-notices.php:330
1025
  msgid "Thank you, I understand."
1026
  msgstr ""
1027
 
1028
- #. translators: %s Branding name, free or pro version
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:286
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:287
1042
  msgid "Check out the blog post"
1043
  msgstr ""
1044
 
1045
- #: inc/class-admin-notices.php:287
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:288
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:314
1054
  msgid "<strong>Your Grow Social Pro by Mediavine JavaScript has been optimized!</strong>"
1055
  msgstr ""
1056
 
1057
- #: inc/class-admin-notices.php:316
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:319
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:320
1068
  msgid "please contact Mediavine"
1069
  msgstr ""
1070
 
1071
  #. translators: Link to settings
1072
- #: inc/class-admin-notices.php:324
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:325
1078
  msgid "Grow Settings page under Misc"
1079
  msgstr ""
1080
 
1081
- #: inc/class-admin-notices.php:328
1082
  msgid "<strong>After July 2021, the jQuery JavaScript will be removed completely.</strong>"
1083
  msgstr ""
1084
 
1085
- #: inc/class-admin-notices.php:352
1086
  msgid "Grow Social by Mediavine Notification"
1087
  msgstr ""
1088
 
1089
- #: inc/class-admin-notices.php:353
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:354
1094
  msgid "Learn how to set up Grow Social"
1095
  msgstr ""
1096
 
1097
  #. translators: %s
1098
- #: inc/class-dpsp-network-buttons-outputter.php:223
1099
  msgid "Share on %s"
1100
  msgstr ""
1101
 
1102
- #: inc/class-dpsp-network-buttons-outputter.php:226
1103
  msgid "Save to Pinterest"
1104
  msgstr ""
1105
 
1106
- #: inc/class-dpsp-network-buttons-outputter.php:230
1107
  msgid "Send over email"
1108
  msgstr ""
1109
 
1110
- #: inc/class-dpsp-network-buttons-outputter.php:234
1111
  msgid "Print this webpage"
1112
  msgstr ""
1113
 
1114
- #: inc/class-dpsp-network-buttons-outputter.php:238
1115
  msgid "Save on Grow.me"
1116
  msgstr ""
1117
 
1118
  #. translators: %s
1119
- #: inc/class-dpsp-network-buttons-outputter.php:262
1120
  msgid "Follow on %s"
1121
  msgstr ""
1122
 
1123
- #: inc/class-social-pug.php:305
1124
  msgid "Grow"
1125
  msgstr ""
1126
 
1127
- #: inc/functions-admin.php:136
1128
  msgid "Active"
1129
  msgstr ""
1130
 
1131
- #: inc/functions-admin.php:136
1132
  msgid "Inactive"
1133
  msgstr ""
1134
 
1135
- #: inc/functions-admin.php:147
1136
  msgid "Learn More"
1137
  msgstr ""
1138
 
1139
- #: inc/functions-admin.php:349
1140
  msgid "Apply Selection"
1141
  msgstr ""
1142
 
1143
- #: inc/functions-admin.php:387
1144
  msgid "This button has no label text."
1145
  msgstr ""
1146
 
1147
- #: inc/functions-admin.php:565
 
 
 
 
1148
  msgid "Skyrocket your social media marketing"
1149
  msgstr ""
1150
 
1151
- #: inc/functions-admin.php:566
1152
  msgid "Force a custom image to be shared on Pinterest when using the Pinterest button."
1153
  msgstr ""
1154
 
1155
- #: inc/functions-admin.php:567
1156
  msgid "Add unlimited hidden Pinterest images to your posts and pages."
1157
  msgstr ""
1158
 
1159
- #: inc/functions-admin.php:568
1160
  msgid "Make your website mobile-friendly with sticky footer social share buttons."
1161
  msgstr ""
1162
 
1163
- #: inc/functions-admin.php:569
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:570
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:571
1172
  msgid "Display Social Share counts for Facebook, Twitter, Pinterest, and Reddit."
1173
  msgstr ""
1174
 
1175
- #: inc/functions-admin.php:572
1176
  msgid "Add a \"Pin It\" button that appears when visitors hover your in-post images."
1177
  msgstr ""
1178
 
1179
- #: inc/functions-admin.php:573
1180
  msgid "Add custom pin descriptions and repin IDs to your in-post images."
1181
  msgstr ""
1182
 
1183
- #: inc/functions-admin.php:574
1184
  msgid "Recover your lost social share counts if you've ever changed your permalink structure."
1185
  msgstr ""
1186
 
1187
- #: inc/functions-admin.php:575
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:576
1192
  msgid "Get immediate help with priority support."
1193
  msgstr ""
1194
 
1195
- #: inc/functions-admin.php:577
1196
  msgid "And much, much more..."
1197
  msgstr ""
1198
 
1199
- #: inc/functions-admin.php:580
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:41
1212
  msgid "shares"
1213
  msgstr ""
1214
 
1215
- #: inc/functions.php:469
1216
  msgid "Sharing is Caring"
1217
  msgstr ""
1218
 
1219
- #: inc/functions.php:470
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:16
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:17
1228
  msgid "Display social media follow buttons."
1229
  msgstr ""
1230
 
1231
- #: inc/tools/follow-widget/class-dpsp-social-media-follow-buttons.php:60
1232
- #: inc/widgets/class-dpsp-top-shared-posts.php:158
1233
  msgid "Title:"
1234
  msgstr ""
1235
 
1236
- #: inc/tools/follow-widget/class-dpsp-social-media-follow-buttons.php:66
1237
  msgid "Description:"
1238
  msgstr ""
1239
 
1240
- #: inc/tools/follow-widget/class-dpsp-social-media-follow-buttons.php:72
1241
  msgid "Buttons Settings:"
1242
  msgstr ""
1243
 
1244
- #: inc/tools/follow-widget/class-dpsp-social-media-follow-buttons.php:73
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:74
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:220
1356
- #: inc/tools/share-inline-content/views/view-submenu-page-content.php:256
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:225
1364
- #: inc/tools/share-inline-content/views/view-submenu-page-content.php:261
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:226
1372
- #: inc/tools/share-inline-content/views/view-submenu-page-content.php:262
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:16
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:208
1710
- #: inc/tools/share-inline-content/views/view-submenu-page-content.php:243
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:208
1717
- #: inc/tools/share-inline-content/views/view-submenu-page-content.php:243
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:210
1724
- #: inc/tools/share-inline-content/views/view-submenu-page-content.php:245
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:210
1731
- #: inc/tools/share-inline-content/views/view-submenu-page-content.php:245
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:251
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:644
1758
  msgid "Grow Social by Mediavine: Pin Title"
1759
  msgstr ""
1760
 
1761
- #: inc/tools/share-images-pinterest/share-images-pinterest.php:651
1762
  msgid "Grow Social by Mediavine: Pin Description"
1763
  msgstr ""
1764
 
1765
- #: inc/tools/share-images-pinterest/share-images-pinterest.php:657
1766
  msgid "Grow Social by Mediavine: Pin Repin ID"
1767
  msgstr ""
1768
 
1769
- #: inc/tools/share-images-pinterest/share-images-pinterest.php:662
1770
  msgid "Grow Social by Mediavine: Disable Pinning"
1771
  msgstr ""
1772
 
1773
- #: inc/tools/share-images-pinterest/share-images-pinterest.php:663
1774
  msgid "No"
1775
  msgstr ""
1776
 
1777
- #: inc/tools/share-images-pinterest/share-images-pinterest.php:663
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:15
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:15
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:15
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:19
2162
  msgid "Grow Social by Mediavine: Top Shared Posts"
2163
  msgstr ""
2164
 
2165
- #: inc/widgets/class-dpsp-top-shared-posts.php:20
2166
  msgid "Display the most shared posts from any custom post type."
2167
  msgstr ""
2168
 
2169
- #: inc/widgets/class-dpsp-top-shared-posts.php:125
2170
  msgid "Shares: "
2171
  msgstr ""
2172
 
2173
- #: inc/widgets/class-dpsp-top-shared-posts.php:164
2174
  msgid "Post types:"
2175
  msgstr ""
2176
 
2177
- #: inc/widgets/class-dpsp-top-shared-posts.php:174
2178
  msgid "Post Options:"
2179
  msgstr ""
2180
 
2181
- #: inc/widgets/class-dpsp-top-shared-posts.php:175
2182
  msgid "Number of posts to show: "
2183
  msgstr ""
2184
 
2185
- #: inc/widgets/class-dpsp-top-shared-posts.php:181
2186
  msgid "Display featured image:"
2187
  msgstr ""
2188
 
2189
- #: inc/widgets/class-dpsp-top-shared-posts.php:187
2190
  msgid "Featured image size: "
2191
  msgstr ""
2192
 
2193
- #: inc/widgets/class-dpsp-top-shared-posts.php:199
2194
  msgid "Display post excerpt:"
2195
  msgstr ""
2196
 
2197
- #: inc/widgets/class-dpsp-top-shared-posts.php:205
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 ComposerAutoloaderInitfa6ae87d9714e2b765d59bef971effef::getLoader();
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 array $classMap Class to filename map
 
 
 
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 $prefix The prefix
106
- * @param array|string $paths The PSR-0 root directories
107
- * @param bool $prepend Whether to prepend the directories
 
 
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 $prefix The prefix/namespace, with trailing '\\'
151
- * @param array|string $paths The PSR-4 base directories
152
- * @param bool $prepend Whether to prepend the directories
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 $prefix The prefix
199
- * @param array|string $paths The PSR-0 base directories
 
 
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 $prefix The prefix/namespace, with trailing '\\'
215
- * @param array|string $paths The PSR-4 base directories
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 bool|null True if loaded, null otherwise
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
- private static $installed = array (
25
- 'root' =>
26
- array (
27
- 'pretty_version' => 'dev-main',
28
- 'version' => 'dev-main',
29
- 'aliases' =>
30
- array (
31
- ),
32
- 'reference' => '9ac9e1999626321c75fff5a2b10648ca3e1acd9a',
33
- 'name' => 'mediavine/mediavine-grow-pro',
34
- ),
35
- 'versions' =>
36
- array (
37
- 'kernl/kernl-update-checker' =>
38
- array (
39
- 'pretty_version' => '2.4.0',
40
- 'version' => '2.4.0.0',
41
- 'aliases' =>
42
- array (
43
- ),
44
- 'reference' => '84e4ec84f351bd766ae72cc1d9b27cf109382e95',
45
- ),
46
- 'mediavine/mediavine-grow-pro' =>
47
- array (
48
- 'pretty_version' => 'dev-main',
49
- 'version' => 'dev-main',
50
- 'aliases' =>
51
- array (
52
- ),
53
- 'reference' => '9ac9e1999626321c75fff5a2b10648ca3e1acd9a',
54
- ),
55
- ),
56
- );
57
-
58
-
59
-
60
-
61
-
62
-
63
-
64
- public static function getInstalledPackages()
65
- {
66
- return array_keys(self::$installed['versions']);
67
- }
68
-
69
-
70
-
71
-
72
-
73
-
74
-
75
-
76
-
77
- public static function isInstalled($packageName)
78
- {
79
- return isset(self::$installed['versions'][$packageName]);
80
- }
81
-
82
-
83
-
84
-
85
-
86
-
87
-
88
-
89
-
90
-
91
-
92
-
93
-
94
-
95
- public static function satisfies(VersionParser $parser, $packageName, $constraint)
96
- {
97
- $constraint = $parser->parseConstraints($constraint);
98
- $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
99
-
100
- return $provided->matches($constraint);
101
- }
102
-
103
-
104
-
105
-
106
-
107
-
108
-
109
-
110
-
111
-
112
- public static function getVersionRanges($packageName)
113
- {
114
- if (!isset(self::$installed['versions'][$packageName])) {
115
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
116
- }
117
-
118
- $ranges = array();
119
- if (isset(self::$installed['versions'][$packageName]['pretty_version'])) {
120
- $ranges[] = self::$installed['versions'][$packageName]['pretty_version'];
121
- }
122
- if (array_key_exists('aliases', self::$installed['versions'][$packageName])) {
123
- $ranges = array_merge($ranges, self::$installed['versions'][$packageName]['aliases']);
124
- }
125
- if (array_key_exists('replaced', self::$installed['versions'][$packageName])) {
126
- $ranges = array_merge($ranges, self::$installed['versions'][$packageName]['replaced']);
127
- }
128
- if (array_key_exists('provided', self::$installed['versions'][$packageName])) {
129
- $ranges = array_merge($ranges, self::$installed['versions'][$packageName]['provided']);
130
- }
131
-
132
- return implode(' || ', $ranges);
133
- }
134
-
135
-
136
-
137
-
138
-
139
- public static function getVersion($packageName)
140
- {
141
- if (!isset(self::$installed['versions'][$packageName])) {
142
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
143
- }
144
-
145
- if (!isset(self::$installed['versions'][$packageName]['version'])) {
146
- return null;
147
- }
148
-
149
- return self::$installed['versions'][$packageName]['version'];
150
- }
151
-
152
-
153
-
154
-
155
-
156
- public static function getPrettyVersion($packageName)
157
- {
158
- if (!isset(self::$installed['versions'][$packageName])) {
159
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
160
- }
161
-
162
- if (!isset(self::$installed['versions'][$packageName]['pretty_version'])) {
163
- return null;
164
- }
165
-
166
- return self::$installed['versions'][$packageName]['pretty_version'];
167
- }
168
-
169
-
170
-
171
-
172
-
173
- public static function getReference($packageName)
174
- {
175
- if (!isset(self::$installed['versions'][$packageName])) {
176
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
177
- }
178
-
179
- if (!isset(self::$installed['versions'][$packageName]['reference'])) {
180
- return null;
181
- }
182
-
183
- return self::$installed['versions'][$packageName]['reference'];
184
- }
185
-
186
-
187
-
188
-
189
-
190
- public static function getRootPackage()
191
- {
192
- return self::$installed['root'];
193
- }
194
-
195
-
196
-
197
-
198
-
199
-
200
-
201
- public static function getRawData()
202
- {
203
- return self::$installed;
204
- }
205
-
206
-
207
-
208
-
209
-
210
-
211
-
212
-
213
-
214
-
215
-
216
-
217
-
218
-
219
-
220
-
221
-
222
-
223
-
224
- public static function reload($data)
225
- {
226
- self::$installed = $data;
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