daycy
Version:
Simple date (range) picker for React based on Semantic-UI.
2 lines • 9.37 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=void 0;var _react=_interopRequireWildcard(require("react")),_reactDom=_interopRequireDefault(require("react-dom")),_propTypes=_interopRequireDefault(require("prop-types")),_semanticUiReact=require("semantic-ui-react"),_luxon=require("luxon"),_reactTextMask=_interopRequireDefault(require("react-text-mask")),_createAutoCorrectedDatePipe=_interopRequireDefault(require("text-mask-addons/dist/createAutoCorrectedDatePipe")),_excluded=["inputRef"],_excluded2=["format","value","innerRef"];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 _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)}// we only support auto corrected date pipe for a fixed set of common date formats
var formats={"dd-LL-yyyy":"dd-mm-yyyy","LL-dd-yyyy":"mm-dd-yyyy","yyyy-LL-dd":"yyyy-mm-dd","dd/LL/yyyy":"dd/mm/yyyy","LL/dd/yyyy":"mm/dd/yyyy","yyyy/LL/dd":"yyyy/mm/dd","LL-yyyy":"mm-yyyy","yyyy-LL":"yyyy-mm","LL/yyyy":"mm/yyyy","yyyy/LL":"yyyy/mm","dd-LL":"dd-mm","LL-dd":"mm-dd","dd/LL":"dd/mm","LL/dd":"mm/dd","HH:mm":"HH:MM"},masks={"dd-mm-yyyy":[/\d/,/\d/,"-",/\d/,/\d/,"-",/\d/,/\d/,/\d/,/\d/],"mm-dd-yyyy":[/\d/,/\d/,"-",/\d/,/\d/,"-",/\d/,/\d/,/\d/,/\d/],"yyyy-mm-dd":[/\d/,/\d/,/\d/,/\d/,"-",/\d/,/\d/,"-",/\d/,/\d/],"dd/mm/yyyy":[/\d/,/\d/,"/",/\d/,/\d/,"/",/\d/,/\d/,/\d/,/\d/],"mm/dd/yyyy":[/\d/,/\d/,"/",/\d/,/\d/,"/",/\d/,/\d/,/\d/,/\d/],"yyyy/mm/dd":[/\d/,/\d/,/\d/,/\d/,"/",/\d/,/\d/,"/",/\d/,/\d/],"mm-yyyy":[/\d/,/\d/,"-",/\d/,/\d/,/\d/,/\d/],"yyyy-mm":[/\d/,/\d/,/\d/,/\d/,"-",/\d/,/\d/],"mm/yyyy":[/\d/,/\d/,"/",/\d/,/\d/,/\d/,/\d/],"yyyy/mm":[/\d/,/\d/,/\d/,/\d/,"/",/\d/,/\d/],"dd-mm":[/\d/,/\d/,"-",/\d/,/\d/],"mm-dd":[/\d/,/\d/,"-",/\d/,/\d/],"dd/mm":[/\d/,/\d/,"/",/\d/,/\d/],"mm/dd":[/\d/,/\d/,"/",/\d/,/\d/],"HH:MM":[/\d/,/\d/,":",/\d/,/\d/]},formatKeepDateDefault={"dd-LL-yyyy":!1,"LL-dd-yyyy":!1,"yyyy-LL-dd":!1,"dd/LL/yyyy":!1,"LL/dd/yyyy":!1,"yyyy/LL/dd":!1,"LL-yyyy":!1,"yyyy-LL":!1,"LL/yyyy":!1,"yyyy/LL":!1,"dd-LL":!1,"LL-dd":!1,"dd/LL":!1,"LL/dd":!1,"HH:mm":!0},formatKeepTimeDefault={"dd-LL-yyyy":!0,"LL-dd-yyyy":!0,"yyyy-LL-dd":!0,"dd/LL/yyyy":!0,"LL/dd/yyyy":!0,"yyyy/LL/dd":!0,"LL-yyyy":!0,"yyyy-LL":!0,"LL/yyyy":!0,"yyyy/LL":!0,"dd-LL":!0,"LL-dd":!0,"dd/LL":!0,"LL/dd":!0,"HH:mm":!1},DateInput=/*#__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",{typeValue:null,format:null,autoCorrectedDatePipe:null}),a.onChange=a.onChange.bind(_assertThisInitialized(a)),a.onBlur=a.onBlur.bind(_assertThisInitialized(a)),a.renderInput=a.renderInput.bind(_assertThisInitialized(a)),a}_inherits(b,a);var c=_createSuper(b);return _createClass(b,[{key:"keepDate",get:function get(){var a,b=this.props,c=b.keepDate,d=b.format;return null!==(a=null!==c&&void 0!==c?c:formatKeepDateDefault[d])&&void 0!==a&&a}},{key:"keepTime",get:function get(){var a,b=this.props,c=b.keepTime,d=b.format;return null!==(a=null!==c&&void 0!==c?c:formatKeepTimeDefault[d])&&void 0!==a&&a}},{key:"onChange",value:function(a){var b=this.props,c=b.value,d=b.format,e=b.onChange;this.setState({typeValue:a.target.value});var f=_luxon.DateTime.fromFormat(a.target.value,d);c&&this.keepDate&&(f=f.set({year:c.year,month:c.month,day:c.day})),c&&this.keepTime&&(f=f.set({hour:c.hour,minute:c.minute,second:c.second,millisecond:c.millisecond})),f.invalid||e(f)}},{key:"onBlur",value:function(){var a=this.props.onBlur;this.setState({typeValue:null}),a&&a.apply(void 0,arguments)}},{key:"renderInput",value:function renderInput(a,b){var c=b.inputRef,d=_objectWithoutProperties(b,_excluded);return/*#__PURE__*/_react["default"].createElement(_semanticUiReact.Input,_extends({ref:function ref(b){c&&c(b);var d=_reactDom["default"].findDOMNode(b);return d&&(d=d.getElementsByTagName("input")[0]),a(d)}},d))}},{key:"render",value:function render(){var a=this.state,b=a.typeValue,c=a.autoCorrectedDatePipe,d=this.props,e=d.format,f=d.value,g=d.innerRef,h=_objectWithoutProperties(d,_excluded2);return delete h.onChange,delete h.onBlur,null===c?/*#__PURE__*/_react["default"].createElement(_semanticUiReact.Input,_extends({value:null===b?f?f.toFormat(e):"":b,ref:g,onChange:this.onChange,onBlur:this.onBlur},h)):/*#__PURE__*/_react["default"].createElement(_reactTextMask["default"],_extends({mask:masks[formats[e]],pipe:c,value:null===b?f?f.toFormat(e):"":b,onChange:this.onChange,onBlur:this.onBlur,keepCharPositions:!0,guide:!0,inputRef:g,render:this.renderInput},h))}}],[{key:"getDerivedStateFromProps",value:function getDerivedStateFromProps(a,b){return a.format===b.format?null:{format:a.format,autoCorrectedDatePipe:Object.keys(formats).includes(a.format)?(0,_createAutoCorrectedDatePipe["default"])(formats[a.format]):null}}}]),b}(_react.Component);exports["default"]=DateInput,_defineProperty(DateInput,"propTypes",{format:_propTypes["default"].string,value:_propTypes["default"].instanceOf(_luxon.DateTime),onChange:_propTypes["default"].func.isRequired,keepDate:_propTypes["default"].bool,keepTime:_propTypes["default"].bool}),_defineProperty(DateInput,"defaultProps",{format:"dd-LL-yyyy"});