- Correzioni

- Aggiunte icone tipologie di apertura anta
This commit is contained in:
Annamaria Sassi
2026-08-05 17:58:19 +02:00
parent ea64a73bb8
commit 0c9f3c6fd2
37 changed files with 575 additions and 90 deletions
+76 -28
View File
@@ -2,18 +2,22 @@
<div class="col-lg-12 col-md-12">
@if (!SashDimEditList.Contains(IndexSash))
{
<div class="d-flex justify-content-between align-items-center">
<div class="col-md-12 col-lg-4 d-grid px-2 d-md-flex justify-content-md-start flex-wrap">
<div class="d-flex justify-content-start align-items-center">
<div class="col-md-12 col-lg-8 px-0 d-grid justify-content-start">
<h6 class="fw-bold text-nowrap">Sash @(CurrSashGroup.SashList.Count == 1 ? "" : (IndexSash + 1))</h6>
</div>
<div class="col-md-12 col-lg-8 d-grid px-4 d-md-flex justify-content-md-end align-items-center flex-wrap">
<div class="col-md-12 col-lg-3 px-0">
@if(!User && CurrSashGroup.SashList.Count > 1)
{
<div class="dropdown px-4">
<button class="btn btn-outline-secondary dropdown-toggle btn-sm" type="button" @onclick="ToggleDropdown">
<div class="dropdown px-4 w-100">
<button class="btn btn-outline-secondary dropdown-toggle btn-sm w-100"
type="button"
@onclick="ToggleDropdown"
aria-expanded="@isOpen">
Copy content
</button>
<ul class="dropdown-menu @(isOpen ? "show" : "")" style="min-width:5rem; max-width:10rem">
<ul class="dropdown-menu w-100 @(isOpen ? "show" : "")"
style="min-width:0rem; max-width:10rem">
@for (int k = 0; k <= CurrSashGroup.SashList.Count - 1; k++)
{
@if (k != IndexSash)
@@ -30,28 +34,49 @@
</ul>
</div>
}
</div>
<div class="col-md-12 col-lg-1 px-0 align-items-center">
<button class="btn btn-outline-secondary btn-sm" type="button" @onclick="() => doEdit(IndexSash)">
<i class="fa-solid fa-pen"></i>
</button>
</div>
</div>
<div class="row">
<div class="col-lg-5 col-md-12 my-2">
<div class="row align-items-center justify-content-start">
<div class="col-lg-2 col-md-12 my-2">
<div class="input-group mb-2">
@if(User)
@if (User)
{
<span class="input-group-text">Tipology</span>
<input type="text" readonly class="form-control" value="@(CurrSashDim.OpeningTypeList.ElementAt(OpeningTypeIndex - 1))">
}
else
{
<label class="input-group-text">Tipology</label>
<select class="form-select" @bind="@OpeningTypeIndex">
@foreach (var openingType in CurrSashDim.OpeningTypeList)
{
<option value=@(openingType.Id)>@(openingType.Name)</option>
}
</select>
<div class="dropdown" @onfocusout="HandleFocusOut" tabindex="0">
<button class="btn btn-outline-secondary dropdown-toggle d-flex align-items-center gap-2"
type="button"
@onclick="ToggleDropdownOpening"
aria-expanded="@isOpenDropdown">
<span class="d-flex align-items-center">
<img class="img-fluid" src="@GetImageOpeningPath(CurrOpening)" title="@(CurrOpening)" width="50" />
</span>
</button>
<ul class="dropdown-menu p-2 @(isOpenDropdown ? "show" : "")"
style="position: absolute; min-width: 20em;">
<div class="row g-2 row-cols-4 m-0">
@foreach (var openingType in CurrSashDim.OpeningTypeList)
{
<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(openingType.Id)"
@onclick="() => SelOpeningSash(openingType.Id, openingType.Name)">
<img class="img-fluid" src="@GetImageOpeningPath(openingType.Name)"
title="@(openingType.Name)" width="100" />
</button>
</div>
}
</div>
</ul>
</div>
}
</div>
</div>
@@ -101,28 +126,32 @@
}
else
{
<div class="d-flex justify-content-between align-items-center mb-2">
<div class="col-md-12 col-lg-6 d-grid px-2 d-md-flex justify-content-md-start flex-wrap">
<div class="d-flex justify-content-start align-items-center mb-2">
<div class="col-md-12 col-lg-7 d-grid px-0 justify-content-md-start">
<h6 class="fw-bold text-nowrap">Sash @(CurrSashGroup.SashList.Count == 1 ? "" : (IndexSash + 1))</h6>
</div>
<div class="col-md-12 col-lg-6 d-grid px-4 d-md-flex justify-content-md-end align-items-center flex-wrap">
<div class="col-md-12 col-lg-2 px-0">
@if (!User && !(CurrAnta.AreaList[0] is Split))
{
<div class="col-md-4">
<button class="btn btn-outline-secondary btn-sm" @onclick="() => AddSplitToSash()">Split</button>
</div>
}
</div>
<div class="col-md-12 col-lg-2 px-0">
@if (!User && CurrAnta.AreaList[0].AreaList.Count == 0)
{
<div class="col-md-4 px-2">
<button class="btn btn-outline-secondary btn-sm" @onclick="() => AddInglesinaToSash()">Inglesina</button>
</div>
}
</div>
<div class="col-md-12 col-lg-1 px-0">
<button type="button" class="btn-close" aria-label="Close" @onclick="() => ClosePopup(IndexSash)"></button>
</div>
</div>
<div class="row">
<div class="col-lg-5 col-md-12 my-2">
<div class="row align-items-center justify-content-start">
<div class="col-lg-2 col-md-12 my-2">
<div class="input-group mb-2">
@if (User)
{
@@ -131,13 +160,32 @@
}
else
{
<label class="input-group-text">Tipology</label>
<select class="form-select" @bind="@OpeningTypeIndex">
@foreach (var openingType in CurrSashDim.OpeningTypeList)
{
<option value=@(openingType.Id)>@(openingType.Name)</option>
}
</select>
<div class="dropdown" @onfocusout="HandleFocusOut" tabindex="0">
<button class="btn btn-outline-secondary dropdown-toggle d-flex align-items-center gap-2"
type="button"
@onclick="ToggleDropdownOpening"
aria-expanded="@isOpenDropdown">
<span class="d-flex align-items-center">
<img class="img-fluid" src="@GetImageOpeningPath(CurrOpening)" title="@(CurrOpening)" width="50" />
</span>
</button>
<ul class="dropdown-menu p-2 @(isOpenDropdown ? "show" : "")"
style="position: absolute; min-width: 20em;">
<div class="row g-2 row-cols-4 m-0">
@foreach (var openingType in CurrSashDim.OpeningTypeList)
{
<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(openingType.Id)"
@onclick="() => SelOpeningSash(openingType.Id, openingType.Name)">
<img class="img-fluid" src="@GetImageOpeningPath(openingType.Name)"
title="@(openingType.Name)" width="100" />
</button>
</div>
}
</div>
</ul>
</div>
}
</div>
</div>
+62 -9
View File
@@ -23,6 +23,12 @@ namespace WebWindowComplex.Compo
[Parameter]
public SashDimension CurrSashDim { get; set; } = null!;
/// <summary>
/// Apertura sash dimension corrente
/// </summary>
[Parameter]
public string CurrOpening { get; set; } = null!;
///// <summary>
///// Lista di ante che si stanno editando
///// </summary>
@@ -86,6 +92,11 @@ namespace WebWindowComplex.Compo
//{
// base.OnParametersSet();
//}
//protected override void OnInitialized()
//{
// CurrOpening = CurrSashDim.OpeningTypeList.FirstOrDefault(x => x.Id == CurrSashDim.SelOpeningTypeIndex).Name;
//}
#endregion Protected Methods
#region Private Fields
@@ -103,10 +114,16 @@ namespace WebWindowComplex.Compo
private ModeView mode { get; set; } = ModeView.View;
private bool isOpenDropdown = false;
//private string currOpening = "";
#endregion Private Fields
#region Private Properties
private string GetImageOpeningPath(string fileName) => $"_content/Egw.Lux.WebWindowComplex/icone/sash/opening/{fileName}.svg";
/// <summary>
/// Anta corrente
/// </summary>
@@ -159,15 +176,15 @@ namespace WebWindowComplex.Compo
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);
}
}
//set
//{
// if (CurrSashDim.SelOpeningTypeIndex != value)
// {
// _ = EC_ReqResetDict.InvokeAsync(new DataUpdateRes { req = LayoutConst.DataAction.ResetHwOpt });
// CurrSashDim.SelOpeningTypeIndex = value;
// _ = EC_UpdateSashDim.InvokeAsync(CurrSashDim);
// }
//}
}
/// <summary>
@@ -464,6 +481,42 @@ namespace WebWindowComplex.Compo
ForceChangeAll = !ForceChangeAll;
}
private async Task SelOpeningSash(int index, string name)
{
if (CurrSashDim.SelOpeningTypeIndex != index)
{
await EC_ReqResetDict.InvokeAsync(new DataUpdateRes { req = LayoutConst.DataAction.ResetHwOpt});
CurrSashDim.SelOpeningTypeIndex = index;
await EC_UpdateSashDim.InvokeAsync(CurrSashDim);
}
CurrOpening = name;
}
/// <summary>
/// Metodo per la visualizzazione dei pulsanti tipology
/// </summary>
/// <param name="index"></param>
/// <returns></returns>
private string ButtonOpeningCss(int index)
{
string ans = "";
if (OpeningTypeIndex == index)
ans = "active";
return ans;
}
private void ToggleDropdownOpening()
{
isOpenDropdown = !isOpenDropdown;
}
// 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
}
+1 -1
View File
@@ -66,7 +66,7 @@ namespace WebWindowComplex.Compo
#region Protected Properties
private string GetImageShapePath(string fileName) => $"_content/Egw.Lux.WebWindowComplex/icone/shape/{fileName}.svg";
private string GetImageShapePath(string fileName) => $"_content/Egw.Lux.WebWindowComplex/icone/frame/shape/{fileName}.svg";
/// <summary>
/// Metodo per selezionare shape
+36 -20
View File
@@ -21,7 +21,41 @@
</div>
</div>
<div class="card-body py-2">
<div class="row pt-2">
<div class="row pb-3">
<div class="col-md-12 col-lg-6">
@if (User)
{
<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" class="btn @ButtonTipologyCss(i.Id) shadow-sm mx-1 px-1 py-1" @onclick="() => SelTipologySash(i.Id)">
<img class="img-fluid" src="@GetImageTipologyPath(i.Name)" title="@(i.Name)" width="40" />
</button>
</div>
@* <label class="input-group-text">Tipology</label>
<select class="form-select" @bind="@OrientationSashTypeIndex">
@foreach (var orientationSash in CurrSashGroup.OrientationSashTypeList)
{
<option value="@(orientationSash.Id)">@(orientationSash.Name)</option>
}
</select> *@
}
</div>
}
</div>
</div>
<div class="row">
<div class="col-md-12 col-lg-6">
<div class="input-group mb-2">
<span class="input-group-text">Qty sash</span>
@@ -35,25 +69,6 @@
}
</div>
</div>
<div class="col-md-12 col-lg-6">
<div class="input-group mb-2">
@if (User)
{
<span class="input-group-text">Tipology</span>
<input type="text" readonly class="form-control" value="@(CurrSashGroup.OrientationSashTypeList.FirstOrDefault(x => x.Id == OrientationSashTypeIndex).Name)">
}
else
{
<label class="input-group-text">Tipology</label>
<select class="form-select" @bind="@OrientationSashTypeIndex">
@foreach (var orientationSash in CurrSashGroup.OrientationSashTypeList)
{
<option value="@(orientationSash.Id)">@(orientationSash.Name)</option>
}
</select>
}
</div>
</div>
<div class="col-md-12 col-lg-6">
<div class="input-group mb-2">
<span class="input-group-text">Qty bottom rail</span>
@@ -214,6 +229,7 @@
<div class="@AreaSashCss(i)">
<AreaSash CurrSashDim="CurrSashGroup.SashList[i]"
IndexSash="i"
CurrOpening="@GetCurrOpening(CurrSashGroup.SashList[i])"
EC_UpdateSash="UpdateSash"
EC_UpdateSashDim="UpdateSashDimension"
EC_ReqResetDict="ResetDict"
+48 -12
View File
@@ -92,6 +92,8 @@ namespace WebWindowComplex.Compo
#region Protected Properties
private string GetImageTipologyPath(string fileName) => $"_content/Egw.Lux.WebWindowComplex/icone/sash/tipology/{fileName}.svg";
protected override void OnParametersSet()
{
currSashDimEdit = SashDimEditList;
@@ -164,18 +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);
}
}
//set
//{
// if (CurrSashGroup.SelOrientationSashTypeIndex != value)
// {
// CurrSashGroup.SelOrientationSashTypeIndex = value;
// var args = new DataUpdateSash()
// {
// currSash = CurrSashGroup
// };
// _ = EC_UpdateSashGroup.InvokeAsync(args);
// }
//}
}
/// <summary>
@@ -286,6 +288,35 @@ namespace WebWindowComplex.Compo
#region Private Methods
/// <summary>
/// Selezione tipo di orientamento della sash
/// </summary>
private async Task SelTipologySash( int index)
{
if (CurrSashGroup.SelOrientationSashTypeIndex != index)
{
CurrSashGroup.SelOrientationSashTypeIndex = index;
var args = new DataUpdateSash()
{
currSash = CurrSashGroup
};
await EC_UpdateSashGroup.InvokeAsync(args);
}
}
/// <summary>
/// Metodo per la visualizzazione dei pulsanti tipology
/// </summary>
/// <param name="index"></param>
/// <returns></returns>
private string ButtonTipologyCss(int index)
{
string ans = "";
if (OrientationSashTypeIndex == index)
ans = "active";
return ans;
}
/// <summary>
/// Metodo per rimuovere area corrente
/// </summary>
@@ -547,6 +578,11 @@ namespace WebWindowComplex.Compo
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
}
+6 -6
View File
@@ -137,7 +137,7 @@ namespace WebWindowComplex.Compo
//}
}
private string GetImageShapePath(string fileName) => $"_content/Egw.Lux.WebWindowComplex/icone/split/{fileName}.svg";
private string GetImageShapePath(string fileName) => $"_content/Egw.Lux.WebWindowComplex/icone/split/shape/{fileName}.svg";
private bool SearchSash(Area area)
{
@@ -203,17 +203,17 @@ namespace WebWindowComplex.Compo
{
currSplit = CurrSplit
};
_ = EC_ReqResetDict.InvokeAsync(new DataUpdateRes { req = LayoutConst.DataAction.ResetDimElem });
await EC_ReqResetDict.InvokeAsync(new DataUpdateRes { req = LayoutConst.DataAction.ResetDimElem });
if (!(CurrSplit.ParentArea.ParentArea is Sash))
{
// Se la shape selezionata è grid o custom, richiede reset shape
if (newShapeIndex == (int)SplitShapes.GRID || newShapeIndex == (int)SplitShapes.CUSTOM)
_ = EC_ReqResetDict.InvokeAsync(new DataUpdateRes { req = DataAction.ResetDictShape });
await EC_ReqResetDict.InvokeAsync(new DataUpdateRes { req = DataAction.ResetDictShape });
if (SearchSash(CurrSplit))
_ = EC_ReqResetDict.InvokeAsync(new DataUpdateRes { req = DataAction.ResetHwOpt });
await EC_ReqResetDict.InvokeAsync(new DataUpdateRes { req = DataAction.ResetHwOpt });
}
_ = EC_ReqElement.InvokeAsync(CurrSplit);
_ = EC_UpdateSplit.InvokeAsync(args);
await EC_ReqElement.InvokeAsync(CurrSplit);
await EC_UpdateSplit.InvokeAsync(args);
}
}
+1 -1
View File
@@ -487,7 +487,7 @@ namespace WebWindowComplex.Models
set
{
m_SelOrientationSashType = (OrientationSash)value;
if (value == 0)
if (value == 1)
{
m_bIsSashVertical = true;
}
+11 -11
View File
@@ -551,18 +551,18 @@ namespace WebWindowComplex.Models
private List<IdNameStruct> m_OpeningTypeList = new List<IdNameStruct>
{
new IdNameStruct((int)Openings.TURNONLY_LEFT, "A bandiera sinistra"),
new IdNameStruct((int)Openings.TURNONLY_RIGHT, "A bandiera destra"),
new IdNameStruct((int)Openings.TILTTURN_LEFT, "Ad anta-ribalta sinistra"),
new IdNameStruct((int)Openings.TILTTURN_RIGHT, "Ad anta-ribalta destra"),
new IdNameStruct((int)Openings.TILTONLY_TOP, "Solo verso alto"),
new IdNameStruct((int)Openings.TILTONLY_BOTTOM, "Solo verso basso"),
new IdNameStruct((int)Openings.TURNONLY_LEFT, "TurnOnlyLeft"),
new IdNameStruct((int)Openings.TURNONLY_RIGHT, "TurnOnlyRight"),
new IdNameStruct((int)Openings.TILTTURN_LEFT, "TiltTurnLeft"),
new IdNameStruct((int)Openings.TILTTURN_RIGHT, "TiltTurnRight"),
new IdNameStruct((int)Openings.TILTONLY_TOP, "TiltOnlyTop"),
new IdNameStruct((int)Openings.TILTONLY_BOTTOM, "TiltOnlyBottom"),
new IdNameStruct((int)Openings.PIVOT, "Pivot"),
new IdNameStruct((int)Openings.FIXED, "Fissa"),
new IdNameStruct((int)Openings.COMPLANARSLIDE_LEFT, "Complanare sinistra"),
new IdNameStruct((int)Openings.COMPLANARSLIDE_RIGHT, "Complanare destra"),
new IdNameStruct((int)Openings.LIFTSLIDE_LEFT, "Scorrevole sinistra"),
new IdNameStruct((int)Openings.LIFTSLIDE_RIGHT, "Scorrevole destra")
new IdNameStruct((int)Openings.FIXED, "Fixed"),
new IdNameStruct((int)Openings.COMPLANARSLIDE_LEFT, "ComplanarSlideLeft"),
new IdNameStruct((int)Openings.COMPLANARSLIDE_RIGHT, "ComplanarSlideRight"),
new IdNameStruct((int)Openings.LIFTSLIDE_LEFT, "LiftSlideLeft"),
new IdNameStruct((int)Openings.LIFTSLIDE_RIGHT, "LiftSlideRight")
//new IdNameStruct((int)Openings.TURNONLY_LEFT, ">"),
//new IdNameStruct((int)Openings.TURNONLY_RIGHT, "<"),
+7 -1
View File
@@ -6,7 +6,7 @@
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<Version>3.1.8.512</Version>
<Version>3.1.8.517</Version>
<Authors>Annamaria Sassi</Authors>
<Company>Egalware</Company>
<Description>Componente gestione Configurazioni avanzate Window per LUX</Description>
@@ -67,6 +67,12 @@

Before

Width:  |  Height:  |  Size: 651 B

After

Width:  |  Height:  |  Size: 651 B

Before

Width:  |  Height:  |  Size: 651 B

After

Width:  |  Height:  |  Size: 651 B

Before

Width:  |  Height:  |  Size: 776 B

After

Width:  |  Height:  |  Size: 776 B

Before

Width:  |  Height:  |  Size: 354 B

After

Width:  |  Height:  |  Size: 354 B

Before

Width:  |  Height:  |  Size: 340 B

After

Width:  |  Height:  |  Size: 340 B

Before

Width:  |  Height:  |  Size: 318 B

After

Width:  |  Height:  |  Size: 318 B

Before

Width:  |  Height:  |  Size: 341 B

After

Width:  |  Height:  |  Size: 341 B

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Before

Width:  |  Height:  |  Size: 329 B

After

Width:  |  Height:  |  Size: 329 B

@@ -0,0 +1,29 @@
<?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 {
stroke-dasharray: 1 .75;
}
.cls-1, .cls-2 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-3 {
fill: #92908d;
}
</style>
</defs>
<line class="cls-1" x1="9.05" y1="18.32" x2="27.68" y2="18.32"/>
<rect class="cls-3" x="5.36" y="13.48" width="3.77" height="9.17"/>
<rect class="cls-3" x="27.7" y="13.48" width="3.87" height="9.17"/>
<path class="cls-3" d="M31.45.86v35.3H5.49V.86h25.97ZM32.3.01H4.64v37h27.67V.01h0Z"/>
<g>
<line class="cls-2" x1="23.02" y1="18.25" x2="19.74" y2="18.25"/>
<polygon class="cls-3" points="20.98 14.01 13.64 18.25 20.98 22.49 20.98 14.01"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 887 B

@@ -0,0 +1,29 @@
<?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 {
stroke-dasharray: 1 .75;
}
.cls-1, .cls-2 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-3 {
fill: #92908d;
}
</style>
</defs>
<line class="cls-1" x1="9.05" y1="18.32" x2="27.68" y2="18.32"/>
<rect class="cls-3" x="5.36" y="13.48" width="3.77" height="9.17"/>
<rect class="cls-3" x="27.7" y="13.48" width="3.87" height="9.17"/>
<path class="cls-3" d="M31.45.86v35.3H5.49V.86h25.97ZM32.3.01H4.64v37h27.67V.01h0Z"/>
<g>
<line class="cls-2" x1="13.64" y1="18.25" x2="16.93" y2="18.25"/>
<polygon class="cls-3" points="15.68 22.49 23.02 18.25 15.68 14.01 15.68 22.49"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 887 B

@@ -0,0 +1,21 @@
<?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-dasharray: 1 .75;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
fill: #92908d;
}
</style>
</defs>
<line class="cls-1" x1="5.18" y1=".45" x2="32.25" y2="37.01"/>
<line class="cls-1" x1="5.18" y1="36.59" x2="31.72" y2=".52"/>
<path class="cls-2" d="M31.45.86v35.3H5.49V.86h25.97ZM32.3.01H4.64v37h27.67V.01h0Z"/>
</svg>

After

Width:  |  Height:  |  Size: 609 B

@@ -0,0 +1,27 @@
<?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 {
stroke-dasharray: 1 .75;
}
.cls-1, .cls-2 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-3 {
fill: #92908d;
}
</style>
</defs>
<path class="cls-3" d="M31.45.86v35.3H5.49V.86h25.97ZM32.3.01H4.64v37h27.67V.01h0Z"/>
<polyline class="cls-1" points="13.26 36.37 13.26 18.02 31.66 18.02"/>
<g>
<line class="cls-2" x1="22.64" y1="17.99" x2="25.93" y2="17.99"/>
<polygon class="cls-3" points="24.69 22.23 32.03 17.99 24.69 13.76 24.69 22.23"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 753 B

@@ -0,0 +1,27 @@
<?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 {
stroke-dasharray: 1 .75;
}
.cls-1, .cls-2 {
fill: none;
stroke: #92908d;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-3 {
fill: #92908d;
}
</style>
</defs>
<path class="cls-3" d="M31.45.86v35.3H5.49V.86h25.97ZM32.3.01H4.64v37h27.67V.01h0Z"/>
<polyline class="cls-1" points="22.88 36.37 22.88 18.02 5.28 18.02"/>
<g>
<line class="cls-2" x1="14.29" y1="17.99" x2="11.01" y2="17.99"/>
<polygon class="cls-3" points="12.25 13.75 4.91 17.99 12.25 22.23 12.25 13.75"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 751 B

@@ -0,0 +1,20 @@
<?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-dasharray: 1 .75;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
fill: #92908d;
}
</style>
</defs>
<polyline class="cls-1" points="18.65 36.56 31.35 18.49 18.51 .71 18.22 .71 5.38 18.49 18.08 36.56"/>
<path class="cls-2" d="M31.45.86v35.3H5.49V.86h25.97ZM32.3.01H4.64v37h27.67V.01h0Z"/>
</svg>

After

Width:  |  Height:  |  Size: 583 B

@@ -0,0 +1,20 @@
<?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-dasharray: 1 .75;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
fill: #92908d;
}
</style>
</defs>
<polyline class="cls-1" points="5.17 36.55 18.27 .85 31.85 36.76"/>
<path class="cls-2" d="M31.45.86v35.3H5.49V.86h25.97ZM32.3.01H4.64v37h27.67V.01h0Z"/>
</svg>

After

Width:  |  Height:  |  Size: 549 B

@@ -0,0 +1,20 @@
<?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-dasharray: 1 .75;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
fill: #92908d;
}
</style>
</defs>
<polyline class="cls-1" points="31.66 .62 18.86 35.73 5.21 .53"/>
<path class="cls-2" d="M31.45.86v35.3H5.49V.86h25.97ZM32.3.01H4.64v37h27.67V.01h0Z"/>
</svg>

After

Width:  |  Height:  |  Size: 547 B

@@ -0,0 +1,20 @@
<?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-dasharray: 1 .75;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
fill: #92908d;
}
</style>
</defs>
<polyline class="cls-1" points="32.25 37.01 18.48 .69 5.68 36.26 31.47 18.19 4.74 .08"/>
<path class="cls-2" d="M31.45.86v35.3H5.49V.86h25.97ZM32.3.01H4.64v37h27.67V.01h0Z"/>
</svg>

After

Width:  |  Height:  |  Size: 570 B

@@ -0,0 +1,20 @@
<?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-dasharray: 1 .75;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
fill: #92908d;
}
</style>
</defs>
<polyline class="cls-1" points="4.74 37.01 18.27 .69 32.25 37.01 5.47 18 32.25 .08"/>
<path class="cls-2" d="M31.45.86v35.3H5.49V.86h25.97ZM32.3.01H4.64v37h27.67V.01h0Z"/>
</svg>

After

Width:  |  Height:  |  Size: 567 B

@@ -0,0 +1,20 @@
<?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-dasharray: 1 .75;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
fill: #92908d;
}
</style>
</defs>
<path class="cls-2" d="M31.45.86v35.3H5.49V.86h25.97ZM32.3.01H4.64v37h27.67V.01h0Z"/>
<polyline class="cls-1" points="5.46 .71 31.44 18.35 5.46 36.28"/>
</svg>

After

Width:  |  Height:  |  Size: 548 B

@@ -0,0 +1,20 @@
<?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-dasharray: 1 .75;
stroke-miterlimit: 10;
stroke-width: .85px;
}
.cls-2 {
fill: #92908d;
}
</style>
</defs>
<polyline class="cls-1" points="31.45 .71 5.47 18.35 31.45 36.28"/>
<path class="cls-2" d="M31.45.86v35.3H5.49V.86h25.97ZM32.3.01H4.64v37h27.67V.01h0Z"/>
</svg>

After

Width:  |  Height:  |  Size: 549 B

@@ -0,0 +1,19 @@
<?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.75.85v35H5.47V.85h26.28ZM32.6,0H4.62v36.7h27.98V0h0Z"/>
<line class="cls-1" x1="5.16" y1="18.35" x2="31.97" y2="18.35"/>
</svg>

After

Width:  |  Height:  |  Size: 510 B

@@ -0,0 +1,19 @@
<?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.2.85v35H5.47V.85h25.73ZM32.05,0H4.62v36.7h27.43V0h0Z"/>
<line class="cls-1" x1="18.34" y1=".53" x2="18.34" y2="36.07"/>
</svg>

After

Width:  |  Height:  |  Size: 509 B

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 781 B

Before

Width:  |  Height:  |  Size: 650 B

After

Width:  |  Height:  |  Size: 650 B

Before

Width:  |  Height:  |  Size: 582 B

After

Width:  |  Height:  |  Size: 582 B

@@ -6,7 +6,7 @@
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<Version>3.1.8.512</Version>
<Version>3.1.8.517</Version>
<Authors>Annamaria Sassi</Authors>
<Company>Egalware</Company>
<Description>Componente gestione JWD per LUX</Description>
@@ -331,6 +331,21 @@