internal string BuildAppendAddon(TextBoxContext context)
        {
            if (Icon.IsUsed())
            {
                return("");
            }

            var isAppend = false;

            var append = new TagBuilder("div");

            append.Attributes.Add("class", "input-group-append");

            if (!String.IsNullOrWhiteSpace(AppendText))
            {
                append.InnerHtml.AppendHtml($@"<span class='input-group-text'>{AppendText}</span>");

                isAppend = true;
            }

            if (context.AppendAddons.Any())
            {
                foreach (var addon in context.AppendAddons)
                {
                    append.InnerHtml.AppendHtml(addon);
                }

                isAppend = true;
            }

            return(isAppend ? append.ToHtml() : "");
        }
        internal TagBuilder BuildInputContainer(IHtmlContent input, TextBoxContext context)
        {
            var inputContainer = new TagBuilder("div");

            inputContainer.AddCssClass(InputGroupClasses);

            inputContainer.InnerHtml.AppendHtml(BuildPrependAddon(context));
            inputContainer.InnerHtml.AppendHtml(input);
            inputContainer.InnerHtml.AppendHtml(BuildAppendAddon(context));

            if (Icon.IsUsed())
            {
                inputContainer.InnerHtml.AppendHtml($@"<span class='{IconClasses}'><span>{Icon.ToIconContent()}</span></span>");
            }

            return(inputContainer);
        }