daycy
Version:
Simple date (range) picker for React based on Semantic-UI.
1 lines • 7.44 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"),_translate2=require("./translate"),_Calendar=require("./Calendar");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 _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 TRIMESTERS=[["january","february","march"],["april","may","june"],["july","august","september"],["october","november","december"]],MonthCalendar=/*#__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",{year:null}),a.setPrevYear=a.setPrevYear.bind(_assertThisInitialized(a)),a.setNextYear=a.setNextYear.bind(_assertThisInitialized(a)),a.renderMonths=a.renderMonths.bind(_assertThisInitialized(a)),a.renderMonth=a.renderMonth.bind(_assertThisInitialized(a)),a}_inherits(b,a);var c=_createSuper(b);return _createClass(b,[{key:"translate",value:function translate(){return(this.props.translate||_translate2.translate).apply(void 0,arguments)}},{key:"setPrevYear",value:function setPrevYear(){var a=this.state.year;this.setState({year:a-1})}},{key:"setNextYear",value:function setNextYear(){var a=this.state.year;this.setState({year:a+1})}},{key:"onChange",value:function(a){var b=this.props,c=b.value,d=b.onChange,e=this.state.year;d({month:_Calendar.MONTHS.indexOf(a)+1,year:e})}},{key:"renderMonths",value:function renderMonths(a,b){return/*#__PURE__*/_react["default"].createElement("div",{className:"row",key:b},a.map(this.renderMonth))}},{key:"renderMonth",value:function renderMonth(a,b){var c=this,d=this.props.value,e=this.state.year,f=["cell"];0===b&&f.push("first"),d&&a===_Calendar.MONTHS[d.month-1]&&e===d.year&&f.push("selected");var g={className:f.join(" "),onClick:function(){return c.onChange(a)}};return/*#__PURE__*/_react["default"].createElement("div",_extends({},g,{key:a}),/*#__PURE__*/_react["default"].createElement("span",null,this.translate("month.".concat(a))))}},{key:"render",value:function render(){var a=this.props,b=a.open,c=a.trigger,d=a.onClose,e=this.state.year;return/*#__PURE__*/_react["default"].createElement(_semanticUiReact.Popup,{className:"daycy month-calendar",flowing:!0,trigger:c,open:b,on:"click",onClose:d,onMouseDown:function onMouseDown(a){return a.preventDefault()}},/*#__PURE__*/_react["default"].createElement("div",{className:"title"},/*#__PURE__*/_react["default"].createElement(_semanticUiReact.Icon,{name:"chevron left",onClick:this.setPrevYear}),e&&/*#__PURE__*/_react["default"].createElement("span",null,e),/*#__PURE__*/_react["default"].createElement(_semanticUiReact.Icon,{name:"chevron right",onClick:this.setNextYear})),/*#__PURE__*/_react["default"].createElement("div",{className:"grid"},TRIMESTERS.map(this.renderMonths)))}}],[{key:"getDerivedStateFromProps",value:function getDerivedStateFromProps(a,b){var c=a.open,d=a.value,e=b.year,f={};if(f.value=d?d:null,!c)f.year=null;else if(null===e){var g=d||_luxon.DateTime.local();f.year=g.year}return f}}]),b}(_react.Component);exports["default"]=MonthCalendar,_defineProperty(MonthCalendar,"propTypes",{trigger:_propTypes["default"].node.isRequired,open:_propTypes["default"].bool.isRequired,value:_propTypes["default"].shape({year:_propTypes["default"].number.isRequired,month:_propTypes["default"].number.isRequired}),onChange:_propTypes["default"].func.isRequired,onClose:_propTypes["default"].func,translate:_propTypes["default"].func}),_defineProperty(MonthCalendar,"defaultProps",{onClose:function onClose(){}});