protected static void AddSeparator(HtmlTag uiContainer, CardElement cardElement, RenderContext context) { switch (cardElement.Separation) { case SeparationStyle.None: return; case SeparationStyle.Default: { SeparationConfig sep = context.GetElementSeparation(cardElement); var uiSep = new DivTag() .AddClass("ac-separator") .Style("height", $"{sep.Spacing}px"); uiContainer.Children.Add(uiSep); } return; case SeparationStyle.Strong: { SeparationConfig sep = context.Config.StrongSeparation; var uiSep = new DivTag() .AddClass("ac-separator") .Style("padding-top", $"{sep.Spacing}px") .Style("margin-top", $"{sep.Spacing}px") .Style("border-top-color", $"{context.GetRGBColor(sep.LineColor)}") .Style("border-top-width", $"{sep.LineThickness}px") .Style("border-top-style", "solid") ; uiContainer.Children.Add(uiSep); } return; } }
public static void AddSeperator(RenderContext context, CardElement element, Grid uiContainer, SeparationStyle seperationStyle) { if (seperationStyle == SeparationStyle.None) { return; } var uiSep = new Grid(); uiSep.Style = context.GetStyle($"Adaptive.Separator"); SeparationConfig sepStyle = null; switch (seperationStyle) { case SeparationStyle.Default: sepStyle = context.Config.GetSeparationForElement(element, strong: false); break; case SeparationStyle.Strong: sepStyle = context.Config.GetSeparationForElement(element, strong: true); break; } uiSep.Margin = new Thickness(0, (sepStyle.Spacing - sepStyle.LineThickness) / 2, 0, (sepStyle.Spacing - sepStyle.LineThickness) / 2); uiSep.SetHeight(sepStyle.LineThickness); if (!string.IsNullOrWhiteSpace(sepStyle.LineColor)) { uiSep.SetBackgroundColor(sepStyle.LineColor, context); } uiContainer.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); Grid.SetRow(uiSep, uiContainer.RowDefinitions.Count - 1); uiContainer.Children.Add(uiSep); }
protected static HtmlTag ColumnSetRender(TypedElement element, RenderContext context) { ColumnSet columnSet = (ColumnSet)element; var uiColumnSet = new DivTag() .AddClass($"ac-{element.Type.Replace(".", "").ToLower()}") .Style("overflow", "hidden") .Style("display", "flex"); var max = Math.Max(1.0, columnSet.Columns.Select(col => { if (double.TryParse(col.Size ?? "0", out double val)) { return(val); } return(0); }).Sum()); foreach (var column in columnSet.Columns) { var uiColumn = context.Render(column); // Add horizontal Seperator if (uiColumnSet.Children.Any()) { SeparationConfig sep = null; switch (column.Separation) { case SeparationStyle.None: break; case SeparationStyle.Default: sep = context.Config.Column.Separation; break; case SeparationStyle.Strong: sep = context.Config.StrongSeparation; break; } if (sep != null) { uiColumnSet.Children.Add(new DivTag() .AddClass($"ac-columnseparator") .Style("flex", "0 0 auto") .Style("padding-left", $"{sep.Spacing}") .Style("margin-left", $"{sep.Spacing}") .Style("border-left-color", $"{context.GetRGBColor(sep.LineColor)}") .Style("border-left-width", $"{sep.LineThickness}px") .Style("border-left-style", $"solid")); } } // do some sizing magic var size = column.Size?.ToLower(); if (size == null || size == ColumnSize.Stretch.ToLower()) { uiColumn = uiColumn.Style("flex", "1 1 auto"); } else if (size == ColumnSize.Auto.ToLower()) { uiColumn = uiColumn.Style("flex", "0 1 auto"); } else { double val; if (double.TryParse(size, out val)) { var percent = Convert.ToInt32(100 * (val / max)); uiColumn = uiColumn.Style("flex", $"1 1 {percent}%"); } else { uiColumn = uiColumn.Style("flex", "0 0 auto"); } } uiColumnSet.Children.Add(uiColumn); } return(uiColumnSet); }
protected static void AddContainerElements(HtmlTag uiContainer, List <CardElement> elements, List <ActionBase> actions, RenderContext context) { if (elements != null) { foreach (var cardElement in elements) { // each element has a row var uiElement = context.Render(cardElement); if (uiElement != null) { if (uiContainer.Children.Any()) { switch (cardElement.Separation) { case SeparationStyle.None: break; case SeparationStyle.Default: { SeparationConfig sep = context.GetElementSeparation(cardElement); var uiSep = new DivTag() .AddClass("ac-separator") .Style("height", $"{sep.Spacing}px"); uiContainer.Children.Add(uiSep); } break; case SeparationStyle.Strong: { SeparationConfig sep = context.Config.StrongSeparation; var uiSep = new DivTag() .AddClass("ac-separator") .Style("padding-top", $"{sep.Spacing}px") .Style("margin-top", $"{sep.Spacing}px") .Style("border-top-color", $"{context.GetRGBColor(sep.LineColor)}") .Style("border-top-width", $"{sep.LineThickness}px") .Style("border-top-style", "solid") ; uiContainer.Children.Add(uiSep); } break; } } uiContainer.Children.Add(uiElement); } } } if (actions != null) { var uiActions = new DivTag() .AddClass("ac-actionset"); foreach (var action in actions.Take(context.Config.Actions.MaxActions)) { // add actions var uiAction = context.Render(action); if (uiAction != null) { uiActions.Children.Add(uiAction); } } if (uiActions.Children.Any()) { uiContainer.Children.Add(uiActions); } } }