1 Commits

Author SHA1 Message Date
Annamaria Sassi 3221a94b0b Merge branch 'main' into develop 2026-08-12 11:13:55 +02:00
53 changed files with 547 additions and 1335 deletions
+1 -1
View File
@@ -5,7 +5,7 @@
<WebWindowComplex.TableComp ListPayload="SetupList"
LiveData="CurrData"
BaseUser="User"
baseUser="User"
EC_ActionReq="DoAction"
EC_DoUpdate="ExecRequest"
EC_OnClose="CloseObj">
+1 -1
View File
@@ -72,7 +72,7 @@
<WebWindowComplex.TableComp ListPayload="SetupList"
LiveData="CurrData"
PendReq="DictPendReq"
BaseUser="true"
baseUser="User"
Vocabulary="TradVocabulary"
EC_ActionReq="DoAction"
EC_DoUpdate="ExecRequest"
+1 -1
View File
@@ -10,7 +10,7 @@
<WebWindowComplex.TableComp ListPayload="SetupList"
LiveData="CurrData"
BaseUser="User"
baseUser="User"
EC_ActionReq="DoAction"
EC_DoUpdate="ExecRequest"
EC_OnClose="CloseObj">
+6 -1
View File
@@ -1,4 +1,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WebWindowComplex
{
public class AreaProfiles
+4 -4
View File
@@ -2,13 +2,13 @@
<div class="card-header bg-light bg-opacity-25">
<div class="d-flex justify-content-between align-items-center mt-2">
<div class="col-2 d-flex justify-content-between">
<h5>@Traduci("ConfWind_AreaFrame")</h5>
<h5>Area frame</h5>
</div>
@if (SashGroupList.Count == 0 && SplitList.Count == 0)
{
<div class="col d-flex justify-content-between">
<div class="input-group mb-2 justify-content-center">
<button class="btn btn-outline-secondary btn-sm" @onclick="RaiseAddSash">@Traduci("ConfWind_AggSash")</button>
<button class="btn btn-outline-secondary btn-sm" @onclick="RaiseAddSash">Aggiungi sash</button>
</div>
</div>
}
@@ -16,7 +16,7 @@
{
<div class="col d-flex justify-content-between">
<div class="input-group mb-2 justify-content-center">
<button class="btn btn-outline-secondary btn-sm" @onclick="RaiseAddSplit">@Traduci("ConfWind_AggSplit")</button>
<button class="btn btn-outline-secondary btn-sm" @onclick="RaiseAddSplit">Aggiungi split</button>
</div>
</div>
}
@@ -24,7 +24,7 @@
{
<div class="col d-flex justify-content-between">
<div class="input-group mb-2 justify-content-center">
<button class="btn btn-outline-secondary btn-sm" @onclick="RaiseAddInglesina">@Traduci("ConfWind_AggInglesina")</button>
<button class="btn btn-outline-secondary btn-sm" @onclick="RaiseAddInglesina">Aggiungi inglesina</button>
</div>
</div>
}
-21
View File
@@ -25,12 +25,6 @@ namespace WebWindowComplex.Compo
[CascadingParameter(Name = "SplitList")]
public List<Split> SplitList { get; set; } = null!;
/// <summary>
/// Evento per richiesta traduzioni
/// </summary>
[CascadingParameter(Name = "Vocabulary")]
public Dictionary<string, string> Vocabulary { get; set; } = null!;
[Parameter]
public EventCallback<bool> EC_AddSash { get; set; }
@@ -71,21 +65,6 @@ namespace WebWindowComplex.Compo
return EC_AddInglesina.InvokeAsync(true);
}
/// <summary>
/// Metodo per traduzione in lingua corrente
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
private string Traduci(string lemma)
{
string ans = lemma;
if (Vocabulary != null && Vocabulary.ContainsKey(lemma))
{
ans = Vocabulary.GetValueOrDefault(lemma) ?? "";
}
return ans;
}
#endregion Private Methods
}
}
+72 -160
View File
@@ -46,13 +46,8 @@
<div class="input-group mb-2">
@if (User)
{
<button class="btn btn-outline-secondary d-flex align-items-center gap-2"
type="button"
style="background-color: @(isOpenDropdown ? "#f8f9fa" : "#ffffff"); color: @(isOpenDropdown ? "#333333" : "");" >
<span class="d-flex align-items-center">
<img class="img-fluid" src="@GetImageOpeningPath(CurrOpening)" title="@(CurrOpening)" width="50" />
</span>
</button>
<span class="input-group-text">Tipology</span>
<input type="text" readonly class="form-control" value="@(CurrSashDim.OpeningTypeList.ElementAt(OpeningTypeIndex - 1))">
}
else
{
@@ -90,73 +85,40 @@
<div class="col-lg-5 col-md-12 my-2">
<div class="input-group mb-2">
<span class="input-group-text">Dimension</span>
@if(User)
{
<input type="number" readonly class="form-control" value="@Dimension">
@switch (CurrSashDim.SelMeasureType.ToString())
<input type="number" class="form-control" @bind="@Dimension">
@* <InputDouble CssClass="form-control form-control text-end" Decimals="@CssDecimals()" Step="@CssStepNumber()" @bind-Value="@Dimension"></InputDouble> *@
<select class="form-select" style="max-width:6rem; background-color:#e9ecef" @bind="@MeasureTypeIndex">
@foreach (var mType in CurrSashDim.MeasureTypeList)
{
case "ABSOLUTE":
<option value=@(mType.Id)>
@switch (mType.Name)
{
<span class="input-group-text">mm</span>
break;
}
case "PROPORTIONAL":
{
<span class="input-group-text">*</span>
break;
}
case "PERCENTAGE":
{
<span class="input-group-text">%</span>
break;
case "Absolute":
{
<span class="input-group-text">mm</span>
break;
}
case "Proportional":
{
<span class="input-group-text">*</span>
break;
}
case "Percentage":
{
<span class="input-group-text">%</span>
break;
}
}
</option>
}
}
else
{
<input type="number" class="form-control" @bind="@Dimension">
<select class="form-select" style="max-width:6rem; background-color:#e9ecef" @bind="@MeasureTypeIndex">
@foreach (var mType in CurrSashDim.MeasureTypeList)
{
<option value=@(mType.Id)>
@switch (mType.Name)
{
case "Absolute":
{
<span class="input-group-text">mm</span>
break;
}
case "Proportional":
{
<span class="input-group-text">*</span>
break;
}
case "Percentage":
{
<span class="input-group-text">%</span>
break;
}
}
</option>
}
</select>
}
</select>
</div>
</div>
<div class="col-lg-2 col-md-12 my-2">
<div class="d-flex justify-content-start fs-5 mb-2">
@if (User)
{
<div class="px-1">
<input class="form-check-input ml-auto" disabled="disabled" type="checkbox" name="Handle" checked="@CurrSashDim.bHasHandle">
</div>
}
else
{
<div class="px-1">
<input class="form-check-input ml-auto" type="checkbox" name="Handle" checked="@CurrSashDim.bHasHandle" @onclick="() => ChangeHandle()">
</div>
}
<div class="px-1">
<input class="form-check-input ml-auto" type="checkbox" name="Handle" checked="@CurrSashDim.bHasHandle" @onclick="() => ChangeHandle()">
</div>
<div class="px-2">
<label class="form-check-label fs-6 text-dark">Handle</label>
</div>
@@ -195,13 +157,8 @@
<div class="input-group mb-2">
@if (User)
{
<button class="btn btn-outline-secondary d-flex align-items-center gap-2"
type="button"
style="background-color: @(isOpenDropdown ? "#f8f9fa" : "#ffffff"); color: @(isOpenDropdown ? "#333333" : "");">
<span class="d-flex align-items-center">
<img class="img-fluid" src="@GetImageOpeningPath(CurrOpening)" title="@(CurrOpening)" width="50" />
</span>
</button>
<span class="input-group-text">Tipology</span>
<input type="text" readonly class="form-control" value="@(CurrSashDim.OpeningTypeList.ElementAt(OpeningTypeIndex - 1))">
}
else
{
@@ -237,73 +194,40 @@
<div class="col-lg-5 col-md-12 my-2">
<div class="input-group mb-2">
<span class="input-group-text">Dimension</span>
@if(User)
{
<input type="number" readonly class="form-control" value="@Dimension">
@switch (CurrSashDim.SelMeasureType.ToString())
<input type="number" class="form-control" @bind="@Dimension">
@* <InputDouble CssClass="form-control form-control text-end" Decimals="@CssDecimals()" Step="@CssStepNumber()" @bind-Value="@Dimension"></InputDouble> *@
<select class="form-select" style="max-width:6rem; background-color:#e9ecef" @bind="@MeasureTypeIndex">
@foreach (var mType in CurrSashDim.MeasureTypeList)
{
case "ABSOLUTE":
<option value=@(mType.Id)>
@switch (mType.Name)
{
<span class="input-group-text">mm</span>
break;
}
case "PROPORTIONAL":
{
<span class="input-group-text">*</span>
break;
}
case "PERCENTAGE":
{
<span class="input-group-text">%</span>
break;
case "Absolute":
{
<span class="input-group-text">mm</span>
break;
}
case "Proportional":
{
<span class="input-group-text">*</span>
break;
}
case "Percentage":
{
<span class="input-group-text">%</span>
break;
}
}
</option>
}
}
else
{
<input type="number" class="form-control" @bind="@Dimension">
<select class="form-select" style="max-width:6rem; background-color:#e9ecef" @bind="@MeasureTypeIndex">
@foreach (var mType in CurrSashDim.MeasureTypeList)
{
<option value=@(mType.Id)>
@switch (mType.Name)
{
case "Absolute":
{
<span class="input-group-text">mm</span>
break;
}
case "Proportional":
{
<span class="input-group-text">*</span>
break;
}
case "Percentage":
{
<span class="input-group-text">%</span>
break;
}
}
</option>
}
</select>
}
</select>
</div>
</div>
<div class="col-lg-2 col-md-12 my-2">
<div class="d-flex justify-content-start fs-5 mb-2">
@if(User)
{
<div class="px-1">
<input class="form-check-input ml-auto" disabled="disabled" type="checkbox" name="Handle" checked="@CurrSashDim.bHasHandle">
</div>
}
else
{
<div class="px-1">
<input class="form-check-input ml-auto" type="checkbox" name="Handle" checked="@CurrSashDim.bHasHandle" @onclick="() => ChangeHandle()">
</div>
}
<div class="px-1">
<input class="form-check-input ml-auto" type="checkbox" name="Handle" checked="@CurrSashDim.bHasHandle" @onclick="() => ChangeHandle()">
</div>
<div class="px-2">
<label class="form-check-label fs-6 text-dark">Handle</label>
</div>
@@ -316,21 +240,7 @@
<div class="col-md-4 d-flex justify-content-start align-items-center">
<h6>Joints</h6>
</div>
@if (User)
{
<div class="col-md-8 d-flex justify-content-end align-items-center">
<button type="button" class="btn-icone @ButtonJointCss(Json.WindowConst.Joints.ANGLED) mx-1 px-1 py-1">
<img class="img-fluid" src="@GetImageJointShapePath("Angled")" title="Angled" width="40" />
</button>
<button type="button" class="btn-icone @ButtonJointCss(Json.WindowConst.Joints.FULL_H) mx-1 px-1 py-1">
<img class="img-fluid" src="@GetImageJointShapePath("Full H")" title="Angled" width="40" />
</button>
<button type="button" class="btn-icone @ButtonJointCss(Json.WindowConst.Joints.FULL_V) mx-1 px-1 py-1">
<img class="img-fluid" src="@GetImageJointShapePath("Full V")" title="Angled" width="40" />
</button>
</div>
}
else
@if (!User)
{
<div class="col-md-8 d-flex justify-content-end align-items-center">
<button type="button" class="btn-icone @ButtonJointCss(Json.WindowConst.Joints.ANGLED) mx-1 px-1 py-1" @onclick="() => ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.ANGLED)">
@@ -369,21 +279,23 @@
</div>
</div>
<div class="row g-3">
@foreach (var element in CurrSashDim.ElementDimensionList)
{
if ((CurrSashDim.ElementDimensionList.Count == 5 && element.nIndex == 4) ||
(CurrSashDim.ElementDimensionList.Count == 6 &&
(element.nIndex == 4 || element.nIndex == 5)))
<div class="input-group mb-2">
@foreach (var element in CurrSashDim.ElementDimensionList)
{
continue;
@if (CurrSashDim.ElementDimensionList.Count <= 4)
{
<div class="col-6">
<EditElement CurrRec="element" EC_Update="UpdateElement"></EditElement>
</div>
}
else
{
<div class="col-4">
<EditElement CurrRec="element" EC_Update="UpdateElement"></EditElement>
</div>
}
}
else
{
<div class="col-6">
<EditElement CurrRec="element" EC_Update="UpdateElement"></EditElement>
</div>
}
}
</div>
</div>
</div>
</div>
+54 -12
View File
@@ -86,6 +86,19 @@ namespace WebWindowComplex.Compo
#endregion Public Properties
#region Protected Methods
//protected override void OnParametersSet()
//{
// base.OnParametersSet();
//}
//protected override void OnInitialized()
//{
// CurrOpening = CurrSashDim.OpeningTypeList.FirstOrDefault(x => x.Id == CurrSashDim.SelOpeningTypeIndex).Name;
//}
#endregion Protected Methods
#region Private Fields
private enum ModeView
@@ -99,6 +112,8 @@ namespace WebWindowComplex.Compo
private bool isOpen = false;
private ModeView mode { get; set; } = ModeView.View;
private bool isOpenDropdown = false;
//private string currOpening = "";
@@ -133,12 +148,45 @@ namespace WebWindowComplex.Compo
}
}
///// <summary>
///// Metodo per avere lo step da usare nella form-input
///// </summary>
///// <returns></returns>
//public double CssStepNumber()
//{
// switch (CurrSashDim.MeasureType)
// {
// case Json.WindowConst.MeasureTypes.ABSOLUTE:
// {
// return 0.5;
// }
// case Json.WindowConst.MeasureTypes.PROPORTIONAL:
// {
// return 1;
// }
// case Json.WindowConst.MeasureTypes.PERCENTAGE:
// {
// return 0.5;
// }
// }
// return 0;
//}
/// <summary>
/// Selezione tipo di apertura anta
/// </summary>
private int OpeningTypeIndex
{
get => CurrSashDim.SelOpeningTypeIndex;
//set
//{
// if (CurrSashDim.SelOpeningTypeIndex != value)
// {
// _ = EC_ReqResetDict.InvokeAsync(new DataUpdateRes { req = LayoutConst.DataAction.ResetHwOpt });
// CurrSashDim.SelOpeningTypeIndex = value;
// _ = EC_UpdateSashDim.InvokeAsync(CurrSashDim);
// }
//}
}
/// <summary>
@@ -274,13 +322,6 @@ namespace WebWindowComplex.Compo
if (updRec != null)
{
currRec = updRec;
if (CurrSashDim.ElementDimensionList.Count > 4 && updRec.nIndex == 3)
{
for (int i = 3; i <= CurrSashDim.ElementDimensionList.Count - 2; i++)
{
CurrSashDim.ElementDimensionList.ElementAt(i).SetDimension(currRec.dDimension);
}
}
await EC_UpdateSashDim.InvokeAsync(CurrSashDim);
}
}
@@ -437,6 +478,11 @@ namespace WebWindowComplex.Compo
_ = EC_EditView.InvokeAsync(args);
}
private void ChangeAll()
{
ForceChangeAll = !ForceChangeAll;
}
private async Task SelOpeningSash(int index, string name)
{
if (CurrSashDim.SelOpeningTypeIndex != index)
@@ -466,17 +512,13 @@ namespace WebWindowComplex.Compo
isOpenDropdown = !isOpenDropdown;
}
/// <summary>
/// Chiude il dropdown quando l'utente clicca all'esterno dell'elemento
/// </summary>
/// <returns></returns>
// Chiude il dropdown quando l'utente clicca all'esterno dell'elemento
private async Task HandleFocusOut()
{
// Un piccolo delay assicura che l'evento @onclick dell'item venga eseguito prima di chiudere il menu
await Task.Delay(150);
isOpen = false;
}
#endregion Private Methods
}
+9 -35
View File
@@ -16,21 +16,9 @@
<div class="col-md-12 col-lg-12">
@if (User)
{
<div class="row">
<div class="d-flex justify-content-start align-items-center" style="min-height: 2.5rem;">
<h6 class="fw-bold">@Traduci("ConfWind_Shape")</h6>
</div>
@* <input type="text" readonly class="form-control" value="@(CurrFrameWindow.ShapeList.ElementAt(SelShapeIndex - 1))"> *@
<div class="row">
@foreach (var i in CurrFrameWindow.ShapeList)
{
<div class="col-auto">
<button type="button" class="btn-iconeOff @ButtonShapeCss(i.Id) mx-1 px-1 py-1">
<img class="img-fluid" src="@GetImageFrameShapePath(i.Name)" title="@(i.Name)" width="40" />
</button>
</div>
}
</div>
<div class="input-group mt-2">
<span class="input-group-text">Shape</span>
<input type="text" readonly class="form-control" value="@(CurrFrameWindow.ShapeList.ElementAt(SelShapeIndex - 1))">
</div>
}
else
@@ -121,21 +109,7 @@
<div class="col-md-4 d-flex justify-content-start align-items-center">
<h6 class="fw-bold">@Traduci("ConfWind_Joints")</h6>
</div>
@if (User)
{
<div class="col-md-8 d-flex justify-content-end align-items-center">
<button type="button" class="btn-iconeOff @ButtonJointCss(Json.WindowConst.Joints.ANGLED) mx-1 px-1 py-1">
<img class="img-fluid" src="@GetImageJointShapePath("Angled")" title="Angled" width="40" />
</button>
<button type="button" class="btn-iconeOff @ButtonJointCss(Json.WindowConst.Joints.FULL_H) mx-1 px-1 py-1">
<img class="img-fluid" src="@GetImageJointShapePath("Full H")" title="Full H" width="40" />
</button>
<button type="button" class="btn-iconeOff @ButtonJointCss(Json.WindowConst.Joints.FULL_V) mx-1 px-1 py-1">
<img class="img-fluid" src="@GetImageJointShapePath("Full V")" title="Full V" width="40" />
</button>
</div>
}
else
@if (!User)
{
<div class="col-md-8 d-flex justify-content-end align-items-center">
<button type="button" class="btn-icone @ButtonJointCss(Json.WindowConst.Joints.ANGLED) mx-1 px-1 py-1" @onclick="() => ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.ANGLED)">
@@ -176,15 +150,15 @@
<div class="row g-3">
@foreach (var element in CurrFrameWindow.ElementDimensionList)
{
if ((CurrFrameWindow.ElementDimensionList.Count == 5 && element.nIndex == 4) ||
(CurrFrameWindow.ElementDimensionList.Count == 6 &&
(element.nIndex == 4 || element.nIndex == 5)))
@if (CurrFrameWindow.ElementDimensionList.Count <= 4)
{
continue;
<div class="col-6">
<EditElement CurrRec="element" EC_Update="UpdateElement"></EditElement>
</div>
}
else
{
<div class="col-6">
<div class="col-4">
<EditElement CurrRec="element" EC_Update="UpdateElement"></EditElement>
</div>
}
+43 -26
View File
@@ -69,15 +69,13 @@ namespace WebWindowComplex.Compo
public bool User { get; set; } = false!;
/// <summary>
/// Evento per richiesta traduzioni
/// Evento per richiesta profili degli Element
/// </summary>
[CascadingParameter(Name = "Vocabulary")]
public Dictionary<string, string> Vocabulary { get; set; } = null!;
[Parameter]
public Dictionary<string, string> Vocabulary { get; set; }
#endregion Public Properties
#region Protected Properties
protected override async Task OnInitializedAsync()
{
if (Vocabulary == null || Vocabulary.Count == 0)
@@ -87,24 +85,45 @@ namespace WebWindowComplex.Compo
}
}
#endregion Protected Properties
#region Protected Properties
#region Private Properties
private string GetImageFrameShapePath(string fileName) => $"_content/Egw.Lux.WebWindowComplex/icone/frame/shape/{fileName}.svg";
private string GetImageJointShapePath(string fileName) => $"_content/Egw.Lux.WebWindowComplex/icone/joint/shape/All/{fileName}.svg";
/// <summary>
/// Metodo per selezionare shape
/// </summary>
private int SelShapeIndex
protected int SelShapeIndex
{
get => CurrFrameWindow.SelShapeIndex;
//set
//{
// if (CurrFrameWindow.SelShapeIndex != value)
// {
// CurrFrameWindow.SelShapeIndex = value;
// // richiesta reset dict shape, profili element e hw option
// _ = EC_ReqResetDict.InvokeAsync(new DataUpdateRes { req = LayoutConst.DataAction.ResetDictShape });
// _ = EC_ReqResetDict.InvokeAsync(new DataUpdateRes { req = LayoutConst.DataAction.ResetDimElem });
// _ = EC_ReqResetDict.InvokeAsync(new DataUpdateRes { req = LayoutConst.DataAction.ResetHwOpt });
// foreach (var s in SashGroupList)
// {
// s.SelHardwareFromId = "000000";
// }
// var args = new DataUpdateFrame()
// {
// currFrame = CurrFrameWindow,
// svgNoHw = true
// };
// _ = EC_ReqElement.InvokeAsync(CurrFrameWindow);
// _ = EC_UpdateFrame.InvokeAsync(args);
// }
//}
}
/// <summary>
/// Metodo per selezionare threshold
/// </summary>
private int SelThreshold
protected int SelThreshold
{
get => CurrFrameWindow.SelThresholdFromType;
set
@@ -134,7 +153,7 @@ namespace WebWindowComplex.Compo
/// <summary>
/// Selezione quantità bottom rail
/// </summary>
private int FrameBottomRailQty
protected int FrameBottomRailQty
{
get => CurrFrameWindow.BottomRailQty;
set
@@ -156,7 +175,7 @@ namespace WebWindowComplex.Compo
}
}
#endregion Private Properties
#endregion Protected Properties
#region Private Methods
@@ -165,7 +184,7 @@ namespace WebWindowComplex.Compo
/// </summary>
/// <param name="newShapeIndex"></param>
/// <returns></returns>
private async Task SelShapeFrame(int newShapeIndex)
protected async Task SelShapeFrame(int newShapeIndex)
{
if (CurrFrameWindow.SelShapeIndex != newShapeIndex)
{
@@ -332,13 +351,6 @@ namespace WebWindowComplex.Compo
if (updRec != null)
{
currRec = updRec;
if (CurrFrameWindow.ElementDimensionList.Count > 4 && updRec.nIndex == 3)
{
for (int i = 3; i <= CurrFrameWindow.ElementDimensionList.Count - 2; i++)
{
CurrFrameWindow.ElementDimensionList.ElementAt(i).SetDimension(currRec.dDimension);
}
}
var args = new DataUpdateFrame()
{
currFrame = CurrFrameWindow,
@@ -367,6 +379,13 @@ namespace WebWindowComplex.Compo
}
}
private void ChangeAll()
{
ForceChangeAll = !ForceChangeAll;
}
private bool ForceChangeAll = false;
private bool SashNotInBottom()
{
bool ans = false;
@@ -412,21 +431,19 @@ namespace WebWindowComplex.Compo
return "col-md-12 col-lg-4";
}
/// <summary>
/// Metodo per traduzione in lingua corrente
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
private string Traduci(string lemma)
{
string ans = lemma;
string ans = "";
if (Vocabulary != null && Vocabulary.ContainsKey(lemma))
{
ans = Vocabulary.GetValueOrDefault(lemma) ?? "";
}
else
{
ans = lemma;
}
return ans;
}
#endregion Private Methods
}
@@ -39,31 +39,3 @@
box-shadow: 0 2px 4px rgba(212, 230, 250, 0.15);
transition: transform 0.05s ease, box-shadow 0.05s ease;
}
/* Stato Normale (Non Attivo) */
.btn-iconeOff {
background-color: #ffffff;
border: 2px solid #d1d5db; /* Bordo grigio tenue di media visibilità */
box-shadow: 0 4px 12px rgba(212, 230, 250, 0.8); /* Ombra azzurra delicata */
font-weight: 600;
padding: 10px 22px;
border-radius: 8px;
cursor: pointer;
transition: transform 0.2s ease, background-color 0.2s ease, border 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
}
/* Stato Attivo (Selezionato) */
.btn-iconeOff.active {
background-color: #ffffff; /* Sfondo bianco */
border: 3px solid #a6ccf5; /* Bordo azzurro */
box-shadow: 0 2px 8px rgba(2, 132, 199, 0.2);
}
/* Effetto Pressione al Click (Mouse premuto) */
.btn-iconeOff:active,
.btn-iconeOff.active:active {
transform: scale(0.96) translateY(2px);
box-shadow: 0 2px 4px rgba(212, 230, 250, 0.15);
transition: transform 0.05s ease, box-shadow 0.05s ease;
}
+15 -13
View File
@@ -23,28 +23,30 @@
<div class="card-body py-2">
<div class="row pb-3">
<div class="col-md-12 col-lg-6">
<div class="d-flex justify-content-start align-items-center" style="min-height: 2.5rem;">
<h6 class="fw-bold">Tipology</h6>
</div>
@if (User)
{
<div class="row">
@foreach (var i in CurrSashGroup.OrientationSashTypeList)
{
<div class="col-auto">
<button type="button"
class="btn-iconeOff @ButtonTipologyCss(i.Id) mx-1 px-1 py-1">
<img class="img-fluid" src="@GetImageTipologyPath(i.Name)" title="@(i.Name)" width="40" />
</button>
</div>
}
<div class="input-group mb-2">
<span class="input-group-text">Tipology</span>
<input type="text" readonly class="form-control" value="@(CurrSashGroup.OrientationSashTypeList.FirstOrDefault(x => x.Id == OrientationSashTypeIndex).Name)">
</div>
}
else
{
<div class="d-flex justify-content-start align-items-center" style="min-height: 2.5rem;">
<h6 class="fw-bold">Tipology</h6>
</div>
<div class="row">
@foreach (var i in CurrSashGroup.OrientationSashTypeList)
{
@* <div class="col-auto">
<button type="button" @onclick="() => SelTipologySash(i.Id)"
class="btn mx-1 px-1 py-1"
style="border-width: @(OrientationSashTypeIndex == i.Id ? 4 : 1)px;
border-style: solid;
border-color: @(OrientationSashTypeIndex == i.Id ? "#0d6efd" : "#dee2e6");">
<img class="img-fluid" src="@GetImageTipologyPath(i.Name)" title="@(i.Name)" width="40" />
</button>
</div> *@
<div class="col-auto">
<button type="button"
class="btn-icone @ButtonTipologyCss(i.Id) mx-1 px-1 py-1" @onclick="() => SelTipologySash(i.Id)">
+93 -2
View File
@@ -166,6 +166,18 @@ namespace WebWindowComplex.Compo
private int OrientationSashTypeIndex
{
get => CurrSashGroup.SelOrientationSashTypeIndex;
//set
//{
// if (CurrSashGroup.SelOrientationSashTypeIndex != value)
// {
// CurrSashGroup.SelOrientationSashTypeIndex = value;
// var args = new DataUpdateSash()
// {
// currSash = CurrSashGroup
// };
// _ = EC_UpdateSashGroup.InvokeAsync(args);
// }
//}
}
/// <summary>
@@ -196,7 +208,7 @@ namespace WebWindowComplex.Compo
/// </summary>
private string SelHwType
{
get => CurrSashGroup.SelHardware.Description;
get => CurrSashGroup.SelHardwareFromId;
set
{
if (CurrSashGroup.SelHardwareFromId != value)
@@ -330,6 +342,62 @@ namespace WebWindowComplex.Compo
await EC_ReqClose.InvokeAsync(true);
}
/// <summary>
/// Metodo per cambiare dimensione solo luce
/// </summary>
/// <returns></returns>
private Task ChangeTypeDimension(bool type)
{
if (CurrSashGroup.bIsDimensionLight != type)
{
CurrSashGroup.bIsDimensionLight = type;
foreach (var CurrSashDim in CurrSashGroup.SashList)
{
if (CurrSashDim.SelMeasureType is MeasureTypes.ABSOLUTE)
{
if (CurrSashGroup.bIsDimensionLight)
{
CurrSashDim.SetDimensionLight(CurrSashDim.dDimension -
CurrSashDim.ElementDimensionList.ElementAt(1).dDimension -
CurrSashDim.ElementDimensionList.Last().dDimension);
}
else
{
CurrSashDim.SetDimensionLight(CurrSashDim.dDimension +
CurrSashDim.ElementDimensionList.ElementAt(1).dDimension +
CurrSashDim.ElementDimensionList.Last().dDimension);
}
}
}
}
DataUpdateSash args = new DataUpdateSash()
{
currSash = CurrSashGroup,
noSvg = false
};
return EC_UpdateSashGroup.InvokeAsync(args);
}
/// <summary>
/// Metodo per scegliere tipo di misura
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
//protected Task SetMeasureType(MeasureTypes type)
//{
// //isOpen = !isOpen;
// for (int i = 0; i < CurrSashGroup.SashList.Count; i++)
// {
// CurrSashGroup.SashList.ElementAt(i).SelMeasureTypeIndex = (int)type;
// }
// var args = new DataUpdateSash
// {
// currSash = CurrSashGroup,
// noSvg = true
// };
// return EC_UpdateSashGroup.InvokeAsync(args);
//}
/// <summary>
/// Metodo per aggiornare la sash dimension
/// </summary>
@@ -479,6 +547,12 @@ namespace WebWindowComplex.Compo
return EC_ReqFirstOptionHw.InvokeAsync(CurrSashGroup);
}
//private bool isOpen = false;
//private void ToggleDropdown()
//{
// isOpen = !isOpen;
//}
private string AreaSashCss(int i)
{
if (i == 0)
@@ -487,11 +561,28 @@ namespace WebWindowComplex.Compo
return "row mt-2";
}
private string MeasureTypeCss(MeasureTypes type)
{
for (int i = 0; i < CurrSashGroup.SashList.Count; i++)
{
if (!CurrSashGroup.SashList.ElementAt(i).MeasureType.Equals(type))
return "dropdown-item";
}
return "dropdown-item fw-bold";
}
private string TypeDimensionCss(bool type)
{
if(CurrSashGroup.bIsDimensionLight && type)
return "dropdown-item fw-bold";
else if(!CurrSashGroup.bIsDimensionLight && !type)
return "dropdown-item fw-bold";
return "dropdown-item";
}
private string GetCurrOpening(SashDimension currSashDim)
{
return currSashDim.OpeningTypeList.FirstOrDefault(x => x.Id == currSashDim.SelOpeningTypeIndex).Name;
}
#endregion Private Methods
}
@@ -39,31 +39,3 @@
box-shadow: 0 2px 4px rgba(212, 230, 250, 0.15);
transition: transform 0.05s ease, box-shadow 0.05s ease;
}
/* Stato Normale (Non Attivo) */
.btn-iconeOff {
background-color: #ffffff;
border: 2px solid #d1d5db; /* Bordo grigio tenue di media visibilità */
box-shadow: 0 4px 12px rgba(212, 230, 250, 0.8); /* Ombra azzurra delicata */
font-weight: 600;
padding: 10px 22px;
border-radius: 8px;
cursor: pointer;
transition: transform 0.2s ease, background-color 0.2s ease, border 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
}
/* Stato Attivo (Selezionato) */
.btn-iconeOff.active {
background-color: #ffffff; /* Sfondo bianco */
border: 3px solid #a6ccf5; /* Bordo azzurro */
box-shadow: 0 2px 8px rgba(2, 132, 199, 0.2);
}
/* Effetto Pressione al Click (Mouse premuto) */
.btn-iconeOff:active,
.btn-iconeOff.active:active {
transform: scale(0.96) translateY(2px);
box-shadow: 0 2px 4px rgba(212, 230, 250, 0.15);
transition: transform 0.05s ease, box-shadow 0.05s ease;
}
+29 -27
View File
@@ -7,7 +7,7 @@
<h5>@(descParentSplit()) - Split</h5>
</div>
<div class="col-md-3">
@if (!BaseUser)
@if (!User)
{
@if ((CurrSplit.nSplitQtyVert == 1 && CurrSplit.nSplitQtyHoriz == 0) || (CurrSplit.nSplitQtyVert == 0 && CurrSplit.nSplitQtyHoriz == 1))
{
@@ -16,7 +16,7 @@
}
</div>
<div class="col-md-3">
@if (!BaseUser)
@if (!User)
{
<button class="btn btn-outline-secondary btn-sm" @onclick="() => RemoveArea()">Remove split</button>
}
@@ -43,36 +43,30 @@
</div>
<div class="row py-2">
<div class="col-md-12 col-lg-12">
<div class="d-flex justify-content-start align-items-center" style="min-height: 2.5rem;">
<h6 class="fw-bold">Shape</h6>
</div>
@if (BaseUser)
@if (User)
{
<div class="input-group mb-2">
@foreach (var i in CurrSplit.SplitShapeList)
{
<div class="col-auto">
<button type="button" class="btn-icone @ButtonShapeCss(i.Id) mx-1 px-1 py-1">
<img class="img-fluid" src="@GetImageShapePath(i.Name)" title="@(i.Name)" width="40" />
</button>
</div>
}
<div class="col-auto">
@if (CurrSplit.SelSplitShape == Json.WindowConst.SplitShapes.GRID)
{
<div class="px-1">
<input class="form-check-input ml-auto me-1" disabled="disabled" type="checkbox" name="SplitStartVert" checked="@CurrSplit.bSplitStartVert">
<label class="form-check-label fs-6 text-dark">StartVert</label>
</div>
}
</div>
<span class="input-group-text">Shape</span>
<input type="text" readonly class="form-control" value="@(CurrSplit.SplitShapeList.FirstOrDefault(x => x.Id == SplitShapeIndex))">
</div>
}
else
{
<div class="d-flex justify-content-start align-items-center" style="min-height: 2.5rem;">
<h6 class="fw-bold">Shape</h6>
</div>
<div class="row align-items-center">
@foreach (var i in CurrSplit.SplitShapeList)
{
@* <div class="col-auto">
<button type="button" @onclick="() => SelShapeSplit(i.Id)"
class="btn mx-1 px-1 py-1"
style="border-width: @(SplitShapeIndex == i.Id ? 4 : 1)px;
border-style: solid;
border-color: @(SplitShapeIndex == i.Id ? "#0d6efd" : "#dee2e6");">
<img class="img-fluid" src="@GetImageShapePath(i.Name)" title="@(i.Name)" width="40" />
</button>
</div> *@
<div class="col-auto">
<button type="button" class="btn-icone @ButtonShapeCss(i.Id) mx-1 px-1 py-1" @onclick="() => SelShapeSplit(i.Id)">
<img class="img-fluid" src="@GetImageShapePath(i.Name)" title="@(i.Name)" width="40" />
@@ -83,8 +77,16 @@
@if (CurrSplit.SelSplitShape == Json.WindowConst.SplitShapes.GRID)
{
<div class="px-1">
<input class="form-check-input ml-auto me-1" type="checkbox" name="SplitStartVert" checked="@CurrSplit.bSplitStartVert" @oninput="(ChangeEventArgs e) => ChangeStartVert(e)">
<label class="form-check-label fs-6 text-dark">StartVert</label>
@if (User)
{
<input class="form-check-input ml-auto me-1" disabled="disabled" type="checkbox" name="SplitStartVert" checked="@CurrSplit.bSplitStartVert">
<label class="form-check-label fs-6 text-dark">StartVert</label>
}
else
{
<input class="form-check-input ml-auto me-1" type="checkbox" name="SplitStartVert" checked="@CurrSplit.bSplitStartVert" @oninput="(ChangeEventArgs e) => ChangeStartVert(e)">
<label class="form-check-label fs-6 text-dark">StartVert</label>
}
</div>
}
</div>
@@ -102,7 +104,7 @@
<div class="col-md-12 col-lg-6">
<div class="input-group mb-2">
<span class="input-group-text">QtyHoriz</span>
@if (BaseUser)
@if (User)
{
<input type="number" readonly class="form-control" value="@SplitQtyHoriz">
}
@@ -146,7 +148,7 @@
<div class="col-md-12 col-lg-6">
<div class="input-group mb-2">
<span class="input-group-text">QtyVert</span>
@if (BaseUser)
@if (User)
{
<input type="number" readonly class="form-control" value="@SplitQtyVert">
}
+1 -1
View File
@@ -37,7 +37,7 @@ namespace WebWindowComplex.Compo
/// Livello di accesso (utente base)
/// </summary>
[CascadingParameter(Name = "User")]
public bool BaseUser { get; set; } = false!;
public bool User { get; set; } = false!;
/// <summary>
/// Evento per richiedere reset dizionario
+60 -54
View File
@@ -57,6 +57,7 @@
s = s + cs.ToString() + ((ind + 1) > 0 ? (ind + 1) : "");
}
<td colspan="2">
@* <div class="d-flex flex-row align-items-center justify-content-center">*@
<div class="card text-center p-1 shadow-sm hover-shadow w-100">
<div class="d-flex gap-2">
<button class="btn btn-sm btn-rounded flex-grow-1" @onclick="() => RaiseNextStep(cs, ind)" title="@(s)"
@@ -70,82 +71,87 @@
<i class="@hwIcon(ItemTableList[i].Row)" style="width:0.5rem;"></i>
</button>
}
@if(!BaseUser)
@if (ItemTableList[i].Type is Json.WindowConst.AreaTypes.SASH ||
ItemTableList[i].Type is Json.WindowConst.AreaTypes.SPLIT ||
ItemTableList[i].Type is Json.WindowConst.AreaTypes.INGLESINA)
{
@if (ItemTableList[i].Type is Json.WindowConst.AreaTypes.SASH ||
ItemTableList[i].Type is Json.WindowConst.AreaTypes.SPLIT ||
ItemTableList[i].Type is Json.WindowConst.AreaTypes.INGLESINA)
{
<button class="btn btn-sm" style="font-size: 1rem; flex-basis: 20%;" @onclick="() => Remove(cs, ind)" title="Remove">
<i class="fa-solid fa-trash"></i>
<button class="btn btn-sm" style="font-size: 1rem; flex-basis: 20%;" @onclick="() => Remove(cs, ind)" title="Remove">
<i class="fa-solid fa-trash"></i>
</button>
}
@if (ItemTableList[i].Type is Json.WindowConst.AreaTypes.FRAME &&
((SashGroupList.Count == 0 && SplitList.Count == 0) || !(FrameWindow.AreaList.First() is Split)))
{
<div class="dropdown px-4">
<button class="btn btn-sm dropdown-toggle" type="button" @onclick="ToggleDropdownFrame">
<i class="fa-solid fa-plus"></i>
</button>
}
@if (ItemTableList[i].Type is Json.WindowConst.AreaTypes.FRAME &&
((SashGroupList.Count == 0 && SplitList.Count == 0) || !(FrameWindow.AreaList.First() is Split)))
<ul class="dropdown-menu @(isOpenFrame ? "show" : "")" style="min-width:5rem; max-width:10rem">
@if(SashGroupList.Count == 0 && SplitList.Count == 0)
{
<li><button class="dropdown-item" @onclick="RaiseAddSash">Sash</button></li>
}
@if (!(FrameWindow.AreaList.First() is Split))
{
<li><button class="dropdown-item" @onclick="RaiseAddSplit">Split</button></li>
}
</ul>
</div>
}
@if (ItemTableList[i].Type is Json.WindowConst.AreaTypes.FILL)
{
int currIndexFill = ItemTableList[i].IndexItem;
if (FillList.ElementAt(currIndexFill).ParentArea is Frame)
{
<div class="dropdown px-4">
<button class="btn btn-sm dropdown-toggle" type="button" @onclick="ToggleDropdownFrame">
<button class="btn btn-sm dropdown-toggle" type="button" @onclick="() => ToggleDropdownFill(currIndexFill)">
<i class="fa-solid fa-plus"></i>
</button>
<ul class="dropdown-menu @(isOpenFrame ? "show" : "")" style="min-width:5rem; max-width:10rem">
@if (SashGroupList.Count == 0 && SplitList.Count == 0)
{
<li><button class="dropdown-item" @onclick="RaiseAddSash">Sash</button></li>
}
@if (!(FrameWindow.AreaList.First() is Split))
{
<li><button class="dropdown-item" @onclick="RaiseAddSplit">Split</button></li>
}
<ul class="dropdown-menu @(isOpenFill.ElementAt(currIndexFill) ? "show" : "")" style="min-width:5rem; max-width:10rem">
<li><button class="dropdown-item" @onclick="() => AddInglesinaIntoFill(currIndexFill)">Add Inglesina</button></li>
</ul>
</div>
}
@if (ItemTableList[i].Type is Json.WindowConst.AreaTypes.FILL)
else if (SplittedList != null && SplittedList.Count > 0)
{
int currIndexFill = ItemTableList[i].IndexItem;
if (FillList.ElementAt(currIndexFill).ParentArea is Frame)
Splitted? currSplitted = SplittedList.Where(x => x.AreaList.First().Equals(FillList[currIndexFill])).FirstOrDefault();
@if (currSplitted != null)
{
<div class="dropdown px-4">
<button class="btn btn-sm dropdown-toggle" type="button" @onclick="() => ToggleDropdownFill(currIndexFill)">
<i class="fa-solid fa-plus"></i>
</button>
<ul class="dropdown-menu @(isOpenFill.ElementAt(currIndexFill) ? "show" : "")" style="min-width:5rem; max-width:10rem">
<li><button class="dropdown-item" @onclick="() => AddInglesinaIntoFill(currIndexFill)">Add Inglesina</button></li>
</ul>
</div>
}
else if (SplittedList != null && SplittedList.Count > 0)
{
Splitted? currSplitted = SplittedList.Where(x => x.AreaList.First().Equals(FillList[currIndexFill])).FirstOrDefault();
@if (currSplitted != null)
@if (currSplitted.ParentArea != null && currSplitted.ParentWindow != null
&& currSplitted.AreaList.FirstOrDefault() != null && currSplitted.AreaList.First()!.AreaList.Count == 0)
{
@if (currSplitted.ParentArea != null && currSplitted.ParentWindow != null
&& currSplitted.AreaList.FirstOrDefault() != null && currSplitted.AreaList.First()!.AreaList.Count == 0)
{
<div class="dropdown px-4">
<button class="btn btn-sm dropdown-toggle" type="button" @onclick="() => ToggleDropdownFill(currIndexFill)">
<i class="fa-solid fa-plus"></i>
</button>
<ul class="dropdown-menu @(isOpenFill.ElementAt(currIndexFill) ? "show" : "")" style="min-width:5rem; max-width:10rem">
<li><button class="dropdown-item" @onclick="() => AddInglesinaIntoFill(currIndexFill)">Add Inglesina</button></li>
<li><button class="dropdown-item" @onclick="() => AddSashIntoFill(currIndexFill)">Add Sash</button></li>
@for (int k = 0; k < SashGroupList.Count; k++)
{
int Index = k;
<li><button class="dropdown-item" @onclick="() => CopySashIntoFill(Index, currIndexFill)">Copy Sash @(SashGroupList.Count == 1 ? "" : (Index + 1))</button></li>
}
</ul>
</div>
}
<div class="dropdown px-4">
<button class="btn btn-sm dropdown-toggle" type="button" @onclick="() => ToggleDropdownFill(currIndexFill)">
<i class="fa-solid fa-plus"></i>
</button>
<ul class="dropdown-menu @(isOpenFill.ElementAt(currIndexFill) ? "show" : "")" style="min-width:5rem; max-width:10rem">
<li><button class="dropdown-item" @onclick="() => AddInglesinaIntoFill(currIndexFill)">Add Inglesina</button></li>
<li><button class="dropdown-item" @onclick="() => AddSashIntoFill(currIndexFill)">Add Sash</button></li>
@for (int k = 0; k < SashGroupList.Count; k++)
{
int Index = k;
<li><button class="dropdown-item" @onclick="() => CopySashIntoFill(Index, currIndexFill)">Copy Sash @(SashGroupList.Count == 1 ? "" : (Index + 1))</button></li>
}
</ul>
</div>
}
}
}
}
</div>
</div>
@* <div class="card text-center m-1 p-1 shadow-sm hover-shadow">
<button class="btn btn-sm btn-danger btn-rounded"
style="font-size: 1rem;">
<i class="bi bi-trash3-fill"></i>
</button>
</div> *@
@* </div> *@
</td>
}
else
{
@* <td>@FillTable(i, j)</td> *@
<td> </td>
}
}
-6
View File
@@ -60,12 +60,6 @@ namespace WebWindowComplex.Compo
[Parameter]
public Frame FrameWindow { get; set; } = null!;
/// <summary>
/// Utente
/// </summary>
[Parameter]
public bool BaseUser { get; set; } = false;
/// <summary>
/// Evento richiesta prossimo step
/// </summary>
+80 -16
View File
@@ -48,27 +48,91 @@ namespace WebWindowComplex.Compo
nElement = frame.ElementDimensionList.Count;
else if(CurrRec.ParentArea is Sash sash)
nElement = sash.SashList.FirstOrDefault()!.ElementDimensionList.Count;
switch (CurrRec.nIndex)
switch (nElement)
{
case 1:
{
return "Bottom";
}
case 2:
{
return "Right";
}
case 3:
{
return "Top";
}
case 4:
case 5:
case 6:
{
switch (CurrRec.nIndex)
{
return "Left";
case 1:
{
return "Bottom";
}
case 2:
{
return "Right";
}
case 3:
{
return "Top";
}
case 4:
{
return "Left";
}
}
break;
}
case 5:
{
switch (CurrRec.nIndex)
{
case 1:
{
return "Bottom";
}
case 2:
{
return "Right";
}
case 3:
{
return "TR";
}
case 4:
{
return "TL";
}
case 5:
{
return "Left";
}
}
break;
}
case 6:
{
switch (CurrRec.nIndex)
{
case 1:
{
return "Bottom";
}
case 2:
{
return "Right";
}
case 3:
{
return "TR";
}
case 4:
{
return "TT";
}
case 5:
{
return "TL";
}
case 6:
{
return "Left";
}
}
break;
}
}
}
return "";
}
@@ -1,30 +1,7 @@
<div class="input-group mb-2">
@if(CurrRec.Parent is Frame)
{
if(CurrRec.sName.Equals("Radius"))
{
<span class="input-group-text">@CurrRec.sName</span>
}
else
{
<span class="input-group-text">
<img class="img-fluid" src="@GetImageDimensionPath(shapeFrame, CurrRec.sName)" title="@(CurrRec.sName)" width="40" />
</span>
}
}
else
{
<span class="input-group-text">@CurrRec.sName</span>
}
@if (User)
{
<input type="number" readonly class="form-control" value="@CurrVal">
}
else
{
<input type="number" class="form-control" @bind="@CurrVal">
}
<span class="input-group-text">@CurrRec.sName</span>
<input type="number" class="form-control" @bind="@CurrVal">
<span class="input-group-text">mm</span>
</div>
@@ -16,33 +16,10 @@ namespace WebWindowComplex.Compo
[Parameter]
public EventCallback<FrameDimension> EC_Update { get; set; }
/// <summary>
/// Livello di accesso (utente base)
/// </summary>
[CascadingParameter(Name = "User")]
public bool User { get; set; } = false!;
#endregion Public Properties
#region Protected Methods
protected override void OnParametersSet()
{
ShapeFrame();
}
#endregion Protected Methods
#region Private Fields
private string shapeFrame = "";
#endregion Private Fields
#region Private Properties
private string GetImageDimensionPath(string fileDir, string fileName) => $"_content/Egw.Lux.WebWindowComplex/icone/frame/dimension/{fileDir}/{fileName}.svg";
/// <summary>
/// Metodo per aggiornare valore dimension
/// </summary>
@@ -61,14 +38,5 @@ namespace WebWindowComplex.Compo
}
#endregion Private Properties
#region Private Methods
private void ShapeFrame()
{
shapeFrame = CurrRec.ParentFrame.ShapeList.FirstOrDefault(x => x.Id == (int)CurrRec.ParentFrame.Shape).Name;
}
#endregion Private Methods
}
}
+28 -17
View File
@@ -1,33 +1,44 @@
@using static WebWindowComplex.LayoutConst
<div class="input-group mb-2">
<label class="input-group-text px-2 py-1">
<img class="img-fluid" src="@GetImageJointPosPath(CurrPosJointName)" title="@(CurrPosJointName)" width="50" />
</label>
@if (User)
{
<button class="btn btn-outline-secondary d-flex align-items-center gap-2"
type="button"
style="background-color: @(isOpenDropdown ? "#f8f9fa" : "#ffffff"); color: @(isOpenDropdown ? "#333333" : "");">
<span class="d-flex align-items-center">
<img class="img-fluid" src="@GetImageJointShapePath(CurrPosJointName, CurrJointName)" title="@(CurrJointName)" width="50" />
</span>
</button>
<span class="input-group-text">@(CurrPosJointName)</span>
<input type="text" readonly class="form-control" value="@(CurrRec.JointTypeList.FirstOrDefault(x => x.Id == (int)CurrRec.SelJointType))">
}
else
{
<label class="input-group-text px-2 py-1">
<img class="img-fluid" src="@GetImageJointPosPath(CurrPosJointName)" title="@(CurrPosJointName)" width="50" />
</label>
@if (CurrRec.ParentArea is Frame &&
(CurrRec.ParentArea.ParentWindow.AreaList.First().SelShapeIndex == (int)Json.WindowConst.Shapes.DOUBLEARC ||
CurrRec.ParentArea.ParentWindow.AreaList.First().SelShapeIndex == (int)Json.WindowConst.Shapes.ARC_FULL ||
CurrRec.ParentArea.ParentWindow.AreaList.First().SelShapeIndex == (int)Json.WindowConst.Shapes.THREECENTERARC) &&
(CurrRec.nIndex == 3 || CurrRec.nIndex == 4))
{
<button class="btn btn-outline-secondary d-flex align-items-center gap-2"
type="button"
style="background-color: @(isOpenDropdown ? "#f8f9fa" : "#ffffff"); color: @(isOpenDropdown ? "#333333" : "");">
<span class="d-flex align-items-center">
<img class="img-fluid" src="@GetImageJointShapePath(CurrPosJointName, CurrJointName)" title="@(CurrJointName)" width="50" />
</span>
</button>
<div class="dropdown" @onfocusout="HandleFocusOut" tabindex="0">
<button class="btn btn-outline-secondary dropdown-toggle d-flex align-items-center gap-2"
type="button"
style="background-color: @(isOpenDropdown ? "#f8f9fa" : "#ffffff"); color: @(isOpenDropdown ? "#333333" : "");"
@onclick="ToggleDropdownOpening"
aria-expanded="@isOpenDropdown">
<span class="d-flex align-items-center">
<img class="img-fluid" src="@GetImageJointShapePath(CurrPosJointName, CurrJointName)" title="@(CurrJointName)" width="50" />
</span>
</button>
<ul class="dropdown-menu p-2 @(isOpenDropdown ? "show" : "")"
style="position: absolute; min-width: 7em;">
<div class="col p-0">
<button type="button"
class="dropdown-item d-flex flex-column align-items-center justify-content-center p-2 rounded text-center h-100 @ButtonOpeningCss(CurrRec.JointTypeList.First(x => x.Id == CurrJoint).Id)"
style="background-color: @(CurrJoint == CurrRec.JointTypeList.First(x => x.Id == CurrJoint).Id ? "#d4e6fa" : "#f8f9fa");"
@onclick="() => SelJoint(CurrRec.JointTypeList.First(x => x.Id == CurrJoint).Id)">
<img class="img-fluid" src="@GetImageJointShapePath(CurrPosJointName, CurrRec.JointTypeList.First(x => x.Id == CurrJoint).Name)"
title="@(CurrRec.JointTypeList.First(x => x.Id == CurrJoint).Name)" width="100" />
</button>
</div>
</ul>
</div>
}
else
{
+35 -37
View File
@@ -3,17 +3,17 @@
<div class="row">
@if (isLoading)
{
<LoadingData DisplayMode="LoadingData.SpinMode.Normal" DisplaySize="LoadingData.CtrlSize.Large" Title="...processing..."></LoadingData>
<EgwCoreLib.Razor.LoadingData Title="...processing..."></EgwCoreLib.Razor.LoadingData>
}
else if (!okParams)
{
<div class="d-flex flex-column">
<div class="card text-center shadow rounded">
<div class="col-md-12 d-grid gap-4 p-2 d-md-flex justify-content-end flex-wrap">
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">@Traduci("ConfWind_Close")</button>
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">Close</button>
</div>
<div class="alert alert-warning">
<div class="fs-3">@Traduci("ConfWind_MissingParam")</div>
<div class="fs-3">Parametri Mancanti!</div>
</div>
</div>
</div>
@@ -23,10 +23,10 @@
<div class="d-flex flex-column">
<div class="card text-center shadow rounded">
<div class="col-md-12 d-grid gap-4 p-2 d-md-flex justify-content-end flex-wrap">
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">@Traduci("ConfWind_Close")</button>
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">Close</button>
</div>
<div class="alert alert-warning">
<div class="fs-3">@Traduci("ConfWind_MissingJWD")</div>
<div class="fs-3">JWD Mancante!</div>
</div>
</div>
</div>
@@ -38,7 +38,7 @@
{
<div class="d-flex flex-column">
<div class="alert alert-danger">
<div class="fs-3">@Traduci("ConfWind_ValidError")</div>
<div class="fs-3">Errori validazione!</div>
<div class="col-12 col-md-6 col-lg-3">
<ul class="list-group">
@@ -55,7 +55,7 @@
{
<div class="d-flex flex-column">
<div class="alert alert-danger">
<div class="fs-3">@Traduci("ConfWind_ConfigError")</div>
<div class="fs-3">Errore configurazione:</div>
<div class="col-12">
<ul class="list-group">
@foreach (var item in listErrLink)
@@ -76,10 +76,10 @@
<div class="col-md-12 col-lg-6 d-grid px-2 d-md-flex justify-content-md-start flex-wrap">
<ul class="nav nav-tabs card-header-tabs">
<li class="nav-item m-1">
<button data-target="#Tree" class="@tabNavCss(CompileStep.Tree)" style="font-size: 1rem;" @onclick="() => NextStep(CompileStep.Tree)">@Traduci("ConfWind_Tree")</button>
<button data-target="#Tree" class="@tabNavCss(CompileStep.Tree)" style="font-size: 1rem;" @onclick="() => NextStep(CompileStep.Tree)">Tree</button>
</li>
<li class="nav-item m-1">
<button data-target="#General" class="@tabNavCss(CompileStep.General)" style="font-size: 1rem;" @onclick="() => NextStep(CompileStep.General)">@Traduci("ConfWind_General")</button>
<button data-target="#General" class="@tabNavCss(CompileStep.General)" style="font-size: 1rem;" @onclick="() => NextStep(CompileStep.General)">General</button>
</li>
@* @if (FrameWindow.Shape == Json.WindowConst.Shapes.ARC ||
FrameWindow.Shape == Json.WindowConst.Shapes.ARC_FULL ||
@@ -93,9 +93,9 @@
</ul>
</div>
<div class="col-md-12 col-lg-6 d-grid gap-4 px-4 d-md-flex justify-content-md-end align-items-center flex-wrap">
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoReset">@Traduci("ConfWind_Reset")</button>
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoSave">@Traduci("ConfWind_Save")</button>
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">@Traduci("ConfWind_Close")</button>
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoReset">Reset</button>
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoSave">Save</button>
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">Close</button>
</div>
</div>
</div>
@@ -113,7 +113,6 @@
SplittedList="SplittedList"
FillList="FillList"
FrameWindow="FrameWindow"
BaseUser="BaseUser"
EC_NextStep="NextStepArgs"
EC_Remove="RemoveArea"
EC_Collapsed="CollapsedRowTree"
@@ -130,19 +129,18 @@
{
m_PreviousWindow = m_CurrWindow;
}
<CascadingValue Value="BaseUser" Name="User">
<CascadingValue Value="baseUser" Name="User">
<CascadingValue Value="FrameWindow" Name="CurrFrameWindow">
<CascadingValue Value="SashGroupList" Name="SashGroupList">
<CascadingValue Value="SplitList" Name="SplitList">
<CascadingValue Value="Vocabulary" Name="Vocabulary">
<CardFrame EC_ReqResetDict="ReqResetDict"
EC_ReqOptionHw="UpdateHwOptionsFrame"
EC_ReqElement="UpdateElementFrame"
EC_UpdateFrame="UpdatePreviewFrame"
EC_ReqClose="ReturnTree"
EC_ReqTraduzione="DoReqTraduzione">
</CardFrame>
</CascadingValue>
<CardFrame EC_ReqResetDict="ReqResetDict"
EC_ReqOptionHw="UpdateHwOptionsFrame"
EC_ReqElement="UpdateElementFrame"
EC_UpdateFrame="UpdatePreviewFrame"
EC_ReqClose="ReturnTree"
EC_ReqTraduzione="DoReqTraduzione"
Vocabulary="Vocabulary">
</CardFrame>
</CascadingValue>
</CascadingValue>
</CascadingValue>
@@ -156,7 +154,7 @@
}
else
{
<CascadingValue Value="BaseUser" Name="User">
<CascadingValue Value="baseUser" Name="User">
<CardSplit CurrSplit="SplitList[currSplitIndex]"
SashGroupList="SashGroupList"
SplitList="SplitList"
@@ -178,7 +176,7 @@
}
else
{
<CascadingValue Value="BaseUser" Name="User">
<CascadingValue Value="baseUser" Name="User">
<CascadingValue Value="currLoading" Name="IsLoading">
<CascadingValue Value="SashGroupList[currSashIndex]" Name="CurrSashGroup">
<CascadingValue Value="SashGroupList" Name="SashGroupList">
@@ -208,7 +206,7 @@
}
else
{
<CascadingValue Value="BaseUser" Name="User">
<CascadingValue Value="baseUser" Name="User">
<CardInglesina CurrInglesina="InglesinaList[currInglesinaIndex]"
SashGroupList="SashGroupList"
InglesinaList="InglesinaList"
@@ -232,7 +230,7 @@
{
<CardFill CurrIndex="currFillIndex"
CurrFill="FillList[currFillIndex]"
User="BaseUser"
User="baseUser"
EC_UpdateFill="UpdatePreviewFill"
EC_ReqClose="ReturnTree">
</CardFill>
@@ -240,32 +238,32 @@
<div class="card-body py-2">
<div class="d-flex justify-content-between align-items-center">
<div class="col-4 d-flex justify-content-left">
<h5 class="text-center text-nowrap">@Traduci("ConfWind_AllFill")</h5>
<h5 class="text-center text-nowrap">All fill</h5>
</div>
<div class="input-group mb-2 justify-content-center">
@if (BaseUser)
@if (baseUser)
{
<button class="@buttonFillCss(Json.WindowConst.FillTypes.GLASS)">@Traduci("ConfWind_AllGlass")</button>
<button class="@buttonFillCss(Json.WindowConst.FillTypes.GLASS)">All glass</button>
}
else
{
<button class="@buttonFillCss(Json.WindowConst.FillTypes.GLASS)" @onclick="() => ChangeAllFill(WebWindowComplex.Json.WindowConst.FillTypes.GLASS)">@Traduci("ConfWind_AllGlass")</button>
<button class="@buttonFillCss(Json.WindowConst.FillTypes.GLASS)" @onclick="() => ChangeAllFill(WebWindowComplex.Json.WindowConst.FillTypes.GLASS)">All glass</button>
}
</div>
<div class="input-group mb-2 justify-content-center">
@if (BaseUser)
@if (baseUser)
{
<button class="@buttonFillCss(Json.WindowConst.FillTypes.WOOD)">@Traduci("ConfWind_AllWood")</button>
<button class="@buttonFillCss(Json.WindowConst.FillTypes.WOOD)">All wood</button>
}
else
{
<button class="@buttonFillCss(Json.WindowConst.FillTypes.WOOD)" @onclick="() => ChangeAllFill(WebWindowComplex.Json.WindowConst.FillTypes.WOOD)">@Traduci("ConfWind_AllWood")</button>
<button class="@buttonFillCss(Json.WindowConst.FillTypes.WOOD)" @onclick="() => ChangeAllFill(WebWindowComplex.Json.WindowConst.FillTypes.WOOD)">All wood</button>
}
</div>
</div>
</div>
</div>
@if (!BaseUser && SplittedList != null && SplittedList.Count > 0)
@if (!baseUser && SplittedList != null && SplittedList.Count > 0)
{
Splitted? currSplitted = SplittedList.Where(x => x.AreaList.First().Equals(FillList[currFillIndex])).FirstOrDefault();
@if (currSplitted != null)
@@ -288,7 +286,7 @@
ListPayload="ListPayload"
ListWarnings="listWarnings"
DictPendReq="PendReq"
User="BaseUser"
User="baseUser"
EC_UpdateGeneral="UpdatePreviewGeneral"
EC_ReqClose="ReturnTree">
</General>
@@ -305,7 +303,7 @@
<div class="col-md-6 col-lg-6">
@if (string.IsNullOrWhiteSpace(LiveData.SvgPreview))
{
<LoadingData DisplayMode="LoadingData.SpinMode.Normal" DisplaySize="LoadingData.CtrlSize.Large"></LoadingData>
<LoadingData DisplayMode="LoadingData.SpinMode.BounceLine" DisplaySize="LoadingData.CtrlSize.Large"></LoadingData>
}
else
{
+6 -21
View File
@@ -56,7 +56,7 @@ namespace WebWindowComplex
/// Livello di accesso (utente base)
/// </summary>
[Parameter]
public bool BaseUser { get; set; } = false!;
public bool baseUser { get; set; } = false!;
/// <summary>
/// Classe override css x SVG (x rescale)
@@ -241,8 +241,8 @@ namespace WebWindowComplex
if (m_CurrWindow != null && m_CurrWindow.AreaList != null && m_CurrWindow.AreaList.Count > 0)
{
checkWarnings();
//if (SashGroupList.Count > 0)
// currAntaIndex = 0;
if (SashGroupList.Count > 0)
currAntaIndex = 0;
if (updRequested)
{
// se mancasse dizionario forme chiamo quello
@@ -314,7 +314,7 @@ namespace WebWindowComplex
private static Logger Log = LogManager.GetCurrentClassLogger();
//private int currAntaIndex = 0;
private int currAntaIndex = 0;
private int currFillIndex = -1;
@@ -1404,8 +1404,8 @@ namespace WebWindowComplex
prevHardware[i] = SashGroupList.ElementAt(i).SelHardware;
}
}
//if (SashGroupList.Count > 0)
// currAntaIndex = 0;
if (SashGroupList.Count > 0)
currAntaIndex = 0;
// Aggiorno window con dati shape e hw option
UpdateDict();
}
@@ -2290,21 +2290,6 @@ namespace WebWindowComplex
}
}
/// <summary>
/// Metodo per traduzione in lingua corrente
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
private string Traduci(string lemma)
{
string ans = lemma;
if (Vocabulary != null && Vocabulary.ContainsKey(lemma))
{
ans = Vocabulary.GetValueOrDefault(lemma) ?? "";
}
return ans;
}
#endregion Private Methods
}
}
+1 -45
View File
@@ -6,7 +6,7 @@
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<Version>3.1.8.1311</Version>
<Version>3.1.8.1210</Version>
<Authors>Annamaria Sassi</Authors>
<Company>Egalware</Company>
<Description>Componente gestione Configurazioni avanzate Window per LUX</Description>
@@ -128,50 +128,6 @@
@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1, .cls-2 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
stroke-dasharray: 2 .75;
}
.cls-3 {
fill: #92908d;
}
</style>
</defs>
<g>
<line class="cls-1" x1="18.48" y1="5.66" x2="18.48" y2="32.18"/>
<polygon class="cls-3" points="15.51 6.53 18.48 1.39 21.45 6.53 15.51 6.53"/>
<polygon class="cls-3" points="15.51 31.31 18.48 36.45 21.45 31.31 15.51 31.31"/>
</g>
<path class="cls-1" d="M18.44,36.63H4.58v-18.48s0-9.24,0-9.24C7.55,4.22,12.49,1.11,18.44,1.11h0c5.95,0,10.89,3.11,13.86,7.79v27.72h-13.86"/>
<line class="cls-2" x1="4.58" y1="9.2" x2="32.3" y2="9.2"/>
</svg>

Before

Width:  |  Height:  |  Size: 878 B

@@ -1,29 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1, .cls-2 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
stroke-dasharray: 2 .75;
}
.cls-3 {
fill: #92908d;
}
</style>
</defs>
<g>
<line class="cls-1" x1="18.51" y1="13.85" x2="18.51" y2="31.8"/>
<polygon class="cls-3" points="15.54 14.72 18.51 9.58 21.47 14.72 15.54 14.72"/>
<polygon class="cls-3" points="15.54 30.94 18.51 36.07 21.47 30.94 15.54 30.94"/>
</g>
<polyline class="cls-2" points="18.44 1.12 18.44 1.56 18.44 9.32"/>
<path class="cls-1" d="M18.44,36.63H4.58v-18.48s0-9.24,0-9.24C7.55,4.22,12.49,1.11,18.44,1.11h0c5.95,0,10.89,3.11,13.86,7.79v27.72h-13.86"/>
<line class="cls-2" x1="4.58" y1="9.2" x2="32.3" y2="9.2"/>
</svg>

Before

Width:  |  Height:  |  Size: 951 B

@@ -1,29 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1, .cls-2 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
stroke-dasharray: 2 .75;
}
.cls-3 {
fill: #92908d;
}
</style>
</defs>
<g>
<line class="cls-1" x1="27.6" y1="30.94" x2="9.31" y2="30.94"/>
<polygon class="cls-3" points="26.73 27.98 31.86 30.94 26.73 33.91 26.73 27.98"/>
<polygon class="cls-3" points="10.18 27.98 5.04 30.94 10.18 33.91 10.18 27.98"/>
</g>
<polyline class="cls-2" points="18.44 1.12 18.44 1.56 18.44 9.32"/>
<path class="cls-1" d="M18.44,36.63H4.58v-18.48s0-9.24,0-9.24C7.55,4.22,12.49,1.11,18.44,1.11h0c5.95,0,10.89,3.11,13.86,7.79v27.72h-13.86"/>
<line class="cls-2" x1="4.58" y1="9.2" x2="32.3" y2="9.2"/>
</svg>

Before

Width:  |  Height:  |  Size: 950 B

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1, .cls-2 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
stroke-dasharray: 2 .75;
}
.cls-3 {
fill: #92908d;
}
</style>
</defs>
<g>
<line class="cls-1" x1="18.5" y1="5.4" x2="18.5" y2="31.92"/>
<polygon class="cls-3" points="15.53 6.27 18.5 1.13 21.47 6.27 15.53 6.27"/>
<polygon class="cls-3" points="15.53 31.05 18.5 36.19 21.47 31.05 15.53 31.05"/>
</g>
<path class="cls-1" d="M32.27,14.31c0-7.61-6.17-13.77-13.77-13.77S4.73,6.7,4.73,14.31v-.02s0,7.45,0,7.45v14.9s13.77,0,13.77,0h13.77V14.29"/>
<line class="cls-2" x1="4.54" y1="13.82" x2="32.04" y2="13.82"/>
</svg>

Before

Width:  |  Height:  |  Size: 878 B

@@ -1,29 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1, .cls-2 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
stroke-dasharray: 2 .75;
}
.cls-3 {
fill: #92908d;
}
</style>
</defs>
<g>
<line class="cls-1" x1="27.41" y1="31.51" x2="9.12" y2="31.51"/>
<polygon class="cls-3" points="26.54 28.54 31.68 31.51 26.54 34.48 26.54 28.54"/>
<polygon class="cls-3" points="9.99 28.54 4.85 31.51 9.99 34.48 9.99 28.54"/>
</g>
<path class="cls-1" d="M32.04,14.31c0-7.61-6.17-13.77-13.77-13.77S4.49,6.7,4.49,14.31v-.02s0,7.45,0,7.45v14.9s13.77,0,13.77,0h13.77V14.29"/>
<line class="cls-2" x1="4.54" y1="13.82" x2="32.04" y2="13.82"/>
<line class="cls-2" x1="18.27" y1=".54" x2="18.27" y2="14.4"/>
</svg>

Before

Width:  |  Height:  |  Size: 948 B

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1, .cls-2 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
stroke-dasharray: 2 .75;
}
.cls-3 {
fill: #92908d;
}
</style>
</defs>
<g>
<line class="cls-1" x1="18.43" y1="5.61" x2="18.43" y2="31.8"/>
<polygon class="cls-3" points="15.47 6.48 18.43 1.34 21.4 6.48 15.47 6.48"/>
<polygon class="cls-3" points="15.47 30.94 18.43 36.07 21.4 30.94 15.47 30.94"/>
</g>
<path class="cls-3" d="M18.46,1.4c11.45,3.84,12.95,16.32,13.03,17.04v17.67H5.43v-17.67c.08-.73,1.58-13.21,13.03-17.04h0ZM18.48.5h-.04s.01,0,.02,0c0,0,.01,0,.02,0h0ZM18.46.5C5.77,4.55,4.58,18.4,4.58,18.4v18.56h13.9-.04,13.9v-18.56S31.15,4.55,18.46.5h0Z"/>
<line class="cls-2" x1="5.2" y1="18.4" x2="32.34" y2="18.4"/>
</svg>

Before

Width:  |  Height:  |  Size: 991 B

@@ -1,29 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1, .cls-2 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
stroke-dasharray: 2 .75;
}
.cls-3 {
fill: #92908d;
}
</style>
</defs>
<g>
<line class="cls-1" x1="18.6" y1="23.26" x2="18.6" y2="31.8"/>
<polygon class="cls-3" points="15.63 24.13 18.6 18.99 21.57 24.13 15.63 24.13"/>
<polygon class="cls-3" points="15.63 30.94 18.6 36.07 21.57 30.94 15.63 30.94"/>
</g>
<path class="cls-3" d="M18.46,1.4c11.45,3.84,12.95,16.32,13.03,17.04v17.67H5.43v-17.67c.08-.73,1.58-13.21,13.03-17.04h0ZM18.48.5h-.04s.01,0,.02,0c0,0,.01,0,.02,0h0ZM18.46.5C5.77,4.55,4.58,18.4,4.58,18.4v18.56h13.9-.04,13.9v-18.56S31.15,4.55,18.46.5h0Z"/>
<line class="cls-2" x1="5.2" y1="18.4" x2="32.34" y2="18.4"/>
<line class="cls-2" x1="18.48" y1="1.65" x2="18.48" y2="18.73"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

@@ -1,29 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1, .cls-2 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
stroke-dasharray: 2 .75;
}
.cls-3 {
fill: #92908d;
}
</style>
</defs>
<g>
<line class="cls-1" x1="27.15" y1="30.14" x2="9.71" y2="30.14"/>
<polygon class="cls-3" points="26.28 27.18 31.42 30.14 26.28 33.11 26.28 27.18"/>
<polygon class="cls-3" points="10.58 27.18 5.44 30.14 10.58 33.11 10.58 27.18"/>
</g>
<path class="cls-3" d="M18.46,1.4c11.45,3.84,12.95,16.32,13.03,17.04v17.67H5.43v-17.67c.08-.73,1.58-13.21,13.03-17.04h0ZM18.48.5h-.04s.01,0,.02,0c0,0,.01,0,.02,0h0ZM18.46.5C5.77,4.55,4.58,18.4,4.58,18.4v18.56h13.9-.04,13.9v-18.56S31.15,4.55,18.46.5h0Z"/>
<line class="cls-2" x1="5.2" y1="18.4" x2="32.34" y2="18.4"/>
<line class="cls-2" x1="18.48" y1="1.65" x2="18.48" y2="18.73"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

@@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
fill: #92908d;
}
</style>
</defs>
<g>
<line class="cls-1" x1="18.47" y1="31.95" x2="18.47" y2="5.47"/>
<polygon class="cls-2" points="21.43 31.08 18.47 36.22 15.5 31.08 21.43 31.08"/>
<polygon class="cls-2" points="21.43 6.34 18.47 1.2 15.5 6.34 21.43 6.34"/>
</g>
<path class="cls-2" d="M18.44,1.2l13.01,13.01v21.9H5.43V14.17L18.44,1.2h0ZM18.44,0L4.58,13.82v23.14h27.72V13.86L18.44,0h0Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 733 B

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1, .cls-2 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
stroke-dasharray: 2 .75;
}
.cls-3 {
fill: #92908d;
}
</style>
</defs>
<g>
<line class="cls-1" x1="18.49" y1="31.76" x2="18.49" y2="18.56"/>
<polygon class="cls-3" points="21.46 30.89 18.49 36.03 15.52 30.89 21.46 30.89"/>
<polygon class="cls-3" points="21.46 19.42 18.49 14.29 15.52 19.42 21.46 19.42"/>
</g>
<path class="cls-3" d="M18.44,1.2l13.01,13.01v21.9H5.43V14.17L18.44,1.2h0ZM18.44,0L4.58,13.82v23.14h27.72V13.86L18.44,0h0Z"/>
<line class="cls-2" x1="5" y1="13.82" x2="31.73" y2="13.82"/>
</svg>

Before

Width:  |  Height:  |  Size: 870 B

@@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
fill: #92908d;
}
</style>
</defs>
<g>
<line class="cls-1" x1="9.54" y1="31.62" x2="27.2" y2="31.62"/>
<polygon class="cls-2" points="10.41 34.58 5.27 31.62 10.41 28.65 10.41 34.58"/>
<polygon class="cls-2" points="26.33 34.58 31.47 31.62 26.33 28.65 26.33 34.58"/>
</g>
<path class="cls-2" d="M18.44,1.2l13.01,13.01v21.9H5.43V14.17L18.44,1.2h0ZM18.44,0L4.58,13.82v23.14h27.72V13.86L18.44,0h0Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 738 B

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1, .cls-2 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
stroke-dasharray: 2 .75;
}
.cls-3 {
fill: #92908d;
}
</style>
</defs>
<line class="cls-2" x1="5.35" y1="14.19" x2="9.54" y2="14.19"/>
<g>
<line class="cls-1" x1="9.23" y1="18.18" x2="9.23" y2="31.88"/>
<polygon class="cls-3" points="6.27 19.05 9.23 13.91 12.2 19.05 6.27 19.05"/>
<polygon class="cls-3" points="6.27 31.01 9.23 36.14 12.2 31.01 6.27 31.01"/>
</g>
<path class="cls-3" d="M31.45,1.38v34.73H5.43V14.39L31.45,1.38h0ZM32.3,0L4.58,13.86v23.1h27.72V0h0Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 839 B

@@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
fill: #92908d;
}
</style>
</defs>
<g>
<line class="cls-1" x1="32.28" y1="32.79" x2="32.28" y2="4.41"/>
<polygon class="cls-2" points="35.25 31.92 32.28 37.06 29.31 31.92 35.25 31.92"/>
<polygon class="cls-2" points="35.25 5.28 32.28 .14 29.31 5.28 35.25 5.28"/>
</g>
<path class="cls-2" d="M31.45,1.38v34.73H5.43V14.39L31.45,1.38h0ZM32.3,0L4.58,13.86v23.1h27.72V0h0Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 712 B

@@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
fill: #92908d;
}
</style>
</defs>
<g>
<line class="cls-1" x1="27.08" y1="31.13" x2="9.51" y2="31.13"/>
<polygon class="cls-2" points="26.22 28.17 31.35 31.13 26.22 34.1 26.22 28.17"/>
<polygon class="cls-2" points="10.37 28.17 5.24 31.13 10.37 34.1 10.37 28.17"/>
</g>
<path class="cls-2" d="M31.45,1.38v34.73H5.43V14.39L31.45,1.38h0ZM32.3,0L4.58,13.86v23.1h27.72V0h0Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 714 B

@@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
fill: #92908d;
}
</style>
</defs>
<path class="cls-2" d="M31.49.85v35.26H5.47V.85h26.02ZM32.34,0H4.62v36.96h27.72V0h0Z"/>
<g>
<line class="cls-1" x1="18.62" y1="31.76" x2="18.62" y2="5.28"/>
<polygon class="cls-2" points="21.58 30.89 18.62 36.03 15.65 30.89 21.58 30.89"/>
<polygon class="cls-2" points="21.58 6.15 18.62 1.02 15.65 6.15 21.58 6.15"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 698 B

@@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
fill: #92908d;
}
</style>
</defs>
<path class="cls-2" d="M31.49.85v35.26H5.47V.85h26.02ZM32.34,0H4.62v36.96h27.72V0h0Z"/>
<g>
<line class="cls-1" x1="9.57" y1="18.48" x2="27.66" y2="18.48"/>
<polygon class="cls-2" points="10.44 21.45 5.3 18.48 10.44 15.51 10.44 21.45"/>
<polygon class="cls-2" points="26.79 21.45 31.93 18.48 26.79 15.51 26.79 21.45"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 700 B

@@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
fill: #92908d;
}
</style>
</defs>
<g>
<line class="cls-1" x1="4.51" y1="32.58" x2="4.51" y2="4.27"/>
<polygon class="cls-2" points="7.48 31.71 4.51 36.85 1.55 31.71 7.48 31.71"/>
<polygon class="cls-2" points="7.48 5.14 4.51 0 1.55 5.14 7.48 5.14"/>
</g>
<path class="cls-2" d="M5.43,1.38l26.02,13.01v21.72H5.43V1.38h0ZM4.58,0v36.96h27.72V13.86L4.58,0h0Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 700 B

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1, .cls-2 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
stroke-dasharray: 2 .75;
}
.cls-3 {
fill: #92908d;
}
</style>
</defs>
<g>
<line class="cls-1" x1="27.46" y1="18.18" x2="27.46" y2="31.88"/>
<polygon class="cls-3" points="24.49 19.05 27.46 13.91 30.42 19.05 24.49 19.05"/>
<polygon class="cls-3" points="24.49 31.01 27.46 36.14 30.42 31.01 24.49 31.01"/>
</g>
<line class="cls-2" x1="27.37" y1="14.19" x2="32.22" y2="14.19"/>
<path class="cls-3" d="M5.43,1.38l26.02,13.01v21.72H5.43V1.38h0ZM4.58,0v36.96h27.72V13.86L4.58,0h0Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 851 B

@@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
fill: #92908d;
}
</style>
</defs>
<g>
<line class="cls-1" x1="27.08" y1="31.13" x2="9.51" y2="31.13"/>
<polygon class="cls-2" points="26.22 28.17 31.35 31.13 26.22 34.1 26.22 28.17"/>
<polygon class="cls-2" points="10.37 28.17 5.24 31.13 10.37 34.1 10.37 28.17"/>
</g>
<path class="cls-2" d="M5.43,1.38l26.02,13.01v21.72H5.43V1.38h0ZM4.58,0v36.96h27.72V13.86L4.58,0h0Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 714 B

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1, .cls-2 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
stroke-dasharray: 2 .75;
}
.cls-3 {
fill: #92908d;
}
</style>
</defs>
<g>
<line class="cls-1" x1="18.6" y1="7.31" x2="18.6" y2="31.95"/>
<polygon class="cls-3" points="15.63 8.18 18.6 3.04 21.57 8.18 15.63 8.18"/>
<polygon class="cls-3" points="15.63 31.08 18.6 36.22 21.57 31.08 15.63 31.08"/>
</g>
<path class="cls-3" d="M18.47,2.95c5.65.05,10.96,2.27,14.99,6.3.77.7,1.21,1.7,1.21,2.74v.09s0,.1,0,.1c0,.04,0,.08,0,.11v6.25s0,17.6,0,17.6H2.27V12.29s0-.07,0-.11v-.09s0-.1,0-.1c0-1.04.44-2.04,1.24-2.77,4-4,9.31-6.22,14.96-6.27h0ZM18.65,2.1h-.37c.06,0,.12,0,.18,0,.06,0,.12,0,.18,0h0ZM18.47,2.1c-6.07.05-11.57,2.53-15.56,6.52-.92.83-1.49,2.03-1.49,3.37,0,.04,0,.08,0,.13h0s0,.1,0,.1c0-.03,0-.06,0-.09,0,0,0,0,0,0v6.43s0,18.45,0,18.45h34.1V12.12s0,0,0,0c0,0,0,0,0,0,0,.03,0,.06,0,.09v-.1s0-.08,0-.13c0-1.34-.58-2.54-1.49-3.37-3.99-3.99-9.48-6.47-15.56-6.52h0Z"/>
<line class="cls-2" x1="1.82" y1="11.19" x2="35.04" y2="11.19"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

@@ -1,29 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1, .cls-2 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
stroke-dasharray: 2 .75;
}
.cls-3 {
fill: #92908d;
}
</style>
</defs>
<g>
<line class="cls-1" x1="18.57" y1="16.01" x2="18.57" y2="31.9"/>
<polygon class="cls-3" points="15.61 16.88 18.57 11.74 21.54 16.88 15.61 16.88"/>
<polygon class="cls-3" points="15.61 31.03 18.57 36.17 21.54 31.03 15.61 31.03"/>
</g>
<path class="cls-3" d="M18.47,2.95c5.65.05,10.96,2.27,14.99,6.3.77.7,1.21,1.7,1.21,2.74v.09s0,.1,0,.1c0,.04,0,.08,0,.11v6.25s0,17.6,0,17.6H2.27V12.29s0-.07,0-.11v-.09s0-.1,0-.1c0-1.04.44-2.04,1.24-2.77,4-4,9.31-6.22,14.96-6.27h0ZM18.65,2.1h-.37c.06,0,.12,0,.18,0,.06,0,.12,0,.18,0h0ZM18.47,2.1c-6.07.05-11.57,2.53-15.56,6.52-.92.83-1.49,2.03-1.49,3.37,0,.04,0,.08,0,.13v.1s0-.06,0-.09c0,0,0,0,0,0h0s0,6.43,0,6.43v18.45h34.1V12.12s0,0,0,0c0,0,0,0,0,0,0,.03,0,.06,0,.09v-.1s0-.08,0-.13c0-1.34-.58-2.54-1.49-3.37-3.99-3.99-9.48-6.47-15.56-6.52h0Z"/>
<line class="cls-2" x1="1.82" y1="11.19" x2="35.04" y2="11.19"/>
<line class="cls-2" x1="18.43" y1="2.67" x2="18.43" y2="11.56"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

@@ -1,29 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1, .cls-2 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
stroke-dasharray: 2 .75;
}
.cls-3 {
fill: #92908d;
}
</style>
</defs>
<g>
<line class="cls-1" x1="30.28" y1="32.26" x2="6.66" y2="32.26"/>
<polygon class="cls-3" points="29.42 29.3 34.55 32.26 29.42 35.23 29.42 29.3"/>
<polygon class="cls-3" points="7.53 29.3 2.39 32.26 7.53 35.23 7.53 29.3"/>
</g>
<path class="cls-3" d="M18.47,2.95c5.65.05,10.96,2.27,14.99,6.3.77.7,1.21,1.7,1.21,2.74v.09s0,.1,0,.1c0,.04,0,.08,0,.11v6.25s0,17.6,0,17.6H2.27V12.29s0-.07,0-.11v-.09s0-.1,0-.1c0-1.04.44-2.04,1.24-2.77,4-4,9.31-6.22,14.96-6.27h0ZM18.65,2.1h-.37c.06,0,.12,0,.18,0,.06,0,.12,0,.18,0h0ZM18.47,2.1c-6.07.05-11.57,2.53-15.56,6.52-.92.83-1.49,2.03-1.49,3.37,0,.04,0,.08,0,.13v.1s0-.06,0-.09c0,0,0,0,0,0h0s0,6.43,0,6.43v18.45h34.1V12.12s0,0,0,0c0,.03,0,.06,0,.09v-.1s0,0,0,0c0-.04,0-.08,0-.13,0-1.34-.58-2.54-1.49-3.37-3.99-3.99-9.48-6.47-15.56-6.52h0Z"/>
<line class="cls-2" x1="1.82" y1="11.19" x2="35.04" y2="11.19"/>
<line class="cls-2" x1="18.43" y1="2.67" x2="18.43" y2="11.56"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1, .cls-2 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
stroke-dasharray: 2 .75;
}
.cls-3 {
fill: #92908d;
}
</style>
</defs>
<g>
<line class="cls-1" x1="13.74" y1="33.2" x2="6.94" y2="33.2"/>
<polygon class="cls-3" points="12.87 30.24 18.01 33.2 12.87 36.17 12.87 30.24"/>
<polygon class="cls-3" points="7.81 30.24 2.67 33.2 7.81 36.17 7.81 30.24"/>
</g>
<line class="cls-2" x1="18.32" y1="1.49" x2="18.32" y2="36.45"/>
<path class="cls-3" d="M18.4,2.37l17.09,33.66H1.31L18.4,2.37h0ZM18.4.5L-.08,36.88h36.96L18.4.5h0Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 839 B

@@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
fill: #92908d;
}
</style>
</defs>
<g>
<line class="cls-1" x1="18.32" y1="6.56" x2="18.32" y2="31.66"/>
<polygon class="cls-2" points="15.35 7.42 18.32 2.29 21.29 7.42 15.35 7.42"/>
<polygon class="cls-2" points="15.35 30.79 18.32 35.93 21.29 30.79 15.35 30.79"/>
</g>
<path class="cls-2" d="M18.4,2.37l17.09,33.66H1.31L18.4,2.37h0ZM18.4.5L-.08,36.88h36.96L18.4.5h0Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 711 B

@@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37">
<defs>
<style>
.cls-1 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
fill: #92908d;
}
</style>
</defs>
<g>
<line class="cls-1" x1="29.01" y1="31.79" x2="7.62" y2="31.79"/>
<polygon class="cls-2" points="28.15 28.82 33.28 31.79 28.15 34.76 28.15 28.82"/>
<polygon class="cls-2" points="8.49 28.82 3.35 31.79 8.49 34.76 8.49 28.82"/>
</g>
<path class="cls-2" d="M18.4,2.37l17.09,33.66H1.31L18.4,2.37h0ZM18.4.5L-.08,36.88h36.96L18.4.5h0Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 711 B

@@ -7,5 +7,5 @@
}
</style>
</defs>
<path class="cls-1" d="M31.45,1.38v34.73H5.43V14.39L31.45,1.38h0ZM32.3,0L4.58,13.86v23.1h27.72V0h0Z"/>
<path class="cls-1" d="M31.45.85v35.26H5.43V14.21L18.79.85h12.66M32.3,0h-13.86L4.58,13.86v23.1h27.72V0h0Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 334 B

After

Width:  |  Height:  |  Size: 340 B

@@ -7,5 +7,5 @@
}
</style>
</defs>
<path class="cls-1" d="M5.43,1.38l26.02,13.01v21.72H5.43V1.38h0ZM4.58,0v36.96h27.72V13.86L4.58,0h0Z"/>
<path class="cls-1" d="M18.09.85l13.36,13.36v21.9H5.43V.85h12.66M18.44,0H4.58v36.96h27.72V13.86L18.44,0h0Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 334 B

After

Width:  |  Height:  |  Size: 341 B

@@ -6,7 +6,7 @@
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<Version>3.1.8.1311</Version>
<Version>3.1.8.1210</Version>
<Authors>Annamaria Sassi</Authors>
<Company>Egalware</Company>
<Description>Componente gestione JWD per LUX</Description>
@@ -427,64 +427,6 @@