예제 #1
0
        private IRenderedComponent <MyButton> SetupButtonComponent()
        {
            var jsModule = JSInterop.SetupModule("import", new string[] { "./_content/HeadlessUI/common.js" });

            jsModule.SetupVoid("preventDefaultKeyBehaviorOnKeys").SetVoidResult();
            return(RenderComponent <MyButton>());
        }
 public void FailWithoutScripts()
 {
     JSInterop.Setup <bool>("window.hasOwnProperty", (_) => true).SetResult(true);
     JSInterop.Setup <bool>("Excubo.hasOwnProperty", (_) => true).SetResult(true);
     JSInterop.SetupVoid("Excubo.ScriptInjection.Register", (_) => true);
     _ = Assert.Throws <InvalidOperationException>(() => RenderComponent <AddScript>());
 }
예제 #3
0
        public async Task UpdateChart()
        {
            object config = await JSInterop.InvokeAsync <object>(ConfigMethodName);

            SetOptionsByParameters(config);
            await JSInterop.InvokeAsync <object>("RunTSUpdateChart", ChartOpts);
        }
        public async Task UpdateCode(string code)
        {
            QrOpts.Text = code;
            await JSInterop.InvokeAsync <object>("RunTSQrCode", TSQrCodeContainer, QrOpts);

            StateHasChanged();
        }
예제 #5
0
 /// <summary>
 /// OnAfterRenderAsync 方法
 /// </summary>
 /// <param name="firstRender"></param>
 /// <returns></returns>
 protected override async Task OnAfterRenderAsync(bool firstRender)
 {
     if (firstRender)
     {
         Interop = new(JSRuntime);
         await Interop.InvokeVoidAsync(this, Id, "bb_ribbon", nameof(SetExpand));
     }
 }
 protected override async Task OnAfterRenderAsync(bool firstRender)
 {
     if (firstRender)
     {
         //await JSInterop.InvokeAsync<string>("console.log", DatepickerContainer);
         await JSInterop.InvokeAsync <string>("RunPickdate", DatepickerContainer);
     }
 }
 protected override async Task OnAfterRenderAsync(bool firstRender)
 {
     if (firstRender)
     {
         //await JSInterop.InvokeAsync<string>("console.log", MaskedInputContainer);
         await JSInterop.InvokeAsync <string>("RunMaskedInput", MaskedInputContainer);
     }
 }
 public void InvalidUri(string uri)
 {
     _ = Services.AddScriptInjection();
     JSInterop.Setup <bool>("window.hasOwnProperty", (_) => true).SetResult(true);
     JSInterop.Setup <bool>("Excubo.hasOwnProperty", (_) => true).SetResult(true);
     JSInterop.SetupVoid("Excubo.ScriptInjection.Register", (_) => true);
     _ = NUnit.Framework.Assert.Throws <InvalidOperationException>(() => _ = RenderComponent <AddScript>((nameof(AddScript.Src), uri)));
 }
예제 #9
0
 /// <summary>
 /// OnAfterRenderAsync 方法
 /// </summary>
 /// <param name="firstRender"></param>
 /// <returns></returns>
 protected override async Task OnAfterRenderAsync(bool firstRender)
 {
     if (firstRender)
     {
         Interop = new JSInterop <Notifications>(JSRuntime);
         await BrowserNotification.CheckPermission(Interop, this, nameof(GetPermissionCallback), false);
     }
 }
예제 #10
0
        private void OnBeginInvokeJS(int asyncHandle, string identifier, string argsJson)
        {
            var call = new CapturedJSInteropCall(asyncHandle, identifier, argsJson);

            Operations?.JSInteropCalls.Enqueue(call);
            JSInterop?.Invoke(call);

            NextJSInteropReceived?.Completion?.TrySetResult(null);
        }
예제 #11
0
        protected override async Task OnAfterRenderAsync(bool firstRender)
        {
            if (firstRender)
            {
                await JSInterop.InvokeAsync <object>("RunTSTabs", TSTabsContainer);

                StateHasChanged();
            }
        }
 /// <summary>
 /// OnAfterRenderAsync 方法
 /// </summary>
 /// <param name="firstRender"></param>
 /// <returns></returns>
 protected override async Task OnAfterRenderAsync(bool firstRender)
 {
     if (firstRender)
     {
         Interop = new JSInterop <ResizeNotification>(JSRuntime);
         var point = await Interop.InvokeAsync <BreakPoint>(this, null, "bb_resize_monitor", nameof(OnResize));
         await OnResize(point);
     }
 }
예제 #13
0
        protected override async Task OnAfterRenderAsync(bool firstRender)
        {
            if (firstRender)
            {
                object config = await JSInterop.InvokeAsync <object>(ConfigMethodName);

                SetOptionsByParameters(config);
                await JSInterop.InvokeAsync <object>("RunTSChart", TSChartContainer, ChartOpts);
            }
        }
    /// <summary>
    /// OnAfterRenderAsync 方法
    /// </summary>
    /// <param name="firstRender"></param>
    /// <returns></returns>
    protected override async Task OnAfterRenderAsync(bool firstRender)
    {
        await base.OnAfterRenderAsync(firstRender);

        if (firstRender)
        {
            Interop = new JSInterop <TableFilter>(JSRuntime);
            await Interop.InvokeVoidAsync(this, FilterElement, "bb_filter", nameof(Close));
        }
    }
예제 #15
0
    /// <summary>
    /// OnAfterRenderAsync 方法
    /// </summary>
    /// <param name="firstRender"></param>
    protected override async Task OnAfterRenderAsync(bool firstRender)
    {
        base.OnAfterRender(firstRender);

        if (firstRender)
        {
            Interop = new JSInterop <Transition>(JSRuntime);
            await Interop.InvokeVoidAsync(this, TransitionElement, "bb_transition", nameof(TransitionEndAsync));
        }
    }
    /// <summary>
    /// OnAfterRenderAsync 方法
    /// </summary>
    /// <param name="firstRender"></param>
    /// <returns></returns>
    protected override async Task OnAfterRenderAsync(bool firstRender)
    {
        await base.OnAfterRenderAsync(firstRender);

        if (firstRender)
        {
            Interop = new JSInterop <MultiSelect <TValue> >(JSRuntime);
            await Interop.InvokeVoidAsync(this, SelectElement, "bb_multi_select", nameof(Close));
        }
    }
예제 #17
0
    /// <summary>
    /// OnAfterRenderAsync 方法
    /// </summary>
    /// <param name="firstRender"></param>
    /// <returns></returns>
    protected override async Task OnAfterRenderAsync(bool firstRender)
    {
        await base.OnAfterRenderAsync(firstRender);

        if (firstRender)
        {
            Interop = new JSInterop <Slider>(JSRuntime);
            await Interop.InvokeVoidAsync(this, SliderElement, "bb_slider", nameof(SetValue));
        }
    }
        protected override async Task OnAfterRenderAsync(bool firstRender)
        {
            if (firstRender)
            {
                SetOptionsByParameters();
                await JSInterop.InvokeAsync <string>("RunTSDatepicker", TSDatepickerContainer, DpkrOpts);

                StateHasChanged();
            }
        }
예제 #19
0
    /// <summary>
    /// OnAfterRenderAsync 方法
    /// </summary>
    /// <param name="firstRender"></param>
    /// <returns></returns>
    protected override async Task OnAfterRenderAsync(bool firstRender)
    {
        await base.OnAfterRenderAsync(firstRender);

        if (firstRender)
        {
            Interop = new JSInterop <Layout>(JSRuntime);
            await Interop.InvokeVoidAsync(this, null, "bb_layout", nameof(SetCollapsed));
        }
    }
예제 #20
0
        protected override async Task OnAfterRenderAsync(bool firstRender)
        {
            if (firstRender)
            {
                SetOptionsByParameters();
                _ = await JSInterop.InvokeAsync <object>("RunTSQrCode", TSQrCodeContainer, QrOpts);

                StateHasChanged();
            }
        }
        protected override async Task OnAfterRenderAsync(bool firstRender)
        {
            if (firstRender)
            {
                SetOptionsByParameters();
                _ = await JSInterop.InvokeAsync <string>("RunTSTextMask", TSTextMaskContainer, TMskOpts);

                StateHasChanged();
            }
        }
    /// <summary>
    /// OnAfterRender 方法
    /// </summary>
    /// <param name="firstRender"></param>
    protected override async Task OnAfterRenderAsync(bool firstRender)
    {
        await base.OnAfterRenderAsync(firstRender);

        if (firstRender && Message != null)
        {
            _interop = new JSInterop <Message>(JSRuntime);
            await _interop.InvokeVoidAsync(Message, MessageItemElement, "bb_message", nameof(Message.Clear));
        }
    }
예제 #23
0
        public AntDesignTestBase()
        {
            Services.AddAntDesign();

            //Needed for Tests using Overlay
            Services.AddScoped <AntDesign.JsInterop.DomEventService>(sp => new TestDomEventService(Context.JSInterop.JSRuntime));
            JSInterop.SetupVoid(JSInteropConstants.OverlayComponentHelper.DeleteOverlayFromContainer, _ => true);

            CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.GetCultureInfo("en-US");
        }
예제 #24
0
        /// <summary>
        /// OnAfterRenderAsync
        /// </summary>
        /// <param name="firstRender"></param>
        /// <returns></returns>
        protected override async Task OnAfterRenderAsync(bool firstRender)
        {
            await base.OnAfterRenderAsync(firstRender);

            if (firstRender)
            {
                Interop = new JSInterop <Test1>(JSRuntime);
                await Interop.Invoke(this, TableElement, "table_test", nameof(Update));
            }
        }
        public void AddOnceEmpty()
        {
            _ = Services.AddScriptInjection();
            JSInterop.Setup <bool>("window.hasOwnProperty", (_) => true).SetResult(true);
            JSInterop.Setup <bool>("Excubo.hasOwnProperty", (_) => true).SetResult(true);
            JSInterop.SetupVoid("Excubo.ScriptInjection.Register", (_) => true);
            IRenderedComponent <AddScript> cut = null;

            NUnit.Framework.Assert.DoesNotThrow(() => cut = RenderComponent <AddScript>());
            cut.MarkupMatches("");
        }
        public void AddOnceValidUriWithDeferEnabled(string uri)
        {
            _ = Services.AddScriptInjection(onload_notification: false);
            JSInterop.Setup <bool>("window.hasOwnProperty", (_) => true).SetResult(true);
            JSInterop.Setup <bool>("Excubo.hasOwnProperty", (_) => true).SetResult(true);
            JSInterop.SetupVoid("Excubo.ScriptInjection.Register", (_) => true);
            IRenderedComponent <AddScript> cut = null;

            NUnit.Framework.Assert.DoesNotThrow(() => cut = RenderComponent <AddScript>((nameof(AddScript.Src), uri), (nameof(AddScript.Defer), true)));
            cut.MarkupMatches($@"<script src=""{uri}"" defer type=""text/javascript""></script>");
        }
예제 #27
0
 public CategoryService(
     QueryOptions queryOptions, DropdownList dropdownList,
     ModelValidator modelValidator, IUriHelper uriHelper, JSInterop js,
     DataContextFactory contextFactory) :
     base(queryOptions, modelValidator)
 {
     DropdownList    = dropdownList;
     _uriHelper      = uriHelper;
     _js             = js;
     _contextFactory = contextFactory;
 }
예제 #28
0
    /// <summary>
    /// 重置组件方法
    /// </summary>
    public async Task Reset()
    {
        var option = GetCaptchaOption();

        if (Interop == null)
        {
            Interop = new JSInterop <Captcha>(JSRuntime);
        }

        await Interop.InvokeVoidAsync(this, CaptchaElement, "captcha", nameof(Verify), option);
    }
예제 #29
0
 /// <summary>
 /// Dispose 方法
 /// </summary>
 /// <param name="disposing"></param>
 protected virtual void Dispose(bool disposing)
 {
     if (disposing)
     {
         if (Interop != null)
         {
             Interop.Dispose();
             Interop = null;
         }
     }
 }
        public void AddOnceValidUriWithAsyncAndDeferEnabled(string uri)
        {
            _ = Services.AddScriptInjection();
            JSInterop.Setup <bool>("window.hasOwnProperty", (_) => true).SetResult(true);
            JSInterop.Setup <bool>("Excubo.hasOwnProperty", (_) => true).SetResult(true);
            JSInterop.SetupVoid("Excubo.ScriptInjection.Register", (_) => true);
            IRenderedComponent <AddScript> cut = null;

            NUnit.Framework.Assert.DoesNotThrow(() => cut = RenderComponent <AddScript>((nameof(AddScript.Src), uri), (nameof(AddScript.Async), true), (nameof(AddScript.Defer), true)));
            cut.MarkupMatches($@"<script type=""text/javascript"" src=""_content/Excubo.Blazor.ScriptInjection/bootstrap.min.js""></script><script src=""{uri}"" async defer type=""text/javascript"" onload=""window.Excubo.ScriptInjection.Notify('{uri}')""></script>");
        }