@elliemae/ds-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.
Files changed (40) hide show
  1. package/cjs/DSTimePicker.js +100 -115
  2. package/cjs/DSTimePicker.js.map +7 -0
  3. package/cjs/DSTimePickerMenu.js +46 -33
  4. package/cjs/DSTimePickerMenu.js.map +7 -0
  5. package/cjs/PickerPanel.js +151 -254
  6. package/cjs/PickerPanel.js.map +7 -0
  7. package/cjs/TimePickerDropdown.js +73 -52
  8. package/cjs/TimePickerDropdown.js.map +7 -0
  9. package/cjs/TimePickerImpl.js +146 -138
  10. package/cjs/TimePickerImpl.js.map +7 -0
  11. package/cjs/TimePickerMenu.js +138 -209
  12. package/cjs/TimePickerMenu.js.map +7 -0
  13. package/cjs/index.js +40 -17
  14. package/cjs/index.js.map +7 -0
  15. package/cjs/moveElementOnScroll.js +57 -39
  16. package/cjs/moveElementOnScroll.js.map +7 -0
  17. package/cjs/utils.js +57 -24
  18. package/cjs/utils.js.map +7 -0
  19. package/esm/DSTimePicker.js +71 -105
  20. package/esm/DSTimePicker.js.map +7 -0
  21. package/esm/DSTimePickerMenu.js +17 -22
  22. package/esm/DSTimePickerMenu.js.map +7 -0
  23. package/esm/PickerPanel.js +120 -242
  24. package/esm/PickerPanel.js.map +7 -0
  25. package/esm/TimePickerDropdown.js +44 -44
  26. package/esm/TimePickerDropdown.js.map +7 -0
  27. package/esm/TimePickerImpl.js +106 -117
  28. package/esm/TimePickerImpl.js.map +7 -0
  29. package/esm/TimePickerMenu.js +102 -191
  30. package/esm/TimePickerMenu.js.map +7 -0
  31. package/esm/index.js +11 -4
  32. package/esm/index.js.map +7 -0
  33. package/esm/moveElementOnScroll.js +28 -34
  34. package/esm/moveElementOnScroll.js.map +7 -0
  35. package/esm/utils.js +28 -17
  36. package/esm/utils.js.map +7 -0
  37. package/package.json +7 -7
  38. package/types/PickerPanel.d.ts +1 -0
  39. package/types/TimePickerDropdown.d.ts +1 -0
  40. package/types/TimePickerImpl.d.ts +1 -0
@@ -1,312 +1,241 @@
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 => ({
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __reExport = (target, module2, copyDefault, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
+ }
18
+ return target;
19
+ };
20
+ var __toESM = (module2, isNodeMode) => {
21
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
+ };
23
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
+ return (module2, temp) => {
25
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
+ };
27
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
+ var TimePickerMenu_exports = {};
29
+ __export(TimePickerMenu_exports, {
30
+ TimePickerMenu: () => TimePickerMenu,
31
+ default: () => TimePickerMenu_default
32
+ });
33
+ var React = __toESM(require("react"));
34
+ var import_react = __toESM(require("react"));
35
+ var import_prop_types = __toESM(require("prop-types"));
36
+ var import_ds_classnames = require("@elliemae/ds-classnames");
37
+ var import_moment = __toESM(require("moment"));
38
+ var import_ds_utilities = require("@elliemae/ds-utilities");
39
+ var import_utils = require("./utils");
40
+ var import_PickerPanel = require("./PickerPanel");
41
+ const blockName = "time-picker-menu";
42
+ const TimePickerContainer = (0, import_ds_classnames.aggregatedClasses)("div")(blockName);
43
+ const TimePickerHeader = (0, import_ds_classnames.aggregatedClasses)("div")(blockName, "header");
44
+ const TimePickerPanelContainer = (0, import_ds_classnames.aggregatedClasses)("div")(blockName, "panel-container");
45
+ const generateOption = (format) => (option) => ({
36
46
  value: option,
37
- label: typeof format === 'function' ? format(option) : option
47
+ label: typeof format === "function" ? format(option) : option
38
48
  });
39
-
40
- class TimePickerMenu extends React.Component {
49
+ class TimePickerMenu extends import_react.Component {
41
50
  constructor(props) {
42
51
  super(props);
43
-
44
52
  this.renderHeader = () => {
45
- const {
46
- time
47
- } = this.state;
48
- return /*#__PURE__*/_jsx__default["default"](TimePickerHeader, {}, void 0, time.format('hh:mma'));
53
+ const { time } = this.state;
54
+ return /* @__PURE__ */ import_react.default.createElement(TimePickerHeader, null, time.format("hh:mma"));
49
55
  };
50
-
51
56
  this.state = {
52
- time: moment__default["default"](props.time || '', props.format) || moment__default["default"]()
57
+ time: (0, import_moment.default)(props.time || "", props.format) || (0, import_moment.default)()
53
58
  };
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
  }
59
-
60
60
  static getDerivedStateFromProps(props, state) {
61
61
  if (props.time) {
62
- return _objectSpread(_objectSpread({}, state), {}, {
63
- time: moment__default["default"](props.time)
64
- });
62
+ return { ...state, time: (0, import_moment.default)(props.time) };
65
63
  }
66
-
67
- return _objectSpread(_objectSpread({}, state), {}, {
68
- time: undefined
69
- });
64
+ return { ...state, time: void 0 };
70
65
  }
71
-
72
66
  componentDidMount() {
73
- const {
74
- time
75
- } = this.state;
76
- this.setState({
77
- time
78
- });
67
+ const { time } = this.state;
68
+ this.setState({ time });
79
69
  }
80
-
81
70
  handleMinuteChange(value) {
82
- const {
83
- time
84
- } = this.state;
71
+ const { time } = this.state;
85
72
  this.updateTime(time.minute(value));
86
73
  }
87
-
88
74
  handleHoursChange(value) {
89
- const {
90
- time
91
- } = this.state;
92
- const {
93
- use12Hours
94
- } = this.props;
75
+ const { time } = this.state;
76
+ const { use12Hours } = this.props;
95
77
  let nextHour = value;
96
-
97
78
  if (use12Hours) {
98
- if (!utils.isAM(time)) {
79
+ if (!(0, import_utils.isAM)(time)) {
99
80
  nextHour = value % 12 + 12;
100
81
  }
101
82
  }
102
-
103
83
  this.updateTime(time.hour(nextHour));
104
84
  }
105
-
106
85
  handleSecondsChange(value) {
107
- const {
108
- time
109
- } = this.state;
86
+ const { time } = this.state;
110
87
  this.updateTime(time.second(value));
111
88
  }
112
-
113
89
  handleAMPMChange(value) {
114
- const {
115
- time
116
- } = this.state;
90
+ const { time } = this.state;
117
91
  const hour = time.hour();
118
- const nextHour = value.toLowerCase() === 'am' ? hour % 12 : hour % 12 + 12;
92
+ const nextHour = value.toLowerCase() === "am" ? hour % 12 : hour % 12 + 12;
119
93
  this.updateTime(time.hour(nextHour));
120
94
  }
121
-
122
95
  updateTime(time) {
123
- const {
124
- onTimeChange
125
- } = this.props;
96
+ const { onTimeChange } = this.props;
126
97
  onTimeChange(time);
127
- this.setState({
128
- time
129
- });
98
+ this.setState({ time });
130
99
  }
131
-
132
100
  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
-
101
+ const { time } = this.state;
102
+ const { showHours, use12Hours, format, hasHeader, disabledTimes } = this.props;
103
+ if (!showHours)
104
+ return null;
105
+ const hour = time.hour();
146
106
  let selectedHour = use12Hours ? hour % 12 || 12 : hour;
147
-
148
107
  if (disabledTimes) {
149
- const {
150
- from,
151
- to
152
- } = disabledTimes;
153
-
108
+ const { from, to } = disabledTimes;
154
109
  if (hour > from.hour && hour < to.hour) {
155
110
  if (to.hour < 24) {
156
111
  const toFormatted = to.hour % 12 || 12;
157
- if (selectedHour !== toFormatted) this.handleHoursChange(toFormatted);
112
+ if (selectedHour !== toFormatted)
113
+ this.handleHoursChange(toFormatted);
158
114
  selectedHour = toFormatted;
159
115
  } else if (from) {
160
116
  selectedHour = (from.hour - 1) % 12 || 12;
161
117
  }
162
118
  }
163
119
  }
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, {
120
+ const meridiem = hour >= 12 ? "PM" : "AM";
121
+ const withLeadingZeros = format.indexOf("hh") > -1;
122
+ const rangeHours = use12Hours ? (0, import_ds_utilities.range)(1, 13) : (0, import_ds_utilities.range)(24);
123
+ const hoursOptions = rangeHours.map(generateOption(withLeadingZeros && (0, import_ds_utilities.addLeadingZeros)(2)));
124
+ return /* @__PURE__ */ import_react.default.createElement(import_PickerPanel.PickerPanel, {
170
125
  type: "hour",
171
- time: time,
172
- meridiem: meridiem,
173
- hasHeader: hasHeader,
126
+ time,
127
+ meridiem,
128
+ hasHeader,
174
129
  header: "H",
175
130
  onChange: this.handleHoursChange,
176
131
  options: hoursOptions,
177
132
  selected: selectedHour,
178
- disabledTimes: disabledTimes
133
+ disabledTimes
179
134
  });
180
135
  }
181
-
182
136
  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)));
137
+ const { time } = this.state;
138
+ const { showMinutes, format, hasHeader, disabledTimes, minutesInterval } = this.props;
139
+ if (!showMinutes)
140
+ return null;
141
+ const withLeadingZeros = format.indexOf("mm") > -1;
142
+ const rangeMinutes = (0, import_ds_utilities.range)(0, 60, minutesInterval).map(generateOption(withLeadingZeros && (0, import_ds_utilities.addLeadingZeros)(2)));
196
143
  let selectedMinute = time.minute();
197
144
  const selectedHour = time.hour();
198
-
199
145
  if (disabledTimes) {
200
- const {
201
- from,
202
- to
203
- } = disabledTimes;
204
-
146
+ const { from, to } = disabledTimes;
205
147
  if (selectedHour <= to.hour && selectedHour > from.hour) {
206
148
  if (to) {
207
- if (selectedMinute < to.min) this.handleMinuteChange(to.min);
149
+ if (selectedMinute < to.min)
150
+ this.handleMinuteChange(to.min);
208
151
  } else if (from) {
209
- if (selectedMinute > from.min) this.handleMinuteChange(from.min - 1);
152
+ if (selectedMinute > from.min)
153
+ this.handleMinuteChange(from.min - 1);
210
154
  }
211
155
  } else {
212
156
  selectedMinute = time.minute();
213
157
  }
214
158
  }
215
-
216
- return /*#__PURE__*/_jsx__default["default"](PickerPanel, {
159
+ return /* @__PURE__ */ import_react.default.createElement(import_PickerPanel.PickerPanel, {
217
160
  type: "minutes",
218
- time: time,
219
- hasHeader: hasHeader,
161
+ time,
162
+ hasHeader,
220
163
  header: "M",
221
164
  onChange: this.handleMinuteChange,
222
165
  options: rangeMinutes,
223
166
  selected: selectedMinute,
224
- disabledTimes: disabledTimes
167
+ disabledTimes
225
168
  });
226
169
  }
227
-
228
170
  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, {
171
+ const { time } = this.state;
172
+ const { showSeconds, format, hasHeader } = this.props;
173
+ if (!showSeconds)
174
+ return null;
175
+ const withLeadingZeros = format.indexOf("ss") > -1;
176
+ const rangeSeconds = (0, import_ds_utilities.range)(60).map(generateOption(withLeadingZeros && (0, import_ds_utilities.addLeadingZeros)(2)));
177
+ return /* @__PURE__ */ import_react.default.createElement(import_PickerPanel.PickerPanel, {
241
178
  type: "seconds",
242
- hasHeader: hasHeader,
179
+ hasHeader,
243
180
  header: "S",
244
181
  onChange: this.handleSecondsChange,
245
182
  options: rangeSeconds,
246
183
  selected: time.second()
247
184
  });
248
185
  }
249
-
250
186
  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');
187
+ const { time } = this.state;
188
+ const { use12Hours, hasHeader, disabledTimes } = this.props;
189
+ if (!use12Hours)
190
+ return null;
191
+ let meridiemSelected = !(0, import_utils.isAM)(time) ? "pm" : "am";
192
+ if (disabledTimes && disabledTimes.to && meridiemSelected === "am") {
193
+ meridiemSelected = disabledTimes.to.hour >= 12 ? "pm" : "am";
194
+ if (meridiemSelected === "am" && time.hour() > 12) {
195
+ this.handleAMPMChange("am");
267
196
  }
268
-
269
- if (meridiemSelected === 'pm' && time.hour() <= 12) {
270
- this.handleAMPMChange('pm');
197
+ if (meridiemSelected === "pm" && time.hour() <= 12) {
198
+ this.handleAMPMChange("pm");
271
199
  }
272
200
  }
273
-
274
- return /*#__PURE__*/_jsx__default["default"](PickerPanel, {
201
+ return /* @__PURE__ */ import_react.default.createElement(import_PickerPanel.PickerPanel, {
275
202
  type: "meridiem",
276
- hasHeader: hasHeader,
203
+ hasHeader,
277
204
  header: "",
278
205
  onChange: this.handleAMPMChange,
279
- options: [{
280
- value: 'am',
281
- label: 'am'
282
- }, {
283
- value: 'pm',
284
- label: 'pm'
285
- }],
206
+ options: [
207
+ { value: "am", label: "am" },
208
+ { value: "pm", label: "pm" }
209
+ ],
286
210
  selected: meridiemSelected,
287
- disabledTimes: disabledTimes
211
+ disabledTimes
288
212
  });
289
213
  }
290
-
291
214
  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()));
215
+ const { hasHeaderDisplay } = this.props;
216
+ return /* @__PURE__ */ import_react.default.createElement(TimePickerContainer, null, hasHeaderDisplay && this.renderHeader(), /* @__PURE__ */ import_react.default.createElement(TimePickerPanelContainer, null, this.renderHoursPanel(), this.renderMinutesPanel(), this.renderSecondsPanel(), this.renderAMPMPanel()));
296
217
  }
297
-
298
218
  }
299
-
300
219
  TimePickerMenu.defaultProps = {
301
- time: moment__default["default"](),
220
+ time: (0, import_moment.default)(),
302
221
  hasHeader: false,
303
222
  use12Hours: true,
304
223
  showSeconds: true,
305
224
  showMinutes: true,
306
225
  showHours: true,
307
- disabledTimes: undefined,
226
+ disabledTimes: void 0,
308
227
  onTimeChange: () => null
309
228
  };
310
-
311
- exports.TimePickerMenu = TimePickerMenu;
312
- exports["default"] = TimePickerMenu;
229
+ TimePickerMenu.propTypes = {
230
+ time: import_prop_types.default.instanceOf(import_moment.default),
231
+ hasHeader: import_prop_types.default.bool,
232
+ use12Hours: import_prop_types.default.bool,
233
+ showSeconds: import_prop_types.default.bool,
234
+ showMinutes: import_prop_types.default.bool,
235
+ showHours: import_prop_types.default.bool,
236
+ onTimeChange: import_prop_types.default.func,
237
+ disabledTimes: import_prop_types.default.object
238
+ };
239
+ var TimePickerMenu_default = TimePickerMenu;
240
+ module.exports = __toCommonJS(TimePickerMenu_exports);
241
+ //# sourceMappingURL=TimePickerMenu.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/TimePickerMenu.tsx", "../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["/* eslint-disable complexity */\n/* eslint-disable max-lines */\n/* eslint-disable react/prop-types */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport moment from 'moment';\nimport { range, addLeadingZeros } from '@elliemae/ds-utilities';\nimport { isAM } from './utils';\nimport { PickerPanel } from './PickerPanel';\n\nconst blockName = 'time-picker-menu';\n\nconst TimePickerContainer = aggregatedClasses('div')(blockName);\nconst TimePickerHeader = aggregatedClasses('div')(blockName, 'header');\nconst TimePickerPanelContainer = aggregatedClasses('div')(blockName, 'panel-container');\n\nconst generateOption = (format) => (option) => ({\n value: option,\n label: typeof format === 'function' ? format(option) : option,\n});\n\nclass TimePickerMenu extends Component {\n constructor(props) {\n super(props);\n this.state = {\n time: moment(props.time || '', props.format) || moment(),\n };\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.time) {\n return { ...state, time: moment(props.time) };\n }\n return { ...state, time: undefined };\n }\n\n componentDidMount() {\n const { time } = this.state;\n this.setState({ time });\n }\n\n handleMinuteChange(value) {\n const { time } = this.state;\n this.updateTime(time.minute(value));\n }\n\n handleHoursChange(value) {\n const { time } = this.state;\n const { use12Hours } = this.props;\n let nextHour = value;\n if (use12Hours) {\n if (!isAM(time)) {\n nextHour = (value % 12) + 12;\n }\n }\n this.updateTime(time.hour(nextHour));\n }\n\n handleSecondsChange(value) {\n const { time } = this.state;\n this.updateTime(time.second(value));\n }\n\n handleAMPMChange(value) {\n const { time } = this.state;\n const hour = time.hour();\n const nextHour = value.toLowerCase() === 'am' ? hour % 12 : (hour % 12) + 12;\n this.updateTime(time.hour(nextHour));\n }\n\n updateTime(time) {\n const { onTimeChange } = this.props;\n onTimeChange(time);\n this.setState({ time });\n }\n\n renderHoursPanel() {\n const { time } = this.state;\n const { showHours, use12Hours, format, hasHeader, disabledTimes } = this.props;\n if (!showHours) return null;\n\n const hour = time.hour(); // in 24 format\n let selectedHour = use12Hours ? hour % 12 || 12 : hour;\n if (disabledTimes) {\n const { from, to } = disabledTimes;\n if (hour > from.hour && hour < to.hour) {\n if (to.hour < 24) {\n const toFormatted = to.hour % 12 || 12;\n if (selectedHour !== toFormatted) this.handleHoursChange(toFormatted);\n selectedHour = toFormatted;\n } else if (from) {\n selectedHour = (from.hour - 1) % 12 || 12;\n }\n }\n }\n\n const meridiem = hour >= 12 ? 'PM' : 'AM';\n const withLeadingZeros = format.indexOf('hh') > -1;\n const rangeHours = use12Hours ? range(1, 13) : range(24);\n const hoursOptions = rangeHours.map(generateOption(withLeadingZeros && addLeadingZeros(2)));\n return (\n <PickerPanel\n type=\"hour\"\n time={time}\n meridiem={meridiem}\n hasHeader={hasHeader}\n header=\"H\"\n onChange={this.handleHoursChange}\n options={hoursOptions}\n selected={selectedHour}\n disabledTimes={disabledTimes}\n />\n );\n }\n\n renderMinutesPanel() {\n const { time } = this.state;\n const { showMinutes, format, hasHeader, disabledTimes, minutesInterval } = this.props;\n if (!showMinutes) return null;\n const withLeadingZeros = format.indexOf('mm') > -1;\n const rangeMinutes = range(0, 60, minutesInterval).map(generateOption(withLeadingZeros && addLeadingZeros(2)));\n\n let selectedMinute = time.minute();\n const selectedHour = time.hour();\n\n if (disabledTimes) {\n const { from, to } = disabledTimes;\n if (selectedHour <= to.hour && selectedHour > from.hour) {\n if (to) {\n if (selectedMinute < to.min) this.handleMinuteChange(to.min);\n } else if (from) {\n if (selectedMinute > from.min) this.handleMinuteChange(from.min - 1);\n }\n } else {\n selectedMinute = time.minute();\n }\n }\n\n return (\n <PickerPanel\n type=\"minutes\"\n time={time}\n hasHeader={hasHeader}\n header=\"M\"\n onChange={this.handleMinuteChange}\n options={rangeMinutes}\n selected={selectedMinute}\n disabledTimes={disabledTimes}\n />\n );\n }\n\n renderSecondsPanel() {\n const { time } = this.state;\n const { showSeconds, format, hasHeader } = this.props;\n if (!showSeconds) return null;\n const withLeadingZeros = format.indexOf('ss') > -1;\n const rangeSeconds = range(60).map(generateOption(withLeadingZeros && addLeadingZeros(2)));\n return (\n <PickerPanel\n type=\"seconds\"\n hasHeader={hasHeader}\n header=\"S\"\n onChange={this.handleSecondsChange}\n options={rangeSeconds}\n selected={time.second()}\n />\n );\n }\n\n renderAMPMPanel() {\n const { time } = this.state;\n const { use12Hours, hasHeader, disabledTimes } = this.props;\n if (!use12Hours) return null;\n\n let meridiemSelected = !isAM(time) ? 'pm' : 'am';\n if (disabledTimes && disabledTimes.to && meridiemSelected === 'am') {\n meridiemSelected = disabledTimes.to.hour >= 12 ? 'pm' : 'am';\n if (meridiemSelected === 'am' && time.hour() > 12) {\n this.handleAMPMChange('am');\n }\n\n if (meridiemSelected === 'pm' && time.hour() <= 12) {\n this.handleAMPMChange('pm');\n }\n }\n\n return (\n <PickerPanel\n type=\"meridiem\"\n hasHeader={hasHeader}\n header=\"\"\n onChange={this.handleAMPMChange}\n options={[\n { value: 'am', label: 'am' },\n { value: 'pm', label: 'pm' },\n ]}\n selected={meridiemSelected}\n disabledTimes={disabledTimes}\n />\n );\n }\n\n renderHeader = () => {\n const { time } = this.state;\n return <TimePickerHeader>{time.format('hh:mma')}</TimePickerHeader>;\n };\n\n render() {\n const { hasHeaderDisplay } = this.props;\n\n return (\n <TimePickerContainer>\n {hasHeaderDisplay && this.renderHeader()}\n <TimePickerPanelContainer>\n {this.renderHoursPanel()}\n {this.renderMinutesPanel()}\n {this.renderSecondsPanel()}\n {this.renderAMPMPanel()}\n </TimePickerPanelContainer>\n </TimePickerContainer>\n );\n }\n}\n\nTimePickerMenu.defaultProps = {\n time: moment(),\n hasHeader: false,\n use12Hours: true,\n showSeconds: true,\n showMinutes: true,\n showHours: true,\n disabledTimes: undefined,\n onTimeChange: () => null,\n};\n\nTimePickerMenu.propTypes = {\n /** Time value */\n time: PropTypes.instanceOf(moment),\n /** If the menu has header or not */\n hasHeader: PropTypes.bool,\n /** Whether to use the 12 hours format */\n use12Hours: PropTypes.bool,\n /** Whether show 'seconds' or not */\n showSeconds: PropTypes.bool,\n /** Whether show 'minutes' or not */\n showMinutes: PropTypes.bool,\n /** Whether show 'hours' or not */\n showHours: PropTypes.bool,\n /** Handler when time changes */\n onTimeChange: PropTypes.func,\n disabledTimes: PropTypes.object,\n};\n\nexport { TimePickerMenu };\nexport default TimePickerMenu;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
package/cjs/index.js CHANGED
@@ -1,17 +1,40 @@
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
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __reExport = (target, module2, copyDefault, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
+ }
18
+ return target;
19
+ };
20
+ var __toESM = (module2, isNodeMode) => {
21
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
+ };
23
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
+ return (module2, temp) => {
25
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
+ };
27
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
+ var src_exports = {};
29
+ __export(src_exports, {
30
+ convertTimeString: () => import_utils.convertTimeString,
31
+ default: () => import_DSTimePicker.default
32
+ });
33
+ var React = __toESM(require("react"));
34
+ __reExport(src_exports, require("./DSTimePicker"));
35
+ __reExport(src_exports, require("./TimePickerMenu"));
36
+ __reExport(src_exports, require("./DSTimePickerMenu"));
37
+ var import_utils = require("./utils");
38
+ var import_DSTimePicker = __toESM(require("./DSTimePicker"));
39
+ module.exports = __toCommonJS(src_exports);
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.tsx", "../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["export * from './DSTimePicker';\nexport * from './TimePickerMenu';\nexport * from './DSTimePickerMenu';\n\nexport { convertTimeString } from './utils'; // this is an exception, we should move utils to shared tho?\n\nexport { default } from './DSTimePicker';\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,wBAAc;AACd,wBAAc;AACd,wBAAc;AAEd,mBAAkC;AAElC,0BAAwB;",
6
+ "names": []
7
+ }