ant-design-blazor/components/date-picker/DatePicker.razor
agolub-s 8e60219b35
feat(module: datepicker): add mask to DatePickerBase for input value constraint (#3120)
* Add support multiple date formats for DatePickerBase

* Fix test

* Extend docs

* Fix merge

* Revert "Add support multiple date formats for DatePickerBase"

This reverts commit 9021dcdd

* Refactoring. Add mask property for DatePickerBase. For input value constraint.

* Some fixes

* Refactoring

* Add value converter for MaskInput

* Some fix

* fix Chinese

* Refactoring

* Fix tests

* Fix tests

* clean up

* Fix tests

* Pass mask to RangePicker

* Fix AvatarTests

* Fix merge

* Stage

* Stabilized tests

---------

Co-authored-by: James Yeung <shunjiey@hotmail.com>
2023-10-05 17:24:16 +08:00

55 lines
2.6 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"
BoundaryAdjustMode="@BoundaryAdjustMode"
Disabled="IsDisabled(0)"
PopupContainerSelector="@PopupContainerSelector"
OnVisibleChange="OverlayVisibleChange"
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"
Placement="Placement"
Trigger="new[] { Trigger.Click }">
<Overlay>
<div class="@(PrefixCls)-panel-container" @onclick="@PickerClicked">
<div class="@_panelClassMapper.Class">
<DatePickerPanelChooser TValue="TValue" DatePicker="@this" OnSelect="async (date, index) => await OnSelect(date, index)" />
</div>
</div>
</Overlay>
<Unbound>
<div class="@ClassMapper.Class"
@ref="@context.Current"
style="@Style"
Id="@Id">
<DatePickerInput @ref="_inputStart"
PrefixCls="@PrefixCls"
Size="@Size"
Disabled="IsDisabled(0)"
Value="@GetInputValue(0)"
Placeholder="@_placeholders[0]"
ReadOnly="@InputReadOnly"
AutoFocus="@AutoFocus"
OnClick="async e => { await OnInputClick(); }"
OnSuffixIconClick="OnSuffixIconClick"
OnKeyDown="@OnKeyDown"
OnInput="e => OnInput(e, 0)"
OnBlur="e => OnBlur(0)"
Mask="@Mask"
Onfocus="e => AutoFocus = true"
ShowTime="@(Picker == DatePickerType.Time)"
OnClickClear="e => ClearValue(0)"
HtmlInputSize="@HtmlInputSize"
SuffixIcon="@SuffixIcon"
FeedbackIcon="@FormItem?.FeedbackIcon"
AllowClear="@AllowClear" />
</div>
</Unbound>
</OverlayTrigger>
</CascadingValue>