{"version":3,"sources":["components/bargainMiddlePage/barcode/index.js","components/bargainMiddlePage/index.js","../node_modules/date-fns/esm/differenceInMilliseconds/index.js","../node_modules/date-fns/esm/startOfDay/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","components/bargainMiddlePage/image/kanjia_icon.png","../node_modules/date-fns/esm/differenceInSeconds/index.js","../node_modules/date-fns/esm/differenceInMinutes/index.js","../node_modules/date-fns/esm/differenceInHours/index.js","components/bargainMiddlePage/ranking/index.js","components/detail/overlay/index.js","components/bargainMiddlePage/image/kanjia_cg_icon.png","../node_modules/date-fns/esm/differenceInCalendarDays/index.js","../node_modules/date-fns/esm/differenceInDays/index.js","components/bargainMiddlePage/image/kanjia_no_iccon.png"],"names":["FollowBarcode","props","state","url","codeUrl","console","log","this","userInfo","uid","http","get","API","then","res","data","errno","setState","_this","Promise","resolve","QRCode","toDataURL","err","firendBaigainPrice","avatar","money","className","style","backgroundImage","src","alt","Component","BargainMiddlePage","connect","user","getBargainInfo","home","getParam","code","isOriginator","is_originator","originatorUid","originator_uid","course","limitPeople","limit_people","bargainData","bargain","width","bargain_price","total_price","toFixed","expire_time","date","now","Date","clearInterval","timer","setInterval","_d","s","differenceInSeconds","m","differenceInMinutes","h","differenceInHours","d","differenceInDays","hour","min","sec","day","info","msg","getBargainCourse","courseList","getBargainRankList","id","type","bargain_code","courseId","post","arr","newList","out_list","map","item","i","rank","list","outList","toCart","history","push","toCartBottom","getMore","isShowMore","boxHide","val","toArtifact","course_id","isShowOverlay","status","useArtifact","toKanjia","parent_uid","amount","is_success","browser","isWeixin","redirectURI","window","location","href","includes","index","lastIndexOf","substr","assign","encodeURIComponent","friendBargainFirst","friendBargainSecond","shareFriendBargain","isshowYindao","wxShare","title","desc","link","encodeURI","imgUrl","course_img","close","toCourseDetail","kanjiaIcon","require","isLoaidng","imglink","prevProps","prevUser","hasError","thirdRow","btn","is_artifact","invite_num","onClick","assist_status","bargain_status","bargainBtn","arrow","cart","toHref","img","CourseDes","Number","String","padStart","length","key","avatar_file","user_name","image_name","course_title","toDetail","bottom","CourseBottom","bind","to","icon","BargainSuccess","BargainFirst","bargainSecond","BargainSecond","NotBargain","Artifact","UseArtifact","allMoney","course_price","pay_price","Buttons","price1","price","v_course_id","classnames","price0","color","withRouter","differenceInMilliseconds","dirtyDateLeft","dirtyDateRight","requiredArgs","arguments","dateLeft","toDate","dateRight","getTime","startOfDay","dirtyDate","setHours","getDateMillisecondsPart","getTimezoneOffsetInMilliseconds","baseTimezoneOffset","Math","ceil","getTimezoneOffset","setSeconds","module","exports","diff","floor","Ranking","closeMore","MoreList","root","document","body","documentElement","events","Overlay","preventScroll","e","preventDefault","overlayBox","forEach","addEventListener","passive","removeEventListener","ReactDom","createPortal","ref","el","top","scrollY","children","differenceInCalendarDays","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","round","compareLocalAsc","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","sign","difference","abs","setDate","isLastDayNotFull","result"],"mappings":"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","file":"mrstaticjs/BargainMiddlePage.29345439.chunk.js","sourcesContent":["import React, { Component } from \"react\"\nimport QRCode from \"qrcode\"\nimport { http } from \"src/utils\"\nimport \"./index.scss\"\n\nclass FollowBarcode extends Component {\n constructor(props) {\n super(props)\n this.state = {\n url: \"\",\n codeUrl: \"\",\n }\n }\n\n componentDidMount() {\n console.log(this.props)\n const {\n userInfo: { uid = \"\" },\n } = this.props\n if (uid) {\n http\n .get(`${API[\"base-api\"]}/wx/user_temporary_qrcode/${uid}`)\n .then((res) => {\n const { errno, data } = res.data\n console.log(res)\n if (errno === 0) {\n this.setState({\n url: data.url,\n })\n const _this = this\n return new Promise((resolve) => {\n QRCode.toDataURL(data.url, {}, function (err, url) {\n _this.setState({\n codeUrl: url,\n })\n })\n resolve()\n })\n }\n })\n }\n }\n\n render() {\n const { codeUrl } = this.state\n const {\n firendBaigainPrice,\n userInfo: { avatar },\n money,\n } = this.props\n return (\n <div className=\"bargain-popup__barcode\">\n <i\n className=\"bargain-popup__avatar\"\n style={{ backgroundImage: `url(${avatar})` }}\n />\n {firendBaigainPrice && (\n <p className=\"bargain-popup__title\">谢谢你帮我砍了{money}元!</p>\n )}\n <p className=\"bargain-popup__desc\">关注公众号,可以再砍一刀哦~</p>\n <img className=\"bargain-popup__imgage\" src={codeUrl} alt=\"\" />\n </div>\n )\n }\n}\n\nexport default FollowBarcode\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, { Component } from \"react\"\nimport \"./bargain-middle-page.scss\"\nimport { HeaderBar, VList } from \"src/common\"\nimport { Course } from \"src/common\"\nimport { getParam, http, browser, wxShare } from \"src/utils\"\nimport { Toast } from \"antd-mobile\"\nimport { Link, withRouter } from \"react-router-dom\"\nimport Ranking from \"./ranking\"\nimport {\n differenceInSeconds,\n differenceInMinutes,\n differenceInHours,\n differenceInDays,\n} from \"date-fns\"\nimport Overlay from \"../detail/overlay\"\nimport { connect } from \"react-redux\"\nimport classnames from \"classnames\"\nimport FollowBarcode from \"./barcode/index\"\n\n@connect((state) => ({\n user: state.user,\n}))\nclass BargainMiddlePage extends Component {\n timer\n\n constructor(props) {\n super(props)\n this.state = {\n isShowOverlay: false,\n isOriginator: \"\",\n kanjiaIcon: require(\"./image/kanjia_icon.png\"),\n course: {}, // 当前砍价课程\n courseList: [], // 所有砍价课程\n data: \"\",\n bargainData: \"\",\n limitPeople: 0,\n outList: [],\n list: [],\n width: \"0\",\n isShowMore: \"\",\n status: \"\",\n hour: \"\",\n min: \"\",\n sec: \"\",\n day: \"\",\n amount: \"\", // 每次砍掉的价格\n firendBaigainPrice: true,\n isshowYindao: false,\n isLoaidng: true,\n imglink:\n \"https://img-public.julyedu.com/Public/Image/\",\n }\n }\n\n componentDidMount() {\n this.getBargainRankList(getParam(\"id\"), 1)\n this.getBargainCourse()\n this.getBargainInfo()\n }\n\n componentDidUpdate(prevProps) {\n let { user } = this.props\n let { user: prevUser } = prevProps\n if (!user.hasError && user.hasError !== prevUser.hasError) {\n this.getBargainRankList(getParam(\"id\"), 1)\n this.getBargainCourse()\n this.getBargainInfo()\n }\n }\n\n // 获取砍价信息\n getBargainInfo = () => {\n // is_originator 来源,0-PC端扫码 1-M端分享 2-APP端分享\n http\n .get(\n `${API.home}/m/bargain/info?bargaincode=${getParam(\n \"bargaincode\"\n )}&is_originator=${getParam(\"is_originator\")}`\n )\n .then((res) => {\n if (res.data.code === 200) {\n this.setState(\n {\n data: res.data.data,\n isOriginator: res.data.data.is_originator,\n originatorUid: res.data.data.originator_uid,\n course: res.data.data.course,\n limitPeople: res.data.data.course.limit_people,\n bargainData: res.data.data.bargain,\n width:\n (\n res.data.data.bargain.bargain_price /\n res.data.data.bargain.total_price\n ).toFixed(2) *\n 100 +\n \"%\",\n },\n () => {\n if (this.state.bargainData.expire_time) {\n let date = this.state.bargainData.expire_time * 1000\n let now = Date.now()\n clearInterval(this.timer)\n this.timer = setInterval(() => {\n date -= 1000\n let _d = new Date(date)\n let s = differenceInSeconds(_d, now) % 60,\n m = differenceInMinutes(_d, now) % 60,\n h = differenceInHours(_d, now) % 24,\n d = differenceInDays(_d, now) % 24\n this.setState({\n hour: h,\n min: m,\n sec: s,\n day: d,\n })\n }, 1000)\n }\n }\n )\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n\n // 获取砍价课程\n getBargainCourse = () => {\n http.get(`${API.home}/m/bargain/courseList`).then((res) => {\n if (res.data.code === 200) {\n this.setState({\n courseList: res.data.data,\n })\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n\n // 获取助理好友\n getBargainRankList = (id = \"\", type) => {\n const bargain_code = getParam(\"bargaincode\") || \"\"\n let data = {\n courseId: id,\n type: type,\n bargain_code,\n }\n http.post(`${API.home}/m/bargain/rankList`, data).then((res) => {\n if (res.data.code === 200) {\n let arr = [\"刀神\", \"刀王\", \"刀霸\"]\n let newList = res.data.data.out_list.map((item, i) => {\n return {\n ...item,\n rank: arr[i],\n }\n })\n this.setState({\n list: res.data.data.list,\n outList: newList,\n })\n } else if (res.data.code === 4030 || res.data.code === 4040) {\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n\n // 直接支付\n toCart = () => {\n const { history } = this.props\n http\n .get(`${API[\"base-api\"]}/m/cart/addtopreorder/[${getParam(\"id\")}]`)\n .then((res) => {\n const { errno, msg } = res.data\n if (errno === 0) {\n this.props.history.push(`/order?id=[${getParam(\"id\")}]`, {\n bargain: 1,\n })\n } else if (errno === 4030 || errno === 4040) {\n history.push(\"/passport\")\n } else {\n Toast.info(msg, 2)\n }\n })\n // let data = {\n // course_id: getParam('id')\n // }\n // http.post(`${API.home}/m/cart/add`, data).then((res) => {\n // if (res.data.code === 200 || res.data.code === 15001) {\n // this.props.history.push('/shopcart')\n // } else {\n // Toast.info(res.data.msg, 2);\n // }\n // })\n }\n\n // 我要砍价列表的去支付\n toCartBottom = (id) => {\n http.get(`${API[\"base-api\"]}/m/cart/addtopreorder/[${id}]`).then((res) => {\n if (res.data.errno === 0) {\n this.props.history.push(`/order?id=[${getParam(\"id\")}]`, {\n bargain: 1,\n })\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n // http.post(`${API.home}/m/cart/add`, data).then((res) => {\n // if (res.data.code === 200 || res.data.code === 15001) {\n // this.props.history.push('/shopcart')\n // } else {\n // Toast.info(res.data.msg, 2);\n // }\n // })\n }\n\n // 查看更多\n getMore = () => {\n this.setState({\n isShowMore: true,\n })\n }\n\n // 自组件传给父组件的boxHide\n boxHide = (val) => {\n this.setState({ isShowMore: val })\n }\n\n // 领取砍价神器\n toArtifact = () => {\n const { history } = this.props\n const {\n course: { course_id = \"\" },\n } = this.state\n let data = {\n courseId: getParam(\"id\") ? getParam(\"id\") : course_id,\n }\n http.post(`${API.home}/m/bargain/receiveLimit`, data).then((res) => {\n const { code, msg } = res.data\n if (code === 200) {\n this.setState({\n isShowOverlay: true,\n status: 5,\n })\n this.getBargainInfo()\n } else if (code === 4030 || code === 4040) {\n history.push(\"/passport\")\n } else {\n Toast.info(msg, 2)\n }\n })\n }\n\n // 使用砍价神器\n useArtifact = () => {\n const {\n course: { course_id = \"\" },\n } = this.state\n const id = getParam(\"id\") ? getParam(\"id\") : course_id\n this.toKanjia(id, 2, 0)\n }\n\n // 砍价接口\n toKanjia = (id, type, uid) => {\n let data = {\n course_id: id,\n type: type, // 1 用户自己砍价 2 使用砍价神器 3 好友助力砍价 4 好友第二次助力\n parent_uid: uid, // 被助力人id 【自己本人操作传0】\n }\n http.post(`${API.home}/m/bargain/toBargain`, data).then((res) => {\n if (res.data.code === 200) {\n // is_success =0一切正常 =1 不能在砍了 =2关注公众号,可以再砍一刀!\n this.setState({\n amount: res.data.data.amount,\n })\n if (type === 2) {\n this.setState({\n isShowOverlay: true,\n status: 6,\n })\n this.getBargainInfo()\n this.getBargainRankList(\"\", 1)\n }\n\n if (res.data.data.is_success === 1) {\n this.setState({\n isShowOverlay: true,\n status: 4,\n })\n } else if (res.data.data.is_success === 2) {\n if (type === 3) {\n this.setState({\n isShowOverlay: true,\n status: 2,\n })\n } else if (type === 4) {\n this.setState({\n isShowOverlay: true,\n status: 1,\n firendBaigainPrice: false,\n })\n }\n } else if (res.data.data.is_success === 0) {\n if (type === 3) {\n this.setState({\n isShowOverlay: true,\n status: 2,\n })\n } else if (type === 4) {\n this.setState({\n isShowOverlay: true,\n status: 3,\n })\n }\n }\n\n this.getBargainInfo()\n this.getBargainRankList(getParam(\"id\"), 1)\n } else if (res.data.code === 4030 || res.data.code === 4040) {\n if (browser.isWeixin) {\n let redirectURI = window.location.href\n if (\n redirectURI.includes(\"code=\") &&\n redirectURI.includes(\"state=STATE\")\n ) {\n let index = redirectURI.lastIndexOf(\"code=\")\n redirectURI = redirectURI.substr(0, index - 1)\n }\n window.location.assign(\n `https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx23dac6775ac82877&redirect_uri=${encodeURIComponent(\n redirectURI\n )}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`\n )\n } else {\n this.props.history.push(\"/passport\")\n }\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n\n // 帮好友砍价第一刀\n friendBargainFirst = () => {\n const {\n course: { course_id = \"\" },\n } = this.state\n const id = getParam(\"id\") ? getParam(\"id\") : course_id\n this.toKanjia(id, 3, this.state.originatorUid)\n }\n\n // 帮好友砍价第二刀\n friendBargainSecond = () => {\n const {\n course: { course_id = \"\" },\n } = this.state\n const id = getParam(\"id\") ? getParam(\"id\") : course_id\n this.toKanjia(id, 4, this.state.originatorUid)\n }\n\n // 邀请好友砍价\n shareFriendBargain = () => {\n const { history } = this.props\n history.push(\n `/bargain-middle-page?id=${getParam(\"id\")}&bargaincode=${getParam(\n \"bargaincode\"\n )}&is_originator=1`\n )\n this.setState({\n isShowOverlay: true,\n status: 7,\n isshowYindao: browser.isWeixin ? true : false,\n })\n\n wxShare({\n title: `我发现一门好课,快来帮我砍价吧!`,\n desc: `我已经砍了${this.state.bargainData.bargain_price}元,看看你能砍多少`,\n link: encodeURI(window.location.href),\n imgUrl: this.state.course.course_img,\n })\n }\n\n // 关闭弹窗\n close = () => {\n this.setState({\n isShowOverlay: false,\n status: \"\",\n })\n }\n\n toCourseDetail = (id) => {\n const { history } = this.props\n history.push(`/detail?id=${id}`)\n return false\n }\n\n render() {\n let thirdRow, btn\n // is_artifact\t 0-再邀请多少人可以使用 1-可以使用未领取 2-已领取 3-已使用\n if (this.state.bargainData.is_artifact === 0) {\n thirdRow = (\n <div>\n 再邀请\n <span className={\"indicator\"}>\n {this.state.bargainData.invite_num}\n </span>\n 位好友助力即可获得<span className={\"indicator\"}>【砍价神器】</span>\n </div>\n )\n } else if (this.state.bargainData.is_artifact === 1) {\n thirdRow = (\n <div>\n 恭喜你获得<span className={\"indicator\"}>【砍价神器】</span>\n </div>\n )\n btn = (\n <button className={\"artifact-btn\"} onClick={this.toArtifact}>\n 立即领取\n </button>\n )\n } else if (this.state.bargainData.is_artifact === 2) {\n thirdRow = (\n <div>\n 恭喜你获得<span className={\"indicator\"}>【砍价神器】</span>\n </div>\n )\n btn = (\n <button className={\"artifact-btn\"} onClick={this.useArtifact}>\n 立即使用\n </button>\n )\n }\n\n const {\n data: { is_originator = 0, assist_status = 0, bargain_status = 0 },\n } = this.state\n let bargainBtn = \"\"\n // assist_status 助力状态 0-未助力,1-已助力一次 2-已助力两次,不能再助力\n // is_originator 是否发起人 0-否 1-是\n // bargain_status 砍价状态 0-砍价中,1砍价结束,待支付,2砍价过期(没有砍价记录没有砍价信息),3已购买\n if (is_originator) {\n if (bargain_status === 0) {\n bargainBtn = (\n <button className=\"active-btn\" onClick={this.shareFriendBargain}>\n 邀请好友砍价\n </button>\n )\n } else {\n bargainBtn = <button className={\"invalid-btn\"}>砍价结束</button>\n }\n } else {\n if (assist_status === 0 && bargain_status === 0) {\n bargainBtn = (\n <button className=\"active-btn\" onClick={this.friendBargainFirst}>\n 帮好友砍一刀\n </button>\n )\n } else if (assist_status === 1 && bargain_status === 0) {\n bargainBtn = (\n <button className=\"active-btn\" onClick={this.friendBargainSecond}>\n 再砍一刀\n </button>\n )\n } else if (assist_status === 2 && bargain_status === 0) {\n bargainBtn = <button className={\"invalid-btn\"}>已帮好友助力</button>\n } else if (bargain_status !== 0) {\n bargainBtn = <button className={\"invalid-btn\"}>砍价结束</button>\n }\n }\n\n // if (this.state.isOriginator !== 1 && this.state.data.assist_status === 0 && this.state.data.bargain_status === 0) {\n // bargainBtn = <button className='active-btn' onClick={this.friendBargainFirst}>帮好友砍一刀</button>\n // } else if (this.state.isOriginator !== 1 && this.state.data.assist_status === 1) {\n // bargainBtn = <button className='active-btn' onClick={this.friendBargainSecond}>再砍一刀1</button>\n // } else if (this.state.isOriginator !== 1 && this.state.data.assist_status === 2) {\n // bargainBtn = <button className={'invalid-btn'}>已帮好友助力</button>\n // } else if (this.state.data.bargain_status === 1 || this.state.data.bargain_status === 2) {\n // bargainBtn = <button className={'invalid-btn'}>砍价结束</button>\n // } else if (this.state.isOriginator === 1 && this.state.data.bargain_status === 0) {\n // bargainBtn = <button className='active-btn' onClick={this.shareFriendBargain}>邀请好友砍价</button>\n // }\n return (\n <div className={\"bargain-middle-page\"}>\n <HeaderBar\n title=\"砍价详情\"\n arrow={true}\n cart={true}\n toHref={\"/\"}\n ></HeaderBar>\n {/*<Loading isLoading={this.state.isLoaidng}>*/}\n <div className=\"top\">\n <div className=\"bargain-area\">\n {this.state.isOriginator !== 1 && (\n <p className=\"bargain-tip\">\n 你的好友发现一门精品课程,快来一起帮他砍价:\n </p>\n )}\n\n <ul>\n <VList\n img={this.state.course.course_img}\n info={\n <CourseDes\n isOriginator={this.state.isOriginator}\n data={this.state.data}\n toCart={this.toCart}\n />\n }\n />\n </ul>\n <div className=\"bargain-detail\">\n {(Number(this.state.data.bargain_status) === 0 ||\n Number(this.state.data.bargain_status) === 1) && (\n <div>\n <div className=\"top\">\n <div>\n 已砍\n <span className={\"reduced-price\"}>\n {this.state.bargainData.bargain_price}元\n </span>\n </div>\n {this.state.data.bargain_status === 0 && (\n <div>\n <span className={\"time hour\"}>\n {String(this.state.hour).padStart(2, 0)}\n </span>{\" \"}\n : \n <span className={\"time min\"}>\n {String(this.state.min).padStart(2, 0)}\n </span>{\" \"}\n : \n <span className={\"time sec\"}>\n {String(this.state.sec).padStart(2, 0)}\n </span>\n <span className={\"inactive\"}> 后砍价结束</span>\n </div>\n )}\n {this.state.data.bargain_status === 1 &&\n this.state.isOriginator === 1 && (\n <span className={\"inactive\"}>砍价结束</span>\n )}\n </div>\n <div className=\"middle\">\n <span style={{ width: this.state.width }}></span>\n </div>\n </div>\n )}\n {this.state.isOriginator === 1 &&\n this.state.data.bargain_status === 0 && (\n <div>\n {thirdRow}\n {btn}\n </div>\n )}\n\n {this.state.isOriginator === 1 &&\n this.state.data.bargain_status === 1 && (\n <div>\n 砍价金额将于\n <span className={\"time hour\"}>\n {String(this.state.day).padStart(2, 0)}\n </span>\n <span className={\"unit\"}> 天 </span>\n <span className={\"time min\"}>\n {String(this.state.hour).padStart(2, 0)}\n </span>\n <span className={\"unit\"}> 时 </span>\n <span className={\"time sec\"}>\n {String(this.state.min).padStart(2, 0)}\n </span>\n <span className={\"unit\"}>分</span>\n 后清零,请尽快完成支付\n </div>\n )}\n\n <div className={\"button\"}>{bargainBtn}</div>\n </div>\n </div>\n <div className=\"bargain-records\">\n <div className=\"title\">砍价记录</div>\n <ul>\n {this.state.outList &&\n this.state.outList.length > 0 &&\n this.state.outList.map((item, index) => {\n return (\n <li key={index}>\n <div className=\"left\">\n <img className=\"avatar\" src={item.avatar_file} alt=\"\" />\n <span className={\"nickname\"}>{item.user_name}</span>\n <span className=\"rank-tag\">{item.rank}</span>\n </div>\n <div className=\"right\">\n <img\n className=\"kanjia-icon\"\n src={this.state.kanjiaIcon}\n alt=\"\"\n />\n 砍掉<span className={\"price\"}>{item.amount}</span>\n </div>\n </li>\n )\n })}\n </ul>\n <div className=\"more\" onClick={this.getMore}>\n 查看更多>>\n </div>\n </div>\n </div>\n <div className=\"bargain-course-list\" id=\"bargainCourse\">\n <div className=\"title-wrapper\">\n <div className=\"title\">我要砍价</div>\n <div className=\"subtitle\">\n 邀请{this.state.limitPeople}位以上好友帮忙砍价可获得【砍价神器】\n </div>\n </div>\n <ul>\n {this.state.courseList &&\n this.state.courseList.length > 0 &&\n this.state.courseList.map((item, index) => {\n return (\n <Course\n className={\"text-overflow-2\"}\n key={index}\n id={item.course_id}\n img={item.image_name}\n title={item.course_title}\n toDetail={this.toCourseDetail}\n bottom={\n <CourseBottom\n user={this.props.user}\n item={item}\n toCartBottom={this.toCartBottom.bind(\n this,\n item.course_id\n )}\n toDetail={this.toCourseDetail}\n />\n }\n />\n )\n })}\n </ul>\n </div>\n <Link to={\"/classify\"} className={\"preferential\"}>\n 查看更多精品课程 >>\n </Link>\n\n {/*更多好友砍价*/}\n <Ranking\n list={this.state.list}\n icon={this.state.kanjiaIcon}\n limitPeople={this.state.limitPeople}\n isShowMore={this.state.isShowMore}\n boxHide={this.boxHide}\n ></Ranking>\n\n {this.state.isShowOverlay && (\n <Overlay>\n <div className=\"bargain-popup__content\">\n {/*砍价成功去分享*/}\n {this.state.status === 7 && (\n <BargainSuccess\n isshowYindao={this.state.isshowYindao}\n limitPeople={this.state.limitPeople}\n close={this.close}\n />\n )}\n\n {/*引导关注公众号*/}\n {/* {\n this.state.status === 1 &&\n <PublicNumber\n money={this.state.amount}\n avatar={this.props.user.data.avatar}\n firendBaigainPrice={this.state.firendBaigainPrice}/>\n } */}\n {this.state.status === 1 && (\n <FollowBarcode\n userInfo={this.props.user.data}\n money={this.state.amount}\n firendBaigainPrice={this.state.firendBaigainPrice}\n />\n )}\n\n {/*好友成功砍第一刀*/}\n {this.state.status === 2 && (\n <BargainFirst\n bargainSecond={this.friendBargainSecond}\n money={this.state.amount}\n />\n )}\n {/*好友成功砍第二刀*/}\n {this.state.status === 3 && (\n <BargainSecond close={this.close} money={this.state.amount} />\n )}\n {/*不能在砍了*/}\n {this.state.status === 4 && (\n <NotBargain\n close={this.close}\n limitPeople={this.state.limitPeople}\n />\n )}\n {/*领取砍价神器*/}\n {this.state.status === 5 && (\n <Artifact useArtifact={this.useArtifact} />\n )}\n {/*使用砍价神器*/}\n {this.state.status === 6 && (\n <UseArtifact\n toCart={this.toCart}\n money={this.state.amount}\n allMoney={this.state.bargainData.bargain_price}\n />\n )}\n\n {this.state.status !== 7 && (\n <i\n onClick={this.close}\n className={\n \"iconfont iconiconfront-2 bargain-popup__button--close\"\n }\n ></i>\n )}\n </div>\n </Overlay>\n )}\n {/*</Loading>*/}\n </div>\n )\n }\n}\n\n// 课程信息 -- 右侧\nfunction CourseDes(props) {\n const {\n data: { bargain_status = 0, course = {}, is_originator = 0 },\n toCart,\n } = props\n return (\n <div className={\"des\"}>\n <div className=\"course-title text-overflow-2\">{course.course_title}</div>\n <div className=\"price-bar\">\n <span className={\"discount-price\"}>¥{course.course_price}</span>\n {/* is_originator 是否发起人 0-否 1-是 */}\n {Number(is_originator) === 1 && Number(bargain_status) !== 3 && (\n <button className={\"purchase-btn\"} onClick={toCart}>\n ¥{course.pay_price}去支付\n </button>\n )}\n {Number(is_originator) === 1 && Number(bargain_status) === 3 && (\n <span className=\"course-button__buy--done\">已购买</span>\n )}\n </div>\n </div>\n )\n}\n\nfunction CourseBottom(props) {\n // bargain_status 砍价状态 0-砍价中,1砍价结束,待支付,2砍价过期(没有砍价记录没有砍价信息),3已购买\n const { course_id = \"\", bargain_status = \"\", price1 = \"\", pay_price = \"\" } =\n props.item || {}\n const {\n user: { data = {} },\n } = props\n const price = bargain_status === 2 ? price1 : pay_price\n let Buttons\n if (data.uid) {\n if (props.item.bargain_status === 2) {\n // Buttons = <Link to={`/detail?id=${props.item.course_id}`} className={'bargain'}>我要砍价</Link>\n Buttons = (\n <div className=\"\">\n <a\n onClick={() => props.toDetail(props.item.course_id)}\n className={\"bargain bargian-study\"}\n >\n 我要砍价\n </a>\n </div>\n )\n } else if (bargain_status === 3) {\n if (course_id === 139) {\n Buttons = (\n <a\n onClick={() => props.toDetail(props.item.course_id)}\n className={\"bargain bargian-study\"}\n >\n 我要砍价\n </a>\n )\n } else {\n Buttons = (\n <Link\n to={`/play/video?id=${props.item.v_course_id}`}\n className={classnames(\"bargain\", \"button--study\")}\n >\n 去学习\n </Link>\n )\n }\n } else {\n Buttons = (\n <div className=\"btns\">\n {/*<button className={classnames('bargain-btn', {invalid: props.item.bargain_status === 2})}>*/}\n {/*{props.item.bargain_status === 2 ? '砍价结束' : '继续砍价'}*/}\n {/*</button>*/}\n {bargain_status === 1 && (\n <button className=\"invalid\">砍价结束</button>\n )}\n {bargain_status === 0 && (\n <a\n onClick={() => props.toDetail(props.item.course_id)}\n className={\"bargain-btn\"}\n >\n 继续砍价\n </a>\n )}\n <button\n onClick={() => props.toCartBottom(props.item.course_id)}\n className={\"purchase-btn\"}\n >\n ¥{price}去支付\n </button>\n </div>\n )\n }\n } else {\n Buttons = (\n <a\n onClick={() => props.toDetail(props.item.course_id)}\n className={\"bargain bargian-study\"}\n >\n 我要砍价\n </a>\n )\n }\n\n return (\n <div className=\"course-bottom\">\n <div className={\"course-price\"}>\n <span className={\"discount-price\"}>¥{props.item.price1}</span>\n <span className={\"original-price\"}>¥{props.item.price0}</span>\n </div>\n {Buttons}\n </div>\n )\n}\n\nfunction BargainFirst(props) {\n return (\n <div className=\"bargain-first\">\n <img\n className=\"top-img\"\n src={require(\"./image/kanjia_cg_icon.png\")}\n alt=\"\"\n />\n <p className=\"status-title\">\n 谢谢你帮我砍了<span className=\"ff4\">{props.money}元</span>!\n </p>\n <p className=\"status-dec\">你还可以帮我再砍一刀哦~</p>\n <button className=\"bargain-href\" onClick={props.bargainSecond}>\n 再砍一刀\n </button>\n </div>\n )\n}\n\nfunction BargainSecond(props) {\n return (\n <div className=\"bargain-second\">\n <img\n className=\"top-img\"\n src={require(\"./image/kanjia_cg_icon.png\")}\n alt=\"\"\n />\n <p className=\"status-title\">\n 厉害了,又帮好友砍掉<span className=\"ff4\">{props.money}元</span>!\n </p>\n <a className=\"bargain-href\" href=\"#bargainCourse\" onClick={props.close}>\n 我也要砍价\n </a>\n </div>\n )\n}\n\nfunction NotBargain(props) {\n return (\n <div className=\"not-bargain\">\n <img\n className=\"middle-img\"\n src={require(\"./image/kanjia_no_iccon.png\")}\n alt=\"\"\n />\n <p className=\"status-title\">\n 你的好友用【砍价神器】把我砍蒙圈了\n <br />\n 不能再砍了哦~\n </p>\n <p className=\"status-dec\">\n 邀请{props.limitPeople}位以上好友帮忙砍价可获得【砍价神器】\n </p>\n <a className=\"bargain-href\" href=\"#bargainCourse\" onClick={props.close}>\n 我也要砍价\n </a>\n </div>\n )\n}\n\nfunction Artifact(props) {\n return (\n <div className=\"artifact-box\">\n <p className=\"top-tip\">恭喜你获得【砍价神器】!</p>\n <p className=\"middle-tip\">\n 您可以使用\n <span className={\"indicator\"}>【砍价神器】</span>\n 再砍一刀\n </p>\n <button className=\"use-artifact\" onClick={props.useArtifact}>\n 立即使用\n </button>\n </div>\n )\n}\n\nfunction UseArtifact(props) {\n return (\n <div className=\"use-artifact-box\">\n <img\n className=\"top-img\"\n src={require(\"./image/kanjia_cg_icon.png\")}\n alt=\"\"\n />\n <p className=\"top-tip\">厉害了,又砍掉了{props.money}元!</p>\n <p className=\"middle-tip\">\n 你已经砍了\n <span className={\"indicator\"}>{props.allMoney}元</span>\n 没见过你这么能砍的人...\n </p>\n <p className=\"btm-tip\">不能再砍了哦~</p>\n <button className=\"tubuy\" onClick={props.toCart}>\n 去支付\n </button>\n </div>\n )\n}\n\nfunction BargainSuccess(props) {\n return (\n <div>\n <div className=\"close-bargain-success\" onClick={props.close}></div>\n\n <div className=\"bargain-success\">\n {props.isshowYindao && <i className=\"iconfont iconyindao\"></i>}\n <p>分享到微信群邀请更多好友帮忙砍价</p>\n <p>\n 超过{props.limitPeople}位好友助力可获得\n <span className={\"indicator\"} style={{ color: \"#FF4000\" }}>\n 【砍价神器】\n </span>\n 哦\n </p>\n </div>\n </div>\n )\n}\n\nexport default withRouter(BargainMiddlePage)\n","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * var result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\n\nexport default function differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getTime() - dateRight.getTime();\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * var result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","var MILLISECONDS_IN_MINUTE = 60000;\n\nfunction getDateMillisecondsPart(date) {\n return date.getTime() % MILLISECONDS_IN_MINUTE;\n}\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\n\n\nexport default function getTimezoneOffsetInMilliseconds(dirtyDate) {\n var date = new Date(dirtyDate.getTime());\n var baseTimezoneOffset = Math.ceil(date.getTimezoneOffset());\n date.setSeconds(0, 0);\n var hasNegativeUTCOffset = baseTimezoneOffset > 0;\n var millisecondsPartOfTimezoneOffset = hasNegativeUTCOffset ? (MILLISECONDS_IN_MINUTE + getDateMillisecondsPart(date)) % MILLISECONDS_IN_MINUTE : getDateMillisecondsPart(date);\n return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset;\n}","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAAA51BMVEUAAAD3yyr4zCr60jD61DT4zSz4zi360C770jL93jn94UH3yin4yyz4ziz4zi34zS361TX50i/50jD61DP72Dj61jP+4kH+4ED4zCv3zCz4zSz4zS350jL61jb61jT6zir50DH83Dz71DP83Dj+5ET2zDD50C77zyj93j/930H82zv3yir3yCj/6072xib3yyv/6kz2xiT/7lD/8FL2wyL2xCP/8VT/7E//8lb83T74zS32wiH/81b/6Er71zj94kT72zz50zP+5kj84EH/9Vj+5Uf61TX50TH83j/4zy//9Ff3xyb0vBpXStORAAAAK3RSTlMA8+yrk9q7gTsdBPfnysGyoJ+IhWhMFg3w5d7QvKSbmI9eWich+nxTRjARluH5lgAAAm5JREFUOMt1lddi4jAQRYVp6b1vspvdZKvG6pI7NjWQ7P9/T7BFQBBzXnjw0YyvxhJonZ1fzcODRuPgsNndQVvZPW9DCca4/Lk7e6rV/rUwIdiBcNy6+uz98DjgDYDffN/0WsTR3Kpf171j13MB3Vn38Fb0/cr7BpsdgeIl6uTD++16FDQhMQanu1okuv4JjpbAkMZm4JoEX9vGxFmNJ9Eoy1KGyeodaPJQelfUWZz0RpIJIYeEa0WAx7RaDrtz8Yw4TWIh/JIgm0b5hOayp6s8rbnoOQV5njK/QozGLJ+lr0NeFbhBaMeNzPsi8C1hL+E9IwcAlfkHdcGdbWSsxoTpFy+FEZlNoM/RsStC5NuKwYD1BybzBbMiv0df3NaQTM1H45hJwURmN/StjTx3KupFBkIGzJfFbFIWN2NSieCh/bURMynHPSl8EfmSlZULZR81UMMRk2nqh5P/UeiznJUvK8SMf4ie07hvAjPmhA8My6rs6VBji+eEIYTJQL5omvRNFZ6ZAMgi5R1qLieoopCFQ1Xu0kBW0UWs6aLIEeqSZWITCEF5uaQIfV+mWayW3c7sCG1jw8IiqeYwGYWSFW+cLsXL5UehpimTzL4TxMOoDwpWXmMPoUeySCzm81DUfudcu6ec6vLQ7gLYrWZm7Dx1AXhGc044xjpKWbU1dR5VTXu4MGCdj9hrrnEtBK4W1w7BfCZefcrrG6sLtOCUUB73KKe1om1sOQJMFKn39CFy6BBcD/CjPeRyuuXa0w9og4v9zyro/YuaG/wUr6uEw8kzquPp8dbe9fayv239RdvYu+x22vO/D6/dOb9cD/EONO7gZ+bVU9IAAAAASUVORK5CYII=\"","import differenceInMilliseconds from '../differenceInMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * var result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\n\nexport default function differenceInSeconds(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / 1000;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}","import differenceInMilliseconds from '../differenceInMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_MINUTE = 60000;\n/**\n * @name differenceInMinutes\n * @category Minute Helpers\n * @summary Get the number of minutes between the given dates.\n *\n * @description\n * Get the signed number of full (rounded towards 0) minutes between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of minutes\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?\n * var result = differenceInMinutes(\n * new Date(2014, 6, 2, 12, 20, 0),\n * new Date(2014, 6, 2, 12, 7, 59)\n * )\n * //=> 12\n *\n * @example\n * // How many minutes are from 10:01:59 to 10:00:00\n * var result = differenceInMinutes(\n * new Date(2000, 0, 1, 10, 0, 0),\n * new Date(2000, 0, 1, 10, 1, 59)\n * )\n * //=> -1\n */\n\nexport default function differenceInMinutes(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / MILLISECONDS_IN_MINUTE;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}","import differenceInMilliseconds from '../differenceInMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\n/**\n * @name differenceInHours\n * @category Hour Helpers\n * @summary Get the number of hours between the given dates.\n *\n * @description\n * Get the number of hours between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of hours\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?\n * var result = differenceInHours(\n * new Date(2014, 6, 2, 19, 0),\n * new Date(2014, 6, 2, 6, 50)\n * )\n * //=> 12\n */\n\nexport default function differenceInHours(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / MILLISECONDS_IN_HOUR;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}","import React, { Component } from \"react\"\nimport \"./index.scss\"\n\nclass Ranking extends Component {\n constructor(props) {\n super(props)\n this.state = {\n kanjiaIcon: require(\"../image/kanjia_icon.png\"),\n }\n }\n\n // 关闭更多窗口\n closeMore = () => {\n this.props.boxHide(false)\n }\n\n render() {\n return (\n <div className={\"ranking-box\"}>\n {this.props.isShowMore && (\n <MoreList\n list={this.props.list}\n limitPeople={this.props.limitPeople}\n closeMore={this.closeMore}\n img={this.props.icon}\n />\n )}\n </div>\n )\n }\n}\n\nfunction MoreList(props) {\n return (\n <div className=\"moreMbc\">\n <div className=\"content\">\n <div className=\"title-box\">好友助力详情</div>\n <ul className=\"more-bargain-list\">\n {props.list &&\n props.list.length > 0 &&\n props.list.map((item, index) => {\n return (\n <li key={index} className=\"bargain-item\">\n <img className=\"avatar\" src={item.avatar_file} alt=\"\" />\n <p className=\"name\">{item.user_name}</p>\n <p className=\"bargain-status\">\n <img className=\"kanjia-icon\" src={props.img} alt=\"\" />\n 砍掉<span className={\"price\"}>{item.amount}</span>\n </p>\n </li>\n )\n })}\n </ul>\n <div className=\"more-bargain-dec\">\n 超过{props.limitPeople}位好友助力可获得【砍价神器】\n </div>\n </div>\n <i\n onClick={props.closeMore}\n className={\"iconfont iconiconfront-2 close\"}\n ></i>\n </div>\n )\n}\n\nexport default Ranking\n","import React, { Component } from \"react\"\nimport ReactDom from \"react-dom\"\n\nimport \"./overlay.scss\"\n\nconst root = document.body || document.documentElement\n\nconst events = [\"touchmove\", \"mousewheel\"]\n\nclass Overlay extends Component {\n constructor(props) {\n super(props)\n this.overlayBox = null\n }\n\n preventScroll = (e) => {\n e.preventDefault()\n }\n\n componentDidMount() {\n events.forEach((item) => {\n this.overlayBox.addEventListener(item, this.preventScroll, {\n passive: false,\n })\n })\n }\n\n componentWillUnmount() {\n events.forEach((item) => {\n this.overlayBox.removeEventListener(item, this.preventScroll)\n })\n }\n\n render() {\n return ReactDom.createPortal(\n <div\n className={\"overlay\"}\n ref={(el) => (this.overlayBox = el)}\n style={{ top: `${window.scrollY}px` }}\n >\n {this.props.children}\n </div>,\n root\n )\n }\n}\n\nexport default Overlay\n","module.exports = __webpack_public_path__ + \"mrstaticmedia/kanjia_cg_icon.81a489ac.png\";","import getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport startOfDay from '../startOfDay/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_DAY = 86400000;\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * var result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\n\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import toDate from '../toDate/index.js';\nimport differenceInCalendarDays from '../differenceInCalendarDays/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js'; // Like `compareAsc` but uses local time not UTC, which is needed\n// for accurate equality comparisons of UTC timestamps that end up\n// having the same representation in local time, e.g. one hour before\n// DST ends vs. the instant that DST ends.\n\nfunction compareLocalAsc(dateLeft, dateRight) {\n var diff = dateLeft.getFullYear() - dateRight.getFullYear() || dateLeft.getMonth() - dateRight.getMonth() || dateLeft.getDate() - dateRight.getDate() || dateLeft.getHours() - dateRight.getHours() || dateLeft.getMinutes() - dateRight.getMinutes() || dateLeft.getSeconds() - dateRight.getSeconds() || dateLeft.getMilliseconds() - dateRight.getMilliseconds();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}\n/**\n * @name differenceInDays\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full day periods between two dates. Fractional days are\n * truncated towards zero.\n *\n * One \"full day\" is the distance between a local time in one day to the same\n * local time on the next or previous day. A full day can sometimes be less than\n * or more than 24 hours if a daylight savings change happens between two dates.\n *\n * To ignore DST and only measure exact 24-hour periods, use this instead:\n * `Math.floor(differenceInHours(dateLeft, dateRight)/24)|0`.\n *\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full days according to the local timezone\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n * // How many full days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * var result = differenceInDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 0\n * // How many full days are between\n * // 1 March 2020 0:00 and 1 June 2020 0:00 ?\n * // Note: because local time is used, the\n * // result will always be 92 days, even in\n * // time zones where DST starts and the\n * // period has only 92*24-1 hours.\n * var result = differenceInDays(\n * new Date(2020, 5, 1),\n * new Date(2020, 2, 1)\n * )\n//=> 92\n */\n\n\nexport default function differenceInDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareLocalAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarDays(dateLeft, dateRight));\n dateLeft.setDate(dateLeft.getDate() - sign * difference); // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastDayNotFull = compareLocalAsc(dateLeft, dateRight) === -sign;\n var result = sign * (difference - isLastDayNotFull); // Prevent negative zero\n\n return result === 0 ? 0 : result;\n}","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGUAAABmCAMAAADlNq9TAAACSVBMVEUAAABeTUZoSDp2QytSUlL/1jRSUlJhTEL/1jRSUlJ2QytVUE780jP/1jRSUlL/1jT/1jR1QyxSUlJSUlJ2Qyv/1jRmSj3/1jR2QytSUlL/1jR3RCv/1jT/1jT/1jT/1jRcTkj/1jSPXS3/1jT/1jT/1jT/1jR1QytSUlJ2QytSUlJSUlL/1jRTUVD/1jR2Qyv/1jT/1jRSUlJ2QytSUlJ2Qyt8SixSUlL/1jT/1jRSUlL/1TR6Ryt2QytSUlJSUlJSUlJSUlL/1jT/1jR2Qyt2Qyv/1jT/1jR2Qyv/1jRSUlL/1jT/1jR2QyuUYy1+TCtyRC9SUlJ2Qyt2QyuTYS3dsTF2QyvovTK6jC9aTknKnjG8jjCKWSzzyTPNoDGldi5qSDiOXS3/1jR2QyvoVFRSUlLznJL+1DRXVlGVcUnqxjj40TWBdkmIe0igjUT+z0B7cUu6oUDKrj3yzDZrZU3Gqz7iwDn2zjX60TSwmkHuyTfvxTN7SCtfXFBbWVCNgEjStDznwjikdC6XZi2HVSxiXk+adkiYiEbdvDrWqjF/TCtmYU5vaE12bUyShEacikW1nkHitjLQojGlkkPTrDzZuTrHmTDDljC2iC+sfS6slkK9o0DHoT/OsTz2zDOebS6EUiy2kELApj/9yTfeszLarjHAkjDqXFPxg0imgUWuiETZtTvswTPovTKygy/0oIbxhmXveGDpWFTtbk33qj/0n3rqYVbsaFT2n0HBm0D5sj3huTq7jS/ykmzvekqfe0f0lkS7lkH7vjoJQEVHAAAAYnRSTlMABQv7ufmfH8etZBYUBpFwHvXsy8NFJ+/q3drNnGRRLxAK/vSslX52QTw399PStKuNh4BvbVZKST3owby0mWBZUjAn4d/UwqOGeXZcNTH+8KKGfj/s4tvG7u3r3NvOramXgxcNtvQAAAi0SURBVGjerNRLc9JQFAfwfx4kDbShkJZHKQVmRChIWwHbDpYWtO+H0+rCceFj7hmmH8GFrMSN3dWF4sa6UFdOP6MhlUwMt2Fa+W0yN4vzz5x7TjACU8v4L2K+rCj6ujgkhdYiuLWmUjtpFPLVUngDXtaIpF3xlhmyVoBFKLc8YxJk2lzGcI9c57RuFGBTwgFcyXDaKpGlLmKYbApO+fi+AJOatzoeKO7jyiwG+OmvzXkMMbMHh2q80KtdLmlK2FAByDIsE75DuKRj1Cfl4Gmc3XGcTkqqFVUVzCLxXoBeguWQBd39miKHRc+urbIZ2PZLAUDU5LR12mipZooBS5Lt4B+qGeK05TXTB8yHvpWwaobUFAGWSKsJyAos99k2HIRKiFxi8+CaSCWXxhibvTs3ad20tR2KLKChrPdCWwGkiw0gsxpcmmHRbHB6HBY1F6NB0gNwBKPMdu8Q0Gu90sWAoGm6GQBNM3sYFzJZH7MtTIrzT6eIT/KDY/JgaeExY9s7e9MZmJ+9AkBToMtCNS5g3VwV1XqXSmYfRpnv5fNXr9e2JHJrk60CvjkWhcWsClNNhiCW4000wgUIhn7k311MxIh+sXPiO+s6DjlwpdhYf81lmBpFWTaqonASjwjPSi/sL79kn4jv4gc5+PkT4JvtpxjWI90MAHlDWa7HSCJbh3WJr/tt+AhgLNnvWKuAK3nZeLPpbv5phzjana/nrPv+gyOGO9DB8f4KaOFyQY2slA3tOEQDPrZ5d/LlNzO9/dkhW0zltQy2vC7XNH0jFyKO78TX/nx65voLiBjqKEE3c/mOXBYxjF+iG3oyOHx+eBLqdHMX5BaKeIYc02gk4KFOo1LBtSo0MiH12umSaCS85yxBo/SH9brnTRsI4wAuNWOnSlHVsWKpmDq1U7u1UpcmUppmaafndDqLFwscHJnYaalxBKZJBEa1cVAxQoYJ8wn4cDV2gn3XIx7i32bJ5u+757k783lHD6Nc7fP76wPK11v+UHL2kV+VvHHOgCLiyL0yj1v1U92ZL1XVt3UNJZ6zIU/Su30vfCZQ1eXAdNy2hrK0FwFsKXZyoh2xKW/QVsFSIIUsrZE3RTsYujUBmrLeuZu93o7DIsChBKa9dvV2wZhuziytZxx4rmOqwDO4f6mXzGK5n7ADFXKgHnKXzBcUO1YAcoz5RKe8QpHvJH3n3BxMALKRgbNaLXxqpr/uJb3MlOUw+VFlYcT9Y0IWs3DXCBakfIv2fzrlBG2YSf0MpLmetokhGSH2JqAXNSc1wGMUekoVP35v2LL0UQAwWYxMAhnWmmET4usFl26cAIWK1P+qKMWHXLnsx0wxHnC+llGTsSvfgZzpCL1nzxaN7VrS7Yud4awEDyvNxI7Y73LqN0foHfvx4gGl3Kw0Wy1ZbOCaTGAnuSpKLalZw79vy8AgU7TPLkob0qRGk8S3Slf4+gz4ftVuTiFyVsWXMjBW6CSdchSmpPuQiBd/koshFmbAI/3opy4ucIcZtI9eMGMxIKUjdONpa9XHf8sgCbjOmy3cvyvgrC6fQ+kKV+kY0nvG1EWHxDh+/Pym0q//FIRhuSVg+f/pEioQUprXt2PxEldLpw3cAYq3948Qe1mRGojCADxPIS5c6d6lbyKKO//hp4q6hNy6YwJJOoumW3ObsQloDy0yCzfzksIMjDmxdb5dFuEU1Km/iiN6TPSx2m4VgKk8KAAmZJ/csjJYqDkBSPrQArABy6mpFov5dbk4L9d4dGINoKgckBkF5eiUZw1J6VIBKqwSKGOBnGURcWtlLy+ulwyPrhgAGBmvw05XgU1Kxg1pIKzZAYi5y4a00r6B406lcgN/iCrPLn/ij5wDgJZFysw4psWRDo5XyyotgB2jkSsbUJ/21Danw9wX8YKZ5zFipgAqFqSC8gzXLHHkCMGSBvC8CXkCIlZFy2nPFnMvL+aef5//rzkBHW80DZBpGmrkDCA5HoCAtWd0/xWF3BimMsrk8/UbZgL2Cjnb4+ah4wqmCHgLaUNtsNY8rCyAgXc9mxMHzL2Xg2GRL1nKEWpgmU/72LtmxYPddgoLA3uLSOtxsz8d0jjRHWotw+iDqPLxq9zZkoHCXeD9GBl86tqiThss2ZBhAnOs/ZDvFUZurnQM4a2o8uYzhHVLZ/BA1dtVH2T4W+bYbh4DQ0e1byC9k5PYa0jZqPVufV8w9IlSOEtFJd1JAUjGboLC0usL4RWWzLHXW+f9bo//sDeuqkLv6/OX0IvF7BpnqMJYPC0xGf7hNy11jIIwEERheBrBQtBGBBHBxlKwUzyCt3jNMrYBDXY2c4Itt9lyNycIKcSbqUEhEyxMYL8LTPEPb03KAUkcSVkgiR0pYyQxImWKFPakTZDChlpmSGBLLRt8mcqWD1egjzxTr7+kljU+7J0lBOESnV0jM0u0uYr/K/+NhZld7gM68+JsFOGQoTanttUAtUr4JcL6HlccHvxmG/uiDVEz3gnfKxNP6KzwcMws4dzIom2/AS/mApgcPRSZsaW7WZVF2eEvz1bqZ0VBKIrj+NkILhLdSBBpROZKhtoV7QyKmHmKw8GW81AudJfaX4Ji6MlmIqaUbveY9Vnd3ZffWdxwtduHWIoKAh3knY50FpfqdEHAQ9Yqo4toj7wpCDT4CF1lJ2Q1Kl0sjOhmO0dWG+4YyIkp7wdZLbjTYqdklLfhx5gVKjsq2iPHrnCx+DIhTdJIcjJmCygotyWidB2crc/vI3J8uKeiXER0CP4lREtkdEBghnJESXCT8pURCBjclk2Qs8jYig4iDkotD0FeEnMHq4GIr6BMvChU1jv2sxTro8yqWFmE7BQxzUOJ+XcRylnwiDHGd3HgsZqK7/GhgYyr4Bv0gWFMX+40TOAZvSG+YKhrUIpmOx2sRrU0KE8b9CfK04mZD0/TvqzupNz1FM9xzTZU1/YH9qfu9prOSPXG9Tr+UerDsaeOnGbP1S3bbNXggV9XIWYP5SLNCwAAAABJRU5ErkJggg==\""],"sourceRoot":""}