using Microsoft.AspNetCore.Components; namespace WebDoorCreator.UI.Components.SvgComp { public partial class HomeCard { #region Public Properties [Parameter] public bool isLogged { get; set; } = false; [Parameter] public string BodyStyle { get; set; } = "font-size: 2em;"; [Parameter] public string BodyText { get; set; } = "Body Text"; [Parameter] public string ButtonText { get; set; } = "Button Text"; [Parameter] public List ButtonsList { get; set; } = new List(); [Parameter] public EventCallback EC_ExeFunct { get; set; } [Parameter] public string ImagePath { get; set; } = "images/DOORBG.png"; [Parameter] public string LineColor { get; set; } = "#3989CC"; [Parameter] public int LineWidth { get; set; } = 16; [Parameter] public int ObjH { get; set; } = 204; [Parameter] public int ObjId { get; set; } = 0; [Parameter] public int ObjW { get; set; } = 450; [Parameter] public int StartPoint { get; set; } = 220; [Parameter] public string TitleStyle { get; set; } = "font-size: 5.5em;"; [Parameter] public string TitleText { get; set; } = "Title Text"; #endregion Public Properties #region Protected Properties protected List PathClip { get; set; } = null!; protected string PathClipData { get { //string path = $"{PathLineData} L1200,0 L1920,0 L1920,1080 L900,1080 Z"; string path = PathLineData; if (pathClipCloseList.Count > 0) { for (int i = 0; i < pathClipCloseList.Count; i++) { path += $" L{pathClipCloseList[i].px},{pathClipCloseList[i].py}"; } } path += " Z"; return path; } } public class ButtonData { public string Css { get; set; } = "btn btn-lg btn-primary rounded-pill p-3 px-4 text-uppercase"; public string Text { get; set; } = "Button"; public string Title { get; set; } = "Button Suggestion"; public string Descript { get; set; } = "..."; public string Icon { get; set; } = "fa fa-home"; public string RetPage { get; set; } = "home"; } protected List PathLine { get; set; } = null!; protected string PathLineData { get { string path = ""; if (pathPointList.Count > 0) { path = $"M{pathPointList[0].px},{pathPointList[0].py} Q"; for (int i = 1; i < pathPointList.Count; i++) { path += $" {pathPointList[i].px},{pathPointList[i].py}"; } } return path; } } #endregion Protected Properties #region Protected Methods protected void execFunc() { EC_ExeFunct.InvokeAsync(""); } protected override void OnParametersSet() { setupGraphParams(); } protected void setupGraphParams() { pathPointList = new List(); pathClipCloseList = new List(); // calcolo i dati necessari a disegnare int deltaX = (ObjW / 2 - StartPoint); int deltaY = ObjH / 3; // inizio aggiungendo punti parametrici pathPointList.Add(new PointData(StartPoint, ObjH + 5)); pathPointList.Add(new PointData((int)(StartPoint - deltaX * 0.19), ObjH - (deltaY / 2))); pathPointList.Add(new PointData((int)(StartPoint + deltaX * 0.26), ObjH - deltaY)); pathPointList.Add(new PointData((int)(ObjW / 2 - deltaX * 0.48 ), (int)((ObjH / 2) + deltaY * 0.216))); pathPointList.Add(new PointData(ObjW / 2, ObjH / 2)); pathPointList.Add(new PointData((int)(ObjW / 2 + deltaX * 0.48 ), (int)((ObjH / 2) - deltaY * 0.216))); pathPointList.Add(new PointData((int)(ObjW - (StartPoint + deltaX * 0.26)), deltaY)); pathPointList.Add(new PointData((int)(ObjW - (StartPoint - deltaX * 0.19)), (deltaY / 2))); pathPointList.Add(new PointData(ObjW - StartPoint, - 5)); // ora provvedo x la parte clip pathClipCloseList.Add(new PointData(ObjW - StartPoint, 0)); pathClipCloseList.Add(new PointData(ObjW, 0)); pathClipCloseList.Add(new PointData(ObjW, ObjH)); pathClipCloseList.Add(new PointData(StartPoint, ObjH)); } protected List pathPointList = new List(); protected List pathClipCloseList = new List(); #endregion Protected Methods #region Protected Classes protected class PointData { #region Public Constructors public PointData(int valx, int valy) { px = valx; py = valy; } #endregion Public Constructors #region Public Properties public int px { get; set; } = 0; public int py { get; set; } = 0; #endregion Public Properties } protected async Task raiseEvent(string? retPage) { retPage = retPage ?? "Home"; await EC_ExeFunct.InvokeAsync(retPage); } #endregion Protected Classes } }