@comet/admin 9.0.0-beta.0 → 9.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/lib/common/toolbar/DataGridToolbar.d.ts +3 -3
  2. package/lib/common/toolbar/DataGridToolbar.d.ts.map +1 -1
  3. package/lib/common/toolbar/DataGridToolbar.js +10 -18
  4. package/lib/dataGrid/DataGridPanel.d.ts.map +1 -1
  5. package/lib/dataGrid/DataGridPanel.js +31 -23
  6. package/lib/dataGrid/GridColDef.d.ts +2 -3
  7. package/lib/dataGrid/GridColDef.d.ts.map +1 -1
  8. package/lib/dataGrid/GridFilterButton.d.ts.map +1 -1
  9. package/lib/dataGrid/GridFilterButton.js +13 -2
  10. package/lib/dataGrid/GridToolbarQuickFilter.d.ts +10 -0
  11. package/lib/dataGrid/GridToolbarQuickFilter.d.ts.map +1 -0
  12. package/lib/dataGrid/GridToolbarQuickFilter.js +97 -0
  13. package/lib/dataGrid/columnsManagement/DataGridColumnsManagement.d.ts.map +1 -1
  14. package/lib/dataGrid/columnsManagement/DataGridColumnsManagement.js +1 -1
  15. package/lib/dataGrid/columnsManagement/DataGridColumnsManagementListItem.d.ts +2 -2
  16. package/lib/dataGrid/columnsManagement/DataGridColumnsManagementListItem.d.ts.map +1 -1
  17. package/lib/dataGrid/columnsManagement/DataGridColumnsManagementListItem.js +1 -1
  18. package/lib/dataGrid/excelExport/useDataGridExcelExport.js +2 -2
  19. package/lib/dataGrid/gridColumnTypes.d.ts.map +1 -1
  20. package/lib/dataGrid/gridColumnTypes.js +14 -11
  21. package/lib/dataGrid/muiGridFilterToGql.d.ts +4 -1
  22. package/lib/dataGrid/muiGridFilterToGql.d.ts.map +1 -1
  23. package/lib/dataGrid/pagination/DataGridPagination.js +1 -1
  24. package/lib/dataGrid/pagination/paginationActions/DataGridPaginationActions.js +1 -1
  25. package/lib/dataGrid/useDataGridUrlState.d.ts.map +1 -1
  26. package/lib/dataGrid/useDataGridUrlState.js +11 -3
  27. package/lib/dataGrid/usePersistentColumnState.d.ts.map +1 -1
  28. package/lib/dateTime/datePicker/DatePicker.d.ts +4 -2
  29. package/lib/dateTime/datePicker/DatePicker.d.ts.map +1 -1
  30. package/lib/dateTime/datePicker/DatePicker.js +29 -19
  31. package/lib/dateTime/datePickerField/__stories__/DatePickerField.stories.js +60 -0
  32. package/lib/dateTime/dateRangePicker/DateRangePicker.d.ts +4 -2
  33. package/lib/dateTime/dateRangePicker/DateRangePicker.d.ts.map +1 -1
  34. package/lib/dateTime/dateRangePicker/DateRangePicker.js +30 -24
  35. package/lib/dateTime/dateRangePickerField/__stories__/DateRangePickerField.stories.js +61 -0
  36. package/lib/dateTime/dateTimePicker/DateTimePicker.d.ts +4 -2
  37. package/lib/dateTime/dateTimePicker/DateTimePicker.d.ts.map +1 -1
  38. package/lib/dateTime/dateTimePicker/DateTimePicker.js +29 -19
  39. package/lib/dateTime/dateTimePickerField/__stories__/DateTimePickerField.stories.js +60 -0
  40. package/lib/dateTime/dateTimeRangePicker/DateTimeRangePicker.d.ts +4 -2
  41. package/lib/dateTime/dateTimeRangePicker/DateTimeRangePicker.d.ts.map +1 -1
  42. package/lib/dateTime/dateTimeRangePicker/DateTimeRangePicker.js +34 -20
  43. package/lib/dateTime/dateTimeRangePickerField/__stories__/DateTimeRangePickerField.stories.js +60 -0
  44. package/lib/dateTime/timePicker/TimePicker.d.ts +4 -2
  45. package/lib/dateTime/timePicker/TimePicker.d.ts.map +1 -1
  46. package/lib/dateTime/timePicker/TimePicker.js +29 -19
  47. package/lib/dateTime/timePickerField/__stories__/TimePickerField.stories.js +69 -0
  48. package/lib/form/FieldContainer.d.ts.map +1 -1
  49. package/lib/form/FieldContainer.js +1 -1
  50. package/lib/helpers/downloadFile.d.ts +7 -0
  51. package/lib/helpers/downloadFile.d.ts.map +1 -0
  52. package/lib/helpers/downloadFile.js +22 -0
  53. package/lib/index.d.ts +3 -1
  54. package/lib/index.d.ts.map +1 -1
  55. package/lib/index.js +2 -0
  56. package/lib/messages.d.ts +4 -0
  57. package/lib/messages.d.ts.map +1 -1
  58. package/lib/messages.js +4 -0
  59. package/lib/table/excelexport/createExcelExportDownload.js +2 -2
  60. package/lib/theme/componentsTheme/MuiDataGrid.d.ts.map +1 -1
  61. package/lib/theme/componentsTheme/MuiDataGrid.js +122 -94
  62. package/lib/theme/componentsTheme/MuiPickerPopper.d.ts +3 -0
  63. package/lib/theme/componentsTheme/MuiPickerPopper.d.ts.map +1 -0
  64. package/lib/theme/componentsTheme/{MuiPickersPopper.js → MuiPickerPopper.js} +1 -1
  65. package/lib/theme/componentsTheme/MuiPickersInputBase.d.ts.map +1 -1
  66. package/lib/theme/componentsTheme/MuiPickersInputBase.js +5 -1
  67. package/lib/theme/componentsTheme/getComponentsTheme.js +2 -2
  68. package/lib/theme/createCometTheme.d.ts.map +1 -1
  69. package/lib/theme/createCometTheme.js +5 -6
  70. package/lib/utils/test-utils.d.ts.map +1 -1
  71. package/lib/utils/test-utils.js +11 -4
  72. package/package.json +31 -29
  73. package/lib/theme/componentsTheme/MuiPickersPopper.d.ts +0 -3
  74. package/lib/theme/componentsTheme/MuiPickersPopper.d.ts.map +0 -1
@@ -1,6 +1,6 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
2
  var _templateObject;
3
- var _excluded = ["iconMapping", "fullWidth", "required", "slotProps", "disabled", "value", "onChange", "readOnly"];
3
+ var _excluded = ["iconMapping", "fullWidth", "required", "slotProps", "disabled", "value", "onChange", "onBlur", "onFocus", "readOnly"];
4
4
  function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
5
5
  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; }
6
6
  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; }
@@ -19,6 +19,7 @@ import { Calendar } from "@comet/admin-icons";
19
19
  import { css, inputLabelClasses, useThemeProps } from "@mui/material";
20
20
  import { DateTimePicker as MuiDateTimePicker, pickersInputBaseClasses } from "@mui/x-date-pickers";
21
21
  import { useState } from "react";
22
+ import { useIntl } from "react-intl";
22
23
  import { ClearInputAdornment as CometClearInputAdornment } from "../../common/ClearInputAdornment";
23
24
  import { OpenPickerAdornment } from "../../common/OpenPickerAdornment";
24
25
  import { ReadOnlyAdornment } from "../../common/ReadOnlyAdornment";
@@ -48,18 +49,20 @@ export var DateTimePicker = function DateTimePicker(inProps) {
48
49
  _useThemeProps$value = _useThemeProps.value,
49
50
  value = _useThemeProps$value === void 0 ? null : _useThemeProps$value,
50
51
  _onChange = _useThemeProps.onChange,
52
+ onBlur = _useThemeProps.onBlur,
53
+ onFocus = _useThemeProps.onFocus,
51
54
  readOnly = _useThemeProps.readOnly,
52
55
  restProps = _objectWithoutProperties(_useThemeProps, _excluded);
53
56
  var _useState = useState(false),
54
57
  _useState2 = _slicedToArray(_useState, 2),
55
58
  open = _useState2[0],
56
59
  setOpen = _useState2[1];
60
+ var intl = useIntl();
57
61
  var _iconMapping$openPick = iconMapping.openPicker,
58
62
  openPickerIcon = _iconMapping$openPick === void 0 ? /*#__PURE__*/_jsx(Calendar, {
59
63
  color: "inherit"
60
64
  }) : _iconMapping$openPick;
61
65
  return /*#__PURE__*/_jsx(Root, _objectSpread(_objectSpread(_objectSpread({
62
- enableAccessibleFieldDOMStructure: true,
63
66
  disabled: disabled,
64
67
  readOnly: readOnly,
65
68
  open: open,
@@ -69,7 +72,6 @@ export var DateTimePicker = function DateTimePicker(inProps) {
69
72
  onClose: function onClose() {
70
73
  return setOpen(false);
71
74
  },
72
- disableOpenPicker: true,
73
75
  value: value,
74
76
  onChange: function onChange(date) {
75
77
  var dateIsInvalid = date !== null && !isValidDate(date);
@@ -81,28 +83,36 @@ export var DateTimePicker = function DateTimePicker(inProps) {
81
83
  }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.root), restProps), {}, {
82
84
  slotProps: _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$root = slotProps.root) === null || _slotProps$root === void 0 ? void 0 : _slotProps$root.slotProps), {}, {
83
85
  textField: function textField(ownerState) {
84
- var _slotProps$root2, _textFieldProps$Input, _textFieldProps$Input2;
86
+ var _slotProps$root2, _slotProps$openPicker, _slotProps$openPicker2;
85
87
  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), {}, {
86
88
  ownerState: ownerState
87
89
  });
88
90
  return _objectSpread(_objectSpread({
89
91
  fullWidth: fullWidth,
90
- required: required
92
+ required: required,
93
+ onBlur: onBlur,
94
+ onFocus: onFocus
91
95
  }, textFieldProps), {}, {
92
- InputProps: _objectSpread(_objectSpread({}, textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.InputProps), {}, {
93
- startAdornment: /*#__PURE__*/_jsxs(_Fragment, {
94
- children: [/*#__PURE__*/_jsx(OpenPickerAdornment, _objectSpread(_objectSpread({
95
- inputIsDisabled: disabled,
96
- inputIsReadOnly: readOnly,
97
- onClick: function onClick() {
98
- return setOpen(true);
99
- }
100
- }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.openPickerAdornment), {}, {
101
- children: openPickerIcon
102
- })), textFieldProps === null || textFieldProps === void 0 || (_textFieldProps$Input = textFieldProps.InputProps) === null || _textFieldProps$Input === void 0 ? void 0 : _textFieldProps$Input.startAdornment]
103
- }),
96
+ InputProps: {
97
+ startAdornment: /*#__PURE__*/_jsx(OpenPickerAdornment, _objectSpread(_objectSpread({
98
+ inputIsDisabled: disabled,
99
+ inputIsReadOnly: readOnly,
100
+ onClick: function onClick() {
101
+ return setOpen(true);
102
+ }
103
+ }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.openPickerAdornment), {}, {
104
+ slotProps: _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$openPicker = slotProps.openPickerAdornment) === null || _slotProps$openPicker === void 0 ? void 0 : _slotProps$openPicker.slotProps), {}, {
105
+ openPickerButton: _objectSpread({
106
+ "aria-label": intl.formatMessage({
107
+ id: "comet.dateTimePicker.openPicker",
108
+ defaultMessage: "Open date time picker"
109
+ })
110
+ }, 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)
111
+ }),
112
+ children: openPickerIcon
113
+ })),
104
114
  endAdornment: /*#__PURE__*/_jsxs(_Fragment, {
105
- children: [textFieldProps === null || textFieldProps === void 0 || (_textFieldProps$Input2 = textFieldProps.InputProps) === null || _textFieldProps$Input2 === void 0 ? void 0 : _textFieldProps$Input2.endAdornment, /*#__PURE__*/_jsx(ReadOnlyAdornment, _objectSpread({
115
+ children: [/*#__PURE__*/_jsx(ReadOnlyAdornment, _objectSpread({
106
116
  inputIsReadOnly: Boolean(readOnly)
107
117
  }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.readOnlyAdornment)), /*#__PURE__*/_jsx(ClearInputAdornment, _objectSpread({
108
118
  position: "end",
@@ -112,7 +122,7 @@ export var DateTimePicker = function DateTimePicker(inProps) {
112
122
  }
113
123
  }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.clearInputAdornment))]
114
124
  })
115
- })
125
+ }
116
126
  });
117
127
  }
118
128
  })
@@ -1,3 +1,7 @@
1
+ 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 }; })(); }
2
+ 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); }
3
+ 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); }
4
+ 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); }); }; }
1
5
  import { FinalForm } from "../../../FinalForm";
2
6
  import { FinalFormDebug } from "../../../form/FinalFormDebug";
3
7
  import { DateTimePickerField } from "../DateTimePickerField";
@@ -157,4 +161,60 @@ export var Disabled = {
157
161
  }
158
162
  });
159
163
  }
164
+ };
165
+
166
+ /**
167
+ * Before implementing custom validation, try to disable certain values using the props provided by MUI's DateTimePicker, such as `shouldDisableDate`, `shouldDisableTime`, `disableFuture`, `disablePast`.
168
+ *
169
+ * Use this when:
170
+ * - You need to validate the date against a custom rule, which cannot be achieved using the props provided by MUI's DateTimePicker
171
+ * - You want to provide a custom error message
172
+ * - You want to validate the date asynchronously
173
+ */
174
+ export var CustomValidation = {
175
+ render: function render() {
176
+ var validateIsWeekday = /*#__PURE__*/function () {
177
+ var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(value) {
178
+ var day, isWeekday;
179
+ return _regenerator().w(function (_context) {
180
+ while (1) switch (_context.n) {
181
+ case 0:
182
+ if (value) {
183
+ _context.n = 1;
184
+ break;
185
+ }
186
+ return _context.a(2, undefined);
187
+ case 1:
188
+ day = value.getDay();
189
+ isWeekday = day !== 0 && day !== 6;
190
+ return _context.a(2, isWeekday ? undefined : "Please select a weekday");
191
+ }
192
+ }, _callee);
193
+ }));
194
+ return function validateIsWeekday(_x) {
195
+ return _ref5.apply(this, arguments);
196
+ };
197
+ }();
198
+ return /*#__PURE__*/_jsx(FinalForm, {
199
+ mode: "edit",
200
+ onSubmit: function onSubmit() {
201
+ // not handled
202
+ },
203
+ subscription: {
204
+ values: true
205
+ },
206
+ children: function children() {
207
+ return /*#__PURE__*/_jsxs(_Fragment, {
208
+ children: [/*#__PURE__*/_jsx(DateTimePickerField, {
209
+ name: "value",
210
+ label: "Date Time Picker",
211
+ helperText: "Only weekdays are valid",
212
+ fullWidth: true,
213
+ variant: "horizontal",
214
+ validate: validateIsWeekday
215
+ }), /*#__PURE__*/_jsx(FinalFormDebug, {})]
216
+ });
217
+ }
218
+ });
219
+ }
160
220
  };
@@ -14,7 +14,7 @@ export type DateTimeRange = {
14
14
  };
15
15
  export type DateTimeRangePickerClassKey = "root" | "clearInputAdornment" | "readOnlyAdornment" | "openPickerAdornment";
16
16
  export type DateTimeRangePickerProps = ThemedComponentBaseProps<{
17
- root: ComponentType<MuiDateTimeRangePickerProps<Date, true>>;
17
+ root: ComponentType<MuiDateTimeRangePickerProps>;
18
18
  clearInputAdornment: typeof CometClearInputAdornment;
19
19
  readOnlyAdornment: typeof ReadOnlyAdornment;
20
20
  openPickerAdornment: typeof OpenPickerAdornment;
@@ -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
  *
@@ -42,7 +44,7 @@ export type DateTimeRangePickerProps = ThemedComponentBaseProps<{
42
44
  iconMapping?: {
43
45
  openPicker?: ReactNode;
44
46
  };
45
- } & Omit<MuiDateTimeRangePickerProps<Date, true>, "value" | "onChange">;
47
+ } & Omit<MuiDateTimeRangePickerProps, "value" | "onChange">;
46
48
  /**
47
49
  * The DateTimeRangePicker component allows users to select a date-time range from a combined picker interface.
48
50
  * It provides two text fields with a calendar icon that opens a date-time range picker dialog. The component handles
@@ -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;AAErF,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;;;;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,4CAiGpE,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"}
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,CAAC;IACjD,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,EAAE,OAAO,GAAG,UAAU,CAAC,CAAC;AAE5D;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,wBAAwB,4CA0GpE,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"}
@@ -1,6 +1,6 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
2
  var _templateObject;
3
- var _excluded = ["iconMapping", "fullWidth", "required", "slotProps", "disabled", "value", "onChange", "readOnly"];
3
+ var _excluded = ["iconMapping", "fullWidth", "required", "slotProps", "disabled", "value", "onChange", "onBlur", "onFocus", "readOnly"];
4
4
  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 }; })(); }
5
5
  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); }
6
6
  function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
@@ -22,6 +22,7 @@ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t =
22
22
  import { Calendar } from "@comet/admin-icons";
23
23
  import { css, inputLabelClasses, useThemeProps } from "@mui/material";
24
24
  import { lazy, Suspense, useState } from "react";
25
+ import { useIntl } from "react-intl";
25
26
  import { ClearInputAdornment as CometClearInputAdornment } from "../../common/ClearInputAdornment";
26
27
  import { OpenPickerAdornment } from "../../common/OpenPickerAdornment";
27
28
  import { ReadOnlyAdornment } from "../../common/ReadOnlyAdornment";
@@ -54,8 +55,11 @@ export var DateTimeRangePicker = function DateTimeRangePicker(inProps) {
54
55
  disabled = _useThemeProps.disabled,
55
56
  valueObject = _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);
62
+ var intl = useIntl();
59
63
  var _useState = useState(false),
60
64
  _useState2 = _slicedToArray(_useState, 2),
61
65
  open = _useState2[0],
@@ -67,7 +71,6 @@ export var DateTimeRangePicker = function DateTimeRangePicker(inProps) {
67
71
  }) : _iconMapping$openPick;
68
72
  return /*#__PURE__*/_jsx(Suspense, {
69
73
  children: /*#__PURE__*/_jsx(LazyRoot, _objectSpread(_objectSpread(_objectSpread({
70
- enableAccessibleFieldDOMStructure: true,
71
74
  disabled: disabled,
72
75
  readOnly: readOnly,
73
76
  open: open,
@@ -77,7 +80,6 @@ export var DateTimeRangePicker = function DateTimeRangePicker(inProps) {
77
80
  onClose: function onClose() {
78
81
  return setOpen(false);
79
82
  },
80
- disableOpenPicker: true,
81
83
  value: arrayValue,
82
84
  onChange: function onChange(_ref) {
83
85
  var _ref2 = _slicedToArray(_ref, 2),
@@ -100,28 +102,36 @@ export var DateTimeRangePicker = function DateTimeRangePicker(inProps) {
100
102
  }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.root), restProps), {}, {
101
103
  slotProps: _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$root = slotProps.root) === null || _slotProps$root === void 0 ? void 0 : _slotProps$root.slotProps), {}, {
102
104
  textField: function textField(ownerState) {
103
- var _slotProps$root2, _textFieldProps$Input, _textFieldProps$Input2;
105
+ var _slotProps$root2, _slotProps$openPicker, _slotProps$openPicker2;
104
106
  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), {}, {
105
107
  ownerState: ownerState
106
108
  });
107
109
  return _objectSpread(_objectSpread({
108
110
  fullWidth: fullWidth,
109
- required: required
111
+ required: required,
112
+ onBlur: onBlur,
113
+ onFocus: onFocus
110
114
  }, textFieldProps), {}, {
111
- InputProps: _objectSpread(_objectSpread({}, textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.InputProps), {}, {
112
- startAdornment: /*#__PURE__*/_jsxs(_Fragment, {
113
- children: [/*#__PURE__*/_jsx(OpenPickerAdornment, _objectSpread(_objectSpread({
114
- inputIsDisabled: disabled,
115
- inputIsReadOnly: readOnly,
116
- onClick: function onClick() {
117
- return setOpen(true);
118
- }
119
- }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.openPickerAdornment), {}, {
120
- children: openPickerIcon
121
- })), textFieldProps === null || textFieldProps === void 0 || (_textFieldProps$Input = textFieldProps.InputProps) === null || _textFieldProps$Input === void 0 ? void 0 : _textFieldProps$Input.startAdornment]
122
- }),
115
+ InputProps: {
116
+ startAdornment: /*#__PURE__*/_jsx(OpenPickerAdornment, _objectSpread(_objectSpread({
117
+ inputIsDisabled: disabled,
118
+ inputIsReadOnly: readOnly,
119
+ onClick: function onClick() {
120
+ return setOpen(true);
121
+ }
122
+ }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.openPickerAdornment), {}, {
123
+ slotProps: _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$openPicker = slotProps.openPickerAdornment) === null || _slotProps$openPicker === void 0 ? void 0 : _slotProps$openPicker.slotProps), {}, {
124
+ openPickerButton: _objectSpread({
125
+ "aria-label": intl.formatMessage({
126
+ id: "comet.dateTimeRangePicker.openPicker",
127
+ defaultMessage: "Open date time range picker"
128
+ })
129
+ }, 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)
130
+ }),
131
+ children: openPickerIcon
132
+ })),
123
133
  endAdornment: /*#__PURE__*/_jsxs(_Fragment, {
124
- children: [textFieldProps === null || textFieldProps === void 0 || (_textFieldProps$Input2 = textFieldProps.InputProps) === null || _textFieldProps$Input2 === void 0 ? void 0 : _textFieldProps$Input2.endAdornment, /*#__PURE__*/_jsx(ReadOnlyAdornment, _objectSpread({
134
+ children: [/*#__PURE__*/_jsx(ReadOnlyAdornment, _objectSpread({
125
135
  inputIsReadOnly: Boolean(readOnly)
126
136
  }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.readOnlyAdornment)), /*#__PURE__*/_jsx(ClearInputAdornment, _objectSpread({
127
137
  position: "end",
@@ -133,7 +143,7 @@ export var DateTimeRangePicker = function DateTimeRangePicker(inProps) {
133
143
  }
134
144
  }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.clearInputAdornment))]
135
145
  })
136
- })
146
+ }
137
147
  });
138
148
  }
139
149
  })
@@ -155,7 +165,11 @@ var LazyRoot = /*#__PURE__*/lazy(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_re
155
165
  })(css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .", " {\n display: none;\n\n & + .", " {\n margin-top: 0;\n }\n }\n "])), inputLabelClasses.root, module.pickersInputBaseClasses.root));
156
166
  return _context.a(2, {
157
167
  "default": function _default(props) {
158
- return /*#__PURE__*/_jsx(Root, _objectSpread({}, props));
168
+ return /*#__PURE__*/_jsx(Root, _objectSpread(_objectSpread({}, props), {}, {
169
+ slots: _objectSpread({
170
+ field: module.MultiInputDateTimeRangeField
171
+ }, props.slots)
172
+ }));
159
173
  }
160
174
  });
161
175
  }
@@ -1,3 +1,7 @@
1
+ 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 }; })(); }
2
+ 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); }
3
+ 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); }
4
+ 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); }); }; }
1
5
  import { FinalForm } from "../../../FinalForm";
2
6
  import { FinalFormDebug } from "../../../form/FinalFormDebug";
3
7
  import { DateTimeRangePickerField } from "../DateTimeRangePickerField";
@@ -160,4 +164,60 @@ export var Disabled = {
160
164
  }
161
165
  });
162
166
  }
167
+ };
168
+
169
+ /**
170
+ * Before implementing custom validation, try to disable certain values using the props provided by MUI's DateTimeRangePicker, such as `shouldDisableDate`, `shouldDisableTime`, `disableFuture`, `disablePast`.
171
+ *
172
+ * Use this when:
173
+ * - You need to validate the date time range against a custom rule, which cannot be achieved using the props provided by MUI's DateTimeRangePicker
174
+ * - You want to provide a custom error message
175
+ * - You want to validate the date time range asynchronously
176
+ */
177
+ export var CustomValidation = {
178
+ render: function render() {
179
+ var validateMaxThirtyDayRange = /*#__PURE__*/function () {
180
+ var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(value) {
181
+ var millisecondsDifference, daysDifference;
182
+ return _regenerator().w(function (_context) {
183
+ while (1) switch (_context.n) {
184
+ case 0:
185
+ if (!(!(value !== null && value !== void 0 && value.start) || !(value !== null && value !== void 0 && value.end))) {
186
+ _context.n = 1;
187
+ break;
188
+ }
189
+ return _context.a(2, undefined);
190
+ case 1:
191
+ millisecondsDifference = value.end.getTime() - value.start.getTime();
192
+ daysDifference = millisecondsDifference / (1000 * 60 * 60 * 24);
193
+ return _context.a(2, daysDifference <= 30 ? undefined : "Please select a range no longer than 30 days");
194
+ }
195
+ }, _callee);
196
+ }));
197
+ return function validateMaxThirtyDayRange(_x) {
198
+ return _ref5.apply(this, arguments);
199
+ };
200
+ }();
201
+ return /*#__PURE__*/_jsx(FinalForm, {
202
+ mode: "edit",
203
+ onSubmit: function onSubmit() {
204
+ // not handled
205
+ },
206
+ subscription: {
207
+ values: true
208
+ },
209
+ children: function children() {
210
+ return /*#__PURE__*/_jsxs(_Fragment, {
211
+ children: [/*#__PURE__*/_jsx(DateTimeRangePickerField, {
212
+ name: "value",
213
+ label: "Date Time Range Picker",
214
+ helperText: "The selected range must not exceed 30 days",
215
+ fullWidth: true,
216
+ variant: "horizontal",
217
+ validate: validateMaxThirtyDayRange
218
+ }), /*#__PURE__*/_jsx(FinalFormDebug, {})]
219
+ });
220
+ }
221
+ });
222
+ }
163
223
  };
@@ -7,7 +7,7 @@ import { ReadOnlyAdornment } from "../../common/ReadOnlyAdornment";
7
7
  import { type ThemedComponentBaseProps } from "../../helpers/ThemedComponentBaseProps";
8
8
  export type TimePickerClassKey = "root" | "clearInputAdornment" | "readOnlyAdornment" | "openPickerAdornment";
9
9
  export type TimePickerProps = ThemedComponentBaseProps<{
10
- root: typeof MuiTimePicker<Date, true>;
10
+ root: typeof MuiTimePicker;
11
11
  clearInputAdornment: typeof CometClearInputAdornment;
12
12
  readOnlyAdornment: typeof ReadOnlyAdornment;
13
13
  openPickerAdornment: typeof OpenPickerAdornment;
@@ -27,6 +27,8 @@ export type 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
  *
@@ -35,7 +37,7 @@ export type TimePickerProps = ThemedComponentBaseProps<{
35
37
  iconMapping?: {
36
38
  openPicker?: ReactNode;
37
39
  };
38
- } & Omit<MuiTimePickerProps<Date, true>, "value" | "onChange" | "slotProps">;
40
+ } & Omit<MuiTimePickerProps, "value" | "onChange" | "slotProps">;
39
41
  /**
40
42
  * The TimePicker component allows users to select a time from a time picker interface. It provides a text field
41
43
  * with a time icon that opens a time picker dialog. The component handles time strings in 24-hour format (HH:mm)
@@ -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;AAEjD,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,kBAAkB,GAAG,MAAM,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AAE9G,MAAM,MAAM,eAAe,GAAG,wBAAwB,CAAC;IACnD,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;;;;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,UAAU,GAAI,SAAS,eAAe,4CAqFlD,CAAC;AAoBF,OAAO,QAAQ,sBAAsB,CAAC;IAClC,UAAU,mBAAmB;QACzB,oBAAoB,EAAE,eAAe,CAAC;KACzC;IAED,UAAU,uBAAuB;QAC7B,oBAAoB,EAAE,kBAAkB,CAAC;KAC5C;IAED,UAAU,UAAU;QAChB,oBAAoB,CAAC,EAAE;YACnB,YAAY,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,CAAC,CAAC;YACpE,cAAc,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC;SACvE,CAAC;KACL;CACJ"}
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,kBAAkB,GAAG,MAAM,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AAE9G,MAAM,MAAM,eAAe,GAAG,wBAAwB,CAAC;IACnD,IAAI,EAAE,OAAO,aAAa,CAAC;IAC3B,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,EAAE,OAAO,GAAG,UAAU,GAAG,WAAW,CAAC,CAAC;AAqBjE;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,GAAI,SAAS,eAAe,4CA6FlD,CAAC;AAoBF,OAAO,QAAQ,sBAAsB,CAAC;IAClC,UAAU,mBAAmB;QACzB,oBAAoB,EAAE,eAAe,CAAC;KACzC;IAED,UAAU,uBAAuB;QAC7B,oBAAoB,EAAE,kBAAkB,CAAC;KAC5C;IAED,UAAU,UAAU;QAChB,oBAAoB,CAAC,EAAE;YACnB,YAAY,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,CAAC,CAAC;YACpE,cAAc,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC;SACvE,CAAC;KACL;CACJ"}
@@ -1,6 +1,6 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
2
  var _templateObject;
3
- var _excluded = ["iconMapping", "fullWidth", "required", "slotProps", "disabled", "value", "onChange", "readOnly"];
3
+ var _excluded = ["iconMapping", "fullWidth", "required", "slotProps", "disabled", "value", "onChange", "onBlur", "onFocus", "readOnly"];
4
4
  function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
5
5
  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; }
6
6
  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; }
@@ -20,6 +20,7 @@ import { css, inputLabelClasses, useThemeProps } from "@mui/material";
20
20
  import { pickersInputBaseClasses, TimePicker as MuiTimePicker } from "@mui/x-date-pickers";
21
21
  import { format, parse } from "date-fns";
22
22
  import { useState } from "react";
23
+ import { useIntl } from "react-intl";
23
24
  import { ClearInputAdornment as CometClearInputAdornment } from "../../common/ClearInputAdornment";
24
25
  import { OpenPickerAdornment } from "../../common/OpenPickerAdornment";
25
26
  import { ReadOnlyAdornment } from "../../common/ReadOnlyAdornment";
@@ -62,19 +63,21 @@ export var TimePicker = function TimePicker(inProps) {
62
63
  disabled = _useThemeProps.disabled,
63
64
  stringValue = _useThemeProps.value,
64
65
  _onChange = _useThemeProps.onChange,
66
+ onBlur = _useThemeProps.onBlur,
67
+ onFocus = _useThemeProps.onFocus,
65
68
  readOnly = _useThemeProps.readOnly,
66
69
  restProps = _objectWithoutProperties(_useThemeProps, _excluded);
67
70
  var _useState = useState(false),
68
71
  _useState2 = _slicedToArray(_useState, 2),
69
72
  open = _useState2[0],
70
73
  setOpen = _useState2[1];
74
+ var intl = useIntl();
71
75
  var dateValue = getDateFromTimeString(stringValue);
72
76
  var _iconMapping$openPick = iconMapping.openPicker,
73
77
  openPickerIcon = _iconMapping$openPick === void 0 ? /*#__PURE__*/_jsx(Time, {
74
78
  color: "inherit"
75
79
  }) : _iconMapping$openPick;
76
80
  return /*#__PURE__*/_jsx(Root, _objectSpread(_objectSpread(_objectSpread({
77
- enableAccessibleFieldDOMStructure: true,
78
81
  disabled: disabled,
79
82
  readOnly: readOnly,
80
83
  open: open,
@@ -84,7 +87,6 @@ export var TimePicker = function TimePicker(inProps) {
84
87
  onClose: function onClose() {
85
88
  return setOpen(false);
86
89
  },
87
- disableOpenPicker: true,
88
90
  value: dateValue,
89
91
  onChange: function onChange(date) {
90
92
  if (!date) {
@@ -96,28 +98,36 @@ export var TimePicker = function TimePicker(inProps) {
96
98
  }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.root), restProps), {}, {
97
99
  slotProps: _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$root = slotProps.root) === null || _slotProps$root === void 0 ? void 0 : _slotProps$root.slotProps), {}, {
98
100
  textField: function textField(ownerState) {
99
- var _slotProps$root2, _textFieldProps$Input, _textFieldProps$Input2;
101
+ var _slotProps$root2, _slotProps$openPicker, _slotProps$openPicker2;
100
102
  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), {}, {
101
103
  ownerState: ownerState
102
104
  });
103
105
  return _objectSpread(_objectSpread({
104
106
  fullWidth: fullWidth,
105
- required: required
107
+ required: required,
108
+ onBlur: onBlur,
109
+ onFocus: onFocus
106
110
  }, textFieldProps), {}, {
107
- InputProps: _objectSpread(_objectSpread({}, textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.InputProps), {}, {
108
- startAdornment: /*#__PURE__*/_jsxs(_Fragment, {
109
- children: [/*#__PURE__*/_jsx(OpenPickerAdornment, _objectSpread(_objectSpread({
110
- inputIsDisabled: disabled,
111
- inputIsReadOnly: readOnly,
112
- onClick: function onClick() {
113
- return setOpen(true);
114
- }
115
- }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.openPickerAdornment), {}, {
116
- children: openPickerIcon
117
- })), textFieldProps === null || textFieldProps === void 0 || (_textFieldProps$Input = textFieldProps.InputProps) === null || _textFieldProps$Input === void 0 ? void 0 : _textFieldProps$Input.startAdornment]
118
- }),
111
+ InputProps: {
112
+ startAdornment: /*#__PURE__*/_jsx(OpenPickerAdornment, _objectSpread(_objectSpread({
113
+ inputIsDisabled: disabled,
114
+ inputIsReadOnly: readOnly,
115
+ onClick: function onClick() {
116
+ return setOpen(true);
117
+ }
118
+ }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.openPickerAdornment), {}, {
119
+ slotProps: _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$openPicker = slotProps.openPickerAdornment) === null || _slotProps$openPicker === void 0 ? void 0 : _slotProps$openPicker.slotProps), {}, {
120
+ openPickerButton: _objectSpread({
121
+ "aria-label": intl.formatMessage({
122
+ id: "comet.timePicker.openPicker",
123
+ defaultMessage: "Open time picker"
124
+ })
125
+ }, 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)
126
+ }),
127
+ children: openPickerIcon
128
+ })),
119
129
  endAdornment: /*#__PURE__*/_jsxs(_Fragment, {
120
- children: [textFieldProps === null || textFieldProps === void 0 || (_textFieldProps$Input2 = textFieldProps.InputProps) === null || _textFieldProps$Input2 === void 0 ? void 0 : _textFieldProps$Input2.endAdornment, /*#__PURE__*/_jsx(ReadOnlyAdornment, _objectSpread({
130
+ children: [/*#__PURE__*/_jsx(ReadOnlyAdornment, _objectSpread({
121
131
  inputIsReadOnly: Boolean(readOnly)
122
132
  }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.readOnlyAdornment)), /*#__PURE__*/_jsx(ClearInputAdornment, _objectSpread({
123
133
  position: "end",
@@ -127,7 +137,7 @@ export var TimePicker = function TimePicker(inProps) {
127
137
  }
128
138
  }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.clearInputAdornment))]
129
139
  })
130
- })
140
+ }
131
141
  });
132
142
  }
133
143
  })