@commercetools-uikit/time-input 14.0.3 → 14.0.4

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.
@@ -3,14 +3,13 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
6
- var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
7
6
  var _pt = require('prop-types');
8
7
  var _padStartInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/pad-start');
9
8
  var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
9
+ var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
10
10
  var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
11
11
  var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
12
12
  var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
13
- var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
14
13
  var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
15
14
  var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
16
15
  var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
@@ -34,10 +33,10 @@ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e };
34
33
  var _pt__default = /*#__PURE__*/_interopDefault(_pt);
35
34
  var _padStartInstanceProperty__default = /*#__PURE__*/_interopDefault(_padStartInstanceProperty);
36
35
  var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
36
+ var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
37
37
  var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
38
38
  var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
39
39
  var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
40
- var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
41
40
  var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachInstanceProperty);
42
41
  var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
43
42
  var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
@@ -275,17 +274,24 @@ var format24hr = function format24hr(_ref) {
275
274
 
276
275
  var hasMilliseconds = function hasMilliseconds(parsedTime) {
277
276
  return parsedTime.milliseconds !== 0;
277
+ }; // Calling `eventTarget.dispatchEvent` does not natively work in React.
278
+ // Instead, we need to grab the element value setter, set the value, and dispatch a change event.
279
+
280
+
281
+ var dispatchReactChangeEvent = function dispatchReactChangeEvent(node, value) {
282
+ var _Object$getOwnPropert;
283
+
284
+ var setValue = (_Object$getOwnPropert = _Object$getOwnPropertyDescriptor__default["default"](node.constructor.prototype, 'value')) === null || _Object$getOwnPropert === void 0 ? void 0 : _Object$getOwnPropert.set;
285
+ setValue === null || setValue === void 0 ? void 0 : setValue.call(node, value);
286
+ node.dispatchEvent(new Event('change', {
287
+ bubbles: true
288
+ }));
278
289
  };
279
290
 
280
291
  var TimeInput = function TimeInput(props) {
281
292
  var id = hooks.useFieldId(props.id, sequentialId);
282
293
  var intl = reactIntl.useIntl();
283
- var element = react$1.useRef(null); // Keep internal state to allow clearing the value manually (`onClear`).
284
-
285
- var _useState = react$1.useState(props.value),
286
- _useState2 = _slicedToArray(_useState, 2),
287
- controlledValue = _useState2[0],
288
- setControlledValue = _useState2[1];
294
+ var element = react$1.useRef(null);
289
295
 
290
296
  if (!props.isReadOnly) {
291
297
  process.env.NODE_ENV !== "production" ? utils.warning(typeof props.onChange === 'function', 'TimeInput: `onChange` is required when input is not read only.') : void 0;
@@ -295,7 +301,6 @@ var TimeInput = function TimeInput(props) {
295
301
  onChange = props.onChange;
296
302
  var handleChange = react$1.useCallback(function (event) {
297
303
  var rawValue = event.target.value;
298
- setControlledValue(rawValue);
299
304
  var formattedValue = TimeInput.toLocaleTime(rawValue, intl.locale);
300
305
  event.target.value = formattedValue;
301
306
  onChange === null || onChange === void 0 ? void 0 : onChange(event);
@@ -307,16 +312,17 @@ var TimeInput = function TimeInput(props) {
307
312
  onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
308
313
  }, [intl.locale, onBlur]);
309
314
  var handleClear = react$1.useCallback(function () {
310
- var _element$current;
311
-
312
- setControlledValue('');
313
- (_element$current = element.current) === null || _element$current === void 0 ? void 0 : _element$current.dispatchEvent(new Event('change'));
315
+ if (element.current) {
316
+ dispatchReactChangeEvent(element.current, '');
317
+ }
314
318
  }, []); // if locale has changed trigger a new change event
315
319
 
316
320
  react$1.useEffect(function () {
317
- var _element$current2;
321
+ if (element.current) {
322
+ dispatchReactChangeEvent(element.current, props.value);
323
+ } // Only subscribe this effect to `intl.locale` changes.
324
+ // eslint-disable-next-line react-hooks/exhaustive-deps
318
325
 
319
- (_element$current2 = element.current) === null || _element$current2 === void 0 ? void 0 : _element$current2.dispatchEvent(new Event('change'));
320
326
  }, [intl.locale]);
321
327
  return jsxRuntime.jsx(Constraints__default["default"].Horizontal, {
322
328
  max: props.horizontalConstraint,
@@ -325,7 +331,7 @@ var TimeInput = function TimeInput(props) {
325
331
  id: id,
326
332
  name: props.name,
327
333
  autoComplete: props.autoComplete,
328
- value: controlledValue,
334
+ value: props.value,
329
335
  onChange: handleChange,
330
336
  onBlur: handleBlur,
331
337
  onFocus: props.onFocus,
@@ -398,7 +404,7 @@ TimeInput.toLocaleTime = function (time, locale) {
398
404
  var TimeInput$1 = TimeInput;
399
405
 
400
406
  // NOTE: This string will be replaced on build time with the package version.
401
- var version = "14.0.3";
407
+ var version = "14.0.4";
402
408
 
403
409
  exports["default"] = TimeInput$1;
404
410
  exports.version = version;
@@ -3,14 +3,13 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
6
- var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
7
6
  require('prop-types');
8
7
  var _padStartInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/pad-start');
9
8
  var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
9
+ var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
10
10
  var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
11
11
  var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
12
12
  var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
13
- var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
14
13
  var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
15
14
  var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
16
15
  var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
@@ -33,10 +32,10 @@ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e };
33
32
 
34
33
  var _padStartInstanceProperty__default = /*#__PURE__*/_interopDefault(_padStartInstanceProperty);
35
34
  var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
35
+ var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
36
36
  var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
37
37
  var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
38
38
  var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
39
- var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
40
39
  var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachInstanceProperty);
41
40
  var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
42
41
  var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
@@ -256,17 +255,24 @@ var format24hr = function format24hr(_ref) {
256
255
 
257
256
  var hasMilliseconds = function hasMilliseconds(parsedTime) {
258
257
  return parsedTime.milliseconds !== 0;
258
+ }; // Calling `eventTarget.dispatchEvent` does not natively work in React.
259
+ // Instead, we need to grab the element value setter, set the value, and dispatch a change event.
260
+
261
+
262
+ var dispatchReactChangeEvent = function dispatchReactChangeEvent(node, value) {
263
+ var _Object$getOwnPropert;
264
+
265
+ var setValue = (_Object$getOwnPropert = _Object$getOwnPropertyDescriptor__default["default"](node.constructor.prototype, 'value')) === null || _Object$getOwnPropert === void 0 ? void 0 : _Object$getOwnPropert.set;
266
+ setValue === null || setValue === void 0 ? void 0 : setValue.call(node, value);
267
+ node.dispatchEvent(new Event('change', {
268
+ bubbles: true
269
+ }));
259
270
  };
260
271
 
261
272
  var TimeInput = function TimeInput(props) {
262
273
  var id = hooks.useFieldId(props.id, sequentialId);
263
274
  var intl = reactIntl.useIntl();
264
- var element = react$1.useRef(null); // Keep internal state to allow clearing the value manually (`onClear`).
265
-
266
- var _useState = react$1.useState(props.value),
267
- _useState2 = _slicedToArray(_useState, 2),
268
- controlledValue = _useState2[0],
269
- setControlledValue = _useState2[1];
275
+ var element = react$1.useRef(null);
270
276
 
271
277
  if (!props.isReadOnly) ;
272
278
 
@@ -274,7 +280,6 @@ var TimeInput = function TimeInput(props) {
274
280
  onChange = props.onChange;
275
281
  var handleChange = react$1.useCallback(function (event) {
276
282
  var rawValue = event.target.value;
277
- setControlledValue(rawValue);
278
283
  var formattedValue = TimeInput.toLocaleTime(rawValue, intl.locale);
279
284
  event.target.value = formattedValue;
280
285
  onChange === null || onChange === void 0 ? void 0 : onChange(event);
@@ -286,16 +291,17 @@ var TimeInput = function TimeInput(props) {
286
291
  onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
287
292
  }, [intl.locale, onBlur]);
288
293
  var handleClear = react$1.useCallback(function () {
289
- var _element$current;
290
-
291
- setControlledValue('');
292
- (_element$current = element.current) === null || _element$current === void 0 ? void 0 : _element$current.dispatchEvent(new Event('change'));
294
+ if (element.current) {
295
+ dispatchReactChangeEvent(element.current, '');
296
+ }
293
297
  }, []); // if locale has changed trigger a new change event
294
298
 
295
299
  react$1.useEffect(function () {
296
- var _element$current2;
300
+ if (element.current) {
301
+ dispatchReactChangeEvent(element.current, props.value);
302
+ } // Only subscribe this effect to `intl.locale` changes.
303
+ // eslint-disable-next-line react-hooks/exhaustive-deps
297
304
 
298
- (_element$current2 = element.current) === null || _element$current2 === void 0 ? void 0 : _element$current2.dispatchEvent(new Event('change'));
299
305
  }, [intl.locale]);
300
306
  return jsxRuntime.jsx(Constraints__default["default"].Horizontal, {
301
307
  max: props.horizontalConstraint,
@@ -304,7 +310,7 @@ var TimeInput = function TimeInput(props) {
304
310
  id: id,
305
311
  name: props.name,
306
312
  autoComplete: props.autoComplete,
307
- value: controlledValue,
313
+ value: props.value,
308
314
  onChange: handleChange,
309
315
  onBlur: handleBlur,
310
316
  onFocus: props.onFocus,
@@ -361,7 +367,7 @@ TimeInput.toLocaleTime = function (time, locale) {
361
367
  var TimeInput$1 = TimeInput;
362
368
 
363
369
  // NOTE: This string will be replaced on build time with the package version.
364
- var version = "14.0.3";
370
+ var version = "14.0.4";
365
371
 
366
372
  exports["default"] = TimeInput$1;
367
373
  exports.version = version;
@@ -1,17 +1,16 @@
1
1
  import _defineProperty from '@babel/runtime-corejs3/helpers/esm/defineProperty';
2
- import _slicedToArray from '@babel/runtime-corejs3/helpers/esm/slicedToArray';
3
2
  import _pt from 'prop-types';
4
3
  import _padStartInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/pad-start';
5
4
  import _concatInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/concat';
5
+ import _Object$getOwnPropertyDescriptor from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor';
6
6
  import _Object$keys from '@babel/runtime-corejs3/core-js-stable/object/keys';
7
7
  import _Object$getOwnPropertySymbols from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols';
8
8
  import _filterInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/filter';
9
- import _Object$getOwnPropertyDescriptor from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor';
10
9
  import _forEachInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/for-each';
11
10
  import _Object$getOwnPropertyDescriptors from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors';
12
11
  import _Object$defineProperties from '@babel/runtime-corejs3/core-js-stable/object/define-properties';
13
12
  import _Object$defineProperty from '@babel/runtime-corejs3/core-js-stable/object/define-property';
14
- import { forwardRef, useRef, useState, useCallback, useEffect } from 'react';
13
+ import { forwardRef, useRef, useCallback, useEffect } from 'react';
15
14
  import { defineMessages, useIntl } from 'react-intl';
16
15
  import Constraints from '@commercetools-uikit/constraints';
17
16
  import { filterDataAttributes, createSequentialId, warning, parseTime } from '@commercetools-uikit/utils';
@@ -253,17 +252,24 @@ var format24hr = function format24hr(_ref) {
253
252
 
254
253
  var hasMilliseconds = function hasMilliseconds(parsedTime) {
255
254
  return parsedTime.milliseconds !== 0;
255
+ }; // Calling `eventTarget.dispatchEvent` does not natively work in React.
256
+ // Instead, we need to grab the element value setter, set the value, and dispatch a change event.
257
+
258
+
259
+ var dispatchReactChangeEvent = function dispatchReactChangeEvent(node, value) {
260
+ var _Object$getOwnPropert;
261
+
262
+ var setValue = (_Object$getOwnPropert = _Object$getOwnPropertyDescriptor(node.constructor.prototype, 'value')) === null || _Object$getOwnPropert === void 0 ? void 0 : _Object$getOwnPropert.set;
263
+ setValue === null || setValue === void 0 ? void 0 : setValue.call(node, value);
264
+ node.dispatchEvent(new Event('change', {
265
+ bubbles: true
266
+ }));
256
267
  };
257
268
 
258
269
  var TimeInput = function TimeInput(props) {
259
270
  var id = useFieldId(props.id, sequentialId);
260
271
  var intl = useIntl();
261
- var element = useRef(null); // Keep internal state to allow clearing the value manually (`onClear`).
262
-
263
- var _useState = useState(props.value),
264
- _useState2 = _slicedToArray(_useState, 2),
265
- controlledValue = _useState2[0],
266
- setControlledValue = _useState2[1];
272
+ var element = useRef(null);
267
273
 
268
274
  if (!props.isReadOnly) {
269
275
  process.env.NODE_ENV !== "production" ? warning(typeof props.onChange === 'function', 'TimeInput: `onChange` is required when input is not read only.') : void 0;
@@ -273,7 +279,6 @@ var TimeInput = function TimeInput(props) {
273
279
  onChange = props.onChange;
274
280
  var handleChange = useCallback(function (event) {
275
281
  var rawValue = event.target.value;
276
- setControlledValue(rawValue);
277
282
  var formattedValue = TimeInput.toLocaleTime(rawValue, intl.locale);
278
283
  event.target.value = formattedValue;
279
284
  onChange === null || onChange === void 0 ? void 0 : onChange(event);
@@ -285,16 +290,17 @@ var TimeInput = function TimeInput(props) {
285
290
  onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
286
291
  }, [intl.locale, onBlur]);
287
292
  var handleClear = useCallback(function () {
288
- var _element$current;
289
-
290
- setControlledValue('');
291
- (_element$current = element.current) === null || _element$current === void 0 ? void 0 : _element$current.dispatchEvent(new Event('change'));
293
+ if (element.current) {
294
+ dispatchReactChangeEvent(element.current, '');
295
+ }
292
296
  }, []); // if locale has changed trigger a new change event
293
297
 
294
298
  useEffect(function () {
295
- var _element$current2;
299
+ if (element.current) {
300
+ dispatchReactChangeEvent(element.current, props.value);
301
+ } // Only subscribe this effect to `intl.locale` changes.
302
+ // eslint-disable-next-line react-hooks/exhaustive-deps
296
303
 
297
- (_element$current2 = element.current) === null || _element$current2 === void 0 ? void 0 : _element$current2.dispatchEvent(new Event('change'));
298
304
  }, [intl.locale]);
299
305
  return jsx(Constraints.Horizontal, {
300
306
  max: props.horizontalConstraint,
@@ -303,7 +309,7 @@ var TimeInput = function TimeInput(props) {
303
309
  id: id,
304
310
  name: props.name,
305
311
  autoComplete: props.autoComplete,
306
- value: controlledValue,
312
+ value: props.value,
307
313
  onChange: handleChange,
308
314
  onBlur: handleBlur,
309
315
  onFocus: props.onFocus,
@@ -376,6 +382,6 @@ TimeInput.toLocaleTime = function (time, locale) {
376
382
  var TimeInput$1 = TimeInput;
377
383
 
378
384
  // NOTE: This string will be replaced on build time with the package version.
379
- var version = "14.0.3";
385
+ var version = "14.0.4";
380
386
 
381
387
  export { TimeInput$1 as default, version };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@commercetools-uikit/time-input",
3
3
  "description": "The TimeInput component allows the user to select a time.",
4
- "version": "14.0.3",
4
+ "version": "14.0.4",
5
5
  "bugs": "https://github.com/commercetools/ui-kit/issues",
6
6
  "repository": {
7
7
  "type": "git",