using System.Xml; using MBS.Core; namespace MBS.Web.UI; public abstract class WebControl : Control { private NanoId _NanoId = NanoId.Empty; private string NanoIdString { get { if (_NanoId.IsEmpty) { _NanoId = NanoId.Generate(NanoId.CapitalAlphanumericNoSpecialChars, 8); } return _NanoId.ToString(); } } public string ClientId { get; set; } = ""; public ThemeColorPreset ThemeColorPreset { get; set;} = ThemeColorPreset.Unspecified; protected override IEnumerable GetStyleClasses() { List styleClasses = new List(); switch (ThemeColorPreset) { case ThemeColorPreset.Primary: styleClasses.Add("uwt-color-primary"); break; case ThemeColorPreset.Warning: styleClasses.Add("uwt-color-warning"); break; case ThemeColorPreset.Danger: styleClasses.Add("uwt-color-danger"); break; } if (Visible) { styleClasses.Add("uwt-visible"); } return styleClasses; } protected override IDictionary GetControlAttributes() { IDictionary dict = base.GetControlAttributes(); if (String.IsNullOrEmpty(ClientId)) { dict["id"] = String.Format("UWT{0}", NanoIdString); } else { dict["id"] = ClientId; } return dict; } }