1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- using Microsoft.AspNetCore.Components;
- using Microsoft.AspNetCore.Components.Rendering;
- using System;
- using System.Diagnostics.CodeAnalysis;
- namespace FastReport.Web.Blazor.Export
- {
- internal sealed class ElementContext : IRenderContext
- {
- private readonly IRenderContext _context;
- private int deepLevel = 0;
- public ElementContext(RenderTreeBuilder builder)
- : this(new RenderContext(builder))
- {
-
- }
- public ElementContext(IRenderContext context)
- {
- _context = context;
- }
- public ElementContext(IRenderContext context, string elementName)
- : this(context)
- {
- OpenElement(elementName);
- }
- public void OpenElement(string elementName)
- {
- _context.OpenElement(elementName);
- deepLevel++;
- }
- public bool IsClosed => deepLevel == 0;
- public void CloseElement()
- {
- _context.CloseElement();
- deepLevel--;
- }
- public void Dispose()
- {
- while (deepLevel > 0)
- CloseElement();
- }
- public void AddMarkupContent(string? markupContent) => _context.AddMarkupContent(markupContent);
- public void AddContent(string? textContent) => _context.AddContent(textContent);
- public void AddContent(RenderFragment? fragment) => _context.AddContent(fragment);
- public void AddContent<TValue>(RenderFragment<TValue>? fragment, TValue value) => _context.AddContent(fragment, value);
- public void AddContent(MarkupString markupContent) => _context.AddContent(markupContent);
- public void AddAttribute(string name, bool value) => _context.AddAttribute(name, value);
- public void AddAttribute(string name, string? value) => _context.AddAttribute(name, value);
- public void AddAttribute(string name, MulticastDelegate? value) => _context.AddAttribute(name, value);
- public void AddAttribute(string name, object? value) => _context.AddAttribute(name, value);
- public void OpenComponent<[DynamicallyAccessedMembers(LinkerFlags.All)] TComponent>() where TComponent : notnull, IComponent
- => _context.OpenComponent<TComponent>();
- public void CloseComponent() => _context.CloseComponent();
- public void AddOnClick(OnClickEventArgs click) => _context.AddOnClick(click);
- }
- }
|