public Task OnGet() { var builder = new LaraBuilder(LaraUI.Document.Body); builder.Push("div") .Push(_auto) .Pop() .Pop() .Push("div") .Push("button") .InnerText("Read") .On("click", () => { _span.InnerText = _auto.Value; return(Task.CompletedTask); }) .Pop() .Pop() .Push("div") .AddNode(_span) .Pop(); _auto.Start(new AutocompleteOptions { AutoFocus = true, MinLength = 0, Strict = true, Provider = this }); return(Task.CompletedTask); }
public void GetSlotElementFinds() { var x = new MySlotter(); var builder = new LaraBuilder(x); builder.Push("div", "", "slot1") .Pop() .Push("div", "", "slot2") .Push("div", "", "slot2a") .Pop() .Pop() .Push("div", "", "slot3") .Attribute("slot", "a") .Pop(); var set = new HashSet <string?>(); foreach (var item in x.GetSlottedElements("")) { if (item is Element element) { set.Add(element.Id); } } Assert.Contains("slot1", set); Assert.Contains("slot2", set); Assert.DoesNotContain("slot2a", set); Assert.DoesNotContain("slot3", set); var list = new List <Node>(x.GetSlottedElements("a")); Assert.Single(list); var child = list[0] as Element; Assert.NotNull(child); Assert.Equal("slot3", child !.Id); }
public Task OnGet() { var builder = new LaraBuilder(LaraUI.Page.Document.Body); builder.Push("div") .Push("input") .Pop() .Pop() .Push("div") .Push(_span) .Pop() .Pop(); LaraUI.Page.Document.On(new EventSettings { EventName = "keyup", EvalFilter = "event.keyCode === 13", Handler = () => { _counter++; _span.InnerText = _counter.ToString(); return(Task.CompletedTask); } }); return(Task.CompletedTask); }
public Task OnGet() { var document = LaraUI.Page.Document; SampleAppBootstrap.AppendTo(document.Head); var builder = new LaraBuilder(document.Body); builder.Push("div", "container") .Push("table", "table table-hover") .Push("thead", "thead-light") .Push("tr") .Push("th") .Attribute("scope", "col") .AppendText("First name") .Pop() .Push("th") .Attribute("scope", "col") .AppendText("Last name") .Pop() .Pop() .Push("tbody") .Push("tr") .Push("td").AppendText("John").Pop() .Push("td").AppendText("Jones").Pop() .Pop() .Push("tr") .Push("td").AppendText("Amy").Pop() .Push("td").AppendText("Smith").Pop() .Pop() .Pop() .Pop() .Pop() .Pop(); return(Task.CompletedTask); }
public async void OnEvent() { var executed = false; var root = Element.Create("div"); var builder = new LaraBuilder(root); builder.On(new EventSettings { EventName = "click", Handler = () => { executed = true; return(Task.CompletedTask); } }); /*var connection = new Connection(Guid.NewGuid(), IPAddress.Loopback); * var http = new Mock<HttpContext>(); * var mock = new Mock<IPage>(); * var context = new PageContext(_context.Application, * http.Object, connection);*/ await root.NotifyEvent("click"); Assert.True(executed); }
public Element Build() { var row = Element.Create("div"); row.Class = "form-row"; var builder = new LaraBuilder(row); builder.Push("div", "form-group my-1") .Push("div", "form-check") .Push(_checkbox) .Pop() .Push("label", "form-check-label") .Attribute("for", _checkbox.Id) .AddTextNode("Check me out") .Pop() .Pop() .Pop() .Push("div", "form-group") .Push(_toggle) .AddTextNode("Toggle") .Pop() .Pop(); return(row); }
public Task OnGet() { var builder = new LaraBuilder(LaraUI.Page.Document.Body); builder.Push("div") .InnerText("Clicking on 'parent' or 'AllowPropagation' increases counter.") .Pop() .Push(_divCounter) .InnerText("0") .Pop() .Push("div") .Push("span") .InnerText("parent") .Pop() .On("click", ParentClick) .Push("div") .InnerText("StopPropagation") .On(new EventSettings { EventName = "click", Handler = () => Task.CompletedTask }) .Pop() .Push("div") .InnerText("AllowPropagation") .On(new EventSettings { EventName = "click", Propagation = PropagationType.AllowAll, Handler = () => Task.CompletedTask }) .Pop() .Pop(); return(Task.CompletedTask); }
public void SetFlag() { var root = Element.Create("div"); var builder = new LaraBuilder(root); builder.FlagAttribute("hidden", true); Assert.True(root.Hidden); }
public void SetAttribute() { var root = Element.Create("div"); var builder = new LaraBuilder(root); builder.Attribute("class", "red"); Assert.Equal("red", root.Class); }
public void AddAction() { var root = Element.Create("div"); var builder = new LaraBuilder(root); builder.Add(MyAddAction); Assert.Equal(1, root.ChildCount); }
public void TooManyPops() { var root = Element.Create("div"); var builder = new LaraBuilder(root); builder.Push("button", "red").Pop(); DomOperationsTesting.Throws <InvalidOperationException>(() => builder.Pop()); }
public void PushElementClass() { var root = Element.Create("root"); var div = Element.Create("div"); var builder = new LaraBuilder(root); builder.Push(div, "red"); Assert.Equal("red", div.Class); }
public void AddSiblings() { var root = Element.Create("div"); var builder = new LaraBuilder(root); builder.Push("button", "red").Pop(); builder.Push("button", "red").Pop(); Assert.Equal(2, root.ChildCount); }
public void LaraFlushEvent() { var x = new InputElement(); var builder = new LaraBuilder(x); builder.FlushEvent("click"); x.NotifyEvent("click"); Assert.True(x.Events.TryGetValue("click", out var ev)); Assert.Equal("click", ev !.EventName); }
public void AddTextNodeEncodes() { var root = Element.Create("div"); var builder = new LaraBuilder(root); builder.AppendText("<"); var node = root.Children.FirstOrDefault() as TextNode; Assert.NotNull(node); Assert.Equal("&lt;", node !.Data); }
public void PushClassName() { var root = Element.Create("div"); var builder = new LaraBuilder(root); builder.Push("div", "red").Pop(); Assert.NotEmpty(root.Children); var child = root.Children.FirstOrDefault() as Element; Assert.NotNull(child); Assert.Equal("red", child !.Class); }
public Xcom() : base("x-com") { var builder = new LaraBuilder(ShadowRoot); builder.Push("div", "", "div1") .Push("div", "", "div1a") .Pop() .Pop() .Push("div", "", "div2") .Pop() .AppendText("lalas"); }
// ReSharper disable once InconsistentNaming public void PushNS() { var root = Element.Create("div"); var builder = new LaraBuilder(root); builder.PushNS("abc", "svg").Pop(); Assert.NotEmpty(root.Children); var child = root.Children.FirstOrDefault() as Element; Assert.NotNull(child); Assert.Equal("abc", child !.GetAttribute("xlmns")); }
public Task OnGet() { var document = LaraUI.Page.Document; SampleAppBootstrap.AppendTo(document.Head); var builder = new LaraBuilder(document.Body); builder.Push("my-checkbox", "m-3") .Attribute("label", "check me out") .Pop(); return(Task.CompletedTask); }
public void OrphanSlotPrintsItself() { var document = new Document(new MyPage(), BaseModeController.DefaultKeepAliveInterval); var builder = new LaraBuilder(document.Body); builder.Push("slot", "lalala").Pop(); var writer = new DocumentWriter(document); writer.Print(); var html = writer.ToString(); Assert.Contains("lalala", html); }
public void AddNodes() { var root = Element.Create("div"); var builder = new LaraBuilder(root); var list = new List <Node>() { new HtmlButtonElement(), new HtmlOptionElement() }; builder.AddNodes(list); Assert.Equal(2, root.ChildCount); }
public void PushAdds() { var root = Element.Create("div"); var builder = new LaraBuilder(root); builder.Push("button", "red", "mybutton").Pop(); Assert.NotEmpty(root.Children); var first = root.Children.FirstOrDefault() as HtmlButtonElement; Assert.NotNull(first); Assert.Equal("red", first !.Class); Assert.Equal("mybutton", first.Id); }
public Task OnGet() { var builder = new LaraBuilder(LaraUI.Page.Document.Body); builder.Push("div") .Push("button") .InnerText("append line") .On("click", AppendHandler) .Pop() .Pop() .Push(_lines) .Pop(); return(Task.CompletedTask); }
public static string GetSpinnerHtml(string message) { var div = Element.Create("div"); div.Class = "d-flex justify-content-center"; var builder = new LaraBuilder(div); builder.Push("div", "spinner-border") .Attribute("role", "status") .Pop() .Push("div", "ml-2") .AppendText(message) .Pop(); return(div.GetHtml()); }
public async void OnEventSimple() { var executed = false; var root = Element.Create("div"); var builder = new LaraBuilder(root); builder.On("click", () => { executed = true; return(Task.CompletedTask); }); await root.NotifyEvent("click"); Assert.True(executed); }
public CounterComponent() : base(MyCounter) { _div = Create("div"); var data = new CounterData(); var builder = new LaraBuilder(ShadowRoot); builder.Push(_div, Class) .Push("span") .BindInnerText(data, x => x.Counter.ToString()) .Pop() .Push("button", "btn btn-primary ml-2") .On("click", () => data.Counter++) .AppendText("increase") .Pop() .Pop(); }
public CheckboxComponent() : base(MyCheckbox) { _checkbox = new InputElement(); _label = Create("label"); var builder = new LaraBuilder(ShadowRoot); builder.Push("div", "form-group form-check") .Push(_checkbox, "form-check-input") .Attribute("type", "checkbox") .On("click", () => UpdateLabel()) .Pop() .Push(_label) .Attribute("for", _checkbox.EnsureElementId()) .Pop() .Pop(); }
public void SlotsPrintHostElements() { var document = new Document(new MyPage(), BaseModeController.DefaultKeepAliveInterval); var builder = new LaraBuilder(document.Body); builder.Push("x-slotter") .Push("div", "lalala") .AppendText("hello") .Pop() .Pop(); var writer = new DocumentWriter(document); writer.Print(); var html = writer.ToString(); Assert.Contains("lalala", html); Assert.Contains("hello", html); Assert.DoesNotContain("x-slotter", html); }
public MultiselectSample() { var @select = new SelectElement { Id = "mymulti", Class = "form-control", Multiple = true }; var toggle = new Button { Class = "btn btn-primary" }; toggle.AppendChild(new TextNode("Toggle")); @select.AddOption("N", "North"); @select.AddOption("E", "East"); @select.AddOption("S", "South"); @select.AddOption("W", "West"); toggle.On("click", () => { foreach (var child in @select.Children) { if (child is OptionElement option) { option.Selected = !option.Selected; } } return(Task.CompletedTask); }); Root = Element.Create("div"); Root.Class = "form-row"; var builder = new LaraBuilder(Root); builder .Push("div", "form-group col-md-2") .Push(@select) .Pop() .Pop() .Push("div", "form-group col-md-1") .Push(toggle) .Pop() .Pop(); }
public Element Build() { var row = Element.Create("div"); row.Class = "form-row"; var builder = new LaraBuilder(row); builder .Push("div", "form-group") .Push(_select) .Pop() .Pop() .Push("div", "form-group") .Push(_toggle) .Pop() .Pop(); return(row); }