Exemplo n.º 1
0
        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            base.Process(context, output);
            output.TagName = HtmlElements.Table;

            ClassesToPrepend.Add(Responsive ? CssClasses.NhsUkTableResponsive : CssClasses.NhsUkTable);

            UpdateClasses(output);

            if (!string.IsNullOrWhiteSpace(Caption))
            {
                output.PreContent.SetHtmlContent($"<caption class=\"nhsuk-table__caption\">{Caption}</caption>");
            }

            if (IsWithPanel)
            {
                output.PreElement.AppendHtml("<div class=\"nhsuk-table__panel-with-heading-tab\">" +
                                             $"<h3 class=\"nhsuk-table__heading-tab\">{TitleText}</h3>");
                output.PostElement.AppendHtml("</div>");
            }
        }
        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            base.Process(context, output);
            _tagHelperOutput         = output;
            _tagHelperOutput.TagName = HtmlElements.Div;

            switch (GridColumnType)
            {
            case GridColumnWidth.OneThird:
                ClassesToPrepend.Add(CssClasses.NhsUkGridOneThird);
                break;

            case GridColumnWidth.OneQuarter:
                ClassesToPrepend.Add(CssClasses.NhsUkGridOneQuarter);
                break;

            case GridColumnWidth.OneHalf:
                ClassesToPrepend.Add(CssClasses.NhsUkGridOneHalf);
                break;

            case GridColumnWidth.TwoThirds:
                ClassesToPrepend.Add(CssClasses.NhsUkGridTwoThirds);
                break;

            case GridColumnWidth.ThreeQuarters:
                ClassesToPrepend.Add(CssClasses.NhsUkGridThreeQuarters);
                break;

            case GridColumnWidth.Full:
                ClassesToPrepend.Add(CssClasses.NhsUkGridFull);
                break;

            default:
                ClassesToPrepend.Add(CssClasses.NhsUkGridFull);
                break;
            }

            _tagHelperOutput.TagMode = TagMode.StartTagAndEndTag;
            UpdateClasses(output);
        }
        public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            await base.ProcessAsync(context, output);

            _output         = output;
            _context        = context;
            _output.TagName = HtmlElements.Div;

            switch (PanelType)
            {
            case PanelType.Standard:
                ClassesToPrepend.Add(CssClasses.NhsUkPanel);
                break;

            case PanelType.Grey:
                ClassesToPrepend.Add(CssClasses.NhsUkPanelGrey);
                break;

            case PanelType.WithLabel:
                ClassesToPrepend.Add(CssClasses.NhsUkPanelLabel);
                _output.PreContent.SetHtmlContent(string.Format("<h3 class=\"nhsuk-panel-with-label__label\">{0}</h3>", Label));
                break;

            default:
                ClassesToPrepend.Add(CssClasses.NhsUkPanel);
                break;
            }

            UpdateClasses(output);

            if (_context.Items.ContainsKey("ParentColumnWidth"))
            {
                SetPrePostElementHtmlContent();
            }

            var htmlContent = (await output.GetChildContentAsync()).GetContent();

            output.Content.SetHtmlContent(htmlContent);
        }
Exemplo n.º 4
0
        public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            await base.ProcessAsync(context, output);

            output.Attributes.RemoveAll(HtmlAttributes.HRef);
            if (context.AllAttributes.ContainsName(HtmlAttributes.HRef))
            {
                _href = context.AllAttributes[HtmlAttributes.HRef].Value.ToString();
            }

            output.TagName = HtmlElements.Dd;
            ClassesToPrepend.Add(CssClasses.NhsUkSummaryListRowActions);
            UpdateClasses(output);

            var content = (await output.GetChildContentAsync()).GetContent();

            output.Content.SetHtmlContent(string.Format("<a href=\"{0}\">{1}<span class=\"nhsuk-u-visually-hidden\">" +
                                                        "{2}</span></a>", _href, content, VisuallyHiddenText));


            output.TagMode = TagMode.StartTagAndEndTag;
        }
Exemplo n.º 5
0
        public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            await base.ProcessAsync(context, output);

            output.TagName = HtmlElements.Div;
            var content = (await output.GetChildContentAsync()).GetContent();

            SetAttribute(output, HtmlAttributes.AriaLabelByAttribute, TitleId);
            ClassesToPrepend.Add(CssClasses.NhsUkErrorSummary);

            var errorSummaryTitle = new TagBuilder(HtmlElements.H2);

            errorSummaryTitle.AddCssClass(CssClasses.NhsUkErrorSummaryTitle);
            errorSummaryTitle.Attributes.Add(HtmlAttributes.IdAttribute, TitleId);
            errorSummaryTitle.InnerHtml.Append(TitleText);

            var errorSummaryBody = new TagBuilder(HtmlElements.Div);

            errorSummaryBody.AddCssClass(CssClasses.NhsUkErrorSummaryBody);

            var errorSummaryDescription = new TagBuilder(HtmlElements.P);

            errorSummaryDescription.InnerHtml.Append(DescriptionText);

            var errorSummaryList = new TagBuilder(HtmlElements.Ul);

            errorSummaryList.AddCssClass(CssClasses.NhsUkErrorSummaryList);
            errorSummaryList.InnerHtml.AppendHtml(content);

            errorSummaryBody.InnerHtml.AppendHtml(errorSummaryDescription);
            errorSummaryBody.InnerHtml.AppendHtml(errorSummaryList);

            output.PreContent.AppendHtml(errorSummaryTitle);
            output.Content.AppendHtml(errorSummaryBody);

            output.TagMode = TagMode.StartTagAndEndTag;
            UpdateClasses(output);
        }
        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            base.Process(context, output);
            output.TagName = HtmlElements.Div;

            switch (ContainerWidth)
            {
            case ContainerWidth.Standard:
                ClassesToPrepend.Add(CssClasses.NhsUkWidthContainer);
                break;

            case ContainerWidth.Fluid:
                ClassesToPrepend.Add(CssClasses.NhsUkWidthContainerFluid);
                break;

            default:
                ClassesToPrepend.Add(CssClasses.NhsUkWidthContainer);
                break;
            }

            output.TagMode = TagMode.StartTagAndEndTag;
            UpdateClasses(output);
        }
Exemplo n.º 7
0
        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            base.Process(context, output);
            output.TagName = HtmlElements.Div;

            switch (FormGroupType)
            {
            case FormGroupType.Standard:
                ClassesToPrepend.Add(CssClasses.NhsUkFormGroup);
                break;

            case FormGroupType.Error:
                ClassesToPrepend.Add(CssClasses.NhsUkFormGroupError);
                break;

            default:
                ClassesToPrepend.Add(CssClasses.NhsUkFormGroup);
                break;
            }

            output.TagMode = TagMode.StartTagAndEndTag;
            UpdateClasses(output);
        }
Exemplo n.º 8
0
        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            base.Process(context, output);
            output.TagName = HtmlElements.Div;

            switch (RadiosType)
            {
            case RadiosType.Inline:
                ClassesToPrepend.Add(CssClasses.NhsUkRadiosInline);
                break;

            case RadiosType.Standard:
                ClassesToPrepend.Add(CssClasses.NhsUkRadios);
                break;

            default:
                ClassesToPrepend.Add(CssClasses.NhsUkRadios);
                break;
            }

            output.TagMode = TagMode.StartTagAndEndTag;
            UpdateClasses(output);
        }
Exemplo n.º 9
0
        public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            await base.ProcessAsync(context, output);

            switch (AnchorType)
            {
            case AnchorType.Button:
                ClassesToPrepend.Add(CssClasses.NhsUkButton);
                SetAttribute(output, HtmlAttributes.Role, HtmlElements.Button);
                SetAttribute(output, HtmlAttributes.Draggable, HtmlAttributes.AttributeValues.False);
                ProcessDisabled(output, context);
                break;

            case AnchorType.SkipLink:
                ClassesToPrepend.Add(CssClasses.NhsUkSkipLink);
                break;

            default:
                ClassesToPrepend.Add(CssClasses.NhsUkSkipLink);
                break;
            }

            UpdateClasses(output);
        }
Exemplo n.º 10
0
        public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            await base.ProcessAsync(context, output);

            output.TagName = HtmlElements.Header;
            SetAttribute(output, HtmlAttributes.Role, HtmlAttributes.AttributeValues.Banner);

            switch (HeaderType)
            {
            case HeaderType.Standard:
                ClassesToPrepend.Add(CssClasses.NhsUkHeader);

                if (!string.IsNullOrWhiteSpace(ServiceName))
                {
                    _serviceNameElement = string.Format("<span class=\"nhsuk-header__service-name\">{0}</span>", ServiceName);
                    _headerlink         = CssClasses.NhsUkHeaderLinkService;
                }
                break;

            case HeaderType.Transactional:
                ClassesToPrepend.Add(CssClasses.NhsUkHeaderTransactional);

                if (!ShowNav && !ShowSearch)
                {
                    if (!string.IsNullOrWhiteSpace(ServiceName))
                    {
                        var nameLength = ServiceName.Length;
                        var transactionalServiceClass = nameLength > 22 ?
                                                        CssClasses.NhsUkTransactionalServiceNameLong : CssClasses.NhsUkTransactionalServiceName;

                        _transactionalServiceElement = BuildTransactionalServiceElement(transactionalServiceClass);
                    }
                }

                break;

            default:
                ClassesToPrepend.Add(CssClasses.NhsUkHeader);
                if (!string.IsNullOrWhiteSpace(ServiceName))
                {
                    _serviceNameElement = string.Format("<span class=\"nhsuk-header__service-name\">{0}</span>", ServiceName);
                    _headerlink         = CssClasses.NhsUkHeaderLinkService;
                }
                break;
            }

            var widthContainer = new TagBuilder(HtmlElements.Div);

            widthContainer.AddCssClass(CssClasses.NhsUkWidthContainerHeader);

            var headerLogo = BuildHeaderLogo();

            if (HeaderType == HeaderType.Standard)
            {
                if (ShowNav || ShowSearch)
                {
                    _headerContent = new TagBuilder(HtmlElements.Div);
                    _headerContent.AddCssClass(CssClasses.NhsUkHeaderContent);
                    _headerContent.Attributes.Add(HtmlAttributes.IdAttribute, HtmlAttributes.AttributeValues.ContentHeader);

                    if (ShowNav)
                    {
                        _contentMenuElement = BuildHeaderContentMenuElement(ShowSearch ? CssClasses.NhsUkHeaderMenu : CssClasses.NhsUkHeaderMenuOnly);
                    }

                    if (ShowSearch)
                    {
                        _contentSearchElement = BuildHeaderContentSearchElement();
                    }

                    _headerContent.InnerHtml.AppendHtml(_contentMenuElement);
                    _headerContent.InnerHtml.AppendHtml(_contentSearchElement);
                }
            }

            widthContainer.InnerHtml.AppendHtml(headerLogo);
            widthContainer.InnerHtml.AppendHtml(_headerContent);
            widthContainer.InnerHtml.AppendHtml(_transactionalServiceElement);
            UpdateClasses(output);
            output.PreContent.AppendHtml(widthContainer);
            output.TagMode = TagMode.StartTagAndEndTag;
        }
Exemplo n.º 11
0
 private void ProcessButtonTypeStandard(TagHelperOutput output)
 {
     ClassesToPrepend.Add(CssClasses.NhsUkButton);
     SetAttribute(output, HtmlAttributes.Type, HtmlAttributes.AttributeValues.Submit);
 }