@mui/x-date-pickers 7.6.0 → 7.6.2
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/AdapterDayjs/AdapterDayjs.js +5 -1
- package/CHANGELOG.md +91 -0
- package/DateCalendar/DayCalendar.js +11 -11
- package/DateTimePicker/DateTimePickerToolbar.js +59 -49
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +11 -1
- package/MonthCalendar/MonthCalendar.js +4 -4
- package/PickersLayout/PickersLayout.d.ts +1 -3
- package/PickersLayout/PickersLayout.js +30 -9
- package/PickersLayout/PickersLayout.types.d.ts +8 -4
- package/PickersTextField/PickersInputBase/PickersInputBase.d.ts +1 -0
- package/PickersTextField/PickersInputBase/PickersInputBase.js +14 -6
- package/TimePicker/TimePickerToolbar.js +21 -18
- package/YearCalendar/YearCalendar.js +4 -4
- package/index.js +1 -1
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +5 -5
- package/internals/components/PickersToolbarButton.d.ts +1 -1
- package/internals/hooks/useField/buildSectionsFromFormat.d.ts +1 -1
- package/internals/hooks/useField/buildSectionsFromFormat.js +3 -3
- package/internals/hooks/useField/useField.js +3 -4
- package/internals/hooks/useField/useField.types.d.ts +2 -2
- package/internals/hooks/useField/useField.utils.d.ts +1 -1
- package/internals/hooks/useField/useField.utils.js +6 -5
- package/internals/hooks/useField/useFieldState.js +6 -7
- package/internals/hooks/useField/useFieldV6TextField.d.ts +1 -1
- package/internals/hooks/useField/useFieldV6TextField.js +10 -11
- package/internals/hooks/usePicker/usePickerLayoutProps.d.ts +1 -0
- package/internals/hooks/usePicker/usePickerLayoutProps.js +3 -0
- package/modern/AdapterDayjs/AdapterDayjs.js +5 -1
- package/modern/DateCalendar/DayCalendar.js +11 -11
- package/modern/DateTimePicker/DateTimePickerToolbar.js +59 -49
- package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +11 -1
- package/modern/MonthCalendar/MonthCalendar.js +4 -4
- package/modern/PickersLayout/PickersLayout.js +30 -9
- package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +14 -6
- package/modern/TimePicker/TimePickerToolbar.js +21 -18
- package/modern/YearCalendar/YearCalendar.js +4 -4
- package/modern/index.js +1 -1
- package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +5 -5
- package/modern/internals/hooks/useField/buildSectionsFromFormat.js +3 -3
- package/modern/internals/hooks/useField/useField.js +3 -4
- package/modern/internals/hooks/useField/useField.utils.js +6 -5
- package/modern/internals/hooks/useField/useFieldState.js +6 -7
- package/modern/internals/hooks/useField/useFieldV6TextField.js +10 -11
- package/modern/internals/hooks/usePicker/usePickerLayoutProps.js +3 -0
- package/node/AdapterDayjs/AdapterDayjs.js +5 -1
- package/node/DateCalendar/DayCalendar.js +10 -10
- package/node/DateTimePicker/DateTimePickerToolbar.js +58 -48
- package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +11 -1
- package/node/MonthCalendar/MonthCalendar.js +4 -4
- package/node/PickersLayout/PickersLayout.js +30 -9
- package/node/PickersTextField/PickersInputBase/PickersInputBase.js +14 -6
- package/node/TimePicker/TimePickerToolbar.js +20 -17
- package/node/YearCalendar/YearCalendar.js +4 -4
- package/node/index.js +1 -1
- package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +4 -4
- package/node/internals/hooks/useField/buildSectionsFromFormat.js +3 -3
- package/node/internals/hooks/useField/useField.js +3 -4
- package/node/internals/hooks/useField/useField.utils.js +6 -5
- package/node/internals/hooks/useField/useFieldState.js +6 -7
- package/node/internals/hooks/useField/useFieldV6TextField.js +10 -11
- package/node/internals/hooks/usePicker/usePickerLayoutProps.js +3 -0
- package/package.json +1 -1
|
@@ -5,11 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.TimePickerToolbar = TimePickerToolbar;
|
|
8
|
-
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
9
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
12
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
+
var _RtlProvider = require("@mui/system/RtlProvider");
|
|
13
14
|
var _styles = require("@mui/material/styles");
|
|
14
15
|
var _utils = require("@mui/utils");
|
|
15
16
|
var _PickersToolbarText = require("../internals/components/PickersToolbarText");
|
|
@@ -26,14 +27,14 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
|
|
|
26
27
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
27
28
|
const useUtilityClasses = ownerState => {
|
|
28
29
|
const {
|
|
29
|
-
theme,
|
|
30
30
|
isLandscape,
|
|
31
|
-
classes
|
|
31
|
+
classes,
|
|
32
|
+
isRtl
|
|
32
33
|
} = ownerState;
|
|
33
34
|
const slots = {
|
|
34
35
|
root: ['root'],
|
|
35
36
|
separator: ['separator'],
|
|
36
|
-
hourMinuteLabel: ['hourMinuteLabel', isLandscape && 'hourMinuteLabelLandscape',
|
|
37
|
+
hourMinuteLabel: ['hourMinuteLabel', isLandscape && 'hourMinuteLabelLandscape', isRtl && 'hourMinuteLabelReverse'],
|
|
37
38
|
ampmSelection: ['ampmSelection', isLandscape && 'ampmLandscape'],
|
|
38
39
|
ampmLabel: ['ampmLabel']
|
|
39
40
|
};
|
|
@@ -60,16 +61,18 @@ const TimePickerToolbarHourMinuteLabel = (0, _styles.styled)('div', {
|
|
|
60
61
|
[`&.${_timePickerToolbarClasses.timePickerToolbarClasses.hourMinuteLabelLandscape}`]: styles.hourMinuteLabelLandscape,
|
|
61
62
|
[`&.${_timePickerToolbarClasses.timePickerToolbarClasses.hourMinuteLabelReverse}`]: styles.hourMinuteLabelReverse
|
|
62
63
|
}, styles.hourMinuteLabel]
|
|
63
|
-
})(
|
|
64
|
-
theme
|
|
65
|
-
}) => (0, _extends2.default)({
|
|
64
|
+
})({
|
|
66
65
|
display: 'flex',
|
|
67
66
|
justifyContent: 'flex-end',
|
|
68
|
-
alignItems: 'flex-end'
|
|
69
|
-
}, theme.direction === 'rtl' && {
|
|
70
|
-
flexDirection: 'row-reverse'
|
|
71
|
-
}, {
|
|
67
|
+
alignItems: 'flex-end',
|
|
72
68
|
variants: [{
|
|
69
|
+
props: {
|
|
70
|
+
isRtl: true
|
|
71
|
+
},
|
|
72
|
+
style: {
|
|
73
|
+
flexDirection: 'row-reverse'
|
|
74
|
+
}
|
|
75
|
+
}, {
|
|
73
76
|
props: {
|
|
74
77
|
isLandscape: true
|
|
75
78
|
},
|
|
@@ -77,7 +80,7 @@ const TimePickerToolbarHourMinuteLabel = (0, _styles.styled)('div', {
|
|
|
77
80
|
marginTop: 'auto'
|
|
78
81
|
}
|
|
79
82
|
}]
|
|
80
|
-
})
|
|
83
|
+
});
|
|
81
84
|
const TimePickerToolbarAmPmSelection = (0, _styles.styled)('div', {
|
|
82
85
|
name: 'MuiTimePickerToolbar',
|
|
83
86
|
slot: 'AmPmSelection',
|
|
@@ -138,17 +141,17 @@ function TimePickerToolbar(inProps) {
|
|
|
138
141
|
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
139
142
|
const utils = (0, _useUtils.useUtils)();
|
|
140
143
|
const localeText = (0, _useUtils.useLocaleText)();
|
|
141
|
-
const
|
|
144
|
+
const isRtl = (0, _RtlProvider.useRtl)();
|
|
142
145
|
const showAmPmControl = Boolean(ampm && !ampmInClock && views.includes('hours'));
|
|
143
146
|
const {
|
|
144
147
|
meridiemMode,
|
|
145
148
|
handleMeridiemChange
|
|
146
149
|
} = (0, _dateHelpersHooks.useMeridiemMode)(value, ampm, onChange);
|
|
147
150
|
const formatHours = time => ampm ? utils.format(time, 'hours12h') : utils.format(time, 'hours24h');
|
|
148
|
-
const ownerState = props
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
151
|
+
const ownerState = (0, _extends2.default)({}, props, {
|
|
152
|
+
isRtl
|
|
153
|
+
});
|
|
154
|
+
const classes = useUtilityClasses(ownerState);
|
|
152
155
|
const separator = /*#__PURE__*/(0, _jsxRuntime.jsx)(TimePickerToolbarSeparator, {
|
|
153
156
|
tabIndex: -1,
|
|
154
157
|
value: ":",
|
|
@@ -10,7 +10,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
12
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
13
|
-
var
|
|
13
|
+
var _RtlProvider = require("@mui/system/RtlProvider");
|
|
14
14
|
var _styles = require("@mui/material/styles");
|
|
15
15
|
var _utils = require("@mui/utils");
|
|
16
16
|
var _PickersYear = require("./PickersYear");
|
|
@@ -113,7 +113,7 @@ const YearCalendar = exports.YearCalendar = /*#__PURE__*/React.forwardRef(functi
|
|
|
113
113
|
valueManager: _valueManagers.singleItemValueManager
|
|
114
114
|
});
|
|
115
115
|
const now = (0, _useUtils.useNow)(timezone);
|
|
116
|
-
const
|
|
116
|
+
const isRtl = (0, _RtlProvider.useRtl)();
|
|
117
117
|
const utils = (0, _useUtils.useUtils)();
|
|
118
118
|
const referenceDate = React.useMemo(() => _valueManagers.singleItemValueManager.getInitialReferenceValue({
|
|
119
119
|
value,
|
|
@@ -193,11 +193,11 @@ const YearCalendar = exports.YearCalendar = /*#__PURE__*/React.forwardRef(functi
|
|
|
193
193
|
event.preventDefault();
|
|
194
194
|
break;
|
|
195
195
|
case 'ArrowLeft':
|
|
196
|
-
focusYear(year + (
|
|
196
|
+
focusYear(year + (isRtl ? 1 : -1));
|
|
197
197
|
event.preventDefault();
|
|
198
198
|
break;
|
|
199
199
|
case 'ArrowRight':
|
|
200
|
-
focusYear(year + (
|
|
200
|
+
focusYear(year + (isRtl ? -1 : 1));
|
|
201
201
|
event.preventDefault();
|
|
202
202
|
break;
|
|
203
203
|
default:
|
package/node/index.js
CHANGED
|
@@ -10,6 +10,7 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
|
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
12
12
|
var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
|
|
13
|
+
var _RtlProvider = require("@mui/system/RtlProvider");
|
|
13
14
|
var _styles = require("@mui/material/styles");
|
|
14
15
|
var _utils = require("@mui/utils");
|
|
15
16
|
var _utils2 = require("@mui/base/utils");
|
|
@@ -64,8 +65,7 @@ const useUtilityClasses = ownerState => {
|
|
|
64
65
|
return (0, _utils.unstable_composeClasses)(slots, _pickersArrowSwitcherClasses.getPickersArrowSwitcherUtilityClass, classes);
|
|
65
66
|
};
|
|
66
67
|
const PickersArrowSwitcher = exports.PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function PickersArrowSwitcher(inProps, ref) {
|
|
67
|
-
const
|
|
68
|
-
const isRTL = theme.direction === 'rtl';
|
|
68
|
+
const isRtl = (0, _RtlProvider.useRtl)();
|
|
69
69
|
const props = (0, _styles.useThemeProps)({
|
|
70
70
|
props: inProps,
|
|
71
71
|
name: 'MuiPickersArrowSwitcher'
|
|
@@ -161,7 +161,7 @@ const PickersArrowSwitcher = exports.PickersArrowSwitcher = /*#__PURE__*/React.f
|
|
|
161
161
|
ownerState: ownerState
|
|
162
162
|
}, other, {
|
|
163
163
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(PreviousIconButton, (0, _extends2.default)({}, previousIconButtonProps, {
|
|
164
|
-
children:
|
|
164
|
+
children: isRtl ? /*#__PURE__*/(0, _jsxRuntime.jsx)(RightArrowIcon, (0, _extends2.default)({}, rightArrowIconProps)) : /*#__PURE__*/(0, _jsxRuntime.jsx)(LeftArrowIcon, (0, _extends2.default)({}, leftArrowIconProps))
|
|
165
165
|
})), children ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
|
|
166
166
|
variant: "subtitle1",
|
|
167
167
|
component: "span",
|
|
@@ -170,7 +170,7 @@ const PickersArrowSwitcher = exports.PickersArrowSwitcher = /*#__PURE__*/React.f
|
|
|
170
170
|
className: classes.spacer,
|
|
171
171
|
ownerState: ownerState
|
|
172
172
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(NextIconButton, (0, _extends2.default)({}, nextIconButtonProps, {
|
|
173
|
-
children:
|
|
173
|
+
children: isRtl ? /*#__PURE__*/(0, _jsxRuntime.jsx)(LeftArrowIcon, (0, _extends2.default)({}, leftArrowIconProps)) : /*#__PURE__*/(0, _jsxRuntime.jsx)(RightArrowIcon, (0, _extends2.default)({}, rightArrowIconProps))
|
|
174
174
|
}))]
|
|
175
175
|
}));
|
|
176
176
|
});
|
|
@@ -224,14 +224,14 @@ const buildSections = params => {
|
|
|
224
224
|
return sections;
|
|
225
225
|
};
|
|
226
226
|
const postProcessSections = ({
|
|
227
|
-
|
|
227
|
+
isRtl,
|
|
228
228
|
formatDensity,
|
|
229
229
|
sections
|
|
230
230
|
}) => {
|
|
231
231
|
return sections.map(section => {
|
|
232
232
|
const cleanSeparator = separator => {
|
|
233
233
|
let cleanedSeparator = separator;
|
|
234
|
-
if (
|
|
234
|
+
if (isRtl && cleanedSeparator !== null && cleanedSeparator.includes(' ')) {
|
|
235
235
|
cleanedSeparator = `\u2069${cleanedSeparator}\u2066`;
|
|
236
236
|
}
|
|
237
237
|
if (formatDensity === 'spacious' && ['/', '.', '-'].includes(cleanedSeparator)) {
|
|
@@ -246,7 +246,7 @@ const postProcessSections = ({
|
|
|
246
246
|
};
|
|
247
247
|
const buildSectionsFromFormat = params => {
|
|
248
248
|
let expandedFormat = expandFormat(params);
|
|
249
|
-
if (params.
|
|
249
|
+
if (params.isRtl && params.enableAccessibleFieldDOMStructure) {
|
|
250
250
|
expandedFormat = expandedFormat.split(' ').reverse().join(' ');
|
|
251
251
|
}
|
|
252
252
|
const escapedParts = getEscapedPartsFromFormat((0, _extends2.default)({}, params, {
|
|
@@ -9,7 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
|
|
11
11
|
var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
|
|
12
|
-
var
|
|
12
|
+
var _RtlProvider = require("@mui/system/RtlProvider");
|
|
13
13
|
var _useValidation = require("../useValidation");
|
|
14
14
|
var _useUtils = require("../useUtils");
|
|
15
15
|
var _useField = require("./useField.utils");
|
|
@@ -40,8 +40,7 @@ const useField = params => {
|
|
|
40
40
|
valueManager,
|
|
41
41
|
validator
|
|
42
42
|
} = params;
|
|
43
|
-
const
|
|
44
|
-
const isRTL = theme.direction === 'rtl';
|
|
43
|
+
const isRtl = (0, _RtlProvider.useRtl)();
|
|
45
44
|
const stateResponse = (0, _useFieldState.useFieldState)(params);
|
|
46
45
|
const {
|
|
47
46
|
state,
|
|
@@ -69,7 +68,7 @@ const useField = params => {
|
|
|
69
68
|
} = characterEditingResponse;
|
|
70
69
|
const areAllSectionsEmpty = valueManager.areValuesEqual(utils, state.value, valueManager.emptyValue);
|
|
71
70
|
const useFieldTextField = enableAccessibleFieldDOMStructure ? _useFieldV7TextField.useFieldV7TextField : _useFieldV6TextField.useFieldV6TextField;
|
|
72
|
-
const sectionOrder = React.useMemo(() => (0, _useField.getSectionOrder)(state.sections,
|
|
71
|
+
const sectionOrder = React.useMemo(() => (0, _useField.getSectionOrder)(state.sections, isRtl && !enableAccessibleFieldDOMStructure), [state.sections, isRtl, enableAccessibleFieldDOMStructure]);
|
|
73
72
|
const {
|
|
74
73
|
returnedValue,
|
|
75
74
|
interactions
|
|
@@ -210,8 +210,9 @@ const adjustSectionValue = (utils, timezone, section, keyCode, sectionsValueBoun
|
|
|
210
210
|
return options[options.length - 1];
|
|
211
211
|
}
|
|
212
212
|
const currentOptionIndex = options.indexOf(section.value);
|
|
213
|
-
const newOptionIndex = (currentOptionIndex +
|
|
214
|
-
|
|
213
|
+
const newOptionIndex = (currentOptionIndex + delta) % options.length;
|
|
214
|
+
const clampedIndex = (newOptionIndex + options.length) % options.length;
|
|
215
|
+
return options[clampedIndex];
|
|
215
216
|
};
|
|
216
217
|
if (section.contentType === 'digit' || section.contentType === 'digit-with-letter') {
|
|
217
218
|
return adjustDigitSection();
|
|
@@ -327,13 +328,13 @@ const createDateStrForV7HiddenInputFromSections = sections => sections.map(secti
|
|
|
327
328
|
return `${section.startSeparator}${section.value || section.placeholder}${section.endSeparator}`;
|
|
328
329
|
}).join('');
|
|
329
330
|
exports.createDateStrForV7HiddenInputFromSections = createDateStrForV7HiddenInputFromSections;
|
|
330
|
-
const createDateStrForV6InputFromSections = (sections, localizedDigits,
|
|
331
|
+
const createDateStrForV6InputFromSections = (sections, localizedDigits, isRtl) => {
|
|
331
332
|
const formattedSections = sections.map(section => {
|
|
332
|
-
const dateValue = getSectionVisibleValue(section,
|
|
333
|
+
const dateValue = getSectionVisibleValue(section, isRtl ? 'input-rtl' : 'input-ltr', localizedDigits);
|
|
333
334
|
return `${section.startSeparator}${dateValue}${section.endSeparator}`;
|
|
334
335
|
});
|
|
335
336
|
const dateStr = formattedSections.join('');
|
|
336
|
-
if (!
|
|
337
|
+
if (!isRtl) {
|
|
337
338
|
return dateStr;
|
|
338
339
|
}
|
|
339
340
|
|
|
@@ -8,7 +8,7 @@ exports.useFieldState = void 0;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _useControlled = _interopRequireDefault(require("@mui/utils/useControlled"));
|
|
11
|
-
var
|
|
11
|
+
var _RtlProvider = require("@mui/system/RtlProvider");
|
|
12
12
|
var _useUtils = require("../useUtils");
|
|
13
13
|
var _useField = require("./useField.utils");
|
|
14
14
|
var _buildSectionsFromFormat = require("./buildSectionsFromFormat");
|
|
@@ -20,8 +20,7 @@ const useFieldState = params => {
|
|
|
20
20
|
const utils = (0, _useUtils.useUtils)();
|
|
21
21
|
const localeText = (0, _useUtils.useLocaleText)();
|
|
22
22
|
const adapter = (0, _useUtils.useLocalizationContext)();
|
|
23
|
-
const
|
|
24
|
-
const isRTL = theme.direction === 'rtl';
|
|
23
|
+
const isRtl = (0, _RtlProvider.useRtl)();
|
|
25
24
|
const {
|
|
26
25
|
valueManager,
|
|
27
26
|
fieldValueManager,
|
|
@@ -65,8 +64,8 @@ const useFieldState = params => {
|
|
|
65
64
|
formatDensity,
|
|
66
65
|
shouldRespectLeadingZeros,
|
|
67
66
|
enableAccessibleFieldDOMStructure,
|
|
68
|
-
|
|
69
|
-
})), [fieldValueManager, format, localeText, localizedDigits,
|
|
67
|
+
isRtl
|
|
68
|
+
})), [fieldValueManager, format, localeText, localizedDigits, isRtl, shouldRespectLeadingZeros, utils, formatDensity, timezone, enableAccessibleFieldDOMStructure]);
|
|
70
69
|
const [state, setState] = React.useState(() => {
|
|
71
70
|
const sections = getSectionsFromValue(valueFromTheOutside);
|
|
72
71
|
(0, _useField.validateSections)(sections, valueType);
|
|
@@ -173,7 +172,7 @@ const useFieldState = params => {
|
|
|
173
172
|
formatDensity,
|
|
174
173
|
shouldRespectLeadingZeros,
|
|
175
174
|
enableAccessibleFieldDOMStructure,
|
|
176
|
-
|
|
175
|
+
isRtl
|
|
177
176
|
});
|
|
178
177
|
return (0, _useField.mergeDateIntoReferenceDate)(utils, timezone, date, sections, referenceDate, false);
|
|
179
178
|
};
|
|
@@ -243,7 +242,7 @@ const useFieldState = params => {
|
|
|
243
242
|
setState(prevState => (0, _extends2.default)({}, prevState, {
|
|
244
243
|
sections
|
|
245
244
|
}));
|
|
246
|
-
}, [format, utils.locale,
|
|
245
|
+
}, [format, utils.locale, isRtl]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
247
246
|
|
|
248
247
|
React.useEffect(() => {
|
|
249
248
|
let shouldUpdate;
|
|
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.useFieldV6TextField = exports.addPositionPropertiesToSections = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
|
-
var
|
|
10
|
+
var _RtlProvider = require("@mui/system/RtlProvider");
|
|
11
11
|
var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
|
|
12
12
|
var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
|
|
13
13
|
var _utils = require("../../utils/utils");
|
|
@@ -15,13 +15,13 @@ var _useField = require("./useField.utils");
|
|
|
15
15
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
16
16
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
17
17
|
const cleanString = dirtyString => dirtyString.replace(/[\u2066\u2067\u2068\u2069]/g, '');
|
|
18
|
-
const addPositionPropertiesToSections = (sections, localizedDigits,
|
|
18
|
+
const addPositionPropertiesToSections = (sections, localizedDigits, isRtl) => {
|
|
19
19
|
let position = 0;
|
|
20
|
-
let positionInInput =
|
|
20
|
+
let positionInInput = isRtl ? 1 : 0;
|
|
21
21
|
const newSections = [];
|
|
22
22
|
for (let i = 0; i < sections.length; i += 1) {
|
|
23
23
|
const section = sections[i];
|
|
24
|
-
const renderedValue = (0, _useField.getSectionVisibleValue)(section,
|
|
24
|
+
const renderedValue = (0, _useField.getSectionVisibleValue)(section, isRtl ? 'input-rtl' : 'input-ltr', localizedDigits);
|
|
25
25
|
const sectionStr = `${section.startSeparator}${renderedValue}${section.endSeparator}`;
|
|
26
26
|
const sectionLength = cleanString(sectionStr).length;
|
|
27
27
|
const sectionLengthInInput = sectionStr.length;
|
|
@@ -44,8 +44,7 @@ const addPositionPropertiesToSections = (sections, localizedDigits, isRTL) => {
|
|
|
44
44
|
};
|
|
45
45
|
exports.addPositionPropertiesToSections = addPositionPropertiesToSections;
|
|
46
46
|
const useFieldV6TextField = params => {
|
|
47
|
-
const
|
|
48
|
-
const isRTL = theme.direction === 'rtl';
|
|
47
|
+
const isRtl = (0, _RtlProvider.useRtl)();
|
|
49
48
|
const focusTimeoutRef = React.useRef();
|
|
50
49
|
const {
|
|
51
50
|
forwardedProps: {
|
|
@@ -78,7 +77,7 @@ const useFieldV6TextField = params => {
|
|
|
78
77
|
} = params;
|
|
79
78
|
const inputRef = React.useRef(null);
|
|
80
79
|
const handleRef = (0, _useForkRef.default)(inputRefProp, inputRef);
|
|
81
|
-
const sections = React.useMemo(() => addPositionPropertiesToSections(state.sections, localizedDigits,
|
|
80
|
+
const sections = React.useMemo(() => addPositionPropertiesToSections(state.sections, localizedDigits, isRtl), [state.sections, localizedDigits, isRtl]);
|
|
82
81
|
const interactions = React.useMemo(() => ({
|
|
83
82
|
syncSelectionToDOM: () => {
|
|
84
83
|
if (!inputRef.current) {
|
|
@@ -251,7 +250,7 @@ const useFieldV6TextField = params => {
|
|
|
251
250
|
if (parsedSelectedSections === 'all' && cleanValueStr.length === 1) {
|
|
252
251
|
keyPressed = cleanValueStr;
|
|
253
252
|
} else {
|
|
254
|
-
const prevValueStr = cleanString(fieldValueManager.getV6InputValueFromSections(sections, localizedDigits,
|
|
253
|
+
const prevValueStr = cleanString(fieldValueManager.getV6InputValueFromSections(sections, localizedDigits, isRtl));
|
|
255
254
|
let startOfDiffIndex = -1;
|
|
256
255
|
let endOfDiffIndex = -1;
|
|
257
256
|
for (let i = 0; i < prevValueStr.length; i += 1) {
|
|
@@ -291,9 +290,9 @@ const useFieldV6TextField = params => {
|
|
|
291
290
|
if (inPlaceholder !== undefined) {
|
|
292
291
|
return inPlaceholder;
|
|
293
292
|
}
|
|
294
|
-
return fieldValueManager.getV6InputValueFromSections(getSectionsFromValue(valueManager.emptyValue), localizedDigits,
|
|
295
|
-
}, [inPlaceholder, fieldValueManager, getSectionsFromValue, valueManager.emptyValue, localizedDigits,
|
|
296
|
-
const valueStr = React.useMemo(() => state.tempValueStrAndroid ?? fieldValueManager.getV6InputValueFromSections(state.sections, localizedDigits,
|
|
293
|
+
return fieldValueManager.getV6InputValueFromSections(getSectionsFromValue(valueManager.emptyValue), localizedDigits, isRtl);
|
|
294
|
+
}, [inPlaceholder, fieldValueManager, getSectionsFromValue, valueManager.emptyValue, localizedDigits, isRtl]);
|
|
295
|
+
const valueStr = React.useMemo(() => state.tempValueStrAndroid ?? fieldValueManager.getV6InputValueFromSections(state.sections, localizedDigits, isRtl), [state.sections, fieldValueManager, state.tempValueStrAndroid, localizedDigits, isRtl]);
|
|
297
296
|
React.useEffect(() => {
|
|
298
297
|
// Select all the sections when focused on mount (`autoFocus = true` on the input)
|
|
299
298
|
if (inputRef.current && inputRef.current === (0, _utils.getActiveElement)(document)) {
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.usePickerLayoutProps = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _RtlProvider = require("@mui/system/RtlProvider");
|
|
9
10
|
var _useIsLandscape = require("../useIsLandscape");
|
|
10
11
|
/**
|
|
11
12
|
* Props used to create the layout of the views.
|
|
@@ -25,8 +26,10 @@ const usePickerLayoutProps = ({
|
|
|
25
26
|
orientation
|
|
26
27
|
} = props;
|
|
27
28
|
const isLandscape = (0, _useIsLandscape.useIsLandscape)(propsFromPickerViews.views, orientation);
|
|
29
|
+
const isRtl = (0, _RtlProvider.useRtl)();
|
|
28
30
|
const layoutProps = (0, _extends2.default)({}, propsFromPickerViews, propsFromPickerValue, {
|
|
29
31
|
isLandscape,
|
|
32
|
+
isRtl,
|
|
30
33
|
wrapperVariant,
|
|
31
34
|
disabled: props.disabled,
|
|
32
35
|
readOnly: props.readOnly
|