@mui/x-date-pickers-pro 8.0.0-alpha.7 → 8.0.0-alpha.9
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 +551 -3
- package/DateRangeCalendar/DateRangeCalendar.js +4 -4
- package/DateRangePicker/DateRangePickerToolbar.js +3 -3
- package/DateTimeRangePicker/DateTimeRangePickerTabs.js +3 -3
- package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +2 -2
- package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +7 -7
- package/MultiInputDateRangeField/MultiInputDateRangeField.d.ts +9 -4
- package/MultiInputDateRangeField/MultiInputDateRangeField.js +12 -116
- package/MultiInputDateRangeField/index.d.ts +5 -3
- package/MultiInputDateRangeField/index.js +2 -2
- package/MultiInputDateRangeField/multiInputDateRangeFieldClasses.d.ts +6 -0
- package/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.d.ts +9 -4
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +12 -116
- package/MultiInputDateTimeRangeField/index.d.ts +5 -3
- package/MultiInputDateTimeRangeField/index.js +2 -2
- package/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.d.ts +6 -0
- package/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.d.ts +9 -4
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +13 -117
- package/MultiInputTimeRangeField/index.d.ts +5 -3
- package/MultiInputTimeRangeField/index.js +2 -2
- package/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.d.ts +6 -0
- package/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
- package/SingleInputDateRangeField/SingleInputDateRangeField.js +20 -30
- package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +6 -17
- package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
- package/SingleInputDateRangeField/useSingleInputDateRangeField.js +2 -1
- package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +20 -30
- package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.ts +6 -18
- package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
- package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +2 -1
- package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +20 -30
- package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.ts +6 -18
- package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
- package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +2 -1
- package/hooks/index.d.ts +1 -0
- package/hooks/index.js +2 -1
- package/hooks/useMultiInputRangeField/index.d.ts +1 -0
- package/hooks/useMultiInputRangeField/index.js +1 -0
- package/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +53 -0
- package/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
- package/{internals/hooks/useMultiInputFieldSelectedSections.d.ts → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts} +3 -4
- package/{modern/internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +17 -0
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
- package/index.js +1 -1
- package/internals/hooks/models/index.d.ts +1 -1
- package/internals/hooks/models/useRangePicker.d.ts +4 -6
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +32 -42
- package/internals/hooks/{useEnrichedRangePickerFieldProps.d.ts → useEnrichedRangePickerField.d.ts} +15 -6
- package/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +39 -52
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +23 -32
- package/internals/hooks/useRangePosition.d.ts +1 -1
- package/internals/hooks/useRangePosition.js +1 -1
- package/internals/models/dateTimeRange.d.ts +1 -6
- package/internals/models/fields.d.ts +1 -2
- package/internals/models/index.d.ts +0 -1
- package/internals/models/index.js +0 -1
- package/internals/models/managers.d.ts +3 -0
- package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.d.ts +3 -0
- package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +133 -0
- package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +72 -0
- package/internals/utils/createMultiInputRangeField/index.d.ts +3 -0
- package/internals/utils/createMultiInputRangeField/index.js +2 -0
- package/internals/utils/releaseInfo.js +1 -1
- package/managers/index.d.ts +3 -3
- package/managers/useDateRangeManager.d.ts +1 -1
- package/managers/useDateRangeManager.js +3 -1
- package/managers/useDateTimeRangeManager.d.ts +1 -1
- package/managers/useDateTimeRangeManager.js +3 -1
- package/managers/useTimeRangeManager.d.ts +1 -1
- package/managers/useTimeRangeManager.js +3 -1
- package/models/fields.d.ts +1 -2
- package/models/index.d.ts +0 -2
- package/models/index.js +0 -2
- package/modern/DateRangeCalendar/DateRangeCalendar.js +4 -4
- package/modern/DateRangePicker/DateRangePickerToolbar.js +3 -3
- package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +3 -3
- package/modern/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +2 -2
- package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +7 -7
- package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +12 -116
- package/modern/MultiInputDateRangeField/index.js +2 -2
- package/modern/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
- package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +12 -116
- package/modern/MultiInputDateTimeRangeField/index.js +2 -2
- package/modern/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
- package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +13 -117
- package/modern/MultiInputTimeRangeField/index.js +2 -2
- package/modern/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
- package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +20 -30
- package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +2 -1
- package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +20 -30
- package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +2 -1
- package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +20 -30
- package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +2 -1
- package/modern/hooks/index.js +2 -1
- package/modern/hooks/useMultiInputRangeField/index.js +1 -0
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
- package/{internals/hooks/useMultiInputFieldSelectedSections.js → modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
- package/modern/index.js +1 -1
- package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +32 -42
- package/modern/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +39 -52
- package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +23 -32
- package/modern/internals/hooks/useRangePosition.js +1 -1
- package/modern/internals/models/index.js +0 -1
- package/modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +133 -0
- package/modern/internals/utils/createMultiInputRangeField/index.js +2 -0
- package/modern/internals/utils/releaseInfo.js +1 -1
- package/modern/managers/useDateRangeManager.js +3 -1
- package/modern/managers/useDateTimeRangeManager.js +3 -1
- package/modern/managers/useTimeRangeManager.js +3 -1
- package/modern/models/index.js +0 -2
- package/node/DateRangeCalendar/DateRangeCalendar.js +4 -4
- package/node/DateRangePicker/DateRangePickerToolbar.js +3 -3
- package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +3 -3
- package/node/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +2 -2
- package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +7 -7
- package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +11 -119
- package/node/MultiInputDateRangeField/index.js +3 -9
- package/node/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +12 -0
- package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +11 -119
- package/node/MultiInputDateTimeRangeField/index.js +3 -9
- package/node/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +12 -0
- package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +12 -120
- package/node/MultiInputTimeRangeField/index.js +3 -9
- package/node/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +12 -0
- package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +19 -29
- package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +2 -1
- package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +19 -29
- package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +2 -1
- package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +19 -29
- package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +2 -1
- package/node/hooks/index.js +8 -1
- package/node/hooks/useMultiInputRangeField/index.js +12 -0
- package/node/hooks/useMultiInputRangeField/useMultiInputRangeField.js +155 -0
- package/node/{internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +11 -10
- package/node/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +66 -0
- package/node/index.js +1 -1
- package/node/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +31 -41
- package/node/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +41 -54
- package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +22 -31
- package/node/internals/hooks/useRangePosition.js +1 -1
- package/node/internals/models/index.js +0 -11
- package/node/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +140 -0
- package/node/internals/utils/createMultiInputRangeField/index.js +19 -0
- package/node/internals/utils/releaseInfo.js +1 -1
- package/node/managers/useDateRangeManager.js +3 -1
- package/node/managers/useDateTimeRangeManager.js +3 -1
- package/node/managers/useTimeRangeManager.js +3 -1
- package/node/models/index.js +0 -22
- package/package.json +4 -4
- package/themeAugmentation/overrides.d.ts +6 -4
- package/themeAugmentation/props.d.ts +2 -2
- package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +0 -55
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +0 -56
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +0 -56
- package/internals/hooks/useMultiInputRangeField/shared.d.ts +0 -1
- package/internals/hooks/useMultiInputRangeField/shared.js +0 -9
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.d.ts +0 -3
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -118
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.d.ts +0 -3
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -118
- package/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.d.ts +0 -11
- package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.d.ts +0 -3
- package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -118
- package/internals/models/timeRange.d.ts +0 -6
- package/internals/models/timeRange.js +0 -1
- package/models/dateRange.d.ts +0 -7
- package/models/dateRange.js +0 -1
- package/models/multiInputRangeFieldClasses.d.ts +0 -7
- package/models/multiInputRangeFieldClasses.js +0 -1
- package/modern/MultiInputDateRangeField/MultiInputDateRangeField.types.js +0 -1
- package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js +0 -1
- package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -1
- package/modern/internals/hooks/useMultiInputRangeField/shared.js +0 -9
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -118
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -118
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -1
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -118
- package/modern/internals/models/timeRange.js +0 -1
- package/modern/models/dateRange.js +0 -1
- package/modern/models/multiInputRangeFieldClasses.js +0 -1
- package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -5
- package/node/internals/hooks/useMultiInputRangeField/shared.js +0 -16
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -126
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -126
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -5
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -126
- package/node/internals/models/timeRange.js +0 -5
- package/node/models/dateRange.js +0 -5
- package/node/models/multiInputRangeFieldClasses.js +0 -5
- /package/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
- /package/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
- /package/{MultiInputTimeRangeField/MultiInputTimeRangeField.types.js → modern/internals/models/managers.js} +0 -0
- /package/{internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js → modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
- /package/node/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
- /package/node/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
|
@@ -7,20 +7,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
value: true
|
|
8
8
|
});
|
|
9
9
|
exports.SingleInputTimeRangeField = void 0;
|
|
10
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
10
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
12
11
|
var React = _interopRequireWildcard(require("react"));
|
|
13
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
14
|
-
var
|
|
15
|
-
var _hooks = require("@mui/x-date-pickers/hooks");
|
|
13
|
+
var _icons = require("@mui/x-date-pickers/icons");
|
|
16
14
|
var _internals = require("@mui/x-date-pickers/internals");
|
|
17
|
-
var _PickersTextField = require("@mui/x-date-pickers/PickersTextField");
|
|
18
15
|
var _styles = require("@mui/material/styles");
|
|
19
|
-
var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
|
|
20
16
|
var _utils = require("@mui/utils");
|
|
21
17
|
var _useSingleInputTimeRangeField = require("./useSingleInputTimeRangeField");
|
|
22
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
|
-
const _excluded = ["slots", "slotProps"
|
|
19
|
+
const _excluded = ["slots", "slotProps"];
|
|
24
20
|
/**
|
|
25
21
|
* Demos:
|
|
26
22
|
*
|
|
@@ -38,33 +34,21 @@ const SingleInputTimeRangeField = exports.SingleInputTimeRangeField = /*#__PURE_
|
|
|
38
34
|
});
|
|
39
35
|
const {
|
|
40
36
|
slots,
|
|
41
|
-
slotProps
|
|
42
|
-
InputProps,
|
|
43
|
-
inputProps
|
|
37
|
+
slotProps
|
|
44
38
|
} = themeProps,
|
|
45
39
|
other = (0, _objectWithoutPropertiesLoose2.default)(themeProps, _excluded);
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
externalSlotProps: slotProps?.textField,
|
|
51
|
-
externalForwardedProps: other,
|
|
52
|
-
ownerState,
|
|
53
|
-
additionalProps: {
|
|
54
|
-
ref: inRef
|
|
55
|
-
}
|
|
40
|
+
const textFieldProps = (0, _internals.useFieldTextFieldProps)({
|
|
41
|
+
slotProps,
|
|
42
|
+
ref: inRef,
|
|
43
|
+
externalForwardedProps: other
|
|
56
44
|
});
|
|
57
|
-
|
|
58
|
-
// TODO: Remove when mui/material-ui#35088 will be merged
|
|
59
|
-
textFieldProps.inputProps = (0, _extends2.default)({}, inputProps, textFieldProps.inputProps);
|
|
60
|
-
textFieldProps.InputProps = (0, _extends2.default)({}, InputProps, textFieldProps.InputProps);
|
|
61
45
|
const fieldResponse = (0, _useSingleInputTimeRangeField.useSingleInputTimeRangeField)(textFieldProps);
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
46
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerFieldUI, {
|
|
47
|
+
slots: slots,
|
|
48
|
+
slotProps: slotProps,
|
|
49
|
+
fieldResponse: fieldResponse,
|
|
50
|
+
defaultOpenPickerIcon: _icons.ClockIcon
|
|
51
|
+
});
|
|
68
52
|
});
|
|
69
53
|
SingleInputTimeRangeField.fieldType = 'single-input';
|
|
70
54
|
process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
|
|
@@ -88,6 +72,12 @@ process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
|
|
|
88
72
|
* @default false
|
|
89
73
|
*/
|
|
90
74
|
clearable: _propTypes.default.bool,
|
|
75
|
+
/**
|
|
76
|
+
* The position at which the clear button is placed.
|
|
77
|
+
* If the field is not clearable, the button is not rendered.
|
|
78
|
+
* @default 'end'
|
|
79
|
+
*/
|
|
80
|
+
clearButtonPosition: _propTypes.default.oneOf(['end', 'start']),
|
|
91
81
|
/**
|
|
92
82
|
* The color of the component.
|
|
93
83
|
* It supports both default and custom theme colors, which can be added as shown in the
|
|
@@ -24,7 +24,8 @@ const useSingleInputTimeRangeField = props => {
|
|
|
24
24
|
valueManager: manager.internal_valueManager,
|
|
25
25
|
fieldValueManager: manager.internal_fieldValueManager,
|
|
26
26
|
validator: manager.validator,
|
|
27
|
-
valueType: manager.valueType
|
|
27
|
+
valueType: manager.valueType,
|
|
28
|
+
getOpenPickerButtonAriaLabel: manager.internal_getOpenPickerButtonAriaLabel
|
|
28
29
|
});
|
|
29
30
|
};
|
|
30
31
|
exports.useSingleInputTimeRangeField = useSingleInputTimeRangeField;
|
package/node/hooks/index.js
CHANGED
|
@@ -3,10 +3,17 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
Object.defineProperty(exports, "unstable_useMultiInputRangeField", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _useMultiInputRangeField.useMultiInputRangeField;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
6
12
|
Object.defineProperty(exports, "usePickerRangePositionContext", {
|
|
7
13
|
enumerable: true,
|
|
8
14
|
get: function () {
|
|
9
15
|
return _usePickerRangePositionContext.usePickerRangePositionContext;
|
|
10
16
|
}
|
|
11
17
|
});
|
|
12
|
-
var _usePickerRangePositionContext = require("./usePickerRangePositionContext");
|
|
18
|
+
var _usePickerRangePositionContext = require("./usePickerRangePositionContext");
|
|
19
|
+
var _useMultiInputRangeField = require("./useMultiInputRangeField");
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "useMultiInputRangeField", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _useMultiInputRangeField.useMultiInputRangeField;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _useMultiInputRangeField = require("./useMultiInputRangeField");
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.useMultiInputRangeField = useMultiInputRangeField;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
|
|
11
|
+
var _internals = require("@mui/x-date-pickers/internals");
|
|
12
|
+
var _validation = require("@mui/x-date-pickers/validation");
|
|
13
|
+
var _useMultiInputRangeFieldTextFieldProps = require("./useMultiInputRangeFieldTextFieldProps");
|
|
14
|
+
var _useMultiInputRangeFieldSelectedSections = require("./useMultiInputRangeFieldSelectedSections");
|
|
15
|
+
/**
|
|
16
|
+
* Basic example:
|
|
17
|
+
*
|
|
18
|
+
* ```tsx
|
|
19
|
+
* import Box from '@mui/material/Box';
|
|
20
|
+
* import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
|
|
21
|
+
* import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
|
|
22
|
+
* import { useDateRangeManager } from '@mui/x-date-pickers-pro/managers';
|
|
23
|
+
*
|
|
24
|
+
* function MultiInputField(props) {
|
|
25
|
+
* const manager = useDateRangeManager();
|
|
26
|
+
* const { internalProps, forwardedProps } = useSplitFieldProps(props, 'date');
|
|
27
|
+
* const { startDate, endDate } = useMultiInputRangeField({
|
|
28
|
+
* manager,
|
|
29
|
+
* internalProps,
|
|
30
|
+
* startForwardedProps: forwardedProps,
|
|
31
|
+
* endForwardedProps: forwardedProps,
|
|
32
|
+
* });
|
|
33
|
+
*
|
|
34
|
+
* return (
|
|
35
|
+
* <Box {...forwardedProps}>
|
|
36
|
+
* <PickersTextField {...startDate} />
|
|
37
|
+
* <span>{' – '}</span>
|
|
38
|
+
* <PickersTextField {...endDate} />
|
|
39
|
+
* </Box>
|
|
40
|
+
* );
|
|
41
|
+
* }
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @param {UseMultiInputRangeFieldParameters<TManager, TForwardedProps>} parameters The parameters of the hook.
|
|
45
|
+
* @param {TManager} parameters.manager The manager of the field.
|
|
46
|
+
* @param {PickerManagerFieldInternalProps<TManager>} parameters.internalProps The internal props of the field.
|
|
47
|
+
* @param {TForwardedProps} parameters.startForwardedProps The forwarded props of the start field.
|
|
48
|
+
* @param {TForwardedProps} parameters.endForwardedProps The forwarded props of the end field.
|
|
49
|
+
* @returns {UseMultiInputRangeFieldReturnValue<TManager, TForwardedProps>} The props to pass to the start and the end components.
|
|
50
|
+
*/
|
|
51
|
+
function useMultiInputRangeField(parameters) {
|
|
52
|
+
const {
|
|
53
|
+
manager,
|
|
54
|
+
internalProps,
|
|
55
|
+
startForwardedProps,
|
|
56
|
+
endForwardedProps
|
|
57
|
+
} = parameters;
|
|
58
|
+
const internalPropsWithDefaults = (0, _internals.useFieldInternalPropsWithDefaults)({
|
|
59
|
+
manager,
|
|
60
|
+
internalProps
|
|
61
|
+
});
|
|
62
|
+
const {
|
|
63
|
+
value: valueProp,
|
|
64
|
+
defaultValue,
|
|
65
|
+
format,
|
|
66
|
+
formatDensity,
|
|
67
|
+
shouldRespectLeadingZeros,
|
|
68
|
+
onChange,
|
|
69
|
+
disabled,
|
|
70
|
+
readOnly,
|
|
71
|
+
selectedSections,
|
|
72
|
+
onSelectedSectionsChange,
|
|
73
|
+
timezone: timezoneProp,
|
|
74
|
+
enableAccessibleFieldDOMStructure,
|
|
75
|
+
autoFocus,
|
|
76
|
+
referenceDate,
|
|
77
|
+
unstableStartFieldRef,
|
|
78
|
+
unstableEndFieldRef
|
|
79
|
+
} = internalPropsWithDefaults;
|
|
80
|
+
const {
|
|
81
|
+
value,
|
|
82
|
+
handleValueChange,
|
|
83
|
+
timezone
|
|
84
|
+
} = (0, _internals.useControlledValueWithTimezone)({
|
|
85
|
+
name: 'useMultiInputRangeField',
|
|
86
|
+
timezone: timezoneProp,
|
|
87
|
+
value: valueProp,
|
|
88
|
+
defaultValue,
|
|
89
|
+
referenceDate,
|
|
90
|
+
onChange,
|
|
91
|
+
valueManager: manager.internal_valueManager
|
|
92
|
+
});
|
|
93
|
+
const {
|
|
94
|
+
validationError,
|
|
95
|
+
getValidationErrorForNewValue
|
|
96
|
+
} = (0, _validation.useValidation)({
|
|
97
|
+
props: internalPropsWithDefaults,
|
|
98
|
+
value,
|
|
99
|
+
timezone,
|
|
100
|
+
validator: manager.validator,
|
|
101
|
+
onError: internalPropsWithDefaults.onError
|
|
102
|
+
});
|
|
103
|
+
const buildChangeHandler = index => {
|
|
104
|
+
return (newSingleValue, rawContext) => {
|
|
105
|
+
const newRange = index === 0 ? [newSingleValue, value[1]] : [value[0], newSingleValue];
|
|
106
|
+
const context = (0, _extends2.default)({}, rawContext, {
|
|
107
|
+
validationError: getValidationErrorForNewValue(newRange)
|
|
108
|
+
});
|
|
109
|
+
handleValueChange(newRange, context);
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
const handleStartDateChange = (0, _useEventCallback.default)(buildChangeHandler(0));
|
|
113
|
+
const handleEndDateChange = (0, _useEventCallback.default)(buildChangeHandler(1));
|
|
114
|
+
const selectedSectionsResponse = (0, _useMultiInputRangeFieldSelectedSections.useMultiInputRangeFieldSelectedSections)({
|
|
115
|
+
selectedSections,
|
|
116
|
+
onSelectedSectionsChange,
|
|
117
|
+
unstableStartFieldRef,
|
|
118
|
+
unstableEndFieldRef
|
|
119
|
+
});
|
|
120
|
+
const sharedProps = {
|
|
121
|
+
disabled,
|
|
122
|
+
readOnly,
|
|
123
|
+
timezone,
|
|
124
|
+
format,
|
|
125
|
+
formatDensity,
|
|
126
|
+
shouldRespectLeadingZeros,
|
|
127
|
+
enableAccessibleFieldDOMStructure
|
|
128
|
+
};
|
|
129
|
+
const startDateProps = (0, _useMultiInputRangeFieldTextFieldProps.useMultiInputRangeFieldTextFieldProps)({
|
|
130
|
+
valueType: manager.valueType,
|
|
131
|
+
fieldProps: (0, _extends2.default)({
|
|
132
|
+
error: !!validationError[0]
|
|
133
|
+
}, startForwardedProps, selectedSectionsResponse.start, sharedProps, {
|
|
134
|
+
value: valueProp === undefined ? undefined : valueProp[0],
|
|
135
|
+
defaultValue: defaultValue === undefined ? undefined : defaultValue[0],
|
|
136
|
+
onChange: handleStartDateChange,
|
|
137
|
+
autoFocus // Do not add on end field.
|
|
138
|
+
})
|
|
139
|
+
});
|
|
140
|
+
const endDateProps = (0, _useMultiInputRangeFieldTextFieldProps.useMultiInputRangeFieldTextFieldProps)({
|
|
141
|
+
valueType: manager.valueType,
|
|
142
|
+
fieldProps: (0, _extends2.default)({
|
|
143
|
+
error: !!validationError[1]
|
|
144
|
+
}, endForwardedProps, selectedSectionsResponse.end, sharedProps, {
|
|
145
|
+
value: valueProp === undefined ? undefined : valueProp[1],
|
|
146
|
+
defaultValue: defaultValue === undefined ? undefined : defaultValue[1],
|
|
147
|
+
onChange: handleEndDateChange
|
|
148
|
+
})
|
|
149
|
+
});
|
|
150
|
+
return {
|
|
151
|
+
startDate: startDateProps,
|
|
152
|
+
endDate: endDateProps,
|
|
153
|
+
enableAccessibleFieldDOMStructure
|
|
154
|
+
};
|
|
155
|
+
}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
'use client';
|
|
2
3
|
|
|
3
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
5
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
6
|
Object.defineProperty(exports, "__esModule", {
|
|
6
7
|
value: true
|
|
7
8
|
});
|
|
8
|
-
exports.
|
|
9
|
+
exports.useMultiInputRangeFieldSelectedSections = void 0;
|
|
9
10
|
var React = _interopRequireWildcard(require("react"));
|
|
10
11
|
var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
|
|
11
12
|
var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
|
|
12
|
-
const
|
|
13
|
+
const useMultiInputRangeFieldSelectedSections = parameters => {
|
|
13
14
|
const unstableEndFieldRef = React.useRef(null);
|
|
14
|
-
const handleUnstableEndFieldRef = (0, _useForkRef.default)(
|
|
15
|
-
const [startSelectedSection, setStartSelectedSection] = React.useState(
|
|
15
|
+
const handleUnstableEndFieldRef = (0, _useForkRef.default)(parameters.unstableEndFieldRef, unstableEndFieldRef);
|
|
16
|
+
const [startSelectedSection, setStartSelectedSection] = React.useState(parameters.selectedSections ?? null);
|
|
16
17
|
const [endSelectedSection, setEndSelectedSection] = React.useState(null);
|
|
17
18
|
const getActiveField = () => {
|
|
18
19
|
if (unstableEndFieldRef.current && unstableEndFieldRef.current.isFieldFocused()) {
|
|
@@ -23,27 +24,27 @@ const useMultiInputFieldSelectedSections = params => {
|
|
|
23
24
|
const handleStartSelectedSectionChange = (0, _useEventCallback.default)(newSelectedSections => {
|
|
24
25
|
setStartSelectedSection(newSelectedSections);
|
|
25
26
|
if (getActiveField() === 'start') {
|
|
26
|
-
|
|
27
|
+
parameters.onSelectedSectionsChange?.(newSelectedSections);
|
|
27
28
|
}
|
|
28
29
|
});
|
|
29
30
|
const handleEndSelectedSectionChange = (0, _useEventCallback.default)(newSelectedSections => {
|
|
30
31
|
setEndSelectedSection(newSelectedSections);
|
|
31
32
|
if (getActiveField() === 'end') {
|
|
32
|
-
|
|
33
|
+
parameters.onSelectedSectionsChange?.(newSelectedSections);
|
|
33
34
|
}
|
|
34
35
|
});
|
|
35
36
|
const activeField = getActiveField();
|
|
36
37
|
return {
|
|
37
38
|
start: {
|
|
38
|
-
unstableFieldRef:
|
|
39
|
-
selectedSections: activeField === 'start' &&
|
|
39
|
+
unstableFieldRef: parameters.unstableStartFieldRef,
|
|
40
|
+
selectedSections: activeField === 'start' && parameters.selectedSections !== undefined ? parameters.selectedSections : startSelectedSection,
|
|
40
41
|
onSelectedSectionsChange: handleStartSelectedSectionChange
|
|
41
42
|
},
|
|
42
43
|
end: {
|
|
43
44
|
unstableFieldRef: handleUnstableEndFieldRef,
|
|
44
|
-
selectedSections: activeField === 'end' &&
|
|
45
|
+
selectedSections: activeField === 'end' && parameters.selectedSections !== undefined ? parameters.selectedSections : endSelectedSection,
|
|
45
46
|
onSelectedSectionsChange: handleEndSelectedSectionChange
|
|
46
47
|
}
|
|
47
48
|
};
|
|
48
49
|
};
|
|
49
|
-
exports.
|
|
50
|
+
exports.useMultiInputRangeFieldSelectedSections = useMultiInputRangeFieldSelectedSections;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useMultiInputRangeFieldTextFieldProps = useMultiInputRangeFieldTextFieldProps;
|
|
8
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
9
|
+
var _managers = require("@mui/x-date-pickers/managers");
|
|
10
|
+
var _hooks = require("@mui/x-date-pickers/hooks");
|
|
11
|
+
var _internals = require("@mui/x-date-pickers/internals");
|
|
12
|
+
const _excluded = ["clearable", "onClear"];
|
|
13
|
+
/**
|
|
14
|
+
* @ignore - internal hook.
|
|
15
|
+
*/
|
|
16
|
+
function useMultiInputRangeFieldTextFieldProps(parameters) {
|
|
17
|
+
const {
|
|
18
|
+
fieldProps,
|
|
19
|
+
valueType
|
|
20
|
+
} = parameters;
|
|
21
|
+
let useManager;
|
|
22
|
+
switch (valueType) {
|
|
23
|
+
case 'date':
|
|
24
|
+
{
|
|
25
|
+
useManager = _managers.useDateManager;
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
case 'time':
|
|
29
|
+
{
|
|
30
|
+
useManager = _managers.useTimeManager;
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
case 'date-time':
|
|
34
|
+
{
|
|
35
|
+
useManager = _managers.useDateTimeManager;
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
default:
|
|
39
|
+
{
|
|
40
|
+
throw new Error(`Unknown valueType: ${valueType}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const manager = useManager({
|
|
44
|
+
enableAccessibleFieldDOMStructure: fieldProps.enableAccessibleFieldDOMStructure
|
|
45
|
+
});
|
|
46
|
+
const {
|
|
47
|
+
forwardedProps,
|
|
48
|
+
internalProps
|
|
49
|
+
} = (0, _hooks.useSplitFieldProps)(fieldProps, 'date');
|
|
50
|
+
const internalPropsWithDefaults = (0, _internals.useFieldInternalPropsWithDefaults)({
|
|
51
|
+
manager,
|
|
52
|
+
internalProps
|
|
53
|
+
});
|
|
54
|
+
const _ref = (0, _internals.useField)({
|
|
55
|
+
forwardedProps,
|
|
56
|
+
internalProps: internalPropsWithDefaults,
|
|
57
|
+
valueManager: manager.internal_valueManager,
|
|
58
|
+
fieldValueManager: manager.internal_fieldValueManager,
|
|
59
|
+
validator: manager.validator,
|
|
60
|
+
valueType: manager.valueType,
|
|
61
|
+
// TODO v8: Add a real aria label before moving the opening logic to the field on range pickers.
|
|
62
|
+
getOpenPickerButtonAriaLabel: () => ''
|
|
63
|
+
}),
|
|
64
|
+
fieldResponse = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
65
|
+
return fieldResponse;
|
|
66
|
+
}
|
package/node/index.js
CHANGED
|
@@ -13,7 +13,7 @@ var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
|
|
|
13
13
|
var _xLicense = require("@mui/x-license");
|
|
14
14
|
var _PickersLayout = require("@mui/x-date-pickers/PickersLayout");
|
|
15
15
|
var _internals = require("@mui/x-date-pickers/internals");
|
|
16
|
-
var
|
|
16
|
+
var _useEnrichedRangePickerField = require("../useEnrichedRangePickerField");
|
|
17
17
|
var _releaseInfo = require("../../utils/releaseInfo");
|
|
18
18
|
var _useRangePosition = require("../useRangePosition");
|
|
19
19
|
var _usePickerRangePositionContext = require("../../../hooks/usePickerRangePositionContext");
|
|
@@ -31,24 +31,16 @@ const useDesktopRangePicker = _ref => {
|
|
|
31
31
|
slotProps,
|
|
32
32
|
className,
|
|
33
33
|
sx,
|
|
34
|
-
format,
|
|
35
|
-
formatDensity,
|
|
36
|
-
enableAccessibleFieldDOMStructure,
|
|
37
|
-
selectedSections,
|
|
38
|
-
onSelectedSectionsChange,
|
|
39
|
-
timezone,
|
|
40
34
|
label,
|
|
41
35
|
inputRef,
|
|
42
36
|
name,
|
|
43
37
|
readOnly,
|
|
44
|
-
disabled,
|
|
45
38
|
autoFocus,
|
|
46
39
|
disableOpenPicker,
|
|
47
40
|
localeText,
|
|
48
41
|
reduceAnimations
|
|
49
42
|
} = props;
|
|
50
43
|
const fieldContainerRef = React.useRef(null);
|
|
51
|
-
const anchorRef = React.useRef(null);
|
|
52
44
|
const popperRef = React.useRef(null);
|
|
53
45
|
const startFieldRef = React.useRef(null);
|
|
54
46
|
const endFieldRef = React.useRef(null);
|
|
@@ -68,7 +60,6 @@ const useDesktopRangePicker = _ref => {
|
|
|
68
60
|
providerProps,
|
|
69
61
|
renderCurrentView,
|
|
70
62
|
shouldRestoreFocus,
|
|
71
|
-
fieldProps: pickerFieldProps,
|
|
72
63
|
ownerState
|
|
73
64
|
} = (0, _internals.usePicker)((0, _extends2.default)({}, pickerParams, {
|
|
74
65
|
props,
|
|
@@ -77,6 +68,9 @@ const useDesktopRangePicker = _ref => {
|
|
|
77
68
|
fieldRef,
|
|
78
69
|
localeText
|
|
79
70
|
}));
|
|
71
|
+
|
|
72
|
+
// Temporary hack to hide the opening button on the range pickers until we have migrate them to the new opening logic.
|
|
73
|
+
providerProps.contextValue.triggerStatus = 'hidden';
|
|
80
74
|
React.useEffect(() => {
|
|
81
75
|
if (providerProps.contextValue.view) {
|
|
82
76
|
initialView.current = providerProps.contextValue.view;
|
|
@@ -100,17 +94,7 @@ const useDesktopRangePicker = _ref => {
|
|
|
100
94
|
additionalProps: (0, _extends2.default)({
|
|
101
95
|
// Internal props
|
|
102
96
|
readOnly,
|
|
103
|
-
|
|
104
|
-
format,
|
|
105
|
-
formatDensity,
|
|
106
|
-
enableAccessibleFieldDOMStructure,
|
|
107
|
-
selectedSections,
|
|
108
|
-
onSelectedSectionsChange,
|
|
109
|
-
timezone,
|
|
110
|
-
autoFocus: autoFocus && !props.open
|
|
111
|
-
}, pickerFieldProps, {
|
|
112
|
-
// onChange and value
|
|
113
|
-
|
|
97
|
+
autoFocus: autoFocus && !props.open,
|
|
114
98
|
// Forwarded props
|
|
115
99
|
className,
|
|
116
100
|
sx,
|
|
@@ -122,12 +106,12 @@ const useDesktopRangePicker = _ref => {
|
|
|
122
106
|
}),
|
|
123
107
|
ownerState
|
|
124
108
|
});
|
|
125
|
-
const
|
|
109
|
+
const enrichedFieldResponse = (0, _useEnrichedRangePickerField.useEnrichedRangePickerField)((0, _extends2.default)({
|
|
126
110
|
variant: 'desktop',
|
|
127
111
|
fieldType,
|
|
128
112
|
// These direct access to `providerProps` will go away once the range fields handle the picker opening
|
|
129
|
-
|
|
130
|
-
|
|
113
|
+
contextValue: providerProps.contextValue,
|
|
114
|
+
fieldPrivateContextValue: providerProps.fieldPrivateContextValue,
|
|
131
115
|
readOnly,
|
|
132
116
|
disableOpenPicker,
|
|
133
117
|
label,
|
|
@@ -136,7 +120,7 @@ const useDesktopRangePicker = _ref => {
|
|
|
136
120
|
pickerSlotProps: slotProps,
|
|
137
121
|
pickerSlots: slots,
|
|
138
122
|
fieldProps,
|
|
139
|
-
anchorRef,
|
|
123
|
+
anchorRef: providerProps.contextValue.triggerRef,
|
|
140
124
|
startFieldRef,
|
|
141
125
|
endFieldRef,
|
|
142
126
|
singleInputFieldRef,
|
|
@@ -145,24 +129,30 @@ const useDesktopRangePicker = _ref => {
|
|
|
145
129
|
}, rangePositionResponse));
|
|
146
130
|
const Layout = slots?.layout ?? _PickersLayout.PickersLayout;
|
|
147
131
|
const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerProvider, (0, _extends2.default)({}, providerProps, {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
132
|
+
// This override will go away once the range fields handle the picker opening
|
|
133
|
+
fieldPrivateContextValue: (0, _extends2.default)({}, providerProps.fieldPrivateContextValue, enrichedFieldResponse.fieldPrivateContextValue),
|
|
134
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerFieldUIContextProvider, {
|
|
135
|
+
slots: slots,
|
|
136
|
+
slotProps: slotProps,
|
|
137
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_usePickerRangePositionContext.PickerRangePositionContext.Provider, {
|
|
138
|
+
value: rangePositionResponse,
|
|
139
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Field, (0, _extends2.default)({}, enrichedFieldResponse.fieldProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickersPopper, {
|
|
140
|
+
role: "tooltip",
|
|
141
|
+
placement: "bottom-start",
|
|
142
|
+
containerRef: popperRef,
|
|
143
|
+
anchorEl: providerProps.contextValue.triggerRef.current,
|
|
144
|
+
onBlur: handleBlur,
|
|
161
145
|
slots: slots,
|
|
162
146
|
slotProps: slotProps,
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
147
|
+
shouldRestoreFocus: shouldRestoreFocus,
|
|
148
|
+
reduceAnimations: reduceAnimations,
|
|
149
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Layout, (0, _extends2.default)({}, slotProps?.layout, {
|
|
150
|
+
slots: slots,
|
|
151
|
+
slotProps: slotProps,
|
|
152
|
+
children: renderCurrentView()
|
|
153
|
+
}))
|
|
154
|
+
})]
|
|
155
|
+
})
|
|
166
156
|
})
|
|
167
157
|
}));
|
|
168
158
|
return {
|