{"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>&nbsp;\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":""}