daycy
Version:
Simple date (range) picker for React based on Semantic-UI.
1 lines • 9.9 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=void 0;var _react=_interopRequireWildcard(require("react")),_propTypes=_interopRequireDefault(require("prop-types")),_semanticUiReact=require("semantic-ui-react"),_luxon=require("luxon"),_DateInput=_interopRequireDefault(require("./DateInput")),_Calendar=_interopRequireDefault(require("./Calendar")),_excluded=["value","format","icon","translate","startProps","endProps","startPlaceholder","endPlaceholder","fluid","includeWeeks","disabled","noPopup"];function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function _getRequireWildcardCache(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(_getRequireWildcardCache=function(a){return a?c:b})(a)}function _interopRequireWildcard(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!==_typeof(a)&&"function"!=typeof a)return{default:a};var c=_getRequireWildcardCache(b);if(c&&c.has(a))return c.get(a);var d={},e=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!=f&&Object.prototype.hasOwnProperty.call(a,f)){var g=e?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(d,f,g):d[f]=a[f]}return d["default"]=a,c&&c.set(a,d),d}function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)Object.prototype.hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a},_extends.apply(this,arguments)}function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _objectWithoutProperties(a,b){if(null==a)return{};var c,d,e=_objectWithoutPropertiesLoose(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],0<=b.indexOf(c)||Object.prototype.propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}function _objectWithoutPropertiesLoose(a,b){if(null==a)return{};var c,d,e={},f=Object.keys(a);for(d=0;d<f.length;d++)c=f[d],0<=b.indexOf(c)||(e[c]=a[c]);return e}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function _inherits(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function");a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,writable:!0,configurable:!0}}),Object.defineProperty(a,"prototype",{writable:!1}),b&&_setPrototypeOf(a,b)}function _setPrototypeOf(a,b){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(a,b){return a.__proto__=b,a},_setPrototypeOf(a,b)}function _createSuper(a){var b=_isNativeReflectConstruct();return function(){var c,d=_getPrototypeOf(a);if(b){var e=_getPrototypeOf(this).constructor;c=Reflect.construct(d,arguments,e)}else c=d.apply(this,arguments);return _possibleConstructorReturn(this,c)}}function _possibleConstructorReturn(a,b){if(b&&("object"===_typeof(b)||"function"==typeof b))return b;if(void 0!==b)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(a)}function _assertThisInitialized(a){if(void 0===a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return a}function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(a){return!1}}function _getPrototypeOf(a){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(a){return a.__proto__||Object.getPrototypeOf(a)},_getPrototypeOf(a)}function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"===_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!==_typeof(a)||null===a)return a;var c=a[Symbol.toPrimitive];if(c!==void 0){var d=c.call(a,b||"default");if("object"!==_typeof(d))return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}var OTHER={start:"end",end:"start"},EMPTY={start:null,end:null},DateRangePicker=/*#__PURE__*/function(a){function b(){var a;_classCallCheck(this,b);for(var d=arguments.length,e=Array(d),f=0;f<d;f++)e[f]=arguments[f];return a=c.call.apply(c,[this].concat(e)),_defineProperty(_assertThisInitialized(a),"state",{open:null,override:null}),_defineProperty(_assertThisInitialized(a),"container",null),_defineProperty(_assertThisInitialized(a),"calendar",null),a.onChange=a.onChange.bind(_assertThisInitialized(a)),a.onChangeNoClose=a.onChangeNoClose.bind(_assertThisInitialized(a)),a.onWeekSelect=a.onWeekSelect.bind(_assertThisInitialized(a)),a.onOpenStart=a.onOpenStart.bind(_assertThisInitialized(a)),a.onOpenEnd=a.onOpenEnd.bind(_assertThisInitialized(a)),a.onClose=a.onClose.bind(_assertThisInitialized(a)),a}_inherits(b,a);var c=_createSuper(b);return _createClass(b,[{key:"onChange",value:function(a){var b=!(1<arguments.length&&void 0!==arguments[1])||arguments[1],c=this.props,d=c.value,e=c.onChange,f=this.state,g=f.open,h=f.override;d=h||d||EMPTY;var i=OTHER[g];if(null===d[i]||"start"===g&&a>d.end||"end"===g&&a<d.start){var j,k=this.container.getElementsByClassName("".concat(i,"-date"))[0],l=k.getElementsByTagName("input")[0];l.focus(),this.setState({open:i,override:(j={},_defineProperty(j,g,a),_defineProperty(j,i,null),j)}),this.calendar.setState({month:a.startOf("month"),weeks:null})}else{var m;if(d=(m={},_defineProperty(m,g,a),_defineProperty(m,i,d[i]),m),e(_luxon.Interval.fromDateTimes(d.start,d.end)),b){var n=this.container.getElementsByClassName("".concat(g,"-date"))[0],o=n.getElementsByTagName("input")[0];o.blur()}else this.calendar.setState({month:a.startOf("month"),weeks:null})}}},{key:"onChangeNoClose",value:function onChangeNoClose(a){return this.onChange(a,!1)}},{key:"onWeekSelect",value:function onWeekSelect(a){var b=this.props.onChange;b(a),this.onClose()}},{key:"onOpenStart",value:function onOpenStart(a){a.preventDefault(),this.setState({open:"start"})}},{key:"onOpenEnd",value:function onOpenEnd(a){a.preventDefault(),this.setState({open:"end"})}},{key:"onClose",value:function onClose(){this.setState({open:null,override:null})}},{key:"render",value:function render(){var a=this,b=this.props,c=b.value,d=b.format,e=b.icon,f=b.translate,g=b.startProps,h=b.endProps,i=b.startPlaceholder,j=b.endPlaceholder,k=b.fluid,l=b.includeWeeks,m=b.disabled,n=b.noPopup,o=_objectWithoutProperties(b,_excluded),p=this.state,q=p.open,r=p.override;c=r||c||EMPTY,"string"==typeof e&&(e=/*#__PURE__*/_react["default"].createElement(_semanticUiReact.Icon,{name:e,className:"date-range-seperator"})),g=_objectSpread({placeholder:i},g),h=_objectSpread({placeholder:j},h),delete o.onChange;var s=["daycy","date-range-picker"];return null!==q&&s.push("focus"),k&&s.push("fluid"),/*#__PURE__*/_react["default"].createElement(_Calendar["default"],{ref:function ref(b){return a.calendar=b},open:!n&&null!==q,value:c[q],onChange:this.onChange,hover:q,highlightStart:c.start||c.end,highlightEnd:c.end||c.start,trigger:/*#__PURE__*/_react["default"].createElement("div",_extends({ref:function ref(b){return a.container=b},className:s.join(" ")},o),/*#__PURE__*/_react["default"].createElement(_DateInput["default"],_extends({className:"start-date",value:c.start,onChange:this.onChangeNoClose,onFocus:this.onOpenStart,onBlur:this.onClose,disabled:m},g)),e,/*#__PURE__*/_react["default"].createElement(_DateInput["default"],_extends({className:"end-date",value:c.end,onChange:this.onChangeNoClose,onFocus:this.onOpenEnd,onBlur:this.onClose,disabled:m},h))),translate:f,includeWeeks:l,onWeekSelect:this.onWeekSelect})}}]),b}(_react.Component);exports["default"]=DateRangePicker,_defineProperty(DateRangePicker,"propTypes",{value:_propTypes["default"].instanceOf(_luxon.Interval),onChange:_propTypes["default"].func.isRequired,format:_propTypes["default"].string,icon:_propTypes["default"].oneOfType([_propTypes["default"].string,_propTypes["default"].node]),startProps:_propTypes["default"].object,endProps:_propTypes["default"].object,startPlaceholder:_propTypes["default"].string,endPlaceholder:_propTypes["default"].string,fluid:_propTypes["default"].bool,translate:_propTypes["default"].func,includeWeeks:_propTypes["default"].bool,disabled:_propTypes["default"].bool,noPopup:_propTypes["default"].bool}),_defineProperty(DateRangePicker,"defaultProps",{format:"dd-LL-yyyy",icon:"arrow right",startProps:{},endProps:{},startPlaceholder:"",endPlaceholder:"",fluid:!1,disabled:!1,noPopup:!1});