From 46241bcbe5b7e198d52dfccee63461d08ac54c21 Mon Sep 17 00:00:00 2001 From: Salih Date: Thu, 16 May 2024 15:13:04 +0300 Subject: [PATCH] Create ScriptTagHelper.cs --- .../UI/Bundling/TagHelpers/ScriptTagHelper.cs | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/ScriptTagHelper.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/ScriptTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/ScriptTagHelper.cs new file mode 100644 index 0000000000..2328b73baf --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/ScriptTagHelper.cs @@ -0,0 +1,33 @@ +using System; +using System.Linq; +using Microsoft.AspNetCore.Razor.TagHelpers; +using Microsoft.Extensions.Options; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers; + +[HtmlTargetElement("script")] +public class ScriptTagHelper : AbpTagHelper +{ + protected AbpBundlingOptions Options { get; } + + [HtmlAttributeName("src")] + public string Src { get; set; } = default!; + + public ScriptTagHelper(IOptions options) + { + Options = options.Value; + } + public override void Process(TagHelperContext context, TagHelperOutput output) + { + if (Options.DeferScriptsByDefault) + { + output.Attributes.Add("defer", ""); + } + + if (!Src.IsNullOrWhiteSpace() && Options.DeferScripts.Any(x => Src.Equals(x, StringComparison.OrdinalIgnoreCase))) + { + output.Attributes.Add("defer", ""); + } + } +} \ No newline at end of file