@semapps/date-components 1.1.4 → 1.2.0
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/dist/index.cjs.js +224 -224
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.cjs.ts +276 -0
- package/dist/index.d.ts +21 -47
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +218 -229
- package/dist/index.es.js.map +1 -1
- package/dist/index.es.ts +275 -0
- package/package.json +12 -13
package/dist/index.es.js
CHANGED
|
@@ -1,241 +1,230 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
} from
|
|
14
|
-
import
|
|
15
|
-
import { AdapterDateFns as $5Ihaz$AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns';
|
|
16
|
-
import $5Ihaz$fullcalendarreact from '@fullcalendar/react';
|
|
17
|
-
import $5Ihaz$fullcalendardaygrid from '@fullcalendar/daygrid';
|
|
18
|
-
import { useTheme as $5Ihaz$useTheme } from '@mui/material';
|
|
19
|
-
import $5Ihaz$muistylesmakeStyles from '@mui/styles/makeStyles';
|
|
20
|
-
import { useSearchParams as $5Ihaz$useSearchParams, useNavigate as $5Ihaz$useNavigate } from 'react-router-dom';
|
|
21
|
-
import $5Ihaz$fullcalendarlist from '@fullcalendar/list';
|
|
1
|
+
import {jsx as $5Ihaz$jsx, jsxs as $5Ihaz$jsxs, Fragment as $5Ihaz$Fragment} from "react/jsx-runtime";
|
|
2
|
+
import "@fullcalendar/react/dist/vdom";
|
|
3
|
+
import {DatePicker as $5Ihaz$DatePicker} from "@mui/x-date-pickers/DatePicker";
|
|
4
|
+
import {TimePicker as $5Ihaz$TimePicker} from "@mui/x-date-pickers/TimePicker";
|
|
5
|
+
import {DateTimePicker as $5Ihaz$DateTimePicker} from "@mui/x-date-pickers/DateTimePicker";
|
|
6
|
+
import {useCallback as $5Ihaz$useCallback, useMemo as $5Ihaz$useMemo} from "react";
|
|
7
|
+
import {useInput as $5Ihaz$useInput, useTranslateLabel as $5Ihaz$useTranslateLabel, InputHelperText as $5Ihaz$InputHelperText, useListContext as $5Ihaz$useListContext, useCreatePath as $5Ihaz$useCreatePath} from "react-admin";
|
|
8
|
+
import {LocalizationProvider as $5Ihaz$LocalizationProvider} from "@mui/x-date-pickers/LocalizationProvider";
|
|
9
|
+
import {AdapterDateFns as $5Ihaz$AdapterDateFns} from "@mui/x-date-pickers/AdapterDateFns";
|
|
10
|
+
import $5Ihaz$fullcalendarreact from "@fullcalendar/react";
|
|
11
|
+
import $5Ihaz$fullcalendardaygrid from "@fullcalendar/daygrid";
|
|
12
|
+
import {useTheme as $5Ihaz$useTheme, GlobalStyles as $5Ihaz$GlobalStyles} from "@mui/material";
|
|
13
|
+
import {useSearchParams as $5Ihaz$useSearchParams, useNavigate as $5Ihaz$useNavigate} from "react-router-dom";
|
|
14
|
+
import $5Ihaz$fullcalendarlist from "@fullcalendar/list";
|
|
22
15
|
|
|
23
16
|
/* eslint-disable react/react-in-jsx-scope */ /* eslint-disable react/jsx-props-no-spreading */ // Solves bug with Vite in dev mode. Can be removed when we upgrade to FullCalendar v6
|
|
24
17
|
// See https://github.com/fullcalendar/fullcalendar-vue/issues/152
|
|
25
18
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
/* eslint-disable react/react-in-jsx-scope */ /* eslint-disable react/require-default-props */
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
const $610808f89222f9cc$var$Picker = ({ PickerComponent: PickerComponent, label: label, source: source, helperText: helperText, fullWidth: fullWidth, onBlur: onBlur, onChange: onChange, format: format, parse: parse, validate: validate, defaultValue: defaultValue, locale: locale, translations: translations, stringFormat: stringFormat = 'ISO', ...rest })=>{
|
|
29
|
+
const { field: field, isRequired: isRequired, fieldState: { error: error, isTouched: isTouched, invalid: invalid }, formState: { isSubmitted: isSubmitted } } = (0, $5Ihaz$useInput)({
|
|
30
|
+
format: format,
|
|
31
|
+
onBlur: onBlur,
|
|
32
|
+
onChange: onChange,
|
|
33
|
+
parse: parse,
|
|
34
|
+
source: source,
|
|
35
|
+
validate: validate,
|
|
36
|
+
defaultValue: defaultValue
|
|
37
|
+
});
|
|
38
|
+
const handleChange = (0, $5Ihaz$useCallback)((value)=>{
|
|
39
|
+
if (value instanceof Date) field.onChange(stringFormat === 'ISO' ? value.toISOString() : value.toString());
|
|
40
|
+
else field.onChange(null);
|
|
41
|
+
}, [
|
|
42
|
+
field,
|
|
43
|
+
stringFormat
|
|
44
|
+
]);
|
|
45
|
+
const translateLabel = (0, $5Ihaz$useTranslateLabel)();
|
|
46
|
+
const translatedLabel = /*#__PURE__*/ (0, $5Ihaz$jsxs)("span", {
|
|
47
|
+
children: [
|
|
48
|
+
translateLabel({
|
|
49
|
+
label: label,
|
|
50
|
+
source: source
|
|
51
|
+
}),
|
|
52
|
+
isRequired && /*#__PURE__*/ (0, $5Ihaz$jsx)("span", {
|
|
53
|
+
"aria-hidden": "true",
|
|
54
|
+
children: "\u2009*"
|
|
55
|
+
})
|
|
56
|
+
]
|
|
57
|
+
});
|
|
58
|
+
return /*#__PURE__*/ (0, $5Ihaz$jsx)((0, $5Ihaz$LocalizationProvider), {
|
|
59
|
+
dateAdapter: (0, $5Ihaz$AdapterDateFns),
|
|
60
|
+
adapterLocale: locale,
|
|
61
|
+
localeText: translations?.components.MuiLocalizationProvider.defaultProps.localeText,
|
|
62
|
+
children: /*#__PURE__*/ (0, $5Ihaz$jsx)(PickerComponent, {
|
|
63
|
+
label: translatedLabel,
|
|
64
|
+
slotProps: {
|
|
65
|
+
textField: {
|
|
66
|
+
error: (isTouched || isSubmitted) && invalid,
|
|
67
|
+
size: 'small',
|
|
68
|
+
fullWidth: fullWidth,
|
|
69
|
+
helperText: // @ts-expect-error TS(2322): Type '{ touched: boolean; error: string | undefine... Remove this comment to see the full error message
|
|
70
|
+
/*#__PURE__*/ (0, $5Ihaz$jsx)((0, $5Ihaz$InputHelperText), {
|
|
71
|
+
touched: isTouched || isSubmitted,
|
|
72
|
+
error: error?.message,
|
|
73
|
+
helperText: helperText
|
|
74
|
+
})
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
value: field.value ? new Date(field.value) : null,
|
|
78
|
+
onChange: handleChange,
|
|
79
|
+
...rest
|
|
77
80
|
})
|
|
78
|
-
|
|
79
|
-
});
|
|
80
|
-
return /*#__PURE__*/ (0, $5Ihaz$jsx)((0, $5Ihaz$LocalizationProvider), {
|
|
81
|
-
dateAdapter: (0, $5Ihaz$AdapterDateFns),
|
|
82
|
-
adapterLocale: locale,
|
|
83
|
-
localeText: translations?.components.MuiLocalizationProvider.defaultProps.localeText,
|
|
84
|
-
children: /*#__PURE__*/ (0, $5Ihaz$jsx)(PickerComponent, {
|
|
85
|
-
label: translatedLabel,
|
|
86
|
-
slotProps: {
|
|
87
|
-
textField: {
|
|
88
|
-
error: (isTouched || isSubmitted) && invalid,
|
|
89
|
-
size: 'small',
|
|
90
|
-
fullWidth: fullWidth,
|
|
91
|
-
helperText: /*#__PURE__*/ (0, $5Ihaz$jsx)((0, $5Ihaz$InputHelperText), {
|
|
92
|
-
touched: isTouched || isSubmitted,
|
|
93
|
-
error: error?.message,
|
|
94
|
-
helperText: helperText
|
|
95
|
-
})
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
value: field.value ? new Date(field.value) : null,
|
|
99
|
-
onChange: handleChange,
|
|
100
|
-
...rest
|
|
101
|
-
})
|
|
102
|
-
});
|
|
81
|
+
});
|
|
103
82
|
};
|
|
104
83
|
var $610808f89222f9cc$export$2e2bcd8739ae039 = $610808f89222f9cc$var$Picker;
|
|
105
84
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
.map(record
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
'@global': {
|
|
162
|
-
'.fc-button': {
|
|
163
|
-
backgroundColor: `${theme.palette.primary.main} !important`,
|
|
164
|
-
border: 'none !important',
|
|
165
|
-
opacity: '1 !important'
|
|
166
|
-
},
|
|
167
|
-
'.fc-day-today': {
|
|
168
|
-
backgroundColor: `${theme.palette.secondary.light} !important`
|
|
169
|
-
},
|
|
170
|
-
// Overwrite violet color of links
|
|
171
|
-
'a.fc-daygrid-dot-event': {
|
|
172
|
-
color: 'black !important'
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}));
|
|
176
|
-
const $abbcc02f55461290$var$CalendarList = props => {
|
|
177
|
-
const theme = (0, $5Ihaz$useTheme)();
|
|
178
|
-
const fullCalendarProps = (0, $37245c02f9b1b006$export$2e2bcd8739ae039)(props);
|
|
179
|
-
$abbcc02f55461290$var$useGlobalStyles();
|
|
180
|
-
return /*#__PURE__*/ (0, $5Ihaz$jsx)((0, $5Ihaz$fullcalendarreact), {
|
|
181
|
-
plugins: [(0, $5Ihaz$fullcalendardaygrid)],
|
|
182
|
-
locale: props.locale,
|
|
183
|
-
initialView: 'dayGridMonth',
|
|
184
|
-
eventBackgroundColor: theme.palette.primary.main,
|
|
185
|
-
...fullCalendarProps
|
|
186
|
-
});
|
|
187
|
-
};
|
|
188
|
-
$abbcc02f55461290$var$CalendarList.defaultProps = {
|
|
189
|
-
linkType: 'edit'
|
|
190
|
-
};
|
|
191
|
-
var $abbcc02f55461290$export$2e2bcd8739ae039 = $abbcc02f55461290$var$CalendarList;
|
|
192
|
-
|
|
193
|
-
const $69d9f850452774a2$var$useGlobalStyles = (0, $5Ihaz$muistylesmakeStyles)(theme => ({
|
|
194
|
-
'@global': {
|
|
195
|
-
'.fc-button': {
|
|
196
|
-
backgroundColor: `${theme.palette.primary.main} !important`,
|
|
197
|
-
border: 'none !important',
|
|
198
|
-
opacity: '1 !important'
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}));
|
|
202
|
-
const $69d9f850452774a2$var$DaysList = props => {
|
|
203
|
-
const fullCalendarProps = (0, $37245c02f9b1b006$export$2e2bcd8739ae039)(props);
|
|
204
|
-
$69d9f850452774a2$var$useGlobalStyles();
|
|
205
|
-
return /*#__PURE__*/ (0, $5Ihaz$jsx)((0, $5Ihaz$fullcalendarreact), {
|
|
206
|
-
plugins: [(0, $5Ihaz$fullcalendarlist)],
|
|
207
|
-
locale: props.locale,
|
|
208
|
-
initialView: 'listMonth',
|
|
209
|
-
...fullCalendarProps
|
|
210
|
-
});
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
const $cb9049d6e1676554$var$useFullCalendarProps = ({ label: label, startDate: startDate, endDate: endDate, linkType: linkType = 'edit' })=>{
|
|
95
|
+
const { data: data, isLoading: isLoading, resource: resource } = (0, $5Ihaz$useListContext)();
|
|
96
|
+
const [searchParams, setSearchParams] = (0, $5Ihaz$useSearchParams)();
|
|
97
|
+
const navigate = (0, $5Ihaz$useNavigate)();
|
|
98
|
+
const createPath = (0, $5Ihaz$useCreatePath)();
|
|
99
|
+
const query = new URLSearchParams(location.search);
|
|
100
|
+
// Bypass the link in order to use React-Router
|
|
101
|
+
const eventClick = (0, $5Ihaz$useCallback)(({ event: event, jsEvent: jsEvent })=>{
|
|
102
|
+
jsEvent.preventDefault();
|
|
103
|
+
navigate(event.url);
|
|
104
|
+
}, []);
|
|
105
|
+
// Change the query string when month change
|
|
106
|
+
const datesSet = (0, $5Ihaz$useCallback)(({ view: view })=>{
|
|
107
|
+
// @ts-expect-error TS(2345): Argument of type '(params: URLSearchParams) => { m... Remove this comment to see the full error message
|
|
108
|
+
setSearchParams((params)=>({
|
|
109
|
+
...params,
|
|
110
|
+
month: view.currentStart.getMonth() + 1,
|
|
111
|
+
year: view.currentStart.getFullYear()
|
|
112
|
+
}));
|
|
113
|
+
}, [
|
|
114
|
+
setSearchParams
|
|
115
|
+
]);
|
|
116
|
+
const events = (0, $5Ihaz$useMemo)(()=>!isLoading && // @ts-expect-error TS(2532): Object is possibly 'undefined'.
|
|
117
|
+
data.filter((record)=>record).map((record)=>({
|
|
118
|
+
id: record.id,
|
|
119
|
+
title: typeof label === 'string' ? record[label] : label(record),
|
|
120
|
+
start: typeof startDate === 'string' ? record[startDate] : startDate(record),
|
|
121
|
+
end: typeof endDate === 'string' ? record[endDate] : endDate(record),
|
|
122
|
+
url: createPath({
|
|
123
|
+
resource: resource,
|
|
124
|
+
id: record.id,
|
|
125
|
+
type: linkType
|
|
126
|
+
})
|
|
127
|
+
})), [
|
|
128
|
+
isLoading,
|
|
129
|
+
data,
|
|
130
|
+
resource,
|
|
131
|
+
createPath
|
|
132
|
+
]);
|
|
133
|
+
return {
|
|
134
|
+
// @ts-expect-error TS(2345): Argument of type 'string | null' is not assignable... Remove this comment to see the full error message
|
|
135
|
+
initialDate: query.has('month') ? new Date(query.get('year'), query.get('month') - 1) : new Date(),
|
|
136
|
+
events: events,
|
|
137
|
+
datesSet: datesSet,
|
|
138
|
+
eventClick: eventClick
|
|
139
|
+
};
|
|
211
140
|
};
|
|
212
|
-
$
|
|
213
|
-
|
|
141
|
+
var $cb9049d6e1676554$export$2e2bcd8739ae039 = $cb9049d6e1676554$var$useFullCalendarProps;
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
const $e2ca335ee375606a$var$CalendarList = (props)=>{
|
|
145
|
+
const theme = (0, $5Ihaz$useTheme)();
|
|
146
|
+
const fullCalendarProps = (0, $cb9049d6e1676554$export$2e2bcd8739ae039)(props);
|
|
147
|
+
return /*#__PURE__*/ (0, $5Ihaz$jsxs)((0, $5Ihaz$Fragment), {
|
|
148
|
+
children: [
|
|
149
|
+
/*#__PURE__*/ (0, $5Ihaz$jsx)((0, $5Ihaz$GlobalStyles), {
|
|
150
|
+
styles: (theme)=>({
|
|
151
|
+
'.fc-button': {
|
|
152
|
+
backgroundColor: `${theme.palette.primary.main} !important`,
|
|
153
|
+
border: 'none !important',
|
|
154
|
+
opacity: '1 !important'
|
|
155
|
+
},
|
|
156
|
+
'.fc-day-today': {
|
|
157
|
+
backgroundColor: `${theme.palette.secondary.light} !important`
|
|
158
|
+
},
|
|
159
|
+
// Overwrite violet color of links
|
|
160
|
+
'a.fc-daygrid-dot-event': {
|
|
161
|
+
color: 'black !important'
|
|
162
|
+
}
|
|
163
|
+
})
|
|
164
|
+
}),
|
|
165
|
+
/*#__PURE__*/ (0, $5Ihaz$jsx)((0, $5Ihaz$fullcalendarreact), {
|
|
166
|
+
plugins: [
|
|
167
|
+
(0, $5Ihaz$fullcalendardaygrid)
|
|
168
|
+
],
|
|
169
|
+
locale: props.locale,
|
|
170
|
+
initialView: "dayGridMonth",
|
|
171
|
+
eventBackgroundColor: theme.palette.primary.main,
|
|
172
|
+
...fullCalendarProps
|
|
173
|
+
})
|
|
174
|
+
]
|
|
175
|
+
});
|
|
214
176
|
};
|
|
215
|
-
var $
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
177
|
+
var $e2ca335ee375606a$export$2e2bcd8739ae039 = $e2ca335ee375606a$var$CalendarList;
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
const $165f9618c6b47a8a$var$DaysList = (props)=>{
|
|
187
|
+
const fullCalendarProps = (0, $cb9049d6e1676554$export$2e2bcd8739ae039)(props);
|
|
188
|
+
return /*#__PURE__*/ (0, $5Ihaz$jsxs)((0, $5Ihaz$Fragment), {
|
|
189
|
+
children: [
|
|
190
|
+
/*#__PURE__*/ (0, $5Ihaz$jsx)((0, $5Ihaz$GlobalStyles), {
|
|
191
|
+
styles: (theme)=>({
|
|
192
|
+
'.fc-button': {
|
|
193
|
+
backgroundColor: `${theme.palette.primary.main} !important`,
|
|
194
|
+
border: 'none !important',
|
|
195
|
+
opacity: '1 !important'
|
|
196
|
+
}
|
|
197
|
+
})
|
|
198
|
+
}),
|
|
199
|
+
/*#__PURE__*/ (0, $5Ihaz$jsx)((0, $5Ihaz$fullcalendarreact), {
|
|
200
|
+
plugins: [
|
|
201
|
+
(0, $5Ihaz$fullcalendarlist)
|
|
202
|
+
],
|
|
203
|
+
locale: props.locale,
|
|
204
|
+
initialView: "listMonth",
|
|
205
|
+
...fullCalendarProps
|
|
206
|
+
}),
|
|
207
|
+
";"
|
|
208
|
+
]
|
|
209
|
+
});
|
|
240
210
|
};
|
|
211
|
+
var $165f9618c6b47a8a$export$2e2bcd8739ae039 = $165f9618c6b47a8a$var$DaysList;
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
const $582746363a8b71b9$export$7edc06cf1783b30f = (props)=>/*#__PURE__*/ (0, $5Ihaz$jsx)((0, $610808f89222f9cc$export$2e2bcd8739ae039), {
|
|
216
|
+
PickerComponent: (0, $5Ihaz$DatePicker),
|
|
217
|
+
...props
|
|
218
|
+
});
|
|
219
|
+
const $582746363a8b71b9$export$a1af6f79df847fac = (props)=>/*#__PURE__*/ (0, $5Ihaz$jsx)((0, $610808f89222f9cc$export$2e2bcd8739ae039), {
|
|
220
|
+
PickerComponent: (0, $5Ihaz$TimePicker),
|
|
221
|
+
...props
|
|
222
|
+
});
|
|
223
|
+
const $582746363a8b71b9$export$183478aa40b5df1 = (props)=>/*#__PURE__*/ (0, $5Ihaz$jsx)((0, $610808f89222f9cc$export$2e2bcd8739ae039), {
|
|
224
|
+
PickerComponent: (0, $5Ihaz$DateTimePicker),
|
|
225
|
+
...props
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
export {$582746363a8b71b9$export$7edc06cf1783b30f as DateInput, $582746363a8b71b9$export$a1af6f79df847fac as TimeInput, $582746363a8b71b9$export$183478aa40b5df1 as DateTimeInput, $e2ca335ee375606a$export$2e2bcd8739ae039 as CalendarList, $165f9618c6b47a8a$export$2e2bcd8739ae039 as DaysList, $cb9049d6e1676554$export$2e2bcd8739ae039 as useFullCalendarProps};
|
|
241
230
|
//# sourceMappingURL=index.es.js.map
|
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/date-components/src/index.tsx","packages/date-components/src/Picker.tsx","packages/date-components/src/CalendarList.js","packages/date-components/src/useFullCalendarProps.js","packages/date-components/src/DaysList.js"],"sourcesContent":["/* eslint-disable react/react-in-jsx-scope */\n/* eslint-disable react/jsx-props-no-spreading */\n\n// Solves bug with Vite in dev mode. Can be removed when we upgrade to FullCalendar v6\n// See https://github.com/fullcalendar/fullcalendar-vue/issues/152\nimport '@fullcalendar/core/vdom';\n\nimport { DatePicker, DatePickerProps } from '@mui/x-date-pickers/DatePicker';\nimport { TimePicker, TimePickerProps } from '@mui/x-date-pickers/TimePicker';\nimport { DateTimePicker, DateTimePickerProps } from '@mui/x-date-pickers/DateTimePicker';\nimport Picker, { Props as PickerProps } from './Picker';\n\nconst DateInput = <TDate,>(props: Omit<PickerProps<DatePickerProps<TDate>>, 'PickerComponent'>) => (\n <Picker PickerComponent={DatePicker} {...props} />\n);\nconst TimeInput = <TDate,>(props: Omit<PickerProps<TimePickerProps<TDate>>, 'PickerComponent'>) => (\n <Picker PickerComponent={TimePicker} {...props} />\n);\nconst DateTimeInput = <TDate,>(props: Omit<PickerProps<DateTimePickerProps<TDate>>, 'PickerComponent'>) => (\n <Picker PickerComponent={DateTimePicker} {...props} />\n);\n\nexport { DateInput, TimeInput, DateTimeInput };\n\nexport { default as CalendarList } from './CalendarList';\nexport { default as DaysList } from './DaysList';\nexport { default as useFullCalendarProps } from './useFullCalendarProps';\n","/* eslint-disable react/react-in-jsx-scope */\n/* eslint-disable react/require-default-props */\nimport { useCallback, ComponentType } from 'react';\nimport { useInput, InputHelperText, TextInputProps, useTranslateLabel } from 'react-admin';\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\nimport { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns';\nimport { getPickersLocalization } from '@mui/x-date-pickers/locales/utils/getPickersLocalization';\nimport { Locale } from 'date-fns';\n\nexport type Props<PickerProps> = TextInputProps &\n Omit<PickerProps, 'format'> & {\n PickerComponent: ComponentType;\n locale?: Locale;\n translations?: ReturnType<typeof getPickersLocalization>;\n stringFormat?: string;\n };\n\nconst Picker = <PickerProps,>({\n PickerComponent,\n label,\n source,\n helperText,\n fullWidth,\n onBlur,\n onChange,\n format,\n parse,\n validate,\n defaultValue,\n locale,\n translations,\n stringFormat = 'ISO',\n ...rest\n}: Props<PickerProps>) => {\n const {\n field,\n isRequired,\n fieldState: { error, isTouched, invalid },\n formState: { isSubmitted }\n } = useInput({\n format,\n onBlur,\n onChange,\n parse,\n source,\n validate,\n defaultValue\n });\n\n const handleChange = useCallback(\n (value: Date) => {\n if (value instanceof Date) {\n field.onChange(stringFormat === 'ISO' ? value.toISOString() : value.toString());\n } else {\n field.onChange(null);\n }\n },\n [field, stringFormat]\n );\n\n const translateLabel = useTranslateLabel();\n const translatedLabel = (\n <span>\n {translateLabel({\n label,\n source\n })}\n {isRequired && <span aria-hidden=\"true\"> *</span>}\n </span>\n );\n\n return (\n <LocalizationProvider\n dateAdapter={AdapterDateFns}\n adapterLocale={locale}\n localeText={translations?.components.MuiLocalizationProvider.defaultProps.localeText}\n >\n <PickerComponent\n label={translatedLabel}\n slotProps={{\n textField: {\n error: (isTouched || isSubmitted) && invalid,\n size: 'small',\n fullWidth,\n helperText: (\n <InputHelperText touched={isTouched || isSubmitted} error={error?.message} helperText={helperText} />\n )\n }\n }}\n value={field.value ? new Date(field.value) : null}\n onChange={handleChange}\n /* eslint-disable-next-line react/jsx-props-no-spreading */\n {...rest}\n />\n </LocalizationProvider>\n );\n};\n\nexport default Picker;\n","import React from 'react';\nimport FullCalendar from '@fullcalendar/react';\nimport dayGridPlugin from '@fullcalendar/daygrid';\nimport { useTheme } from '@mui/material';\nimport makeStyles from '@mui/styles/makeStyles';\nimport useFullCalendarProps from './useFullCalendarProps';\n\nconst useGlobalStyles = makeStyles(theme => ({\n '@global': {\n '.fc-button': {\n backgroundColor: `${theme.palette.primary.main} !important`,\n border: 'none !important',\n opacity: '1 !important'\n },\n '.fc-day-today': {\n backgroundColor: `${theme.palette.secondary.light} !important`\n },\n // Overwrite violet color of links\n 'a.fc-daygrid-dot-event': {\n color: 'black !important'\n }\n }\n}));\n\nconst CalendarList = props => {\n const theme = useTheme();\n const fullCalendarProps = useFullCalendarProps(props);\n useGlobalStyles();\n\n return (\n <FullCalendar\n plugins={[dayGridPlugin]}\n locale={props.locale}\n initialView=\"dayGridMonth\"\n eventBackgroundColor={theme.palette.primary.main}\n {...fullCalendarProps}\n />\n );\n};\n\nCalendarList.defaultProps = {\n linkType: 'edit'\n};\n\nexport default CalendarList;\n","import React, { useMemo, useCallback } from 'react';\nimport { useSearchParams, useNavigate } from 'react-router-dom';\nimport { useListContext, useCreatePath } from 'react-admin';\n\nconst useFullCalendarProps = ({ label, startDate, endDate, linkType }) => {\n const { data, isLoading, resource } = useListContext();\n const [searchParams, setSearchParams] = useSearchParams();\n const navigate = useNavigate();\n const createPath = useCreatePath();\n\n const query = new URLSearchParams(location.search);\n\n // Bypass the link in order to use React-Router\n const eventClick = useCallback(({ event, jsEvent }) => {\n jsEvent.preventDefault();\n navigate(event.url);\n }, []);\n\n // Change the query string when month change\n const datesSet = useCallback(\n ({ view }) => {\n setSearchParams(params => ({\n ...params,\n month: view.currentStart.getMonth() + 1,\n year: view.currentStart.getFullYear()\n }));\n },\n [setSearchParams]\n );\n\n const events = useMemo(\n () =>\n !isLoading &&\n data\n .filter(record => record)\n .map(record => ({\n id: record.id,\n title: typeof label === 'string' ? record[label] : label(record),\n start: typeof startDate === 'string' ? record[startDate] : startDate(record),\n end: typeof endDate === 'string' ? record[endDate] : endDate(record),\n url: createPath({ resource, id: record.id, type: linkType })\n })),\n [isLoading, data, resource, createPath]\n );\n\n return {\n initialDate: query.has('month') ? new Date(query.get('year'), query.get('month') - 1) : new Date(),\n events,\n datesSet,\n eventClick\n };\n};\n\nexport default useFullCalendarProps;\n","import React from 'react';\nimport FullCalendar from '@fullcalendar/react';\nimport listPlugin from '@fullcalendar/list';\nimport makeStyles from '@mui/styles/makeStyles';\nimport useFullCalendarProps from './useFullCalendarProps';\n\nconst useGlobalStyles = makeStyles(theme => ({\n '@global': {\n '.fc-button': {\n backgroundColor: `${theme.palette.primary.main} !important`,\n border: 'none !important',\n opacity: '1 !important'\n }\n }\n}));\n\nconst DaysList = props => {\n const fullCalendarProps = useFullCalendarProps(props);\n useGlobalStyles();\n\n return <FullCalendar plugins={[listPlugin]} locale={props.locale} initialView=\"listMonth\" {...fullCalendarProps} />;\n};\n\nDaysList.defaultProps = {\n linkType: 'edit'\n};\n\nexport default DaysList;\n"],"names":[],"version":3,"file":"index.es.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["packages/date-components/src/index.tsx","packages/date-components/src/Picker.tsx","packages/date-components/src/CalendarList.tsx","packages/date-components/src/useFullCalendarProps.ts","packages/date-components/src/DaysList.tsx"],"sourcesContent":["/* eslint-disable react/react-in-jsx-scope */\n/* eslint-disable react/jsx-props-no-spreading */\n\n// Solves bug with Vite in dev mode. Can be removed when we upgrade to FullCalendar v6\n// See https://github.com/fullcalendar/fullcalendar-vue/issues/152\nimport '@fullcalendar/react/dist/vdom';\n\nimport { DatePicker, DatePickerProps } from '@mui/x-date-pickers/DatePicker';\nimport { TimePicker, TimePickerProps } from '@mui/x-date-pickers/TimePicker';\nimport { DateTimePicker, DateTimePickerProps } from '@mui/x-date-pickers/DateTimePicker';\nimport Picker, { Props as PickerProps } from './Picker';\n\nconst DateInput = <TDate,>(props: Omit<PickerProps<DatePickerProps<TDate>>, 'PickerComponent'>) => (\n <Picker PickerComponent={DatePicker} {...props} />\n);\nconst TimeInput = <TDate,>(props: Omit<PickerProps<TimePickerProps<TDate>>, 'PickerComponent'>) => (\n <Picker PickerComponent={TimePicker} {...props} />\n);\nconst DateTimeInput = <TDate,>(props: Omit<PickerProps<DateTimePickerProps<TDate>>, 'PickerComponent'>) => (\n <Picker PickerComponent={DateTimePicker} {...props} />\n);\n\nexport { DateInput, TimeInput, DateTimeInput };\n\nexport { default as CalendarList } from './CalendarList';\nexport { default as DaysList } from './DaysList';\nexport { default as useFullCalendarProps } from './useFullCalendarProps';\n","/* eslint-disable react/react-in-jsx-scope */\n/* eslint-disable react/require-default-props */\nimport { useCallback, ComponentType } from 'react';\nimport { useInput, InputHelperText, TextInputProps, useTranslateLabel } from 'react-admin';\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\nimport { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns';\nimport { getPickersLocalization } from '@mui/x-date-pickers/locales/utils/getPickersLocalization';\nimport { Locale } from 'date-fns';\n\nexport type Props<PickerProps> = TextInputProps &\n Omit<PickerProps, 'format'> & {\n PickerComponent: ComponentType;\n locale?: Locale;\n translations?: ReturnType<typeof getPickersLocalization>;\n stringFormat?: string;\n };\n\nconst Picker = <PickerProps,>({\n PickerComponent,\n label,\n source,\n helperText,\n fullWidth,\n onBlur,\n onChange,\n format,\n parse,\n validate,\n defaultValue,\n locale,\n translations,\n stringFormat = 'ISO',\n ...rest\n}: Props<PickerProps>) => {\n const {\n field,\n isRequired,\n fieldState: { error, isTouched, invalid },\n formState: { isSubmitted }\n } = useInput({\n format,\n onBlur,\n onChange,\n parse,\n source,\n validate,\n defaultValue\n });\n\n const handleChange = useCallback(\n (value: Date) => {\n if (value instanceof Date) {\n field.onChange(stringFormat === 'ISO' ? value.toISOString() : value.toString());\n } else {\n field.onChange(null);\n }\n },\n [field, stringFormat]\n );\n\n const translateLabel = useTranslateLabel();\n const translatedLabel = (\n <span>\n {translateLabel({\n label,\n source\n })}\n {isRequired && <span aria-hidden=\"true\"> *</span>}\n </span>\n );\n\n return (\n <LocalizationProvider\n dateAdapter={AdapterDateFns}\n adapterLocale={locale}\n localeText={translations?.components.MuiLocalizationProvider.defaultProps.localeText}\n >\n <PickerComponent\n label={translatedLabel}\n slotProps={{\n textField: {\n error: (isTouched || isSubmitted) && invalid,\n size: 'small',\n fullWidth,\n helperText: (\n // @ts-expect-error TS(2322): Type '{ touched: boolean; error: string | undefine... Remove this comment to see the full error message\n <InputHelperText touched={isTouched || isSubmitted} error={error?.message} helperText={helperText} />\n )\n }\n }}\n value={field.value ? new Date(field.value) : null}\n onChange={handleChange}\n /* eslint-disable-next-line react/jsx-props-no-spreading */\n {...rest}\n />\n </LocalizationProvider>\n );\n};\n\nexport default Picker;\n","import React from 'react';\nimport FullCalendar from '@fullcalendar/react';\nimport dayGridPlugin from '@fullcalendar/daygrid';\nimport { GlobalStyles, useTheme } from '@mui/material';\nimport useFullCalendarProps from './useFullCalendarProps';\nimport { makeStyles } from 'tss-react/mui';\n\nconst CalendarList = (props: any) => {\n const theme = useTheme();\n const fullCalendarProps = useFullCalendarProps(props);\n\n return (\n <>\n <GlobalStyles\n styles={theme => ({\n '.fc-button': {\n backgroundColor: `${theme.palette.primary.main} !important`,\n border: 'none !important',\n opacity: '1 !important'\n },\n '.fc-day-today': {\n backgroundColor: `${theme.palette.secondary.light} !important`\n },\n // Overwrite violet color of links\n 'a.fc-daygrid-dot-event': {\n color: 'black !important'\n }\n })}\n />\n\n <FullCalendar\n plugins={[dayGridPlugin]}\n locale={props.locale}\n initialView=\"dayGridMonth\"\n eventBackgroundColor={theme.palette.primary.main}\n {...fullCalendarProps}\n />\n </>\n );\n};\n\nexport default CalendarList;\n","import React, { useMemo, useCallback } from 'react';\nimport { useSearchParams, useNavigate } from 'react-router-dom';\nimport { useListContext, useCreatePath } from 'react-admin';\n\nconst useFullCalendarProps = ({\n label,\n startDate,\n endDate,\n linkType = 'edit'\n}: any) => {\n const { data, isLoading, resource } = useListContext();\n const [searchParams, setSearchParams] = useSearchParams();\n const navigate = useNavigate();\n const createPath = useCreatePath();\n\n const query = new URLSearchParams(location.search);\n\n // Bypass the link in order to use React-Router\n const eventClick = useCallback(({\n event,\n jsEvent\n }: any) => {\n jsEvent.preventDefault();\n navigate(event.url);\n }, []);\n\n // Change the query string when month change\n const datesSet = useCallback(\n ({\n view\n }: any) => {\n // @ts-expect-error TS(2345): Argument of type '(params: URLSearchParams) => { m... Remove this comment to see the full error message\n setSearchParams(params => ({\n ...params,\n month: view.currentStart.getMonth() + 1,\n year: view.currentStart.getFullYear()\n }));\n },\n [setSearchParams]\n );\n\n const events = useMemo(\n () =>\n !isLoading &&\n // @ts-expect-error TS(2532): Object is possibly 'undefined'.\n data\n .filter(record => record)\n .map(record => ({\n id: record.id,\n title: typeof label === 'string' ? record[label] : label(record),\n start: typeof startDate === 'string' ? record[startDate] : startDate(record),\n end: typeof endDate === 'string' ? record[endDate] : endDate(record),\n url: createPath({ resource, id: record.id, type: linkType })\n })),\n [isLoading, data, resource, createPath]\n );\n\n return {\n // @ts-expect-error TS(2345): Argument of type 'string | null' is not assignable... Remove this comment to see the full error message\n initialDate: query.has('month') ? new Date(query.get('year'), query.get('month') - 1) : new Date(),\n events,\n datesSet,\n eventClick\n };\n};\n\nexport default useFullCalendarProps;\n","import React from 'react';\nimport FullCalendar from '@fullcalendar/react';\nimport listPlugin from '@fullcalendar/list';\nimport { makeStyles } from 'tss-react/mui';\nimport useFullCalendarProps from './useFullCalendarProps';\nimport { GlobalStyles } from '@mui/material';\n\nconst DaysList = (props: any) => {\n const fullCalendarProps = useFullCalendarProps(props);\n\n return (\n <>\n <GlobalStyles\n styles={theme => ({\n '.fc-button': {\n backgroundColor: `${theme.palette.primary.main} !important`,\n border: 'none !important',\n opacity: '1 !important'\n }\n })}\n />\n <FullCalendar plugins={[listPlugin]} locale={props.locale} initialView=\"listMonth\" {...fullCalendarProps} />;\n </>\n );\n};\n\nexport default DaysList;\n"],"names":[],"version":3,"file":"index.es.js.map"}
|