@skbkontur/react-ui 5.0.5 → 5.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/cjs/components/Calendar/DayCellView.js +15 -8
- package/cjs/components/Calendar/DayCellView.js.map +1 -1
- package/cjs/components/DateInput/DateInput.js +1 -1
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +2 -1
- package/cjs/components/DatePicker/DatePicker.js +10 -2
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DatePicker/MobilePicker.js +12 -15
- package/cjs/components/DatePicker/MobilePicker.js.map +1 -1
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +3 -3
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +29 -29
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/cjs/internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey.js +26 -0
- package/cjs/internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey.js.map +1 -1
- package/cjs/lib/taskWithDelayAndMinimalDuration.js +4 -0
- package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
- package/components/Calendar/DayCellView/DayCellView.js +14 -11
- package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
- package/components/DateInput/DateInput/DateInput.js +1 -1
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DatePicker/DatePicker/DatePicker.js +8 -2
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +2 -1
- package/components/DatePicker/MobilePicker/MobilePicker.js +12 -14
- package/components/DatePicker/MobilePicker/MobilePicker.js.map +1 -1
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +32 -31
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +3 -3
- package/internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey/HideBodyVerticalScroll.creevey.js +81 -0
- package/internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey/HideBodyVerticalScroll.creevey.js.map +1 -1
- package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +3 -0
- package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,21 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [5.0.6](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.0.5...@skbkontur/react-ui@5.0.6) (2024-12-23)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **Calendar, DatePicker:** fix click on disabled dates ([#3564](https://github.com/skbkontur/retail-ui/issues/3564)) ([1b76455](https://github.com/skbkontur/retail-ui/commit/1b764557a99efc6494effc2f206ac525f3c2c1b4))
|
|
12
|
+
* **DateInput:** disallow date fragment selection in disabled state ([#3547](https://github.com/skbkontur/retail-ui/issues/3547)) ([69184a6](https://github.com/skbkontur/retail-ui/commit/69184a61284e21c6cab8e48c857c509e9b9ba06f))
|
|
13
|
+
* **DatePicker:** fix flushSync and onBlur on mobile ([#3556](https://github.com/skbkontur/retail-ui/issues/3556)) ([87b990e](https://github.com/skbkontur/retail-ui/commit/87b990e71ff737b2c27383328cdf72d9e4eeaf48))
|
|
14
|
+
* **HideBodyVerticalScroll:** fix disorderly unmount and resize ([#3565](https://github.com/skbkontur/retail-ui/issues/3565)) ([0c45cf0](https://github.com/skbkontur/retail-ui/commit/0c45cf0d760306e3c04a496dff987194607f4d91))
|
|
15
|
+
* **Loader:** prevent unwanted activation ([#3562](https://github.com/skbkontur/retail-ui/issues/3562)) ([fda0ed4](https://github.com/skbkontur/retail-ui/commit/fda0ed457323f7d2d07f418d196d9aaa2834d7f4))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
6
21
|
## [5.0.5](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.0.4...@skbkontur/react-ui@5.0.5) (2024-12-09)
|
|
7
22
|
|
|
8
23
|
|
|
@@ -18,25 +18,32 @@ var DayCellView = exports.DayCellView = function DayCellView(props) {var _isHoli
|
|
|
18
18
|
var _useContext = (0, _react.useContext)(_CalendarContext.CalendarContext),value = _useContext.value,minDate = _useContext.minDate,maxDate = _useContext.maxDate,isHoliday = _useContext.isHoliday,renderDay = _useContext.renderDay,today = _useContext.today,onDateClick = _useContext.onDateClick;
|
|
19
19
|
var theme = (0, _react.useContext)(_ThemeContext.ThemeContext);
|
|
20
20
|
|
|
21
|
-
var
|
|
22
|
-
onDateClick == null || onDateClick(date);
|
|
23
|
-
};
|
|
21
|
+
var isDisabled = !CDS.isBetween(date, minDate, maxDate);
|
|
24
22
|
|
|
25
23
|
var humanDateString = _InternalDateTransformer.InternalDateTransformer.dateToHumanString(date);
|
|
26
24
|
|
|
27
25
|
var dayProps = {
|
|
28
26
|
isToday: Boolean(today && CDS.isEqual(date, today)),
|
|
29
27
|
isSelected: Boolean(value && CDS.isEqual(date, value)),
|
|
30
|
-
isDisabled:
|
|
28
|
+
isDisabled: isDisabled,
|
|
31
29
|
isWeekend: (_isHoliday = isHoliday == null ? void 0 : isHoliday(humanDateString, date.isWeekend)) != null ? _isHoliday : date.isWeekend,
|
|
32
30
|
date: humanDateString
|
|
33
31
|
};
|
|
34
32
|
|
|
35
33
|
var dayElement = (_renderDay = renderDay == null ? void 0 : renderDay(dayProps)) != null ? _renderDay : /*#__PURE__*/_react.default.createElement(_CalendarDay.CalendarDay, dayProps);
|
|
34
|
+
var customDayClickHandler = dayElement.props.onClick;
|
|
35
|
+
|
|
36
|
+
var dayClickHandler = (0, _react.useCallback)(
|
|
37
|
+
function (e) {
|
|
38
|
+
customDayClickHandler == null || customDayClickHandler(e);
|
|
39
|
+
onDateClick == null || onDateClick(date);
|
|
40
|
+
},
|
|
41
|
+
[customDayClickHandler, onDateClick, date]
|
|
42
|
+
);
|
|
36
43
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
));
|
|
44
|
+
var dayElementWithClickHandler = /*#__PURE__*/_react.default.cloneElement(dayElement, {
|
|
45
|
+
onClick: dayClickHandler
|
|
46
|
+
});
|
|
41
47
|
|
|
48
|
+
return /*#__PURE__*/_react.default.createElement("div", { className: _DayCellView.styles.cell(theme) }, dayElementWithClickHandler);
|
|
42
49
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_ThemeContext","_InternalDateTransformer","_DayCellView","_CalendarContext","CDS","_CalendarDay","DayCellView","exports","props","_isHoliday","_renderDay","date","_useContext","useContext","CalendarContext","value","minDate","maxDate","isHoliday","renderDay","today","onDateClick","theme","ThemeContext","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_ThemeContext","_InternalDateTransformer","_DayCellView","_CalendarContext","CDS","_CalendarDay","DayCellView","exports","props","_isHoliday","_renderDay","date","_useContext","useContext","CalendarContext","value","minDate","maxDate","isHoliday","renderDay","today","onDateClick","theme","ThemeContext","isDisabled","isBetween","humanDateString","InternalDateTransformer","dateToHumanString","dayProps","isToday","Boolean","isEqual","isSelected","isWeekend","dayElement","default","createElement","CalendarDay","customDayClickHandler","onClick","dayClickHandler","useCallback","e","dayElementWithClickHandler","React","cloneElement","className","styles","cell"],"sources":["DayCellView.tsx"],"sourcesContent":["import React, { ReactElement, useCallback, useContext } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { InternalDateTransformer } from '../../lib/date/InternalDateTransformer';\n\nimport { styles } from './DayCellView.styles';\nimport { CalendarContext } from './CalendarContext';\nimport { DayCellViewModel } from './DayCellViewModel';\nimport * as CDS from './CalendarDateShape';\nimport { CalendarDay, CalendarDayProps } from './CalendarDay';\n\nexport interface DayCellViewProps {\n date: DayCellViewModel;\n}\n\nexport const DayCellView = (props: DayCellViewProps) => {\n const { date } = props;\n const { value, minDate, maxDate, isHoliday, renderDay, today, onDateClick } = useContext(CalendarContext);\n const theme = useContext(ThemeContext);\n\n const isDisabled = !CDS.isBetween(date, minDate, maxDate);\n\n const humanDateString = InternalDateTransformer.dateToHumanString(date);\n\n const dayProps: CalendarDayProps = {\n isToday: Boolean(today && CDS.isEqual(date, today)),\n isSelected: Boolean(value && CDS.isEqual(date, value)),\n isDisabled,\n isWeekend: isHoliday?.(humanDateString, date.isWeekend) ?? date.isWeekend,\n date: humanDateString,\n };\n\n const dayElement: ReactElement<CalendarDayProps> = renderDay?.(dayProps) ?? <CalendarDay {...dayProps} />;\n const customDayClickHandler = dayElement.props.onClick;\n\n const dayClickHandler = useCallback<NonNullable<typeof customDayClickHandler>>(\n (e) => {\n customDayClickHandler?.(e);\n onDateClick?.(date);\n },\n [customDayClickHandler, onDateClick, date],\n );\n\n const dayElementWithClickHandler = React.cloneElement<CalendarDayProps>(dayElement, {\n onClick: dayClickHandler,\n });\n\n return <div className={styles.cell(theme)}>{dayElementWithClickHandler}</div>;\n};\n"],"mappings":"mKAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;;AAEA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,wBAAA,GAAAF,OAAA;;AAEA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;;AAEA,IAAAK,GAAA,GAAAN,uBAAA,CAAAC,OAAA;AACA,IAAAM,YAAA,GAAAN,OAAA;;;;;;AAMO,IAAMO,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,SAAdA,WAAWA,CAAIE,KAAuB,EAAK,KAAAC,UAAA,EAAAC,UAAA;EACtD,IAAQC,IAAI,GAAKH,KAAK,CAAdG,IAAI;EACZ,IAAAC,WAAA,GAA8E,IAAAC,iBAAU,EAACC,gCAAe,CAAC,CAAjGC,KAAK,GAAAH,WAAA,CAALG,KAAK,CAAEC,OAAO,GAAAJ,WAAA,CAAPI,OAAO,CAAEC,OAAO,GAAAL,WAAA,CAAPK,OAAO,CAAEC,SAAS,GAAAN,WAAA,CAATM,SAAS,CAAEC,SAAS,GAAAP,WAAA,CAATO,SAAS,CAAEC,KAAK,GAAAR,WAAA,CAALQ,KAAK,CAAEC,WAAW,GAAAT,WAAA,CAAXS,WAAW;EACzE,IAAMC,KAAK,GAAG,IAAAT,iBAAU,EAACU,0BAAY,CAAC;;EAEtC,IAAMC,UAAU,GAAG,CAACpB,GAAG,CAACqB,SAAS,CAACd,IAAI,EAAEK,OAAO,EAAEC,OAAO,CAAC;;EAEzD,IAAMS,eAAe,GAAGC,gDAAuB,CAACC,iBAAiB,CAACjB,IAAI,CAAC;;EAEvE,IAAMkB,QAA0B,GAAG;IACjCC,OAAO,EAAEC,OAAO,CAACX,KAAK,IAAIhB,GAAG,CAAC4B,OAAO,CAACrB,IAAI,EAAES,KAAK,CAAC,CAAC;IACnDa,UAAU,EAAEF,OAAO,CAAChB,KAAK,IAAIX,GAAG,CAAC4B,OAAO,CAACrB,IAAI,EAAEI,KAAK,CAAC,CAAC;IACtDS,UAAU,EAAVA,UAAU;IACVU,SAAS,GAAAzB,UAAA,GAAES,SAAS,oBAATA,SAAS,CAAGQ,eAAe,EAAEf,IAAI,CAACuB,SAAS,CAAC,YAAAzB,UAAA,GAAIE,IAAI,CAACuB,SAAS;IACzEvB,IAAI,EAAEe;EACR,CAAC;;EAED,IAAMS,UAA0C,IAAAzB,UAAA,GAAGS,SAAS,oBAATA,SAAS,CAAGU,QAAQ,CAAC,YAAAnB,UAAA,gBAAIb,MAAA,CAAAuC,OAAA,CAAAC,aAAA,CAAChC,YAAA,CAAAiC,WAAW,EAAKT,QAAW,CAAC;EACzG,IAAMU,qBAAqB,GAAGJ,UAAU,CAAC3B,KAAK,CAACgC,OAAO;;EAEtD,IAAMC,eAAe,GAAG,IAAAC,kBAAW;IACjC,UAACC,CAAC,EAAK;MACLJ,qBAAqB,YAArBA,qBAAqB,CAAGI,CAAC,CAAC;MAC1BtB,WAAW,YAAXA,WAAW,CAAGV,IAAI,CAAC;IACrB,CAAC;IACD,CAAC4B,qBAAqB,EAAElB,WAAW,EAAEV,IAAI;EAC3C,CAAC;;EAED,IAAMiC,0BAA0B,gBAAGC,cAAK,CAACC,YAAY,CAAmBX,UAAU,EAAE;IAClFK,OAAO,EAAEC;EACX,CAAC,CAAC;;EAEF,oBAAO5C,MAAA,CAAAuC,OAAA,CAAAC,aAAA,UAAKU,SAAS,EAAEC,mBAAM,CAACC,IAAI,CAAC3B,KAAK,CAAE,IAAEsB,0BAAgC,CAAC;AAC/E,CAAC","ignoreList":[]}
|
|
@@ -472,4 +472,4 @@ DateInput = exports.DateInput = (_dec = (0, _decorators.locale)('DatePicker', _l
|
|
|
472
472
|
_this.shiftSelection(1);
|
|
473
473
|
}
|
|
474
474
|
_this.updateValue({ inputMode: inputMode });
|
|
475
|
-
};_this.state = { valueFormatted: '', selected: null, inputMode: false, focused: false, dragged: false };return _this;}(0, _inheritsLoose2.default)(DateInput, _React$Component);var _proto = DateInput.prototype;_proto.componentDidUpdate = function componentDidUpdate(prevProps) {var _this$getProps = this.getProps(),value = _this$getProps.value,minDate = _this$getProps.minDate,maxDate = _this$getProps.maxDate;if (prevProps.value !== value || prevProps.minDate !== minDate || prevProps.maxDate !== maxDate || this.iDateMediator.isChangedLocale(this.locale)) {this.updateFromProps(false);}this.selectNode();};_proto.componentDidMount = function componentDidMount() {this.updateFromProps(false);if (this.props.autoFocus) {this.focus();}};_proto.blur = function blur() {if (this.inputLikeText) {this.inputLikeText.blur();}};_proto.focus = function focus() {if (this.inputLikeText) {this.inputLikeText.focus();}};_proto.blink = function blink() {if (this.inputLikeText) {this.inputLikeText.blink();}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx2;var _this$state2 = this.state,focused = _this$state2.focused,selected = _this$state2.selected,inputMode = _this$state2.inputMode,valueFormatted = _this$state2.valueFormatted;var showValue = Boolean(focused || valueFormatted);var _this$getProps2 = this.getProps(),width = _this$getProps2.width,size = _this$getProps2.size;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_FocusControlWrapper.FocusControlWrapper, { onBlurWhenDisabled: this.resetFocus }, /*#__PURE__*/_react.default.createElement(_InputLikeText.InputLikeText, { id: this.props.id, width: width, ref: this.inputLikeTextRef, size: size, disabled: this.props.disabled, error: this.props.error, warning: this.props.warning, onBlur: this.handleBlur, onFocus: this.handleFocus, onClick: this.props.onClick, onKeyDown: this.handleKeyDown, onMouseDownCapture: this.handleMouseDownCapture, onPaste: this.handlePaste, rightIcon: this.renderIcon(), onDoubleClickCapture: this.handleDoubleClick, onMouseDragStart: this.handleMouseDragStart, onMouseDragEnd: this.handleMouseDragEnd, value: this.iDateMediator.getInternalString(), inputMode: 'numeric', takeContentWidth: true }, /*#__PURE__*/_react.default.createElement("span", { className: (0, _Emotion.cx)(_DateInput2.styles.value(), (_cx2 = {}, _cx2[_DateInput2.styles.valueVisible()] = showValue, _cx2)) }, /*#__PURE__*/_react.default.createElement(_DateFragmentsView.DateFragmentsView, { ref: this.dateFragmentsViewRef, fragments: this.iDateMediator.getFragments(), onSelectDateComponent: this.handleSelectDateComponent, selected: selected, inputMode: inputMode })))));};return DateInput;}(_react.default.Component), _DateInput.__KONTUR_REACT_UI__ = 'DateInput', _DateInput.displayName = 'DateInput', _DateInput.defaultProps = { value: '', minDate: _constants.MIN_FULLDATE, maxDate: _constants.MAX_FULLDATE, size: 'small', width: 125 }, _DateInput)) || _class) || _class);
|
|
475
|
+
};_this.state = { valueFormatted: '', selected: null, inputMode: false, focused: false, dragged: false };return _this;}(0, _inheritsLoose2.default)(DateInput, _React$Component);var _proto = DateInput.prototype;_proto.componentDidUpdate = function componentDidUpdate(prevProps) {var _this$getProps = this.getProps(),value = _this$getProps.value,minDate = _this$getProps.minDate,maxDate = _this$getProps.maxDate;if (prevProps.value !== value || prevProps.minDate !== minDate || prevProps.maxDate !== maxDate || this.iDateMediator.isChangedLocale(this.locale)) {this.updateFromProps(false);}!this.props.disabled && this.selectNode();};_proto.componentDidMount = function componentDidMount() {this.updateFromProps(false);if (this.props.autoFocus) {this.focus();}};_proto.blur = function blur() {if (this.inputLikeText) {this.inputLikeText.blur();}};_proto.focus = function focus() {if (this.inputLikeText) {this.inputLikeText.focus();}};_proto.blink = function blink() {if (this.inputLikeText) {this.inputLikeText.blink();}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx2;var _this$state2 = this.state,focused = _this$state2.focused,selected = _this$state2.selected,inputMode = _this$state2.inputMode,valueFormatted = _this$state2.valueFormatted;var showValue = Boolean(focused || valueFormatted);var _this$getProps2 = this.getProps(),width = _this$getProps2.width,size = _this$getProps2.size;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_FocusControlWrapper.FocusControlWrapper, { onBlurWhenDisabled: this.resetFocus }, /*#__PURE__*/_react.default.createElement(_InputLikeText.InputLikeText, { id: this.props.id, width: width, ref: this.inputLikeTextRef, size: size, disabled: this.props.disabled, error: this.props.error, warning: this.props.warning, onBlur: this.handleBlur, onFocus: this.handleFocus, onClick: this.props.onClick, onKeyDown: this.handleKeyDown, onMouseDownCapture: this.handleMouseDownCapture, onPaste: this.handlePaste, rightIcon: this.renderIcon(), onDoubleClickCapture: this.handleDoubleClick, onMouseDragStart: this.handleMouseDragStart, onMouseDragEnd: this.handleMouseDragEnd, value: this.iDateMediator.getInternalString(), inputMode: 'numeric', takeContentWidth: true }, /*#__PURE__*/_react.default.createElement("span", { className: (0, _Emotion.cx)(_DateInput2.styles.value(), (_cx2 = {}, _cx2[_DateInput2.styles.valueVisible()] = showValue, _cx2)) }, /*#__PURE__*/_react.default.createElement(_DateFragmentsView.DateFragmentsView, { ref: this.dateFragmentsViewRef, fragments: this.iDateMediator.getFragments(), onSelectDateComponent: this.handleSelectDateComponent, selected: selected, inputMode: inputMode })))));};return DateInput;}(_react.default.Component), _DateInput.__KONTUR_REACT_UI__ = 'DateInput', _DateInput.displayName = 'DateInput', _DateInput.defaultProps = { value: '', minDate: _constants.MIN_FULLDATE, maxDate: _constants.MAX_FULLDATE, size: 'small', width: 125 }, _DateInput)) || _class) || _class);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactDom","_globalObject","_ConditionalHandler","_constants","_types","_locale","_InputLikeText","_decorators","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_FocusControlWrapper","_CalendarIcon","_DateFragmentsView","_DateInput2","_DateInputKeyboardActions","_InternalDateMediator","_dec","_class","_DateInput","DateInputDataTids","exports","icon","DateInput","locale","DatePickerLocaleHelper","rootNode","_React$Component","props","_this","call","getProps","createPropsGetter","defaultProps","iDateMediator","InternalDateMediator","inputLikeText","dateFragmentsView","isMouseDown","isMouseFocus","ignoringDelimiter","blurEvent","conditionalHandler","ConditionalHandler","add","Actions","MoveSelectionLeft","shiftSelection","MoveSelectionRight","Separator","pressDelimiter","MoveSelectionFirst","selectDateComponent","getLeftmostType","MoveSelectionLast","getRightmostType","Increment","shiftDateComponent","Decrement","Digit","e","inputValue","ClearSelection","clearSelected","ClearOneChar","clearOneChar","FullSelection","fullSelection","WrongInput","blink","build","selectNode","type","state","selected","getRootNode","InternalDateComponentType","All","selectInnerNode","index","getTypesOrder","indexOf","renderIcon","_this$props","withIcon","_this$props$disabled","disabled","size","_cx","theme","default","createElement","CalendarIcon","iconStyles","cx","styles","iconSmall","iconMedium","iconLarge","iconDisabled","className","handleFocus","setState","prevState","focused","onFocus","resetFocus","updateValue","inputMode","handleBlur","onBlur","restored","restore","persist","handleMouseDownCapture","isFragment","target","preventDefault","handleSelectDateComponent","isEmpty","handleMouseDragStart","dragged","handleMouseDragEnd","selection","globalObject","getSelection","toString","length","LENGTH_FULLDATE","handleKeyDown","extractAction","onKeyDown","handlePaste","pasted","clipboardData","getData","trim","validateString","paste","handleDoubleClick","inputLikeTextRef","el","dateFragmentsViewRef","sync","valueFormatted","getString","update","_extends2","emitChange","React","version","search","ReactDOM","flushSync","updateFromProps","value","get","getInternalString","onValueChange","clear","_this$state","nextType","isNull","deleteOneCharRight","step","changed","getShiftedType","event","_this$iDateMediator$i","inputKey","key","_inheritsLoose2","_proto","prototype","componentDidUpdate","prevProps","_this$getProps","minDate","maxDate","isChangedLocale","componentDidMount","autoFocus","focus","blur","render","_this2","ThemeContext","Consumer","renderMain","_cx2","_this$state2","showValue","Boolean","_this$getProps2","width","CommonWrapper","rootNodeRef","setRootNode","FocusControlWrapper","onBlurWhenDisabled","InputLikeText","id","ref","error","warning","onClick","onMouseDownCapture","onPaste","rightIcon","onDoubleClickCapture","onMouseDragStart","onMouseDragEnd","takeContentWidth","valueVisible","DateFragmentsView","fragments","getFragments","onSelectDateComponent","Component","__KONTUR_REACT_UI__","displayName","MIN_FULLDATE","MAX_FULLDATE"],"sources":["DateInput.tsx"],"sourcesContent":["import React, { HTMLAttributes } from 'react';\nimport ReactDOM from 'react-dom';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ConditionalHandler } from '../../lib/ConditionalHandler';\nimport { LENGTH_FULLDATE, MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateComponentType } from '../../lib/date/types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { DatePickerLocale, DatePickerLocaleHelper } from '../DatePicker/locale';\nimport { InputLikeText } from '../../internal/InputLikeText';\nimport { locale } from '../../lib/locale/decorators';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\n\nimport { CalendarIcon } from './CalendarIcon';\nimport { DateFragmentsView } from './DateFragmentsView';\nimport { styles } from './DateInput.styles';\nimport { Actions, extractAction } from './helpers/DateInputKeyboardActions';\nimport { InternalDateMediator } from './helpers/InternalDateMediator';\n\nexport interface DateInputState {\n selected: InternalDateComponentType | null;\n valueFormatted: string;\n inputMode: boolean;\n focused: boolean;\n dragged: boolean;\n}\n\nexport const DateInputDataTids = {\n icon: 'DateInput__icon',\n} as const;\n\nexport interface DateInputProps extends CommonProps, Pick<HTMLAttributes<HTMLElement>, 'id'> {\n autoFocus?: boolean;\n value?: string;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n disabled?: boolean;\n /**\n * Минимальная дата.\n * @default '01.01.1900'\n */\n minDate?: string;\n /**\n * Максимальная дата\n * @default '31.12.2099'\n */\n maxDate?: string;\n /**\n * Ширина поля\n * @default 125\n */\n width?: string | number;\n withIcon?: boolean;\n /**\n * Размер поля\n * @default 'small'\n */\n size?: SizeProp;\n onBlur?: (x0: React.FocusEvent<HTMLElement>) => void;\n onClick?: (x0: React.MouseEvent<HTMLElement>) => void;\n onFocus?: (x0: React.FocusEvent<HTMLElement>) => void;\n /**\n * Вызывается при изменении `value`\n *\n * @param value - строка в формате `dd.mm.yyyy`.\n */\n onValueChange?: (value: string) => void;\n onKeyDown?: (x0: React.KeyboardEvent<HTMLElement>) => void;\n}\n\ntype DefaultProps = Required<Pick<DateInputProps, 'value' | 'minDate' | 'maxDate' | 'size' | 'width'>>;\n\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateInput extends React.Component<DateInputProps, DateInputState> {\n public static __KONTUR_REACT_UI__ = 'DateInput';\n public static displayName = 'DateInput';\n\n public static defaultProps: DefaultProps = {\n value: '',\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n size: 'small',\n width: 125,\n };\n\n private getProps = createPropsGetter(DateInput.defaultProps);\n\n private iDateMediator: InternalDateMediator = new InternalDateMediator();\n private inputLikeText: InputLikeText | null = null;\n private dateFragmentsView: DateFragmentsView | null = null;\n private isMouseDown = false;\n private isMouseFocus = false;\n private ignoringDelimiter = false;\n private locale!: DatePickerLocale;\n private blurEvent: React.FocusEvent<HTMLElement> | null = null;\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private conditionalHandler = new ConditionalHandler<Actions, [React.KeyboardEvent<HTMLElement>]>()\n .add(Actions.MoveSelectionLeft, () => this.shiftSelection(-1))\n .add(Actions.MoveSelectionRight, () => this.shiftSelection(1))\n .add(Actions.Separator, () => this.pressDelimiter())\n .add(Actions.MoveSelectionFirst, () => this.selectDateComponent(this.iDateMediator.getLeftmostType()))\n .add(Actions.MoveSelectionLast, () => this.selectDateComponent(this.iDateMediator.getRightmostType()))\n .add(Actions.Increment, () => this.shiftDateComponent(1))\n .add(Actions.Decrement, () => this.shiftDateComponent(-1))\n .add(Actions.Digit, (e) => this.inputValue(e))\n .add(Actions.ClearSelection, () => this.clearSelected())\n .add(Actions.ClearOneChar, () => this.clearOneChar())\n .add(Actions.FullSelection, () => this.fullSelection())\n .add(Actions.WrongInput, () => this.blink())\n .build();\n\n constructor(props: DateInputProps) {\n super(props);\n\n this.state = {\n valueFormatted: '',\n selected: null,\n inputMode: false,\n focused: false,\n dragged: false,\n };\n }\n\n public componentDidUpdate(prevProps: DateInputProps) {\n const { value, minDate, maxDate } = this.getProps();\n if (\n prevProps.value !== value ||\n prevProps.minDate !== minDate ||\n prevProps.maxDate !== maxDate ||\n this.iDateMediator.isChangedLocale(this.locale)\n ) {\n this.updateFromProps(false);\n }\n this.selectNode();\n }\n\n public selectNode = () => {\n const type = this.state.selected;\n const dateFragmentsView = this.dateFragmentsView && this.dateFragmentsView.getRootNode();\n if (type === null || !this.inputLikeText || !dateFragmentsView) {\n return;\n }\n if (type === InternalDateComponentType.All) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, 0, 5);\n return;\n }\n const index = this.iDateMediator.getTypesOrder().indexOf(type);\n if (index > -1) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, index * 2, index * 2 + 1);\n }\n };\n\n public componentDidMount(): void {\n this.updateFromProps(false);\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public blur() {\n if (this.inputLikeText) {\n this.inputLikeText.blur();\n }\n }\n\n public focus() {\n if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n }\n\n public blink() {\n if (this.inputLikeText) {\n this.inputLikeText.blink();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { focused, selected, inputMode, valueFormatted } = this.state;\n const showValue = Boolean(focused || valueFormatted);\n const { width, size } = this.getProps();\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <InputLikeText\n id={this.props.id}\n width={width}\n ref={this.inputLikeTextRef}\n size={size}\n disabled={this.props.disabled}\n error={this.props.error}\n warning={this.props.warning}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onClick={this.props.onClick}\n onKeyDown={this.handleKeyDown}\n onMouseDownCapture={this.handleMouseDownCapture}\n onPaste={this.handlePaste}\n rightIcon={this.renderIcon()}\n onDoubleClickCapture={this.handleDoubleClick}\n onMouseDragStart={this.handleMouseDragStart}\n onMouseDragEnd={this.handleMouseDragEnd}\n value={this.iDateMediator.getInternalString()}\n inputMode={'numeric'}\n takeContentWidth\n >\n <span className={cx(styles.value(), { [styles.valueVisible()]: showValue })}>\n <DateFragmentsView\n ref={this.dateFragmentsViewRef}\n fragments={this.iDateMediator.getFragments()}\n onSelectDateComponent={this.handleSelectDateComponent}\n selected={selected}\n inputMode={inputMode}\n />\n </span>\n </InputLikeText>\n </FocusControlWrapper>\n </CommonWrapper>\n );\n }\n\n private renderIcon = () => {\n const { withIcon, disabled = false } = this.props;\n const size = this.getProps().size;\n\n if (withIcon) {\n const theme = this.theme;\n const icon = <CalendarIcon size={size} />;\n const iconStyles = cx({\n [styles.icon(theme)]: true,\n [styles.iconSmall(theme)]: size === 'small',\n [styles.iconMedium(theme)]: size === 'medium',\n [styles.iconLarge(theme)]: size === 'large',\n [styles.iconDisabled(theme)]: disabled,\n });\n return (\n <span className={iconStyles} data-tid={DateInputDataTids.icon}>\n {icon}\n </span>\n );\n }\n return null;\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n this.setState((prevState) => ({\n focused: true,\n selected: this.isMouseDown && !prevState.focused ? prevState.selected : this.iDateMediator.getLeftmostType(),\n }));\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private resetFocus = () => this.updateValue({ focused: false, selected: null, inputMode: false });\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n this.resetFocus();\n\n if (this.props.onBlur) {\n const restored = this.iDateMediator.restore();\n if (restored) {\n e.persist();\n this.blurEvent = e;\n } else {\n this.props.onBlur(e);\n }\n }\n };\n\n private handleMouseDownCapture = (e: React.MouseEvent<HTMLSpanElement>) => {\n const isFragment = this.dateFragmentsView ? this.dateFragmentsView.isFragment(e.target) : false;\n if (this.state.focused && !isFragment) {\n e.preventDefault();\n }\n this.isMouseFocus = !this.state.focused;\n this.isMouseDown = isFragment;\n };\n\n private handleSelectDateComponent = (type: InternalDateComponentType) => {\n if (!(this.isMouseFocus && this.iDateMediator.isEmpty())) {\n this.selectDateComponent(type);\n }\n this.isMouseFocus = false;\n this.isMouseDown = false;\n };\n\n private handleMouseDragStart = () => {\n this.setState({ dragged: true, selected: null });\n };\n\n private handleMouseDragEnd = () => {\n const selection = globalObject.getSelection?.();\n if (\n selection &&\n selection.toString().length === LENGTH_FULLDATE &&\n this.state.selected !== InternalDateComponentType.All\n ) {\n this.selectDateComponent(InternalDateComponentType.All);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.conditionalHandler(extractAction(e), e)) {\n e.preventDefault();\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handlePaste = (e: React.ClipboardEvent<HTMLElement>) => {\n const pasted = e && e.clipboardData.getData('text').trim();\n if (pasted && this.iDateMediator.validateString(pasted)) {\n this.iDateMediator.paste(pasted);\n this.updateValue();\n }\n };\n\n private handleDoubleClick = () => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private inputLikeTextRef = (el: InputLikeText | null) => {\n this.inputLikeText = el;\n };\n\n private dateFragmentsViewRef = (el: DateFragmentsView | null) => {\n this.dateFragmentsView = el;\n };\n\n private selectDateComponent = (selected: InternalDateComponentType | null): void => {\n this.setState({ selected, inputMode: false });\n };\n\n private updateValue = (state: Partial<DateInputState> = {}, sync = true): void => {\n const valueFormatted = this.iDateMediator.getString();\n\n const update = () => this.setState({ ...state, valueFormatted } as DateInputState, this.emitChange);\n\n if (sync && React.version.search('18') === 0) {\n ReactDOM.flushSync(update);\n } else {\n update();\n }\n };\n\n private updateFromProps = (sync: boolean): void => {\n this.iDateMediator.update(this.props, this.locale);\n\n this.updateValue({}, sync);\n };\n\n private fullSelection = (): void => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private pressDelimiter = (): void => {\n const value = this.iDateMediator.get(this.state.selected);\n if (value !== null && value !== '') {\n if (!this.ignoringDelimiter) {\n this.shiftSelection(1);\n }\n this.ignoringDelimiter = false;\n }\n };\n\n private emitChange = (): void => {\n const value = this.iDateMediator.getInternalString();\n if (this.props.value === value) {\n return;\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n if (this.blurEvent && this.props.onBlur) {\n this.props.onBlur(this.blurEvent);\n this.blurEvent = null;\n }\n };\n\n private clearSelected = (): void => {\n const selected = this.state.selected === null ? this.iDateMediator.getLeftmostType() : this.state.selected;\n this.iDateMediator.clear(selected);\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private clearOneChar = (): void => {\n const { selected, inputMode } = this.state;\n const nextType = selected === null ? this.iDateMediator.getRightmostType() : selected;\n if (this.iDateMediator.isNull(nextType)) {\n this.shiftSelection(-1);\n return;\n }\n if (selected === InternalDateComponentType.All) {\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.updateValue({ selected: this.iDateMediator.getLeftmostType() });\n return;\n }\n this.iDateMediator.deleteOneCharRight(nextType, inputMode);\n this.updateValue({\n inputMode: this.iDateMediator.get(nextType) !== null,\n selected: nextType,\n });\n };\n\n private shiftDateComponent = (step: number): void => {\n const { selected } = this.state;\n const changed = this.iDateMediator.shiftDateComponent(selected, step);\n if (!changed) {\n this.blink();\n return;\n }\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private shiftSelection = (step: number): void => {\n const selected = this.iDateMediator.getShiftedType(this.state.selected, step);\n if (selected !== this.state.selected) {\n this.setState({ selected, inputMode: false });\n }\n };\n\n private inputValue = (event: React.KeyboardEvent<HTMLElement>): void => {\n let selected = this.state.selected;\n if (selected === InternalDateComponentType.All) {\n selected = this.iDateMediator.getLeftmostType();\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.setState({ selected });\n }\n const { inputMode, changed } = this.iDateMediator.inputKey(event.key, selected, this.state.inputMode);\n if (!changed) {\n this.blink();\n return;\n }\n\n if (!inputMode) {\n this.ignoringDelimiter = true;\n this.shiftSelection(1);\n }\n this.updateValue({ inputMode });\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactDom","_globalObject","_ConditionalHandler","_constants","_types","_locale","_InputLikeText","_decorators","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_FocusControlWrapper","_CalendarIcon","_DateFragmentsView","_DateInput2","_DateInputKeyboardActions","_InternalDateMediator","_dec","_class","_DateInput","DateInputDataTids","exports","icon","DateInput","locale","DatePickerLocaleHelper","rootNode","_React$Component","props","_this","call","getProps","createPropsGetter","defaultProps","iDateMediator","InternalDateMediator","inputLikeText","dateFragmentsView","isMouseDown","isMouseFocus","ignoringDelimiter","blurEvent","conditionalHandler","ConditionalHandler","add","Actions","MoveSelectionLeft","shiftSelection","MoveSelectionRight","Separator","pressDelimiter","MoveSelectionFirst","selectDateComponent","getLeftmostType","MoveSelectionLast","getRightmostType","Increment","shiftDateComponent","Decrement","Digit","e","inputValue","ClearSelection","clearSelected","ClearOneChar","clearOneChar","FullSelection","fullSelection","WrongInput","blink","build","selectNode","type","state","selected","getRootNode","InternalDateComponentType","All","selectInnerNode","index","getTypesOrder","indexOf","renderIcon","_this$props","withIcon","_this$props$disabled","disabled","size","_cx","theme","default","createElement","CalendarIcon","iconStyles","cx","styles","iconSmall","iconMedium","iconLarge","iconDisabled","className","handleFocus","setState","prevState","focused","onFocus","resetFocus","updateValue","inputMode","handleBlur","onBlur","restored","restore","persist","handleMouseDownCapture","isFragment","target","preventDefault","handleSelectDateComponent","isEmpty","handleMouseDragStart","dragged","handleMouseDragEnd","selection","globalObject","getSelection","toString","length","LENGTH_FULLDATE","handleKeyDown","extractAction","onKeyDown","handlePaste","pasted","clipboardData","getData","trim","validateString","paste","handleDoubleClick","inputLikeTextRef","el","dateFragmentsViewRef","sync","valueFormatted","getString","update","_extends2","emitChange","React","version","search","ReactDOM","flushSync","updateFromProps","value","get","getInternalString","onValueChange","clear","_this$state","nextType","isNull","deleteOneCharRight","step","changed","getShiftedType","event","_this$iDateMediator$i","inputKey","key","_inheritsLoose2","_proto","prototype","componentDidUpdate","prevProps","_this$getProps","minDate","maxDate","isChangedLocale","componentDidMount","autoFocus","focus","blur","render","_this2","ThemeContext","Consumer","renderMain","_cx2","_this$state2","showValue","Boolean","_this$getProps2","width","CommonWrapper","rootNodeRef","setRootNode","FocusControlWrapper","onBlurWhenDisabled","InputLikeText","id","ref","error","warning","onClick","onMouseDownCapture","onPaste","rightIcon","onDoubleClickCapture","onMouseDragStart","onMouseDragEnd","takeContentWidth","valueVisible","DateFragmentsView","fragments","getFragments","onSelectDateComponent","Component","__KONTUR_REACT_UI__","displayName","MIN_FULLDATE","MAX_FULLDATE"],"sources":["DateInput.tsx"],"sourcesContent":["import React, { HTMLAttributes } from 'react';\nimport ReactDOM from 'react-dom';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ConditionalHandler } from '../../lib/ConditionalHandler';\nimport { LENGTH_FULLDATE, MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateComponentType } from '../../lib/date/types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { DatePickerLocale, DatePickerLocaleHelper } from '../DatePicker/locale';\nimport { InputLikeText } from '../../internal/InputLikeText';\nimport { locale } from '../../lib/locale/decorators';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\n\nimport { CalendarIcon } from './CalendarIcon';\nimport { DateFragmentsView } from './DateFragmentsView';\nimport { styles } from './DateInput.styles';\nimport { Actions, extractAction } from './helpers/DateInputKeyboardActions';\nimport { InternalDateMediator } from './helpers/InternalDateMediator';\n\nexport interface DateInputState {\n selected: InternalDateComponentType | null;\n valueFormatted: string;\n inputMode: boolean;\n focused: boolean;\n dragged: boolean;\n}\n\nexport const DateInputDataTids = {\n icon: 'DateInput__icon',\n} as const;\n\nexport interface DateInputProps extends CommonProps, Pick<HTMLAttributes<HTMLElement>, 'id'> {\n autoFocus?: boolean;\n value?: string;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n disabled?: boolean;\n /**\n * Минимальная дата.\n * @default '01.01.1900'\n */\n minDate?: string;\n /**\n * Максимальная дата\n * @default '31.12.2099'\n */\n maxDate?: string;\n /**\n * Ширина поля\n * @default 125\n */\n width?: string | number;\n withIcon?: boolean;\n /**\n * Размер поля\n * @default 'small'\n */\n size?: SizeProp;\n onBlur?: (x0: React.FocusEvent<HTMLElement>) => void;\n onClick?: (x0: React.MouseEvent<HTMLElement>) => void;\n onFocus?: (x0: React.FocusEvent<HTMLElement>) => void;\n /**\n * Вызывается при изменении `value`\n *\n * @param value - строка в формате `dd.mm.yyyy`.\n */\n onValueChange?: (value: string) => void;\n onKeyDown?: (x0: React.KeyboardEvent<HTMLElement>) => void;\n}\n\ntype DefaultProps = Required<Pick<DateInputProps, 'value' | 'minDate' | 'maxDate' | 'size' | 'width'>>;\n\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateInput extends React.Component<DateInputProps, DateInputState> {\n public static __KONTUR_REACT_UI__ = 'DateInput';\n public static displayName = 'DateInput';\n\n public static defaultProps: DefaultProps = {\n value: '',\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n size: 'small',\n width: 125,\n };\n\n private getProps = createPropsGetter(DateInput.defaultProps);\n\n private iDateMediator: InternalDateMediator = new InternalDateMediator();\n private inputLikeText: InputLikeText | null = null;\n private dateFragmentsView: DateFragmentsView | null = null;\n private isMouseDown = false;\n private isMouseFocus = false;\n private ignoringDelimiter = false;\n private locale!: DatePickerLocale;\n private blurEvent: React.FocusEvent<HTMLElement> | null = null;\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private conditionalHandler = new ConditionalHandler<Actions, [React.KeyboardEvent<HTMLElement>]>()\n .add(Actions.MoveSelectionLeft, () => this.shiftSelection(-1))\n .add(Actions.MoveSelectionRight, () => this.shiftSelection(1))\n .add(Actions.Separator, () => this.pressDelimiter())\n .add(Actions.MoveSelectionFirst, () => this.selectDateComponent(this.iDateMediator.getLeftmostType()))\n .add(Actions.MoveSelectionLast, () => this.selectDateComponent(this.iDateMediator.getRightmostType()))\n .add(Actions.Increment, () => this.shiftDateComponent(1))\n .add(Actions.Decrement, () => this.shiftDateComponent(-1))\n .add(Actions.Digit, (e) => this.inputValue(e))\n .add(Actions.ClearSelection, () => this.clearSelected())\n .add(Actions.ClearOneChar, () => this.clearOneChar())\n .add(Actions.FullSelection, () => this.fullSelection())\n .add(Actions.WrongInput, () => this.blink())\n .build();\n\n constructor(props: DateInputProps) {\n super(props);\n\n this.state = {\n valueFormatted: '',\n selected: null,\n inputMode: false,\n focused: false,\n dragged: false,\n };\n }\n\n public componentDidUpdate(prevProps: DateInputProps) {\n const { value, minDate, maxDate } = this.getProps();\n if (\n prevProps.value !== value ||\n prevProps.minDate !== minDate ||\n prevProps.maxDate !== maxDate ||\n this.iDateMediator.isChangedLocale(this.locale)\n ) {\n this.updateFromProps(false);\n }\n !this.props.disabled && this.selectNode();\n }\n\n public selectNode = () => {\n const type = this.state.selected;\n const dateFragmentsView = this.dateFragmentsView && this.dateFragmentsView.getRootNode();\n if (type === null || !this.inputLikeText || !dateFragmentsView) {\n return;\n }\n if (type === InternalDateComponentType.All) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, 0, 5);\n return;\n }\n const index = this.iDateMediator.getTypesOrder().indexOf(type);\n if (index > -1) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, index * 2, index * 2 + 1);\n }\n };\n\n public componentDidMount(): void {\n this.updateFromProps(false);\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public blur() {\n if (this.inputLikeText) {\n this.inputLikeText.blur();\n }\n }\n\n public focus() {\n if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n }\n\n public blink() {\n if (this.inputLikeText) {\n this.inputLikeText.blink();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { focused, selected, inputMode, valueFormatted } = this.state;\n const showValue = Boolean(focused || valueFormatted);\n const { width, size } = this.getProps();\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <InputLikeText\n id={this.props.id}\n width={width}\n ref={this.inputLikeTextRef}\n size={size}\n disabled={this.props.disabled}\n error={this.props.error}\n warning={this.props.warning}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onClick={this.props.onClick}\n onKeyDown={this.handleKeyDown}\n onMouseDownCapture={this.handleMouseDownCapture}\n onPaste={this.handlePaste}\n rightIcon={this.renderIcon()}\n onDoubleClickCapture={this.handleDoubleClick}\n onMouseDragStart={this.handleMouseDragStart}\n onMouseDragEnd={this.handleMouseDragEnd}\n value={this.iDateMediator.getInternalString()}\n inputMode={'numeric'}\n takeContentWidth\n >\n <span className={cx(styles.value(), { [styles.valueVisible()]: showValue })}>\n <DateFragmentsView\n ref={this.dateFragmentsViewRef}\n fragments={this.iDateMediator.getFragments()}\n onSelectDateComponent={this.handleSelectDateComponent}\n selected={selected}\n inputMode={inputMode}\n />\n </span>\n </InputLikeText>\n </FocusControlWrapper>\n </CommonWrapper>\n );\n }\n\n private renderIcon = () => {\n const { withIcon, disabled = false } = this.props;\n const size = this.getProps().size;\n\n if (withIcon) {\n const theme = this.theme;\n const icon = <CalendarIcon size={size} />;\n const iconStyles = cx({\n [styles.icon(theme)]: true,\n [styles.iconSmall(theme)]: size === 'small',\n [styles.iconMedium(theme)]: size === 'medium',\n [styles.iconLarge(theme)]: size === 'large',\n [styles.iconDisabled(theme)]: disabled,\n });\n return (\n <span className={iconStyles} data-tid={DateInputDataTids.icon}>\n {icon}\n </span>\n );\n }\n return null;\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n this.setState((prevState) => ({\n focused: true,\n selected: this.isMouseDown && !prevState.focused ? prevState.selected : this.iDateMediator.getLeftmostType(),\n }));\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private resetFocus = () => this.updateValue({ focused: false, selected: null, inputMode: false });\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n this.resetFocus();\n\n if (this.props.onBlur) {\n const restored = this.iDateMediator.restore();\n if (restored) {\n e.persist();\n this.blurEvent = e;\n } else {\n this.props.onBlur(e);\n }\n }\n };\n\n private handleMouseDownCapture = (e: React.MouseEvent<HTMLSpanElement>) => {\n const isFragment = this.dateFragmentsView ? this.dateFragmentsView.isFragment(e.target) : false;\n if (this.state.focused && !isFragment) {\n e.preventDefault();\n }\n this.isMouseFocus = !this.state.focused;\n this.isMouseDown = isFragment;\n };\n\n private handleSelectDateComponent = (type: InternalDateComponentType) => {\n if (!(this.isMouseFocus && this.iDateMediator.isEmpty())) {\n this.selectDateComponent(type);\n }\n this.isMouseFocus = false;\n this.isMouseDown = false;\n };\n\n private handleMouseDragStart = () => {\n this.setState({ dragged: true, selected: null });\n };\n\n private handleMouseDragEnd = () => {\n const selection = globalObject.getSelection?.();\n if (\n selection &&\n selection.toString().length === LENGTH_FULLDATE &&\n this.state.selected !== InternalDateComponentType.All\n ) {\n this.selectDateComponent(InternalDateComponentType.All);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.conditionalHandler(extractAction(e), e)) {\n e.preventDefault();\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handlePaste = (e: React.ClipboardEvent<HTMLElement>) => {\n const pasted = e && e.clipboardData.getData('text').trim();\n if (pasted && this.iDateMediator.validateString(pasted)) {\n this.iDateMediator.paste(pasted);\n this.updateValue();\n }\n };\n\n private handleDoubleClick = () => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private inputLikeTextRef = (el: InputLikeText | null) => {\n this.inputLikeText = el;\n };\n\n private dateFragmentsViewRef = (el: DateFragmentsView | null) => {\n this.dateFragmentsView = el;\n };\n\n private selectDateComponent = (selected: InternalDateComponentType | null): void => {\n this.setState({ selected, inputMode: false });\n };\n\n private updateValue = (state: Partial<DateInputState> = {}, sync = true): void => {\n const valueFormatted = this.iDateMediator.getString();\n\n const update = () => this.setState({ ...state, valueFormatted } as DateInputState, this.emitChange);\n\n if (sync && React.version.search('18') === 0) {\n ReactDOM.flushSync(update);\n } else {\n update();\n }\n };\n\n private updateFromProps = (sync: boolean): void => {\n this.iDateMediator.update(this.props, this.locale);\n\n this.updateValue({}, sync);\n };\n\n private fullSelection = (): void => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private pressDelimiter = (): void => {\n const value = this.iDateMediator.get(this.state.selected);\n if (value !== null && value !== '') {\n if (!this.ignoringDelimiter) {\n this.shiftSelection(1);\n }\n this.ignoringDelimiter = false;\n }\n };\n\n private emitChange = (): void => {\n const value = this.iDateMediator.getInternalString();\n if (this.props.value === value) {\n return;\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n if (this.blurEvent && this.props.onBlur) {\n this.props.onBlur(this.blurEvent);\n this.blurEvent = null;\n }\n };\n\n private clearSelected = (): void => {\n const selected = this.state.selected === null ? this.iDateMediator.getLeftmostType() : this.state.selected;\n this.iDateMediator.clear(selected);\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private clearOneChar = (): void => {\n const { selected, inputMode } = this.state;\n const nextType = selected === null ? this.iDateMediator.getRightmostType() : selected;\n if (this.iDateMediator.isNull(nextType)) {\n this.shiftSelection(-1);\n return;\n }\n if (selected === InternalDateComponentType.All) {\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.updateValue({ selected: this.iDateMediator.getLeftmostType() });\n return;\n }\n this.iDateMediator.deleteOneCharRight(nextType, inputMode);\n this.updateValue({\n inputMode: this.iDateMediator.get(nextType) !== null,\n selected: nextType,\n });\n };\n\n private shiftDateComponent = (step: number): void => {\n const { selected } = this.state;\n const changed = this.iDateMediator.shiftDateComponent(selected, step);\n if (!changed) {\n this.blink();\n return;\n }\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private shiftSelection = (step: number): void => {\n const selected = this.iDateMediator.getShiftedType(this.state.selected, step);\n if (selected !== this.state.selected) {\n this.setState({ selected, inputMode: false });\n }\n };\n\n private inputValue = (event: React.KeyboardEvent<HTMLElement>): void => {\n let selected = this.state.selected;\n if (selected === InternalDateComponentType.All) {\n selected = this.iDateMediator.getLeftmostType();\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.setState({ selected });\n }\n const { inputMode, changed } = this.iDateMediator.inputKey(event.key, selected, this.state.inputMode);\n if (!changed) {\n this.blink();\n return;\n }\n\n if (!inputMode) {\n this.ignoringDelimiter = true;\n this.shiftSelection(1);\n }\n this.updateValue({ inputMode });\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -112,7 +112,7 @@ export declare class DatePicker extends React.PureComponent<DatePickerProps, Dat
|
|
|
112
112
|
private setRootNode;
|
|
113
113
|
private isMobileLayout;
|
|
114
114
|
componentDidMount(): void;
|
|
115
|
-
componentDidUpdate(): void;
|
|
115
|
+
componentDidUpdate(prevProps: DatePickerProps, prevState: DatePickerState): void;
|
|
116
116
|
/**
|
|
117
117
|
* @public
|
|
118
118
|
*/
|
|
@@ -137,5 +137,6 @@ export declare class DatePicker extends React.PureComponent<DatePickerProps, Dat
|
|
|
137
137
|
private handleBlur;
|
|
138
138
|
private handleValueChange;
|
|
139
139
|
private handleSelect;
|
|
140
|
+
private handleMobileCloseRequest;
|
|
140
141
|
}
|
|
141
142
|
export {};
|
|
@@ -273,6 +273,10 @@ DatePicker = exports.DatePicker = (_dec = (0, _decorators.locale)('DatePicker',
|
|
|
273
273
|
|
|
274
274
|
|
|
275
275
|
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
|
|
276
280
|
|
|
277
281
|
|
|
278
282
|
|
|
@@ -295,7 +299,7 @@ DatePicker = exports.DatePicker = (_dec = (0, _decorators.locale)('DatePicker',
|
|
|
295
299
|
onValueChange: _this.props.onValueChange,
|
|
296
300
|
enableTodayLink: _this.props.enableTodayLink,
|
|
297
301
|
isHoliday: _this.props.isHoliday,
|
|
298
|
-
onCloseRequest: _this.
|
|
302
|
+
onCloseRequest: _this.handleMobileCloseRequest,
|
|
299
303
|
renderDay: props.renderDay,
|
|
300
304
|
onMonthChange: props.onMonthChange }
|
|
301
305
|
);
|
|
@@ -471,7 +475,11 @@ DatePicker = exports.DatePicker = (_dec = (0, _decorators.locale)('DatePicker',
|
|
|
471
475
|
if (_this.props.onValueChange) {
|
|
472
476
|
_this.props.onValueChange(value);
|
|
473
477
|
}
|
|
474
|
-
};
|
|
478
|
+
};_this.
|
|
479
|
+
|
|
480
|
+
handleMobileCloseRequest = function () {
|
|
481
|
+
_this.close();
|
|
482
|
+
};return _this;}(0, _inheritsLoose2.default)(DatePicker, _React$PureComponent);var _proto = DatePicker.prototype;_proto.componentDidMount = function componentDidMount() {if (this.props.useMobileNativeDatePicker && _client.isMobile) {this.setState({ canUseMobileNativeDatePicker: true });}if (this.props.autoFocus) {this.focus();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {var disabled = this.props.disabled;var opened = this.state.opened;if (disabled && opened) {this.close();}if (prevState.opened && !opened && this.isMobileLayout) {this.handleBlur();}} /**
|
|
475
483
|
* @public
|
|
476
484
|
*/;_proto.blur = function blur() {if (this.input) {this.input.blur();}this.handleBlur();} /**
|
|
477
485
|
* @public
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_propTypes","_interopRequireDefault","require","_react","_Popup","_locale","_decorators","_InternalDateGetter","_ArrowAUp16Light","_ThemeFactory","_InternalDate","_constants","_types","_DateInput","_filterProps","_CommonWrapper","_client","_NativeDateInput","_rootNode","_utils","_createPropsGetter","_Calendar","_ThemeContext","_Button","_CalendarUtils","_decorator","_getMenuPositions","_ZIndex","_DatePicker2","_locale2","_MobilePicker","_dec","_class","_DatePicker","INPUT_PASS_PROPS","autoFocus","disabled","warning","error","size","onKeyDown","MIN_WIDTH","exports","DatePickerDataTids","root","input","label","pickerRoot","pickerTodayWrapper","DatePicker","locale","DatePickerLocaleHelper","responsiveLayout","rootNode","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","opened","canUseMobileNativeDatePicker","today","getTodayDate","focused","renderMain","props","picker","_this$getProps","minDate","maxDate","menuPos","menuAlign","isMobile","isMobileLayout","default","createElement","MobilePicker","value","parseValueToDate","onValueChange","enableTodayLink","isHoliday","onCloseRequest","handleBlur","renderDay","onMonthChange","LocaleContext","Provider","Calendar","months","dayCellChooseDateAriaLabel","selectMonthAriaLabel","selectYearAriaLabel","selectChosenAriaLabel","Popup","hasShadow","priority","ZIndex","priorities","PopupMenu","positions","getMenuPositions","anchorElement","getParent","margin","parseInt","theme","datePickerMenuOffsetY","className","styles","calendarWrapper","onMouseDown","e","preventDefault","handleValueChange","renderTodayLink","style","getRootStyle","onMouseEnter","onMouseLeave","onMouseOver","DateInput","_extends2","id","filterProps","ref","getInputRef","width","withIcon","onBlur","undefined","onFocus","handleFocus","NativeDateInput","getRootNode","isNonNullable","minWidth","setState","close","handleSelect","blur","_inheritsLoose2","_proto","prototype","componentDidMount","useMobileNativeDatePicker","focus","componentDidUpdate","render","_this2","ThemeContext","Consumer","ThemeFactory","create","calendarBottomSeparatorBorder","CommonWrapper","rootNodeRef","setRootNode","date","InternalDate","validate","checks","InternalDateValidateCheck","NotNull","Native","toString","withPad","_this3","_this$locale","order","separator","setComponents","InternalDateGetter","getTodayComponents","withSeparator","Button","todayAriaLabel","onClick","icon","ArrowAUpIcon16Light","React","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","PropTypes","bool","string","isRequired","oneOf","oneOfType","number","func","MIN_FULLDATE","MAX_FULLDATE","range","_range","_range$minDate","_range$maxDate","internalDate","InternalDateOrder","DMY","InternalDateSeparator","Dot","setRangeStart","setRangeEnd","parseValue","Number","Limits","Range"],"sources":["DatePicker.tsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { HTMLAttributes } from 'react';\n\nimport { Popup } from '../../internal/Popup';\nimport { LocaleContext } from '../../lib/locale';\nimport { locale } from '../../lib/locale/decorators';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateOrder, InternalDateSeparator, InternalDateValidateCheck } from '../../lib/date/types';\nimport { Nullable } from '../../typings/utility-types';\nimport { DateInput } from '../DateInput';\nimport { filterProps } from '../../lib/filterProps';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { isMobile } from '../../lib/client';\nimport { NativeDateInput } from '../../internal/NativeDateInput';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isNonNullable } from '../../lib/utils';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Calendar, CalendarDateShape, CalendarProps } from '../Calendar';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { Button } from '../Button';\nimport { getTodayDate } from '../Calendar/CalendarUtils';\nimport { SizeProp } from '../../lib/types/props';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport { getMenuPositions } from '../../lib/getMenuPositions';\nimport { ZIndex } from '../../internal/ZIndex';\n\nimport { styles } from './DatePicker.styles';\nimport { DatePickerLocale, DatePickerLocaleHelper } from './locale';\nimport { MobilePicker } from './MobilePicker';\n\nconst INPUT_PASS_PROPS = {\n autoFocus: true,\n disabled: true,\n warning: true,\n error: true,\n size: true,\n onKeyDown: true,\n};\n\nexport const MIN_WIDTH = 120;\n\nexport interface DatePickerProps\n extends Pick<CalendarProps, 'isHoliday' | 'minDate' | 'maxDate' | 'renderDay' | 'onMonthChange'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps {\n autoFocus?: boolean;\n disabled?: boolean;\n /**\n * Отвечает за отображение кнопки \"Сегодня\".\n */\n enableTodayLink?: boolean;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Позволяет вручную задать текущую позицию выпадающего окна\n */\n menuPos?: 'top' | 'bottom';\n menuAlign?: 'left' | 'right';\n size?: SizeProp;\n value?: string | null;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n width?: number | string;\n onBlur?: () => void;\n /**\n * Вызывается при изменении `value`\n *\n * @param value - строка в формате `dd.mm.yyyy`.\n */\n onValueChange: (value: string) => void;\n onFocus?: () => void;\n onKeyDown?: (e: React.KeyboardEvent<any>) => void;\n onMouseEnter?: (e: React.MouseEvent<any>) => void;\n onMouseLeave?: (e: React.MouseEvent<any>) => void;\n onMouseOver?: (e: React.MouseEvent<any>) => void;\n /**\n * Использовать на мобильных устройствах нативный календарь для выбора дат.\n *\n * - На iOS нативный календарь не умеет работать с minDate и maxDate\n */\n useMobileNativeDatePicker?: boolean;\n}\n\nexport interface DatePickerState {\n opened: boolean;\n canUseMobileNativeDatePicker: boolean;\n today: CalendarDateShape;\n}\n\nexport const DatePickerDataTids = {\n root: 'DatePicker__root',\n input: 'DatePicker__input',\n label: 'DatePicker__label',\n pickerRoot: 'Picker__root',\n pickerTodayWrapper: 'Picker__todayWrapper',\n} as const;\n\ntype DefaultProps = Required<Pick<DatePickerProps, 'minDate' | 'maxDate'>>;\n\n@responsiveLayout\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DatePicker extends React.PureComponent<DatePickerProps, DatePickerState> {\n public static __KONTUR_REACT_UI__ = 'DatePicker';\n public static displayName = 'DatePicker';\n\n public static propTypes = {\n autoFocus: PropTypes.bool,\n\n disabled: PropTypes.bool,\n\n /**\n * Включает кнопку сегодня в календаре\n */\n enableTodayLink: PropTypes.bool,\n\n error: PropTypes.bool,\n\n /**\n * Максимальная дата в календаре.\n */\n maxDate: PropTypes.string.isRequired,\n\n menuPos: PropTypes.oneOf(['top', 'bottom']),\n\n menuAlign: PropTypes.oneOf(['left', 'right']),\n\n /**\n * Минимальная дата в календаре.\n */\n minDate: PropTypes.string.isRequired,\n\n /**\n * Строка формата `dd.mm.yyyy`\n */\n value: PropTypes.string,\n\n warning: PropTypes.bool,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n onBlur: PropTypes.func,\n\n onValueChange: PropTypes.func.isRequired,\n\n onFocus: PropTypes.func,\n\n onKeyDown: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n\n onMouseLeave: PropTypes.func,\n\n onMouseOver: PropTypes.func,\n\n isHoliday: PropTypes.func,\n\n renderDay: PropTypes.func,\n\n onMonthChange: PropTypes.func,\n };\n\n public static defaultProps: DefaultProps = {\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n };\n\n private getProps = createPropsGetter(DatePicker.defaultProps);\n private theme!: Theme;\n private readonly locale!: DatePickerLocale;\n\n public static validate = (value: Nullable<string>, range: { minDate?: string; maxDate?: string } = {}) => {\n if (!value) {\n return false;\n }\n\n const { minDate = MIN_FULLDATE, maxDate = MAX_FULLDATE } = range;\n const internalDate = new InternalDate({\n order: InternalDateOrder.DMY,\n separator: InternalDateSeparator.Dot,\n })\n .setRangeStart(new InternalDate({ value: minDate }))\n .setRangeEnd(new InternalDate({ value: maxDate }))\n .parseValue(value);\n\n return internalDate.validate({\n checks: [\n InternalDateValidateCheck.NotNull,\n InternalDateValidateCheck.Number,\n InternalDateValidateCheck.Native,\n InternalDateValidateCheck.Limits,\n InternalDateValidateCheck.Range,\n ],\n });\n };\n\n public state: DatePickerState = { opened: false, canUseMobileNativeDatePicker: false, today: getTodayDate() };\n\n private input: DateInput | null = null;\n private focused = false;\n private setRootNode!: TSetRootNode;\n private isMobileLayout!: boolean;\n\n public componentDidMount() {\n if (this.props.useMobileNativeDatePicker && isMobile) {\n this.setState({\n canUseMobileNativeDatePicker: true,\n });\n }\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public componentDidUpdate() {\n const { disabled } = this.props;\n const { opened } = this.state;\n if (disabled && opened) {\n this.close();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.input) {\n this.input.blur();\n }\n this.handleBlur();\n }\n\n /**\n * @public\n */\n public focus() {\n if (this.props.disabled) {\n return;\n }\n if (this.input) {\n this.input.focus();\n }\n this.handleFocus();\n }\n\n /**\n * Закрывает выпадашку выбора дня\n * @public\n */\n public close() {\n this.setState({ opened: false });\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ calendarBottomSeparatorBorder: 'none' }, theme)}>\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DatePickerProps>) => {\n let picker = null;\n\n const { minDate, maxDate, menuPos, menuAlign } = this.getProps();\n\n const isMobile = this.isMobileLayout;\n\n if (this.state.opened) {\n if (isMobile) {\n picker = (\n <MobilePicker\n value={this.props.value}\n minDate={this.parseValueToDate(minDate)}\n maxDate={this.parseValueToDate(maxDate)}\n onValueChange={this.props.onValueChange}\n enableTodayLink={this.props.enableTodayLink}\n isHoliday={this.props.isHoliday}\n onCloseRequest={this.handleBlur}\n renderDay={props.renderDay}\n onMonthChange={props.onMonthChange}\n />\n );\n } else {\n picker = (\n <LocaleContext.Provider\n value={{\n locale: {\n Calendar: {\n months: this.locale.months,\n dayCellChooseDateAriaLabel: this.locale.dayCellChooseDateAriaLabel,\n selectMonthAriaLabel: this.locale.selectMonthAriaLabel,\n selectYearAriaLabel: this.locale.selectYearAriaLabel,\n selectChosenAriaLabel: this.locale.selectChosenAriaLabel,\n },\n },\n }}\n >\n <Popup\n opened\n hasShadow\n priority={ZIndex.priorities.PopupMenu}\n positions={getMenuPositions(menuPos, menuAlign)}\n data-tid={DatePickerDataTids.root}\n anchorElement={this.getParent()}\n margin={parseInt(this.theme.datePickerMenuOffsetY)}\n >\n <div\n data-tid={DatePickerDataTids.pickerRoot}\n className={styles.calendarWrapper(this.theme)}\n onMouseDown={(e) => e.preventDefault()}\n >\n <Calendar\n maxDate={this.parseValueToDate(maxDate)}\n minDate={this.parseValueToDate(minDate)}\n onValueChange={this.handleValueChange}\n isHoliday={this.props.isHoliday}\n value={this.parseValueToDate(this.props.value)}\n renderDay={this.props.renderDay}\n onMonthChange={this.props.onMonthChange}\n />\n {this.props.enableTodayLink && this.renderTodayLink()}{' '}\n </div>\n </Popup>\n </LocaleContext.Provider>\n );\n }\n }\n return (\n <label\n className={styles.root()}\n style={this.getRootStyle()}\n onMouseEnter={this.props.onMouseEnter}\n onMouseLeave={this.props.onMouseLeave}\n onMouseOver={this.props.onMouseOver}\n data-tid={DatePickerDataTids.label}\n >\n <DateInput\n id={this.props.id}\n {...filterProps(props, INPUT_PASS_PROPS)}\n ref={this.getInputRef}\n value={this.props.value || ''}\n width=\"100%\"\n withIcon\n minDate={minDate}\n maxDate={maxDate}\n onBlur={isMobile ? undefined : this.handleBlur}\n onFocus={this.handleFocus}\n onValueChange={this.props.onValueChange}\n data-tid={DatePickerDataTids.input}\n />\n {this.state.canUseMobileNativeDatePicker ? (\n <NativeDateInput\n onValueChange={this.props.onValueChange}\n value={this.props.value || ''}\n minDate={minDate}\n maxDate={maxDate}\n disabled={this.props.disabled}\n />\n ) : (\n picker\n )}\n </label>\n );\n };\n private parseValueToDate(value?: Nullable<string>): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n const date = new InternalDate({ value });\n if (date.validate({ checks: [InternalDateValidateCheck.NotNull, InternalDateValidateCheck.Native] })) {\n return date.toString({ withPad: true });\n }\n\n return undefined;\n }\n\n private renderTodayLink() {\n const { order, separator } = this.locale;\n const today = new InternalDate({ order, separator })\n .setComponents(InternalDateGetter.getTodayComponents())\n .toString({ withPad: true, withSeparator: true });\n\n return (\n <div style={{ margin: 8 }}>\n <Button\n aria-label={this.locale.todayAriaLabel}\n data-tid={DatePickerDataTids.pickerTodayWrapper}\n width=\"100%\"\n onClick={() => {\n this.handleSelect(today);\n }}\n icon={<ArrowAUpIcon16Light />}\n >\n {this.locale.today}\n </Button>\n </div>\n );\n }\n\n public getParent = () => {\n return getRootNode(this);\n };\n\n private getRootStyle = () => {\n const { width } = this.props;\n return isNonNullable(width) ? { width } : { minWidth: MIN_WIDTH };\n };\n\n private getInputRef = (ref: DateInput | null) => {\n this.input = ref;\n };\n\n private handleFocus = () => {\n if (this.focused) {\n return;\n }\n\n this.focused = true;\n\n this.setState({ opened: true });\n\n if (this.props.onFocus) {\n this.props.onFocus();\n }\n };\n\n private handleBlur = () => {\n if (!this.focused) {\n return;\n }\n\n this.focused = false;\n this.close();\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handleValueChange = (value: string) => {\n this.handleSelect(value);\n this.blur();\n };\n\n private handleSelect = (value: string | null) => {\n if (!value) {\n return null;\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_propTypes","_interopRequireDefault","require","_react","_Popup","_locale","_decorators","_InternalDateGetter","_ArrowAUp16Light","_ThemeFactory","_InternalDate","_constants","_types","_DateInput","_filterProps","_CommonWrapper","_client","_NativeDateInput","_rootNode","_utils","_createPropsGetter","_Calendar","_ThemeContext","_Button","_CalendarUtils","_decorator","_getMenuPositions","_ZIndex","_DatePicker2","_locale2","_MobilePicker","_dec","_class","_DatePicker","INPUT_PASS_PROPS","autoFocus","disabled","warning","error","size","onKeyDown","MIN_WIDTH","exports","DatePickerDataTids","root","input","label","pickerRoot","pickerTodayWrapper","DatePicker","locale","DatePickerLocaleHelper","responsiveLayout","rootNode","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","opened","canUseMobileNativeDatePicker","today","getTodayDate","focused","renderMain","props","picker","_this$getProps","minDate","maxDate","menuPos","menuAlign","isMobile","isMobileLayout","default","createElement","MobilePicker","value","parseValueToDate","onValueChange","enableTodayLink","isHoliday","onCloseRequest","handleMobileCloseRequest","renderDay","onMonthChange","LocaleContext","Provider","Calendar","months","dayCellChooseDateAriaLabel","selectMonthAriaLabel","selectYearAriaLabel","selectChosenAriaLabel","Popup","hasShadow","priority","ZIndex","priorities","PopupMenu","positions","getMenuPositions","anchorElement","getParent","margin","parseInt","theme","datePickerMenuOffsetY","className","styles","calendarWrapper","onMouseDown","e","preventDefault","handleValueChange","renderTodayLink","style","getRootStyle","onMouseEnter","onMouseLeave","onMouseOver","DateInput","_extends2","id","filterProps","ref","getInputRef","width","withIcon","onBlur","undefined","handleBlur","onFocus","handleFocus","NativeDateInput","getRootNode","isNonNullable","minWidth","setState","close","handleSelect","blur","_inheritsLoose2","_proto","prototype","componentDidMount","useMobileNativeDatePicker","focus","componentDidUpdate","prevProps","prevState","render","_this2","ThemeContext","Consumer","ThemeFactory","create","calendarBottomSeparatorBorder","CommonWrapper","rootNodeRef","setRootNode","date","InternalDate","validate","checks","InternalDateValidateCheck","NotNull","Native","toString","withPad","_this3","_this$locale","order","separator","setComponents","InternalDateGetter","getTodayComponents","withSeparator","Button","todayAriaLabel","onClick","icon","ArrowAUpIcon16Light","React","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","PropTypes","bool","string","isRequired","oneOf","oneOfType","number","func","MIN_FULLDATE","MAX_FULLDATE","range","_range","_range$minDate","_range$maxDate","internalDate","InternalDateOrder","DMY","InternalDateSeparator","Dot","setRangeStart","setRangeEnd","parseValue","Number","Limits","Range"],"sources":["DatePicker.tsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { HTMLAttributes } from 'react';\n\nimport { Popup } from '../../internal/Popup';\nimport { LocaleContext } from '../../lib/locale';\nimport { locale } from '../../lib/locale/decorators';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateOrder, InternalDateSeparator, InternalDateValidateCheck } from '../../lib/date/types';\nimport { Nullable } from '../../typings/utility-types';\nimport { DateInput } from '../DateInput';\nimport { filterProps } from '../../lib/filterProps';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { isMobile } from '../../lib/client';\nimport { NativeDateInput } from '../../internal/NativeDateInput';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isNonNullable } from '../../lib/utils';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Calendar, CalendarDateShape, CalendarProps } from '../Calendar';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { Button } from '../Button';\nimport { getTodayDate } from '../Calendar/CalendarUtils';\nimport { SizeProp } from '../../lib/types/props';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport { getMenuPositions } from '../../lib/getMenuPositions';\nimport { ZIndex } from '../../internal/ZIndex';\n\nimport { styles } from './DatePicker.styles';\nimport { DatePickerLocale, DatePickerLocaleHelper } from './locale';\nimport { MobilePicker } from './MobilePicker';\n\nconst INPUT_PASS_PROPS = {\n autoFocus: true,\n disabled: true,\n warning: true,\n error: true,\n size: true,\n onKeyDown: true,\n};\n\nexport const MIN_WIDTH = 120;\n\nexport interface DatePickerProps\n extends Pick<CalendarProps, 'isHoliday' | 'minDate' | 'maxDate' | 'renderDay' | 'onMonthChange'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps {\n autoFocus?: boolean;\n disabled?: boolean;\n /**\n * Отвечает за отображение кнопки \"Сегодня\".\n */\n enableTodayLink?: boolean;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Позволяет вручную задать текущую позицию выпадающего окна\n */\n menuPos?: 'top' | 'bottom';\n menuAlign?: 'left' | 'right';\n size?: SizeProp;\n value?: string | null;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n width?: number | string;\n onBlur?: () => void;\n /**\n * Вызывается при изменении `value`\n *\n * @param value - строка в формате `dd.mm.yyyy`.\n */\n onValueChange: (value: string) => void;\n onFocus?: () => void;\n onKeyDown?: (e: React.KeyboardEvent<any>) => void;\n onMouseEnter?: (e: React.MouseEvent<any>) => void;\n onMouseLeave?: (e: React.MouseEvent<any>) => void;\n onMouseOver?: (e: React.MouseEvent<any>) => void;\n /**\n * Использовать на мобильных устройствах нативный календарь для выбора дат.\n *\n * - На iOS нативный календарь не умеет работать с minDate и maxDate\n */\n useMobileNativeDatePicker?: boolean;\n}\n\nexport interface DatePickerState {\n opened: boolean;\n canUseMobileNativeDatePicker: boolean;\n today: CalendarDateShape;\n}\n\nexport const DatePickerDataTids = {\n root: 'DatePicker__root',\n input: 'DatePicker__input',\n label: 'DatePicker__label',\n pickerRoot: 'Picker__root',\n pickerTodayWrapper: 'Picker__todayWrapper',\n} as const;\n\ntype DefaultProps = Required<Pick<DatePickerProps, 'minDate' | 'maxDate'>>;\n\n@responsiveLayout\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DatePicker extends React.PureComponent<DatePickerProps, DatePickerState> {\n public static __KONTUR_REACT_UI__ = 'DatePicker';\n public static displayName = 'DatePicker';\n\n public static propTypes = {\n autoFocus: PropTypes.bool,\n\n disabled: PropTypes.bool,\n\n /**\n * Включает кнопку сегодня в календаре\n */\n enableTodayLink: PropTypes.bool,\n\n error: PropTypes.bool,\n\n /**\n * Максимальная дата в календаре.\n */\n maxDate: PropTypes.string.isRequired,\n\n menuPos: PropTypes.oneOf(['top', 'bottom']),\n\n menuAlign: PropTypes.oneOf(['left', 'right']),\n\n /**\n * Минимальная дата в календаре.\n */\n minDate: PropTypes.string.isRequired,\n\n /**\n * Строка формата `dd.mm.yyyy`\n */\n value: PropTypes.string,\n\n warning: PropTypes.bool,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n onBlur: PropTypes.func,\n\n onValueChange: PropTypes.func.isRequired,\n\n onFocus: PropTypes.func,\n\n onKeyDown: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n\n onMouseLeave: PropTypes.func,\n\n onMouseOver: PropTypes.func,\n\n isHoliday: PropTypes.func,\n\n renderDay: PropTypes.func,\n\n onMonthChange: PropTypes.func,\n };\n\n public static defaultProps: DefaultProps = {\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n };\n\n private getProps = createPropsGetter(DatePicker.defaultProps);\n private theme!: Theme;\n private readonly locale!: DatePickerLocale;\n\n public static validate = (value: Nullable<string>, range: { minDate?: string; maxDate?: string } = {}) => {\n if (!value) {\n return false;\n }\n\n const { minDate = MIN_FULLDATE, maxDate = MAX_FULLDATE } = range;\n const internalDate = new InternalDate({\n order: InternalDateOrder.DMY,\n separator: InternalDateSeparator.Dot,\n })\n .setRangeStart(new InternalDate({ value: minDate }))\n .setRangeEnd(new InternalDate({ value: maxDate }))\n .parseValue(value);\n\n return internalDate.validate({\n checks: [\n InternalDateValidateCheck.NotNull,\n InternalDateValidateCheck.Number,\n InternalDateValidateCheck.Native,\n InternalDateValidateCheck.Limits,\n InternalDateValidateCheck.Range,\n ],\n });\n };\n\n public state: DatePickerState = { opened: false, canUseMobileNativeDatePicker: false, today: getTodayDate() };\n\n private input: DateInput | null = null;\n private focused = false;\n private setRootNode!: TSetRootNode;\n private isMobileLayout!: boolean;\n\n public componentDidMount() {\n if (this.props.useMobileNativeDatePicker && isMobile) {\n this.setState({\n canUseMobileNativeDatePicker: true,\n });\n }\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public componentDidUpdate(prevProps: DatePickerProps, prevState: DatePickerState) {\n const { disabled } = this.props;\n const { opened } = this.state;\n if (disabled && opened) {\n this.close();\n }\n\n if (prevState.opened && !opened && this.isMobileLayout) {\n this.handleBlur();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.input) {\n this.input.blur();\n }\n this.handleBlur();\n }\n\n /**\n * @public\n */\n public focus() {\n if (this.props.disabled) {\n return;\n }\n if (this.input) {\n this.input.focus();\n }\n this.handleFocus();\n }\n\n /**\n * Закрывает выпадашку выбора дня\n * @public\n */\n public close() {\n this.setState({ opened: false });\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ calendarBottomSeparatorBorder: 'none' }, theme)}>\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DatePickerProps>) => {\n let picker = null;\n\n const { minDate, maxDate, menuPos, menuAlign } = this.getProps();\n\n const isMobile = this.isMobileLayout;\n\n if (this.state.opened) {\n if (isMobile) {\n picker = (\n <MobilePicker\n value={this.props.value}\n minDate={this.parseValueToDate(minDate)}\n maxDate={this.parseValueToDate(maxDate)}\n onValueChange={this.props.onValueChange}\n enableTodayLink={this.props.enableTodayLink}\n isHoliday={this.props.isHoliday}\n onCloseRequest={this.handleMobileCloseRequest}\n renderDay={props.renderDay}\n onMonthChange={props.onMonthChange}\n />\n );\n } else {\n picker = (\n <LocaleContext.Provider\n value={{\n locale: {\n Calendar: {\n months: this.locale.months,\n dayCellChooseDateAriaLabel: this.locale.dayCellChooseDateAriaLabel,\n selectMonthAriaLabel: this.locale.selectMonthAriaLabel,\n selectYearAriaLabel: this.locale.selectYearAriaLabel,\n selectChosenAriaLabel: this.locale.selectChosenAriaLabel,\n },\n },\n }}\n >\n <Popup\n opened\n hasShadow\n priority={ZIndex.priorities.PopupMenu}\n positions={getMenuPositions(menuPos, menuAlign)}\n data-tid={DatePickerDataTids.root}\n anchorElement={this.getParent()}\n margin={parseInt(this.theme.datePickerMenuOffsetY)}\n >\n <div\n data-tid={DatePickerDataTids.pickerRoot}\n className={styles.calendarWrapper(this.theme)}\n onMouseDown={(e) => e.preventDefault()}\n >\n <Calendar\n maxDate={this.parseValueToDate(maxDate)}\n minDate={this.parseValueToDate(minDate)}\n onValueChange={this.handleValueChange}\n isHoliday={this.props.isHoliday}\n value={this.parseValueToDate(this.props.value)}\n renderDay={this.props.renderDay}\n onMonthChange={this.props.onMonthChange}\n />\n {this.props.enableTodayLink && this.renderTodayLink()}{' '}\n </div>\n </Popup>\n </LocaleContext.Provider>\n );\n }\n }\n return (\n <label\n className={styles.root()}\n style={this.getRootStyle()}\n onMouseEnter={this.props.onMouseEnter}\n onMouseLeave={this.props.onMouseLeave}\n onMouseOver={this.props.onMouseOver}\n data-tid={DatePickerDataTids.label}\n >\n <DateInput\n id={this.props.id}\n {...filterProps(props, INPUT_PASS_PROPS)}\n ref={this.getInputRef}\n value={this.props.value || ''}\n width=\"100%\"\n withIcon\n minDate={minDate}\n maxDate={maxDate}\n onBlur={isMobile ? undefined : this.handleBlur}\n onFocus={this.handleFocus}\n onValueChange={this.props.onValueChange}\n data-tid={DatePickerDataTids.input}\n />\n {this.state.canUseMobileNativeDatePicker ? (\n <NativeDateInput\n onValueChange={this.props.onValueChange}\n value={this.props.value || ''}\n minDate={minDate}\n maxDate={maxDate}\n disabled={this.props.disabled}\n />\n ) : (\n picker\n )}\n </label>\n );\n };\n private parseValueToDate(value?: Nullable<string>): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n const date = new InternalDate({ value });\n if (date.validate({ checks: [InternalDateValidateCheck.NotNull, InternalDateValidateCheck.Native] })) {\n return date.toString({ withPad: true });\n }\n\n return undefined;\n }\n\n private renderTodayLink() {\n const { order, separator } = this.locale;\n const today = new InternalDate({ order, separator })\n .setComponents(InternalDateGetter.getTodayComponents())\n .toString({ withPad: true, withSeparator: true });\n\n return (\n <div style={{ margin: 8 }}>\n <Button\n aria-label={this.locale.todayAriaLabel}\n data-tid={DatePickerDataTids.pickerTodayWrapper}\n width=\"100%\"\n onClick={() => {\n this.handleSelect(today);\n }}\n icon={<ArrowAUpIcon16Light />}\n >\n {this.locale.today}\n </Button>\n </div>\n );\n }\n\n public getParent = () => {\n return getRootNode(this);\n };\n\n private getRootStyle = () => {\n const { width } = this.props;\n return isNonNullable(width) ? { width } : { minWidth: MIN_WIDTH };\n };\n\n private getInputRef = (ref: DateInput | null) => {\n this.input = ref;\n };\n\n private handleFocus = () => {\n if (this.focused) {\n return;\n }\n\n this.focused = true;\n\n this.setState({ opened: true });\n\n if (this.props.onFocus) {\n this.props.onFocus();\n }\n };\n\n private handleBlur = () => {\n if (!this.focused) {\n return;\n }\n\n this.focused = false;\n this.close();\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handleValueChange = (value: string) => {\n this.handleSelect(value);\n this.blur();\n };\n\n private handleSelect = (value: string | null) => {\n if (!value) {\n return null;\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleMobileCloseRequest = () => {\n this.close();\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -38,29 +38,26 @@ var MobilePickerDataTids = exports.MobilePickerDataTids = {
|
|
|
38
38
|
|
|
39
39
|
var MobilePicker = exports.MobilePicker = function MobilePicker(props) {
|
|
40
40
|
var locale = (0, _useLocaleForControl.useLocaleForControl)('DatePicker', _locale.DatePickerLocaleHelper);
|
|
41
|
-
|
|
42
41
|
var theme = (0, _getMobilePickerTheme.getMobilePickerTheme)((0, _react.useContext)(_ThemeContext.ThemeContext));
|
|
43
42
|
|
|
43
|
+
var calendarRef = (0, _react.useRef)(null);
|
|
44
|
+
var inputRef = (0, _react.useRef)(null);
|
|
45
|
+
|
|
46
|
+
var _useState = (0, _react.useState)(function () {return (0, _CalendarUtils.getTodayDate)();}),_useState$ = _useState[0],monthNative = _useState$.month,year = _useState$.year;
|
|
47
|
+
var month = (0, _CalendarUtils.getMonthInHumanFormat)(monthNative);
|
|
48
|
+
|
|
44
49
|
var onValueChange = function onValueChange(date) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
if (props.onCloseRequest) {
|
|
49
|
-
props.onCloseRequest();
|
|
50
|
-
}
|
|
50
|
+
props.onValueChange == null || props.onValueChange(date);
|
|
51
|
+
props.onCloseRequest == null || props.onCloseRequest();
|
|
51
52
|
};
|
|
52
53
|
|
|
53
|
-
var inputRef = (0, _react.useRef)(null);
|
|
54
54
|
(0, _react.useLayoutEffect)(function () {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
// fix DateInput flushSync warning in React 18
|
|
56
|
+
setTimeout(function () {var _inputRef$current;
|
|
57
|
+
(_inputRef$current = inputRef.current) == null || _inputRef$current.focus();
|
|
58
|
+
});
|
|
58
59
|
}, []);
|
|
59
60
|
|
|
60
|
-
var calendarRef = (0, _react.useRef)(null);
|
|
61
|
-
var _useState = (0, _react.useState)(function () {return (0, _CalendarUtils.getTodayDate)();}),_useState$ = _useState[0],monthNative = _useState$.month,year = _useState$.year;
|
|
62
|
-
var month = (0, _CalendarUtils.getMonthInHumanFormat)(monthNative);
|
|
63
|
-
|
|
64
61
|
var onTodayClick = function onTodayClick() {
|
|
65
62
|
if (calendarRef.current) {
|
|
66
63
|
calendarRef.current.scrollToMonth(month, year);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_Calendar","_CalendarUtils","_ThemeContext","_MobilePopup","_DateInput","_Button","_useLocaleForControl","_useEffectWithoutInitCall","_locale","_MobilePicker","_getMobilePickerTheme","MobilePickerDataTids","exports","input","today","MobilePicker","props","locale","useLocaleForControl","DatePickerLocaleHelper","theme","getMobilePickerTheme","useContext","ThemeContext","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_Calendar","_CalendarUtils","_ThemeContext","_MobilePopup","_DateInput","_Button","_useLocaleForControl","_useEffectWithoutInitCall","_locale","_MobilePicker","_getMobilePickerTheme","MobilePickerDataTids","exports","input","today","MobilePicker","props","locale","useLocaleForControl","DatePickerLocaleHelper","theme","getMobilePickerTheme","useContext","ThemeContext","calendarRef","useRef","inputRef","_useState","useState","getTodayDate","_useState$","monthNative","month","year","getMonthInHumanFormat","onValueChange","date","onCloseRequest","useLayoutEffect","setTimeout","_inputRef$current","current","focus","onTodayClick","scrollToMonth","useEffectWithoutInitCall","value","substring","default","createElement","Provider","MobilePopup","opened","headerChildComponent","DateInput","width","withIcon","ref","minDate","maxDate","size","warning","error","footerChildComponent","enableTodayLink","Button","onClick","Calendar","className","styles","calendarRoot","isHoliday","renderDay","onMonthChange"],"sources":["MobilePicker.tsx"],"sourcesContent":["import React, { useContext, useLayoutEffect, useRef, useState } from 'react';\n\nimport { Calendar } from '../Calendar';\nimport { getMonthInHumanFormat, getTodayDate } from '../Calendar/CalendarUtils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { DateInput } from '../DateInput';\nimport { Button } from '../Button';\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl';\nimport { useEffectWithoutInitCall } from '../../hooks/useEffectWithoutInitCall';\n\nimport { DatePickerProps } from './DatePicker';\nimport { DatePickerLocaleHelper } from './locale';\nimport { styles } from './MobilePicker.styles';\nimport { getMobilePickerTheme } from './getMobilePickerTheme';\n\nexport const MobilePickerDataTids = {\n input: 'MobilePicker__input',\n today: 'MobilePicker__today',\n} as const;\n\nexport interface MobilePickerProps\n extends Pick<\n DatePickerProps,\n | 'error'\n | 'warning'\n | 'value'\n | 'minDate'\n | 'maxDate'\n | 'onValueChange'\n | 'isHoliday'\n | 'enableTodayLink'\n | 'renderDay'\n | 'onMonthChange'\n > {\n onCloseRequest?: () => void;\n}\n\nexport const MobilePicker: React.FC<MobilePickerProps> = (props) => {\n const locale = useLocaleForControl('DatePicker', DatePickerLocaleHelper);\n const theme = getMobilePickerTheme(useContext(ThemeContext));\n\n const calendarRef = useRef<Calendar>(null);\n const inputRef = useRef<DateInput>(null);\n\n const [{ month: monthNative, year }] = useState(() => getTodayDate());\n const month = getMonthInHumanFormat(monthNative);\n\n const onValueChange = (date: string) => {\n props.onValueChange?.(date);\n props.onCloseRequest?.();\n };\n\n useLayoutEffect(() => {\n // fix DateInput flushSync warning in React 18\n setTimeout(() => {\n inputRef.current?.focus();\n });\n }, []);\n\n const onTodayClick = () => {\n if (calendarRef.current) {\n calendarRef.current.scrollToMonth(month, year);\n }\n };\n\n useEffectWithoutInitCall(() => {\n if (props.value && calendarRef.current) {\n const month = getMonthInHumanFormat(+props.value.substring(3, 5));\n const year = +props.value.substring(6);\n calendarRef.current.scrollToMonth(month, year);\n }\n }, [props.value]);\n\n return (\n <ThemeContext.Provider value={theme}>\n <MobilePopup\n opened\n headerChildComponent={\n <DateInput\n value={props.value || ''}\n width=\"100%\"\n withIcon\n ref={inputRef}\n minDate={props.minDate}\n maxDate={props.maxDate}\n onValueChange={props.onValueChange}\n size=\"medium\"\n warning={props.warning}\n error={props.error}\n data-tid={MobilePickerDataTids.input}\n />\n }\n footerChildComponent={\n props.enableTodayLink && (\n <Button size=\"medium\" onClick={onTodayClick} data-tid={MobilePickerDataTids.today}>\n {locale.today}\n </Button>\n )\n }\n onCloseRequest={props.onCloseRequest}\n >\n <Calendar\n ref={calendarRef}\n value={props.value}\n className={styles.calendarRoot()}\n minDate={props.minDate}\n maxDate={props.maxDate}\n onValueChange={onValueChange}\n isHoliday={props.isHoliday}\n renderDay={props.renderDay}\n onMonthChange={props.onMonthChange}\n />\n </MobilePopup>\n </ThemeContext.Provider>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|