@elliemae/ds-time-picker 2.3.1 → 3.0.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.
Files changed (64) hide show
  1. package/dist/cjs/DSTimePicker.js +106 -0
  2. package/dist/cjs/DSTimePicker.js.map +7 -0
  3. package/dist/cjs/DSTimePickerMenu.js +60 -0
  4. package/dist/cjs/DSTimePickerMenu.js.map +7 -0
  5. package/dist/cjs/PickerPanel.js +313 -0
  6. package/dist/cjs/PickerPanel.js.map +7 -0
  7. package/dist/cjs/TimePickerDropdown.js +74 -0
  8. package/dist/cjs/TimePickerDropdown.js.map +7 -0
  9. package/dist/cjs/TimePickerImpl.js +210 -0
  10. package/dist/cjs/TimePickerImpl.js.map +7 -0
  11. package/dist/cjs/TimePickerMenu.js +258 -0
  12. package/dist/cjs/TimePickerMenu.js.map +7 -0
  13. package/dist/cjs/index.js +40 -0
  14. package/dist/cjs/index.js.map +7 -0
  15. package/dist/cjs/moveElementOnScroll.js +93 -0
  16. package/dist/cjs/moveElementOnScroll.js.map +7 -0
  17. package/dist/cjs/utils.js +71 -0
  18. package/dist/cjs/utils.js.map +7 -0
  19. package/dist/esm/DSTimePicker.js +77 -0
  20. package/dist/esm/DSTimePicker.js.map +7 -0
  21. package/dist/esm/DSTimePickerMenu.js +33 -0
  22. package/dist/esm/DSTimePickerMenu.js.map +7 -0
  23. package/dist/esm/PickerPanel.js +286 -0
  24. package/dist/esm/PickerPanel.js.map +7 -0
  25. package/dist/esm/TimePickerDropdown.js +45 -0
  26. package/dist/esm/TimePickerDropdown.js.map +7 -0
  27. package/dist/esm/TimePickerImpl.js +183 -0
  28. package/dist/esm/TimePickerImpl.js.map +7 -0
  29. package/dist/esm/TimePickerMenu.js +231 -0
  30. package/dist/esm/TimePickerMenu.js.map +7 -0
  31. package/dist/esm/index.js +11 -0
  32. package/dist/esm/index.js.map +7 -0
  33. package/dist/esm/moveElementOnScroll.js +64 -0
  34. package/dist/esm/moveElementOnScroll.js.map +7 -0
  35. package/dist/esm/utils.js +42 -0
  36. package/dist/esm/utils.js.map +7 -0
  37. package/package.json +46 -37
  38. package/cjs/DSTimePicker.js +0 -121
  39. package/cjs/DSTimePickerMenu.js +0 -35
  40. package/cjs/PickerPanel.js +0 -402
  41. package/cjs/TimePickerDropdown.js +0 -53
  42. package/cjs/TimePickerImpl.js +0 -175
  43. package/cjs/TimePickerMenu.js +0 -312
  44. package/cjs/index.js +0 -17
  45. package/cjs/moveElementOnScroll.js +0 -75
  46. package/cjs/utils.js +0 -38
  47. package/esm/DSTimePicker.js +0 -111
  48. package/esm/DSTimePickerMenu.js +0 -24
  49. package/esm/PickerPanel.js +0 -392
  50. package/esm/TimePickerDropdown.js +0 -45
  51. package/esm/TimePickerImpl.js +0 -165
  52. package/esm/TimePickerMenu.js +0 -301
  53. package/esm/index.js +0 -4
  54. package/esm/moveElementOnScroll.js +0 -70
  55. package/esm/utils.js +0 -31
  56. package/types/DSTimePicker.d.ts +0 -162
  57. package/types/DSTimePickerMenu.d.ts +0 -4
  58. package/types/PickerPanel.d.ts +0 -24
  59. package/types/TimePickerDropdown.d.ts +0 -25
  60. package/types/TimePickerImpl.d.ts +0 -35
  61. package/types/TimePickerMenu.d.ts +0 -19
  62. package/types/index.d.ts +0 -5
  63. package/types/moveElementOnScroll.d.ts +0 -13
  64. package/types/utils.d.ts +0 -8
@@ -1,53 +0,0 @@
1
- 'use strict';
2
-
3
- var _jsx = require('@babel/runtime/helpers/jsx');
4
- require('react');
5
- var dsIcons = require('@elliemae/ds-icons');
6
- var DSButton = require('@elliemae/ds-button');
7
- var DSPopper = require('@elliemae/ds-popper');
8
-
9
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
-
11
- var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
12
- var DSButton__default = /*#__PURE__*/_interopDefaultLegacy(DSButton);
13
- var DSPopper__default = /*#__PURE__*/_interopDefaultLegacy(DSPopper);
14
-
15
- var _RecentDocuments;
16
-
17
- const TimePickerDropdown = _ref => {
18
- let {
19
- disabled = false,
20
- onClick,
21
- onOpen,
22
- isOpen,
23
- menu,
24
- zIndex,
25
- blockName,
26
- placement
27
- } = _ref;
28
- return /*#__PURE__*/_jsx__default["default"](DSPopper__default["default"], {
29
- blockName: blockName,
30
- placement: placement,
31
- contentComponent: menu,
32
- isOpen: isOpen,
33
- onOpen: onOpen,
34
- modifiers: {
35
- preventOverflow: {
36
- enabled: true,
37
- padding: 0,
38
- boundariesElement: 'window'
39
- }
40
- },
41
- showArrow: false,
42
- triggerComponent: /*#__PURE__*/_jsx__default["default"](DSButton__default["default"], {
43
- buttonType: "secondary",
44
- disabled: disabled,
45
- icon: _RecentDocuments || (_RecentDocuments = /*#__PURE__*/_jsx__default["default"](dsIcons.RecentDocuments, {})),
46
- iconSize: "s",
47
- onClick: onClick
48
- }),
49
- zIndex: zIndex
50
- });
51
- };
52
-
53
- module.exports = TimePickerDropdown;
@@ -1,175 +0,0 @@
1
- 'use strict';
2
-
3
- var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
4
- var _jsx = require('@babel/runtime/helpers/jsx');
5
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
- require('core-js/modules/web.dom-collections.iterator.js');
7
- require('core-js/modules/esnext.async-iterator.filter.js');
8
- require('core-js/modules/esnext.iterator.constructor.js');
9
- require('core-js/modules/esnext.iterator.filter.js');
10
- require('core-js/modules/esnext.async-iterator.for-each.js');
11
- require('core-js/modules/esnext.iterator.for-each.js');
12
- var React = require('react');
13
- var moment = require('moment');
14
- var memoizeOne = require('memoize-one');
15
- var dsUtilities = require('@elliemae/ds-utilities');
16
- var dsClassnames = require('@elliemae/ds-classnames');
17
- var dsForm = require('@elliemae/ds-form');
18
- var TimePickerMenu = require('./TimePickerMenu.js');
19
- var TimePickerDropdown = require('./TimePickerDropdown.js');
20
- var utils = require('./utils.js');
21
- var jsxRuntime = require('react/jsx-runtime');
22
-
23
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
24
-
25
- var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
26
- var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
27
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
28
- var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
29
- var memoizeOne__default = /*#__PURE__*/_interopDefaultLegacy(memoizeOne);
30
-
31
- const _excluded = ["onChange"];
32
-
33
- 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; }
34
-
35
- 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__default["default"](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; }
36
- const blockName = 'time-picker';
37
- const TimePickerContainer = dsClassnames.aggregatedClasses(dsForm.DSInputGroup)(blockName, null, _ref => {
38
- let {
39
- isMenuOpened
40
- } = _ref;
41
- return {
42
- isMenuOpened
43
- };
44
- });
45
-
46
- const TimePickerImpl = _ref2 => {
47
- let {
48
- value,
49
- onChange,
50
- onOpen,
51
- format,
52
- disabled,
53
- hasHeader,
54
- hasHeaderDisplay,
55
- className,
56
- containerProps,
57
- placement,
58
- zIndex,
59
- disabledTimes,
60
- minutesInterval
61
- } = _ref2;
62
- const [time, setTime] = React.useState();
63
- const [isMenuOpened, setIsMenuOpened] = React.useState(false);
64
- const [focusedColumn, setFocusedColumn] = React.useState(null);
65
- const timePickerRef = React.useRef();
66
- React.useEffect(() => {
67
- if (moment__default["default"](value).isValid()) setTime(moment__default["default"](value));else if (value === null) setTime(undefined);
68
- }, [value]);
69
- React.useEffect(() => {
70
- window.addEventListener('click', handleClickOutside, false);
71
- return () => window.removeEventListener('click', handleClickOutside, false);
72
- }, []);
73
- React.useEffect(() => {
74
- window.addEventListener('keydown', handleKeyDown, false);
75
- return () => window.removeEventListener('keydown', handleKeyDown, false);
76
- }, []);
77
- React.useEffect(() => {
78
- if (isMenuOpened) handleChangeFocus();
79
- }, [isMenuOpened]);
80
-
81
- const handleClickOutside = () => {
82
- if (isMenuOpened) setIsMenuOpened(false);
83
- };
84
-
85
- const handleKeyDown = event => {
86
- const {
87
- key
88
- } = event;
89
- const menuOpenKeys = ['Escape', ' ', 'Enter'];
90
- if (menuOpenKeys.includes(key)) setIsMenuOpened(false);
91
- };
92
-
93
- const handleChangeFocus = () => {
94
- const [firstColumn] = document.getElementsByClassName('em-ds-time-picker-panel');
95
-
96
- if (firstColumn && !focusedColumn) {
97
- setFocusedColumn(firstColumn);
98
- firstColumn.focus();
99
- }
100
- };
101
-
102
- const handlePickerChange = newTime => {
103
- setTime(moment__default["default"](newTime));
104
- onChange(moment__default["default"](newTime));
105
- };
106
-
107
- const handleInputChange = newTime => {
108
- setTime(newTime);
109
- onChange(newTime);
110
- };
111
-
112
- const handleMenuOpen = isOpen => {
113
- onOpen(isOpen);
114
- setIsMenuOpened(isOpen);
115
- if (!isOpen) setFocusedColumn(null);
116
- };
117
-
118
- const getVisibleTimePanels = memoizeOne__default["default"](format => dsUtilities.getVisibleTimeByFormat(format));
119
- const timePickerBlockName = dsClassnames.convertPropToCssClassName(blockName);
120
- const visiblePanels = getVisibleTimePanels(format);
121
- const disabledTimeRange = disabledTimes && {
122
- from: utils.convertTimeString(disabledTimes.from),
123
- to: utils.convertTimeString(disabledTimes.to)
124
- };
125
- return /*#__PURE__*/_jsx__default["default"](TimePickerContainer, {
126
- className: "".concat(className, " variant-").concat(!disabled ? 'default' : 'disabled'),
127
- containerProps: containerProps,
128
- disabled: disabled,
129
- rightAddon: /*#__PURE__*/_jsx__default["default"](TimePickerDropdown, {
130
- blockName: timePickerBlockName,
131
- disabled: disabled,
132
- isOpen: isMenuOpened,
133
- zIndex: zIndex,
134
- placement: placement,
135
- onOpen: handleMenuOpen,
136
- onClick: e => {
137
- e.preventDefault();
138
- handleMenuOpen(!isMenuOpened);
139
- },
140
- menu: /*#__PURE__*/jsxRuntime.jsx("div", {
141
- ref: timePickerRef,
142
- children: /*#__PURE__*/jsxRuntime.jsx(TimePickerMenu.TimePickerMenu, _objectSpread({
143
- disabled: disabled,
144
- disabledTimes: disabledTimeRange,
145
- format: format,
146
- hasHeader: hasHeader,
147
- hasHeaderDisplay: hasHeaderDisplay,
148
- onTimeChange: handlePickerChange,
149
- minutesInterval: minutesInterval,
150
- time: time
151
- }, visiblePanels))
152
- })
153
- })
154
- }, void 0, /*#__PURE__*/_jsx__default["default"](dsForm.DSInput, {
155
- customInputType: _ref3 => {
156
- let {
157
- onChange: handleChange
158
- } = _ref3,
159
- restInputProps = _objectWithoutProperties__default["default"](_ref3, _excluded);
160
-
161
- return /*#__PURE__*/jsxRuntime.jsx(dsForm.TimeInputImpl, _objectSpread({
162
- clearable: true,
163
- disabled: disabled,
164
- format: format,
165
- onChange: handleChange
166
- }, restInputProps));
167
- },
168
- isShowElipsisActive: false,
169
- disabled: disabled,
170
- onChange: handleInputChange,
171
- value: time
172
- }));
173
- };
174
-
175
- module.exports = TimePickerImpl;
@@ -1,312 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
- var _jsx = require('@babel/runtime/helpers/jsx');
7
- require('core-js/modules/esnext.async-iterator.map.js');
8
- require('core-js/modules/esnext.iterator.map.js');
9
- require('core-js/modules/esnext.async-iterator.filter.js');
10
- require('core-js/modules/esnext.iterator.constructor.js');
11
- require('core-js/modules/esnext.iterator.filter.js');
12
- require('core-js/modules/esnext.async-iterator.for-each.js');
13
- require('core-js/modules/esnext.iterator.for-each.js');
14
- var React = require('react');
15
- var dsClassnames = require('@elliemae/ds-classnames');
16
- var moment = require('moment');
17
- var dsUtilities = require('@elliemae/ds-utilities');
18
- var utils = require('./utils.js');
19
- var PickerPanel = require('./PickerPanel.js');
20
-
21
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
22
-
23
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
24
- var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
25
- var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
26
-
27
- 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; }
28
-
29
- 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__default["default"](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; }
30
- const blockName = 'time-picker-menu';
31
- const TimePickerContainer = dsClassnames.aggregatedClasses('div')(blockName);
32
- const TimePickerHeader = dsClassnames.aggregatedClasses('div')(blockName, 'header');
33
- const TimePickerPanelContainer = dsClassnames.aggregatedClasses('div')(blockName, 'panel-container');
34
-
35
- const generateOption = format => option => ({
36
- value: option,
37
- label: typeof format === 'function' ? format(option) : option
38
- });
39
-
40
- class TimePickerMenu extends React.Component {
41
- constructor(props) {
42
- super(props);
43
-
44
- this.renderHeader = () => {
45
- const {
46
- time
47
- } = this.state;
48
- return /*#__PURE__*/_jsx__default["default"](TimePickerHeader, {}, void 0, time.format('hh:mma'));
49
- };
50
-
51
- this.state = {
52
- time: moment__default["default"](props.time || '', props.format) || moment__default["default"]()
53
- };
54
- this.handleHoursChange = this.handleHoursChange.bind(this);
55
- this.handleMinuteChange = this.handleMinuteChange.bind(this);
56
- this.handleSecondsChange = this.handleSecondsChange.bind(this);
57
- this.handleAMPMChange = this.handleAMPMChange.bind(this);
58
- }
59
-
60
- static getDerivedStateFromProps(props, state) {
61
- if (props.time) {
62
- return _objectSpread(_objectSpread({}, state), {}, {
63
- time: moment__default["default"](props.time)
64
- });
65
- }
66
-
67
- return _objectSpread(_objectSpread({}, state), {}, {
68
- time: undefined
69
- });
70
- }
71
-
72
- componentDidMount() {
73
- const {
74
- time
75
- } = this.state;
76
- this.setState({
77
- time
78
- });
79
- }
80
-
81
- handleMinuteChange(value) {
82
- const {
83
- time
84
- } = this.state;
85
- this.updateTime(time.minute(value));
86
- }
87
-
88
- handleHoursChange(value) {
89
- const {
90
- time
91
- } = this.state;
92
- const {
93
- use12Hours
94
- } = this.props;
95
- let nextHour = value;
96
-
97
- if (use12Hours) {
98
- if (!utils.isAM(time)) {
99
- nextHour = value % 12 + 12;
100
- }
101
- }
102
-
103
- this.updateTime(time.hour(nextHour));
104
- }
105
-
106
- handleSecondsChange(value) {
107
- const {
108
- time
109
- } = this.state;
110
- this.updateTime(time.second(value));
111
- }
112
-
113
- handleAMPMChange(value) {
114
- const {
115
- time
116
- } = this.state;
117
- const hour = time.hour();
118
- const nextHour = value.toLowerCase() === 'am' ? hour % 12 : hour % 12 + 12;
119
- this.updateTime(time.hour(nextHour));
120
- }
121
-
122
- updateTime(time) {
123
- const {
124
- onTimeChange
125
- } = this.props;
126
- onTimeChange(time);
127
- this.setState({
128
- time
129
- });
130
- }
131
-
132
- renderHoursPanel() {
133
- const {
134
- time
135
- } = this.state;
136
- const {
137
- showHours,
138
- use12Hours,
139
- format,
140
- hasHeader,
141
- disabledTimes
142
- } = this.props;
143
- if (!showHours) return null;
144
- const hour = time.hour(); // in 24 format
145
-
146
- let selectedHour = use12Hours ? hour % 12 || 12 : hour;
147
-
148
- if (disabledTimes) {
149
- const {
150
- from,
151
- to
152
- } = disabledTimes;
153
-
154
- if (hour > from.hour && hour < to.hour) {
155
- if (to.hour < 24) {
156
- const toFormatted = to.hour % 12 || 12;
157
- if (selectedHour !== toFormatted) this.handleHoursChange(toFormatted);
158
- selectedHour = toFormatted;
159
- } else if (from) {
160
- selectedHour = (from.hour - 1) % 12 || 12;
161
- }
162
- }
163
- }
164
-
165
- const meridiem = hour >= 12 ? 'PM' : 'AM';
166
- const withLeadingZeros = format.indexOf('hh') > -1;
167
- const rangeHours = use12Hours ? dsUtilities.range(1, 13) : dsUtilities.range(24);
168
- const hoursOptions = rangeHours.map(generateOption(withLeadingZeros && dsUtilities.addLeadingZeros(2)));
169
- return /*#__PURE__*/_jsx__default["default"](PickerPanel, {
170
- type: "hour",
171
- time: time,
172
- meridiem: meridiem,
173
- hasHeader: hasHeader,
174
- header: "H",
175
- onChange: this.handleHoursChange,
176
- options: hoursOptions,
177
- selected: selectedHour,
178
- disabledTimes: disabledTimes
179
- });
180
- }
181
-
182
- renderMinutesPanel() {
183
- const {
184
- time
185
- } = this.state;
186
- const {
187
- showMinutes,
188
- format,
189
- hasHeader,
190
- disabledTimes,
191
- minutesInterval
192
- } = this.props;
193
- if (!showMinutes) return null;
194
- const withLeadingZeros = format.indexOf('mm') > -1;
195
- const rangeMinutes = dsUtilities.range(0, 60, minutesInterval).map(generateOption(withLeadingZeros && dsUtilities.addLeadingZeros(2)));
196
- let selectedMinute = time.minute();
197
- const selectedHour = time.hour();
198
-
199
- if (disabledTimes) {
200
- const {
201
- from,
202
- to
203
- } = disabledTimes;
204
-
205
- if (selectedHour <= to.hour && selectedHour > from.hour) {
206
- if (to) {
207
- if (selectedMinute < to.min) this.handleMinuteChange(to.min);
208
- } else if (from) {
209
- if (selectedMinute > from.min) this.handleMinuteChange(from.min - 1);
210
- }
211
- } else {
212
- selectedMinute = time.minute();
213
- }
214
- }
215
-
216
- return /*#__PURE__*/_jsx__default["default"](PickerPanel, {
217
- type: "minutes",
218
- time: time,
219
- hasHeader: hasHeader,
220
- header: "M",
221
- onChange: this.handleMinuteChange,
222
- options: rangeMinutes,
223
- selected: selectedMinute,
224
- disabledTimes: disabledTimes
225
- });
226
- }
227
-
228
- renderSecondsPanel() {
229
- const {
230
- time
231
- } = this.state;
232
- const {
233
- showSeconds,
234
- format,
235
- hasHeader
236
- } = this.props;
237
- if (!showSeconds) return null;
238
- const withLeadingZeros = format.indexOf('ss') > -1;
239
- const rangeSeconds = dsUtilities.range(60).map(generateOption(withLeadingZeros && dsUtilities.addLeadingZeros(2)));
240
- return /*#__PURE__*/_jsx__default["default"](PickerPanel, {
241
- type: "seconds",
242
- hasHeader: hasHeader,
243
- header: "S",
244
- onChange: this.handleSecondsChange,
245
- options: rangeSeconds,
246
- selected: time.second()
247
- });
248
- }
249
-
250
- renderAMPMPanel() {
251
- const {
252
- time
253
- } = this.state;
254
- const {
255
- use12Hours,
256
- hasHeader,
257
- disabledTimes
258
- } = this.props;
259
- if (!use12Hours) return null;
260
- let meridiemSelected = !utils.isAM(time) ? 'pm' : 'am';
261
-
262
- if (disabledTimes && disabledTimes.to && meridiemSelected === 'am') {
263
- meridiemSelected = disabledTimes.to.hour >= 12 ? 'pm' : 'am';
264
-
265
- if (meridiemSelected === 'am' && time.hour() > 12) {
266
- this.handleAMPMChange('am');
267
- }
268
-
269
- if (meridiemSelected === 'pm' && time.hour() <= 12) {
270
- this.handleAMPMChange('pm');
271
- }
272
- }
273
-
274
- return /*#__PURE__*/_jsx__default["default"](PickerPanel, {
275
- type: "meridiem",
276
- hasHeader: hasHeader,
277
- header: "",
278
- onChange: this.handleAMPMChange,
279
- options: [{
280
- value: 'am',
281
- label: 'am'
282
- }, {
283
- value: 'pm',
284
- label: 'pm'
285
- }],
286
- selected: meridiemSelected,
287
- disabledTimes: disabledTimes
288
- });
289
- }
290
-
291
- render() {
292
- const {
293
- hasHeaderDisplay
294
- } = this.props;
295
- return /*#__PURE__*/_jsx__default["default"](TimePickerContainer, {}, void 0, hasHeaderDisplay && this.renderHeader(), /*#__PURE__*/_jsx__default["default"](TimePickerPanelContainer, {}, void 0, this.renderHoursPanel(), this.renderMinutesPanel(), this.renderSecondsPanel(), this.renderAMPMPanel()));
296
- }
297
-
298
- }
299
-
300
- TimePickerMenu.defaultProps = {
301
- time: moment__default["default"](),
302
- hasHeader: false,
303
- use12Hours: true,
304
- showSeconds: true,
305
- showMinutes: true,
306
- showHours: true,
307
- disabledTimes: undefined,
308
- onTimeChange: () => null
309
- };
310
-
311
- exports.TimePickerMenu = TimePickerMenu;
312
- exports["default"] = TimePickerMenu;
package/cjs/index.js DELETED
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var DSTimePicker = require('./DSTimePicker.js');
6
- var TimePickerMenu = require('./TimePickerMenu.js');
7
- var DSTimePickerMenu = require('./DSTimePickerMenu.js');
8
- var utils = require('./utils.js');
9
-
10
-
11
-
12
- exports.DSTimePicker = DSTimePicker.DSTimePicker;
13
- exports.DSTimePickerWithSchema = DSTimePicker.DSTimePickerWithSchema;
14
- exports["default"] = DSTimePicker.DSTimePicker;
15
- exports.TimePickerMenu = TimePickerMenu.TimePickerMenu;
16
- exports.DSTimePickerMenu = DSTimePickerMenu.DSTimePickerMenu;
17
- exports.convertTimeString = utils.convertTimeString;
@@ -1,75 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- function MoveElementOnScroll(element, _ref) {
6
- let {
7
- container,
8
- min = 0,
9
- max = element.offsetHeight,
10
- speed = 1,
11
- smooth = 2,
12
- onUpdate = () => null,
13
- onEndScroll = () => null
14
- } = _ref;
15
- let moving = false;
16
- let pos = min;
17
- let lastPos = pos; // todo: move this to utils if we finally need it
18
-
19
- const requestFrame = function () {
20
- return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (func) {
21
- window.setTimeout(func, 1000 / 50);
22
- };
23
- }();
24
-
25
- function update() {
26
- moving = true;
27
- const delta = (pos - lastPos) / smooth;
28
- lastPos += delta;
29
-
30
- if (Math.abs(delta) > 0.7) {
31
- requestFrame(() => {
32
- onUpdate(lastPos, delta);
33
- update();
34
- });
35
- } else {
36
- onEndScroll(pos);
37
- moving = false;
38
- }
39
- }
40
-
41
- function scrolling(e) {
42
- e.preventDefault(); // disable default scrolling
43
-
44
- let delta = e.delta || e.wheelDelta;
45
-
46
- if (delta === undefined) {
47
- // for firefox
48
- delta = -e.detail;
49
- delta *= 10 * speed;
50
- }
51
-
52
- pos += -delta * speed;
53
- pos = Math.max(min, Math.min(pos, max)); // limit scrolling
54
-
55
- if (!moving) {
56
- update();
57
- }
58
- }
59
-
60
- container.addEventListener('mousewheel', scrolling, false);
61
- container.addEventListener('DOMMouseScroll', scrolling, false);
62
- return {
63
- unsubscribe: () => {
64
- container.removeEventListener('mousewheel', scrolling);
65
- container.removeEventListener('DOMMouseScroll', scrolling);
66
- },
67
- updatePosition: newPos => {
68
- pos = -newPos;
69
- lastPos = -pos;
70
- }
71
- };
72
- }
73
-
74
- exports.MoveElementOnScroll = MoveElementOnScroll;
75
- exports["default"] = MoveElementOnScroll;
package/cjs/utils.js DELETED
@@ -1,38 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const validateIndex = (index, options) => {
6
- if (index < 0) return 0;
7
- if (index >= options.length) return options.length - 1;
8
- return index;
9
- };
10
- const getOptionIndex = function (options, selectedOption) {
11
- let valueProperty = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'value';
12
- const index = options.findIndex(option => option[valueProperty] === selectedOption);
13
- return validateIndex(index, options);
14
- };
15
- const isAM = time => time && time.hour() < 12;
16
- const convertTimeString = string => {
17
- if (!string) return null;
18
- let meridiem = 'AM';
19
- if (string.toUpperCase().includes('PM')) meridiem = 'PM';
20
- const arr = string.split(':');
21
- let hour = parseInt(arr[0], 10);
22
- if (meridiem === 'PM' && hour !== 12) hour += 12; // formats to 24
23
-
24
- if (meridiem === 'AM' && hour === 12) hour = 0;
25
- if (meridiem === 'PM' && hour === 12) hour = 12;
26
- const min = parseInt(arr[1], 10);
27
- const sec = parseInt(arr[2], 10);
28
- return {
29
- hour,
30
- min,
31
- sec
32
- };
33
- };
34
-
35
- exports.convertTimeString = convertTimeString;
36
- exports.getOptionIndex = getOptionIndex;
37
- exports.isAM = isAM;
38
- exports.validateIndex = validateIndex;