react-date-picker
Advanced tools
Comparing version 8.0.1 to 8.0.2
@@ -44,7 +44,7 @@ "use strict"; | ||
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } | ||
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } | ||
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } | ||
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } | ||
function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } | ||
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } | ||
@@ -59,23 +59,31 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } | ||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } | ||
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } | ||
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } | ||
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } | ||
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } | ||
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } | ||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } | ||
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } | ||
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } | ||
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } | ||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | ||
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } | ||
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } | ||
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } | ||
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } | ||
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } | ||
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } | ||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } | ||
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); } | ||
var defaultMinDate = new Date(-8.64e15); | ||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } | ||
var defaultMinDate = new Date('0001-01-01'); | ||
var defaultMaxDate = new Date(8.64e15); | ||
@@ -153,4 +161,4 @@ var allViews = ['century', 'decade', 'year', 'month']; | ||
function isValidInput(element) { | ||
return element.tagName === 'INPUT' && element.type === 'number'; | ||
function isInternalInput(element) { | ||
return element.getAttribute('data-input') === 'true'; | ||
} | ||
@@ -163,3 +171,3 @@ | ||
nextElement = nextElement[property]; | ||
} while (nextElement && !isValidInput(nextElement)); | ||
} while (nextElement && !isInternalInput(nextElement)); | ||
@@ -182,3 +190,5 @@ return nextElement; | ||
return placeholder.split(pattern).reduce(function (arr, element, index) { | ||
var divider = element && // eslint-disable-next-line react/no-array-index-key | ||
var divider = element && | ||
/*#__PURE__*/ | ||
// eslint-disable-next-line react/no-array-index-key | ||
_react["default"].createElement(_Divider["default"], { | ||
@@ -211,5 +221,5 @@ key: "separator_".concat(index) | ||
var _super = _createSuper(DateInput); | ||
function DateInput() { | ||
var _getPrototypeOf2; | ||
var _this; | ||
@@ -223,3 +233,3 @@ | ||
_this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(DateInput)).call.apply(_getPrototypeOf2, [this].concat(args))); | ||
_this = _super.call.apply(_super, [this].concat(args)); | ||
@@ -371,3 +381,3 @@ _defineProperty(_assertThisInitialized(_this), "state", { | ||
var showLeadingZerosFromFormat = currentMatch && currentMatch.length === 2; | ||
return _react["default"].createElement(_DayInput["default"], _extends({ | ||
return /*#__PURE__*/_react["default"].createElement(_DayInput["default"], _extends({ | ||
key: "day" | ||
@@ -401,3 +411,3 @@ }, _this.commonInputProps, { | ||
if (currentMatch.length > 2) { | ||
return _react["default"].createElement(_MonthSelect["default"], _extends({ | ||
return /*#__PURE__*/_react["default"].createElement(_MonthSelect["default"], _extends({ | ||
key: "month" | ||
@@ -416,3 +426,3 @@ }, _this.commonInputProps, { | ||
var showLeadingZerosFromFormat = currentMatch && currentMatch.length === 2; | ||
return _react["default"].createElement(_MonthInput["default"], _extends({ | ||
return /*#__PURE__*/_react["default"].createElement(_MonthInput["default"], _extends({ | ||
key: "month" | ||
@@ -435,3 +445,3 @@ }, _this.commonInputProps, { | ||
var year = _this.state.year; | ||
return _react["default"].createElement(_YearInput["default"], _extends({ | ||
return /*#__PURE__*/_react["default"].createElement(_YearInput["default"], _extends({ | ||
key: "year" | ||
@@ -510,3 +520,3 @@ }, _this.commonInputProps, { | ||
var value = this.state.value; | ||
return _react["default"].createElement(_NativeInput["default"], { | ||
return /*#__PURE__*/_react["default"].createElement(_NativeInput["default"], { | ||
key: "date", | ||
@@ -532,3 +542,3 @@ ariaLabel: nativeInputAriaLabel, | ||
return _react["default"].createElement("div", { | ||
return /*#__PURE__*/_react["default"].createElement("div", { | ||
className: className, | ||
@@ -556,11 +566,2 @@ onClick: this.onClick | ||
return (0, _dateFormatter.getFormatter)(options); | ||
} // eslint-disable-next-line class-methods-use-this | ||
}, { | ||
key: "formatNumber", | ||
get: function get() { | ||
var options = { | ||
useGrouping: false | ||
}; | ||
return (0, _dateFormatter.getFormatter)(options); | ||
} | ||
@@ -587,3 +588,19 @@ }, { | ||
var date = new Date(year, monthIndex, day); | ||
return this.formatDate(locale, date).replace(this.formatNumber(locale, year), 'y').replace(this.formatNumber(locale, monthIndex + 1), 'M').replace(this.formatNumber(locale, day), 'd'); | ||
var formattedDate = this.formatDate(locale, date); | ||
var datePieces = ['year', 'month', 'day']; | ||
var datePieceReplacements = ['y', 'M', 'd']; | ||
function formatDatePiece(name, dateToFormat) { | ||
return (0, _dateFormatter.getFormatter)(_defineProperty({ | ||
useGrouping: false | ||
}, name, 'numeric'))(locale, dateToFormat).match(/\d{1,}/); | ||
} | ||
var placeholder = formattedDate; | ||
datePieces.forEach(function (datePiece, index) { | ||
var formattedDatePiece = formatDatePiece(datePiece, date); | ||
var datePieceReplacement = datePieceReplacements[index]; | ||
placeholder = placeholder.replace(formattedDatePiece, datePieceReplacement); | ||
}); | ||
return placeholder; | ||
} | ||
@@ -590,0 +607,0 @@ }, { |
@@ -49,3 +49,3 @@ "use strict"; | ||
var minDay = (0, _utils.safeMax)(1, isSameMonth(minDate) && (0, _dateUtils.getDate)(minDate)); | ||
return _react["default"].createElement(_Input["default"], _extends({ | ||
return /*#__PURE__*/_react["default"].createElement(_Input["default"], _extends({ | ||
max: maxDay, | ||
@@ -52,0 +52,0 @@ min: minDay, |
@@ -64,10 +64,11 @@ "use strict"; | ||
var numberRegExp = /[0-9]/; | ||
function makeOnKeyPress(maxLength) { | ||
return function onKeyPress(event) { | ||
var key = event.key, | ||
input = event.target; | ||
var value = input.value; | ||
var isNumberKey = !isNaN(parseInt(key, 10)); | ||
var selection = getSelectionString(); | ||
var value = event.target.value; | ||
if (numberRegExp.test(event.key) && (selection || value.length < maxLength)) { | ||
if (isNumberKey && (selection || value.length < maxLength)) { | ||
return; | ||
@@ -101,6 +102,6 @@ } | ||
var maxLength = max.toString().length; | ||
return [hasLeadingZero && _react["default"].createElement("span", { | ||
return [hasLeadingZero && /*#__PURE__*/_react["default"].createElement("span", { | ||
key: "leadingZero", | ||
className: "".concat(className, "__leadingZero") | ||
}, "0"), _react["default"].createElement("input", { | ||
}, "0"), /*#__PURE__*/_react["default"].createElement("input", { | ||
key: "input", | ||
@@ -111,2 +112,3 @@ "aria-label": ariaLabel, | ||
className: (0, _mergeClassNames["default"])("".concat(className, "__input"), "".concat(className, "__").concat(nameForClass || name), hasLeadingZero && "".concat(className, "__input--hasLeadingZero")), | ||
"data-input": "true", | ||
disabled: disabled, | ||
@@ -146,2 +148,3 @@ max: max, | ||
Input.propTypes = { | ||
ariaLabel: _propTypes["default"].string, | ||
className: _propTypes["default"].string.isRequired, | ||
@@ -148,0 +151,0 @@ disabled: _propTypes["default"].bool, |
@@ -40,3 +40,3 @@ "use strict"; | ||
var minMonth = (0, _utils.safeMax)(1, isSameYear(minDate) && (0, _dateUtils.getMonthHuman)(minDate)); | ||
return _react["default"].createElement(_Input["default"], _extends({ | ||
return /*#__PURE__*/_react["default"].createElement(_Input["default"], _extends({ | ||
max: maxMonth, | ||
@@ -43,0 +43,0 @@ min: minMonth, |
@@ -26,10 +26,14 @@ "use strict"; | ||
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } | ||
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } | ||
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } | ||
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } | ||
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } | ||
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } | ||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } | ||
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); } | ||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } | ||
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } | ||
@@ -66,5 +70,6 @@ | ||
var formatter = _short ? _dateFormatter.formatShortMonth : _dateFormatter.formatMonth; | ||
return _react["default"].createElement("select", _extends({ | ||
return /*#__PURE__*/_react["default"].createElement("select", _extends({ | ||
"aria-label": ariaLabel, | ||
className: (0, _mergeClassNames["default"])("".concat(className, "__input"), "".concat(className, "__").concat(name)), | ||
"data-input": "true", | ||
name: name, | ||
@@ -77,3 +82,3 @@ ref: function ref(_ref2) { | ||
value: value !== null ? value : '' | ||
}, otherProps), !value && _react["default"].createElement("option", { | ||
}, otherProps), !value && /*#__PURE__*/_react["default"].createElement("option", { | ||
value: "" | ||
@@ -83,3 +88,3 @@ }, placeholder), dates.map(function (date) { | ||
var disabled = month < minMonth || month > maxMonth; | ||
return _react["default"].createElement("option", { | ||
return /*#__PURE__*/_react["default"].createElement("option", { | ||
key: month, | ||
@@ -86,0 +91,0 @@ disabled: disabled, |
@@ -68,3 +68,3 @@ "use strict"; | ||
return _react["default"].createElement("input", { | ||
return /*#__PURE__*/_react["default"].createElement("input", { | ||
"aria-label": ariaLabel, | ||
@@ -71,0 +71,0 @@ disabled: disabled, |
@@ -47,3 +47,3 @@ "use strict"; | ||
return _react["default"].createElement(_Input["default"], _extends({ | ||
return /*#__PURE__*/_react["default"].createElement(_Input["default"], _extends({ | ||
max: maxYear, | ||
@@ -50,0 +50,0 @@ min: minYear, |
@@ -24,4 +24,2 @@ "use strict"; | ||
var _utils = require("./shared/utils"); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } | ||
@@ -41,8 +39,12 @@ | ||
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } | ||
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } | ||
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } | ||
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } | ||
function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } | ||
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } | ||
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } | ||
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } | ||
@@ -56,11 +58,15 @@ | ||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } | ||
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } | ||
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } | ||
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } | ||
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } | ||
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } | ||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } | ||
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } | ||
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } | ||
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } | ||
@@ -76,5 +82,5 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | ||
var _super = _createSuper(DatePicker); | ||
function DatePicker() { | ||
var _getPrototypeOf2; | ||
var _this; | ||
@@ -88,3 +94,3 @@ | ||
_this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(DatePicker)).call.apply(_getPrototypeOf2, [this].concat(args))); | ||
_this = _super.call.apply(_super, [this].concat(args)); | ||
@@ -181,3 +187,4 @@ _defineProperty(_assertThisInitialized(_this), "state", {}); | ||
this.handleOutsideActionListeners(); | ||
(0, _utils.callIfDefined)(isOpen ? onCalendarOpen : onCalendarClose); | ||
var callback = isOpen ? onCalendarOpen : onCalendarClose; | ||
if (callback) callback(); | ||
} | ||
@@ -247,5 +254,5 @@ } | ||
}; | ||
return _react["default"].createElement("div", { | ||
return /*#__PURE__*/_react["default"].createElement("div", { | ||
className: "".concat(baseClassName, "__wrapper") | ||
}, _react["default"].createElement(_DateInput["default"], _extends({}, ariaLabelProps, placeholderProps, { | ||
}, /*#__PURE__*/_react["default"].createElement(_DateInput["default"], _extends({}, ariaLabelProps, placeholderProps, { | ||
autoFocus: autoFocus, | ||
@@ -266,3 +273,3 @@ className: "".concat(baseClassName, "__inputGroup"), | ||
value: valueFrom | ||
})), clearIcon !== null && _react["default"].createElement("button", { | ||
})), clearIcon !== null && /*#__PURE__*/_react["default"].createElement("button", { | ||
"aria-label": clearAriaLabel, | ||
@@ -274,3 +281,3 @@ className: "".concat(baseClassName, "__clear-button ").concat(baseClassName, "__button"), | ||
type: "button" | ||
}, clearIcon), calendarIcon !== null && !disableCalendar && _react["default"].createElement("button", { | ||
}, clearIcon), calendarIcon !== null && !disableCalendar && /*#__PURE__*/_react["default"].createElement("button", { | ||
"aria-label": calendarAriaLabel, | ||
@@ -303,5 +310,5 @@ className: "".concat(baseClassName, "__calendar-button ").concat(baseClassName, "__button"), | ||
var className = "".concat(baseClassName, "__calendar"); | ||
return _react["default"].createElement(_reactFit["default"], null, _react["default"].createElement("div", { | ||
return /*#__PURE__*/_react["default"].createElement(_reactFit["default"], null, /*#__PURE__*/_react["default"].createElement("div", { | ||
className: (0, _mergeClassNames["default"])(className, "".concat(className, "--").concat(isOpen ? 'open' : 'closed')) | ||
}, _react["default"].createElement(_reactCalendar["default"], _extends({ | ||
}, /*#__PURE__*/_react["default"].createElement(_reactCalendar["default"], _extends({ | ||
className: calendarClassName, | ||
@@ -321,3 +328,3 @@ onChange: this.onChange, | ||
var isOpen = this.state.isOpen; | ||
return _react["default"].createElement("div", _extends({ | ||
return /*#__PURE__*/_react["default"].createElement("div", _extends({ | ||
className: (0, _mergeClassNames["default"])(baseClassName, "".concat(baseClassName, "--").concat(isOpen ? 'open' : 'closed'), "".concat(baseClassName, "--").concat(disabled ? 'disabled' : 'enabled'), className) | ||
@@ -367,5 +374,5 @@ }, this.eventProps, { | ||
var CalendarIcon = _react["default"].createElement("svg", _extends({}, iconProps, { | ||
var CalendarIcon = /*#__PURE__*/_react["default"].createElement("svg", _extends({}, iconProps, { | ||
className: "".concat(baseClassName, "__calendar-button__icon ").concat(baseClassName, "__button__icon") | ||
}), _react["default"].createElement("rect", { | ||
}), /*#__PURE__*/_react["default"].createElement("rect", { | ||
fill: "none", | ||
@@ -376,3 +383,3 @@ height: "15", | ||
y: "2" | ||
}), _react["default"].createElement("line", { | ||
}), /*#__PURE__*/_react["default"].createElement("line", { | ||
x1: "6", | ||
@@ -382,3 +389,3 @@ x2: "6", | ||
y2: "4" | ||
}), _react["default"].createElement("line", { | ||
}), /*#__PURE__*/_react["default"].createElement("line", { | ||
x1: "13", | ||
@@ -390,5 +397,5 @@ x2: "13", | ||
var ClearIcon = _react["default"].createElement("svg", _extends({}, iconProps, { | ||
var ClearIcon = /*#__PURE__*/_react["default"].createElement("svg", _extends({}, iconProps, { | ||
className: "".concat(baseClassName, "__clear-button__icon ").concat(baseClassName, "__button__icon") | ||
}), _react["default"].createElement("line", { | ||
}), /*#__PURE__*/_react["default"].createElement("line", { | ||
x1: "4", | ||
@@ -398,3 +405,3 @@ x2: "15", | ||
y2: "15" | ||
}), _react["default"].createElement("line", { | ||
}), /*#__PURE__*/_react["default"].createElement("line", { | ||
x1: "15", | ||
@@ -401,0 +408,0 @@ x2: "4", |
@@ -16,3 +16,3 @@ "use strict"; | ||
var children = _ref.children; | ||
return _react["default"].createElement("span", { | ||
return /*#__PURE__*/_react["default"].createElement("span", { | ||
className: "react-date-picker__inputGroup__divider" | ||
@@ -19,0 +19,0 @@ }, children); |
@@ -14,10 +14,14 @@ "use strict"; | ||
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } | ||
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } | ||
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } | ||
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } | ||
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } | ||
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } | ||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } | ||
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); } | ||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } | ||
var allViews = ['century', 'decade', 'year', 'month']; | ||
@@ -24,0 +28,0 @@ var allValueTypes = [].concat(_toConsumableArray(allViews.slice(1)), ['day']); |
@@ -7,14 +7,17 @@ "use strict"; | ||
exports.between = between; | ||
exports.callIfDefined = callIfDefined; | ||
exports.safeMin = safeMin; | ||
exports.safeMax = safeMax; | ||
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } | ||
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } | ||
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } | ||
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } | ||
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } | ||
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } | ||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } | ||
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); } | ||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } | ||
/** | ||
@@ -38,19 +41,3 @@ * Returns a value no smaller than min and no larger than max. | ||
} | ||
/** | ||
* Calls a function, if it's defined, with specified arguments | ||
* @param {Function} fn | ||
* @param {Object} args | ||
*/ | ||
function callIfDefined(fn) { | ||
if (fn && typeof fn === 'function') { | ||
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
args[_key - 1] = arguments[_key]; | ||
} | ||
fn.apply(void 0, args); | ||
} | ||
} | ||
function isValidNumber(num) { | ||
@@ -61,4 +48,4 @@ return num !== null && num !== false && !Number.isNaN(Number(num)); | ||
function safeMin() { | ||
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { | ||
args[_key2] = arguments[_key2]; | ||
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { | ||
args[_key] = arguments[_key]; | ||
} | ||
@@ -70,4 +57,4 @@ | ||
function safeMax() { | ||
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { | ||
args[_key3] = arguments[_key3]; | ||
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { | ||
args[_key2] = arguments[_key2]; | ||
} | ||
@@ -74,0 +61,0 @@ |
{ | ||
"name": "react-date-picker", | ||
"version": "8.0.1", | ||
"version": "8.0.2", | ||
"description": "A date picker for your React app.", | ||
@@ -8,5 +8,9 @@ "main": "dist/entry.js", | ||
"types": "./index.d.ts", | ||
"workspaces": [ | ||
".", | ||
"test" | ||
], | ||
"scripts": { | ||
"build": "yarn build-js && yarn copy-styles && yarn build-styles && yarn copy-types", | ||
"build-js": "babel src -d dist --ignore **/*.spec.js,**/*.spec.jsx", | ||
"build-js": "babel src -d dist --ignore \"**/*.spec.js,**/*.spec.jsx\"", | ||
"build-styles": "lessc ./dist/DatePicker.less ./dist/DatePicker.css", | ||
@@ -77,3 +81,3 @@ "clean": "rimraf dist", | ||
"@types/react-calendar": "^3.0.0", | ||
"@wojtekmaj/date-utils": "^1.0.2", | ||
"@wojtekmaj/date-utils": "^1.0.3", | ||
"get-user-locale": "^1.2.0", | ||
@@ -88,18 +92,17 @@ "make-event-props": "^1.1.0", | ||
"devDependencies": { | ||
"@babel/cli": "^7.5.5", | ||
"@babel/core": "^7.5.5", | ||
"@babel/plugin-proposal-class-properties": "^7.5.5", | ||
"@babel/preset-env": "^7.5.5", | ||
"@babel/preset-react": "^7.0.0", | ||
"@babel/cli": "^7.8.0", | ||
"@babel/core": "^7.9.0", | ||
"@babel/plugin-proposal-class-properties": "^7.8.0", | ||
"@babel/preset-env": "^7.9.0", | ||
"@babel/preset-react": "^7.9.0", | ||
"babel-eslint": "^10.0.0", | ||
"babel-jest": "^25.1.0", | ||
"enzyme": "^3.10.0", | ||
"enzyme-adapter-react-16": "^1.14.0", | ||
"eslint": "^6.1.0", | ||
"eslint-config-airbnb": "^18.0.0", | ||
"eslint-plugin-import": "^2.18.2", | ||
"eslint-plugin-jsx-a11y": "^6.2.3", | ||
"eslint-plugin-react": "^7.14.3", | ||
"eslint-plugin-react-hooks": "^1.7.0", | ||
"jest": "^25.1.0", | ||
"eslint": "~7.2.0", | ||
"eslint-config-airbnb": "^18.2.0", | ||
"eslint-plugin-import": "^2.21.2", | ||
"eslint-plugin-jsx-a11y": "^6.3.0", | ||
"eslint-plugin-react": "^7.20.0", | ||
"eslint-plugin-react-hooks": "^4.0.0", | ||
"jest": "^26.0.0", | ||
"less": "^3.8.1", | ||
@@ -125,3 +128,4 @@ "react": "^16.7.0", | ||
"url": "https://github.com/wojtekmaj/react-date-picker.git" | ||
} | ||
}, | ||
"funding": "https://github.com/wojtekmaj/react-date-picker?sponsor=1" | ||
} |
@@ -1,2 +0,2 @@ | ||
[![npm](https://img.shields.io/npm/v/react-date-picker.svg)](https://www.npmjs.com/package/react-date-picker) ![downloads](https://img.shields.io/npm/dt/react-date-picker.svg) ![build](https://img.shields.io/travis/wojtekmaj/react-date-picker/master.svg) ![dependencies](https://img.shields.io/david/wojtekmaj/react-date-picker.svg) ![dev dependencies](https://img.shields.io/david/dev/wojtekmaj/react-date-picker.svg) [![tested with jest](https://img.shields.io/badge/tested_with-jest-99424f.svg)](https://github.com/facebook/jest) | ||
[![npm](https://img.shields.io/npm/v/react-date-picker.svg)](https://www.npmjs.com/package/react-date-picker) ![downloads](https://img.shields.io/npm/dt/react-date-picker.svg) [![build](https://travis-ci.com/wojtekmaj/react-date-picker.svg?branch=master)](https://travis-ci.com/wojtekmaj/react-date-picker) ![dependencies](https://img.shields.io/david/wojtekmaj/react-date-picker.svg) ![dev dependencies](https://img.shields.io/david/dev/wojtekmaj/react-date-picker.svg) [![tested with jest](https://img.shields.io/badge/tested_with-jest-99424f.svg)](https://github.com/facebook/jest) | ||
@@ -18,3 +18,3 @@ # React-Date-Picker | ||
Minimal demo page is included in sample directory. | ||
A minimal demo page can be found in `sample` directory. | ||
@@ -31,3 +31,3 @@ [Online demo](http://projects.wojtekmaj.pl/react-date-picker/) is also available! | ||
Your project needs to use React 16 or later. If you use older version of React, please refer to the table below to find suitable React-Date-Picker version. | ||
Your project needs to use React 16 or later. If you use an older version of React, please refer to the table below to find a suitable React-Date-Picker version. | ||
@@ -54,22 +54,16 @@ |React version|Newest available React-Date-Picker| | ||
```js | ||
import React, { Component } from 'react'; | ||
import React, { useState } from 'react'; | ||
import DatePicker from 'react-date-picker'; | ||
class MyApp extends Component { | ||
state = { | ||
date: new Date(), | ||
} | ||
function MyApp() { | ||
const [value, onChange] = useState(new Date()); | ||
onChange = date => this.setState({ date }) | ||
render() { | ||
return ( | ||
<div> | ||
<DatePicker | ||
onChange={this.onChange} | ||
value={this.state.date} | ||
/> | ||
</div> | ||
); | ||
} | ||
return ( | ||
<div> | ||
<DatePicker | ||
onChange={onChange} | ||
value={value} | ||
/> | ||
</div> | ||
); | ||
} | ||
@@ -76,0 +70,0 @@ ``` |
@@ -20,3 +20,3 @@ import React, { PureComponent } from 'react'; | ||
const defaultMinDate = new Date(-8.64e15); | ||
const defaultMinDate = new Date('0001-01-01'); | ||
const defaultMaxDate = new Date(8.64e15); | ||
@@ -90,4 +90,4 @@ const allViews = ['century', 'decade', 'year', 'month']; | ||
function isValidInput(element) { | ||
return element.tagName === 'INPUT' && element.type === 'number'; | ||
function isInternalInput(element) { | ||
return element.getAttribute('data-input') === 'true'; | ||
} | ||
@@ -99,3 +99,3 @@ | ||
nextElement = nextElement[property]; | ||
} while (nextElement && !isValidInput(nextElement)); | ||
} while (nextElement && !isInternalInput(nextElement)); | ||
return nextElement; | ||
@@ -223,9 +223,2 @@ } | ||
// eslint-disable-next-line class-methods-use-this | ||
get formatNumber() { | ||
const options = { useGrouping: false }; | ||
return getFormatter(options); | ||
} | ||
/** | ||
@@ -269,9 +262,19 @@ * Gets current value in a desired format. | ||
const date = new Date(year, monthIndex, day); | ||
const formattedDate = this.formatDate(locale, date); | ||
return ( | ||
this.formatDate(locale, date) | ||
.replace(this.formatNumber(locale, year), 'y') | ||
.replace(this.formatNumber(locale, monthIndex + 1), 'M') | ||
.replace(this.formatNumber(locale, day), 'd') | ||
); | ||
const datePieces = ['year', 'month', 'day']; | ||
const datePieceReplacements = ['y', 'M', 'd']; | ||
function formatDatePiece(name, dateToFormat) { | ||
return getFormatter({ useGrouping: false, [name]: 'numeric' })(locale, dateToFormat).match(/\d{1,}/); | ||
} | ||
let placeholder = formattedDate; | ||
datePieces.forEach((datePiece, index) => { | ||
const formattedDatePiece = formatDatePiece(datePiece, date); | ||
const datePieceReplacement = datePieceReplacements[index]; | ||
placeholder = placeholder.replace(formattedDatePiece, datePieceReplacement); | ||
}); | ||
return placeholder; | ||
} | ||
@@ -278,0 +281,0 @@ |
@@ -62,3 +62,3 @@ import React from 'react'; | ||
const nativeInput = component.find('input[type="date"]'); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
@@ -77,3 +77,3 @@ expect(nativeInput).toHaveLength(1); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
const dayInput = customInputs.find('input[name="day"]'); | ||
@@ -97,3 +97,3 @@ const monthInput = customInputs.find('input[name="month"]'); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
const dayInput = customInputs.find('input[name="day"]'); | ||
@@ -103,3 +103,3 @@ const monthInput = customInputs.find('input[name="month"]'); | ||
expect(customInputs).toHaveLength(2); | ||
expect(customInputs).toHaveLength(1); | ||
expect(dayInput).toHaveLength(0); | ||
@@ -121,3 +121,3 @@ expect(monthInput).toHaveLength(0); | ||
const nativeInput = component.find('input[type="date"]'); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
@@ -141,3 +141,3 @@ expect(nativeInput.prop('value')).toBe('2017-09-30'); | ||
const nativeInput = component.find('input[type="date"]'); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
@@ -161,3 +161,3 @@ expect(nativeInput.prop('value')).toBe('2017-09-30'); | ||
const nativeInput = component.find('input[type="date"]'); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
@@ -182,3 +182,3 @@ expect(nativeInput.prop('value')).toBe('2017-09-30'); | ||
const nativeInput = component.find('input[type="date"]'); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
@@ -203,3 +203,3 @@ expect(nativeInput.prop('value')).toBe('2017-09-30'); | ||
const nativeInput = component.find('input[type="date"]'); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
@@ -224,3 +224,3 @@ expect(nativeInput.prop('value')).toBe('2017-09-30'); | ||
const nativeInput = component.find('input[type="date"]'); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
@@ -242,3 +242,3 @@ expect(nativeInput.prop('value')).toBe('2017-09-30'); | ||
const nativeInput = component.find('input[type="date"]'); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
@@ -260,3 +260,3 @@ expect(nativeInput.prop('value')).toBeFalsy(); | ||
const nativeInput = component.find('input[type="date"]'); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
@@ -282,3 +282,3 @@ expect(nativeInput.prop('value')).toBeFalsy(); | ||
const nativeInput = component.find('input[type="date"]'); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
@@ -296,3 +296,3 @@ expect(nativeInput.prop('value')).toBeFalsy(); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
@@ -312,3 +312,3 @@ expect(customInputs.at(0).prop('name')).toBe('month'); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
@@ -330,3 +330,3 @@ expect(customInputs.at(0).prop('name')).toBe('year'); | ||
const componentInput = component.find('YearInput'); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
@@ -346,3 +346,3 @@ expect(componentInput).toHaveLength(1); | ||
const componentInput = component.find('YearInput'); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
@@ -362,3 +362,3 @@ expect(componentInput).toHaveLength(1); | ||
const componentInput = component.find('MonthInput'); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
@@ -378,3 +378,3 @@ expect(componentInput).toHaveLength(1); | ||
const componentInput = component.find('MonthInput'); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
@@ -427,3 +427,3 @@ expect(componentInput).toHaveLength(1); | ||
const componentInput = component.find('DayInput'); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
@@ -443,3 +443,3 @@ expect(componentInput).toHaveLength(1); | ||
const componentInput = component.find('DayInput'); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
@@ -476,3 +476,3 @@ expect(componentInput).toHaveLength(1); | ||
const dayInput = component.find('DayInput'); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
@@ -510,3 +510,3 @@ expect(monthInput).toHaveLength(1); | ||
const separators = component.find('.react-date-picker__inputGroup__divider'); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
@@ -522,3 +522,3 @@ expect(separators).toHaveLength(customInputs.length - 1); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
const dayInput = customInputs.at(0); | ||
@@ -542,3 +542,3 @@ const monthInput = customInputs.at(1); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
const dayInput = customInputs.at(0); | ||
@@ -564,3 +564,3 @@ const monthInput = customInputs.at(1); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
const yearInput = customInputs.at(2); | ||
@@ -583,3 +583,3 @@ | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
const dayInput = customInputs.at(0); | ||
@@ -603,3 +603,3 @@ const monthInput = customInputs.at(1); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
const dayInput = customInputs.at(0); | ||
@@ -622,3 +622,3 @@ | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
const dayInput = customInputs.at(0); | ||
@@ -641,3 +641,3 @@ const monthInput = customInputs.at(1); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
const dayInput = customInputs.at(0); | ||
@@ -660,3 +660,3 @@ const monthInput = customInputs.at(1); | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
const dayInput = customInputs.at(0); | ||
@@ -684,3 +684,3 @@ | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
const dayInput = customInputs.at(1); | ||
@@ -709,3 +709,3 @@ | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
const dayInput = customInputs.at(1); | ||
@@ -736,3 +736,3 @@ | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
@@ -739,0 +739,0 @@ customInputs.forEach((customInput) => { |
@@ -46,10 +46,11 @@ import React from 'react'; | ||
const numberRegExp = /[0-9]/; | ||
function makeOnKeyPress(maxLength) { | ||
return function onKeyPress(event) { | ||
const { key, target: input } = event; | ||
const { value } = input; | ||
const isNumberKey = !isNaN(parseInt(key, 10)); | ||
const selection = getSelectionString(); | ||
const { value } = event.target; | ||
if (numberRegExp.test(event.key) && (selection || value.length < maxLength)) { | ||
if (isNumberKey && (selection || value.length < maxLength)) { | ||
return; | ||
@@ -96,2 +97,3 @@ } | ||
)} | ||
data-input="true" | ||
disabled={disabled} | ||
@@ -132,2 +134,3 @@ max={max} | ||
Input.propTypes = { | ||
ariaLabel: PropTypes.string, | ||
className: PropTypes.string.isRequired, | ||
@@ -134,0 +137,0 @@ disabled: PropTypes.bool, |
@@ -40,2 +40,3 @@ import React from 'react'; | ||
)} | ||
data-input="true" | ||
name={name} | ||
@@ -42,0 +43,0 @@ ref={(ref) => { |
@@ -54,3 +54,2 @@ import React from 'react'; | ||
/* eslint-disable indent */ | ||
it.each` | ||
@@ -62,4 +61,6 @@ valueType | parsedValue | ||
${'decade'} | ${'2019'} | ||
`('displays given value properly if valueType is $valueType', | ||
({ valueType, parsedValue }) => { | ||
`('displays given value properly if valueType is $valueType', ({ | ||
valueType, | ||
parsedValue, | ||
}) => { | ||
const value = new Date(2019, 5, 1); | ||
@@ -143,4 +144,6 @@ | ||
${'decade'} | ${'2019'} | ||
`('has proper min for minDate which is a full year if valueType is $valueType', | ||
({ valueType, parsedMin }) => { | ||
`('has proper min for minDate which is a full year if valueType is $valueType', ({ | ||
valueType, | ||
parsedMin | ||
}) => { | ||
const component = shallow( | ||
@@ -165,4 +168,6 @@ <NativeInput | ||
${'decade'} | ${'2019'} | ||
`('has proper min for minDate which is not a full year if valueType is $valueType', | ||
({ valueType, parsedMin }) => { | ||
`('has proper min for minDate which is not a full year if valueType is $valueType', ({ | ||
valueType, | ||
parsedMin, | ||
}) => { | ||
const component = shallow( | ||
@@ -197,4 +202,6 @@ <NativeInput | ||
${'decade'} | ${'2020'} | ||
`('has proper max for maxDate which is a full year if valueType is $valueType', | ||
({ valueType, parsedMax }) => { | ||
`('has proper max for maxDate which is a full year if valueType is $valueType', ({ | ||
valueType, | ||
parsedMax, | ||
}) => { | ||
const component = shallow( | ||
@@ -219,4 +226,6 @@ <NativeInput | ||
${'decade'} | ${'2020'} | ||
`('has proper max for maxDate which is not a full year if valueType is $valueType', | ||
({ valueType, parsedMax }) => { | ||
`('has proper max for maxDate which is not a full year if valueType is $valueType', ({ | ||
valueType, | ||
parsedMax, | ||
}) => { | ||
const component = shallow( | ||
@@ -223,0 +232,0 @@ <NativeInput |
@@ -11,3 +11,2 @@ import React, { PureComponent } from 'react'; | ||
import { isMaxDate, isMinDate } from './shared/propTypes'; | ||
import { callIfDefined } from './shared/utils'; | ||
@@ -42,3 +41,4 @@ const baseClassName = 'react-date-picker'; | ||
this.handleOutsideActionListeners(); | ||
callIfDefined(isOpen ? onCalendarOpen : onCalendarClose); | ||
const callback = isOpen ? onCalendarOpen : onCalendarClose; | ||
if (callback) callback(); | ||
} | ||
@@ -45,0 +45,0 @@ } |
@@ -325,3 +325,3 @@ import React from 'react'; | ||
const customInputs = component.find('input[type="number"]'); | ||
const customInputs = component.find('input[data-input]'); | ||
const dayInput = customInputs.at(0); | ||
@@ -328,0 +328,0 @@ const monthInput = customInputs.at(1); |
@@ -18,13 +18,2 @@ /** | ||
/** | ||
* Calls a function, if it's defined, with specified arguments | ||
* @param {Function} fn | ||
* @param {Object} args | ||
*/ | ||
export function callIfDefined(fn, ...args) { | ||
if (fn && typeof fn === 'function') { | ||
fn(...args); | ||
} | ||
} | ||
function isValidNumber(num) { | ||
@@ -31,0 +20,0 @@ return num !== null && num !== false && !Number.isNaN(Number(num)); |
import { | ||
between, | ||
callIfDefined, | ||
safeMin, | ||
@@ -44,14 +43,2 @@ safeMax, | ||
describe('callIfDefined', () => { | ||
it('calls given function if defined', () => { | ||
const fn = jest.fn(); | ||
const arg1 = 'hi'; | ||
const arg2 = 'hello'; | ||
callIfDefined(fn, arg1, arg2); | ||
expect(fn).toHaveBeenCalledWith(arg1, arg2); | ||
}); | ||
}); | ||
describe('safeMin', () => { | ||
@@ -58,0 +45,0 @@ it('returns Infinity given no values', () => { |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
207676
20
5215
158
Updated@wojtekmaj/date-utils@^1.0.3