protected override async Task BootstrapProcessAsync(TagHelperContext context, TagHelperOutput output) {
     output.TagName = "div";
     output.AddCssClass("input-group");
     if ((Size??SimpleSize.Default) != SimpleSize.Default)
         output.AddCssClass("input-group-" + Size.Value.GetDescription());
     if (!string.IsNullOrEmpty(PreAddonText))
         output.PreContent.SetHtmlContent(AddonTagHelper.GenerateAddon(PreAddonText));
     if (!string.IsNullOrEmpty(PostAddonText))
         output.PostContent.SetHtmlContent(AddonTagHelper.GenerateAddon(PostAddonText));
     context.SetInputGroupContext(this);
     await output.GetChildContentAsync();
     var preElementContent = output.PreElement.GetContent();
     output.PreElement.Clear();
     if (FormGroupContext != null)
         FormGroupContext.WrapInDivForHorizontalForm(output, context.GetFormGroupContext()?.HasLabel??false);
     else if (FormContext != null)
         FormContext.WrapInDivForHorizontalForm(output, context.GetFormGroupContext()?.HasLabel ?? false);
     output.PreElement.PrependHtml(preElementContent);
     if (!string.IsNullOrEmpty(HelpContent))
         output.PostElement.PrependHtml(HelpBlockTagHelper.GenerateHelpBlock(HelpContent));
 }