Asset CleanUp: Page Speed Booster - Version 1.3.6.0

Version Description

  • Improved the speed of the generated & printed combined CSS/JS assets by ~30ms (depending on the hosting package and the PHP version used) when the HTML source is altered by avoiding extra useless verifications of the HTML output
  • When managing the assets, make sure to show "before" and "after" content (so the user is aware how is that inline tag generated) associated with a handle too (not just the "data" one added via wp_localize_script())
  • When managing the assets, make sure the checkboxes from the load exception area are always disabled if there's no unload rule set, thus avoiding any user error to mistakenly add useless load exceptions to an already loading asset, also avoiding any confusing and get a cleaner list in the "Overview" area
  • "Overview" page update: If there's any "Load it for the logged-in user" exception for a handle, show it
  • Fix: Avoid creating redundant CSS files when minify inlined tags is enabled, leading to a large number of files in the caching
Download this release

Release Info

Developer gabelivan
Plugin Icon 128x128 Asset CleanUp: Page Speed Booster
Version 1.3.6.0
Comparing to
See all releases

Code changes from version 1.3.5.9 to 1.3.6.0

assets/script.min.js CHANGED
@@ -1 +1 @@
1
- function wpacuTabOpenSettingsArea(a,b){a.preventDefault();var c,d,e;for(d=document.getElementsByClassName("wpacu-settings-tab-content"),c=0;c<d.length;c++)d[c].style.display="none";for(e=document.getElementsByClassName("wpacu-settings-tab-link"),c=0;c<e.length;c++)e[c].className=e[c].className.replace(" active","");document.getElementById(b).style.display="table-cell",jQuery('a[href="#'+b+'"]').addClass("active"),jQuery("#wpacu-selected-tab-area").val(b)}function wpacuBytesToSize(a){return 0===a?"N/A":(a/1024).toFixed(4)+" KB"}function wpacuAjaxClearCache(){jQuery.post(wpacu_object.ajax_url+"?wpacu_clear_cache",{action:wpacu_object.plugin_id+"_clear_cache",time_r:(new Date).getTime()},function(a){})}jQuery(document).ready(function(a){function b(){if(!a("#wpacu_ajax_fetch_assets_list_dashboard_view").length)return!1;var b,c,d,f,g,h={};"direct"===wpacu_object.dom_get_type?(h[wpacu_object.plugin_name+"_load"]=1,h[wpacu_object.plugin_name+"_time_r"]=(new Date).getTime(),a.ajax({method:"GET",url:wpacu_object.page_url,data:h,cache:!1,complete:function(b,c){if("error"===b.statusText){f=b.responseText.replace(/(<([^>]+)>)/gi,"");try{f=String(f).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}catch(a){console.log(a)}g=wpacu_object.ajax_direct_fetch_error,g=g.replace(/{wpacu_output}/,f),g=g.replace(/{wpacu_status_code_error}/,b.status),a("#wpacu_meta_box_content").html(g)}}}).done(function(f){if(f.lastIndexOf(wpacu_object.start_del_e)<0||f.lastIndexOf(wpacu_object.end_del_e)<0||f.lastIndexOf(wpacu_object.start_del_h)<0||f.lastIndexOf(wpacu_object.end_del_h)<0){g=wpacu_object.ajax_direct_fetch_error_with_success_response,g=g.replace(/{wpacu_output}/,xhr.responseText.replace(/(<([^>]+)>)/gi,""));try{g=String(g).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}catch(a){console.log(a)}return void a("#wpacu_meta_box_content").html(g)}c=f.substring(f.lastIndexOf(wpacu_object.start_del_e)+wpacu_object.start_del_e.length,f.lastIndexOf(wpacu_object.end_del_e)),d=f.substring(f.lastIndexOf(wpacu_object.start_del_h)+wpacu_object.start_del_h.length,f.lastIndexOf(wpacu_object.end_del_h)),b={action:wpacu_object.plugin_name+"_get_loaded_assets",wpacu_list_e:c,wpacu_list_h:d,post_id:wpacu_object.post_id,page_url:wpacu_object.page_url,tag_id:wpacu_object.tag_id,wpacu_taxonomy:wpacu_object.wpacu_taxonomy,time_r:(new Date).getTime()},a.post(wpacu_object.ajax_url,b,function(b){b&&(a("#wpacu_meta_box_content").html(b),a("#wpacu_home_page_form").length>0&&a("#submit").show(),setTimeout(function(){e.load(),a(".wpacu_asset_row").removeClass("wpacu-loading"),a("#wpacu-assets-reloading").remove(),e.checkSourcesFor404Errors()},200))})})):"wp_remote_post"===wpacu_object.dom_get_type&&(b={action:wpacu_object.plugin_name+"_get_loaded_assets",post_id:wpacu_object.post_id,page_url:wpacu_object.page_url,tag_id:wpacu_object.tag_id,wpacu_taxonomy:wpacu_object.wpacu_taxonomy,time_r:(new Date).getTime()},a.post(wpacu_object.ajax_url,b,function(b){if(!b)return!1;a("#wpacu_meta_box_content").html(b),a("#wpacu_home_page_form").length>0&&a("#submit").show(),setTimeout(function(){e.load(),setTimeout(function(){e.checkSourcesFor404Errors()},100)},200)}))}a('input[name="wpacu_sub_tab_area"]').click(function(){a(this).prop("checked")&&a("#wpacu-selected-sub-tab-area").val(a(this).val())}),a("#wpacu_minify_css_enable, #wpacu_combine_loaded_css_enable, #wpacu_minify_js_enable, #wpacu_combine_loaded_js_enable, #wpacu_cdn_rewrite_enable, #wpacu_enable_test_mode").click(function(){a(this).prop("checked")?a('[data-linked-to="'+a(this).attr("id")+'"]').find(".wpacu-circle-status").addClass("wpacu-on").removeClass("wpacu-off"):a('[data-linked-to="'+a(this).attr("id")+'"]').find(".wpacu-circle-status").addClass("wpacu-off").removeClass("wpacu-on")}),a("#wpacu-mark-license-valid-button").click(function(){return confirm(wpacu_object.mark_license_valid_confirm)}),a("#wpacu-license-form").submit(function(){a("#edd_license_activate_btn").attr("disabled","disabled"),a("#edd_license_deactivate_btn").attr("disabled","disabled"),a(".wpacu-license-spinner").show()});var c,d;a("#wpacu-reset-drop-down").on("change keyup keydown mouseup mousedown click",function(){""===a(this).val()?(a("#wpacu-warning-read").removeClass("wpacu-visible"),a("#wpacu-reset-submit-btn").attr("disabled","disabled").removeClass("button-primary").addClass("button-secondary")):("reset_everything"===a(this).val()?a("#wpacu-license-data-remove-area").addClass("wpacu-visible"):a("#wpacu-license-data-remove-area").removeClass("wpacu-visible"),a("#wpacu-warning-read").addClass("wpacu-visible"),a("#wpacu-reset-submit-btn").removeAttr("disabled").removeClass("button-secondary").addClass("button-primary")),a(".wpacu-tools-area .wpacu-warning").hide(),c=a(this).find("option:selected"),a("#"+c.attr("data-id")).show()}),a("#wpacu-reset-submit-btn").on("click",function(){if("reset_settings"===a("#wpacu-reset-drop-down").val()?d=wpacu_object.reset_settings_confirm_msg:"reset_everything_except_settings"===a("#wpacu-reset-drop-down").val()?d=wpacu_object.reset_everything_except_settings_confirm_msg:"reset_everything"===a("#wpacu-reset-drop-down").val()&&(d=wpacu_object.reset_everything_confirm_msg),!confirm(d))return!1;a("#wpacu-action-confirmed").val("yes"),setTimeout(function(){"yes"===a("#wpacu-action-confirmed").val()&&a("#wpacu-tools-form").submit()},1e3)}),a("#wpacu-import-form").submit(function(){if(!confirm(wpacu_object.import_confirm_msg))return!1;a(this).find("button").addClass("wpacu-importing").prop("disabled",!0)});var e={load:function(){var b,c,d,f=".input-unload-on-this-page.wpacu-not-locked";a(".input-unload-on-this-page").on("click change",function(){b=a(this).attr("data-handle"),c=a(this).hasClass("wpacu_unload_rule_for_style")?"style":"script",a(this).prop("checked")?(e.uncheckAllOtherBulkUnloadRules(a(this),!1),a("div.wpacu_exception_options_area_wrap[data-"+c+'-handle="'+b+'"]').parent("div").removeClass("wpacu_hide"),a(this).closest("tr").addClass("wpacu_not_load")):(a(this).closest("tr").removeClass("wpacu_not_load"),d=a(this).parents(".wpacu_asset_row"),e.hideLoadExceptionArea(d,b,c))}),a(".wpacu-plugin-check-all").on("click",function(b){b.preventDefault();var c=a(this).attr("data-wpacu-plugin");a('table.wpacu_list_by_location[data-wpacu-plugin="'+c+'"]').find(f).prop("checked",!0).closest("tr").addClass("wpacu_not_load")}),a(".wpacu-plugin-uncheck-all").on("click",function(b){b.preventDefault();var c=a(this).attr("data-wpacu-plugin");a('table.wpacu_list_by_location[data-wpacu-plugin="'+c+'"]').find(f).prop("checked",!1).closest("tr").removeClass("wpacu_not_load")}),a(".wpacu-plugin-check-load-all").on("click change",function(b){b.preventDefault();var c=a(this).attr("data-wpacu-plugin"),d=a('table.wpacu_list_by_location[data-wpacu-plugin="'+c+'"]');d.find(".wpacu_load_it_option_one.wpacu_load_exception").prop("checked",!0).closest("tr.wpacu_is_bulk_unloaded").removeClass("wpacu_not_load"),d.find(f).prop("checked",!1).trigger("change")}),a(".wpacu-plugin-uncheck-load-all").on("click change",function(b){b.preventDefault();var c=a(this).attr("data-wpacu-plugin"),d=a('table.wpacu_list_by_location[data-wpacu-plugin="'+c+'"]');d.find(".wpacu_load_it_option_one.wpacu_load_exception").prop("checked",!1).closest("tr.wpacu_is_bulk_unloaded").addClass("wpacu_not_load"),d.find(f).prop("checked",!1).trigger("change")}),a(".wpacu_keep_bulk_rule").click(function(){a(this).prop("checked")&&a(this).parents("li").next().removeClass("remove_rule")}),a(".wpacu_remove_bulk_rule").click(function(){a(this).prop("checked")&&a(this).parents("li").addClass("remove_rule")}),a(".wpacu_bulk_unload").on("click change",function(){b=a(this).attr("data-handle"),c=a(this).attr("data-handle-for"),d=a("[data-"+c+'-handle-row="'+b+'"]'),a(this).prop("checked")?(a(this).hasClass("wpacu_unload_it_regex_checkbox")||(a(this).parent("label").addClass("wpacu_input_load_checked"),a(this).closest("tr").addClass("wpacu_not_load")),a("div.wpacu_exception_options_area_wrap[data-"+c+'-handle="'+b+'"]').parent("div").removeClass("wpacu_hide"),a(this).hasClass("wpacu_global_unload")?(e.uncheckAllOtherBulkUnloadRules(a(this),!0),a('.input-unload-on-this-page[data-handle-for="'+c+'"][data-handle="'+b+'"]').prop("checked",!1)):a(this).hasClass("wpacu_post_type_unload")&&(e.uncheckAllOtherBulkUnloadRules(a(this),!1),a('.input-unload-on-this-page[data-handle-for="'+c+'"][data-handle="'+b+'"]').prop("checked",!1))):(a(this).hasClass("wpacu_unload_it_regex_checkbox")||(a(this).parent("label").removeClass("wpacu_input_load_checked"),a(this).closest("tr").removeClass("wpacu_not_load")),e.hideLoadExceptionArea(d,b,c)),d.hasClass("wpacu_is_bulk_unloaded")||a(".wpacu_bulk_unload:not(.wpacu_unload_it_regex_checkbox)").is(":checked")||a(this).closest("tr").removeClass("wpacu_not_load")}),a(".wpacu_load_it_option_one.wpacu_load_exception").on("click change",function(){var b=a(this).attr("data-handle");if(a(this).prop("checked")){a(this).parent("label").addClass("wpacu_global_unload_exception");var c="";a(this).hasClass("wpacu_style")?c="style":a(this).hasClass("wpacu_script")&&(c="script"),a("#"+c+"_"+b).prop("checked",!1).trigger("change")}else a(this).parent("label").removeClass("wpacu_global_unload_exception")}),a(".wpacu_unload_it_regex_checkbox").on("click change",function(){var b=a(this).parents("li");a(this).prop("checked")?(b.find("label").addClass("wpacu_unload_checked"),b.find("textarea").prop("disabled",!1).focus().removeClass("wpacu_disabled"),b.find(".wpacu_handle_unload_regex_input_wrap").removeClass("wpacu_hide")):(b.find("label").removeClass("wpacu_unload_checked"),b.find("textarea").blur().addClass("wpacu_disabled"),""===b.find("textarea").val().trim()&&(b.find("textarea").prop("disabled",!0).val(""),b.find(".wpacu_handle_unload_regex_input_wrap").addClass("wpacu_hide")))}),a(".wpacu_load_it_option_two").on("click change",function(){var b=a(this).parents("li");a(this).prop("checked")?(b.find("label").addClass("wpacu_bold"),b.find("textarea").prop("disabled",!1).focus().removeClass("wpacu_disabled"),b.find(".wpacu_load_regex_input_wrap").removeClass("wpacu_hide")):(b.find("label").removeClass("wpacu_bold"),b.find("textarea").blur().addClass("wpacu_disabled"),""===b.find("textarea").val().trim()&&(b.find("textarea").prop("disabled",!0).val(""),b.find(".wpacu_load_regex_input_wrap").addClass("wpacu_hide")))}),a(".wpacu_script_attr_rule_input").on("click change",function(){a(this).is(":checked")&&(a(this).parents("ul").find(".wpacu_script_attr_rule_input").not(a(this)).prop("checked",!1),a(this).hasClass("wpacu_script_attr_rule_global")&&a(this).parents("ul").find(".wpacu-script-attr-make-exception").removeClass("wpacu_hide")),a(this).parents("ul").find(".wpacu_script_attr_rule_global").is(":checked")||a(this).parents("ul").find(".wpacu-script-attr-make-exception").addClass("wpacu_hide")}),a(".wpacu-add-handle-note").on("click",function(b){b.preventDefault();var c,d,e=a(this).attr("data-handle");a(this).hasClass("wpacu-for-script")?c=a('.wpacu-handle-notes-field[data-script-handle="'+e+'"]'):a(this).hasClass("wpacu-for-style")&&(c=a('.wpacu-handle-notes-field[data-style-handle="'+e+'"]')),c.length<1||(d=c.find(":input"),c.is(":hidden")?(c.show(),d.prop("disabled",!1)):(c.hide(),""===d.val().trim()&&"true"===d.attr("data-wpacu-is-empty-on-page-load")&&d.prop("disabled",!0).val("")))}),a(".wpacu-external-file-size").on("click",function(b){b.preventDefault();var c,d=a(this),e=d.attr("data-src");d.hide(),c=d.next(),c.show(),e.includes("/?")?a.get(e,{},function(a,b,d){if("success"!==b)return"N/A";c.html(wpacuBytesToSize(a.length))}):a.post(wpacu_object.ajax_url,{action:wpacu_object.plugin_id+"_get_external_file_size",wpacu_remote_file:e},function(a){c.html(a)})})},pluginLoadManager:function(){a(".wpacu_plugin_load_it").on("click",function(){var b=a(this).attr("data-wpacu-plugin-path");a(this).prop("checked")&&(a('.wrap_plugin_load_exception_options[data-wpacu-plugin-path="'+b+'"]').addClass("wpacu_hide"),a('.wpacu_plugin_unload_regex_input_wrap[data-wpacu-plugin-path="'+b+'"]').addClass("wpacu_hide"),a('.wpacu_plugin_unload_site_wide[data-wpacu-plugin-path="'+b+'"]').parent("label").removeClass("wpacu_plugin_unload_rule_input_checked"),a('.wpacu_plugin_unload_regex_radio[data-wpacu-plugin-path="'+b+'"]').parent("label").removeClass("wpacu_plugin_unload_rule_input_checked"))}),a(".wpacu_plugin_unload_site_wide").on("click",function(){var b=a(this).attr("data-wpacu-plugin-path");a(this).prop("checked")?(a(this).parent("label").addClass("wpacu_plugin_unload_rule_input_checked"),a('.wpacu_plugin_unload_regex_radio[data-wpacu-plugin-path="'+b+'"]').parent("label").removeClass("wpacu_plugin_unload_rule_input_checked"),a('.wpacu_plugin_unload_regex_input_wrap[data-wpacu-plugin-path="'+b+'"]').addClass("wpacu_hide"),a('.wrap_plugin_load_exception_options[data-wpacu-plugin-path="'+b+'"]').removeClass("wpacu_hide")):(a(this).parent("label").removeClass("wpacu_plugin_unload_rule_input_checked"),a('.wrap_plugin_load_exception_options[data-wpacu-plugin-path="'+b+'"]').addClass("wpacu_hide"))}),a(".wpacu_plugin_unload_regex_radio").on("click",function(){var b=a(this).attr("data-wpacu-plugin-path");a(this).prop("checked")?(a(this).parent("label").addClass("wpacu_plugin_unload_rule_input_checked"),a('.wpacu_plugin_unload_regex_input_wrap[data-wpacu-plugin-path="'+b+'"]').removeClass("wpacu_hide"),a('.wrap_plugin_load_exception_options[data-wpacu-plugin-path="'+b+'"]').removeClass("wpacu_hide"),a('.wpacu_plugin_unload_site_wide[data-wpacu-plugin-path="'+b+'"]').prop("checked",!1).parent("label").removeClass("wpacu_plugin_unload_rule_input_checked")):(a('.wpacu_plugin_unload_regex_input_wrap[data-wpacu-plugin-path="'+b+'"]').addClass("wpacu_hide"),a(this).parent("label").removeClass("wpacu_plugin_unload_rule_input_checked"),a('.wrap_plugin_load_exception_options[data-wpacu-plugin-path="'+b+'"]').addClass("wpacu_hide"))}),a(".wpacu_plugin_load_exception_regex").on("click",function(){var b=a(this).attr("data-wpacu-plugin-path");a(this).prop("checked")?a('.wpacu_load_regex_input_wrap[data-wpacu-plugin-path="'+b+'"]').removeClass("wpacu_hide"):a('.wpacu_load_regex_input_wrap[data-wpacu-plugin-path="'+b+'"]').addClass("wpacu_hide")})},hideLoadExceptionArea:function(b,c,d){b.hasClass("wpacu_is_bulk_unloaded")||b.find(".wpacu_bulk_unload").is(":checked")||a("div.wpacu_exception_options_area_wrap[data-"+d+'-handle="'+c+'"]').parent("div").addClass("wpacu_hide")},uncheckAllOtherBulkUnloadRules:function(a,b){var c=".wpacu_bulk_unload";!1===b&&(c=".wpacu_bulk_unload:not(.wpacu_unload_it_regex_checkbox)"),a.closest("tr").find(c).not(a).prop("checked",!1).parent("label").removeClass("wpacu_input_load_checked").removeClass("wpacu_unload_checked")},checkSourcesFor404Errors:function(){var b=a("[data-wpacu-external-source]");if(!(b.length<1)){var c=b.length,d="";b.each(function(b){var e=a(this),f=e.attr("data-wpacu-external-source");d+=f+"-at-wpacu-at-",b===c-1&&jQuery.post(wpacu_object.ajax_url+"?wpacu_check_external_url",{action:wpacu_object.plugin_id+"_check_external_urls_for_status_code",wpacu_check_urls:d},function(b){var c=jQuery.parseJSON(b);a.each(c,function(b,c){a('[data-wpacu-external-source="'+c+'"]').css({color:"#cc0000"}).parent("div").find("[data-wpacu-external-source-status]").html('<small>* <em style="font-weight: 600;">'+wpacu_object.source_load_error_msg+"</em></small>")})})})}}};a(window).load(function(){e.checkSourcesFor404Errors()}),a("#wpacu_post_type_select").change(function(){a("#wpacu_post_type_form").submit()}),a("#wpacu_taxonomy_select").change(function(){a("#wpacu_taxonomy_form").submit()}),a("#wpacu_dashboard").click(function(){a(this).prop("checked")?a("#wpacu-settings-assets-retrieval-mode").show():a("#wpacu-settings-assets-retrieval-mode").hide()}),a(".wpacu-dom-get-type-selection").change(function(){a(this).is(":checked")&&(a(".wpacu-dom-get-type-info").hide(),a("#"+a(this).attr("data-target")).fadeIn("fast"))}),a("#wpacu_frontend").click(function(){a(this).prop("checked")?a("#wpacu-settings-frontend-exceptions").show():a("#wpacu-settings-frontend-exceptions").hide()}),a(".google_fonts_combine_type").change(function(){a(".wpacu_google_fonts_combine_type_area").hide(),"async"===a(this).val()?a("#wpacu_google_fonts_combine_type_async_info_area").fadeIn():"async_preload"===a(this).val()?a("#wpacu_google_fonts_combine_type_async_preload_info_area").fadeIn():a("#wpacu_google_fonts_combine_type_rb_info_area").fadeIn()}),a("#wpacu_assets_list_layout").on("click change",function(){"by-location"===a(this).val()?a("#wpacu-assets-list-by-location-selected").fadeIn("fast"):a("#wpacu-assets-list-by-location-selected").fadeOut("fast")}),a("#wpacu_disable_jquery_migrate").on("click",function(){return!a(this).is(":checked")||(!(!a(this).is(":checked")||!confirm(wpacu_object.jquery_migration_disable_confirm_msg))||(a(this).prop("checked",!1),!1))}),a("#wpacu_disable_comment_reply").on("click",function(){return!a(this).is(":checked")||(!(!a(this).is(":checked")||!confirm(wpacu_object.comment_reply_disable_confirm_msg))||(a(this).prop("checked",!1),!1))}),a("[data-target-opacity]").click(function(){a(this).prop("checked")?a("#"+a(this).attr("data-target-opacity")).css({opacity:1}):a("#"+a(this).attr("data-target-opacity")).css({opacity:.4})}),a(".wpacu-combine-loaded-js-level").change(function(){a(this).is(":checked")&&(a(".wpacu_combine_loaded_js_level_area").removeClass("wpacu_active"),a("#"+a(this).attr("data-target")).addClass("wpacu_active"))});var f=a('#wpacu-update-button-area input[type="submit"]');f.parents("form").submit(function(){f.attr("disabled",!0),a("#wpacu-updating-settings").show()});var g=a("#wpacu-update-front-settings-area .wpacu_update_btn");if(g.parents("form").submit(function(){return g.attr("disabled",!0).addClass("wpacu_submitting"),a("#wpacu-updating-front-settings").show(),!0}),a("form#wpacu-settings-form, form#wpacu_home_page_form").submit(function(){return f.attr("disabled",!0),!0}),a(".wpacu_bulk_rule_checkbox, .wpacu_remove_preload").click(function(){var b=a(this).parents(".wpacu_bulk_change_row");a(this).prop("checked")?b.addClass("wpacu_selected"):b.removeClass("wpacu_selected")}),a(".wpacu_remove_regex").click(function(){var b=a(this).parents(".wpacu_regex_rule_row");a(this).prop("checked")?b.addClass("wpacu_enabled"):b.removeClass("wpacu_enabled")}),a(".wpacu_restore_position").click(function(){var b=a(this).parents(".wpacu_restore_position_row");a(this).prop("checked")?b.addClass("wpacu_selected"):b.removeClass("wpacu_selected")}),a(".wpacu_remove_global_attr").click(function(){var b=a(this).parents(".wpacu_remove_global_attr_row");a(this).prop("checked")?b.addClass("wpacu_selected"):b.removeClass("wpacu_selected")}),a("#wpacu_wrap_assets").length>0&&setTimeout(function(){e.load()},200),a("#wpacu-plugins-load-manager-wrap").length>0&&setTimeout(function(){e.pluginLoadManager()},200),"undefined"==typeof wpacu_object||a("#wpacu_meta_box_content").length<1)return!1;("default"===wpacu_object.list_show_status||""===wpacu_object.list_show_status||wpacu_object.override_assets_list_load)&&b(),"fetch_on_click"===wpacu_object.list_show_status&&a("#wpacu_ajax_fetch_on_click_btn").click(function(c){c.preventDefault(),a(this).hide(),a("#wpacu_fetching_assets_list_wrap").show(),b()}),a(document).on("click",".wp-admin.post-php .edit-post-header__settings button.is-primary",function(){var c=function(){if(0===a(".edit-post-header__settings .is-saving").length){if(a("#wpacu_unload_assets_area_loaded").length>0&&a("#wpacu_unload_assets_area_loaded").val()){a("#wpacu-assets-reloading").remove();var c='<span id="wpacu-assets-reloading" class="editor-post-saved-state is-wpacu-reloading">'+wpacu_object.reload_icon+wpacu_object.reload_msg+"</span>";a(".wp-admin.post-php .edit-post-header__settings").prepend(c)}a(".wpacu_asset_row").addClass("wpacu-loading"),b(),wpacuAjaxClearCache(),clearInterval(d)}},d=setInterval(c,900)})}),""!==wpacu_object.clear_cache_on_page_load&&wpacuAjaxClearCache(),jQuery(document).ready(function(a){try{var b;a('input[type="hidden"][name="_wp_http_referer"]').length>0&&(b=a('input[type="hidden"][name="_wp_http_referer"]').val(),b.includes("term.php?taxonomy=")&&b.includes("message=")&&wpacuAjaxClearCache(),b.includes("post.php?post=")&&b.includes("message=")&&wpacuAjaxClearCache())}catch(a){console.log(a)}});
1
+ function wpacuTabOpenSettingsArea(a,b){a.preventDefault();var c,d,e;for(d=document.getElementsByClassName("wpacu-settings-tab-content"),c=0;c<d.length;c++)d[c].style.display="none";for(e=document.getElementsByClassName("wpacu-settings-tab-link"),c=0;c<e.length;c++)e[c].className=e[c].className.replace(" active","");document.getElementById(b).style.display="table-cell",jQuery('a[href="#'+b+'"]').addClass("active"),jQuery("#wpacu-selected-tab-area").val(b)}function wpacuBytesToSize(a){return 0===a?"N/A":(a/1024).toFixed(4)+" KB"}function wpacuAjaxClearCache(){jQuery.post(wpacu_object.ajax_url+"?wpacu_clear_cache",{action:wpacu_object.plugin_id+"_clear_cache",time_r:(new Date).getTime()},function(a){})}jQuery(document).ready(function(a){function b(){if(!a("#wpacu_ajax_fetch_assets_list_dashboard_view").length)return!1;var b,c,d,f,g,h={};"direct"===wpacu_object.dom_get_type?(h[wpacu_object.plugin_name+"_load"]=1,h[wpacu_object.plugin_name+"_time_r"]=(new Date).getTime(),a.ajax({method:"GET",url:wpacu_object.page_url,data:h,cache:!1,complete:function(b,c){if("error"===b.statusText){f=b.responseText.replace(/(<([^>]+)>)/gi,"");try{f=String(f).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}catch(a){console.log(a)}g=wpacu_object.ajax_direct_fetch_error,g=g.replace(/{wpacu_output}/,f),g=g.replace(/{wpacu_status_code_error}/,b.status),a("#wpacu_meta_box_content").html(g)}}}).done(function(f){if(f.lastIndexOf(wpacu_object.start_del_e)<0||f.lastIndexOf(wpacu_object.end_del_e)<0||f.lastIndexOf(wpacu_object.start_del_h)<0||f.lastIndexOf(wpacu_object.end_del_h)<0){g=wpacu_object.ajax_direct_fetch_error_with_success_response,g=g.replace(/{wpacu_output}/,xhr.responseText.replace(/(<([^>]+)>)/gi,""));try{g=String(g).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}catch(a){console.log(a)}return void a("#wpacu_meta_box_content").html(g)}c=f.substring(f.lastIndexOf(wpacu_object.start_del_e)+wpacu_object.start_del_e.length,f.lastIndexOf(wpacu_object.end_del_e)),d=f.substring(f.lastIndexOf(wpacu_object.start_del_h)+wpacu_object.start_del_h.length,f.lastIndexOf(wpacu_object.end_del_h)),b={action:wpacu_object.plugin_name+"_get_loaded_assets",wpacu_list_e:c,wpacu_list_h:d,post_id:wpacu_object.post_id,page_url:wpacu_object.page_url,tag_id:wpacu_object.tag_id,wpacu_taxonomy:wpacu_object.wpacu_taxonomy,time_r:(new Date).getTime()},a.post(wpacu_object.ajax_url,b,function(b){b&&(a("#wpacu_meta_box_content").html(b),a("#wpacu_home_page_form").length>0&&a("#submit").show(),setTimeout(function(){e.load(),a(".wpacu_asset_row").removeClass("wpacu-loading"),a("#wpacu-assets-reloading").remove(),e.checkSourcesFor404Errors()},200))})})):"wp_remote_post"===wpacu_object.dom_get_type&&(b={action:wpacu_object.plugin_name+"_get_loaded_assets",post_id:wpacu_object.post_id,page_url:wpacu_object.page_url,tag_id:wpacu_object.tag_id,wpacu_taxonomy:wpacu_object.wpacu_taxonomy,time_r:(new Date).getTime()},a.post(wpacu_object.ajax_url,b,function(b){if(!b)return!1;a("#wpacu_meta_box_content").html(b),a("#wpacu_home_page_form").length>0&&a("#submit").show(),setTimeout(function(){e.load(),setTimeout(function(){e.checkSourcesFor404Errors()},100)},200)}))}a('input[name="wpacu_sub_tab_area"]').click(function(){a(this).prop("checked")&&a("#wpacu-selected-sub-tab-area").val(a(this).val())}),a("#wpacu_minify_css_enable, #wpacu_combine_loaded_css_enable, #wpacu_minify_js_enable, #wpacu_combine_loaded_js_enable, #wpacu_cdn_rewrite_enable, #wpacu_enable_test_mode").click(function(){a(this).prop("checked")?a('[data-linked-to="'+a(this).attr("id")+'"]').find(".wpacu-circle-status").addClass("wpacu-on").removeClass("wpacu-off"):a('[data-linked-to="'+a(this).attr("id")+'"]').find(".wpacu-circle-status").addClass("wpacu-off").removeClass("wpacu-on")}),a("#wpacu-mark-license-valid-button").click(function(){return confirm(wpacu_object.mark_license_valid_confirm)}),a("#wpacu-license-form").submit(function(){a("#edd_license_activate_btn").attr("disabled","disabled"),a("#edd_license_deactivate_btn").attr("disabled","disabled"),a(".wpacu-license-spinner").show()});var c,d;a("#wpacu-reset-drop-down").on("change keyup keydown mouseup mousedown click",function(){""===a(this).val()?(a("#wpacu-warning-read").removeClass("wpacu-visible"),a("#wpacu-reset-submit-btn").attr("disabled","disabled").removeClass("button-primary").addClass("button-secondary")):("reset_everything"===a(this).val()?a("#wpacu-license-data-remove-area").addClass("wpacu-visible"):a("#wpacu-license-data-remove-area").removeClass("wpacu-visible"),a("#wpacu-warning-read").addClass("wpacu-visible"),a("#wpacu-reset-submit-btn").removeAttr("disabled").removeClass("button-secondary").addClass("button-primary")),a(".wpacu-tools-area .wpacu-warning").hide(),c=a(this).find("option:selected"),a("#"+c.attr("data-id")).show()}),a("#wpacu-reset-submit-btn").on("click",function(){if("reset_settings"===a("#wpacu-reset-drop-down").val()?d=wpacu_object.reset_settings_confirm_msg:"reset_everything_except_settings"===a("#wpacu-reset-drop-down").val()?d=wpacu_object.reset_everything_except_settings_confirm_msg:"reset_everything"===a("#wpacu-reset-drop-down").val()&&(d=wpacu_object.reset_everything_confirm_msg),!confirm(d))return!1;a("#wpacu-action-confirmed").val("yes"),setTimeout(function(){"yes"===a("#wpacu-action-confirmed").val()&&a("#wpacu-tools-form").submit()},1e3)}),a("#wpacu-import-form").submit(function(){if(!confirm(wpacu_object.import_confirm_msg))return!1;a(this).find("button").addClass("wpacu-importing").prop("disabled",!0)});var e={load:function(){var b,c,d,f=".input-unload-on-this-page.wpacu-not-locked";a(".input-unload-on-this-page").on("click change",function(){b=a(this).attr("data-handle"),c=a(this).hasClass("wpacu_unload_rule_for_style")?"style":"script",a(this).prop("checked")?(e.uncheckAllOtherBulkUnloadRules(a(this),!1),e.showHandleLoadExceptionArea(c,b),a(this).closest("tr").addClass("wpacu_not_load")):(a(this).closest("tr").removeClass("wpacu_not_load"),d=a(this).parents(".wpacu_asset_row"),e.hideHandleLoadExceptionArea(d,b,c))}),a(".wpacu-plugin-check-all").on("click",function(b){b.preventDefault();var c=a(this).attr("data-wpacu-plugin");a('table.wpacu_list_by_location[data-wpacu-plugin="'+c+'"]').find(f).prop("checked",!0).closest("tr").addClass("wpacu_not_load")}),a(".wpacu-plugin-uncheck-all").on("click",function(b){b.preventDefault();var c=a(this).attr("data-wpacu-plugin");a('table.wpacu_list_by_location[data-wpacu-plugin="'+c+'"]').find(f).prop("checked",!1).closest("tr").removeClass("wpacu_not_load")}),a(".wpacu-plugin-check-load-all").on("click change",function(b){b.preventDefault();var c=a(this).attr("data-wpacu-plugin"),d=a('table.wpacu_list_by_location[data-wpacu-plugin="'+c+'"]');d.find(".wpacu_load_it_option_one.wpacu_load_exception").prop("checked",!0).closest("tr.wpacu_is_bulk_unloaded").removeClass("wpacu_not_load"),d.find(f).prop("checked",!1).trigger("change")}),a(".wpacu-plugin-uncheck-load-all").on("click change",function(b){b.preventDefault();var c=a(this).attr("data-wpacu-plugin"),d=a('table.wpacu_list_by_location[data-wpacu-plugin="'+c+'"]');d.find(".wpacu_load_it_option_one.wpacu_load_exception").prop("checked",!1).closest("tr.wpacu_is_bulk_unloaded").addClass("wpacu_not_load"),d.find(f).prop("checked",!1).trigger("change")}),a(".wpacu_keep_bulk_rule").click(function(){a(this).prop("checked")&&a(this).parents("li").next().removeClass("remove_rule")}),a(".wpacu_remove_bulk_rule").click(function(){a(this).prop("checked")&&a(this).parents("li").addClass("remove_rule")}),a(".wpacu_bulk_unload").on("click change",function(){b=a(this).attr("data-handle"),c=a(this).attr("data-handle-for"),d=a("[data-"+c+'-handle-row="'+b+'"]'),a(this).prop("checked")?(a(this).hasClass("wpacu_unload_it_regex_checkbox")||(a(this).parent("label").addClass("wpacu_input_load_checked"),a(this).closest("tr").addClass("wpacu_not_load")),e.showHandleLoadExceptionArea(c,b),a(this).hasClass("wpacu_global_unload")?(e.uncheckAllOtherBulkUnloadRules(a(this),!0),a('.input-unload-on-this-page[data-handle-for="'+c+'"][data-handle="'+b+'"]').prop("checked",!1)):a(this).hasClass("wpacu_post_type_unload")&&(e.uncheckAllOtherBulkUnloadRules(a(this),!1),a('.input-unload-on-this-page[data-handle-for="'+c+'"][data-handle="'+b+'"]').prop("checked",!1))):(a(this).hasClass("wpacu_unload_it_regex_checkbox")||(a(this).parent("label").removeClass("wpacu_input_load_checked"),a(this).closest("tr").removeClass("wpacu_not_load")),e.hideHandleLoadExceptionArea(d,b,c)),d.hasClass("wpacu_is_bulk_unloaded")||a(".wpacu_bulk_unload:not(.wpacu_unload_it_regex_checkbox)").is(":checked")||a(this).closest("tr").removeClass("wpacu_not_load")}),a(".wpacu_load_it_option_one.wpacu_load_exception").on("click change",function(){var b=a(this).attr("data-handle");if(a(this).prop("checked")){a(this).parent("label").addClass("wpacu_global_unload_exception");var c="";a(this).hasClass("wpacu_style")?c="style":a(this).hasClass("wpacu_script")&&(c="script"),a("#"+c+"_"+b).prop("checked",!1).trigger("change")}else a(this).parent("label").removeClass("wpacu_global_unload_exception")}),a(".wpacu_unload_it_regex_checkbox").on("click change",function(){var b=a(this).parents("li");a(this).prop("checked")?(b.find("label").addClass("wpacu_unload_checked"),b.find("textarea").prop("disabled",!1).focus().removeClass("wpacu_disabled"),b.find(".wpacu_handle_unload_regex_input_wrap").removeClass("wpacu_hide")):(b.find("label").removeClass("wpacu_unload_checked"),b.find("textarea").blur().addClass("wpacu_disabled"),""===b.find("textarea").val().trim()&&(b.find("textarea").prop("disabled",!0).val(""),b.find(".wpacu_handle_unload_regex_input_wrap").addClass("wpacu_hide")))}),a(".wpacu_load_it_option_two").on("click change",function(){var b=a(this).parents("li");a(this).prop("checked")?(b.find("label").addClass("wpacu_bold"),b.find("textarea").prop("disabled",!1).focus().removeClass("wpacu_disabled"),b.find(".wpacu_load_regex_input_wrap").removeClass("wpacu_hide")):(b.find("label").removeClass("wpacu_bold"),b.find("textarea").blur().addClass("wpacu_disabled"),""===b.find("textarea").val().trim()&&(b.find("textarea").prop("disabled",!0).val(""),b.find(".wpacu_load_regex_input_wrap").addClass("wpacu_hide")))}),a(".wpacu_script_attr_rule_input").on("click change",function(){a(this).is(":checked")&&(a(this).parents("ul").find(".wpacu_script_attr_rule_input").not(a(this)).prop("checked",!1),a(this).hasClass("wpacu_script_attr_rule_global")&&a(this).parents("ul").find(".wpacu-script-attr-make-exception").removeClass("wpacu_hide")),a(this).parents("ul").find(".wpacu_script_attr_rule_global").is(":checked")||a(this).parents("ul").find(".wpacu-script-attr-make-exception").addClass("wpacu_hide")}),a(".wpacu-add-handle-note").on("click",function(b){b.preventDefault();var c,d,e=a(this).attr("data-handle");a(this).hasClass("wpacu-for-script")?c=a('.wpacu-handle-notes-field[data-script-handle="'+e+'"]'):a(this).hasClass("wpacu-for-style")&&(c=a('.wpacu-handle-notes-field[data-style-handle="'+e+'"]')),c.length<1||(d=c.find(":input"),c.is(":hidden")?(c.show(),d.prop("disabled",!1)):(c.hide(),""===d.val().trim()&&"true"===d.attr("data-wpacu-is-empty-on-page-load")&&d.prop("disabled",!0).val("")))}),a(".wpacu-external-file-size").on("click",function(b){b.preventDefault();var c,d=a(this),e=d.attr("data-src");d.hide(),c=d.next(),c.show(),e.includes("/?")?a.get(e,{},function(a,b,d){if("success"!==b)return"N/A";c.html(wpacuBytesToSize(a.length))}):a.post(wpacu_object.ajax_url,{action:wpacu_object.plugin_id+"_get_external_file_size",wpacu_remote_file:e},function(a){c.html(a)})})},pluginLoadManager:function(){a(".wpacu_plugin_load_it").on("click",function(){var b=a(this).attr("data-wpacu-plugin-path");a(this).prop("checked")&&(e.hidePluginLoadExceptionArea(b),a('.wpacu_plugin_unload_regex_input_wrap[data-wpacu-plugin-path="'+b+'"]').addClass("wpacu_hide"),a('.wpacu_plugin_unload_site_wide[data-wpacu-plugin-path="'+b+'"]').parent("label").removeClass("wpacu_plugin_unload_rule_input_checked"),a('.wpacu_plugin_unload_regex_radio[data-wpacu-plugin-path="'+b+'"]').parent("label").removeClass("wpacu_plugin_unload_rule_input_checked"))}),a(".wpacu_plugin_unload_site_wide").on("click",function(){var b=a(this).attr("data-wpacu-plugin-path");a(this).prop("checked")?(a(this).parent("label").addClass("wpacu_plugin_unload_rule_input_checked"),a('.wpacu_plugin_unload_regex_radio[data-wpacu-plugin-path="'+b+'"]').parent("label").removeClass("wpacu_plugin_unload_rule_input_checked"),a('.wpacu_plugin_unload_regex_input_wrap[data-wpacu-plugin-path="'+b+'"]').addClass("wpacu_hide"),e.showPluginLoadExceptionArea(b)):(a(this).parent("label").removeClass("wpacu_plugin_unload_rule_input_checked"),a('.wrap_plugin_load_exception_options[data-wpacu-plugin-path="'+b+'"]').addClass("wpacu_hide").find('input[type="checkbox"]').prop("disabled",!0))}),a(".wpacu_plugin_unload_regex_radio").on("click",function(){var b=a(this).attr("data-wpacu-plugin-path");a(this).prop("checked")?(a(this).parent("label").addClass("wpacu_plugin_unload_rule_input_checked"),a('.wpacu_plugin_unload_regex_input_wrap[data-wpacu-plugin-path="'+b+'"]').removeClass("wpacu_hide"),e.showPluginLoadExceptionArea(b),a('.wpacu_plugin_unload_site_wide[data-wpacu-plugin-path="'+b+'"]').prop("checked",!1).parent("label").removeClass("wpacu_plugin_unload_rule_input_checked")):(a('.wpacu_plugin_unload_regex_input_wrap[data-wpacu-plugin-path="'+b+'"]').addClass("wpacu_hide"),a(this).parent("label").removeClass("wpacu_plugin_unload_rule_input_checked"),a('.wrap_plugin_load_exception_options[data-wpacu-plugin-path="'+b+'"]').addClass("wpacu_hide"))}),a(".wpacu_plugin_load_exception_regex").on("click",function(){var b=a(this).attr("data-wpacu-plugin-path");a(this).prop("checked")?a('.wpacu_load_regex_input_wrap[data-wpacu-plugin-path="'+b+'"]').removeClass("wpacu_hide"):a('.wpacu_load_regex_input_wrap[data-wpacu-plugin-path="'+b+'"]').addClass("wpacu_hide")})},showPluginLoadExceptionArea:function(b){a('.wrap_plugin_load_exception_options[data-wpacu-plugin-path="'+b+'"]').removeClass("wpacu_hide").find('input[type="checkbox"]').prop("disabled",!1)},hidePluginLoadExceptionArea:function(b){a('.wrap_plugin_load_exception_options[data-wpacu-plugin-path="'+b+'"]').addClass("wpacu_hide").find('input[type="checkbox"]').prop("disabled",!0)},showHandleLoadExceptionArea:function(b,c){var d=a("div.wpacu_exception_options_area_wrap[data-"+b+'-handle="'+c+'"]');d.parent("div").removeClass("wpacu_hide"),d.find('input[type="checkbox"]').prop("disabled",!1)},hideHandleLoadExceptionArea:function(b,c,d){if(!b.hasClass("wpacu_is_bulk_unloaded")&&!b.find(".wpacu_bulk_unload").is(":checked")){var e=a("div.wpacu_exception_options_area_wrap[data-"+d+'-handle="'+c+'"]');e.parent("div").addClass("wpacu_hide"),e.find('input[type="checkbox"]').prop("disabled",!0)}},uncheckAllOtherBulkUnloadRules:function(a,b){var c=".wpacu_bulk_unload";!1===b&&(c=".wpacu_bulk_unload:not(.wpacu_unload_it_regex_checkbox)"),a.closest("tr").find(c).not(a).prop("checked",!1).parent("label").removeClass("wpacu_input_load_checked").removeClass("wpacu_unload_checked")},checkSourcesFor404Errors:function(){var b=a("[data-wpacu-external-source]");if(!(b.length<1)){var c=b.length,d="";b.each(function(b){var e=a(this),f=e.attr("data-wpacu-external-source");d+=f+"-at-wpacu-at-",b===c-1&&jQuery.post(wpacu_object.ajax_url+"?wpacu_check_external_url",{action:wpacu_object.plugin_id+"_check_external_urls_for_status_code",wpacu_check_urls:d},function(b){var c=jQuery.parseJSON(b);a.each(c,function(b,c){a('[data-wpacu-external-source="'+c+'"]').css({color:"#cc0000"}).parent("div").find("[data-wpacu-external-source-status]").html('<small>* <em style="font-weight: 600;">'+wpacu_object.source_load_error_msg+"</em></small>")})})})}}};a(window).load(function(){e.checkSourcesFor404Errors()}),a("#wpacu_post_type_select").change(function(){a("#wpacu_post_type_form").submit()}),a("#wpacu_taxonomy_select").change(function(){a("#wpacu_taxonomy_form").submit()}),a("#wpacu_dashboard").click(function(){a(this).prop("checked")?a("#wpacu-settings-assets-retrieval-mode").show():a("#wpacu-settings-assets-retrieval-mode").hide()}),a(".wpacu-dom-get-type-selection").change(function(){a(this).is(":checked")&&(a(".wpacu-dom-get-type-info").hide(),a("#"+a(this).attr("data-target")).fadeIn("fast"))}),a("#wpacu_frontend").click(function(){a(this).prop("checked")?a("#wpacu-settings-frontend-exceptions").show():a("#wpacu-settings-frontend-exceptions").hide()}),a(".google_fonts_combine_type").change(function(){a(".wpacu_google_fonts_combine_type_area").hide(),"async"===a(this).val()?a("#wpacu_google_fonts_combine_type_async_info_area").fadeIn():"async_preload"===a(this).val()?a("#wpacu_google_fonts_combine_type_async_preload_info_area").fadeIn():a("#wpacu_google_fonts_combine_type_rb_info_area").fadeIn()}),a("#wpacu_assets_list_layout").on("click change",function(){"by-location"===a(this).val()?a("#wpacu-assets-list-by-location-selected").fadeIn("fast"):a("#wpacu-assets-list-by-location-selected").fadeOut("fast")}),a("#wpacu_disable_jquery_migrate").on("click",function(){return!a(this).is(":checked")||(!(!a(this).is(":checked")||!confirm(wpacu_object.jquery_migration_disable_confirm_msg))||(a(this).prop("checked",!1),!1))}),a("#wpacu_disable_comment_reply").on("click",function(){return!a(this).is(":checked")||(!(!a(this).is(":checked")||!confirm(wpacu_object.comment_reply_disable_confirm_msg))||(a(this).prop("checked",!1),!1))}),a("[data-target-opacity]").click(function(){a(this).prop("checked")?a("#"+a(this).attr("data-target-opacity")).css({opacity:1}):a("#"+a(this).attr("data-target-opacity")).css({opacity:.4})}),a(".wpacu-combine-loaded-js-level").change(function(){a(this).is(":checked")&&(a(".wpacu_combine_loaded_js_level_area").removeClass("wpacu_active"),a("#"+a(this).attr("data-target")).addClass("wpacu_active"))});var f=a('#wpacu-update-button-area input[type="submit"]');f.parents("form").submit(function(){f.attr("disabled",!0),a("#wpacu-updating-settings").show()});var g=a("#wpacu-update-front-settings-area .wpacu_update_btn");if(g.parents("form").submit(function(){return g.attr("disabled",!0).addClass("wpacu_submitting"),a("#wpacu-updating-front-settings").show(),!0}),a("form#wpacu-settings-form, form#wpacu_home_page_form").submit(function(){return f.attr("disabled",!0),!0}),a(".wpacu_bulk_rule_checkbox, .wpacu_remove_preload").click(function(){var b=a(this).parents(".wpacu_bulk_change_row");a(this).prop("checked")?b.addClass("wpacu_selected"):b.removeClass("wpacu_selected")}),a(".wpacu_remove_regex").click(function(){var b=a(this).parents(".wpacu_regex_rule_row");a(this).prop("checked")?b.addClass("wpacu_enabled"):b.removeClass("wpacu_enabled")}),a(".wpacu_restore_position").click(function(){var b=a(this).parents(".wpacu_restore_position_row");a(this).prop("checked")?b.addClass("wpacu_selected"):b.removeClass("wpacu_selected")}),a(".wpacu_remove_global_attr").click(function(){var b=a(this).parents(".wpacu_remove_global_attr_row");a(this).prop("checked")?b.addClass("wpacu_selected"):b.removeClass("wpacu_selected")}),a("#wpacu_wrap_assets").length>0&&setTimeout(function(){e.load()},200),a("#wpacu-plugins-load-manager-wrap").length>0&&setTimeout(function(){e.pluginLoadManager()},200),"undefined"==typeof wpacu_object||a("#wpacu_meta_box_content").length<1)return!1;("default"===wpacu_object.list_show_status||""===wpacu_object.list_show_status||wpacu_object.override_assets_list_load)&&b(),"fetch_on_click"===wpacu_object.list_show_status&&a("#wpacu_ajax_fetch_on_click_btn").click(function(c){c.preventDefault(),a(this).hide(),a("#wpacu_fetching_assets_list_wrap").show(),b()}),a(document).on("click",".wp-admin.post-php .edit-post-header__settings button.is-primary",function(){var c=function(){if(0===a(".edit-post-header__settings .is-saving").length){if(a("#wpacu_unload_assets_area_loaded").length>0&&a("#wpacu_unload_assets_area_loaded").val()){a("#wpacu-assets-reloading").remove();var c='<span id="wpacu-assets-reloading" class="editor-post-saved-state is-wpacu-reloading">'+wpacu_object.reload_icon+wpacu_object.reload_msg+"</span>";a(".wp-admin.post-php .edit-post-header__settings").prepend(c)}a(".wpacu_asset_row").addClass("wpacu-loading"),b(),wpacuAjaxClearCache(),clearInterval(d)}},d=setInterval(c,900)})}),""!==wpacu_object.clear_cache_on_page_load&&wpacuAjaxClearCache(),jQuery(document).ready(function(a){try{var b;a('input[type="hidden"][name="_wp_http_referer"]').length>0&&(b=a('input[type="hidden"][name="_wp_http_referer"]').val(),b.includes("term.php?taxonomy=")&&b.includes("message=")&&wpacuAjaxClearCache(),b.includes("post.php?post=")&&b.includes("message=")&&wpacuAjaxClearCache())}catch(a){console.log(a)}});
assets/style.min.css CHANGED
@@ -1 +1 @@
1
- @charset "UTF-8";#wpacu-logo-wrap .wpacu-pro-sign.wpacu-lite,#wpacu-quick-actions{color:#74777b;background:rgba(40,44,42,.05)}#wpacu-pages-info-area{width:98%}#wpacu-top-area{margin:15px 0;padding:0 10px}#wpacu-quick-actions{float:right;width:auto;margin-right:30px;border-radius:10px;padding:6px 12px}#wpacu-quick-actions .wpacu-actions-title{font-weight:200;letter-spacing:.5px}#wpacu-quick-actions a{color:#004567;text-decoration:none}#wpacu-quick-actions a:hover{color:#0073aa}#wpacu-logo-wrap{width:auto;display:inline-block;position:relative}#wpacu-logo-wrap a{display:block}#wpacu-logo-wrap img{width:352px;height:79px}#wpacu-logo-wrap .wpacu-pro-sign{position:absolute;height:auto;font-family:FiraSans-Medium,proxima-nova-1,Montserrat,Helvetica,sans-serif;font-size:13px;font-weight:600;letter-spacing:1px;padding:5px 11px;border-radius:15px;right:-60px;top:30px;width:auto;display:inline-block;text-align:center}#wpacu-logo-wrap .wpacu-pro-sign.wpacu-pro{color:#004567;background-color:rgba(40,44,42,.05)}.wpacu-tabs{position:relative;overflow:hidden;margin:0 auto 20px;width:100%;font-weight:300;font-size:20px}.wpacu-tabs nav{text-align:center}.wpacu-tabs nav ul{position:relative;display:-ms-flexbox;display:-webkit-flex;display:-moz-flex;display:-ms-flex;display:flex;padding:0;list-style:none;-ms-box-orient:horizontal;-ms-box-pack:center;-webkit-flex-flow:row wrap;-moz-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;justify-content:center}.wpacu-tabs nav ul li{position:relative;z-index:1;display:block;margin:0;text-align:center;-webkit-flex:1;-moz-flex:1;-ms-flex:1;flex:1}.wpacu-tabs nav ul li span.extra-info{position:absolute;font-size:12px;left:-50%;right:50%;bottom:12px;-webkit-transform:translate(50%,50%);transform:translate(50%,50%);white-space:nowrap}.wpacu-tabs nav ul li span.extra-info.has-bulk-unloads{right:48%}.wpacu-tabs nav ul li span.extra-info.no-bulk-unloads{left:0;right:2px;bottom:2px;-webkit-transform:inherit;transform:inherit}.wpacu-tabs nav ul li span.extra-info .dashicons{font-size:16px;margin-right:-3px;margin-top:1px}.wpacu-tabs nav ul li span.extra-info.license-status.inactive{color:#c00}.wpacu-tabs nav ul li span.extra-info.license-status.active{color:green}.wpacu-tabs nav ul li span.extra-info.assets-unloaded-false{color:#004567}.wpacu-tabs nav ul li span.extra-info.assets-unloaded-true,.wpacu-tabs nav ul li span.extra-info.bulk-unloads-true{color:green}.wpacu-tabs nav a{position:relative;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:2.5}.wpacu-tabs nav a span{vertical-align:middle;font-size:14px}.wpacu-tabs nav li.wpacu-tab-current a{color:#74777b}.wpacu-tabs nav a:focus{outline:0}.wpacu-tabs .dashicons{font-size:20px}.no-js .wpacu-content-wrap section{display:block;padding-bottom:2em;border-bottom:1px solid rgba(255,255,255,.6)}.no-flexbox nav ul{display:block}.no-flexbox nav ul li{min-width:15%;display:inline-block}@media screen and (max-width:58em){.wpacu-tabs nav a.icon span{display:none}.wpacu-tabs nav a:before{margin-right:0}}.wpacu-tabs-style-underline nav{background:#fff}.wpacu-tabs-style-underline nav a{color:#74777b;font-size:18px;text-transform:uppercase;text-decoration:none;padding:.25em 0 .5em;border-left:1px solid #e7ecea;-webkit-transition:color .2s;transition:color .2s}.wpacu-tabs-style-underline nav li:last-child a{border-right:1px solid #e7ecea}.wpacu-tabs-style-underline nav li a::after{position:absolute;bottom:0;left:0;width:100%;height:6px;background:#2CC185;content:"";-webkit-transition:-webkit-transform .3s;transition:transform .3s;-webkit-transform:translate3d(0,150%,0);transform:translate3d(0,150%,0)}.wpacu-tabs-style-underline nav li.wpacu-tab-current a::after{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.wpacu-tabs-style-underline nav a span{font-weight:700}.wpacu-tabs-style-topline{max-width:1800px;margin:20px auto 22px 0;width:98%;font-weight:300;text-decoration:none}.wpacu-tabs-style-topline nav li{border:1px solid rgba(40,44,42,.1)}.wpacu-tabs-style-topline nav li:not(:last-child){border-right:none}.wpacu-tabs-style-topline nav li.wpacu-tab-current{border-top-color:#008f9c;border-bottom:none}.wpacu-tabs-style-topline nav a{padding:20px 18px;background:rgba(40,44,42,.05);color:#74777b;line-height:1;-webkit-transition:color .2s;transition:color .2s;text-decoration:none}.wpacu-tabs-style-topline nav a:focus,.wpacu-tabs-style-topline nav a:hover{background:0 0;color:#008f9c}.wpacu-tabs-style-topline nav li.wpacu-tab-current a{background:0 0;box-shadow:inset 0 3px 0 #008f9c;color:#008f9c}.wpacu-tabs-style-topline nav li.wpacu-tab-current a span:not(.dashicons){font-weight:600}.wpacu-tabs-style-topline nav a span{text-transform:uppercase;font-weight:400}.wpacu-tab-nav-wrapper{border-bottom:none!important}.wpacu-tab-nav-wrapper .nav-tab.nav-tab-active{background:#fff;position:relative}.wpacu-tab-nav-wrapper .nav-tab.nav-tab-active:after{content:"";width:100%;bottom:-2px;left:0;position:absolute;border-bottom:2px solid #fff}.wpacu_hide{display:none!important}.wpacu-script-attributes-area{display:block;margin-bottom:12px}.wpacu-script-attributes-area>div:first-of-type{display:inline-block;float:left;margin-right:15px;line-height:30px;vertical-align:middle}.wpacu-script-attributes-area ul.wpacu-script-attributes-settings{display:inline-block;float:left;padding:5px 7px!important}.wpacu-script-attributes-area ul.wpacu-script-attributes-settings.wpacu-first{margin:0 15px 0 0!important}.wpacu-script-attributes-area ul.wpacu-script-attributes-settings label{margin:0!important}.wpacu-script-attributes-area ul.wpacu-script-attributes-settings li{display:inline-block;margin:0 16px 0 0!important}.wpacu-script-attributes-area ul.wpacu-script-attributes-settings li:first-child{margin:0 10px 0 0!important}.wpacu-script-attributes-area ul.wpacu-script-attributes-settings li:last-child{margin:0 2px 0 0!important}.wpacu-script-attributes-area .wpacu-script-attributes-settings{background:#fff!important;border:1px solid #eee!important;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;padding:5px 10px!important;list-style:none;display:inline-block;margin:0}.wpacu-script-attributes-area .wpacu-script-attributes-settings input[type=radio]{width:auto;padding:0;margin:0 5px 0 0}.wpacu-script-attributes-area .wpacu-script-attributes-settings:hover{background:#f2faf2}tr.wpacu_location_changed>td{border-left:#004567 4px solid}tr.wpacu_not_load td,tr.wpacu_not_load th{background:#FFE1E1!important}tr.wpacu_not_load td .wpacu-assets-inline-code-wrap,tr.wpacu_not_load td .wpacu-script-attributes-area,tr.wpacu_not_load th .wpacu-assets-inline-code-wrap,tr.wpacu_not_load th .wpacu-script-attributes-area{filter:alpha(opacity=45);opacity:.45}.dashicons-wpacu{width:17px;height:17px;margin:2px 0 0;font-size:16px;text-decoration:none;color:inherit!important}.wpacu_widefat .check-column.wpacu_check{padding:10px}body[class*=wpassetcleanup] #footer-left{border-left:2px solid green;padding-left:10px}#wpassetcleanup_asset_list small{width:auto;float:none;display:inline}#wpacu_meta_box_content{width:99%}#wpacu_meta_box_content div.select select{max-width:inherit}#wpacu_meta_box_content .emoji{font-size:18px}#wpacu_meta_box_content h3{margin-left:0;padding-left:0}#wpacu_meta_box_content div.wpacu_note{padding:10px;background-color:#f5f5f5}#wpacu_meta_box_content .dashicons.dashicons-warning,#wpacu_meta_box_content .dashicons.dashicons-wordpress-alt{color:#c00}#wpacu_meta_box_content .wpacu_verified{padding:10px;background-color:#f5f5f5;border-left:1px solid #ddd}#wpacu_meta_box_content .wpacu_verified span{color:#0073aa;font-weight:700}#wpacu_meta_box_content div.wpacu_warning{border:1px solid #c00}#wpacu_meta_box_content ul.wpacu_asset_options{margin:0;padding:0}#wpacu_meta_box_content ul.wpacu_asset_options li{list-style:none;display:inline-block}#wpacu_meta_box_content ul.wpacu_asset_options label{font-weight:400;margin-right:5px;margin-top:5px;margin-bottom:5px}.wpacu-updated-frontend{font-weight:400;background-color:#fff;border-left:4px solid #46b450;border-top:1px solid #46b450;border-right:1px solid #46b450;border-bottom:1px solid #46b450;padding:9px 14px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.wpacu_exception_options_area_wrap label.wpacu_bold span,.wpacu_load_regex_area_wrap label.wpacu_bold span,.wpacu_unload_regex_area_wrap label.wpacu_bold span{font-weight:600!important}.wpacu-updated-frontend span.dashicons-yes{color:#46b450;font-size:26px}#wpacu-update-front-settings-area{margin:10px 0;display:inline-block;position:relative}@media only screen and (min-width:768px){#wpacu-update-front-settings-area{position:-webkit-sticky;position:sticky;bottom:0;display:block;padding:15px 0;z-index:1000000;border-top:1px solid #cdcdcd;background:#fff}}#wpacu-updating-front-settings{display:none;position:absolute;top:20px;left:142px}.wpacu_load_regex_area_wrap label.wpacu_unload_checked span,.wpacu_unload_regex_area_wrap label.wpacu_unload_checked span{color:#d54e21}.wpacu_load_regex_area_wrap .wpacu_handle_unload_regex_input_wrap,.wpacu_unload_regex_area_wrap .wpacu_handle_unload_regex_input_wrap{margin:4px 0 0}.wpacu_load_regex_area_wrap .wpacu_handle_unload_regex_input_wrap input[type=text],.wpacu_unload_regex_area_wrap .wpacu_handle_unload_regex_input_wrap input[type=text]{line-height:normal;min-height:20px;min-width:300px;max-width:400px;display:inline-block;padding:4px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.wpacu_load_regex_area_wrap .wpacu_handle_unload_regex_input_wrap input[type=text].wpacu_disabled,.wpacu_unload_regex_area_wrap .wpacu_handle_unload_regex_input_wrap input[type=text].wpacu_disabled{background:#fbfafa!important;color:inherit}.wpacu_is_global_unloaded .wpacu_exception_options_area_wrap{display:inline-block}.wpacu_is_global_unloaded .wpacu_exception_options_area_wrap .wpacu_area_one,.wpacu_is_global_unloaded .wpacu_exception_options_area_wrap .wpacu_area_two,.wpacu_is_global_unloaded .wpacu_exception_options_area_wrap .wpacu_load_regex_input_wrap{display:block}.wpacu_exception_options_area_wrap{display:table;background:#fff!important}.wpacu_exception_options_area_wrap textarea{line-height:normal;min-height:20px;min-width:300px;max-width:400px;display:inline-block;padding:2px 4px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.wpacu_exception_options_area_wrap textarea:focus{width:100%}.wpacu_exception_options_area_wrap textarea.wpacu_disabled{background:#fbfafa!important;color:inherit}.wpacu_exception_options_area_wrap p:first-of-type{margin-top:0}.wpacu_exception_options_area_wrap .wpacu_area_one{display:table-cell;vertical-align:top;padding-right:10px}.wpacu_exception_options_area_wrap .wpacu_area_two{display:table-cell}@media only screen and (max-width:1199px){.wpacu_exception_options_area_wrap,.wpacu_exception_options_area_wrap .wpacu_area_one,.wpacu_exception_options_area_wrap .wpacu_area_two{display:block}}#wpacu_meta_box_content .wpacu_widefat{width:100%}#wpacu_meta_box_content .wpacu-assets-collapsible-content{padding:0 10px!important}#wpacu_meta_box_content ul.wpacu_asset_options{vertical-align:middle}#wpacu_meta_box_content ul.wpacu_asset_options.wpacu_exception_options_area li{display:inline-block;float:left;margin:1px 25px 1px 0;line-height:20px}#wpacu_meta_box_content ul.wpacu_asset_options.wpacu_exception_options_area li:last-of-type{margin:1px 0}#wpacu_meta_box_content ul.wpacu_asset_options.wpacu_exception_options_area li input[type=text]{margin-left:5px;border:1px solid #e7e7e7;background:#fff}.wpacu-hardcoded-code-area{margin-bottom:8px}.wpacu-hardcoded-code-area.wpacu-has-view-more{max-height:300px;position:relative;overflow:hidden}.wpacu-hardcoded-code-area.wpacu-has-view-more p.wpacu-view-more-link-area{position:absolute;bottom:0;left:0;width:100%;margin:0;padding:20px 0 15px 15px;background:linear-gradient(to bottom,rgba(255,255,255,0) 0,#fbfbfb8c 100%);background:-webkit-linear-gradient(top,rgba(255,255,255,0) 0,#fbfbfb8c 100%)}.wpacu-hardcoded-code-area pre{margin:0;padding:8px 0;white-space:pre-wrap;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.wpacu-hardcoded-code-area code{font-style:italic;margin-left:2px;word-break:break-word}#wpacu_wrap_assets{color:#000!important;text-align:left!important;clear:both!important;width:90%!important;padding:20px!important;margin:30px 0 0 15px!important;border:1px solid #cdcdcd;z-index:10000!important;position:relative!important;background-color:#fff!important}#wpacu_wrap_assets div.wpacu_warning{border:1px solid #c00;padding:5px 10px}#wpacu_wrap_assets small{display:inline!important;margin:0!important;letter-spacing:normal!important}#wpacu_wrap_assets input[type=checkbox]{width:auto!important;margin-right:4px!important}#wpacu_wrap_assets img:not(.wpacu-ajax-loader){display:inline-block!important}#wpacu_wrap_assets p{line-height:22px!important;margin:10px 0!important;text-align:left!important;font-weight:400!important}#wpacu_wrap_assets p:first-child{margin:0 0 10px!important}#wpacu_wrap_assets h1{margin:0 0 20px!important;font-size:160%!important;text-align:left!important}#wpacu_wrap_assets h3{margin:20px 0;font-size:130%}#wpacu_wrap_assets ul.wpacu_asset_options.wpacu_exception_options_area li{display:inline-block;float:left;margin:1px 25px 1px 0;line-height:30px}#wpacu_wrap_assets ul.wpacu_asset_options.wpacu_exception_options_area li:last-of-type{margin:1px 0}.wpacu_verified{margin:0 0 10px!important}.wpacu_asset_row div.select{display:inline-block;width:auto}.wpacu_asset_row:first-child td{border-top:1px solid #cdcdcd}.wpacu_asset_row td{border-left:1px solid #cdcdcd;border-right:1px solid #cdcdcd;border-bottom:1px solid #cdcdcd}.wpacu_asset_row.wpacu_notice_row td{position:relative;padding:5px;border-bottom:1px solid transparent}.wpacu_asset_row.wpacu_notice_row td div.wpacu-warning{width:auto;margin:5px;font-style:italic}.wpacu_asset_row:not(.wpacu_notice_row) td{padding:18px!important;position:relative}.wpacu_asset_row:not(.wpacu_notice_row) td.wpacu_selected,.wpacu_asset_row:not(.wpacu_notice_row) td:hover{-moz-box-shadow:inset 0 0 12px #cdcdcd;-webkit-box-shadow:inset 0 0 12px #cdcdcd;box-shadow:inset 0 0 12px #cdcdcd}.wpacu_asset_row:not(.wpacu_notice_row) td p{padding:0!important;margin-bottom:8px!important;word-wrap:break-word!important;-ms-word-break:break-all;word-break:break-word}.wpacu_asset_row:not(.wpacu_notice_row) td label{width:auto!important;margin:0!important;cursor:pointer!important;display:inline-block!important;font-size:100%!important;font-weight:400!important}.wpacu_asset_row:not(.wpacu_notice_row) td label span:not(.dashicons){font-size:100%!important}.wpacu_asset_row:not(.wpacu_notice_row) td.wpacu_check{width:50px!important}.asset-table-extra-info td{padding:5px!important}body.wp-admin .wpacu_asset_row td.wpacu_check{width:25px!important}.wpacu_asset_row .dashicons-warning,.wpacu_asset_row .dashicons-wordpress-alt{color:red!important}.wpacu_asset_row .dashicons-wordpress-alt{font-size:17px;vertical-align:middle}label.wpacu_add_global{cursor:pointer!important}label.wpacu_input_load_checked{font-weight:700;color:#d54e21}label.wpacu_global_unload_exception{font-weight:700!important}tr.wpacu_bulk_change_row.wpacu_selected,tr.wpacu_global_rule_row.wpacu_selected,tr.wpacu_remove_preload_row.wpacu_selected{background:#e7e7e7}.nav-tab-wrapper{border-bottom:1px solid #ccc;width:95%}.nav-tab-wrapper.nav-assets-manager .nav-tab{font-size:13px;font-weight:500;padding:6px 10px}.nav-tab-wrapper.nav-assets-manager .nav-tab.for-pro{padding:6px 8px 6px 3px}ul.wpacu_asset_options{margin:0 10px 0 0;padding:0}ul.wpacu_asset_options li{margin:0 10px 0 0;list-style:none;display:inline-block;line-height:normal}ul.wpacu_asset_options li.remove_rule label{font-weight:700}ul.wpacu_asset_options label{margin-right:20px;font-weight:400}ul.wpacu_asset_options label input{margin-right:4px}.wpacu_list_table{width:100%;font-weight:400}.wpacu_list_table div,.wpacu_list_table li,.wpacu_list_table p{font-weight:400}.wpacu_widefat{width:99%}.wpacu_striped>tbody>:nth-child(even),ul.wpacu_striped>:nth-child(even){background-color:#fff!important}.wpacu_striped>tbody>:nth-child(odd),ul.wpacu_striped>:nth-child(odd){background-color:#f9f9f9!important}.wpacu_update_btn{-moz-box-shadow:inset 0 1px 0 0 #54a3f7!important;-webkit-box-shadow:inset 0 1px 0 0 #54a3f7!important;box-shadow:inset 0 1px 0 0 #54a3f7!important;background:-webkit-gradient(linear,left top,left bottom,color-stop(.05,#007dc1),color-stop(1,#0061a7))!important;background:-moz-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:-webkit-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:-o-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:-ms-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:linear-gradient(to bottom,#007dc1 5%,#0061a7 100%)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#007dc1", endColorstr="#0061a7", GradientType=0)!important;background-color:#007dc1!important;-moz-border-radius:3px!important;-webkit-border-radius:3px!important;border-radius:3px!important;border:1px solid #124d77!important;display:inline-block!important;cursor:pointer!important;color:#fff!important;font-size:15px!important;padding:10px 24px!important;text-decoration:none!important;text-shadow:0 1px 0 #154682!important;height:auto!important;line-height:normal!important}.wpacu-btns .btn:focus,.wpacu-btns .btn:hover,.wpacu-btns a{text-decoration:none}.wpacu_update_btn.wpacu_submitting,.wpacu_update_btn:hover{background:-webkit-gradient(linear,left top,left bottom,color-stop(.05,#0061a7),color-stop(1,#007dc1))!important;background:-moz-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:-webkit-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:-o-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:-ms-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:linear-gradient(to bottom,#0061a7 5%,#007dc1 100%)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#0061a7", endColorstr="#007dc1", GradientType=0)!important;background-color:#0061a7!important}.wpacu_update_btn.wpacu_submitting{cursor:default!important}.wpacu_update_btn:active{position:relative!important;top:1px!important}.wpacu-btns .btn{display:inline-block;font-weight:400;line-height:1.25;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.5rem 1rem;font-size:1rem;-webkit-border-radius:.25rem;-moz-border-radius:.25rem;border-radius:.25rem;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wpacu-btns .btn.focus,.wpacu-btns .btn:focus{outline:0;-webkit-box-shadow:0 0 0 2px rgba(2,117,216,.25);box-shadow:0 0 0 2px rgba(2,117,216,.25)}.wpacu-btns .btn.disabled,.wpacu-btns .btn:disabled{cursor:not-allowed;opacity:.65}.wpacu-btns .btn.active,.wpacu-btns .btn:active{background-image:none}.wpacu-btns a.btn.disabled,.wpacu-btns fieldset[disabled] a.btn{pointer-events:none}.wpacu-btns .btn-primary{color:#fff;background-color:#0275d8;border-color:#0275d8}.wpacu-btns .btn-primary:hover{color:#fff;background-color:#025aa5;border-color:#01549b}.wpacu-btns .btn-primary.focus,.wpacu-btns .btn-primary:focus{-webkit-box-shadow:0 0 0 2px rgba(2,117,216,.5);box-shadow:0 0 0 2px rgba(2,117,216,.5)}.wpacu-btns .btn-primary.disabled,.wpacu-btns .btn-primary:disabled{background-color:#0275d8;border-color:#0275d8}.wpacu-btns .btn-primary.active,.wpacu-btns .btn-primary:active,.wpacu-btns .show>.btn-primary.dropdown-toggle{color:#fff;background-color:#025aa5;background-image:none;border-color:#01549b}.wpacu-btns .btn-secondary{color:#292b2c;background-color:#fff;border-color:#ccc}.wpacu-btns .btn-secondary:hover{color:#292b2c;background-color:#e6e6e6;border-color:#adadad}.wpacu-btns .btn-secondary.focus,.wpacu-btns .btn-secondary:focus{-webkit-box-shadow:0 0 0 2px rgba(204,204,204,.5);box-shadow:0 0 0 2px rgba(204,204,204,.5)}.wpacu-btns .btn-secondary.disabled,.wpacu-btns .btn-secondary:disabled{background-color:#fff;border-color:#ccc}.wpacu-btns .btn-secondary.active,.wpacu-btns .btn-secondary:active,.wpacu-btns .show>.btn-secondary.dropdown-toggle{color:#292b2c;background-color:#e6e6e6;background-image:none;border-color:#adadad}.wpacu-btns .btn-info{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.wpacu-btns .btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#2aabd2}.wpacu-btns .btn-info.focus,.wpacu-btns .btn-info:focus{-webkit-box-shadow:0 0 0 2px rgba(91,192,222,.5);box-shadow:0 0 0 2px rgba(91,192,222,.5)}.wpacu-btns .btn-info.disabled,.wpacu-btns .btn-info:disabled{background-color:#5bc0de;border-color:#5bc0de}.wpacu-btns .btn-info.active,.wpacu-btns .btn-info:active,.wpacu-btns .show>.btn-info.dropdown-toggle{color:#fff;background-color:#31b0d5;background-image:none;border-color:#2aabd2}.wpacu-btns .btn-success{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.wpacu-btns .btn-success:hover{color:#fff;background-color:#449d44;border-color:#419641}.wpacu-btns .btn-success.focus,.wpacu-btns .btn-success:focus{-webkit-box-shadow:0 0 0 2px rgba(92,184,92,.5);box-shadow:0 0 0 2px rgba(92,184,92,.5)}.wpacu-btns .btn-success.disabled,.wpacu-btns .btn-success:disabled{background-color:#5cb85c;border-color:#5cb85c}.wpacu-btns .btn-success.active,.wpacu-btns .btn-success:active,.wpacu-btns .show>.btn-success.dropdown-toggle{color:#fff;background-color:#449d44;background-image:none;border-color:#419641}.wpacu-btns .btn-warning{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.wpacu-btns .btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#eb9316}.wpacu-btns .btn-warning.focus,.wpacu-btns .btn-warning:focus{-webkit-box-shadow:0 0 0 2px rgba(240,173,78,.5);box-shadow:0 0 0 2px rgba(240,173,78,.5)}.wpacu-btns .btn-warning.disabled,.wpacu-btns .btn-warning:disabled{background-color:#f0ad4e;border-color:#f0ad4e}.wpacu-btns .btn-warning.active,.wpacu-btns .btn-warning:active,.wpacu-btns .show>.btn-warning.dropdown-toggle{color:#fff;background-color:#ec971f;background-image:none;border-color:#eb9316}.wpacu-btns .btn-danger{color:#fff;background-color:#d9534f;border-color:#d9534f}.wpacu-btns .btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#c12e2a}.wpacu-btns .btn-danger.focus,.wpacu-btns .btn-danger:focus{-webkit-box-shadow:0 0 0 2px rgba(217,83,79,.5);box-shadow:0 0 0 2px rgba(217,83,79,.5)}.wpacu-btns .btn-danger.disabled,.wpacu-btns .btn-danger:disabled{background-color:#d9534f;border-color:#d9534f}.wpacu-btns .btn-danger.active,.wpacu-btns .btn-danger:active,.wpacu-btns .show>.btn-danger.dropdown-toggle{color:#fff;background-color:#c9302c;background-image:none;border-color:#c12e2a}.wpacu-btns .btn-outline-primary{color:#0275d8;background-image:none;background-color:transparent;border-color:#0275d8}.wpacu-btns .btn-outline-primary:hover{color:#fff;background-color:#0275d8;border-color:#0275d8}.wpacu-btns .btn-outline-primary.focus,.wpacu-btns .btn-outline-primary:focus{-webkit-box-shadow:0 0 0 2px rgba(2,117,216,.5);box-shadow:0 0 0 2px rgba(2,117,216,.5)}.wpacu-btns .btn-outline-primary.disabled,.wpacu-btns .btn-outline-primary:disabled{color:#0275d8;background-color:transparent}.wpacu-btns .btn-outline-primary.active,.wpacu-btns .btn-outline-primary:active,.wpacu-btns .show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#0275d8;border-color:#0275d8}.wpacu-btns .btn-outline-secondary{color:#ccc;background-image:none;background-color:transparent;border-color:#ccc}.wpacu-btns .btn-outline-secondary:hover{color:#fff;background-color:#ccc;border-color:#ccc}.wpacu-btns .btn-outline-secondary.focus,.wpacu-btns .btn-outline-secondary:focus{-webkit-box-shadow:0 0 0 2px rgba(204,204,204,.5);box-shadow:0 0 0 2px rgba(204,204,204,.5)}.wpacu-btns .btn-outline-secondary.disabled,.wpacu-btns .btn-outline-secondary:disabled{color:#ccc;background-color:transparent}.wpacu-btns .btn-outline-secondary.active,.wpacu-btns .btn-outline-secondary:active,.wpacu-btns .show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#ccc;border-color:#ccc}.wpacu-btns .btn-outline-info{color:#5bc0de;background-image:none;background-color:transparent;border-color:#5bc0de}.wpacu-btns .btn-outline-info:hover{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.wpacu-btns .btn-outline-info.focus,.wpacu-btns .btn-outline-info:focus{-webkit-box-shadow:0 0 0 2px rgba(91,192,222,.5);box-shadow:0 0 0 2px rgba(91,192,222,.5)}.wpacu-btns .btn-outline-info.disabled,.wpacu-btns .btn-outline-info:disabled{color:#5bc0de;background-color:transparent}.wpacu-btns .btn-outline-info.active,.wpacu-btns .btn-outline-info:active,.wpacu-btns .show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.wpacu-btns .btn-outline-success{color:#5cb85c;background-image:none;background-color:transparent;border-color:#5cb85c}.wpacu-btns .btn-outline-success:hover{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.wpacu-btns .btn-outline-success.focus,.wpacu-btns .btn-outline-success:focus{-webkit-box-shadow:0 0 0 2px rgba(92,184,92,.5);box-shadow:0 0 0 2px rgba(92,184,92,.5)}.wpacu-btns .btn-outline-success.disabled,.wpacu-btns .btn-outline-success:disabled{color:#5cb85c;background-color:transparent}.wpacu-btns .btn-outline-success.active,.wpacu-btns .btn-outline-success:active,.wpacu-btns .show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.wpacu-btns .btn-outline-warning{color:#f0ad4e;background-image:none;background-color:transparent;border-color:#f0ad4e}.wpacu-btns .btn-outline-warning:hover{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.wpacu-btns .btn-outline-warning.focus,.wpacu-btns .btn-outline-warning:focus{-webkit-box-shadow:0 0 0 2px rgba(240,173,78,.5);box-shadow:0 0 0 2px rgba(240,173,78,.5)}.wpacu-btns .btn-outline-warning.disabled,.wpacu-btns .btn-outline-warning:disabled{color:#f0ad4e;background-color:transparent}.wpacu-btns .btn-outline-warning.active,.wpacu-btns .btn-outline-warning:active,.wpacu-btns .show>.btn-outline-warning.dropdown-toggle{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.wpacu-btns .btn-outline-danger{color:#d9534f;background-image:none;background-color:transparent;border-color:#d9534f}.wpacu-btns .btn-outline-danger:hover{color:#fff;background-color:#d9534f;border-color:#d9534f}.wpacu-btns .btn-outline-danger.focus,.wpacu-btns .btn-outline-danger:focus{-webkit-box-shadow:0 0 0 2px rgba(217,83,79,.5);box-shadow:0 0 0 2px rgba(217,83,79,.5)}.wpacu-btns .btn-outline-danger.disabled,.wpacu-btns .btn-outline-danger:disabled{color:#d9534f;background-color:transparent}.wpacu-btns .btn-outline-danger.active,.wpacu-btns .btn-outline-danger:active,.wpacu-btns .show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#d9534f;border-color:#d9534f}.wpacu-btns .btn-link{font-weight:400;color:#0275d8;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.wpacu-btns .btn-link,.wpacu-btns .btn-link.active,.wpacu-btns .btn-link:active,.wpacu-btns .btn-link:disabled{background-color:transparent}.wpacu-btns .btn-link,.wpacu-btns .btn-link:active,.wpacu-btns .btn-link:focus,.wpacu-btns .btn-link:hover{border-color:transparent}.wpacu-btns .btn-link:focus,.wpacu-btns .btn-link:hover{color:#014c8c;text-decoration:underline;background-color:transparent}.go-pro-button,.wpacu-btns .btn-link:disabled:focus,.wpacu-btns .btn-link:disabled:hover{text-decoration:none}.wpacu-btns .btn-link:disabled{color:#636c72}.wpacu-btns .btn-group-lg>.btn,.wpacu-btns .btn-lg{padding:.75rem 1.5rem;font-size:1.25rem;-webkit-border-radius:.3rem;-moz-border-radius:.3rem;border-radius:.3rem}.wpacu-btns .btn-group-sm>.btn,.wpacu-btns .btn-sm{padding:.25rem .5rem;font-size:.875rem;-webkit-border-radius:.2rem;-moz-border-radius:.2rem;border-radius:.2rem}.wpacu-btns .btn-block{display:block;width:100%}.wpacu-btns .btn-block+.btn-block{margin-top:.5rem}.wpacu-btns input[type=button].btn-block,.wpacu-btns input[type=reset].btn-block,.wpacu-btns input[type=submit].btn-block{width:100%}.wpacu-btns .fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.go-pro-button{background-color:#4CAF50;border:2px solid #4CAF50;color:#fff;padding:12px 18px;text-align:center;display:inline-block;font-size:16px;margin:4px 2px;cursor:pointer;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;-webkit-transition-duration:.4s;transition-duration:.4s}.go-pro-button:hover{background-color:#fff;color:#000;border:2px solid #4CAF50;text-decoration:none}.go-pro-link-no-style,.wordpress-core-file{display:inline-block;color:inherit;text-decoration:none}.wpacu-restore-pos-btn{font-size:14px!important;line-height:normal!important;height:42px!important;padding:0 18px!important;margin-top:10px!important}body.wp-admin .wpacu_asset_row .go-pro-link-no-style .wpacu-tooltip{padding:8px 2px}body.wp-admin .go-pro-link-no-style .wpacu-tooltip{text-shadow:none;font-weight:400;font-size:12px;line-height:16px;padding:8px 11px}.go-pro-link-no-style{position:relative}.go-pro-link-no-style:not(.nav-tab){font-style:italic}.go-pro-link-no-style.no-transition .wpacu-tooltip{-webkit-transition:0s all ease;transition:0s all ease;-webkit-transition-delay:0s;transition-delay:0s}.go-pro-link-no-style>img{max-width:20px;max-height:20px}.go-pro-link-no-style .wpacu-tooltip{font-size:14px;line-height:18px;position:absolute;z-index:1;visibility:hidden;width:160px;background-color:#00a7a7;color:#fff;text-align:center;padding:8px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;bottom:100%;bottom:calc(100% + 15px);left:50%;margin-left:-65px;-webkit-transition:.1s all ease;transition:.1s all ease;-webkit-transition-delay:0s;transition-delay:0s}.go-pro-link-no-style .wpacu-tooltip:after{content:"";position:absolute;border-width:10px;border-style:solid;top:100%;left:50%;left:calc(50% - 10px);border-color:#00a7a7 transparent transparent}.go-pro-link-no-style .wpacu-tooltip.wpacu-on-pages-btn{cursor:pointer;margin-left:-77px;width:130px}.go-pro-link-no-style .wpacu-tooltip.wpacu-larger{width:240px}.go-pro-link-no-style:hover .wpacu-tooltip{visibility:visible}.wpacu_list_table tr:first-child .wordpress-core-file .wpacu-tooltip{bottom:-40px;left:120px;margin-left:-86px}.wpacu_list_table tr:first-child .wordpress-core-file .wpacu-tooltip:after{top:41px;left:-20px;border-color:transparent #c00 transparent transparent}.wordpress-core-file{position:relative;font-style:normal}.wordpress-core-file .wpacu-tooltip{font-size:14px;line-height:18px;position:absolute;z-index:1;visibility:hidden;width:160px;background-color:#c00;color:#fff;text-align:center;padding:6px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;bottom:100%;bottom:calc(100% + 15px);left:50%;margin-left:-86px;-webkit-transition:.1s all ease;transition:.1s all ease;-webkit-transition-delay:0s;transition-delay:0s}.wordpress-core-file .wpacu-tooltip:after{content:"";position:absolute;border-width:10px;border-style:solid;top:100%;left:50%;left:calc(50% - 10px);border-color:#c00 transparent transparent}.wordpress-core-file:hover .wpacu-tooltip{visibility:visible}.ajax-direct-call-error-area{background:#fff;padding:10px;border:1px solid #c00;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px}.ajax-direct-call-error-area td{padding:6px}.ajax-direct-call-error-area .note{margin-top:0;padding-top:0}.ajax-direct-call-error-area .error-code{color:#c00;font-weight:700}.ajax-wp-remote-post-call-error-area{background:#fff;padding:20px}.ajax-wp-remote-post-call-error-area .table-data{background:0 0;border:1px solid #c66;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.ajax-wp-remote-post-call-error-area .table-data td{padding:10px}.wrap-upgrade-info{background:#fff;padding:0 15px;border:1px solid #cdcdcd;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.wpacu-notice{margin:20px 20px 0 0!important}.wpacu-notice p{font-weight:600!important;font-style:italic}.wpacu-notice .dashicons{font-weight:inherit!important;color:#46b450!important;margin-right:4px;vertical-align:text-bottom;font-size:27px}.wpacu-notice-info{padding:12px 12px 12px 16px;background:#fff;border-left:4px solid #008f9c}.wpacu-notice-info p{margin-top:8px}.wpacu-notice-info p:first-child{margin-top:0}.wpacu-notice-info p:last-child{margin-bottom:0}.wpacu-warning{font-size:15px;padding:10px;background:#fffcec;border:1px solid #fdd5c9;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;margin:0 0 5px;width:100%}.pro-page-unlock-notice{-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;padding:10px;background:#f2faf2;border:1px solid #c0e8c0;width:auto;display:block}.wpacu-license-area .notice,.wpacu-settings-area .notice{margin-left:0;padding:10px!important;width:97%;box-sizing:border-box;font-weight:600;font-style:italic}.wpacu-license-area .notice .dashicons,.wpacu-settings-area .notice .dashicons{color:green}#wpacu-dom-get-type-selections,.wpacu-radio-selections{float:none;clear:both;width:auto;display:inline-block;margin-bottom:0;margin-top:0}#wpacu-dom-get-type-selections.wpacu-vertical,.wpacu-radio-selections.wpacu-vertical{display:block;margin-top:15px;margin-bottom:18px}#wpacu-dom-get-type-selections.wpacu-vertical li,.wpacu-radio-selections.wpacu-vertical li{float:none;margin-bottom:12px}#wpacu-dom-get-type-selections.wpacu-vertical li:last-child,.wpacu-radio-selections.wpacu-vertical li:last-child{margin-bottom:0}#wpacu-dom-get-type-selections li,.wpacu-radio-selections li{margin-right:30px;float:left;margin-bottom:0}#wpacu-dom-get-type-selections li:first-child,.wpacu-radio-selections li:first-child{margin-right:15px}#wpacu-dom-get-type-selections li:last-child,.wpacu-radio-selections li:last-child{margin-right:0}.wpacu_combine_loaded_js_level_area{display:none;background:0 0;border-left:2px solid #008f9c;padding-top:8px;padding-bottom:8px;padding-right:10px;padding-left:10px;margin:20px 0 15px}.wpacu_combine_loaded_js_level_area.wpacu_active{display:block}#wpacu-dom-get-type-infos{margin-bottom:0}#wpacu-dom-get-type-infos li{margin-bottom:0;line-height:20px}.wpacu-wrap li,.wpacu-wrap p,.wpacu-wrap td{font-weight:400}.wpacu-wrap small{width:auto;float:none;display:inline}.wpacu-wrap small code{font-size:inherit!important}.wpacu-wrap.wpacu-settings-show-all .wpacu-settings-tab-content{display:block;width:100%}.wpacu-wrap.wpacu-settings-show-all .wpacu-settings-area-title{color:#004567;padding:16px 15px;background:#f8f8f8;border-left:5px solid #004567b0;border-top:1px solid #e7e7e7;border-right:1px solid #e7e7e7;border-bottom:1px solid #e7e7e7;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;font-size:1.45em;font-weight:500}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch .wpacu_slider.wpacu_round,.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch .wpacu_slider.wpacu_round{border-radius:29px}.wpacu-wrap.wpacu-settings-show-all #wpacu-update-button-area,.wpacu-wrap.wpacu-settings-show-all #wpacu-update-button-area .submit{margin:0}.wpacu-wrap.wpacu-settings-show-all #wpacu-update-button-area .button{padding:11px 28px;height:38px;font-size:18px}.wpacu-wrap.wpacu-settings-show-all #wpacu-updating-settings{margin-left:224px;top:35px;left:3px}.wpacu-wrap.wpacu-switch-standard .asset-cleanup-pro_page_wpassetcleanup_settings .wpacu_switch,.wpacu-wrap.wpacu-switch-standard .asset-cleanup_page_wpassetcleanup_settings .wpacu_switch{width:auto;height:auto}.wpacu-wrap.wpacu-switch-standard .asset-cleanup-pro_page_wpassetcleanup_settings .wpacu_switch input,.wpacu-wrap.wpacu-switch-standard .asset-cleanup_page_wpassetcleanup_settings .wpacu_switch input{display:block}.wpacu-wrap.wpacu-switch-standard .asset-cleanup-pro_page_wpassetcleanup_settings .wpacu_switch input[type=checkbox],.wpacu-wrap.wpacu-switch-standard .asset-cleanup_page_wpassetcleanup_settings .wpacu_switch input[type=checkbox]{margin:0 0 3px}.wpacu-wrap.wpacu-switch-standard .asset-cleanup-pro_page_wpassetcleanup_settings .wpacu_switch .wpacu_slider,.wpacu-wrap.wpacu-switch-standard .asset-cleanup_page_wpassetcleanup_settings .wpacu_switch .wpacu_slider{display:none}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch{position:relative;display:inline-block;width:52px;height:29px}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch input{display:none}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch:not(.wpacu_switch_standard) .wpacu_slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.2s;transition:.2s}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch:not(.wpacu_switch_standard) .wpacu_slider:before{position:absolute;content:"";height:22px;width:22px;left:4px;bottom:4px;background-color:#fff;-webkit-transition:.2s;transition:.2s}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch input:checked+.wpacu_slider{background-color:#52af00}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch input:focus+.wpacu_slider{box-shadow:0 0 1px #52af00}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch input:checked+.wpacu_slider:before{-webkit-transform:translateX(22px);-ms-transform:translateX(22px);transform:translateX(22px)}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch .wpacu_slider.wpacu_round:before{border-radius:50%}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch.wpacu_disabled,.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch.wpacu_locked_for_pro{opacity:.3}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch.wpacu_disabled:before{content:"";font-family:Dashicons,Arial,"Times New Roman","Bitstream Charter",Times,serif;position:absolute;font-size:23px;top:5px;right:2px;z-index:1000}.asset-cleanup-pro_page_wpassetcleanup_settings .setting_title p.wpacu_subtitle,.asset-cleanup_page_wpassetcleanup_settings .setting_title p.wpacu_subtitle{margin-top:4px;line-height:1.4}.asset-cleanup-pro_page_wpassetcleanup_settings .setting_title p.wpacu_subtitle em,.asset-cleanup_page_wpassetcleanup_settings .setting_title p.wpacu_subtitle em{font-weight:200}.asset-cleanup-pro_page_wpassetcleanup_settings .setting_title p.wpacu_read_more,.asset-cleanup_page_wpassetcleanup_settings .setting_title p.wpacu_read_more{margin-top:-10px;font-style:italic;font-size:12px}.asset-cleanup-pro_page_wpassetcleanup_settings .assets_list_inline_code_status_choices,.asset-cleanup-pro_page_wpassetcleanup_settings .assets_list_layout_areas_status_choices,.asset-cleanup-pro_page_wpassetcleanup_settings .input_style_choices,.asset-cleanup_page_wpassetcleanup_settings .assets_list_inline_code_status_choices,.asset-cleanup_page_wpassetcleanup_settings .assets_list_layout_areas_status_choices,.asset-cleanup_page_wpassetcleanup_settings .input_style_choices{list-style:none;margin:0}.asset-cleanup-pro_page_wpassetcleanup_settings .assets_list_inline_code_status_choices li,.asset-cleanup-pro_page_wpassetcleanup_settings .assets_list_layout_areas_status_choices li,.asset-cleanup-pro_page_wpassetcleanup_settings .input_style_choices li,.asset-cleanup_page_wpassetcleanup_settings .assets_list_inline_code_status_choices li,.asset-cleanup_page_wpassetcleanup_settings .assets_list_layout_areas_status_choices li,.asset-cleanup_page_wpassetcleanup_settings .input_style_choices li{float:left;margin-right:30px}.asset-cleanup-pro_page_wpassetcleanup_settings .assets_list_inline_code_status_choices li:last-child,.asset-cleanup-pro_page_wpassetcleanup_settings .assets_list_layout_areas_status_choices li:last-child,.asset-cleanup-pro_page_wpassetcleanup_settings .input_style_choices li:last-child,.asset-cleanup_page_wpassetcleanup_settings .assets_list_inline_code_status_choices li:last-child,.asset-cleanup_page_wpassetcleanup_settings .assets_list_layout_areas_status_choices li:last-child,.asset-cleanup_page_wpassetcleanup_settings .input_style_choices li:last-child{margin-right:0}#wpacu-assets-list-by-location-selected{background:0 0;border:1px solid #e7e7e7;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;padding:8px;clear:both}.notice.notice-success+.wpacu-wrap.wpacu-settings-area{margin-top:20px}.wpacu-license-action-btn-area{margin-top:0;position:relative;display:inline-block}.wpacu-license-spinner{display:none;position:absolute;right:-30px;top:4px}.wpacu-license-spinner img{width:20px;height:20px}#wpacu-activation-issues-info{border-radius:10px;width:90%;margin-top:20px;font-size:14px;padding:6px 20px;background:#fff;border:1px solid #e7e7e7}#wpacu-activation-issues-info ol li{font-size:13px;margin-bottom:10px}#wpacu-mark-license-area-wrap{margin:15px 0}.wpacu-form-table.wpacu-license th{width:120px}.wpacu-form-table th{vertical-align:top;text-align:left;padding:5px 20px 20px 0;width:200px;line-height:1.3;font-weight:600}.wpacu-form-table th label{color:#23282d;font-weight:600;font-size:14px;text-shadow:none;vertical-align:middle;cursor:pointer}.wpacu-form-table td{padding-bottom:25px}.wpacu-form-table td:last-child p:last-child{margin:0}.wpacu-form-table .wpacu-fancy-checkbox input[type=checkbox],.wpacu-form-table label input[type=checkbox]{height:20px;width:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.wpacu-form-table .wpacu-fancy-checkbox input[type=checkbox]:checked,.wpacu-form-table .wpacu-fancy-checkbox input[type=checkbox]:hover,.wpacu-form-table label input[type=checkbox]:checked,.wpacu-form-table label input[type=checkbox]:hover{border:1px solid green}.wpacu-form-table .wpacu-fancy-checkbox input[type=checkbox]:checked:before,.wpacu-form-table label input[type=checkbox]:checked:before{color:#52af00;font:400 24px/1 dashicons}.wpacu-form-table .wpacu-fancy-radio input[type=radio]{-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;position:relative;height:20px;width:20px;margin:2px 0 0}.wpacu-form-table .wpacu-fancy-radio input[type=radio]:checked,.wpacu-form-table .wpacu-fancy-radio input[type=radio]:hover{border:1px solid green}.wpacu-form-table .wpacu-fancy-radio input[type=radio]:checked:before{margin:0;line-height:inherit;text-indent:inherit;content:"";position:absolute;top:4px;left:4px;width:10px;height:10px;border-radius:50%;background:#52af00;color:#52af00;font:400 24px/1 dashicons}#wpacu-settings-vertical-tab-wrap{display:table;width:100%}#wpacu-settings-vertical-tab-wrap .wpacu-tab-extra-text{margin:4px 0 0}#wpacu-settings-vertical-tab-wrap .wpacu-tab-extra-text small{font-weight:lighter}#wpacu-settings-vertical-tab-wrap .wpacu-tab-extra-text small span.wpacu-status-wrap{position:relative;padding-left:14px}#wpacu-settings-vertical-tab-wrap .wpacu-tab-extra-text small span.wpacu-status-wrap span.wpacu-circle-status{position:absolute;left:0;top:2px;height:10px;width:10px;border-radius:50%;display:inline-block;opacity:.75}#wpacu-settings-vertical-tab-wrap .wpacu-tab-extra-text small span.wpacu-status-wrap span.wpacu-circle-status.wpacu-on{background:#52af00}#wpacu-settings-vertical-tab-wrap .wpacu-tab-extra-text small span.wpacu-status-wrap span.wpacu-circle-status.wpacu-off{background:#ccc}#wpacu-settings-vertical-tab-wrap *{box-sizing:border-box}.wpacu-settings-tab{display:table-cell;width:20%;height:100%;vertical-align:top}.wpacu-settings-tab a{text-decoration:none;border-left:3px solid transparent;display:block;background-color:#f1f1f1;color:#004567;padding:17px 16px;width:100%;outline:0;text-align:left;cursor:pointer;font-size:14px;font-weight:600;border-bottom:1px solid #ccc}.wpacu-settings-tab a:first-child{border-top:1px solid transparent!important}.wpacu-settings-tab a:last-child{border-bottom:1px solid transparent!important}.wpacu-settings-tab a:hover{background-color:#fff;border-left:3px solid #004567;position:relative}.wpacu-settings-tab a.active{color:#004567;background-color:#fff;border-left:3px solid #004567;position:relative;border-bottom:1px solid #ccc}.wpacu-settings-tab a.active:after{content:"";position:absolute;height:100%;width:1px;top:0;right:-1px;background-color:#fff}.wpacu-settings-tab-content{background-color:#fff;display:none;padding:12px 18px;width:79%;border-left:none;height:100%;border-top-right-radius:10px;border-bottom-right-radius:10px}.wpacu-settings-tab-content h2{padding:0 0 15px;border-bottom:1px solid #e7e7e7}.wpacu-settings-tab-content.active{display:table-cell}#wpacu_minify_css_exceptions_area,#wpacu_minify_js_exceptions_area{margin:16px 0 0}@media only screen and (min-width:768px){body.asset-cleanup-pro_page_wpassetcleanup_assets_manager #wpacu-update-button-area,body.asset-cleanup_page_wpassetcleanup_assets_manager #wpacu-update-button-area{position:-webkit-sticky;position:sticky;bottom:0;padding:0;z-index:1000000;border-top:1px solid #cdcdcd;background:#f1f1f1}.wpacu-get-help-wrap .help-content-wrap{-webkit-box-align:start;-ms-flex-align:start;-ms-grid-row-align:flex-start;align-items:flex-start}}body[class*=version-5-3] #wpacu-update-button-area .button{height:auto;padding:4px 18px 6px;font-size:15px}body[class*=version-5-3] #wpacu-updating-settings{margin-left:178px}#wpacu-update-button-area{position:relative;margin-left:20%}#wpacu-update-button-area.no-left-margin{margin-left:0}#wpacu-update-button-area .submit{margin:0;padding:19px 0}#wpacu-update-button-area .button{padding:5px 18px;height:38px;font-size:15px}#wpacu-updating-settings{position:absolute;margin-left:183px;top:28px;display:none}#combine_loaded_js_info_area{position:relative}#combine_loaded_js_info_area.locked-for-pro:before{position:absolute;content:"";height:100%;width:100%;background:#fff;opacity:.5;z-index:10000}.google_fonts_load_types{clear:both;margin:20px 0 15px;display:flex}.google_fonts_load_types>div{text-align:left}.google_fonts_load_types>div input{float:left;margin:0 7px 20px 0!important}.wpacu-sub-tabs-wrap{min-width:320px;margin:0 auto}.wpacu-sub-tabs-wrap input.wpacu-nav-input{display:none}.wpacu-sub-tabs-wrap label.wpacu-nav-label{display:inline-block;margin:0 0 -1px;padding:15px 25px;font-weight:600;text-align:center;color:#74777b;border-left:1px solid transparent;border-right:1px solid transparent;border-top:3px solid transparent;border-bottom:0}.wpacu-sub-tabs-wrap label.wpacu-nav-label:hover{cursor:pointer}.wpacu-sub-tabs-wrap input.wpacu-nav-input:checked+label.wpacu-nav-label{color:#004567;border-left:1px solid #ccc;border-right:1px solid #ccc;border-top:3px solid #004567;border-bottom:1px solid #fff}.wpacu-sub-tabs-wrap section{display:none;padding:20px 0 0;border-top:1px solid #ccc}#wpacu-google-fonts-optimize-tab-item:checked~#wpacu-google-fonts-optimize-tab-item-area,#wpacu-google-fonts-remove-tab-item:checked~#wpacu-google-fonts-remove-tab-item-area{display:block}body.wp-admin .wpacu-handle-notes p{margin-top:0!important}body.wp-admin .wpacu-handle-notes p a{font-size:inherit}body.wp-admin .wpacu-handle-notes p a span.dashicons{font-size:19px;width:19px;height:19px;vertical-align:bottom;text-decoration:none}.wpacu-handle-notes{padding-top:5px;margin-bottom:-10px;border-top:1px solid #e7e7e7}.wpacu-handle-notes .wpacu-handle-notes-field{display:none}.wpacu-handle-notes .wpacu-handle-notes-field>textarea{font-size:85%;padding:6px;width:320px;max-width:100%}.wpacu-handle-notes p{margin:10px 0 0!important}.wpacu-handle-notes p a.wpacu-add-handle-note{text-decoration:none;font-size:80%;display:inline-block;color:inherit}.wpacu-handle-notes p a.wpacu-add-handle-note span.dashicons{font-size:18px;width:18px;height:18px}.wrap_bulk_unload_options{width:auto;display:block;clear:both}.wrap_bulk_unload_options .wpacu_asset_options_wrap{display:inline-block;float:left;margin:5px 10px 14px 0!important;padding:8px 10px 12px!important}.wrap_bulk_unload_options .wpacu_asset_options_wrap .wpacu_slider_text{position:relative!important;vertical-align:top;left:inherit!important;top:inherit!important}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch{position:relative;display:inline-block;min-width:52px;width:52px;height:29px;margin-right:5px!important}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch input{display:none}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch .wpacu_slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.15s;transition:.15s}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch .wpacu_slider:before{position:absolute;content:"";height:22px;width:22px;left:4px;bottom:4px;background-color:#fff;-webkit-transition:.15s;transition:.15s}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch input:checked+.wpacu_slider{background-color:#C00}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch input:focus+.wpacu_slider{box-shadow:0 0 1px #C00}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch input:checked+.wpacu_slider:before{-webkit-transform:translateX(22px);-ms-transform:translateX(22px);transform:translateX(22px)}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch .wpacu_slider.wpacu_round:before{border-radius:50%}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch.wpacu_disabled{opacity:.3}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch.wpacu_disabled:before{content:"";font-family:Dashicons,Arial,"Times New Roman","Bitstream Charter",Times,serif;position:absolute;font-size:23px;top:1px;right:2px;z-index:1000}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_slider_text{position:absolute;left:62px;top:3px}.wpacu-wrap{width:98%}.wpacu-wrap tr.wpacu_regex_rule_row{opacity:.45}.wpacu-wrap tr.wpacu_regex_rule_row textarea{line-height:normal;min-height:20px;min-width:400px;display:inline-block;padding:2px 4px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.wpacu-wrap tr.wpacu_regex_rule_row textarea:focus{width:100%}.wpacu-wrap tr.wpacu_regex_rule_row.wpacu_enabled{opacity:1}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch_small{position:relative;display:inline-block;min-width:30px;width:30px;height:17px;margin-right:5px!important}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch_small input{display:none}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch_small .wpacu_slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.15s;transition:.15s}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch_small .wpacu_slider:before{position:absolute;content:"";height:13px;width:13px;left:2px;bottom:2px;background-color:#fff;-webkit-transition:.15s;transition:.15s}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch_small input:checked+.wpacu_slider{background-color:#52af00}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch_small input:focus+.wpacu_slider{box-shadow:0 0 1px #52af00}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch_small input:checked+.wpacu_slider:before{-webkit-transform:translateX(13px);-ms-transform:translateX(13px);transform:translateX(13px)}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch_small .wpacu_slider.wpacu_round{border-radius:17px}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch_small .wpacu_slider.wpacu_round:before{border-radius:50%}.editor-post-saved-state.is-wpacu-reloading{animation:edit-post__loading-fade-animation .5s infinite}body.wp-admin .wpacu_asset_row.wpacu-loading{position:relative}body.wp-admin .wpacu_asset_row.wpacu-loading .wpacu-ajax-loader{display:block!important}body.wp-admin .wpacu_asset_row .wpacu-ajax-loader{display:none;width:58px;height:58px;position:absolute;bottom:0;right:0;opacity:.75}.wpacu_asset_row>td{overflow-wrap:break-word;word-wrap:break-word;-ms-word-break:break-all;word-break:break-all}.wpacu_asset_row input{width:auto;height:auto;min-height:16px}.wpacu_asset_row .tip{background:inherit;border-left:4px solid #e7e7e7;margin:0 0 5px;padding:7px;font-style:italic;font-size:small;line-height:1.4}.wpacu_asset_row td{width:100%;text-align:left}.wpacu_asset_row td p:last-child{margin-bottom:0!important}.wpacu_asset_row td .wpacu_asset_options_wrap{padding:8px 10px;margin:15px 0;background:#fff;border:1px solid #eee;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.wpacu_asset_row td .wpacu_asset_options_wrap p:first-child{margin-top:0;margin-bottom:8px!important}.wpacu_asset_row p.wpacu_handle{margin-top:0}.wpacu_asset_row li.wpacu_unload_this_page{display:block!important;position:relative}.wpacu-clearfix:after,.wpacu-clearfix:before{display:table;content:""}.wpacu-contract-expand-area{width:100%;margin:20px 0 0}.wpacu-contract-expand-area .col-left{float:left}.wpacu-contract-expand-area .col-left h4{margin-bottom:0}.wpacu-contract-expand-area .col-right{float:right}.wpacu-clearfix{clear:both;height:0}.wpacu-clearfix:after{clear:both}.wpacu-wp-button{color:#555;border-color:#ccc;background:#f7f7f7;box-shadow:0 1px 0 #ccc;vertical-align:top}body.wp-admin .wpacu-wp-button{font-size:13px;line-height:26px;height:28px}.wpacu-wp-button.wpacu-wp-button-secondary{display:inline-block;text-decoration:none;height:auto;margin:0 5px 0 0;padding:0 10px 1px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;border-radius:3px;white-space:nowrap;box-sizing:border-box}.wpacu-wp-button:hover{background:#fafafa;border-color:#999;color:#23282d}.distinguish-asset-list{list-style:none;margin-left:0;margin-bottom:5px;display:inline-block}.distinguish-asset-list li{float:left;margin-right:20px}.distinguish-asset-list li:last-child{margin-right:0}body[class*=asset-cleanup-pro] a.wpacu-plugin-contracted-wrap-link{padding:16px 6px 16px 41px!important}body[class*=asset-cleanup-pro] .wpacu-area-open .wpacu-plugin-toggle-all{font-size:12px!important;width:calc(100% - 26px)!important}body.wp-admin .wpacu-area-expanded .wpacu-plugin-toggle-all{top:5px}body.wp-admin .wpacu-area-expanded .wpacu-plugin-toggle-all ul li{font-size:12px!important}.wpacu-assets-collapsible-wrap{border:1px solid #cdcdcd}.wpacu-assets-collapsible-wrap.wpacu-by-location{margin-bottom:15px}.wpacu-assets-collapsible-wrap.wpacu-wrap-all{margin-top:20px}.wpacu-assets-collapsible-wrap.wpacu-wrap-area{margin-top:10px}.wpacu-assets-collapsible-wrap.wpacu-by-location>a.wpacu-assets-collapsible{padding:15px 15px 15px 43px}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu_list_table{border-width:0;margin:0;border-spacing:inherit;width:100%;box-shadow:3px 3px 2px #ddd;border-bottom-right-radius:5px;border-top-right-radius:5px}.wpacu-assets-collapsible-wrap.wpacu-by-location span.wpacu-child-location-name{font-weight:600}.wpacu-assets-collapsible-wrap.wpacu-by-location span.wpacu-child-location-version{font-weight:200}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-location-child-area[data-wpacu-plugin=oxygen] .icon-area{border-radius:50%}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-location-child-area .wpacu-plugin-toggle-all-wrap .wpacu-plugin-toggle-all{display:inline-block;padding:0;font-size:13px;width:100%;width:calc(100% + 46px);min-width:250px;position:absolute;left:100%;left:calc(100% + 6px);margin:0;top:4px}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-location-child-area .wpacu-plugin-toggle-all-wrap .wpacu-plugin-toggle-all ul{display:inline-block;margin:0;list-style:none;padding-left:13px;padding-top:0}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-location-child-area .wpacu-plugin-toggle-all-wrap .wpacu-plugin-toggle-all ul li{padding:0;margin:0;line-height:normal;font-size:14px}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-location-child-area .wpacu-plugin-toggle-all-wrap .wpacu-plugin-toggle-all ul li:first-child{font-style:italic;margin-bottom:5px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-themes .wpacu-assets-collapsible-content>table:last-child{margin-bottom:20px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-themes .wpacu-assets-collapsible-content .wpacu-location-child-area .wpacu-area-title{display:inline;position:relative;z-index:1}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-themes .wpacu-assets-collapsible-content .wpacu-location-child-area .wpacu-area-title:after{content:"";position:absolute;width:100%;left:0;bottom:0;height:1px;background-color:#fdfdfd}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content .wpacu-plugin-assets-wrap{padding:0 0 10px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content .wpacu-plugin-assets-wrap.wpacu-area-open.wpacu-plugin-assets-last{margin-bottom:18px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content .wpacu-plugin-assets-wrap.wpacu-area-open .wpacu-plugin-toggle-all-wrap .wpacu-plugin-toggle-all{display:inline-block;padding:7px 12px 8px;font-size:14px;width:100%;text-align:left;border-left:1px solid #cdcdcd;border-right:1px solid #cdcdcd}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content .wpacu-plugin-assets-wrap.wpacu-area-open .wpacu-plugin-toggle-all-wrap .wpacu-plugin-toggle-all+.wpacu-plugin-toggle-all{padding:2px 12px 10px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link{color:inherit;text-decoration:none;font-weight:inherit;font-style:inherit;font-size:105%;line-height:initial;height:auto;margin:14px 0 0;padding:13px 6px 14px 39px;position:relative;display:block}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link:after{position:absolute;font-size:18px;font-family:Dashicons;right:12px;top:14px;content:""}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link.wpacu-link-open:after{content:""}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link.wpacu-link-closed{border:1px solid #cdcdcd}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link:hover{border:1px solid #878787;background:#f9f9f9}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link:hover.wpacu-link-closed{box-shadow:3px 3px 2px #ddd}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link.wpacu-link-open{border-top:1px solid #cdcdcd;border-left:1px solid #cdcdcd;border-right:1px solid #cdcdcd;border-bottom:none}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link.wpacu-link-closed.wpacu-last-wrap-link{margin-bottom:20px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link .icon-plugin-default{top:10px;left:10px;width:30px;height:30px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link .icon-plugin-default .icon-area{width:30px;height:30px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link .icon-plugin-default .icon-area:before{font-size:22px;line-height:22px;top:4px;left:5px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link .wpacu-area-title{position:relative;padding:17px 10px 16px 46px;z-index:1}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link .wpacu-area-title:after{content:"";position:absolute;width:100%;left:0;bottom:0;height:1px;background-color:#fdfdfd}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link.wpacu-area-last{margin-bottom:18px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content .wpacu-area-open{padding:0;max-height:100%}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content .wpacu-area-closed{padding:0;overflow:hidden;max-height:0}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content>table:last-child{margin-bottom:20px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-themes .wpacu-assets-collapsible-content .wpacu-location-child-area .wpacu-area-title{margin-top:0;margin-bottom:-1px;padding:14px 10px 16px 12px!important}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-themes .wpacu-assets-collapsible-content .wpacu-location-child-area .wpacu-area-title.wpacu-theme-has-icon{padding:18px 10px 16px 58px!important}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-assets-collapsible-content .wpacu-location-child-area{margin-top:22px;margin-bottom:-1px;font-size:110%;line-height:initial}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-assets-collapsible-content .wpacu-location-child-area.wpacu-location-child-area-first{margin-top:2px}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-assets-collapsible-content .wpacu-location-child-area.wpacu-area-expanded .wpacu-area-title{display:inline-block;z-index:1;padding:17px 10px 16px 46px}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-assets-collapsible-content .wpacu-location-child-area .wpacu-area-title{display:inline;border-top-right-radius:8px;border-top-left-radius:8px;background-color:#f9f9f9;border-left:1px solid #cdcdcd;border-top:1px solid #cdcdcd;border-bottom:1px solid transparent;border-right:1px solid #cdcdcd;position:relative}.wpacu-assets-collapsible-wrap.wpacu-by-location .icon-plugin-default{position:absolute;padding:0;top:10px;left:10px;width:37px;height:37px}.wpacu-assets-collapsible-wrap.wpacu-by-location .icon-plugin-default:not(.has-icon){color:#b4b9be;background-color:#eee;box-shadow:inset 0 0 10px rgba(160,165,170,.15);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.wpacu-assets-collapsible-wrap.wpacu-by-location .icon-plugin-default:not(.has-icon) .icon-area:before{content:"";font-family:Dashicons;position:absolute;font-size:28px;line-height:28px;top:5px;left:5px}.wpacu-assets-collapsible-wrap.wpacu-by-location .icon-plugin-default .icon-area{position:relative;width:37px;height:37px}.wpacu-assets-collapsible-wrap.wpacu-by-location .icon-theme{position:absolute;padding:0;top:10px;left:10px;width:37px;height:37px}.wpacu-assets-collapsible-wrap.wpacu-by-location .icon-theme .icon-area{position:relative;width:37px;height:37px}.wpacu-assets-collapsible-wrap.wpacu-wp_core{border:1px solid #c00}.wpacu-assets-collapsible-wrap.wpacu-external .wpacu-assets-collapsible-content,.wpacu-assets-collapsible-wrap.wpacu-wp_core .wpacu-assets-collapsible-content{padding:0}.wpacu-assets-collapsible-wrap.wpacu-external .wpacu-assets-collapsible-content .wpacu_list_table,.wpacu-assets-collapsible-wrap.wpacu-wp_core .wpacu-assets-collapsible-content .wpacu_list_table{width:100%;margin:0}.wpacu-assets-collapsible-wrap.wpacu-external .wpacu-assets-collapsible-content .wpacu_list_table .wpacu_asset_row td,.wpacu-assets-collapsible-wrap.wpacu-wp_core .wpacu-assets-collapsible-content .wpacu_list_table .wpacu_asset_row td{border-left:hidden;border-right:hidden;border-bottom:1px solid #cdcdcd}.wpacu-assets-collapsible-wrap.wpacu-external .wpacu-assets-collapsible-content .wpacu_list_table .wpacu_asset_row:last-child,.wpacu-assets-collapsible-wrap.wpacu-wp_core .wpacu-assets-collapsible-content .wpacu_list_table .wpacu_asset_row:last-child{margin-bottom:0!important}.wpacu-assets-collapsible-wrap.wpacu-external .wpacu-assets-collapsible-content .wpacu_list_table .wpacu_asset_row:last-child td:last-child,.wpacu-assets-collapsible-wrap.wpacu-wp_core .wpacu-assets-collapsible-content .wpacu_list_table .wpacu_asset_row:last-child td:last-child{border-bottom:hidden}a.wpacu-assets-collapsible{color:#000;font-size:20px;text-decoration:none;display:block;position:relative;background-color:#f1f3f8;cursor:pointer;padding:15px 15px 15px 36px;width:auto;border:none;text-align:left;outline:0}a.wpacu-assets-collapsible>span.dashicons{font-size:25px;line-height:normal;position:absolute;top:15px;top:calc(50% - 21px);left:22px;-webkit-transform:translate(-50%,50%);transform:translate(-50%,50%)}a.wpacu-assets-collapsible:hover{background-color:#f1f3f8;text-decoration:none}a.wpacu-assets-collapsible:after{position:absolute;font-size:22px;font-family:Dashicons;right:14px;top:16px}a.wpacu-assets-collapsible:not(.wpacu-assets-collapsible-active):after{content:""}a.wpacu-assets-collapsible.wpacu-assets-collapsible-active{background-color:#f1f3f8}a.wpacu-assets-collapsible.wpacu-assets-collapsible-active:after{content:""}.wpacu-assets-collapsible-content{padding:0 16px;max-height:0;overflow:hidden;background-color:#fbfbfb8c}.wpacu-assets-collapsible-content .wpacu-assets-note{margin:0;padding:15px 15px 10px}.wpacu-assets-collapsible-content>div:not(.wpacu-assets-table-list-wrap){padding:16px 0 0}.wpacu-assets-collapsible-content>div>p:first-child{margin-top:0}.wpacu-assets-collapsible-content.wpacu-open{max-height:100%}a.wpacu-assets-inline-code-collapsible{color:inherit;font-size:14px;text-decoration:none;display:inline-block;position:relative;cursor:pointer;width:auto;outline:0;background:#f1f3f8;border:1px solid #cdcdcd;padding:4px 21px 4px 8px;margin:0 0 0 6px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}a.wpacu-assets-inline-code-collapsible:hover{border:1px solid #5c5c5c}a.wpacu-assets-inline-code-collapsible:after{position:absolute;font-size:15px;font-family:Dashicons;right:-3px;top:-1px;width:14px;height:14px;-webkit-transform:translate(-50%,50%);transform:translate(-50%,50%)}a.wpacu-assets-inline-code-collapsible:not(.wpacu-assets-inline-code-collapsible-active):after{content:""}a.wpacu-assets-inline-code-collapsible.wpacu-assets-inline-code-collapsible-active:after{content:""}.wpacu-assets-inline-code-collapsible-content{font-size:80%;padding:0 8px;max-height:0;overflow:hidden;background-color:#fbfbfb8c}.wpacu-assets-inline-code-collapsible-content>div{padding:7px 8px 0}.wpacu-assets-inline-code-collapsible-content>div>p{line-height:normal!important}.wpacu-assets-inline-code-collapsible-content>div>p:first-child{margin-top:0}.wpacu-assets-inline-code-collapsible-content.wpacu-open{max-height:100%}.wpacu_asset_row p div.select{display:inline-block}.wpacu-wrap-choose-position{display:inline}.wpacu-wrap-choose-position>div{display:inline-block}.wpacu-wrap-choose-position select{width:auto;font-size:inherit;display:inline;margin-left:6px;margin-right:4px}.wpacu-wrap-choose-position>.select>.select{display:inline}.wpacu-wrap-choose-position>.select>.select select{padding-right:30px}.wpacu-wrap-choose-position>.select>.select:after{right:15px;top:-4px}.wpacu_handle_unload_regex_input_wrap,.wpacu_load_regex_input_wrap{display:block;width:100%}.wpacu_handle_unload_regex_input_wrap .wpacu_regex_rule_area .wpacu_regex_rule_textarea,.wpacu_load_regex_input_wrap .wpacu_regex_rule_area .wpacu_regex_rule_textarea{line-height:normal;min-height:20px;min-width:300px;max-width:400px;display:inline-block;padding:2px 4px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.wpacu_handle_unload_regex_input_wrap .wpacu_regex_rule_area .wpacu_regex_rule_textarea:focus,.wpacu_load_regex_input_wrap .wpacu_regex_rule_area .wpacu_regex_rule_textarea:focus{width:100%}body.logged-in:not(.wp-admin) .wpacu-view-more-code{box-shadow:inset 0 1px 0 0 #fff;background:linear-gradient(to bottom,#f9f9f9 5%,#e9e9e9 100%);background-color:#f9f9f9;border-radius:6px;border:1px solid #dcdcdc;display:inline-block;cursor:pointer;color:#666;font-size:inherit;font-weight:700;padding:6px 24px;text-decoration:none;text-shadow:0 1px 0 #fff}body.logged-in:not(.wp-admin) .wpacu-view-more-code:hover{background:linear-gradient(to bottom,#e9e9e9 5%,#f9f9f9 100%);background-color:#e9e9e9}body.logged-in:not(.wp-admin) .wpacu-view-more-code:active{position:relative;top:1px}.wpacu_table_wrap{margin:20px 0 0}.wpacu_table_wrap>table{border:1px solid #cdcdcd}.wpacu_table_wrap .table{width:100%;max-width:100%;margin-bottom:1rem;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.wpacu_table_wrap .table td,.wpacu_table_wrap .table th{padding:.75rem;vertical-align:top;border-top:1px solid #eceeef}.wpacu_table_wrap .table thead th{vertical-align:bottom;border-bottom:2px solid #eceeef}.wpacu_table_wrap .table tbody+tbody{border-top:2px solid #eceeef}.wpacu_table_wrap .table .table{background-color:#fff}.wpacu_table_wrap .table-sm td,.wpacu_table_wrap .table-sm th{padding:.3rem}.wpacu_table_wrap .table-bordered,.wpacu_table_wrap .table-bordered td,.wpacu_table_wrap .table-bordered th{border:1px solid #eceeef}.wpacu_table_wrap .table-bordered thead td,.wpacu_table_wrap .table-bordered thead th{border-bottom-width:2px}.wpacu_table_wrap .table-striped tbody tr:nth-of-type(even){background-color:#f9f9f9}.wpacu_table_wrap .table-striped tbody tr:nth-of-type(odd){background-color:#fff}.wpacu_table_wrap .table-active,.wpacu_table_wrap .table-active>td,.wpacu_table_wrap .table-active>th,.wpacu_table_wrap .table-hover .table-active:hover,.wpacu_table_wrap .table-hover .table-active:hover>td,.wpacu_table_wrap .table-hover .table-active:hover>th,.wpacu_table_wrap .table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.wpacu_table_wrap .table-success,.wpacu_table_wrap .table-success>td,.wpacu_table_wrap .table-success>th{background-color:#dff0d8}.wpacu_table_wrap .table-hover .table-success:hover,.wpacu_table_wrap .table-hover .table-success:hover>td,.wpacu_table_wrap .table-hover .table-success:hover>th{background-color:#d0e9c6}.wpacu_table_wrap .table-info,.wpacu_table_wrap .table-info>td,.wpacu_table_wrap .table-info>th{background-color:#d9edf7}.wpacu_table_wrap .table-hover .table-info:hover,.wpacu_table_wrap .table-hover .table-info:hover>td,.wpacu_table_wrap .table-hover .table-info:hover>th{background-color:#c4e3f3}.wpacu_table_wrap .table-warning,.wpacu_table_wrap .table-warning>td,.wpacu_table_wrap .table-warning>th{background-color:#fcf8e3}.wpacu_table_wrap .table-hover .table-warning:hover,.wpacu_table_wrap .table-hover .table-warning:hover>td,.wpacu_table_wrap .table-hover .table-warning:hover>th{background-color:#faf2cc}.wpacu_table_wrap .table-danger,.wpacu_table_wrap .table-danger>td,.wpacu_table_wrap .table-danger>th{background-color:#f2dede}.wpacu_table_wrap .table-hover .table-danger:hover,.wpacu_table_wrap .table-hover .table-danger:hover>td,.wpacu_table_wrap .table-hover .table-danger:hover>th{background-color:#ebcccc}.wpacu_table_wrap .thead-inverse th{color:#fff;background-color:#292b2c}.wpacu_table_wrap .thead-default th{color:#464a4c;background-color:#eceeef}.wpacu_table_wrap .table-inverse{color:#fff;background-color:#292b2c}.wpacu_table_wrap .table-inverse td,.wpacu_table_wrap .table-inverse th,.wpacu_table_wrap .table-inverse thead th{border-color:#fff}.wpacu_table_wrap .table-inverse.table-bordered,.wpacu_table_wrap .table-responsive.table-bordered{border:0}.wpacu_table_wrap .table-responsive{display:block;width:100%;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar}body.wp-admin[class*=asset-cleanup] .wpacu-overview-wrap .wpacu-overview-list-table tr:not(.wpacu-top):hover td{border-top:1px solid #ccd0d4;border-bottom:1px solid #ccd0d4}body.wp-admin[class*=asset-cleanup] .wpacu-overview-wrap .wpacu-overview-list-table tr:not(.wpacu-top):hover td:first-of-type{border-left:1px solid #ccd0d4}body.wp-admin[class*=asset-cleanup] .wpacu-overview-wrap .wpacu-overview-list-table tr:not(.wpacu-top):hover td:last-of-type{border-right:1px solid #ccd0d4}body.wp-admin[class*=asset-cleanup] .wpacu-overview-wrap .wpacu-overview-list-table tr td{font-size:14px;border-top:1px solid transparent;border-bottom:1px solid transparent}body.wp-admin[class*=asset-cleanup] .wpacu-overview-wrap .wpacu-overview-list-table tr td:first-of-type{border-left:1px solid transparent}body.wp-admin[class*=asset-cleanup] .wpacu-overview-wrap .wpacu-overview-list-table tr td:last-of-type{border-right:1px solid transparent}body.wp-admin[class*=asset-cleanup] table.wp-list-table:not(.wpacu-overview-list-table) tr:not(:first-of-type):not(.wpacu_selected):hover,body.wp-admin[class*=asset-cleanup] table.wp-list-table:not(.wpacu-overview-list-table).wpacu-list-table tr:not(.wpacu_selected):hover{-moz-box-shadow:inset 0 0 2px 1px #b3b3b3;-webkit-box-shadow:inset 0 0 2px 1px #B3B3B3;box-shadow:inset 0 0 2px 1px #B3B3B3}.wp-list-table .wpacu_remove_global_attr_row.wpacu_selected,.wp-list-table .wpacu_restore_position_row.wpacu_selected{background:#e7e7e7!important}ul.hire-reasons{margin-bottom:20px}ul.hire-reasons li{font-size:14px;line-height:22px;margin-bottom:12px}ul.hire-reasons li .dashicons{font-size:23px;line-height:23px}ul.hire-reasons li .dashicons.dashicons-yes{color:green}#wpacu-plugins-load-manager-wrap .wrap_plugin_unload_rules_options .wpacu_plugin_rules_wrap ul.wpacu_plugin_rules label.wpacu_plugin_unload_rule_input_checked,#wpacu-warning-read span.dashicons-warning,#wpacu-warning-read span.dashicons-wordpress-alt{color:#c00}ol.getting-started li{font-size:14px;line-height:22px;margin-bottom:8px}.wpacu-get-help-wrap p{font-size:14px}.wpacu-get-help-wrap .help-content-wrap{margin:20px 0 25px;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-moz-flex;display:-webkit-flex;display:flex;width:100%}@media only screen and (max-width:767px){.wpacu-get-help-wrap .help-content-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.wpacu-get-help-wrap .help-content-wrap .help-content{padding:15px;background:#fff;border:1px solid #E0E0E0;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;box-shadow:2px 3px 8px 0 #231f2038;flex:1 1 50%;margin-bottom:10px}.wpacu-get-help-wrap .help-content-wrap .help-content .content-title{margin:5px 0 15px}.wpacu-get-help-wrap .help-content-wrap .help-content .cols-wrap{width:100%;margin:0 auto;display:table}.wpacu-get-help-wrap .help-content-wrap .help-content .wpacu-image-area{margin:5px 0 0;position:relative}.wpacu-get-help-wrap .help-content-wrap .help-content .wpacu-image-area.col-left{float:left;width:48%}.wpacu-get-help-wrap .help-content-wrap .help-content .wpacu-image-area.col-right{float:right;width:48%}.wpacu-get-help-wrap .help-content-wrap .help-content .wpacu-image-area.activate-plugin img{max-width:280px}.wpacu-get-help-wrap .help-content-wrap .help-content .wpacu-image-area img{width:99%;margin:8px 0;border:1px solid #cdcdcd;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.wpacu-get-help-wrap .help-content-wrap .help-content.upgrade-help{order:2}@media only screen and (min-width:768px){.wpacu-get-help-wrap .help-content-wrap .help-content{margin-right:24px}.wpacu-get-help-wrap .help-content-wrap .help-content.upgrade-help{margin-right:0}}.wpacu-get-help-wrap .help-content-wrap .help-content.tech-help{order:1}@media only screen and (max-width:767px){.wpacu-get-help-wrap .help-content-wrap .help-content.tech-help{margin-bottom:30px}}.wpacu-get-help-wrap .help-content-wrap .help-content ul{list-style:none;padding-left:0}.wpacu-get-help-wrap .help-content-wrap .help-content ul li{font-size:14px;line-height:22px;margin-bottom:15px}.wpacu-get-help-wrap .help-content-wrap .help-content p:last-child,.wpacu-get-help-wrap .help-content-wrap .help-content ul li:last-child{margin-bottom:0}#wpacu-license-data-remove-area{display:none;margin:10px 0 25px}#wpacu-license-data-remove-area.wpacu-visible{display:block}span#wpacu-license-data-removed-msg{display:block;padding-left:26px}#wpacu-warning-read{display:none;margin:10px 0}#wpacu-warning-read.wpacu-visible{display:block}#wpacu-reset-submit-area{margin:10px 0;clear:both}#wpacu-reset-submit-btn{margin:10px 0 0}.wpacu-tools-area{margin:10px 20px 0 2px}.wpacu-tools-area .wpacu-tools-container{background:#fff;padding:15px;border:1px solid #cdcdcd;width:96%}.wpacu-tools-area .wpacu-tools-container form>div:first-child{margin:0 0 10px}.wpacu-tools-area .wpacu-tools-container form .wpacu-warning{display:none;box-sizing:border-box;margin-top:10px}.wpacu-tools-area .wpacu-tools-container form .wpacu-warning p{margin:0 0 10px;line-height:22px}.wpacu-tools-area .wpacu-tools-container form .wpacu-warning p:only-child{margin:0}.wpacu-tools-area .wpacu-tools-container form .wpacu-warning ul{font-size:13px;list-style-type:disc;padding-left:30px}.wpacu-tools-area .wpacu-tools-container form .wpacu-warning.wpacu-visible{display:block}.wpacu-tools-area .wpacu-export-import-area{padding:10px}.wpacu-tools-area .wpacu-export-import-area form>p:first-of-type{margin-top:0}.wpacu-tools-area .wpacu-export-import-area form>p:last-of-type{margin-bottom:0}.wpacu-tools-area .wpacu-export-import-area:hover{background:rgba(40,44,42,.05);box-shadow:inset 0 0 10px rgba(160,165,170,.15)}.wpacu-tools-area .wpacu-export-import-area+hr{display:block;height:1px;border:0;border-top:1px solid #cdcdcd;margin:10px 0;padding:0}#wpacu-import-form button.wpacu-importing img.wpacu-spinner{display:inline-block}#wpacu-import-form button img.wpacu-spinner{display:none;margin:0 0 0 5px;height:16px;width:16px;vertical-align:middle}.wpacu-about-wrap .wpacu-about-text img{width:auto;height:150px;position:absolute;top:20px;right:-20px}@media only screen and (max-width:767px){.wpacu-about-wrap h1{margin:20px}.wpacu-about-wrap .wpacu-about-text img{display:none}.wpacu-about-wrap .wpacu-about-text{margin:20px}}.wpacu-about-wrap .about-wrap-content .area-title{font-size:19px;line-height:19px;margin-bottom:0}.wpacu-about-wrap hr{margin:10px 0}.wpacu-lite-vs-pro-wrap ul{display:flex;top:0;z-index:10;padding-bottom:14px}.wpacu-lite-vs-pro-wrap li{list-style:none;flex:1}.wpacu-lite-vs-pro-wrap li:last-child{border-right:1px solid #DDD}.wpacu-lite-vs-pro-wrap button{width:100%;border:1px solid #DDD;border-right:0;border-top:0;padding:10px;background:#FFF;font-size:14px;font-weight:700;height:60px;color:#999}.wpacu-lite-vs-pro-wrap li.active button{background:#F5F5F5;color:#000}.wpacu-lite-vs-pro-wrap table{border-collapse:collapse;table-layout:fixed;width:100%}.wpacu-lite-vs-pro-wrap th{background:inherit}.wpacu-lite-vs-pro-wrap tr.first{background:inherit;font-size:18px}.wpacu-lite-vs-pro-wrap tr.first .bg-lite{border-top:4px solid #6d6e70;background:#fff;color:#6d6e70}.wpacu-lite-vs-pro-wrap tr.first .bg-pro{border-top:4px solid green;background:#fff;color:green}.wpacu-lite-vs-pro-wrap tr:not(.first){background:#fff}.wpacu-lite-vs-pro-wrap tr:not(:last-child):hover{background:#f8f8f8}.wpacu-lite-vs-pro-wrap td,.wpacu-lite-vs-pro-wrap th{height:53px;line-height:22px;border:1px solid #DDD;padding:10px 16px;empty-cells:show;text-align:left}@media only screen and (max-width:767px){.wpacu-lite-vs-pro-wrap td,.wpacu-lite-vs-pro-wrap th{font-size:14px}}.wpacu-lite-vs-pro-wrap td+td,.wpacu-lite-vs-pro-wrap th+th{text-align:center;display:none}.wpacu-lite-vs-pro-wrap td.default{display:table-cell}.wpacu-lite-vs-pro-wrap .txt-l{font-size:28px;font-weight:700}.wpacu-lite-vs-pro-wrap .txt-top{position:relative;top:-9px;left:-2px}.wpacu-lite-vs-pro-wrap svg{width:18px;height:18px}.wpacu-lite-vs-pro-wrap svg path{fill:green}.wpacu-lite-vs-pro-wrap .tick{color:#2CA01C}.wpacu-lite-vs-pro-wrap .tick img{fill:#2CA01C}@media only screen and (max-width:767px){.wpacu-lite-vs-pro-wrap .txt-l{font-size:20px}.wpacu-lite-vs-pro-wrap .tick{font-size:15px}}.wpacu-lite-vs-pro-wrap .na{font-size:18px;opacity:.3;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"}.wpacu-lite-vs-pro-wrap .hide{border:0;background:0 0}.wpacu-lite-vs-pro-wrap td,.wpacu-lite-vs-pro-wrap th{display:table-cell!important;width:auto}.wpacu-lite-vs-pro-wrap td+td,.wpacu-lite-vs-pro-wrap th+th{width:130px}@media only screen and (max-width:767px){.wpacu-lite-vs-pro-wrap .na{font-size:15px}.wpacu-lite-vs-pro-wrap td+td,.wpacu-lite-vs-pro-wrap th+th{width:42px}}@media only screen and (min-width:768px){.wpacu-lite-vs-pro-wrap td .button{font-size:16px!important}}@media only screen and (max-width:767px){.wpacu-lite-vs-pro-wrap td .button{font-size:14px!important;padding:0 20px!important}.wpacu-lite-vs-pro-wrap td .button.button-primary{margin-top:6px;margin-bottom:14px}}@media only screen and (min-width:768px){.wpacu-lite-vs-pro-wrap{margin-bottom:40px;clear:both}}.wpacu-video-areas>div{padding:20px;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.wpacu-video-areas>div:nth-child(odd){background:#fff}.wpacu-video-areas>div:nth-child(even){background:inherit}@media only screen and (min-width:1200px){.wpacu-video-areas .wpacu-video-area-wrapper{margin:0 0 15px;display:flex}.wpacu-video-areas .wpacu-video-area-wrapper .wpacu-col-right{padding:0 20px 0 25px}}@media only screen and (min-width:992px) and (max-width:1199px){.wpacu-video-areas .wpacu-video-area-wrapper{margin:0 0 40px}}.wpacu-video-areas .wpacu-video-area-wrapper ol{font-size:14px}.wpacu-video-areas .wpacu-video-area-wrapper ul{font-size:14px;list-style:disc;margin-left:22px}@media only screen and (min-width:1200px){.wpacu-video-areas .wpacu-video-area-wrapper .wpacu-col-right p:first-child{margin-top:0}.wpacu-video-areas .wpacu-video-area-wrapper .wpacu-col-right p:last-child{margin-bottom:0}}@media only screen and (max-width:1199px){.wpacu-video-areas .wpacu-video-area-wrapper .wpacu-video-wrapper{position:relative;padding-bottom:56.25%;padding-top:30px;height:0;overflow:hidden}}.wpacu-video-areas .wpacu-video-area-wrapper .wpacu-video-wrapper iframe{width:560px;height:315px}@media only screen and (max-width:1199px){.wpacu-video-areas .wpacu-video-area-wrapper .wpacu-video-wrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%}}#wpassetcleanup_asset_list.postbox h2{padding-left:52px!important;position:relative}#wpassetcleanup_asset_list.postbox h2:before{content:"";position:absolute;background-image:url(images/wpacu-logo-transparent-bg-v1.png);background-size:cover;top:6px;left:13px;width:33px;height:26px;opacity:.8;-webkit-filter:grayscale(100%);filter:grayscale(100%)}body.wp-admin .wpacu-modal{display:none;position:fixed;z-index:1000000;padding-top:15%;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#000;background-color:rgba(0,0,0,.4)}body.wp-admin .wpacu-modal-content{background-color:#fefefe;margin:auto;padding:20px;border:1px solid #888;width:80%;max-width:600px;border-radius:10px}body.wp-admin .wpacu-close{color:#aaa;float:right;font-size:28px;font-weight:700}body.wp-admin .wpacu-close:focus,body.wp-admin .wpacu-close:hover{color:#000;text-decoration:none;cursor:pointer}.wpacu-bulk-changes-tabs{display:table;position:relative;overflow:hidden;margin:0;width:100%}.wpacu-bulk-changes-tabs li{border-top:1px solid rgba(40,44,42,.1);border-left:1px solid rgba(40,44,42,.1);border-bottom:1px solid rgba(40,44,42,.1);float:left;line-height:38px;padding:0;position:relative;margin-bottom:12px}.wpacu-bulk-changes-tabs li:last-child{border-right:1px solid rgba(40,44,42,.1)}.wpacu-bulk-changes-tabs a{position:relative;background:rgba(40,44,42,.05);color:#004567;font-size:14px;font-weight:500;display:block;letter-spacing:0;outline:0;padding:6px 20px;text-decoration:none;border-top:3px solid transparent}.wpacu-bulk-changes-tabs a:hover{background:#f1f1f1;border-top:3px solid transparent}.wpacu-bulk-changes-tabs .current a{background:#fff;border-top:3px solid #004567}.wpacu-bulk-changes-tabs .current a:hover{background:#fff}.wpacu-bulk-changes-tabs .current a:after,.wpacu-bulk-changes-tabs .current a:before{top:100%;left:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.wpacu-bulk-changes-tabs .current a:after{border-color:rgba(136,183,213,0);border-top-color:#fff;border-width:12px;margin-left:-12px}.wpacu-bulk-changes-tabs .current a:before{border-color:rgba(194,225,245,0);border-top-color:rgba(40,44,42,.1);border-width:13px;margin-left:-13px}img.wpacu-emoji{display:inline!important;border:none!important;height:1em!important;width:1em!important;margin:0 .07em!important;vertical-align:-.1em!important;background:0 0!important;padding:0!important;box-shadow:none!important}#wpacu-plugins-load-manager-wrap table td{border-bottom:1px solid #e7e7e7}#wpacu-plugins-load-manager-wrap table td.wpacu_plugin_icon{padding:14px 10px}#wpacu-plugins-load-manager-wrap table td.wpacu_plugin_details{vertical-align:middle;padding:10px 0 10px 8px}#wpacu-plugins-load-manager-wrap table td.wpacu_plugin_details .wpacu_plugin_title{font-weight:600}#wpacu-plugins-load-manager-wrap .wrap_plugin_unload_rules_options{width:auto;display:inline-flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}#wpacu-plugins-load-manager-wrap .wrap_plugin_unload_rules_options .wpacu_plugin_rules_wrap{flex-grow:1;margin:0 16px 0 0!important;padding:8px 10px 6px 0!important}#wpacu-plugins-load-manager-wrap .wrap_plugin_unload_rules_options .wpacu_plugin_rules_wrap ul.wpacu_plugin_rules{margin:0;vertical-align:middle}#wpacu-plugins-load-manager-wrap .wrap_plugin_unload_rules_options .wpacu_plugin_rules_wrap ul.wpacu_plugin_rules label{vertical-align:top}#wpacu-plugins-load-manager-wrap .wrap_plugin_unload_rules_options .wpacu_plugin_rules_wrap ul.wpacu_plugin_rules label input[type=radio].wpacu_plugin_load_it:before{background-color:green}#wpacu-plugins-load-manager-wrap .wrap_plugin_unload_rules_options .wpacu_plugin_rules_wrap ul.wpacu_plugin_rules label input[type=radio].wpacu_plugin_unload_rule_input:before{background-color:#c00}#wpacu-plugins-load-manager-wrap .wrap_plugin_load_exception_options{padding-top:5px;border-top:1px solid #e7e7e7;width:auto;display:inline-flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}#wpacu-plugins-load-manager-wrap .wrap_plugin_load_exception_options .wpacu_plugin_rules_wrap{flex-grow:1;margin:0 16px 0 0!important;padding:6px 10px 6px 0!important}#wpacu-plugins-load-manager-wrap .wrap_plugin_load_exception_options .wpacu_plugin_rules_wrap ul.wpacu_plugin_rules{margin:0;vertical-align:middle}#wpacu-plugins-load-manager-wrap .wrap_plugin_load_exception_options .wpacu_plugin_rules_wrap ul.wpacu_plugin_rules label{vertical-align:top}#wpacu-plugins-load-manager-wrap .wrap_plugin_load_exception_options .wpacu_plugin_rules_wrap ul.wpacu_plugin_rules.wpacu_exception_options_area li{display:inline-block;float:left;margin:1px 25px 1px 0;line-height:20px}#wpacu-plugins-load-manager-wrap .wrap_plugin_load_exception_options .wpacu_plugin_rules_wrap ul.wpacu_plugin_rules.wpacu_exception_options_area li:last-of-type{margin:1px 0}.wpacu-list-table.plugins{width:98%;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}#wpacu-plugins-load-manager-wrap .help_link{text-decoration:none;color:inherit;vertical-align:middle}#wpacu-plugins-load-manager-wrap .help_link.unload_it_regex{vertical-align:top}#wpacu-plugins-load-manager-wrap .wpacu_plugin_details .wpacu_plugin_path{font-style:italic;color:grey}#wpacu-plugins-load-manager-wrap .wpacu_plugin_icon>img{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}#wpacu-plugins-load-manager-wrap .wpacu_plugin_icon>div{background:#efefef;border:#cdcdcd;border-radius:3px;width:40px;height:40px;vertical-align:middle;position:relative;text-align:center}#wpacu-plugins-load-manager-wrap .wpacu_plugin_icon>div>span{font-size:30px;color:#b3b3b3;top:50%;vertical-align:middle;left:50%;transform:translate(-50%,-50%);width:30px;height:30px;position:absolute}#wpacu-plugins-load-manager-wrap .wpacu_exception_options_area textarea,#wpacu-plugins-load-manager-wrap textarea:focus{width:100%}#wpacu-plugins-load-manager-wrap .wpacu_plugin_unload_regex_input_wrap{display:block}#wpacu-plugins-load-manager-wrap .wpacu_plugin_unload_regex_input_wrap textarea{margin-top:6px;min-width:400px}#wpacu-plugins-load-manager-wrap textarea{line-height:normal;min-height:20px;min-width:300px;display:inline-block;padding:2px 4px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}#wpacu-plugins-load-manager-wrap textarea.wpacu_disabled{background:#fbfafa!important;color:inherit}
1
+ @charset "UTF-8";#wpacu-pages-info-area{width:98%}#wpacu-top-area{margin:15px 0;padding:0 10px}#wpacu-quick-actions{color:#74777b;float:right;width:auto;margin-right:30px;background:rgba(40,44,42,.05);border-radius:10px;padding:6px 12px}#wpacu-quick-actions .wpacu-actions-title{font-weight:200;letter-spacing:.5px}#wpacu-quick-actions a{color:#004567;text-decoration:none}#wpacu-quick-actions a:hover{color:#0073aa}#wpacu-logo-wrap{width:auto;display:inline-block;position:relative}#wpacu-logo-wrap a{display:block}#wpacu-logo-wrap img{width:352px;height:79px}#wpacu-logo-wrap .wpacu-pro-sign{position:absolute;height:auto;font-family:FiraSans-Medium,proxima-nova-1,Montserrat,Helvetica,sans-serif;font-size:13px;font-weight:600;letter-spacing:1px;padding:5px 11px;border-radius:15px;right:-60px;top:30px;width:auto;display:inline-block;text-align:center}#wpacu-logo-wrap .wpacu-pro-sign.wpacu-lite{color:#74777b;background:rgba(40,44,42,.05)}#wpacu-logo-wrap .wpacu-pro-sign.wpacu-pro{color:#004567;background-color:rgba(40,44,42,.05)}.wpacu-tabs{position:relative;overflow:hidden;margin:0 auto 20px;width:100%;font-weight:300;font-size:20px}.wpacu-tabs nav{text-align:center}.wpacu-tabs nav ul{position:relative;display:-ms-flexbox;display:-webkit-flex;display:-moz-flex;display:-ms-flex;display:flex;padding:0;list-style:none;-ms-box-orient:horizontal;-ms-box-pack:center;-webkit-flex-flow:row wrap;-moz-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;justify-content:center}.wpacu-tabs nav ul li{position:relative;z-index:1;display:block;margin:0;text-align:center;-webkit-flex:1;-moz-flex:1;-ms-flex:1;flex:1}.wpacu-tabs nav ul li span.extra-info{position:absolute;font-size:12px;left:-50%;right:50%;bottom:12px;-webkit-transform:translate(50%,50%);transform:translate(50%,50%);white-space:nowrap}.wpacu-tabs nav ul li span.extra-info.has-bulk-unloads{right:48%}.wpacu-tabs nav ul li span.extra-info.no-bulk-unloads{left:0;right:2px;bottom:2px;-webkit-transform:inherit;transform:inherit}.wpacu-tabs nav ul li span.extra-info .dashicons{font-size:16px;margin-right:-3px;margin-top:1px}.wpacu-tabs nav ul li span.extra-info.license-status.inactive{color:#c00}.wpacu-tabs nav ul li span.extra-info.license-status.active{color:green}.wpacu-tabs nav ul li span.extra-info.assets-unloaded-false{color:#004567}.wpacu-tabs nav ul li span.extra-info.assets-unloaded-true,.wpacu-tabs nav ul li span.extra-info.bulk-unloads-true{color:green}.wpacu-tabs nav a{position:relative;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:2.5}.wpacu-tabs nav a span{vertical-align:middle;font-size:14px}.wpacu-tabs nav li.wpacu-tab-current a{color:#74777b}.wpacu-tabs nav a:focus{outline:0}.wpacu-tabs .dashicons{font-size:20px}.no-js .wpacu-content-wrap section{display:block;padding-bottom:2em;border-bottom:1px solid rgba(255,255,255,.6)}.no-flexbox nav ul{display:block}.no-flexbox nav ul li{min-width:15%;display:inline-block}@media screen and (max-width:58em){.wpacu-tabs nav a.icon span{display:none}.wpacu-tabs nav a:before{margin-right:0}}.wpacu-tabs-style-underline nav{background:#fff}.wpacu-tabs-style-underline nav a{color:#74777b;font-size:18px;text-transform:uppercase;text-decoration:none;padding:.25em 0 .5em;border-left:1px solid #e7ecea;-webkit-transition:color .2s;transition:color .2s}.wpacu-tabs-style-underline nav li:last-child a{border-right:1px solid #e7ecea}.wpacu-tabs-style-underline nav li a::after{position:absolute;bottom:0;left:0;width:100%;height:6px;background:#2CC185;content:"";-webkit-transition:-webkit-transform .3s;transition:transform .3s;-webkit-transform:translate3d(0,150%,0);transform:translate3d(0,150%,0)}.wpacu-tabs-style-underline nav li.wpacu-tab-current a::after{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.wpacu-tabs-style-underline nav a span{font-weight:700}.wpacu-tabs-style-topline{max-width:1800px;margin:20px auto 22px 0;width:98%;font-weight:300;text-decoration:none}.wpacu-tabs-style-topline nav li{border:1px solid rgba(40,44,42,.1)}.wpacu-tabs-style-topline nav li:not(:last-child){border-right:none}.wpacu-tabs-style-topline nav li.wpacu-tab-current{border-top-color:#008f9c;border-bottom:none}.wpacu-tabs-style-topline nav a{padding:20px 18px;background:rgba(40,44,42,.05);color:#74777b;line-height:1;-webkit-transition:color .2s;transition:color .2s;text-decoration:none}.wpacu-tabs-style-topline nav a:focus,.wpacu-tabs-style-topline nav a:hover{background:0 0;color:#008f9c}.wpacu-tabs-style-topline nav li.wpacu-tab-current a{background:0 0;box-shadow:inset 0 3px 0 #008f9c;color:#008f9c}.wpacu-tabs-style-topline nav li.wpacu-tab-current a span:not(.dashicons){font-weight:600}.wpacu-tabs-style-topline nav a span{text-transform:uppercase;font-weight:400}.wpacu-tab-nav-wrapper{border-bottom:none!important}.wpacu-tab-nav-wrapper .nav-tab.nav-tab-active{background:#fff;position:relative}.wpacu-tab-nav-wrapper .nav-tab.nav-tab-active:after{content:"";width:100%;bottom:-2px;left:0;position:absolute;border-bottom:2px solid #fff}.wpacu_hide{display:none!important}.wpacu-script-attributes-area{display:block;margin-bottom:12px}.wpacu-script-attributes-area>div:first-of-type{display:inline-block;float:left;margin-right:15px;line-height:30px;vertical-align:middle}.wpacu-script-attributes-area ul.wpacu-script-attributes-settings{display:inline-block;float:left;padding:5px 7px!important}.wpacu-script-attributes-area ul.wpacu-script-attributes-settings.wpacu-first{margin:0 15px 0 0!important}.wpacu-script-attributes-area ul.wpacu-script-attributes-settings label{margin:0!important}.wpacu-script-attributes-area ul.wpacu-script-attributes-settings li{display:inline-block;margin:0 16px 0 0!important}.wpacu-script-attributes-area ul.wpacu-script-attributes-settings li:first-child{margin:0 10px 0 0!important}.wpacu-script-attributes-area ul.wpacu-script-attributes-settings li:last-child{margin:0 2px 0 0!important}.wpacu-script-attributes-area .wpacu-script-attributes-settings{background:#fff!important;border:1px solid #eee!important;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;padding:5px 10px!important;list-style:none;display:inline-block;margin:0}.wpacu-script-attributes-area .wpacu-script-attributes-settings input[type=radio]{width:auto;padding:0;margin:0 5px 0 0}.wpacu-script-attributes-area .wpacu-script-attributes-settings:hover{background:#f2faf2}tr.wpacu_location_changed>td{border-left:#004567 4px solid}tr.wpacu_not_load td,tr.wpacu_not_load th{background:#FFE1E1!important}tr.wpacu_not_load td .wpacu-assets-inline-code-wrap,tr.wpacu_not_load td .wpacu-script-attributes-area,tr.wpacu_not_load th .wpacu-assets-inline-code-wrap,tr.wpacu_not_load th .wpacu-script-attributes-area{filter:alpha(opacity=45);opacity:.45}.dashicons-wpacu{width:17px;height:17px;margin:2px 0 0;font-size:16px;text-decoration:none;color:inherit!important}.wpacu_widefat .check-column.wpacu_check{padding:10px}body[class*=wpassetcleanup] #footer-left{border-left:2px solid green;padding-left:10px}#wpassetcleanup_asset_list small{width:auto;float:none;display:inline}#wpacu_meta_box_content{width:99%}#wpacu_meta_box_content div.select select{max-width:inherit}#wpacu_meta_box_content .emoji{font-size:18px}#wpacu_meta_box_content h3{margin-left:0;padding-left:0}#wpacu_meta_box_content div.wpacu_note{padding:10px;background-color:#f5f5f5}#wpacu_meta_box_content .dashicons.dashicons-warning,#wpacu_meta_box_content .dashicons.dashicons-wordpress-alt{color:#c00}#wpacu_meta_box_content .wpacu_verified{padding:10px;background-color:#f5f5f5;border-left:1px solid #ddd}#wpacu_meta_box_content .wpacu_verified span{color:#0073aa;font-weight:700}#wpacu_meta_box_content div.wpacu_warning{border:1px solid #c00}#wpacu_meta_box_content ul.wpacu_asset_options{margin:0;padding:0}#wpacu_meta_box_content ul.wpacu_asset_options li{list-style:none;display:inline-block}#wpacu_meta_box_content ul.wpacu_asset_options label{font-weight:400;margin-right:5px;margin-top:5px;margin-bottom:5px}.wpacu-updated-frontend{font-weight:400;background-color:#fff;border-left:4px solid #46b450;border-top:1px solid #46b450;border-right:1px solid #46b450;border-bottom:1px solid #46b450;padding:9px 14px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.wpacu_exception_options_area_wrap label.wpacu_bold span,.wpacu_load_regex_area_wrap label.wpacu_bold span,.wpacu_unload_regex_area_wrap label.wpacu_bold span{font-weight:600!important}.wpacu-updated-frontend span.dashicons-yes{color:#46b450;font-size:26px}#wpacu-update-front-settings-area{margin:10px 0;display:inline-block;position:relative}@media only screen and (min-width:768px){#wpacu-update-front-settings-area{position:-webkit-sticky;position:sticky;bottom:0;display:block;padding:15px 0;z-index:1000000;border-top:1px solid #cdcdcd;background:#fff}}#wpacu-updating-front-settings{display:none;position:absolute;top:20px;left:142px}.wpacu_load_regex_area_wrap label.wpacu_unload_checked span,.wpacu_unload_regex_area_wrap label.wpacu_unload_checked span{color:#d54e21}.wpacu_load_regex_area_wrap .wpacu_handle_unload_regex_input_wrap,.wpacu_unload_regex_area_wrap .wpacu_handle_unload_regex_input_wrap{margin:4px 0 0}.wpacu_load_regex_area_wrap .wpacu_handle_unload_regex_input_wrap input[type=text],.wpacu_unload_regex_area_wrap .wpacu_handle_unload_regex_input_wrap input[type=text]{line-height:normal;min-height:20px;min-width:300px;max-width:400px;display:inline-block;padding:4px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.wpacu_load_regex_area_wrap .wpacu_handle_unload_regex_input_wrap input[type=text].wpacu_disabled,.wpacu_unload_regex_area_wrap .wpacu_handle_unload_regex_input_wrap input[type=text].wpacu_disabled{background:#fbfafa!important;color:inherit}.wpacu_is_global_unloaded .wpacu_exception_options_area_wrap{display:inline-block}.wpacu_is_global_unloaded .wpacu_exception_options_area_wrap .wpacu_area_one,.wpacu_is_global_unloaded .wpacu_exception_options_area_wrap .wpacu_area_two,.wpacu_is_global_unloaded .wpacu_exception_options_area_wrap .wpacu_load_regex_input_wrap{display:block}.wpacu_exception_options_area_wrap{display:table;background:#fff!important}.wpacu_exception_options_area_wrap textarea{line-height:normal;min-height:20px;min-width:300px;max-width:400px;display:inline-block;padding:2px 4px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.wpacu_exception_options_area_wrap textarea:focus{width:100%}.wpacu_exception_options_area_wrap textarea.wpacu_disabled{background:#fbfafa!important;color:inherit}.wpacu_exception_options_area_wrap p:first-of-type{margin-top:0}.wpacu_exception_options_area_wrap .wpacu_area_one{display:table-cell;vertical-align:top;padding-right:10px}.wpacu_exception_options_area_wrap .wpacu_area_two{display:table-cell}@media only screen and (max-width:1199px){.wpacu_exception_options_area_wrap,.wpacu_exception_options_area_wrap .wpacu_area_one,.wpacu_exception_options_area_wrap .wpacu_area_two{display:block}}#wpacu_meta_box_content .wpacu_widefat{width:100%}#wpacu_meta_box_content .wpacu-assets-collapsible-content{padding:0 10px!important}#wpacu_meta_box_content ul.wpacu_asset_options{vertical-align:middle}#wpacu_meta_box_content ul.wpacu_asset_options.wpacu_exception_options_area li{display:inline-block;float:left;margin:1px 25px 1px 0;line-height:20px}#wpacu_meta_box_content ul.wpacu_asset_options.wpacu_exception_options_area li:last-of-type{margin:1px 0}#wpacu_meta_box_content ul.wpacu_asset_options.wpacu_exception_options_area li input[type=text]{margin-left:5px;border:1px solid #e7e7e7;background:#fff}.wpacu-hardcoded-code-area{margin-bottom:8px}.wpacu-hardcoded-code-area.wpacu-has-view-more{max-height:300px;position:relative;overflow:hidden}.wpacu-hardcoded-code-area.wpacu-has-view-more p.wpacu-view-more-link-area{position:absolute;bottom:0;left:0;width:100%;margin:0;padding:20px 0 15px 15px;background:linear-gradient(to bottom,rgba(255,255,255,0) 0,#fbfbfb8c 100%);background:-webkit-linear-gradient(top,rgba(255,255,255,0) 0,#fbfbfb8c 100%)}#wpacu_wrap_assets,.wpacu_striped>tbody>:nth-child(even),ul.wpacu_striped>:nth-child(even){background-color:#fff!important}.wpacu-hardcoded-code-area pre{margin:0;padding:8px 0;white-space:pre-wrap;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.wpacu-hardcoded-code-area code{font-style:italic;margin-left:2px;word-break:break-word}#wpacu_wrap_assets{color:#000!important;text-align:left!important;clear:both!important;width:90%!important;padding:20px!important;margin:30px 0 0 15px!important;border:1px solid #cdcdcd;z-index:10000!important;position:relative!important}#wpacu_wrap_assets div.wpacu_warning{border:1px solid #c00;padding:5px 10px}#wpacu_wrap_assets small{display:inline!important;margin:0!important;letter-spacing:normal!important}#wpacu_wrap_assets input[type=checkbox]{width:auto!important;margin-right:4px!important}#wpacu_wrap_assets img:not(.wpacu-ajax-loader){display:inline-block!important}#wpacu_wrap_assets p{line-height:22px!important;margin:10px 0!important;text-align:left!important;font-weight:400!important}#wpacu_wrap_assets p:first-child{margin:0 0 10px!important}#wpacu_wrap_assets h1{margin:0 0 20px!important;font-size:160%!important;text-align:left!important}#wpacu_wrap_assets h3{margin:20px 0;font-size:130%}#wpacu_wrap_assets ul.wpacu_asset_options.wpacu_exception_options_area li{display:inline-block;float:left;margin:1px 25px 1px 0;line-height:30px}#wpacu_wrap_assets ul.wpacu_asset_options.wpacu_exception_options_area li:last-of-type{margin:1px 0}.wpacu_verified{margin:0 0 10px!important}.wpacu_asset_row div.select{display:inline-block;width:auto}.wpacu_asset_row:first-child td{border-top:1px solid #cdcdcd}.wpacu_asset_row td{border-left:1px solid #cdcdcd;border-right:1px solid #cdcdcd;border-bottom:1px solid #cdcdcd}.wpacu_asset_row.wpacu_notice_row td{position:relative;padding:5px;border-bottom:1px solid transparent}.wpacu_asset_row.wpacu_notice_row td div.wpacu-warning{width:auto;margin:5px;font-style:italic}.wpacu_asset_row:not(.wpacu_notice_row) td{padding:18px!important;position:relative}.wpacu_asset_row:not(.wpacu_notice_row) td.wpacu_selected,.wpacu_asset_row:not(.wpacu_notice_row) td:hover{-moz-box-shadow:inset 0 0 12px #cdcdcd;-webkit-box-shadow:inset 0 0 12px #cdcdcd;box-shadow:inset 0 0 12px #cdcdcd}.wpacu_asset_row:not(.wpacu_notice_row) td p{padding:0!important;margin-bottom:8px!important;word-wrap:break-word!important;-ms-word-break:break-all;word-break:break-word}.wpacu_asset_row:not(.wpacu_notice_row) td label{width:auto!important;margin:0!important;cursor:pointer!important;display:inline-block!important;font-size:100%!important;font-weight:400!important}.wpacu_asset_row:not(.wpacu_notice_row) td label span:not(.dashicons){font-size:100%!important}.wpacu_asset_row:not(.wpacu_notice_row) td.wpacu_check{width:50px!important}.asset-table-extra-info td{padding:5px!important}body.wp-admin .wpacu_asset_row td.wpacu_check{width:25px!important}.wpacu_asset_row .dashicons-warning,.wpacu_asset_row .dashicons-wordpress-alt{color:red!important}.wpacu_asset_row .dashicons-wordpress-alt{font-size:17px;vertical-align:middle}label.wpacu_add_global{cursor:pointer!important}label.wpacu_input_load_checked{font-weight:700;color:#d54e21}label.wpacu_global_unload_exception{font-weight:700!important}tr.wpacu_bulk_change_row.wpacu_selected,tr.wpacu_global_rule_row.wpacu_selected,tr.wpacu_remove_preload_row.wpacu_selected{background:#e7e7e7}.nav-tab-wrapper{border-bottom:1px solid #ccc;width:95%}.nav-tab-wrapper.nav-assets-manager .nav-tab{font-size:13px;font-weight:500;padding:6px 10px}.nav-tab-wrapper.nav-assets-manager .nav-tab.for-pro{padding:6px 8px 6px 3px}ul.wpacu_asset_options{margin:0 10px 0 0;padding:0}ul.wpacu_asset_options li{margin:0 10px 0 0;list-style:none;display:inline-block;line-height:normal}ul.wpacu_asset_options li.remove_rule label{font-weight:700}ul.wpacu_asset_options label{margin-right:20px;font-weight:400}ul.wpacu_asset_options label input{margin-right:4px}.wpacu_list_table{width:100%;font-weight:400}.wpacu_list_table div,.wpacu_list_table li,.wpacu_list_table p{font-weight:400}.wpacu_widefat{width:99%}.wpacu_striped>tbody>:nth-child(odd),ul.wpacu_striped>:nth-child(odd){background-color:#f9f9f9!important}.wpacu_update_btn{-moz-box-shadow:inset 0 1px 0 0 #54a3f7!important;-webkit-box-shadow:inset 0 1px 0 0 #54a3f7!important;box-shadow:inset 0 1px 0 0 #54a3f7!important;background:-webkit-gradient(linear,left top,left bottom,color-stop(.05,#007dc1),color-stop(1,#0061a7))!important;background:-moz-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:-webkit-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:-o-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:-ms-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:linear-gradient(to bottom,#007dc1 5%,#0061a7 100%)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#007dc1", endColorstr="#0061a7", GradientType=0)!important;background-color:#007dc1!important;-moz-border-radius:3px!important;-webkit-border-radius:3px!important;border-radius:3px!important;border:1px solid #124d77!important;display:inline-block!important;cursor:pointer!important;color:#fff!important;font-size:15px!important;padding:10px 24px!important;text-decoration:none!important;text-shadow:0 1px 0 #154682!important;height:auto!important;line-height:normal!important}.wpacu-btns .btn:focus,.wpacu-btns .btn:hover,.wpacu-btns a{text-decoration:none}.wpacu_update_btn.wpacu_submitting,.wpacu_update_btn:hover{background:-webkit-gradient(linear,left top,left bottom,color-stop(.05,#0061a7),color-stop(1,#007dc1))!important;background:-moz-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:-webkit-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:-o-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:-ms-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:linear-gradient(to bottom,#0061a7 5%,#007dc1 100%)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#0061a7", endColorstr="#007dc1", GradientType=0)!important;background-color:#0061a7!important}.wpacu_update_btn.wpacu_submitting{cursor:default!important}.wpacu_update_btn:active{position:relative!important;top:1px!important}.wpacu-btns .btn{display:inline-block;font-weight:400;line-height:1.25;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.5rem 1rem;font-size:1rem;-webkit-border-radius:.25rem;-moz-border-radius:.25rem;border-radius:.25rem;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wpacu-btns .btn.focus,.wpacu-btns .btn:focus{outline:0;-webkit-box-shadow:0 0 0 2px rgba(2,117,216,.25);box-shadow:0 0 0 2px rgba(2,117,216,.25)}.wpacu-btns .btn.disabled,.wpacu-btns .btn:disabled{cursor:not-allowed;opacity:.65}.wpacu-btns .btn.active,.wpacu-btns .btn:active{background-image:none}.wpacu-btns a.btn.disabled,.wpacu-btns fieldset[disabled] a.btn{pointer-events:none}.wpacu-btns .btn-primary{color:#fff;background-color:#0275d8;border-color:#0275d8}.wpacu-btns .btn-primary:hover{color:#fff;background-color:#025aa5;border-color:#01549b}.wpacu-btns .btn-primary.focus,.wpacu-btns .btn-primary:focus{-webkit-box-shadow:0 0 0 2px rgba(2,117,216,.5);box-shadow:0 0 0 2px rgba(2,117,216,.5)}.wpacu-btns .btn-primary.disabled,.wpacu-btns .btn-primary:disabled{background-color:#0275d8;border-color:#0275d8}.wpacu-btns .btn-primary.active,.wpacu-btns .btn-primary:active,.wpacu-btns .show>.btn-primary.dropdown-toggle{color:#fff;background-color:#025aa5;background-image:none;border-color:#01549b}.wpacu-btns .btn-secondary{color:#292b2c;background-color:#fff;border-color:#ccc}.wpacu-btns .btn-secondary:hover{color:#292b2c;background-color:#e6e6e6;border-color:#adadad}.wpacu-btns .btn-secondary.focus,.wpacu-btns .btn-secondary:focus{-webkit-box-shadow:0 0 0 2px rgba(204,204,204,.5);box-shadow:0 0 0 2px rgba(204,204,204,.5)}.wpacu-btns .btn-secondary.disabled,.wpacu-btns .btn-secondary:disabled{background-color:#fff;border-color:#ccc}.wpacu-btns .btn-secondary.active,.wpacu-btns .btn-secondary:active,.wpacu-btns .show>.btn-secondary.dropdown-toggle{color:#292b2c;background-color:#e6e6e6;background-image:none;border-color:#adadad}.wpacu-btns .btn-info{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.wpacu-btns .btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#2aabd2}.wpacu-btns .btn-info.focus,.wpacu-btns .btn-info:focus{-webkit-box-shadow:0 0 0 2px rgba(91,192,222,.5);box-shadow:0 0 0 2px rgba(91,192,222,.5)}.wpacu-btns .btn-info.disabled,.wpacu-btns .btn-info:disabled{background-color:#5bc0de;border-color:#5bc0de}.wpacu-btns .btn-info.active,.wpacu-btns .btn-info:active,.wpacu-btns .show>.btn-info.dropdown-toggle{color:#fff;background-color:#31b0d5;background-image:none;border-color:#2aabd2}.wpacu-btns .btn-success{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.wpacu-btns .btn-success:hover{color:#fff;background-color:#449d44;border-color:#419641}.wpacu-btns .btn-success.focus,.wpacu-btns .btn-success:focus{-webkit-box-shadow:0 0 0 2px rgba(92,184,92,.5);box-shadow:0 0 0 2px rgba(92,184,92,.5)}.wpacu-btns .btn-success.disabled,.wpacu-btns .btn-success:disabled{background-color:#5cb85c;border-color:#5cb85c}.wpacu-btns .btn-success.active,.wpacu-btns .btn-success:active,.wpacu-btns .show>.btn-success.dropdown-toggle{color:#fff;background-color:#449d44;background-image:none;border-color:#419641}.wpacu-btns .btn-warning{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.wpacu-btns .btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#eb9316}.wpacu-btns .btn-warning.focus,.wpacu-btns .btn-warning:focus{-webkit-box-shadow:0 0 0 2px rgba(240,173,78,.5);box-shadow:0 0 0 2px rgba(240,173,78,.5)}.wpacu-btns .btn-warning.disabled,.wpacu-btns .btn-warning:disabled{background-color:#f0ad4e;border-color:#f0ad4e}.wpacu-btns .btn-warning.active,.wpacu-btns .btn-warning:active,.wpacu-btns .show>.btn-warning.dropdown-toggle{color:#fff;background-color:#ec971f;background-image:none;border-color:#eb9316}.wpacu-btns .btn-danger{color:#fff;background-color:#d9534f;border-color:#d9534f}.wpacu-btns .btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#c12e2a}.wpacu-btns .btn-danger.focus,.wpacu-btns .btn-danger:focus{-webkit-box-shadow:0 0 0 2px rgba(217,83,79,.5);box-shadow:0 0 0 2px rgba(217,83,79,.5)}.wpacu-btns .btn-danger.disabled,.wpacu-btns .btn-danger:disabled{background-color:#d9534f;border-color:#d9534f}.wpacu-btns .btn-danger.active,.wpacu-btns .btn-danger:active,.wpacu-btns .show>.btn-danger.dropdown-toggle{color:#fff;background-color:#c9302c;background-image:none;border-color:#c12e2a}.wpacu-btns .btn-outline-primary{color:#0275d8;background-image:none;background-color:transparent;border-color:#0275d8}.wpacu-btns .btn-outline-primary:hover{color:#fff;background-color:#0275d8;border-color:#0275d8}.wpacu-btns .btn-outline-primary.focus,.wpacu-btns .btn-outline-primary:focus{-webkit-box-shadow:0 0 0 2px rgba(2,117,216,.5);box-shadow:0 0 0 2px rgba(2,117,216,.5)}.wpacu-btns .btn-outline-primary.disabled,.wpacu-btns .btn-outline-primary:disabled{color:#0275d8;background-color:transparent}.wpacu-btns .btn-outline-primary.active,.wpacu-btns .btn-outline-primary:active,.wpacu-btns .show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#0275d8;border-color:#0275d8}.wpacu-btns .btn-outline-secondary{color:#ccc;background-image:none;background-color:transparent;border-color:#ccc}.wpacu-btns .btn-outline-secondary:hover{color:#fff;background-color:#ccc;border-color:#ccc}.wpacu-btns .btn-outline-secondary.focus,.wpacu-btns .btn-outline-secondary:focus{-webkit-box-shadow:0 0 0 2px rgba(204,204,204,.5);box-shadow:0 0 0 2px rgba(204,204,204,.5)}.wpacu-btns .btn-outline-secondary.disabled,.wpacu-btns .btn-outline-secondary:disabled{color:#ccc;background-color:transparent}.wpacu-btns .btn-outline-secondary.active,.wpacu-btns .btn-outline-secondary:active,.wpacu-btns .show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#ccc;border-color:#ccc}.wpacu-btns .btn-outline-info{color:#5bc0de;background-image:none;background-color:transparent;border-color:#5bc0de}.wpacu-btns .btn-outline-info:hover{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.wpacu-btns .btn-outline-info.focus,.wpacu-btns .btn-outline-info:focus{-webkit-box-shadow:0 0 0 2px rgba(91,192,222,.5);box-shadow:0 0 0 2px rgba(91,192,222,.5)}.wpacu-btns .btn-outline-info.disabled,.wpacu-btns .btn-outline-info:disabled{color:#5bc0de;background-color:transparent}.wpacu-btns .btn-outline-info.active,.wpacu-btns .btn-outline-info:active,.wpacu-btns .show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.wpacu-btns .btn-outline-success{color:#5cb85c;background-image:none;background-color:transparent;border-color:#5cb85c}.wpacu-btns .btn-outline-success:hover{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.wpacu-btns .btn-outline-success.focus,.wpacu-btns .btn-outline-success:focus{-webkit-box-shadow:0 0 0 2px rgba(92,184,92,.5);box-shadow:0 0 0 2px rgba(92,184,92,.5)}.wpacu-btns .btn-outline-success.disabled,.wpacu-btns .btn-outline-success:disabled{color:#5cb85c;background-color:transparent}.wpacu-btns .btn-outline-success.active,.wpacu-btns .btn-outline-success:active,.wpacu-btns .show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.wpacu-btns .btn-outline-warning{color:#f0ad4e;background-image:none;background-color:transparent;border-color:#f0ad4e}.wpacu-btns .btn-outline-warning:hover{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.wpacu-btns .btn-outline-warning.focus,.wpacu-btns .btn-outline-warning:focus{-webkit-box-shadow:0 0 0 2px rgba(240,173,78,.5);box-shadow:0 0 0 2px rgba(240,173,78,.5)}.wpacu-btns .btn-outline-warning.disabled,.wpacu-btns .btn-outline-warning:disabled{color:#f0ad4e;background-color:transparent}.wpacu-btns .btn-outline-warning.active,.wpacu-btns .btn-outline-warning:active,.wpacu-btns .show>.btn-outline-warning.dropdown-toggle{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.wpacu-btns .btn-outline-danger{color:#d9534f;background-image:none;background-color:transparent;border-color:#d9534f}.wpacu-btns .btn-outline-danger:hover{color:#fff;background-color:#d9534f;border-color:#d9534f}.wpacu-btns .btn-outline-danger.focus,.wpacu-btns .btn-outline-danger:focus{-webkit-box-shadow:0 0 0 2px rgba(217,83,79,.5);box-shadow:0 0 0 2px rgba(217,83,79,.5)}.wpacu-btns .btn-outline-danger.disabled,.wpacu-btns .btn-outline-danger:disabled{color:#d9534f;background-color:transparent}.wpacu-btns .btn-outline-danger.active,.wpacu-btns .btn-outline-danger:active,.wpacu-btns .show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#d9534f;border-color:#d9534f}.wpacu-btns .btn-link{font-weight:400;color:#0275d8;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.wpacu-btns .btn-link,.wpacu-btns .btn-link.active,.wpacu-btns .btn-link:active,.wpacu-btns .btn-link:disabled{background-color:transparent}.wpacu-btns .btn-link,.wpacu-btns .btn-link:active,.wpacu-btns .btn-link:focus,.wpacu-btns .btn-link:hover{border-color:transparent}.wpacu-btns .btn-link:focus,.wpacu-btns .btn-link:hover{color:#014c8c;text-decoration:underline;background-color:transparent}.wpacu-btns .btn-link:disabled{color:#636c72}.wpacu-btns .btn-link:disabled:focus,.wpacu-btns .btn-link:disabled:hover{text-decoration:none}.wpacu-btns .btn-group-lg>.btn,.wpacu-btns .btn-lg{padding:.75rem 1.5rem;font-size:1.25rem;-webkit-border-radius:.3rem;-moz-border-radius:.3rem;border-radius:.3rem}.wpacu-btns .btn-group-sm>.btn,.wpacu-btns .btn-sm{padding:.25rem .5rem;font-size:.875rem;-webkit-border-radius:.2rem;-moz-border-radius:.2rem;border-radius:.2rem}.wpacu-btns .btn-block{display:block;width:100%}.go-pro-button,.go-pro-link-no-style,.wordpress-core-file{display:inline-block;text-decoration:none}.wpacu-btns .btn-block+.btn-block{margin-top:.5rem}.wpacu-btns input[type=button].btn-block,.wpacu-btns input[type=reset].btn-block,.wpacu-btns input[type=submit].btn-block{width:100%}.wpacu-btns .fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.go-pro-button{background-color:#4CAF50;border:2px solid #4CAF50;color:#fff;padding:12px 18px;text-align:center;font-size:16px;margin:4px 2px;cursor:pointer;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;-webkit-transition-duration:.4s;transition-duration:.4s}.go-pro-button:hover{background-color:#fff;color:#000;border:2px solid #4CAF50;text-decoration:none}.wpacu-restore-pos-btn{font-size:14px!important;line-height:normal!important;height:42px!important;padding:0 18px!important;margin-top:10px!important}body.wp-admin .wpacu_asset_row .go-pro-link-no-style .wpacu-tooltip{padding:8px 2px}body.wp-admin .go-pro-link-no-style .wpacu-tooltip{text-shadow:none;font-weight:400;font-size:12px;line-height:16px;padding:8px 11px}.go-pro-link-no-style{position:relative;color:inherit}.go-pro-link-no-style:not(.nav-tab){font-style:italic}.go-pro-link-no-style.no-transition .wpacu-tooltip{-webkit-transition:0s all ease;transition:0s all ease;-webkit-transition-delay:0s;transition-delay:0s}.go-pro-link-no-style .wpacu-tooltip,.wordpress-core-file .wpacu-tooltip{line-height:18px;text-align:center;-webkit-transition:.1s all ease;z-index:1}.go-pro-link-no-style>img{max-width:20px;max-height:20px}.go-pro-link-no-style .wpacu-tooltip{font-size:14px;position:absolute;visibility:hidden;width:160px;background-color:#00a7a7;color:#fff;padding:8px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;bottom:100%;bottom:calc(100% + 15px);left:50%;margin-left:-65px;transition:.1s all ease;-webkit-transition-delay:0s;transition-delay:0s}.go-pro-link-no-style .wpacu-tooltip:after{content:"";position:absolute;border-width:10px;border-style:solid;top:100%;left:50%;left:calc(50% - 10px);border-color:#00a7a7 transparent transparent}.go-pro-link-no-style .wpacu-tooltip.wpacu-on-pages-btn{cursor:pointer;margin-left:-77px;width:130px}.go-pro-link-no-style .wpacu-tooltip.wpacu-larger{width:240px}.go-pro-link-no-style:hover .wpacu-tooltip{visibility:visible}.wpacu_list_table tr:first-child .wordpress-core-file .wpacu-tooltip{bottom:-40px;left:120px;margin-left:-86px}.wpacu_list_table tr:first-child .wordpress-core-file .wpacu-tooltip:after{top:41px;left:-20px;border-color:transparent #c00 transparent transparent}.wordpress-core-file{position:relative;font-style:normal;color:inherit}.wordpress-core-file .wpacu-tooltip{font-size:14px;position:absolute;visibility:hidden;width:160px;background-color:#c00;color:#fff;padding:6px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;bottom:100%;bottom:calc(100% + 15px);left:50%;margin-left:-86px;transition:.1s all ease;-webkit-transition-delay:0s;transition-delay:0s}.wordpress-core-file .wpacu-tooltip:after{content:"";position:absolute;border-width:10px;border-style:solid;top:100%;left:50%;left:calc(50% - 10px);border-color:#c00 transparent transparent}.wordpress-core-file:hover .wpacu-tooltip{visibility:visible}.ajax-direct-call-error-area{background:#fff;padding:10px;border:1px solid #c00;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px}.ajax-direct-call-error-area td{padding:6px}.ajax-direct-call-error-area .note{margin-top:0;padding-top:0}.ajax-direct-call-error-area .error-code{color:#c00;font-weight:700}.ajax-wp-remote-post-call-error-area{background:#fff;padding:20px}.ajax-wp-remote-post-call-error-area .table-data{background:0 0;border:1px solid #c66;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.ajax-wp-remote-post-call-error-area .table-data td{padding:10px}.wrap-upgrade-info{background:#fff;padding:0 15px;border:1px solid #cdcdcd;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.wpacu-notice{margin:20px 20px 0 0!important}.wpacu-notice p{font-weight:600!important;font-style:italic}.wpacu-notice .dashicons{font-weight:inherit!important;color:#46b450!important;margin-right:4px;vertical-align:text-bottom;font-size:27px}.wpacu-notice-info{padding:12px 12px 12px 16px;background:#fff;border-left:4px solid #008f9c}.wpacu-notice-info p{margin-top:8px}.wpacu-notice-info p:first-child{margin-top:0}.wpacu-notice-info p:last-child{margin-bottom:0}.wpacu-warning{font-size:15px;padding:10px;background:#fffcec;border:1px solid #fdd5c9;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;margin:0 0 5px;width:100%}.pro-page-unlock-notice{-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;padding:10px;background:#f2faf2;border:1px solid #c0e8c0;width:auto;display:block}.wpacu-license-area .notice,.wpacu-settings-area .notice{margin-left:0;padding:10px!important;width:97%;box-sizing:border-box;font-weight:600;font-style:italic}.wpacu-license-area .notice .dashicons,.wpacu-settings-area .notice .dashicons{color:green}#wpacu-dom-get-type-selections,.wpacu-radio-selections{float:none;clear:both;width:auto;display:inline-block;margin-bottom:0;margin-top:0}#wpacu-dom-get-type-selections.wpacu-vertical,.wpacu-radio-selections.wpacu-vertical{display:block;margin-top:15px;margin-bottom:18px}#wpacu-dom-get-type-selections.wpacu-vertical li,.wpacu-radio-selections.wpacu-vertical li{float:none;margin-bottom:12px}#wpacu-dom-get-type-selections.wpacu-vertical li:last-child,.wpacu-radio-selections.wpacu-vertical li:last-child{margin-bottom:0}#wpacu-dom-get-type-selections li,.wpacu-radio-selections li{margin-right:30px;float:left;margin-bottom:0}#wpacu-dom-get-type-selections li:first-child,.wpacu-radio-selections li:first-child{margin-right:15px}#wpacu-dom-get-type-selections li:last-child,.wpacu-radio-selections li:last-child{margin-right:0}.wpacu_combine_loaded_js_level_area{display:none;background:0 0;border-left:2px solid #008f9c;padding-top:8px;padding-bottom:8px;padding-right:10px;padding-left:10px;margin:20px 0 15px}.wpacu_combine_loaded_js_level_area.wpacu_active{display:block}#wpacu-dom-get-type-infos{margin-bottom:0}#wpacu-dom-get-type-infos li{margin-bottom:0;line-height:20px}.wpacu-wrap li,.wpacu-wrap p,.wpacu-wrap td{font-weight:400}.wpacu-wrap small{width:auto;float:none;display:inline}.wpacu-wrap small code{font-size:inherit!important}.wpacu-wrap.wpacu-settings-show-all .wpacu-settings-tab-content{display:block;width:100%}.wpacu-wrap.wpacu-settings-show-all .wpacu-settings-area-title{color:#004567;padding:16px 15px;background:#f8f8f8;border-left:5px solid #004567b0;border-top:1px solid #e7e7e7;border-right:1px solid #e7e7e7;border-bottom:1px solid #e7e7e7;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;font-size:1.45em;font-weight:500}.wpacu-wrap.wpacu-settings-show-all #wpacu-update-button-area,.wpacu-wrap.wpacu-settings-show-all #wpacu-update-button-area .submit{margin:0}.wpacu-wrap.wpacu-settings-show-all #wpacu-update-button-area .button{padding:11px 28px;height:38px;font-size:18px}.wpacu-wrap.wpacu-settings-show-all #wpacu-updating-settings{margin-left:224px;top:35px;left:3px}.wpacu-wrap.wpacu-switch-standard .asset-cleanup-pro_page_wpassetcleanup_settings .wpacu_switch,.wpacu-wrap.wpacu-switch-standard .asset-cleanup_page_wpassetcleanup_settings .wpacu_switch{width:auto;height:auto}.wpacu-wrap.wpacu-switch-standard .asset-cleanup-pro_page_wpassetcleanup_settings .wpacu_switch input,.wpacu-wrap.wpacu-switch-standard .asset-cleanup_page_wpassetcleanup_settings .wpacu_switch input{display:block}.wpacu-wrap.wpacu-switch-standard .asset-cleanup-pro_page_wpassetcleanup_settings .wpacu_switch input[type=checkbox],.wpacu-wrap.wpacu-switch-standard .asset-cleanup_page_wpassetcleanup_settings .wpacu_switch input[type=checkbox]{margin:0 0 3px}.wpacu-wrap.wpacu-switch-standard .asset-cleanup-pro_page_wpassetcleanup_settings .wpacu_switch .wpacu_slider,.wpacu-wrap.wpacu-switch-standard .asset-cleanup_page_wpassetcleanup_settings .wpacu_switch .wpacu_slider{display:none}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch{position:relative;display:inline-block;width:52px;height:29px}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch input{display:none}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch:not(.wpacu_switch_standard) .wpacu_slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.2s;transition:.2s}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch:not(.wpacu_switch_standard) .wpacu_slider:before{position:absolute;content:"";height:22px;width:22px;left:4px;bottom:4px;background-color:#fff;-webkit-transition:.2s;transition:.2s}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch input:checked+.wpacu_slider{background-color:#52af00}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch input:focus+.wpacu_slider{box-shadow:0 0 1px #52af00}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch input:checked+.wpacu_slider:before{-webkit-transform:translateX(22px);-ms-transform:translateX(22px);transform:translateX(22px)}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch .wpacu_slider.wpacu_round{border-radius:29px}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch .wpacu_slider.wpacu_round:before{border-radius:50%}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch.wpacu_disabled,.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch.wpacu_locked_for_pro{opacity:.3}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch.wpacu_disabled:before{content:"";font-family:Dashicons,Arial,"Times New Roman","Bitstream Charter",Times,serif;position:absolute;font-size:23px;top:5px;right:2px;z-index:1000}.asset-cleanup-pro_page_wpassetcleanup_settings .setting_title p.wpacu_subtitle,.asset-cleanup_page_wpassetcleanup_settings .setting_title p.wpacu_subtitle{margin-top:4px;line-height:1.4}.asset-cleanup-pro_page_wpassetcleanup_settings .setting_title p.wpacu_subtitle em,.asset-cleanup_page_wpassetcleanup_settings .setting_title p.wpacu_subtitle em{font-weight:200}.asset-cleanup-pro_page_wpassetcleanup_settings .setting_title p.wpacu_read_more,.asset-cleanup_page_wpassetcleanup_settings .setting_title p.wpacu_read_more{margin-top:-10px;font-style:italic;font-size:12px}.asset-cleanup-pro_page_wpassetcleanup_settings .assets_list_inline_code_status_choices,.asset-cleanup-pro_page_wpassetcleanup_settings .assets_list_layout_areas_status_choices,.asset-cleanup-pro_page_wpassetcleanup_settings .input_style_choices,.asset-cleanup_page_wpassetcleanup_settings .assets_list_inline_code_status_choices,.asset-cleanup_page_wpassetcleanup_settings .assets_list_layout_areas_status_choices,.asset-cleanup_page_wpassetcleanup_settings .input_style_choices{list-style:none;margin:0}.asset-cleanup-pro_page_wpassetcleanup_settings .assets_list_inline_code_status_choices li,.asset-cleanup-pro_page_wpassetcleanup_settings .assets_list_layout_areas_status_choices li,.asset-cleanup-pro_page_wpassetcleanup_settings .input_style_choices li,.asset-cleanup_page_wpassetcleanup_settings .assets_list_inline_code_status_choices li,.asset-cleanup_page_wpassetcleanup_settings .assets_list_layout_areas_status_choices li,.asset-cleanup_page_wpassetcleanup_settings .input_style_choices li{float:left;margin-right:30px}.asset-cleanup-pro_page_wpassetcleanup_settings .assets_list_inline_code_status_choices li:last-child,.asset-cleanup-pro_page_wpassetcleanup_settings .assets_list_layout_areas_status_choices li:last-child,.asset-cleanup-pro_page_wpassetcleanup_settings .input_style_choices li:last-child,.asset-cleanup_page_wpassetcleanup_settings .assets_list_inline_code_status_choices li:last-child,.asset-cleanup_page_wpassetcleanup_settings .assets_list_layout_areas_status_choices li:last-child,.asset-cleanup_page_wpassetcleanup_settings .input_style_choices li:last-child{margin-right:0}#wpacu-assets-list-by-location-selected{background:0 0;border:1px solid #e7e7e7;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;padding:8px;clear:both}.notice.notice-success+.wpacu-wrap.wpacu-settings-area{margin-top:20px}.wpacu-license-action-btn-area{margin-top:0;position:relative;display:inline-block}.wpacu-license-spinner{display:none;position:absolute;right:-30px;top:4px}.wpacu-license-spinner img{width:20px;height:20px}#wpacu-activation-issues-info{border-radius:10px;width:90%;margin-top:20px;font-size:14px;padding:6px 20px;background:#fff;border:1px solid #e7e7e7}#wpacu-activation-issues-info ol li{font-size:13px;margin-bottom:10px}#wpacu-mark-license-area-wrap{margin:15px 0}.wpacu-form-table.wpacu-license th{width:120px}.wpacu-form-table th{vertical-align:top;text-align:left;padding:5px 20px 20px 0;width:200px;line-height:1.3;font-weight:600}.wpacu-form-table th label{color:#23282d;font-weight:600;font-size:14px;text-shadow:none;vertical-align:middle;cursor:pointer}.wpacu-form-table td{padding-bottom:25px}.wpacu-form-table td:last-child p:last-child{margin:0}.wpacu-form-table .wpacu-fancy-checkbox input[type=checkbox],.wpacu-form-table label input[type=checkbox]{height:20px;width:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.wpacu-form-table .wpacu-fancy-checkbox input[type=checkbox]:checked,.wpacu-form-table .wpacu-fancy-checkbox input[type=checkbox]:hover,.wpacu-form-table label input[type=checkbox]:checked,.wpacu-form-table label input[type=checkbox]:hover{border:1px solid green}.wpacu-form-table .wpacu-fancy-checkbox input[type=checkbox]:checked:before,.wpacu-form-table label input[type=checkbox]:checked:before{color:#52af00;font:400 24px/1 dashicons}.wpacu-form-table .wpacu-fancy-radio input[type=radio]{-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;position:relative;height:20px;width:20px;margin:2px 0 0}.wpacu-form-table .wpacu-fancy-radio input[type=radio]:checked,.wpacu-form-table .wpacu-fancy-radio input[type=radio]:hover{border:1px solid green}.wpacu-form-table .wpacu-fancy-radio input[type=radio]:checked:before{margin:0;line-height:inherit;text-indent:inherit;content:"";position:absolute;top:4px;left:4px;width:10px;height:10px;border-radius:50%;background:#52af00;color:#52af00;font:400 24px/1 dashicons}#wpacu-settings-vertical-tab-wrap{display:table;width:100%}#wpacu-settings-vertical-tab-wrap .wpacu-tab-extra-text{margin:4px 0 0}#wpacu-settings-vertical-tab-wrap .wpacu-tab-extra-text small{font-weight:lighter}#wpacu-settings-vertical-tab-wrap .wpacu-tab-extra-text small span.wpacu-status-wrap{position:relative;padding-left:14px}#wpacu-settings-vertical-tab-wrap .wpacu-tab-extra-text small span.wpacu-status-wrap span.wpacu-circle-status{position:absolute;left:0;top:2px;height:10px;width:10px;border-radius:50%;display:inline-block;opacity:.75}#wpacu-settings-vertical-tab-wrap .wpacu-tab-extra-text small span.wpacu-status-wrap span.wpacu-circle-status.wpacu-on{background:#52af00}#wpacu-settings-vertical-tab-wrap .wpacu-tab-extra-text small span.wpacu-status-wrap span.wpacu-circle-status.wpacu-off{background:#ccc}#wpacu-settings-vertical-tab-wrap *{box-sizing:border-box}.wpacu-settings-tab{display:table-cell;width:20%;height:100%;vertical-align:top}.wpacu-settings-tab a{text-decoration:none;border-left:3px solid transparent;display:block;background-color:#f1f1f1;color:#004567;padding:17px 16px;width:100%;outline:0;text-align:left;cursor:pointer;font-size:14px;font-weight:600;border-bottom:1px solid #ccc}.wpacu-settings-tab a:first-child{border-top:1px solid transparent!important}.wpacu-settings-tab a:last-child{border-bottom:1px solid transparent!important}.wpacu-settings-tab a:hover{background-color:#fff;border-left:3px solid #004567;position:relative}.wpacu-settings-tab a.active{color:#004567;background-color:#fff;border-left:3px solid #004567;position:relative;border-bottom:1px solid #ccc}.wpacu-settings-tab a.active:after{content:"";position:absolute;height:100%;width:1px;top:0;right:-1px;background-color:#fff}.wpacu-settings-tab-content{background-color:#fff;display:none;padding:12px 18px;width:79%;border-left:none;height:100%;border-top-right-radius:10px;border-bottom-right-radius:10px}.wpacu-settings-tab-content h2{padding:0 0 15px;border-bottom:1px solid #e7e7e7}.wpacu-settings-tab-content.active{display:table-cell}#wpacu_minify_css_exceptions_area,#wpacu_minify_js_exceptions_area{margin:16px 0 0}@media only screen and (min-width:768px){body.asset-cleanup-pro_page_wpassetcleanup_assets_manager #wpacu-update-button-area,body.asset-cleanup_page_wpassetcleanup_assets_manager #wpacu-update-button-area{position:-webkit-sticky;position:sticky;bottom:0;padding:0;z-index:1000000;border-top:1px solid #cdcdcd;background:#f1f1f1}.wpacu-get-help-wrap .help-content-wrap{-webkit-box-align:start;-ms-flex-align:start;-ms-grid-row-align:flex-start;align-items:flex-start}}body[class*=version-5-3] #wpacu-update-button-area .button{height:auto;padding:4px 18px 6px;font-size:15px}body[class*=version-5-3] #wpacu-updating-settings{margin-left:178px}#wpacu-update-button-area{position:relative;margin-left:20%}#wpacu-update-button-area.no-left-margin{margin-left:0}#wpacu-update-button-area .submit{margin:0;padding:19px 0}#wpacu-update-button-area .button{padding:5px 18px;height:38px;font-size:15px}#wpacu-updating-settings{position:absolute;margin-left:183px;top:28px;display:none}#combine_loaded_js_info_area{position:relative}#combine_loaded_js_info_area.locked-for-pro:before{position:absolute;content:"";height:100%;width:100%;background:#fff;opacity:.5;z-index:10000}.google_fonts_load_types{clear:both;margin:20px 0 15px;display:flex}.google_fonts_load_types>div{text-align:left}.google_fonts_load_types>div input{float:left;margin:0 7px 20px 0!important}.wpacu-sub-tabs-wrap{min-width:320px;margin:0 auto}.wpacu-sub-tabs-wrap input.wpacu-nav-input{display:none}.wpacu-sub-tabs-wrap label.wpacu-nav-label{display:inline-block;margin:0 0 -1px;padding:15px 25px;font-weight:600;text-align:center;color:#74777b;border-left:1px solid transparent;border-right:1px solid transparent;border-top:3px solid transparent;border-bottom:0}.wpacu-sub-tabs-wrap label.wpacu-nav-label:hover{cursor:pointer}.wpacu-sub-tabs-wrap input.wpacu-nav-input:checked+label.wpacu-nav-label{color:#004567;border-left:1px solid #ccc;border-right:1px solid #ccc;border-top:3px solid #004567;border-bottom:1px solid #fff}.wpacu-sub-tabs-wrap section{display:none;padding:20px 0 0;border-top:1px solid #ccc}#wpacu-google-fonts-optimize-tab-item:checked~#wpacu-google-fonts-optimize-tab-item-area,#wpacu-google-fonts-remove-tab-item:checked~#wpacu-google-fonts-remove-tab-item-area{display:block}body.wp-admin .wpacu-handle-notes p{margin-top:0!important}body.wp-admin .wpacu-handle-notes p a{font-size:inherit}body.wp-admin .wpacu-handle-notes p a span.dashicons{font-size:19px;width:19px;height:19px;vertical-align:bottom;text-decoration:none}.wpacu-handle-notes{padding-top:5px;margin-bottom:-10px;border-top:1px solid #e7e7e7}.wpacu-handle-notes .wpacu-handle-notes-field{display:none}.wpacu-handle-notes .wpacu-handle-notes-field>textarea{font-size:85%;padding:6px;width:320px;max-width:100%}.wpacu-handle-notes p{margin:10px 0 0!important}.wpacu-handle-notes p a.wpacu-add-handle-note{text-decoration:none;font-size:80%;display:inline-block;color:inherit}.wpacu-handle-notes p a.wpacu-add-handle-note span.dashicons{font-size:18px;width:18px;height:18px}.wrap_bulk_unload_options{width:auto;display:block;clear:both}.wrap_bulk_unload_options .wpacu_asset_options_wrap{display:inline-block;float:left;margin:5px 10px 14px 0!important;padding:8px 10px 12px!important}.wrap_bulk_unload_options .wpacu_asset_options_wrap .wpacu_slider_text{position:relative!important;vertical-align:top;left:inherit!important;top:inherit!important}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch{position:relative;display:inline-block;min-width:52px;width:52px;height:29px;margin-right:5px!important}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch input{display:none}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch .wpacu_slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.15s;transition:.15s}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch .wpacu_slider:before{position:absolute;content:"";height:22px;width:22px;left:4px;bottom:4px;background-color:#fff;-webkit-transition:.15s;transition:.15s}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch input:checked+.wpacu_slider{background-color:#C00}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch input:focus+.wpacu_slider{box-shadow:0 0 1px #C00}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch input:checked+.wpacu_slider:before{-webkit-transform:translateX(22px);-ms-transform:translateX(22px);transform:translateX(22px)}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch .wpacu_slider.wpacu_round{border-radius:29px}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch .wpacu_slider.wpacu_round:before{border-radius:50%}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch.wpacu_disabled{opacity:.3}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch.wpacu_disabled:before{content:"";font-family:Dashicons,Arial,"Times New Roman","Bitstream Charter",Times,serif;position:absolute;font-size:23px;top:1px;right:2px;z-index:1000}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_slider_text{position:absolute;left:62px;top:3px}.wpacu-wrap{width:98%}.wpacu-wrap tr.wpacu_regex_rule_row{opacity:.45}.wpacu-wrap tr.wpacu_regex_rule_row textarea{line-height:normal;min-height:20px;min-width:400px;display:inline-block;padding:2px 4px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.wpacu-wrap tr.wpacu_regex_rule_row textarea:focus{width:100%}.wpacu-wrap tr.wpacu_regex_rule_row.wpacu_enabled{opacity:1}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch_small{position:relative;display:inline-block;min-width:30px;width:30px;height:17px;margin-right:5px!important}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch_small input{display:none}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch_small .wpacu_slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.15s;transition:.15s}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch_small .wpacu_slider:before{position:absolute;content:"";height:13px;width:13px;left:2px;bottom:2px;background-color:#fff;-webkit-transition:.15s;transition:.15s}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch_small input:checked+.wpacu_slider{background-color:#52af00}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch_small input:focus+.wpacu_slider{box-shadow:0 0 1px #52af00}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch_small input:checked+.wpacu_slider:before{-webkit-transform:translateX(13px);-ms-transform:translateX(13px);transform:translateX(13px)}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch_small .wpacu_slider.wpacu_round{border-radius:17px}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch_small .wpacu_slider.wpacu_round:before{border-radius:50%}.editor-post-saved-state.is-wpacu-reloading{animation:edit-post__loading-fade-animation .5s infinite}body.wp-admin .wpacu_asset_row.wpacu-loading{position:relative}body.wp-admin .wpacu_asset_row.wpacu-loading .wpacu-ajax-loader{display:block!important}body.wp-admin .wpacu_asset_row .wpacu-ajax-loader{display:none;width:58px;height:58px;position:absolute;bottom:0;right:0;opacity:.75}.wpacu_asset_row>td{overflow-wrap:break-word;word-wrap:break-word;-ms-word-break:break-all;word-break:break-all}.wpacu_asset_row input{width:auto;height:auto;min-height:16px}.wpacu_asset_row .tip{background:inherit;border-left:4px solid #e7e7e7;margin:0 0 5px;padding:7px;font-style:italic;font-size:small;line-height:1.4}.wpacu_asset_row td{width:100%;text-align:left}.wpacu_asset_row td p:last-child{margin-bottom:0!important}.wpacu_asset_row td .wpacu_asset_options_wrap{padding:8px 10px;margin:15px 0;background:#fff;border:1px solid #eee;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.wpacu_asset_row td .wpacu_asset_options_wrap p:first-child{margin-top:0;margin-bottom:8px!important}.wpacu_asset_row p.wpacu_handle{margin-top:0}.wpacu_asset_row li.wpacu_unload_this_page{display:block!important;position:relative}.wpacu-clearfix:after,.wpacu-clearfix:before{display:table;content:""}.wpacu-contract-expand-area{width:100%;margin:20px 0 0}.wpacu-contract-expand-area .col-left{float:left}.wpacu-contract-expand-area .col-left h4{margin-bottom:0}.wpacu-contract-expand-area .col-right{float:right}.wpacu-clearfix{clear:both;height:0}.wpacu-clearfix:after{clear:both}.wpacu-wp-button{color:#555;border-color:#ccc;background:#f7f7f7;box-shadow:0 1px 0 #ccc;vertical-align:top}body.wp-admin .wpacu-wp-button{font-size:13px;line-height:26px;height:28px}.wpacu-wp-button.wpacu-wp-button-secondary{display:inline-block;text-decoration:none;height:auto;margin:0 5px 0 0;padding:0 10px 1px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;border-radius:3px;white-space:nowrap;box-sizing:border-box}.wpacu-wp-button:hover{background:#fafafa;border-color:#999;color:#23282d}.wpacu-assets-collapsible-wrap,.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link.wpacu-link-closed{border:1px solid #cdcdcd}.distinguish-asset-list{list-style:none;margin-left:0;margin-bottom:5px;display:inline-block}.distinguish-asset-list li{float:left;margin-right:20px}.distinguish-asset-list li:last-child{margin-right:0}body[class*=asset-cleanup-pro] a.wpacu-plugin-contracted-wrap-link{padding:16px 6px 16px 41px!important}body[class*=asset-cleanup-pro] .wpacu-area-open .wpacu-plugin-toggle-all{font-size:12px!important;width:calc(100% - 26px)!important}body.wp-admin .wpacu-area-expanded .wpacu-plugin-toggle-all{top:5px}body.wp-admin .wpacu-area-expanded .wpacu-plugin-toggle-all ul li{font-size:12px!important}.wpacu-assets-collapsible-wrap.wpacu-by-location{margin-bottom:15px}.wpacu-assets-collapsible-wrap.wpacu-wrap-all{margin-top:20px}.wpacu-assets-collapsible-wrap.wpacu-wrap-area{margin-top:10px}.wpacu-assets-collapsible-wrap.wpacu-by-location>a.wpacu-assets-collapsible{padding:15px 15px 15px 43px}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu_list_table{border-width:0;margin:0;border-spacing:inherit;width:100%;box-shadow:3px 3px 2px #ddd;border-bottom-right-radius:5px;border-top-right-radius:5px}.wpacu-assets-collapsible-wrap.wpacu-by-location span.wpacu-child-location-name{font-weight:600}.wpacu-assets-collapsible-wrap.wpacu-by-location span.wpacu-child-location-version{font-weight:200}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-location-child-area[data-wpacu-plugin=oxygen] .icon-area{border-radius:50%}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-location-child-area .wpacu-plugin-toggle-all-wrap .wpacu-plugin-toggle-all{display:inline-block;padding:0;font-size:13px;width:100%;width:calc(100% + 46px);min-width:250px;position:absolute;left:100%;left:calc(100% + 6px);margin:0;top:4px}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-location-child-area .wpacu-plugin-toggle-all-wrap .wpacu-plugin-toggle-all ul{display:inline-block;margin:0;list-style:none;padding-left:13px;padding-top:0}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-location-child-area .wpacu-plugin-toggle-all-wrap .wpacu-plugin-toggle-all ul li{padding:0;margin:0;line-height:normal;font-size:14px}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-location-child-area .wpacu-plugin-toggle-all-wrap .wpacu-plugin-toggle-all ul li:first-child{font-style:italic;margin-bottom:5px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-themes .wpacu-assets-collapsible-content>table:last-child{margin-bottom:20px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-themes .wpacu-assets-collapsible-content .wpacu-location-child-area .wpacu-area-title{display:inline;position:relative;z-index:1}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-themes .wpacu-assets-collapsible-content .wpacu-location-child-area .wpacu-area-title:after{content:"";position:absolute;width:100%;left:0;bottom:0;height:1px;background-color:#fdfdfd}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content .wpacu-plugin-assets-wrap{padding:0 0 10px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content .wpacu-plugin-assets-wrap.wpacu-area-open.wpacu-plugin-assets-last{margin-bottom:18px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content .wpacu-plugin-assets-wrap.wpacu-area-open .wpacu-plugin-toggle-all-wrap .wpacu-plugin-toggle-all{display:inline-block;padding:7px 12px 8px;font-size:14px;width:100%;text-align:left;border-left:1px solid #cdcdcd;border-right:1px solid #cdcdcd}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content .wpacu-plugin-assets-wrap.wpacu-area-open .wpacu-plugin-toggle-all-wrap .wpacu-plugin-toggle-all+.wpacu-plugin-toggle-all{padding:2px 12px 10px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link{color:inherit;text-decoration:none;font-weight:inherit;font-style:inherit;font-size:105%;line-height:initial;height:auto;margin:14px 0 0;padding:13px 6px 14px 39px;position:relative;display:block}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link:after{position:absolute;font-size:18px;font-family:Dashicons;right:12px;top:14px;content:""}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link.wpacu-link-open:after{content:""}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link:hover{border:1px solid #878787;background:#f9f9f9}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link:hover.wpacu-link-closed{box-shadow:3px 3px 2px #ddd}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link.wpacu-link-open{border-top:1px solid #cdcdcd;border-left:1px solid #cdcdcd;border-right:1px solid #cdcdcd;border-bottom:none}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link.wpacu-link-closed.wpacu-last-wrap-link{margin-bottom:20px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link .icon-plugin-default{top:10px;left:10px;width:30px;height:30px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link .icon-plugin-default .icon-area{width:30px;height:30px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link .icon-plugin-default .icon-area:before{font-size:22px;line-height:22px;top:4px;left:5px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link .wpacu-area-title{position:relative;padding:17px 10px 16px 46px;z-index:1}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link .wpacu-area-title:after{content:"";position:absolute;width:100%;left:0;bottom:0;height:1px;background-color:#fdfdfd}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link.wpacu-area-last{margin-bottom:18px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content .wpacu-area-open{padding:0;max-height:100%}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content .wpacu-area-closed{padding:0;overflow:hidden;max-height:0}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content>table:last-child{margin-bottom:20px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-themes .wpacu-assets-collapsible-content .wpacu-location-child-area .wpacu-area-title{margin-top:0;margin-bottom:-1px;padding:14px 10px 16px 12px!important}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-themes .wpacu-assets-collapsible-content .wpacu-location-child-area .wpacu-area-title.wpacu-theme-has-icon{padding:18px 10px 16px 58px!important}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-assets-collapsible-content .wpacu-location-child-area{margin-top:22px;margin-bottom:-1px;font-size:110%;line-height:initial}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-assets-collapsible-content .wpacu-location-child-area.wpacu-location-child-area-first{margin-top:2px}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-assets-collapsible-content .wpacu-location-child-area.wpacu-area-expanded .wpacu-area-title{display:inline-block;z-index:1;padding:17px 10px 16px 46px}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-assets-collapsible-content .wpacu-location-child-area .wpacu-area-title{display:inline;border-top-right-radius:8px;border-top-left-radius:8px;background-color:#f9f9f9;border-left:1px solid #cdcdcd;border-top:1px solid #cdcdcd;border-bottom:1px solid transparent;border-right:1px solid #cdcdcd;position:relative}.wpacu-assets-collapsible-wrap.wpacu-by-location .icon-plugin-default{position:absolute;padding:0;top:10px;left:10px;width:37px;height:37px}.wpacu-assets-collapsible-wrap.wpacu-by-location .icon-plugin-default:not(.has-icon){color:#b4b9be;background-color:#eee;box-shadow:inset 0 0 10px rgba(160,165,170,.15);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.wpacu-assets-collapsible-wrap.wpacu-by-location .icon-plugin-default:not(.has-icon) .icon-area:before{content:"";font-family:Dashicons;position:absolute;font-size:28px;line-height:28px;top:5px;left:5px}.wpacu-assets-collapsible-wrap.wpacu-by-location .icon-plugin-default .icon-area{position:relative;width:37px;height:37px}.wpacu-assets-collapsible-wrap.wpacu-by-location .icon-theme{position:absolute;padding:0;top:10px;left:10px;width:37px;height:37px}.wpacu-assets-collapsible-wrap.wpacu-by-location .icon-theme .icon-area{position:relative;width:37px;height:37px}.wpacu-assets-collapsible-wrap.wpacu-wp_core{border:1px solid #c00}.wpacu-assets-collapsible-wrap.wpacu-external .wpacu-assets-collapsible-content,.wpacu-assets-collapsible-wrap.wpacu-wp_core .wpacu-assets-collapsible-content{padding:0}.wpacu-assets-collapsible-wrap.wpacu-external .wpacu-assets-collapsible-content .wpacu_list_table,.wpacu-assets-collapsible-wrap.wpacu-wp_core .wpacu-assets-collapsible-content .wpacu_list_table{width:100%;margin:0}.wpacu-assets-collapsible-wrap.wpacu-external .wpacu-assets-collapsible-content .wpacu_list_table .wpacu_asset_row td,.wpacu-assets-collapsible-wrap.wpacu-wp_core .wpacu-assets-collapsible-content .wpacu_list_table .wpacu_asset_row td{border-left:hidden;border-right:hidden;border-bottom:1px solid #cdcdcd}.wpacu-assets-collapsible-wrap.wpacu-external .wpacu-assets-collapsible-content .wpacu_list_table .wpacu_asset_row:last-child,.wpacu-assets-collapsible-wrap.wpacu-wp_core .wpacu-assets-collapsible-content .wpacu_list_table .wpacu_asset_row:last-child{margin-bottom:0!important}.wpacu-assets-collapsible-wrap.wpacu-external .wpacu-assets-collapsible-content .wpacu_list_table .wpacu_asset_row:last-child td:last-child,.wpacu-assets-collapsible-wrap.wpacu-wp_core .wpacu-assets-collapsible-content .wpacu_list_table .wpacu_asset_row:last-child td:last-child{border-bottom:hidden}a.wpacu-assets-collapsible{color:#000;font-size:20px;text-decoration:none;display:block;position:relative;background-color:#f1f3f8;cursor:pointer;padding:15px 15px 15px 36px;width:auto;border:none;text-align:left;outline:0}a.wpacu-assets-collapsible>span.dashicons{font-size:25px;line-height:normal;position:absolute;top:15px;top:calc(50% - 21px);left:22px;-webkit-transform:translate(-50%,50%);transform:translate(-50%,50%)}a.wpacu-assets-collapsible:hover{background-color:#f1f3f8;text-decoration:none}a.wpacu-assets-collapsible:after{position:absolute;font-size:22px;font-family:Dashicons;right:14px;top:16px}a.wpacu-assets-collapsible:not(.wpacu-assets-collapsible-active):after{content:""}a.wpacu-assets-collapsible.wpacu-assets-collapsible-active{background-color:#f1f3f8}a.wpacu-assets-collapsible.wpacu-assets-collapsible-active:after{content:""}.wpacu-assets-collapsible-content{padding:0 16px;max-height:0;overflow:hidden;background-color:#fbfbfb8c}.wpacu-assets-collapsible-content .wpacu-assets-note{margin:0;padding:15px 15px 10px}.wpacu-assets-collapsible-content>div:not(.wpacu-assets-table-list-wrap){padding:16px 0 0}.wpacu-assets-collapsible-content>div>p:first-child{margin-top:0}.wpacu-assets-collapsible-content.wpacu-open{max-height:100%}a.wpacu-assets-inline-code-collapsible{color:inherit;font-size:14px;text-decoration:none;display:inline-block;position:relative;cursor:pointer;width:auto;outline:0;background:#f1f3f8;border:1px solid #cdcdcd;padding:4px 21px 4px 8px;margin:0 0 0 6px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}a.wpacu-assets-inline-code-collapsible:hover{border:1px solid #5c5c5c}a.wpacu-assets-inline-code-collapsible:after{position:absolute;font-size:15px;font-family:Dashicons;right:-3px;top:-1px;width:14px;height:14px;-webkit-transform:translate(-50%,50%);transform:translate(-50%,50%)}a.wpacu-assets-inline-code-collapsible:not(.wpacu-assets-inline-code-collapsible-active):after{content:""}a.wpacu-assets-inline-code-collapsible.wpacu-assets-inline-code-collapsible-active:after{content:""}.wpacu-assets-inline-code-collapsible-content{padding:0 8px 2px 0;max-height:0;overflow:hidden;background-color:#fbfbfb8c}.wpacu-assets-inline-code-collapsible-content>div{padding:7px 8px 0}.wpacu-assets-inline-code-collapsible-content>div>p{line-height:normal!important}.wpacu-assets-inline-code-collapsible-content>div>p:first-child{margin-top:0}.wpacu-assets-inline-code-collapsible-content.wpacu-open{max-height:100%}.wpacu_asset_row p div.select{display:inline-block}.wpacu-wrap-choose-position{display:inline}.wpacu-wrap-choose-position>div{display:inline-block}.wpacu-wrap-choose-position select{width:auto;font-size:inherit;display:inline;margin-left:6px;margin-right:4px}.wpacu-wrap-choose-position>.select>.select{display:inline}.wpacu-wrap-choose-position>.select>.select select{padding-right:30px}.wpacu-wrap-choose-position>.select>.select:after{right:15px;top:-4px}.wpacu_handle_unload_regex_input_wrap,.wpacu_load_regex_input_wrap{display:block;width:100%}.wpacu_handle_unload_regex_input_wrap .wpacu_regex_rule_area .wpacu_regex_rule_textarea,.wpacu_load_regex_input_wrap .wpacu_regex_rule_area .wpacu_regex_rule_textarea{line-height:normal;min-height:20px;min-width:300px;max-width:400px;display:inline-block;padding:2px 4px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.wpacu_handle_unload_regex_input_wrap .wpacu_regex_rule_area .wpacu_regex_rule_textarea:focus,.wpacu_load_regex_input_wrap .wpacu_regex_rule_area .wpacu_regex_rule_textarea:focus{width:100%}body.logged-in:not(.wp-admin) .wpacu-view-more-code{box-shadow:inset 0 1px 0 0 #fff;background:linear-gradient(to bottom,#f9f9f9 5%,#e9e9e9 100%);background-color:#f9f9f9;border-radius:6px;border:1px solid #dcdcdc;display:inline-block;cursor:pointer;color:#666;font-size:inherit;font-weight:700;padding:6px 24px;text-decoration:none;text-shadow:0 1px 0 #fff}body.logged-in:not(.wp-admin) .wpacu-view-more-code:hover{background:linear-gradient(to bottom,#e9e9e9 5%,#f9f9f9 100%);background-color:#e9e9e9}body.logged-in:not(.wp-admin) .wpacu-view-more-code:active{position:relative;top:1px}.wpacu_table_wrap{margin:20px 0 0}.wpacu_table_wrap>table{border:1px solid #cdcdcd}.wpacu_table_wrap .table{width:100%;max-width:100%;margin-bottom:1rem;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.wpacu_table_wrap .table td,.wpacu_table_wrap .table th{padding:.75rem;vertical-align:top;border-top:1px solid #eceeef}.wpacu_table_wrap .table thead th{vertical-align:bottom;border-bottom:2px solid #eceeef}.wpacu_table_wrap .table tbody+tbody{border-top:2px solid #eceeef}.wpacu_table_wrap .table .table{background-color:#fff}.wpacu_table_wrap .table-sm td,.wpacu_table_wrap .table-sm th{padding:.3rem}.wpacu_table_wrap .table-bordered,.wpacu_table_wrap .table-bordered td,.wpacu_table_wrap .table-bordered th{border:1px solid #eceeef}.wpacu_table_wrap .table-bordered thead td,.wpacu_table_wrap .table-bordered thead th{border-bottom-width:2px}.wpacu_table_wrap .table-striped tbody tr:nth-of-type(even){background-color:#f9f9f9}.wpacu_table_wrap .table-striped tbody tr:nth-of-type(odd){background-color:#fff}.wpacu_table_wrap .table-active,.wpacu_table_wrap .table-active>td,.wpacu_table_wrap .table-active>th,.wpacu_table_wrap .table-hover .table-active:hover,.wpacu_table_wrap .table-hover .table-active:hover>td,.wpacu_table_wrap .table-hover .table-active:hover>th,.wpacu_table_wrap .table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.wpacu_table_wrap .table-success,.wpacu_table_wrap .table-success>td,.wpacu_table_wrap .table-success>th{background-color:#dff0d8}.wpacu_table_wrap .table-hover .table-success:hover,.wpacu_table_wrap .table-hover .table-success:hover>td,.wpacu_table_wrap .table-hover .table-success:hover>th{background-color:#d0e9c6}.wpacu_table_wrap .table-info,.wpacu_table_wrap .table-info>td,.wpacu_table_wrap .table-info>th{background-color:#d9edf7}.wpacu_table_wrap .table-hover .table-info:hover,.wpacu_table_wrap .table-hover .table-info:hover>td,.wpacu_table_wrap .table-hover .table-info:hover>th{background-color:#c4e3f3}.wpacu_table_wrap .table-warning,.wpacu_table_wrap .table-warning>td,.wpacu_table_wrap .table-warning>th{background-color:#fcf8e3}.wpacu_table_wrap .table-hover .table-warning:hover,.wpacu_table_wrap .table-hover .table-warning:hover>td,.wpacu_table_wrap .table-hover .table-warning:hover>th{background-color:#faf2cc}.wpacu_table_wrap .table-danger,.wpacu_table_wrap .table-danger>td,.wpacu_table_wrap .table-danger>th{background-color:#f2dede}.wpacu_table_wrap .table-hover .table-danger:hover,.wpacu_table_wrap .table-hover .table-danger:hover>td,.wpacu_table_wrap .table-hover .table-danger:hover>th{background-color:#ebcccc}.wpacu_table_wrap .thead-inverse th{color:#fff;background-color:#292b2c}.wpacu_table_wrap .thead-default th{color:#464a4c;background-color:#eceeef}.wpacu_table_wrap .table-inverse{color:#fff;background-color:#292b2c}.wpacu_table_wrap .table-inverse td,.wpacu_table_wrap .table-inverse th,.wpacu_table_wrap .table-inverse thead th{border-color:#fff}.wpacu_table_wrap .table-inverse.table-bordered,.wpacu_table_wrap .table-responsive.table-bordered{border:0}.wpacu_table_wrap .table-responsive{display:block;width:100%;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar}body.wp-admin[class*=asset-cleanup] .wpacu-overview-wrap .wpacu-overview-list-table tr:not(.wpacu-top):hover td{border-top:1px solid #ccd0d4;border-bottom:1px solid #ccd0d4}body.wp-admin[class*=asset-cleanup] .wpacu-overview-wrap .wpacu-overview-list-table tr:not(.wpacu-top):hover td:first-of-type{border-left:1px solid #ccd0d4}body.wp-admin[class*=asset-cleanup] .wpacu-overview-wrap .wpacu-overview-list-table tr:not(.wpacu-top):hover td:last-of-type{border-right:1px solid #ccd0d4}body.wp-admin[class*=asset-cleanup] .wpacu-overview-wrap .wpacu-overview-list-table tr td{font-size:14px;border-top:1px solid transparent;border-bottom:1px solid transparent}body.wp-admin[class*=asset-cleanup] .wpacu-overview-wrap .wpacu-overview-list-table tr td:first-of-type{border-left:1px solid transparent}body.wp-admin[class*=asset-cleanup] .wpacu-overview-wrap .wpacu-overview-list-table tr td:last-of-type{border-right:1px solid transparent}body.wp-admin[class*=asset-cleanup] table.wp-list-table:not(.wpacu-overview-list-table) tr:not(:first-of-type):not(.wpacu_selected):hover,body.wp-admin[class*=asset-cleanup] table.wp-list-table:not(.wpacu-overview-list-table).wpacu-list-table tr:not(.wpacu_selected):hover{-moz-box-shadow:inset 0 0 2px 1px #b3b3b3;-webkit-box-shadow:inset 0 0 2px 1px #B3B3B3;box-shadow:inset 0 0 2px 1px #B3B3B3}.wp-list-table .wpacu_remove_global_attr_row.wpacu_selected,.wp-list-table .wpacu_restore_position_row.wpacu_selected{background:#e7e7e7!important}ul.hire-reasons{margin-bottom:20px}ul.hire-reasons li{font-size:14px;line-height:22px;margin-bottom:12px}ul.hire-reasons li .dashicons{font-size:23px;line-height:23px}ul.hire-reasons li .dashicons.dashicons-yes{color:green}#wpacu-plugins-load-manager-wrap .wrap_plugin_unload_rules_options .wpacu_plugin_rules_wrap ul.wpacu_plugin_rules label.wpacu_plugin_unload_rule_input_checked,#wpacu-warning-read span.dashicons-warning,#wpacu-warning-read span.dashicons-wordpress-alt{color:#c00}ol.getting-started li{font-size:14px;line-height:22px;margin-bottom:8px}.wpacu-get-help-wrap p{font-size:14px}.wpacu-get-help-wrap .help-content-wrap{margin:20px 0 25px;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-moz-flex;display:-webkit-flex;display:flex;width:100%}@media only screen and (max-width:767px){.wpacu-get-help-wrap .help-content-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.wpacu-get-help-wrap .help-content-wrap .help-content{padding:15px;background:#fff;border:1px solid #E0E0E0;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;box-shadow:2px 3px 8px 0 #231f2038;flex:1 1 50%;margin-bottom:10px}.wpacu-get-help-wrap .help-content-wrap .help-content .content-title{margin:5px 0 15px}.wpacu-get-help-wrap .help-content-wrap .help-content .cols-wrap{width:100%;margin:0 auto;display:table}.wpacu-get-help-wrap .help-content-wrap .help-content .wpacu-image-area{margin:5px 0 0;position:relative}.wpacu-get-help-wrap .help-content-wrap .help-content .wpacu-image-area.col-left{float:left;width:48%}.wpacu-get-help-wrap .help-content-wrap .help-content .wpacu-image-area.col-right{float:right;width:48%}.wpacu-get-help-wrap .help-content-wrap .help-content .wpacu-image-area.activate-plugin img{max-width:280px}.wpacu-get-help-wrap .help-content-wrap .help-content .wpacu-image-area img{width:99%;margin:8px 0;border:1px solid #cdcdcd;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.wpacu-get-help-wrap .help-content-wrap .help-content.upgrade-help{order:2}@media only screen and (min-width:768px){.wpacu-get-help-wrap .help-content-wrap .help-content{margin-right:24px}.wpacu-get-help-wrap .help-content-wrap .help-content.upgrade-help{margin-right:0}}.wpacu-get-help-wrap .help-content-wrap .help-content.tech-help{order:1}@media only screen and (max-width:767px){.wpacu-get-help-wrap .help-content-wrap .help-content.tech-help{margin-bottom:30px}}.wpacu-get-help-wrap .help-content-wrap .help-content ul{list-style:none;padding-left:0}.wpacu-get-help-wrap .help-content-wrap .help-content ul li{font-size:14px;line-height:22px;margin-bottom:15px}.wpacu-get-help-wrap .help-content-wrap .help-content p:last-child,.wpacu-get-help-wrap .help-content-wrap .help-content ul li:last-child{margin-bottom:0}#wpacu-license-data-remove-area{display:none;margin:10px 0 25px}#wpacu-license-data-remove-area.wpacu-visible{display:block}span#wpacu-license-data-removed-msg{display:block;padding-left:26px}#wpacu-warning-read{display:none;margin:10px 0}#wpacu-warning-read.wpacu-visible{display:block}#wpacu-reset-submit-area{margin:10px 0;clear:both}#wpacu-reset-submit-btn{margin:10px 0 0}.wpacu-tools-area{margin:10px 20px 0 2px}.wpacu-tools-area .wpacu-tools-container{background:#fff;padding:15px;border:1px solid #cdcdcd;width:96%}.wpacu-tools-area .wpacu-tools-container form>div:first-child{margin:0 0 10px}.wpacu-tools-area .wpacu-tools-container form .wpacu-warning{display:none;box-sizing:border-box;margin-top:10px}.wpacu-tools-area .wpacu-tools-container form .wpacu-warning p{margin:0 0 10px;line-height:22px}.wpacu-tools-area .wpacu-tools-container form .wpacu-warning p:only-child{margin:0}.wpacu-tools-area .wpacu-tools-container form .wpacu-warning ul{font-size:13px;list-style-type:disc;padding-left:30px}.wpacu-tools-area .wpacu-tools-container form .wpacu-warning.wpacu-visible{display:block}.wpacu-tools-area .wpacu-export-import-area{padding:10px}.wpacu-tools-area .wpacu-export-import-area form>p:first-of-type{margin-top:0}.wpacu-tools-area .wpacu-export-import-area form>p:last-of-type{margin-bottom:0}.wpacu-tools-area .wpacu-export-import-area:hover{background:rgba(40,44,42,.05);box-shadow:inset 0 0 10px rgba(160,165,170,.15)}.wpacu-tools-area .wpacu-export-import-area+hr{display:block;height:1px;border:0;border-top:1px solid #cdcdcd;margin:10px 0;padding:0}#wpacu-import-form button.wpacu-importing img.wpacu-spinner{display:inline-block}#wpacu-import-form button img.wpacu-spinner{display:none;margin:0 0 0 5px;height:16px;width:16px;vertical-align:middle}.wpacu-about-wrap .wpacu-about-text img{width:auto;height:150px;position:absolute;top:20px;right:-20px}@media only screen and (max-width:767px){.wpacu-about-wrap h1{margin:20px}.wpacu-about-wrap .wpacu-about-text img{display:none}.wpacu-about-wrap .wpacu-about-text{margin:20px}}.wpacu-about-wrap .about-wrap-content .area-title{font-size:19px;line-height:19px;margin-bottom:0}.wpacu-about-wrap hr{margin:10px 0}.wpacu-lite-vs-pro-wrap ul{display:flex;top:0;z-index:10;padding-bottom:14px}.wpacu-lite-vs-pro-wrap li{list-style:none;flex:1}.wpacu-lite-vs-pro-wrap li:last-child{border-right:1px solid #DDD}.wpacu-lite-vs-pro-wrap button{width:100%;border:1px solid #DDD;border-right:0;border-top:0;padding:10px;background:#FFF;font-size:14px;font-weight:700;height:60px;color:#999}.wpacu-lite-vs-pro-wrap li.active button{background:#F5F5F5;color:#000}.wpacu-lite-vs-pro-wrap table{border-collapse:collapse;table-layout:fixed;width:100%}.wpacu-lite-vs-pro-wrap th{background:inherit}.wpacu-lite-vs-pro-wrap tr.first{background:inherit;font-size:18px}.wpacu-lite-vs-pro-wrap tr.first .bg-lite{border-top:4px solid #6d6e70;background:#fff;color:#6d6e70}.wpacu-lite-vs-pro-wrap tr.first .bg-pro{border-top:4px solid green;background:#fff;color:green}.wpacu-lite-vs-pro-wrap tr:not(.first){background:#fff}.wpacu-lite-vs-pro-wrap tr:not(:last-child):hover{background:#f8f8f8}.wpacu-lite-vs-pro-wrap td,.wpacu-lite-vs-pro-wrap th{height:53px;line-height:22px;border:1px solid #DDD;padding:10px 16px;empty-cells:show;text-align:left}@media only screen and (max-width:767px){.wpacu-lite-vs-pro-wrap td,.wpacu-lite-vs-pro-wrap th{font-size:14px}}.wpacu-lite-vs-pro-wrap td+td,.wpacu-lite-vs-pro-wrap th+th{text-align:center;display:none}.wpacu-lite-vs-pro-wrap td.default{display:table-cell}.wpacu-lite-vs-pro-wrap .txt-l{font-size:28px;font-weight:700}.wpacu-lite-vs-pro-wrap .txt-top{position:relative;top:-9px;left:-2px}.wpacu-lite-vs-pro-wrap svg{width:18px;height:18px}.wpacu-lite-vs-pro-wrap svg path{fill:green}.wpacu-lite-vs-pro-wrap .tick{color:#2CA01C}.wpacu-lite-vs-pro-wrap .tick img{fill:#2CA01C}@media only screen and (max-width:767px){.wpacu-lite-vs-pro-wrap .txt-l{font-size:20px}.wpacu-lite-vs-pro-wrap .tick{font-size:15px}}.wpacu-lite-vs-pro-wrap .na{font-size:18px;opacity:.3;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"}.wpacu-lite-vs-pro-wrap .hide{border:0;background:0 0}.wpacu-lite-vs-pro-wrap td,.wpacu-lite-vs-pro-wrap th{display:table-cell!important;width:auto}.wpacu-lite-vs-pro-wrap td+td,.wpacu-lite-vs-pro-wrap th+th{width:130px}@media only screen and (max-width:767px){.wpacu-lite-vs-pro-wrap .na{font-size:15px}.wpacu-lite-vs-pro-wrap td+td,.wpacu-lite-vs-pro-wrap th+th{width:42px}}@media only screen and (min-width:768px){.wpacu-lite-vs-pro-wrap td .button{font-size:16px!important}}@media only screen and (max-width:767px){.wpacu-lite-vs-pro-wrap td .button{font-size:14px!important;padding:0 20px!important}.wpacu-lite-vs-pro-wrap td .button.button-primary{margin-top:6px;margin-bottom:14px}}@media only screen and (min-width:768px){.wpacu-lite-vs-pro-wrap{margin-bottom:40px;clear:both}}.wpacu-video-areas>div{padding:20px;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.wpacu-video-areas>div:nth-child(odd){background:#fff}.wpacu-video-areas>div:nth-child(even){background:inherit}@media only screen and (min-width:1200px){.wpacu-video-areas .wpacu-video-area-wrapper{margin:0 0 15px;display:flex}.wpacu-video-areas .wpacu-video-area-wrapper .wpacu-col-right{padding:0 20px 0 25px}}@media only screen and (min-width:992px) and (max-width:1199px){.wpacu-video-areas .wpacu-video-area-wrapper{margin:0 0 40px}}.wpacu-video-areas .wpacu-video-area-wrapper ol{font-size:14px}.wpacu-video-areas .wpacu-video-area-wrapper ul{font-size:14px;list-style:disc;margin-left:22px}@media only screen and (min-width:1200px){.wpacu-video-areas .wpacu-video-area-wrapper .wpacu-col-right p:first-child{margin-top:0}.wpacu-video-areas .wpacu-video-area-wrapper .wpacu-col-right p:last-child{margin-bottom:0}}@media only screen and (max-width:1199px){.wpacu-video-areas .wpacu-video-area-wrapper .wpacu-video-wrapper{position:relative;padding-bottom:56.25%;padding-top:30px;height:0;overflow:hidden}}.wpacu-video-areas .wpacu-video-area-wrapper .wpacu-video-wrapper iframe{width:560px;height:315px}@media only screen and (max-width:1199px){.wpacu-video-areas .wpacu-video-area-wrapper .wpacu-video-wrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%}}#wpassetcleanup_asset_list.postbox h2{padding-left:52px!important;position:relative}#wpassetcleanup_asset_list.postbox h2:before{content:"";position:absolute;background-image:url(images/wpacu-logo-transparent-bg-v1.png);background-size:cover;top:6px;left:13px;width:33px;height:26px;opacity:.8;-webkit-filter:grayscale(100%);filter:grayscale(100%)}body.wp-admin .wpacu-modal{display:none;position:fixed;z-index:1000000;padding-top:15%;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#000;background-color:rgba(0,0,0,.4)}body.wp-admin .wpacu-modal-content{background-color:#fefefe;margin:auto;padding:20px;border:1px solid #888;width:80%;max-width:600px;border-radius:10px}body.wp-admin .wpacu-close{color:#aaa;float:right;font-size:28px;font-weight:700}body.wp-admin .wpacu-close:focus,body.wp-admin .wpacu-close:hover{color:#000;text-decoration:none;cursor:pointer}.wpacu-bulk-changes-tabs{display:table;position:relative;overflow:hidden;margin:0;width:100%}.wpacu-bulk-changes-tabs li{border-top:1px solid rgba(40,44,42,.1);border-left:1px solid rgba(40,44,42,.1);border-bottom:1px solid rgba(40,44,42,.1);float:left;line-height:38px;padding:0;position:relative;margin-bottom:12px}.wpacu-bulk-changes-tabs li:last-child{border-right:1px solid rgba(40,44,42,.1)}.wpacu-bulk-changes-tabs a{position:relative;background:rgba(40,44,42,.05);color:#004567;font-size:14px;font-weight:500;display:block;letter-spacing:0;outline:0;padding:6px 20px;text-decoration:none;border-top:3px solid transparent}.wpacu-bulk-changes-tabs a:hover{background:#f1f1f1;border-top:3px solid transparent}.wpacu-bulk-changes-tabs .current a{background:#fff;border-top:3px solid #004567}.wpacu-bulk-changes-tabs .current a:hover{background:#fff}.wpacu-bulk-changes-tabs .current a:after,.wpacu-bulk-changes-tabs .current a:before{top:100%;left:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.wpacu-bulk-changes-tabs .current a:after{border-color:rgba(136,183,213,0);border-top-color:#fff;border-width:12px;margin-left:-12px}.wpacu-bulk-changes-tabs .current a:before{border-color:rgba(194,225,245,0);border-top-color:rgba(40,44,42,.1);border-width:13px;margin-left:-13px}img.wpacu-emoji{display:inline!important;border:none!important;height:1em!important;width:1em!important;margin:0 .07em!important;vertical-align:-.1em!important;background:0 0!important;padding:0!important;box-shadow:none!important}#wpacu-plugins-load-manager-wrap table td{border-bottom:1px solid #e7e7e7}#wpacu-plugins-load-manager-wrap table td.wpacu_plugin_icon{padding:14px 10px}#wpacu-plugins-load-manager-wrap table td.wpacu_plugin_details{vertical-align:middle;padding:10px 0 10px 8px}#wpacu-plugins-load-manager-wrap table td.wpacu_plugin_details .wpacu_plugin_title{font-weight:600}#wpacu-plugins-load-manager-wrap .wrap_plugin_unload_rules_options{width:auto;display:inline-flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}#wpacu-plugins-load-manager-wrap .wrap_plugin_unload_rules_options .wpacu_plugin_rules_wrap{flex-grow:1;margin:0 16px 0 0!important;padding:8px 10px 6px 0!important}#wpacu-plugins-load-manager-wrap .wrap_plugin_unload_rules_options .wpacu_plugin_rules_wrap ul.wpacu_plugin_rules{margin:0;vertical-align:middle}#wpacu-plugins-load-manager-wrap .wrap_plugin_unload_rules_options .wpacu_plugin_rules_wrap ul.wpacu_plugin_rules label{vertical-align:top}#wpacu-plugins-load-manager-wrap .wrap_plugin_unload_rules_options .wpacu_plugin_rules_wrap ul.wpacu_plugin_rules label input[type=radio].wpacu_plugin_load_it:before{background-color:green}#wpacu-plugins-load-manager-wrap .wrap_plugin_unload_rules_options .wpacu_plugin_rules_wrap ul.wpacu_plugin_rules label input[type=radio].wpacu_plugin_unload_rule_input:before{background-color:#c00}#wpacu-plugins-load-manager-wrap .wrap_plugin_load_exception_options{padding-top:5px;border-top:1px solid #e7e7e7;width:auto;display:inline-flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}#wpacu-plugins-load-manager-wrap .wrap_plugin_load_exception_options .wpacu_plugin_rules_wrap{flex-grow:1;margin:0 16px 0 0!important;padding:6px 10px 6px 0!important}#wpacu-plugins-load-manager-wrap .wrap_plugin_load_exception_options .wpacu_plugin_rules_wrap ul.wpacu_plugin_rules{margin:0;vertical-align:middle}#wpacu-plugins-load-manager-wrap .wrap_plugin_load_exception_options .wpacu_plugin_rules_wrap ul.wpacu_plugin_rules label{vertical-align:top}#wpacu-plugins-load-manager-wrap .wrap_plugin_load_exception_options .wpacu_plugin_rules_wrap ul.wpacu_plugin_rules.wpacu_exception_options_area li{display:inline-block;float:left;margin:1px 25px 1px 0;line-height:20px}#wpacu-plugins-load-manager-wrap .wrap_plugin_load_exception_options .wpacu_plugin_rules_wrap ul.wpacu_plugin_rules.wpacu_exception_options_area li:last-of-type{margin:1px 0}.wpacu-list-table.plugins{width:98%;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}#wpacu-plugins-load-manager-wrap .help_link{text-decoration:none;color:inherit;vertical-align:middle}#wpacu-plugins-load-manager-wrap .help_link.unload_it_regex{vertical-align:top}#wpacu-plugins-load-manager-wrap .wpacu_plugin_details .wpacu_plugin_path{font-style:italic;color:grey}#wpacu-plugins-load-manager-wrap .wpacu_plugin_icon>img{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}#wpacu-plugins-load-manager-wrap .wpacu_plugin_icon>div{background:#efefef;border:#cdcdcd;border-radius:3px;width:40px;height:40px;vertical-align:middle;position:relative;text-align:center}#wpacu-plugins-load-manager-wrap .wpacu_plugin_icon>div>span{font-size:30px;color:#b3b3b3;top:50%;vertical-align:middle;left:50%;transform:translate(-50%,-50%);width:30px;height:30px;position:absolute}#wpacu-plugins-load-manager-wrap .wpacu_exception_options_area textarea,#wpacu-plugins-load-manager-wrap textarea:focus{width:100%}#wpacu-plugins-load-manager-wrap .wpacu_plugin_unload_regex_input_wrap{display:block}#wpacu-plugins-load-manager-wrap .wpacu_plugin_unload_regex_input_wrap textarea{margin-top:6px;min-width:400px}#wpacu-plugins-load-manager-wrap textarea{line-height:normal;min-height:20px;min-width:300px;display:inline-block;padding:2px 4px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}#wpacu-plugins-load-manager-wrap textarea.wpacu_disabled{background:#fbfafa!important;color:inherit}
classes/HardcodedAssets.php CHANGED
@@ -192,13 +192,14 @@ class HardcodedAssets
192
}
193
194
// Do not add to the list elements such as Emojis (not relevant for hard-coded tags)
195
- if ( strpos( $matchedTagOutput, 'img.wp-smiley' ) !== false
196
- && strpos( $matchedTagOutput, 'img.emoji' ) !== false
197
&& strpos( $matchedTagOutput, '!important;' ) !== false ) {
198
continue;
199
}
200
201
- if ( strpos( $matchedTagOutput, 'data-wpacu-own-inline-style=' ) !== false ) {
202
// remove plugin's own STYLE tags as they are not relevant in this context
203
continue;
204
}
@@ -257,7 +258,8 @@ class HardcodedAssets
257
continue;
258
}
259
260
- if ( strpos( $matchedTagOutput, 'data-wpacu-own-inline-script=' ) !== false ) {
261
unset( $matchesScriptTags[ $matchedTagIndex ] ); // remove plugin's own SCRIPT tags as they are not relevant in this context
262
continue;
263
}
@@ -268,8 +270,8 @@ class HardcodedAssets
268
}
269
270
// Now, go through the list of inline SCRIPTs associated with an enqueued SCRIPT (with "src" attribute)
271
- $anyInlineAssocWithJsHandle = OptimizeJs::getInlineAssociatedWithScriptHandle( $assetHandle,
272
- wp_scripts()->registered, 'handle', false );
273
if ( ! empty( $anyInlineAssocWithJsHandle ) ) {
274
foreach ( $anyInlineAssocWithJsHandle as $jsInlineTagContent ) {
275
if ( trim( $jsInlineTagContent ) === '' ) {
192
}
193
194
// Do not add to the list elements such as Emojis (not relevant for hard-coded tags)
195
+ if ( strpos( $matchedTagOutput, 'img.wp-smiley' ) !== false
196
+ && strpos( $matchedTagOutput, 'img.emoji' ) !== false
197
&& strpos( $matchedTagOutput, '!important;' ) !== false ) {
198
continue;
199
}
200
201
+ if ( (strpos( $matchedTagOutput, 'data-wpacu-own-inline-style=' ) !== false) ||
202
+ (strpos( $matchedTagOutput, 'data-wpacu-inline-css-file=') !== false) ) {
203
// remove plugin's own STYLE tags as they are not relevant in this context
204
continue;
205
}
258
continue;
259
}
260
261
+ if ( (strpos( $matchedTagOutput, 'data-wpacu-own-inline-script=' ) !== false) ||
262
+ (strpos( $matchedTagOutput, 'data-wpacu-inline-js-file=' ) !== false) ) {
263
unset( $matchesScriptTags[ $matchedTagIndex ] ); // remove plugin's own SCRIPT tags as they are not relevant in this context
264
continue;
265
}
270
}
271
272
// Now, go through the list of inline SCRIPTs associated with an enqueued SCRIPT (with "src" attribute)
273
+ // And make sure they do not show to the hardcoded list, since they are related to the handle and they are stripped when the handle is dequeued
274
+ $anyInlineAssocWithJsHandle = OptimizeJs::getInlineAssociatedWithScriptHandle( $assetHandle, wp_scripts()->registered, 'handle' );
275
if ( ! empty( $anyInlineAssocWithJsHandle ) ) {
276
foreach ( $anyInlineAssocWithJsHandle as $jsInlineTagContent ) {
277
if ( trim( $jsInlineTagContent ) === '' ) {
classes/OptimiseAssets/CombineCss.php CHANGED
@@ -66,10 +66,10 @@ class CombineCss
66
if ($docLocationElements === null) { continue; }
67
68
$xpath = new \DOMXpath($documentForCSS);
69
- $linkStylesheetTags = $xpath->query('/html/'.$docLocationTag.'/link[@rel="stylesheet"]');
70
- if ($linkStylesheetTags === null) { continue; }
71
72
- foreach ($linkStylesheetTags as $tagObject) {
73
$linkAttributes = array();
74
foreach ($tagObject->attributes as $attrObj) { $linkAttributes[$attrObj->nodeName] = trim($attrObj->nodeValue); }
75
@@ -78,7 +78,7 @@ class CombineCss
78
if (isset($linkAttributes['rel'], $linkAttributes['href']) && $linkAttributes['href']) {
79
$href = (string) $linkAttributes['href'];
80
81
- // 1) Check if there is any rel="preload" connected to the rel="stylesheet"
82
// making sure the file is not added to the final CSS combined file
83
84
// 2) Only combine media "all" and the ones with no media
@@ -94,11 +94,16 @@ class CombineCss
94
continue;
95
}
96
97
- // Was it optimized and has the URL updated? Check the Source URL
98
if (isset($linkAttributes['data-wpacu-link-rel-href-before']) && $linkAttributes['data-wpacu-link-rel-href-before'] && self::skipCombine($linkAttributes['data-wpacu-link-rel-href-before'])) {
99
continue;
100
}
101
102
$localAssetPath = OptimizeCommon::getLocalAssetPath($href, 'css');
103
104
// It will skip external stylesheets (from a different domain)
@@ -116,12 +121,21 @@ class CombineCss
116
}
117
118
foreach ($combinedUriPathsGroup as $mediaValue => $combinedUriPaths) {
119
$localAssetsPaths = $localAssetsPathsGroup[$mediaValue];
120
$linkHrefs = $linkHrefsGroup[$mediaValue];
121
122
- $maybeDoCssCombine = self::maybeDoCssCombine(sha1(implode('', $combinedUriPaths)),
123
$localAssetsPaths, $linkHrefs,
124
- $docLocationTag);
125
126
// Local path to combined CSS file
127
$localFinalCssFile = $maybeDoCssCombine['local_final_css_file'];
@@ -171,6 +185,11 @@ class CombineCss
171
continue;
172
}
173
174
$storageJsonContentLocation['link_hrefs'] = array_map(static function($href) {
175
return str_replace('{site_url}', '', $href);
176
}, $storageJsonContentLocation['link_hrefs']);
@@ -195,7 +214,8 @@ HTML;
195
$htmlSource
196
); // Strip the combined files to avoid duplicate code
197
198
- // There should be at least two replacements made
199
if ($htmlSource === 'do_not_combine') {
200
$htmlSource = $htmlSourceBeforeAnyLinkTagReplacement;
201
} else {
@@ -219,7 +239,7 @@ HTML;
219
{
220
preg_match_all('#<link[^>]*(stylesheet|preload)[^>]*(>)#Umi', $htmlSource, $matchesSourcesFromTags, PREG_SET_ORDER);
221
222
- $linkTagsStripped = 0;
223
224
foreach ($matchesSourcesFromTags as $matchSourceFromTag) {
225
$matchedSourceFromTag = (isset($matchSourceFromTag[0]) && strip_tags($matchSourceFromTag[0]) === '') ? trim($matchSourceFromTag[0]) : '';
@@ -246,9 +266,8 @@ HTML;
246
$htmlSource = str_replace(array($matchedSourceFromTag."\n", $matchedSourceFromTag), '', $htmlSource);
247
248
if ($htmlSource !== $htmlSourceBeforeLinkTagReplacement) {
249
- $linkTagsStripped++;
250
}
251
-
252
continue;
253
}
254
}
@@ -258,7 +277,9 @@ HTML;
258
libxml_clear_errors();
259
}
260
261
- if ($linkTagsStripped < 1) {
262
return 'do_not_combine';
263
}
264
@@ -304,27 +325,26 @@ HTML;
304
}
305
306
/**
307
- * @param $shaOneCombinedUriPaths
308
* @param $localAssetsPaths
309
* @param $linkHrefs
310
* @param $docLocationTag
311
*
312
* @return array
313
*/
314
- public static function maybeDoCssCombine($shaOneCombinedUriPaths, $localAssetsPaths, $linkHrefs, $docLocationTag)
315
{
316
$current_user = wp_get_current_user();
317
$dirToUserCachedFile = ((isset($current_user->ID) && $current_user->ID > 0) ? 'logged-in/' : '');
318
319
- $uriToFinalCssFile = $dirToUserCachedFile . $docLocationTag . '-' .$shaOneCombinedUriPaths . '.css';
320
- $localFinalCssFile = WP_CONTENT_DIR . OptimizeCss::getRelPathCssCacheDir() . $uriToFinalCssFile;
321
322
$localDirForCssFile = WP_CONTENT_DIR . OptimizeCss::getRelPathCssCacheDir() . $dirToUserCachedFile;
323
324
// Only combine if $shaOneCombinedUriPaths.css does not exist
325
// If "?ver" value changes on any of the assets or the asset list changes in any way
326
// then $shaOneCombinedUriPaths will change too and a new CSS file will be generated and loaded
327
-
328
$skipIfFileExists = true;
329
330
if ($skipIfFileExists || ! is_file($localFinalCssFile)) {
@@ -372,6 +392,16 @@ HTML;
372
);
373
}
374
375
/**
376
* @return bool
377
*/
66
if ($docLocationElements === null) { continue; }
67
68
$xpath = new \DOMXpath($documentForCSS);
69
+ $linkTags = $xpath->query('/html/'.$docLocationTag.'/link[@rel="stylesheet"]');
70
+ if ($linkTags === null) { continue; }
71
72
+ foreach ($linkTags as $tagObject) {
73
$linkAttributes = array();
74
foreach ($tagObject->attributes as $attrObj) { $linkAttributes[$attrObj->nodeName] = trim($attrObj->nodeValue); }
75
78
if (isset($linkAttributes['rel'], $linkAttributes['href']) && $linkAttributes['href']) {
79
$href = (string) $linkAttributes['href'];
80
81
+ // 1) Check if there is any rel="preload" (Basic) connected to the rel="stylesheet"
82
// making sure the file is not added to the final CSS combined file
83
84
// 2) Only combine media "all" and the ones with no media
94
continue;
95
}
96
97
+ // Was it optimized and has the URL updated? Check the Source URL to determine if it should be skipped from combining
98
if (isset($linkAttributes['data-wpacu-link-rel-href-before']) && $linkAttributes['data-wpacu-link-rel-href-before'] && self::skipCombine($linkAttributes['data-wpacu-link-rel-href-before'])) {
99
continue;
100
}
101
102
+ // Avoid combining own plugin's CSS (irrelevant) as it takes extra useless space in the caching directory
103
+ if (isset($linkAttributes['id']) && $linkAttributes['id'] === WPACU_PLUGIN_ID.'-style-css') {
104
+ continue;
105
+ }
106
+
107
$localAssetPath = OptimizeCommon::getLocalAssetPath($href, 'css');
108
109
// It will skip external stylesheets (from a different domain)
121
}
122
123
foreach ($combinedUriPathsGroup as $mediaValue => $combinedUriPaths) {
124
+ // There have to be at least two CSS files to create a combined CSS file
125
+ if (count($combinedUriPaths) < 2) {
126
+ continue;
127
+ }
128
+
129
$localAssetsPaths = $localAssetsPathsGroup[$mediaValue];
130
$linkHrefs = $linkHrefsGroup[$mediaValue];
131
132
+ $shaOneForCombinedCss = self::generateShaOneForCombinedCss($combinedUriPaths);
133
+
134
+ $maybeDoCssCombine = self::maybeDoCssCombine(
135
+ $shaOneForCombinedCss,
136
$localAssetsPaths, $linkHrefs,
137
+ $docLocationTag
138
+ );
139
140
// Local path to combined CSS file
141
$localFinalCssFile = $maybeDoCssCombine['local_final_css_file'];
185
continue;
186
}
187
188
+ // Irrelevant to have only one CSS file in a combine CSS group
189
+ if (count($storageJsonContentLocation['link_hrefs']) < 2) {
190
+ continue;
191
+ }
192
+
193
$storageJsonContentLocation['link_hrefs'] = array_map(static function($href) {
194
return str_replace('{site_url}', '', $href);
195
}, $storageJsonContentLocation['link_hrefs']);
214
$htmlSource
215
); // Strip the combined files to avoid duplicate code
216
217
+ // There should be at least two replacements made AND all the tags should have been replaced
218
+ // Leave no room for errors, otherwise the page could end up with extra files loaded, leading to a slower website
219
if ($htmlSource === 'do_not_combine') {
220
$htmlSource = $htmlSourceBeforeAnyLinkTagReplacement;
221
} else {
239
{
240
preg_match_all('#<link[^>]*(stylesheet|preload)[^>]*(>)#Umi', $htmlSource, $matchesSourcesFromTags, PREG_SET_ORDER);
241
242
+ $linkTagsStrippedNo = 0;
243
244
foreach ($matchesSourcesFromTags as $matchSourceFromTag) {
245
$matchedSourceFromTag = (isset($matchSourceFromTag[0]) && strip_tags($matchSourceFromTag[0]) === '') ? trim($matchSourceFromTag[0]) : '';
266
$htmlSource = str_replace(array($matchedSourceFromTag."\n", $matchedSourceFromTag), '', $htmlSource);
267
268
if ($htmlSource !== $htmlSourceBeforeLinkTagReplacement) {
269
+ $linkTagsStrippedNo++;
270
}
271
continue;
272
}
273
}
277
libxml_clear_errors();
278
}
279
280
+ // Aren't all the LINK tags stripped? They should be, otherwise, do not proceed with the HTML alteration (no combining will take place)
281
+ // Minus the already combined tag
282
+ if (($linkTagsStrippedNo < 2) && (count($filesSources) !== $linkTagsStrippedNo)) {
283
return 'do_not_combine';
284
}
285
325
}
326
327
/**
328
+ * @param $shaOneForCombinedCss
329
* @param $localAssetsPaths
330
* @param $linkHrefs
331
* @param $docLocationTag
332
*
333
* @return array
334
*/
335
+ public static function maybeDoCssCombine($shaOneForCombinedCss, $localAssetsPaths, $linkHrefs, $docLocationTag)
336
{
337
$current_user = wp_get_current_user();
338
$dirToUserCachedFile = ((isset($current_user->ID) && $current_user->ID > 0) ? 'logged-in/' : '');
339
340
+ $uriToFinalCssFile = $dirToUserCachedFile . $docLocationTag . '-' .$shaOneForCombinedCss . '.css';
341
342
+ $localFinalCssFile = WP_CONTENT_DIR . OptimizeCss::getRelPathCssCacheDir() . $uriToFinalCssFile;
343
$localDirForCssFile = WP_CONTENT_DIR . OptimizeCss::getRelPathCssCacheDir() . $dirToUserCachedFile;
344
345
// Only combine if $shaOneCombinedUriPaths.css does not exist
346
// If "?ver" value changes on any of the assets or the asset list changes in any way
347
// then $shaOneCombinedUriPaths will change too and a new CSS file will be generated and loaded
348
$skipIfFileExists = true;
349
350
if ($skipIfFileExists || ! is_file($localFinalCssFile)) {
392
);
393
}
394
395
+ /**
396
+ * @param $combinedUriPaths
397
+ *
398
+ * @return string
399
+ */
400
+ public static function generateShaOneForCombinedCss($combinedUriPaths)
401
+ {
402
+ return sha1(implode('', $combinedUriPaths));
403
+ }
404
+
405
/**
406
* @return bool
407
*/
classes/OptimiseAssets/CombineJs.php CHANGED
@@ -75,6 +75,7 @@ class CombineJs
75
$docLocationElements = $documentForJS->getElementsByTagName($docLocationScript)->item(0);
76
if ($docLocationElements === null) { continue; }
77
78
$scriptTags = $docLocationElements->getElementsByTagName('script');
79
if ($scriptTags === null) { continue; }
80
@@ -167,7 +168,7 @@ class CombineJs
167
)
168
);
169
170
- if (($docLocationScript === 'body') && $jQueryLibInBodyCount === 2) {
171
$jQueryLibInBodyCount = 0; // reset it
172
$groupIndex ++; // a new JS group will be created if jQuery & jQuery Migrate are combined in the BODY
173
continue;
@@ -216,8 +217,10 @@ class CombineJs
216
$localAssetsPaths[$src] = $groupFileData['local'];
217
}
218
219
$maybeDoJsCombine = self::maybeDoJsCombine(
220
- sha1(implode('', $combinedUriPaths)) . '-' . $groupNo,
221
$localAssetsPaths,
222
$docLocationScript
223
);
@@ -276,10 +279,11 @@ class CombineJs
276
$htmlSourceBeforeGroupReplacement = $htmlSource;
277
278
$uriToFinalJsFile = $cachedValues['uri_to_final_js_file'];
279
280
// Basic Combining (1) -> replace "first" tag with the final combination tag (there would be most likely multiple groups)
281
// Enhanced Combining (2) -> replace "last" tag with the final combination tag (most likely one group)
282
- $indexReplacement = ($combineLevel === 2) ? (count($cachedValues['script_srcs']) - 1) : 0;
283
284
$finalTagUrl = OptimizeCommon::filterWpContentUrl($cdnUrlForJs) . OptimizeJs::getRelPathJsCacheDir() . $uriToFinalJsFile;
285
@@ -298,9 +302,9 @@ class CombineJs
298
$finalJsTag = <<<HTML
299
<script {$deferAttr} id='wpacu-combined-js-{$docLocationScript}-group-{$groupNo}' type='text/javascript' src='{$finalTagUrl}'></script>
300
HTML;
301
- $tagsStripped = 0;
302
303
- $scriptTags = OptimizeJs::getScriptTagsFromSrcs($cachedValues['script_srcs'], $htmlSource);
304
305
foreach ($scriptTags as $groupScriptTagIndex => $scriptTag) {
306
$replaceWith = ($groupScriptTagIndex === $indexReplacement) ? $finalJsTag : '';
@@ -309,16 +313,17 @@ HTML;
309
$htmlSource = OptimizeJs::strReplaceOnce($scriptTag, $replaceWith, $htmlSource);
310
311
if ($htmlSource !== $htmlSourceBeforeTagReplacement) {
312
- $tagsStripped ++;
313
}
314
- }
315
316
- // At least two tags has have be stripped from the group to consider doing the group replacement
317
// If the tags weren't replaced it's likely there were changes to their structure after they were cached for the group merging
318
- if ($tagsStripped < 2) {
319
$htmlSource = $htmlSourceBeforeGroupReplacement;
320
}
321
- }
322
}
323
}
324
@@ -423,20 +428,20 @@ HTML;
423
}
424
425
/**
426
- * @param $shaOneCombinedUriPaths
427
* @param $localAssetsPaths
428
* @param $docLocationScript
429
*
430
* @return array
431
*/
432
- public static function maybeDoJsCombine($shaOneCombinedUriPaths, $localAssetsPaths, $docLocationScript)
433
{
434
$current_user = wp_get_current_user();
435
$dirToUserCachedFile = ((isset($current_user->ID) && $current_user->ID > 0) ? 'logged-in/' : '');
436
437
- $uriToFinalJsFile = $dirToUserCachedFile . $docLocationScript . '-' . $shaOneCombinedUriPaths . '.js';
438
439
- $localFinalJsFile = WP_CONTENT_DIR . OptimizeJs::getRelPathJsCacheDir() . $uriToFinalJsFile;
440
$localDirForJsFile = WP_CONTENT_DIR . OptimizeJs::getRelPathJsCacheDir() . $dirToUserCachedFile;
441
442
// Only combine if $shaOneCombinedUriPaths.js does not exist
@@ -463,6 +468,9 @@ HTML;
463
$pathToAssetDir = OptimizeCommon::getPathToAssetDir($assetHref);
464
465
$contentToAddToCombinedFile = '/*! '.str_replace(ABSPATH, '/', $localAssetsPath)." */\n";
466
$contentToAddToCombinedFile .= OptimizeJs::maybeDoJsFixes($jsContent, $pathToAssetDir . '/') . "\n";
467
468
$finalJsContents .= $contentToAddToCombinedFile;
@@ -488,6 +496,17 @@ HTML;
488
);
489
}
490
491
/**
492
* @return bool
493
*/
75
$docLocationElements = $documentForJS->getElementsByTagName($docLocationScript)->item(0);
76
if ($docLocationElements === null) { continue; }
77
78
+ // High accuracy (e.g. it ignores tags inside HTML comments, conditional or not)
79
$scriptTags = $docLocationElements->getElementsByTagName('script');
80
if ($scriptTags === null) { continue; }
81
168
)
169
);
170
171
+ if ($docLocationScript === 'body' && $jQueryLibInBodyCount === 2) {
172
$jQueryLibInBodyCount = 0; // reset it
173
$groupIndex ++; // a new JS group will be created if jQuery & jQuery Migrate are combined in the BODY
174
continue;
217
$localAssetsPaths[$src] = $groupFileData['local'];
218
}
219
220
+ $shaOneForCombinedJs = self::generateShaOneForCombinedJs($combinedUriPaths, $localAssetsExtra);
221
+
222
$maybeDoJsCombine = self::maybeDoJsCombine(
223
+ $shaOneForCombinedJs . '-' . $groupNo,
224
$localAssetsPaths,
225
$docLocationScript
226
);
279
$htmlSourceBeforeGroupReplacement = $htmlSource;
280
281
$uriToFinalJsFile = $cachedValues['uri_to_final_js_file'];
282
+ $filesSources = $cachedValues['script_srcs'];
283
284
// Basic Combining (1) -> replace "first" tag with the final combination tag (there would be most likely multiple groups)
285
// Enhanced Combining (2) -> replace "last" tag with the final combination tag (most likely one group)
286
+ $indexReplacement = ($combineLevel === 2) ? (count($filesSources) - 1) : 0;
287
288
$finalTagUrl = OptimizeCommon::filterWpContentUrl($cdnUrlForJs) . OptimizeJs::getRelPathJsCacheDir() . $uriToFinalJsFile;
289
302
$finalJsTag = <<<HTML
303
<script {$deferAttr} id='wpacu-combined-js-{$docLocationScript}-group-{$groupNo}' type='text/javascript' src='{$finalTagUrl}'></script>
304
HTML;
305
+ $scriptTagsStrippedNo = 0;
306
307
+ $scriptTags = OptimizeJs::getScriptTagsFromSrcs($filesSources, $htmlSource);
308
309
foreach ($scriptTags as $groupScriptTagIndex => $scriptTag) {
310
$replaceWith = ($groupScriptTagIndex === $indexReplacement) ? $finalJsTag : '';
313
$htmlSource = OptimizeJs::strReplaceOnce($scriptTag, $replaceWith, $htmlSource);
314
315
if ($htmlSource !== $htmlSourceBeforeTagReplacement) {
316
+ $scriptTagsStrippedNo ++;
317
+ }
318
}
319
320
+ // At least two tags have to be stripped from the group to consider doing the group replacement
321
// If the tags weren't replaced it's likely there were changes to their structure after they were cached for the group merging
322
+ if (count($filesSources) !== $scriptTagsStrippedNo) {
323
$htmlSource = $htmlSourceBeforeGroupReplacement;
324
}
325
+
326
+ }
327
}
328
}
329
428
}
429
430
/**
431
+ * @param $shaOneForCombinedJs
432
* @param $localAssetsPaths
433
* @param $docLocationScript
434
*
435
* @return array
436
*/
437
+ public static function maybeDoJsCombine($shaOneForCombinedJs, $localAssetsPaths, $docLocationScript)
438
{
439
$current_user = wp_get_current_user();
440
$dirToUserCachedFile = ((isset($current_user->ID) && $current_user->ID > 0) ? 'logged-in/' : '');
441
442
+ $uriToFinalJsFile = $dirToUserCachedFile . $docLocationScript . '-' . $shaOneForCombinedJs . '.js';
443
444
+ $localFinalJsFile = WP_CONTENT_DIR . OptimizeJs::getRelPathJsCacheDir() . $uriToFinalJsFile;
445
$localDirForJsFile = WP_CONTENT_DIR . OptimizeJs::getRelPathJsCacheDir() . $dirToUserCachedFile;
446
447
// Only combine if $shaOneCombinedUriPaths.js does not exist
468
$pathToAssetDir = OptimizeCommon::getPathToAssetDir($assetHref);
469
470
$contentToAddToCombinedFile = '/*! '.str_replace(ABSPATH, '/', $localAssetsPath)." */\n";
471
+
472
+ $jsContent = OptimizeJs::maybeAlterJsContent($jsContent);
473
+
474
$contentToAddToCombinedFile .= OptimizeJs::maybeDoJsFixes($jsContent, $pathToAssetDir . '/') . "\n";
475
476
$finalJsContents .= $contentToAddToCombinedFile;
496
);
497
}
498
499
+ /**
500
+ * @param $combinedUriPaths
501
+ * @param $localAssetsExtra
502
+ *
503
+ * @return string
504
+ */
505
+ public static function generateShaOneForCombinedJs($combinedUriPaths, $localAssetsExtra)
506
+ {
507
+ return sha1(implode('', $combinedUriPaths));
508
+ }
509
+
510
/**
511
* @return bool
512
*/
classes/OptimiseAssets/OptimizeCommon.php CHANGED
@@ -26,6 +26,11 @@ class OptimizeCommon
26
*/
27
public static $optimizedSingleFilesDir = 'item';
28
29
/**
30
* @var array
31
*/
@@ -201,7 +206,6 @@ class OptimizeCommon
201
'alter_html_source_original_to_optimized_css',
202
'alter_html_source_for_preload_css',
203
204
- 'alter_html_source_for_dynamic_loaded_css',
205
'alter_html_source_for_combine_css',
206
'alter_html_source_for_minify_inline_style_tags',
207
@@ -211,7 +215,6 @@ class OptimizeCommon
211
212
'alter_html_source_original_to_optimized_js',
213
'alter_html_source_for_preload_js',
214
- 'alter_html_source_for_dynamic_loaded_js',
215
'alter_html_source_for_combine_js',
216
217
'alter_html_source_move_inline_jquery_after_src_tag'
@@ -365,8 +368,8 @@ class OptimizeCommon
365
366
$localAssetPath = ABSPATH . $hrefRelPath;
367
368
- if (strpos($localAssetPath, '?ver=') !== false) {
369
- list($localAssetPathAlt,) = explode('?ver=', $localAssetPath);
370
$localAssetPath = $localAssetPathAlt;
371
}
372
@@ -446,24 +449,28 @@ class OptimizeCommon
446
$isRelPath = true;
447
}
448
449
- if ($isRelPath || (stripos($sourceFromTag, site_url()) !== false)) {
450
- $cleanLinkHrefFromTag = trim($sourceFromTag, '?&');
451
$afterQuestionMark = WPACU_PLUGIN_VERSION;
452
453
// Is it a dynamic URL? Keep the full path
454
- if (strpos($cleanLinkHrefFromTag, '.php') !== false ||
455
- strpos($cleanLinkHrefFromTag, '/?') !== false ||
456
- strpos($cleanLinkHrefFromTag, rtrim(site_url(), '/').'?') !== false) {
457
list(,$afterQuestionMark) = explode('?', $sourceFromTag);
458
} elseif (strpos($sourceFromTag, '?') !== false) {
459
- list($cleanLinkHrefFromTag, $afterQuestionMark) = explode('?', $sourceFromTag);
460
}
461
462
if (! $afterQuestionMark) {
463
return false;
464
}
465
466
- return array('source' => $cleanLinkHrefFromTag, 'after_question_mark' => $afterQuestionMark);
467
}
468
469
return false;
@@ -659,10 +666,8 @@ class OptimizeCommon
659
return array();
660
}
661
662
- if ($assetType === 'css') {
663
- $cachedAssetsFileExpiresIn = OptimizeCss::$cachedCssAssetsFileExpiresIn;
664
- } elseif ($assetType === 'js') {
665
- $cachedAssetsFileExpiresIn = OptimizeJs::$cachedJsAssetsFileExpiresIn;
666
} else {
667
return array();
668
}
@@ -847,7 +852,7 @@ class OptimizeCommon
847
$clearedOutput = $keptOutput = array();
848
849
/*
850
- * STEP 1: Clear all .json, .css & .js files (older than $clearFilesOlderThan days) that are related to "Minify/Combine CSS/JS files" feature
851
*/
852
$skipFiles = array('index.php', '.htaccess');
853
$fileExtToRemove = array('.json', '.css', '.js');
@@ -871,15 +876,26 @@ class OptimizeCommon
871
$userIdDirs = array();
872
873
if (is_dir($assetCleanUpCacheDir)) {
874
- $storageEmptyDirs = $allJsons = $allAssets = $allAssetsToKeep = array();
875
876
$targetedDirs = array(
877
$storageDir.'/item/',
878
$assetCleanUpCacheDir.'/css/',
879
- $assetCleanUpCacheDir.'/js/'
880
);
881
882
foreach ( $targetedDirs as $targetedDir ) {
883
$dirItems = new \RecursiveDirectoryIterator( $targetedDir, \RecursiveDirectoryIterator::SKIP_DOTS );
884
885
foreach (
@@ -889,67 +905,49 @@ class OptimizeCommon
889
$fileBaseName = trim( strrchr( $item, '/' ), '/' );
890
$fileExt = strrchr( $fileBaseName, '.' );
891
892
- if ( is_file( $item ) && in_array( $fileExt, $fileExtToRemove ) && ( ! in_array( $fileBaseName,
893
- $skipFiles ) ) ) {
894
$isJsonFile = ( $fileExt === '.json' );
895
$isAssetFile = in_array( $fileExt, array( '.css', '.js' ) );
896
897
// Remove all JSONs and .css & .js ONLY if they are older than $clearFilesOlderThan
898
if ( $isJsonFile || ( $isAssetFile && ( strtotime( '-' . $clearFilesOlderThan . ' days' ) > $item->getCTime() ) ) ) {
899
if ( $isJsonFile ) {
900
- $allJsons[] = $item;
901
}
902
903
if ( $isAssetFile ) {
904
- $allAssets[] = $item;
905
}
906
}
907
- } elseif ( is_dir( $item ) && ( strpos( $item, '/css/logged-in/' ) !== false || strpos( $item,
908
- '/js/logged-in/' ) !== false ) ) {
909
$userIdDirs[] = $item;
910
} elseif ( $item != $storageDir && strpos( $item, $storageDir ) !== false ) {
911
$storageEmptyDirs[] = $item;
912
}
913
}
914
- }
915
-
916
- // Now go through the JSONs and collect the latest assets so they would be kept
917
- foreach ($allJsons as $jsonFile) {
918
- $jsonContents = FileSystem::file_get_contents($jsonFile);
919
- $jsonContentsArray = @json_decode($jsonContents, ARRAY_A);
920
-
921
- // [START] For Combined CSS/JS Files
922
- $uriToFinalCssFileIndexKey = 'uri_to_final_css_file';
923
- $uriToFinalJsFileIndexKey = 'uri_to_final_js_file';
924
-
925
- if (is_array($jsonContentsArray) && strpos($jsonContents, $uriToFinalCssFileIndexKey) !== false) {
926
- if (isset($jsonContentsArray['head'][$uriToFinalCssFileIndexKey])) {
927
- $allAssetsToKeep[] = WP_CONTENT_DIR . OptimizeCss::getRelPathCssCacheDir() . $jsonContentsArray['head'][$uriToFinalCssFileIndexKey];
928
- }
929
-
930
- if (isset($jsonContentsArray['body'][$uriToFinalCssFileIndexKey])) {
931
- $allAssetsToKeep[] = WP_CONTENT_DIR . OptimizeCss::getRelPathCssCacheDir() . $jsonContentsArray['body'][$uriToFinalCssFileIndexKey];
932
- }
933
- } elseif (is_array($jsonContentsArray) && strpos($jsonContents, $uriToFinalJsFileIndexKey) !== false) {
934
- foreach ($jsonContentsArray as $jsGroupVal) {
935
- if (isset($jsGroupVal[$uriToFinalJsFileIndexKey]) ) {
936
- $allAssetsToKeep[] = WP_CONTENT_DIR . OptimizeJs::getRelPathJsCacheDir() . $jsGroupVal[$uriToFinalJsFileIndexKey];
937
- }
938
- }
939
- }
940
- // [END] For Combined CSS/JS Files
941
942
- // [START] For Single CSS/JS Files
943
- if ( is_array( $jsonContentsArray ) && isset( $jsonContentsArray['optimize_uri'] ) ) {
944
- $allAssetsToKeep[] = rtrim(ABSPATH, '/') . $jsonContentsArray['optimize_uri'];
945
- }
946
- // [END] For Single CSS/JS Files
947
948
- // Clear the JSON files as new ones will be generated
949
- @unlink($jsonFile);
950
- /* [clear output] */if ($isAjaxCall && ! is_file($jsonFile)) { $clearedOutput[] = $jsonFile. ' (storage file)'; }/* [/clear output] */
951
}
952
953
// Finally, collect the rest of $allAssetsToKeep from the database transients (if any)
954
// Do not check if they are expired or not as their assets could still be referenced
955
// until those pages will be accessed in a non-cached way
@@ -992,7 +990,7 @@ SQL;
992
$allAssetsToKeep = array_unique($allAssetsToKeep);
993
994
// Finally clear the matched assets, except the active ones
995
- foreach ($allAssets as $assetFile) {
996
if (in_array($assetFile, $allAssetsToKeep)) {
997
continue;
998
}
@@ -1378,10 +1376,8 @@ SQL;
1378
if ($checkTiming) {
1379
$cachedAssetsFileExpiresIn = false;
1380
1381
- if (strpos($wpacuFile, 'css') === 0) {
1382
- $cachedAssetsFileExpiresIn = OptimizeCss::$cachedCssAssetsFileExpiresIn;
1383
- } elseif (strpos($wpacuFile, 'js') === 0) {
1384
- $cachedAssetsFileExpiresIn = OptimizeJs::$cachedJsAssetsFileExpiresIn;
1385
}
1386
1387
$isExpired = (filemtime($pathToFile) < (time() - 1 * $cachedAssetsFileExpiresIn));
@@ -1400,4 +1396,24 @@ SQL;
1400
}
1401
}
1402
}
1403
}
26
*/
27
public static $optimizedSingleFilesDir = 'item';
28
29
+ /**
30
+ * @var float|int
31
+ */
32
+ public static $cachedAssetFileExpiresIn = 28800; // 8 hours in seconds (60 * 60 * 8)
33
+
34
/**
35
* @var array
36
*/
206
'alter_html_source_original_to_optimized_css',
207
'alter_html_source_for_preload_css',
208
209
'alter_html_source_for_combine_css',
210
'alter_html_source_for_minify_inline_style_tags',
211
215
216
'alter_html_source_original_to_optimized_js',
217
'alter_html_source_for_preload_js',
218
'alter_html_source_for_combine_js',
219
220
'alter_html_source_move_inline_jquery_after_src_tag'
368
369
$localAssetPath = ABSPATH . $hrefRelPath;
370
371
+ if (strpos($localAssetPath, '?ver') !== false) {
372
+ list($localAssetPathAlt,) = explode('?ver', $localAssetPath);
373
$localAssetPath = $localAssetPathAlt;
374
}
375
449
$isRelPath = true;
450
}
451
452
+ // In case the match was something like "src='//mydomain.com/file.js'"
453
+ // Leave nothing to chance as often the prefix is stripped
454
+ $cleanSiteUrl = str_replace(array('http://', 'https://'), '//', site_url());
455
+
456
+ if ($isRelPath || (stripos($sourceFromTag, $cleanSiteUrl) !== false) || (stripos($sourceFromTag, site_url()) !== false)) {
457
+ $cleanSourceUrlFromTag = trim($sourceFromTag, '?&');
458
$afterQuestionMark = WPACU_PLUGIN_VERSION;
459
460
// Is it a dynamic URL? Keep the full path
461
+ if (strpos($cleanSourceUrlFromTag, '.php') !== false ||
462
+ strpos($cleanSourceUrlFromTag, '/?') !== false ||
463
+ strpos($cleanSourceUrlFromTag, rtrim(site_url(), '/').'?') !== false) {
464
list(,$afterQuestionMark) = explode('?', $sourceFromTag);
465
} elseif (strpos($sourceFromTag, '?') !== false) {
466
+ list($cleanSourceUrlFromTag, $afterQuestionMark) = explode('?', $sourceFromTag);
467
}
468
469
if (! $afterQuestionMark) {
470
return false;
471
}
472
473
+ return array('source' => $cleanSourceUrlFromTag, 'after_question_mark' => $afterQuestionMark);
474
}
475
476
return false;
666
return array();
667
}
668
669
+ if ($assetType === 'css' || $assetType === 'js') {
670
+ $cachedAssetsFileExpiresIn = self::$cachedAssetFileExpiresIn;
671
} else {
672
return array();
673
}
852
$clearedOutput = $keptOutput = array();
853
854
/*
855
+ * STEP 1: Clear all JSON & all assets (.css & .js) files older than $clearFilesOlderThan days
856
*/
857
$skipFiles = array('index.php', '.htaccess');
858
$fileExtToRemove = array('.json', '.css', '.js');
876
$userIdDirs = array();
877
878
if (is_dir($assetCleanUpCacheDir)) {
879
+ $storageEmptyDirs = $allClearableAssets = $allAssetsToKeep = array();
880
+
881
+ $siteHost = parse_url(site_url(), PHP_URL_HOST);
882
+ $siteUri = parse_url(site_url(), PHP_URL_PATH);
883
+
884
+ $relPathToPossibleDir = $storageDir.'/'.$siteHost . $siteUri;
885
886
$targetedDirs = array(
887
$storageDir.'/item/',
888
$assetCleanUpCacheDir.'/css/',
889
+ $assetCleanUpCacheDir.'/js/',
890
+ // Possible common directories with less files
891
+ $relPathToPossibleDir.'/category/',
892
+ $relPathToPossibleDir.'/author/',
893
+ $relPathToPossibleDir.'/tag/'
894
);
895
896
foreach ( $targetedDirs as $targetedDir ) {
897
+ if ( ! is_dir($targetedDir) ) { continue; }
898
+
899
$dirItems = new \RecursiveDirectoryIterator( $targetedDir, \RecursiveDirectoryIterator::SKIP_DOTS );
900
901
foreach (
905
$fileBaseName = trim( strrchr( $item, '/' ), '/' );
906
$fileExt = strrchr( $fileBaseName, '.' );
907
908
+ if ( is_file( $item ) && in_array( $fileExt, $fileExtToRemove ) && ( ! in_array( $fileBaseName, $skipFiles ) ) ) {
909
$isJsonFile = ( $fileExt === '.json' );
910
$isAssetFile = in_array( $fileExt, array( '.css', '.js' ) );
911
912
// Remove all JSONs and .css & .js ONLY if they are older than $clearFilesOlderThan
913
if ( $isJsonFile || ( $isAssetFile && ( strtotime( '-' . $clearFilesOlderThan . ' days' ) > $item->getCTime() ) ) ) {
914
if ( $isJsonFile ) {
915
+ // Clear the JSON files as new ones will be generated
916
+ @unlink($item);
917
+ // [clear output]
918
+ if ($isAjaxCall && ! is_file($item)) { $clearedOutput[] = $item. ' (storage file)'; }
919
+ // [/clear output]
920
}
921
922
if ( $isAssetFile ) {
923
+ // Keep current active CSS/JS files created less than self::$cachedAssetFileExpiresIn ago
924
+ $isNotOlderThanDefaultTime = $item->getCTime() > strtotime('-' . self::$cachedAssetFileExpiresIn . ' seconds');
925
+
926
+ if ($isNotOlderThanDefaultTime) {
927
+ continue;
928
+ }
929
+
930
+ $allClearableAssets[] = $item;
931
}
932
}
933
+ } elseif ( is_dir( $item ) && ( strpos( $item, '/css/logged-in/' ) !== false || strpos( $item, '/js/logged-in/' ) !== false ) ) {
934
$userIdDirs[] = $item;
935
} elseif ( $item != $storageDir && strpos( $item, $storageDir ) !== false ) {
936
$storageEmptyDirs[] = $item;
937
}
938
}
939
940
+ @rmdir($targetedDir); // if it's empty, remove it
941
+ }
942
943
+ if ( ! defined('WPACU_SITE_URL_HOST') ) {
944
+ define( 'WPACU_SITE_URL_HOST', parse_url(site_url(), PHP_URL_HOST) );
945
}
946
947
+ // Clear all JSON files separately from the storage directory as it will be rebuilt
948
+ self::rmNonEmptyJsonStorageDir($storageDir);
949
+
950
+ // Now go through the JSONs and collect the latest assets so they would be kept
951
// Finally, collect the rest of $allAssetsToKeep from the database transients (if any)
952
// Do not check if they are expired or not as their assets could still be referenced
953
// until those pages will be accessed in a non-cached way
990
$allAssetsToKeep = array_unique($allAssetsToKeep);
991
992
// Finally clear the matched assets, except the active ones
993
+ foreach ($allClearableAssets as $assetFile) {
994
if (in_array($assetFile, $allAssetsToKeep)) {
995
continue;
996
}
1376
if ($checkTiming) {
1377
$cachedAssetsFileExpiresIn = false;
1378
1379
+ if (strpos($wpacuFile, 'css') === 0 || strpos($wpacuFile, 'js') === 0) {
1380
+ $cachedAssetsFileExpiresIn = self::$cachedAssetFileExpiresIn;
1381
}
1382
1383
$isExpired = (filemtime($pathToFile) < (time() - 1 * $cachedAssetsFileExpiresIn));
1396
}
1397
}
1398
}
1399
+
1400
+ /**
1401
+ * @param $targetDir
1402
+ */
1403
+ public static function rmNonEmptyJsonStorageDir($targetDir)
1404
+ {
1405
+ $dirFiles = glob($targetDir . '/*');
1406
+
1407
+ foreach ($dirFiles as $targetFile) {
1408
+ if (is_dir($targetFile)) {
1409
+ self::rmNonEmptyJsonStorageDir($targetFile);
1410
+ } elseif(strrchr($targetFile, '.') === '.json') {
1411
+ @unlink($targetFile);
1412
+ }
1413
+ }
1414
+
1415
+ if (strpos($targetDir, WPACU_SITE_URL_HOST) !== false) {
1416
+ @rmdir($targetDir);
1417
+ }
1418
+ }
1419
}
classes/OptimiseAssets/OptimizeCss.php CHANGED
@@ -20,11 +20,6 @@ class OptimizeCss
20
*/
21
const MOVE_NOSCRIPT_TO_BODY_FOR_ASYNC_PRELOADS = '<span style="display: none;" data-name=wpacu-delimiter data-content="ASSET CLEANUP NOSCRIPT FOR ASYNC PRELOADS"></span>';
22
23
- /**
24
- * @var float|int
25
- */
26
- public static $cachedCssAssetsFileExpiresIn = 28800; // 8 hours in seconds (60 * 60 * 8)
27
-
28
/**
29
*
30
*/
@@ -399,34 +394,25 @@ class OptimizeCss
399
/* [wpacu_timing] */ Misc::scriptExecTimer($wpacuTimingName, 'end'); /* [/wpacu_timing] */
400
}
401
402
- if (self::isInlineCssEnabled()) {
403
- /* [wpacu_timing] */ $wpacuTimingName = 'alter_html_source_for_inline_css'; Misc::scriptExecTimer($wpacuTimingName); /* [/wpacu_timing] */
404
- $htmlSource = self::doInline($htmlSource);
405
- /* [wpacu_timing] */ Misc::scriptExecTimer($wpacuTimingName, 'end'); /* [/wpacu_timing] */
406
- }
407
-
408
if (self::isWorthCheckingForOptimization()) {
409
/* [wpacu_timing] */ $wpacuTimingName = 'alter_html_source_original_to_optimized_css'; Misc::scriptExecTimer($wpacuTimingName); /* [/wpacu_timing] */
410
// 'wpacu_css_optimize_list' caching list is also checked; if it's empty, no optimization is made
411
$htmlSource = self::updateHtmlSourceOriginalToOptimizedCss($htmlSource);
412
/* [wpacu_timing] */ Misc::scriptExecTimer($wpacuTimingName, 'end'); /* [/wpacu_timing] */
413
-
414
-
415
- // Are there any dynamic loaded CSS that were optimized? Check them too
416
- if (self::isInlineCssEnabled() && Main::instance()->settings['cache_dynamic_loaded_css']) {
417
- /* [wpacu_timing] */ $wpacuTimingName = 'alter_html_source_for_dynamic_loaded_css'; Misc::scriptExecTimer($wpacuTimingName); /* [/wpacu_timing] */
418
- $htmlSource = self::doInline($htmlSource, 'from_cache_for_dynamic_loaded_css');
419
- /* [wpacu_timing] */ Misc::scriptExecTimer($wpacuTimingName, 'end'); /* [/wpacu_timing] */
420
- }
421
}
422
423
if (! Main::instance()->preventAssetsSettings()) {
424
/* [wpacu_timing] */ $wpacuTimingName = 'alter_html_source_for_preload_css'; Misc::scriptExecTimer($wpacuTimingName); /* [/wpacu_timing] */
425
- /* [wpacu_pro] */ $htmlSource = apply_filters('wpacu_optimize_css_html_source', $htmlSource); /* [/wpacu_pro] */
426
$htmlSource = Preloads::instance()->doChanges($htmlSource);
427
/* [wpacu_timing] */ Misc::scriptExecTimer($wpacuTimingName, 'end'); /* [/wpacu_timing] */
428
}
429
430
$proceedWithCombineOnThisPage = true;
431
432
// If "Do not combine CSS on this page" is checked in "Asset CleanUp: Options" side meta box
@@ -600,7 +586,7 @@ class OptimizeCss
600
$cdnUrls = OptimizeCommon::getAnyCdnUrls();
601
$cdnUrlForCss = isset($cdnUrls['css']) ? $cdnUrls['css'] : false;
602
603
- preg_match_all('#<link[^>]*(stylesheet|(as(\s+|)=(\s+|)(|"|\')style(|"|\')))[^>]*(>)#Umi', OptimizeCommon::cleanerHtmlSource($htmlSource), $matchesSourcesFromTags, PREG_SET_ORDER);
604
605
if (empty($matchesSourcesFromTags)) {
606
return $htmlSource;
@@ -710,11 +696,11 @@ class OptimizeCss
710
}
711
712
// Strip ?ver=
713
- $newLinkSourceTag = str_replace('.css&#038;ver=', '.css?ver=', $newLinkSourceTag);
714
- $toStrip = Misc::extractBetween($newLinkSourceTag, '?ver=', ' ');
715
716
if (in_array(substr($toStrip, -1), array('"', "'"))) {
717
- $toStrip = '?ver='. trim(trim($toStrip, '"'), "'");
718
$newLinkSourceTag = str_replace($toStrip, '', $newLinkSourceTag);
719
}
720
@@ -739,22 +725,17 @@ class OptimizeCss
739
740
/**
741
* @param $htmlSource
742
- * @param $fetch - 'all', 'from_cache_for_dynamic_loaded_css' (if "Cache Dynamic Loaded CSS" is enabled in "Settings" -> "Optimize CSS")
743
*
744
* @return mixed
745
*/
746
- public static function doInline($htmlSource, $fetch = 'all')
747
{
748
- $minifyInlineTags = (! Main::instance()->preventAssetsSettings() && Main::instance()->settings['minify_loaded_css'] && Main::instance()->settings['minify_loaded_css_inline']);
749
$allPatterns = self::getAllInlineChosenPatterns();
750
751
// Skip any LINK tags within conditional comments (e.g. Internet Explorer ones)
752
- if ($fetch === 'all') {
753
- preg_match_all('#<link[^>]*stylesheet[^>]*(>)#Umi', OptimizeCommon::cleanerHtmlSource($htmlSource, array('strip_content_between_conditional_comments')), $matchesSourcesFromTags, PREG_SET_ORDER);
754
- } elseif ($fetch === 'from_cache_for_dynamic_loaded_css') {
755
- preg_match_all('#<link[^>]*stylesheet[^>]*('.OptimizeCommon::getRelPathPluginCacheDir().').*(>)#Usmi', OptimizeCommon::cleanerHtmlSource($htmlSource, array('strip_content_between_conditional_comments')), $matchesSourcesFromTags, PREG_SET_ORDER);
756
- }
757
-
758
// In case automatic inlining is used
759
$belowSizeInput = (int)Main::instance()->settings['inline_css_files_below_size_input'];
760
@@ -769,6 +750,12 @@ class OptimizeCss
769
foreach ($matchesSourcesFromTags as $matchList) {
770
$matchedTag = $matchList[0];
771
772
if (strip_tags($matchedTag) !== '') {
773
continue; // something is funny, don't mess with the HTML alteration, leave it as it was
774
}
@@ -812,7 +799,10 @@ class OptimizeCss
812
$appendBeforeAnyRelPath . OptimizeCommon::getPathToAssetDir($linkHrefOriginal) . '/'
813
);
814
815
- $cssContent = self::maybeAlterCssContent($cssContent, $minifyInlineTags, true);
816
817
if ($cssContent && $cssContent !== '/**/') {
818
$htmlSource = str_replace(
@@ -836,49 +826,26 @@ class OptimizeCss
836
*
837
* @param $cssContent
838
* @param bool $doCssMinify (false by default as it could be already minified or non-minify type)
839
- * @param bool $useCache - (false by default - this param is relevant only for inline tags that are altered on the fly as existing CSS static enqueued files already have their own caching)
840
* @param array $extraParams
841
* @return mixed|string|string[]|null
842
*/
843
- public static function maybeAlterCssContent($cssContent, $doCssMinify = false, $useCache = false, $extraParams = array())
844
{
845
if (! trim($cssContent)) {
846
return $cssContent;
847
}
848
849
- if ($useCache) {
850
- // Anything in the cache? Take it from there and don't spend resources with the minification
851
- // (which in some environments uses the CPU, depending on the complexity of the JavaScript code) and any other alteration
852
- $cssContentBeforeHash = sha1( $cssContent );
853
-
854
- $pathToInlineCssOptimizedItem = WP_CONTENT_DIR . self::getRelPathCssCacheDir() . '/item/inline/' . $cssContentBeforeHash . '.css';
855
-
856
- // Check if the file exists before moving forward
857
- if ( is_file( $pathToInlineCssOptimizedItem ) ) {
858
- $cachedCssFileExpiresIn = self::$cachedCssAssetsFileExpiresIn;
859
-
860
- if ( filemtime( $pathToInlineCssOptimizedItem ) < ( time() - 1 * $cachedCssFileExpiresIn ) ) {
861
- // Has the caching period expired? Remove the file as a new one has to be generated
862
- @unlink( $pathToInlineCssOptimizedItem );
863
- } else {
864
- // Not expired / Return its content from the cache in a faster way
865
- $inlineCssStorageItemJsonContent = trim( FileSystem::file_get_contents( $pathToInlineCssOptimizedItem ) );
866
-
867
- if ( $inlineCssStorageItemJsonContent !== '' ) {
868
- return $inlineCssStorageItemJsonContent;
869
- }
870
- }
871
- }
872
- }
873
-
874
if ( $doCssMinify && in_array('just_minify', $extraParams) ) {
875
- $cssContent = MinifyCss::applyMinification( $cssContent, $useCache );
876
} else {
877
// Move any @imports to top; This also strips any @imports to Google Fonts if the option is chosen
878
$cssContent = self::importsUpdate( $cssContent );
879
880
if ( $doCssMinify ) {
881
- $cssContent = MinifyCss::applyMinification( $cssContent, $useCache );
882
}
883
884
if ( Main::instance()->settings['google_fonts_remove'] ) {
@@ -886,15 +853,6 @@ class OptimizeCss
886
}
887
}
888
889
- if ($useCache && isset($pathToInlineCssOptimizedItem)) {
890
- // Store the optimized content to the cached CSS file which would be read quicker
891
- if ($cssContent === '') {
892
- $cssContent = '/**/'; // dummy content to make it not empty (will checked and stripped later on)
893
- }
894
-
895
- FileSystem::file_put_contents( $pathToInlineCssOptimizedItem, $cssContent );
896
- }
897
-
898
return $cssContent;
899
}
900
@@ -1122,10 +1080,8 @@ class OptimizeCss
1122
if (isset($ignoreChild['styles']) && ! empty($ignoreChild['styles'])) {
1123
foreach (array_keys($ignoreChild['styles']) as $styleHandle) {
1124
if (isset(Main::instance()->wpAllStyles['registered'][$styleHandle]->src, Main::instance()->ignoreChildren['styles'][$styleHandle.'_has_unload_rule']) && Main::instance()->wpAllStyles['registered'][$styleHandle]->src && Main::instance()->ignoreChildren['styles'][$styleHandle.'_has_unload_rule']) {
1125
- $inlineStyleAssociatedWithLinkTag = self::getInlineAssociatedWithLinkHandle($styleHandle, Main::instance()->wpAllStyles['registered'], 'handle');
1126
-
1127
- if (isset($inlineStyleAssociatedWithLinkTag['after']) && $inlineStyleAssociatedWithLinkTag['after']) {
1128
- $htmlSource = str_replace($inlineStyleAssociatedWithLinkTag['after'], '', $htmlSource);
1129
}
1130
1131
$listWithMatches = array();
@@ -1147,10 +1103,11 @@ class OptimizeCss
1147
* @param $styleTagOrHandle
1148
* @param $wpacuRegisteredStyles
1149
* @param $from
1150
*
1151
* @return array
1152
*/
1153
- public static function getInlineAssociatedWithLinkHandle($styleTagOrHandle, $wpacuRegisteredStyles, $from = 'tag')
1154
{
1155
$styleExtraAfter = '';
1156
@@ -1161,7 +1118,7 @@ class OptimizeCss
1161
$styleHandle = $styleTagOrHandle;
1162
}
1163
1164
- if ($styleHandle && isset($wpacuRegisteredStyles[$styleHandle]->extra)) {
1165
$styleExtraArray = $wpacuRegisteredStyles[$styleHandle]->extra;
1166
1167
if (isset($styleExtraArray['after']) && ! empty($styleExtraArray['after'])) {
@@ -1175,9 +1132,53 @@ class OptimizeCss
1175
1176
$styleExtraAfter .= '</style>';
1177
}
1178
}
1179
1180
- return array('after' => $styleExtraAfter);
1181
}
1182
1183
/**
20
*/
21
const MOVE_NOSCRIPT_TO_BODY_FOR_ASYNC_PRELOADS = '<span style="display: none;" data-name=wpacu-delimiter data-content="ASSET CLEANUP NOSCRIPT FOR ASYNC PRELOADS"></span>';
22
23
/**
24
*
25
*/
394
/* [wpacu_timing] */ Misc::scriptExecTimer($wpacuTimingName, 'end'); /* [/wpacu_timing] */
395
}
396
397
if (self::isWorthCheckingForOptimization()) {
398
/* [wpacu_timing] */ $wpacuTimingName = 'alter_html_source_original_to_optimized_css'; Misc::scriptExecTimer($wpacuTimingName); /* [/wpacu_timing] */
399
// 'wpacu_css_optimize_list' caching list is also checked; if it's empty, no optimization is made
400
$htmlSource = self::updateHtmlSourceOriginalToOptimizedCss($htmlSource);
401
/* [wpacu_timing] */ Misc::scriptExecTimer($wpacuTimingName, 'end'); /* [/wpacu_timing] */
402
}
403
404
if (! Main::instance()->preventAssetsSettings()) {
405
/* [wpacu_timing] */ $wpacuTimingName = 'alter_html_source_for_preload_css'; Misc::scriptExecTimer($wpacuTimingName); /* [/wpacu_timing] */
406
$htmlSource = Preloads::instance()->doChanges($htmlSource);
407
/* [wpacu_timing] */ Misc::scriptExecTimer($wpacuTimingName, 'end'); /* [/wpacu_timing] */
408
}
409
410
+ if (self::isInlineCssEnabled()) {
411
+ /* [wpacu_timing] */ $wpacuTimingName = 'alter_html_source_for_inline_css'; Misc::scriptExecTimer($wpacuTimingName); /* [/wpacu_timing] */
412
+ $htmlSource = self::doInline($htmlSource);
413
+ /* [wpacu_timing] */ Misc::scriptExecTimer($wpacuTimingName, 'end'); /* [/wpacu_timing] */
414
+ }
415
+
416
$proceedWithCombineOnThisPage = true;
417
418
// If "Do not combine CSS on this page" is checked in "Asset CleanUp: Options" side meta box
586
$cdnUrls = OptimizeCommon::getAnyCdnUrls();
587
$cdnUrlForCss = isset($cdnUrls['css']) ? $cdnUrls['css'] : false;
588
589
+ preg_match_all('#<link[^>]*(stylesheet|(as(\s+|)=(\s+|)(|"|\')style(|"|\')))[^>]*(>)#Umi', $htmlSource, $matchesSourcesFromTags, PREG_SET_ORDER);
590
591
if (empty($matchesSourcesFromTags)) {
592
return $htmlSource;
696
}
697
698
// Strip ?ver=
699
+ $newLinkSourceTag = str_replace('.css&#038;ver', '.css?ver', $newLinkSourceTag);
700
+ $toStrip = Misc::extractBetween($newLinkSourceTag, '?ver', ' ');
701
702
if (in_array(substr($toStrip, -1), array('"', "'"))) {
703
+ $toStrip = '?ver'. trim(trim($toStrip, '"'), "'");
704
$newLinkSourceTag = str_replace($toStrip, '', $newLinkSourceTag);
705
}
706
725
726
/**
727
* @param $htmlSource
728
*
729
* @return mixed
730
*/
731
+ public static function doInline($htmlSource)
732
{
733
$allPatterns = self::getAllInlineChosenPatterns();
734
735
// Skip any LINK tags within conditional comments (e.g. Internet Explorer ones)
736
+ preg_match_all( '#<link[^>]*stylesheet[^>]*(>)#Umi',
737
+ OptimizeCommon::cleanerHtmlSource( $htmlSource, array( 'strip_content_between_conditional_comments' ) ),
738
+ $matchesSourcesFromTags, PREG_SET_ORDER );
739
// In case automatic inlining is used
740
$belowSizeInput = (int)Main::instance()->settings['inline_css_files_below_size_input'];
741
750
foreach ($matchesSourcesFromTags as $matchList) {
751
$matchedTag = $matchList[0];
752
753
+ // They were preloaded for a reason, leave them
754
+ if (strpos($matchedTag, 'data-wpacu-preload-it-async=') !== false
755
+ || strpos($matchedTag, 'data-wpacu-to-be-preloaded-basic=') !== false) {
756
+ continue;
757
+ }
758
+
759
if (strip_tags($matchedTag) !== '') {
760
continue; // something is funny, don't mess with the HTML alteration, leave it as it was
761
}
799
$appendBeforeAnyRelPath . OptimizeCommon::getPathToAssetDir($linkHrefOriginal) . '/'
800
);
801
802
+ // The CSS file is read from its original plugin/theme/cache location
803
+ // If minify was enabled, then it's already minified, no point in re-minify it to save resources
804
+ // Changing paths (relative) to fonts, images, etc. are relevant in this case
805
+ $cssContent = self::maybeAlterCssContent($cssContent, false, false);
806
807
if ($cssContent && $cssContent !== '/**/') {
808
$htmlSource = str_replace(
826
*
827
* @param $cssContent
828
* @param bool $doCssMinify (false by default as it could be already minified or non-minify type)
829
+ * @param bool $forInlineStyle - (false by default - this param is relevant only for inline tags that are altered "on the fly")
830
+ *
831
* @param array $extraParams
832
+ *
833
* @return mixed|string|string[]|null
834
*/
835
+ public static function maybeAlterCssContent($cssContent, $doCssMinify = false, $forInlineStyle = false, $extraParams = array())
836
{
837
if (! trim($cssContent)) {
838
return $cssContent;
839
}
840
841
if ( $doCssMinify && in_array('just_minify', $extraParams) ) {
842
+ $cssContent = MinifyCss::applyMinification( $cssContent, $forInlineStyle );
843
} else {
844
// Move any @imports to top; This also strips any @imports to Google Fonts if the option is chosen
845
$cssContent = self::importsUpdate( $cssContent );
846
847
if ( $doCssMinify ) {
848
+ $cssContent = MinifyCss::applyMinification( $cssContent, $forInlineStyle );
849
}
850
851
if ( Main::instance()->settings['google_fonts_remove'] ) {
853
}
854
}
855
856
return $cssContent;
857
}
858
1080
if (isset($ignoreChild['styles']) && ! empty($ignoreChild['styles'])) {
1081
foreach (array_keys($ignoreChild['styles']) as $styleHandle) {
1082
if (isset(Main::instance()->wpAllStyles['registered'][$styleHandle]->src, Main::instance()->ignoreChildren['styles'][$styleHandle.'_has_unload_rule']) && Main::instance()->wpAllStyles['registered'][$styleHandle]->src && Main::instance()->ignoreChildren['styles'][$styleHandle.'_has_unload_rule']) {
1083
+ if ($scriptExtraAfterHtml = self::generateInlineAssocHtmlForHandle($styleHandle)) {
1084
+ $htmlSource = str_replace($scriptExtraAfterHtml, '', $htmlSource);
1085
}
1086
1087
$listWithMatches = array();
1103
* @param $styleTagOrHandle
1104
* @param $wpacuRegisteredStyles
1105
* @param $from
1106
+ * @param string $return ("value": CSS Inline Content / "html": CSS Inline Content surrounded by tags)
1107
*
1108
* @return array
1109
*/
1110
+ public static function getInlineAssociatedWithLinkHandle($styleTagOrHandle, $wpacuRegisteredStyles, $from = 'tag', $return = 'value')
1111
{
1112
$styleExtraAfter = '';
1113
1118
$styleHandle = $styleTagOrHandle;
1119
}
1120
1121
+ if ($return === 'value' && $styleHandle && isset($wpacuRegisteredStyles[$styleHandle]->extra)) {
1122
$styleExtraArray = $wpacuRegisteredStyles[$styleHandle]->extra;
1123
1124
if (isset($styleExtraArray['after']) && ! empty($styleExtraArray['after'])) {
1132
1133
$styleExtraAfter .= '</style>';
1134
}
1135
+
1136
+ return array('after' => $styleExtraAfter);
1137
+ }
1138
+
1139
+ if ( $return === 'html' && $styleHandle ) {
1140
+ // 'after' is the only one for inline CSS; there's no 'data' or 'before' like in the inline JS
1141
+ return array('after' => self::generateInlineAssocHtmlForHandle($styleHandle));
1142
+ }
1143
+
1144
+ return array('after' => array());
1145
+ }
1146
+
1147
+ /**
1148
+ * @param $handle
1149
+ * @param $inlineStyleContent
1150
+ *
1151
+ * @return string
1152
+ */
1153
+ public static function generateInlineAssocHtmlForHandle($handle, $inlineStyleContent = '')
1154
+ {
1155
+ global $wp_styles;
1156
+
1157
+ $typeAttr = '';
1158
+
1159
+ if ( function_exists( 'is_admin' ) && ! is_admin()
1160
+ &&
1161
+ function_exists( 'current_theme_supports' ) && ! current_theme_supports( 'html5', 'style' )
1162
+ ) {
1163
+ $typeAttr = " type='text/css'";
1164
+ }
1165
+
1166
+ $output = '';
1167
+
1168
+ if ( $inlineStyleContent === '' ) {
1169
+ $inlineStyleContent = $wp_styles->print_inline_style( $handle, false );
1170
+ }
1171
+
1172
+ if ( $inlineStyleContent ) {
1173
+ $output = sprintf(
1174
+ "<style id='%s-inline-css'%s>\n%s\n</style>",
1175
+ esc_attr( $handle ),
1176
+ $typeAttr,
1177
+ $inlineStyleContent
1178
+ );
1179
}
1180
1181
+ return $output;
1182
}
1183
1184
/**
classes/OptimiseAssets/OptimizeJs.php CHANGED
@@ -14,11 +14,6 @@ use WpAssetCleanUp\Preloads;
14
*/
15
class OptimizeJs
16
{
17
- /**
18
- * @var float|int
19
- */
20
- public static $cachedJsAssetsFileExpiresIn = 28800; // 8 hours in seconds (60 * 60 * 8)
21
-
22
/**
23
*
24
*/
@@ -298,7 +293,7 @@ class OptimizeJs
298
$cdnUrls = OptimizeCommon::getAnyCdnUrls();
299
$cdnUrlForJs = isset($cdnUrls['js']) ? $cdnUrls['js'] : false;
300
301
- preg_match_all('#(<script[^>]*src(|\s+)=(|\s+)[^>]*(>))|(<link[^>]*(as(\s+|)=(\s+|)(|"|\')script(|"|\'))[^>]*(>))#Umi', OptimizeCommon::cleanerHtmlSource($htmlSource), $matchesSourcesFromTags, PREG_SET_ORDER);
302
303
foreach ($matchesSourcesFromTags as $matches) {
304
$scriptSourceTag = $matches[0];
@@ -408,17 +403,17 @@ class OptimizeJs
408
}
409
410
// Strip ?ver=
411
- $toStrip = Misc::extractBetween($newScriptSourceTag, '?ver=', '>');
412
413
if (in_array(substr($toStrip, -1), array('"', "'"))) {
414
- $toStrip = '?ver='. trim(trim($toStrip, '"'), "'");
415
$newScriptSourceTag = str_replace($toStrip, '', $newScriptSourceTag);
416
}
417
418
global $wp_version;
419
420
$newScriptSourceTag = str_replace('.js&#038;ver='.$wp_version, '.js', $newScriptSourceTag);
421
- $newScriptSourceTag = str_replace('.js&#038;ver=', '.js?ver=', $newScriptSourceTag);
422
423
return $newScriptSourceTag;
424
}
@@ -611,12 +606,10 @@ class OptimizeJs
611
{
612
$scriptTags = array();
613
614
- $cleanerHtmlSource = OptimizeCommon::cleanerHtmlSource($htmlSource);
615
-
616
foreach ($scriptSrcs as $scriptSrc) {
617
$scriptSrc = str_replace('{site_url}', '', $scriptSrc);
618
619
- preg_match_all('#<script[^>]*src(|\s+)=(|\s+)[^>]*'. preg_quote($scriptSrc, '/'). '.*(>)(.*|)</script>#Usmi', $cleanerHtmlSource, $matchesFromSrc, PREG_SET_ORDER);
620
621
if (isset($matchesFromSrc[0][0]) && strip_tags($matchesFromSrc[0][0]) === '') {
622
$scriptTags[] = trim($matchesFromSrc[0][0]);
@@ -901,22 +894,21 @@ class OptimizeJs
901
if (isset($ignoreChild['scripts']) && ! empty($ignoreChild['scripts'])) {
902
foreach (array_keys($ignoreChild['scripts']) as $scriptHandle) {
903
if (isset(Main::instance()->wpAllScripts['registered'][$scriptHandle]->src, Main::instance()->ignoreChildren['scripts'][$scriptHandle.'_has_unload_rule']) && ($scriptSrc = Main::instance()->wpAllScripts['registered'][$scriptHandle]->src) && Main::instance()->ignoreChildren['scripts'][$scriptHandle.'_has_unload_rule']) {
904
- $inlineAssociatedWithHandle = self::getInlineAssociatedWithScriptHandle($scriptHandle, Main::instance()->wpAllScripts['registered'], 'handle');
905
-
906
- $toReplaceTagList = '';
907
908
- if ($inlineAssociatedWithHandle['cdata']) {
909
- $toReplaceTagList .= $inlineAssociatedWithHandle['cdata'] . "\n";
910
}
911
912
- if ($inlineAssociatedWithHandle['before']) {
913
- $toReplaceTagList .= $inlineAssociatedWithHandle['before'] . "\n";
914
}
915
916
- $toReplaceTagList .= self::getScriptTagFromHandle(array('data-wpacu-script-handle=[\'"]' . $scriptHandle . '[\'"]'), $htmlSource);
917
918
- if ($inlineAssociatedWithHandle['after']) {
919
- $toReplaceTagList .= "\n" . $inlineAssociatedWithHandle['after'];
920
}
921
922
$htmlSource = str_replace($toReplaceTagList, '', $htmlSource);
@@ -936,17 +928,17 @@ class OptimizeJs
936
937
938
/**
939
* @param $scriptTagOrHandle
940
* @param $wpacuRegisteredScripts
941
* @param string $from
942
- * @param bool $withOpenCloseTags
943
*
944
* @return array
945
*/
946
- public static function getInlineAssociatedWithScriptHandle($scriptTagOrHandle, $wpacuRegisteredScripts, $from = 'tag', $withOpenCloseTags = true)
947
{
948
- $scriptExtraCdata = $scriptExtraBefore = $scriptExtraAfter = '';
949
-
950
if ($from === 'tag') {
951
preg_match_all('#data-wpacu-script-handle=([\'])' . '(.*)' . '(\1)#Usmi', $scriptTagOrHandle, $outputMatches);
952
$scriptHandle = (isset($outputMatches[2][0]) && $outputMatches[2][0]) ? trim($outputMatches[2][0], '"\'') : '';
@@ -954,43 +946,102 @@ class OptimizeJs
954
$scriptHandle = $scriptTagOrHandle;
955
}
956
957
- if ($scriptHandle && isset($wpacuRegisteredScripts[$scriptHandle]->extra)) {
958
$scriptExtraArray = $wpacuRegisteredScripts[$scriptHandle]->extra;
959
960
if (isset($scriptExtraArray['data']) && $scriptExtraArray['data']) {
961
- $scriptExtraCdata .= $withOpenCloseTags ? '<script type=\'text/javascript\'>'."\n" : '';
962
- $scriptExtraCdata .= '/* <![CDATA[ */'."\n";
963
$scriptExtraCdata .= $scriptExtraArray['data']."\n";
964
- $scriptExtraCdata .= '/* ]]> */'."\n";
965
- $scriptExtraCdata .= $withOpenCloseTags ? '</script>'."\n" : '';
966
}
967
968
if (isset($scriptExtraArray['before']) && ! empty($scriptExtraArray['before'])) {
969
- $scriptExtraBefore .= $withOpenCloseTags ? "<script data-wpacu-script-handle='".$scriptHandle."' type='text/javascript'>\n" : '';
970
-
971
foreach ($scriptExtraArray['before'] as $beforeData) {
972
if (! is_bool($beforeData)) {
973
$scriptExtraBefore .= $beforeData."\n";
974
}
975
}
976
-
977
- $scriptExtraBefore .= $withOpenCloseTags ? '</script>' : '';
978
}
979
980
if (isset($scriptExtraArray['after']) && ! empty($scriptExtraArray['after'])) {
981
- $scriptExtraAfter .= $withOpenCloseTags ? "<script data-wpacu-script-handle='".$scriptHandle."' type='text/javascript'>\n" : '';
982
-
983
foreach ($scriptExtraArray['after'] as $afterData) {
984
if (! is_bool($afterData)) {
985
$scriptExtraAfter .= $afterData."\n";
986
}
987
}
988
989
- $scriptExtraAfter .= $withOpenCloseTags ? '</script>' : '';
990
}
991
}
992
993
- return array('cdata' => trim($scriptExtraCdata), 'before' => trim($scriptExtraBefore), 'after' => trim($scriptExtraAfter));
994
}
995
996
/**
14
*/
15
class OptimizeJs
16
{
17
/**
18
*
19
*/
293
$cdnUrls = OptimizeCommon::getAnyCdnUrls();
294
$cdnUrlForJs = isset($cdnUrls['js']) ? $cdnUrls['js'] : false;
295
296
+ preg_match_all('#(<script[^>]*src(|\s+)=(|\s+)[^>]*(>))|(<link[^>]*(as(\s+|)=(\s+|)(|"|\')script(|"|\'))[^>]*(>))#Umi', $htmlSource, $matchesSourcesFromTags, PREG_SET_ORDER);
297
298
foreach ($matchesSourcesFromTags as $matches) {
299
$scriptSourceTag = $matches[0];
403
}
404
405
// Strip ?ver=
406
+ $toStrip = Misc::extractBetween($newScriptSourceTag, '?ver', '>');
407
408
if (in_array(substr($toStrip, -1), array('"', "'"))) {
409
+ $toStrip = '?ver'. trim(trim($toStrip, '"'), "'");
410
$newScriptSourceTag = str_replace($toStrip, '', $newScriptSourceTag);
411
}
412
413
global $wp_version;
414
415
$newScriptSourceTag = str_replace('.js&#038;ver='.$wp_version, '.js', $newScriptSourceTag);
416
+ $newScriptSourceTag = str_replace('.js&#038;ver=', '.js', $newScriptSourceTag);
417
418
return $newScriptSourceTag;
419
}
606
{
607
$scriptTags = array();
608
609
foreach ($scriptSrcs as $scriptSrc) {
610
$scriptSrc = str_replace('{site_url}', '', $scriptSrc);
611
612
+ preg_match_all('#<script[^>]*src(|\s+)=(|\s+)[^>]*'. preg_quote($scriptSrc, '/'). '.*(>)(.*|)</script>#Usmi', $htmlSource, $matchesFromSrc, PREG_SET_ORDER);
613
614
if (isset($matchesFromSrc[0][0]) && strip_tags($matchesFromSrc[0][0]) === '') {
615
$scriptTags[] = trim($matchesFromSrc[0][0]);
894
if (isset($ignoreChild['scripts']) && ! empty($ignoreChild['scripts'])) {
895
foreach (array_keys($ignoreChild['scripts']) as $scriptHandle) {
896
if (isset(Main::instance()->wpAllScripts['registered'][$scriptHandle]->src, Main::instance()->ignoreChildren['scripts'][$scriptHandle.'_has_unload_rule']) && ($scriptSrc = Main::instance()->wpAllScripts['registered'][$scriptHandle]->src) && Main::instance()->ignoreChildren['scripts'][$scriptHandle.'_has_unload_rule']) {
897
+ $toReplaceTagList = array();
898
899
+ // If the handle has any inline JavaScript associated with it (before or after the tag), make sure it's stripped as well
900
+ if ($cDataContent = self::generateInlineAssocHtmlForHandle($scriptHandle, 'data')) {
901
+ $toReplaceTagList[] = $cDataContent;
902
}
903
904
+ if ($beforeContent = self::generateInlineAssocHtmlForHandle($scriptHandle, 'before')) {
905
+ $toReplaceTagList[] = $beforeContent;
906
}
907
908
+ $toReplaceTagList[] = self::getScriptTagFromHandle(array('data-wpacu-script-handle=[\'"]' . $scriptHandle . '[\'"]'), $htmlSource);
909
910
+ if ($afterContent = self::generateInlineAssocHtmlForHandle($scriptHandle, 'after')) {
911
+ $toReplaceTagList[] = $afterContent;
912
}
913
914
$htmlSource = str_replace($toReplaceTagList, '', $htmlSource);
928
929
930
/**
931
+ * This would fetch the content of the SCRIPT tag (data, before & after)
932
+ *
933
* @param $scriptTagOrHandle
934
* @param $wpacuRegisteredScripts
935
* @param string $from
936
+ * @param string $return ("value": JS Inline Content / "html": JS Inline Content surrounded by tags)
937
*
938
* @return array
939
*/
940
+ public static function getInlineAssociatedWithScriptHandle($scriptTagOrHandle, $wpacuRegisteredScripts, $from = 'tag', $return = 'value')
941
{
942
if ($from === 'tag') {
943
preg_match_all('#data-wpacu-script-handle=([\'])' . '(.*)' . '(\1)#Usmi', $scriptTagOrHandle, $outputMatches);
944
$scriptHandle = (isset($outputMatches[2][0]) && $outputMatches[2][0]) ? trim($outputMatches[2][0], '"\'') : '';
946
$scriptHandle = $scriptTagOrHandle;
947
}
948
949
+ if ( $return === 'value' && $scriptHandle && isset($wpacuRegisteredScripts[$scriptHandle]->extra) ) {
950
+ $scriptExtraCdata = $scriptExtraBefore = $scriptExtraAfter = '';
951
+
952
$scriptExtraArray = $wpacuRegisteredScripts[$scriptHandle]->extra;
953
954
if (isset($scriptExtraArray['data']) && $scriptExtraArray['data']) {
955
$scriptExtraCdata .= $scriptExtraArray['data']."\n";
956
}
957
958
if (isset($scriptExtraArray['before']) && ! empty($scriptExtraArray['before'])) {
959
foreach ($scriptExtraArray['before'] as $beforeData) {
960
if (! is_bool($beforeData)) {
961
$scriptExtraBefore .= $beforeData."\n";
962
}
963
}
964
}
965
966
if (isset($scriptExtraArray['after']) && ! empty($scriptExtraArray['after'])) {
967
foreach ($scriptExtraArray['after'] as $afterData) {
968
if (! is_bool($afterData)) {
969
$scriptExtraAfter .= $afterData."\n";
970
}
971
}
972
+ }
973
+
974
+ return array(
975
+ 'data' => trim($scriptExtraCdata),
976
+ 'before' => trim($scriptExtraBefore),
977
+ 'after' => trim($scriptExtraAfter)
978
+ );
979
+ }
980
+
981
+ if ( $return === 'html' && $scriptHandle ) {
982
+ return array(
983
+ 'data' => self::generateInlineAssocHtmlForHandle($scriptHandle, 'data'),
984
+ 'before' => self::generateInlineAssocHtmlForHandle($scriptHandle, 'before'),
985
+ 'after' => self::generateInlineAssocHtmlForHandle($scriptHandle, 'after')
986
+ );
987
+ }
988
+
989
+ return array('data' => '', 'before' => '', 'after' => '');
990
+ }
991
+
992
+ /**
993
+ * @param $handle
994
+ * @param $type
995
+ * @param $inlineScriptContent
996
+ *
997
+ * @return string
998
+ */
999
+ public static function generateInlineAssocHtmlForHandle($handle, $type, $inlineScriptContent = '')
1000
+ {
1001
+ global $wp_scripts;
1002
+
1003
+ $typeAttr = '';
1004
+
1005
+ if ( function_exists( 'is_admin' ) && ! is_admin() &&
1006
+ function_exists( 'current_theme_supports' ) && ! current_theme_supports( 'html5', 'script' )
1007
+ ) {
1008
+ $typeAttr = " type='text/javascript'";
1009
+ }
1010
+
1011
+ $output = '';
1012
+
1013
+ if ( $type === 'data' ) {
1014
+ if ( $inlineScriptContent === '' ) {
1015
+ $inlineScriptContent = $wp_scripts->get_data( $handle, 'data' );
1016
+ }
1017
+
1018
+ $output .= "<script{$typeAttr}>\n";
1019
+
1020
+ // CDATA is not needed for HTML 5.
1021
+ if ( $typeAttr ) {
1022
+ $output .= "/* <![CDATA[ */\n";
1023
+ }
1024
+
1025
+ $output .= $inlineScriptContent."\n";
1026
+
1027
+ if ( $typeAttr ) {
1028
+ $output .= "/* ]]> */\n";
1029
+ }
1030
+
1031
+ $output .= '</script>';
1032
+ }
1033
+
1034
+ if ( $type === 'before' || $type === 'after' ) {
1035
+ if ( $inlineScriptContent === '' ) {
1036
+ $inlineScriptContent = $wp_scripts->print_inline_script( $handle, $type, false );
1037
+ }
1038
1039
+ if ( $inlineScriptContent ) {
1040
+ $output = sprintf( "<script%s>\n%s\n</script>", $typeAttr, $inlineScriptContent );
1041
}
1042
}
1043
1044
+ return $output;
1045
}
1046
1047
/**
classes/Overview.php CHANGED
@@ -146,7 +146,7 @@ SQL;
146
$wpacuGlobalDataArray = @json_decode($wpacuGlobalData, ARRAY_A);
147
148
foreach (array('styles', 'scripts') as $assetType) {
149
- foreach (array('preloads', 'positions', 'notes', 'ignore_child', 'everywhere', 'date', '404', 'search') as $dataType) {
150
if ( isset( $wpacuGlobalDataArray[ $assetType ][$dataType] ) && ! empty( $wpacuGlobalDataArray[ $assetType ][$dataType] ) ) {
151
foreach ( $wpacuGlobalDataArray[ $assetType ][$dataType] as $assetHandle => $dataValue ) {
152
if ($dataType === 'everywhere' && $assetType === 'scripts' && isset($dataValue['attributes'])) {
@@ -279,7 +279,7 @@ SQL;
279
280
$isExternalSrc = true;
281
282
- if (\WpAssetCleanUp\Misc::getLocalSrc($src)
283
|| strpos($src, '/?') !== false // Dynamic Local URL
284
|| strpos(str_replace(site_url(), '', $src), '?') === 0 // Starts with ? right after the site url (it's a local URL)
285
) {
@@ -710,7 +710,7 @@ SQL;
710
$handleChangesOutput['ignore_child'] = 'If unloaded by any rule, ignore dependencies and keep its "children" loaded';
711
}
712
713
- // Load exceptions? Per page, via RegEx
714
if (isset($handleData['load_exception_on_this_page']['post'])) {
715
$handleChangesOutput['load_exception_on_this_post'] = '<span style="color: green;">Loaded (as an exception)</span> in the following posts: ';
716
@@ -730,8 +730,8 @@ SQL;
730
}
731
732
if (isset($handleData['load_regex']) && $handleData['load_regex']) {
733
- if (isset($handleChangesOutput['load_exception_on_this_post'])) {
734
- $textToShow = ' and also if the request URI (from the URL) matches this RegEx';
735
} else {
736
$textToShow = '<span style="color: green;">Loaded (as an exception)</span> if the request URI (from the URL) matches this RegEx(es)';
737
}
@@ -740,6 +740,17 @@ SQL;
740
$anyLoadExceptionRule = true;
741
}
742
743
// Since more than one load exception rule is set, merge them on the same row to save space and avoid duplicated words
744
if (isset($handleChangesOutput['load_exception_on_this_post'], $handleChangesOutput['load_exception_regex'])) {
745
$handleChangesOutput['load_exception_all'] = $handleChangesOutput['load_exception_on_this_post'] . $handleChangesOutput['load_exception_regex'];
146
$wpacuGlobalDataArray = @json_decode($wpacuGlobalData, ARRAY_A);
147
148
foreach (array('styles', 'scripts') as $assetType) {
149
+ foreach (array('load_it_logged_in', 'preloads', 'positions', 'notes', 'ignore_child', 'everywhere', 'date', '404', 'search') as $dataType) {
150
if ( isset( $wpacuGlobalDataArray[ $assetType ][$dataType] ) && ! empty( $wpacuGlobalDataArray[ $assetType ][$dataType] ) ) {
151
foreach ( $wpacuGlobalDataArray[ $assetType ][$dataType] as $assetHandle => $dataValue ) {
152
if ($dataType === 'everywhere' && $assetType === 'scripts' && isset($dataValue['attributes'])) {
279
280
$isExternalSrc = true;
281
282
+ if (Misc::getLocalSrc($src)
283
|| strpos($src, '/?') !== false // Dynamic Local URL
284
|| strpos(str_replace(site_url(), '', $src), '?') === 0 // Starts with ? right after the site url (it's a local URL)
285
) {
710
$handleChangesOutput['ignore_child'] = 'If unloaded by any rule, ignore dependencies and keep its "children" loaded';
711
}
712
713
+ // Load exceptions? Per page, via RegEx, if user is logged-in
714
if (isset($handleData['load_exception_on_this_page']['post'])) {
715
$handleChangesOutput['load_exception_on_this_post'] = '<span style="color: green;">Loaded (as an exception)</span> in the following posts: ';
716
730
}
731
732
if (isset($handleData['load_regex']) && $handleData['load_regex']) {
733
+ if ($anyLoadExceptionRule) {
734
+ $textToShow = ' <strong>or</strong> if the request URI (from the URL) matches this RegEx';
735
} else {
736
$textToShow = '<span style="color: green;">Loaded (as an exception)</span> if the request URI (from the URL) matches this RegEx(es)';
737
}
740
$anyLoadExceptionRule = true;
741
}
742
743
+ if (isset($handleData['load_it_logged_in']) && $handleData['load_it_logged_in']) {
744
+ if ($anyLoadExceptionRule) {
745
+ $textToShow = ' <strong>or</strong> if the user is logged-in';
746
+ } else {
747
+ $textToShow = '<span style="color: green;">Loaded (as an exception)</span> if the user is logged-in';
748
+ }
749
+
750
+ $handleChangesOutput['load_it_logged_in'] = $textToShow;
751
+ $anyLoadExceptionRule = true;
752
+ }
753
+
754
// Since more than one load exception rule is set, merge them on the same row to save space and avoid duplicated words
755
if (isset($handleChangesOutput['load_exception_on_this_post'], $handleChangesOutput['load_exception_regex'])) {
756
$handleChangesOutput['load_exception_all'] = $handleChangesOutput['load_exception_on_this_post'] . $handleChangesOutput['load_exception_regex'];
classes/Plugin.php CHANGED
@@ -105,14 +105,12 @@ class Plugin
105
*
106
* /wp-content/cache/asset-cleanup/css/
107
* /wp-content/cache/asset-cleanup/css/item/
108
- * /wp-content/cache/asset-cleanup/css/item/inline/
109
* /wp-content/cache/asset-cleanup/css/index.php
110
* /wp-content/cache/asset-cleanup/css/logged-in/
111
* /wp-content/cache/asset-cleanup/css/logged-in/index.php
112
*
113
* /wp-content/cache/asset-cleanup/js/
114
* /wp-content/cache/asset-cleanup/js/item/
115
- * /wp-content/cache/asset-cleanup/js/item/inline/ (Pro)
116
* /wp-content/cache/asset-cleanup/js/index.php
117
* /wp-content/cache/asset-cleanup/js/logged-in/
118
* /wp-content/cache/asset-cleanup/js/logged-in/index.php
@@ -178,11 +176,7 @@ HTACCESS;
178
@mkdir( $cacheDir . OptimizeCommon::$optimizedSingleFilesDir, 0755 );
179
}
180
181
- if ( ! is_dir( $cacheDir . OptimizeCommon::$optimizedSingleFilesDir.'/inline' ) ) {
182
- @mkdir( $cacheDir . OptimizeCommon::$optimizedSingleFilesDir.'/inline', 0755 );
183
- }
184
-
185
- if ( ! is_file( $cacheDir . 'logged-in/index.php' ) ) {
186
// /wp-content/cache/asset-cleanup/cache/{$assetType}/logged-in/index.html
187
FileSystem::file_put_contents( $cacheDir . 'logged-in/index.php', $emptyPhpFileContents );
188
}
105
*
106
* /wp-content/cache/asset-cleanup/css/
107
* /wp-content/cache/asset-cleanup/css/item/
108
* /wp-content/cache/asset-cleanup/css/index.php
109
* /wp-content/cache/asset-cleanup/css/logged-in/
110
* /wp-content/cache/asset-cleanup/css/logged-in/index.php
111
*
112
* /wp-content/cache/asset-cleanup/js/
113
* /wp-content/cache/asset-cleanup/js/item/
114
* /wp-content/cache/asset-cleanup/js/index.php
115
* /wp-content/cache/asset-cleanup/js/logged-in/
116
* /wp-content/cache/asset-cleanup/js/logged-in/index.php
176
@mkdir( $cacheDir . OptimizeCommon::$optimizedSingleFilesDir, 0755 );
177
}
178
179
+ if ( ! is_file( $cacheDir . 'logged-in/index.php' ) ) {
180
// /wp-content/cache/asset-cleanup/cache/{$assetType}/logged-in/index.html
181
FileSystem::file_put_contents( $cacheDir . 'logged-in/index.php', $emptyPhpFileContents );
182
}
classes/PluginReview.php CHANGED
@@ -31,7 +31,6 @@ class PluginReview
31
32
// Code related to the AJAX calls and closing the notice
33
add_action('admin_footer', array($this, 'noticeScripts'));
34
-
35
}
36
37
/**
@@ -211,39 +210,34 @@ class PluginReview
211
}
212
}
213
214
- // No first usage recorded? Do not continue
215
$firstUsageTimestamp = get_option(WPACU_PLUGIN_ID.'_first_usage');
216
217
if (! $firstUsageTimestamp) {
218
return false;
219
}
220
-
221
- // At least 3 days have to pass
222
- if (! ((time() - $firstUsageTimestamp) >= (3 * DAY_IN_SECONDS))) {
223
- return false;
224
- }
225
-
226
- $unloadedTotalAssets = Misc::getTotalUnloadedAssets();
227
228
- // At least 10 assets have to be unloaded
229
- if ( $unloadedTotalAssets < 10 ) {
230
- return false;
231
- }
232
233
- $daysPassedAfterFirstUsage = 7; // default
234
235
// Unloaded at least thirty assets? Show the notice sooner
236
if ($unloadedTotalAssets >= 30) {
237
$daysPassedAfterFirstUsage = 4;
238
}
239
240
- // More than $daysPassedAfterFirstUsage have to pass from the first recorded usage
241
- if ( ! ((time() - $firstUsageTimestamp) >= ($daysPassedAfterFirstUsage * DAY_IN_SECONDS)) ) {
242
return false;
243
}
244
245
- // All the conditions above were a match? Show the notice
246
- return true;
247
}
248
249
/**
31
32
// Code related to the AJAX calls and closing the notice
33
add_action('admin_footer', array($this, 'noticeScripts'));
34
}
35
36
/**
210
}
211
}
212
213
+ // Make sure that at least {$daysPassedAfterFirstUsage} days has passed after the first usage of the plugin was recorded
214
$firstUsageTimestamp = get_option(WPACU_PLUGIN_ID.'_first_usage');
215
216
if (! $firstUsageTimestamp) {
217
return false;
218
}
219
220
+ $unloadedTotalAssets = Misc::getTotalUnloadedAssets();
221
222
+ // Show the notice after one week
223
+ $daysPassedAfterFirstUsage = 7;
224
225
// Unloaded at least thirty assets? Show the notice sooner
226
if ($unloadedTotalAssets >= 30) {
227
$daysPassedAfterFirstUsage = 4;
228
}
229
230
+ if ( ! ($firstUsageTimestamp && (time() - $firstUsageTimestamp) >= ($daysPassedAfterFirstUsage * DAY_IN_SECONDS)) ) {
231
return false;
232
}
233
234
+ $settings = new Settings();
235
+ $allSettings = $settings->getAll();
236
+
237
+ return ( $unloadedTotalAssets >= 10
238
+ && ( $allSettings['wiki_read'] == 1
239
+ || $allSettings['minify_loaded_css'] == 1 || $allSettings['combine_loaded_css'] == 1
240
+ || $allSettings['minify_loaded_js'] == 1 || $allSettings['combine_loaded_js'] == 1 ) );
241
}
242
243
/**
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: minify css, minify javascript, defer css javascript, page speed, dequeue,
4
Donate link: https://www.gabelivan.com/items/wp-asset-cleanup-pro/?utm_source=wp_org_lite&utm_medium=donate
5
Requires at least: 4.5
6
Tested up to: 5.3.2
7
- Stable tag: 1.3.5.9
8
License: GPLv3
9
License URI: http://www.gnu.org/licenses/gpl.html
10
@@ -179,6 +179,13 @@ With the recently released "Test Mode" feature, you can safely unload assets on
179
4. Homepage CSS & JS Management (List sorted by location)
180
181
== Changelog ==
182
= 1.3.5.9 =
183
* Removed unused files from "vendor" (Composer's directory) and updated the Minify CSS/JS library to the latest version, fixing errors for PHP 7.4+
184
* Fix: In some cases, a 500 Internal Error was generated while fetching the assets list for management via the Dashboard view
4
Donate link: https://www.gabelivan.com/items/wp-asset-cleanup-pro/?utm_source=wp_org_lite&utm_medium=donate
5
Requires at least: 4.5
6
Tested up to: 5.3.2
7
+ Stable tag: 1.3.6.0
8
License: GPLv3
9
License URI: http://www.gnu.org/licenses/gpl.html
10
179
4. Homepage CSS & JS Management (List sorted by location)
180
181
== Changelog ==
182
+ = 1.3.6.0 =
183
+ * Improved the speed of the generated & printed combined CSS/JS assets by ~30ms (depending on the hosting package and the PHP version used) when the HTML source is altered by avoiding extra useless verifications of the HTML output
184
+ * When managing the assets, make sure to show "before" and "after" content (so the user is aware how is that inline tag generated) associated with a handle too (not just the "data" one added via wp_localize_script())
185
+ * When managing the assets, make sure the checkboxes from the load exception area are always disabled if there's no unload rule set, thus avoiding any user error to mistakenly add useless load exceptions to an already loading asset, also avoiding any confusing and get a cleaner list in the "Overview" area
186
+ * "Overview" page update: If there's any "Load it for the logged-in user" exception for a handle, show it
187
+ * Fix: Avoid creating redundant CSS files when minify inlined tags is enabled, leading to a large number of files in the caching
188
+
189
= 1.3.5.9 =
190
* Removed unused files from "vendor" (Composer's directory) and updated the Minify CSS/JS library to the latest version, fixing errors for PHP 7.4+
191
* Fix: In some cases, a 500 Internal Error was generated while fetching the assets list for management via the Dashboard view
templates/meta-box-loaded-assets/_asset-script-rows.php CHANGED
@@ -42,10 +42,14 @@ foreach ($data['all']['scripts'] as $obj) {
42
$data['row']['class'] .= ' wpacu_not_load';
43
}
44
45
- $data['row']['extra_data_js'] = (is_object($data['row']['obj']->extra) && isset($data['row']['obj']->extra->data)) ? $data['row']['obj']->extra->data : false;
46
47
- if (! $data['row']['extra_data_js']) {
48
- $data['row']['extra_data_js'] = (is_array($data['row']['obj']->extra) && isset($data['row']['obj']->extra['data'])) ? $data['row']['obj']->extra['data'] : false;
49
}
50
51
$data['row']['class'] .= ' script_'.$data['row']['obj']->handle;
42
$data['row']['class'] .= ' wpacu_not_load';
43
}
44
45
+ foreach (array('data', 'before', 'after') as $extraKey) {
46
+ // "data": CDATA added via wp_localize_script()
47
+ // "before" / "after" the tag inline content added via wp_add_inline_script()
48
+ $data['row']['extra_'.$extraKey.'_js'] = ( is_object( $data['row']['obj']->extra ) && isset( $data['row']['obj']->extra->{$extraKey} ) ) ? $data['row']['obj']->extra->{$extraKey} : false;
49
50
+ if ( ! $data['row']['extra_'.$extraKey.'_js'] ) {
51
+ $data['row']['extra_'.$extraKey.'_js'] = ( is_array( $data['row']['obj']->extra ) && isset( $data['row']['obj']->extra[$extraKey] ) ) ? $data['row']['obj']->extra[$extraKey] : false;
52
+ }
53
}
54
55
$data['row']['class'] .= ' script_'.$data['row']['obj']->handle;
templates/meta-box-loaded-assets/_asset-script-single-row/_extra_inline.php CHANGED
@@ -7,18 +7,50 @@ if (! isset($data, $inlineCodeStatus)) {
7
exit; // no direct access
8
}
9
10
- if ($data['row']['extra_data_js']) { ?>
11
<div class="wpacu-assets-inline-code-wrap">
12
<?php _e('Inline JavaScript code associated with the handle:', 'wp-asset-clean-up'); ?>
13
<a class="wpacu-assets-inline-code-collapsible"
14
<?php if ($inlineCodeStatus !== 'contracted') { echo 'wpacu-assets-inline-code-collapsible-active'; } ?>
15
href="#"><?php _e('Show', 'wp-asset-clean-up'); ?> / <?php _e('Hide', 'wp-asset-clean-up'); ?></a>
16
<div class="wpacu-assets-inline-code-collapsible-content <?php if ($inlineCodeStatus !== 'contracted') { echo 'wpacu-open'; } ?>">
17
- <div>
18
- <p style="margin-top: -7px !important; line-height: normal !important;">
19
- <em><?php echo strip_tags($data['row']['extra_data_js']); ?></em>
20
- </p>
21
- </div>
22
</div>
23
</div>
24
<?php
7
exit; // no direct access
8
}
9
10
+ if ($data['row']['extra_data_js'] || $data['row']['extra_before_js'] || $data['row']['extra_after_js']) {
11
+ ?>
12
<div class="wpacu-assets-inline-code-wrap">
13
<?php _e('Inline JavaScript code associated with the handle:', 'wp-asset-clean-up'); ?>
14
<a class="wpacu-assets-inline-code-collapsible"
15
<?php if ($inlineCodeStatus !== 'contracted') { echo 'wpacu-assets-inline-code-collapsible-active'; } ?>
16
href="#"><?php _e('Show', 'wp-asset-clean-up'); ?> / <?php _e('Hide', 'wp-asset-clean-up'); ?></a>
17
<div class="wpacu-assets-inline-code-collapsible-content <?php if ($inlineCodeStatus !== 'contracted') { echo 'wpacu-open'; } ?>">
18
+ <?php
19
+ $extraKeys = array(
20
+ 'data' => 'CDATA added via wp_localize_script()',
21
+ 'before' => 'Before the tag:',
22
+ 'after' => 'After the tag:'
23
+ );
24
+
25
+ foreach ($extraKeys as $extraKeyValue => $extraKeyText) {
26
+ $inlineScriptContent = $data['row']['extra_'.$extraKeyValue.'_js'];
27
+
28
+ if (is_array($inlineScriptContent) && in_array($extraKeyValue, array('before', 'after'))) {
29
+ $inlineScriptContent = (string)ltrim(implode("\n", $inlineScriptContent));
30
+ }
31
+
32
+ $inlineScriptContent = trim($inlineScriptContent);
33
+
34
+ if ($inlineScriptContent) {
35
+ ?>
36
+ <div style="margin-bottom: 8px;">
37
+ <div style="margin-bottom: 10px;"><strong><?php echo $extraKeyText; ?></strong></div>
38
+ <div style="margin-top: -7px !important; line-height: normal !important;">
39
+ <?php
40
+ $htmlInline = trim( \WpAssetCleanUp\OptimiseAssets\OptimizeJs::generateInlineAssocHtmlForHandle(
41
+ $data['row']['obj']->handle,
42
+ $extraKeyValue,
43
+ $inlineScriptContent
44
+ ) );
45
+
46
+ echo '<small><code>' . nl2br( htmlspecialchars( $htmlInline ) ) . '</code></small>';
47
+ ?>
48
+ </div>
49
+ </div>
50
+ <?php
51
+ }
52
+ }
53
+ ?>
54
</div>
55
</div>
56
<?php
templates/meta-box-loaded-assets/_asset-script-single-row/_handle.php CHANGED
@@ -25,6 +25,8 @@ if ( ! isset($data, $isCoreFile, $hideCoreFiles, $jqueryIconHtmlHandle, $childHa
25
}
26
?>
27
</div>
28
<?php
29
if (! empty($childHandles)) {
30
$ignoreChild = (isset($data['ignore_child']['scripts'][$data['row']['obj']->handle]) && $data['ignore_child']['scripts'][$data['row']['obj']->handle]);
@@ -38,7 +40,6 @@ if (! empty($childHandles)) {
38
</span>
39
</em>
40
<label for="script_<?php echo $data['row']['obj']->handle; ?>_ignore_children">
41
- <input type="hidden" name="wpacu_ignore_child[scripts][<?php echo $data['row']['obj']->handle; ?>]" value="" />
42
&#10230; <input id="script_<?php echo $data['row']['obj']->handle; ?>_ignore_children"
43
type="checkbox"
44
<?php if ($ignoreChild) { ?>checked="checked"<?php } ?>
25
}
26
?>
27
</div>
28
+ <!-- Clear on form submit it if the dependency is not there anymore -->
29
+ <input type="hidden" name="wpacu_ignore_child[scripts][<?php echo $data['row']['obj']->handle; ?>]" value="" />
30
<?php
31
if (! empty($childHandles)) {
32
$ignoreChild = (isset($data['ignore_child']['scripts'][$data['row']['obj']->handle]) && $data['ignore_child']['scripts'][$data['row']['obj']->handle]);
40
</span>
41
</em>
42
<label for="script_<?php echo $data['row']['obj']->handle; ?>_ignore_children">
43
&#10230; <input id="script_<?php echo $data['row']['obj']->handle; ?>_ignore_children"
44
type="checkbox"
45
<?php if ($ignoreChild) { ?>checked="checked"<?php } ?>
templates/meta-box-loaded-assets/_asset-style-single-row/_extra_inline.php CHANGED
@@ -16,8 +16,13 @@ if (! empty($data['row']['extra_data_css_list'])) { ?>
16
<div class="wpacu-assets-inline-code-collapsible-content <?php if ($inlineCodeStatus !== 'contracted') { echo 'wpacu-open'; } ?>">
17
<div>
18
<p style="margin-bottom: 15px; line-height: normal !important;">
19
- <?php foreach ($data['row']['extra_data_css_list'] as $extraDataCSS) {
20
- echo '<em>'.htmlspecialchars($extraDataCSS).'</em>'.'<br />';
21
}
22
?>
23
</p>
16
<div class="wpacu-assets-inline-code-collapsible-content <?php if ($inlineCodeStatus !== 'contracted') { echo 'wpacu-open'; } ?>">
17
<div>
18
<p style="margin-bottom: 15px; line-height: normal !important;">
19
+ <?php
20
+ foreach ($data['row']['extra_data_css_list'] as $extraDataCSS) {
21
+ $htmlInline = trim(\WpAssetCleanUp\OptimiseAssets\OptimizeCss::generateInlineAssocHtmlForHandle(
22
+ $data['row']['obj']->handle,
23
+ $extraDataCSS
24
+ ));
25
+ echo '<small><code>'.nl2br(htmlspecialchars($htmlInline)).'</code></small>';
26
}
27
?>
28
</p>
templates/meta-box-loaded-assets/_asset-style-single-row/_handle.php CHANGED
@@ -25,6 +25,8 @@ if ( ! isset($data, $isCoreFile, $hideCoreFiles, $childHandles) ) {
25
}
26
?>
27
</div>