ant-design-blazor/components/date-picker/DatePicker.razor
Andrzej Bakun b27e4d47a6 fix(module: datepicker): validate manually entered date against format (#1389)
* fix(module:datepicker): validate manually entered date against format

* fix(module:datepicker): keep frozen the panel until valid date entered

* fix(module:datepicker): switch to current culture format

* fix(module:datepicker): build fix

* fix(module:datepicker): use InvariantCulture when calling ToString on date

* fix(module:datepicker): FormatAnalyzer handles also year, week, month & quarter picker

* fix(module:datepicker): FormatAnalyzer broken tests

* fix: FormatAnalyzer handles prefixes in format.

Suffix is handled for picker type = "year"
Tests include validation of not changing state

* fix: all modes go through format analyzing (inluding week&quarter)

* fix(module:datepickerbase): InternalFormat initalized properly for all modes

* fix(module:rangepicker): reset opposing date when in conflict with current

* fix(module:rangePicker): handle null in second part of range

* fix(module:datepicker): switch from BindConverter to partials

* tests(module:datepicker): FormatAnalyzer new tests to cover switch from BindConverter

* tests(module:datepicker): missed change in tests

* fix: focus, key events, reset value to original if not confirmed

* fix: bug fix on range & clean-up

* Update DatePicker.razor

Co-authored-by: James Yeung <shunjiey@hotmail.com>
2021-04-28 03:54:19 +00:00

48 lines
2.2 KiB
C#

@namespace AntDesign
@inherits DatePickerBase<TValue>
@typeparam TValue
@using AntDesign.Internal;
<CascadingValue Value='$"{PrefixCls}-dropdown"' Name="PrefixCls">
<OverlayTrigger @ref="@_dropDown"
Visible="Open"
IsButton="@true"
Disabled="Disabled"
PopupContainerSelector="@PopupContainerSelector"
OnVisibleChange="visible => OnOpenChange.InvokeAsync(visible)"
OverlayEnterCls="ant-slide-up-enter ant-slide-up-enter-active ant-slide-up"
OverlayLeaveCls="ant-slide-up-leave ant-slide-up-leave-active ant-slide-up"
Trigger="new TriggerType[] { TriggerType.Click }">
<Overlay>
<div class="@(PrefixCls)-panel-container">
<div class="@_panelClassMapper.Class">
<DatePickerPanelChooser TValue="TValue" DatePicker="@this" OnSelect="async (date, index) => await OnSelect(date)" />
</div>
</div>
</Overlay>
<Unbound>
<div class="@ClassMapper.Class"
@ref="@context.Current"
style="@Style"
Id="@Id">
<DatePickerInput @ref="_inputStart"
PrefixCls="@PrefixCls"
Size="@Size"
Disabled="@Disabled"
Value="@GetInputValue(0)"
Placeholder="@_placeholders[0]"
ReadOnly="@InputReadOnly"
AutoFocus="@AutoFocus"
OnClick="async e => { await OnInputClick(); }"
OnKeyDown="@OnKeyDown"
OnInput="e => OnInput(e, 0)"
OnBlur="e => OnBlur(0)"
Onfocus="e => AutoFocus = true"
ShowTime="@(Picker == DatePickerType.Time)"
OnClickClear="e => ClearValue(0)"
AllowClear="@AllowClear" />
</div>
</Unbound>
</OverlayTrigger>
</CascadingValue>