Socket
Socket
Sign inDemoInstall

@wojtekmaj/react-daterange-picker

Package Overview
Dependencies
Maintainers
1
Versions
37
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@wojtekmaj/react-daterange-picker - npm Package Compare versions

Comparing version 2.5.0 to 3.0.0

src/shared/utils.spec.js

105

dist/DateRangePicker.js

@@ -12,4 +12,2 @@ "use strict";

var _reactLifecyclesCompat = require("react-lifecycles-compat");
var _makeEventProps = _interopRequireDefault(require("make-event-props"));

@@ -19,6 +17,6 @@

var _reactCalendar = _interopRequireDefault(require("react-calendar"));
var _reactFit = _interopRequireDefault(require("react-fit"));
var _entry = _interopRequireDefault(require("react-calendar/dist/entry.nostyle"));
var _DateInput = _interopRequireDefault(require("react-date-picker/dist/DateInput"));

@@ -32,6 +30,8 @@

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } }
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
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; }

@@ -45,10 +45,14 @@

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
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) { 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(n); 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; }

@@ -62,11 +66,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) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { 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); }

@@ -79,10 +87,8 @@ 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 DateRangePicker =
/*#__PURE__*/
function (_PureComponent) {
var DateRangePicker = /*#__PURE__*/function (_PureComponent) {
_inherits(DateRangePicker, _PureComponent);
var _super = _createSuper(DateRangePicker);
function DateRangePicker() {
var _getPrototypeOf2;
var _this;

@@ -96,3 +102,3 @@

_this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(DateRangePicker)).call.apply(_getPrototypeOf2, [this].concat(args)));
_this = _super.call.apply(_super, [this].concat(args));

@@ -108,10 +114,9 @@ _defineProperty(_assertThisInitialized(_this), "state", {});

_defineProperty(_assertThisInitialized(_this), "onChange", function (value) {
var closeCalendar = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
var closeCalendar = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _this.props.closeCalendar;
var onChange = _this.props.onChange;
_this.setState({
isOpen: !closeCalendar
});
if (closeCalendar) {
_this.closeCalendar();
}
var onChange = _this.props.onChange;
if (onChange) {

@@ -122,4 +127,3 @@ onChange(value);

_defineProperty(_assertThisInitialized(_this), "onChangeFrom", function (valueFrom) {
var closeCalendar = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
_defineProperty(_assertThisInitialized(_this), "onChangeFrom", function (valueFrom, closeCalendar) {
var value = _this.props.value;

@@ -134,4 +138,3 @@

_defineProperty(_assertThisInitialized(_this), "onChangeTo", function (valueTo) {
var closeCalendar = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
_defineProperty(_assertThisInitialized(_this), "onChangeTo", function (valueTo, closeCalendar) {
var value = _this.props.value;

@@ -257,2 +260,3 @@

nativeInputAriaLabel = _this$props3.nativeInputAriaLabel,
rangeDivider = _this$props3.rangeDivider,
required = _this$props3.required,

@@ -295,5 +299,5 @@ showLeadingZeros = _this$props3.showLeadingZeros,

return _react["default"].createElement("div", {
return /*#__PURE__*/_react["default"].createElement("div", {
className: "".concat(baseClassName, "__wrapper")
}, _react["default"].createElement(_DateInput["default"], _extends({}, commonProps, {
}, /*#__PURE__*/_react["default"].createElement(_DateInput["default"], _extends({}, commonProps, {
autoFocus: autoFocus,

@@ -304,5 +308,5 @@ name: "".concat(name, "_from"),

value: valueFrom
})), _react["default"].createElement("span", {
})), /*#__PURE__*/_react["default"].createElement("span", {
className: "".concat(baseClassName, "__range-divider")
}, "\u2013"), _react["default"].createElement(_DateInput["default"], _extends({}, commonProps, {
}, rangeDivider), /*#__PURE__*/_react["default"].createElement(_DateInput["default"], _extends({}, commonProps, {
name: "".concat(name, "_to"),

@@ -312,3 +316,3 @@ onChange: this.onChangeTo,

value: valueTo
})), clearIcon !== null && _react["default"].createElement("button", {
})), clearIcon !== null && /*#__PURE__*/_react["default"].createElement("button", {
"aria-label": clearAriaLabel,

@@ -320,3 +324,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,

@@ -349,5 +353,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(_entry["default"], _extends({
}, /*#__PURE__*/_react["default"].createElement(_reactCalendar["default"], _extends({
className: calendarClassName,

@@ -368,3 +372,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)

@@ -414,5 +418,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",

@@ -423,3 +427,3 @@ height: "15",

y: "2"
}), _react["default"].createElement("line", {
}), /*#__PURE__*/_react["default"].createElement("line", {
x1: "6",

@@ -429,3 +433,3 @@ x2: "6",

y2: "4"
}), _react["default"].createElement("line", {
}), /*#__PURE__*/_react["default"].createElement("line", {
x1: "13",

@@ -437,5 +441,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",

@@ -445,3 +449,3 @@ x2: "15",

y2: "15"
}), _react["default"].createElement("line", {
}), /*#__PURE__*/_react["default"].createElement("line", {
x1: "15",

@@ -456,4 +460,6 @@ x2: "4",

clearIcon: ClearIcon,
closeCalendar: true,
isOpen: null,
name: 'daterange'
name: 'daterange',
rangeDivider: '–'
};

@@ -471,2 +477,3 @@

clearIcon: _propTypes["default"].node,
closeCalendar: _propTypes["default"].bool,
dayAriaLabel: _propTypes["default"].string,

@@ -490,2 +497,3 @@ dayPlaceholder: _propTypes["default"].string,

onFocus: _propTypes["default"].func,
rangeDivider: _propTypes["default"].node,
required: _propTypes["default"].bool,

@@ -497,3 +505,2 @@ returnValue: _propTypes["default"].oneOf(['start', 'end', 'range']),

yearPlaceholder: _propTypes["default"].string
};
(0, _reactLifecyclesCompat.polyfill)(DateRangePicker);
};

@@ -6,15 +6,48 @@ "use strict";

});
Object.defineProperty(exports, "isMaxDate", {
enumerable: true,
get: function get() {
return _propTypes.isMaxDate;
exports.isMaxDate = exports.isMinDate = void 0;
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
var isMinDate = function isMinDate(props, propName, componentName) {
var minDate = props[propName];
if (!minDate) {
return null;
}
});
Object.defineProperty(exports, "isMinDate", {
enumerable: true,
get: function get() {
return _propTypes.isMinDate;
if (!(minDate instanceof Date)) {
return new Error("Invalid prop `".concat(propName, "` of type `").concat(_typeof(minDate), "` supplied to `").concat(componentName, "`, expected instance of `Date`."));
}
});
var _propTypes = require("react-calendar/dist/shared/propTypes");
var maxDate = props.maxDate;
if (maxDate && minDate > maxDate) {
return new Error("Invalid prop `".concat(propName, "` of type `").concat(_typeof(minDate), "` supplied to `").concat(componentName, "`, minDate cannot be larger than maxDate."));
}
return null;
};
exports.isMinDate = isMinDate;
var isMaxDate = function isMaxDate(props, propName, componentName) {
var maxDate = props[propName];
if (!maxDate) {
return null;
}
if (!(maxDate instanceof Date)) {
return new Error("Invalid prop `".concat(propName, "` of type `").concat(_typeof(maxDate), "` supplied to `").concat(componentName, "`, expected instance of `Date`."));
}
var minDate = props.minDate;
if (minDate && maxDate < minDate) {
return new Error("Invalid prop `".concat(propName, "` of type `").concat(_typeof(maxDate), "` supplied to `").concat(componentName, "`, maxDate cannot be smaller than minDate."));
}
return null;
};
exports.isMaxDate = isMaxDate;

@@ -6,9 +6,19 @@ "use strict";

});
Object.defineProperty(exports, "callIfDefined", {
enumerable: true,
get: function get() {
return _utils.callIfDefined;
exports.callIfDefined = callIfDefined;
/* eslint-disable import/prefer-default-export */
/**
* 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);
}
});
var _utils = require("react-date-picker/dist/shared/utils");
}
{
"name": "@wojtekmaj/react-daterange-picker",
"version": "2.5.0",
"version": "3.0.0",
"description": "A date range picker for your React app.",

@@ -47,15 +47,14 @@ "main": "dist/entry.js",

"prop-types": "^15.6.0",
"react-calendar": "^2.19.1",
"react-date-picker": "^7.9.0",
"react-fit": "^1.0.3",
"react-lifecycles-compat": "^3.0.4"
"react-calendar": "^3.0.0",
"react-date-picker": "^8.0.0",
"react-fit": "^1.0.3"
},
"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": "^24.0.0",
"babel-jest": "^25.1.0",
"enzyme": "^3.10.0",

@@ -69,3 +68,3 @@ "enzyme-adapter-react-16": "^1.14.0",

"eslint-plugin-react-hooks": "^1.7.0",
"jest": "^24.8.0",
"jest": "^25.1.0",
"less": "^3.8.1",

@@ -78,4 +77,4 @@ "react": "^16.7.0",

"peerDependencies": {
"react": ">=15.5",
"react-dom": ">=15.5"
"react": ">=16.3",
"react-dom": ">=16.3"
},

@@ -82,0 +81,0 @@ "files": [

@@ -93,2 +93,3 @@ ![downloads](https://img.shields.io/npm/dt/@wojtekmaj/react-daterange-picker.svg) ![build](https://img.shields.io/travis/wojtekmaj/react-daterange-picker/master.svg) ![dependencies](https://img.shields.io/david/wojtekmaj/react-daterange-picker.svg

|clearIcon|Content of the clear button. Setting the value explicitly to `null` will hide the icon.|(default icon)|<ul><li>String: `"Clear"`</li><li>React element: `<ClearIcon />`</li></ul>|
|closeCalendar|Whether to close the calendar on value selection.|`true`|`false`|
|dayAriaLabel|`aria-label` for the day input.|n/a|`"Day"`|

@@ -112,2 +113,3 @@ |dayPlaceholder|`placeholder` for the day input.|`"--"`|`"dd"`|

|onChange|Function called when the user clicks an item on the most detailed view available.|n/a|`(value) => alert('New date is: ', value)`|
|rangeDivider|Divider between date inputs.|`"–"`|`" to "`|
|required|Whether date input should be required.|`false`|`true`|

@@ -114,0 +116,0 @@ |showLeadingZeros|Whether leading zeros should be rendered in date inputs.|`false`|`true`|

import React, { PureComponent } from 'react';
import PropTypes from 'prop-types';
import { polyfill } from 'react-lifecycles-compat';
import makeEventProps from 'make-event-props';
import mergeClassNames from 'merge-class-names';
import Calendar from 'react-calendar';
import Fit from 'react-fit';
import Calendar from 'react-calendar/dist/entry.nostyle';
import DateInput from 'react-date-picker/dist/DateInput';

@@ -60,8 +59,10 @@

onChange = (value, closeCalendar = true) => {
this.setState({
isOpen: !closeCalendar,
});
// eslint-disable-next-line react/destructuring-assignment
onChange = (value, closeCalendar = this.props.closeCalendar) => {
const { onChange } = this.props;
const { onChange } = this.props;
if (closeCalendar) {
this.closeCalendar();
}
if (onChange) {

@@ -72,3 +73,3 @@ onChange(value);

onChangeFrom = (valueFrom, closeCalendar = true) => {
onChangeFrom = (valueFrom, closeCalendar) => {
const { value } = this.props;

@@ -79,3 +80,3 @@ const [, valueTo] = [].concat(value);

onChangeTo = (valueTo, closeCalendar = true) => {
onChangeTo = (valueTo, closeCalendar) => {
const { value } = this.props;

@@ -151,2 +152,3 @@ const [valueFrom] = [].concat(value);

nativeInputAriaLabel,
rangeDivider,
required,

@@ -201,3 +203,3 @@ showLeadingZeros,

<span className={`${baseClassName}__range-divider`}>
{rangeDivider}
</span>

@@ -335,4 +337,6 @@ <DateInput

clearIcon: ClearIcon,
closeCalendar: true,
isOpen: null,
name: 'daterange',
rangeDivider: '–',
};

@@ -359,2 +363,3 @@

clearIcon: PropTypes.node,
closeCalendar: PropTypes.bool,
dayAriaLabel: PropTypes.string,

@@ -378,2 +383,3 @@ dayPlaceholder: PropTypes.string,

onFocus: PropTypes.func,
rangeDivider: PropTypes.node,
required: PropTypes.bool,

@@ -389,3 +395,1 @@ returnValue: PropTypes.oneOf(['start', 'end', 'range']),

};
polyfill(DateRangePicker);

@@ -33,2 +33,13 @@ import React from 'react';

it('passes autoFocus flag to first DateInput component', () => {
const component = mount(
<DateRangePicker autoFocus />
);
const dateInput = component.find('DateInput');
expect(dateInput.at(0).prop('autoFocus')).toBeTruthy();
expect(dateInput.at(1).prop('autoFocus')).toBe(undefined);
});
it('passes disabled flag to DateInput components', () => {

@@ -176,3 +187,3 @@ const component = mount(

it('renders range divider', () => {
it('renders range divider with default divider', () => {
const component = mount(

@@ -185,4 +196,16 @@ <DateRangePicker />

expect(rangeDivider).toHaveLength(1);
expect(rangeDivider.text()).toBe('–');
});
it('renders range divider with custom divider', () => {
const component = mount(
<DateRangePicker rangeDivider="to" />
);
const rangeDivider = component.find('.react-daterange-picker__range-divider');
expect(rangeDivider).toHaveLength(1);
expect(rangeDivider.text()).toBe('to');
});
it('renders clear button', () => {

@@ -352,2 +375,56 @@ const component = mount(

it('closes Calendar when calling internal onChange by default', () => {
const component = mount(
<DateRangePicker isOpen />
);
const { onChange } = component.instance();
onChange(new Date());
expect(component.state('isOpen')).toBe(false);
});
it('does not close Calendar when calling internal onChange with prop closeCalendar = false', () => {
const component = mount(
<DateRangePicker
closeCalendar={false}
isOpen
/>
);
const { onChange } = component.instance();
onChange(new Date());
expect(component.state('isOpen')).toBe(true);
});
it('does not close Calendar when calling internal onChange with closeCalendar = false', () => {
const component = mount(
<DateRangePicker isOpen />
);
const { onChange } = component.instance();
onChange(new Date(), false);
expect(component.state('isOpen')).toBe(true);
});
it('calls onChange callback when calling internal onChange', () => {
const nextValue = new Date(2019, 0, 1);
const onChange = jest.fn();
const component = mount(
<DateRangePicker onChange={onChange} />
);
const { onChange: onChangeInternal } = component.instance();
onChangeInternal(nextValue);
expect(onChange).toHaveBeenCalledWith(nextValue);
});
it('clears the value when clicking on a button', () => {

@@ -385,3 +462,3 @@ const onChange = jest.fn();

expect(onChangeSpy).toHaveBeenCalled();
expect(onChangeSpy).toHaveBeenCalledWith([nextValueFrom, undefined], true);
expect(onChangeSpy).toHaveBeenCalledWith([nextValueFrom, undefined], undefined);
});

@@ -404,3 +481,3 @@

expect(onChangeSpy).toHaveBeenCalled();
expect(onChangeSpy).toHaveBeenCalledWith([nextValueFrom, undefined], true);
expect(onChangeSpy).toHaveBeenCalledWith([nextValueFrom, undefined], undefined);
});

@@ -425,3 +502,3 @@

expect(onChangeSpy).toHaveBeenCalled();
expect(onChangeSpy).toHaveBeenCalledWith([nextValueFrom, valueTo], true);
expect(onChangeSpy).toHaveBeenCalledWith([nextValueFrom, valueTo], undefined);
});

@@ -444,3 +521,3 @@ });

expect(onChangeSpy).toHaveBeenCalled();
expect(onChangeSpy).toHaveBeenCalledWith([undefined, nextValueTo], true);
expect(onChangeSpy).toHaveBeenCalledWith([undefined, nextValueTo], undefined);
});

@@ -463,3 +540,3 @@

expect(onChangeSpy).toHaveBeenCalled();
expect(onChangeSpy).toHaveBeenCalledWith([value, nextValueTo], true);
expect(onChangeSpy).toHaveBeenCalledWith([value, nextValueTo], undefined);
});

@@ -484,5 +561,5 @@

expect(onChangeSpy).toHaveBeenCalled();
expect(onChangeSpy).toHaveBeenCalledWith([valueFrom, nextValueTo], true);
expect(onChangeSpy).toHaveBeenCalledWith([valueFrom, nextValueTo], undefined);
});
});
});

@@ -1,4 +0,39 @@

export {
isMaxDate,
isMinDate,
} from 'react-calendar/dist/shared/propTypes';
export const isMinDate = (props, propName, componentName) => {
const { [propName]: minDate } = props;
if (!minDate) {
return null;
}
if (!(minDate instanceof Date)) {
return new Error(`Invalid prop \`${propName}\` of type \`${typeof minDate}\` supplied to \`${componentName}\`, expected instance of \`Date\`.`);
}
const { maxDate } = props;
if (maxDate && minDate > maxDate) {
return new Error(`Invalid prop \`${propName}\` of type \`${typeof minDate}\` supplied to \`${componentName}\`, minDate cannot be larger than maxDate.`);
}
return null;
};
export const isMaxDate = (props, propName, componentName) => {
const { [propName]: maxDate } = props;
if (!maxDate) {
return null;
}
if (!(maxDate instanceof Date)) {
return new Error(`Invalid prop \`${propName}\` of type \`${typeof maxDate}\` supplied to \`${componentName}\`, expected instance of \`Date\`.`);
}
const { minDate } = props;
if (minDate && maxDate < minDate) {
return new Error(`Invalid prop \`${propName}\` of type \`${typeof maxDate}\` supplied to \`${componentName}\`, maxDate cannot be smaller than minDate.`);
}
return null;
};
/* eslint-disable import/prefer-default-export */
export { callIfDefined } from 'react-date-picker/dist/shared/utils';
/**
* 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);
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc