@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.
- package/lib/common/toolbar/DataGridToolbar.d.ts +3 -3
- package/lib/common/toolbar/DataGridToolbar.d.ts.map +1 -1
- package/lib/common/toolbar/DataGridToolbar.js +10 -18
- package/lib/dataGrid/DataGridPanel.d.ts.map +1 -1
- package/lib/dataGrid/DataGridPanel.js +31 -23
- package/lib/dataGrid/GridColDef.d.ts +2 -3
- package/lib/dataGrid/GridColDef.d.ts.map +1 -1
- package/lib/dataGrid/GridFilterButton.d.ts.map +1 -1
- package/lib/dataGrid/GridFilterButton.js +13 -2
- package/lib/dataGrid/GridToolbarQuickFilter.d.ts +10 -0
- package/lib/dataGrid/GridToolbarQuickFilter.d.ts.map +1 -0
- package/lib/dataGrid/GridToolbarQuickFilter.js +97 -0
- package/lib/dataGrid/columnsManagement/DataGridColumnsManagement.d.ts.map +1 -1
- package/lib/dataGrid/columnsManagement/DataGridColumnsManagement.js +1 -1
- package/lib/dataGrid/columnsManagement/DataGridColumnsManagementListItem.d.ts +2 -2
- package/lib/dataGrid/columnsManagement/DataGridColumnsManagementListItem.d.ts.map +1 -1
- package/lib/dataGrid/columnsManagement/DataGridColumnsManagementListItem.js +1 -1
- package/lib/dataGrid/excelExport/useDataGridExcelExport.js +2 -2
- package/lib/dataGrid/gridColumnTypes.d.ts.map +1 -1
- package/lib/dataGrid/gridColumnTypes.js +14 -11
- package/lib/dataGrid/muiGridFilterToGql.d.ts +4 -1
- package/lib/dataGrid/muiGridFilterToGql.d.ts.map +1 -1
- package/lib/dataGrid/pagination/DataGridPagination.js +1 -1
- package/lib/dataGrid/pagination/paginationActions/DataGridPaginationActions.js +1 -1
- package/lib/dataGrid/useDataGridUrlState.d.ts.map +1 -1
- package/lib/dataGrid/useDataGridUrlState.js +11 -3
- package/lib/dataGrid/usePersistentColumnState.d.ts.map +1 -1
- package/lib/dateTime/datePicker/DatePicker.d.ts +4 -2
- package/lib/dateTime/datePicker/DatePicker.d.ts.map +1 -1
- package/lib/dateTime/datePicker/DatePicker.js +29 -19
- package/lib/dateTime/datePickerField/__stories__/DatePickerField.stories.js +60 -0
- package/lib/dateTime/dateRangePicker/DateRangePicker.d.ts +4 -2
- package/lib/dateTime/dateRangePicker/DateRangePicker.d.ts.map +1 -1
- package/lib/dateTime/dateRangePicker/DateRangePicker.js +30 -24
- package/lib/dateTime/dateRangePickerField/__stories__/DateRangePickerField.stories.js +61 -0
- package/lib/dateTime/dateTimePicker/DateTimePicker.d.ts +4 -2
- package/lib/dateTime/dateTimePicker/DateTimePicker.d.ts.map +1 -1
- package/lib/dateTime/dateTimePicker/DateTimePicker.js +29 -19
- package/lib/dateTime/dateTimePickerField/__stories__/DateTimePickerField.stories.js +60 -0
- package/lib/dateTime/dateTimeRangePicker/DateTimeRangePicker.d.ts +4 -2
- package/lib/dateTime/dateTimeRangePicker/DateTimeRangePicker.d.ts.map +1 -1
- package/lib/dateTime/dateTimeRangePicker/DateTimeRangePicker.js +34 -20
- package/lib/dateTime/dateTimeRangePickerField/__stories__/DateTimeRangePickerField.stories.js +60 -0
- package/lib/dateTime/timePicker/TimePicker.d.ts +4 -2
- package/lib/dateTime/timePicker/TimePicker.d.ts.map +1 -1
- package/lib/dateTime/timePicker/TimePicker.js +29 -19
- package/lib/dateTime/timePickerField/__stories__/TimePickerField.stories.js +69 -0
- package/lib/form/FieldContainer.d.ts.map +1 -1
- package/lib/form/FieldContainer.js +1 -1
- package/lib/helpers/downloadFile.d.ts +7 -0
- package/lib/helpers/downloadFile.d.ts.map +1 -0
- package/lib/helpers/downloadFile.js +22 -0
- package/lib/index.d.ts +3 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -0
- package/lib/messages.d.ts +4 -0
- package/lib/messages.d.ts.map +1 -1
- package/lib/messages.js +4 -0
- package/lib/table/excelexport/createExcelExportDownload.js +2 -2
- package/lib/theme/componentsTheme/MuiDataGrid.d.ts.map +1 -1
- package/lib/theme/componentsTheme/MuiDataGrid.js +122 -94
- package/lib/theme/componentsTheme/MuiPickerPopper.d.ts +3 -0
- package/lib/theme/componentsTheme/MuiPickerPopper.d.ts.map +1 -0
- package/lib/theme/componentsTheme/{MuiPickersPopper.js → MuiPickerPopper.js} +1 -1
- package/lib/theme/componentsTheme/MuiPickersInputBase.d.ts.map +1 -1
- package/lib/theme/componentsTheme/MuiPickersInputBase.js +5 -1
- package/lib/theme/componentsTheme/getComponentsTheme.js +2 -2
- package/lib/theme/createCometTheme.d.ts.map +1 -1
- package/lib/theme/createCometTheme.js +5 -6
- package/lib/utils/test-utils.d.ts.map +1 -1
- package/lib/utils/test-utils.js +11 -4
- package/package.json +31 -29
- package/lib/theme/componentsTheme/MuiPickersPopper.d.ts +0 -3
- package/lib/theme/componentsTheme/MuiPickersPopper.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDataGridUrlState.d.ts","sourceRoot":"","sources":["../../src/dataGrid/useDataGridUrlState.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"useDataGridUrlState.d.ts","sourceRoot":"","sources":["../../src/dataGrid/useDataGridUrlState.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAA4B,KAAK,iBAAiB,EAAsB,MAAM,kBAAkB,CAAC;AAOlJ,KAAK,8BAA8B,GAAG;IAClC,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAC1C,mBAAmB,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAE1D,eAAe,EAAE,WAAW,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC/D,uBAAuB,EAAE,aAAa,CAAC,yBAAyB,CAAC,CAAC;IAElE,SAAS,EAAE,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;IACnD,iBAAiB,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;CACzD,CAAC;AAEF;;IAEI;AACJ,wBAAgB,mBAAmB,CAAC,EAChC,iBAAsB,EACtB,QAAQ,EAAE,eAAoB,EAC9B,WAAW,EACX,aAAa,GAChB,GAAE;IACC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,iBAAiB,CAAA;KAAE,CAAC,CAAC;IAChE,aAAa,CAAC,EAAE,eAAe,CAAC;CAC9B,GAAG,8BAA8B,CAsFtC"}
|
|
@@ -10,8 +10,9 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
|
|
|
10
10
|
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; }
|
|
11
11
|
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; } }
|
|
12
12
|
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
13
|
+
import isEqual from "lodash.isequal";
|
|
13
14
|
import queryString from "query-string";
|
|
14
|
-
import { useCallback, useState } from "react";
|
|
15
|
+
import { useCallback, useRef, useState } from "react";
|
|
15
16
|
import { useHistory, useLocation } from "react-router";
|
|
16
17
|
/**
|
|
17
18
|
* Returns props for DataGrid that turns it into a controlled component that stores it's state as location params
|
|
@@ -61,13 +62,13 @@ export function useDataGridUrlState() {
|
|
|
61
62
|
setFallbackPage(model.page);
|
|
62
63
|
setFallbackPageSize(model.pageSize);
|
|
63
64
|
}, [history, location, pageParamName, pageSizeParamName, parsedSearch]);
|
|
64
|
-
var sortModel = (_ref6 = (_ref7 = (_map = (_ref8 = !parsedSearch[sortParamName] ? undefined : !Array.isArray(parsedSearch[sortParamName]) ? parsedSearch[sortParamName] === "none" ? [] : [parsedSearch[sortParamName]] : parsedSearch[sortParamName]) === null || _ref8 === void 0 ? void 0 : _ref8.map(function (i) {
|
|
65
|
+
var sortModel = useDeepEqualMemo((_ref6 = (_ref7 = (_map = (_ref8 = !parsedSearch[sortParamName] ? undefined : !Array.isArray(parsedSearch[sortParamName]) ? parsedSearch[sortParamName] === "none" ? [] : [parsedSearch[sortParamName]] : parsedSearch[sortParamName]) === null || _ref8 === void 0 ? void 0 : _ref8.map(function (i) {
|
|
65
66
|
var parts = i.split(":");
|
|
66
67
|
return {
|
|
67
68
|
field: parts[0],
|
|
68
69
|
sort: parts[1]
|
|
69
70
|
};
|
|
70
|
-
})) !== null && _map !== void 0 ? _map : fallbackSort) !== null && _ref7 !== void 0 ? _ref7 : initialSort) !== null && _ref6 !== void 0 ? _ref6 : [];
|
|
71
|
+
})) !== null && _map !== void 0 ? _map : fallbackSort) !== null && _ref7 !== void 0 ? _ref7 : initialSort) !== null && _ref6 !== void 0 ? _ref6 : []);
|
|
71
72
|
var handleSortModelChange = useCallback(function (sortModel) {
|
|
72
73
|
var sort = sortModel.length > 0 ? sortModel.map(function (i) {
|
|
73
74
|
return "".concat(i.field, ":").concat(i.sort);
|
|
@@ -97,4 +98,11 @@ export function useDataGridUrlState() {
|
|
|
97
98
|
sortModel: sortModel,
|
|
98
99
|
onSortModelChange: handleSortModelChange
|
|
99
100
|
};
|
|
101
|
+
}
|
|
102
|
+
function useDeepEqualMemo(value) {
|
|
103
|
+
var ref = useRef(value);
|
|
104
|
+
if (!isEqual(ref.current, value)) {
|
|
105
|
+
ref.current = value;
|
|
106
|
+
}
|
|
107
|
+
return ref.current;
|
|
100
108
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePersistentColumnState.d.ts","sourceRoot":"","sources":["../../src/dataGrid/usePersistentColumnState.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"usePersistentColumnState.d.ts","sourceRoot":"","sources":["../../src/dataGrid/usePersistentColumnState.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAA8E,MAAM,kBAAkB,CAAC;AAClI,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,KAAK,SAAS,EAA6C,MAAM,OAAO,CAAC;AAwDlF,KAAK,SAAS,GAAG;IACb,qBAAqB,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;IAC9D,6BAA6B,EAAE,aAAa,CAAC,+BAA+B,CAAC,CAAC;IAE9E,aAAa,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACjD,qBAAqB,EAAE,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;IAEjE,mBAAmB,EAAE,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;IAE7D,mBAAmB,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAE1D,YAAY,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAE5C,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;CAC1B,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAiGpE"}
|
|
@@ -7,7 +7,7 @@ import { ReadOnlyAdornment } from "../../common/ReadOnlyAdornment";
|
|
|
7
7
|
import { type ThemedComponentBaseProps } from "../../helpers/ThemedComponentBaseProps";
|
|
8
8
|
export type DatePickerClassKey = "root" | "clearInputAdornment" | "readOnlyAdornment" | "openPickerAdornment";
|
|
9
9
|
export type DatePickerProps = ThemedComponentBaseProps<{
|
|
10
|
-
root: typeof MuiDatePicker
|
|
10
|
+
root: typeof MuiDatePicker;
|
|
11
11
|
clearInputAdornment: typeof CometClearInputAdornment;
|
|
12
12
|
readOnlyAdornment: typeof ReadOnlyAdornment;
|
|
13
13
|
openPickerAdornment: typeof OpenPickerAdornment;
|
|
@@ -27,6 +27,8 @@ export type 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
|
*
|
|
@@ -35,7 +37,7 @@ export type DatePickerProps = ThemedComponentBaseProps<{
|
|
|
35
37
|
iconMapping?: {
|
|
36
38
|
openPicker?: ReactNode;
|
|
37
39
|
};
|
|
38
|
-
} & Omit<MuiDatePickerProps
|
|
40
|
+
} & Omit<MuiDatePickerProps, "value" | "onChange" | "slotProps">;
|
|
39
41
|
/**
|
|
40
42
|
* The DatePicker component allows users to select a date from a calendar interface. It provides a text field
|
|
41
43
|
* with a calendar icon that opens a date picker dialog. The component handles ISO 8601 date strings and includes
|
|
@@ -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,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;AAEjE;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,GAAI,SAAS,eAAe,4CA8FlD,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; }
|
|
@@ -19,6 +19,7 @@ import { Calendar } from "@comet/admin-icons";
|
|
|
19
19
|
import { css, inputLabelClasses, useThemeProps } from "@mui/material";
|
|
20
20
|
import { DatePicker as MuiDatePicker, 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";
|
|
@@ -47,19 +48,21 @@ export var DatePicker = function DatePicker(inProps) {
|
|
|
47
48
|
disabled = _useThemeProps.disabled,
|
|
48
49
|
stringValue = _useThemeProps.value,
|
|
49
50
|
_onChange = _useThemeProps.onChange,
|
|
51
|
+
onBlur = _useThemeProps.onBlur,
|
|
52
|
+
onFocus = _useThemeProps.onFocus,
|
|
50
53
|
readOnly = _useThemeProps.readOnly,
|
|
51
54
|
restProps = _objectWithoutProperties(_useThemeProps, _excluded);
|
|
52
55
|
var _useState = useState(false),
|
|
53
56
|
_useState2 = _slicedToArray(_useState, 2),
|
|
54
57
|
open = _useState2[0],
|
|
55
58
|
setOpen = _useState2[1];
|
|
59
|
+
var intl = useIntl();
|
|
56
60
|
var dateValue = getDateValue(stringValue);
|
|
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 DatePicker = function DatePicker(inProps) {
|
|
|
69
72
|
onClose: function onClose() {
|
|
70
73
|
return setOpen(false);
|
|
71
74
|
},
|
|
72
|
-
disableOpenPicker: true,
|
|
73
75
|
value: dateValue,
|
|
74
76
|
onChange: function onChange(date) {
|
|
75
77
|
var newStringValue = undefined;
|
|
@@ -81,28 +83,36 @@ export var DatePicker = function DatePicker(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,
|
|
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:
|
|
93
|
-
startAdornment: /*#__PURE__*/
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}, slotProps === null || slotProps === void 0 ? void 0 : slotProps
|
|
101
|
-
|
|
102
|
-
|
|
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.datePicker.openPicker",
|
|
108
|
+
defaultMessage: "Open date 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: [
|
|
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 DatePicker = function DatePicker(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 { DatePickerField } from "../DatePickerField";
|
|
@@ -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 DatePicker, such as `shouldDisableDate`, `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 DatePicker
|
|
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 = new Date(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(DatePickerField, {
|
|
209
|
+
name: "value",
|
|
210
|
+
label: "Date 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 DateRange = {
|
|
|
14
14
|
};
|
|
15
15
|
export type DateRangePickerClassKey = "root" | "clearInputAdornment" | "readOnlyAdornment" | "openPickerAdornment";
|
|
16
16
|
export type DateRangePickerProps = ThemedComponentBaseProps<{
|
|
17
|
-
root: ComponentType<MuiDateRangePickerProps
|
|
17
|
+
root: ComponentType<MuiDateRangePickerProps>;
|
|
18
18
|
clearInputAdornment: typeof CometClearInputAdornment;
|
|
19
19
|
readOnlyAdornment: typeof ReadOnlyAdornment;
|
|
20
20
|
openPickerAdornment: typeof OpenPickerAdornment;
|
|
@@ -34,6 +34,8 @@ export type 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
|
*
|
|
@@ -42,7 +44,7 @@ export type DateRangePickerProps = ThemedComponentBaseProps<{
|
|
|
42
44
|
iconMapping?: {
|
|
43
45
|
openPicker?: ReactNode;
|
|
44
46
|
};
|
|
45
|
-
} & Omit<MuiDateRangePickerProps
|
|
47
|
+
} & Omit<MuiDateRangePickerProps, "value" | "onChange">;
|
|
46
48
|
/**
|
|
47
49
|
* The DateRangePicker component allows users to select a date range from a calendar interface. It provides two
|
|
48
50
|
* text fields with a calendar icon that opens a date range picker dialog. The component handles ISO 8601 date strings
|
|
@@ -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,uBAAuB,GAAG,MAAM,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AAEnH,MAAM,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;IACxD,IAAI,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;IAC7C,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,EAAE,OAAO,GAAG,UAAU,CAAC,CAAC;AAMxD;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,SAAS,oBAAoB,4CAqG5D,CAAC;AA4BF,OAAO,QAAQ,sBAAsB,CAAC;IAClC,UAAU,mBAAmB;QACzB,yBAAyB,EAAE,oBAAoB,CAAC;KACnD;IAED,UAAU,uBAAuB;QAC7B,yBAAyB,EAAE,uBAAuB,CAAC;KACtD;IAED,UAAU,UAAU;QAChB,yBAAyB,CAAC,EAAE;YACxB,YAAY,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACzE,cAAc,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,2BAA2B,CAAC,CAAC;SAC5E,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";
|
|
@@ -58,8 +59,11 @@ export var DateRangePicker = function DateRangePicker(inProps) {
|
|
|
58
59
|
disabled = _useThemeProps.disabled,
|
|
59
60
|
stringDateRangeValue = _useThemeProps.value,
|
|
60
61
|
_onChange = _useThemeProps.onChange,
|
|
62
|
+
onBlur = _useThemeProps.onBlur,
|
|
63
|
+
onFocus = _useThemeProps.onFocus,
|
|
61
64
|
readOnly = _useThemeProps.readOnly,
|
|
62
65
|
restProps = _objectWithoutProperties(_useThemeProps, _excluded);
|
|
66
|
+
var intl = useIntl();
|
|
63
67
|
var _useState = useState(false),
|
|
64
68
|
_useState2 = _slicedToArray(_useState, 2),
|
|
65
69
|
open = _useState2[0],
|
|
@@ -74,7 +78,6 @@ export var DateRangePicker = function DateRangePicker(inProps) {
|
|
|
74
78
|
}) : _iconMapping$openPick;
|
|
75
79
|
return /*#__PURE__*/_jsx(Suspense, {
|
|
76
80
|
children: /*#__PURE__*/_jsx(LazyRoot, _objectSpread(_objectSpread(_objectSpread({
|
|
77
|
-
enableAccessibleFieldDOMStructure: true,
|
|
78
81
|
disabled: disabled,
|
|
79
82
|
readOnly: readOnly,
|
|
80
83
|
open: open,
|
|
@@ -84,7 +87,6 @@ export var DateRangePicker = function DateRangePicker(inProps) {
|
|
|
84
87
|
onClose: function onClose() {
|
|
85
88
|
return setOpen(false);
|
|
86
89
|
},
|
|
87
|
-
disableOpenPicker: true,
|
|
88
90
|
value: dateRangeValue,
|
|
89
91
|
onChange: function onChange(_ref) {
|
|
90
92
|
var _ref2 = _slicedToArray(_ref, 2),
|
|
@@ -102,28 +104,36 @@ export var DateRangePicker = function DateRangePicker(inProps) {
|
|
|
102
104
|
}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.root), restProps), {}, {
|
|
103
105
|
slotProps: _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$root = slotProps.root) === null || _slotProps$root === void 0 ? void 0 : _slotProps$root.slotProps), {}, {
|
|
104
106
|
textField: function textField(ownerState) {
|
|
105
|
-
var _slotProps$root2,
|
|
107
|
+
var _slotProps$root2, _slotProps$openPicker, _slotProps$openPicker2;
|
|
106
108
|
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
109
|
ownerState: ownerState
|
|
108
110
|
});
|
|
109
111
|
return _objectSpread(_objectSpread({
|
|
110
112
|
fullWidth: fullWidth,
|
|
111
|
-
required: required
|
|
113
|
+
required: required,
|
|
114
|
+
onBlur: onBlur,
|
|
115
|
+
onFocus: onFocus
|
|
112
116
|
}, textFieldProps), {}, {
|
|
113
|
-
InputProps:
|
|
114
|
-
startAdornment: /*#__PURE__*/
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
}, slotProps === null || slotProps === void 0 ? void 0 : slotProps
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
117
|
+
InputProps: {
|
|
118
|
+
startAdornment: /*#__PURE__*/_jsx(OpenPickerAdornment, _objectSpread(_objectSpread({
|
|
119
|
+
inputIsDisabled: disabled,
|
|
120
|
+
inputIsReadOnly: readOnly,
|
|
121
|
+
onClick: function onClick() {
|
|
122
|
+
return setOpen(true);
|
|
123
|
+
}
|
|
124
|
+
}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.openPickerAdornment), {}, {
|
|
125
|
+
slotProps: _objectSpread(_objectSpread({}, slotProps === null || slotProps === void 0 || (_slotProps$openPicker = slotProps.openPickerAdornment) === null || _slotProps$openPicker === void 0 ? void 0 : _slotProps$openPicker.slotProps), {}, {
|
|
126
|
+
openPickerButton: _objectSpread({
|
|
127
|
+
"aria-label": intl.formatMessage({
|
|
128
|
+
id: "comet.dateRangePicker.openPicker",
|
|
129
|
+
defaultMessage: "Open date range picker"
|
|
130
|
+
})
|
|
131
|
+
}, 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)
|
|
132
|
+
}),
|
|
133
|
+
children: openPickerIcon
|
|
134
|
+
})),
|
|
125
135
|
endAdornment: /*#__PURE__*/_jsxs(_Fragment, {
|
|
126
|
-
children: [
|
|
136
|
+
children: [/*#__PURE__*/_jsx(ReadOnlyAdornment, _objectSpread({
|
|
127
137
|
inputIsReadOnly: Boolean(readOnly)
|
|
128
138
|
}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.readOnlyAdornment)), /*#__PURE__*/_jsx(ClearInputAdornment, _objectSpread({
|
|
129
139
|
position: "end",
|
|
@@ -133,7 +143,7 @@ export var DateRangePicker = function DateRangePicker(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,11 +165,7 @@ 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(
|
|
159
|
-
slots: _objectSpread({
|
|
160
|
-
field: module.SingleInputDateRangeField
|
|
161
|
-
}, props.slots)
|
|
162
|
-
}));
|
|
168
|
+
return /*#__PURE__*/_jsx(Root, _objectSpread({}, props));
|
|
163
169
|
}
|
|
164
170
|
});
|
|
165
171
|
}
|
|
@@ -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 { DateRangePickerField } from "../DateRangePickerField";
|
|
@@ -160,4 +164,61 @@ 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 DateRangePicker, such as `shouldDisableDate`, `disableFuture`, `disablePast`.
|
|
171
|
+
*
|
|
172
|
+
* Use this when:
|
|
173
|
+
* - You need to validate the date range against a custom rule, which cannot be achieved using the props provided by MUI's DateRangePicker
|
|
174
|
+
* - You want to provide a custom error message
|
|
175
|
+
* - You want to validate the date 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 startDate, endDate, differenceInDays;
|
|
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
|
+
startDate = new Date(value.start);
|
|
192
|
+
endDate = new Date(value.end);
|
|
193
|
+
differenceInDays = (endDate.getTime() - startDate.getTime()) / (1000 * 60 * 60 * 24);
|
|
194
|
+
return _context.a(2, differenceInDays <= 30 ? undefined : "Please select a range no longer than 30 days");
|
|
195
|
+
}
|
|
196
|
+
}, _callee);
|
|
197
|
+
}));
|
|
198
|
+
return function validateMaxThirtyDayRange(_x) {
|
|
199
|
+
return _ref5.apply(this, arguments);
|
|
200
|
+
};
|
|
201
|
+
}();
|
|
202
|
+
return /*#__PURE__*/_jsx(FinalForm, {
|
|
203
|
+
mode: "edit",
|
|
204
|
+
onSubmit: function onSubmit() {
|
|
205
|
+
// not handled
|
|
206
|
+
},
|
|
207
|
+
subscription: {
|
|
208
|
+
values: true
|
|
209
|
+
},
|
|
210
|
+
children: function children() {
|
|
211
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
212
|
+
children: [/*#__PURE__*/_jsx(DateRangePickerField, {
|
|
213
|
+
name: "value",
|
|
214
|
+
label: "Date Range Picker",
|
|
215
|
+
helperText: "The selected range must not exceed 30 days",
|
|
216
|
+
fullWidth: true,
|
|
217
|
+
variant: "horizontal",
|
|
218
|
+
validate: validateMaxThirtyDayRange
|
|
219
|
+
}), /*#__PURE__*/_jsx(FinalFormDebug, {})]
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
}
|
|
163
224
|
};
|
|
@@ -7,7 +7,7 @@ import { ReadOnlyAdornment } from "../../common/ReadOnlyAdornment";
|
|
|
7
7
|
import { type ThemedComponentBaseProps } from "../../helpers/ThemedComponentBaseProps";
|
|
8
8
|
export type DateTimePickerClassKey = "root" | "clearInputAdornment" | "readOnlyAdornment" | "openPickerAdornment";
|
|
9
9
|
export type DateTimePickerProps = ThemedComponentBaseProps<{
|
|
10
|
-
root: typeof MuiDateTimePicker
|
|
10
|
+
root: typeof MuiDateTimePicker;
|
|
11
11
|
clearInputAdornment: typeof CometClearInputAdornment;
|
|
12
12
|
readOnlyAdornment: typeof ReadOnlyAdornment;
|
|
13
13
|
openPickerAdornment: typeof OpenPickerAdornment;
|
|
@@ -32,10 +32,12 @@ export type 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
|
};
|
|
38
|
-
} & Omit<MuiDateTimePickerProps
|
|
40
|
+
} & Omit<MuiDateTimePickerProps, "value" | "onChange">;
|
|
39
41
|
/**
|
|
40
42
|
* The DateTimePicker component allows users to select both a date and time from a combined picker interface.
|
|
41
43
|
* It provides a text field with a calendar icon that opens a date-time picker dialog. The component handles
|
|
@@ -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,sBAAsB,GAAG,MAAM,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AAElH,MAAM,MAAM,mBAAmB,GAAG,wBAAwB,CAAC;IACvD,IAAI,EAAE,OAAO,iBAAiB,CAAC;IAC/B,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,EAAE,OAAO,GAAG,UAAU,CAAC,CAAC;AAEvD;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS,mBAAmB,4CA4F1D,CAAC;AAoBF,OAAO,QAAQ,sBAAsB,CAAC;IAClC,UAAU,mBAAmB;QACzB,wBAAwB,EAAE,mBAAmB,CAAC;KACjD;IAED,UAAU,uBAAuB;QAC7B,wBAAwB,EAAE,sBAAsB,CAAC;KACpD;IAED,UAAU,UAAU;QAChB,wBAAwB,CAAC,EAAE;YACvB,YAAY,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,CAAC,CAAC;YACxE,cAAc,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,0BAA0B,CAAC,CAAC;SAC3E,CAAC;KACL;CACJ"}
|