//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
// AFXUI auxiliary module for Blazor-application (WASM) | Author: Sergei Y.Kitáev
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
using System;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;

using CommonHelpers.WASM;

namespace AFXUI {

//**************************************************************************************************
partial class ULayoutComponentBase {
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

public int Do( int exclusive, Action body,
               [CallerMemberName] string? methodNameOrSignature=null ) =>
   UCircuit.Do( this, exclusive, body, methodNameOrSignature );

//--------------------------------------------------------------------------------------------------

public Task<int> Do_A( int exclusive, Func<Task> bodyA,
                       [CallerMemberName] string? methodNameOrSignature=null ) =>
   UCircuit.Do_A( this, exclusive, bodyA, methodNameOrSignature );
public Task<int> Do_A( int exclusive, Func<bool>? preliminary, Func<Task> bodyA,
                       [CallerMemberName] string? methodNameOrSignature=null ) =>
   UCircuit.Do_A( this, exclusive, preliminary, bodyA, methodNameOrSignature );

//==================================================================================================

public int Do( int exclusive, UCircuitExtraParams extraParams, Action body,
               [CallerMemberName] string? methodNameOrSignature=null ) =>
   UCircuit.Do( this, exclusive, extraParams, body, methodNameOrSignature );

//--------------------------------------------------------------------------------------------------

public Task<int> Do_A( int exclusive, UCircuitExtraParams extraParams, Func<Task> bodyA,
                       [CallerMemberName] string? methodNameOrSignature=null ) =>
   UCircuit.Do_A( this, exclusive, extraParams, bodyA, methodNameOrSignature );
public Task<int> Do_A( int exclusive, UCircuitExtraParams extraParams,
                       Func<bool>? preliminary, Func<Task> bodyA,
                       [CallerMemberName] string? methodNameOrSignature=null ) =>
   UCircuit.Do_A( this, exclusive, extraParams, preliminary, bodyA, methodNameOrSignature );

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
} // ULayoutComponentBase
//**************************************************************************************************

} // AFXUI
