Compare commits

..

No commits in common. "a63bd4e5edec2e40f70fceebc700be4e3ac13def" and "38d5bd01499f182bf5612a032d61c6de16619eb6" have entirely different histories.

16 changed files with 167 additions and 67 deletions

3
.gitmodules vendored
View File

@ -1,3 +0,0 @@
[submodule "dependencies/Connected"]
path = dependencies/Connected
url = https://git.tompit.com/Connected/Connected.git

View File

@ -9,10 +9,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Components.Showca
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Components.Showcase.Runner", "src\Connected.Components.Showcase.Runner\Connected.Components.Showcase.Runner.csproj", "{347B526C-39A0-43CE-B0F9-79E61B4897C6}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dependencies", "Dependencies", "{BCBA8E3E-D4C0-45A5-8780-FDED0B4C7A47}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Client", "dependencies\Connected\src\Connected.Client\Connected.Client.csproj", "{2118ED53-21AC-4D53-8B02-52980E5C715F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -31,17 +27,10 @@ Global
{347B526C-39A0-43CE-B0F9-79E61B4897C6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{347B526C-39A0-43CE-B0F9-79E61B4897C6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{347B526C-39A0-43CE-B0F9-79E61B4897C6}.Release|Any CPU.Build.0 = Release|Any CPU
{2118ED53-21AC-4D53-8B02-52980E5C715F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2118ED53-21AC-4D53-8B02-52980E5C715F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2118ED53-21AC-4D53-8B02-52980E5C715F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2118ED53-21AC-4D53-8B02-52980E5C715F}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{2118ED53-21AC-4D53-8B02-52980E5C715F} = {BCBA8E3E-D4C0-45A5-8780-FDED0B4C7A47}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {CBDD97EC-4855-4005-97A7-29FE298FB057}
EndGlobalSection

@ -1 +0,0 @@
Subproject commit cc259dfc18c4ad6989898fa813e281b9249c3bd3

View File

@ -10,6 +10,8 @@
</packageRestore>
<packageSources>
<add key="NuGet official package source" value="https://api.nuget.org/v3/index.json" />
<add key="LocalNugetServer" value="%LOCAL_NUGET_SERVER%" />
<add key="Local file repository" value="%LOCAL_NUGET%" />
</packageSources>
<disabledPackageSources />
</configuration>

View File

@ -8,20 +8,56 @@
<p>ValueText: @inputValueText</p>
<p>SimpleSelectValue: @SelectedItemValue</p>
<TextInput
<InputNumber
Clearable="false"
DisableMouseWheel="false"
Disabled="false"
Readonly="false"
Placeholder="Double"
Label="Double"
Required="true"
Step="0.000516"
DecimalPlaces=5
Class="m-2"
@bind-Value="@inputValueDouble">
</InputNumber>
<InputNumber
Clearable="true"
DisableMouseWheel="false"
Disabled="false"
Readonly="false"
Placeholder="Double"
Label="Integer"
Required="true"
Step="0.001"
DecimalPlaces="2"
Class="m-4"
@bind-Value="@inputValueInt">
</InputNumber>
<InputText
Label="String"
Required="true"
ErrorText="@errorText"
@bind-Value="@inputValueText">
</TextInput>
</InputText>
<TextInput
<InputText
Label="Password"
IsPassword="true"
Required="true"
ErrorText="@errorText"
@bind-Value="@inputValueText">
</TextInput>
</InputText>
<SimpleSelect
Label="Simple Select"
ValueType="string"
@bind-Value="@SelectedItemValue"
Items="@SelectFieldItems">
</SimpleSelect>
@code {

View File

@ -20,6 +20,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="7.0.*-*" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="7.0.*-*" PrivateAssets="all" />
<PackageReference Include="Connected.Client" Version="1.0.*-*" />
<PackageReference Include="Nerdbank.GitVersioning" Version="3.5.119" PrivateAssets="all" Condition="!Exists('packages.config')" />
</ItemGroup>
<ItemGroup>
@ -38,9 +39,16 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\dependencies\Connected\src\Connected.Client\Connected.Client.csproj" />
<ProjectReference Include="..\connected.components\Connected.Components.csproj" />
</ItemGroup>
<Target Name="CopyPackages" AfterTargets="Pack">
<Copy SourceFiles="$(OutputPath)..\$(PackageId).$(PackageVersion).nupkg" DestinationFolder="$([System.Environment]::GetEnvironmentVariable('LOCAL_NUGET'))" />
<Copy SourceFiles="$(OutputPath)..\$(PackageId).$(PackageVersion).snupkg" DestinationFolder="$([System.Environment]::GetEnvironmentVariable('LOCAL_NUGET'))" />
</Target>
<Target Name="UploadLocalPackages" AfterTargets="CopyPackages">
<Exec Command="dotnet nuget push -s LocalNugetServer $(OutputPath)..\$(PackageId).$(PackageVersion).nupkg --api-key $([System.Environment]::GetEnvironmentVariable('LOCAL_NUGET_SERVER_TOKEN'))" IgnoreExitCode="true"></Exec>
<Exec Command="dotnet nuget push -s LocalNugetServer $(OutputPath)..\$(PackageId).$(PackageVersion).snupkg --api-key $([System.Environment]::GetEnvironmentVariable('LOCAL_NUGET_SERVER_TOKEN'))" IgnoreExitCode="true"></Exec>
</Target>
</Project>

View File

@ -96,10 +96,6 @@ public partial class Button
[Parameter]
public string Style { get; set; } = string.Empty;
#endregion
#region Events
/// <summary>
/// Button click event.
/// Options: any MouseEventCallback event
@ -107,9 +103,13 @@ public partial class Button
[Parameter]
public EventCallback<MouseEventArgs> OnClick { get; set; }
#endregion
#region Events
protected async Task Click(MouseEventArgs e)
{
await OnClick.InvokeAsync(e);
}
#endregion
@ -146,4 +146,5 @@ public partial class Button
#endregion
}

View File

@ -1,6 +1,4 @@

<div style="width:@WidthString; height:@HeightString; overflow:hidden">
<svg viewBox="0 0 24 24" style="fill:@Color;" class="@GlyphClassList" @onclick="@OnClick">
<br/>
<svg height="@Height" width="@Width" style="fill:@Color;" class="@GlyphClassList" @onclick="@OnClick">
@((MarkupString)SVG)
</svg>
</div>
</svg>

View File

@ -13,27 +13,11 @@ namespace Connected.Components
public string Color { get; set; } = "#000000";
[Parameter]
public int Width { get; set; } = 24;
public int Width { get; set; } = 25;
[Parameter]
public int Height { get; set; } = 24;
public int Height { get; set; } = 25;
private string WidthString
{
get
{
return Width.ToString() + "px";
}
}
private string HeightString
{
get
{
return Width.ToString() + "px";
}
}
[Parameter]
[Parameter]
public string Class { get; set; } = string.Empty;
private string GlyphClassList
@ -48,7 +32,7 @@ namespace Connected.Components
[Parameter]
/// <summary>
/// Glyph click event.
/// Button click event.
/// </summary>
public EventCallback<MouseEventArgs> Click { get; set; }
protected async Task OnClick(MouseEventArgs e)

View File

@ -11,12 +11,10 @@
disabled="@Disabled"
readonly="@Readonly"
@onmousewheel="@OnMouseWheel"
@onwheel="@OnMouseWheel"
@oninput=@ChangeValueAsync
@bind-value="@Value"
@bind-value="@_value"
@attributes="@InputAttributes">
</input>
<span class="highlight"></span>
<span class="bar"></span>

View File

@ -3,10 +3,9 @@ using Connected.Utilities;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Web;
using System.Numerics;
using static Connected.Colors;
namespace Connected.Components;
public partial class NumberInput<NumberType>:InputBase where NumberType : INumber<NumberType>
public partial class InputNumber<NumberType>:InputBase where NumberType : INumber<NumberType>
{
private double _step =1;
[Parameter]
@ -41,7 +40,7 @@ public partial class NumberInput<NumberType>:InputBase where NumberType : INumbe
}
protected async Task OnMouseWheel(WheelEventArgs obj)
{
if (DisableMouseWheel==false)
if (!DisableMouseWheel)
{
if (!obj.ShiftKey || Disabled || Readonly)
return;
@ -56,12 +55,19 @@ public partial class NumberInput<NumberType>:InputBase where NumberType : INumbe
}
}
private NumberType _value;
[Parameter]
public NumberType Value
{
get;
set;
get
{
return _value;
}
set
{
_value = AdjustDecimalPlaces(value);
}
}
[Parameter]
@ -75,13 +81,13 @@ public partial class NumberInput<NumberType>:InputBase where NumberType : INumbe
{
if (args.Value is not null)
{
NumberType value = (NumberType)Convert.ChangeType(args.Value, typeof(NumberType));
if (value.ToString().Length <= 0)
{
NumberType value = (NumberType)Convert.ChangeType(args.Value, typeof(NumberType));
if (value.ToString().Length <= 0)
{
value = (NumberType)Convert.ChangeType(0, typeof(NumberType));
}
await ValueChanged.InvokeAsync((NumberType)Convert.ChangeType(AdjustDecimalPlaces(value), typeof(NumberType)));
value = (NumberType)Convert.ChangeType(0, typeof(NumberType));
}
await ValueChanged.InvokeAsync((NumberType)Convert.ChangeType(AdjustDecimalPlaces(value), typeof(NumberType)));
}
}

View File

@ -41,7 +41,7 @@
}
<span class="input-glyph-wraper">
<span class="input-glyph">
@if (Clearable && !string.IsNullOrEmpty(Value))
@if (Clearable && Value.ToString().Length>0)
{
<span class="input-glyph button" @onclick="Clear">
<Glyph SVG="@Icons.Material.Rounded.Dangerous" />

View File

@ -2,7 +2,7 @@
using Microsoft.AspNetCore.Components;
namespace Connected.Components;
public partial class TextInput: InputBase
public partial class InputText: InputBase
{
[Parameter]
@ -31,7 +31,7 @@ public partial class TextInput: InputBase
[Parameter]
public string Value { get; set; } = string.Empty;
public string Value { get; set; }
private string inputType
{
@ -42,6 +42,7 @@ public partial class TextInput: InputBase
}
}
[Parameter]
public EventCallback<string> ValueChanged { get; set; }

View File

@ -0,0 +1,18 @@
@using Connected.Models;
@typeparam ValueType
@inherits InputBase;
<div class="@InputFieldClassList">
<select @bind="@Value" @oninput="@ChangeValueAsync">
@if (EnableSearch)
{
<InputText @bind-Value="@SearchText" ValueChanged=""></InputText>
}
@foreach(SelectItem<ValueType> item in Items)
{
<option value="@item.Value">@item.DisplayedText</option>
}
</select>
</div>

View File

@ -0,0 +1,45 @@
using Connected.Models;
using Microsoft.AspNetCore.Components;
using System;
namespace Connected.Components;
public partial class SimpleSelect<ValueType> : InputBase
{
[Parameter]
public ValueType Value { get; set; }
[Parameter]
public IEnumerable<SelectItem<ValueType>> Items { get; set; }
public IEnumerable<SelectItem<ValueType>> OriginalItems { get; set; }
[Parameter]
public bool EnableSearch { get; set; } = true;
public string SearchText { get; set; }
public void FilterItems()
{
Items= Items.Where(item => item.Value.ToString().ToLower().Contains(SearchText.ToLower()) || item.DisplayedText.ToString().ToLower().Contains(SearchText.ToLower()));
}
[Parameter]
public EventCallback<ValueType> ValueChanged { get; set; }
private async Task ChangeValueAsync(ChangeEventArgs args)
{
await ValueChanged.InvokeAsync((ValueType)Convert.ChangeType(args.Value, typeof(ValueType)));
}
protected override async Task OnParametersSetAsync()
{
if (base.InputAttributes is null) base.InputAttributes = new();
if (base.Required)
{
if (base.InputAttributes.ContainsKey("required")) base.InputAttributes.Add("required", true);
}
OriginalItems = Items;
await base.OnInitializedAsync();
}
}

View File

@ -20,6 +20,13 @@
<ItemGroup>
<None Include="compilerconfig.json" />
<None Include="ComponentsN\ToggleButton.razor" />
<None Include="ComponentsN\Button.razor" />
<None Include="ComponentsN\Glyph.razor" />
<None Include="ComponentsN\Link.razor" />
<None Include="ComponentsN\InputDate.razor" />
<None Include="ComponentsN\InputNumber.razor" />
<None Include="ComponentsN\InputText.razor" />
</ItemGroup>
<ItemGroup>
@ -32,6 +39,9 @@
</ItemGroup>
<ItemGroup>
<Folder Include="Interfaces\" />
<Folder Include="Services\" />
<Folder Include="wwwroot\" />
<None Include="..\..\LICENSE">
<Pack>True</Pack>
<PackagePath>\</PackagePath>
@ -76,11 +86,19 @@
<Delete Files="./Styles/Connected.Components.min.css" />
</Target>
<!--Dont Include in build output-->
<ItemGroup>
<Content Remove="compilerconfig.json" />
<Content Remove="excubowebcompiler.json" />
<Content Remove="wwwroot/DoNotRemove.txt" />
<!--macOS hidden file (causes problems with dotnet pack)-->
<Content Remove="**/*/.DS_Store" />
</ItemGroup>
<ItemGroup>
<Watch Include="**/*.scss" />
</ItemGroup>
<ItemGroup>
<Watch Remove="Styles\Connected.Components.scss" />
</ItemGroup>