using System; using System.Text; using System.Threading.Tasks; using Umbraco.Cms.Core.Configuration.Models; using Umbraco.Cms.Core.Hosting; using Umbraco.Cms.Core.WebAssets; namespace Umbraco.Web.WebAssets { public static class RuntimeMinifierExtensions { /// /// Returns the JavaScript to load the back office's assets /// /// public static async Task GetScriptForLoadingBackOfficeAsync(this IRuntimeMinifier minifier, GlobalSettings globalSettings, IHostingEnvironment hostingEnvironment) { var files = await minifier.GetAssetPathsAsync(BackOfficeWebAssets.UmbracoJsBundleName); var result = BackOfficeJavaScriptInitializer.GetJavascriptInitialization(files, "umbraco", globalSettings, hostingEnvironment); result += await GetStylesheetInitializationAsync(minifier); return result; } /// /// Gets the back office css bundle paths and formats a JS call to lazy load them /// private static async Task GetStylesheetInitializationAsync(IRuntimeMinifier minifier) { var files = await minifier.GetAssetPathsAsync(BackOfficeWebAssets.UmbracoCssBundleName); var sb = new StringBuilder(); foreach (var file in files) sb.AppendFormat("{0}LazyLoad.css('{1}');", Environment.NewLine, file); return sb.ToString(); } } }