using VberAdmin.Web.Models.Input; namespace VberAdmin.Web.Models.Modals; public class VmModalBody : VmModalTabBodyBase { public VmModalBody(List inputs) : this() { AddInputs(inputs); } public VmModalBody() { _tabs = new List(); } public bool TabAutoShow { get; set; } = true; public string BodyClass { get; set; } = "scroll-y px-5 px-lg-10"; public string BodyContent { get; set; } private List _tabs; public List Tabs { get => _tabs.Select(SetTabDefault).ToList(); set => _tabs = value; } public VmModalBody WithBodyContent(string body) { BodyContent += body; return this; } public VmModalBody WithBodyClass(string @class) { BodyClass += @class; return this; } public VmModalBody AddTab(string tabId, string name, string content = "") { _tabs.Add(new VmModalTab(tabId, name).WithContent(content)); return this; } public VmModalBody AddTab(VmModalTabBodyBase tab) { _tabs.Add((VmModalTab)tab); return this; } public VmModalBody AddTab(VmModalTab tab) { _tabs.Add(tab); return this; } public VmModalBody AddTab(string tabId, string name, List inputs) { _tabs.Add((VmModalTab)new VmModalTab(tabId, name).AddInputs(inputs)); return this; } public VmModalBody AddTabs(List tabs) { _tabs.AddRange(tabs); return this; } public VmModalBody SetTabNotAutoShow() { TabAutoShow = false; return this; } private VmModalTab SetTabDefault(VmModalTab tab) { tab.Modal = Modal; return tab; } }