public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null) { if (SkipRender(context)) { return; } var contBind = GetBinding(nameof(Content)); var tr = new TagBuilder("tr"); onRender?.Invoke(tr); MergeAttributes(tr, context); if (HideEmpty && GetBinding(nameof(If)) == null && contBind != null) { tr.MergeAttribute("v-if", contBind.GetPathFormat(context)); } tr.RenderStart(context); var nameCell = new TagBuilder("td", "prop-name"); var nameBind = GetBinding(nameof(Name)); if (nameBind != null) { nameCell.MergeAttribute("v-text", nameBind.GetPathFormat(context)); } nameCell.RenderStart(context); if (!String.IsNullOrEmpty(Name)) { context.Writer.Write(context.LocalizeCheckApostrophe(Name)); } nameCell.RenderEnd(context); var valCell = new TagBuilder("td", "prop-value"); valCell.AddCssClassBoolNo(Bold, "bold"); if (contBind != null) { valCell.MergeAttribute("v-text", contBind.GetPathFormat(context)); if (contBind.NegativeRed) { valCell.MergeAttribute(":class", $"$getNegativeRedClass({contBind.GetPath(context)})"); } } valCell.RenderStart(context); if (Content is UIElementBase) { (Content as UIElementBase).RenderElement(context); } else if (Content != null) { context.Writer.Write(context.LocalizeCheckApostrophe(Content.ToString())); } valCell.RenderEnd(context); tr.RenderEnd(context); }
public TagBuilder Render(RenderContext context, TagRenderMode mode = TagRenderMode.Normal, Boolean addSpace = false) { switch (mode) { case TagRenderMode.SelfClosing: context.Writer.Write(CreateStartTag(context, true)); break; case TagRenderMode.StartTag: context.Writer.Write(CreateStartTag(context, false)); break; case TagRenderMode.Normal: context.Writer.Write(CreateStartTag(context, false)); context.Writer.Write(context.LocalizeCheckApostrophe(InnerText)); context.Writer.Write($"</{TagName}>"); break; case TagRenderMode.EndTag: context.Writer.Write($"</{TagName}>"); break; } if (addSpace) { context.Writer.WriteLine(); } _bRender = true; return(this); }
void RenderHeader(RenderContext context) { if (!HasHeader) { return; } var header = new TagBuilder("div", "panel-header-slot"); header.MergeAttribute("slot", "header"); header.RenderStart(context); RenderIcon(context, Icon); var hBind = GetBinding(nameof(Header)); if (hBind != null) { var span = new TagBuilder("span"); span.MergeAttribute("v-text", hBind.GetPathFormat(context)); span.Render(context); } else if (Header is UIElementBase) { (Header as UIElementBase).RenderElement(context); } else if (Header != null) { context.Writer.Write(context.LocalizeCheckApostrophe(Header.ToString())); } RenderHint(context); header.RenderEnd(context); }
public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null) { if (SkipRender(context)) { return; } var span = new TagBuilder("span", "tag-label", IsInGrid); MergeAttributes(span, context); var cbind = GetBinding(nameof(Content)); if (cbind != null) { span.MergeAttribute("v-text", cbind.GetPathFormat(context)); } var cStyle = GetBinding(nameof(Style)); if (cStyle != null) { span.MergeAttribute(":class", cStyle.GetPathFormat(context)); } else if (Style != TagLabelStyle.Default) { span.AddCssClass(Style.ToString().ToLowerInvariant()); } span.RenderStart(context); if (Content is String) { context.Writer.Write(context.LocalizeCheckApostrophe(Content.ToString())); } span.RenderEnd(context); }
void RenderFooter(RenderContext context) { if (!HasFooter) { return; } var f = new TagBuilder("div", "card-footer"); f.RenderStart(context); var fb = GetBinding(nameof(Footer)); if (fb != null) { var s = new TagBuilder("span"); s.MergeAttribute(":text", fb.GetPathFormat(context)); s.Render(context); } else if (Footer is UIElementBase fUiElem) { fUiElem.RenderElement(context); } else if (Footer is String fStr) { context.Writer.Write(context.LocalizeCheckApostrophe(fStr)); } f.RenderEnd(context); }
void RenderHeader(RenderContext context) { if (!HasHeader) { return; } var h = new TagBuilder("div", "card-header"); h.RenderStart(context); var hb = GetBinding(nameof(Header)); if (hb != null) { var s = new TagBuilder("span"); s.MergeAttribute(":text", hb.GetPathFormat(context)); s.Render(context); } else if (Header is UIElementBase hUiElem) { hUiElem.RenderElement(context); } else if (Header is String hStr) { context.Writer.Write(context.LocalizeCheckApostrophe(hStr)); } RenderHint(context); h.RenderEnd(context); }
public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null) { if (SkipRender(context)) { return; } var span = new TagBuilder("span", null, IsInGrid); onRender?.Invoke(span); MergeAttributes(span, context); var cbind = GetBinding(nameof(Content)); if (cbind != null) { span.MergeAttribute("v-html", $"$sanitize({cbind.GetPathFormat(context)})"); } span.RenderStart(context); if (Content != null && Content is String) { context.Writer.Write(context.LocalizeCheckApostrophe(Content.ToString())); } span.RenderEnd(context); }
public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null) { if (SkipRender(context)) { return; } var span = new TagBuilder("span", "a2-badge", IsInGrid); onRender?.Invoke(span); MergeAttributes(span, context); var cbind = GetBinding(nameof(Content)); if (cbind != null) { span.MergeAttribute("v-text", cbind.GetPathFormat(context)); if (cbind.NegativeRed) { span.MergeAttribute(":class", $"$getNegativeRedClass({cbind.GetPath(context)})"); } } span.AddCssClassBool(Small, "small"); span.RenderStart(context); if (Content is String) { context.Writer.Write(context.LocalizeCheckApostrophe(Content.ToString())); } span.RenderEnd(context); }
void RenderHeader(RenderContext context) { var header = new TagBuilder("div", "modal-header"); header.MergeAttribute("v-drag-window", String.Empty); header.RenderStart(context); var hdr = GetBinding(nameof(Title)); if ((hdr != null) || (Title != null)) { var span = new TagBuilder("span"); if (hdr != null) { span.MergeAttribute("v-text", hdr.GetPathFormat(context)); } else if (Title != null) { span.SetInnerText(context.LocalizeCheckApostrophe(Title)); } span.Render(context); } var close = new TagBuilder("button", "btnclose"); if (NoClose) { close.MergeAttribute("disabled", "true"); } else { close.MergeAttribute("@click.prevent", $"$inlineClose('{Id}', false)"); } close.SetInnerText("✕"); close.Render(context); header.RenderEnd(context); }
public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null) { if (SkipRender(context)) { return; } var label = new TagBuilder("div", "a2-label", IsInGrid); onRender?.Invoke(label); var contBind = GetBinding(nameof(Content)); if (contBind != null) { label.MergeAttribute("v-text", contBind.GetPathFormat(context)); } MergeAttributes(label, context); if (Align != TextAlign.Left) { label.AddCssClass("text-" + Align.ToString().ToLowerInvariant()); } label.AddCssClassBool(Required, "required"); label.RenderStart(context); if (Content != null) { context.Writer.Write(context.LocalizeCheckApostrophe(Content.ToString())); } label.RenderEnd(context); }
void RenderDescription(RenderContext context) { var descBind = GetBinding(nameof(Description)); if (descBind == null && Description == null) { return; } var span = new TagBuilder("span", "description"); if (descBind != null) { span.MergeAttribute("v-text", descBind.GetPathFormat(context)); } span.RenderStart(context); if (Description is UIElementBase descUi) { descUi.RenderElement(context); } else if (Description != null) { context.Writer.Write(context.LocalizeCheckApostrophe(Description.ToString())); } span.RenderEnd(context); }
public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null) { if (SkipRender(context)) { return; } var option = new TagBuilder("option"); MergeAttributes(option, context, MergeAttrMode.Visibility); if (Value != null) { if (Value is IJavaScriptSource) { var jsValue = (Value as IJavaScriptSource).GetJsValue(context); option.MergeAttribute(":value", jsValue); } else { option.MergeAttribute("value", Value.ToString()); } } else { option.MergeAttribute(":value", "null"); // JS null value } option.RenderStart(context); if (Content != null) { context.Writer.Write(context.LocalizeCheckApostrophe(Content)); } option.RenderEnd(context); }
public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null) { if (SkipRender(context)) { return; } var tab = new TagBuilder("a2-tab-item"); onRender?.Invoke(tab); // tab.MergeAttribute("tab-style", "yellow"); tab.AddCssClassBool(FullHeight, "full-height"); MergeAttributes(tab, context, MergeAttrMode.SpecialTab); var headerBind = GetBinding(nameof(Header)); if (headerBind != null) { tab.MergeAttribute(":header", headerBind.GetPathFormat(context)); } else if (Header is String) { tab.MergeAttribute("header", context.LocalizeCheckApostrophe(Header?.ToString())); } var badgeBind = GetBinding(nameof(Badge)); if (badgeBind != null) { tab.MergeAttribute(":badge", badgeBind.GetPathFormat(context)); } else if (Badge != null) { tab.MergeAttribute("badge", Badge); } if (Height != null) { tab.MergeStyle("height", Height.Value); } // show/hide support MergeBindingAttributeBool(tab, context, ":show", nameof(Show), Show); // emulate v-hide MergeBindingAttributeBool(tab, context, ":show", nameof(Hide), Hide, bInvert: true); tab.RenderStart(context); RenderChildren(context); tab.RenderEnd(context); }
protected void RenderContent(RenderContext context, Object content) { // if it's a binding, it will be added via MergeAttribute if (content == null) { return; } if (content is UIElementBase uiBase) { uiBase.RenderElement(context); } else if (content != null) { context.Writer.Write(context.LocalizeCheckApostrophe(content.ToString().Replace("\\n", "<br>"))); } }
protected void RenderBadge(RenderContext context, String badge) { var badgeBind = GetBinding("Badge"); if (badgeBind != null) { new TagBuilder("span", "badge") .MergeAttribute("v-text", badgeBind.GetPathFormat(context)) .MergeAttribute("v-if", badgeBind.GetPathFormat(context)) .Render(context); } else if (!String.IsNullOrEmpty(badge)) { new TagBuilder("span", "badge") .SetInnerText(context.LocalizeCheckApostrophe(badge)) .Render(context); } }
public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null) { if (SkipRender(context)) { return; } if (Space == SpaceMode.Before || Space == SpaceMode.Both) { context.Writer.Write(" "); } var span = new TagBuilder("span", null, IsInGrid); onRender?.Invoke(span); MergeAttributes(span, context); var cbind = GetBinding(nameof(Content)); if (cbind != null) { span.MergeAttribute("v-text", MaxChars > 0 ? $"$maxChars({cbind.GetPathFormat(context)}, {MaxChars})" : cbind.GetPathFormat(context)); if (cbind.NegativeRed) { if (GetBinding(nameof(Color)) != null) { throw new XamlException("NegativeRed property is not compatible with Color binding"); } span.MergeAttribute(":class", $"$getNegativeRedClass({cbind.GetPath(context)})"); } } span.AddCssClassBool(Small, "small"); span.AddCssClassBool(Big, "text-big"); span.RenderStart(context); if (Content is String) { context.Writer.Write(context.LocalizeCheckApostrophe(Content.ToString())); } span.RenderEnd(context); if (Space == SpaceMode.After || Space == SpaceMode.Both) { context.Writer.Write(" "); } }
void RenderHeader(RenderContext context) { var header = new TagBuilder("div", "modal-header"); if (!Maximize) { header.MergeAttribute("v-drag-window", String.Empty); } header.RenderStart(context); var hdr = GetBinding(nameof(Title)); if ((hdr != null) || (Title != null)) { var span = new TagBuilder("span", "modal-title"); if (hdr != null) { span.MergeAttribute("v-text", hdr.GetPathFormat(context)); } else if (Title != null) { span.SetInnerText(context.LocalizeCheckApostrophe(Title)); } span.Render(context); } if (TitleInfo != null) { var span = new TagBuilder("span", "modal-title-info"); span.RenderStart(context); TitleInfo.RenderElement(context, null); span.RenderEnd(context); } var close = new TagBuilder("button", "btnclose"); close.MergeAttribute("tabindex", "-1"); close.MergeAttribute("@click.prevent", "$modalClose(false)"); close.SetInnerText("✕"); close.Render(context); RenderHelp(context); header.RenderEnd(context); }
void RenderContent(RenderContext context) { var span = new TagBuilder("span", "content"); var cntBind = GetBinding(nameof(Content)); if (cntBind != null) { span.MergeAttribute("v-text", cntBind.GetPathFormat(context)); } span.RenderStart(context); if (Content is UIElementBase contUi) { contUi.RenderElement(context); } else if (Content != null) { context.Writer.Write(context.LocalizeCheckApostrophe(Content.ToString())); } span.RenderEnd(context); }
internal void Render(RenderContext context) { foreach (var x in this) { if (x == null) { continue; } if (x is String) { context.Writer.Write(context.LocalizeCheckApostrophe(x.ToString())); } else if (x is Inline) { (x as Inline).RenderElement(context); } else { throw new XamlException($"Invalid inline element '{x.GetType().ToString()}'"); } } }
void RenderTitle(RenderContext context) { var titleBind = GetBinding(nameof(Title)); if (titleBind != null || Title != null) { var title = new TagBuilder("legend"); title.RenderStart(context); var span = new TagBuilder("span"); if (titleBind != null) { span.MergeAttribute("v-text", titleBind.GetPathFormat(context)); } span.RenderStart(context); if (Title != null) { context.Writer.Write(context.LocalizeCheckApostrophe(Title)); } span.RenderEnd(context); RenderHint(context); title.RenderEnd(context); } }
void RenderDesription(RenderContext context) { new Separator().RenderElement(context); var dBind = GetBinding(nameof(Description)); var wrap = new TagBuilder(null, "a2-tab-description"); wrap.RenderStart(context); if (dBind != null) { var span = new TagBuilder("span"); span.MergeAttribute("v-text", dBind.GetPathFormat(context)); span.Render(context); } else if (Description is UIElementBase uiDescr) { uiDescr.RenderElement(context); } else if (Description != null) { context.Writer.Write(context.LocalizeCheckApostrophe(Description.ToString())); } wrap.RenderEnd(context); }
void RenderBody(RenderContext context) { if (!HasBody) { return; } var hBody = new TagBuilder("div", "list-item-simple-body"); var bBody = GetBinding(nameof(Content)); if (bBody != null) { hBody.MergeAttribute("v-text", bBody.GetPathFormat(context)); } hBody.RenderStart(context); if (Content is UIElementBase) { (Content as UIElementBase).RenderElement(context); } else if (Content != null) { context.Writer.Write(context.LocalizeCheckApostrophe(Content.ToString())); } hBody.RenderEnd(context); }
public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null) { if (SkipRender(context)) { return; } var po = new TagBuilder("popover", "a2-inline", IsInGrid); onRender?.Invoke(po); MergeAttributes(po, context, MergeAttrMode.All); po.AddCssClass("po-" + Placement.ToString().ToKebabCase()); if (Background != PopoverBackgroundStyle.Default) { po.AddCssClass("po-" + Background.ToString().ToKebabCase()); } if (Icon != Icon.NoIcon) { po.MergeAttribute("icon", Icon.ToString().ToKebabCase()); } MergeBindingAttributeString(po, context, "content", nameof(Text), Text); if (Underline != PopoverUnderlineMode.Enable) { po.AddCssClass("underline-" + Underline.ToString().ToLowerInvariant()); } var urlBind = GetBinding(nameof(Url)); if (ShowOnHover) { po.MergeAttribute(":hover", "true"); if (urlBind != null || !String.IsNullOrEmpty(Url)) { throw new XamlException("'ShowOnHover' and 'Url' are not compatible."); } } if (urlBind != null) { po.MergeAttribute(":url", urlBind.GetPathFormat(context)); } else if (!String.IsNullOrEmpty(Url)) { po.MergeAttribute("url", Url); } if (Width != null) { po.MergeAttribute("width", Width.Value); } if (Top != null) { po.MergeAttribute("top", Top.Value); } po.RenderStart(context); var cntBind = GetBinding(nameof(Content)); if (cntBind != null) { var cont = new TagBuilder("span"); cont.MergeAttribute("v-text", cntBind.GetPathFormat(context)); cont.Render(context); } else if (Content is UIElementBase) { (Content as UIElementBase).RenderElement(context); } else if (Content != null) { context.Writer.Write(context.LocalizeCheckApostrophe(Content.ToString())); } RenderPopoverBadge(context); po.RenderEnd(context); }
void RenderHyperlink(RenderContext context, Boolean inGrid, Action <TagBuilder> onRender = null, Boolean inside = false, Boolean addOn = false) { Boolean bHasDropDown = DropDown != null; var tag = new TagBuilder("a", "a2-hyperlink", inGrid); tag.MergeAttribute("href", "javascript:void(0)"); onRender?.Invoke(tag); var attrMode = MergeAttrMode.All; if (inside) { attrMode &= ~MergeAttrMode.Visibility; } MergeAttributes(tag, context, attrMode); MergeCommandAttribute(tag, context); tag.AddCssClassBool(Block, "block"); tag.AddCssClassBool(Highlight, "highlight"); if (!Block) { tag.AddCssClass("a2-inline"); } if (IsNavigateExternal()) { tag.MergeAttribute("rel", "noopener"); } if (Size != ControlSize.Default) { switch (Size) { case ControlSize.Small: tag.AddCssClass("small"); break; case ControlSize.Large: tag.AddCssClass("large"); break; case ControlSize.Normal: tag.AddCssClass("normal"); break; default: throw new XamlException("Only ControlSize.Small, ControlSize.Normal or ControlSize.Large are supported for the Hyperlink"); } } if (bHasDropDown) { tag.MergeAttribute("toggle", String.Empty); } if (!String.IsNullOrEmpty(TestId) && context.IsDebugConfiguration) { tag.MergeAttribute("test-id", TestId); } tag.RenderStart(context); RenderIcon(context, Icon); var cbind = GetBinding(nameof(Content)); if (cbind != null) { new TagBuilder("span") .MergeAttribute("v-text", cbind.GetPathFormat(context)) .Render(context); } else if (Content is UIElementBase) { (Content as UIElementBase).RenderElement(context); } else if (Content != null) { context.Writer.Write(context.LocalizeCheckApostrophe(Content.ToString())); } if (bHasDropDown && !addOn && !HideCaret) { var bDropUp = (DropDown as DropDownMenu)?.IsDropUp; new TagBuilder("span", "caret") .AddCssClassBool(bDropUp, "up") .Render(context); } RenderHint(context); tag.RenderEnd(context); }
void RenderBody(RenderContext context) { if (HasHeader) { var hTag = new TagBuilder("div", "list-item-header"); var bHead = GetBinding(nameof(Header)); if (bHead != null) { hTag.MergeAttribute("v-text", bHead.GetPathFormat(context)); } hTag.RenderStart(context); if (Header != null) { if (Header is UIElementBase) { (Header as UIElementBase).RenderElement(context); } else { context.Writer.Write(context.Localize(Header.ToString())); } } hTag.RenderEnd(context); } if (HasBody) { var hBody = new TagBuilder("div", "list-item-body"); var bBody = GetBinding(nameof(Content)); if (bBody != null) { hBody.MergeAttribute("v-text", bBody.GetPathFormat(context)); } hBody.RenderStart(context); if (Content is UIElementBase) { (Content as UIElementBase).RenderElement(context); } else if (Content != null) { context.Writer.Write(context.LocalizeCheckApostrophe(Content.ToString())); } hBody.RenderEnd(context); } if (HasFooter) { var fTag = new TagBuilder("div", "list-item-footer"); var bFoot = GetBinding(nameof(Footer)); if (bFoot != null) { fTag.MergeAttribute("v-text", bFoot.GetPathFormat(context)); } fTag.RenderStart(context); if (Footer != null) { if (Footer is UIElementBase) { (Footer as UIElementBase).RenderElement(context); } else { context.Writer.Write(context.LocalizeCheckApostrophe(Footer.ToString())); } } fTag.RenderEnd(context); } if (CommandBar != null) { CommandBar.RenderElement(context, tag => { tag.AddCssClass("list-item-commands"); }); } }