{"version":3,"file":"static/js/1681.637ceb75.chunk.js","mappings":"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","sources":["components/scroll-arrow.js","components/availability-slider.js"],"sourcesContent":["import ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\nimport React, {useEffect, useState, useContext} from 'react';\nimport {VisibilityContext} from 'react-horizontal-scrolling-menu';\n\nconst arrowStyle = {\n cursor: 'pointer',\n userSelect: 'none',\n fontSize: '30px',\n color: '#858585',\n};\n\nexport function LeftArrow() {\n const {isFirstItemVisible, scrollPrev, visibleElements, initComplete} =\n useContext(VisibilityContext);\n\n const [disabled, setDisabled] = useState(\n !initComplete || (initComplete && isFirstItemVisible)\n );\n\n useEffect(() => {\n // NOTE: detect if whole component visible\n if (visibleElements.length) {\n setDisabled(isFirstItemVisible);\n }\n }, [isFirstItemVisible, visibleElements]);\n\n return (\n <ChevronLeftIcon\n disabled={disabled}\n onClick={() => scrollPrev()}\n style={{\n ...arrowStyle,\n opacity: disabled ? '0' : '1',\n }}\n >\n Left\n </ChevronLeftIcon>\n );\n}\n\nexport function RightArrow() {\n const {isLastItemVisible, scrollNext, visibleElements} =\n useContext(VisibilityContext);\n\n const [disabled, setDisabled] = useState(\n !visibleElements.length && isLastItemVisible\n );\n\n useEffect(() => {\n if (visibleElements.length) {\n setDisabled(isLastItemVisible);\n }\n }, [isLastItemVisible, visibleElements]);\n\n return (\n <ChevronRightIcon\n disabled={disabled}\n onClick={() => scrollNext()}\n style={{\n ...arrowStyle,\n opacity: disabled ? '0' : '1',\n }}\n >\n Right\n </ChevronRightIcon>\n );\n}\n","import {LeftArrow, RightArrow} from './scroll-arrow';\n\nimport {\n addSameTrainAlternates,\n closeGoogleLogin,\n getSyncedPassengerData,\n initLogin,\n openGoogleLogin,\n setSyncedData,\n setTrainDetails,\n} from '../actions/main';\nimport {\n getAlternatesAllClassesApi,\n getAlternatesAllDatesApi,\n getAvlFareEnquiryApi,\n} from '../api/api';\nimport {\n addLeadingZeros,\n formatDate,\n locallySetPassengerData,\n timeSince,\n} from '../utils/common-methods';\nimport {Config} from '../utils/Config';\nimport {DISPLAYNAME, LOCALSTORAGE_KEY} from '../utils/constants.js';\nimport {CookieName, getCookie, setCookie} from '../utils/cookieManager';\n\nimport Button from '@material-ui/core/Button';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport Dialog from '@material-ui/core/Dialog';\nimport Grid from '@material-ui/core/Grid';\nimport Snackbar from '@material-ui/core/Snackbar';\n// import ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\n// import ChevronRightIcon from '@material-ui/icons/ChevronRight';\nimport differenceInDays from 'date-fns/differenceInDays';\nimport firebase from 'firebase/app';\nimport React, {Component, lazy, Suspense} from 'react';\nimport ReactGA from 'react-ga';\nimport {ScrollMenu} from 'react-horizontal-scrolling-menu';\nimport {InView} from 'react-intersection-observer';\nimport {connect} from 'react-redux';\nimport SwipeableViews from 'react-swipeable-views';\nimport 'firebase/analytics';\n\nconst AlternateMain = lazy(() => import('./alternates/main'));\n\nclass AvailabilitySlider extends Component {\n constructor(props) {\n super(props);\n this.state = {\n selected: 'SL',\n tabIndex: null,\n isOpenSixDaysAvail: false,\n isSnackBarOpen: false,\n sixDaysAvail: {},\n isLoading: false,\n isLoadingAlt: false,\n isAlterDialogOpen: false,\n errMsg: '',\n prevQuota: this.props.trainListingReducer.selectedQuota,\n };\n\n const train = this.props.train;\n this.avlClasses = train.avlClasses.Array;\n this.alternateKey =\n train.trainNumber + '-' + this.props.trainListingReducer.doj;\n }\n\n componentDidMount() {\n try {\n const jd = this.props.journeyDetails;\n if (\n jd.trainDetails &&\n window.location.href.includes('#alt') === true &&\n this.props.train.trainNumber === jd.trainDetails.trainNo\n ) {\n const AlternateDOJ = getCookie('AlternateDOJ') || '';\n jd.trainDetails.avlDayList.forEach((a) => {\n if (\n addLeadingZeros(AlternateDOJ) === addLeadingZeros(a.availablityDate)\n ) {\n this.setState({\n isAlterDialogOpen: true,\n selectedAvail: jd.trainDetails,\n sixDays: a,\n });\n }\n });\n }\n\n const pSlectedCls = this.props.propSelectedClass;\n if (pSlectedCls) {\n this.onSelect(pSlectedCls);\n }\n\n window.addEventListener('popstate', this.handleBack);\n } catch (e) {\n console.error(e);\n }\n }\n\n openLogin = (flag) => {\n if (flag === 'HIDEONETAP') {\n this.props.closeGoogleLogin();\n } else this.props.openGoogleLogin({isSignInButton: false});\n };\n\n handleBack = () => {\n if (this.props.history.location.pathname.indexOf('#alt') === -1) {\n this.setState({isAlterDialogOpen: false});\n }\n };\n\n componentWillUnmount = () => {\n if (this.abortController) {\n this.abortController.abort();\n }\n window.removeEventListener('popstate', this.handleBack);\n };\n\n abortController =\n typeof window.AbortController === 'function'\n ? new window.AbortController()\n : null;\n\n onComponentVisible = (inView) => {\n if (inView) {\n const tlr = this.props.trainListingReducer;\n const t = this.props.train;\n const doj = tlr.doj;\n if (tlr.sameTrainAlternates[this.alternateKey]) {\n return;\n }\n const avArray = [];\n const clsArray = [];\n const avlClsArray = [];\n this.avlClasses.forEach((c) => {\n if (t.avaiblitycacheOriginal[c]) {\n const av = t.avaiblitycacheOriginal[c].Availability;\n if (av?.indexOf('AVAILABLE') < 0) {\n avArray.push(av);\n clsArray.push(c);\n } else {\n avlClsArray.push(c);\n }\n }\n });\n\n // if all classes has prediction available dont call alternate class api\n if (this.avlClasses?.length !== avlClsArray.length) {\n if (clsArray.length > 0 && tlr.selectedQuota === 'GN') {\n const clsCommaSeparated = this.avlClasses.join();\n const avCommaSeparated = avArray.join();\n const urlObj = {\n trainNo: t.trainNumber,\n travelClass: clsCommaSeparated,\n source: t.fromStnCode,\n destination: t.toStnCode,\n doj,\n availabilityList: avCommaSeparated,\n };\n\n getAlternatesAllClassesApi(\n urlObj,\n this.abortController ? this.abortController.signal : null\n )\n .then((res) => {\n this.props.addSameTrainAlternates({\n key: this.alternateKey,\n value: res,\n });\n })\n .catch((error) => {\n console.log(error);\n });\n // this.fetchAltAllCls(urlObj);\n }\n }\n }\n };\n\n fetchAltAllDates(obj) {\n getAlternatesAllDatesApi(\n obj,\n this.abortController ? this.abortController.signal : null\n )\n .then((res) => {\n if (res) {\n for (const dt in res) {\n if ({}.hasOwnProperty.call(res, dt)) {\n const alternateKey = this.props.train.trainNumber + '-' + dt;\n const value = {[this.state.selectedCls]: res[dt]};\n this.props.addSameTrainAlternates({\n key: alternateKey,\n value: value,\n });\n }\n }\n }\n })\n .catch((error) => {\n console.log(error);\n });\n }\n\n openSnackBar = (message) => {\n const msg = (\n <div className=\"snackbar-msg\" id=\"message-id\">\n {message}\n </div>\n );\n this.setState({isSnackBarOpen: true, message: msg});\n };\n\n handleClose = () => {\n this.setState({isSnackBarOpen: false});\n };\n\n book = (tdObj, selectedDate) => {\n const token = getCookie(CookieName.USERTEMPTOKEN);\n const authToken = getCookie(CookieName.USERTOKEN);\n tdObj.selectedDate = addLeadingZeros(selectedDate);\n this.props.setTrainDetails({trainDetails: tdObj});\n const irctcUserName = localStorage.getItem(LOCALSTORAGE_KEY.IRCTC_USERNAME);\n let landingPath = `${Config.URL}/irctc/username`;\n if (irctcUserName) {\n landingPath = `${Config.URL}/passenger-details`;\n }\n\n if (token) {\n let syncData = localStorage.getItem(LOCALSTORAGE_KEY.SYNC_DATA);\n\n if (syncData) {\n syncData = JSON.parse(syncData);\n const dayDiff = differenceInDays(new Date(), new Date(syncData.time));\n\n if (dayDiff <= 14) {\n locallySetPassengerData(syncData.data);\n this.props.setSyncedData(syncData.data);\n } else {\n this.props.getSyncedPassengerData(authToken);\n }\n } else {\n this.props.getSyncedPassengerData(authToken);\n }\n this.props.history.push(landingPath);\n } else {\n this.props.initLogin({redirectPath: landingPath});\n }\n try {\n ReactGA.plugin.execute('ec', 'addProduct', {\n id: `trains-desktop`, // sku\n name: `trains-desktop`, // Product name (string).\n category: 'trains-desktop', // Product category (string)\n });\n ReactGA.plugin.execute('ec', 'setAction', 'add');\n } catch (e) {\n console.error(e);\n }\n\n let Status = '';\n tdObj.avlDayList.forEach((a) => {\n if (addLeadingZeros(a.availablityDate) === tdObj.selectedDate) {\n Status = a.confirmTktStatus;\n }\n });\n firebase.analytics().logEvent('SearchBookClicked', {\n Day: selectedDate,\n Class: tdObj.travelClass,\n Fare: tdObj.totalCollectibleAmount,\n Status,\n });\n };\n\n getPredictionCssClass(ctktStatus) {\n const predictionCssClass =\n ctktStatus === 'confirm'\n ? 'prediction-confirm'\n : ctktStatus === 'probable'\n ? 'prediction-probable'\n : ctktStatus === 'no chance'\n ? 'prediction-low'\n : 'prediction-default';\n\n return predictionCssClass;\n }\n\n onSelect = (key) => {\n const token = getCookie(CookieName.USERTEMPTOKEN);\n\n if (!token) {\n firebase\n .analytics()\n .logEvent('SearchCheckSixDaysAvailClickedNotLoggedIn');\n this.props.initLogin({\n isSignInButton: true,\n redirectPath:\n this.props.history.location.pathname +\n '' +\n this.props.history.location.search,\n });\n return;\n }\n\n firebase.analytics().logEvent('SearchCheckSixDaysAvailClickedLoggedIn');\n this.setState({\n selectedCls: key,\n tabIndex: this.avlClasses.indexOf(key),\n });\n\n if (token) {\n this.setState({\n selectedCls: key,\n tabIndex: this.avlClasses.indexOf(key),\n });\n if (!this.state.sixDaysAvail[key]) {\n this.fetchSixDays(key);\n }\n this.setState({isOpenSixDaysAvail: true});\n\n try {\n ReactGA.plugin.execute('ec', 'addProduct', {\n id: `trains-desktop`, // sku\n name: `trains-desktop`, // Product name (string).\n category: 'trains-desktop', // Product category (string)\n });\n\n ReactGA.plugin.execute('ec', 'setAction', 'click', {\n list: `trains-search-result`,\n });\n } catch (e) {\n console.error(e);\n }\n } else {\n this.props.initLogin({isSignInButton: true});\n }\n };\n\n fetchSixDays = (selectedClass) => {\n this.setState({isLoading: true});\n const travelClass = selectedClass;\n const selectedInfo = this.props.train;\n const trainName = selectedInfo.trainName;\n const trainNo = selectedInfo.trainNumber;\n const fromStnCode = selectedInfo.fromStnCode;\n const toStnCode = selectedInfo.toStnCode;\n const quota = this.props.trainListingReducer.selectedQuota;\n const doj = this.props.trainListingReducer.doj;\n const token = getCookie(CookieName.USERTEMPTOKEN);\n const FreeCancellationPlanName =\n Config.firebaseRemoteConfig.FreeCancellationPlanName;\n\n const obj = {\n trainNo,\n travelClass,\n quota,\n source: fromStnCode,\n destination: toStnCode,\n doj,\n tempToken: token,\n FreeCancellationPlanName,\n };\n\n getAvlFareEnquiryApi(\n obj,\n this.abortController ? this.abortController.signal : null\n )\n .then((res) => {\n if (res.avlDayList && res.avlDayList.length > 0) {\n res.trainNo = trainNo;\n res.trainName = trainName;\n res.from = fromStnCode;\n res.to = toStnCode;\n res.travelClass = travelClass;\n res.quota = quota;\n this.setState({\n sixDaysAvail: {...this.state.sixDaysAvail, [travelClass]: res},\n isLoading: false,\n });\n\n // fetch sametrain alternates\n const t = this.props.train;\n const dateList = [];\n const availabilityList = [];\n\n res.avlDayList.forEach((d) => {\n if (d.availablityStatus.indexOf('AVAILABLE') < 0) {\n dateList.push(d.availablityDate);\n availabilityList.push(d.availablityStatus);\n }\n });\n\n if (dateList.length > 0 && quota === 'GN') {\n const dateCommaSep = dateList.join();\n const availCommaSep = availabilityList.join();\n\n const urlObj = {\n trainNo: t.trainNumber,\n travelClass,\n source: t.fromStnCode,\n destination: t.toStnCode,\n doj: dateCommaSep,\n availabilityList: availCommaSep,\n };\n this.fetchAltAllDates(urlObj);\n }\n } else {\n this.setState({isLoading: false});\n const errMsg = res.errorMessage ? res.errorMessage : '';\n this.setState({errMsg: errMsg});\n }\n })\n .catch((error) => {\n if (error.name === 'AbortError') {\n console.error('Fetch aborted');\n } else {\n this.setState({isLoading: false});\n this.openSnackBar(\n 'Something went wrong, please try after some time.'\n );\n }\n });\n };\n\n openAlternates = (selectedAvail, sixDays) => {\n firebase.analytics().logEvent('SearchAlternateClicked');\n setCookie('AlternateDOJ', sixDays.availablityDate, 0.2);\n\n this.setState({isLoadingAlt: true});\n const tlr = this.props.trainListingReducer;\n const alternates = tlr.sameTrainAlternates;\n const key = selectedAvail.trainNo + '-' + sixDays.availablityDate;\n if (\n alternates[key] &&\n alternates[key] &&\n alternates[key][this.state.selectedCls].length > 0\n ) {\n this.setState({\n isAlterDialogOpen: true,\n selectedAvail: selectedAvail,\n sixDays: sixDays,\n });\n this.props.history.push(this.props.history.location.pathname + '#alt');\n }\n this.setState({isLoadingAlt: false});\n };\n\n handleCloseAlternate = () => {\n this.setState({isAlterDialogOpen: false});\n this.props.history.push(\n this.props.history.location.pathname.replace('#alt', '')\n );\n };\n\n handleChangeIndex = (event, index) => {\n this.setState({\n selectedCls: this.avlClasses[event],\n tabIndex: event,\n });\n if (!this.state.sixDaysAvail[this.avlClasses[event]]) {\n this.fetchSixDays(this.avlClasses[event]);\n }\n this.setState({isOpenSixDaysAvail: true});\n firebase.analytics().logEvent('SearchCheckSixDaysAvailClicked');\n };\n\n scrollToItem = (key) => {\n try {\n document.querySelector(`[itemId=\"${key}\"]`).scrollIntoViewIfNeeded();\n } catch {}\n };\n\n onWheel = (apiObj, ev) => {\n const isThouchpad = Math.abs(ev.deltaX) !== 0 || Math.abs(ev.deltaY) < 15;\n if (isThouchpad) {\n ev.stopPropagation();\n return;\n }\n if (ev.deltaY < 0) {\n apiObj.scrollNext();\n } else if (ev.deltaY > 0) {\n apiObj.scrollPrev();\n }\n };\n\n render() {\n const {\n tabIndex,\n selectedCls,\n sixDaysAvail,\n isLoading,\n errMsg,\n isAlterDialogOpen,\n isOpenSixDaysAvail,\n sixDays,\n isLoadingAlt,\n isSnackBarOpen,\n message,\n } = this.state;\n\n const {\n train: {trainNumber, fromStnCode, toStnCode},\n trainListingReducer,\n train,\n } = this.props;\n const {doj} = this.props.trainListingReducer;\n\n this.sixDaysMenu = this.avlClasses.map((cl) => {\n return (\n <div\n key={cl}\n className={\n cl === selectedCls\n ? 'six-days-menu-active'\n : 'six-days-menu-inactive'\n }\n >\n {cl + ' - ' + (DISPLAYNAME.TRAIN_CLASS[cl] || cl)}\n </div>\n );\n });\n\n const selectedAvail = sixDaysAvail[selectedCls];\n\n function availabilityCacheBuild({\n train,\n trainListingReducer,\n alternateKey,\n onSelect,\n getPredictionCssClass,\n }) {\n const {avlClasses} = train;\n const availCacheBlock = avlClasses.Array.map((item, i) => {\n let av = null;\n train.avaiblitycache?.length > 0 &&\n train.avaiblitycache.forEach((a) => {\n if (item === a[0]) {\n av = a;\n }\n });\n if (av) {\n const ctktStatus =\n av[1] && av[1]['ConfirmTktStatus']\n ? av[1]['ConfirmTktStatus'].toLowerCase()\n : '';\n const predictionCssClass = getPredictionCssClass(ctktStatus);\n\n const altObj = trainListingReducer.sameTrainAlternates\n ? trainListingReducer.sameTrainAlternates[alternateKey]\n : null;\n const alternate = altObj ? altObj[av[0]] : null;\n\n const displayFare = av[1]\n ? isNaN(parseFloat(av[1]['Fare']))\n ? ''\n : parseFloat(av[1]['Fare'])\n : '';\n\n return (\n <div key={av[0]} className=\"avail-block\">\n <div\n className=\"main-content\"\n onClick={() => {\n onSelect(av[0]);\n firebase.analytics().logEvent('SearchBlockClicked', {\n Source: fromStnCode,\n Destination: toStnCode,\n Doj: doj,\n Class: av[0],\n Fare: av[1]?.Fare || '',\n Status: av[1]?.ConfirmTktStatus || '',\n });\n }}\n >\n <div className=\"avail-cls\">\n <span>{av[0]}</span> \n <span className=\"fare\">\n {displayFare ? <span>₹ {displayFare}</span> : ''}\n </span>\n </div>\n <div className=\"availability\">\n {av[1] ? (\n <span className={predictionCssClass}>\n {av[1]['Availability']}\n </span>\n ) : (\n <span>-</span>\n )}\n </div>\n <div className=\"prediction\">\n {av[1] ? (\n <span className={predictionCssClass}>\n {av[1]['Prediction'] ? (\n av[1]['Prediction']\n ) : (\n <span className=\"NA\">N.A</span>\n )}\n </span>\n ) : (\n <span>-</span>\n )}\n\n {alternate &&\n alternate.length > 0 &&\n trainListingReducer.selectedQuota === 'GN' && (\n <span className=\"alternate p\">\n {' '}\n {av[1]['Prediction'] && '| '} {alternate.length} Alt\n <img\n alt=\"alternate\"\n src=\"https://www.confirmtkt.com/img/idea.png\"\n />\n </span>\n )}\n </div>\n </div>\n <div className=\"cache-time\">\n {av[1] && av[1]['CacheTime'] ? (\n timeSince(new Date(Date.parse(av[1]['CacheTime'])))\n ) : (\n <div className=\"NA\">N.A</div>\n )}\n </div>\n </div>\n );\n } else {\n return (\n <div key={item} className=\"avail-block p\">\n <div className=\"main-content block\">\n <div className=\"no-avail ellipsis\">\n {item +\n ' - ' +\n (DISPLAYNAME.TRAIN_CLASS[item].toLowerCase() || item)}\n </div>\n <div className=\"click-refresh\">Click to refresh</div>\n </div>\n <div className=\"no-cache-time\">--</div>\n </div>\n );\n }\n });\n return availCacheBlock;\n }\n\n const errorContent = (\n <div>\n <img\n alt=\"error-msg\"\n src=\"https://www.confirmtkt.com/img/icons/oops.png\"\n height=\"50px\"\n width=\"140px\"\n />\n <div className=\"error\">Something went wrong</div>\n <div className=\"tag\">Please try after sometime</div>\n <Button\n variant=\"contained\"\n className=\"btn\"\n onClick={() => this.onSelect(selectedCls)}\n >\n Retry\n </Button>\n </div>\n );\n\n const sixDaysContent = isLoading ? (\n <div className=\"loading\">\n <CircularProgress />\n <br />\n <br /> Fetching Current Availabilty\n </div>\n ) : selectedAvail && selectedAvail['avlDayList'] ? (\n selectedAvail['avlDayList'].map((sd, index) => {\n const ctktStatus = sd['confirmTktStatus']\n ? sd['confirmTktStatus'].toLowerCase()\n : '';\n const predictionCssClass = this.getPredictionCssClass(ctktStatus);\n\n const alternateKey =\n this.props.train.trainNumber + '-' + sd.availablityDate;\n const altObj =\n this.props.trainListingReducer.sameTrainAlternates[alternateKey];\n const alternate = altObj ? altObj[selectedCls] : null;\n\n return (\n <div className=\"six-days-content\" key={index}>\n <Grid container justifyContent=\"flex-start\" className=\"sd-row\">\n <Grid item xs={4}>\n <span className=\"date\">\n {formatDate(sd.availablityDate, 'ToString')}\n </span>\n <br />\n </Grid>\n <Grid item xs={5}>\n <span className={`${predictionCssClass} main-text`}>\n {sd.availablityStatus}\n </span>\n <br />\n <span className={`${predictionCssClass} sub-text`}>\n {sd.prediction}\n </span>\n <span>\n {alternate &&\n alternate.length > 0 &&\n this.props.trainListingReducer.selectedQuota === 'GN' && (\n <span\n className=\"alternate p\"\n onClick={() =>\n this.openAlternates({...selectedAvail}, sd)\n }\n >\n {sd.prediction && ' | '} {alternate.length} {'Alt'}\n <img\n alt=\"alternate\"\n src=\"https://www.confirmtkt.com/img/idea.png\"\n />\n </span>\n )}\n </span>\n </Grid>\n <Grid item xs={3} className=\"price-column\" align=\"right\">\n {!sd.enableBookButton ? (\n <div\n className=\"book-btn-not\"\n onClick={() =>\n this.openSnackBar('Sorry no more booking for this date.')\n }\n >\n {'BOOK '}\n <span>\n {' ₹ '}\n {selectedAvail.totalCollectibleAmount\n ? parseFloat(selectedAvail.totalCollectibleAmount)\n : ''}\n </span>\n </div>\n ) : (\n <div\n className=\"book-btn p\"\n onClick={() => this.book(selectedAvail, sd.availablityDate)}\n >\n BOOK\n <span>\n {' ₹ '}\n {selectedAvail.totalCollectibleAmount\n ? parseFloat(selectedAvail.totalCollectibleAmount)\n : ''}\n </span>\n </div>\n )}\n </Grid>\n </Grid>\n </div>\n );\n })\n ) : (\n <div className=\"error-message\">{errMsg ? errMsg : errorContent}</div>\n );\n\n const alternateDialog = (\n <Dialog\n className=\"alternate-dialog\"\n open={isAlterDialogOpen}\n onClose={() => this.handleCloseAlternate()}\n >\n <div>\n {/* clone to avoid mutation on alternates*/}\n <Suspense\n fallback={\n <div className=\"loading\">\n <CircularProgress />\n </div>\n }\n >\n <AlternateMain\n train={Object.assign({}, this.props.train)}\n data={{\n selectedAvail: this.state.selectedAvail,\n sixDays,\n selectedCls,\n alternateKey: this.alternateKey,\n }}\n method={{handleClose: this.handleCloseAlternate}}\n history={this.props.history}\n />\n </Suspense>\n </div>\n </Dialog>\n );\n\n const swipeSixDaysContent = (\n <div>\n {tabIndex > -1 && tabIndex !== null && (\n <SwipeableViews\n index={tabIndex}\n onChangeIndex={this.handleChangeIndex}\n >\n {this.avlClasses.map((cl, index) => {\n return (\n <div\n key={cl}\n // index={cl}\n role=\"tabpanel\"\n hidden={cl !== selectedCls}\n id={cl}\n aria-labelledby={`full-width-tab-${index}`}\n >\n {sixDaysContent}\n </div>\n );\n })}\n </SwipeableViews>\n )}\n {(tabIndex === -1 || tabIndex === null) && (\n <div className=\"error-message\">{errMsg ? errMsg : errorContent}</div>\n )}\n </div>\n );\n\n return (\n <InView as=\"div\" onChange={(inView) => this.onComponentVisible(inView)}>\n {isOpenSixDaysAvail ? (\n <div className=\"availability-cache\">\n <ScrollMenu\n itemClassName=\"cls-item\"\n onWheel={this.onWheel}\n LeftArrow={LeftArrow}\n RightArrow={RightArrow}\n >\n {this.avlClasses.map((cls) => (\n <div\n key={cls}\n itemID={trainNumber + '-' + cls}\n onClick={() => {\n this.onSelect(cls);\n this.scrollToItem(trainNumber + '-' + cls);\n }}\n // className={`menu-item ${Boolean(cls === selectedCls)}`}\n className={\n cls === selectedCls\n ? 'six-days-menu-active'\n : 'six-days-menu-inactive'\n }\n >\n {cls + ' - ' + (DISPLAYNAME.TRAIN_CLASS[cls] || cls)}\n </div>\n ))}\n </ScrollMenu>\n <div>{swipeSixDaysContent}</div>\n {selectedAvail && selectedAvail['avlDayList'] && (\n <div\n className=\"hide-six-days p\"\n onClick={() => {\n this.setState({isOpenSixDaysAvail: false});\n }}\n >\n Hide 6 days availability\n </div>\n )}\n </div>\n ) : (\n <div className=\"availability-cache\">\n <ScrollMenu\n itemClassName=\"cls-item\"\n onWheel={this.onWheel}\n LeftArrow={LeftArrow}\n RightArrow={RightArrow}\n >\n {availabilityCacheBuild({\n train,\n onSelect: this.onSelect,\n trainListingReducer,\n alternateKey: this.alternateKey,\n getPredictionCssClass: this.getPredictionCssClass,\n })}\n </ScrollMenu>\n <div\n className=\"check-six-days\"\n onClick={() => {\n const cls = this.props.propSelectedClass\n ? this.props.propSelectedClass\n : this.avlClasses[0];\n this.onSelect(cls);\n firebase.analytics().logEvent('SearchCheckSixDaysAvailClicked');\n }}\n >\n Check 6 days availability\n </div>\n </div>\n )}\n {alternateDialog}\n {isLoadingAlt && (\n <div className=\"loading fixed\">\n <CircularProgress />\n </div>\n )}\n\n <Snackbar\n anchorOrigin={{vertical: 'bottom', horizontal: 'center'}}\n open={isSnackBarOpen}\n onClose={this.handleClose}\n ContentProps={{\n 'aria-describedby': 'message-id',\n }}\n autoHideDuration={3500}\n message={message}\n />\n </InView>\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loginReducer: state.loginReducer,\n trainListingReducer: state.trainListingReducer,\n journeyDetails: state.journeyDetailsReducer,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n setTrainDetails: (detail) => {\n dispatch(setTrainDetails(detail));\n },\n addSameTrainAlternates: (alternates) => {\n dispatch(addSameTrainAlternates(alternates));\n },\n initLogin: (config) => {\n dispatch(initLogin(config));\n },\n setSyncedData: (data) => {\n dispatch(setSyncedData(data));\n },\n getSyncedPassengerData: (token) => {\n dispatch(getSyncedPassengerData(token));\n },\n openGoogleLogin: (config) => {\n dispatch(openGoogleLogin(config));\n },\n closeGoogleLogin: (config) => {\n dispatch(closeGoogleLogin(config));\n },\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AvailabilitySlider);\n"],"names":["arrowStyle","cursor","userSelect","fontSize","color","LeftArrow","isFirstItemVisible","scrollPrev","visibleElements","initComplete","useContext","VisibilityContext","disabled","setDisabled","useState","useEffect","length","_jsx","ChevronLeftIcon","onClick","style","opacity","children","RightArrow","isLastItemVisible","scrollNext","ChevronRightIcon","AlternateMain","lazy","AvailabilitySlider","Component","constructor","props","super","openLogin","flag","this","closeGoogleLogin","openGoogleLogin","isSignInButton","handleBack","history","location","pathname","indexOf","setState","isAlterDialogOpen","componentWillUnmount","abortController","abort","window","removeEventListener","AbortController","onComponentVisible","inView","_this$avlClasses","tlr","trainListingReducer","t","train","doj","sameTrainAlternates","alternateKey","avArray","clsArray","avlClsArray","avlClasses","forEach","c","avaiblitycacheOriginal","av","Availability","push","selectedQuota","clsCommaSeparated","join","avCommaSeparated","urlObj","trainNo","trainNumber","travelClass","source","fromStnCode","destination","toStnCode","availabilityList","getAlternatesAllClassesApi","signal","then","res","addSameTrainAlternates","key","value","catch","error","console","log","openSnackBar","message","msg","className","id","isSnackBarOpen","handleClose","book","tdObj","selectedDate","token","getCookie","CookieName","USERTEMPTOKEN","authToken","USERTOKEN","addLeadingZeros","setTrainDetails","trainDetails","irctcUserName","localStorage","getItem","LOCALSTORAGE_KEY","IRCTC_USERNAME","landingPath","concat","Config","URL","syncData","SYNC_DATA","JSON","parse","differenceInDays","Date","time","locallySetPassengerData","data","setSyncedData","getSyncedPassengerData","initLogin","redirectPath","ReactGA","execute","name","category","e","Status","avlDayList","a","availablityDate","confirmTktStatus","firebase","logEvent","Day","Class","Fare","totalCollectibleAmount","onSelect","search","selectedCls","tabIndex","state","sixDaysAvail","fetchSixDays","isOpenSixDaysAvail","list","selectedClass","isLoading","selectedInfo","trainName","quota","FreeCancellationPlanName","firebaseRemoteConfig","obj","tempToken","getAvlFareEnquiryApi","from","to","dateList","d","availablityStatus","dateCommaSep","availCommaSep","fetchAltAllDates","errMsg","errorMessage","openAlternates","selectedAvail","sixDays","setCookie","isLoadingAlt","alternates","handleCloseAlternate","replace","handleChangeIndex","event","index","scrollToItem","document","querySelector","scrollIntoViewIfNeeded","onWheel","apiObj","ev","Math","abs","deltaX","deltaY","stopPropagation","selected","prevQuota","Array","componentDidMount","jd","journeyDetails","href","includes","AlternateDOJ","pSlectedCls","propSelectedClass","addEventListener","getAlternatesAllDatesApi","dt","hasOwnProperty","call","getPredictionCssClass","ctktStatus","render","sixDaysMenu","map","cl","DISPLAYNAME","TRAIN_CLASS","errorContent","_jsxs","alt","src","height","width","Button","variant","sixDaysContent","CircularProgress","sd","toLowerCase","predictionCssClass","altObj","alternate","Grid","container","justifyContent","item","xs","formatDate","prediction","align","enableBookButton","parseFloat","alternateDialog","Dialog","open","onClose","Suspense","fallback","Object","assign","method","swipeSixDaysContent","SwipeableViews","onChangeIndex","role","hidden","InView","as","onChange","ScrollMenu","itemClassName","cls","itemID","_ref","i","_train$avaiblitycache","avaiblitycache","displayFare","isNaN","_av$","_av$2","Source","Destination","Doj","ConfirmTktStatus","timeSince","availabilityCacheBuild","Snackbar","anchorOrigin","vertical","horizontal","ContentProps","autoHideDuration","connect","loginReducer","journeyDetailsReducer","dispatch","detail","config"],"sourceRoot":""}