Version Description
- Caching: Expired CSS/JS files are cleared differently (in time after visiting various pages) to save resources and errors related to the PHP memory (e.g. shared hosting packages often have limitations in terms of the server's CPU & memory usage)
- Allow CSS/JS management for privately published pages
- Strip empty STYLE/SCRIPT tags if, after optimization, their content is empty (e.g. the CSS was minified as it had only comments in it)
- Show if there are any hardcoded (non-enqueued) LINK/STYLE/SCRIPT tags in the list of CSS/JS list (management of these tags is available in the Pro version)
- Make sure the combined CSS/JS file is valid before its tag is generated in the HTML output (in rare cases, the cached CSS/JS files get deleted either by mistake when developers are cleaning up the caching directory OR they weren't properly created in the first place)
- Compatibility fix to avoid PHP warning error when "Smart Slider 3" & "WP Rocket" are used and the CSS/JS assets are fetched
Download this release
Release Info
Developer | gabelivan |
Plugin | Asset CleanUp: Page Speed Booster |
Version | 1.3.5.8 |
Comparing to | |
See all releases |
Code changes from version 1.3.5.7 to 1.3.5.8
- assets/script.min.js +1 -1
- assets/style.min.css +1 -1
- assets/sweetalert/LICENSE.md +22 -0
- assets/sweetalert/README.md +220 -0
- assets/sweetalert/dist/sweetalert.min.js +1 -0
- assets/sweetalert/package.json +138 -0
- assets/sweetalert/typings/core.d.ts +13 -0
- assets/sweetalert/typings/modules/actions.d.ts +5 -0
- assets/sweetalert/typings/modules/class-list/index.d.ts +5 -0
- assets/sweetalert/typings/modules/event-listeners.d.ts +3 -0
- assets/sweetalert/typings/modules/init/buttons.d.ts +3 -0
- assets/sweetalert/typings/modules/init/content.d.ts +3 -0
- assets/sweetalert/typings/modules/init/icon.d.ts +2 -0
- assets/sweetalert/typings/modules/init/index.d.ts +3 -0
- assets/sweetalert/typings/modules/init/modal.d.ts +5 -0
- assets/sweetalert/typings/modules/init/overlay.d.ts +2 -0
- assets/sweetalert/typings/modules/init/text.d.ts +2 -0
- assets/sweetalert/typings/modules/markup/buttons.d.ts +1 -0
- assets/sweetalert/typings/modules/markup/content.d.ts +1 -0
- assets/sweetalert/typings/modules/markup/icons.d.ts +3 -0
- assets/sweetalert/typings/modules/markup/index.d.ts +9 -0
- assets/sweetalert/typings/modules/markup/modal.d.ts +2 -0
- assets/sweetalert/typings/modules/markup/overlay.d.ts +2 -0
- assets/sweetalert/typings/modules/options/buttons.d.ts +14 -0
- assets/sweetalert/typings/modules/options/content.d.ts +5 -0
- assets/sweetalert/typings/modules/options/deprecations.d.ts +11 -0
- assets/sweetalert/typings/modules/options/index.d.ts +16 -0
- assets/sweetalert/typings/modules/state.d.ts +27 -0
- assets/sweetalert/typings/modules/utils.d.ts +7 -0
- assets/sweetalert/typings/sweetalert.d.ts +9 -0
- classes/HardcodedAssets.php +530 -0
- classes/ImportExport.php +1 -1
- classes/Main.php +104 -57
- classes/MetaBoxes.php +1 -1
- classes/Misc.php +3 -3
- classes/OptimiseAssets/CombineCss.php +2 -2
- classes/OptimiseAssets/CombineJs.php +3 -3
- classes/OptimiseAssets/MinifyCss.php +34 -9
- classes/OptimiseAssets/MinifyJs.php +6 -3
- classes/OptimiseAssets/OptimizeCommon.php +186 -175
- classes/OptimiseAssets/OptimizeCss.php +87 -18
- classes/OptimiseAssets/OptimizeJs.php +17 -14
- classes/OwnAssets.php +78 -4
- classes/Plugin.php +6 -0
- classes/PluginTracking.php +1 -1
- composer.json +1 -1
- composer.lock +15 -15
- readme.txt +9 -1
- templates/_admin-page-getting-started-areas/_lite-vs-pro.php +5 -0
- templates/_top-area.php +1 -1
- templates/meta-box-loaded-assets/_assets-hardcoded-list.php +227 -0
- templates/meta-box-loaded-assets/_hardcoded/_asset-script-single-row-hardcoded.php +100 -0
- templates/meta-box-loaded-assets/_hardcoded/_asset-script-single-row-hardcoded/_notes.php +12 -0
- templates/meta-box-loaded-assets/_hardcoded/_asset-script-single-row-hardcoded/_source.php +34 -0
- templates/meta-box-loaded-assets/_hardcoded/_asset-script-single-row-hardcoded/_unload-per-page.php +30 -0
- templates/meta-box-loaded-assets/_hardcoded/_asset-script-single-row-hardcoded/_unload-post-type.php +36 -0
- templates/meta-box-loaded-assets/_hardcoded/_asset-script-single-row-hardcoded/_unload-site-wide.php +19 -0
- templates/meta-box-loaded-assets/_hardcoded/_asset-script-single-row-hardcoded/_unload-via-regex.php +22 -0
- templates/meta-box-loaded-assets/_hardcoded/_asset-style-single-row-hardcoded.php +106 -0
- templates/meta-box-loaded-assets/_hardcoded/_asset-style-single-row-hardcoded/_notes.php +11 -0
- templates/meta-box-loaded-assets/_hardcoded/_asset-style-single-row-hardcoded/_source.php +33 -0
- templates/meta-box-loaded-assets/_hardcoded/_asset-style-single-row-hardcoded/_unload-per-page.php +29 -0
- templates/meta-box-loaded-assets/_hardcoded/_asset-style-single-row-hardcoded/_unload-post-type.php +33 -0
- templates/meta-box-loaded-assets/_hardcoded/_asset-style-single-row-hardcoded/_unload-site-wide.php +18 -0
- templates/meta-box-loaded-assets/_hardcoded/_asset-style-single-row-hardcoded/_unload-via-regex.php +22 -0
- templates/meta-box-loaded-assets/_inline_js.php +57 -0
- templates/meta-box-loaded-assets/view-by-loaded-unloaded.php +7 -0
- templates/meta-box-loaded-assets/view-by-location.php +7 -0
- templates/meta-box-loaded-assets/view-by-parents.php +8 -0
- templates/meta-box-loaded-assets/view-by-position.php +104 -97
- templates/meta-box-loaded-assets/view-by-preload.php +7 -0
- templates/meta-box-loaded-assets/view-default.php +9 -2
- templates/meta-box-loaded.php +2 -1
- vendor/composer/installed.json +64 -64
- vendor/matthiasmullie/minify/composer.json +5 -0
- vendor/matthiasmullie/minify/composer.lock +0 -70
- vendor/matthiasmullie/minify/src/CSS.php +3 -2
- vendor/matthiasmullie/minify/src/Minify.php +38 -0
- vendor/matthiasmullie/path-converter/src/Converter.php +8 -0
- wpacu.php +15 -3
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={};"direct"===wpacu_object.dom_get_type?(g[wpacu_object.plugin_name+"_load"]=1,g[wpacu_object.plugin_name+"_time_r"]=(new Date).getTime(),a.ajax({method:"GET",url:wpacu_object.page_url,data:g,cache:!1,complete:function(b,c){"error"===b.statusText&&(f=wpacu_object.ajax_direct_fetch_error,f=f.replace(/{wpacu_output}/,b.responseText),f=f.replace(/{wpacu_status_code_error}/,b.status),a("#wpacu_meta_box_content").html(f))}}).done(function(g){if(g.lastIndexOf(wpacu_object.start_del_e)<0||g.lastIndexOf(wpacu_object.end_del_e)<0||g.lastIndexOf(wpacu_object.start_del_h)<0||g.lastIndexOf(wpacu_object.end_del_h)<0)return f=wpacu_object.ajax_direct_fetch_error_with_success_response,f=f.replace(/{wpacu_output}/,xhr.responseText.replace(/(<([^>]+)>)/gi,"")),void a("#wpacu_meta_box_content").html(f);c=g.substring(g.lastIndexOf(wpacu_object.start_del_e)+wpacu_object.start_del_e.length,g.lastIndexOf(wpacu_object.end_del_e)),d=g.substring(g.lastIndexOf(wpacu_object.start_del_h)+wpacu_object.start_del_h.length,g.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,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,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,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}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,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}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)}});
|
assets/style.min.css
CHANGED
@@ -1 +1 @@
|
|
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-license-area .notice .dashicons,.wpacu-settings-area .notice .dashicons,.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_meta_box_content,.wpacu_widefat{width:99%}.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 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:12px}.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;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,.wpacu_list_table div,.wpacu_list_table li,.wpacu_list_table p{font-weight:400}.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 .wpacu-tooltip,.wordpress-core-file .wpacu-tooltip{font-size:14px;line-height:18px;visibility:hidden;text-align:center;z-index:1}.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{position:absolute;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;-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{position:absolute;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;-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-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_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-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}
|
assets/sweetalert/LICENSE.md
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
The MIT License (MIT)
|
2 |
+
|
3 |
+
Copyright (c) 2014-present Tristan Edwards
|
4 |
+
|
5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6 |
+
of this software and associated documentation files (the "Software"), to deal
|
7 |
+
in the Software without restriction, including without limitation the rights
|
8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9 |
+
copies of the Software, and to permit persons to whom the Software is
|
10 |
+
furnished to do so, subject to the following conditions:
|
11 |
+
|
12 |
+
The above copyright notice and this permission notice shall be included in all
|
13 |
+
copies or substantial portions of the Software.
|
14 |
+
|
15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21 |
+
SOFTWARE.
|
22 |
+
|
assets/sweetalert/README.md
ADDED
@@ -0,0 +1,220 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<p align="center">
|
2 |
+
<a href="http://sweetalert.js.org">
|
3 |
+
<img alt="SweetAlert" src="https://raw.githubusercontent.com/t4t5/sweetalert/e3c2085473a0eb5a6b022e43eb22e746380bb955/assets/logotype.png" width="300">
|
4 |
+
</a>
|
5 |
+
</p>
|
6 |
+
|
7 |
+
<p align="center">
|
8 |
+
A beautiful replacement for JavaScript's "alert"
|
9 |
+
</p>
|
10 |
+
|
11 |
+
<p align="center">
|
12 |
+
<a href="https://badge.fury.io/js/sweetalert"><img src="https://badge.fury.io/js/sweetalert.svg" alt="npm version" height="18"></a>
|
13 |
+
<a href="https://travis-ci.org/t4t5/sweetalert"><img src="https://travis-ci.org/t4t5/sweetalert.svg" alt="Build status" /></a>
|
14 |
+
<a href="https://www.npmjs.com/package/sweetalert">
|
15 |
+
<img src="https://img.shields.io/npm/dm/sweetalert.svg" />
|
16 |
+
</a>
|
17 |
+
<a href="https://github.com/t4t5/sweetalert/blob/master/LICENSE">
|
18 |
+
<img src="https://img.shields.io/github/license/t4t5/sweetalert.svg" />
|
19 |
+
</a>
|
20 |
+
<a href="#backers" alt="sponsors on Open Collective"><img src="https://opencollective.com/SweetAlert/backers/badge.svg" /></a> <a href="#sponsors" alt="Sponsors on Open Collective"><img src="https://opencollective.com/SweetAlert/sponsors/badge.svg" /></a>
|
21 |
+
</p>
|
22 |
+
|
23 |
+
<p align="center">
|
24 |
+
<img alt="A success modal" src="https://raw.githubusercontent.com/t4t5/sweetalert/e3c2085473a0eb5a6b022e43eb22e746380bb955/assets/swal.gif">
|
25 |
+
</p>
|
26 |
+
|
27 |
+
|
28 |
+
## Installation
|
29 |
+
|
30 |
+
```bash
|
31 |
+
$ npm install --save sweetalert
|
32 |
+
```
|
33 |
+
|
34 |
+
## Usage
|
35 |
+
|
36 |
+
```javascript
|
37 |
+
import swal from 'sweetalert';
|
38 |
+
|
39 |
+
swal("Hello world!");
|
40 |
+
```
|
41 |
+
|
42 |
+
## Upgrading from 1.X
|
43 |
+
|
44 |
+
Many improvements and breaking changes have been introduced in the 2.0 release. Make sure you read the [upgrade guide](https://sweetalert.js.org/guides/#upgrading-from-1x) to avoid nasty suprises!
|
45 |
+
|
46 |
+
## Guides
|
47 |
+
|
48 |
+
- [Installation](https://sweetalert.js.org/guides/#installation)
|
49 |
+
- [Getting started](https://sweetalert.js.org/guides/#getting-started)
|
50 |
+
- [Advanced examples](https://sweetalert.js.org/guides/#advanced-examples)
|
51 |
+
- [Using with libraries](https://sweetalert.js.org/guides/#using-with-libraries)
|
52 |
+
- [Upgrading from 1.X](https://sweetalert.js.org/guides/#upgrading-from-1x)
|
53 |
+
|
54 |
+
## Documentation
|
55 |
+
|
56 |
+
- [Configuration](https://sweetalert.js.org/docs/#configuration)
|
57 |
+
- [Methods](https://sweetalert.js.org/docs/#methods)
|
58 |
+
- [Theming](https://sweetalert.js.org/docs/#theming)
|
59 |
+
|
60 |
+
## Examples
|
61 |
+
|
62 |
+
### An error message:
|
63 |
+
```javascript
|
64 |
+
swal("Oops!", "Something went wrong!", "error");
|
65 |
+
```
|
66 |
+
|
67 |
+
### A warning message, with a function attached to the confirm message:
|
68 |
+
- Using promises:
|
69 |
+
```javascript
|
70 |
+
swal({
|
71 |
+
title: "Are you sure?",
|
72 |
+
text: "Are you sure that you want to leave this page?",
|
73 |
+
icon: "warning",
|
74 |
+
dangerMode: true,
|
75 |
+
})
|
76 |
+
.then(willDelete => {
|
77 |
+
if (willDelete) {
|
78 |
+
swal("Deleted!", "Your imaginary file has been deleted!", "success");
|
79 |
+
}
|
80 |
+
});
|
81 |
+
```
|
82 |
+
- Using async/await:
|
83 |
+
```javascript
|
84 |
+
const willDelete = await swal({
|
85 |
+
title: "Are you sure?",
|
86 |
+
text: "Are you sure that you want to delete this file?",
|
87 |
+
icon: "warning",
|
88 |
+
dangerMode: true,
|
89 |
+
});
|
90 |
+
|
91 |
+
if (willDelete) {
|
92 |
+
swal("Deleted!", "Your imaginary file has been deleted!", "success");
|
93 |
+
}
|
94 |
+
```
|
95 |
+
|
96 |
+
### A prompt modal, where the user's input is logged:
|
97 |
+
- Using promises:
|
98 |
+
```javascript
|
99 |
+
swal("Type something:", {
|
100 |
+
content: "input",
|
101 |
+
})
|
102 |
+
.then((value) => {
|
103 |
+
swal(`You typed: ${value}`);
|
104 |
+
});
|
105 |
+
```
|
106 |
+
- Using async/await:
|
107 |
+
```javascript
|
108 |
+
const value = await swal("Type something:", {
|
109 |
+
content: "input",
|
110 |
+
});
|
111 |
+
|
112 |
+
swal(`You typed: ${value}`);
|
113 |
+
```
|
114 |
+
|
115 |
+
### In combination with Fetch:
|
116 |
+
- Using promises:
|
117 |
+
```javascript
|
118 |
+
swal({
|
119 |
+
text: "Wanna log some information about Bulbasaur?",
|
120 |
+
button: {
|
121 |
+
text: "Search!",
|
122 |
+
closeModal: false,
|
123 |
+
},
|
124 |
+
})
|
125 |
+
.then(willSearch => {
|
126 |
+
if (willSearch) {
|
127 |
+
return fetch("http://pokeapi.co/api/v2/pokemon/1");
|
128 |
+
}
|
129 |
+
})
|
130 |
+
.then(result => result.json())
|
131 |
+
.then(json => console.log(json))
|
132 |
+
.catch(err => {
|
133 |
+
swal("Oops!", "Seems like we couldn't fetch the info", "error");
|
134 |
+
});
|
135 |
+
```
|
136 |
+
- Using async/await:
|
137 |
+
```javascript
|
138 |
+
const willSearch = await swal({
|
139 |
+
text: "Wanna log some information about Bulbasaur?",
|
140 |
+
button: {
|
141 |
+
text: "Search!",
|
142 |
+
closeModal: false,
|
143 |
+
},
|
144 |
+
});
|
145 |
+
|
146 |
+
if (willSearch) {
|
147 |
+
try {
|
148 |
+
const result = await fetch("http://pokeapi.co/api/v2/pokemon/1");
|
149 |
+
const json = await result.json();
|
150 |
+
console.log(json);
|
151 |
+
} catch (err) {
|
152 |
+
swal("Oops!", "Seems like we couldn't fetch the info", "error");
|
153 |
+
}
|
154 |
+
}
|
155 |
+
```
|
156 |
+
|
157 |
+
## Using with React
|
158 |
+
|
159 |
+
SweetAlert has tools for [integrating with your favourite rendering library](https://sweetalert.js.org/guides/#using-with-libraries).
|
160 |
+
|
161 |
+
If you're using React, you can install [SweetAlert with React](https://www.npmjs.com/package/@sweetalert/with-react) in addition to the main library, and easily add React components to your alerts like this:
|
162 |
+
|
163 |
+
```javascript
|
164 |
+
import React from 'react'
|
165 |
+
import swal from '@sweetalert/with-react'
|
166 |
+
|
167 |
+
swal(
|
168 |
+
<div>
|
169 |
+
<h1>Hello world!</h1>
|
170 |
+
<p>
|
171 |
+
This is now rendered with JSX!
|
172 |
+
</p>
|
173 |
+
</div>
|
174 |
+
)
|
175 |
+
```
|
176 |
+
|
177 |
+
[Read more about integrating with React](http://localhost:3000/guides#using-react)
|
178 |
+
|
179 |
+
## Contributing
|
180 |
+
|
181 |
+
### If you're changing the core library:
|
182 |
+
1. Make changes in the `src` folder.
|
183 |
+
2. Preview changes by running `npm run docs`
|
184 |
+
3. Submit pull request
|
185 |
+
|
186 |
+
### If you're changing the documentation:
|
187 |
+
1. Make changes in the `docs-src` folder.
|
188 |
+
2. Preview changes by running `npm run docs`
|
189 |
+
3. Run `npm run builddocs` to compile the changes to the `docs` folder
|
190 |
+
4. Submit pull request
|
191 |
+
|
192 |
+
## Contributors
|
193 |
+
|
194 |
+
This project exists thanks to all the people who contribute. [[Contribute](https://github.com/t4t5/sweetalert#contributing)].
|
195 |
+
<a href="https://github.com/t4t5/sweetalert/graphs/contributors"><img src="https://opencollective.com/SweetAlert/contributors.svg?width=890&button=false" /></a>
|
196 |
+
|
197 |
+
|
198 |
+
## Backers
|
199 |
+
|
200 |
+
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/SweetAlert#backer)]
|
201 |
+
|
202 |
+
<a href="https://opencollective.com/SweetAlert#backers" target="_blank"><img src="https://opencollective.com/SweetAlert/backers.svg?width=890"></a>
|
203 |
+
|
204 |
+
|
205 |
+
## Sponsors
|
206 |
+
|
207 |
+
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/SweetAlert#sponsor)]
|
208 |
+
|
209 |
+
<a href="https://opencollective.com/SweetAlert/sponsor/0/website" target="_blank"><img src="https://opencollective.com/SweetAlert/sponsor/0/avatar.svg"></a>
|
210 |
+
<a href="https://opencollective.com/SweetAlert/sponsor/1/website" target="_blank"><img src="https://opencollective.com/SweetAlert/sponsor/1/avatar.svg"></a>
|
211 |
+
<a href="https://opencollective.com/SweetAlert/sponsor/2/website" target="_blank"><img src="https://opencollective.com/SweetAlert/sponsor/2/avatar.svg"></a>
|
212 |
+
<a href="https://opencollective.com/SweetAlert/sponsor/3/website" target="_blank"><img src="https://opencollective.com/SweetAlert/sponsor/3/avatar.svg"></a>
|
213 |
+
<a href="https://opencollective.com/SweetAlert/sponsor/4/website" target="_blank"><img src="https://opencollective.com/SweetAlert/sponsor/4/avatar.svg"></a>
|
214 |
+
<a href="https://opencollective.com/SweetAlert/sponsor/5/website" target="_blank"><img src="https://opencollective.com/SweetAlert/sponsor/5/avatar.svg"></a>
|
215 |
+
<a href="https://opencollective.com/SweetAlert/sponsor/6/website" target="_blank"><img src="https://opencollective.com/SweetAlert/sponsor/6/avatar.svg"></a>
|
216 |
+
<a href="https://opencollective.com/SweetAlert/sponsor/7/website" target="_blank"><img src="https://opencollective.com/SweetAlert/sponsor/7/avatar.svg"></a>
|
217 |
+
<a href="https://opencollective.com/SweetAlert/sponsor/8/website" target="_blank"><img src="https://opencollective.com/SweetAlert/sponsor/8/avatar.svg"></a>
|
218 |
+
<a href="https://opencollective.com/SweetAlert/sponsor/9/website" target="_blank"><img src="https://opencollective.com/SweetAlert/sponsor/9/avatar.svg"></a>
|
219 |
+
|
220 |
+
|
assets/sweetalert/dist/sweetalert.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.swal=e():t.swal=e()}(this,function(){return function(t){function e(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=8)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o="swal-button";e.CLASS_NAMES={MODAL:"swal-modal",OVERLAY:"swal-overlay",SHOW_MODAL:"swal-overlay--show-modal",MODAL_TITLE:"swal-title",MODAL_TEXT:"swal-text",ICON:"swal-icon",ICON_CUSTOM:"swal-icon--custom",CONTENT:"swal-content",FOOTER:"swal-footer",BUTTON_CONTAINER:"swal-button-container",BUTTON:o,CONFIRM_BUTTON:o+"--confirm",CANCEL_BUTTON:o+"--cancel",DANGER_BUTTON:o+"--danger",BUTTON_LOADING:o+"--loading",BUTTON_LOADER:o+"__loader"},e.default=e.CLASS_NAMES},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getNode=function(t){var e="."+t;return document.querySelector(e)},e.stringToNode=function(t){var e=document.createElement("div");return e.innerHTML=t.trim(),e.firstChild},e.insertAfter=function(t,e){var n=e.nextSibling;e.parentNode.insertBefore(t,n)},e.removeNode=function(t){t.parentElement.removeChild(t)},e.throwErr=function(t){throw t=t.replace(/ +(?= )/g,""),"SweetAlert: "+(t=t.trim())},e.isPlainObject=function(t){if("[object Object]"!==Object.prototype.toString.call(t))return!1;var e=Object.getPrototypeOf(t);return null===e||e===Object.prototype},e.ordinalSuffixOf=function(t){var e=t%10,n=t%100;return 1===e&&11!==n?t+"st":2===e&&12!==n?t+"nd":3===e&&13!==n?t+"rd":t+"th"}},function(t,e,n){"use strict";function o(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),o(n(25));var r=n(26);e.overlayMarkup=r.default,o(n(27)),o(n(28)),o(n(29));var i=n(0),a=i.default.MODAL_TITLE,s=i.default.MODAL_TEXT,c=i.default.ICON,l=i.default.FOOTER;e.iconMarkup='\n <div class="'+c+'"></div>',e.titleMarkup='\n <div class="'+a+'"></div>\n',e.textMarkup='\n <div class="'+s+'"></div>',e.footerMarkup='\n <div class="'+l+'"></div>\n'},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1);e.CONFIRM_KEY="confirm",e.CANCEL_KEY="cancel";var r={visible:!0,text:null,value:null,className:"",closeModal:!0},i=Object.assign({},r,{visible:!1,text:"Cancel",value:null}),a=Object.assign({},r,{text:"OK",value:!0});e.defaultButtonList={cancel:i,confirm:a};var s=function(t){switch(t){case e.CONFIRM_KEY:return a;case e.CANCEL_KEY:return i;default:var n=t.charAt(0).toUpperCase()+t.slice(1);return Object.assign({},r,{text:n,value:t})}},c=function(t,e){var n=s(t);return!0===e?Object.assign({},n,{visible:!0}):"string"==typeof e?Object.assign({},n,{visible:!0,text:e}):o.isPlainObject(e)?Object.assign({visible:!0},n,e):Object.assign({},n,{visible:!1})},l=function(t){for(var e={},n=0,o=Object.keys(t);n<o.length;n++){var r=o[n],a=t[r],s=c(r,a);e[r]=s}return e.cancel||(e.cancel=i),e},u=function(t){var n={};switch(t.length){case 1:n[e.CANCEL_KEY]=Object.assign({},i,{visible:!1});break;case 2:n[e.CANCEL_KEY]=c(e.CANCEL_KEY,t[0]),n[e.CONFIRM_KEY]=c(e.CONFIRM_KEY,t[1]);break;default:o.throwErr("Invalid number of 'buttons' in array ("+t.length+").\n If you want more than 2 buttons, you need to use an object!")}return n};e.getButtonListOpts=function(t){var n=e.defaultButtonList;return"string"==typeof t?n[e.CONFIRM_KEY]=c(e.CONFIRM_KEY,t):Array.isArray(t)?n=u(t):o.isPlainObject(t)?n=l(t):!0===t?n=u([!0,!0]):!1===t?n=u([!1,!1]):void 0===t&&(n=e.defaultButtonList),n}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(2),i=n(0),a=i.default.MODAL,s=i.default.OVERLAY,c=n(30),l=n(31),u=n(32),f=n(33);e.injectElIntoModal=function(t){var e=o.getNode(a),n=o.stringToNode(t);return e.appendChild(n),n};var d=function(t){t.className=a,t.textContent=""},p=function(t,e){d(t);var n=e.className;n&&t.classList.add(n)};e.initModalContent=function(t){var e=o.getNode(a);p(e,t),c.default(t.icon),l.initTitle(t.title),l.initText(t.text),f.default(t.content),u.default(t.buttons,t.dangerMode)};var m=function(){var t=o.getNode(s),e=o.stringToNode(r.modalMarkup);t.appendChild(e)};e.default=m},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(3),r={isOpen:!1,promise:null,actions:{},timer:null},i=Object.assign({},r);e.resetState=function(){i=Object.assign({},r)},e.setActionValue=function(t){if("string"==typeof t)return a(o.CONFIRM_KEY,t);for(var e in t)a(e,t[e])};var a=function(t,e){i.actions[t]||(i.actions[t]={}),Object.assign(i.actions[t],{value:e})};e.setActionOptionsFor=function(t,e){var n=(void 0===e?{}:e).closeModal,o=void 0===n||n;Object.assign(i.actions[t],{closeModal:o})},e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(3),i=n(0),a=i.default.OVERLAY,s=i.default.SHOW_MODAL,c=i.default.BUTTON,l=i.default.BUTTON_LOADING,u=n(5);e.openModal=function(){o.getNode(a).classList.add(s),u.default.isOpen=!0};var f=function(){o.getNode(a).classList.remove(s),u.default.isOpen=!1};e.onAction=function(t){void 0===t&&(t=r.CANCEL_KEY);var e=u.default.actions[t],n=e.value;if(!1===e.closeModal){var i=c+"--"+t;o.getNode(i).classList.add(l)}else f();u.default.promise.resolve(n)},e.getState=function(){var t=Object.assign({},u.default);return delete t.promise,delete t.timer,t},e.stopLoading=function(){for(var t=document.querySelectorAll("."+c),e=0;e<t.length;e++){t[e].classList.remove(l)}}},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){(function(e){t.exports=e.sweetAlert=n(9)}).call(e,n(7))},function(t,e,n){(function(e){t.exports=e.swal=n(10)}).call(e,n(7))},function(t,e,n){"undefined"!=typeof window&&n(11),n(16);var o=n(23).default;t.exports=o},function(t,e,n){var o=n(12);"string"==typeof o&&(o=[[t.i,o,""]]);var r={insertAt:"top"};r.transform=void 0;n(14)(o,r);o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(13)(void 0),e.push([t.i,'.swal-icon--error{border-color:#f27474;-webkit-animation:animateErrorIcon .5s;animation:animateErrorIcon .5s}.swal-icon--error__x-mark{position:relative;display:block;-webkit-animation:animateXMark .5s;animation:animateXMark .5s}.swal-icon--error__line{position:absolute;height:5px;width:47px;background-color:#f27474;display:block;top:37px;border-radius:2px}.swal-icon--error__line--left{-webkit-transform:rotate(45deg);transform:rotate(45deg);left:17px}.swal-icon--error__line--right{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);right:16px}@-webkit-keyframes animateErrorIcon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@keyframes animateErrorIcon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@-webkit-keyframes animateXMark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}to{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}@keyframes animateXMark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}to{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}.swal-icon--warning{border-color:#f8bb86;-webkit-animation:pulseWarning .75s infinite alternate;animation:pulseWarning .75s infinite alternate}.swal-icon--warning__body{width:5px;height:47px;top:10px;border-radius:2px;margin-left:-2px}.swal-icon--warning__body,.swal-icon--warning__dot{position:absolute;left:50%;background-color:#f8bb86}.swal-icon--warning__dot{width:7px;height:7px;border-radius:50%;margin-left:-4px;bottom:-11px}@-webkit-keyframes pulseWarning{0%{border-color:#f8d486}to{border-color:#f8bb86}}@keyframes pulseWarning{0%{border-color:#f8d486}to{border-color:#f8bb86}}.swal-icon--success{border-color:#a5dc86}.swal-icon--success:after,.swal-icon--success:before{content:"";border-radius:50%;position:absolute;width:60px;height:120px;background:#fff;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swal-icon--success:before{border-radius:120px 0 0 120px;top:-7px;left:-33px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:60px 60px;transform-origin:60px 60px}.swal-icon--success:after{border-radius:0 120px 120px 0;top:-11px;left:30px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:0 60px;transform-origin:0 60px;-webkit-animation:rotatePlaceholder 4.25s ease-in;animation:rotatePlaceholder 4.25s ease-in}.swal-icon--success__ring{width:80px;height:80px;border:4px solid hsla(98,55%,69%,.2);border-radius:50%;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2}.swal-icon--success__hide-corners{width:5px;height:90px;background-color:#fff;padding:1px;position:absolute;left:28px;top:8px;z-index:1;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.swal-icon--success__line{height:5px;background-color:#a5dc86;display:block;border-radius:2px;position:absolute;z-index:2}.swal-icon--success__line--tip{width:25px;left:14px;top:46px;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-animation:animateSuccessTip .75s;animation:animateSuccessTip .75s}.swal-icon--success__line--long{width:47px;right:8px;top:38px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-animation:animateSuccessLong .75s;animation:animateSuccessLong .75s}@-webkit-keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@-webkit-keyframes animateSuccessTip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:45px}}@keyframes animateSuccessTip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:45px}}@-webkit-keyframes animateSuccessLong{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}@keyframes animateSuccessLong{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}.swal-icon--info{border-color:#c9dae1}.swal-icon--info:before{width:5px;height:29px;bottom:17px;border-radius:2px;margin-left:-2px}.swal-icon--info:after,.swal-icon--info:before{content:"";position:absolute;left:50%;background-color:#c9dae1}.swal-icon--info:after{width:7px;height:7px;border-radius:50%;margin-left:-3px;top:19px}.swal-icon{width:80px;height:80px;border-width:4px;border-style:solid;border-radius:50%;padding:0;position:relative;box-sizing:content-box;margin:20px auto}.swal-icon:first-child{margin-top:32px}.swal-icon--custom{width:auto;height:auto;max-width:100%;border:none;border-radius:0}.swal-icon img{max-width:100%;max-height:100%}.swal-title{color:rgba(0,0,0,.65);font-weight:600;text-transform:none;position:relative;display:block;padding:13px 16px;font-size:27px;line-height:normal;text-align:center;margin-bottom:0}.swal-title:first-child{margin-top:26px}.swal-title:not(:first-child){padding-bottom:0}.swal-title:not(:last-child){margin-bottom:13px}.swal-text{font-size:16px;position:relative;float:none;line-height:normal;vertical-align:top;text-align:left;display:inline-block;margin:0;padding:0 10px;font-weight:400;color:rgba(0,0,0,.64);max-width:calc(100% - 20px);overflow-wrap:break-word;box-sizing:border-box}.swal-text:first-child{margin-top:45px}.swal-text:last-child{margin-bottom:45px}.swal-footer{text-align:right;padding-top:13px;margin-top:13px;padding:13px 16px;border-radius:inherit;border-top-left-radius:0;border-top-right-radius:0}.swal-button-container{margin:5px;display:inline-block;position:relative}.swal-button{background-color:#7cd1f9;color:#fff;border:none;box-shadow:none;border-radius:5px;font-weight:600;font-size:14px;padding:10px 24px;margin:0;cursor:pointer}.swal-button:not([disabled]):hover{background-color:#78cbf2}.swal-button:active{background-color:#70bce0}.swal-button:focus{outline:none;box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(43,114,165,.29)}.swal-button[disabled]{opacity:.5;cursor:default}.swal-button::-moz-focus-inner{border:0}.swal-button--cancel{color:#555;background-color:#efefef}.swal-button--cancel:not([disabled]):hover{background-color:#e8e8e8}.swal-button--cancel:active{background-color:#d7d7d7}.swal-button--cancel:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(116,136,150,.29)}.swal-button--danger{background-color:#e64942}.swal-button--danger:not([disabled]):hover{background-color:#df4740}.swal-button--danger:active{background-color:#cf423b}.swal-button--danger:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(165,43,43,.29)}.swal-content{padding:0 20px;margin-top:20px;font-size:medium}.swal-content:last-child{margin-bottom:20px}.swal-content__input,.swal-content__textarea{-webkit-appearance:none;background-color:#fff;border:none;font-size:14px;display:block;box-sizing:border-box;width:100%;border:1px solid rgba(0,0,0,.14);padding:10px 13px;border-radius:2px;transition:border-color .2s}.swal-content__input:focus,.swal-content__textarea:focus{outline:none;border-color:#6db8ff}.swal-content__textarea{resize:vertical}.swal-button--loading{color:transparent}.swal-button--loading~.swal-button__loader{opacity:1}.swal-button__loader{position:absolute;height:auto;width:43px;z-index:2;left:50%;top:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);text-align:center;pointer-events:none;opacity:0}.swal-button__loader div{display:inline-block;float:none;vertical-align:baseline;width:9px;height:9px;padding:0;border:none;margin:2px;opacity:.4;border-radius:7px;background-color:hsla(0,0%,100%,.9);transition:background .2s;-webkit-animation:swal-loading-anim 1s infinite;animation:swal-loading-anim 1s infinite}.swal-button__loader div:nth-child(3n+2){-webkit-animation-delay:.15s;animation-delay:.15s}.swal-button__loader div:nth-child(3n+3){-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes swal-loading-anim{0%{opacity:.4}20%{opacity:.4}50%{opacity:1}to{opacity:.4}}@keyframes swal-loading-anim{0%{opacity:.4}20%{opacity:.4}50%{opacity:1}to{opacity:.4}}.swal-overlay{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center;font-size:0;overflow-y:auto;background-color:rgba(0,0,0,.4);z-index:10000;pointer-events:none;opacity:0;transition:opacity .3s}.swal-overlay:before{content:" ";display:inline-block;vertical-align:middle;height:100%}.swal-overlay--show-modal{opacity:1;pointer-events:auto}.swal-overlay--show-modal .swal-modal{opacity:1;pointer-events:auto;box-sizing:border-box;-webkit-animation:showSweetAlert .3s;animation:showSweetAlert .3s;will-change:transform}.swal-modal{width:478px;opacity:0;pointer-events:none;background-color:#fff;text-align:center;border-radius:5px;position:static;margin:20px auto;display:inline-block;vertical-align:middle;-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 50%;transform-origin:50% 50%;z-index:10001;transition:opacity .2s,-webkit-transform .3s;transition:transform .3s,opacity .2s;transition:transform .3s,opacity .2s,-webkit-transform .3s}@media (max-width:500px){.swal-modal{width:calc(100% - 20px)}}@-webkit-keyframes showSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1)}1%{-webkit-transform:scale(.5);transform:scale(.5)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes showSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1)}1%{-webkit-transform:scale(.5);transform:scale(.5)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}to{-webkit-transform:scale(1);transform:scale(1)}}',""])},function(t,e){function n(t,e){var n=t[1]||"",r=t[3];if(!r)return n;if(e&&"function"==typeof btoa){var i=o(r);return[n].concat(r.sources.map(function(t){return"/*# sourceURL="+r.sourceRoot+t+" */"})).concat([i]).join("\n")}return[n].join("\n")}function o(t){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+" */"}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var o=n(e,t);return e[2]?"@media "+e[2]+"{"+o+"}":o}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var o={},r=0;r<this.length;r++){var i=this[r][0];"number"==typeof i&&(o[i]=!0)}for(r=0;r<t.length;r++){var a=t[r];"number"==typeof a[0]&&o[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),e.push(a))}},e}},function(t,e,n){function o(t,e){for(var n=0;n<t.length;n++){var o=t[n],r=m[o.id];if(r){r.refs++;for(var i=0;i<r.parts.length;i++)r.parts[i](o.parts[i]);for(;i<o.parts.length;i++)r.parts.push(u(o.parts[i],e))}else{for(var a=[],i=0;i<o.parts.length;i++)a.push(u(o.parts[i],e));m[o.id]={id:o.id,refs:1,parts:a}}}}function r(t,e){for(var n=[],o={},r=0;r<t.length;r++){var i=t[r],a=e.base?i[0]+e.base:i[0],s=i[1],c=i[2],l=i[3],u={css:s,media:c,sourceMap:l};o[a]?o[a].parts.push(u):n.push(o[a]={id:a,parts:[u]})}return n}function i(t,e){var n=v(t.insertInto);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var o=w[w.length-1];if("top"===t.insertAt)o?o.nextSibling?n.insertBefore(e,o.nextSibling):n.appendChild(e):n.insertBefore(e,n.firstChild),w.push(e);else{if("bottom"!==t.insertAt)throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");n.appendChild(e)}}function a(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t);var e=w.indexOf(t);e>=0&&w.splice(e,1)}function s(t){var e=document.createElement("style");return t.attrs.type="text/css",l(e,t.attrs),i(t,e),e}function c(t){var e=document.createElement("link");return t.attrs.type="text/css",t.attrs.rel="stylesheet",l(e,t.attrs),i(t,e),e}function l(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function u(t,e){var n,o,r,i;if(e.transform&&t.css){if(!(i=e.transform(t.css)))return function(){};t.css=i}if(e.singleton){var l=h++;n=g||(g=s(e)),o=f.bind(null,n,l,!1),r=f.bind(null,n,l,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=c(e),o=p.bind(null,n,e),r=function(){a(n),n.href&&URL.revokeObjectURL(n.href)}):(n=s(e),o=d.bind(null,n),r=function(){a(n)});return o(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;o(t=e)}else r()}}function f(t,e,n,o){var r=n?"":o.css;if(t.styleSheet)t.styleSheet.cssText=x(e,r);else{var i=document.createTextNode(r),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}function d(t,e){var n=e.css,o=e.media;if(o&&t.setAttribute("media",o),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}function p(t,e,n){var o=n.css,r=n.sourceMap,i=void 0===e.convertToAbsoluteUrls&&r;(e.convertToAbsoluteUrls||i)&&(o=y(o)),r&&(o+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var a=new Blob([o],{type:"text/css"}),s=t.href;t.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}var m={},b=function(t){var e;return function(){return void 0===e&&(e=t.apply(this,arguments)),e}}(function(){return window&&document&&document.all&&!window.atob}),v=function(t){var e={};return function(n){return void 0===e[n]&&(e[n]=t.call(this,n)),e[n]}}(function(t){return document.querySelector(t)}),g=null,h=0,w=[],y=n(15);t.exports=function(t,e){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");e=e||{},e.attrs="object"==typeof e.attrs?e.attrs:{},e.singleton||(e.singleton=b()),e.insertInto||(e.insertInto="head"),e.insertAt||(e.insertAt="bottom");var n=r(t,e);return o(n,e),function(t){for(var i=[],a=0;a<n.length;a++){var s=n[a],c=m[s.id];c.refs--,i.push(c)}if(t){o(r(t,e),e)}for(var a=0;a<i.length;a++){var c=i[a];if(0===c.refs){for(var l=0;l<c.parts.length;l++)c.parts[l]();delete m[c.id]}}}};var x=function(){var t=[];return function(e,n){return t[e]=n,t.filter(Boolean).join("\n")}}()},function(t,e){t.exports=function(t){var e="undefined"!=typeof window&&window.location;if(!e)throw new Error("fixUrls requires window.location");if(!t||"string"!=typeof t)return t;var n=e.protocol+"//"+e.host,o=n+e.pathname.replace(/\/[^\/]*$/,"/");return t.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(t,e){var r=e.trim().replace(/^"(.*)"$/,function(t,e){return e}).replace(/^'(.*)'$/,function(t,e){return e});if(/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/)/i.test(r))return t;var i;return i=0===r.indexOf("//")?r:0===r.indexOf("/")?n+r:o+r.replace(/^\.\//,""),"url("+JSON.stringify(i)+")"})}},function(t,e,n){var o=n(17);"undefined"==typeof window||window.Promise||(window.Promise=o),n(21),String.prototype.includes||(String.prototype.includes=function(t,e){"use strict";return"number"!=typeof e&&(e=0),!(e+t.length>this.length)&&-1!==this.indexOf(t,e)}),Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{value:function(t,e){if(null==this)throw new TypeError('"this" is null or not defined');var n=Object(this),o=n.length>>>0;if(0===o)return!1;for(var r=0|e,i=Math.max(r>=0?r:o-Math.abs(r),0);i<o;){if(function(t,e){return t===e||"number"==typeof t&&"number"==typeof e&&isNaN(t)&&isNaN(e)}(n[i],t))return!0;i++}return!1}}),"undefined"!=typeof window&&function(t){t.forEach(function(t){t.hasOwnProperty("remove")||Object.defineProperty(t,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){this.parentNode.removeChild(this)}})})}([Element.prototype,CharacterData.prototype,DocumentType.prototype])},function(t,e,n){(function(e){!function(n){function o(){}function r(t,e){return function(){t.apply(e,arguments)}}function i(t){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],f(t,this)}function a(t,e){for(;3===t._state;)t=t._value;if(0===t._state)return void t._deferreds.push(e);t._handled=!0,i._immediateFn(function(){var n=1===t._state?e.onFulfilled:e.onRejected;if(null===n)return void(1===t._state?s:c)(e.promise,t._value);var o;try{o=n(t._value)}catch(t){return void c(e.promise,t)}s(e.promise,o)})}function s(t,e){try{if(e===t)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var n=e.then;if(e instanceof i)return t._state=3,t._value=e,void l(t);if("function"==typeof n)return void f(r(n,e),t)}t._state=1,t._value=e,l(t)}catch(e){c(t,e)}}function c(t,e){t._state=2,t._value=e,l(t)}function l(t){2===t._state&&0===t._deferreds.length&&i._immediateFn(function(){t._handled||i._unhandledRejectionFn(t._value)});for(var e=0,n=t._deferreds.length;e<n;e++)a(t,t._deferreds[e]);t._deferreds=null}function u(t,e,n){this.onFulfilled="function"==typeof t?t:null,this.onRejected="function"==typeof e?e:null,this.promise=n}function f(t,e){var n=!1;try{t(function(t){n||(n=!0,s(e,t))},function(t){n||(n=!0,c(e,t))})}catch(t){if(n)return;n=!0,c(e,t)}}var d=setTimeout;i.prototype.catch=function(t){return this.then(null,t)},i.prototype.then=function(t,e){var n=new this.constructor(o);return a(this,new u(t,e,n)),n},i.all=function(t){var e=Array.prototype.slice.call(t);return new i(function(t,n){function o(i,a){try{if(a&&("object"==typeof a||"function"==typeof a)){var s=a.then;if("function"==typeof s)return void s.call(a,function(t){o(i,t)},n)}e[i]=a,0==--r&&t(e)}catch(t){n(t)}}if(0===e.length)return t([]);for(var r=e.length,i=0;i<e.length;i++)o(i,e[i])})},i.resolve=function(t){return t&&"object"==typeof t&&t.constructor===i?t:new i(function(e){e(t)})},i.reject=function(t){return new i(function(e,n){n(t)})},i.race=function(t){return new i(function(e,n){for(var o=0,r=t.length;o<r;o++)t[o].then(e,n)})},i._immediateFn="function"==typeof e&&function(t){e(t)}||function(t){d(t,0)},i._unhandledRejectionFn=function(t){"undefined"!=typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",t)},i._setImmediateFn=function(t){i._immediateFn=t},i._setUnhandledRejectionFn=function(t){i._unhandledRejectionFn=t},void 0!==t&&t.exports?t.exports=i:n.Promise||(n.Promise=i)}(this)}).call(e,n(18).setImmediate)},function(t,e,n){function o(t,e){this._id=t,this._clearFn=e}var r=Function.prototype.apply;e.setTimeout=function(){return new o(r.call(setTimeout,window,arguments),clearTimeout)},e.setInterval=function(){return new o(r.call(setInterval,window,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},o.prototype.unref=o.prototype.ref=function(){},o.prototype.close=function(){this._clearFn.call(window,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n(19),e.setImmediate=setImmediate,e.clearImmediate=clearImmediate},function(t,e,n){(function(t,e){!function(t,n){"use strict";function o(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n<e.length;n++)e[n]=arguments[n+1];var o={callback:t,args:e};return l[c]=o,s(c),c++}function r(t){delete l[t]}function i(t){var e=t.callback,o=t.args;switch(o.length){case 0:e();break;case 1:e(o[0]);break;case 2:e(o[0],o[1]);break;case 3:e(o[0],o[1],o[2]);break;default:e.apply(n,o)}}function a(t){if(u)setTimeout(a,0,t);else{var e=l[t];if(e){u=!0;try{i(e)}finally{r(t),u=!1}}}}if(!t.setImmediate){var s,c=1,l={},u=!1,f=t.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(t);d=d&&d.setTimeout?d:t,"[object process]"==={}.toString.call(t.process)?function(){s=function(t){e.nextTick(function(){a(t)})}}():function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?function(){var e="setImmediate$"+Math.random()+"$",n=function(n){n.source===t&&"string"==typeof n.data&&0===n.data.indexOf(e)&&a(+n.data.slice(e.length))};t.addEventListener?t.addEventListener("message",n,!1):t.attachEvent("onmessage",n),s=function(n){t.postMessage(e+n,"*")}}():t.MessageChannel?function(){var t=new MessageChannel;t.port1.onmessage=function(t){a(t.data)},s=function(e){t.port2.postMessage(e)}}():f&&"onreadystatechange"in f.createElement("script")?function(){var t=f.documentElement;s=function(e){var n=f.createElement("script");n.onreadystatechange=function(){a(e),n.onreadystatechange=null,t.removeChild(n),n=null},t.appendChild(n)}}():function(){s=function(t){setTimeout(a,0,t)}}(),d.setImmediate=o,d.clearImmediate=r}}("undefined"==typeof self?void 0===t?this:t:self)}).call(e,n(7),n(20))},function(t,e){function n(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function r(t){if(u===setTimeout)return setTimeout(t,0);if((u===n||!u)&&setTimeout)return u=setTimeout,setTimeout(t,0);try{return u(t,0)}catch(e){try{return u.call(null,t,0)}catch(e){return u.call(this,t,0)}}}function i(t){if(f===clearTimeout)return clearTimeout(t);if((f===o||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(t);try{return f(t)}catch(e){try{return f.call(null,t)}catch(e){return f.call(this,t)}}}function a(){b&&p&&(b=!1,p.length?m=p.concat(m):v=-1,m.length&&s())}function s(){if(!b){var t=r(a);b=!0;for(var e=m.length;e;){for(p=m,m=[];++v<e;)p&&p[v].run();v=-1,e=m.length}p=null,b=!1,i(t)}}function c(t,e){this.fun=t,this.array=e}function l(){}var u,f,d=t.exports={};!function(){try{u="function"==typeof setTimeout?setTimeout:n}catch(t){u=n}try{f="function"==typeof clearTimeout?clearTimeout:o}catch(t){f=o}}();var p,m=[],b=!1,v=-1;d.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];m.push(new c(t,e)),1!==m.length||b||r(s)},c.prototype.run=function(){this.fun.apply(null,this.array)},d.title="browser",d.browser=!0,d.env={},d.argv=[],d.version="",d.versions={},d.on=l,d.addListener=l,d.once=l,d.off=l,d.removeListener=l,d.removeAllListeners=l,d.emit=l,d.prependListener=l,d.prependOnceListener=l,d.listeners=function(t){return[]},d.binding=function(t){throw new Error("process.binding is not supported")},d.cwd=function(){return"/"},d.chdir=function(t){throw new Error("process.chdir is not supported")},d.umask=function(){return 0}},function(t,e,n){"use strict";n(22).polyfill()},function(t,e,n){"use strict";function o(t,e){if(void 0===t||null===t)throw new TypeError("Cannot convert first argument to object");for(var n=Object(t),o=1;o<arguments.length;o++){var r=arguments[o];if(void 0!==r&&null!==r)for(var i=Object.keys(Object(r)),a=0,s=i.length;a<s;a++){var c=i[a],l=Object.getOwnPropertyDescriptor(r,c);void 0!==l&&l.enumerable&&(n[c]=r[c])}}return n}function r(){Object.assign||Object.defineProperty(Object,"assign",{enumerable:!1,configurable:!0,writable:!0,value:o})}t.exports={assign:o,polyfill:r}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(24),r=n(6),i=n(5),a=n(36),s=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];if("undefined"!=typeof window){var n=a.getOpts.apply(void 0,t);return new Promise(function(t,e){i.default.promise={resolve:t,reject:e},o.default(n),setTimeout(function(){r.openModal()})})}};s.close=r.onAction,s.getState=r.getState,s.setActionValue=i.setActionValue,s.stopLoading=r.stopLoading,s.setDefaults=a.setDefaults,e.default=s},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(0),i=r.default.MODAL,a=n(4),s=n(34),c=n(35),l=n(1);e.init=function(t){o.getNode(i)||(document.body||l.throwErr("You can only use SweetAlert AFTER the DOM has loaded!"),s.default(),a.default()),a.initModalContent(t),c.default(t)},e.default=e.init},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.MODAL;e.modalMarkup='\n <div class="'+r+'" role="dialog" aria-modal="true"></div>',e.default=e.modalMarkup},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.OVERLAY,i='<div \n class="'+r+'"\n tabIndex="-1">\n </div>';e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.ICON;e.errorIconMarkup=function(){var t=r+"--error",e=t+"__line";return'\n <div class="'+t+'__x-mark">\n <span class="'+e+" "+e+'--left"></span>\n <span class="'+e+" "+e+'--right"></span>\n </div>\n '},e.warningIconMarkup=function(){var t=r+"--warning";return'\n <span class="'+t+'__body">\n <span class="'+t+'__dot"></span>\n </span>\n '},e.successIconMarkup=function(){var t=r+"--success";return'\n <span class="'+t+"__line "+t+'__line--long"></span>\n <span class="'+t+"__line "+t+'__line--tip"></span>\n\n <div class="'+t+'__ring"></div>\n <div class="'+t+'__hide-corners"></div>\n '}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.CONTENT;e.contentMarkup='\n <div class="'+r+'">\n\n </div>\n'},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.BUTTON_CONTAINER,i=o.default.BUTTON,a=o.default.BUTTON_LOADER;e.buttonMarkup='\n <div class="'+r+'">\n\n <button\n class="'+i+'"\n ></button>\n\n <div class="'+a+'">\n <div></div>\n <div></div>\n <div></div>\n </div>\n\n </div>\n'},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(4),r=n(2),i=n(0),a=i.default.ICON,s=i.default.ICON_CUSTOM,c=["error","warning","success","info"],l={error:r.errorIconMarkup(),warning:r.warningIconMarkup(),success:r.successIconMarkup()},u=function(t,e){var n=a+"--"+t;e.classList.add(n);var o=l[t];o&&(e.innerHTML=o)},f=function(t,e){e.classList.add(s);var n=document.createElement("img");n.src=t,e.appendChild(n)},d=function(t){if(t){var e=o.injectElIntoModal(r.iconMarkup);c.includes(t)?u(t,e):f(t,e)}};e.default=d},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(2),r=n(4),i=function(t){navigator.userAgent.includes("AppleWebKit")&&(t.style.display="none",t.offsetHeight,t.style.display="")};e.initTitle=function(t){if(t){var e=r.injectElIntoModal(o.titleMarkup);e.textContent=t,i(e)}},e.initText=function(t){if(t){var e=document.createDocumentFragment();t.split("\n").forEach(function(t,n,o){e.appendChild(document.createTextNode(t)),n<o.length-1&&e.appendChild(document.createElement("br"))});var n=r.injectElIntoModal(o.textMarkup);n.appendChild(e),i(n)}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(4),i=n(0),a=i.default.BUTTON,s=i.default.DANGER_BUTTON,c=n(3),l=n(2),u=n(6),f=n(5),d=function(t,e,n){var r=e.text,i=e.value,d=e.className,p=e.closeModal,m=o.stringToNode(l.buttonMarkup),b=m.querySelector("."+a),v=a+"--"+t;if(b.classList.add(v),d){(Array.isArray(d)?d:d.split(" ")).filter(function(t){return t.length>0}).forEach(function(t){b.classList.add(t)})}n&&t===c.CONFIRM_KEY&&b.classList.add(s),b.textContent=r;var g={};return g[t]=i,f.setActionValue(g),f.setActionOptionsFor(t,{closeModal:p}),b.addEventListener("click",function(){return u.onAction(t)}),m},p=function(t,e){var n=r.injectElIntoModal(l.footerMarkup);for(var o in t){var i=t[o],a=d(o,i,e);i.visible&&n.appendChild(a)}0===n.children.length&&n.remove()};e.default=p},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(3),r=n(4),i=n(2),a=n(5),s=n(6),c=n(0),l=c.default.CONTENT,u=function(t){t.addEventListener("input",function(t){var e=t.target,n=e.value;a.setActionValue(n)}),t.addEventListener("keyup",function(t){if("Enter"===t.key)return s.onAction(o.CONFIRM_KEY)}),setTimeout(function(){t.focus(),a.setActionValue("")},0)},f=function(t,e,n){var o=document.createElement(e),r=l+"__"+e;o.classList.add(r);for(var i in n){var a=n[i];o[i]=a}"input"===e&&u(o),t.appendChild(o)},d=function(t){if(t){var e=r.injectElIntoModal(i.contentMarkup),n=t.element,o=t.attributes;"string"==typeof n?f(e,n,o):e.appendChild(n)}};e.default=d},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(2),i=function(){var t=o.stringToNode(r.overlayMarkup);document.body.appendChild(t)};e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(5),r=n(6),i=n(1),a=n(3),s=n(0),c=s.default.MODAL,l=s.default.BUTTON,u=s.default.OVERLAY,f=function(t){t.preventDefault(),v()},d=function(t){t.preventDefault(),g()},p=function(t){if(o.default.isOpen)switch(t.key){case"Escape":return r.onAction(a.CANCEL_KEY)}},m=function(t){if(o.default.isOpen)switch(t.key){case"Tab":return f(t)}},b=function(t){if(o.default.isOpen)return"Tab"===t.key&&t.shiftKey?d(t):void 0},v=function(){var t=i.getNode(l);t&&(t.tabIndex=0,t.focus())},g=function(){var t=i.getNode(c),e=t.querySelectorAll("."+l),n=e.length-1,o=e[n];o&&o.focus()},h=function(t){t[t.length-1].addEventListener("keydown",m)},w=function(t){t[0].addEventListener("keydown",b)},y=function(){var t=i.getNode(c),e=t.querySelectorAll("."+l);e.length&&(h(e),w(e))},x=function(t){if(i.getNode(u)===t.target)return r.onAction(a.CANCEL_KEY)},_=function(t){var e=i.getNode(u);e.removeEventListener("click",x),t&&e.addEventListener("click",x)},k=function(t){o.default.timer&&clearTimeout(o.default.timer),t&&(o.default.timer=window.setTimeout(function(){return r.onAction(a.CANCEL_KEY)},t))},O=function(t){t.closeOnEsc?document.addEventListener("keyup",p):document.removeEventListener("keyup",p),t.dangerMode?v():g(),y(),_(t.closeOnClickOutside),k(t.timer)};e.default=O},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(3),i=n(37),a=n(38),s={title:null,text:null,icon:null,buttons:r.defaultButtonList,content:null,className:null,closeOnClickOutside:!0,closeOnEsc:!0,dangerMode:!1,timer:null},c=Object.assign({},s);e.setDefaults=function(t){c=Object.assign({},s,t)};var l=function(t){var e=t&&t.button,n=t&&t.buttons;return void 0!==e&&void 0!==n&&o.throwErr("Cannot set both 'button' and 'buttons' options!"),void 0!==e?{confirm:e}:n},u=function(t){return o.ordinalSuffixOf(t+1)},f=function(t,e){o.throwErr(u(e)+" argument ('"+t+"') is invalid")},d=function(t,e){var n=t+1,r=e[n];o.isPlainObject(r)||void 0===r||o.throwErr("Expected "+u(n)+" argument ('"+r+"') to be a plain object")},p=function(t,e){var n=t+1,r=e[n];void 0!==r&&o.throwErr("Unexpected "+u(n)+" argument ("+r+")")},m=function(t,e,n,r){var i=typeof e,a="string"===i,s=e instanceof Element;if(a){if(0===n)return{text:e};if(1===n)return{text:e,title:r[0]};if(2===n)return d(n,r),{icon:e};f(e,n)}else{if(s&&0===n)return d(n,r),{content:e};if(o.isPlainObject(e))return p(n,r),e;f(e,n)}};e.getOpts=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n={};t.forEach(function(e,o){var r=m(0,e,o,t);Object.assign(n,r)});var o=l(n);n.buttons=r.getButtonListOpts(o),delete n.button,n.content=i.getContentOpts(n.content);var u=Object.assign({},s,c,n);return Object.keys(u).forEach(function(t){a.DEPRECATED_OPTS[t]&&a.logDeprecation(t)}),u}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r={element:"input",attributes:{placeholder:""}};e.getContentOpts=function(t){var e={};return o.isPlainObject(t)?Object.assign(e,t):t instanceof Element?{element:t}:"input"===t?r:null}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.logDeprecation=function(t){var n=e.DEPRECATED_OPTS[t],o=n.onlyRename,r=n.replacement,i=n.subOption,a=n.link,s=o?"renamed":"deprecated",c='SweetAlert warning: "'+t+'" option has been '+s+".";if(r){c+=" Please use"+(i?' "'+i+'" in ':" ")+'"'+r+'" instead.'}var l="https://sweetalert.js.org";c+=a?" More details: "+l+a:" More details: "+l+"/guides/#upgrading-from-1x",console.warn(c)},e.DEPRECATED_OPTS={type:{replacement:"icon",link:"/docs/#icon"},imageUrl:{replacement:"icon",link:"/docs/#icon"},customClass:{replacement:"className",onlyRename:!0,link:"/docs/#classname"},imageSize:{},showCancelButton:{replacement:"buttons",link:"/docs/#buttons"},showConfirmButton:{replacement:"button",link:"/docs/#button"},confirmButtonText:{replacement:"button",link:"/docs/#button"},confirmButtonColor:{},cancelButtonText:{replacement:"buttons",link:"/docs/#buttons"},closeOnConfirm:{replacement:"button",subOption:"closeModal",link:"/docs/#button"},closeOnCancel:{replacement:"buttons",subOption:"closeModal",link:"/docs/#buttons"},showLoaderOnConfirm:{replacement:"buttons"},animation:{},inputType:{replacement:"content",link:"/docs/#content"},inputValue:{replacement:"content",link:"/docs/#content"},inputPlaceholder:{replacement:"content",link:"/docs/#content"},html:{replacement:"content",link:"/docs/#content"},allowEscapeKey:{replacement:"closeOnEsc",onlyRename:!0,link:"/docs/#closeonesc"},allowClickOutside:{replacement:"closeOnClickOutside",onlyRename:!0,link:"/docs/#closeonclickoutside"}}}])});
|
assets/sweetalert/package.json
ADDED
@@ -0,0 +1,138 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_from": "sweetalert@^2.1.2",
|
3 |
+
"_id": "sweetalert@2.1.2",
|
4 |
+
"_inBundle": false,
|
5 |
+
"_integrity": "sha512-iWx7X4anRBNDa/a+AdTmvAzQtkN1+s4j/JJRWlHpYE8Qimkohs8/XnFcWeYHH2lMA8LRCa5tj2d244If3S/hzA==",
|
6 |
+
"_location": "/sweetalert",
|
7 |
+
"_phantomChildren": {},
|
8 |
+
"_requested": {
|
9 |
+
"type": "range",
|
10 |
+
"registry": true,
|
11 |
+
"raw": "sweetalert@^2.1.2",
|
12 |
+
"name": "sweetalert",
|
13 |
+
"escapedName": "sweetalert",
|
14 |
+
"rawSpec": "^2.1.2",
|
15 |
+
"saveSpec": null,
|
16 |
+
"fetchSpec": "^2.1.2"
|
17 |
+
},
|
18 |
+
"_requiredBy": [
|
19 |
+
"#USER",
|
20 |
+
"/"
|
21 |
+
],
|
22 |
+
"_resolved": "https://registry.npmjs.org/sweetalert/-/sweetalert-2.1.2.tgz",
|
23 |
+
"_shasum": "010baaa80d0dbdc86f96bfcaa96b490728594b79",
|
24 |
+
"_spec": "sweetalert@^2.1.2",
|
25 |
+
"_where": "/Applications/MAMP/htdocs/asset-optimizer",
|
26 |
+
"author": {
|
27 |
+
"name": "Tristan Edwards",
|
28 |
+
"email": "tristan.edwards@me.com",
|
29 |
+
"url": "https://tristanedwards.me"
|
30 |
+
},
|
31 |
+
"bugs": {
|
32 |
+
"url": "https://github.com/t4t5/sweetalert/issues"
|
33 |
+
},
|
34 |
+
"bundleDependencies": false,
|
35 |
+
"collective": {
|
36 |
+
"type": "opencollective",
|
37 |
+
"url": "https://opencollective.com/SweetAlert"
|
38 |
+
},
|
39 |
+
"dependencies": {
|
40 |
+
"es6-object-assign": "^1.1.0",
|
41 |
+
"promise-polyfill": "^6.0.2"
|
42 |
+
},
|
43 |
+
"deprecated": false,
|
44 |
+
"description": "A beautiful replacement for JavaScript's \"alert\"",
|
45 |
+
"devDependencies": {
|
46 |
+
"@sweetalert/with-react": "^0.1.1",
|
47 |
+
"@types/jest": "19.2.3",
|
48 |
+
"autoprefixer": "6.7.7",
|
49 |
+
"babel-core": "6.24.1",
|
50 |
+
"babel-loader": "6.4.1",
|
51 |
+
"babel-plugin-transform-es2015-modules-commonjs": "6.24.1",
|
52 |
+
"babel-plugin-transform-runtime": "6.23.0",
|
53 |
+
"babel-preset-env": "1.4.0",
|
54 |
+
"babel-preset-es2015": "6.24.1",
|
55 |
+
"babel-preset-react": "6.24.1",
|
56 |
+
"babel-standalone": "^6.26.0",
|
57 |
+
"babelify": "^6.0.2",
|
58 |
+
"browserify": "^9.0.8",
|
59 |
+
"copy-webpack-plugin": "^4.0.1",
|
60 |
+
"css-loader": "0.28.7",
|
61 |
+
"dts-bundle": "0.7.3",
|
62 |
+
"exports-loader": "0.6.4",
|
63 |
+
"expose-loader": "0.7.3",
|
64 |
+
"glob": "^5.0.3",
|
65 |
+
"jest": "19.0.2",
|
66 |
+
"jquery": "3.2.1",
|
67 |
+
"jus": "0.24.1",
|
68 |
+
"nodelist-foreach-polyfill": "^1.2.0",
|
69 |
+
"opencollective": "^1.0.3",
|
70 |
+
"path": "^0.11.14",
|
71 |
+
"postcss-color-function": "3.0.0",
|
72 |
+
"postcss-custom-properties": "5.0.2",
|
73 |
+
"postcss-easy-import": "2.0.0",
|
74 |
+
"postcss-loader": "1.3.3",
|
75 |
+
"postcss-nesting": "2.3.1",
|
76 |
+
"react": "15.5.4",
|
77 |
+
"react-dom": "15.5.4",
|
78 |
+
"source-map-loader": "0.2.1",
|
79 |
+
"style-loader": "0.18.2",
|
80 |
+
"sweetalert": "file:./",
|
81 |
+
"ts-jest": "19.0.14",
|
82 |
+
"ts-loader": "2.0.3",
|
83 |
+
"tslint": "5.1.0",
|
84 |
+
"tslint-loader": "3.5.2",
|
85 |
+
"typescript": "2.2.2",
|
86 |
+
"vinyl-buffer": "^1.0.0",
|
87 |
+
"vinyl-source-stream": "^1.1.0",
|
88 |
+
"webpack": "3.5.5",
|
89 |
+
"webpack-bundle-analyzer": "2.9.0",
|
90 |
+
"webpack-dev-server": "2.4.2",
|
91 |
+
"webpack-merge": "4.1.0",
|
92 |
+
"whatwg-fetch": "^2.0.3"
|
93 |
+
},
|
94 |
+
"files": [
|
95 |
+
"dist",
|
96 |
+
"LICENSE.md",
|
97 |
+
"README.md",
|
98 |
+
"typings"
|
99 |
+
],
|
100 |
+
"homepage": "https://sweetalert.js.org/",
|
101 |
+
"jest": {
|
102 |
+
"verbose": true,
|
103 |
+
"transform": {
|
104 |
+
"^.+\\.tsx?$": "<rootDir>/node_modules/ts-jest/preprocessor.js"
|
105 |
+
},
|
106 |
+
"testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
|
107 |
+
"moduleFileExtensions": [
|
108 |
+
"ts",
|
109 |
+
"tsx",
|
110 |
+
"js",
|
111 |
+
"json"
|
112 |
+
]
|
113 |
+
},
|
114 |
+
"keywords": [
|
115 |
+
"sweetalert",
|
116 |
+
"alert",
|
117 |
+
"modal",
|
118 |
+
"popup"
|
119 |
+
],
|
120 |
+
"license": "MIT",
|
121 |
+
"main": "dist/sweetalert.min.js",
|
122 |
+
"name": "sweetalert",
|
123 |
+
"repository": {
|
124 |
+
"type": "git",
|
125 |
+
"url": "git+https://github.com/t4t5/sweetalert.git"
|
126 |
+
},
|
127 |
+
"scripts": {
|
128 |
+
"build": "webpack -p",
|
129 |
+
"builddocs": "node_modules/jus/cli.js build docs-src docs",
|
130 |
+
"buildtest": "npm run build && jest",
|
131 |
+
"docs": "npm run build && node_modules/jus/cli.js serve docs-src",
|
132 |
+
"prepare": "npm run build && npm run builddocs",
|
133 |
+
"prepublishOnly": "npm run build",
|
134 |
+
"test": "jest"
|
135 |
+
},
|
136 |
+
"types": "typings/sweetalert.d.ts",
|
137 |
+
"version": "2.1.2"
|
138 |
+
}
|
assets/sweetalert/typings/core.d.ts
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { ActionOptions, SwalState } from './modules/state';
|
2 |
+
import { SwalOptions } from './modules/options';
|
3 |
+
export declare type SwalParams = (string | Partial<SwalOptions>)[];
|
4 |
+
export interface SweetAlert {
|
5 |
+
(...params: SwalParams): Promise<any>;
|
6 |
+
close?(namespace?: string): void;
|
7 |
+
getState?(): SwalState;
|
8 |
+
setActionValue?(opts: string | ActionOptions): void;
|
9 |
+
stopLoading?(): void;
|
10 |
+
setDefaults?(opts: object): void;
|
11 |
+
}
|
12 |
+
declare const swal: SweetAlert;
|
13 |
+
export default swal;
|
assets/sweetalert/typings/modules/actions.d.ts
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { SwalState } from './state';
|
2 |
+
export declare const openModal: () => void;
|
3 |
+
export declare const onAction: (namespace?: string) => void;
|
4 |
+
export declare const getState: () => SwalState;
|
5 |
+
export declare const stopLoading: () => void;
|
assets/sweetalert/typings/modules/class-list/index.d.ts
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
export interface ClassNameList {
|
2 |
+
[key: string]: string;
|
3 |
+
}
|
4 |
+
export declare const CLASS_NAMES: ClassNameList;
|
5 |
+
export default CLASS_NAMES;
|
assets/sweetalert/typings/modules/event-listeners.d.ts
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
import { SwalOptions } from './options';
|
2 |
+
declare const addEventListeners: (opts: SwalOptions) => void;
|
3 |
+
export default addEventListeners;
|
assets/sweetalert/typings/modules/init/buttons.d.ts
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
import { ButtonList } from '../options/buttons';
|
2 |
+
declare const initButtons: (buttons: ButtonList, dangerMode: boolean) => void;
|
3 |
+
export default initButtons;
|
assets/sweetalert/typings/modules/init/content.d.ts
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
import { ContentOptions } from '../options/content';
|
2 |
+
declare const initContent: (opts: ContentOptions) => void;
|
3 |
+
export default initContent;
|
assets/sweetalert/typings/modules/init/icon.d.ts
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
declare const initIcon: (str: string) => void;
|
2 |
+
export default initIcon;
|
assets/sweetalert/typings/modules/init/index.d.ts
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
import { SwalOptions } from '../options';
|
2 |
+
export declare const init: (opts: SwalOptions) => void;
|
3 |
+
export default init;
|
assets/sweetalert/typings/modules/init/modal.d.ts
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { SwalOptions } from '../options';
|
2 |
+
export declare const injectElIntoModal: (markup: string) => HTMLElement;
|
3 |
+
export declare const initModalContent: (opts: SwalOptions) => void;
|
4 |
+
declare const initModalOnce: () => void;
|
5 |
+
export default initModalOnce;
|
assets/sweetalert/typings/modules/init/overlay.d.ts
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
declare const initOverlayOnce: () => void;
|
2 |
+
export default initOverlayOnce;
|
assets/sweetalert/typings/modules/init/text.d.ts
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
export declare const initTitle: (title: string) => void;
|
2 |
+
export declare const initText: (text: string) => void;
|
assets/sweetalert/typings/modules/markup/buttons.d.ts
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
export declare const buttonMarkup: string;
|
assets/sweetalert/typings/modules/markup/content.d.ts
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
export declare const contentMarkup: string;
|
assets/sweetalert/typings/modules/markup/icons.d.ts
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
export declare const errorIconMarkup: () => string;
|
2 |
+
export declare const warningIconMarkup: () => string;
|
3 |
+
export declare const successIconMarkup: () => string;
|
assets/sweetalert/typings/modules/markup/index.d.ts
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
export * from './modal';
|
2 |
+
export { default as overlayMarkup } from './overlay';
|
3 |
+
export * from './icons';
|
4 |
+
export * from './content';
|
5 |
+
export * from './buttons';
|
6 |
+
export declare const iconMarkup: string;
|
7 |
+
export declare const titleMarkup: string;
|
8 |
+
export declare const textMarkup: string;
|
9 |
+
export declare const footerMarkup: string;
|
assets/sweetalert/typings/modules/markup/modal.d.ts
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
export declare const modalMarkup: string;
|
2 |
+
export default modalMarkup;
|
assets/sweetalert/typings/modules/markup/overlay.d.ts
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
declare const overlay: string;
|
2 |
+
export default overlay;
|
assets/sweetalert/typings/modules/options/buttons.d.ts
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
export interface ButtonOptions {
|
2 |
+
visible?: boolean;
|
3 |
+
text?: string;
|
4 |
+
value?: any;
|
5 |
+
className?: string | Array<string>;
|
6 |
+
closeModal?: boolean;
|
7 |
+
}
|
8 |
+
export interface ButtonList {
|
9 |
+
[buttonNamespace: string]: ButtonOptions | boolean;
|
10 |
+
}
|
11 |
+
export declare const CONFIRM_KEY = "confirm";
|
12 |
+
export declare const CANCEL_KEY = "cancel";
|
13 |
+
export declare const defaultButtonList: ButtonList;
|
14 |
+
export declare const getButtonListOpts: (opts: string | boolean | object) => ButtonList;
|
assets/sweetalert/typings/modules/options/content.d.ts
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
export interface ContentOptions {
|
2 |
+
element: string | Node;
|
3 |
+
attributes?: object;
|
4 |
+
}
|
5 |
+
export declare const getContentOpts: (contentParam: string | object) => ContentOptions;
|
assets/sweetalert/typings/modules/options/deprecations.d.ts
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
export declare const logDeprecation: (name: string) => void;
|
2 |
+
export interface OptionReplacement {
|
3 |
+
replacement?: string;
|
4 |
+
onlyRename?: boolean;
|
5 |
+
subOption?: string;
|
6 |
+
link?: string;
|
7 |
+
}
|
8 |
+
export interface OptionReplacementsList {
|
9 |
+
[name: string]: OptionReplacement;
|
10 |
+
}
|
11 |
+
export declare const DEPRECATED_OPTS: OptionReplacementsList;
|
assets/sweetalert/typings/modules/options/index.d.ts
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { ButtonList } from './buttons';
|
2 |
+
import { ContentOptions } from './content';
|
3 |
+
export interface SwalOptions {
|
4 |
+
title: string;
|
5 |
+
text: string;
|
6 |
+
icon: string;
|
7 |
+
buttons: ButtonList | Array<string | boolean>;
|
8 |
+
content: ContentOptions;
|
9 |
+
className: string;
|
10 |
+
closeOnClickOutside: boolean;
|
11 |
+
closeOnEsc: boolean;
|
12 |
+
dangerMode: boolean;
|
13 |
+
timer: number;
|
14 |
+
}
|
15 |
+
export declare const setDefaults: (opts: object) => void;
|
16 |
+
export declare const getOpts: (...params: (string | Partial<SwalOptions>)[]) => SwalOptions;
|
assets/sweetalert/typings/modules/state.d.ts
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
export interface SwalState {
|
2 |
+
isOpen: boolean;
|
3 |
+
promise: {
|
4 |
+
resolve?(value: string): void;
|
5 |
+
reject?(): void;
|
6 |
+
};
|
7 |
+
actions: {
|
8 |
+
[namespace: string]: {
|
9 |
+
value?: string | any;
|
10 |
+
closeModal?: boolean;
|
11 |
+
};
|
12 |
+
};
|
13 |
+
timer: number;
|
14 |
+
}
|
15 |
+
export interface ActionOptions {
|
16 |
+
[buttonNamespace: string]: {
|
17 |
+
value?: string;
|
18 |
+
closeModal?: boolean;
|
19 |
+
};
|
20 |
+
}
|
21 |
+
declare let state: SwalState;
|
22 |
+
export declare const resetState: () => void;
|
23 |
+
export declare const setActionValue: (opts: string | ActionOptions) => void;
|
24 |
+
export declare const setActionOptionsFor: (buttonKey: string, {closeModal}?: {
|
25 |
+
closeModal?: boolean;
|
26 |
+
}) => void;
|
27 |
+
export default state;
|
assets/sweetalert/typings/modules/utils.d.ts
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
export declare const getNode: (className: string) => HTMLElement;
|
2 |
+
export declare const stringToNode: (html: string) => HTMLElement;
|
3 |
+
export declare const insertAfter: (newNode: Node, referenceNode: Node) => void;
|
4 |
+
export declare const removeNode: (node: Node) => void;
|
5 |
+
export declare const throwErr: (message: string) => never;
|
6 |
+
export declare const isPlainObject: (value: any) => boolean;
|
7 |
+
export declare const ordinalSuffixOf: (num: number) => string;
|
assets/sweetalert/typings/sweetalert.d.ts
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import swal, { SweetAlert } from "./core";
|
2 |
+
|
3 |
+
declare global {
|
4 |
+
const swal: SweetAlert;
|
5 |
+
const sweetAlert: SweetAlert;
|
6 |
+
}
|
7 |
+
|
8 |
+
export default swal;
|
9 |
+
export as namespace swal;
|
classes/HardcodedAssets.php
ADDED
@@ -0,0 +1,530 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace WpAssetCleanUp;
|
3 |
+
|
4 |
+
use WpAssetCleanUp\OptimiseAssets\MinifyJs;
|
5 |
+
use WpAssetCleanUp\OptimiseAssets\OptimizeCommon;
|
6 |
+
use WpAssetCleanUp\OptimiseAssets\OptimizeJs;
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Class HardcodedAssets
|
10 |
+
* @package WpAssetCleanUp
|
11 |
+
*/
|
12 |
+
class HardcodedAssets
|
13 |
+
{
|
14 |
+
/**
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
public static function init()
|
18 |
+
{
|
19 |
+
add_action( 'init', static function() {
|
20 |
+
if (Main::instance()->isGetAssetsCall) {
|
21 |
+
// Case 1: An AJAX call is made from the Dashboard
|
22 |
+
self::initBufferingForAjaxCallFromTheDashboard();
|
23 |
+
} elseif (self::useBufferingForEditFrontEndView()) {
|
24 |
+
// Case 2: The logged-in admin manages the assets from the front-end view
|
25 |
+
self::initBufferingForFrontendManagement();
|
26 |
+
}
|
27 |
+
});
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
*
|
32 |
+
*/
|
33 |
+
public static function initBufferingForAjaxCallFromTheDashboard()
|
34 |
+
{
|
35 |
+
ob_start();
|
36 |
+
|
37 |
+
add_action('shutdown', static function() {
|
38 |
+
$htmlSource = '';
|
39 |
+
|
40 |
+
// We'll need to get the number of ob levels we're in, so that we can iterate over each, collecting
|
41 |
+
// that buffer's output into the final output.
|
42 |
+
$htmlSourceLevel = ob_get_level();
|
43 |
+
|
44 |
+
for ($wpacuI = 0; $wpacuI < $htmlSourceLevel; $wpacuI++) {
|
45 |
+
$htmlSource .= ob_get_clean();
|
46 |
+
}
|
47 |
+
|
48 |
+
$anyHardCodedAssets = HardcodedAssets::getAll($htmlSource); // Fetch all for this type of request
|
49 |
+
|
50 |
+
$htmlSource = str_replace('{wpacu_hardcoded_assets}', $anyHardCodedAssets, $htmlSource);
|
51 |
+
|
52 |
+
echo $htmlSource;
|
53 |
+
}, 0);
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
*
|
58 |
+
*/
|
59 |
+
public static function initBufferingForFrontendManagement()
|
60 |
+
{
|
61 |
+
// Used to print the hardcoded CSS/JS
|
62 |
+
ob_start();
|
63 |
+
|
64 |
+
add_action('shutdown', static function() {
|
65 |
+
$htmlSource = '';
|
66 |
+
|
67 |
+
// We'll need to get the number of ob levels we're in, so that we can iterate over each, collecting
|
68 |
+
// that buffer's output into the final output.
|
69 |
+
$htmlSourceLevel = ob_get_level();
|
70 |
+
|
71 |
+
for ($wpacuI = 0; $wpacuI < $htmlSourceLevel; $wpacuI++) {
|
72 |
+
$htmlSource .= ob_get_clean();
|
73 |
+
}
|
74 |
+
|
75 |
+
echo self::addHardcodedAssetsForEditFrontEndView(OptimizeCommon::alterHtmlSource($htmlSource));
|
76 |
+
}, 0);
|
77 |
+
}
|
78 |
+
|
79 |
+
/**
|
80 |
+
* @param $htmlSource
|
81 |
+
*
|
82 |
+
* @return string|string[]
|
83 |
+
*/
|
84 |
+
public static function addHardcodedAssetsForEditFrontEndView($htmlSource)
|
85 |
+
{
|
86 |
+
if ( ! ($anyHardCodedAssets = wp_cache_get('wpacu_hardcoded_assets_encoded')) ) {
|
87 |
+
$htmlSource = str_replace( '{wpacu_assets_collapsible_wrap_hardcoded_list}', '', $htmlSource);
|
88 |
+
return $htmlSource;
|
89 |
+
}
|
90 |
+
|
91 |
+
$jsonH = base64_decode($anyHardCodedAssets);
|
92 |
+
|
93 |
+
$wpacuPrintHardcodedManagementList = static function($jsonH) {
|
94 |
+
$data = wp_cache_get('wpacu_settings_frontend_data') ?: array();
|
95 |
+
$data['do_not_print_list'] = true;
|
96 |
+
$data['all']['hardcoded'] = (array)json_decode($jsonH, ARRAY_A);
|
97 |
+
ob_start();
|
98 |
+
include_once WPACU_PLUGIN_DIR.'/templates/meta-box-loaded-assets/_assets-hardcoded-list.php'; // generate $hardcodedTagsOutput
|
99 |
+
return ob_get_clean();
|
100 |
+
};
|
101 |
+
|
102 |
+
$htmlSource = str_replace(
|
103 |
+
'{wpacu_assets_collapsible_wrap_hardcoded_list}',
|
104 |
+
$wpacuPrintHardcodedManagementList($jsonH), // call the function to return the HTML output
|
105 |
+
$htmlSource
|
106 |
+
);
|
107 |
+
|
108 |
+
return $htmlSource;
|
109 |
+
}
|
110 |
+
|
111 |
+
/**
|
112 |
+
* @return bool
|
113 |
+
*/
|
114 |
+
public static function useBufferingForEditFrontEndView()
|
115 |
+
{
|
116 |
+
// The logged-in admin needs to be outside the Dashboard (in the front-end view)
|
117 |
+
// "Manage in the Front-end" is enabled in "Settings" -> "Plugin Usage Preferences"
|
118 |
+
return (Main::instance()->frontendShow() && ! is_admin() && Menu::userCanManageAssets() && ! Main::instance()->isGetAssetsCall);
|
119 |
+
}
|
120 |
+
|
121 |
+
/**
|
122 |
+
* @param $htmlSource
|
123 |
+
* @param bool $encodeIt - if set to "false", it's mostly for testing purposes
|
124 |
+
*
|
125 |
+
* @return string|array
|
126 |
+
*/
|
127 |
+
public static function getAll($htmlSource, $encodeIt = true)
|
128 |
+
{
|
129 |
+
$htmlSourceAlt = self::removeHtmlCommentsExceptMSIE($htmlSource);
|
130 |
+
|
131 |
+
$collectLinkStyles = true; // default
|
132 |
+
$collectScripts = true; // default
|
133 |
+
|
134 |
+
$hardCodedAssets = array(
|
135 |
+
'link_and_style_tags' => array(), // LINK (rel="stylesheet") & STYLE (inline)
|
136 |
+
'script_src_and_inline_tags' => array(), // SCRIPT (with "src" attribute) & SCRIPT (inline)
|
137 |
+
);
|
138 |
+
|
139 |
+
if ($collectLinkStyles) {
|
140 |
+
/*
|
141 |
+
* [START] Collect Hardcoded LINK (stylesheet) & STYLE tags
|
142 |
+
*/
|
143 |
+
// Extract all the LINK tag that do not have "data-wpacu-debug-style-handle="
|
144 |
+
preg_match_all( '#(?=(?P<link_tag><link[^>]*stylesheet[^>]*(>)))|(?=(?P<style_tag><style[^>]*?>.*</style>))#Umsi',
|
145 |
+
$htmlSourceAlt, $matchesSourcesFromTags, PREG_SET_ORDER );
|
146 |
+
|
147 |
+
if ( ! empty( $matchesSourcesFromTags ) ) {
|
148 |
+
// Only the hashes are set
|
149 |
+
// For instance, 'd1eae32c4e99d24573042dfbb71f5258a86e2a8e' is the hash for the following script:
|
150 |
+
/*
|
151 |
+
* <style media="print">#wpadminbar { display:none; }</style>
|
152 |
+
*/
|
153 |
+
$stripsSpecificStylesHashes = array(
|
154 |
+
'5ead5f033961f3b8db362d2ede500051f659dd6d',
|
155 |
+
'25bd090513716c34b48b0495c834d2070088ad24'
|
156 |
+
);
|
157 |
+
|
158 |
+
// Sometimes, the hash checking might failed (if there's a small change to the JS content)
|
159 |
+
// Consider using a fallback verification by checking the actual content
|
160 |
+
$stripsSpecificStylesContaining = array(
|
161 |
+
'<style media="print">#wpadminbar { display:none; }</style>'
|
162 |
+
);
|
163 |
+
|
164 |
+
foreach ( $matchesSourcesFromTags as $matchedTagIndex => $matchedTag ) {
|
165 |
+
// LINK "stylesheet" tags (if any)
|
166 |
+
if ( isset( $matchedTag['link_tag'] ) && trim( $matchedTag['link_tag'] ) !== '' && ( trim( strip_tags( $matchedTag['link_tag'] ) ) === '' ) ) {
|
167 |
+
$matchedTagOutput = trim( $matchedTag['link_tag'] );
|
168 |
+
|
169 |
+
if ( strpos( $matchedTagOutput, 'data-wpacu-style-handle=' ) !== false ) {
|
170 |
+
// Skip the LINK with src that was enqueued properly and keep the hardcoded ones
|
171 |
+
continue;
|
172 |
+
}
|
173 |
+
|
174 |
+
$hardCodedAssets['link_and_style_tags'][] = $matchedTagOutput;
|
175 |
+
}
|
176 |
+
|
177 |
+
// STYLE inline tags (if any)
|
178 |
+
if ( isset( $matchedTag['style_tag'] ) && trim( $matchedTag['style_tag'] ) !== '' ) {
|
179 |
+
$matchedTagOutput = trim( $matchedTag['style_tag'] );
|
180 |
+
|
181 |
+
/*
|
182 |
+
* Strip certain STYLE tags irrelevant for the list (e.g. related to the WordPress Admin Bar, etc.)
|
183 |
+
*/
|
184 |
+
if ( in_array( sha1( $matchedTagOutput ), $stripsSpecificStylesHashes ) ) {
|
185 |
+
continue;
|
186 |
+
}
|
187 |
+
|
188 |
+
foreach ( $stripsSpecificStylesContaining as $cssContentTargeted ) {
|
189 |
+
if ( strpos( $matchedTagOutput, $cssContentTargeted ) !== false ) {
|
190 |
+
continue;
|
191 |
+
}
|
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 |
+
}
|
205 |
+
|
206 |
+
foreach ( wp_styles()->done as $cssHandle ) {
|
207 |
+
if ( strpos( $matchedTagOutput,
|
208 |
+
'<style id=\'' . trim( $cssHandle ) . '-inline-css\'' ) !== false ) {
|
209 |
+
// Do not consider the STYLE added via WordPress with wp_add_inline_style() as it's not hardcoded
|
210 |
+
continue 2;
|
211 |
+
}
|
212 |
+
}
|
213 |
+
|
214 |
+
$hardCodedAssets['link_and_style_tags'][] = $matchedTagOutput;
|
215 |
+
}
|
216 |
+
}
|
217 |
+
}
|
218 |
+
/*
|
219 |
+
* [END] Collect Hardcoded LINK (stylesheet) & STYLE tags
|
220 |
+
*/
|
221 |
+
}
|
222 |
+
|
223 |
+
if ($collectScripts) {
|
224 |
+
/*
|
225 |
+
* [START] Collect Hardcoded SCRIPT (src/inline)
|
226 |
+
*/
|
227 |
+
preg_match_all( '@<script[^>]*?>.*?</script>@si', $htmlSourceAlt, $matchesScriptTags, PREG_SET_ORDER );
|
228 |
+
|
229 |
+
if ( isset( wp_scripts()->done ) && ! empty( wp_scripts()->done ) ) {
|
230 |
+
foreach ( wp_scripts()->done as $assetHandle ) {
|
231 |
+
// Go through the STYLE list
|
232 |
+
foreach ( $matchesScriptTags as $matchedTagIndex => $matchedTag ) {
|
233 |
+
if ( isset( $matchedTag[0] ) ) {
|
234 |
+
$matchedTagOutput = trim( $matchedTag[0] );
|
235 |
+
|
236 |
+
if ( strpos( $matchedTagOutput, 'window._wpemojiSettings' ) !== false
|
237 |
+
&& strpos( $matchedTagOutput, 'twemoji' ) !== false ) {
|
238 |
+
unset( $matchesScriptTags[ $matchedTagIndex ] );
|
239 |
+
continue;
|
240 |
+
}
|
241 |
+
|
242 |
+
// Check the type and only allow SCRIPT tags with type='text/javascript' or no type at all (it default to 'text/javascript')
|
243 |
+
$matchedTagInner = strip_tags( $matchedTagOutput );
|
244 |
+
$matchedTagOnlyTags = str_replace( $matchedTagInner, '', $matchedTagOutput );
|
245 |
+
preg_match_all( '#type=(["\'])' . '(.*)' . '(["\'])#Usmi', $matchedTagOnlyTags,
|
246 |
+
$outputMatches );
|
247 |
+
$scriptType = isset( $outputMatches[2][0] ) ? trim( $outputMatches[2][0],
|
248 |
+
'"\'' ) : 'text/javascript';
|
249 |
+
|
250 |
+
if ( strpos( $scriptType, 'text/javascript' ) === false ) {
|
251 |
+
unset( $matchesScriptTags[ $matchedTagIndex ] );
|
252 |
+
continue;
|
253 |
+
}
|
254 |
+
|
255 |
+
if ( strpos( $matchedTagOutput, 'data-wpacu-script-handle=' ) !== false ) {
|
256 |
+
unset( $matchesScriptTags[ $matchedTagIndex ] ); // remove the SCRIPT with src that was enqueued properly and keep the hardcoded ones
|
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 |
+
}
|
264 |
+
|
265 |
+
if ( strpos( $matchedTagOutput, 'wpacu-preload-async-css-fallback' ) !== false ) {
|
266 |
+
unset( $matchesScriptTags[ $matchedTagIndex ] ); // remove plugin's own SCRIPT tags as they are not relevant in this context
|
267 |
+
continue;
|
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 ) === '' ) {
|
276 |
+
continue;
|
277 |
+
}
|
278 |
+
|
279 |
+
$jsInlineTagContentMin = MinifyJs::applyMinification( $jsInlineTagContent );
|
280 |
+
$matchedTagOutputMin = MinifyJs::applyMinification( $matchedTagOutput );
|
281 |
+
|
282 |
+
if ( strpos( $matchedTagOutputMin, $jsInlineTagContentMin ) !== false ) {
|
283 |
+
unset( $matchesScriptTags[ $matchedTagIndex ] );
|
284 |
+
}
|
285 |
+
}
|
286 |
+
}
|
287 |
+
}
|
288 |
+
}
|
289 |
+
}
|
290 |
+
}
|
291 |
+
|
292 |
+
|
293 |
+
// Go through the remaining hardcoded (SCRIPT) ones (if any)
|
294 |
+
if ( isset( $matchesScriptTags ) && ! empty( $matchesScriptTags ) ) {
|
295 |
+
// Only the hashes are set
|
296 |
+
// For instance, 'd1eae32c4e99d24573042dfbb71f5258a86e2a8e' is the hash for the following script:
|
297 |
+
/*
|
298 |
+
* <script>
|
299 |
+
(function() {
|
300 |
+
var request, b = document.body, c = 'className', cs = 'customize-support', rcs = new RegExp('(^|\\s+)(no-)?'+cs+'(\\s+|$)');
|
301 |
+
request = true;
|
302 |
+
b[c] = b[c].replace( rcs, ' ' );
|
303 |
+
// The customizer requires postMessage and CORS (if the site is cross domain)
|
304 |
+
b[c] += ( window.postMessage && request ? ' ' : ' no-' ) + cs;
|
305 |
+
}());
|
306 |
+
</script>
|
307 |
+
*/
|
308 |
+
$stripsSpecificScriptsHashes = array(
|
309 |
+
'd1eae32c4e99d24573042dfbb71f5258a86e2a8e',
|
310 |
+
'1a8f46f9f33e5d95919620df54781acbfa9efff7'
|
311 |
+
);
|
312 |
+
|
313 |
+
// Sometimes, the hash checking might failed (if there's a small change to the JS content)
|
314 |
+
// Consider using a fallback verification by checking the actual content
|
315 |
+
$stripsSpecificScriptsContaining = array(
|
316 |
+
'// The customizer requires postMessage and CORS (if the site is cross domain)',
|
317 |
+
'b[c] += ( window.postMessage && request ? \' \' : \' no-\' ) + cs;',
|
318 |
+
"(function(){var request,b=document.body,c='className',cs='customize-support',rcs=new RegExp('(^|\\s+)(no-)?'+cs+'(\\s+|$)');request=!0;b[c]=b[c].replace(rcs,' ');b[c]+=(window.postMessage&&request?' ':' no-')+cs}())",
|
319 |
+
'document.body.className = document.body.className.replace( /(^|\s)(no-)?customize-support(?=\s|$)/, \'\' ) + \' no-customize-support\''
|
320 |
+
);
|
321 |
+
|
322 |
+
foreach ( $matchesScriptTags as $matchedTag ) {
|
323 |
+
if ( isset( $matchedTag[0] ) && $matchedTag[0] && strpos( $matchedTag[0], '<script' ) === 0 ) {
|
324 |
+
/*
|
325 |
+
* Strip certain SCRIPT tags irrelevant for the list (e.g. related to WordPress Customiser, Admin Bar, etc.)
|
326 |
+
*/
|
327 |
+
if ( in_array( sha1( $matchedTag[0] ), $stripsSpecificScriptsHashes ) ) {
|
328 |
+
continue;
|
329 |
+
}
|
330 |
+
|
331 |
+
foreach ( $stripsSpecificScriptsContaining as $jsContentTargeted ) {
|
332 |
+
if ( strpos( $matchedTag[0], $jsContentTargeted ) !== false ) {
|
333 |
+
continue;
|
334 |
+
}
|
335 |
+
}
|
336 |
+
|
337 |
+
$hardCodedAssets['script_src_and_inline_tags'][] = trim( $matchedTag[0] );
|
338 |
+
}
|
339 |
+
}
|
340 |
+
}
|
341 |
+
/*
|
342 |
+
* [END] Collect Hardcoded SCRIPT (src/inline)
|
343 |
+
*/
|
344 |
+
}
|
345 |
+
|
346 |
+
$tagsWithinConditionalComments = self::extractHtmlFromConditionalComments( $htmlSourceAlt );
|
347 |
+
|
348 |
+
if (self::useBufferingForEditFrontEndView()) {
|
349 |
+
// Triggered within the front-end view (when admin is logged-in and manages the assets)
|
350 |
+
wp_cache_set( 'wpacu_hardcoded_content_within_conditional_comments', $tagsWithinConditionalComments );
|
351 |
+
} elseif (Main::instance()->isGetAssetsCall) {
|
352 |
+
// AJAX call within the Dashboard
|
353 |
+
$hardCodedAssets['within_conditional_comments'] = $tagsWithinConditionalComments;
|
354 |
+
}
|
355 |
+
|
356 |
+
if ($encodeIt) {
|
357 |
+
return base64_encode( json_encode( $hardCodedAssets ) );
|
358 |
+
}
|
359 |
+
|
360 |
+
return $hardCodedAssets;
|
361 |
+
}
|
362 |
+
|
363 |
+
/**
|
364 |
+
* @param $htmlSource
|
365 |
+
*
|
366 |
+
* @return mixed
|
367 |
+
*/
|
368 |
+
public static function removeHtmlCommentsExceptMSIE($htmlSource)
|
369 |
+
{
|
370 |
+
// No comments? Do not continue
|
371 |
+
if (strpos($htmlSource, '<!--') === false) {
|
372 |
+
return $htmlSource;
|
373 |
+
}
|
374 |
+
|
375 |
+
if (! (function_exists('libxml_use_internal_errors')
|
376 |
+
&& function_exists('libxml_clear_errors')
|
377 |
+
&& class_exists('DOMDocument')))
|
378 |
+
{
|
379 |
+
return $htmlSource;
|
380 |
+
}
|
381 |
+
|
382 |
+
$domComments = new \DOMDocument();
|
383 |
+
libxml_use_internal_errors(true);
|
384 |
+
|
385 |
+
preg_match_all('#<!--\[if(.*?)]>(<!-->|-->|\s|)(.*?)(<!--<!|<!)\[endif]-->#si', $htmlSource, $matchedMSIEComments);
|
386 |
+
|
387 |
+
$htmlSourceAlt = $htmlSource;
|
388 |
+
|
389 |
+
if (isset($matchedMSIEComments[0]) && ! empty($matchedMSIEComments[0])) {
|
390 |
+
foreach ($matchedMSIEComments[0] as $matchedMSIEComment) {
|
391 |
+
$htmlSourceAlt = str_replace($matchedMSIEComment, '', $htmlSourceAlt);
|
392 |
+
}
|
393 |
+
}
|
394 |
+
|
395 |
+
$domComments->loadHTML($htmlSourceAlt); // fetch from the altered HTML (without the MSIE comments)
|
396 |
+
|
397 |
+
$xpathComments = new \DOMXPath($domComments);
|
398 |
+
$comments = $xpathComments->query('//comment()');
|
399 |
+
|
400 |
+
libxml_clear_errors();
|
401 |
+
|
402 |
+
if ($comments === null) {
|
403 |
+
return $htmlSource;
|
404 |
+
}
|
405 |
+
|
406 |
+
preg_match_all('#<!--(.*?)-->#s', $htmlSource, $matchesRegExpComments);
|
407 |
+
|
408 |
+
// "comments" within tag attributes or script tags?
|
409 |
+
// e.g. <script>var type='<!-- A comment here -->';</script>
|
410 |
+
// e.g. <div data-info="This is just a <!-- comment --> text">Content here</div>
|
411 |
+
$commentsWithinQuotes = array();
|
412 |
+
|
413 |
+
if (isset($matchesRegExpComments[1]) && count($matchesRegExpComments[1]) !== count($comments)) {
|
414 |
+
preg_match_all('#=(|\s+)([\'"])(|\s+)<!--(.*?)-->(|\s+)([\'"])#s', $htmlSource, $matchesCommentsWithinQuotes);
|
415 |
+
|
416 |
+
if (isset($matchesCommentsWithinQuotes[0]) && ! empty($matchesCommentsWithinQuotes[0])) {
|
417 |
+
foreach ($matchesCommentsWithinQuotes[0] as $matchedDataOriginal) {
|
418 |
+
$matchedDataUpdated = str_replace(
|
419 |
+
array('', '<!--', '-->'),
|
420 |
+
array('--wpacu-space-del--', '--wpacu-start-comm--', '--wpacu-end-comm--'),
|
421 |
+
$matchedDataOriginal
|
422 |
+
);
|
423 |
+
|
424 |
+
$htmlSource = str_replace($matchedDataOriginal, $matchedDataUpdated, $htmlSource);
|
425 |
+
|
426 |
+
$commentsWithinQuotes[] = array(
|
427 |
+
'original' => $matchedDataOriginal,
|
428 |
+
'updated' => $matchedDataUpdated
|
429 |
+
);
|
430 |
+
}
|
431 |
+
}
|
432 |
+
}
|
433 |
+
|
434 |
+
foreach ($comments as $comment) {
|
435 |
+
$entireComment = CleanUp::getOuterHTML($comment);
|
436 |
+
|
437 |
+
$htmlSource = str_replace(
|
438 |
+
array(
|
439 |
+
$entireComment,
|
440 |
+
'<!--' . $comment->nodeValue . '-->'
|
441 |
+
),
|
442 |
+
'',
|
443 |
+
$htmlSource
|
444 |
+
);
|
445 |
+
}
|
446 |
+
|
447 |
+
if (! empty($commentsWithinQuotes)) {
|
448 |
+
foreach ($commentsWithinQuotes as $commentQuote) {
|
449 |
+
$htmlSource = str_replace($commentQuote['updated'], $commentQuote['original'], $htmlSource);
|
450 |
+
}
|
451 |
+
}
|
452 |
+
|
453 |
+
return $htmlSource;
|
454 |
+
}
|
455 |
+
|
456 |
+
/**
|
457 |
+
* @param $htmlSource
|
458 |
+
*
|
459 |
+
* @return array
|
460 |
+
*/
|
461 |
+
public static function extractHtmlFromConditionalComments($htmlSource)
|
462 |
+
{
|
463 |
+
preg_match_all('#<!--\[if(.*?)]>(<!-->|-->|\s|)(.*?)(<!--<!|<!)\[endif]-->#si', $htmlSource, $matchedContent);
|
464 |
+
|
465 |
+
if (isset($matchedContent[1], $matchedContent[3]) && ! empty($matchedContent[1]) && ! empty($matchedContent[3])) {
|
466 |
+
$conditions = array_map('trim', $matchedContent[1]);
|
467 |
+
$tags = array_map('trim', $matchedContent[3]);
|
468 |
+
|
469 |
+
return array(
|
470 |
+
'conditions' => $conditions,
|
471 |
+
'tags' => $tags,
|
472 |
+
);
|
473 |
+
}
|
474 |
+
|
475 |
+
return array();
|
476 |
+
}
|
477 |
+
|
478 |
+
/**
|
479 |
+
* @param $targetedTag
|
480 |
+
* @param $contentWithinConditionalComments
|
481 |
+
*
|
482 |
+
* @return bool
|
483 |
+
*/
|
484 |
+
public static function isWithinConditionalComment($targetedTag, $contentWithinConditionalComments)
|
485 |
+
{
|
486 |
+
if (empty($contentWithinConditionalComments)) {
|
487 |
+
return false;
|
488 |
+
}
|
489 |
+
|
490 |
+
$targetedTag = trim($targetedTag);
|
491 |
+
|
492 |
+
foreach ($contentWithinConditionalComments['tags'] as $tagIndex => $tagFromList) {
|
493 |
+
$tagFromList = trim($tagFromList);
|
494 |
+
|
495 |
+
if ($targetedTag === $tagFromList || strpos($targetedTag, $tagFromList) !== false) {
|
496 |
+
return $contentWithinConditionalComments['conditions'][$tagIndex]; // Stops here and returns the condition
|
497 |
+
break;
|
498 |
+
}
|
499 |
+
}
|
500 |
+
|
501 |
+
return false; // Not within a conditional comment (most cases)
|
502 |
+
}
|
503 |
+
|
504 |
+
/**
|
505 |
+
* @param $htmlTag
|
506 |
+
*
|
507 |
+
* @return bool|string
|
508 |
+
*/
|
509 |
+
public static function belongsTo($htmlTag)
|
510 |
+
{
|
511 |
+
$belongList = array(
|
512 |
+
'wpcf7recaptcha.' => '"Contact Form 7" plugin',
|
513 |
+
'c = c.replace(/woocommerce-no-js/, \'woocommerce-js\');' => '"WooCommerce" plugin',
|
514 |
+
'.woocommerce-product-gallery{ opacity: 1 !important; }' => '"WooCommerce" plugin',
|
515 |
+
'-ss-slider-3' => '"Smart Slider 3" plugin',
|
516 |
+
'N2R(["nextend-frontend","smartslider-frontend","smartslider-simple-type-frontend"]' => '"Smart Slider 3" plugin',
|
517 |
+
'function setREVStartSize' => '"Slider Revolution" plugin',
|
518 |
+
'jQuery(\'.rev_slider_wrapper\')' => '"Slider Revolution" plugin',
|
519 |
+
'jQuery(\'#wp-admin-bar-revslider-default' => '"Slider Revolution" plugin'
|
520 |
+
);
|
521 |
+
|
522 |
+
foreach ($belongList as $ifContains => $isFromSource) {
|
523 |
+
if ( strpos( $htmlTag, $ifContains) !== false ) {
|
524 |
+
return $isFromSource;
|
525 |
+
}
|
526 |
+
}
|
527 |
+
|
528 |
+
return false;
|
529 |
+
}
|
530 |
+
}
|
classes/ImportExport.php
CHANGED
@@ -156,7 +156,7 @@ SQL;
|
|
156 |
// Last important check
|
157 |
\check_admin_referer('wpacu_do_import', 'wpacu_do_import_nonce');
|
158 |
|
159 |
-
if (!
|
160 |
return;
|
161 |
}
|
162 |
|
156 |
// Last important check
|
157 |
\check_admin_referer('wpacu_do_import', 'wpacu_do_import_nonce');
|
158 |
|
159 |
+
if (! is_file($jsonTmpName)) {
|
160 |
return;
|
161 |
}
|
162 |
|
classes/Main.php
CHANGED
@@ -228,7 +228,20 @@ class Main
|
|
228 |
}, 10, 1);
|
229 |
}
|
230 |
|
231 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
232 |
|
233 |
// Early Triggers
|
234 |
add_action('wp', array($this, 'setVarsBeforeUpdate'), 8);
|
@@ -526,7 +539,7 @@ SQL;
|
|
526 |
}
|
527 |
}
|
528 |
|
529 |
-
|
530 |
/**
|
531 |
* See if there is any list with styles to be removed in JSON format
|
532 |
* Only the handles (the ID of the styles) is stored
|
@@ -681,6 +694,15 @@ SQL;
|
|
681 |
|
682 |
$handle = trim($handle);
|
683 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
684 |
wp_deregister_style($handle);
|
685 |
wp_dequeue_style($handle);
|
686 |
}
|
@@ -938,6 +960,15 @@ SQL;
|
|
938 |
continue;
|
939 |
}
|
940 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
941 |
wp_deregister_script($handle);
|
942 |
wp_dequeue_script($handle);
|
943 |
}
|
@@ -1642,10 +1673,11 @@ SQL;
|
|
1642 |
$wpacuSettings = new Settings();
|
1643 |
|
1644 |
$data = array(
|
1645 |
-
|
1646 |
-
'
|
1647 |
-
'
|
1648 |
-
'
|
|
|
1649 |
);
|
1650 |
|
1651 |
$data['wpacu_page_just_updated'] = false;
|
@@ -1659,7 +1691,7 @@ SQL;
|
|
1659 |
if ($this->isUpdateable) {
|
1660 |
// [/wpacu_lite]
|
1661 |
$data['current'] = $currentUnloaded;
|
1662 |
-
|
1663 |
$data['all']['styles'] = $list['styles'];
|
1664 |
|
1665 |
if ($data['plugin_settings']['assets_list_layout'] === 'by-location') {
|
@@ -1736,7 +1768,8 @@ SQL;
|
|
1736 |
|
1737 |
$data['ignore_child'] = $this->getIgnoreChildren();
|
1738 |
|
1739 |
-
|
|
|
1740 |
} elseif ($isDashboardEditView) {
|
1741 |
// AJAX call (not the classic WP one) from the WP Dashboard
|
1742 |
// Send the altered value that has the initial position too
|
@@ -1758,9 +1791,11 @@ SQL;
|
|
1758 |
echo self::START_DEL_ENQUEUED . base64_encode(json_encode($list)) . self::END_DEL_ENQUEUED; // Loaded via wp_enqueue_scripts()
|
1759 |
echo self::START_DEL_HARDCODED . '{wpacu_hardcoded_assets}' . self::END_DEL_HARDCODED; // Make the user aware of any hardcoded CSS/JS (if any)
|
1760 |
|
1761 |
-
|
1762 |
-
|
1763 |
-
|
|
|
|
|
1764 |
}
|
1765 |
}
|
1766 |
|
@@ -1778,7 +1813,7 @@ SQL;
|
|
1778 |
$name // extra argument
|
1779 |
);
|
1780 |
|
1781 |
-
if (!
|
1782 |
return 'Template '.$templateFile.' not found.';
|
1783 |
}
|
1784 |
|
@@ -1802,9 +1837,11 @@ SQL;
|
|
1802 |
$postId = (int)Misc::getVar('post', 'post_id'); // if any (could be home page for instance)
|
1803 |
$pageUrl = Misc::getVar('post', 'page_url'); // post, page, custom post type, home page etc.
|
1804 |
|
|
|
|
|
1805 |
// Not homepage, but a post/page? Check if it's published in case AJAX call
|
1806 |
// wasn't stopped due to JS errors or other reasons
|
1807 |
-
if ($postId > 0 &&
|
1808 |
exit(__('The CSS/JS files will be available to manage once the post/page is published.', 'wp-asset-clean-up'));
|
1809 |
}
|
1810 |
|
@@ -1812,7 +1849,9 @@ SQL;
|
|
1812 |
|
1813 |
$settings = new Settings();
|
1814 |
|
1815 |
-
|
|
|
|
|
1816 |
$wpacuListE = Misc::getVar('post', 'wpacu_list_e');
|
1817 |
$wpacuListH = Misc::getVar('post', 'wpacu_list_h');
|
1818 |
} elseif (self::$domGetType === 'wp_remote_post') {
|
@@ -1852,6 +1891,10 @@ SQL;
|
|
1852 |
// EITHER the enqueued or hardcoded list of assets HAS TO BE RETRIEVED
|
1853 |
// Print out the 'error' response to make the user aware about it
|
1854 |
if ( ! ($wpacuListE || $wpacuListH) ) {
|
|
|
|
|
|
|
|
|
1855 |
$data = array(
|
1856 |
'is_dashboard_view' => true,
|
1857 |
'plugin_settings' => $settings->getAll(),
|
@@ -1863,12 +1906,10 @@ SQL;
|
|
1863 |
}
|
1864 |
}
|
1865 |
|
1866 |
-
// Enqueued CSS/JS (most of them or all)
|
1867 |
-
$jsonE = base64_decode($wpacuListE);
|
1868 |
-
|
1869 |
$data = array(
|
1870 |
-
|
1871 |
-
'
|
|
|
1872 |
);
|
1873 |
|
1874 |
// [START] Enqueued CSS/JS (most of them or all)
|
@@ -1891,6 +1932,10 @@ SQL;
|
|
1891 |
// Only set the following variables if there is at least one hardcoded LINK/STYLE/SCRIPT
|
1892 |
$jsonH = base64_decode( $wpacuListH );
|
1893 |
$data['all']['hardcoded'] = (array) json_decode( $jsonH, ARRAY_A );
|
|
|
|
|
|
|
|
|
1894 |
}
|
1895 |
// [END] Hardcoded (if any)
|
1896 |
|
@@ -1906,10 +1951,10 @@ SQL;
|
|
1906 |
$data['all'] = Sorting::sortListByAlpha($data['all']);
|
1907 |
}
|
1908 |
|
1909 |
-
//
|
1910 |
-
// Check any existing results
|
1911 |
$data['current'] = (array)json_decode($this->getAssetsUnloaded($postId));
|
1912 |
-
|
|
|
1913 |
if (! isset($data['current']['styles']) || !is_array($data['current']['styles'])) {
|
1914 |
$data['current']['styles'] = array();
|
1915 |
}
|
@@ -1920,7 +1965,9 @@ SQL;
|
|
1920 |
|
1921 |
$data['fetch_url'] = $pageUrl;
|
1922 |
$data['global_unload'] = $this->getGlobalUnload();
|
1923 |
-
|
|
|
|
|
1924 |
|
1925 |
// Post Information
|
1926 |
if ($postId > 0) {
|
@@ -1935,7 +1982,7 @@ SQL;
|
|
1935 |
$data['bulk_unloaded']['post_type'] = $this->getBulkUnload('post_type', $data['post_type']);
|
1936 |
$data['bulk_unloaded_type'] = 'post_type';
|
1937 |
$data['is_bulk_unloadable'] = true;
|
1938 |
-
|
1939 |
}
|
1940 |
|
1941 |
if ($postId > 0) {
|
@@ -1948,7 +1995,8 @@ SQL;
|
|
1948 |
$data['wpacu_type'] = $type;
|
1949 |
|
1950 |
$data['load_exceptions'] = $this->getLoadExceptions($type, $postId);
|
1951 |
-
|
|
|
1952 |
$data['total_scripts'] = ! empty($data['all']['scripts']) ? count($data['all']['scripts']) : 0;
|
1953 |
|
1954 |
$data['all_deps'] = $this->getAllDeps($data['all']);
|
@@ -1956,7 +2004,6 @@ SQL;
|
|
1956 |
$data['preloads'] = Preloads::instance()->getPreloads();
|
1957 |
|
1958 |
$data['handle_load_logged_in'] = $this->getHandleLoadLoggedIn();
|
1959 |
-
|
1960 |
$data['handle_notes'] = $this->getHandleNotes();
|
1961 |
|
1962 |
$data['ignore_child'] = $this->getIgnoreChildren();
|
@@ -2160,7 +2207,7 @@ SQL;
|
|
2160 |
// Loaded from WordPress directories (Core)
|
2161 |
if (in_array($parentDir, array('wp-includes', 'wp-admin')) || strpos($obj->src, '/plugins/jquery-updater/js/jquery-') !== false) {
|
2162 |
$data['all']['scripts'][$key]->wp = true;
|
2163 |
-
$data['core_scripts_loaded']
|
2164 |
}
|
2165 |
|
2166 |
// Determine source href
|
@@ -2173,7 +2220,7 @@ SQL;
|
|
2173 |
|
2174 |
if (in_array($obj->handle, array('jquery', 'jquery-core', 'jquery-migrate'))) {
|
2175 |
$data['all']['scripts'][$key]->wp = true;
|
2176 |
-
$data['core_scripts_loaded']
|
2177 |
}
|
2178 |
}
|
2179 |
}
|
@@ -2199,44 +2246,44 @@ SQL;
|
|
2199 |
$isInAdminPageViaAjax = (is_admin() && defined('DOING_AJAX') && DOING_AJAX);
|
2200 |
|
2201 |
if (empty($this->assetsRemoved)) {
|
2202 |
-
|
2203 |
-
|
2204 |
-
|
2205 |
-
|
2206 |
-
|
2207 |
-
|
2208 |
|
2209 |
-
@json_decode($this->assetsRemoved);
|
2210 |
|
2211 |
-
if (! (Misc::jsonLastError() === JSON_ERROR_NONE) || empty($this->assetsRemoved)) {
|
2212 |
-
|
2213 |
-
$this->assetsRemoved = json_encode(array('styles' => array(), 'scripts' => array()));
|
2214 |
}
|
2215 |
-
}
|
2216 |
|
2217 |
-
|
2218 |
|
2219 |
-
|
2220 |
-
|
2221 |
|
2222 |
-
|
2223 |
-
|
2224 |
-
|
2225 |
-
|
2226 |
-
|
2227 |
-
|
2228 |
|
2229 |
-
|
2230 |
-
|
2231 |
|
2232 |
-
|
2233 |
-
|
2234 |
-
|
2235 |
-
|
2236 |
-
|
2237 |
-
|
2238 |
|
2239 |
-
|
|
|
2240 |
|
2241 |
return $this->assetsRemoved;
|
2242 |
}
|
228 |
}, 10, 1);
|
229 |
}
|
230 |
|
231 |
+
add_filter('style_loader_tag', static function($styleTag, $tagHandle) {
|
232 |
+
// This is used to determine if the LINK is enqueued later on
|
233 |
+
// If the handle name is not showing up, then the LINK stylesheet has been hardcoded (not enqueued the WordPress way)
|
234 |
+
return str_replace('<link ', '<link data-wpacu-style-handle=\'' . $tagHandle . '\' ', $styleTag);
|
235 |
+
}, 10, 2);
|
236 |
+
|
237 |
+
add_filter('script_loader_tag', static function($scriptTag, $tagHandle) {
|
238 |
+
// This is used to determine if the SCRIPT is enqueued later on
|
239 |
+
// If the handle name is not showing up, then the SCRIPT has been hardcoded (not enqueued the WordPress way)
|
240 |
+
$reps = array('<script ' => '<script data-wpacu-script-handle=\'' . $tagHandle . '\' ');
|
241 |
+
|
242 |
+
return str_replace(array_keys($reps), array_values($reps), $scriptTag);
|
243 |
+
}, 10, 2);
|
244 |
+
}
|
245 |
|
246 |
// Early Triggers
|
247 |
add_action('wp', array($this, 'setVarsBeforeUpdate'), 8);
|
539 |
}
|
540 |
}
|
541 |
|
542 |
+
/* [START] Styles Dequeue */
|
543 |
/**
|
544 |
* See if there is any list with styles to be removed in JSON format
|
545 |
* Only the handles (the ID of the styles) is stored
|
694 |
|
695 |
$handle = trim($handle);
|
696 |
|
697 |
+
// Ignore auto generated handles for the hardcoded CSS as they were added for reference purposes
|
698 |
+
if (strpos($handle, 'wpacu_hardcoded_link_') === 0) {
|
699 |
+
continue;
|
700 |
+
}
|
701 |
+
|
702 |
+
if (strpos($handle, 'wpacu_hardcoded_style_') === 0) {
|
703 |
+
continue;
|
704 |
+
}
|
705 |
+
|
706 |
wp_deregister_style($handle);
|
707 |
wp_dequeue_style($handle);
|
708 |
}
|
960 |
continue;
|
961 |
}
|
962 |
|
963 |
+
// Ignore auto generated handles for the hardcoded CSS as they were added for reference purposes
|
964 |
+
if (strpos($handle, 'wpacu_hardcoded_script_src_') === 0) {
|
965 |
+
continue;
|
966 |
+
}
|
967 |
+
|
968 |
+
if (strpos($handle, 'wpacu_hardcoded_script_inline_') === 0) {
|
969 |
+
continue;
|
970 |
+
}
|
971 |
+
|
972 |
wp_deregister_script($handle);
|
973 |
wp_dequeue_script($handle);
|
974 |
}
|
1673 |
$wpacuSettings = new Settings();
|
1674 |
|
1675 |
$data = array(
|
1676 |
+
'is_frontend_view' => true,
|
1677 |
+
'is_updateable' => true,
|
1678 |
+
'post_type' => '',
|
1679 |
+
'bulk_unloaded' => array('post_type' => array()),
|
1680 |
+
'plugin_settings' => $wpacuSettings->getAll()
|
1681 |
);
|
1682 |
|
1683 |
$data['wpacu_page_just_updated'] = false;
|
1691 |
if ($this->isUpdateable) {
|
1692 |
// [/wpacu_lite]
|
1693 |
$data['current'] = $currentUnloaded;
|
1694 |
+
$data['all']['scripts'] = $list['scripts'];
|
1695 |
$data['all']['styles'] = $list['styles'];
|
1696 |
|
1697 |
if ($data['plugin_settings']['assets_list_layout'] === 'by-location') {
|
1768 |
|
1769 |
$data['ignore_child'] = $this->getIgnoreChildren();
|
1770 |
|
1771 |
+
wp_cache_set('wpacu_settings_frontend_data', $data);
|
1772 |
+
$this->parseTemplate('settings-frontend', $data, true);
|
1773 |
} elseif ($isDashboardEditView) {
|
1774 |
// AJAX call (not the classic WP one) from the WP Dashboard
|
1775 |
// Send the altered value that has the initial position too
|
1791 |
echo self::START_DEL_ENQUEUED . base64_encode(json_encode($list)) . self::END_DEL_ENQUEUED; // Loaded via wp_enqueue_scripts()
|
1792 |
echo self::START_DEL_HARDCODED . '{wpacu_hardcoded_assets}' . self::END_DEL_HARDCODED; // Make the user aware of any hardcoded CSS/JS (if any)
|
1793 |
|
1794 |
+
add_action('shutdown', static function() {
|
1795 |
+
// Do not allow further processes as cache plugins such as W3 Total Cache could alter the source code
|
1796 |
+
// and we need the non-minified version of the DOM (e.g. to determine the position of the elements)
|
1797 |
+
exit();
|
1798 |
+
});
|
1799 |
}
|
1800 |
}
|
1801 |
|
1813 |
$name // extra argument
|
1814 |
);
|
1815 |
|
1816 |
+
if (! is_file($templateFile)) {
|
1817 |
return 'Template '.$templateFile.' not found.';
|
1818 |
}
|
1819 |
|
1837 |
$postId = (int)Misc::getVar('post', 'post_id'); // if any (could be home page for instance)
|
1838 |
$pageUrl = Misc::getVar('post', 'page_url'); // post, page, custom post type, home page etc.
|
1839 |
|
1840 |
+
$postStatus = $postId > 0 ? get_post_status($postId) : false;
|
1841 |
+
|
1842 |
// Not homepage, but a post/page? Check if it's published in case AJAX call
|
1843 |
// wasn't stopped due to JS errors or other reasons
|
1844 |
+
if ($postId > 0 && ! in_array($postStatus, array('publish', 'private'))) {
|
1845 |
exit(__('The CSS/JS files will be available to manage once the post/page is published.', 'wp-asset-clean-up'));
|
1846 |
}
|
1847 |
|
1849 |
|
1850 |
$settings = new Settings();
|
1851 |
|
1852 |
+
// If the post status is 'private' only direct method can be used to fetch the assets
|
1853 |
+
// as the remote post one will return a 404 error since the page is accessed as a guest visitor
|
1854 |
+
if (self::$domGetType === 'direct' || $postStatus === 'private') {
|
1855 |
$wpacuListE = Misc::getVar('post', 'wpacu_list_e');
|
1856 |
$wpacuListH = Misc::getVar('post', 'wpacu_list_h');
|
1857 |
} elseif (self::$domGetType === 'wp_remote_post') {
|
1891 |
// EITHER the enqueued or hardcoded list of assets HAS TO BE RETRIEVED
|
1892 |
// Print out the 'error' response to make the user aware about it
|
1893 |
if ( ! ($wpacuListE || $wpacuListH) ) {
|
1894 |
+
if (isset($wpRemotePost['body']) && $wpRemotePost['body']) {
|
1895 |
+
$wpRemotePost['body'] = strip_tags($wpRemotePost['body'], '<p><a><strong><b><em><i>');
|
1896 |
+
}
|
1897 |
+
|
1898 |
$data = array(
|
1899 |
'is_dashboard_view' => true,
|
1900 |
'plugin_settings' => $settings->getAll(),
|
1906 |
}
|
1907 |
}
|
1908 |
|
|
|
|
|
|
|
1909 |
$data = array(
|
1910 |
+
'is_dashboard_view' => true,
|
1911 |
+
'post_id' => $postId,
|
1912 |
+
'plugin_settings' => $settings->getAll()
|
1913 |
);
|
1914 |
|
1915 |
// [START] Enqueued CSS/JS (most of them or all)
|
1932 |
// Only set the following variables if there is at least one hardcoded LINK/STYLE/SCRIPT
|
1933 |
$jsonH = base64_decode( $wpacuListH );
|
1934 |
$data['all']['hardcoded'] = (array) json_decode( $jsonH, ARRAY_A );
|
1935 |
+
|
1936 |
+
if (isset($data['all']['hardcoded']['within_conditional_comments']) && ! empty($data['all']['hardcoded']['within_conditional_comments'])) {
|
1937 |
+
wp_cache_set( 'wpacu_hardcoded_content_within_conditional_comments', $data['all']['hardcoded']['within_conditional_comments'] );
|
1938 |
+
}
|
1939 |
}
|
1940 |
// [END] Hardcoded (if any)
|
1941 |
|
1951 |
$data['all'] = Sorting::sortListByAlpha($data['all']);
|
1952 |
}
|
1953 |
|
1954 |
+
// Check any existing results
|
|
|
1955 |
$data['current'] = (array)json_decode($this->getAssetsUnloaded($postId));
|
1956 |
+
|
1957 |
+
// Set to empty if not set to avoid any errors
|
1958 |
if (! isset($data['current']['styles']) || !is_array($data['current']['styles'])) {
|
1959 |
$data['current']['styles'] = array();
|
1960 |
}
|
1965 |
|
1966 |
$data['fetch_url'] = $pageUrl;
|
1967 |
$data['global_unload'] = $this->getGlobalUnload();
|
1968 |
+
$data['is_bulk_unloadable'] = $data['bulk_unloaded_type'] = false;
|
1969 |
+
|
1970 |
+
$data['bulk_unloaded']['post_type'] = array('styles' => array(), 'scripts' => array());
|
1971 |
|
1972 |
// Post Information
|
1973 |
if ($postId > 0) {
|
1982 |
$data['bulk_unloaded']['post_type'] = $this->getBulkUnload('post_type', $data['post_type']);
|
1983 |
$data['bulk_unloaded_type'] = 'post_type';
|
1984 |
$data['is_bulk_unloadable'] = true;
|
1985 |
+
}
|
1986 |
}
|
1987 |
|
1988 |
if ($postId > 0) {
|
1995 |
$data['wpacu_type'] = $type;
|
1996 |
|
1997 |
$data['load_exceptions'] = $this->getLoadExceptions($type, $postId);
|
1998 |
+
|
1999 |
+
$data['total_styles'] = ! empty($data['all']['styles']) ? count($data['all']['styles']) : 0;
|
2000 |
$data['total_scripts'] = ! empty($data['all']['scripts']) ? count($data['all']['scripts']) : 0;
|
2001 |
|
2002 |
$data['all_deps'] = $this->getAllDeps($data['all']);
|
2004 |
$data['preloads'] = Preloads::instance()->getPreloads();
|
2005 |
|
2006 |
$data['handle_load_logged_in'] = $this->getHandleLoadLoggedIn();
|
|
|
2007 |
$data['handle_notes'] = $this->getHandleNotes();
|
2008 |
|
2009 |
$data['ignore_child'] = $this->getIgnoreChildren();
|
2207 |
// Loaded from WordPress directories (Core)
|
2208 |
if (in_array($parentDir, array('wp-includes', 'wp-admin')) || strpos($obj->src, '/plugins/jquery-updater/js/jquery-') !== false) {
|
2209 |
$data['all']['scripts'][$key]->wp = true;
|
2210 |
+
$data['core_scripts_loaded'] = true;
|
2211 |
}
|
2212 |
|
2213 |
// Determine source href
|
2220 |
|
2221 |
if (in_array($obj->handle, array('jquery', 'jquery-core', 'jquery-migrate'))) {
|
2222 |
$data['all']['scripts'][$key]->wp = true;
|
2223 |
+
$data['core_scripts_loaded'] = true;
|
2224 |
}
|
2225 |
}
|
2226 |
}
|
2246 |
$isInAdminPageViaAjax = (is_admin() && defined('DOING_AJAX') && DOING_AJAX);
|
2247 |
|
2248 |
if (empty($this->assetsRemoved)) {
|
2249 |
+
// For Home Page (latest blog posts)
|
2250 |
+
if ( $postId < 1 && ( $isInAdminPageViaAjax || Misc::isHomePage() ) ) {
|
2251 |
+
$this->assetsRemoved = get_option( WPACU_PLUGIN_ID . '_front_page_no_load' );
|
2252 |
+
} elseif ( $postId > 0 ) {
|
2253 |
+
$this->assetsRemoved = get_post_meta( $postId, '_' . WPACU_PLUGIN_ID . '_no_load', true );
|
2254 |
+
}
|
2255 |
|
2256 |
+
@json_decode( $this->assetsRemoved );
|
2257 |
|
2258 |
+
if ( ! ( Misc::jsonLastError() === JSON_ERROR_NONE ) || empty( $this->assetsRemoved ) ) {
|
2259 |
+
// Reset value to a JSON formatted one
|
2260 |
+
$this->assetsRemoved = json_encode( array( 'styles' => array(), 'scripts' => array() ) );
|
2261 |
}
|
|
|
2262 |
|
2263 |
+
$assetsRemovedDecoded = json_decode( $this->assetsRemoved, ARRAY_A );
|
2264 |
|
2265 |
+
if ( Misc::getVar( 'get', 'wpacu_unload_css' ) ) {
|
2266 |
+
$cssOnTheFlyList = $this->unloadAssetOnTheFly( 'css' );
|
2267 |
|
2268 |
+
if ( ! empty( $cssOnTheFlyList ) ) {
|
2269 |
+
foreach ( $cssOnTheFlyList as $cssHandle ) {
|
2270 |
+
$assetsRemovedDecoded['styles'][] = $cssHandle;
|
2271 |
+
}
|
2272 |
+
}
|
2273 |
+
}
|
2274 |
|
2275 |
+
if ( Misc::getVar( 'get', 'wpacu_unload_js' ) ) {
|
2276 |
+
$jsOnTheFlyList = $this->unloadAssetOnTheFly( 'js' );
|
2277 |
|
2278 |
+
if ( ! empty( $jsOnTheFlyList ) ) {
|
2279 |
+
foreach ( $jsOnTheFlyList as $jsHandle ) {
|
2280 |
+
$assetsRemovedDecoded['scripts'][] = $jsHandle;
|
2281 |
+
}
|
2282 |
+
}
|
2283 |
+
}
|
2284 |
|
2285 |
+
$this->assetsRemoved = json_encode( $assetsRemovedDecoded );
|
2286 |
+
}
|
2287 |
|
2288 |
return $this->assetsRemoved;
|
2289 |
}
|
classes/MetaBoxes.php
CHANGED
@@ -106,7 +106,7 @@ class MetaBoxes
|
|
106 |
if (! Main::instance()->settings['dashboard_show']) {
|
107 |
$isListFetchable = false;
|
108 |
$data['status'] = 2; // "Manage within Dashboard" is disabled in plugin's settings
|
109 |
-
} elseif ($postId < 1 || get_post_status($postId)
|
110 |
$data['status'] = 3; // "draft", "auto-draft" post (it has to be published)
|
111 |
$isListFetchable = false;
|
112 |
}
|
106 |
if (! Main::instance()->settings['dashboard_show']) {
|
107 |
$isListFetchable = false;
|
108 |
$data['status'] = 2; // "Manage within Dashboard" is disabled in plugin's settings
|
109 |
+
} elseif ($postId < 1 || ! in_array(get_post_status($postId), array('publish', 'private'))) {
|
110 |
$data['status'] = 3; // "draft", "auto-draft" post (it has to be published)
|
111 |
$isListFetchable = false;
|
112 |
}
|
classes/Misc.php
CHANGED
@@ -327,7 +327,7 @@ class Misc
|
|
327 |
|
328 |
$localPathToFile = ABSPATH . $path . $relSrc;
|
329 |
|
330 |
-
if (
|
331 |
return array('base_url' => $baseUrl, 'rel_src' => $path . $relSrc, 'file_exists' => 1);
|
332 |
}
|
333 |
}
|
@@ -598,7 +598,7 @@ HTML;
|
|
598 |
$sqlQuery = <<<SQL
|
599 |
SELECT pm.meta_value FROM `{$wpdb->prefix}postmeta` pm
|
600 |
LEFT JOIN `{$wpdb->prefix}posts` p ON (p.ID = pm.post_id)
|
601 |
-
WHERE p.post_status='publish' AND pm.meta_key='{$sqlPart}'
|
602 |
SQL;
|
603 |
|
604 |
$sqlResults = $wpdb->get_results($sqlQuery, ARRAY_A);
|
@@ -735,7 +735,7 @@ SQL;
|
|
735 |
}
|
736 |
|
737 |
// no readme.txt file in the plugin's root folder? skip it
|
738 |
-
if (!
|
739 |
continue;
|
740 |
}
|
741 |
|
327 |
|
328 |
$localPathToFile = ABSPATH . $path . $relSrc;
|
329 |
|
330 |
+
if (is_file($localPathToFile)) {
|
331 |
return array('base_url' => $baseUrl, 'rel_src' => $path . $relSrc, 'file_exists' => 1);
|
332 |
}
|
333 |
}
|
598 |
$sqlQuery = <<<SQL
|
599 |
SELECT pm.meta_value FROM `{$wpdb->prefix}postmeta` pm
|
600 |
LEFT JOIN `{$wpdb->prefix}posts` p ON (p.ID = pm.post_id)
|
601 |
+
WHERE (p.post_status='publish' OR p.post_status='private') AND pm.meta_key='{$sqlPart}'
|
602 |
SQL;
|
603 |
|
604 |
$sqlResults = $wpdb->get_results($sqlQuery, ARRAY_A);
|
735 |
}
|
736 |
|
737 |
// no readme.txt file in the plugin's root folder? skip it
|
738 |
+
if (! is_file(WP_PLUGIN_DIR.'/'.$pluginSlug.'/readme.txt')) {
|
739 |
continue;
|
740 |
}
|
741 |
|
classes/OptimiseAssets/CombineCss.php
CHANGED
@@ -132,7 +132,7 @@ class CombineCss
|
|
132 |
// Any link hrefs removed perhaps if the file wasn't combined?
|
133 |
$linkHrefs = $maybeDoCssCombine['link_hrefs'];
|
134 |
|
135 |
-
if (
|
136 |
$storageJsonContents[$docLocationTag][$mediaValue] = array(
|
137 |
'uri_to_final_css_file' => $uriToFinalCssFile,
|
138 |
'link_hrefs' => array_map(static function($href) {
|
@@ -327,7 +327,7 @@ HTML;
|
|
327 |
|
328 |
$skipIfFileExists = true;
|
329 |
|
330 |
-
if ($skipIfFileExists || !
|
331 |
// Change $finalCombinedCssContent as paths to fonts and images that are relative (e.g. ../, ../../) have to be updated + other optimization changes
|
332 |
$finalCombinedCssContent = '';
|
333 |
|
132 |
// Any link hrefs removed perhaps if the file wasn't combined?
|
133 |
$linkHrefs = $maybeDoCssCombine['link_hrefs'];
|
134 |
|
135 |
+
if (is_file($localFinalCssFile)) {
|
136 |
$storageJsonContents[$docLocationTag][$mediaValue] = array(
|
137 |
'uri_to_final_css_file' => $uriToFinalCssFile,
|
138 |
'link_hrefs' => array_map(static function($href) {
|
327 |
|
328 |
$skipIfFileExists = true;
|
329 |
|
330 |
+
if ($skipIfFileExists || ! is_file($localFinalCssFile)) {
|
331 |
// Change $finalCombinedCssContent as paths to fonts and images that are relative (e.g. ../, ../../) have to be updated + other optimization changes
|
332 |
$finalCombinedCssContent = '';
|
333 |
|
classes/OptimiseAssets/CombineJs.php
CHANGED
@@ -228,12 +228,12 @@ class CombineJs
|
|
228 |
// URI (e.g. /wp-content/cache/asset-cleanup/[file-name-here.js]) to the combined JS file
|
229 |
$uriToFinalJsFile = $maybeDoJsCombine['uri_final_js_file'];
|
230 |
|
231 |
-
if (!
|
232 |
return $htmlSource; // something is not right as the file wasn't created, we will return the original HTML source
|
233 |
}
|
234 |
|
235 |
$groupScriptSrcsFilter = array_map(static function($src) {
|
236 |
-
return str_replace(site_url(), '
|
237 |
}, $groupScriptSrcs);
|
238 |
|
239 |
$finalCacheList[$docLocationScript][$groupNo] = array(
|
@@ -445,7 +445,7 @@ HTML;
|
|
445 |
|
446 |
$skipIfFileExists = true;
|
447 |
|
448 |
-
if ($skipIfFileExists || !
|
449 |
// Change $assetsContents as paths to fonts and images that are relative (e.g. ../, ../../) have to be updated
|
450 |
$finalJsContents = '';
|
451 |
|
228 |
// URI (e.g. /wp-content/cache/asset-cleanup/[file-name-here.js]) to the combined JS file
|
229 |
$uriToFinalJsFile = $maybeDoJsCombine['uri_final_js_file'];
|
230 |
|
231 |
+
if (! is_file($localFinalJsFile)) {
|
232 |
return $htmlSource; // something is not right as the file wasn't created, we will return the original HTML source
|
233 |
}
|
234 |
|
235 |
$groupScriptSrcsFilter = array_map(static function($src) {
|
236 |
+
return str_replace(site_url(), '', $src);
|
237 |
}, $groupScriptSrcs);
|
238 |
|
239 |
$finalCacheList[$docLocationScript][$groupNo] = array(
|
445 |
|
446 |
$skipIfFileExists = true;
|
447 |
|
448 |
+
if ($skipIfFileExists || ! is_file($localFinalJsFile)) {
|
449 |
// Change $assetsContents as paths to fonts and images that are relative (e.g. ../, ../../) have to be updated
|
450 |
$finalJsContents = '';
|
451 |
|
classes/OptimiseAssets/MinifyCss.php
CHANGED
@@ -5,7 +5,6 @@ use WpAssetCleanUp\CleanUp;
|
|
5 |
use WpAssetCleanUp\Main;
|
6 |
use WpAssetCleanUp\Menu;
|
7 |
use WpAssetCleanUp\MetaBoxes;
|
8 |
-
use MatthiasMullie\Minify;
|
9 |
|
10 |
/**
|
11 |
* Class MinifyCss
|
@@ -15,13 +14,26 @@ class MinifyCss
|
|
15 |
{
|
16 |
/**
|
17 |
* @param $cssContent
|
|
|
18 |
*
|
19 |
-
* @return string
|
20 |
*/
|
21 |
-
public static function applyMinification($cssContent)
|
22 |
{
|
23 |
-
|
24 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
}
|
26 |
|
27 |
/**
|
@@ -128,10 +140,23 @@ class MinifyCss
|
|
128 |
$originalTagContents = (isset($styleTagObj->nodeValue) && trim($styleTagObj->nodeValue) !== '') ? $styleTagObj->nodeValue : false;
|
129 |
|
130 |
if ($originalTagContents) {
|
131 |
-
$newTagContents =
|
132 |
-
|
133 |
-
|
134 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
135 |
libxml_clear_errors();
|
136 |
}
|
137 |
}
|
5 |
use WpAssetCleanUp\Main;
|
6 |
use WpAssetCleanUp\Menu;
|
7 |
use WpAssetCleanUp\MetaBoxes;
|
|
|
8 |
|
9 |
/**
|
10 |
* Class MinifyCss
|
14 |
{
|
15 |
/**
|
16 |
* @param $cssContent
|
17 |
+
* @param bool $forInlineStyle
|
18 |
*
|
19 |
+
* @return string
|
20 |
*/
|
21 |
+
public static function applyMinification($cssContent, $forInlineStyle = false)
|
22 |
{
|
23 |
+
if (class_exists('\MatthiasMullie\Minify\CSS')) {
|
24 |
+
$minifier = new \MatthiasMullie\Minify\CSS( $cssContent );
|
25 |
+
|
26 |
+
if ( $forInlineStyle ) {
|
27 |
+
// If the minification is applied for inlined CSS (within STYLE)
|
28 |
+
// Leave the background URLs unchanged as it sometimes lead to issues
|
29 |
+
$minifier->setImportExtensions( array() );
|
30 |
+
}
|
31 |
+
|
32 |
+
return trim( $minifier->minify() );
|
33 |
+
}
|
34 |
+
|
35 |
+
return $cssContent;
|
36 |
+
|
37 |
}
|
38 |
|
39 |
/**
|
140 |
$originalTagContents = (isset($styleTagObj->nodeValue) && trim($styleTagObj->nodeValue) !== '') ? $styleTagObj->nodeValue : false;
|
141 |
|
142 |
if ($originalTagContents) {
|
143 |
+
$newTagContents = OptimizeCss::maybeAlterCssContent($originalTagContents, true, true, array('just_minify'));
|
144 |
+
|
145 |
+
// Only comments or no content added to the inline STYLE tag? Strip it completely to reduce the number of DOM elements
|
146 |
+
if ($newTagContents === '/**/' || ! $newTagContents) {
|
147 |
+
$htmlSource = str_ireplace('>'.$originalTagContents.'</style', '></style', $htmlSource);
|
148 |
+
|
149 |
+
preg_match_all('#<style.*?>#si', $originalTag, $matchesFromStyle);
|
150 |
+
|
151 |
+
if (isset($matchesFromStyle[0][0]) && $styleTagWithoutContent = $matchesFromStyle[0][0]) {
|
152 |
+
$styleTagWithoutContentAlt = str_replace('"', '\'', $styleTagWithoutContent);
|
153 |
+
$htmlSource = str_ireplace(array($styleTagWithoutContent.'</style>', $styleTagWithoutContentAlt.'</style>'), '', $htmlSource);
|
154 |
+
}
|
155 |
+
} else {
|
156 |
+
// It has content; do the replacement
|
157 |
+
$htmlSource = str_ireplace( '>' . $originalTagContents . '</style',
|
158 |
+
'>' . $newTagContents . '</style', $htmlSource );
|
159 |
+
}
|
160 |
libxml_clear_errors();
|
161 |
}
|
162 |
}
|
classes/OptimiseAssets/MinifyJs.php
CHANGED
@@ -4,7 +4,6 @@ namespace WpAssetCleanUp\OptimiseAssets;
|
|
4 |
use WpAssetCleanUp\Main;
|
5 |
use WpAssetCleanUp\Menu;
|
6 |
use WpAssetCleanUp\MetaBoxes;
|
7 |
-
use MatthiasMullie\Minify;
|
8 |
|
9 |
/**
|
10 |
* Class MinifyJs
|
@@ -19,10 +18,14 @@ class MinifyJs
|
|
19 |
*/
|
20 |
public static function applyMinification($jsContent)
|
21 |
{
|
22 |
-
|
23 |
-
|
|
|
24 |
}
|
25 |
|
|
|
|
|
|
|
26 |
/**
|
27 |
* @param $src
|
28 |
* @param string $handle
|
4 |
use WpAssetCleanUp\Main;
|
5 |
use WpAssetCleanUp\Menu;
|
6 |
use WpAssetCleanUp\MetaBoxes;
|
|
|
7 |
|
8 |
/**
|
9 |
* Class MinifyJs
|
18 |
*/
|
19 |
public static function applyMinification($jsContent)
|
20 |
{
|
21 |
+
if (class_exists('\MatthiasMullie\Minify\JS')) {
|
22 |
+
$minifier = new \MatthiasMullie\Minify\JS($jsContent);
|
23 |
+
return trim($minifier->minify());
|
24 |
}
|
25 |
|
26 |
+
return $jsContent;
|
27 |
+
}
|
28 |
+
|
29 |
/**
|
30 |
* @param $src
|
31 |
* @param string $handle
|
classes/OptimiseAssets/OptimizeCommon.php
CHANGED
@@ -3,6 +3,7 @@ namespace WpAssetCleanUp\OptimiseAssets;
|
|
3 |
|
4 |
use WpAssetCleanUp\CleanUp;
|
5 |
use WpAssetCleanUp\FileSystem;
|
|
|
6 |
use WpAssetCleanUp\Main;
|
7 |
use WpAssetCleanUp\Menu;
|
8 |
use WpAssetCleanUp\Misc;
|
@@ -40,7 +41,7 @@ class OptimizeCommon
|
|
40 |
*/
|
41 |
public function init()
|
42 |
{
|
43 |
-
add_action('switch_theme',
|
44 |
add_action('after_switch_theme', array($this, 'clearAllCache'));
|
45 |
|
46 |
// Is WP Rocket's page cache cleared? Clear Asset CleanUp's CSS cache files too
|
@@ -55,6 +56,30 @@ class OptimizeCommon
|
|
55 |
self::clearAllCache(true);
|
56 |
});
|
57 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
// Make sure HTML changes are applied to cached pages from "Cache Enabler" plugin
|
59 |
add_filter('cache_enabler_before_store', static function($htmlSource) {
|
60 |
return self::alterHtmlSource($htmlSource);
|
@@ -73,6 +98,8 @@ class OptimizeCommon
|
|
73 |
}, PHP_INT_MAX);
|
74 |
|
75 |
add_action('wp_loaded', array($this, 'maybeAlterHtmlSource'), 1);
|
|
|
|
|
76 |
}
|
77 |
|
78 |
/**
|
@@ -80,10 +107,23 @@ class OptimizeCommon
|
|
80 |
*/
|
81 |
public function maybeAlterHtmlSource()
|
82 |
{
|
83 |
-
if (is_admin()) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
return;
|
85 |
}
|
86 |
|
|
|
|
|
|
|
87 |
ob_start(static function($htmlSource) {
|
88 |
// Do not do any optimization if "Test Mode" is Enabled
|
89 |
if (! Menu::userCanManageAssets() && Main::instance()->settings['test_mode']) {
|
@@ -102,9 +142,10 @@ class OptimizeCommon
|
|
102 |
public static function alterHtmlSource($htmlSource)
|
103 |
{
|
104 |
// Dashboard View
|
|
|
|
|
105 |
if (Main::instance()->isGetAssetsCall) {
|
106 |
-
|
107 |
-
$htmlSource = str_replace('{wpacu_hardcoded_assets}', $anyHardCodedAssets, $htmlSource);
|
108 |
}
|
109 |
|
110 |
// This is useful to avoid changing the DOM via wp_loaded action hook
|
@@ -121,8 +162,15 @@ class OptimizeCommon
|
|
121 |
|
122 |
$htmlSource = apply_filters( 'wpacu_html_source_before_optimization', $htmlSource );
|
123 |
|
124 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
|
|
|
126 |
$htmlSource = OptimizeJs::alterHtmlSource( $htmlSource );
|
127 |
|
128 |
$htmlSource = Main::instance()->settings['remove_generator_tag'] ? CleanUp::removeMetaGenerators( $htmlSource ) : $htmlSource;
|
@@ -178,134 +226,6 @@ class OptimizeCommon
|
|
178 |
return apply_filters( 'wpacu_html_source_after_optimization', $htmlSource );
|
179 |
}
|
180 |
|
181 |
-
/**
|
182 |
-
* @param $htmlSource
|
183 |
-
*
|
184 |
-
* @return string
|
185 |
-
*/
|
186 |
-
public static function getHardcodedAssets($htmlSource)
|
187 |
-
{
|
188 |
-
$htmlSourceAlt = self::cleanerHtmlSource($htmlSource);
|
189 |
-
|
190 |
-
$hardCodedAssets = array(
|
191 |
-
'link_and_style_tags' => array(), // LINK (rel="stylesheet") & STYLE (inline)
|
192 |
-
'script_tags_src_and_inline' => array(), // SCRIPT (with "src" attribute) & SCRIPT (inline)
|
193 |
-
);
|
194 |
-
|
195 |
-
/*
|
196 |
-
* [START] Collect Hardcoded LINK (stylesheet) & STYLE tags
|
197 |
-
*/
|
198 |
-
// Extract all the LINK tag that do not have "data-wpacu-debug-style-handle="
|
199 |
-
preg_match_all('#(?=(?P<link_tag><link[^>]*stylesheet[^>]*(>)))|(?=(?P<style_tag><style[^>]*?>.*</style>))#Umsi', $htmlSourceAlt, $matchesSourcesFromTags, PREG_SET_ORDER);
|
200 |
-
|
201 |
-
if (! empty($matchesSourcesFromTags)) {
|
202 |
-
foreach ($matchesSourcesFromTags as $matchedTagIndex => $matchedTag) {
|
203 |
-
// LINK "stylesheet" tags (if any)
|
204 |
-
if (isset($matchedTag['link_tag']) && trim($matchedTag['link_tag']) !== '' && (trim(strip_tags($matchedTag['link_tag'])) === '')) {
|
205 |
-
$matchedTagOutput = trim($matchedTag['link_tag']);
|
206 |
-
|
207 |
-
if ( strpos( $matchedTagOutput, 'data-wpacu-style-handle=' ) !== false ) {
|
208 |
-
// Skip the LINK with src that was enqueued properly and keep the hardcoded ones
|
209 |
-
continue;
|
210 |
-
}
|
211 |
-
|
212 |
-
$hardCodedAssets['link_and_style_tags'][] = $matchedTagOutput;
|
213 |
-
}
|
214 |
-
|
215 |
-
// STYLE inline tags (if any)
|
216 |
-
if (isset($matchedTag['style_tag']) && trim($matchedTag['style_tag']) !== '') {
|
217 |
-
$matchedTagOutput = trim($matchedTag['style_tag']);
|
218 |
-
|
219 |
-
// Do not add to the list elements such as Emojis (not relevant for hard-coded tags)
|
220 |
-
if (strpos($matchedTagOutput, 'img.wp-smiley') !== false
|
221 |
-
&& strpos($matchedTagOutput, 'img.emoji') !== false
|
222 |
-
&& strpos($matchedTagOutput, '!important;') !== false) {
|
223 |
-
continue;
|
224 |
-
}
|
225 |
-
|
226 |
-
foreach ( wp_styles()->done as $cssHandle ) {
|
227 |
-
if ( strpos( $matchedTagOutput, '<style id=\'' . trim( $cssHandle ) . '-inline-css\'' ) !== false ) {
|
228 |
-
// Do not consider the STYLE added via WordPress with wp_add_inline_style() as it's not hardcoded
|
229 |
-
continue 2;
|
230 |
-
}
|
231 |
-
}
|
232 |
-
|
233 |
-
$hardCodedAssets['link_and_style_tags'][] = $matchedTagOutput;
|
234 |
-
}
|
235 |
-
}
|
236 |
-
}
|
237 |
-
/*
|
238 |
-
* [END] Collect Hardcoded LINK (stylesheet) & STYLE tags
|
239 |
-
*/
|
240 |
-
|
241 |
-
/*
|
242 |
-
* [START] Collect Hardcoded SCRIPT (src/inline)
|
243 |
-
*/
|
244 |
-
preg_match_all('@<script[^>]*?>.*?</script>@si', $htmlSourceAlt, $matchesScriptTags, PREG_SET_ORDER);
|
245 |
-
|
246 |
-
if ( isset(wp_scripts()->done) && ! empty(wp_scripts()->done) ) {
|
247 |
-
foreach ( wp_scripts()->done as $assetHandle ) {
|
248 |
-
// Go through the STYLE list
|
249 |
-
foreach ( $matchesScriptTags as $matchedTagIndex => $matchedTag ) {
|
250 |
-
if ( isset( $matchedTag[0] ) ) {
|
251 |
-
$matchedTagOutput = trim( $matchedTag[0] );
|
252 |
-
|
253 |
-
if (strpos($matchedTagOutput, 'window._wpemojiSettings') !== false
|
254 |
-
&& strpos($matchedTagOutput, 'twemoji') !== false) {
|
255 |
-
unset( $matchesScriptTags[ $matchedTagIndex ] );
|
256 |
-
continue;
|
257 |
-
}
|
258 |
-
|
259 |
-
// Check the type and only allow SCRIPT tags with type='text/javascript' or no type at all (it default to 'text/javascript')
|
260 |
-
$matchedTagInner = strip_tags($matchedTagOutput);
|
261 |
-
$matchedTagOnlyTags = str_replace($matchedTagInner, '', $matchedTagOutput);
|
262 |
-
preg_match_all('#type=(["\'])' . '(.*)' . '(["\'])#Usmi', $matchedTagOnlyTags, $outputMatches);
|
263 |
-
$scriptType = isset($outputMatches[2][0]) ? trim($outputMatches[2][0], '"\'') : 'text/javascript';
|
264 |
-
|
265 |
-
if (strpos($scriptType, 'text/javascript') === false) {
|
266 |
-
unset( $matchesScriptTags[ $matchedTagIndex ] );
|
267 |
-
}
|
268 |
-
|
269 |
-
if ( strpos( $matchedTagOutput, 'data-wpacu-script-handle=' ) !== false ) {
|
270 |
-
unset( $matchesScriptTags[ $matchedTagIndex ] ); // remove the SCRIPT with src that was enqueued properly and keep the hardcoded ones
|
271 |
-
continue;
|
272 |
-
}
|
273 |
-
|
274 |
-
if ( strpos( $matchedTagOutput, 'data-wpacu-own-inline-script=') !== false ) {
|
275 |
-
unset( $matchesScriptTags[ $matchedTagIndex ] ); // remove plugin's own SCRIPT tags as they are not relevant in this context
|
276 |
-
continue;
|
277 |
-
}
|
278 |
-
|
279 |
-
// Now, go through the list of inline SCRIPTs associated with an enqueued SCRIPT (with "src" attribute)
|
280 |
-
$anyInlineAssocWithJsHandle = OptimizeJs::getInlineAssociatedWithScriptHandle($assetHandle, wp_scripts()->registered, 'handle', false);
|
281 |
-
|
282 |
-
if (! empty($anyInlineAssocWithJsHandle)) {
|
283 |
-
foreach ($anyInlineAssocWithJsHandle as $jsInlineTagContent) {
|
284 |
-
if (trim($jsInlineTagContent) !== '' && strpos($matchedTagOutput, $jsInlineTagContent)) {
|
285 |
-
unset( $matchesScriptTags[ $matchedTagIndex ] );
|
286 |
-
}
|
287 |
-
}
|
288 |
-
}
|
289 |
-
}
|
290 |
-
}
|
291 |
-
}
|
292 |
-
}
|
293 |
-
|
294 |
-
// Go through the remaining hardcoded (SCRIPT) ones (if any)
|
295 |
-
if (isset($matchesScriptTags) && ! empty($matchesScriptTags)) {
|
296 |
-
foreach ($matchesScriptTags as $matchedTag) {
|
297 |
-
if (isset($matchedTag[0]) && $matchedTag[0] && strpos($matchedTag[0], '<script') === 0) {
|
298 |
-
$hardCodedAssets['script_src_and_inline_tags'][] = trim( $matchedTag[0] );
|
299 |
-
}
|
300 |
-
}
|
301 |
-
}
|
302 |
-
/*
|
303 |
-
* [END] Collect Hardcoded SCRIPT (src/inline)
|
304 |
-
*/
|
305 |
-
|
306 |
-
return base64_encode(json_encode($hardCodedAssets));
|
307 |
-
}
|
308 |
-
|
309 |
/**
|
310 |
* @return string
|
311 |
*/
|
@@ -320,20 +240,33 @@ class OptimizeCommon
|
|
320 |
}
|
321 |
|
322 |
/**
|
323 |
-
* Removes HTML comments
|
324 |
* and not combined with other JavaScript files in case the method is called from CombineJs.php
|
325 |
*
|
326 |
* The following output is used only for fetching purposes
|
327 |
* It will not be part of the final output
|
328 |
*
|
329 |
* @param $htmlSource
|
|
|
330 |
*
|
331 |
* @return string|string[]|null
|
332 |
*/
|
333 |
-
public static function cleanerHtmlSource($htmlSource)
|
334 |
{
|
335 |
$htmlSourceBeforeAlt = $htmlSource;
|
336 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
337 |
$sourceHasComments = strpos($htmlSource, '<!--') !== false && strpos($htmlSource, '-->') !== false;
|
338 |
|
339 |
if (! $sourceHasComments) {
|
@@ -443,7 +376,7 @@ class OptimizeCommon
|
|
443 |
$localAssetPath = $localAssetPathAlt . '.' . $assetType;
|
444 |
}
|
445 |
|
446 |
-
if (strrchr($localAssetPath, '.') === '.' . $assetType &&
|
447 |
return $localAssetPath;
|
448 |
}
|
449 |
|
@@ -509,7 +442,7 @@ class OptimizeCommon
|
|
509 |
}
|
510 |
|
511 |
// Perhaps the URL starts with / (not //) and site_url() was not used
|
512 |
-
if (strpos($sourceFromTag, '/') === 0 && strpos($sourceFromTag, '//') !== 0 &&
|
513 |
$isRelPath = true;
|
514 |
}
|
515 |
|
@@ -699,14 +632,15 @@ class OptimizeCommon
|
|
699 |
$requestUriPart = $requestUri;
|
700 |
|
701 |
// Same results for Homepage (any pagination), 404 Not Found & Date archive pages
|
|
|
702 |
if ($requestUri === '/' || is_404() || is_date() || Misc::isHomePage()) {
|
703 |
$requestUriPart = '';
|
704 |
}
|
705 |
|
706 |
// Treat the pagination pages the same as the main page (same it's done for the unloading rules)
|
707 |
-
if (($
|
708 |
$paginationBase = isset($GLOBALS['wp_rewrite']->pagination_base) ? $GLOBALS['wp_rewrite']->pagination_base : 'page';
|
709 |
-
$requestUriPart = str_replace('/'.$paginationBase.'/'.$
|
710 |
}
|
711 |
|
712 |
$dirToFilename = WP_CONTENT_DIR . dirname($relPathAssetCacheDir) . '/_storage/'
|
@@ -721,7 +655,7 @@ class OptimizeCommon
|
|
721 |
$assetsFile = $dirToFilename . $jsonStorageFile;
|
722 |
}
|
723 |
|
724 |
-
if (!
|
725 |
return array();
|
726 |
}
|
727 |
|
@@ -745,26 +679,25 @@ class OptimizeCommon
|
|
745 |
$optionValueArray = @json_decode($optionValue, ARRAY_A);
|
746 |
|
747 |
if ($forType === 'combine') {
|
748 |
-
$isValidJsonCombinedData = false;
|
749 |
-
|
750 |
if (! empty($optionValueArray)) {
|
751 |
foreach ($optionValueArray as $assetsPosition => $assetsValues) {
|
752 |
foreach ($assetsValues as $finalValues) {
|
753 |
-
if
|
754 |
-
|
755 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
756 |
}
|
757 |
}
|
758 |
}
|
759 |
}
|
760 |
-
|
761 |
-
if ($assetType === 'css' && $isValidJsonCombinedData) {
|
762 |
-
return $optionValueArray;
|
763 |
-
}
|
764 |
-
|
765 |
-
if ($assetType === 'js' && ! empty($optionValueArray)) {
|
766 |
-
return $optionValueArray;
|
767 |
-
}
|
768 |
} elseif ($forType === 'item') {
|
769 |
return $optionValueArray;
|
770 |
}
|
@@ -894,7 +827,7 @@ class OptimizeCommon
|
|
894 |
$assetsFile = $dirToFilename . $jsonStorageFile;
|
895 |
}
|
896 |
|
897 |
-
if (
|
898 |
@unlink($assetsFile);
|
899 |
}
|
900 |
}
|
@@ -924,35 +857,59 @@ class OptimizeCommon
|
|
924 |
$assetCleanUpCacheDir = WP_CONTENT_DIR . self::getRelPathPluginCacheDir();
|
925 |
$storageDir = $assetCleanUpCacheDir . '_storage';
|
926 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
927 |
$userIdDirs = array();
|
928 |
|
929 |
if (is_dir($assetCleanUpCacheDir)) {
|
930 |
$storageEmptyDirs = $allJsons = $allAssets = $allAssetsToKeep = array();
|
931 |
|
932 |
-
$
|
933 |
-
|
934 |
-
|
935 |
-
$
|
936 |
-
|
937 |
-
|
938 |
-
if (is_file($item) && in_array($fileExt, $fileExtToRemove) && (! in_array($fileBaseName, $skipFiles))) {
|
939 |
-
$isJsonFile = ($fileExt === '.json');
|
940 |
-
$isAssetFile = in_array($fileExt, array('.css', '.js'));
|
941 |
|
942 |
-
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
947 |
|
948 |
-
|
949 |
-
|
|
|
950 |
}
|
|
|
|
|
|
|
|
|
|
|
951 |
}
|
952 |
-
} elseif (is_dir($item) && (strpos($item, '/css/logged-in/') !== false || strpos($item, '/js/logged-in/') !== false)) {
|
953 |
-
$userIdDirs[] = $item;
|
954 |
-
} elseif ($item != $storageDir && strpos($item, $storageDir) !== false) {
|
955 |
-
$storageEmptyDirs[] = $item;
|
956 |
}
|
957 |
}
|
958 |
|
@@ -1275,7 +1232,7 @@ SQL;
|
|
1275 |
$dirToFilename = WP_CONTENT_DIR . self::getRelPathPluginCacheDir() . '_storage/'.self::$optimizedSingleFilesDir.'/';
|
1276 |
$assetsFile = $dirToFilename . $transient.'.json';
|
1277 |
|
1278 |
-
if (
|
1279 |
$contents = trim(FileSystem::file_get_contents($assetsFile));
|
1280 |
|
1281 |
if (! $contents) {
|
@@ -1389,4 +1346,58 @@ SQL;
|
|
1389 |
|
1390 |
return $cdnUrlFinal;
|
1391 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1392 |
}
|
3 |
|
4 |
use WpAssetCleanUp\CleanUp;
|
5 |
use WpAssetCleanUp\FileSystem;
|
6 |
+
use WpAssetCleanUp\HardcodedAssets;
|
7 |
use WpAssetCleanUp\Main;
|
8 |
use WpAssetCleanUp\Menu;
|
9 |
use WpAssetCleanUp\Misc;
|
41 |
*/
|
42 |
public function init()
|
43 |
{
|
44 |
+
add_action('switch_theme', array($this, 'clearAllCache'));
|
45 |
add_action('after_switch_theme', array($this, 'clearAllCache'));
|
46 |
|
47 |
// Is WP Rocket's page cache cleared? Clear Asset CleanUp's CSS cache files too
|
56 |
self::clearAllCache(true);
|
57 |
});
|
58 |
|
59 |
+
// When a post is moved to the trash / deleted
|
60 |
+
// clear its cache as its useless and there's no point in having extra files/directories in the caching directory
|
61 |
+
add_action('wp_trash_post', array($this, 'clearJsonStorageForPost')); // $postId is passed as a parameter
|
62 |
+
add_action('delete_post', array($this, 'clearJsonStorageForPost')); // $postId is passed as a parameter
|
63 |
+
|
64 |
+
// When a post is edited are within the Dashboard
|
65 |
+
add_action('admin_init', static function() {
|
66 |
+
if (($postId = Misc::getVar('get', 'post')) && Misc::getVar('get', 'action') === 'edit') {
|
67 |
+
self::clearJsonStorageForPost($postId, true);
|
68 |
+
}
|
69 |
+
});
|
70 |
+
|
71 |
+
// Keep used resources to the minimum and trigger any clearing of the page's CSS/JS caching
|
72 |
+
// for the admin while he has the right privileges and a single post page is visited
|
73 |
+
add_action('wp', static function() {
|
74 |
+
if (! is_admin() && Menu::userCanManageAssets() && is_singular()) {
|
75 |
+
global $post;
|
76 |
+
|
77 |
+
if (isset($post->ID) && $post->ID) {
|
78 |
+
self::clearJsonStorageForPost($post->ID, true);
|
79 |
+
}
|
80 |
+
}
|
81 |
+
});
|
82 |
+
|
83 |
// Make sure HTML changes are applied to cached pages from "Cache Enabler" plugin
|
84 |
add_filter('cache_enabler_before_store', static function($htmlSource) {
|
85 |
return self::alterHtmlSource($htmlSource);
|
98 |
}, PHP_INT_MAX);
|
99 |
|
100 |
add_action('wp_loaded', array($this, 'maybeAlterHtmlSource'), 1);
|
101 |
+
|
102 |
+
HardcodedAssets::init();
|
103 |
}
|
104 |
|
105 |
/**
|
107 |
*/
|
108 |
public function maybeAlterHtmlSource()
|
109 |
{
|
110 |
+
if (is_admin()) {
|
111 |
+
// Don't apply any changes if not in the front-end view (e.g. Dashboard view)
|
112 |
+
return;
|
113 |
+
}
|
114 |
+
|
115 |
+
/*
|
116 |
+
* CASE 1: The admin is logged-in and manages the assets in the front-end view
|
117 |
+
* */
|
118 |
+
if (HardcodedAssets::useBufferingForEditFrontEndView()) {
|
119 |
+
// Alter the HTML via "shutdown" action hook to catch hardcoded CSS/JS that is added via output buffering such as the ones in "Smart Slider 3"
|
120 |
+
// via HardcodedAssets.php
|
121 |
return;
|
122 |
}
|
123 |
|
124 |
+
/*
|
125 |
+
* CASE 2 (most common): The admin is logged-in, but "Manage in the front-end" is deactivated OR the visitor is just a guest
|
126 |
+
* */
|
127 |
ob_start(static function($htmlSource) {
|
128 |
// Do not do any optimization if "Test Mode" is Enabled
|
129 |
if (! Menu::userCanManageAssets() && Main::instance()->settings['test_mode']) {
|
142 |
public static function alterHtmlSource($htmlSource)
|
143 |
{
|
144 |
// Dashboard View
|
145 |
+
// Return the HTML as it is without performing any optimisations to save resources
|
146 |
+
// Since the page has to be as clean as possible when fetching the assets
|
147 |
if (Main::instance()->isGetAssetsCall) {
|
148 |
+
return $htmlSource;
|
|
|
149 |
}
|
150 |
|
151 |
// This is useful to avoid changing the DOM via wp_loaded action hook
|
162 |
|
163 |
$htmlSource = apply_filters( 'wpacu_html_source_before_optimization', $htmlSource );
|
164 |
|
165 |
+
// For the admin
|
166 |
+
$anyHardCodedAssetsList = HardcodedAssets::getAll( $htmlSource, false );
|
167 |
+
|
168 |
+
// The admin is editing the CSS/JS list within the front-end view
|
169 |
+
if (HardcodedAssets::useBufferingForEditFrontEndView()) {
|
170 |
+
wp_cache_set('wpacu_hardcoded_assets_encoded', base64_encode( json_encode($anyHardCodedAssetsList) ));
|
171 |
+
}
|
172 |
|
173 |
+
$htmlSource = OptimizeCss::alterHtmlSource( $htmlSource );
|
174 |
$htmlSource = OptimizeJs::alterHtmlSource( $htmlSource );
|
175 |
|
176 |
$htmlSource = Main::instance()->settings['remove_generator_tag'] ? CleanUp::removeMetaGenerators( $htmlSource ) : $htmlSource;
|
226 |
return apply_filters( 'wpacu_html_source_after_optimization', $htmlSource );
|
227 |
}
|
228 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
229 |
/**
|
230 |
* @return string
|
231 |
*/
|
240 |
}
|
241 |
|
242 |
/**
|
243 |
+
* Removes HTML comments
|
244 |
* and not combined with other JavaScript files in case the method is called from CombineJs.php
|
245 |
*
|
246 |
* The following output is used only for fetching purposes
|
247 |
* It will not be part of the final output
|
248 |
*
|
249 |
* @param $htmlSource
|
250 |
+
* @param $params
|
251 |
*
|
252 |
* @return string|string[]|null
|
253 |
*/
|
254 |
+
public static function cleanerHtmlSource($htmlSource, $params = array())
|
255 |
{
|
256 |
$htmlSourceBeforeAlt = $htmlSource;
|
257 |
|
258 |
+
// Case: Return the HTML source without any conditional comments and the content within them
|
259 |
+
if (in_array('strip_content_between_conditional_comments', $params)) {
|
260 |
+
preg_match_all('#<!--\[if(.*?)]>(<!-->|-->|\s|)(.*?)(<!--<!|<!)\[endif]-->#si', $htmlSource, $matchedContent);
|
261 |
+
|
262 |
+
if (isset($matchedContent[0]) && ! empty($matchedContent[0])) {
|
263 |
+
foreach ($matchedContent[0] as $conditionalHtmlContent) {
|
264 |
+
$htmlSourceBeforeAlt = str_replace($conditionalHtmlContent, '', $htmlSourceBeforeAlt);
|
265 |
+
}
|
266 |
+
return $htmlSourceBeforeAlt;
|
267 |
+
}
|
268 |
+
}
|
269 |
+
|
270 |
$sourceHasComments = strpos($htmlSource, '<!--') !== false && strpos($htmlSource, '-->') !== false;
|
271 |
|
272 |
if (! $sourceHasComments) {
|
376 |
$localAssetPath = $localAssetPathAlt . '.' . $assetType;
|
377 |
}
|
378 |
|
379 |
+
if (strrchr($localAssetPath, '.') === '.' . $assetType && is_file($localAssetPath)) {
|
380 |
return $localAssetPath;
|
381 |
}
|
382 |
|
442 |
}
|
443 |
|
444 |
// Perhaps the URL starts with / (not //) and site_url() was not used
|
445 |
+
if (strpos($sourceFromTag, '/') === 0 && strpos($sourceFromTag, '//') !== 0 && is_file(ABSPATH . $sourceFromTag)) {
|
446 |
$isRelPath = true;
|
447 |
}
|
448 |
|
632 |
$requestUriPart = $requestUri;
|
633 |
|
634 |
// Same results for Homepage (any pagination), 404 Not Found & Date archive pages
|
635 |
+
// The JSON files will get stored in the root directory of the targeted website
|
636 |
if ($requestUri === '/' || is_404() || is_date() || Misc::isHomePage()) {
|
637 |
$requestUriPart = '';
|
638 |
}
|
639 |
|
640 |
// Treat the pagination pages the same as the main page (same it's done for the unloading rules)
|
641 |
+
if (($currentPageNo = get_query_var('paged')) && (is_archive() || is_singular())) {
|
642 |
$paginationBase = isset($GLOBALS['wp_rewrite']->pagination_base) ? $GLOBALS['wp_rewrite']->pagination_base : 'page';
|
643 |
+
$requestUriPart = str_replace('/'.$paginationBase.'/'.$currentPageNo.'/', '', $requestUriPart);
|
644 |
}
|
645 |
|
646 |
$dirToFilename = WP_CONTENT_DIR . dirname($relPathAssetCacheDir) . '/_storage/'
|
655 |
$assetsFile = $dirToFilename . $jsonStorageFile;
|
656 |
}
|
657 |
|
658 |
+
if (! is_file($assetsFile)) {
|
659 |
return array();
|
660 |
}
|
661 |
|
679 |
$optionValueArray = @json_decode($optionValue, ARRAY_A);
|
680 |
|
681 |
if ($forType === 'combine') {
|
|
|
|
|
682 |
if (! empty($optionValueArray)) {
|
683 |
foreach ($optionValueArray as $assetsPosition => $assetsValues) {
|
684 |
foreach ($assetsValues as $finalValues) {
|
685 |
+
// Check if the combined CSS file exists (e.g. maybe it was removed by mistake from the caching directory
|
686 |
+
// Or it wasn't created in the first place due to an error
|
687 |
+
if ($assetType === 'css' && isset($finalValues['uri_to_final_css_file'], $finalValues['link_hrefs'])
|
688 |
+
&& is_file(WP_CONTENT_DIR . OptimizeCss::getRelPathCssCacheDir() . $finalValues['uri_to_final_css_file'])) {
|
689 |
+
return $optionValueArray;
|
690 |
+
}
|
691 |
+
|
692 |
+
// Check if the combined JS file exists (e.g. maybe it was removed by mistake from the caching directory
|
693 |
+
// Or it wasn't created in the first place due to an error
|
694 |
+
if ($assetType === 'js' && isset($finalValues['uri_to_final_js_file'], $finalValues['script_srcs'])
|
695 |
+
&& is_file(WP_CONTENT_DIR . OptimizeJs::getRelPathJsCacheDir() . $finalValues['uri_to_final_js_file'])) {
|
696 |
+
return $optionValueArray;
|
697 |
}
|
698 |
}
|
699 |
}
|
700 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
701 |
} elseif ($forType === 'item') {
|
702 |
return $optionValueArray;
|
703 |
}
|
827 |
$assetsFile = $dirToFilename . $jsonStorageFile;
|
828 |
}
|
829 |
|
830 |
+
if (is_file($assetsFile)) { // avoid E_WARNING errors | check if it exists first
|
831 |
@unlink($assetsFile);
|
832 |
}
|
833 |
}
|
857 |
$assetCleanUpCacheDir = WP_CONTENT_DIR . self::getRelPathPluginCacheDir();
|
858 |
$storageDir = $assetCleanUpCacheDir . '_storage';
|
859 |
|
860 |
+
/*
|
861 |
+
* Targeted directories:
|
862 |
+
*
|
863 |
+
* $storageDir.'/item/'
|
864 |
+
* $assetCleanUpCacheDir.'/css/'
|
865 |
+
* $assetCleanUpCacheDir.'/js/'
|
866 |
+
*
|
867 |
+
* SKIP anything else from $storageDir apart from "item"
|
868 |
+
* If a lot of posts are on the website and combine CSS/JS it could lead to memory errors (to be cleared later on)
|
869 |
+
*/
|
870 |
+
|
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 (
|
886 |
+
new \RecursiveIteratorIterator( $dirItems, \RecursiveIteratorIterator::SELF_FIRST,
|
887 |
+
\RecursiveIteratorIterator::CATCH_GET_CHILD ) as $item
|
888 |
+
) {
|
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 |
|
1232 |
$dirToFilename = WP_CONTENT_DIR . self::getRelPathPluginCacheDir() . '_storage/'.self::$optimizedSingleFilesDir.'/';
|
1233 |
$assetsFile = $dirToFilename . $transient.'.json';
|
1234 |
|
1235 |
+
if (is_file($assetsFile)) {
|
1236 |
$contents = trim(FileSystem::file_get_contents($assetsFile));
|
1237 |
|
1238 |
if (! $contents) {
|
1346 |
|
1347 |
return $cdnUrlFinal;
|
1348 |
}
|
1349 |
+
|
1350 |
+
/**
|
1351 |
+
* This is related to the cached CSS/JS combined files from _storage directory located within getRelPathPluginCacheDir() caching directory
|
1352 |
+
*
|
1353 |
+
* @param $postId
|
1354 |
+
* @param bool $checkTiming | if set to "true" it will check if the caching timing expires and if it did, then delete the file
|
1355 |
+
*/
|
1356 |
+
public static function clearJsonStorageForPost($postId, $checkTiming = false)
|
1357 |
+
{
|
1358 |
+
$postPermalink = get_permalink($postId);
|
1359 |
+
$requestUriPath = parse_url($postPermalink, PHP_URL_PATH);
|
1360 |
+
|
1361 |
+
$dirToFilename = WP_CONTENT_DIR . self::getRelPathPluginCacheDir() . '/_storage/'
|
1362 |
+
. parse_url(site_url(), PHP_URL_HOST) . '/'. $requestUriPath;
|
1363 |
+
|
1364 |
+
$dirToFilename = str_replace('//', '/', $dirToFilename);
|
1365 |
+
|
1366 |
+
if (is_dir($dirToFilename)) {
|
1367 |
+
$filesInDir = scandir($dirToFilename);
|
1368 |
+
|
1369 |
+
if (! empty($filesInDir)) {
|
1370 |
+
foreach ($filesInDir as $wpacuFile) {
|
1371 |
+
if ( $wpacuFile === '.' || $wpacuFile === '..' ) {
|
1372 |
+
continue;
|
1373 |
+
}
|
1374 |
+
|
1375 |
+
$pathToFile = $dirToFilename . $wpacuFile;
|
1376 |
+
|
1377 |
+
if (strrchr($wpacuFile, '.') === '.json' && is_file($pathToFile)) {
|
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));
|
1388 |
+
|
1389 |
+
if ($cachedAssetsFileExpiresIn && ! $isExpired) {
|
1390 |
+
// Not expired yet, do not remove it by skipping this loop
|
1391 |
+
continue;
|
1392 |
+
}
|
1393 |
+
}
|
1394 |
+
|
1395 |
+
@unlink($dirToFilename . $wpacuFile);
|
1396 |
+
}
|
1397 |
+
}
|
1398 |
+
|
1399 |
+
@rmdir($dirToFilename);
|
1400 |
+
}
|
1401 |
+
}
|
1402 |
+
}
|
1403 |
}
|
classes/OptimiseAssets/OptimizeCss.php
CHANGED
@@ -124,7 +124,7 @@ class OptimizeCss
|
|
124 |
if (isset(Main::instance()->wpAllStyles['registered'][$styleHandle]->src) && ($src = Main::instance()->wpAllStyles['registered'][$styleHandle]->src)) {
|
125 |
$localAssetPath = OptimizeCommon::getLocalAssetPath($src, 'css');
|
126 |
|
127 |
-
if (! $localAssetPath || !
|
128 |
continue; // not a local file
|
129 |
}
|
130 |
|
@@ -150,7 +150,7 @@ class OptimizeCss
|
|
150 |
$value = $wpStylesRegistered[$handle];
|
151 |
|
152 |
$localAssetPath = OptimizeCommon::getLocalAssetPath($value->src, 'css');
|
153 |
-
if (! $localAssetPath || !
|
154 |
continue; // not a local file
|
155 |
}
|
156 |
|
@@ -220,7 +220,7 @@ class OptimizeCss
|
|
220 |
$localPathToCssOptimized = str_replace( '//', '/', ABSPATH . $savedValuesArray['optimize_uri'] );
|
221 |
|
222 |
// Read the file from its caching (that makes the processing faster)
|
223 |
-
if ( isset( $savedValuesArray['source_uri'] ) &&
|
224 |
if (Main::instance()->settings['fetch_cached_files_details_from'] === 'db_disk') {
|
225 |
$GLOBALS['wpacu_from_location_inc']++;
|
226 |
}
|
@@ -277,7 +277,7 @@ class OptimizeCss
|
|
277 |
*/
|
278 |
$localAssetPath = OptimizeCommon::getLocalAssetPath($src, 'css');
|
279 |
|
280 |
-
if (!
|
281 |
return array();
|
282 |
}
|
283 |
|
@@ -415,7 +415,7 @@ class OptimizeCss
|
|
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, '
|
419 |
/* [wpacu_timing] */ Misc::scriptExecTimer($wpacuTimingName, 'end'); /* [/wpacu_timing] */
|
420 |
}
|
421 |
}
|
@@ -649,7 +649,7 @@ class OptimizeCss
|
|
649 |
|
650 |
// If the minified files are deleted (e.g. /wp-content/cache/ is cleared)
|
651 |
// do not replace the CSS file path to avoid breaking the website
|
652 |
-
if (!
|
653 |
continue;
|
654 |
}
|
655 |
|
@@ -739,7 +739,7 @@ class OptimizeCss
|
|
739 |
|
740 |
/**
|
741 |
* @param $htmlSource
|
742 |
-
* @param $fetch
|
743 |
*
|
744 |
* @return mixed
|
745 |
*/
|
@@ -748,10 +748,11 @@ class OptimizeCss
|
|
748 |
$minifyInlineTags = (! Main::instance()->preventAssetsSettings() && Main::instance()->settings['minify_loaded_css'] && Main::instance()->settings['minify_loaded_css_inline']);
|
749 |
$allPatterns = self::getAllInlineChosenPatterns();
|
750 |
|
|
|
751 |
if ($fetch === 'all') {
|
752 |
-
preg_match_all('#<link[^>]*stylesheet[^>]*(>)#Umi', $htmlSource, $matchesSourcesFromTags, PREG_SET_ORDER);
|
753 |
-
} elseif ($fetch === '
|
754 |
-
preg_match_all('#<link[^>]*stylesheet[^>]*('.OptimizeCommon::getRelPathPluginCacheDir().').*(>)#Usmi', $htmlSource, $matchesSourcesFromTags, PREG_SET_ORDER);
|
755 |
}
|
756 |
|
757 |
// In case automatic inlining is used
|
@@ -811,22 +812,90 @@ class OptimizeCss
|
|
811 |
$appendBeforeAnyRelPath . OptimizeCommon::getPathToAssetDir($linkHrefOriginal) . '/'
|
812 |
);
|
813 |
|
814 |
-
|
815 |
-
$cssContent = self::importsUpdate($cssContent);
|
816 |
|
817 |
-
if ($
|
818 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
819 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
820 |
|
821 |
-
if (
|
822 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
823 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
824 |
|
825 |
-
|
|
|
|
|
|
|
|
|
|
|
826 |
}
|
827 |
}
|
828 |
|
829 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
830 |
}
|
831 |
|
832 |
/**
|
124 |
if (isset(Main::instance()->wpAllStyles['registered'][$styleHandle]->src) && ($src = Main::instance()->wpAllStyles['registered'][$styleHandle]->src)) {
|
125 |
$localAssetPath = OptimizeCommon::getLocalAssetPath($src, 'css');
|
126 |
|
127 |
+
if (! $localAssetPath || ! is_file($localAssetPath)) {
|
128 |
continue; // not a local file
|
129 |
}
|
130 |
|
150 |
$value = $wpStylesRegistered[$handle];
|
151 |
|
152 |
$localAssetPath = OptimizeCommon::getLocalAssetPath($value->src, 'css');
|
153 |
+
if (! $localAssetPath || ! is_file($localAssetPath)) {
|
154 |
continue; // not a local file
|
155 |
}
|
156 |
|
220 |
$localPathToCssOptimized = str_replace( '//', '/', ABSPATH . $savedValuesArray['optimize_uri'] );
|
221 |
|
222 |
// Read the file from its caching (that makes the processing faster)
|
223 |
+
if ( isset( $savedValuesArray['source_uri'] ) && is_file( $localPathToCssOptimized ) ) {
|
224 |
if (Main::instance()->settings['fetch_cached_files_details_from'] === 'db_disk') {
|
225 |
$GLOBALS['wpacu_from_location_inc']++;
|
226 |
}
|
277 |
*/
|
278 |
$localAssetPath = OptimizeCommon::getLocalAssetPath($src, 'css');
|
279 |
|
280 |
+
if (! is_file($localAssetPath)) {
|
281 |
return array();
|
282 |
}
|
283 |
|
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 |
}
|
649 |
|
650 |
// If the minified files are deleted (e.g. /wp-content/cache/ is cleared)
|
651 |
// do not replace the CSS file path to avoid breaking the website
|
652 |
+
if (! is_file(rtrim(ABSPATH, '/') . $listValues[1])) {
|
653 |
continue;
|
654 |
}
|
655 |
|
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 |
*/
|
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
|
812 |
$appendBeforeAnyRelPath . OptimizeCommon::getPathToAssetDir($linkHrefOriginal) . '/'
|
813 |
);
|
814 |
|
815 |
+
$cssContent = self::maybeAlterCssContent($cssContent, $minifyInlineTags, true);
|
|
|
816 |
|
817 |
+
if ($cssContent && $cssContent !== '/**/') {
|
818 |
+
$htmlSource = str_replace(
|
819 |
+
$matchedTag,
|
820 |
+
'<style type=\'text/css\' '.$mediaAttr.' data-wpacu-inline-css-file=\'1\'>'."\n".$cssContent."\n".'</style>',
|
821 |
+
$htmlSource
|
822 |
+
);
|
823 |
+
} else {
|
824 |
+
// After CSS alteration (e.g. minify), there's no content left, most likely the CSS file contained only comments, elements without any syntax or empty spaces
|
825 |
+
// Strip the tag completely as there's no reason to print an empty SCRIPT tag to further add to the total DOM elements
|
826 |
+
$htmlSource = str_replace($matchedTag, '', $htmlSource);
|
827 |
}
|
828 |
+
}
|
829 |
+
}
|
830 |
+
|
831 |
+
return $htmlSource;
|
832 |
+
}
|
833 |
+
|
834 |
+
/**
|
835 |
+
* This applies to both inline and static JS files contents
|
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'] ) {
|
885 |
+
$cssContent = FontsGoogleRemove::cleanFontFaceReferences( $cssContent );
|
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 |
|
901 |
/**
|
classes/OptimiseAssets/OptimizeJs.php
CHANGED
@@ -50,7 +50,7 @@ class OptimizeJs
|
|
50 |
if (isset(Main::instance()->wpAllScripts['registered'][$scriptHandle]->src) && ($src = Main::instance()->wpAllScripts['registered'][$scriptHandle]->src)) {
|
51 |
$localAssetPath = OptimizeCommon::getLocalAssetPath($src, 'js');
|
52 |
|
53 |
-
if (! $localAssetPath || !
|
54 |
continue; // not a local file
|
55 |
}
|
56 |
|
@@ -73,7 +73,7 @@ class OptimizeJs
|
|
73 |
$value = $wp_scripts->registered[$handle];
|
74 |
|
75 |
$localAssetPath = OptimizeCommon::getLocalAssetPath($value->src, 'js');
|
76 |
-
if (! $localAssetPath || !
|
77 |
continue; // not a local file
|
78 |
}
|
79 |
|
@@ -140,7 +140,7 @@ class OptimizeJs
|
|
140 |
|
141 |
// Do not load any minified JS file (from the database transient cache) if it doesn't exist
|
142 |
// It will fallback to the original JS file
|
143 |
-
if ( isset( $savedValuesArray['source_uri'] ) &&
|
144 |
if (Main::instance()->settings['fetch_cached_files_details_from'] === 'db_disk') {
|
145 |
$GLOBALS['wpacu_from_location_inc']++;
|
146 |
}
|
@@ -183,7 +183,7 @@ class OptimizeJs
|
|
183 |
} else {
|
184 |
$localAssetPath = OptimizeCommon::getLocalAssetPath($src, 'js');
|
185 |
|
186 |
-
if (!
|
187 |
return array();
|
188 |
}
|
189 |
|
@@ -349,7 +349,7 @@ class OptimizeJs
|
|
349 |
|
350 |
// If the minified files are deleted (e.g. /wp-content/cache/ is cleared)
|
351 |
// do not replace the JS file path to avoid breaking the website
|
352 |
-
if (!
|
353 |
continue;
|
354 |
}
|
355 |
|
@@ -557,6 +557,12 @@ class OptimizeJs
|
|
557 |
if ($attrObj->nodeName === 'src') {
|
558 |
continue 2;
|
559 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
560 |
}
|
561 |
}
|
562 |
|
@@ -894,7 +900,7 @@ class OptimizeJs
|
|
894 |
|
895 |
if (isset($ignoreChild['scripts']) && ! empty($ignoreChild['scripts'])) {
|
896 |
foreach (array_keys($ignoreChild['scripts']) as $scriptHandle) {
|
897 |
-
if (isset(Main::instance()->wpAllScripts['registered'][$scriptHandle]->src, Main::instance()->ignoreChildren['scripts'][$scriptHandle.'_has_unload_rule']) && Main::instance()->wpAllScripts['registered'][$scriptHandle]->src && Main::instance()->ignoreChildren['scripts'][$scriptHandle.'_has_unload_rule']) {
|
898 |
$inlineAssociatedWithHandle = self::getInlineAssociatedWithScriptHandle($scriptHandle, Main::instance()->wpAllScripts['registered'], 'handle');
|
899 |
|
900 |
$toReplaceTagList = '';
|
@@ -914,17 +920,14 @@ class OptimizeJs
|
|
914 |
}
|
915 |
|
916 |
$htmlSource = str_replace($toReplaceTagList, '', $htmlSource);
|
917 |
-
}
|
918 |
|
919 |
-
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
if (isset(Main::instance()->wpAllScripts['registered'][$scriptHandle]->src) && ($scriptSrc = Main::instance()->wpAllScripts['registered'][$scriptHandle]->src)) {
|
924 |
$listWithMatches[] = preg_quote(OptimizeCommon::getSourceRelPath($scriptSrc), '/');
|
925 |
-
}
|
926 |
|
927 |
-
|
|
|
928 |
}
|
929 |
}
|
930 |
|
50 |
if (isset(Main::instance()->wpAllScripts['registered'][$scriptHandle]->src) && ($src = Main::instance()->wpAllScripts['registered'][$scriptHandle]->src)) {
|
51 |
$localAssetPath = OptimizeCommon::getLocalAssetPath($src, 'js');
|
52 |
|
53 |
+
if (! $localAssetPath || ! is_file($localAssetPath)) {
|
54 |
continue; // not a local file
|
55 |
}
|
56 |
|
73 |
$value = $wp_scripts->registered[$handle];
|
74 |
|
75 |
$localAssetPath = OptimizeCommon::getLocalAssetPath($value->src, 'js');
|
76 |
+
if (! $localAssetPath || ! is_file($localAssetPath)) {
|
77 |
continue; // not a local file
|
78 |
}
|
79 |
|
140 |
|
141 |
// Do not load any minified JS file (from the database transient cache) if it doesn't exist
|
142 |
// It will fallback to the original JS file
|
143 |
+
if ( isset( $savedValuesArray['source_uri'] ) && is_file( $localPathToJsOptimized ) ) {
|
144 |
if (Main::instance()->settings['fetch_cached_files_details_from'] === 'db_disk') {
|
145 |
$GLOBALS['wpacu_from_location_inc']++;
|
146 |
}
|
183 |
} else {
|
184 |
$localAssetPath = OptimizeCommon::getLocalAssetPath($src, 'js');
|
185 |
|
186 |
+
if (! is_file($localAssetPath)) {
|
187 |
return array();
|
188 |
}
|
189 |
|
349 |
|
350 |
// If the minified files are deleted (e.g. /wp-content/cache/ is cleared)
|
351 |
// do not replace the JS file path to avoid breaking the website
|
352 |
+
if (! is_file(rtrim(ABSPATH, '/') . $listValues[1])) {
|
353 |
continue;
|
354 |
}
|
355 |
|
557 |
if ($attrObj->nodeName === 'src') {
|
558 |
continue 2;
|
559 |
}
|
560 |
+
|
561 |
+
if ($attrObj->nodeName === 'type' && $attrObj->nodeValue !== 'text/javascript') {
|
562 |
+
// If a "type" parameter exists (otherwise it defaults to "text/javascript"
|
563 |
+
// and the value of "type" is not "text/javascript", do not proceed with any optimization (including minification)
|
564 |
+
continue 2;
|
565 |
+
}
|
566 |
}
|
567 |
}
|
568 |
|
900 |
|
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 = '';
|
920 |
}
|
921 |
|
922 |
$htmlSource = str_replace($toReplaceTagList, '', $htmlSource);
|
|
|
923 |
|
924 |
+
// Extra, in case the previous replace didn't go through
|
925 |
+
$listWithMatches = array();
|
926 |
+
$listWithMatches[] = 'data-wpacu-script-handle=[\'"]'.$scriptHandle.'[\'"]';
|
|
|
|
|
927 |
$listWithMatches[] = preg_quote(OptimizeCommon::getSourceRelPath($scriptSrc), '/');
|
|
|
928 |
|
929 |
+
$htmlSource = CleanUp::cleanScriptTagFromHtmlSource($listWithMatches, $htmlSource);
|
930 |
+
}
|
931 |
}
|
932 |
}
|
933 |
|
classes/OwnAssets.php
CHANGED
@@ -64,7 +64,7 @@ class OwnAssets
|
|
64 |
{
|
65 |
if (is_admin_bar_showing()) {
|
66 |
?>
|
67 |
-
<style type="text/css">
|
68 |
#wp-admin-bar-assetcleanup-parent span.dashicons {
|
69 |
width: 15px;
|
70 |
height: 15px;
|
@@ -106,7 +106,7 @@ class OwnAssets
|
|
106 |
public function inlineAdminCode()
|
107 |
{
|
108 |
?>
|
109 |
-
<style type="text/css">
|
110 |
.menu-top.toplevel_page_wpassetcleanup_getting_started .wp-menu-image > img { width: 26px; position: absolute; left: 8px; top: -4px; }
|
111 |
</style>
|
112 |
<?php
|
@@ -245,13 +245,18 @@ class OwnAssets
|
|
245 |
<svg aria-hidden="true" role="img" focusable="false" class="dashicon dashicons-cloud" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><path d="M14.9 9c1.8.2 3.1 1.7 3.1 3.5 0 1.9-1.6 3.5-3.5 3.5h-10C2.6 16 1 14.4 1 12.5 1 10.7 2.3 9.3 4.1 9 4 8.9 4 8.7 4 8.5 4 7.1 5.1 6 6.5 6c.3 0 .7.1.9.2C8.1 4.9 9.4 4 11 4c2.2 0 4 1.8 4 4 0 .4-.1.7-.1 1z"></path></svg>
|
246 |
HTML;
|
247 |
|
|
|
|
|
|
|
|
|
|
|
248 |
$wpacuObjectData = array(
|
249 |
'plugin_name' => WPACU_PLUGIN_ID,
|
250 |
'plugin_id' => WPACU_PLUGIN_ID,
|
251 |
|
252 |
'reload_icon' => $svgReloadIcon,
|
253 |
'reload_msg' => sprintf(__('Reloading %s CSS & JS list', 'wp-asset-clean-up'), '<strong style="margin: 0 4px;">' . WPACU_PLUGIN_TITLE . '</strong>'),
|
254 |
-
'dom_get_type' =>
|
255 |
'list_show_status' => Main::instance()->settings['assets_list_show_status'],
|
256 |
|
257 |
'start_del_e' => Main::START_DEL_ENQUEUED,
|
@@ -288,7 +293,7 @@ HTML;
|
|
288 |
<td><span class="error-code">{wpacu_status_code_error}</span> * for more information about client and server errors, <a target="_blank" href="https://en.wikipedia.org/wiki/List_of_HTTP_status_codes">check this link</a></td>
|
289 |
</tr>
|
290 |
<tr>
|
291 |
-
<td valign="top"><strong>Suggestion:</strong></td>
|
292 |
<td>Select "WP Remote Post" as a method of retrieving the assets from the "Settings" page. If that doesn't fix the issue, just use "Manage in Front-end" option which should always work and <a target="_blank" href="{$submitTicketLink}">submit a ticket</a> about your problem.</td>
|
293 |
</tr>
|
294 |
<tr>
|
@@ -397,6 +402,75 @@ JS;
|
|
397 |
// [End] Chosen Script
|
398 |
}
|
399 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
400 |
if (in_array($page, array(WPACU_PLUGIN_ID . '_overview', WPACU_PLUGIN_ID . '_bulk_unloads'))) {
|
401 |
// [Start] Tooltipster Style
|
402 |
wp_enqueue_style(
|
64 |
{
|
65 |
if (is_admin_bar_showing()) {
|
66 |
?>
|
67 |
+
<style type="text/css" data-wpacu-own-inline-style="true">
|
68 |
#wp-admin-bar-assetcleanup-parent span.dashicons {
|
69 |
width: 15px;
|
70 |
height: 15px;
|
106 |
public function inlineAdminCode()
|
107 |
{
|
108 |
?>
|
109 |
+
<style type="text/css" data-wpacu-own-inline-style="true">
|
110 |
.menu-top.toplevel_page_wpassetcleanup_getting_started .wp-menu-image > img { width: 26px; position: absolute; left: 8px; top: -4px; }
|
111 |
</style>
|
112 |
<?php
|
245 |
<svg aria-hidden="true" role="img" focusable="false" class="dashicon dashicons-cloud" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><path d="M14.9 9c1.8.2 3.1 1.7 3.1 3.5 0 1.9-1.6 3.5-3.5 3.5h-10C2.6 16 1 14.4 1 12.5 1 10.7 2.3 9.3 4.1 9 4 8.9 4 8.7 4 8.5 4 7.1 5.1 6 6.5 6c.3 0 .7.1.9.2C8.1 4.9 9.4 4 11 4c2.2 0 4 1.8 4 4 0 .4-.1.7-.1 1z"></path></svg>
|
246 |
HTML;
|
247 |
|
248 |
+
// If the post status is 'private' only direct method can be used to fetch the assets
|
249 |
+
// as the remote post one will return a 404 error since the page is accessed as a guest visitor
|
250 |
+
$postStatus = $postId > 0 ? get_post_status($postId) : false;
|
251 |
+
$wpacuDomGetType = ($postStatus === 'private') ? 'direct' : Main::$domGetType;
|
252 |
+
|
253 |
$wpacuObjectData = array(
|
254 |
'plugin_name' => WPACU_PLUGIN_ID,
|
255 |
'plugin_id' => WPACU_PLUGIN_ID,
|
256 |
|
257 |
'reload_icon' => $svgReloadIcon,
|
258 |
'reload_msg' => sprintf(__('Reloading %s CSS & JS list', 'wp-asset-clean-up'), '<strong style="margin: 0 4px;">' . WPACU_PLUGIN_TITLE . '</strong>'),
|
259 |
+
'dom_get_type' => $wpacuDomGetType,
|
260 |
'list_show_status' => Main::instance()->settings['assets_list_show_status'],
|
261 |
|
262 |
'start_del_e' => Main::START_DEL_ENQUEUED,
|
293 |
<td><span class="error-code">{wpacu_status_code_error}</span> * for more information about client and server errors, <a target="_blank" href="https://en.wikipedia.org/wiki/List_of_HTTP_status_codes">check this link</a></td>
|
294 |
</tr>
|
295 |
<tr>
|
296 |
+
<td valign="top"><span class="dashicons dashicons-lightbulb" style="color: orange;"></span> <strong>Suggestion:</strong></td>
|
297 |
<td>Select "WP Remote Post" as a method of retrieving the assets from the "Settings" page. If that doesn't fix the issue, just use "Manage in Front-end" option which should always work and <a target="_blank" href="{$submitTicketLink}">submit a ticket</a> about your problem.</td>
|
298 |
</tr>
|
299 |
<tr>
|
402 |
// [End] Chosen Script
|
403 |
}
|
404 |
|
405 |
+
if ($page === WPACU_PLUGIN_ID . '_assets_manager' || (Misc::getVar('get', 'post') && Misc::getVar('get', 'action') === 'edit')) {
|
406 |
+
// [Start] SweetAlert
|
407 |
+
wp_enqueue_style(
|
408 |
+
WPACU_PLUGIN_ID . '-sweetalert-css',
|
409 |
+
plugins_url('/assets/sweetalert/sweetalert.css', WPACU_PLUGIN_FILE),
|
410 |
+
array(),
|
411 |
+
1
|
412 |
+
);
|
413 |
+
$sweetAlertStyleInline = <<<CSS
|
414 |
+
.swal-overlay {
|
415 |
+
z-index: 10000000;
|
416 |
+
}
|
417 |
+
|
418 |
+
.swal-text {
|
419 |
+
line-height: 24px;
|
420 |
+
}
|
421 |
+
|
422 |
+
.swal-footer {
|
423 |
+
text-align: center;
|
424 |
+
padding: 13px 16px 20px;
|
425 |
+
}
|
426 |
+
|
427 |
+
.swal-button.swal-button--confirm {
|
428 |
+
background-color: #008f9c;
|
429 |
+
}
|
430 |
+
|
431 |
+
.swal-button.swal-button--confirm:hover {
|
432 |
+
background-color: #006e78;
|
433 |
+
}
|
434 |
+
CSS;
|
435 |
+
wp_add_inline_style(WPACU_PLUGIN_ID . '-sweetalert-css', $sweetAlertStyleInline);
|
436 |
+
|
437 |
+
wp_enqueue_script(
|
438 |
+
WPACU_PLUGIN_ID . '-sweetalert-js',
|
439 |
+
plugins_url('/assets/sweetalert/dist/sweetalert.min.js', WPACU_PLUGIN_FILE),
|
440 |
+
array('jquery'),
|
441 |
+
1
|
442 |
+
);
|
443 |
+
|
444 |
+
$upgradeToProLink = WPACU_PLUGIN_GO_PRO_URL.'?utm_source=manage_hardcoded_assets&utm_medium=go_pro_modal';
|
445 |
+
|
446 |
+
$sweetAlertScriptInline = <<<JS
|
447 |
+
jQuery(document).ready(function($) {
|
448 |
+
$(document).on('click', '.wpacu-manage-hardcoded-assets-requires-pro-popup', function(e) {
|
449 |
+
e.preventDefault();
|
450 |
+
wpacuTriggerGoProHardcodedModal();
|
451 |
+
});
|
452 |
+
});
|
453 |
+
|
454 |
+
function wpacuTriggerGoProHardcodedModal()
|
455 |
+
{
|
456 |
+
swal({
|
457 |
+
text: "Managing hardcoded (non-enqueued) LINK/STYLE/SCRIPT tags is a feature available for Pro users.",
|
458 |
+
icon: "info",
|
459 |
+
buttons: {
|
460 |
+
confirm: "Upgrade to the Pro version",
|
461 |
+
cancel: "Maybe later",
|
462 |
+
}
|
463 |
+
}).then((value) => {
|
464 |
+
if (value) {
|
465 |
+
window.location.replace("{$upgradeToProLink}");
|
466 |
+
}
|
467 |
+
});
|
468 |
+
}
|
469 |
+
JS;
|
470 |
+
wp_add_inline_script(WPACU_PLUGIN_ID . '-sweetalert-js', $sweetAlertScriptInline);
|
471 |
+
// [ENd] SweetAlert
|
472 |
+
}
|
473 |
+
|
474 |
if (in_array($page, array(WPACU_PLUGIN_ID . '_overview', WPACU_PLUGIN_ID . '_bulk_unloads'))) {
|
475 |
// [Start] Tooltipster Style
|
476 |
wp_enqueue_style(
|
classes/Plugin.php
CHANGED
@@ -105,12 +105,14 @@ 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/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,6 +178,10 @@ HTACCESS;
|
|
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 );
|
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 |
@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 );
|
classes/PluginTracking.php
CHANGED
@@ -160,7 +160,7 @@ class PluginTracking
|
|
160 |
|
161 |
// Retrieve current plugin information
|
162 |
$adminPluginFile = ABSPATH . '/wp-admin/includes/plugin.php';
|
163 |
-
if (! function_exists( 'get_plugins') &&
|
164 |
include $adminPluginFile;
|
165 |
}
|
166 |
|
160 |
|
161 |
// Retrieve current plugin information
|
162 |
$adminPluginFile = ABSPATH . '/wp-admin/includes/plugin.php';
|
163 |
+
if (! function_exists( 'get_plugins') && is_file($adminPluginFile)) {
|
164 |
include $adminPluginFile;
|
165 |
}
|
166 |
|
composer.json
CHANGED
@@ -16,7 +16,7 @@
|
|
16 |
"php": ">=5.4.0",
|
17 |
"ext-pcre": "*",
|
18 |
"psr/cache": "*",
|
19 |
-
"matthiasmullie/minify": "^1.3"
|
20 |
},
|
21 |
"suggest": {
|
22 |
"psr/cache-implementation": "Cache implementation to use with Minify::cache"
|
16 |
"php": ">=5.4.0",
|
17 |
"ext-pcre": "*",
|
18 |
"psr/cache": "*",
|
19 |
+
"matthiasmullie/minify": "^1.3.63"
|
20 |
},
|
21 |
"suggest": {
|
22 |
"psr/cache-implementation": "Cache implementation to use with Minify::cache"
|
composer.lock
CHANGED
@@ -4,20 +4,20 @@
|
|
4 |
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
5 |
"This file is @generated automatically"
|
6 |
],
|
7 |
-
"content-hash": "
|
8 |
"packages": [
|
9 |
{
|
10 |
"name": "matthiasmullie/minify",
|
11 |
-
"version": "1.3.
|
12 |
"source": {
|
13 |
"type": "git",
|
14 |
"url": "https://github.com/matthiasmullie/minify.git",
|
15 |
-
"reference": "
|
16 |
},
|
17 |
"dist": {
|
18 |
"type": "zip",
|
19 |
-
"url": "https://api.github.com/repos/matthiasmullie/minify/zipball/
|
20 |
-
"reference": "
|
21 |
"shasum": ""
|
22 |
},
|
23 |
"require": {
|
@@ -50,9 +50,9 @@
|
|
50 |
"authors": [
|
51 |
{
|
52 |
"name": "Matthias Mullie",
|
53 |
-
"role": "Developer",
|
54 |
"email": "minify@mullie.eu",
|
55 |
-
"homepage": "http://www.mullie.eu"
|
|
|
56 |
}
|
57 |
],
|
58 |
"description": "CSS & JavaScript minifier, in PHP. Removes whitespace, strips comments, combines files (incl. @import statements and small assets in CSS files), and optimizes/shortens a few common programming patterns.",
|
@@ -64,20 +64,20 @@
|
|
64 |
"minifier",
|
65 |
"minify"
|
66 |
],
|
67 |
-
"time": "
|
68 |
},
|
69 |
{
|
70 |
"name": "matthiasmullie/path-converter",
|
71 |
-
"version": "1.1.
|
72 |
"source": {
|
73 |
"type": "git",
|
74 |
"url": "https://github.com/matthiasmullie/path-converter.git",
|
75 |
-
"reference": "
|
76 |
},
|
77 |
"dist": {
|
78 |
"type": "zip",
|
79 |
-
"url": "https://api.github.com/repos/matthiasmullie/path-converter/zipball/
|
80 |
-
"reference": "
|
81 |
"shasum": ""
|
82 |
},
|
83 |
"require": {
|
@@ -100,9 +100,9 @@
|
|
100 |
"authors": [
|
101 |
{
|
102 |
"name": "Matthias Mullie",
|
103 |
-
"role": "Developer",
|
104 |
"email": "pathconverter@mullie.eu",
|
105 |
-
"homepage": "http://www.mullie.eu"
|
|
|
106 |
}
|
107 |
],
|
108 |
"description": "Relative path converter",
|
@@ -113,7 +113,7 @@
|
|
113 |
"paths",
|
114 |
"relative"
|
115 |
],
|
116 |
-
"time": "
|
117 |
},
|
118 |
{
|
119 |
"name": "psr/cache",
|
4 |
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
5 |
"This file is @generated automatically"
|
6 |
],
|
7 |
+
"content-hash": "cbb4c81282c6359a3b371f733096582c",
|
8 |
"packages": [
|
9 |
{
|
10 |
"name": "matthiasmullie/minify",
|
11 |
+
"version": "1.3.63",
|
12 |
"source": {
|
13 |
"type": "git",
|
14 |
"url": "https://github.com/matthiasmullie/minify.git",
|
15 |
+
"reference": "9ba1b459828adc13430f4dd6c49dae4950dc4117"
|
16 |
},
|
17 |
"dist": {
|
18 |
"type": "zip",
|
19 |
+
"url": "https://api.github.com/repos/matthiasmullie/minify/zipball/9ba1b459828adc13430f4dd6c49dae4950dc4117",
|
20 |
+
"reference": "9ba1b459828adc13430f4dd6c49dae4950dc4117",
|
21 |
"shasum": ""
|
22 |
},
|
23 |
"require": {
|
50 |
"authors": [
|
51 |
{
|
52 |
"name": "Matthias Mullie",
|
|
|
53 |
"email": "minify@mullie.eu",
|
54 |
+
"homepage": "http://www.mullie.eu",
|
55 |
+
"role": "Developer"
|
56 |
}
|
57 |
],
|
58 |
"description": "CSS & JavaScript minifier, in PHP. Removes whitespace, strips comments, combines files (incl. @import statements and small assets in CSS files), and optimizes/shortens a few common programming patterns.",
|
64 |
"minifier",
|
65 |
"minify"
|
66 |
],
|
67 |
+
"time": "2020-01-21T20:21:08+00:00"
|
68 |
},
|
69 |
{
|
70 |
"name": "matthiasmullie/path-converter",
|
71 |
+
"version": "1.1.3",
|
72 |
"source": {
|
73 |
"type": "git",
|
74 |
"url": "https://github.com/matthiasmullie/path-converter.git",
|
75 |
+
"reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9"
|
76 |
},
|
77 |
"dist": {
|
78 |
"type": "zip",
|
79 |
+
"url": "https://api.github.com/repos/matthiasmullie/path-converter/zipball/e7d13b2c7e2f2268e1424aaed02085518afa02d9",
|
80 |
+
"reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9",
|
81 |
"shasum": ""
|
82 |
},
|
83 |
"require": {
|
100 |
"authors": [
|
101 |
{
|
102 |
"name": "Matthias Mullie",
|
|
|
103 |
"email": "pathconverter@mullie.eu",
|
104 |
+
"homepage": "http://www.mullie.eu",
|
105 |
+
"role": "Developer"
|
106 |
}
|
107 |
],
|
108 |
"description": "Relative path converter",
|
113 |
"paths",
|
114 |
"relative"
|
115 |
],
|
116 |
+
"time": "2019-02-05T23:41:09+00:00"
|
117 |
},
|
118 |
{
|
119 |
"name": "psr/cache",
|
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.
|
8 |
License: GPLv3
|
9 |
License URI: http://www.gnu.org/licenses/gpl.html
|
10 |
|
@@ -179,6 +179,14 @@ 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.7 =
|
183 |
* Make the admin aware in case a certain CSS/JS asset is loaded within Internet Explorer conditional comments (Read more: https://www.sitepoint.com/internet-explorer-conditional-comments/)
|
184 |
* From now on, "disk" is the default method for storing the cached information of the assets
|
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.8
|
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.5.8 =
|
183 |
+
* Caching: Expired CSS/JS files are cleared differently (in time after visiting various pages) to save resources and errors related to the PHP memory (e.g. shared hosting packages often have limitations in terms of the server's CPU & memory usage)
|
184 |
+
* Allow CSS/JS management for privately published pages
|
185 |
+
* Strip empty STYLE/SCRIPT tags if, after optimization, their content is empty (e.g. the CSS was minified as it had only comments in it)
|
186 |
+
* Show if there are any hardcoded (non-enqueued) LINK/STYLE/SCRIPT tags in the list of CSS/JS list (management of these tags is available in the Pro version)
|
187 |
+
* Make sure the combined CSS/JS file is valid before its tag is generated in the HTML output (in rare cases, the cached CSS/JS files get deleted either by mistake when developers are cleaning up the caching directory OR they weren't properly created in the first place)
|
188 |
+
* Compatibility fix to avoid PHP warning error when "Smart Slider 3" & "WP Rocket" are used and the CSS/JS assets are fetched
|
189 |
+
|
190 |
= 1.3.5.7 =
|
191 |
* Make the admin aware in case a certain CSS/JS asset is loaded within Internet Explorer conditional comments (Read more: https://www.sitepoint.com/internet-explorer-conditional-comments/)
|
192 |
* From now on, "disk" is the default method for storing the cached information of the assets
|
templates/_admin-page-getting-started-areas/_lite-vs-pro.php
CHANGED
@@ -118,6 +118,11 @@ HTML;
|
|
118 |
<td><span class="na">❌</span></td>
|
119 |
<td><?php echo $svgTick; ?></td>
|
120 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
121 |
<tr>
|
122 |
<td><?php _e('Move CSS & JavaScript files from <code><HEAD></code> to <code><BODY></code> (to reduce render-blocking) or vice-versa (for very early triggering)', 'wp-asset-clean-up'); ?></td>
|
123 |
<td><span class="na">❌</span></td>
|
118 |
<td><span class="na">❌</span></td>
|
119 |
<td><?php echo $svgTick; ?></td>
|
120 |
</tr>
|
121 |
+
<tr>
|
122 |
+
<td><?php _e('Manage hardcoded (non-enqueued) CSS & JavaScript files', 'wp-asset-clean-up'); ?></td>
|
123 |
+
<td><span class="na">❌</span></td>
|
124 |
+
<td><?php echo $svgTick; ?></td>
|
125 |
+
</tr>
|
126 |
<tr>
|
127 |
<td><?php _e('Move CSS & JavaScript files from <code><HEAD></code> to <code><BODY></code> (to reduce render-blocking) or vice-versa (for very early triggering)', 'wp-asset-clean-up'); ?></td>
|
128 |
<td><span class="na">❌</span></td>
|
templates/_top-area.php
CHANGED
@@ -129,7 +129,7 @@ $goBackToCurrentUrl = '&_wp_http_referer=' . urlencode( wp_unslash( $_SERVER['RE
|
|
129 |
// [wpacu_lite]
|
130 |
if ($wpacuIsPluginsManagerPageLink) {
|
131 |
?>
|
132 |
-
<span class="extra-info assets-unloaded-false"><span class="dashicons dashicons-lock"></span>
|
133 |
<?php
|
134 |
}
|
135 |
// [/wpacu_lite]
|
129 |
// [wpacu_lite]
|
130 |
if ($wpacuIsPluginsManagerPageLink) {
|
131 |
?>
|
132 |
+
<span class="extra-info assets-unloaded-false"><span class="dashicons dashicons-lock"></span> Premium Feature</span>
|
133 |
<?php
|
134 |
}
|
135 |
// [/wpacu_lite]
|
templates/meta-box-loaded-assets/_assets-hardcoded-list.php
ADDED
@@ -0,0 +1,227 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (! isset($data)) {
|
3 |
+
exit; // no direct access
|
4 |
+
}
|
5 |
+
|
6 |
+
$totalHardcodedTags = 0;
|
7 |
+
$hardcodedTags = $data['all']['hardcoded'];
|
8 |
+
|
9 |
+
// Use the WordPress cache mostly for retrieval of the values if the Dashboard retrieval was used
|
10 |
+
// Otherwise, default to $data if no valid value was set for the cache
|
11 |
+
$dataKeys = array(
|
12 |
+
'page_unload_text'
|
13 |
+
);
|
14 |
+
|
15 |
+
foreach ($dataKeys as $dataKey) {
|
16 |
+
if ( ! ( $dataValue = wp_cache_get( 'wpacu_data_' . $dataKey ) ) ) {
|
17 |
+
$dataValue = isset( $data[ $dataKey ] ) ? $data[ $dataKey ] : '';
|
18 |
+
}
|
19 |
+
|
20 |
+
$data[$dataKey] = $dataValue;
|
21 |
+
}
|
22 |
+
|
23 |
+
$contentWithinConditionalComments = wp_cache_get('wpacu_hardcoded_content_within_conditional_comments');
|
24 |
+
|
25 |
+
$totalHardcodedTags = isset($hardcodedTags['link_and_style_tags']) ? count($hardcodedTags['link_and_style_tags']) : 0;
|
26 |
+
$totalHardcodedTags += isset($hardcodedTags['script_src_and_inline_tags']) ? count($hardcodedTags['script_src_and_inline_tags']) : 0;
|
27 |
+
|
28 |
+
if ($totalHardcodedTags === 0) {
|
29 |
+
return; // Don't print anything if there are no hardcoded tags available
|
30 |
+
}
|
31 |
+
?>
|
32 |
+
<div class="wpacu-assets-collapsible-wrap wpacu-wrap-area wpacu-hardcoded">
|
33 |
+
<a class="wpacu-assets-collapsible wpacu-assets-collapsible-active" href="#" style="padding: 15px 15px 15px 44px;">
|
34 |
+
<span class="dashicons dashicons-code-standards"></span> Hardcoded (non-enqueued) Styles &
|
35 |
+
Scripts ➝ Total: <?php echo $totalHardcodedTags; ?>
|
36 |
+
</a>
|
37 |
+
<div class="wpacu-assets-collapsible-content" style="max-height: inherit;">
|
38 |
+
<div style="padding: 0;">
|
39 |
+
<div style="margin: 15px 0 0;">
|
40 |
+
<p><span style="color: #0073aa;" class="dashicons dashicons-info"></span> The following tags are NOT LOADED via the recommended <a target="_blank"
|
41 |
+
href="https://developer.wordpress.org/reference/hooks/wp_enqueue_scripts/"><code>wp_enqueue_scripts()</code></a>
|
42 |
+
action hook (despite the name, it is used for enqueuing both scripts and styles) which is the proper one to use when enqueuing scripts and styles that are meant to appear on
|
43 |
+
the front end. The standard functions that are used inside the hook to do an enqueuing are: <a target="_blank"
|
44 |
+
href="https://developer.wordpress.org/reference/functions/wp_enqueue_style/">wp_enqueue_style()</a>,
|
45 |
+
<a target="_blank" href="https://codex.wordpress.org/Function_Reference/wp_add_inline_style">wp_add_inline_style()</a>
|
46 |
+
<a target="_blank" href="https://developer.wordpress.org/reference/functions/wp_enqueue_script/">wp_enqueue_script()</a>
|
47 |
+
& <a target="_blank"
|
48 |
+
href="https://developer.wordpress.org/reference/functions/wp_add_inline_script/">wp_add_inline_script()</a>. The tags could have been added via editing the PHP code (not using the right standard functions), directly inside posts content, widgets or via plugins such as "Insert Headers and Footers", "Head, Footer and Post Injections", etc. Be careful when unloading any of these tags as they might be related to Google Analytics/AdWords, StatCounter, Facebook Pixel, etc.
|
49 |
+
</p>
|
50 |
+
<div style="margin: 20px 0; border-left: solid 4px green; background: #f2faf2; padding: 10px;"><img width="20" height="20" src="<?php echo WPACU_PLUGIN_URL; ?>/assets/icons/icon-lock.svg" valign="top" alt="" /> Managing hardcoded LINK/STYLE/SCRIPT tags is an option <a target="_blank" href="<?php echo WPACU_PLUGIN_GO_PRO_URL; ?>?utm_source=manage_hardcoded_assets&utm_medium=top_notice">available in the Pro version</a>.</div>
|
51 |
+
</div>
|
52 |
+
<?php
|
53 |
+
foreach (array('link_and_style_tags', 'script_src_and_inline_tags') as $targetKey) {
|
54 |
+
if ( ! empty( $hardcodedTags[ $targetKey ] ) ) {
|
55 |
+
$totalTagsForTarget = count( $hardcodedTags[ $targetKey ] );
|
56 |
+
$totalHardcodedTags += $totalTagsForTarget;
|
57 |
+
?>
|
58 |
+
<div>
|
59 |
+
<div class="wpacu-content-title">
|
60 |
+
<h3>
|
61 |
+
<?php if ($targetKey === 'link_and_style_tags') { ?>Hardcoded LINK (stylesheet) & STYLE tags<?php } ?>
|
62 |
+
<?php if ($targetKey === 'script_src_and_inline_tags') { ?>Hardcoded SCRIPT (with "src" attribute & inline) tags<?php } ?>
|
63 |
+
</h3>
|
64 |
+
</div>
|
65 |
+
<table class="wpacu_list_table wpacu_striped">
|
66 |
+
<tbody>
|
67 |
+
<?php
|
68 |
+
$hardcodedTagsOutput = '';
|
69 |
+
|
70 |
+
foreach ( $hardcodedTags[ $targetKey ] as $indexNo => $tagOutput ) {
|
71 |
+
$contentUniqueStr = sha1( $tagOutput );
|
72 |
+
/*
|
73 |
+
* 1) Hardcoded LINK (stylesheet) & STYLE tags
|
74 |
+
*/
|
75 |
+
if ($targetKey === 'link_and_style_tags') {
|
76 |
+
// For LINK ("stylesheet")
|
77 |
+
if ( stripos( $tagOutput, '<link ' ) === 0 ) {
|
78 |
+
$generatedHandle = 'wpacu_hardcoded_link_' . $contentUniqueStr;
|
79 |
+
|
80 |
+
preg_match_all( '#href=(["\'])' . '(.*)' . '(["\'])#Usmi', $tagOutput,
|
81 |
+
$outputMatches );
|
82 |
+
$linkHrefOriginal = trim( $outputMatches[2][0], '"\'' );
|
83 |
+
|
84 |
+
$dataRowObj = (object) array(
|
85 |
+
'handle' => $generatedHandle,
|
86 |
+
'src' => $linkHrefOriginal,
|
87 |
+
'tag_output' => $tagOutput
|
88 |
+
);
|
89 |
+
|
90 |
+
$dataRowObj->inside_conditional_comment = \WpAssetCleanUp\HardcodedAssets::isWithinConditionalComment($tagOutput, $contentWithinConditionalComments);
|
91 |
+
|
92 |
+
// Determine source href (starting with '/' but not starting with '//')
|
93 |
+
if (strpos($linkHrefOriginal, '/') === 0 && strpos($linkHrefOriginal, '//') !== 0) {
|
94 |
+
$dataRowObj->srcHref = get_site_url() . $linkHrefOriginal;
|
95 |
+
} else {
|
96 |
+
$dataRowObj->srcHref = $linkHrefOriginal;
|
97 |
+
}
|
98 |
+
|
99 |
+
$dataHH = $data;
|
100 |
+
$dataHH['row'] = array();
|
101 |
+
$dataHH['row']['obj'] = $dataRowObj;
|
102 |
+
|
103 |
+
$templateRowOutput = \WpAssetCleanUp\Main::instance()->parseTemplate(
|
104 |
+
'/meta-box-loaded-assets/_hardcoded/_asset-style-single-row-hardcoded',
|
105 |
+
$dataHH
|
106 |
+
);
|
107 |
+
|
108 |
+
$hardcodedTagsOutput .= $templateRowOutput;
|
109 |
+
}
|
110 |
+
|
111 |
+
// For STYLE (inline)
|
112 |
+
if ( stripos( $tagOutput, '<style' ) === 0 ) {
|
113 |
+
$generatedHandle = 'wpacu_hardcoded_style_' . $contentUniqueStr;
|
114 |
+
|
115 |
+
$dataRowObj = (object) array(
|
116 |
+
'handle' => $generatedHandle,
|
117 |
+
'src' => false,
|
118 |
+
'tag_output' => $tagOutput
|
119 |
+
);
|
120 |
+
|
121 |
+
$dataRowObj->inside_conditional_comment = \WpAssetCleanUp\HardcodedAssets::isWithinConditionalComment($tagOutput, $contentWithinConditionalComments);
|
122 |
+
|
123 |
+
$dataHH = $data;
|
124 |
+
$dataHH['row'] = array();
|
125 |
+
$dataHH['row']['obj'] = $dataRowObj;
|
126 |
+
|
127 |
+
$templateRowOutput = \WpAssetCleanUp\Main::instance()->parseTemplate(
|
128 |
+
'/meta-box-loaded-assets/_hardcoded/_asset-style-single-row-hardcoded',
|
129 |
+
$dataHH
|
130 |
+
);
|
131 |
+
|
132 |
+
$hardcodedTagsOutput .= $templateRowOutput;
|
133 |
+
}
|
134 |
+
} elseif ($targetKey === 'script_src_and_inline_tags') {
|
135 |
+
/*
|
136 |
+
* 2) Hardcoded SCRIPT (with "src" attribute & inline) tags
|
137 |
+
*/
|
138 |
+
$generatedHandle = false;
|
139 |
+
$srcHrefOriginal = false;
|
140 |
+
$isScriptInline = false;
|
141 |
+
|
142 |
+
if (stripos($tagOutput, 'src') !== false) {
|
143 |
+
$srcHrefOriginal = false;
|
144 |
+
|
145 |
+
if (function_exists('libxml_use_internal_errors') && function_exists('libxml_clear_errors') && class_exists('DOMDocument')) {
|
146 |
+
$domForTag = new \DOMDocument();
|
147 |
+
libxml_use_internal_errors( true );
|
148 |
+
|
149 |
+
$domForTag->loadHTML( $tagOutput );
|
150 |
+
|
151 |
+
$scriptTagObj = $domForTag->getElementsByTagName( 'script' )->item( 0 );
|
152 |
+
|
153 |
+
$scriptAttributes = array();
|
154 |
+
|
155 |
+
foreach ( $scriptTagObj->attributes as $attrObj ) {
|
156 |
+
if ( $attrObj->nodeName === 'src' ) {
|
157 |
+
$srcHrefOriginal = trim( $attrObj->nodeValue );
|
158 |
+
break;
|
159 |
+
}
|
160 |
+
}
|
161 |
+
} else { // Fallback in case DOMDocument is not active for any reason
|
162 |
+
// only look from <script to >
|
163 |
+
preg_match_all( '#<script(.*?)src=(["\'])' . '(.*)' . '(["\'])(>)#Usmi',
|
164 |
+
$tagOutput, $outputMatches );
|
165 |
+
|
166 |
+
if ( isset( $outputMatches[3][0] ) ) {
|
167 |
+
$srcHrefOriginal = trim( $outputMatches[3][0], '"\'' );
|
168 |
+
}
|
169 |
+
}
|
170 |
+
}
|
171 |
+
|
172 |
+
if ($srcHrefOriginal) {
|
173 |
+
$generatedHandle = 'wpacu_hardcoded_script_src_' . $contentUniqueStr;
|
174 |
+
}
|
175 |
+
|
176 |
+
// It it a SCRIPT without "src" attribute? Then it's an inline one
|
177 |
+
if (! $generatedHandle) {
|
178 |
+
$generatedHandle = 'wpacu_hardcoded_script_inline_' . $contentUniqueStr;
|
179 |
+
}
|
180 |
+
|
181 |
+
$dataRowObj = (object)array(
|
182 |
+
'handle' => $generatedHandle,
|
183 |
+
'tag_output' => $tagOutput
|
184 |
+
);
|
185 |
+
|
186 |
+
if ($srcHrefOriginal) {
|
187 |
+
$dataRowObj->src = $srcHrefOriginal;
|
188 |
+
}
|
189 |
+
|
190 |
+
$dataRowObj->inside_conditional_comment = \WpAssetCleanUp\HardcodedAssets::isWithinConditionalComment($tagOutput, $contentWithinConditionalComments);
|
191 |
+
|
192 |
+
// Determine source href (starting with '/' but not starting with '//')
|
193 |
+
if ($srcHrefOriginal) {
|
194 |
+
if ( strpos( $srcHrefOriginal, '/' ) === 0 && strpos( $srcHrefOriginal, '//' ) !== 0 ) {
|
195 |
+
$dataRowObj->srcHref = get_site_url() . $srcHrefOriginal;
|
196 |
+
} else {
|
197 |
+
$dataRowObj->srcHref = $srcHrefOriginal;
|
198 |
+
}
|
199 |
+
}
|
200 |
+
|
201 |
+
$dataHH = $data;
|
202 |
+
$dataHH['row'] = array();
|
203 |
+
$dataHH['row']['obj'] = $dataRowObj;
|
204 |
+
|
205 |
+
$templateRowOutput = \WpAssetCleanUp\Main::instance()->parseTemplate(
|
206 |
+
'/meta-box-loaded-assets/_hardcoded/_asset-script-single-row-hardcoded',
|
207 |
+
$dataHH
|
208 |
+
);
|
209 |
+
|
210 |
+
$hardcodedTagsOutput .= $templateRowOutput;
|
211 |
+
}
|
212 |
+
}
|
213 |
+
|
214 |
+
echo $hardcodedTagsOutput;
|
215 |
+
?>
|
216 |
+
</tbody>
|
217 |
+
</table>
|
218 |
+
</div>
|
219 |
+
<?php
|
220 |
+
}
|
221 |
+
}
|
222 |
+
?>
|
223 |
+
</div>
|
224 |
+
</div>
|
225 |
+
</div>
|
226 |
+
<?php
|
227 |
+
|
templates/meta-box-loaded-assets/_hardcoded/_asset-script-single-row-hardcoded.php
ADDED
@@ -0,0 +1,100 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* The file is included from _assets-hardcoded-list.php and it's relevant only for the hardcoded scripts (non-enqueued)
|
4 |
+
*/
|
5 |
+
if (! isset($data)) {
|
6 |
+
exit; // no direct access
|
7 |
+
}
|
8 |
+
?>
|
9 |
+
<tr data-script-handle-row="<?php echo $data['row']['obj']->handle; ?>"
|
10 |
+
class="wpacu_asset_row">
|
11 |
+
<td>
|
12 |
+
<?php if (isset($data['row']['obj']->src) && $data['row']['obj']->src) { ?>
|
13 |
+
<?php
|
14 |
+
// Source
|
15 |
+
include '_asset-script-single-row-hardcoded/_source.php';
|
16 |
+
?>
|
17 |
+
<div style="margin: 10px 0;">File Size: Pro version</div>
|
18 |
+
<?php
|
19 |
+
if ($data['row']['obj']->inside_conditional_comment) {
|
20 |
+
echo '<span><img style="vertical-align: middle;" width="25" height="25" src="'.WPACU_PLUGIN_URL.'/assets/icons/icon-ie.svg" alt="" title="Microsoft / Public domain" /> <span style="font-weight: 400; color: #1C87CF;">Loads only in Internet Explorer based on the following condition:</span> <em>if '.$data['row']['obj']->inside_conditional_comment.'</em></span>';
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<div style="margin: 10px 0;" class="wpacu-hardcoded-code-area">
|
24 |
+
HTML Output: <code><?php echo htmlentities( $data['row']['obj']->tag_output ); ?></code>
|
25 |
+
</div>
|
26 |
+
<?php
|
27 |
+
} else {
|
28 |
+
// SCRIPT inline tag
|
29 |
+
$tagOutput = trim($data['row']['obj']->tag_output);
|
30 |
+
|
31 |
+
// default values (could be changed below)
|
32 |
+
$totalCodeLines = 1;
|
33 |
+
$enableViewMore = false;
|
34 |
+
|
35 |
+
if (strpos($tagOutput, "\n") !== false) {
|
36 |
+
$totalCodeLines = count(explode("\n", $tagOutput));
|
37 |
+
|
38 |
+
if ($totalCodeLines > 18) {
|
39 |
+
$enableViewMore = true;
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
if (strlen($tagOutput) > 600) {
|
44 |
+
$enableViewMore = true;
|
45 |
+
}
|
46 |
+
?>
|
47 |
+
<div class="wpacu-hardcoded-code-area <?php if ($enableViewMore) { ?>wpacu-has-view-more<?php } ?>">
|
48 |
+
<?php
|
49 |
+
if ($tagBelongsTo = \WpAssetCleanUp\HardcodedAssets::belongsTo($data['row']['obj']->tag_output)) {
|
50 |
+
echo '<div style="margin-bottom: 10px;">'.__('Belongs to', 'wp-asset-clean-up').': <strong>'.$tagBelongsTo . '</strong></div>';
|
51 |
+
}
|
52 |
+
|
53 |
+
if ($data['row']['obj']->inside_conditional_comment) {
|
54 |
+
echo '<span><img style="vertical-align: middle;" width="25" height="25" src="'.WPACU_PLUGIN_URL.'/assets/icons/icon-ie.svg" alt="" title="Microsoft / Public domain" /> <span style="font-weight: 400; color: #1C87CF;">Loads only in Internet Explorer based on the following condition:</span> <em>if '.$data['row']['obj']->inside_conditional_comment.'</em></span>';
|
55 |
+
}
|
56 |
+
?>
|
57 |
+
<div>
|
58 |
+
<pre><code><?php echo htmlentities( $data['row']['obj']->tag_output ); ?></code></pre>
|
59 |
+
</div>
|
60 |
+
<?php if ($enableViewMore) {
|
61 |
+
$wpacuViewMoreCodeBtnClass = ! is_admin() ? 'wpacu-view-more-code' : 'button';
|
62 |
+
?>
|
63 |
+
<p class="wpacu-view-more-link-area" style="margin: 0 !important; padding: 15px !important;"><a href="#" class="<?php echo $wpacuViewMoreCodeBtnClass; ?>"><?php _e('View more', 'wp-asset-clean-up'); ?></a></p>
|
64 |
+
<?php } ?>
|
65 |
+
</div>
|
66 |
+
<?php
|
67 |
+
}
|
68 |
+
?>
|
69 |
+
<div class="wrap_bulk_unload_options">
|
70 |
+
<?php
|
71 |
+
// Unload on this page
|
72 |
+
include '_asset-script-single-row-hardcoded/_unload-per-page.php';
|
73 |
+
|
74 |
+
// Unload site-wide (everywhere)
|
75 |
+
include '_asset-script-single-row-hardcoded/_unload-site-wide.php';
|
76 |
+
|
77 |
+
// Unload on all pages of [post] post type (if applicable)
|
78 |
+
include '_asset-script-single-row-hardcoded/_unload-post-type.php';
|
79 |
+
|
80 |
+
// Unload via RegEx (if site-wide is not already chosen)
|
81 |
+
include '_asset-script-single-row-hardcoded/_unload-via-regex.php';
|
82 |
+
|
83 |
+
do_action('wpacu_pro_bulk_unload_output', $data, $data['row']['obj'], 'js');
|
84 |
+
?>
|
85 |
+
<div class="wpacu-clearfix"></div>
|
86 |
+
</div>
|
87 |
+
<?php
|
88 |
+
// Handle Note
|
89 |
+
include '_asset-script-single-row-hardcoded/_notes.php';
|
90 |
+
|
91 |
+
// Preloads (none for the hardcoded scripts)
|
92 |
+
?>
|
93 |
+
<input type="hidden"
|
94 |
+
name="wpacu_preloads[scripts][<?php echo $data['row']['obj']->handle; ?>]"
|
95 |
+
value="" />
|
96 |
+
<img style="display: none;"
|
97 |
+
class="wpacu-ajax-loader"
|
98 |
+
src="<?php echo WPACU_PLUGIN_URL; ?>/assets/icons/icon-ajax-loading-spinner.svg" alt="" />
|
99 |
+
</td>
|
100 |
+
</tr>
|
templates/meta-box-loaded-assets/_hardcoded/_asset-script-single-row-hardcoded/_notes.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* The file is included from /templates/meta-box-loaded-assets/_asset-script-single-row.php
|
4 |
+
*/
|
5 |
+
|
6 |
+
if (! isset($data)) {
|
7 |
+
exit; // no direct access
|
8 |
+
}
|
9 |
+
?>
|
10 |
+
<div class="wpacu-handle-notes">
|
11 |
+
<p><small>No notes have been added about this JavaScript file (e.g. why you unloaded it or decided to keep it loaded) ⟶ <a data-handle="<?php echo $data['row']['obj']->handle; ?>" href="#" class="wpacu-manage-hardcoded-assets-requires-pro-popup wpacu-add-handle-note wpacu-for-script"><span class="dashicons dashicons-welcome-write-blog"></span> <label for="wpacu_handle_note_<?php echo $data['row']['obj']->handle; ?>">Add Note</label></a></small></p>
|
12 |
+
</div>
|
templates/meta-box-loaded-assets/_hardcoded/_asset-script-single-row-hardcoded/_source.php
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* The file is included from /templates/meta-box-loaded-assets/_asset-script-single-row.php
|
4 |
+
*/
|
5 |
+
|
6 |
+
if ( ! isset($data) ) {
|
7 |
+
exit; // no direct access
|
8 |
+
}
|
9 |
+
|
10 |
+
if (isset($data['row']['obj']->src, $data['row']['obj']->srcHref) && $data['row']['obj']->src !== '' && $data['row']['obj']->srcHref) {
|
11 |
+
$isExternalSrc = true;
|
12 |
+
|
13 |
+
if (\WpAssetCleanUp\Misc::getLocalSrc($data['row']['obj']->src)
|
14 |
+
|| strpos($data['row']['obj']->src, '/?') !== false // Dynamic Local URL
|
15 |
+
|| strpos(str_replace(site_url(), '', $data['row']['obj']->src), '?') === 0 // Starts with ? right after the site url (it's a local URL)
|
16 |
+
) {
|
17 |
+
$isExternalSrc = false;
|
18 |
+
}
|
19 |
+
|
20 |
+
$relSrc = str_replace(site_url(), '', $data['row']['obj']->src);
|
21 |
+
|
22 |
+
if (isset($data['row']['obj']->baseUrl)) {
|
23 |
+
$relSrc = str_replace($data['row']['obj']->baseUrl, '/', $relSrc);
|
24 |
+
}
|
25 |
+
?>
|
26 |
+
<div class="wpacu-source-row">
|
27 |
+
<?php _e( 'Source:', 'wp-asset-clean-up' ); ?>
|
28 |
+
<a target="_blank"
|
29 |
+
style="color: green;" <?php if ( $isExternalSrc ) { ?> data-wpacu-external-source="<?php echo $data['row']['obj']->srcHref; ?>" <?php } ?>
|
30 |
+
href="<?php echo $data['row']['obj']->src; ?>"><?php echo $relSrc; ?></a>
|
31 |
+
<?php if ( $isExternalSrc ) { ?><span data-wpacu-external-source-status></span><?php } ?>
|
32 |
+
</div>
|
33 |
+
<?php
|
34 |
+
}
|
templates/meta-box-loaded-assets/_hardcoded/_asset-script-single-row-hardcoded/_unload-per-page.php
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* The file is included from /templates/meta-box-loaded-assets/_asset-script-single-row.php
|
4 |
+
*/
|
5 |
+
|
6 |
+
if (! isset($data)) {
|
7 |
+
exit; // no direct access
|
8 |
+
}
|
9 |
+
?>
|
10 |
+
<div class="wpacu_asset_options_wrap"
|
11 |
+
style="padding: 8px 10px 6px !important;">
|
12 |
+
<ul class="wpacu_asset_options">
|
13 |
+
<li class="wpacu_unload_this_page">
|
14 |
+
<label class="wpacu_switch wpacu_disabled wpacu-manage-hardcoded-assets-requires-pro-popup">
|
15 |
+
<input data-handle="<?php echo $data['row']['obj']->handle; ?>"
|
16 |
+
data-handle-for="script"
|
17 |
+
class="input-unload-on-this-page wpacu-not-locked wpacu_unload_rule_input wpacu_unload_rule_for_script"
|
18 |
+
id="script_<?php echo $data['row']['obj']->handle; ?>"
|
19 |
+
disabled="disabled"
|
20 |
+
name="<?php echo WPACU_PLUGIN_ID; ?>[scripts][]"
|
21 |
+
type="checkbox"
|
22 |
+
value="<?php echo $data['row']['obj']->handle; ?>" />
|
23 |
+
<span class="wpacu_slider wpacu_round"></span>
|
24 |
+
</label>
|
25 |
+
<label class="wpacu_slider_text wpacu-manage-hardcoded-assets-requires-pro-popup" for="script_<?php echo $data['row']['obj']->handle; ?>">
|
26 |
+
<?php echo $data['page_unload_text']; ?>
|
27 |
+
</label>
|
28 |
+
</li>
|
29 |
+
</ul>
|
30 |
+
</div>
|
templates/meta-box-loaded-assets/_hardcoded/_asset-script-single-row-hardcoded/_unload-post-type.php
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* The file is included from /templates/meta-box-loaded-assets/_asset-script-single-row.php
|
4 |
+
*/
|
5 |
+
|
6 |
+
if (! isset($data)) {
|
7 |
+
exit; // no direct access
|
8 |
+
}
|
9 |
+
|
10 |
+
if ($data['bulk_unloaded_type'] === 'post_type') {
|
11 |
+
?>
|
12 |
+
<div class="wpacu_asset_options_wrap">
|
13 |
+
<?php
|
14 |
+
?>
|
15 |
+
<ul class="wpacu_asset_options">
|
16 |
+
<?php
|
17 |
+
switch ($data['post_type']) {
|
18 |
+
case 'product':
|
19 |
+
$unloadBulkText = __('Unload JS on all WooCommerce "Product" pages', 'wp-asset-clean-up');
|
20 |
+
break;
|
21 |
+
case 'download':
|
22 |
+
$unloadBulkText = __('Unload JS on all Easy Digital Downloads "Download" pages', 'wp-asset-clean-up');
|
23 |
+
break;
|
24 |
+
default:
|
25 |
+
$unloadBulkText = sprintf(__('Unload on All Pages of "<strong>%s</strong>" post type', 'wp-asset-clean-up'), $data['post_type']);
|
26 |
+
}
|
27 |
+
?>
|
28 |
+
<li>
|
29 |
+
<label class="wpacu-manage-hardcoded-assets-requires-pro-popup">
|
30 |
+
<span style="color: #ccc;" class="wpacu-manage-hardcoded-assets-requires-pro-popup dashicons dashicons-lock"></span>
|
31 |
+
<?php echo $unloadBulkText; ?></label>
|
32 |
+
</li>
|
33 |
+
</ul>
|
34 |
+
</div>
|
35 |
+
<?php
|
36 |
+
}
|
templates/meta-box-loaded-assets/_hardcoded/_asset-script-single-row-hardcoded/_unload-site-wide.php
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* The file is included from /templates/meta-box-loaded-assets/_asset-script-single-row.php
|
4 |
+
*/
|
5 |
+
|
6 |
+
if (! isset($data)) {
|
7 |
+
exit; // no direct access
|
8 |
+
}
|
9 |
+
?>
|
10 |
+
<div class="wpacu_asset_options_wrap">
|
11 |
+
<ul class="wpacu_asset_options">
|
12 |
+
<li>
|
13 |
+
<label class="wpacu-manage-hardcoded-assets-requires-pro-popup">
|
14 |
+
<span style="color: #ccc;" class="wpacu-manage-hardcoded-assets-requires-pro-popup dashicons dashicons-lock"></span>
|
15 |
+
<?php _e('Unload site-wide', 'wp-asset-clean-up'); ?> <small>* <?php _e('everywhere', 'wp-asset-clean-up'); ?></small>
|
16 |
+
</label>
|
17 |
+
</li>
|
18 |
+
</ul>
|
19 |
+
</div>
|
templates/meta-box-loaded-assets/_hardcoded/_asset-script-single-row-hardcoded/_unload-via-regex.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* The file is included from /templates/meta-box-loaded-assets/_asset-script-single-row.php
|
4 |
+
*/
|
5 |
+
|
6 |
+
if (! isset($data)) {
|
7 |
+
exit; // no direct access
|
8 |
+
}
|
9 |
+
?>
|
10 |
+
<div data-script-handle="<?php echo $data['row']['obj']->handle; ?>" class="wpacu_asset_options_wrap wpacu_unload_regex_area_wrap">
|
11 |
+
<ul class="wpacu_asset_options">
|
12 |
+
<li>
|
13 |
+
<label class="wpacu-manage-hardcoded-assets-requires-pro-popup"
|
14 |
+
for="wpacu_unload_it_regex_option_script_<?php echo $data['row']['obj']->handle; ?>">
|
15 |
+
<span style="color: #ccc;" class="wpacu-manage-hardcoded-assets-requires-pro-popup dashicons dashicons-lock"></span> Unload it for URLs with request URI matching this RegEx(es):
|
16 |
+
</label>
|
17 |
+
<a style="text-decoration: none; color: inherit; vertical-align: middle;" target="_blank"
|
18 |
+
href="https://assetcleanup.com/docs/?p=313#wpacu-unload-by-regex"><span
|
19 |
+
class="dashicons dashicons-editor-help"></span></a>
|
20 |
+
</li>
|
21 |
+
</ul>
|
22 |
+
</div>
|
templates/meta-box-loaded-assets/_hardcoded/_asset-style-single-row-hardcoded.php
ADDED
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* The file is included from _assets-hardcoded-list.php and it's relevant only for the hardcoded styles (non-enqueued)
|
4 |
+
*/
|
5 |
+
if (! isset($data)) {
|
6 |
+
exit; // no direct access
|
7 |
+
}
|
8 |
+
?>
|
9 |
+
<tr data-style-handle-row="<?php echo $data['row']['obj']->handle; ?>"
|
10 |
+
class="wpacu_asset_row">
|
11 |
+
<td>
|
12 |
+
<?php if (isset($data['row']['obj']->src) && $data['row']['obj']->src) { ?>
|
13 |
+
<?php
|
14 |
+
// Source
|
15 |
+
include '_asset-style-single-row-hardcoded/_source.php';
|
16 |
+
?>
|
17 |
+
<div style="margin: 10px 0;">File Size: Pro version</div>
|
18 |
+
<?php
|
19 |
+
if ($data['row']['obj']->inside_conditional_comment) {
|
20 |
+
echo '<span><img style="vertical-align: middle;" width="25" height="25" src="'.WPACU_PLUGIN_URL.'/assets/icons/icon-ie.svg" alt="" title="Microsoft / Public domain" /> <span style="font-weight: 400; color: #1C87CF;">Loads only in Internet Explorer based on the following condition:</span> <em>if '.$data['row']['obj']->inside_conditional_comment.'</em></span>';
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<div style="margin: 10px 0;" class="wpacu-hardcoded-code-area">
|
24 |
+
HTML Output: <code><?php echo htmlentities( $data['row']['obj']->tag_output ); ?></code>
|
25 |
+
</div>
|
26 |
+
<?php
|
27 |
+
} else {
|
28 |
+
// STYLE inline tag
|
29 |
+
$tagOutput = trim($data['row']['obj']->tag_output);
|
30 |
+
|
31 |
+
// default values (could be changed below)
|
32 |
+
$totalCodeLines = 1;
|
33 |
+
$enableViewMore = false;
|
34 |
+
|
35 |
+
if (strpos($tagOutput, "\n") !== false) {
|
36 |
+
$totalCodeLines = count(explode("\n", $tagOutput));
|
37 |
+
|
38 |
+
if ($totalCodeLines > 18) {
|
39 |
+
$enableViewMore = true;
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
if (strlen($tagOutput) > 600) {
|
44 |
+
$enableViewMore = true;
|
45 |
+
}
|
46 |
+
?>
|
47 |
+
<div class="wpacu-hardcoded-code-area <?php if ($enableViewMore) { ?>wpacu-has-view-more<?php } ?>">
|
48 |
+
<?php
|
49 |
+
if ($tagBelongsTo = \WpAssetCleanUp\HardcodedAssets::belongsTo($data['row']['obj']->tag_output)) {
|
50 |
+
echo '<div style="margin-bottom: 10px;">'.__('Belongs to', 'wp-asset-clean-up').': <strong>'.$tagBelongsTo . '</strong></div>';
|
51 |
+
}
|
52 |
+
|
53 |
+
if ($data['row']['obj']->inside_conditional_comment) {
|
54 |
+
echo '<span><img style="vertical-align: middle;" width="25" height="25" src="'.WPACU_PLUGIN_URL.'/assets/icons/icon-ie.svg" alt="" title="Microsoft / Public domain" /> <span style="font-weight: 400; color: #1C87CF;">Loads only in Internet Explorer based on the following condition:</span> <em>if '.$data['row']['obj']->inside_conditional_comment.'</em></span>';
|
55 |
+
}
|
56 |
+
?>
|
57 |
+
<div>
|
58 |
+
<pre><code><?php echo htmlentities( $data['row']['obj']->tag_output ); ?></code></pre>
|
59 |
+
</div>
|
60 |
+
<?php if ($enableViewMore) {
|
61 |
+
$wpacuViewMoreCodeBtnClass = ! is_admin() ? 'wpacu-view-more-code' : 'button';
|
62 |
+
?>
|
63 |
+
<p class="wpacu-view-more-link-area" style="margin: 0 !important; padding: 15px !important;"><a href="#" class="<?php echo $wpacuViewMoreCodeBtnClass; ?>"><?php _e('View more', 'wp-asset-clean-up'); ?></a></p>
|
64 |
+
<?php } ?>
|
65 |
+
</div>
|
66 |
+
<?php
|
67 |
+
}
|
68 |
+
?>
|
69 |
+
<div class="wrap_bulk_unload_options">
|
70 |
+
<?php
|
71 |
+
$tagType = '';
|
72 |
+
|
73 |
+
if (isset($data['row']['obj']->tag_output)) {
|
74 |
+
$tagType = ( strpos( $data['row']['obj']->tag_output, '<link' ) !== false ) ? 'LINK' : 'STYLE';
|
75 |
+
}
|
76 |
+
|
77 |
+
// Unload on this page
|
78 |
+
include '_asset-style-single-row-hardcoded/_unload-per-page.php';
|
79 |
+
|
80 |
+
// Unload site-wide (everywhere)
|
81 |
+
include '_asset-style-single-row-hardcoded/_unload-site-wide.php';
|
82 |
+
|
83 |
+
// Unload on all pages of [post] post type (if applicable)
|
84 |
+
include '_asset-style-single-row-hardcoded/_unload-post-type.php';
|
85 |
+
|
86 |
+
// Unload via RegEx (if site-wide is not already chosen)
|
87 |
+
include '_asset-style-single-row-hardcoded/_unload-via-regex.php';
|
88 |
+
|
89 |
+
do_action('wpacu_pro_bulk_unload_output', $data, $data['row']['obj'], 'css');
|
90 |
+
?>
|
91 |
+
<div class="wpacu-clearfix"></div>
|
92 |
+
</div>
|
93 |
+
<?php
|
94 |
+
// Handle Note
|
95 |
+
include '_asset-style-single-row-hardcoded/_notes.php';
|
96 |
+
|
97 |
+
// Preloads (none for the hardcoded styles)
|
98 |
+
?>
|
99 |
+
<input type="hidden"
|
100 |
+
name="wpacu_preloads[styles][<?php echo $data['row']['obj']->handle; ?>]"
|
101 |
+
value="" />
|
102 |
+
<img style="display: none;"
|
103 |
+
class="wpacu-ajax-loader"
|
104 |
+
src="<?php echo WPACU_PLUGIN_URL; ?>/assets/icons/icon-ajax-loading-spinner.svg" alt="" />
|
105 |
+
</td>
|
106 |
+
</tr>
|
templates/meta-box-loaded-assets/_hardcoded/_asset-style-single-row-hardcoded/_notes.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* The file is included from /templates/meta-box-loaded-assets/_asset-style-single-row.php
|
4 |
+
*/
|
5 |
+
if (! isset($data, $tagType)) {
|
6 |
+
exit; // no direct access
|
7 |
+
}
|
8 |
+
?>
|
9 |
+
<div class="wpacu-handle-notes">
|
10 |
+
<p><small>No notes have been added about this hardcoded <?php echo $tagType; ?> tag (e.g. why you unloaded it or decided to keep it loaded) ⟶ <a data-handle="<?php echo $data['row']['obj']->handle; ?>" href="#" class="wpacu-manage-hardcoded-assets-requires-pro-popup wpacu-add-handle-note wpacu-for-style"><span class="dashicons dashicons-welcome-write-blog"></span> <label for="wpacu_handle_note_<?php echo $data['row']['obj']->handle; ?>">Add Note</label></a></small></p>
|
11 |
+
</div>
|
templates/meta-box-loaded-assets/_hardcoded/_asset-style-single-row-hardcoded/_source.php
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* The file is included from /templates/meta-box-loaded-assets/_asset-script-single-row.php
|
4 |
+
*/
|
5 |
+
if ( ! isset($data) ) {
|
6 |
+
exit; // no direct access
|
7 |
+
}
|
8 |
+
|
9 |
+
if (isset($data['row']['obj']->src, $data['row']['obj']->srcHref) && $data['row']['obj']->src !== '' && $data['row']['obj']->srcHref) {
|
10 |
+
$isExternalSrc = true;
|
11 |
+
|
12 |
+
if (\WpAssetCleanUp\Misc::getLocalSrc($data['row']['obj']->src)
|
13 |
+
|| strpos($data['row']['obj']->src, '/?') !== false // Dynamic Local URL
|
14 |
+
|| strpos(str_replace(site_url(), '', $data['row']['obj']->src), '?') === 0 // Starts with ? right after the site url (it's a local URL)
|
15 |
+
) {
|
16 |
+
$isExternalSrc = false;
|
17 |
+
}
|
18 |
+
|
19 |
+
$relSrc = str_replace(site_url(), '', $data['row']['obj']->src);
|
20 |
+
|
21 |
+
if (isset($data['row']['obj']->baseUrl)) {
|
22 |
+
$relSrc = str_replace($data['row']['obj']->baseUrl, '/', $relSrc);
|
23 |
+
}
|
24 |
+
?>
|
25 |
+
<div class="wpacu-source-row">
|
26 |
+
<?php _e( 'Source:', 'wp-asset-clean-up' ); ?>
|
27 |
+
<a target="_blank"
|
28 |
+
style="color: green;" <?php if ( $isExternalSrc ) { ?> data-wpacu-external-source="<?php echo $data['row']['obj']->srcHref; ?>" <?php } ?>
|
29 |
+
href="<?php echo $data['row']['obj']->src; ?>"><?php echo $relSrc; ?></a>
|
30 |
+
<?php if ( $isExternalSrc ) { ?><span data-wpacu-external-source-status></span><?php } ?>
|
31 |
+
</div>
|
32 |
+
<?php
|
33 |
+
}
|
templates/meta-box-loaded-assets/_hardcoded/_asset-style-single-row-hardcoded/_unload-per-page.php
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* The file is included from /templates/meta-box-loaded-assets/_asset-script-single-row.php
|
4 |
+
*/
|
5 |
+
if (! isset($data)) {
|
6 |
+
exit; // no direct access
|
7 |
+
}
|
8 |
+
?>
|
9 |
+
<div class="wpacu_asset_options_wrap"
|
10 |
+
style="padding: 6px 10px 5px !important;">
|
11 |
+
<ul class="wpacu_asset_options">
|
12 |
+
<li class="wpacu_unload_this_page">
|
13 |
+
<label class="wpacu-manage-hardcoded-assets-requires-pro-popup wpacu_switch wpacu_disabled">
|
14 |
+
<input data-handle="<?php echo $data['row']['obj']->handle; ?>"
|
15 |
+
data-handle-for="style"
|
16 |
+
class="input-unload-on-this-page wpacu-not-locked wpacu_unload_rule_input wpacu_unload_rule_for_style"
|
17 |
+
id="style_<?php echo $data['row']['obj']->handle; ?>"
|
18 |
+
disabled="disabled"
|
19 |
+
name="<?php echo WPACU_PLUGIN_ID; ?>[styles][]"
|
20 |
+
type="checkbox"
|
21 |
+
value="<?php echo $data['row']['obj']->handle; ?>" />
|
22 |
+
<span class="wpacu_slider wpacu_round"></span>
|
23 |
+
</label>
|
24 |
+
<label class="wpacu-manage-hardcoded-assets-requires-pro-popup wpacu_slider_text" for="style_<?php echo $data['row']['obj']->handle; ?>">
|
25 |
+
<?php echo $data['page_unload_text']; ?>
|
26 |
+
</label>
|
27 |
+
</li>
|
28 |
+
</ul>
|
29 |
+
</div>
|
templates/meta-box-loaded-assets/_hardcoded/_asset-style-single-row-hardcoded/_unload-post-type.php
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* The file is included from /templates/meta-box-loaded-assets/_asset-style-single-row.php
|
4 |
+
*/
|
5 |
+
if (! isset($data, $tagType)) {
|
6 |
+
exit; // no direct access
|
7 |
+
}
|
8 |
+
|
9 |
+
if ($data['bulk_unloaded_type'] === 'post_type') {
|
10 |
+
?>
|
11 |
+
<div class="wpacu_asset_options_wrap">
|
12 |
+
<ul class="wpacu_asset_options">
|
13 |
+
<?php
|
14 |
+
switch ($data['post_type']) {
|
15 |
+
case 'product':
|
16 |
+
$unloadBulkText = __('Unload CSS on all WooCommerce "Product" pages', 'wp-asset-clean-up');
|
17 |
+
break;
|
18 |
+
case 'download':
|
19 |
+
$unloadBulkText = __('Unload CSS on all Easy Digital Downloads "Download" pages', 'wp-asset-clean-up');
|
20 |
+
break;
|
21 |
+
default:
|
22 |
+
$unloadBulkText = sprintf(__('Unload on All Pages of "<strong>%s</strong>" post type', 'wp-asset-clean-up'), $data['post_type']);
|
23 |
+
}
|
24 |
+
?>
|
25 |
+
<li>
|
26 |
+
<label class="wpacu-manage-hardcoded-assets-requires-pro-popup">
|
27 |
+
<span style="color: #ccc;" class="wpacu-manage-hardcoded-assets-requires-pro-popup dashicons dashicons-lock"></span>
|
28 |
+
<?php echo $unloadBulkText; ?></label>
|
29 |
+
</li>
|
30 |
+
</ul>
|
31 |
+
</div>
|
32 |
+
<?php
|
33 |
+
}
|
templates/meta-box-loaded-assets/_hardcoded/_asset-style-single-row-hardcoded/_unload-site-wide.php
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* The file is included from /templates/meta-box-loaded-assets/_asset-style-single-row.php
|
4 |
+
*/
|
5 |
+
if (! isset($data, $tagType)) {
|
6 |
+
exit; // no direct access
|
7 |
+
}
|
8 |
+
?>
|
9 |
+
<div class="wpacu_asset_options_wrap">
|
10 |
+
<ul class="wpacu_asset_options">
|
11 |
+
<li>
|
12 |
+
<label class="wpacu-manage-hardcoded-assets-requires-pro-popup">
|
13 |
+
<span style="color: #ccc;" class="wpacu-manage-hardcoded-assets-requires-pro-popup dashicons dashicons-lock"></span>
|
14 |
+
<?php _e('Unload site-wide', 'wp-asset-clean-up'); ?> <small>* <?php _e('everywhere', 'wp-asset-clean-up'); ?></small>
|
15 |
+
</label>
|
16 |
+
</li>
|
17 |
+
</ul>
|
18 |
+
</div>
|
templates/meta-box-loaded-assets/_hardcoded/_asset-style-single-row-hardcoded/_unload-via-regex.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* The file is included from /templates/meta-box-loaded-assets/_asset-style-single-row.php
|
4 |
+
*/
|
5 |
+
if (! isset($data)) {
|
6 |
+
exit; // no direct access
|
7 |
+
}
|
8 |
+
?>
|
9 |
+
<div class="wpacu_asset_options_wrap wpacu_unload_regex_area_wrap">
|
10 |
+
<ul class="wpacu_asset_options">
|
11 |
+
<li>
|
12 |
+
<label class="wpacu-manage-hardcoded-assets-requires-pro-popup"
|
13 |
+
for="wpacu_unload_it_regex_option_style_<?php echo $data['row']['obj']->handle; ?>">
|
14 |
+
<span style="color: #ccc;" class="wpacu-manage-hardcoded-assets-requires-pro-popup dashicons dashicons-lock"></span>
|
15 |
+
Unload it for URLs with request URI matching this RegEx(es):
|
16 |
+
</label>
|
17 |
+
<a style="text-decoration: none; color: inherit; vertical-align: middle;" target="_blank"
|
18 |
+
href="https://assetcleanup.com/docs/?p=313#wpacu-unload-by-regex"><span
|
19 |
+
class="dashicons dashicons-editor-help"></span></a>
|
20 |
+
</li>
|
21 |
+
</ul>
|
22 |
+
</div>
|
templates/meta-box-loaded-assets/_inline_js.php
CHANGED
@@ -161,4 +161,61 @@ if (! isset($data)) {
|
|
161 |
wpacuAdjustTextareaHeight(el, minHeight);
|
162 |
});
|
163 |
}());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
</script>
|
161 |
wpacuAdjustTextareaHeight(el, minHeight);
|
162 |
});
|
163 |
}());
|
164 |
+
|
165 |
+
/* For Hardcoded Assets List */
|
166 |
+
jQuery(document).ready(function($) {
|
167 |
+
var $wpacuEl, $wpacuP, $wpacuUp, $wpacuPs, wpacuTotalHeight;
|
168 |
+
|
169 |
+
$(document).on('click', '.wpacu-has-view-more > p.wpacu-view-more-link-area > a', function (e) {
|
170 |
+
e.preventDefault();
|
171 |
+
//console.log('View more click...');
|
172 |
+
|
173 |
+
wpacuTotalHeight = 0;
|
174 |
+
|
175 |
+
$wpacuEl = $(this);
|
176 |
+
$wpacuP = $wpacuEl.parent();
|
177 |
+
$wpacuUp = $wpacuP.parent();
|
178 |
+
$wpacuPs = $wpacuUp.find('div');
|
179 |
+
|
180 |
+
// Measure how tall inside should be by adding together heights of all inside elements (except read-more)
|
181 |
+
$wpacuPs.each(function () {
|
182 |
+
wpacuTotalHeight += jQuery(this).outerHeight();
|
183 |
+
});
|
184 |
+
|
185 |
+
$wpacuUp.css({
|
186 |
+
// Set height to prevent instant jumpdown when max height is removed
|
187 |
+
'height': $wpacuUp.height(),
|
188 |
+
'max-height': 9999
|
189 |
+
}).animate({
|
190 |
+
'height': wpacuTotalHeight
|
191 |
+
}, function () {
|
192 |
+
$wpacuUp.css({'height': 'auto'});
|
193 |
+
});
|
194 |
+
|
195 |
+
// Fade out read-more
|
196 |
+
$wpacuP.fadeOut();
|
197 |
+
|
198 |
+
// Prevent jump-down
|
199 |
+
return false;
|
200 |
+
});
|
201 |
+
});
|
202 |
+
|
203 |
+
<?php
|
204 |
+
// [wpacu_lite]
|
205 |
+
if (! is_admin()) {
|
206 |
+
// Admin manages the list in the front-end view
|
207 |
+
$upgradeToProLink = WPACU_PLUGIN_GO_PRO_URL.'?utm_source=manage_hardcoded_assets&utm_medium=go_pro_frontend';
|
208 |
+
?>
|
209 |
+
var wpacuElGoPro = document.getElementsByClassName('wpacu-manage-hardcoded-assets-requires-pro-popup');
|
210 |
+
|
211 |
+
for (var wpacuII = 0; wpacuII < wpacuElGoPro.length; wpacuII++) {
|
212 |
+
// Here we have the same onclick
|
213 |
+
wpacuElGoPro.item(wpacuII).onclick = function() {
|
214 |
+
window.location.replace('<?php echo $upgradeToProLink; ?>');
|
215 |
+
};
|
216 |
+
}
|
217 |
+
<?php
|
218 |
+
}
|
219 |
+
// [/wpacu_lite]
|
220 |
+
?>
|
221 |
</script>
|
templates/meta-box-loaded-assets/view-by-loaded-unloaded.php
CHANGED
@@ -134,6 +134,13 @@ $listAreaStatus = $data['plugin_settings']['assets_list_layout_areas_status'];
|
|
134 |
}
|
135 |
}
|
136 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
/*
|
138 |
* ----------------------------
|
139 |
* [END] BY Loaded or Unloaded
|
134 |
}
|
135 |
}
|
136 |
}
|
137 |
+
|
138 |
+
if ( isset( $data['all']['hardcoded'] ) && ! empty( $data['all']['hardcoded'] ) ) {
|
139 |
+
include_once __DIR__ . '/_assets-hardcoded-list.php';
|
140 |
+
} elseif ($data['is_frontend_view']) {
|
141 |
+
// The following string will be replaced within a "wp_loaded" action hook
|
142 |
+
echo '{wpacu_assets_collapsible_wrap_hardcoded_list}';
|
143 |
+
}
|
144 |
/*
|
145 |
* ----------------------------
|
146 |
* [END] BY Loaded or Unloaded
|
templates/meta-box-loaded-assets/view-by-location.php
CHANGED
@@ -272,6 +272,13 @@ $listAreaStatus = $data['plugin_settings']['assets_list_layout_areas_status'];
|
|
272 |
echo $locationMainOutput;
|
273 |
}
|
274 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
275 |
}
|
276 |
/*
|
277 |
* -----------------------
|
272 |
echo $locationMainOutput;
|
273 |
}
|
274 |
}
|
275 |
+
|
276 |
+
if ( isset( $data['all']['hardcoded'] ) && ! empty( $data['all']['hardcoded'] ) ) {
|
277 |
+
include_once __DIR__ . '/_assets-hardcoded-list.php';
|
278 |
+
} elseif ($data['is_frontend_view']) {
|
279 |
+
// The following string will be replaced within a "wp_loaded" action hook
|
280 |
+
echo '{wpacu_assets_collapsible_wrap_hardcoded_list}';
|
281 |
+
}
|
282 |
}
|
283 |
/*
|
284 |
* -----------------------
|
templates/meta-box-loaded-assets/view-by-parents.php
CHANGED
@@ -127,6 +127,14 @@ $listAreaStatus = $data['plugin_settings']['assets_list_layout_areas_status'];
|
|
127 |
}
|
128 |
}
|
129 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
/*
|
131 |
* --------------------------------------------
|
132 |
* [END] BY EACH HANDLE STATUS (Parent or Not)
|
127 |
}
|
128 |
}
|
129 |
}
|
130 |
+
|
131 |
+
if ( isset( $data['all']['hardcoded'] ) && ! empty( $data['all']['hardcoded'] ) ) {
|
132 |
+
include_once __DIR__ . '/_assets-hardcoded-list.php';
|
133 |
+
} elseif ($data['is_frontend_view']) {
|
134 |
+
// The following string will be replaced within a "wp_loaded" action hook
|
135 |
+
echo '{wpacu_assets_collapsible_wrap_hardcoded_list}';
|
136 |
+
}
|
137 |
+
|
138 |
/*
|
139 |
* --------------------------------------------
|
140 |
* [END] BY EACH HANDLE STATUS (Parent or Not)
|
templates/meta-box-loaded-assets/view-by-position.php
CHANGED
@@ -13,115 +13,122 @@ $listAreaStatus = $data['plugin_settings']['assets_list_layout_areas_status'];
|
|
13 |
*/
|
14 |
?>
|
15 |
<div>
|
16 |
-
|
17 |
-
|
|
|
|
|
|
|
|
|
|
|
18 |
?>
|
19 |
-
<
|
20 |
-
<
|
21 |
<?php
|
22 |
-
|
23 |
-
?>
|
24 |
-
<div class="wpacu_note"><span class="dashicons dashicons-info"></span> WordPress CSS & JavaScript core files are hidden as requested in the plugin's settings. They are meant to be managed by experienced developers in special situations.</div>
|
25 |
-
<div class="wpacu-clearfix" style="margin-top: 10px;"></div>
|
26 |
-
<?php
|
27 |
-
}
|
28 |
|
29 |
-
|
30 |
-
?>
|
31 |
-
<div class="wpacu_note wpacu_warning"><em><?php
|
32 |
-
echo sprintf(
|
33 |
-
__('Assets that are marked with %s are part of WordPress core files. Be careful if you decide to unload them! If you are not sure what to do, just leave them loaded by default and consult with a developer.', 'wp-asset-clean-up'),
|
34 |
-
'<span class="dashicons dashicons-warning"></span>'
|
35 |
-
);
|
36 |
-
?>
|
37 |
-
</em></div>
|
38 |
-
<?php
|
39 |
-
}
|
40 |
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
</div>
|
42 |
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
</div>
|
53 |
-
<div class="col-right">
|
54 |
-
<a href="#" id="wpacu-assets-contract-all" class="wpacu-wp-button wpacu-wp-button-secondary">Contract Both Areas</a>
|
55 |
-
<a href="#" id="wpacu-assets-expand-all" class="wpacu-wp-button wpacu-wp-button-secondary">Expand Both Areas</a>
|
56 |
-
</div>
|
57 |
-
<div class="wpacu-clearfix"></div>
|
58 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
}
|
97 |
-
?>
|
98 |
-
<div class="wpacu-assets-collapsible-wrap wpacu-by-position wpacu-wrap-area wpacu-<?php echo $positionMain; ?>">
|
99 |
-
<a class="wpacu-assets-collapsible <?php if ($listAreaStatus !== 'contracted') { ?>wpacu-assets-collapsible-active<?php } ?>" href="#wpacu-assets-collapsible-content-<?php echo $positionMain; ?>">
|
100 |
-
<?php echo $positionsText[$positionMain]; ?> ➝ Total files: <?php echo $totalFiles; ?>
|
101 |
-
</a>
|
102 |
-
|
103 |
-
<div class="wpacu-assets-collapsible-content <?php if ($listAreaStatus !== 'contracted') { ?>wpacu-open<?php } ?>">
|
104 |
-
<?php if ($positionMain === 'head') { ?>
|
105 |
-
<p class="wpacu-assets-note">The files below (if any) are loaded within <code><head></code> and <code></head></code> tags. The output is done through <code>wp_head()</code> WordPress function which should be located before the closing <code></head></code> tag of your theme.</p>
|
106 |
-
<?php } elseif ($positionMain === 'body') { ?>
|
107 |
-
<p class="wpacu-assets-note">The files below (if any) are loaded within <code><body></code> and <code></body></code> tags. The output is done through <code>wp_footer()</code> WordPress function which should be located before the closing <code></body></code> tag of your theme.</p>
|
108 |
-
<?php } ?>
|
109 |
-
|
110 |
-
<?php if (count($values) > 0) { ?>
|
111 |
-
<table class="wpacu_list_table wpacu_list_by_position wpacu_widefat wpacu_striped">
|
112 |
-
<tbody>
|
113 |
-
<?php
|
114 |
-
echo $assetRowsOutput;
|
115 |
-
?>
|
116 |
-
</tbody>
|
117 |
-
</table>
|
118 |
-
<?php } ?>
|
119 |
-
</div>
|
120 |
-
</div>
|
121 |
-
<?php
|
122 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
}
|
124 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
/*
|
126 |
* -----------------------
|
127 |
* [END] BY EACH POSITION
|
13 |
*/
|
14 |
?>
|
15 |
<div>
|
16 |
+
<?php
|
17 |
+
if (! empty($data['all']['styles']) || ! empty($data['all']['scripts'])) {
|
18 |
+
?>
|
19 |
+
<p><?php echo sprintf(__('The following styles & scripts are loading on this page. Please select the ones that are %sNOT NEEDED%s. If you are not sure which ones to unload, it is better to enable "Test Mode" (to make the changes apply only to you), while you are going through the trial & error process.', 'wp-asset-clean-up'), '<span style="color: #CC0000;"><strong>', '</strong></span>'); ?></p>
|
20 |
+
<p><?php echo __('"Load in on this page (make an exception)" will take effect when a bulk unload rule is used. Otherwise, the asset will load anyway unless you select it for unload.', 'wp-asset-clean-up'); ?></p>
|
21 |
+
<?php
|
22 |
+
if ($data['plugin_settings']['hide_core_files']) {
|
23 |
?>
|
24 |
+
<div class="wpacu_note"><span class="dashicons dashicons-info"></span> WordPress CSS & JavaScript core files are hidden as requested in the plugin's settings. They are meant to be managed by experienced developers in special situations.</div>
|
25 |
+
<div class="wpacu-clearfix" style="margin-top: 10px;"></div>
|
26 |
<?php
|
27 |
+
}
|
|
|
|
|
|
|
|
|
|
|
28 |
|
29 |
+
if ( ( (isset($data['core_styles_loaded']) && $data['core_styles_loaded']) || (isset($data['core_scripts_loaded']) && $data['core_scripts_loaded']) ) && ! $data['plugin_settings']['hide_core_files']) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
?>
|
31 |
+
<div class="wpacu_note wpacu_warning"><em><?php
|
32 |
+
echo sprintf(
|
33 |
+
__('Assets that are marked with %s are part of WordPress core files. Be careful if you decide to unload them! If you are not sure what to do, just leave them loaded by default and consult with a developer.', 'wp-asset-clean-up'),
|
34 |
+
'<span class="dashicons dashicons-warning"></span>'
|
35 |
+
);
|
36 |
+
?>
|
37 |
+
</em></div>
|
38 |
+
<?php
|
39 |
+
}
|
40 |
+
?>
|
41 |
</div>
|
42 |
|
43 |
+
<div style="margin: 10px 0;">
|
44 |
+
<?php
|
45 |
+
echo $data['assets_list_layout_output'];
|
46 |
+
?>
|
47 |
+
</div>
|
48 |
|
49 |
+
<div style="margin-bottom: 20px;" class="wpacu-contract-expand-area">
|
50 |
+
<div class="col-left">
|
51 |
+
<strong>➝ Total enqueued files (including core files): <?php echo (int)$data['total_styles'] + (int)$data['total_scripts']; ?></strong>
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
</div>
|
53 |
+
<div class="col-right">
|
54 |
+
<a href="#" id="wpacu-assets-contract-all" class="wpacu-wp-button wpacu-wp-button-secondary">Contract Both Areas</a>
|
55 |
+
<a href="#" id="wpacu-assets-expand-all" class="wpacu-wp-button wpacu-wp-button-secondary">Expand Both Areas</a>
|
56 |
+
</div>
|
57 |
+
<div class="wpacu-clearfix"></div>
|
58 |
+
</div>
|
59 |
|
60 |
+
<?php
|
61 |
+
$data['view_by_position'] =
|
62 |
+
$data['rows_build_array'] =
|
63 |
+
$data['rows_by_position'] = true;
|
64 |
+
|
65 |
+
$data['rows_assets'] = array();
|
66 |
+
|
67 |
+
require_once __DIR__.'/_asset-style-rows.php';
|
68 |
+
require_once __DIR__.'/_asset-script-rows.php';
|
69 |
+
|
70 |
+
$positionsText = array(
|
71 |
+
'head' => '<span class="dashicons dashicons-editor-code"></span> HEAD tag (.css & .js)',
|
72 |
+
'body' => '<span class="dashicons dashicons-editor-code"></span> BODY tag (.css & .js)'
|
73 |
+
);
|
74 |
+
|
75 |
+
if (! empty($data['rows_assets'])) {
|
76 |
+
// Sorting: head and body
|
77 |
+
$rowsAssets = array('head' => array(), 'body' => array());
|
78 |
+
|
79 |
+
foreach ($data['rows_assets'] as $positionMain => $values) {
|
80 |
+
$rowsAssets[$positionMain] = $values;
|
81 |
+
}
|
82 |
+
|
83 |
+
foreach ($rowsAssets as $positionMain => $values) {
|
84 |
+
ksort($values);
|
85 |
+
|
86 |
+
$assetRowsOutput = '';
|
87 |
+
|
88 |
+
$totalFiles = 0;
|
89 |
+
$assetRowIndex = 1;
|
90 |
+
|
91 |
+
foreach ($values as $assetType => $assetRows) {
|
92 |
+
foreach ($assetRows as $assetRow) {
|
93 |
+
$assetRowsOutput .= $assetRow . "\n";
|
94 |
+
$totalFiles++;
|
95 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
}
|
97 |
+
?>
|
98 |
+
<div class="wpacu-assets-collapsible-wrap wpacu-by-position wpacu-wrap-area wpacu-<?php echo $positionMain; ?>">
|
99 |
+
<a class="wpacu-assets-collapsible <?php if ($listAreaStatus !== 'contracted') { ?>wpacu-assets-collapsible-active<?php } ?>" href="#wpacu-assets-collapsible-content-<?php echo $positionMain; ?>">
|
100 |
+
<?php echo $positionsText[$positionMain]; ?> ➝ Total files: <?php echo $totalFiles; ?>
|
101 |
+
</a>
|
102 |
+
|
103 |
+
<div class="wpacu-assets-collapsible-content <?php if ($listAreaStatus !== 'contracted') { ?>wpacu-open<?php } ?>">
|
104 |
+
<?php if ($positionMain === 'head') { ?>
|
105 |
+
<p class="wpacu-assets-note">The files below (if any) are loaded within <code><head></code> and <code></head></code> tags. The output is done through <code>wp_head()</code> WordPress function which should be located before the closing <code></head></code> tag of your theme.</p>
|
106 |
+
<?php } elseif ($positionMain === 'body') { ?>
|
107 |
+
<p class="wpacu-assets-note">The files below (if any) are loaded within <code><body></code> and <code></body></code> tags. The output is done through <code>wp_footer()</code> WordPress function which should be located before the closing <code></body></code> tag of your theme.</p>
|
108 |
+
<?php } ?>
|
109 |
+
|
110 |
+
<?php if (count($values) > 0) { ?>
|
111 |
+
<table class="wpacu_list_table wpacu_list_by_position wpacu_widefat wpacu_striped">
|
112 |
+
<tbody>
|
113 |
+
<?php
|
114 |
+
echo $assetRowsOutput;
|
115 |
+
?>
|
116 |
+
</tbody>
|
117 |
+
</table>
|
118 |
+
<?php } ?>
|
119 |
+
</div>
|
120 |
+
</div>
|
121 |
+
<?php
|
122 |
}
|
123 |
}
|
124 |
+
}
|
125 |
+
|
126 |
+
if ( isset( $data['all']['hardcoded'] ) && ! empty( $data['all']['hardcoded'] ) ) {
|
127 |
+
include_once __DIR__ . '/_assets-hardcoded-list.php';
|
128 |
+
} elseif ($data['is_frontend_view']) {
|
129 |
+
// The following string will be replaced within a "wp_loaded" action hook
|
130 |
+
echo '{wpacu_assets_collapsible_wrap_hardcoded_list}';
|
131 |
+
}
|
132 |
/*
|
133 |
* -----------------------
|
134 |
* [END] BY EACH POSITION
|
templates/meta-box-loaded-assets/view-by-preload.php
CHANGED
@@ -127,6 +127,13 @@ $listAreaStatus = $data['plugin_settings']['assets_list_layout_areas_status'];
|
|
127 |
}
|
128 |
}
|
129 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
/*
|
131 |
* ------------------------------------
|
132 |
* [END] BY PRELOAD STATUS (yes or no)
|
127 |
}
|
128 |
}
|
129 |
}
|
130 |
+
|
131 |
+
if ( isset( $data['all']['hardcoded'] ) && ! empty( $data['all']['hardcoded'] ) ) {
|
132 |
+
include_once __DIR__ . '/_assets-hardcoded-list.php';
|
133 |
+
} elseif ($data['is_frontend_view']) {
|
134 |
+
// The following string will be replaced within a "wp_loaded" action hook
|
135 |
+
echo '{wpacu_assets_collapsible_wrap_hardcoded_list}';
|
136 |
+
}
|
137 |
/*
|
138 |
* ------------------------------------
|
139 |
* [END] BY PRELOAD STATUS (yes or no)
|
templates/meta-box-loaded-assets/view-default.php
CHANGED
@@ -31,7 +31,7 @@ $listAreaStatus = $data['plugin_settings']['assets_list_layout_areas_status'];
|
|
31 |
|
32 |
<div class="wpacu-assets-collapsible-wrap wpacu-wrap-area">
|
33 |
<a class="wpacu-assets-collapsible <?php if ($listAreaStatus !== 'contracted') { ?>wpacu-assets-collapsible-active<?php } ?>" href="#wpacu-assets-styles-collapsible-content">
|
34 |
-
<span class="dashicons dashicons-admin-appearance"></span> <?php _e('Styles (.css files)', 'wp-asset-clean-up'); ?> ➝ Total (+ core files): <?php echo $data['total_styles']; ?>
|
35 |
</a>
|
36 |
|
37 |
<div id="wpacu-assets-styles-collapsible-content"
|
@@ -93,7 +93,7 @@ $listAreaStatus = $data['plugin_settings']['assets_list_layout_areas_status'];
|
|
93 |
|
94 |
<div class="wpacu-assets-collapsible-wrap wpacu-wrap-area">
|
95 |
<a class="wpacu-assets-collapsible <?php if ($listAreaStatus !== 'contracted') { ?>wpacu-assets-collapsible-active<?php } ?>" href="#wpacu-assets-scripts-collapsible-content">
|
96 |
-
<span class="dashicons dashicons-media-code"></span> <?php _e('Scripts (.js files)', 'wp-asset-clean-up'); ?> ➝ Total (+ core files): <?php echo $data['total_scripts']; ?>
|
97 |
</a>
|
98 |
|
99 |
<div id="wpacu-assets-scripts-collapsible-content"
|
@@ -141,6 +141,13 @@ $listAreaStatus = $data['plugin_settings']['assets_list_layout_areas_status'];
|
|
141 |
</div>
|
142 |
</div>
|
143 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
144 |
include '_inline_js.php';
|
145 |
/*
|
146 |
* -------------------
|
31 |
|
32 |
<div class="wpacu-assets-collapsible-wrap wpacu-wrap-area">
|
33 |
<a class="wpacu-assets-collapsible <?php if ($listAreaStatus !== 'contracted') { ?>wpacu-assets-collapsible-active<?php } ?>" href="#wpacu-assets-styles-collapsible-content">
|
34 |
+
<span class="dashicons dashicons-admin-appearance"></span> <?php _e('Styles (.css files)', 'wp-asset-clean-up'); ?> ➝ Total enqueued (+ core files): <?php echo $data['total_styles']; ?>
|
35 |
</a>
|
36 |
|
37 |
<div id="wpacu-assets-styles-collapsible-content"
|
93 |
|
94 |
<div class="wpacu-assets-collapsible-wrap wpacu-wrap-area">
|
95 |
<a class="wpacu-assets-collapsible <?php if ($listAreaStatus !== 'contracted') { ?>wpacu-assets-collapsible-active<?php } ?>" href="#wpacu-assets-scripts-collapsible-content">
|
96 |
+
<span class="dashicons dashicons-media-code"></span> <?php _e('Scripts (.js files)', 'wp-asset-clean-up'); ?> ➝ Total enqueued (+ core files): <?php echo $data['total_scripts']; ?>
|
97 |
</a>
|
98 |
|
99 |
<div id="wpacu-assets-scripts-collapsible-content"
|
141 |
</div>
|
142 |
</div>
|
143 |
<?php
|
144 |
+
if ( isset( $data['all']['hardcoded'] ) && ! empty( $data['all']['hardcoded'] ) ) {
|
145 |
+
include_once __DIR__ . '/_assets-hardcoded-list.php';
|
146 |
+
} elseif ($data['is_frontend_view']) {
|
147 |
+
// The following string will be replaced within a "wp_loaded" action hook
|
148 |
+
echo '{wpacu_assets_collapsible_wrap_hardcoded_list}';
|
149 |
+
}
|
150 |
+
|
151 |
include '_inline_js.php';
|
152 |
/*
|
153 |
* -------------------
|
templates/meta-box-loaded.php
CHANGED
@@ -31,7 +31,7 @@ if (! $metaBoxLoadedFine) {
|
|
31 |
<td><?php echo $data['wp_remote_post']['response']['message']; ?></td>
|
32 |
</tr>
|
33 |
<tr>
|
34 |
-
<td><strong><?php _e('OUTPUT', 'wp-asset-clean-up'); ?>:</strong></td>
|
35 |
<td><?php echo $data['wp_remote_post']['body']; ?></td>
|
36 |
</tr>
|
37 |
</table>
|
@@ -146,6 +146,7 @@ if ($data['plugin_settings']['assets_list_layout'] === 'by-loaded-unloaded') {
|
|
146 |
}
|
147 |
|
148 |
$data['page_unload_text'] = __('Unload on this page', 'wp-asset-clean-up');
|
|
|
149 |
|
150 |
// Assets List Layout - added here to convenience - to avoid going to "Settings"
|
151 |
// it could make debugging faster
|
31 |
<td><?php echo $data['wp_remote_post']['response']['message']; ?></td>
|
32 |
</tr>
|
33 |
<tr>
|
34 |
+
<td valign="top"><strong><?php _e('OUTPUT', 'wp-asset-clean-up'); ?>:</strong></td>
|
35 |
<td><?php echo $data['wp_remote_post']['body']; ?></td>
|
36 |
</tr>
|
37 |
</table>
|
146 |
}
|
147 |
|
148 |
$data['page_unload_text'] = __('Unload on this page', 'wp-asset-clean-up');
|
149 |
+
wp_cache_set('wpacu_data_page_unload_text', $data['page_unload_text']);
|
150 |
|
151 |
// Assets List Layout - added here to convenience - to avoid going to "Settings"
|
152 |
// it could make debugging faster
|
vendor/composer/installed.json
CHANGED
@@ -1,17 +1,65 @@
|
|
1 |
[
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
{
|
3 |
"name": "matthiasmullie/path-converter",
|
4 |
-
"version": "1.1.
|
5 |
-
"version_normalized": "1.1.
|
6 |
"source": {
|
7 |
"type": "git",
|
8 |
"url": "https://github.com/matthiasmullie/path-converter.git",
|
9 |
-
"reference": "
|
10 |
},
|
11 |
"dist": {
|
12 |
"type": "zip",
|
13 |
-
"url": "https://api.github.com/repos/matthiasmullie/path-converter/zipball/
|
14 |
-
"reference": "
|
15 |
"shasum": ""
|
16 |
},
|
17 |
"require": {
|
@@ -21,7 +69,7 @@
|
|
21 |
"require-dev": {
|
22 |
"phpunit/phpunit": "~4.8"
|
23 |
},
|
24 |
-
"time": "
|
25 |
"type": "library",
|
26 |
"installation-source": "dist",
|
27 |
"autoload": {
|
@@ -36,9 +84,9 @@
|
|
36 |
"authors": [
|
37 |
{
|
38 |
"name": "Matthias Mullie",
|
39 |
-
"role": "Developer",
|
40 |
"email": "pathconverter@mullie.eu",
|
41 |
-
"homepage": "http://www.mullie.eu"
|
|
|
42 |
}
|
43 |
],
|
44 |
"description": "Relative path converter",
|
@@ -52,17 +100,17 @@
|
|
52 |
},
|
53 |
{
|
54 |
"name": "matthiasmullie/minify",
|
55 |
-
"version": "1.3.
|
56 |
-
"version_normalized": "1.3.
|
57 |
"source": {
|
58 |
"type": "git",
|
59 |
"url": "https://github.com/matthiasmullie/minify.git",
|
60 |
-
"reference": "
|
61 |
},
|
62 |
"dist": {
|
63 |
"type": "zip",
|
64 |
-
"url": "https://api.github.com/repos/matthiasmullie/minify/zipball/
|
65 |
-
"reference": "
|
66 |
"shasum": ""
|
67 |
},
|
68 |
"require": {
|
@@ -78,7 +126,7 @@
|
|
78 |
"suggest": {
|
79 |
"psr/cache-implementation": "Cache implementation to use with Minify::cache"
|
80 |
},
|
81 |
-
"time": "
|
82 |
"bin": [
|
83 |
"bin/minifycss",
|
84 |
"bin/minifyjs"
|
@@ -97,9 +145,9 @@
|
|
97 |
"authors": [
|
98 |
{
|
99 |
"name": "Matthias Mullie",
|
100 |
-
"role": "Developer",
|
101 |
"email": "minify@mullie.eu",
|
102 |
-
"homepage": "http://www.mullie.eu"
|
|
|
103 |
}
|
104 |
],
|
105 |
"description": "CSS & JavaScript minifier, in PHP. Removes whitespace, strips comments, combines files (incl. @import statements and small assets in CSS files), and optimizes/shortens a few common programming patterns.",
|
@@ -111,53 +159,5 @@
|
|
111 |
"minifier",
|
112 |
"minify"
|
113 |
]
|
114 |
-
},
|
115 |
-
{
|
116 |
-
"name": "psr/cache",
|
117 |
-
"version": "1.0.1",
|
118 |
-
"version_normalized": "1.0.1.0",
|
119 |
-
"source": {
|
120 |
-
"type": "git",
|
121 |
-
"url": "https://github.com/php-fig/cache.git",
|
122 |
-
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
|
123 |
-
},
|
124 |
-
"dist": {
|
125 |
-
"type": "zip",
|
126 |
-
"url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
|
127 |
-
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
|
128 |
-
"shasum": ""
|
129 |
-
},
|
130 |
-
"require": {
|
131 |
-
"php": ">=5.3.0"
|
132 |
-
},
|
133 |
-
"time": "2016-08-06T20:24:11+00:00",
|
134 |
-
"type": "library",
|
135 |
-
"extra": {
|
136 |
-
"branch-alias": {
|
137 |
-
"dev-master": "1.0.x-dev"
|
138 |
-
}
|
139 |
-
},
|
140 |
-
"installation-source": "dist",
|
141 |
-
"autoload": {
|
142 |
-
"psr-4": {
|
143 |
-
"Psr\\Cache\\": "src/"
|
144 |
-
}
|
145 |
-
},
|
146 |
-
"notification-url": "https://packagist.org/downloads/",
|
147 |
-
"license": [
|
148 |
-
"MIT"
|
149 |
-
],
|
150 |
-
"authors": [
|
151 |
-
{
|
152 |
-
"name": "PHP-FIG",
|
153 |
-
"homepage": "http://www.php-fig.org/"
|
154 |
-
}
|
155 |
-
],
|
156 |
-
"description": "Common interface for caching libraries",
|
157 |
-
"keywords": [
|
158 |
-
"cache",
|
159 |
-
"psr",
|
160 |
-
"psr-6"
|
161 |
-
]
|
162 |
}
|
163 |
]
|
1 |
[
|
2 |
+
{
|
3 |
+
"name": "psr/cache",
|
4 |
+
"version": "1.0.1",
|
5 |
+
"version_normalized": "1.0.1.0",
|
6 |
+
"source": {
|
7 |
+
"type": "git",
|
8 |
+
"url": "https://github.com/php-fig/cache.git",
|
9 |
+
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
|
10 |
+
},
|
11 |
+
"dist": {
|
12 |
+
"type": "zip",
|
13 |
+
"url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
|
14 |
+
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
|
15 |
+
"shasum": ""
|
16 |
+
},
|
17 |
+
"require": {
|
18 |
+
"php": ">=5.3.0"
|
19 |
+
},
|
20 |
+
"time": "2016-08-06T20:24:11+00:00",
|
21 |
+
"type": "library",
|
22 |
+
"extra": {
|
23 |
+
"branch-alias": {
|
24 |
+
"dev-master": "1.0.x-dev"
|
25 |
+
}
|
26 |
+
},
|
27 |
+
"installation-source": "dist",
|
28 |
+
"autoload": {
|
29 |
+
"psr-4": {
|
30 |
+
"Psr\\Cache\\": "src/"
|
31 |
+
}
|
32 |
+
},
|
33 |
+
"notification-url": "https://packagist.org/downloads/",
|
34 |
+
"license": [
|
35 |
+
"MIT"
|
36 |
+
],
|
37 |
+
"authors": [
|
38 |
+
{
|
39 |
+
"name": "PHP-FIG",
|
40 |
+
"homepage": "http://www.php-fig.org/"
|
41 |
+
}
|
42 |
+
],
|
43 |
+
"description": "Common interface for caching libraries",
|
44 |
+
"keywords": [
|
45 |
+
"cache",
|
46 |
+
"psr",
|
47 |
+
"psr-6"
|
48 |
+
]
|
49 |
+
},
|
50 |
{
|
51 |
"name": "matthiasmullie/path-converter",
|
52 |
+
"version": "1.1.3",
|
53 |
+
"version_normalized": "1.1.3.0",
|
54 |
"source": {
|
55 |
"type": "git",
|
56 |
"url": "https://github.com/matthiasmullie/path-converter.git",
|
57 |
+
"reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9"
|
58 |
},
|
59 |
"dist": {
|
60 |
"type": "zip",
|
61 |
+
"url": "https://api.github.com/repos/matthiasmullie/path-converter/zipball/e7d13b2c7e2f2268e1424aaed02085518afa02d9",
|
62 |
+
"reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9",
|
63 |
"shasum": ""
|
64 |
},
|
65 |
"require": {
|
69 |
"require-dev": {
|
70 |
"phpunit/phpunit": "~4.8"
|
71 |
},
|
72 |
+
"time": "2019-02-05T23:41:09+00:00",
|
73 |
"type": "library",
|
74 |
"installation-source": "dist",
|
75 |
"autoload": {
|
84 |
"authors": [
|
85 |
{
|
86 |
"name": "Matthias Mullie",
|
|
|
87 |
"email": "pathconverter@mullie.eu",
|
88 |
+
"homepage": "http://www.mullie.eu",
|
89 |
+
"role": "Developer"
|
90 |
}
|
91 |
],
|
92 |
"description": "Relative path converter",
|
100 |
},
|
101 |
{
|
102 |
"name": "matthiasmullie/minify",
|
103 |
+
"version": "1.3.63",
|
104 |
+
"version_normalized": "1.3.63.0",
|
105 |
"source": {
|
106 |
"type": "git",
|
107 |
"url": "https://github.com/matthiasmullie/minify.git",
|
108 |
+
"reference": "9ba1b459828adc13430f4dd6c49dae4950dc4117"
|
109 |
},
|
110 |
"dist": {
|
111 |
"type": "zip",
|
112 |
+
"url": "https://api.github.com/repos/matthiasmullie/minify/zipball/9ba1b459828adc13430f4dd6c49dae4950dc4117",
|
113 |
+
"reference": "9ba1b459828adc13430f4dd6c49dae4950dc4117",
|
114 |
"shasum": ""
|
115 |
},
|
116 |
"require": {
|
126 |
"suggest": {
|
127 |
"psr/cache-implementation": "Cache implementation to use with Minify::cache"
|
128 |
},
|
129 |
+
"time": "2020-01-21T20:21:08+00:00",
|
130 |
"bin": [
|
131 |
"bin/minifycss",
|
132 |
"bin/minifyjs"
|
145 |
"authors": [
|
146 |
{
|
147 |
"name": "Matthias Mullie",
|
|
|
148 |
"email": "minify@mullie.eu",
|
149 |
+
"homepage": "http://www.mullie.eu",
|
150 |
+
"role": "Developer"
|
151 |
}
|
152 |
],
|
153 |
"description": "CSS & JavaScript minifier, in PHP. Removes whitespace, strips comments, combines files (incl. @import statements and small assets in CSS files), and optimizes/shortens a few common programming patterns.",
|
159 |
"minifier",
|
160 |
"minify"
|
161 |
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
162 |
}
|
163 |
]
|
vendor/matthiasmullie/minify/composer.json
CHANGED
@@ -18,6 +18,11 @@
|
|
18 |
"ext-pcre": "*",
|
19 |
"matthiasmullie/path-converter": "~1.1"
|
20 |
},
|
|
|
|
|
|
|
|
|
|
|
21 |
"suggest": {
|
22 |
"psr/cache-implementation": "Cache implementation to use with Minify::cache"
|
23 |
},
|
18 |
"ext-pcre": "*",
|
19 |
"matthiasmullie/path-converter": "~1.1"
|
20 |
},
|
21 |
+
"require-dev": {
|
22 |
+
"matthiasmullie/scrapbook": "~1.0",
|
23 |
+
"phpunit/phpunit": "~4.8",
|
24 |
+
"friendsofphp/php-cs-fixer": "~2.0"
|
25 |
+
},
|
26 |
"suggest": {
|
27 |
"psr/cache-implementation": "Cache implementation to use with Minify::cache"
|
28 |
},
|
vendor/matthiasmullie/minify/composer.lock
DELETED
@@ -1,70 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"_readme": [
|
3 |
-
"This file locks the dependencies of your project to a known state",
|
4 |
-
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
5 |
-
"This file is @generated automatically"
|
6 |
-
],
|
7 |
-
"content-hash": "42094b60a2132ae1407aec2b36c9e75a",
|
8 |
-
"packages": [
|
9 |
-
{
|
10 |
-
"name": "matthiasmullie/path-converter",
|
11 |
-
"version": "1.1.3",
|
12 |
-
"source": {
|
13 |
-
"type": "git",
|
14 |
-
"url": "https://github.com/matthiasmullie/path-converter.git",
|
15 |
-
"reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9"
|
16 |
-
},
|
17 |
-
"dist": {
|
18 |
-
"type": "zip",
|
19 |
-
"url": "https://api.github.com/repos/matthiasmullie/path-converter/zipball/e7d13b2c7e2f2268e1424aaed02085518afa02d9",
|
20 |
-
"reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9",
|
21 |
-
"shasum": ""
|
22 |
-
},
|
23 |
-
"require": {
|
24 |
-
"ext-pcre": "*",
|
25 |
-
"php": ">=5.3.0"
|
26 |
-
},
|
27 |
-
"require-dev": {
|
28 |
-
"phpunit/phpunit": "~4.8"
|
29 |
-
},
|
30 |
-
"type": "library",
|
31 |
-
"autoload": {
|
32 |
-
"psr-4": {
|
33 |
-
"MatthiasMullie\\PathConverter\\": "src/"
|
34 |
-
}
|
35 |
-
},
|
36 |
-
"notification-url": "https://packagist.org/downloads/",
|
37 |
-
"license": [
|
38 |
-
"MIT"
|
39 |
-
],
|
40 |
-
"authors": [
|
41 |
-
{
|
42 |
-
"name": "Matthias Mullie",
|
43 |
-
"email": "pathconverter@mullie.eu",
|
44 |
-
"homepage": "http://www.mullie.eu",
|
45 |
-
"role": "Developer"
|
46 |
-
}
|
47 |
-
],
|
48 |
-
"description": "Relative path converter",
|
49 |
-
"homepage": "http://github.com/matthiasmullie/path-converter",
|
50 |
-
"keywords": [
|
51 |
-
"converter",
|
52 |
-
"path",
|
53 |
-
"paths",
|
54 |
-
"relative"
|
55 |
-
],
|
56 |
-
"time": "2019-02-05T23:41:09+00:00"
|
57 |
-
}
|
58 |
-
],
|
59 |
-
"packages-dev": [],
|
60 |
-
"aliases": [],
|
61 |
-
"minimum-stability": "stable",
|
62 |
-
"stability-flags": [],
|
63 |
-
"prefer-stable": false,
|
64 |
-
"prefer-lowest": false,
|
65 |
-
"platform": {
|
66 |
-
"php": ">=5.3.0",
|
67 |
-
"ext-pcre": "*"
|
68 |
-
},
|
69 |
-
"platform-dev": []
|
70 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/matthiasmullie/minify/src/CSS.php
CHANGED
@@ -525,7 +525,7 @@ class CSS extends Minify
|
|
525 |
);
|
526 |
|
527 |
return preg_replace_callback(
|
528 |
-
'/(?<=[: ])('.implode(array_keys($colors)
|
529 |
function ($match) use ($colors) {
|
530 |
return $colors[strtoupper($match[0])];
|
531 |
},
|
@@ -708,7 +708,8 @@ class CSS extends Minify
|
|
708 |
return $placeholder.$rest;
|
709 |
};
|
710 |
|
711 |
-
$this->registerPattern('/calc(\(.+?)(?=$|;|calc\()/', $callback);
|
|
|
712 |
}
|
713 |
|
714 |
/**
|
525 |
);
|
526 |
|
527 |
return preg_replace_callback(
|
528 |
+
'/(?<=[: ])('.implode('|', array_keys($colors)).')(?=[; }])/i',
|
529 |
function ($match) use ($colors) {
|
530 |
return $colors[strtoupper($match[0])];
|
531 |
},
|
708 |
return $placeholder.$rest;
|
709 |
};
|
710 |
|
711 |
+
$this->registerPattern('/calc(\(.+?)(?=$|;|}|calc\()/', $callback);
|
712 |
+
$this->registerPattern('/calc(\(.+?)(?=$|;|}|calc\()/m', $callback);
|
713 |
}
|
714 |
|
715 |
/**
|
vendor/matthiasmullie/minify/src/Minify.php
CHANGED
@@ -99,6 +99,44 @@ abstract class Minify
|
|
99 |
return $this;
|
100 |
}
|
101 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
/**
|
103 |
* Minify the data & (optionally) saves it to a file.
|
104 |
*
|
99 |
return $this;
|
100 |
}
|
101 |
|
102 |
+
/**
|
103 |
+
* Add a file to be minified.
|
104 |
+
*
|
105 |
+
* @param string|string[] $data
|
106 |
+
*
|
107 |
+
* @return static
|
108 |
+
*
|
109 |
+
* @throws IOException
|
110 |
+
*/
|
111 |
+
public function addFile($data /* $data = null, ... */)
|
112 |
+
{
|
113 |
+
// bogus "usage" of parameter $data: scrutinizer warns this variable is
|
114 |
+
// not used (we're using func_get_args instead to support overloading),
|
115 |
+
// but it still needs to be defined because it makes no sense to have
|
116 |
+
// this function without argument :)
|
117 |
+
$args = array($data) + func_get_args();
|
118 |
+
|
119 |
+
// this method can be overloaded
|
120 |
+
foreach ($args as $path) {
|
121 |
+
if (is_array($path)) {
|
122 |
+
call_user_func_array(array($this, 'addFile'), $path);
|
123 |
+
continue;
|
124 |
+
}
|
125 |
+
|
126 |
+
// redefine var
|
127 |
+
$path = (string) $path;
|
128 |
+
|
129 |
+
// check if we can read the file
|
130 |
+
if (!$this->canImportFile($path)) {
|
131 |
+
throw new IOException('The file "'.$path.'" could not be opened for reading. Check if PHP has enough permissions.');
|
132 |
+
}
|
133 |
+
|
134 |
+
$this->add($path);
|
135 |
+
}
|
136 |
+
|
137 |
+
return $this;
|
138 |
+
}
|
139 |
+
|
140 |
/**
|
141 |
* Minify the data & (optionally) saves it to a file.
|
142 |
*
|
vendor/matthiasmullie/path-converter/src/Converter.php
CHANGED
@@ -71,6 +71,14 @@ class Converter implements ConverterInterface
|
|
71 |
// deal with different operating systems' directory structure
|
72 |
$path = rtrim(str_replace(DIRECTORY_SEPARATOR, '/', $path), '/');
|
73 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
/*
|
75 |
* Example:
|
76 |
* /home/forkcms/frontend/cache/compiled_templates/../../core/layout/css/../images/img.gif
|
71 |
// deal with different operating systems' directory structure
|
72 |
$path = rtrim(str_replace(DIRECTORY_SEPARATOR, '/', $path), '/');
|
73 |
|
74 |
+
// remove leading current directory.
|
75 |
+
if (substr($path, 0, 2) === './') {
|
76 |
+
$path = substr($path, 2);
|
77 |
+
}
|
78 |
+
|
79 |
+
// remove references to current directory in the path.
|
80 |
+
$path = str_replace('/./', '/', $path);
|
81 |
+
|
82 |
/*
|
83 |
* Example:
|
84 |
* /home/forkcms/frontend/cache/compiled_templates/../../core/layout/css/../images/img.gif
|
wpacu.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/*
|
3 |
* Plugin Name: Asset CleanUp: Page Speed Booster
|
4 |
* Plugin URI: https://wordpress.org/plugins/wp-asset-clean-up/
|
5 |
-
* Version: 1.3.5.
|
6 |
* Description: Unload Chosen Scripts & Styles from Posts/Pages to reduce HTTP Requests, Combine/Minify CSS/JS files
|
7 |
* Author: Gabriel Livan
|
8 |
* Author URI: http://gabelivan.com/
|
@@ -12,7 +12,7 @@
|
|
12 |
|
13 |
// Is the Pro version triggered before the Lite one and are both plugins active?
|
14 |
if (! defined('WPACU_PLUGIN_VERSION')) {
|
15 |
-
define('WPACU_PLUGIN_VERSION', '1.3.5.
|
16 |
}
|
17 |
|
18 |
// Exit if accessed directly
|
@@ -109,7 +109,19 @@ define('WPACU_LOAD_ASSETS_REQ_KEY', WPACU_PLUGIN_ID . '_load');
|
|
109 |
|
110 |
require_once WPACU_PLUGIN_DIR.'/wpacu-load.php';
|
111 |
|
112 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
add_action('parse_query', static function() { // very early triggering to set WPACU_ALL_ACTIVE_PLUGINS_LOADED
|
114 |
if (defined('WPACU_ALL_ACTIVE_PLUGINS_LOADED')) { return; } // only trigger it once in this action
|
115 |
define('WPACU_ALL_ACTIVE_PLUGINS_LOADED', true);
|
2 |
/*
|
3 |
* Plugin Name: Asset CleanUp: Page Speed Booster
|
4 |
* Plugin URI: https://wordpress.org/plugins/wp-asset-clean-up/
|
5 |
+
* Version: 1.3.5.8
|
6 |
* Description: Unload Chosen Scripts & Styles from Posts/Pages to reduce HTTP Requests, Combine/Minify CSS/JS files
|
7 |
* Author: Gabriel Livan
|
8 |
* Author URI: http://gabelivan.com/
|
12 |
|
13 |
// Is the Pro version triggered before the Lite one and are both plugins active?
|
14 |
if (! defined('WPACU_PLUGIN_VERSION')) {
|
15 |
+
define('WPACU_PLUGIN_VERSION', '1.3.5.8');
|
16 |
}
|
17 |
|
18 |
// Exit if accessed directly
|
109 |
|
110 |
require_once WPACU_PLUGIN_DIR.'/wpacu-load.php';
|
111 |
|
112 |
+
$wpacuGetLoadedAssetsAction = ((isset($_REQUEST[WPACU_LOAD_ASSETS_REQ_KEY]) && $_REQUEST[WPACU_LOAD_ASSETS_REQ_KEY])
|
113 |
+
|| (isset($_REQUEST['action']) && $_REQUEST['action'] === WPACU_PLUGIN_ID.'_get_loaded_assets'));
|
114 |
+
|
115 |
+
define('WPACU_GET_LOADED_ASSETS_ACTION', $wpacuGetLoadedAssetsAction);
|
116 |
+
|
117 |
+
if (WPACU_GET_LOADED_ASSETS_ACTION === true || ! is_admin()) {
|
118 |
+
add_action('init', static function() {
|
119 |
+
// "Smart Slider 3" & "WP Rocket" compatibility fix | triggered ONLY when the assets are fetched
|
120 |
+
if ( ! function_exists('get_rocket_option') && class_exists( 'NextendSmartSliderWPRocket' ) ) {
|
121 |
+
function get_rocket_option($option) { return ''; }
|
122 |
+
}
|
123 |
+
});
|
124 |
+
|
125 |
add_action('parse_query', static function() { // very early triggering to set WPACU_ALL_ACTIVE_PLUGINS_LOADED
|
126 |
if (defined('WPACU_ALL_ACTIVE_PLUGINS_LOADED')) { return; } // only trigger it once in this action
|
127 |
define('WPACU_ALL_ACTIVE_PLUGINS_LOADED', true);
|