public IViewComponentResult Invoke(string title, IconSprite iconSprite, string iconName) { ViewData["Title"] = title; ViewData["IconSprite"] = iconSprite; ViewData["IconName"] = iconName; return(View()); }
public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { output.TagName = ""; var containerTag = new TagBuilder("span"); containerTag.AddCssClass("slds-icon_container"); containerTag.AddCssClass($"slds-icon-{IconSprite.ToString().ToLower()}-{IconName.ToLower()}"); containerTag.Attributes.Add("title", Title); var svgTag = new TagBuilder("svg"); svgTag.AddCssClass("slds-icon"); var assistiveTextTag = new TagBuilder("span"); assistiveTextTag.AddCssClass("slds-assistive-text"); assistiveTextTag.InnerHtml.Append(Title); if (output.Attributes.TryGetAttribute("class", out var @class)) { svgTag.AddCssClass(@class.Value.ToString()); } if (IconColor != IconColor.None) { svgTag.AddCssClass($"slds-icon-text-{IconColor.ToString().ToLower()}"); } if (IconSize != IconSize.None) { svgTag.AddCssClass(sizes[IconSize]); } var useTag = new TagBuilder("use"); useTag.Attributes.Add("xlink:href", $"/assets/icons/{IconSprite.ToString().ToLower()}-sprite/svg/symbols.svg#{IconName}"); svgTag.InnerHtml.AppendHtml(useTag); containerTag.InnerHtml .AppendHtml(svgTag) .AppendHtml(assistiveTextTag); output.Content.SetHtmlContent(containerTag); // return base.ProcessAsync(context, output); }
public override void Process(TagHelperContext context, TagHelperOutput output) { output.Attributes.RemoveAll("slds-button-icon"); // var buttonTag = new TagBuilder(); output.Attributes.Add("class", "slds-button-icon"); var svgTag = new TagBuilder("svg"); svgTag.AddCssClass("slds-button__icon"); var useTag = new TagBuilder("use"); useTag.Attributes.Add("xlink:href", $"/assets/icons/{IconSprite.ToString().ToLower()}-sprite/svg/symbols.svg#{IconName}"); svgTag.InnerHtml.AppendHtml(useTag); output.Content.AppendHtml(svgTag); // base.Process(context, output); }