"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var React=_interopRequireWildcard(require("react")),_classnames=_interopRequireDefault(require("classnames")),_propTypes=_interopRequireDefault(require("prop-types")),_withStyles=_interopRequireDefault(require("../../hoc/withStyles")),_ErrorBoundary=_interopRequireDefault(require("../../hoc/ErrorBoundary")),_TriangleArrow=_interopRequireDefault(require("../../bosons/TriangleArrow")),_FieldLabel=_interopRequireDefault(require("../../bosons/FieldLabel")),_moment=_interopRequireDefault(require("moment")),_styles=_interopRequireDefault(require("./styles"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):{};desc.get||desc.set?Object.defineProperty(newObj,key,desc):newObj[key]=obj[key]}return newObj.default=obj,newObj}function _typeof(obj){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj},_typeof(obj)}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _defineProperties(target,props){for(var descriptor,i=0;i<props.length;i++)descriptor=props[i],descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}function _createClass(Constructor,protoProps,staticProps){return protoProps&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Constructor}function _possibleConstructorReturn(self,call){return call&&("object"===_typeof(call)||"function"==typeof call)?call:_assertThisInitialized(self)}function _getPrototypeOf(o){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(o){return o.__proto__||Object.getPrototypeOf(o)},_getPrototypeOf(o)}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function");subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:!0,configurable:!0}}),superClass&&_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){return _setPrototypeOf=Object.setPrototypeOf||function(o,p){return o.__proto__=p,o},_setPrototypeOf(o,p)}function _assertThisInitialized(self){if(void 0===self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return self}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}_moment.default.locale("en-us",{week:{dow:1// Monday is the first day of the week.
}});var WeekPeriod=/*#__PURE__*/function(_React$Component){function WeekPeriod(_props){var _this;return _classCallCheck(this,WeekPeriod),_this=_possibleConstructorReturn(this,_getPrototypeOf(WeekPeriod).call(this,_props)),_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)),"_updateWeekPeriod",function(props,updateType){var state=_this.state,finalYear="year"===updateType?props.year:state.year,finalWeek="week"===updateType?props.week:state.week,startWeekDay=(0,_moment.default)().year(finalYear).week(finalWeek).startOf("week").format(),endWeekDay=(0,_moment.default)().year(finalYear).week(finalWeek).endOf("week").format(),weekObj={week:finalWeek,year:finalYear,month:(0,_moment.default)(endWeekDay).month(),startWeekDay:startWeekDay,endWeekDay:endWeekDay};_this.setState(weekObj,function(){props.onWeekChange(weekObj)})}),_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)),"_handleWeekChange",function(isNext){return function(){var _this$state=_this.state,year=_this$state.year,week=_this$state.week,onWeekChange=_this.props.onWeekChange,newWeek=(0,_moment.default)().year(year).week(week);isNext?newWeek.add(1,"w"):newWeek.subtract(1,"w");var startWeekDay=newWeek.startOf("week").format(),endWeekDay=newWeek.endOf("week").format(),weekObj={week:newWeek.week(),year:(0,_moment.default)(endWeekDay).year(),month:(0,_moment.default)(endWeekDay).month(),startWeekDay:startWeekDay,endWeekDay:endWeekDay};_this.setState(weekObj,function(){onWeekChange(weekObj)})}}),_this.state={week:_props.week,year:_props.year,startWeekDay:(0,_moment.default)().year(_props.year).week(_props.week).startOf("week").format(),endWeekDay:(0,_moment.default)().year(_props.year).week(_props.week).endOf("week").format()},_this}return _inherits(WeekPeriod,_React$Component),_createClass(WeekPeriod,[{key:"componentDidMount",value:function componentDidMount(){this._updateWeekPeriod(this.props,"mount")}},{key:"componentDidUpdate",value:function componentDidUpdate(prevProps){var props=this.props,state=this.state;props.week!==prevProps.week&&props.week!==state.week&&this._updateWeekPeriod(props,"week"),props.year!==prevProps.year&&props.year!==state.year&&this._updateWeekPeriod(props,"year")}},{key:"render",value:function render(){var classes=this.props.classes,_this$state2=this.state,startWeekDay=_this$state2.startWeekDay,endWeekDay=_this$state2.endWeekDay;return React.createElement(_ErrorBoundary.default,null,React.createElement("div",{className:classes.component},React.createElement(_FieldLabel.default,{label:"Week Period"}),React.createElement("div",{className:classes.root},React.createElement("div",{className:(0,_classnames.default)(classes.button,classes.prevButton),onClick:this._handleWeekChange(!1)},React.createElement(_TriangleArrow.default,{direction:"left",classes:{arrow:classes.arrow}})),React.createElement("div",{className:classes.dateText},(0,_moment.default)(startWeekDay).format("DD MMM YYYY")," -"," ",(0,_moment.default)(endWeekDay).format("DD MMM YYYY")),React.createElement("div",{className:(0,_classnames.default)(classes.button,classes.nextButton),onClick:this._handleWeekChange(!0)},React.createElement(_TriangleArrow.default,{direction:"right",classes:{arrow:classes.arrow}})))))}}]),WeekPeriod}(React.Component);_defineProperty(WeekPeriod,"propTypes",{week:_propTypes.default.number,year:_propTypes.default.number,onWeekChange:_propTypes.default.func,classes:_propTypes.default.object// will come from withStyles HOC
}),_defineProperty(WeekPeriod,"defaultProps",{week:(0,_moment.default)().week(),year:(0,_moment.default)().year(),onWeekChange:function onWeekChange(){}});var _default=(0,_withStyles.default)(_styles.default)(WeekPeriod);exports.default=_default;