@elliemae/ds-time-picker 2.2.0-alpha.2 → 2.2.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/cjs/DSTimePicker.js +115 -100
  2. package/cjs/DSTimePickerMenu.js +33 -46
  3. package/cjs/PickerPanel.js +254 -151
  4. package/cjs/TimePickerDropdown.js +52 -73
  5. package/cjs/TimePickerImpl.js +138 -146
  6. package/cjs/TimePickerMenu.js +209 -138
  7. package/cjs/index.js +17 -40
  8. package/cjs/moveElementOnScroll.js +39 -57
  9. package/cjs/utils.js +24 -57
  10. package/esm/DSTimePicker.js +105 -71
  11. package/esm/DSTimePickerMenu.js +22 -17
  12. package/esm/PickerPanel.js +242 -120
  13. package/esm/TimePickerDropdown.js +44 -44
  14. package/esm/TimePickerImpl.js +117 -106
  15. package/esm/TimePickerMenu.js +191 -102
  16. package/esm/index.js +4 -11
  17. package/esm/moveElementOnScroll.js +34 -28
  18. package/esm/utils.js +17 -28
  19. package/package.json +7 -7
  20. package/types/PickerPanel.d.ts +0 -1
  21. package/types/TimePickerDropdown.d.ts +0 -1
  22. package/types/TimePickerImpl.d.ts +0 -1
  23. package/cjs/DSTimePicker.js.map +0 -7
  24. package/cjs/DSTimePickerMenu.js.map +0 -7
  25. package/cjs/PickerPanel.js.map +0 -7
  26. package/cjs/TimePickerDropdown.js.map +0 -7
  27. package/cjs/TimePickerImpl.js.map +0 -7
  28. package/cjs/TimePickerMenu.js.map +0 -7
  29. package/cjs/index.js.map +0 -7
  30. package/cjs/moveElementOnScroll.js.map +0 -7
  31. package/cjs/utils.js.map +0 -7
  32. package/esm/DSTimePicker.js.map +0 -7
  33. package/esm/DSTimePickerMenu.js.map +0 -7
  34. package/esm/PickerPanel.js.map +0 -7
  35. package/esm/TimePickerDropdown.js.map +0 -7
  36. package/esm/TimePickerImpl.js.map +0 -7
  37. package/esm/TimePickerMenu.js.map +0 -7
  38. package/esm/index.js.map +0 -7
  39. package/esm/moveElementOnScroll.js.map +0 -7
  40. package/esm/utils.js.map +0 -7
@@ -1,154 +1,165 @@
1
- import * as React from "react";
2
- import React2, { useState, useEffect, useRef } from "react";
3
- import PropTypes from "prop-types";
4
- import moment from "moment";
5
- import memoizeOne from "memoize-one";
6
- import { getVisibleTimeByFormat } from "@elliemae/ds-utilities";
7
- import { aggregatedClasses, convertPropToCssClassName } from "@elliemae/ds-classnames";
8
- import { DSInput, DSInputGroup, TimeInputImpl } from "@elliemae/ds-form";
9
- import { TimePickerMenu } from "./TimePickerMenu";
10
- import { TimePickerDropdown } from "./TimePickerDropdown";
11
- import { convertTimeString } from "./utils";
12
- const blockName = "time-picker";
13
- const TimePickerContainer = aggregatedClasses(DSInputGroup)(blockName, null, ({ isMenuOpened }) => ({
14
- isMenuOpened
15
- }));
16
- const TimePickerImpl = ({
17
- value,
18
- onChange,
19
- onOpen,
20
- format,
21
- disabled,
22
- hasHeader,
23
- hasHeaderDisplay,
24
- className,
25
- containerProps,
26
- placement,
27
- zIndex,
28
- disabledTimes,
29
- minutesInterval
30
- }) => {
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';
6
+ import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
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';
11
+ import moment from 'moment';
12
+ import memoizeOne from 'memoize-one';
13
+ import { getVisibleTimeByFormat } from '@elliemae/ds-utilities';
14
+ import { aggregatedClasses, convertPropToCssClassName } from '@elliemae/ds-classnames';
15
+ import { DSInputGroup, DSInput, TimeInputImpl } from '@elliemae/ds-form';
16
+ import { TimePickerMenu } from './TimePickerMenu.js';
17
+ import TimePickerDropdown from './TimePickerDropdown.js';
18
+ import { convertTimeString } from './utils.js';
19
+ import { jsx } from 'react/jsx-runtime';
20
+
21
+ const _excluded = ["onChange"];
22
+
23
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : 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;
31
+ return {
32
+ isMenuOpened
33
+ };
34
+ });
35
+
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;
31
52
  const [time, setTime] = useState();
32
53
  const [isMenuOpened, setIsMenuOpened] = useState(false);
33
54
  const [focusedColumn, setFocusedColumn] = useState(null);
34
55
  const timePickerRef = useRef();
35
56
  useEffect(() => {
36
- if (moment(value).isValid())
37
- setTime(moment(value));
38
- else if (value === null)
39
- setTime(void 0);
57
+ if (moment(value).isValid()) setTime(moment(value));else if (value === null) setTime(undefined);
40
58
  }, [value]);
41
59
  useEffect(() => {
42
- window.addEventListener("click", handleClickOutside, false);
43
- return () => window.removeEventListener("click", handleClickOutside, false);
60
+ window.addEventListener('click', handleClickOutside, false);
61
+ return () => window.removeEventListener('click', handleClickOutside, false);
44
62
  }, []);
45
63
  useEffect(() => {
46
- window.addEventListener("keydown", handleKeyDown, false);
47
- return () => window.removeEventListener("keydown", handleKeyDown, false);
64
+ window.addEventListener('keydown', handleKeyDown, false);
65
+ return () => window.removeEventListener('keydown', handleKeyDown, false);
48
66
  }, []);
49
67
  useEffect(() => {
50
- if (isMenuOpened)
51
- handleChangeFocus();
68
+ if (isMenuOpened) handleChangeFocus();
52
69
  }, [isMenuOpened]);
70
+
53
71
  const handleClickOutside = () => {
54
- if (isMenuOpened)
55
- setIsMenuOpened(false);
72
+ if (isMenuOpened) setIsMenuOpened(false);
56
73
  };
57
- const handleKeyDown = (event) => {
58
- const { key } = event;
59
- const menuOpenKeys = ["Escape", " ", "Enter"];
60
- if (menuOpenKeys.includes(key))
61
- setIsMenuOpened(false);
74
+
75
+ const handleKeyDown = event => {
76
+ const {
77
+ key
78
+ } = event;
79
+ const menuOpenKeys = ['Escape', ' ', 'Enter'];
80
+ if (menuOpenKeys.includes(key)) setIsMenuOpened(false);
62
81
  };
82
+
63
83
  const handleChangeFocus = () => {
64
- const [firstColumn] = document.getElementsByClassName("em-ds-time-picker-panel");
84
+ const [firstColumn] = document.getElementsByClassName('em-ds-time-picker-panel');
85
+
65
86
  if (firstColumn && !focusedColumn) {
66
87
  setFocusedColumn(firstColumn);
67
88
  firstColumn.focus();
68
89
  }
69
90
  };
70
- const handlePickerChange = (newTime) => {
91
+
92
+ const handlePickerChange = newTime => {
71
93
  setTime(moment(newTime));
72
94
  onChange(moment(newTime));
73
95
  };
74
- const handleInputChange = (newTime) => {
96
+
97
+ const handleInputChange = newTime => {
75
98
  setTime(newTime);
76
99
  onChange(newTime);
77
100
  };
78
- const handleMenuOpen = (isOpen) => {
101
+
102
+ const handleMenuOpen = isOpen => {
79
103
  onOpen(isOpen);
80
104
  setIsMenuOpened(isOpen);
81
- if (!isOpen)
82
- setFocusedColumn(null);
105
+ if (!isOpen) setFocusedColumn(null);
83
106
  };
84
- const getVisibleTimePanels = memoizeOne((format2) => getVisibleTimeByFormat(format2));
107
+
108
+ const getVisibleTimePanels = memoizeOne(format => getVisibleTimeByFormat(format));
85
109
  const timePickerBlockName = convertPropToCssClassName(blockName);
86
110
  const visiblePanels = getVisibleTimePanels(format);
87
111
  const disabledTimeRange = disabledTimes && {
88
112
  from: convertTimeString(disabledTimes.from),
89
113
  to: convertTimeString(disabledTimes.to)
90
114
  };
91
- return /* @__PURE__ */ React2.createElement(TimePickerContainer, {
92
- className: `${className} variant-${!disabled ? "default" : "disabled"}`,
93
- containerProps,
94
- disabled,
95
- rightAddon: /* @__PURE__ */ React2.createElement(TimePickerDropdown, {
115
+ return /*#__PURE__*/_jsx(TimePickerContainer, {
116
+ className: "".concat(className, " variant-").concat(!disabled ? 'default' : 'disabled'),
117
+ containerProps: containerProps,
118
+ disabled: disabled,
119
+ rightAddon: /*#__PURE__*/_jsx(TimePickerDropdown, {
96
120
  blockName: timePickerBlockName,
97
- disabled,
121
+ disabled: disabled,
98
122
  isOpen: isMenuOpened,
99
- zIndex,
100
- placement,
123
+ zIndex: zIndex,
124
+ placement: placement,
101
125
  onOpen: handleMenuOpen,
102
- onClick: (e) => {
126
+ onClick: e => {
103
127
  e.preventDefault();
104
128
  handleMenuOpen(!isMenuOpened);
105
129
  },
106
- menu: /* @__PURE__ */ React2.createElement("div", {
107
- ref: timePickerRef
108
- }, /* @__PURE__ */ React2.createElement(TimePickerMenu, {
109
- disabled,
110
- disabledTimes: disabledTimeRange,
111
- format,
112
- hasHeader,
113
- hasHeaderDisplay,
114
- onTimeChange: handlePickerChange,
115
- minutesInterval,
116
- time,
117
- ...visiblePanels
118
- }))
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
+ })
119
143
  })
120
- }, /* @__PURE__ */ React2.createElement(DSInput, {
121
- customInputType: ({ onChange: handleChange, ...restInputProps }) => /* @__PURE__ */ React2.createElement(TimeInputImpl, {
122
- clearable: true,
123
- disabled,
124
- format,
125
- onChange: handleChange,
126
- ...restInputProps
127
- }),
144
+ }, void 0, /*#__PURE__*/_jsx(DSInput, {
145
+ customInputType: _ref3 => {
146
+ let {
147
+ onChange: handleChange
148
+ } = _ref3,
149
+ restInputProps = _objectWithoutProperties(_ref3, _excluded);
150
+
151
+ return /*#__PURE__*/jsx(TimeInputImpl, _objectSpread({
152
+ clearable: true,
153
+ disabled: disabled,
154
+ format: format,
155
+ onChange: handleChange
156
+ }, restInputProps));
157
+ },
128
158
  isShowElipsisActive: false,
129
- disabled,
159
+ disabled: disabled,
130
160
  onChange: handleInputChange,
131
161
  value: time
132
162
  }));
133
163
  };
134
- TimePickerImpl.propTypes = {
135
- value: PropTypes.instanceOf(Date, moment),
136
- onChange: PropTypes.func,
137
- onOpen: PropTypes.func,
138
- format: PropTypes.string,
139
- disabled: PropTypes.bool,
140
- hasHeader: PropTypes.bool,
141
- hasHeaderDisplay: PropTypes.bool,
142
- className: PropTypes.string,
143
- containerProps: PropTypes.object,
144
- placement: PropTypes.string,
145
- zIndex: PropTypes.number,
146
- disabledTimes: PropTypes.object,
147
- minutesInterval: PropTypes.number
148
- };
149
- var TimePickerImpl_default = TimePickerImpl;
150
- export {
151
- TimePickerImpl,
152
- TimePickerImpl_default as default
153
- };
154
- //# sourceMappingURL=TimePickerImpl.js.map
164
+
165
+ export { TimePickerImpl as default };
@@ -1,189 +1,292 @@
1
- import * as React from "react";
2
- import React2, { Component } from "react";
3
- import PropTypes from "prop-types";
4
- import { aggregatedClasses } from "@elliemae/ds-classnames";
5
- import moment from "moment";
6
- import { range, addLeadingZeros } from "@elliemae/ds-utilities";
7
- import { isAM } from "./utils";
8
- import { PickerPanel } from "./PickerPanel";
9
- const blockName = "time-picker-menu";
10
- const TimePickerContainer = aggregatedClasses("div")(blockName);
11
- const TimePickerHeader = aggregatedClasses("div")(blockName, "header");
12
- const TimePickerPanelContainer = aggregatedClasses("div")(blockName, "panel-container");
13
- const generateOption = (format) => (option) => ({
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';
6
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
7
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
8
+ import 'core-js/modules/esnext.async-iterator.map.js';
9
+ import 'core-js/modules/esnext.iterator.map.js';
10
+ import { Component } from 'react';
11
+ import { aggregatedClasses } from '@elliemae/ds-classnames';
12
+ import moment from 'moment';
13
+ import { range, addLeadingZeros } from '@elliemae/ds-utilities';
14
+ import { isAM } from './utils.js';
15
+ import PickerPanel from './PickerPanel.js';
16
+
17
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
18
+
19
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
20
+ const blockName = 'time-picker-menu';
21
+ const TimePickerContainer = aggregatedClasses('div')(blockName);
22
+ const TimePickerHeader = aggregatedClasses('div')(blockName, 'header');
23
+ const TimePickerPanelContainer = aggregatedClasses('div')(blockName, 'panel-container');
24
+
25
+ const generateOption = format => option => ({
14
26
  value: option,
15
- label: typeof format === "function" ? format(option) : option
27
+ label: typeof format === 'function' ? format(option) : option
16
28
  });
29
+
17
30
  class TimePickerMenu extends Component {
18
31
  constructor(props) {
19
32
  super(props);
33
+
20
34
  this.renderHeader = () => {
21
- const { time } = this.state;
22
- return /* @__PURE__ */ React2.createElement(TimePickerHeader, null, time.format("hh:mma"));
35
+ const {
36
+ time
37
+ } = this.state;
38
+ return /*#__PURE__*/_jsx(TimePickerHeader, {}, void 0, time.format('hh:mma'));
23
39
  };
40
+
24
41
  this.state = {
25
- time: moment(props.time || "", props.format) || moment()
42
+ time: moment(props.time || '', props.format) || moment()
26
43
  };
44
+ this.handleHoursChange = this.handleHoursChange.bind(this);
45
+ this.handleMinuteChange = this.handleMinuteChange.bind(this);
46
+ this.handleSecondsChange = this.handleSecondsChange.bind(this);
47
+ this.handleAMPMChange = this.handleAMPMChange.bind(this);
27
48
  }
49
+
28
50
  static getDerivedStateFromProps(props, state) {
29
51
  if (props.time) {
30
- return { ...state, time: moment(props.time) };
52
+ return _objectSpread(_objectSpread({}, state), {}, {
53
+ time: moment(props.time)
54
+ });
31
55
  }
32
- return { ...state, time: void 0 };
56
+
57
+ return _objectSpread(_objectSpread({}, state), {}, {
58
+ time: undefined
59
+ });
33
60
  }
61
+
34
62
  componentDidMount() {
35
- const { time } = this.state;
36
- this.setState({ time });
63
+ const {
64
+ time
65
+ } = this.state;
66
+ this.setState({
67
+ time
68
+ });
37
69
  }
70
+
38
71
  handleMinuteChange(value) {
39
- const { time } = this.state;
72
+ const {
73
+ time
74
+ } = this.state;
40
75
  this.updateTime(time.minute(value));
41
76
  }
77
+
42
78
  handleHoursChange(value) {
43
- const { time } = this.state;
44
- const { use12Hours } = this.props;
79
+ const {
80
+ time
81
+ } = this.state;
82
+ const {
83
+ use12Hours
84
+ } = this.props;
45
85
  let nextHour = value;
86
+
46
87
  if (use12Hours) {
47
88
  if (!isAM(time)) {
48
89
  nextHour = value % 12 + 12;
49
90
  }
50
91
  }
92
+
51
93
  this.updateTime(time.hour(nextHour));
52
94
  }
95
+
53
96
  handleSecondsChange(value) {
54
- const { time } = this.state;
97
+ const {
98
+ time
99
+ } = this.state;
55
100
  this.updateTime(time.second(value));
56
101
  }
102
+
57
103
  handleAMPMChange(value) {
58
- const { time } = this.state;
104
+ const {
105
+ time
106
+ } = this.state;
59
107
  const hour = time.hour();
60
- const nextHour = value.toLowerCase() === "am" ? hour % 12 : hour % 12 + 12;
108
+ const nextHour = value.toLowerCase() === 'am' ? hour % 12 : hour % 12 + 12;
61
109
  this.updateTime(time.hour(nextHour));
62
110
  }
111
+
63
112
  updateTime(time) {
64
- const { onTimeChange } = this.props;
113
+ const {
114
+ onTimeChange
115
+ } = this.props;
65
116
  onTimeChange(time);
66
- this.setState({ time });
117
+ this.setState({
118
+ time
119
+ });
67
120
  }
121
+
68
122
  renderHoursPanel() {
69
- const { time } = this.state;
70
- const { showHours, use12Hours, format, hasHeader, disabledTimes } = this.props;
71
- if (!showHours)
72
- return null;
73
- const hour = time.hour();
123
+ const {
124
+ time
125
+ } = this.state;
126
+ const {
127
+ showHours,
128
+ use12Hours,
129
+ format,
130
+ hasHeader,
131
+ disabledTimes
132
+ } = this.props;
133
+ if (!showHours) return null;
134
+ const hour = time.hour(); // in 24 format
135
+
74
136
  let selectedHour = use12Hours ? hour % 12 || 12 : hour;
137
+
75
138
  if (disabledTimes) {
76
- const { from, to } = disabledTimes;
139
+ const {
140
+ from,
141
+ to
142
+ } = disabledTimes;
143
+
77
144
  if (hour > from.hour && hour < to.hour) {
78
145
  if (to.hour < 24) {
79
146
  const toFormatted = to.hour % 12 || 12;
80
- if (selectedHour !== toFormatted)
81
- this.handleHoursChange(toFormatted);
147
+ if (selectedHour !== toFormatted) this.handleHoursChange(toFormatted);
82
148
  selectedHour = toFormatted;
83
149
  } else if (from) {
84
150
  selectedHour = (from.hour - 1) % 12 || 12;
85
151
  }
86
152
  }
87
153
  }
88
- const meridiem = hour >= 12 ? "PM" : "AM";
89
- const withLeadingZeros = format.indexOf("hh") > -1;
154
+
155
+ const meridiem = hour >= 12 ? 'PM' : 'AM';
156
+ const withLeadingZeros = format.indexOf('hh') > -1;
90
157
  const rangeHours = use12Hours ? range(1, 13) : range(24);
91
158
  const hoursOptions = rangeHours.map(generateOption(withLeadingZeros && addLeadingZeros(2)));
92
- return /* @__PURE__ */ React2.createElement(PickerPanel, {
159
+ return /*#__PURE__*/_jsx(PickerPanel, {
93
160
  type: "hour",
94
- time,
95
- meridiem,
96
- hasHeader,
161
+ time: time,
162
+ meridiem: meridiem,
163
+ hasHeader: hasHeader,
97
164
  header: "H",
98
165
  onChange: this.handleHoursChange,
99
166
  options: hoursOptions,
100
167
  selected: selectedHour,
101
- disabledTimes
168
+ disabledTimes: disabledTimes
102
169
  });
103
170
  }
171
+
104
172
  renderMinutesPanel() {
105
- const { time } = this.state;
106
- const { showMinutes, format, hasHeader, disabledTimes, minutesInterval } = this.props;
107
- if (!showMinutes)
108
- return null;
109
- const withLeadingZeros = format.indexOf("mm") > -1;
173
+ const {
174
+ time
175
+ } = this.state;
176
+ const {
177
+ showMinutes,
178
+ format,
179
+ hasHeader,
180
+ disabledTimes,
181
+ minutesInterval
182
+ } = this.props;
183
+ if (!showMinutes) return null;
184
+ const withLeadingZeros = format.indexOf('mm') > -1;
110
185
  const rangeMinutes = range(0, 60, minutesInterval).map(generateOption(withLeadingZeros && addLeadingZeros(2)));
111
186
  let selectedMinute = time.minute();
112
187
  const selectedHour = time.hour();
188
+
113
189
  if (disabledTimes) {
114
- const { from, to } = disabledTimes;
190
+ const {
191
+ from,
192
+ to
193
+ } = disabledTimes;
194
+
115
195
  if (selectedHour <= to.hour && selectedHour > from.hour) {
116
196
  if (to) {
117
- if (selectedMinute < to.min)
118
- this.handleMinuteChange(to.min);
197
+ if (selectedMinute < to.min) this.handleMinuteChange(to.min);
119
198
  } else if (from) {
120
- if (selectedMinute > from.min)
121
- this.handleMinuteChange(from.min - 1);
199
+ if (selectedMinute > from.min) this.handleMinuteChange(from.min - 1);
122
200
  }
123
201
  } else {
124
202
  selectedMinute = time.minute();
125
203
  }
126
204
  }
127
- return /* @__PURE__ */ React2.createElement(PickerPanel, {
205
+
206
+ return /*#__PURE__*/_jsx(PickerPanel, {
128
207
  type: "minutes",
129
- time,
130
- hasHeader,
208
+ time: time,
209
+ hasHeader: hasHeader,
131
210
  header: "M",
132
211
  onChange: this.handleMinuteChange,
133
212
  options: rangeMinutes,
134
213
  selected: selectedMinute,
135
- disabledTimes
214
+ disabledTimes: disabledTimes
136
215
  });
137
216
  }
217
+
138
218
  renderSecondsPanel() {
139
- const { time } = this.state;
140
- const { showSeconds, format, hasHeader } = this.props;
141
- if (!showSeconds)
142
- return null;
143
- const withLeadingZeros = format.indexOf("ss") > -1;
219
+ const {
220
+ time
221
+ } = this.state;
222
+ const {
223
+ showSeconds,
224
+ format,
225
+ hasHeader
226
+ } = this.props;
227
+ if (!showSeconds) return null;
228
+ const withLeadingZeros = format.indexOf('ss') > -1;
144
229
  const rangeSeconds = range(60).map(generateOption(withLeadingZeros && addLeadingZeros(2)));
145
- return /* @__PURE__ */ React2.createElement(PickerPanel, {
230
+ return /*#__PURE__*/_jsx(PickerPanel, {
146
231
  type: "seconds",
147
- hasHeader,
232
+ hasHeader: hasHeader,
148
233
  header: "S",
149
234
  onChange: this.handleSecondsChange,
150
235
  options: rangeSeconds,
151
236
  selected: time.second()
152
237
  });
153
238
  }
239
+
154
240
  renderAMPMPanel() {
155
- const { time } = this.state;
156
- const { use12Hours, hasHeader, disabledTimes } = this.props;
157
- if (!use12Hours)
158
- return null;
159
- let meridiemSelected = !isAM(time) ? "pm" : "am";
160
- if (disabledTimes && disabledTimes.to && meridiemSelected === "am") {
161
- meridiemSelected = disabledTimes.to.hour >= 12 ? "pm" : "am";
162
- if (meridiemSelected === "am" && time.hour() > 12) {
163
- this.handleAMPMChange("am");
241
+ const {
242
+ time
243
+ } = this.state;
244
+ const {
245
+ use12Hours,
246
+ hasHeader,
247
+ disabledTimes
248
+ } = this.props;
249
+ if (!use12Hours) return null;
250
+ let meridiemSelected = !isAM(time) ? 'pm' : 'am';
251
+
252
+ if (disabledTimes && disabledTimes.to && meridiemSelected === 'am') {
253
+ meridiemSelected = disabledTimes.to.hour >= 12 ? 'pm' : 'am';
254
+
255
+ if (meridiemSelected === 'am' && time.hour() > 12) {
256
+ this.handleAMPMChange('am');
164
257
  }
165
- if (meridiemSelected === "pm" && time.hour() <= 12) {
166
- this.handleAMPMChange("pm");
258
+
259
+ if (meridiemSelected === 'pm' && time.hour() <= 12) {
260
+ this.handleAMPMChange('pm');
167
261
  }
168
262
  }
169
- return /* @__PURE__ */ React2.createElement(PickerPanel, {
263
+
264
+ return /*#__PURE__*/_jsx(PickerPanel, {
170
265
  type: "meridiem",
171
- hasHeader,
266
+ hasHeader: hasHeader,
172
267
  header: "",
173
268
  onChange: this.handleAMPMChange,
174
- options: [
175
- { value: "am", label: "am" },
176
- { value: "pm", label: "pm" }
177
- ],
269
+ options: [{
270
+ value: 'am',
271
+ label: 'am'
272
+ }, {
273
+ value: 'pm',
274
+ label: 'pm'
275
+ }],
178
276
  selected: meridiemSelected,
179
- disabledTimes
277
+ disabledTimes: disabledTimes
180
278
  });
181
279
  }
280
+
182
281
  render() {
183
- const { hasHeaderDisplay } = this.props;
184
- return /* @__PURE__ */ React2.createElement(TimePickerContainer, null, hasHeaderDisplay && this.renderHeader(), /* @__PURE__ */ React2.createElement(TimePickerPanelContainer, null, this.renderHoursPanel(), this.renderMinutesPanel(), this.renderSecondsPanel(), this.renderAMPMPanel()));
282
+ const {
283
+ hasHeaderDisplay
284
+ } = this.props;
285
+ return /*#__PURE__*/_jsx(TimePickerContainer, {}, void 0, hasHeaderDisplay && this.renderHeader(), /*#__PURE__*/_jsx(TimePickerPanelContainer, {}, void 0, this.renderHoursPanel(), this.renderMinutesPanel(), this.renderSecondsPanel(), this.renderAMPMPanel()));
185
286
  }
287
+
186
288
  }
289
+
187
290
  TimePickerMenu.defaultProps = {
188
291
  time: moment(),
189
292
  hasHeader: false,
@@ -191,22 +294,8 @@ TimePickerMenu.defaultProps = {
191
294
  showSeconds: true,
192
295
  showMinutes: true,
193
296
  showHours: true,
194
- disabledTimes: void 0,
297
+ disabledTimes: undefined,
195
298
  onTimeChange: () => null
196
299
  };
197
- TimePickerMenu.propTypes = {
198
- time: PropTypes.instanceOf(moment),
199
- hasHeader: PropTypes.bool,
200
- use12Hours: PropTypes.bool,
201
- showSeconds: PropTypes.bool,
202
- showMinutes: PropTypes.bool,
203
- showHours: PropTypes.bool,
204
- onTimeChange: PropTypes.func,
205
- disabledTimes: PropTypes.object
206
- };
207
- var TimePickerMenu_default = TimePickerMenu;
208
- export {
209
- TimePickerMenu,
210
- TimePickerMenu_default as default
211
- };
212
- //# sourceMappingURL=TimePickerMenu.js.map
300
+
301
+ export { TimePickerMenu, TimePickerMenu as default };