@comet/admin 8.18.0 → 8.19.0-canary-20260305114550
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/lib/dateTime/datePicker/DatePicker.d.ts +2 -0
- package/lib/dateTime/datePicker/DatePicker.d.ts.map +1 -1
- package/lib/dateTime/datePicker/DatePicker.js +17 -3
- package/lib/dateTime/datePickerField/__stories__/DatePickerField.stories.js +61 -1
- package/lib/dateTime/dateRangePicker/DateRangePicker.d.ts +2 -0
- package/lib/dateTime/dateRangePicker/DateRangePicker.d.ts.map +1 -1
- package/lib/dateTime/dateRangePicker/DateRangePicker.js +17 -3
- package/lib/dateTime/dateRangePickerField/__stories__/DateRangePickerField.stories.js +62 -1
- package/lib/dateTime/dateTimePicker/DateTimePicker.d.ts +2 -0
- package/lib/dateTime/dateTimePicker/DateTimePicker.d.ts.map +1 -1
- package/lib/dateTime/dateTimePicker/DateTimePicker.js +17 -3
- package/lib/dateTime/dateTimePickerField/__stories__/DateTimePickerField.stories.js +61 -1
- package/lib/dateTime/dateTimeRangePicker/DateTimeRangePicker.d.ts +2 -0
- package/lib/dateTime/dateTimeRangePicker/DateTimeRangePicker.d.ts.map +1 -1
- package/lib/dateTime/dateTimeRangePicker/DateTimeRangePicker.js +17 -3
- package/lib/dateTime/dateTimeRangePickerField/__stories__/DateTimeRangePickerField.stories.js +61 -1
- package/lib/dateTime/timePicker/TimePicker.d.ts +2 -0
- package/lib/dateTime/timePicker/TimePicker.d.ts.map +1 -1
- package/lib/dateTime/timePicker/TimePicker.js +17 -3
- package/lib/dateTime/timePickerField/__stories__/TimePickerField.stories.js +70 -1
- package/lib/utils/test-utils.d.ts.map +1 -1
- package/lib/utils/test-utils.js +11 -4
- package/package.json +5 -5
|
@@ -27,6 +27,8 @@ export type Future_DatePickerProps = ThemedComponentBaseProps<{
|
|
|
27
27
|
* @param date - The new date value in ISO 8601 format (YYYY-MM-DD), or `undefined` if cleared.
|
|
28
28
|
*/
|
|
29
29
|
onChange?: (date: string | undefined) => void;
|
|
30
|
+
onBlur?: () => void;
|
|
31
|
+
onFocus?: () => void;
|
|
30
32
|
/**
|
|
31
33
|
* Custom icons for the picker.
|
|
32
34
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/dateTime/datePicker/DatePicker.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,mBAAmB,EAA0B,KAAK,KAAK,EAAiB,MAAM,eAAe,CAAC;AAC5G,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,KAAK,eAAe,IAAI,kBAAkB,EAA2B,MAAM,qBAAqB,CAAC;AACvI,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/dateTime/datePicker/DatePicker.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,mBAAmB,EAA0B,KAAK,KAAK,EAAiB,MAAM,eAAe,CAAC;AAC5G,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,KAAK,eAAe,IAAI,kBAAkB,EAA2B,MAAM,qBAAqB,CAAC;AACvI,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAGjD,OAAO,EAAE,mBAAmB,IAAI,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAGvF,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AAErH,MAAM,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;IAC1D,IAAI,EAAE,OAAO,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvC,mBAAmB,EAAE,OAAO,wBAAwB,CAAC;IACrD,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;CACnD,CAAC,GAAG;IACD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC9C,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,SAAS,CAAC;KAC1B,CAAC;CACL,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,WAAW,CAAC,CAAC;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAS,sBAAsB,4CAqGhE,CAAC;AAoBF,OAAO,QAAQ,sBAAsB,CAAC;IAClC,UAAU,mBAAmB;QACzB,0BAA0B,EAAE,sBAAsB,CAAC;KACtD;IAED,UAAU,uBAAuB;QAC7B,0BAA0B,EAAE,yBAAyB,CAAC;KACzD;IAED,UAAU,UAAU;QAChB,0BAA0B,CAAC,EAAE;YACzB,YAAY,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,4BAA4B,CAAC,CAAC,CAAC;YAC1E,cAAc,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC,CAAC;SAC7E,CAAC;KACL;CACJ"}
|
|
@@ -9,6 +9,7 @@ var _adminIcons = require("@comet/admin-icons");
|
|
|
9
9
|
var _material = require("@mui/material");
|
|
10
10
|
var _xDatePickers = require("@mui/x-date-pickers");
|
|
11
11
|
var _react = require("react");
|
|
12
|
+
var _reactIntl = require("react-intl");
|
|
12
13
|
var _ClearInputAdornment = require("../../common/ClearInputAdornment");
|
|
13
14
|
var _OpenPickerAdornment = require("../../common/OpenPickerAdornment");
|
|
14
15
|
var _ReadOnlyAdornment = require("../../common/ReadOnlyAdornment");
|
|
@@ -16,7 +17,7 @@ var _createComponentSlot = require("../../helpers/createComponentSlot");
|
|
|
16
17
|
var _utils = require("../utils");
|
|
17
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
19
|
var _templateObject;
|
|
19
|
-
var _excluded = ["iconMapping", "fullWidth", "required", "slotProps", "disabled", "value", "onChange", "readOnly"];
|
|
20
|
+
var _excluded = ["iconMapping", "fullWidth", "required", "slotProps", "disabled", "value", "onChange", "onBlur", "onFocus", "readOnly"];
|
|
20
21
|
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
21
22
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
22
23
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -53,12 +54,15 @@ var Future_DatePicker = exports.Future_DatePicker = function Future_DatePicker(i
|
|
|
53
54
|
disabled = _useThemeProps.disabled,
|
|
54
55
|
stringValue = _useThemeProps.value,
|
|
55
56
|
_onChange = _useThemeProps.onChange,
|
|
57
|
+
onBlur = _useThemeProps.onBlur,
|
|
58
|
+
onFocus = _useThemeProps.onFocus,
|
|
56
59
|
readOnly = _useThemeProps.readOnly,
|
|
57
60
|
restProps = _objectWithoutProperties(_useThemeProps, _excluded);
|
|
58
61
|
var _useState = (0, _react.useState)(false),
|
|
59
62
|
_useState2 = _slicedToArray(_useState, 2),
|
|
60
63
|
open = _useState2[0],
|
|
61
64
|
setOpen = _useState2[1];
|
|
65
|
+
var intl = (0, _reactIntl.useIntl)();
|
|
62
66
|
var dateValue = (0, _utils.getDateValue)(stringValue);
|
|
63
67
|
var _iconMapping$openPick = iconMapping.openPicker,
|
|
64
68
|
openPickerIcon = _iconMapping$openPick === void 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_adminIcons.Calendar, {
|
|
@@ -87,13 +91,15 @@ var Future_DatePicker = exports.Future_DatePicker = function Future_DatePicker(i
|
|
|
87
91
|
}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.root), restProps), {}, {
|
|
88
92
|
slotProps: _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$root = slotProps.root) === null || _slotProps$root === void 0 ? void 0 : _slotProps$root.slotProps), {}, {
|
|
89
93
|
textField: function textField(ownerState) {
|
|
90
|
-
var _slotProps$root2, _textFieldProps$Input, _textFieldProps$Input2;
|
|
94
|
+
var _slotProps$root2, _slotProps$openPicker, _slotProps$openPicker2, _textFieldProps$Input, _textFieldProps$Input2;
|
|
91
95
|
var textFieldProps = _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$root2 = slotProps.root) === null || _slotProps$root2 === void 0 || (_slotProps$root2 = _slotProps$root2.slotProps) === null || _slotProps$root2 === void 0 ? void 0 : _slotProps$root2.textField), {}, {
|
|
92
96
|
ownerState: ownerState
|
|
93
97
|
});
|
|
94
98
|
return _objectSpread(_objectSpread({
|
|
95
99
|
fullWidth: fullWidth,
|
|
96
|
-
required: required
|
|
100
|
+
required: required,
|
|
101
|
+
onBlur: onBlur,
|
|
102
|
+
onFocus: onFocus
|
|
97
103
|
}, textFieldProps), {}, {
|
|
98
104
|
InputProps: _objectSpread(_objectSpread({}, textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.InputProps), {}, {
|
|
99
105
|
startAdornment: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
@@ -104,6 +110,14 @@ var Future_DatePicker = exports.Future_DatePicker = function Future_DatePicker(i
|
|
|
104
110
|
return setOpen(true);
|
|
105
111
|
}
|
|
106
112
|
}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.openPickerAdornment), {}, {
|
|
113
|
+
slotProps: _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$openPicker = slotProps.openPickerAdornment) === null || _slotProps$openPicker === void 0 ? void 0 : _slotProps$openPicker.slotProps), {}, {
|
|
114
|
+
openPickerButton: _objectSpread({
|
|
115
|
+
"aria-label": intl.formatMessage({
|
|
116
|
+
id: "comet.datePicker.openPicker",
|
|
117
|
+
defaultMessage: "Open date picker"
|
|
118
|
+
})
|
|
119
|
+
}, slotProps === null || slotProps === void 0 || (_slotProps$openPicker2 = slotProps.openPickerAdornment) === null || _slotProps$openPicker2 === void 0 || (_slotProps$openPicker2 = _slotProps$openPicker2.slotProps) === null || _slotProps$openPicker2 === void 0 ? void 0 : _slotProps$openPicker2.openPickerButton)
|
|
120
|
+
}),
|
|
107
121
|
children: openPickerIcon
|
|
108
122
|
})), textFieldProps === null || textFieldProps === void 0 || (_textFieldProps$Input = textFieldProps.InputProps) === null || _textFieldProps$Input === void 0 ? void 0 : _textFieldProps$Input.startAdornment]
|
|
109
123
|
}),
|
|
@@ -3,11 +3,15 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports["default"] = exports.MinMaxDate = exports.Disabled = exports.Default = exports.Clearable = void 0;
|
|
6
|
+
exports["default"] = exports.MinMaxDate = exports.Disabled = exports.Default = exports.CustomValidation = exports.Clearable = void 0;
|
|
7
7
|
var _FinalForm = require("../../../FinalForm");
|
|
8
8
|
var _FinalFormDebug = require("../../../form/FinalFormDebug");
|
|
9
9
|
var _DatePickerField = require("../DatePickerField");
|
|
10
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
12
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
13
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
14
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
11
15
|
var config = {
|
|
12
16
|
component: _DatePickerField.Future_DatePickerField,
|
|
13
17
|
title: "components/dateTime/DatePickerField"
|
|
@@ -162,4 +166,60 @@ var Disabled = exports.Disabled = {
|
|
|
162
166
|
}
|
|
163
167
|
});
|
|
164
168
|
}
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Before implementing custom validation, try to disable certain values using the props provided by MUI's DatePicker, such as `shouldDisableDate`, `disableFuture`, `disablePast`.
|
|
173
|
+
*
|
|
174
|
+
* Use this when:
|
|
175
|
+
* - You need to validate the date against a custom rule, which cannot be achieved using the props provided by MUI's DatePicker
|
|
176
|
+
* - You want to provide a custom error message
|
|
177
|
+
* - You want to validate the date asynchronously
|
|
178
|
+
*/
|
|
179
|
+
var CustomValidation = exports.CustomValidation = {
|
|
180
|
+
render: function render() {
|
|
181
|
+
var validateIsWeekday = /*#__PURE__*/function () {
|
|
182
|
+
var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(value) {
|
|
183
|
+
var day, isWeekday;
|
|
184
|
+
return _regenerator().w(function (_context) {
|
|
185
|
+
while (1) switch (_context.n) {
|
|
186
|
+
case 0:
|
|
187
|
+
if (value) {
|
|
188
|
+
_context.n = 1;
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
return _context.a(2, undefined);
|
|
192
|
+
case 1:
|
|
193
|
+
day = new Date(value).getDay();
|
|
194
|
+
isWeekday = day !== 0 && day !== 6;
|
|
195
|
+
return _context.a(2, isWeekday ? undefined : "Please select a weekday");
|
|
196
|
+
}
|
|
197
|
+
}, _callee);
|
|
198
|
+
}));
|
|
199
|
+
return function validateIsWeekday(_x) {
|
|
200
|
+
return _ref5.apply(this, arguments);
|
|
201
|
+
};
|
|
202
|
+
}();
|
|
203
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FinalForm.FinalForm, {
|
|
204
|
+
mode: "edit",
|
|
205
|
+
onSubmit: function onSubmit() {
|
|
206
|
+
// not handled
|
|
207
|
+
},
|
|
208
|
+
subscription: {
|
|
209
|
+
values: true
|
|
210
|
+
},
|
|
211
|
+
children: function children() {
|
|
212
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
213
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_DatePickerField.Future_DatePickerField, {
|
|
214
|
+
name: "value",
|
|
215
|
+
label: "Date Picker",
|
|
216
|
+
helperText: "Only weekdays are valid",
|
|
217
|
+
fullWidth: true,
|
|
218
|
+
variant: "horizontal",
|
|
219
|
+
validate: validateIsWeekday
|
|
220
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_FinalFormDebug.FinalFormDebug, {})]
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
}
|
|
165
225
|
};
|
|
@@ -34,6 +34,8 @@ export type Future_DateRangePickerProps = ThemedComponentBaseProps<{
|
|
|
34
34
|
* @param date - The new date range value, or `undefined` if cleared.
|
|
35
35
|
*/
|
|
36
36
|
onChange?: (date: DateRange | undefined) => void;
|
|
37
|
+
onBlur?: () => void;
|
|
38
|
+
onFocus?: () => void;
|
|
37
39
|
/**
|
|
38
40
|
* Custom icons for the picker.
|
|
39
41
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangePicker.d.ts","sourceRoot":"","sources":["../../../src/dateTime/dateRangePicker/DateRangePicker.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,mBAAmB,EAA0B,KAAK,KAAK,EAAiB,MAAM,eAAe,CAAC;AAC5G,OAAO,EAAE,KAAK,oBAAoB,IAAI,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAE,KAAK,aAAa,EAAQ,KAAK,SAAS,EAAsB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DateRangePicker.d.ts","sourceRoot":"","sources":["../../../src/dateTime/dateRangePicker/DateRangePicker.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,mBAAmB,EAA0B,KAAK,KAAK,EAAiB,MAAM,eAAe,CAAC;AAC5G,OAAO,EAAE,KAAK,oBAAoB,IAAI,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAE,KAAK,aAAa,EAAQ,KAAK,SAAS,EAAsB,MAAM,OAAO,CAAC;AAGrF,OAAO,EAAE,mBAAmB,IAAI,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAGvF;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG,MAAM,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AAE1H,MAAM,MAAM,2BAA2B,GAAG,wBAAwB,CAAC;IAC/D,IAAI,EAAE,aAAa,CAAC,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACzD,mBAAmB,EAAE,OAAO,wBAAwB,CAAC;IACrD,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;CACnD,CAAC,GAAG;IACD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,SAAS,CAAC;KAC1B,CAAC;CACL,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,CAAC;AAMpE;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAAI,SAAS,2BAA2B,4CA4G1E,CAAC;AA8BF,OAAO,QAAQ,sBAAsB,CAAC;IAClC,UAAU,mBAAmB;QACzB,+BAA+B,EAAE,2BAA2B,CAAC;KAChE;IAED,UAAU,uBAAuB;QAC7B,+BAA+B,EAAE,8BAA8B,CAAC;KACnE;IAED,UAAU,UAAU;QAChB,+BAA+B,CAAC,EAAE;YAC9B,YAAY,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAC/E,cAAc,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,iCAAiC,CAAC,CAAC;SAClF,CAAC;KACL;CACJ"}
|
|
@@ -8,6 +8,7 @@ exports.Future_DateRangePicker = void 0;
|
|
|
8
8
|
var _adminIcons = require("@comet/admin-icons");
|
|
9
9
|
var _material = require("@mui/material");
|
|
10
10
|
var _react = require("react");
|
|
11
|
+
var _reactIntl = require("react-intl");
|
|
11
12
|
var _ClearInputAdornment = require("../../common/ClearInputAdornment");
|
|
12
13
|
var _OpenPickerAdornment = require("../../common/OpenPickerAdornment");
|
|
13
14
|
var _ReadOnlyAdornment = require("../../common/ReadOnlyAdornment");
|
|
@@ -15,7 +16,7 @@ var _createComponentSlot = require("../../helpers/createComponentSlot");
|
|
|
15
16
|
var _utils = require("../utils");
|
|
16
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
18
|
var _templateObject;
|
|
18
|
-
var _excluded = ["iconMapping", "fullWidth", "required", "slotProps", "disabled", "value", "onChange", "readOnly"];
|
|
19
|
+
var _excluded = ["iconMapping", "fullWidth", "required", "slotProps", "disabled", "value", "onChange", "onBlur", "onFocus", "readOnly"];
|
|
19
20
|
/**
|
|
20
21
|
* Represents a date range with start and end dates in ISO 8601 format (YYYY-MM-DD).
|
|
21
22
|
*/
|
|
@@ -64,8 +65,11 @@ var Future_DateRangePicker = exports.Future_DateRangePicker = function Future_Da
|
|
|
64
65
|
disabled = _useThemeProps.disabled,
|
|
65
66
|
stringDateRangeValue = _useThemeProps.value,
|
|
66
67
|
_onChange = _useThemeProps.onChange,
|
|
68
|
+
onBlur = _useThemeProps.onBlur,
|
|
69
|
+
onFocus = _useThemeProps.onFocus,
|
|
67
70
|
readOnly = _useThemeProps.readOnly,
|
|
68
71
|
restProps = _objectWithoutProperties(_useThemeProps, _excluded);
|
|
72
|
+
var intl = (0, _reactIntl.useIntl)();
|
|
69
73
|
var _useState = (0, _react.useState)(false),
|
|
70
74
|
_useState2 = _slicedToArray(_useState, 2),
|
|
71
75
|
open = _useState2[0],
|
|
@@ -108,13 +112,15 @@ var Future_DateRangePicker = exports.Future_DateRangePicker = function Future_Da
|
|
|
108
112
|
}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.root), restProps), {}, {
|
|
109
113
|
slotProps: _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$root = slotProps.root) === null || _slotProps$root === void 0 ? void 0 : _slotProps$root.slotProps), {}, {
|
|
110
114
|
textField: function textField(ownerState) {
|
|
111
|
-
var _slotProps$root2, _textFieldProps$Input, _textFieldProps$Input2;
|
|
115
|
+
var _slotProps$root2, _slotProps$openPicker, _slotProps$openPicker2, _textFieldProps$Input, _textFieldProps$Input2;
|
|
112
116
|
var textFieldProps = _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$root2 = slotProps.root) === null || _slotProps$root2 === void 0 || (_slotProps$root2 = _slotProps$root2.slotProps) === null || _slotProps$root2 === void 0 ? void 0 : _slotProps$root2.textField), {}, {
|
|
113
117
|
ownerState: ownerState
|
|
114
118
|
});
|
|
115
119
|
return _objectSpread(_objectSpread({
|
|
116
120
|
fullWidth: fullWidth,
|
|
117
|
-
required: required
|
|
121
|
+
required: required,
|
|
122
|
+
onBlur: onBlur,
|
|
123
|
+
onFocus: onFocus
|
|
118
124
|
}, textFieldProps), {}, {
|
|
119
125
|
InputProps: _objectSpread(_objectSpread({}, textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.InputProps), {}, {
|
|
120
126
|
startAdornment: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
@@ -125,6 +131,14 @@ var Future_DateRangePicker = exports.Future_DateRangePicker = function Future_Da
|
|
|
125
131
|
return setOpen(true);
|
|
126
132
|
}
|
|
127
133
|
}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.openPickerAdornment), {}, {
|
|
134
|
+
slotProps: _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$openPicker = slotProps.openPickerAdornment) === null || _slotProps$openPicker === void 0 ? void 0 : _slotProps$openPicker.slotProps), {}, {
|
|
135
|
+
openPickerButton: _objectSpread({
|
|
136
|
+
"aria-label": intl.formatMessage({
|
|
137
|
+
id: "comet.dateRangePicker.openPicker",
|
|
138
|
+
defaultMessage: "Open date range picker"
|
|
139
|
+
})
|
|
140
|
+
}, slotProps === null || slotProps === void 0 || (_slotProps$openPicker2 = slotProps.openPickerAdornment) === null || _slotProps$openPicker2 === void 0 || (_slotProps$openPicker2 = _slotProps$openPicker2.slotProps) === null || _slotProps$openPicker2 === void 0 ? void 0 : _slotProps$openPicker2.openPickerButton)
|
|
141
|
+
}),
|
|
128
142
|
children: openPickerIcon
|
|
129
143
|
})), textFieldProps === null || textFieldProps === void 0 || (_textFieldProps$Input = textFieldProps.InputProps) === null || _textFieldProps$Input === void 0 ? void 0 : _textFieldProps$Input.startAdornment]
|
|
130
144
|
}),
|
|
@@ -3,11 +3,15 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports["default"] = exports.MinMaxDate = exports.Disabled = exports.Default = exports.Clearable = void 0;
|
|
6
|
+
exports["default"] = exports.MinMaxDate = exports.Disabled = exports.Default = exports.CustomValidation = exports.Clearable = void 0;
|
|
7
7
|
var _FinalForm = require("../../../FinalForm");
|
|
8
8
|
var _FinalFormDebug = require("../../../form/FinalFormDebug");
|
|
9
9
|
var _DateRangePickerField = require("../DateRangePickerField");
|
|
10
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
12
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
13
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
14
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
11
15
|
var config = {
|
|
12
16
|
component: _DateRangePickerField.Future_DateRangePickerField,
|
|
13
17
|
title: "components/dateTime/DateRangePickerField"
|
|
@@ -165,4 +169,61 @@ var Disabled = exports.Disabled = {
|
|
|
165
169
|
}
|
|
166
170
|
});
|
|
167
171
|
}
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Before implementing custom validation, try to disable certain values using the props provided by MUI's DateRangePicker, such as `shouldDisableDate`, `disableFuture`, `disablePast`.
|
|
176
|
+
*
|
|
177
|
+
* Use this when:
|
|
178
|
+
* - You need to validate the date range against a custom rule, which cannot be achieved using the props provided by MUI's DateRangePicker
|
|
179
|
+
* - You want to provide a custom error message
|
|
180
|
+
* - You want to validate the date range asynchronously
|
|
181
|
+
*/
|
|
182
|
+
var CustomValidation = exports.CustomValidation = {
|
|
183
|
+
render: function render() {
|
|
184
|
+
var validateMaxThirtyDayRange = /*#__PURE__*/function () {
|
|
185
|
+
var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(value) {
|
|
186
|
+
var startDate, endDate, differenceInDays;
|
|
187
|
+
return _regenerator().w(function (_context) {
|
|
188
|
+
while (1) switch (_context.n) {
|
|
189
|
+
case 0:
|
|
190
|
+
if (!(!(value !== null && value !== void 0 && value.start) || !(value !== null && value !== void 0 && value.end))) {
|
|
191
|
+
_context.n = 1;
|
|
192
|
+
break;
|
|
193
|
+
}
|
|
194
|
+
return _context.a(2, undefined);
|
|
195
|
+
case 1:
|
|
196
|
+
startDate = new Date(value.start);
|
|
197
|
+
endDate = new Date(value.end);
|
|
198
|
+
differenceInDays = (endDate.getTime() - startDate.getTime()) / (1000 * 60 * 60 * 24);
|
|
199
|
+
return _context.a(2, differenceInDays <= 30 ? undefined : "Please select a range no longer than 30 days");
|
|
200
|
+
}
|
|
201
|
+
}, _callee);
|
|
202
|
+
}));
|
|
203
|
+
return function validateMaxThirtyDayRange(_x) {
|
|
204
|
+
return _ref5.apply(this, arguments);
|
|
205
|
+
};
|
|
206
|
+
}();
|
|
207
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FinalForm.FinalForm, {
|
|
208
|
+
mode: "edit",
|
|
209
|
+
onSubmit: function onSubmit() {
|
|
210
|
+
// not handled
|
|
211
|
+
},
|
|
212
|
+
subscription: {
|
|
213
|
+
values: true
|
|
214
|
+
},
|
|
215
|
+
children: function children() {
|
|
216
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
217
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_DateRangePickerField.Future_DateRangePickerField, {
|
|
218
|
+
name: "value",
|
|
219
|
+
label: "Date Range Picker",
|
|
220
|
+
helperText: "The selected range must not exceed 30 days",
|
|
221
|
+
fullWidth: true,
|
|
222
|
+
variant: "horizontal",
|
|
223
|
+
validate: validateMaxThirtyDayRange
|
|
224
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_FinalFormDebug.FinalFormDebug, {})]
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
}
|
|
168
229
|
};
|
|
@@ -32,6 +32,8 @@ export type Future_DateTimePickerProps = ThemedComponentBaseProps<{
|
|
|
32
32
|
*
|
|
33
33
|
* - `openPicker`: Icon to display in the adornment that opens the picker (default: Calendar icon)
|
|
34
34
|
*/
|
|
35
|
+
onBlur?: () => void;
|
|
36
|
+
onFocus?: () => void;
|
|
35
37
|
iconMapping?: {
|
|
36
38
|
openPicker?: ReactNode;
|
|
37
39
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimePicker.d.ts","sourceRoot":"","sources":["../../../src/dateTime/dateTimePicker/DateTimePicker.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,mBAAmB,EAA0B,KAAK,KAAK,EAAiB,MAAM,eAAe,CAAC;AAC5G,OAAO,EACH,cAAc,IAAI,iBAAiB,EACnC,KAAK,mBAAmB,IAAI,sBAAsB,EAErD,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DateTimePicker.d.ts","sourceRoot":"","sources":["../../../src/dateTime/dateTimePicker/DateTimePicker.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,mBAAmB,EAA0B,KAAK,KAAK,EAAiB,MAAM,eAAe,CAAC;AAC5G,OAAO,EACH,cAAc,IAAI,iBAAiB,EACnC,KAAK,mBAAmB,IAAI,sBAAsB,EAErD,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAGjD,OAAO,EAAE,mBAAmB,IAAI,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAGvF,MAAM,MAAM,6BAA6B,GAAG,MAAM,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AAEzH,MAAM,MAAM,0BAA0B,GAAG,wBAAwB,CAAC;IAC9D,IAAI,EAAE,OAAO,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,mBAAmB,EAAE,OAAO,wBAAwB,CAAC;IACrD,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;CACnD,CAAC,GAAG;IACD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,IAAI,CAAC;IACb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;IAChD;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,SAAS,CAAC;KAC1B,CAAC;CACL,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,CAAC;AAEnE;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,GAAI,SAAS,0BAA0B,4CAmGxE,CAAC;AAoBF,OAAO,QAAQ,sBAAsB,CAAC;IAClC,UAAU,mBAAmB;QACzB,8BAA8B,EAAE,0BAA0B,CAAC;KAC9D;IAED,UAAU,uBAAuB;QAC7B,8BAA8B,EAAE,6BAA6B,CAAC;KACjE;IAED,UAAU,UAAU;QAChB,8BAA8B,CAAC,EAAE;YAC7B,YAAY,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,gCAAgC,CAAC,CAAC,CAAC;YAC9E,cAAc,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,gCAAgC,CAAC,CAAC;SACjF,CAAC;KACL;CACJ"}
|
|
@@ -9,6 +9,7 @@ var _adminIcons = require("@comet/admin-icons");
|
|
|
9
9
|
var _material = require("@mui/material");
|
|
10
10
|
var _xDatePickers = require("@mui/x-date-pickers");
|
|
11
11
|
var _react = require("react");
|
|
12
|
+
var _reactIntl = require("react-intl");
|
|
12
13
|
var _ClearInputAdornment = require("../../common/ClearInputAdornment");
|
|
13
14
|
var _OpenPickerAdornment = require("../../common/OpenPickerAdornment");
|
|
14
15
|
var _ReadOnlyAdornment = require("../../common/ReadOnlyAdornment");
|
|
@@ -16,7 +17,7 @@ var _createComponentSlot = require("../../helpers/createComponentSlot");
|
|
|
16
17
|
var _utils = require("../utils");
|
|
17
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
19
|
var _templateObject;
|
|
19
|
-
var _excluded = ["iconMapping", "fullWidth", "required", "slotProps", "disabled", "value", "onChange", "readOnly"];
|
|
20
|
+
var _excluded = ["iconMapping", "fullWidth", "required", "slotProps", "disabled", "value", "onChange", "onBlur", "onFocus", "readOnly"];
|
|
20
21
|
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
21
22
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
22
23
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -54,12 +55,15 @@ var Future_DateTimePicker = exports.Future_DateTimePicker = function Future_Date
|
|
|
54
55
|
_useThemeProps$value = _useThemeProps.value,
|
|
55
56
|
value = _useThemeProps$value === void 0 ? null : _useThemeProps$value,
|
|
56
57
|
_onChange = _useThemeProps.onChange,
|
|
58
|
+
onBlur = _useThemeProps.onBlur,
|
|
59
|
+
onFocus = _useThemeProps.onFocus,
|
|
57
60
|
readOnly = _useThemeProps.readOnly,
|
|
58
61
|
restProps = _objectWithoutProperties(_useThemeProps, _excluded);
|
|
59
62
|
var _useState = (0, _react.useState)(false),
|
|
60
63
|
_useState2 = _slicedToArray(_useState, 2),
|
|
61
64
|
open = _useState2[0],
|
|
62
65
|
setOpen = _useState2[1];
|
|
66
|
+
var intl = (0, _reactIntl.useIntl)();
|
|
63
67
|
var _iconMapping$openPick = iconMapping.openPicker,
|
|
64
68
|
openPickerIcon = _iconMapping$openPick === void 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_adminIcons.Calendar, {
|
|
65
69
|
color: "inherit"
|
|
@@ -87,13 +91,15 @@ var Future_DateTimePicker = exports.Future_DateTimePicker = function Future_Date
|
|
|
87
91
|
}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.root), restProps), {}, {
|
|
88
92
|
slotProps: _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$root = slotProps.root) === null || _slotProps$root === void 0 ? void 0 : _slotProps$root.slotProps), {}, {
|
|
89
93
|
textField: function textField(ownerState) {
|
|
90
|
-
var _slotProps$root2, _textFieldProps$Input, _textFieldProps$Input2;
|
|
94
|
+
var _slotProps$root2, _slotProps$openPicker, _slotProps$openPicker2, _textFieldProps$Input, _textFieldProps$Input2;
|
|
91
95
|
var textFieldProps = _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$root2 = slotProps.root) === null || _slotProps$root2 === void 0 || (_slotProps$root2 = _slotProps$root2.slotProps) === null || _slotProps$root2 === void 0 ? void 0 : _slotProps$root2.textField), {}, {
|
|
92
96
|
ownerState: ownerState
|
|
93
97
|
});
|
|
94
98
|
return _objectSpread(_objectSpread({
|
|
95
99
|
fullWidth: fullWidth,
|
|
96
|
-
required: required
|
|
100
|
+
required: required,
|
|
101
|
+
onBlur: onBlur,
|
|
102
|
+
onFocus: onFocus
|
|
97
103
|
}, textFieldProps), {}, {
|
|
98
104
|
InputProps: _objectSpread(_objectSpread({}, textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.InputProps), {}, {
|
|
99
105
|
startAdornment: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
@@ -104,6 +110,14 @@ var Future_DateTimePicker = exports.Future_DateTimePicker = function Future_Date
|
|
|
104
110
|
return setOpen(true);
|
|
105
111
|
}
|
|
106
112
|
}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.openPickerAdornment), {}, {
|
|
113
|
+
slotProps: _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$openPicker = slotProps.openPickerAdornment) === null || _slotProps$openPicker === void 0 ? void 0 : _slotProps$openPicker.slotProps), {}, {
|
|
114
|
+
openPickerButton: _objectSpread({
|
|
115
|
+
"aria-label": intl.formatMessage({
|
|
116
|
+
id: "comet.dateTimePicker.openPicker",
|
|
117
|
+
defaultMessage: "Open date time picker"
|
|
118
|
+
})
|
|
119
|
+
}, slotProps === null || slotProps === void 0 || (_slotProps$openPicker2 = slotProps.openPickerAdornment) === null || _slotProps$openPicker2 === void 0 || (_slotProps$openPicker2 = _slotProps$openPicker2.slotProps) === null || _slotProps$openPicker2 === void 0 ? void 0 : _slotProps$openPicker2.openPickerButton)
|
|
120
|
+
}),
|
|
107
121
|
children: openPickerIcon
|
|
108
122
|
})), textFieldProps === null || textFieldProps === void 0 || (_textFieldProps$Input = textFieldProps.InputProps) === null || _textFieldProps$Input === void 0 ? void 0 : _textFieldProps$Input.startAdornment]
|
|
109
123
|
}),
|
|
@@ -3,11 +3,15 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports["default"] = exports.MinMaxDate = exports.Disabled = exports.Default = exports.Clearable = void 0;
|
|
6
|
+
exports["default"] = exports.MinMaxDate = exports.Disabled = exports.Default = exports.CustomValidation = exports.Clearable = void 0;
|
|
7
7
|
var _FinalForm = require("../../../FinalForm");
|
|
8
8
|
var _FinalFormDebug = require("../../../form/FinalFormDebug");
|
|
9
9
|
var _DateTimePickerField = require("../DateTimePickerField");
|
|
10
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
12
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
13
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
14
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
11
15
|
var config = {
|
|
12
16
|
component: _DateTimePickerField.Future_DateTimePickerField,
|
|
13
17
|
title: "components/dateTime/DateTimePickerField"
|
|
@@ -162,4 +166,60 @@ var Disabled = exports.Disabled = {
|
|
|
162
166
|
}
|
|
163
167
|
});
|
|
164
168
|
}
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Before implementing custom validation, try to disable certain values using the props provided by MUI's DateTimePicker, such as `shouldDisableDate`, `shouldDisableTime`, `disableFuture`, `disablePast`.
|
|
173
|
+
*
|
|
174
|
+
* Use this when:
|
|
175
|
+
* - You need to validate the date against a custom rule, which cannot be achieved using the props provided by MUI's DateTimePicker
|
|
176
|
+
* - You want to provide a custom error message
|
|
177
|
+
* - You want to validate the date asynchronously
|
|
178
|
+
*/
|
|
179
|
+
var CustomValidation = exports.CustomValidation = {
|
|
180
|
+
render: function render() {
|
|
181
|
+
var validateIsWeekday = /*#__PURE__*/function () {
|
|
182
|
+
var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(value) {
|
|
183
|
+
var day, isWeekday;
|
|
184
|
+
return _regenerator().w(function (_context) {
|
|
185
|
+
while (1) switch (_context.n) {
|
|
186
|
+
case 0:
|
|
187
|
+
if (value) {
|
|
188
|
+
_context.n = 1;
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
return _context.a(2, undefined);
|
|
192
|
+
case 1:
|
|
193
|
+
day = value.getDay();
|
|
194
|
+
isWeekday = day !== 0 && day !== 6;
|
|
195
|
+
return _context.a(2, isWeekday ? undefined : "Please select a weekday");
|
|
196
|
+
}
|
|
197
|
+
}, _callee);
|
|
198
|
+
}));
|
|
199
|
+
return function validateIsWeekday(_x) {
|
|
200
|
+
return _ref5.apply(this, arguments);
|
|
201
|
+
};
|
|
202
|
+
}();
|
|
203
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FinalForm.FinalForm, {
|
|
204
|
+
mode: "edit",
|
|
205
|
+
onSubmit: function onSubmit() {
|
|
206
|
+
// not handled
|
|
207
|
+
},
|
|
208
|
+
subscription: {
|
|
209
|
+
values: true
|
|
210
|
+
},
|
|
211
|
+
children: function children() {
|
|
212
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
213
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_DateTimePickerField.Future_DateTimePickerField, {
|
|
214
|
+
name: "value",
|
|
215
|
+
label: "Date Time Picker",
|
|
216
|
+
helperText: "Only weekdays are valid",
|
|
217
|
+
fullWidth: true,
|
|
218
|
+
variant: "horizontal",
|
|
219
|
+
validate: validateIsWeekday
|
|
220
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_FinalFormDebug.FinalFormDebug, {})]
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
}
|
|
165
225
|
};
|
|
@@ -34,6 +34,8 @@ export type DateTimeRangePickerProps = ThemedComponentBaseProps<{
|
|
|
34
34
|
* @param date - The new date-time range value, or `undefined` if cleared.
|
|
35
35
|
*/
|
|
36
36
|
onChange?: (date: DateTimeRange | undefined) => void;
|
|
37
|
+
onBlur?: () => void;
|
|
38
|
+
onFocus?: () => void;
|
|
37
39
|
/**
|
|
38
40
|
* Custom icons for the picker.
|
|
39
41
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimeRangePicker.d.ts","sourceRoot":"","sources":["../../../src/dateTime/dateTimeRangePicker/DateTimeRangePicker.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,mBAAmB,EAA0B,KAAK,KAAK,EAAiB,MAAM,eAAe,CAAC;AAC5G,OAAO,EAAE,KAAK,wBAAwB,IAAI,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACvG,OAAO,EAAE,KAAK,aAAa,EAAQ,KAAK,SAAS,EAAsB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DateTimeRangePicker.d.ts","sourceRoot":"","sources":["../../../src/dateTime/dateTimeRangePicker/DateTimeRangePicker.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,mBAAmB,EAA0B,KAAK,KAAK,EAAiB,MAAM,eAAe,CAAC;AAC5G,OAAO,EAAE,KAAK,wBAAwB,IAAI,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACvG,OAAO,EAAE,KAAK,aAAa,EAAQ,KAAK,SAAS,EAAsB,MAAM,OAAO,CAAC;AAGrF,OAAO,EAAE,mBAAmB,IAAI,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAGvF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IACxB,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,MAAM,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AAEvH,MAAM,MAAM,wBAAwB,GAAG,wBAAwB,CAAC;IAC5D,IAAI,EAAE,aAAa,CAAC,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7D,mBAAmB,EAAE,OAAO,wBAAwB,CAAC;IACrD,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;CACnD,CAAC,GAAG;IACD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,KAAK,IAAI,CAAC;IACrD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,SAAS,CAAC;KAC1B,CAAC;CACL,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,CAAC;AAExE;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,wBAAwB,4CAiHpE,CAAC;AA4BF,OAAO,QAAQ,sBAAsB,CAAC;IAClC,UAAU,mBAAmB;QACzB,6BAA6B,EAAE,wBAAwB,CAAC;KAC3D;IAED,UAAU,uBAAuB;QAC7B,6BAA6B,EAAE,2BAA2B,CAAC;KAC9D;IAED,UAAU,UAAU;QAChB,6BAA6B,CAAC,EAAE;YAC5B,YAAY,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,+BAA+B,CAAC,CAAC,CAAC;YAC7E,cAAc,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,+BAA+B,CAAC,CAAC;SAChF,CAAC;KACL;CACJ"}
|
|
@@ -8,6 +8,7 @@ exports.DateTimeRangePicker = void 0;
|
|
|
8
8
|
var _adminIcons = require("@comet/admin-icons");
|
|
9
9
|
var _material = require("@mui/material");
|
|
10
10
|
var _react = require("react");
|
|
11
|
+
var _reactIntl = require("react-intl");
|
|
11
12
|
var _ClearInputAdornment = require("../../common/ClearInputAdornment");
|
|
12
13
|
var _OpenPickerAdornment = require("../../common/OpenPickerAdornment");
|
|
13
14
|
var _ReadOnlyAdornment = require("../../common/ReadOnlyAdornment");
|
|
@@ -15,7 +16,7 @@ var _createComponentSlot = require("../../helpers/createComponentSlot");
|
|
|
15
16
|
var _utils = require("../utils");
|
|
16
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
18
|
var _templateObject;
|
|
18
|
-
var _excluded = ["iconMapping", "fullWidth", "required", "slotProps", "disabled", "value", "onChange", "readOnly"];
|
|
19
|
+
var _excluded = ["iconMapping", "fullWidth", "required", "slotProps", "disabled", "value", "onChange", "onBlur", "onFocus", "readOnly"];
|
|
19
20
|
/**
|
|
20
21
|
* Represents a date-time range with start and end dates as Date objects.
|
|
21
22
|
*/
|
|
@@ -60,8 +61,11 @@ var DateTimeRangePicker = exports.DateTimeRangePicker = function DateTimeRangePi
|
|
|
60
61
|
disabled = _useThemeProps.disabled,
|
|
61
62
|
valueObject = _useThemeProps.value,
|
|
62
63
|
_onChange = _useThemeProps.onChange,
|
|
64
|
+
onBlur = _useThemeProps.onBlur,
|
|
65
|
+
onFocus = _useThemeProps.onFocus,
|
|
63
66
|
readOnly = _useThemeProps.readOnly,
|
|
64
67
|
restProps = _objectWithoutProperties(_useThemeProps, _excluded);
|
|
68
|
+
var intl = (0, _reactIntl.useIntl)();
|
|
65
69
|
var _useState = (0, _react.useState)(false),
|
|
66
70
|
_useState2 = _slicedToArray(_useState, 2),
|
|
67
71
|
open = _useState2[0],
|
|
@@ -106,13 +110,15 @@ var DateTimeRangePicker = exports.DateTimeRangePicker = function DateTimeRangePi
|
|
|
106
110
|
}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.root), restProps), {}, {
|
|
107
111
|
slotProps: _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$root = slotProps.root) === null || _slotProps$root === void 0 ? void 0 : _slotProps$root.slotProps), {}, {
|
|
108
112
|
textField: function textField(ownerState) {
|
|
109
|
-
var _slotProps$root2, _textFieldProps$Input, _textFieldProps$Input2;
|
|
113
|
+
var _slotProps$root2, _slotProps$openPicker, _slotProps$openPicker2, _textFieldProps$Input, _textFieldProps$Input2;
|
|
110
114
|
var textFieldProps = _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$root2 = slotProps.root) === null || _slotProps$root2 === void 0 || (_slotProps$root2 = _slotProps$root2.slotProps) === null || _slotProps$root2 === void 0 ? void 0 : _slotProps$root2.textField), {}, {
|
|
111
115
|
ownerState: ownerState
|
|
112
116
|
});
|
|
113
117
|
return _objectSpread(_objectSpread({
|
|
114
118
|
fullWidth: fullWidth,
|
|
115
|
-
required: required
|
|
119
|
+
required: required,
|
|
120
|
+
onBlur: onBlur,
|
|
121
|
+
onFocus: onFocus
|
|
116
122
|
}, textFieldProps), {}, {
|
|
117
123
|
InputProps: _objectSpread(_objectSpread({}, textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.InputProps), {}, {
|
|
118
124
|
startAdornment: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
@@ -123,6 +129,14 @@ var DateTimeRangePicker = exports.DateTimeRangePicker = function DateTimeRangePi
|
|
|
123
129
|
return setOpen(true);
|
|
124
130
|
}
|
|
125
131
|
}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.openPickerAdornment), {}, {
|
|
132
|
+
slotProps: _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$openPicker = slotProps.openPickerAdornment) === null || _slotProps$openPicker === void 0 ? void 0 : _slotProps$openPicker.slotProps), {}, {
|
|
133
|
+
openPickerButton: _objectSpread({
|
|
134
|
+
"aria-label": intl.formatMessage({
|
|
135
|
+
id: "comet.dateTimeRangePicker.openPicker",
|
|
136
|
+
defaultMessage: "Open date time range picker"
|
|
137
|
+
})
|
|
138
|
+
}, slotProps === null || slotProps === void 0 || (_slotProps$openPicker2 = slotProps.openPickerAdornment) === null || _slotProps$openPicker2 === void 0 || (_slotProps$openPicker2 = _slotProps$openPicker2.slotProps) === null || _slotProps$openPicker2 === void 0 ? void 0 : _slotProps$openPicker2.openPickerButton)
|
|
139
|
+
}),
|
|
126
140
|
children: openPickerIcon
|
|
127
141
|
})), textFieldProps === null || textFieldProps === void 0 || (_textFieldProps$Input = textFieldProps.InputProps) === null || _textFieldProps$Input === void 0 ? void 0 : _textFieldProps$Input.startAdornment]
|
|
128
142
|
}),
|
package/lib/dateTime/dateTimeRangePickerField/__stories__/DateTimeRangePickerField.stories.js
CHANGED
|
@@ -3,11 +3,15 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports["default"] = exports.MinMaxDate = exports.Disabled = exports.Default = exports.Clearable = void 0;
|
|
6
|
+
exports["default"] = exports.MinMaxDate = exports.Disabled = exports.Default = exports.CustomValidation = exports.Clearable = void 0;
|
|
7
7
|
var _FinalForm = require("../../../FinalForm");
|
|
8
8
|
var _FinalFormDebug = require("../../../form/FinalFormDebug");
|
|
9
9
|
var _DateTimeRangePickerField = require("../DateTimeRangePickerField");
|
|
10
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
12
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
13
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
14
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
11
15
|
var config = {
|
|
12
16
|
component: _DateTimeRangePickerField.DateTimeRangePickerField,
|
|
13
17
|
title: "components/dateTime/DateTimeRangePickerField"
|
|
@@ -165,4 +169,60 @@ var Disabled = exports.Disabled = {
|
|
|
165
169
|
}
|
|
166
170
|
});
|
|
167
171
|
}
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Before implementing custom validation, try to disable certain values using the props provided by MUI's DateTimeRangePicker, such as `shouldDisableDate`, `shouldDisableTime`, `disableFuture`, `disablePast`.
|
|
176
|
+
*
|
|
177
|
+
* Use this when:
|
|
178
|
+
* - You need to validate the date time range against a custom rule, which cannot be achieved using the props provided by MUI's DateTimeRangePicker
|
|
179
|
+
* - You want to provide a custom error message
|
|
180
|
+
* - You want to validate the date time range asynchronously
|
|
181
|
+
*/
|
|
182
|
+
var CustomValidation = exports.CustomValidation = {
|
|
183
|
+
render: function render() {
|
|
184
|
+
var validateMaxThirtyDayRange = /*#__PURE__*/function () {
|
|
185
|
+
var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(value) {
|
|
186
|
+
var millisecondsDifference, daysDifference;
|
|
187
|
+
return _regenerator().w(function (_context) {
|
|
188
|
+
while (1) switch (_context.n) {
|
|
189
|
+
case 0:
|
|
190
|
+
if (!(!(value !== null && value !== void 0 && value.start) || !(value !== null && value !== void 0 && value.end))) {
|
|
191
|
+
_context.n = 1;
|
|
192
|
+
break;
|
|
193
|
+
}
|
|
194
|
+
return _context.a(2, undefined);
|
|
195
|
+
case 1:
|
|
196
|
+
millisecondsDifference = value.end.getTime() - value.start.getTime();
|
|
197
|
+
daysDifference = millisecondsDifference / (1000 * 60 * 60 * 24);
|
|
198
|
+
return _context.a(2, daysDifference <= 30 ? undefined : "Please select a range no longer than 30 days");
|
|
199
|
+
}
|
|
200
|
+
}, _callee);
|
|
201
|
+
}));
|
|
202
|
+
return function validateMaxThirtyDayRange(_x) {
|
|
203
|
+
return _ref5.apply(this, arguments);
|
|
204
|
+
};
|
|
205
|
+
}();
|
|
206
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FinalForm.FinalForm, {
|
|
207
|
+
mode: "edit",
|
|
208
|
+
onSubmit: function onSubmit() {
|
|
209
|
+
// not handled
|
|
210
|
+
},
|
|
211
|
+
subscription: {
|
|
212
|
+
values: true
|
|
213
|
+
},
|
|
214
|
+
children: function children() {
|
|
215
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
216
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_DateTimeRangePickerField.DateTimeRangePickerField, {
|
|
217
|
+
name: "value",
|
|
218
|
+
label: "Date Time Range Picker",
|
|
219
|
+
helperText: "The selected range must not exceed 30 days",
|
|
220
|
+
fullWidth: true,
|
|
221
|
+
variant: "horizontal",
|
|
222
|
+
validate: validateMaxThirtyDayRange
|
|
223
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_FinalFormDebug.FinalFormDebug, {})]
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
}
|
|
168
228
|
};
|
|
@@ -27,6 +27,8 @@ export type Future_TimePickerProps = ThemedComponentBaseProps<{
|
|
|
27
27
|
* @param time - The new time value in 24-hour format (HH:mm), or `undefined` if cleared.
|
|
28
28
|
*/
|
|
29
29
|
onChange?: (time: string | undefined) => void;
|
|
30
|
+
onBlur?: () => void;
|
|
31
|
+
onFocus?: () => void;
|
|
30
32
|
/**
|
|
31
33
|
* Custom icons for the picker.
|
|
32
34
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimePicker.d.ts","sourceRoot":"","sources":["../../../src/dateTime/timePicker/TimePicker.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,mBAAmB,EAA0B,KAAK,KAAK,EAAiB,MAAM,eAAe,CAAC;AAC5G,OAAO,EAA2B,UAAU,IAAI,aAAa,EAAE,KAAK,eAAe,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEvI,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TimePicker.d.ts","sourceRoot":"","sources":["../../../src/dateTime/timePicker/TimePicker.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,mBAAmB,EAA0B,KAAK,KAAK,EAAiB,MAAM,eAAe,CAAC;AAC5G,OAAO,EAA2B,UAAU,IAAI,aAAa,EAAE,KAAK,eAAe,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEvI,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAGjD,OAAO,EAAE,mBAAmB,IAAI,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAEvF,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AAErH,MAAM,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;IAC1D,IAAI,EAAE,OAAO,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvC,mBAAmB,EAAE,OAAO,wBAAwB,CAAC;IACrD,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;CACnD,CAAC,GAAG;IACD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC9C,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,SAAS,CAAC;KAC1B,CAAC;CACL,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,WAAW,CAAC,CAAC;AAqB7E;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAS,sBAAsB,4CAoGhE,CAAC;AAoBF,OAAO,QAAQ,sBAAsB,CAAC;IAClC,UAAU,mBAAmB;QACzB,0BAA0B,EAAE,sBAAsB,CAAC;KACtD;IAED,UAAU,uBAAuB;QAC7B,0BAA0B,EAAE,yBAAyB,CAAC;KACzD;IAED,UAAU,UAAU;QAChB,0BAA0B,CAAC,EAAE;YACzB,YAAY,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,4BAA4B,CAAC,CAAC,CAAC;YAC1E,cAAc,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC,CAAC;SAC7E,CAAC;KACL;CACJ"}
|
|
@@ -10,13 +10,14 @@ var _material = require("@mui/material");
|
|
|
10
10
|
var _xDatePickers = require("@mui/x-date-pickers");
|
|
11
11
|
var _dateFns = require("date-fns");
|
|
12
12
|
var _react = require("react");
|
|
13
|
+
var _reactIntl = require("react-intl");
|
|
13
14
|
var _ClearInputAdornment = require("../../common/ClearInputAdornment");
|
|
14
15
|
var _OpenPickerAdornment = require("../../common/OpenPickerAdornment");
|
|
15
16
|
var _ReadOnlyAdornment = require("../../common/ReadOnlyAdornment");
|
|
16
17
|
var _createComponentSlot = require("../../helpers/createComponentSlot");
|
|
17
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
19
|
var _templateObject;
|
|
19
|
-
var _excluded = ["iconMapping", "fullWidth", "required", "slotProps", "disabled", "value", "onChange", "readOnly"];
|
|
20
|
+
var _excluded = ["iconMapping", "fullWidth", "required", "slotProps", "disabled", "value", "onChange", "onBlur", "onFocus", "readOnly"];
|
|
20
21
|
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
21
22
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
22
23
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -68,12 +69,15 @@ var Future_TimePicker = exports.Future_TimePicker = function Future_TimePicker(i
|
|
|
68
69
|
disabled = _useThemeProps.disabled,
|
|
69
70
|
stringValue = _useThemeProps.value,
|
|
70
71
|
_onChange = _useThemeProps.onChange,
|
|
72
|
+
onBlur = _useThemeProps.onBlur,
|
|
73
|
+
onFocus = _useThemeProps.onFocus,
|
|
71
74
|
readOnly = _useThemeProps.readOnly,
|
|
72
75
|
restProps = _objectWithoutProperties(_useThemeProps, _excluded);
|
|
73
76
|
var _useState = (0, _react.useState)(false),
|
|
74
77
|
_useState2 = _slicedToArray(_useState, 2),
|
|
75
78
|
open = _useState2[0],
|
|
76
79
|
setOpen = _useState2[1];
|
|
80
|
+
var intl = (0, _reactIntl.useIntl)();
|
|
77
81
|
var dateValue = getDateFromTimeString(stringValue);
|
|
78
82
|
var _iconMapping$openPick = iconMapping.openPicker,
|
|
79
83
|
openPickerIcon = _iconMapping$openPick === void 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_adminIcons.Time, {
|
|
@@ -102,13 +106,15 @@ var Future_TimePicker = exports.Future_TimePicker = function Future_TimePicker(i
|
|
|
102
106
|
}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.root), restProps), {}, {
|
|
103
107
|
slotProps: _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$root = slotProps.root) === null || _slotProps$root === void 0 ? void 0 : _slotProps$root.slotProps), {}, {
|
|
104
108
|
textField: function textField(ownerState) {
|
|
105
|
-
var _slotProps$root2, _textFieldProps$Input, _textFieldProps$Input2;
|
|
109
|
+
var _slotProps$root2, _slotProps$openPicker, _slotProps$openPicker2, _textFieldProps$Input, _textFieldProps$Input2;
|
|
106
110
|
var textFieldProps = _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$root2 = slotProps.root) === null || _slotProps$root2 === void 0 || (_slotProps$root2 = _slotProps$root2.slotProps) === null || _slotProps$root2 === void 0 ? void 0 : _slotProps$root2.textField), {}, {
|
|
107
111
|
ownerState: ownerState
|
|
108
112
|
});
|
|
109
113
|
return _objectSpread(_objectSpread({
|
|
110
114
|
fullWidth: fullWidth,
|
|
111
|
-
required: required
|
|
115
|
+
required: required,
|
|
116
|
+
onBlur: onBlur,
|
|
117
|
+
onFocus: onFocus
|
|
112
118
|
}, textFieldProps), {}, {
|
|
113
119
|
InputProps: _objectSpread(_objectSpread({}, textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.InputProps), {}, {
|
|
114
120
|
startAdornment: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
@@ -119,6 +125,14 @@ var Future_TimePicker = exports.Future_TimePicker = function Future_TimePicker(i
|
|
|
119
125
|
return setOpen(true);
|
|
120
126
|
}
|
|
121
127
|
}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.openPickerAdornment), {}, {
|
|
128
|
+
slotProps: _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$openPicker = slotProps.openPickerAdornment) === null || _slotProps$openPicker === void 0 ? void 0 : _slotProps$openPicker.slotProps), {}, {
|
|
129
|
+
openPickerButton: _objectSpread({
|
|
130
|
+
"aria-label": intl.formatMessage({
|
|
131
|
+
id: "comet.timePicker.openPicker",
|
|
132
|
+
defaultMessage: "Open time picker"
|
|
133
|
+
})
|
|
134
|
+
}, slotProps === null || slotProps === void 0 || (_slotProps$openPicker2 = slotProps.openPickerAdornment) === null || _slotProps$openPicker2 === void 0 || (_slotProps$openPicker2 = _slotProps$openPicker2.slotProps) === null || _slotProps$openPicker2 === void 0 ? void 0 : _slotProps$openPicker2.openPickerButton)
|
|
135
|
+
}),
|
|
122
136
|
children: openPickerIcon
|
|
123
137
|
})), textFieldProps === null || textFieldProps === void 0 || (_textFieldProps$Input = textFieldProps.InputProps) === null || _textFieldProps$Input === void 0 ? void 0 : _textFieldProps$Input.startAdornment]
|
|
124
138
|
}),
|
|
@@ -3,11 +3,21 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports["default"] = exports.MinMaxTime = exports.Disabled = exports.Default = exports.Clearable = void 0;
|
|
6
|
+
exports["default"] = exports.MinMaxTime = exports.Disabled = exports.Default = exports.CustomValidation = exports.Clearable = void 0;
|
|
7
7
|
var _FinalForm = require("../../../FinalForm");
|
|
8
8
|
var _FinalFormDebug = require("../../../form/FinalFormDebug");
|
|
9
9
|
var _TimePickerField = require("../TimePickerField");
|
|
10
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
12
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
13
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
14
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
15
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
16
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
17
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
18
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
19
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
20
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
11
21
|
var config = {
|
|
12
22
|
component: _TimePickerField.Future_TimePickerField,
|
|
13
23
|
title: "components/dateTime/TimePickerField"
|
|
@@ -162,4 +172,63 @@ var Disabled = exports.Disabled = {
|
|
|
162
172
|
}
|
|
163
173
|
});
|
|
164
174
|
}
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Before implementing custom validation, try to disable certain values using the props provided by MUI's TimePicker, such as `shouldDisableTime`, `minTime`, `maxTime`.
|
|
179
|
+
*
|
|
180
|
+
* Use this when:
|
|
181
|
+
* - You need to validate the time against a custom rule, which cannot be achieved using the props provided by MUI's TimePicker
|
|
182
|
+
* - You want to provide a custom error message
|
|
183
|
+
* - You want to validate the time asynchronously
|
|
184
|
+
*/
|
|
185
|
+
var CustomValidation = exports.CustomValidation = {
|
|
186
|
+
render: function render() {
|
|
187
|
+
var validateIsNotLunchBreak = /*#__PURE__*/function () {
|
|
188
|
+
var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(value) {
|
|
189
|
+
var _value$split$map, _value$split$map2, hours, minutes, totalMinutes, lunchStartMinutes, lunchEndMinutes, isDuringLunchBreak;
|
|
190
|
+
return _regenerator().w(function (_context) {
|
|
191
|
+
while (1) switch (_context.n) {
|
|
192
|
+
case 0:
|
|
193
|
+
if (value) {
|
|
194
|
+
_context.n = 1;
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
return _context.a(2, undefined);
|
|
198
|
+
case 1:
|
|
199
|
+
_value$split$map = value.split(":").map(Number), _value$split$map2 = _slicedToArray(_value$split$map, 2), hours = _value$split$map2[0], minutes = _value$split$map2[1];
|
|
200
|
+
totalMinutes = hours * 60 + minutes;
|
|
201
|
+
lunchStartMinutes = 12 * 60;
|
|
202
|
+
lunchEndMinutes = 13 * 60;
|
|
203
|
+
isDuringLunchBreak = totalMinutes >= lunchStartMinutes && totalMinutes < lunchEndMinutes;
|
|
204
|
+
return _context.a(2, isDuringLunchBreak ? "Please select a time outside of lunch break (12:00-13:00)" : undefined);
|
|
205
|
+
}
|
|
206
|
+
}, _callee);
|
|
207
|
+
}));
|
|
208
|
+
return function validateIsNotLunchBreak(_x) {
|
|
209
|
+
return _ref5.apply(this, arguments);
|
|
210
|
+
};
|
|
211
|
+
}();
|
|
212
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FinalForm.FinalForm, {
|
|
213
|
+
mode: "edit",
|
|
214
|
+
onSubmit: function onSubmit() {
|
|
215
|
+
// not handled
|
|
216
|
+
},
|
|
217
|
+
subscription: {
|
|
218
|
+
values: true
|
|
219
|
+
},
|
|
220
|
+
children: function children() {
|
|
221
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
222
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePickerField.Future_TimePickerField, {
|
|
223
|
+
name: "value",
|
|
224
|
+
label: "Time Picker",
|
|
225
|
+
helperText: "Lunch break (12:00-13:00) is not allowed",
|
|
226
|
+
fullWidth: true,
|
|
227
|
+
variant: "horizontal",
|
|
228
|
+
validate: validateIsNotLunchBreak
|
|
229
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_FinalFormDebug.FinalFormDebug, {})]
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
}
|
|
165
234
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../src/utils/test-utils.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../src/utils/test-utils.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAU,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEvF,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,OAAO,CAAC;AAqB1D,iBAAS,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,GAAG,YAAY,CAE9F;AAED,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,CAAC"}
|
package/lib/utils/test-utils.js
CHANGED
|
@@ -8,6 +8,8 @@ var _exportNames = {
|
|
|
8
8
|
};
|
|
9
9
|
exports.render = customRender;
|
|
10
10
|
var _material = require("@mui/material");
|
|
11
|
+
var _xDatePickers = require("@mui/x-date-pickers");
|
|
12
|
+
var _AdapterDateFnsV = require("@mui/x-date-pickers/AdapterDateFnsV3");
|
|
11
13
|
var _react = require("@testing-library/react");
|
|
12
14
|
Object.keys(_react).forEach(function (key) {
|
|
13
15
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -20,6 +22,7 @@ Object.keys(_react).forEach(function (key) {
|
|
|
20
22
|
}
|
|
21
23
|
});
|
|
22
24
|
});
|
|
25
|
+
var _locale = require("date-fns/locale");
|
|
23
26
|
var _reactIntl = require("react-intl");
|
|
24
27
|
var _ThemeProvider = require("../mui/ThemeProvider");
|
|
25
28
|
var _MemoryRouter = require("../router/MemoryRouter");
|
|
@@ -37,10 +40,14 @@ function DefaultWrapper(_ref) {
|
|
|
37
40
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactIntl.IntlProvider, {
|
|
38
41
|
locale: "en",
|
|
39
42
|
messages: messages,
|
|
40
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_xDatePickers.LocalizationProvider, {
|
|
44
|
+
adapterLocale: _locale.enUS,
|
|
45
|
+
dateAdapter: _AdapterDateFnsV.AdapterDateFns,
|
|
46
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ThemeProvider.MuiThemeProvider, {
|
|
47
|
+
theme: theme,
|
|
48
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MemoryRouter.RouterMemoryRouter, {
|
|
49
|
+
children: children
|
|
50
|
+
})
|
|
44
51
|
})
|
|
45
52
|
})
|
|
46
53
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@comet/admin",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.19.0-canary-20260305114550",
|
|
4
4
|
"description": "Comet Admin package",
|
|
5
5
|
"repository": {
|
|
6
6
|
"directory": "packages/admin/admin",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"react-dropzone": "^14.3.8",
|
|
29
29
|
"use-constant": "^2.0.0",
|
|
30
30
|
"uuid": "^11.1.0",
|
|
31
|
-
"@comet/admin-icons": "8.
|
|
31
|
+
"@comet/admin-icons": "8.19.0-canary-20260305114550"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@apollo/client": "^3.14.0",
|
|
@@ -82,9 +82,9 @@
|
|
|
82
82
|
"typescript": "^5.9.3",
|
|
83
83
|
"vite-tsconfig-paths": "^6.0.4",
|
|
84
84
|
"vitest": "^4.0.16",
|
|
85
|
-
"@comet/admin-babel-preset": "8.
|
|
86
|
-
"@comet/eslint-config": "8.
|
|
87
|
-
"@comet/eslint-plugin": "8.
|
|
85
|
+
"@comet/admin-babel-preset": "8.19.0-canary-20260305114550",
|
|
86
|
+
"@comet/eslint-config": "8.19.0-canary-20260305114550",
|
|
87
|
+
"@comet/eslint-plugin": "8.19.0-canary-20260305114550"
|
|
88
88
|
},
|
|
89
89
|
"peerDependencies": {
|
|
90
90
|
"@apollo/client": "^3.7.0",
|