@elliemae/ds-date-time-picker 2.2.0 → 2.3.0-alpha.3
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/cjs/DSDateTimePicker.js +160 -181
- package/cjs/DSDateTimePicker.js.map +7 -0
- package/cjs/components/DateTimePickerImpl.js +187 -218
- package/cjs/components/DateTimePickerImpl.js.map +7 -0
- package/cjs/index.js +37 -10
- package/cjs/index.js.map +7 -0
- package/cjs/lang/english.js +39 -9
- package/cjs/lang/english.js.map +7 -0
- package/cjs/tests/utils.js +42 -0
- package/cjs/tests/utils.js.map +7 -0
- package/cjs/utils.js +42 -19
- package/cjs/utils.js.map +7 -0
- package/esm/DSDateTimePicker.js +77 -116
- package/esm/DSDateTimePicker.js.map +7 -0
- package/esm/components/DateTimePickerImpl.js +143 -194
- package/esm/components/DateTimePickerImpl.js.map +7 -0
- package/esm/index.js +8 -1
- package/esm/index.js.map +7 -0
- package/esm/lang/english.js +9 -6
- package/esm/lang/english.js.map +7 -0
- package/esm/tests/utils.js +13 -0
- package/esm/tests/utils.js.map +7 -0
- package/esm/utils.js +12 -10
- package/esm/utils.js.map +7 -0
- package/package.json +7 -7
- package/types/DSDateTimePicker.d.ts +1 -1
- package/types/components/DateTimePickerImpl.d.ts +1 -0
- package/types/index.d.ts +1 -1
|
@@ -1,178 +1,133 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
phrases = SingleDatePickerPhrases,
|
|
54
|
-
displayFormatDay = 'D',
|
|
55
|
-
isDayBlocked = () => false,
|
|
56
|
-
isOutsideRange = () => false,
|
|
57
|
-
isDayHighlighted = () => false,
|
|
58
|
-
zIndex = 11
|
|
59
|
-
},
|
|
60
|
-
timePickerProps: {
|
|
61
|
-
format = 'hh:mm A',
|
|
62
|
-
onChange: onChangeTimePicker = () => null,
|
|
63
|
-
disabledTimes = undefined,
|
|
64
|
-
onError: onErrorTime = () => null,
|
|
65
|
-
minutesInterval = 1
|
|
66
|
-
},
|
|
67
|
-
dateInputProps: {
|
|
68
|
-
onDateInputDateChange = () => null
|
|
69
|
-
}
|
|
70
|
-
} = _ref;
|
|
71
|
-
const [selectedDate, setSelectedDate] = useState(undefined);
|
|
72
|
-
const [incompleteInput, setIncompleteInput] = useState(undefined);
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import React2, { useState, useEffect, useMemo, useRef } from "react";
|
|
3
|
+
import moment from "moment";
|
|
4
|
+
import { aggregatedClasses } from "@elliemae/ds-classnames";
|
|
5
|
+
import { DSDatePickerController, DatePickerDropdown, SingleDatePickerPhrases } from "@elliemae/ds-date-picker";
|
|
6
|
+
import { DSInput, DSInputGroup, DateInputsV2Impl, TimeInputImpl } from "@elliemae/ds-form";
|
|
7
|
+
import { getVisibleTimeByFormat } from "@elliemae/ds-utilities";
|
|
8
|
+
import { DSTimePickerMenu, convertTimeString } from "@elliemae/ds-time-picker";
|
|
9
|
+
import { updateDateAndTime } from "../utils";
|
|
10
|
+
const blockName = "date-time-picker";
|
|
11
|
+
const DateTimePickerWrapper = aggregatedClasses("div")(blockName, "wrapper");
|
|
12
|
+
const TimePicker = aggregatedClasses(DSTimePickerMenu)(blockName, "time-picker");
|
|
13
|
+
const TimePickerWrapper = aggregatedClasses("div")(blockName, "time-picker-wrapper");
|
|
14
|
+
const formatDate = "MMDDYYYY";
|
|
15
|
+
const DSDateTimePickerImpl = ({
|
|
16
|
+
onBlur = () => null,
|
|
17
|
+
placeholder,
|
|
18
|
+
date,
|
|
19
|
+
clearable,
|
|
20
|
+
datePickerProps: {
|
|
21
|
+
disabled = false,
|
|
22
|
+
numberOfMonths = 1,
|
|
23
|
+
readOnly = false,
|
|
24
|
+
enableOutsideDays = false,
|
|
25
|
+
transitionDuration = 0,
|
|
26
|
+
firstDayOfWeek = 0,
|
|
27
|
+
keepOpenOnDateSelect = true,
|
|
28
|
+
hideKeyboardShortcutsPanel = true,
|
|
29
|
+
onPrevMonthClick = () => null,
|
|
30
|
+
onNextMonthClick = () => null,
|
|
31
|
+
onClose = () => null,
|
|
32
|
+
onChange: onDatePickerChange = () => null,
|
|
33
|
+
onDateChange = () => null,
|
|
34
|
+
onError: onErrorDate = () => null,
|
|
35
|
+
phrases = SingleDatePickerPhrases,
|
|
36
|
+
displayFormatDay = "D",
|
|
37
|
+
isDayBlocked = () => false,
|
|
38
|
+
isOutsideRange = () => false,
|
|
39
|
+
isDayHighlighted = () => false,
|
|
40
|
+
zIndex = 11
|
|
41
|
+
},
|
|
42
|
+
timePickerProps: {
|
|
43
|
+
format = "hh:mm A",
|
|
44
|
+
onChange: onChangeTimePicker = () => null,
|
|
45
|
+
disabledTimes = void 0,
|
|
46
|
+
onError: onErrorTime = () => null,
|
|
47
|
+
minutesInterval = 1
|
|
48
|
+
},
|
|
49
|
+
dateInputProps: { onDateInputDateChange = () => null }
|
|
50
|
+
}) => {
|
|
51
|
+
const [selectedDate, setSelectedDate] = useState(void 0);
|
|
52
|
+
const [incompleteInput, setIncompleteInput] = useState(void 0);
|
|
73
53
|
const [isOpen, setIsOpen] = useState(false);
|
|
74
54
|
const disabledTimeRange = disabledTimes && {
|
|
75
55
|
from: convertTimeString(disabledTimes.from),
|
|
76
56
|
to: convertTimeString(disabledTimes.to)
|
|
77
57
|
};
|
|
78
58
|
const dateTimePickerWrapperRef = useRef();
|
|
79
|
-
const fullFormat =
|
|
59
|
+
const fullFormat = `${formatDate} ${format}`;
|
|
80
60
|
useEffect(() => {
|
|
81
61
|
if (date) {
|
|
82
62
|
setSelectedDate(moment(date));
|
|
83
|
-
} else if (date === null)
|
|
63
|
+
} else if (date === null)
|
|
64
|
+
setSelectedDate(void 0);
|
|
84
65
|
}, [date]);
|
|
85
66
|
const visiblePanels = useMemo(() => getVisibleTimeByFormat(format), []);
|
|
86
67
|
const currentYear = moment().year();
|
|
87
|
-
|
|
88
|
-
const handleDatePickerChange = dateSelected => {
|
|
68
|
+
const handleDatePickerChange = (dateSelected) => {
|
|
89
69
|
const splittedDate = updateDateAndTime(dateSelected, selectedDate);
|
|
90
|
-
|
|
91
70
|
if (!readOnly) {
|
|
92
71
|
setSelectedDate(splittedDate);
|
|
93
72
|
onDateChange(splittedDate);
|
|
94
73
|
}
|
|
95
74
|
};
|
|
96
|
-
|
|
97
|
-
const onTimeChange = pickerTime => {
|
|
75
|
+
const onTimeChange = (pickerTime) => {
|
|
98
76
|
const splittedDate = updateDateAndTime(selectedDate, pickerTime);
|
|
99
77
|
onChangeTimePicker(splittedDate);
|
|
100
78
|
setSelectedDate(splittedDate);
|
|
101
79
|
};
|
|
102
|
-
|
|
103
80
|
const handleInputChange = (inputValue, type) => {
|
|
104
81
|
onDatePickerChange(inputValue);
|
|
105
82
|
let timeBlocked = false;
|
|
106
83
|
const inputMoment = moment(inputValue, fullFormat);
|
|
107
84
|
setIncompleteInput(inputValue);
|
|
108
|
-
|
|
109
|
-
if (type === 'date') {
|
|
85
|
+
if (type === "date") {
|
|
110
86
|
const splittedDate = updateDateAndTime(inputMoment, selectedDate);
|
|
111
|
-
|
|
112
87
|
if (inputValue.length < 8) {
|
|
113
|
-
onErrorDate({
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
});
|
|
117
|
-
if (clearable) onDateChange('error');
|
|
88
|
+
onErrorDate({ message: "date incomplete", inputValue });
|
|
89
|
+
if (clearable)
|
|
90
|
+
onDateChange("error");
|
|
118
91
|
return;
|
|
119
92
|
}
|
|
120
|
-
|
|
121
93
|
if (inputValue.length === 8 && inputMoment.isValid()) {
|
|
122
94
|
setSelectedDate(splittedDate);
|
|
123
95
|
onChangeTimePicker(splittedDate);
|
|
124
96
|
}
|
|
125
|
-
|
|
126
97
|
onDateChange(splittedDate);
|
|
127
98
|
return;
|
|
128
99
|
}
|
|
129
|
-
|
|
130
100
|
if (disabledTimeRange) {
|
|
131
101
|
const hour = inputValue.hour();
|
|
132
102
|
const min = inputValue.minutes();
|
|
133
|
-
const {
|
|
134
|
-
from,
|
|
135
|
-
to
|
|
136
|
-
} = disabledTimeRange;
|
|
137
|
-
|
|
103
|
+
const { from, to } = disabledTimeRange;
|
|
138
104
|
if (hour > from.hour && hour < to.hour || hour === to.hour && min < to.min) {
|
|
139
105
|
timeBlocked = true;
|
|
140
106
|
}
|
|
141
107
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
message: 'time blocked',
|
|
145
|
-
inputValue
|
|
146
|
-
});
|
|
108
|
+
if (timeBlocked)
|
|
109
|
+
onErrorTime({ message: "time blocked", inputValue });
|
|
147
110
|
const dateBlocked = isDayBlocked(inputMoment);
|
|
148
|
-
if (dateBlocked)
|
|
149
|
-
message:
|
|
150
|
-
inputValue
|
|
151
|
-
});
|
|
152
|
-
|
|
111
|
+
if (dateBlocked)
|
|
112
|
+
onErrorDate({ message: "date blocked", inputValue });
|
|
153
113
|
if (!timeBlocked && !dateBlocked) {
|
|
154
114
|
onDateChange(inputValue);
|
|
155
115
|
}
|
|
156
116
|
};
|
|
157
|
-
|
|
158
|
-
const handleOutsideClick = event => {
|
|
117
|
+
const handleOutsideClick = (event) => {
|
|
159
118
|
if (!dateTimePickerWrapperRef.current.contains(event.target)) {
|
|
160
119
|
setIsOpen(false);
|
|
161
120
|
}
|
|
162
121
|
};
|
|
163
|
-
|
|
164
122
|
const handleClickEscape = () => setIsOpen(false);
|
|
165
|
-
|
|
166
123
|
const handleOpen = () => setIsOpen(true);
|
|
167
|
-
|
|
168
|
-
const handleContainerBlur = event => {
|
|
124
|
+
const handleContainerBlur = (event) => {
|
|
169
125
|
if (!isOpen && !event.currentTarget.contains(event.relatedTarget)) {
|
|
170
|
-
onBlur(event, selectedDate
|
|
126
|
+
onBlur(event, selectedDate?.isValid() ? selectedDate : {
|
|
171
127
|
error: true,
|
|
172
|
-
message:
|
|
128
|
+
message: "incomplete input",
|
|
173
129
|
input: incompleteInput
|
|
174
130
|
});
|
|
175
|
-
|
|
176
131
|
if (clearable && !selectedDate && !!incompleteInput) {
|
|
177
132
|
const inputMoment = moment(incompleteInput, fullFormat);
|
|
178
133
|
const splittedDate = updateDateAndTime(inputMoment, selectedDate);
|
|
@@ -181,96 +136,90 @@ const DSDateTimePickerImpl = _ref => {
|
|
|
181
136
|
}
|
|
182
137
|
}
|
|
183
138
|
};
|
|
184
|
-
|
|
185
139
|
useEffect(() => {
|
|
186
|
-
if (!isOpen)
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
140
|
+
if (!isOpen)
|
|
141
|
+
onBlur({}, selectedDate?.isValid() ? selectedDate : {
|
|
142
|
+
error: true,
|
|
143
|
+
message: "incomplete input",
|
|
144
|
+
input: incompleteInput
|
|
145
|
+
});
|
|
191
146
|
}, [isOpen]);
|
|
192
147
|
const hasSelectedDate = !!selectedDate;
|
|
193
|
-
return
|
|
148
|
+
return /* @__PURE__ */ React2.createElement(DSInputGroup, {
|
|
194
149
|
containerProps: {
|
|
195
150
|
onBlur: handleContainerBlur
|
|
196
151
|
},
|
|
197
|
-
rightAddon:
|
|
198
|
-
disabled
|
|
199
|
-
isOpen
|
|
200
|
-
zIndex
|
|
201
|
-
menu:
|
|
152
|
+
rightAddon: /* @__PURE__ */ React2.createElement(DatePickerDropdown, {
|
|
153
|
+
disabled,
|
|
154
|
+
isOpen,
|
|
155
|
+
zIndex,
|
|
156
|
+
menu: /* @__PURE__ */ React2.createElement(DateTimePickerWrapper, {
|
|
202
157
|
ref: dateTimePickerWrapperRef,
|
|
203
|
-
"data-testid": "date-time-picker"
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
}),
|
|
158
|
+
"data-testid": "date-time-picker"
|
|
159
|
+
}, /* @__PURE__ */ React2.createElement("div", {
|
|
160
|
+
className: hasSelectedDate ? "has-selected-date" : "without-selected-date",
|
|
161
|
+
"data-testid": "date-time-picker-portal-wrapper"
|
|
162
|
+
}, /* @__PURE__ */ React2.createElement(DSDatePickerController, {
|
|
163
|
+
date: selectedDate,
|
|
164
|
+
displayFormatDay,
|
|
165
|
+
enableOutsideDays,
|
|
166
|
+
firstDayOfWeek,
|
|
167
|
+
hideKeyboardShortcutsPanel,
|
|
168
|
+
isDayBlocked,
|
|
169
|
+
isDayHighlighted,
|
|
170
|
+
isOutsideRange,
|
|
171
|
+
keepOpenOnDateSelect,
|
|
172
|
+
numberOfMonths,
|
|
173
|
+
onClickEscape: handleClickEscape,
|
|
174
|
+
onClose,
|
|
175
|
+
onDateChange: handleDatePickerChange,
|
|
176
|
+
onNextMonthClick,
|
|
177
|
+
onOutsideClick: (event) => handleOutsideClick(event),
|
|
178
|
+
onPrevMonthClick,
|
|
179
|
+
phrases,
|
|
180
|
+
transitionDuration
|
|
181
|
+
})), /* @__PURE__ */ React2.createElement(TimePickerWrapper, null, /* @__PURE__ */ React2.createElement(TimePicker, {
|
|
182
|
+
disabled,
|
|
183
|
+
disabledTimes: disabledTimeRange,
|
|
184
|
+
format,
|
|
185
|
+
hasHeader: true,
|
|
186
|
+
hasHeaderDisplay: true,
|
|
187
|
+
onTimeChange,
|
|
188
|
+
showSeconds: false,
|
|
189
|
+
minutesInterval,
|
|
190
|
+
time: selectedDate,
|
|
191
|
+
...visiblePanels
|
|
192
|
+
}))),
|
|
238
193
|
onClick: handleOpen,
|
|
239
|
-
readOnly
|
|
194
|
+
readOnly
|
|
240
195
|
})
|
|
241
|
-
},
|
|
242
|
-
customInputType:
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
yearMaxRange: currentYear + 100,
|
|
259
|
-
yearMinRange: currentYear - 100,
|
|
260
|
-
time: restInputProps.value && restInputProps.value.hour && restInputProps.value.isValid() ? restInputProps.value.format(formatDate) : restInputProps.value
|
|
261
|
-
}))), /*#__PURE__*/jsx(TimeInputImpl, _objectSpread({
|
|
262
|
-
disabled: disabled,
|
|
263
|
-
format: format,
|
|
264
|
-
onChange: time => handleChange(time, 'time')
|
|
265
|
-
}, restInputProps))]
|
|
266
|
-
});
|
|
267
|
-
},
|
|
196
|
+
}, /* @__PURE__ */ React2.createElement(DSInput, {
|
|
197
|
+
customInputType: ({ onChange: handleChange, ...restInputProps }) => /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement("div", {
|
|
198
|
+
style: { display: "flex" }
|
|
199
|
+
}, /* @__PURE__ */ React2.createElement(DateInputsV2Impl, {
|
|
200
|
+
disabled,
|
|
201
|
+
onChange: (input) => handleChange(input, "date"),
|
|
202
|
+
...restInputProps,
|
|
203
|
+
onDateChange: onDateInputDateChange,
|
|
204
|
+
yearMaxRange: currentYear + 100,
|
|
205
|
+
yearMinRange: currentYear - 100,
|
|
206
|
+
time: restInputProps.value && restInputProps.value.hour && restInputProps.value.isValid() ? restInputProps.value.format(formatDate) : restInputProps.value
|
|
207
|
+
})), /* @__PURE__ */ React2.createElement(TimeInputImpl, {
|
|
208
|
+
disabled,
|
|
209
|
+
format,
|
|
210
|
+
onChange: (time) => handleChange(time, "time"),
|
|
211
|
+
...restInputProps
|
|
212
|
+
})),
|
|
268
213
|
isShowElipsisActive: false,
|
|
269
|
-
disabled
|
|
214
|
+
disabled,
|
|
270
215
|
onChange: handleInputChange,
|
|
271
|
-
placeholder
|
|
216
|
+
placeholder,
|
|
272
217
|
value: selectedDate
|
|
273
218
|
}));
|
|
274
219
|
};
|
|
275
|
-
|
|
276
|
-
export {
|
|
220
|
+
var DateTimePickerImpl_default = DSDateTimePickerImpl;
|
|
221
|
+
export {
|
|
222
|
+
DSDateTimePickerImpl,
|
|
223
|
+
DateTimePickerImpl_default as default
|
|
224
|
+
};
|
|
225
|
+
//# sourceMappingURL=DateTimePickerImpl.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/components/DateTimePickerImpl.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable indent */\n/* eslint-disable max-statements */\n/* eslint-disable complexity */\n/* eslint-disable no-empty-pattern */\n/* eslint-disable import/no-unresolved */\n/* eslint-disable max-lines */\n/* eslint-disable react/prop-types */\nimport React, { useState, useEffect, useMemo, useRef } from 'react';\nimport moment from 'moment';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport { DSDatePickerController, DatePickerDropdown, SingleDatePickerPhrases } from '@elliemae/ds-date-picker';\nimport { DSInput, DSInputGroup, DateInputsV2Impl, TimeInputImpl } from '@elliemae/ds-form';\nimport { getVisibleTimeByFormat } from '@elliemae/ds-utilities';\nimport { DSTimePickerMenu, convertTimeString } from '@elliemae/ds-time-picker';\nimport { updateDateAndTime } from '../utils';\n\nconst blockName = 'date-time-picker';\n\nconst DateTimePickerWrapper = aggregatedClasses('div')(blockName, 'wrapper');\nconst TimePicker = aggregatedClasses(DSTimePickerMenu)(blockName, 'time-picker');\nconst TimePickerWrapper = aggregatedClasses('div')(blockName, 'time-picker-wrapper');\n// const DateInput = aggregatedClasses(DateInputsV2Impl)(blockName, 'date-input');\nconst formatDate = 'MMDDYYYY';\n\nconst DSDateTimePickerImpl = ({\n onBlur = () => null,\n placeholder,\n date,\n clearable,\n datePickerProps: {\n disabled = false,\n numberOfMonths = 1,\n readOnly = false,\n enableOutsideDays = false,\n transitionDuration = 0,\n firstDayOfWeek = 0,\n keepOpenOnDateSelect = true,\n hideKeyboardShortcutsPanel = true,\n onPrevMonthClick = () => null,\n onNextMonthClick = () => null,\n onClose = () => null,\n onChange: onDatePickerChange = () => null,\n onDateChange = () => null,\n onError: onErrorDate = () => null,\n phrases = SingleDatePickerPhrases,\n displayFormatDay = 'D',\n isDayBlocked = () => false,\n isOutsideRange = () => false,\n isDayHighlighted = () => false,\n zIndex = 11,\n },\n timePickerProps: {\n format = 'hh:mm A',\n onChange: onChangeTimePicker = () => null,\n disabledTimes = undefined,\n onError: onErrorTime = () => null,\n minutesInterval = 1,\n },\n dateInputProps: { onDateInputDateChange = () => null },\n}) => {\n const [selectedDate, setSelectedDate] = useState(undefined);\n const [incompleteInput, setIncompleteInput] = useState(undefined);\n const [isOpen, setIsOpen] = useState(false);\n\n const disabledTimeRange = disabledTimes && {\n from: convertTimeString(disabledTimes.from),\n to: convertTimeString(disabledTimes.to),\n };\n\n const dateTimePickerWrapperRef = useRef();\n const fullFormat = `${formatDate} ${format}`;\n\n useEffect(() => {\n if (date) {\n setSelectedDate(moment(date));\n } else if (date === null) setSelectedDate(undefined);\n }, [date]);\n\n const visiblePanels = useMemo(() => getVisibleTimeByFormat(format), []);\n\n const currentYear = moment().year();\n\n const handleDatePickerChange = (dateSelected) => {\n const splittedDate = updateDateAndTime(dateSelected, selectedDate);\n if (!readOnly) {\n setSelectedDate(splittedDate);\n onDateChange(splittedDate);\n }\n };\n\n const onTimeChange = (pickerTime) => {\n const splittedDate = updateDateAndTime(selectedDate, pickerTime);\n onChangeTimePicker(splittedDate);\n setSelectedDate(splittedDate);\n };\n\n const handleInputChange = (inputValue, type) => {\n onDatePickerChange(inputValue);\n let timeBlocked = false;\n const inputMoment = moment(inputValue, fullFormat);\n setIncompleteInput(inputValue);\n if (type === 'date') {\n const splittedDate = updateDateAndTime(inputMoment, selectedDate);\n if (inputValue.length < 8) {\n onErrorDate({ message: 'date incomplete', inputValue });\n if (clearable) onDateChange('error');\n return;\n }\n if (inputValue.length === 8 && inputMoment.isValid()) {\n setSelectedDate(splittedDate);\n onChangeTimePicker(splittedDate);\n }\n onDateChange(splittedDate);\n return;\n }\n\n if (disabledTimeRange) {\n const hour = inputValue.hour();\n const min = inputValue.minutes();\n const { from, to } = disabledTimeRange;\n\n if ((hour > from.hour && hour < to.hour) || (hour === to.hour && min < to.min)) {\n timeBlocked = true;\n }\n }\n if (timeBlocked) onErrorTime({ message: 'time blocked', inputValue });\n const dateBlocked = isDayBlocked(inputMoment);\n if (dateBlocked) onErrorDate({ message: 'date blocked', inputValue });\n if (!timeBlocked && !dateBlocked) {\n onDateChange(inputValue);\n }\n };\n\n const handleOutsideClick = (event) => {\n if (!dateTimePickerWrapperRef.current.contains(event.target)) {\n setIsOpen(false);\n }\n };\n\n const handleClickEscape = () => setIsOpen(false);\n const handleOpen = () => setIsOpen(true);\n\n const handleContainerBlur = (event) => {\n if (!isOpen && !event.currentTarget.contains(event.relatedTarget)) {\n onBlur(\n event,\n selectedDate?.isValid()\n ? selectedDate\n : {\n error: true,\n message: 'incomplete input',\n input: incompleteInput,\n },\n );\n if (clearable && !selectedDate && !!incompleteInput) {\n const inputMoment = moment(incompleteInput, fullFormat);\n const splittedDate = updateDateAndTime(inputMoment, selectedDate);\n\n setSelectedDate(splittedDate);\n onDateChange(splittedDate);\n }\n }\n };\n\n useEffect(() => {\n if (!isOpen)\n onBlur(\n {},\n selectedDate?.isValid()\n ? selectedDate\n : {\n error: true,\n message: 'incomplete input',\n input: incompleteInput,\n },\n );\n }, [isOpen]);\n\n const hasSelectedDate = !!selectedDate;\n return (\n <DSInputGroup\n containerProps={{\n onBlur: handleContainerBlur,\n }}\n rightAddon={\n <DatePickerDropdown\n disabled={disabled}\n isOpen={isOpen}\n zIndex={zIndex}\n menu={\n <DateTimePickerWrapper ref={dateTimePickerWrapperRef} data-testid=\"date-time-picker\">\n <div\n className={hasSelectedDate ? 'has-selected-date' : 'without-selected-date'}\n data-testid=\"date-time-picker-portal-wrapper\"\n >\n <DSDatePickerController\n date={selectedDate}\n displayFormatDay={displayFormatDay}\n enableOutsideDays={enableOutsideDays}\n firstDayOfWeek={firstDayOfWeek}\n hideKeyboardShortcutsPanel={hideKeyboardShortcutsPanel}\n isDayBlocked={isDayBlocked}\n isDayHighlighted={isDayHighlighted}\n isOutsideRange={isOutsideRange}\n keepOpenOnDateSelect={keepOpenOnDateSelect}\n numberOfMonths={numberOfMonths}\n onClickEscape={handleClickEscape}\n onClose={onClose}\n onDateChange={handleDatePickerChange}\n onNextMonthClick={onNextMonthClick}\n onOutsideClick={(event) => handleOutsideClick(event)}\n onPrevMonthClick={onPrevMonthClick}\n phrases={phrases}\n transitionDuration={transitionDuration}\n />\n </div>\n <TimePickerWrapper>\n <TimePicker\n disabled={disabled}\n disabledTimes={disabledTimeRange}\n format={format}\n hasHeader\n hasHeaderDisplay\n onTimeChange={onTimeChange}\n showSeconds={false}\n minutesInterval={minutesInterval}\n time={selectedDate}\n {...visiblePanels}\n />\n </TimePickerWrapper>\n </DateTimePickerWrapper>\n }\n onClick={handleOpen}\n readOnly={readOnly}\n />\n }\n >\n <DSInput\n customInputType={({ onChange: handleChange, ...restInputProps }) => (\n <>\n <div style={{ display: 'flex' }}>\n <DateInputsV2Impl\n disabled={disabled}\n onChange={(input) => handleChange(input, 'date')}\n {...restInputProps}\n onDateChange={onDateInputDateChange}\n yearMaxRange={currentYear + 100}\n yearMinRange={currentYear - 100}\n time={\n restInputProps.value && restInputProps.value.hour && restInputProps.value.isValid()\n ? restInputProps.value.format(formatDate)\n : restInputProps.value\n }\n />\n </div>\n <TimeInputImpl\n disabled={disabled}\n format={format}\n onChange={(time) => handleChange(time, 'time')}\n {...restInputProps}\n />\n </>\n )}\n isShowElipsisActive={false}\n disabled={disabled}\n onChange={handleInputChange}\n placeholder={placeholder}\n value={selectedDate}\n />\n </DSInputGroup>\n );\n};\n\nexport { DSDateTimePickerImpl };\nexport default DSDateTimePickerImpl;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/esm/index.js
CHANGED
|
@@ -1 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { default as default2, DSDateTimePicker, DateTimePickerWithSchema } from "./DSDateTimePicker";
|
|
3
|
+
export {
|
|
4
|
+
DSDateTimePicker,
|
|
5
|
+
DateTimePickerWithSchema,
|
|
6
|
+
default2 as default
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/index.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { default, DSDateTimePicker, DateTimePickerWithSchema } from './DSDateTimePicker';\n"],
|
|
5
|
+
"mappings": "AAAA;ACAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/esm/lang/english.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
var english_default = {
|
|
3
|
+
placeholder: "Select date and time",
|
|
4
|
+
className: "",
|
|
5
|
+
id: ""
|
|
5
6
|
};
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
export {
|
|
8
|
+
english_default as default
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=english.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/lang/english.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export default {\n placeholder: 'Select date and time',\n className: '',\n id: '',\n};\n"],
|
|
5
|
+
"mappings": "AAAA;ACAA,IAAO,kBAAQ;AAAA,EACb,aAAa;AAAA,EACb,WAAW;AAAA,EACX,IAAI;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import React2 from "react";
|
|
3
|
+
import { ThemeProvider } from "styled-components";
|
|
4
|
+
import { DSTheme } from "@elliemae/ds-system";
|
|
5
|
+
const themeProviderHOC = (Component) => (props) => /* @__PURE__ */ React2.createElement(ThemeProvider, {
|
|
6
|
+
theme: DSTheme
|
|
7
|
+
}, /* @__PURE__ */ React2.createElement(Component, {
|
|
8
|
+
...props
|
|
9
|
+
}));
|
|
10
|
+
export {
|
|
11
|
+
themeProviderHOC
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/tests/utils.js"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { ThemeProvider } from 'styled-components';\nimport { DSTheme } from '@elliemae/ds-system';\n\nexport const themeProviderHOC = (Component) => (props) => (\n <ThemeProvider theme={DSTheme}>\n <Component {...props} />\n </ThemeProvider>\n);\n"],
|
|
5
|
+
"mappings": "AAAA;ACAA;AACA;AACA;AAEO,MAAM,mBAAmB,CAAC,cAAc,CAAC,UAC9C,qCAAC,eAAD;AAAA,EAAe,OAAO;AAAA,GACpB,qCAAC,WAAD;AAAA,KAAe;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/esm/utils.js
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import moment from "moment";
|
|
3
3
|
const updateDateAndTime = (date, time) => {
|
|
4
4
|
const splittedDate = moment();
|
|
5
|
-
splittedDate.month(date
|
|
6
|
-
splittedDate.year(date
|
|
7
|
-
splittedDate.date(date
|
|
8
|
-
splittedDate.hour(time
|
|
9
|
-
splittedDate.minute(time
|
|
10
|
-
splittedDate.second(time
|
|
5
|
+
splittedDate.month(date?.get("month"));
|
|
6
|
+
splittedDate.year(date?.get("year"));
|
|
7
|
+
splittedDate.date(date?.get("date"));
|
|
8
|
+
splittedDate.hour(time?.get("hour"));
|
|
9
|
+
splittedDate.minute(time?.get("minute"));
|
|
10
|
+
splittedDate.second(time?.get("second"));
|
|
11
11
|
return splittedDate;
|
|
12
12
|
};
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
export {
|
|
14
|
+
updateDateAndTime
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=utils.js.map
|
package/esm/utils.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/utils.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import moment from 'moment';\n\nexport const updateDateAndTime = (date, time) => {\n const splittedDate = moment();\n splittedDate.month(date?.get('month'));\n splittedDate.year(date?.get('year'));\n splittedDate.date(date?.get('date'));\n splittedDate.hour(time?.get('hour'));\n splittedDate.minute(time?.get('minute'));\n splittedDate.second(time?.get('second'));\n\n return splittedDate;\n};\n"],
|
|
5
|
+
"mappings": "AAAA;ACAA;AAEO,MAAM,oBAAoB,CAAC,MAAM,SAAS;AAC/C,QAAM,eAAe;AACrB,eAAa,MAAM,MAAM,IAAI;AAC7B,eAAa,KAAK,MAAM,IAAI;AAC5B,eAAa,KAAK,MAAM,IAAI;AAC5B,eAAa,KAAK,MAAM,IAAI;AAC5B,eAAa,OAAO,MAAM,IAAI;AAC9B,eAAa,OAAO,MAAM,IAAI;AAE9B,SAAO;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-date-time-picker",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0-alpha.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - Date Time Picker",
|
|
6
6
|
"module": "./esm/index.js",
|
|
@@ -52,12 +52,12 @@
|
|
|
52
52
|
"build": "node ../../scripts/build/build.js"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@elliemae/ds-classnames": "2.
|
|
56
|
-
"@elliemae/ds-date-picker": "2.
|
|
57
|
-
"@elliemae/ds-form": "2.
|
|
58
|
-
"@elliemae/ds-system": "2.
|
|
59
|
-
"@elliemae/ds-time-picker": "2.
|
|
60
|
-
"@elliemae/ds-utilities": "2.
|
|
55
|
+
"@elliemae/ds-classnames": "2.3.0-alpha.3",
|
|
56
|
+
"@elliemae/ds-date-picker": "2.3.0-alpha.3",
|
|
57
|
+
"@elliemae/ds-form": "2.3.0-alpha.3",
|
|
58
|
+
"@elliemae/ds-system": "2.3.0-alpha.3",
|
|
59
|
+
"@elliemae/ds-time-picker": "2.3.0-alpha.3",
|
|
60
|
+
"@elliemae/ds-utilities": "2.3.0-alpha.3",
|
|
61
61
|
"lodash": "~4.17.21",
|
|
62
62
|
"moment": "~2.29.1",
|
|
63
63
|
"prop-types": "~15.7.2",
|
|
@@ -161,5 +161,5 @@ declare const DateTimePickerWithSchema: {
|
|
|
161
161
|
propTypes: unknown;
|
|
162
162
|
toTypescript: () => import("react-desc").TypescriptSchema;
|
|
163
163
|
};
|
|
164
|
-
export { DateTimePickerWithSchema };
|
|
164
|
+
export { DateTimePickerWithSchema, DSDateTimePicker };
|
|
165
165
|
export default DSDateTimePicker;
|
package/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default, DateTimePickerWithSchema } from './DSDateTimePicker';
|
|
1
|
+
export { default, DSDateTimePicker, DateTimePickerWithSchema } from './DSDateTimePicker';
|