-
-
-
-
-
-
+
+
+
+
+
+
+
- @if (_canBeEitherPositiveOrNegative is false)
- {
-
- @(_isUnconfirmedValueNegative ? NegativeValueText : PositiveValueText)
-
- }
- @if (FieldPrecision >= TimeSpanUnit.Day && TimeFieldsMaxValues[TimeSpanUnit.Day] > 0)
- {
-
-
-
-
- }
- @if (FieldPrecision >= TimeSpanUnit.Hour && TimeFieldsMaxValues[TimeSpanUnit.Hour] > 0)
- {
-
-
-
-
- }
- @if (FieldPrecision >= TimeSpanUnit.Minute && TimeFieldsMaxValues[TimeSpanUnit.Minute] > 0)
- {
-
-
-
-
- }
- @if (FieldPrecision >= TimeSpanUnit.Second && TimeFieldsMaxValues[TimeSpanUnit.Second] > 0)
- {
-
-
-
-
- }
- @if (FieldPrecision >= TimeSpanUnit.Millisecond && TimeFieldsMaxValues[TimeSpanUnit.Millisecond] > 0)
- {
-
-
-
-
- }
- @{
- #if NET7_0_OR_GREATER
- if (FieldPrecision >= TimeSpanUnit.Microsecond && TimeFieldsMaxValues[TimeSpanUnit.Microsecond] > 0)
+ @if (_canBeEitherPositiveOrNegative is false)
+ {
+
+ @(_isUnconfirmedValueNegative ? NegativeValueText : PositiveValueText)
+
+ }
+ @if (FieldPrecision >= TimeSpanUnit.Day && TimeFieldsMaxValues[TimeSpanUnit.Day] > 0)
+ {
+
+
+
+
+ }
+ @if (FieldPrecision >= TimeSpanUnit.Hour && TimeFieldsMaxValues[TimeSpanUnit.Hour] > 0)
{
-
- @HoursUnitText
+
+ class="rz-timespanpicker-hours"
+ Change="@UpdateHours" />
}
- #endif
- }
+ @if (FieldPrecision >= TimeSpanUnit.Minute && TimeFieldsMaxValues[TimeSpanUnit.Minute] > 0)
+ {
+
+
+
+
+ }
+ @if (FieldPrecision >= TimeSpanUnit.Second && TimeFieldsMaxValues[TimeSpanUnit.Second] > 0)
+ {
+
+
+
+
+ }
+ @if (FieldPrecision >= TimeSpanUnit.Millisecond && TimeFieldsMaxValues[TimeSpanUnit.Millisecond] > 0)
+ {
+
+
+
+
+ }
+ @{
+ #if NET7_0_OR_GREATER
+ if (FieldPrecision >= TimeSpanUnit.Microsecond && TimeFieldsMaxValues[TimeSpanUnit.Microsecond] > 0)
+ {
+
+
+
+
+ }
+ #endif
+ }
+
@if (ShowConfirmationButton)
{
diff --git a/Radzen.Blazor/themes/components/blazor/_timespanpicker.scss b/Radzen.Blazor/themes/components/blazor/_timespanpicker.scss
index 1dc0403061e..bfce40e0d9a 100644
--- a/Radzen.Blazor/themes/components/blazor/_timespanpicker.scss
+++ b/Radzen.Blazor/themes/components/blazor/_timespanpicker.scss
@@ -15,7 +15,7 @@ $timespanpicker-panel-padding-block: 0.5rem !default;
$timespanpicker-panel-padding-inline: 0.5rem !default;
$timespanpicker-panel-gap: 0.5rem !default;
$timespanpicker-panel-unit-color: var(--rz-text-color) !default;
-$timespanpicker-panel-unit-gap: 0 0.25rem !default;
+$timespanpicker-panel-unit-gap: 0 !default;
$timespanpicker-panel-field-min-width: 4rem !default;
.rz-timespanpicker {
@@ -141,14 +141,16 @@ $timespanpicker-panel-field-min-width: 4rem !default;
}
.rz-timespanpicker-panel {
+ padding-block: var(--rz-timespanpicker-panel-padding-block);
+ padding-inline: var(--rz-timespanpicker-panel-padding-inline);
+ color: var(--rz-timespanpicker-panel-text-color);
+}
+
+.rz-timespanpicker-panel, .rz-timespanpicker-panel-fieldcontainer {
display: flex;
- flex-direction: row;
align-items: flex-end;
justify-content: center;
gap: var(--rz-timespanpicker-panel-gap);
- padding-block: var(--rz-timespanpicker-panel-padding-block);
- padding-inline: var(--rz-timespanpicker-panel-padding-inline);
- color: var(--rz-timespanpicker-panel-text-color);
}
.rz-timespanpicker-panel-fieldwithunit {
@@ -158,6 +160,7 @@ $timespanpicker-panel-field-min-width: 4rem !default;
align-items: center;
justify-content: flex-start;
gap: var(--rz-timespanpicker-panel-unit-gap);
+ width: min-content;
.rz-unit {
color: var(--rz-timespanpicker-panel-unit-color);
@@ -171,6 +174,6 @@ $timespanpicker-panel-field-min-width: 4rem !default;
.rz-timespanpicker-milliseconds,
.rz-timespanpicker-microseconds {
background-color: var(--rz-timespanpicker-panel-background-color);
- width: var(--rz-timespanpicker-panel-field-min-width);
+ width: fit-content;
min-width: var(--rz-timespanpicker-panel-field-min-width);
}
diff --git a/Radzen.Blazor/themes/material-base.scss b/Radzen.Blazor/themes/material-base.scss
index 2e55922da7d..adaac21d1e0 100644
--- a/Radzen.Blazor/themes/material-base.scss
+++ b/Radzen.Blazor/themes/material-base.scss
@@ -961,9 +961,17 @@ $timespanpicker-popup-shadow: var(--rz-shadow-4) !default;
$timespanpicker-panel-padding-block: 0.75rem !default;
$timespanpicker-panel-padding-inline: 0.75rem !default;
$timespanpicker-panel-gap: 0.75rem !default;
-$timespanpicker-panel-unit-gap: 0 0.5rem !default;
+$timespanpicker-panel-unit-gap: 0.25rem !default;
$timespanpicker-panel-field-min-width: 5rem !default;
+.rz-timespanpicker-panel {
+ flex-direction: column;
+
+ > .rz-button {
+ align-self: stretch;
+ }
+}
+
// Numeric
$numeric-button-background-color: transparent !default;
$numeric-button-color: var(--rz-text-color) !default;
diff --git a/Radzen.Blazor/themes/material-dark-base.scss b/Radzen.Blazor/themes/material-dark-base.scss
index 3b02a1a74f6..38fdbb8a7e4 100644
--- a/Radzen.Blazor/themes/material-dark-base.scss
+++ b/Radzen.Blazor/themes/material-dark-base.scss
@@ -977,6 +977,26 @@ $timepicker-border: var(--rz-border-base-600) !default;
}
}
+// TimeSpanPicker
+$timespanpicker-line-height: 1.5rem !default;
+$timespanpicker-trigger-icon-color: var(--rz-text-secondary-color) !default;
+$timespanpicker-trigger-icon-hover-color: var(--rz-text-title-color) !default;
+$timespanpicker-popup-border: none !default;
+$timespanpicker-popup-shadow: var(--rz-shadow-4) !default;
+$timespanpicker-panel-padding-block: 0.75rem !default;
+$timespanpicker-panel-padding-inline: 0.75rem !default;
+$timespanpicker-panel-gap: 0.75rem !default;
+$timespanpicker-panel-unit-gap: 0.25rem !default;
+$timespanpicker-panel-field-min-width: 5rem !default;
+
+.rz-timespanpicker-panel {
+ flex-direction: column;
+
+ > .rz-button {
+ align-self: stretch;
+ }
+}
+
// Numeric
$numeric-button-background-color: transparent !default;
$numeric-button-color: var(--rz-text-color) !default;
diff --git a/Radzen.Blazor/themes/material-dark.scss b/Radzen.Blazor/themes/material-dark.scss
index 85632ac7793..a6a9b82b87a 100644
--- a/Radzen.Blazor/themes/material-dark.scss
+++ b/Radzen.Blazor/themes/material-dark.scss
@@ -978,6 +978,26 @@ $timepicker-border: var(--rz-border-base-600) !default;
}
}
+// TimeSpanPicker
+$timespanpicker-line-height: 1.5rem !default;
+$timespanpicker-trigger-icon-color: var(--rz-text-secondary-color) !default;
+$timespanpicker-trigger-icon-hover-color: var(--rz-text-title-color) !default;
+$timespanpicker-popup-border: none !default;
+$timespanpicker-popup-shadow: var(--rz-shadow-4) !default;
+$timespanpicker-panel-padding-block: 0.75rem !default;
+$timespanpicker-panel-padding-inline: 0.75rem !default;
+$timespanpicker-panel-gap: 0.75rem !default;
+$timespanpicker-panel-unit-gap: 0.25rem !default;
+$timespanpicker-panel-field-min-width: 5rem !default;
+
+.rz-timespanpicker-panel {
+ flex-direction: column;
+
+ > .rz-button {
+ align-self: stretch;
+ }
+}
+
// Numeric
$numeric-button-background-color: transparent !default;
$numeric-button-color: var(--rz-text-color) !default;
diff --git a/Radzen.Blazor/themes/material.scss b/Radzen.Blazor/themes/material.scss
index 55bff987da2..3c6e2d5b3ef 100644
--- a/Radzen.Blazor/themes/material.scss
+++ b/Radzen.Blazor/themes/material.scss
@@ -962,9 +962,17 @@ $timespanpicker-popup-shadow: var(--rz-shadow-4) !default;
$timespanpicker-panel-padding-block: 0.75rem !default;
$timespanpicker-panel-padding-inline: 0.75rem !default;
$timespanpicker-panel-gap: 0.75rem !default;
-$timespanpicker-panel-unit-gap: 0 0.5rem !default;
+$timespanpicker-panel-unit-gap: 0.25rem !default;
$timespanpicker-panel-field-min-width: 5rem !default;
+.rz-timespanpicker-panel {
+ flex-direction: column;
+
+ > .rz-button {
+ align-self: stretch;
+ }
+}
+
// Numeric
$numeric-button-background-color: transparent !default;
$numeric-button-color: var(--rz-text-color) !default;
From 1863bfc1e31bc3daf551f0d888433aa83cff6b0d Mon Sep 17 00:00:00 2001
From: Cosmatevs <44393502+Cosmatevs@users.noreply.github.com>
Date: Wed, 29 Jan 2025 21:07:34 +0100
Subject: [PATCH 03/42] TimeSpanPicker: fix value set, move invoking Change
events for consistency with other components, update demos
---
Radzen.Blazor/RadzenTimeSpanPicker.razor.cs | 11 +++++++----
.../Pages/TimeSpanPickerBindValue.razor | 2 +-
.../Pages/TimeSpanPickerChangeEvent.razor | 11 +++--------
.../Pages/TimeSpanPickerFormat.razor | 8 ++++++++
.../Pages/TimeSpanPickerMinMax.razor | 8 ++++++++
.../Pages/TimeSpanPickerPage.razor | 18 ++++++++++++++++--
RadzenBlazorDemos/RadzenBlazorDemos.csproj | 3 +++
7 files changed, 46 insertions(+), 15 deletions(-)
create mode 100644 RadzenBlazorDemos/Pages/TimeSpanPickerFormat.razor
create mode 100644 RadzenBlazorDemos/Pages/TimeSpanPickerMinMax.razor
diff --git a/Radzen.Blazor/RadzenTimeSpanPicker.razor.cs b/Radzen.Blazor/RadzenTimeSpanPicker.razor.cs
index 514ad607639..6a112fdcaf7 100644
--- a/Radzen.Blazor/RadzenTimeSpanPicker.razor.cs
+++ b/Radzen.Blazor/RadzenTimeSpanPicker.razor.cs
@@ -34,7 +34,7 @@ public TValue Value
get => _value;
set
{
- if (EqualityComparer