@semcore/time-picker 3.4.37 → 3.4.38

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.
@@ -23,7 +23,6 @@ var MAP_SIZE_SELECT = {
23
23
  m: 'm',
24
24
  l: 'l'
25
25
  };
26
-
27
26
  function getOptions(min, max) {
28
27
  var step = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
29
28
  var length = Number(((max + 1 - min) / step).toFixed(0));
@@ -38,77 +37,59 @@ function getOptions(min, max) {
38
37
  }, value);
39
38
  });
40
39
  }
41
-
42
40
  var ItemPicker = /*#__PURE__*/function (_Component) {
43
41
  _inherits(ItemPicker, _Component);
44
-
45
42
  var _super = _createSuper(ItemPicker);
46
-
47
43
  function ItemPicker() {
48
44
  var _this;
49
-
50
45
  _classCallCheck(this, ItemPicker);
51
-
52
46
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
53
47
  args[_key] = arguments[_key];
54
48
  }
55
-
56
49
  _this = _super.call.apply(_super, [this].concat(args));
57
-
58
50
  _defineProperty(_assertThisInitialized(_this), "inputRef", /*#__PURE__*/React.createRef());
59
-
60
51
  _defineProperty(_assertThisInitialized(_this), "state", {
61
52
  dirtyValue: undefined,
62
53
  visible: false
63
54
  });
64
-
65
55
  _defineProperty(_assertThisInitialized(_this), "parseValueWithMinMax", function (value) {
66
56
  var _this$minMax = _this.minMax(),
67
- _this$minMax2 = _slicedToArray(_this$minMax, 2),
68
- min = _this$minMax2[0],
69
- max = _this$minMax2[1];
70
-
57
+ _this$minMax2 = _slicedToArray(_this$minMax, 2),
58
+ min = _this$minMax2[0],
59
+ max = _this$minMax2[1];
71
60
  return String(Math.max(min, Math.min(max, value)));
72
61
  });
73
-
74
62
  _defineProperty(_assertThisInitialized(_this), "handleChange", function (value, e) {
75
63
  /* hide props for bubbling events */
76
64
  e.stopPropagation();
77
65
  var numberValue = intOrDefault(Number(value), NaN);
78
-
79
66
  if (!Number.isNaN(numberValue)) {
80
67
  _this.setState({
81
68
  dirtyValue: value.slice(-2)
82
69
  });
83
70
  }
84
71
  });
85
-
86
72
  _defineProperty(_assertThisInitialized(_this), "handleBlur", function (e) {
87
73
  return _this.submitChanges(e);
88
74
  });
89
-
75
+ /* rewrite method */
90
76
  _defineProperty(_assertThisInitialized(_this), "handleKeyDown", function () {});
91
-
92
77
  _defineProperty(_assertThisInitialized(_this), "handleSelect", function (value, e) {
93
78
  _this.dispatchOnChange(value, e);
94
79
  });
95
-
96
80
  _defineProperty(_assertThisInitialized(_this), "handleVisibleChange", function (visible) {
97
81
  return _this.setState({
98
82
  visible: visible
99
83
  });
100
84
  });
101
-
102
85
  _defineProperty(_assertThisInitialized(_this), "getAriaLabel", function () {
103
86
  var getI18nText = _this.asProps._getI18nText;
104
87
  if (_this.field === 'hours') return getI18nText('hours');
105
88
  if (_this.field === 'minutes') return getI18nText('minutes');
106
89
  return undefined;
107
90
  });
108
-
109
91
  return _this;
110
92
  }
111
-
112
93
  _createClass(ItemPicker, [{
113
94
  key: "minMax",
114
95
  value: function minMax() {
@@ -126,11 +107,9 @@ var ItemPicker = /*#__PURE__*/function (_Component) {
126
107
  key: "submitChanges",
127
108
  value: function submitChanges(event) {
128
109
  var dirtyValue = this.state.dirtyValue;
129
-
130
110
  if (dirtyValue !== undefined) {
131
111
  // if changes value
132
112
  if (dirtyValue) dirtyValue = this.parseValueWithMinMax(dirtyValue); // if not ""
133
-
134
113
  this.dispatchOnChange(dirtyValue, event);
135
114
  }
136
115
  }
@@ -138,31 +117,26 @@ var ItemPicker = /*#__PURE__*/function (_Component) {
138
117
  key: "render",
139
118
  value: function render() {
140
119
  var _ref = this.asProps,
141
- _ref2;
142
-
120
+ _ref2;
143
121
  var SPickerInput = Select.Trigger;
144
-
145
122
  var _this$asProps = this.asProps,
146
- styles = _this$asProps.styles,
147
- step = _this$asProps.step,
148
- onSelect = _this$asProps.onSelect,
149
- time = _this$asProps.time,
150
- size = _this$asProps.size,
151
- disabled = _this$asProps.disabled,
152
- onVisibleChange = _this$asProps.onVisibleChange,
153
- other = _objectWithoutProperties(_this$asProps, _excluded);
154
-
123
+ styles = _this$asProps.styles,
124
+ step = _this$asProps.step,
125
+ onSelect = _this$asProps.onSelect,
126
+ time = _this$asProps.time,
127
+ size = _this$asProps.size,
128
+ disabled = _this$asProps.disabled,
129
+ onVisibleChange = _this$asProps.onVisibleChange,
130
+ other = _objectWithoutProperties(_this$asProps, _excluded);
155
131
  var _this$state = this.state,
156
- dirtyValue = _this$state.dirtyValue,
157
- visible = _this$state.visible;
132
+ dirtyValue = _this$state.dirtyValue,
133
+ visible = _this$state.visible;
158
134
  var timeValue = time[MAP_FIELD_TO_TIME[this.field]];
159
135
  var value = dirtyValue === undefined ? timeValue : dirtyValue;
160
-
161
136
  var _this$minMax3 = this.minMax(),
162
- _this$minMax4 = _slicedToArray(_this$minMax3, 2),
163
- min = _this$minMax4[0],
164
- max = _this$minMax4[1];
165
-
137
+ _this$minMax4 = _slicedToArray(_this$minMax3, 2),
138
+ min = _this$minMax4[0],
139
+ max = _this$minMax4[1];
166
140
  return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(Select, _ref2.cn("Select", _objectSpread(_objectSpread({}, other), {}, {
167
141
  "interaction": "focus",
168
142
  "size": size ? MAP_SIZE_SELECT[size] : false,
@@ -188,53 +162,38 @@ var ItemPicker = /*#__PURE__*/function (_Component) {
188
162
  }, getOptions(min, max, step)));
189
163
  }
190
164
  }]);
191
-
192
165
  return ItemPicker;
193
166
  }(Component);
194
-
195
167
  _defineProperty(ItemPicker, "defaultProps", {
196
168
  placeholder: '00'
197
169
  });
198
-
199
170
  var Hours = /*#__PURE__*/function (_ItemPicker) {
200
171
  _inherits(Hours, _ItemPicker);
201
-
202
172
  var _super2 = _createSuper(Hours);
203
-
204
173
  function Hours() {
205
174
  var _this2;
206
-
207
175
  _classCallCheck(this, Hours);
208
-
209
176
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
210
177
  args[_key2] = arguments[_key2];
211
178
  }
212
-
213
179
  _this2 = _super2.call.apply(_super2, [this].concat(args));
214
-
215
180
  _defineProperty(_assertThisInitialized(_this2), "field", 'hours');
216
-
217
181
  _defineProperty(_assertThisInitialized(_this2), "handleKeyDown", function (e) {
218
182
  var currentTarget = e.currentTarget;
219
183
  if (e.keyCode === 13) _this2.submitChanges(e);
220
-
221
184
  if (e.keyCode === 39) {
222
185
  if (currentTarget.selectionStart >= currentTarget.value.length && currentTarget.selectionStart === currentTarget.selectionEnd) {
223
186
  e.preventDefault();
224
-
225
187
  _this2.nextInput();
226
188
  }
227
189
  }
228
190
  });
229
-
230
191
  return _this2;
231
192
  }
232
-
233
193
  _createClass(Hours, [{
234
194
  key: "minMax",
235
195
  value: function minMax() {
236
196
  var is12Hour = this.asProps.is12Hour;
237
-
238
197
  if (is12Hour) {
239
198
  return [1, 12];
240
199
  } else {
@@ -256,58 +215,42 @@ var Hours = /*#__PURE__*/function (_ItemPicker) {
256
215
  value: function componentDidUpdate(prevProps, prevState) {
257
216
  var dirtyValue = this.state.dirtyValue;
258
217
  if (prevState.dirtyValue === undefined || dirtyValue === undefined) return;
259
-
260
218
  if (prevState.dirtyValue.length === 1 && dirtyValue.length === 2) {
261
219
  this.nextInput();
262
220
  }
263
221
  }
264
222
  }]);
265
-
266
223
  return Hours;
267
224
  }(ItemPicker);
268
-
269
225
  var Minutes = /*#__PURE__*/function (_ItemPicker2) {
270
226
  _inherits(Minutes, _ItemPicker2);
271
-
272
227
  var _super3 = _createSuper(Minutes);
273
-
274
228
  function Minutes() {
275
229
  var _this3;
276
-
277
230
  _classCallCheck(this, Minutes);
278
-
279
231
  for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
280
232
  args[_key3] = arguments[_key3];
281
233
  }
282
-
283
234
  _this3 = _super3.call.apply(_super3, [this].concat(args));
284
-
285
235
  _defineProperty(_assertThisInitialized(_this3), "field", 'minutes');
286
-
287
236
  _defineProperty(_assertThisInitialized(_this3), "handleKeyDown", function (e) {
288
237
  var currentTarget = e.currentTarget;
289
238
  if (e.keyCode === 13) _this3.submitChanges(e);
290
-
291
239
  if (e.keyCode === 37) {
292
240
  if (currentTarget.selectionStart <= 0 && currentTarget.selectionStart === currentTarget.selectionEnd) {
293
241
  e.preventDefault();
294
-
295
242
  _this3.prevFocus();
296
243
  }
297
244
  }
298
-
299
245
  if (e.keyCode === 8) {
300
246
  if (currentTarget.value.length === 0) {
301
247
  e.preventDefault();
302
-
303
248
  _this3.prevFocus();
304
249
  }
305
250
  }
306
251
  });
307
-
308
252
  return _this3;
309
253
  }
310
-
311
254
  _createClass(Minutes, [{
312
255
  key: "minMax",
313
256
  value: function minMax() {
@@ -324,9 +267,7 @@ var Minutes = /*#__PURE__*/function (_ItemPicker2) {
324
267
  }
325
268
  }
326
269
  }]);
327
-
328
270
  return Minutes;
329
271
  }(ItemPicker);
330
-
331
272
  export { Hours, Minutes };
332
273
  //# sourceMappingURL=PickerInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PickerInput.js","names":["React","Input","Select","intOrDefault","withLeadingZero","Component","sstyled","Root","callAllEventHandlers","MAP_FIELD_TO_TIME","hours","minutes","MAP_SIZE_SELECT","m","l","getOptions","min","max","step","length","Number","toFixed","options","Array","fill","numValue","map","i","index","value","String","ItemPicker","createRef","dirtyValue","undefined","visible","minMax","Math","e","stopPropagation","numberValue","NaN","isNaN","setState","slice","submitChanges","dispatchOnChange","getI18nText","asProps","_getI18nText","field","event","$onValueChange","state","parseValueWithMinMax","SPickerInput","Trigger","styles","onSelect","time","size","disabled","onVisibleChange","other","timeValue","handleSelect","handleVisibleChange","Value","inputRef","getAriaLabel","handleChange","handleBlur","handleKeyDown","placeholder","Hours","currentTarget","keyCode","selectionStart","selectionEnd","preventDefault","nextInput","is12Hour","minutesInputRef","current","focus","prevProps","prevState","Minutes","prevFocus","hoursInputRef"],"sources":["../../src/PickerInput.jsx"],"sourcesContent":["import React from 'react';\nimport Input from '@semcore/input';\nimport Select from '@semcore/select';\nimport { intOrDefault, withLeadingZero } from './TimePicker';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\n\nconst MAP_FIELD_TO_TIME = {\n hours: 0,\n minutes: 1,\n};\n\nconst MAP_SIZE_SELECT = {\n m: 'm',\n l: 'l',\n};\n\nfunction getOptions(min, max, step = 1) {\n const length = Number(((max + 1 - min) / step).toFixed(0));\n const options = Array(length).fill('');\n let numValue = min;\n return options.map((i, index) => {\n numValue = index === 0 ? numValue : numValue + step;\n const value = withLeadingZero(String(numValue));\n return (\n <Select.Option value={value} key={value}>\n {value}\n </Select.Option>\n );\n });\n}\n\nclass ItemPicker extends Component {\n static defaultProps = {\n placeholder: '00',\n };\n\n inputRef = React.createRef();\n\n minMax() {\n return [];\n }\n\n state = {\n dirtyValue: undefined,\n visible: false,\n };\n\n parseValueWithMinMax = (value) => {\n const [min, max] = this.minMax();\n return String(Math.max(min, Math.min(max, value)));\n };\n\n dispatchOnChange(value, event) {\n this.setState({ dirtyValue: undefined });\n this.asProps.$onValueChange(value, this.field, event);\n }\n\n submitChanges(event) {\n let { dirtyValue } = this.state;\n if (dirtyValue !== undefined) {\n // if changes value\n if (dirtyValue) dirtyValue = this.parseValueWithMinMax(dirtyValue); // if not \"\"\n this.dispatchOnChange(dirtyValue, event);\n }\n }\n\n handleChange = (value, e) => {\n /* hide props for bubbling events */\n e.stopPropagation();\n const numberValue = intOrDefault(Number(value), NaN);\n\n if (!Number.isNaN(numberValue)) {\n this.setState({ dirtyValue: value.slice(-2) });\n }\n };\n\n handleBlur = (e) => this.submitChanges(e);\n\n /* rewrite method */\n handleKeyDown = () => {};\n\n handleSelect = (value, e) => {\n this.dispatchOnChange(value, e);\n };\n\n handleVisibleChange = (visible) => this.setState({ visible });\n\n getAriaLabel = () => {\n const { _getI18nText: getI18nText } = this.asProps;\n if (this.field === 'hours') return getI18nText('hours');\n if (this.field === 'minutes') return getI18nText('minutes');\n return undefined;\n };\n\n render() {\n const SPickerInput = Root;\n const { styles, step, onSelect, time, size, disabled, onVisibleChange, ...other } =\n this.asProps;\n const { dirtyValue, visible } = this.state;\n const timeValue = time[MAP_FIELD_TO_TIME[this.field]];\n const value = dirtyValue === undefined ? timeValue : dirtyValue;\n const [min, max] = this.minMax();\n\n return sstyled(styles)(\n <Select\n {...other}\n interaction=\"focus\"\n size={size ? MAP_SIZE_SELECT[size] : false}\n onChange={callAllEventHandlers(onSelect, this.handleSelect)}\n onVisibleChange={callAllEventHandlers(onVisibleChange, this.handleVisibleChange)}\n visible={visible}\n value={timeValue}\n >\n <SPickerInput\n render={Select.Trigger}\n tag={Input.Value}\n ref={this.inputRef}\n size={size}\n disabled={disabled}\n neighborLocation={false}\n value={value}\n aria-label={this.getAriaLabel()}\n __excludeProps={[\n 'aria-haspopup',\n 'aria-controls',\n 'aria-flowto',\n 'aria-expanded',\n 'aria-autocomplete',\n 'role',\n ]}\n onChange={this.handleChange}\n onBlur={this.handleBlur}\n onKeyDown={this.handleKeyDown}\n />\n <Select.Menu aria-hidden=\"true\" hMax={180}>\n {getOptions(min, max, step)}\n </Select.Menu>\n </Select>,\n );\n }\n}\n\nclass Hours extends ItemPicker {\n field = 'hours';\n\n minMax() {\n const { is12Hour } = this.asProps;\n if (is12Hour) {\n return [1, 12];\n } else {\n return [0, 23];\n }\n }\n\n nextInput() {\n if (this.asProps.minutesInputRef.current) {\n this.setState({ visible: false });\n this.asProps.minutesInputRef.current.focus();\n }\n }\n\n handleKeyDown = (e) => {\n const { currentTarget } = e;\n if (e.keyCode === 13) this.submitChanges(e);\n if (e.keyCode === 39) {\n if (\n currentTarget.selectionStart >= currentTarget.value.length &&\n currentTarget.selectionStart === currentTarget.selectionEnd\n ) {\n e.preventDefault();\n this.nextInput();\n }\n }\n };\n\n componentDidUpdate(prevProps, prevState) {\n const { dirtyValue } = this.state;\n if (prevState.dirtyValue === undefined || dirtyValue === undefined) return;\n\n if (prevState.dirtyValue.length === 1 && dirtyValue.length === 2) {\n this.nextInput();\n }\n }\n}\n\nclass Minutes extends ItemPicker {\n field = 'minutes';\n\n minMax() {\n return [0, 59];\n }\n\n prevFocus() {\n if (this.asProps.hoursInputRef.current) {\n this.setState({ visible: false });\n this.asProps.hoursInputRef.current.focus();\n }\n }\n\n handleKeyDown = (e) => {\n const { currentTarget } = e;\n if (e.keyCode === 13) this.submitChanges(e);\n if (e.keyCode === 37) {\n if (\n currentTarget.selectionStart <= 0 &&\n currentTarget.selectionStart === currentTarget.selectionEnd\n ) {\n e.preventDefault();\n this.prevFocus();\n }\n }\n if (e.keyCode === 8) {\n if (currentTarget.value.length === 0) {\n e.preventDefault();\n this.prevFocus();\n }\n }\n };\n}\n\nexport { Hours, Minutes };\n"],"mappings":"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"}
1
+ {"version":3,"file":"PickerInput.js","names":["React","Input","Select","intOrDefault","withLeadingZero","Component","sstyled","Root","callAllEventHandlers","MAP_FIELD_TO_TIME","hours","minutes","MAP_SIZE_SELECT","m","l","getOptions","min","max","step","arguments","length","undefined","Number","toFixed","options","Array","fill","numValue","map","i","index","value","String","createElement","Option","key","ItemPicker","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","args","_key","call","apply","concat","_defineProperty","_assertThisInitialized","createRef","dirtyValue","visible","_this$minMax","minMax","_this$minMax2","_slicedToArray","Math","e","stopPropagation","numberValue","NaN","isNaN","setState","slice","submitChanges","dispatchOnChange","getI18nText","asProps","_getI18nText","field","_createClass","event","$onValueChange","state","parseValueWithMinMax","render","_ref","_ref2","SPickerInput","Trigger","_this$asProps","styles","onSelect","time","size","disabled","onVisibleChange","other","_objectWithoutProperties","_excluded","_this$state","timeValue","_this$minMax3","_this$minMax4","cn","_objectSpread","handleSelect","handleVisibleChange","_assignProps","Value","inputRef","getAriaLabel","handleChange","handleBlur","handleKeyDown","Menu","hMax","placeholder","Hours","_ItemPicker","_super2","_this2","_len2","_key2","currentTarget","keyCode","selectionStart","selectionEnd","preventDefault","nextInput","is12Hour","minutesInputRef","current","focus","componentDidUpdate","prevProps","prevState","Minutes","_ItemPicker2","_super3","_this3","_len3","_key3","prevFocus","hoursInputRef"],"sources":["../../src/PickerInput.jsx"],"sourcesContent":["import React from 'react';\nimport Input from '@semcore/input';\nimport Select from '@semcore/select';\nimport { intOrDefault, withLeadingZero } from './TimePicker';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\n\nconst MAP_FIELD_TO_TIME = {\n hours: 0,\n minutes: 1,\n};\n\nconst MAP_SIZE_SELECT = {\n m: 'm',\n l: 'l',\n};\n\nfunction getOptions(min, max, step = 1) {\n const length = Number(((max + 1 - min) / step).toFixed(0));\n const options = Array(length).fill('');\n let numValue = min;\n return options.map((i, index) => {\n numValue = index === 0 ? numValue : numValue + step;\n const value = withLeadingZero(String(numValue));\n return (\n <Select.Option value={value} key={value}>\n {value}\n </Select.Option>\n );\n });\n}\n\nclass ItemPicker extends Component {\n static defaultProps = {\n placeholder: '00',\n };\n\n inputRef = React.createRef();\n\n minMax() {\n return [];\n }\n\n state = {\n dirtyValue: undefined,\n visible: false,\n };\n\n parseValueWithMinMax = (value) => {\n const [min, max] = this.minMax();\n return String(Math.max(min, Math.min(max, value)));\n };\n\n dispatchOnChange(value, event) {\n this.setState({ dirtyValue: undefined });\n this.asProps.$onValueChange(value, this.field, event);\n }\n\n submitChanges(event) {\n let { dirtyValue } = this.state;\n if (dirtyValue !== undefined) {\n // if changes value\n if (dirtyValue) dirtyValue = this.parseValueWithMinMax(dirtyValue); // if not \"\"\n this.dispatchOnChange(dirtyValue, event);\n }\n }\n\n handleChange = (value, e) => {\n /* hide props for bubbling events */\n e.stopPropagation();\n const numberValue = intOrDefault(Number(value), NaN);\n\n if (!Number.isNaN(numberValue)) {\n this.setState({ dirtyValue: value.slice(-2) });\n }\n };\n\n handleBlur = (e) => this.submitChanges(e);\n\n /* rewrite method */\n handleKeyDown = () => {};\n\n handleSelect = (value, e) => {\n this.dispatchOnChange(value, e);\n };\n\n handleVisibleChange = (visible) => this.setState({ visible });\n\n getAriaLabel = () => {\n const { _getI18nText: getI18nText } = this.asProps;\n if (this.field === 'hours') return getI18nText('hours');\n if (this.field === 'minutes') return getI18nText('minutes');\n return undefined;\n };\n\n render() {\n const SPickerInput = Root;\n const { styles, step, onSelect, time, size, disabled, onVisibleChange, ...other } =\n this.asProps;\n const { dirtyValue, visible } = this.state;\n const timeValue = time[MAP_FIELD_TO_TIME[this.field]];\n const value = dirtyValue === undefined ? timeValue : dirtyValue;\n const [min, max] = this.minMax();\n\n return sstyled(styles)(\n <Select\n {...other}\n interaction=\"focus\"\n size={size ? MAP_SIZE_SELECT[size] : false}\n onChange={callAllEventHandlers(onSelect, this.handleSelect)}\n onVisibleChange={callAllEventHandlers(onVisibleChange, this.handleVisibleChange)}\n visible={visible}\n value={timeValue}\n >\n <SPickerInput\n render={Select.Trigger}\n tag={Input.Value}\n ref={this.inputRef}\n size={size}\n disabled={disabled}\n neighborLocation={false}\n value={value}\n aria-label={this.getAriaLabel()}\n __excludeProps={[\n 'aria-haspopup',\n 'aria-controls',\n 'aria-flowto',\n 'aria-expanded',\n 'aria-autocomplete',\n 'role',\n ]}\n onChange={this.handleChange}\n onBlur={this.handleBlur}\n onKeyDown={this.handleKeyDown}\n />\n <Select.Menu aria-hidden=\"true\" hMax={180}>\n {getOptions(min, max, step)}\n </Select.Menu>\n </Select>,\n );\n }\n}\n\nclass Hours extends ItemPicker {\n field = 'hours';\n\n minMax() {\n const { is12Hour } = this.asProps;\n if (is12Hour) {\n return [1, 12];\n } else {\n return [0, 23];\n }\n }\n\n nextInput() {\n if (this.asProps.minutesInputRef.current) {\n this.setState({ visible: false });\n this.asProps.minutesInputRef.current.focus();\n }\n }\n\n handleKeyDown = (e) => {\n const { currentTarget } = e;\n if (e.keyCode === 13) this.submitChanges(e);\n if (e.keyCode === 39) {\n if (\n currentTarget.selectionStart >= currentTarget.value.length &&\n currentTarget.selectionStart === currentTarget.selectionEnd\n ) {\n e.preventDefault();\n this.nextInput();\n }\n }\n };\n\n componentDidUpdate(prevProps, prevState) {\n const { dirtyValue } = this.state;\n if (prevState.dirtyValue === undefined || dirtyValue === undefined) return;\n\n if (prevState.dirtyValue.length === 1 && dirtyValue.length === 2) {\n this.nextInput();\n }\n }\n}\n\nclass Minutes extends ItemPicker {\n field = 'minutes';\n\n minMax() {\n return [0, 59];\n }\n\n prevFocus() {\n if (this.asProps.hoursInputRef.current) {\n this.setState({ visible: false });\n this.asProps.hoursInputRef.current.focus();\n }\n }\n\n handleKeyDown = (e) => {\n const { currentTarget } = e;\n if (e.keyCode === 13) this.submitChanges(e);\n if (e.keyCode === 37) {\n if (\n currentTarget.selectionStart <= 0 &&\n currentTarget.selectionStart === currentTarget.selectionEnd\n ) {\n e.preventDefault();\n this.prevFocus();\n }\n }\n if (e.keyCode === 8) {\n if (currentTarget.value.length === 0) {\n e.preventDefault();\n this.prevFocus();\n }\n }\n };\n}\n\nexport { Hours, Minutes };\n"],"mappings":"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"}