Esempio n. 1
0
 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);
        }