@elliemae/ds-time-picker 1.60.0 → 2.0.0-alpha.12
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/DSTimePicker.js +28 -71
- package/cjs/DSTimePickerMenu.js +17 -27
- package/cjs/PickerPanel.js +323 -340
- package/cjs/TimePickerDropdown.js +19 -29
- package/cjs/TimePickerImpl.js +89 -124
- package/cjs/TimePickerMenu.js +257 -295
- package/cjs/index.js +1 -30
- package/cjs/moveElementOnScroll.js +19 -28
- package/cjs/utils.js +14 -19
- package/esm/DSTimePicker.js +27 -69
- package/esm/DSTimePickerMenu.js +14 -25
- package/esm/PickerPanel.js +321 -330
- package/esm/TimePickerDropdown.js +18 -27
- package/esm/TimePickerImpl.js +84 -117
- package/esm/TimePickerMenu.js +254 -285
- package/esm/index.js +0 -29
- package/esm/moveElementOnScroll.js +18 -27
- package/esm/utils.js +14 -19
- package/package.json +66 -17
- package/types/DSTimePicker.d.ts +181 -0
- package/types/DSTimePickerMenu.d.ts +4 -0
- package/types/PickerPanel.d.ts +24 -0
- package/types/TimePickerDropdown.d.ts +25 -0
- package/types/TimePickerImpl.d.ts +35 -0
- package/types/TimePickerMenu.d.ts +19 -0
- package/types/index.d.ts +5 -0
- package/types/moveElementOnScroll.d.ts +13 -0
- package/types/utils.d.ts +8 -0
- package/DSTimePicker/package.json +0 -10
- package/DSTimePickerMenu/package.json +0 -10
- package/PickerPanel/package.json +0 -10
- package/TimePickerDropdown/package.json +0 -10
- package/TimePickerImpl/package.json +0 -10
- package/TimePickerMenu/package.json +0 -10
- package/cjs/DSTimePicker.js.map +0 -1
- package/cjs/DSTimePickerMenu.js.map +0 -1
- package/cjs/PickerPanel.js.map +0 -1
- package/cjs/TimePickerDropdown.js.map +0 -1
- package/cjs/TimePickerImpl.js.map +0 -1
- package/cjs/TimePickerMenu.js.map +0 -1
- package/cjs/index.js.map +0 -1
- package/cjs/moveElementOnScroll.js.map +0 -1
- package/cjs/utils.js.map +0 -1
- package/esm/DSTimePicker.js.map +0 -1
- package/esm/DSTimePickerMenu.js.map +0 -1
- package/esm/PickerPanel.js.map +0 -1
- package/esm/TimePickerDropdown.js.map +0 -1
- package/esm/TimePickerImpl.js.map +0 -1
- package/esm/TimePickerMenu.js.map +0 -1
- package/esm/index.js.map +0 -1
- package/esm/moveElementOnScroll.js.map +0 -1
- package/esm/utils.js.map +0 -1
- package/moveElementOnScroll/package.json +0 -10
- package/utils/package.json +0 -10
|
@@ -1,20 +1,23 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import _jsx from '@babel/runtime/helpers/esm/jsx';
|
|
2
|
+
import 'react';
|
|
3
3
|
import { RecentDocuments } from '@elliemae/ds-icons';
|
|
4
4
|
import DSButton from '@elliemae/ds-button';
|
|
5
5
|
import DSPopper from '@elliemae/ds-popper';
|
|
6
6
|
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
7
|
+
var _RecentDocuments;
|
|
8
|
+
|
|
9
|
+
const TimePickerDropdown = _ref => {
|
|
10
|
+
let {
|
|
11
|
+
disabled = false,
|
|
12
|
+
onClick,
|
|
13
|
+
onOpen,
|
|
14
|
+
isOpen,
|
|
15
|
+
menu,
|
|
16
|
+
zIndex,
|
|
17
|
+
blockName,
|
|
18
|
+
placement
|
|
19
|
+
} = _ref;
|
|
20
|
+
return /*#__PURE__*/_jsx(DSPopper, {
|
|
18
21
|
blockName: blockName,
|
|
19
22
|
placement: placement,
|
|
20
23
|
contentComponent: menu,
|
|
@@ -28,10 +31,10 @@ var TimePickerDropdown = function TimePickerDropdown(_ref) {
|
|
|
28
31
|
}
|
|
29
32
|
},
|
|
30
33
|
showArrow: false,
|
|
31
|
-
triggerComponent: /*#__PURE__*/
|
|
34
|
+
triggerComponent: /*#__PURE__*/_jsx(DSButton, {
|
|
32
35
|
buttonType: "secondary",
|
|
33
36
|
disabled: disabled,
|
|
34
|
-
icon: /*#__PURE__*/
|
|
37
|
+
icon: _RecentDocuments || (_RecentDocuments = /*#__PURE__*/_jsx(RecentDocuments, {})),
|
|
35
38
|
iconSize: "s",
|
|
36
39
|
onClick: onClick
|
|
37
40
|
}),
|
|
@@ -39,16 +42,4 @@ var TimePickerDropdown = function TimePickerDropdown(_ref) {
|
|
|
39
42
|
});
|
|
40
43
|
};
|
|
41
44
|
|
|
42
|
-
TimePickerDropdown.propTypes = {
|
|
43
|
-
onClick: PropTypes.func,
|
|
44
|
-
onOpen: PropTypes.func,
|
|
45
|
-
disabled: PropTypes.bool,
|
|
46
|
-
isOpen: PropTypes.bool,
|
|
47
|
-
menu: PropTypes.element,
|
|
48
|
-
blockName: PropTypes.string,
|
|
49
|
-
placement: PropTypes.string,
|
|
50
|
-
zIndex: PropTypes.number
|
|
51
|
-
};
|
|
52
|
-
|
|
53
45
|
export { TimePickerDropdown as default };
|
|
54
|
-
//# sourceMappingURL=TimePickerDropdown.js.map
|
package/esm/TimePickerImpl.js
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
import 'core-js/modules/esnext.async-iterator.filter.js';
|
|
2
|
+
import 'core-js/modules/esnext.iterator.constructor.js';
|
|
3
|
+
import 'core-js/modules/esnext.iterator.filter.js';
|
|
4
|
+
import 'core-js/modules/esnext.async-iterator.for-each.js';
|
|
5
|
+
import 'core-js/modules/esnext.iterator.for-each.js';
|
|
1
6
|
import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
7
|
+
import _jsx from '@babel/runtime/helpers/esm/jsx';
|
|
8
|
+
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
9
|
+
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
10
|
+
import { useState, useRef, useEffect } from 'react';
|
|
6
11
|
import moment from 'moment';
|
|
7
12
|
import memoizeOne from 'memoize-one';
|
|
8
13
|
import { getVisibleTimeByFormat } from '@elliemae/ds-utilities';
|
|
@@ -11,94 +16,72 @@ import { DSInputGroup, DSInput, TimeInputImpl } from '@elliemae/ds-form';
|
|
|
11
16
|
import { TimePickerMenu } from './TimePickerMenu.js';
|
|
12
17
|
import TimePickerDropdown from './TimePickerDropdown.js';
|
|
13
18
|
import { convertTimeString } from './utils.js';
|
|
14
|
-
import '
|
|
15
|
-
import '@babel/runtime/helpers/esm/classCallCheck';
|
|
16
|
-
import '@babel/runtime/helpers/esm/createClass';
|
|
17
|
-
import '@babel/runtime/helpers/esm/assertThisInitialized';
|
|
18
|
-
import '@babel/runtime/helpers/esm/inherits';
|
|
19
|
-
import '@babel/runtime/helpers/esm/possibleConstructorReturn';
|
|
20
|
-
import '@babel/runtime/helpers/esm/getPrototypeOf';
|
|
21
|
-
import './PickerPanel.js';
|
|
22
|
-
import '@babel/runtime/helpers/esm/toArray';
|
|
23
|
-
import 'lodash';
|
|
24
|
-
import '@elliemae/ds-icons';
|
|
25
|
-
import '@elliemae/ds-button';
|
|
26
|
-
import './moveElementOnScroll.js';
|
|
27
|
-
import '@elliemae/ds-popper';
|
|
19
|
+
import { jsx } from 'react/jsx-runtime';
|
|
28
20
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
var
|
|
32
|
-
|
|
21
|
+
const _excluded = ["onChange"];
|
|
22
|
+
|
|
23
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
24
|
+
|
|
25
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
26
|
+
const blockName = 'time-picker';
|
|
27
|
+
const TimePickerContainer = aggregatedClasses(DSInputGroup)(blockName, null, _ref => {
|
|
28
|
+
let {
|
|
29
|
+
isMenuOpened
|
|
30
|
+
} = _ref;
|
|
33
31
|
return {
|
|
34
|
-
isMenuOpened
|
|
32
|
+
isMenuOpened
|
|
35
33
|
};
|
|
36
34
|
});
|
|
37
35
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
60
|
-
isMenuOpened = _useState4[0],
|
|
61
|
-
setIsMenuOpened = _useState4[1];
|
|
62
|
-
|
|
63
|
-
var _useState5 = useState(null),
|
|
64
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
65
|
-
focusedColumn = _useState6[0],
|
|
66
|
-
setFocusedColumn = _useState6[1];
|
|
67
|
-
|
|
68
|
-
var timePickerRef = useRef();
|
|
69
|
-
useEffect(function () {
|
|
36
|
+
const TimePickerImpl = _ref2 => {
|
|
37
|
+
let {
|
|
38
|
+
value,
|
|
39
|
+
onChange,
|
|
40
|
+
onOpen,
|
|
41
|
+
format,
|
|
42
|
+
disabled,
|
|
43
|
+
hasHeader,
|
|
44
|
+
hasHeaderDisplay,
|
|
45
|
+
className,
|
|
46
|
+
containerProps,
|
|
47
|
+
placement,
|
|
48
|
+
zIndex,
|
|
49
|
+
disabledTimes,
|
|
50
|
+
minutesInterval
|
|
51
|
+
} = _ref2;
|
|
52
|
+
const [time, setTime] = useState();
|
|
53
|
+
const [isMenuOpened, setIsMenuOpened] = useState(false);
|
|
54
|
+
const [focusedColumn, setFocusedColumn] = useState(null);
|
|
55
|
+
const timePickerRef = useRef();
|
|
56
|
+
useEffect(() => {
|
|
70
57
|
if (moment(value).isValid()) setTime(moment(value));else if (value === null) setTime(undefined);
|
|
71
58
|
}, [value]);
|
|
72
|
-
useEffect(
|
|
59
|
+
useEffect(() => {
|
|
73
60
|
window.addEventListener('click', handleClickOutside, false);
|
|
74
|
-
return
|
|
75
|
-
return window.removeEventListener('click', handleClickOutside, false);
|
|
76
|
-
};
|
|
61
|
+
return () => window.removeEventListener('click', handleClickOutside, false);
|
|
77
62
|
}, []);
|
|
78
|
-
useEffect(
|
|
63
|
+
useEffect(() => {
|
|
79
64
|
window.addEventListener('keydown', handleKeyDown, false);
|
|
80
|
-
return
|
|
81
|
-
return window.removeEventListener('keydown', handleKeyDown, false);
|
|
82
|
-
};
|
|
65
|
+
return () => window.removeEventListener('keydown', handleKeyDown, false);
|
|
83
66
|
}, []);
|
|
84
|
-
useEffect(
|
|
67
|
+
useEffect(() => {
|
|
85
68
|
if (isMenuOpened) handleChangeFocus();
|
|
86
69
|
}, [isMenuOpened]);
|
|
87
70
|
|
|
88
|
-
|
|
71
|
+
const handleClickOutside = () => {
|
|
89
72
|
if (isMenuOpened) setIsMenuOpened(false);
|
|
90
73
|
};
|
|
91
74
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
75
|
+
const handleKeyDown = event => {
|
|
76
|
+
const {
|
|
77
|
+
key
|
|
78
|
+
} = event;
|
|
79
|
+
const menuOpenKeys = ['Escape', ' ', 'Enter'];
|
|
95
80
|
if (menuOpenKeys.includes(key)) setIsMenuOpened(false);
|
|
96
81
|
};
|
|
97
82
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
_document$getElements2 = _slicedToArray(_document$getElements, 1),
|
|
101
|
-
firstColumn = _document$getElements2[0];
|
|
83
|
+
const handleChangeFocus = () => {
|
|
84
|
+
const [firstColumn] = document.getElementsByClassName('em-ds-time-picker-panel');
|
|
102
85
|
|
|
103
86
|
if (firstColumn && !focusedColumn) {
|
|
104
87
|
setFocusedColumn(firstColumn);
|
|
@@ -106,65 +89,66 @@ var TimePickerImpl = function TimePickerImpl(_ref2) {
|
|
|
106
89
|
}
|
|
107
90
|
};
|
|
108
91
|
|
|
109
|
-
|
|
92
|
+
const handlePickerChange = newTime => {
|
|
110
93
|
setTime(moment(newTime));
|
|
111
94
|
onChange(moment(newTime));
|
|
112
95
|
};
|
|
113
96
|
|
|
114
|
-
|
|
97
|
+
const handleInputChange = newTime => {
|
|
115
98
|
setTime(newTime);
|
|
116
99
|
onChange(newTime);
|
|
117
100
|
};
|
|
118
101
|
|
|
119
|
-
|
|
102
|
+
const handleMenuOpen = isOpen => {
|
|
120
103
|
onOpen(isOpen);
|
|
121
104
|
setIsMenuOpened(isOpen);
|
|
122
105
|
if (!isOpen) setFocusedColumn(null);
|
|
123
106
|
};
|
|
124
107
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
var visiblePanels = getVisibleTimePanels(format);
|
|
130
|
-
var disabledTimeRange = disabledTimes && {
|
|
108
|
+
const getVisibleTimePanels = memoizeOne(format => getVisibleTimeByFormat(format));
|
|
109
|
+
const timePickerBlockName = convertPropToCssClassName(blockName);
|
|
110
|
+
const visiblePanels = getVisibleTimePanels(format);
|
|
111
|
+
const disabledTimeRange = disabledTimes && {
|
|
131
112
|
from: convertTimeString(disabledTimes.from),
|
|
132
113
|
to: convertTimeString(disabledTimes.to)
|
|
133
114
|
};
|
|
134
|
-
return /*#__PURE__*/
|
|
115
|
+
return /*#__PURE__*/_jsx(TimePickerContainer, {
|
|
135
116
|
className: "".concat(className, " variant-").concat(!disabled ? 'default' : 'disabled'),
|
|
136
117
|
containerProps: containerProps,
|
|
137
118
|
disabled: disabled,
|
|
138
|
-
rightAddon: /*#__PURE__*/
|
|
119
|
+
rightAddon: /*#__PURE__*/_jsx(TimePickerDropdown, {
|
|
139
120
|
blockName: timePickerBlockName,
|
|
140
121
|
disabled: disabled,
|
|
141
122
|
isOpen: isMenuOpened,
|
|
142
123
|
zIndex: zIndex,
|
|
143
124
|
placement: placement,
|
|
144
125
|
onOpen: handleMenuOpen,
|
|
145
|
-
onClick:
|
|
126
|
+
onClick: e => {
|
|
146
127
|
e.preventDefault();
|
|
147
128
|
handleMenuOpen(!isMenuOpened);
|
|
148
129
|
},
|
|
149
|
-
menu: /*#__PURE__*/
|
|
150
|
-
ref: timePickerRef
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
130
|
+
menu: /*#__PURE__*/jsx("div", {
|
|
131
|
+
ref: timePickerRef,
|
|
132
|
+
children: /*#__PURE__*/jsx(TimePickerMenu, _objectSpread({
|
|
133
|
+
disabled: disabled,
|
|
134
|
+
disabledTimes: disabledTimeRange,
|
|
135
|
+
format: format,
|
|
136
|
+
hasHeader: hasHeader,
|
|
137
|
+
hasHeaderDisplay: hasHeaderDisplay,
|
|
138
|
+
onTimeChange: handlePickerChange,
|
|
139
|
+
minutesInterval: minutesInterval,
|
|
140
|
+
time: time
|
|
141
|
+
}, visiblePanels))
|
|
142
|
+
})
|
|
161
143
|
})
|
|
162
|
-
}, /*#__PURE__*/
|
|
163
|
-
customInputType:
|
|
164
|
-
|
|
144
|
+
}, void 0, /*#__PURE__*/_jsx(DSInput, {
|
|
145
|
+
customInputType: _ref3 => {
|
|
146
|
+
let {
|
|
147
|
+
onChange: handleChange
|
|
148
|
+
} = _ref3,
|
|
165
149
|
restInputProps = _objectWithoutProperties(_ref3, _excluded);
|
|
166
150
|
|
|
167
|
-
return /*#__PURE__*/
|
|
151
|
+
return /*#__PURE__*/jsx(TimeInputImpl, _objectSpread({
|
|
168
152
|
clearable: true,
|
|
169
153
|
disabled: disabled,
|
|
170
154
|
format: format,
|
|
@@ -178,21 +162,4 @@ var TimePickerImpl = function TimePickerImpl(_ref2) {
|
|
|
178
162
|
}));
|
|
179
163
|
};
|
|
180
164
|
|
|
181
|
-
TimePickerImpl.propTypes = {
|
|
182
|
-
value: PropTypes.instanceOf(Date, moment),
|
|
183
|
-
onChange: PropTypes.func,
|
|
184
|
-
onOpen: PropTypes.func,
|
|
185
|
-
format: PropTypes.string,
|
|
186
|
-
disabled: PropTypes.bool,
|
|
187
|
-
hasHeader: PropTypes.bool,
|
|
188
|
-
hasHeaderDisplay: PropTypes.bool,
|
|
189
|
-
className: PropTypes.string,
|
|
190
|
-
containerProps: PropTypes.object,
|
|
191
|
-
placement: PropTypes.string,
|
|
192
|
-
zIndex: PropTypes.number,
|
|
193
|
-
disabledTimes: PropTypes.object,
|
|
194
|
-
minutesInterval: PropTypes.number
|
|
195
|
-
};
|
|
196
|
-
|
|
197
165
|
export { TimePickerImpl as default };
|
|
198
|
-
//# sourceMappingURL=TimePickerImpl.js.map
|