{"version":3,"file":"static/js/554.aaf20097.chunk.js","mappings":"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","sources":["components/Checkout/Checkout.js","assets/images/discount.svg","assets/images/right.svg","components/HotelAddon/HotelAddonComponent.js","assets/images/time.svg","components/Promotion/Promotion.js","pages/MainPage/HotelImageCarousel.js","assets/images/close.svg"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { useHistory } from \"react-router-dom\";\nimport storageService from \"../../Services/storageService\";\nimport \"./Checkout.css\";\nimport { useTranslation } from \"react-i18next\";\nimport Confetti from \"react-confetti\";\nimport toastr from \"toastr\";\nimport { currency, promotionNames } from \"../../utils/currency\";\nimport dayjs from \"dayjs\";\nimport {\n  addHoursToTime,\n  couponHotels,\n  EXCLUDE_DISCOUNT_ROOM,\n  getFixedValue,\n  sourceTest,\n} from \"../../utils/utils\";\nimport { fireGtmEvent } from \"../../utils/googleAnalytics\";\nimport usePriceCalculator, {\n  arrangePromos,\n  calculatePromotion,\n  getApplicablePromotion,\n} from \"../../utils/usePriceCalculator\";\nimport useOldPriceCalculator from \"../../utils/useOldPriceCalculator\";\n\nconst Checkout = ({\n  extraPrice = 1,\n  localExtraValue = 1.15,\n  onClose = () => {},\n  showFakePrice = false,\n}) => {\n  const [totalCost, setTotalCost] = useState();\n  const [totalDays, setTotalDays] = useState(1);\n  const [applyOffer, setApplyOffer] = useState(0);\n  const [promotionSelected, setPromotionSelected] = useState({});\n  const [promotionPrice, setPromotionPrice] = useState();\n  const [applicablePromo, setApplicablePromo] = useState();\n  const [isOffer, setIsOffer] = useState(false);\n  const [priceWODiscount, setPriceWODiscount] = useState();\n  const [selectedPeople, setSelecedPeople] = useState();\n  const [roomPriceMap, setRoomPriceMap] = useState();\n  const [taxAmount, setTaxAmount] = useState(0);\n  const [arrangedPromos, setArrangedPromos] = useState([]);\n\n  const history = useHistory();\n\n  const testId = storageService.get(\"testId\") || 0;\n\n  const oldPriceCalculator = useOldPriceCalculator();\n\n  const { t } = useTranslation();\n\n  const {\n    selectedRooms,\n    selectedAddons,\n    hotelData,\n    selectedHotelAddons,\n    dateRange,\n    totalPeople,\n    promotions,\n    totalAdult,\n    isHourlyRoom,\n    selectedRatePlans,\n    roomSlots,\n    hourlyTime,\n    hourlyDate,\n    hourlyHour,\n    dateCount,\n    isRatePlans,\n  } = useSelector((state) => state.hotelInfo);\n\n  useEffect(() => {\n    let arr = [...promotions];\n    arr.sort((b, a) => a.discount - b.discount);\n    setApplicablePromo(arr);\n  }, [promotions]);\n\n  useEffect(() => {\n    const arrange = () => {\n      let arr = [...promotions];\n      let ar = arrangePromos(arr);\n      setArrangedPromos(ar);\n    };\n    promotions?.length > 0 && arrange();\n  }, [\n    promotions,\n    selectedAddons,\n    selectedHotelAddons,\n    selectedRooms,\n    totalAdult,\n  ]);\n\n  useEffect(() => {\n    calculateDiscount();\n  }, [applyOffer]);\n\n  const promoShown = storageService.get(\"isPromoShown\") || false;\n\n  const priceCalculator = usePriceCalculator();\n\n  const calculateDiscount = () => {\n    if (isRatePlans) {\n      return;\n    }\n\n    let roomPrice = 0;\n    let noDiscPrice = 0;\n\n    if (isHourlyRoom) {\n      storageService.remove(\"discount\");\n      storageService.remove(\"promo\");\n      return;\n    }\n\n    selectedRooms?.map((rm) => {\n      const { pricing = [], priceConfig = {}, priceConfigDifference = {} } = rm;\n      let val1 =\n        totalAdult <= rm?.defaultGuestCount\n          ? totalAdult\n          : rm?.defaultGuestCount;\n\n      // remove stuff\n      if (testId === 0) {\n        val1 = rm?.sAdult;\n      }\n      let prVal = 0;\n      // end remove stuff\n      if (\n        priceConfigDifference &&\n        Object.keys(priceConfigDifference).length > 0\n      ) {\n        pricing.forEach((pr) => {\n          // roomPrice +=\n          //   parseFloat(pr?.price) + parseFloat(priceConfigDifference[val1]) ||\n          //   1;\n          prVal += parseFloat(pr?.price);\n          if (EXCLUDE_DISCOUNT_ROOM.includes(rm?.id)) {\n            noDiscPrice +=\n              parseFloat(pr.price) * (parseFloat(priceConfig[val1]) || 1);\n          } else if (hotelData?.userId === 63809) {\n            let prc = pr?.price;\n            prc = prc > 8400 ? prc / 1.18 : prc / 1.12;\n            roomPrice += parseFloat(prc) * (parseFloat(priceConfig[val1]) || 1);\n          } else {\n            roomPrice +=\n              parseFloat(pr.price) * (parseFloat(priceConfig[val1]) || 1);\n          }\n        });\n      } else {\n        pricing.forEach((pr) => {\n          prVal += parseFloat(pr.price);\n          if (EXCLUDE_DISCOUNT_ROOM.includes(rm?.id)) {\n            noDiscPrice +=\n              parseFloat(pr.price) * (parseFloat(priceConfig[val1]) || 1);\n          } else if (hotelData?.userId === 63809) {\n            let prc = pr?.price;\n            prc = prc > 8400 ? prc / 1.18 : prc / 1.12;\n            roomPrice += parseFloat(prc) * (parseFloat(priceConfig[val1]) || 1);\n          } else {\n            roomPrice +=\n              parseFloat(pr.price) * (parseFloat(priceConfig[val1]) || 1);\n          }\n        });\n      }\n\n      // remove stuff\n      if (testId === 0) {\n        if (rm?.sInfant) {\n          roomPrice =\n            roomPrice + rm?.extraInfantPrice * rm?.sInfant * dateCount;\n        }\n\n        if (rm?.sChild) {\n          roomPrice = roomPrice + rm?.extraChildPrice * rm?.sChild * dateCount;\n        }\n      }\n      // end remove stuff\n\n      // pricing.forEach((pr) => {\n      //   roomPrice =\n      //     roomPrice +\n      //     parseFloat(pr?.price) * (parseFloat(rm?.priceConfig[val1]) || 1);\n      // });\n    });\n\n    selectedAddons?.forEach((adn) => {\n      if (adn?.Addon?.category === \"person\") {\n        roomPrice =\n          roomPrice +\n          parseInt(adn?.price) *\n            // selectedRooms?.filter((rm) => rm?.id === adn?.hotelRoomId)?.length *\n            selectedRooms[0]?.pricing?.length;\n      }\n    });\n\n    let promoApplied = null;\n    let discountAmount = 0;\n    let finalAmount = 0;\n    let cost = 0;\n\n    if (applicablePromo?.length > 0 && promotions) {\n      applicablePromo?.forEach((promo) => {\n        if (!promoApplied) {\n          if (\n            promo?.type === \"bulk\" &&\n            totalCost >= parseFloat(promo?.cutoffAmount)\n          ) {\n            cost = totalCost;\n            discountAmount = (cost * parseFloat(promo?.discount)) / 100;\n            finalAmount = cost - discountAmount;\n            promoApplied = promo;\n            setPromotionSelected(promoApplied);\n            !storageService.get(\"promo\") && setIsOffer(true);\n\n            setTimeout(() => {\n              setIsOffer(false);\n              storageService.set(\"isPromoShown\", true);\n            }, 5000);\n            // storageService.set(\"promo\", promoApplied);\n            setTotalCost(finalAmount);\n            setPriceWODiscount(discountAmount);\n          } else if (promo?.type === \"early\" || promo?.type === \"late\") {\n            cost = roomPrice;\n            discountAmount = (cost * parseFloat(promo?.discount)) / 100;\n            finalAmount = cost - discountAmount;\n            promoApplied = promo;\n            setPromotionSelected(promoApplied);\n            !storageService.get(\"promo\") && setIsOffer(true);\n            setTimeout(() => {\n              setIsOffer(false);\n              storageService.set(\"isPromoShown\", true);\n            }, 5000);\n            // storageService.set(\"promo\", promoApplied);\n            storageService.set(\"discountedValue\", discountAmount);\n            if (hotelData?.userId === 63809) {\n              setTotalCost(finalAmount);\n            } else {\n              setTotalCost(parseFloat(totalCost - roomPrice + finalAmount));\n            }\n\n            setPriceWODiscount(discountAmount);\n          } else {\n            storageService.remove(\"promo\");\n            setPromotionSelected({});\n            setTotalCost(totalCost);\n          }\n        }\n      });\n      setPromotionPrice(parseFloat(finalAmount));\n      promoApplied && storageService.set(\"discount\", parseFloat(finalAmount));\n    } else {\n      setPromotionPrice(0);\n      storageService.set(\"discount\", 0);\n    }\n  };\n\n  // done\n  useEffect(() => {\n    const computeRoomPriceObj = () => {\n      const roomPriceObj = new Map();\n      selectedRooms?.forEach((room) => {\n        let onedayprice = 0;\n        const {\n          pricing = [],\n          defaultGuestCount,\n          id,\n          priceConfig = {},\n          priceConfigDifference = {},\n        } = room;\n        let val1 =\n          totalAdult <= defaultGuestCount ? totalAdult : defaultGuestCount;\n        // remove stuff\n        if (testId === 0) {\n          val1 = room?.sAdult;\n        }\n        let prVal = 0;\n        // end remove stuff\n        if (\n          priceConfigDifference &&\n          Object.keys(priceConfigDifference).length > 0\n        ) {\n          pricing.forEach((pr) => {\n            let temp = pr?.price;\n            if (hotelData?.userId === 63809) {\n              temp = temp > 8400 ? temp / 1.18 : temp / 1.12;\n            }\n            onedayprice +=\n              parseFloat(temp) + parseFloat(priceConfigDifference[val1]) || 1;\n            prVal += parseFloat(temp);\n          });\n        } else {\n          pricing.forEach((pr) => {\n            let temp = pr?.price;\n            if (hotelData?.userId === 63809) {\n              temp = temp > 8400 ? temp / 1.18 : temp / 1.12;\n            }\n            onedayprice +=\n              parseFloat(temp) * (parseFloat(priceConfig[val1]) || 1);\n            prVal += parseFloat(temp);\n          });\n        }\n\n        // remove stuff\n        if (testId === 0) {\n          if (room?.sInfant) {\n            onedayprice =\n              onedayprice + room?.extraInfantPrice * room?.sInfant * dateCount;\n          }\n\n          if (room?.sChild) {\n            onedayprice =\n              onedayprice + room?.extraChildPrice * room?.sChild * dateCount;\n          }\n        }\n        // end remove stuff\n        // pricing.forEach((pr) => {\n        //   onedayprice =\n        //     onedayprice +\n        //     parseFloat(pr?.price) *\n        //       (parseFloat(priceConfig[val1]) || defaultGuestCount);\n        // });\n\n        onedayprice = onedayprice / pricing?.length;\n\n        // console.log(\"oneday\", onedayprice);\n        // if (parseFloat(promotionSelected?.discount)) {\n        //   onedayprice =\n        //     onedayprice -\n        //     (onedayprice * parseFloat(promotionSelected?.discount)) / 100;\n        //   console.log(\"oneday\", onedayprice);\n        // }\n\n        if (roomPriceObj.has(room?.id)) {\n          let val = roomPriceObj.get(room?.id);\n          val += onedayprice;\n          roomPriceObj.set(room?.id, val);\n        } else {\n          roomPriceObj.set(room?.id, onedayprice);\n        }\n      });\n\n      selectedAddons?.forEach((addon) => {\n        if (\n          addon?.Addon?.category === \"person\" &&\n          roomPriceObj.has(addon?.hotelRoomId)\n        ) {\n          let val = roomPriceObj.get(addon?.hotelRoomId);\n          val += parseFloat(addon?.price);\n          roomPriceObj.set(addon?.hotelRoomId, val);\n        }\n      });\n\n      // setRoomPriceMap(roomPriceObj);\n    };\n    computeRoomPriceObj();\n  }, [selectedRooms, selectedAddons, promotionSelected]);\n\n  // done\n  useEffect(() => {\n    const calculateTaxPrice = () => {\n      let sum = 0;\n      for (let [key, value] of roomPriceMap) {\n        let rmCount = selectedRooms?.filter((rm) => rm?.id === key)?.length;\n        let taxAmount = 0;\n\n        if (\n          parseFloat(promotionSelected?.discount) &&\n          !EXCLUDE_DISCOUNT_ROOM.includes(key)\n        ) {\n          value =\n            value - (value * parseFloat(promotionSelected?.discount)) / 100;\n        }\n\n        if (\n          hotelData?.userId === 63809 &&\n          parseFloat(promotionSelected?.discount) > 0\n        ) {\n          if (value / rmCount > 7500) {\n            taxAmount = value * 1.18 - value;\n          } else {\n            taxAmount = value * 1.12 - value;\n          }\n        } else {\n          if (value / rmCount > 8400) {\n            taxAmount = value - value / 1.18;\n          } else {\n            taxAmount = value - value / 1.12;\n          }\n        }\n\n        sum += taxAmount;\n      }\n      sum = sum * selectedRooms[0]?.pricing?.length;\n\n      storageService.set(\n        \"tax\",\n        parseFloat(sum.toFixed(getFixedValue(hotelData?.currency)))\n      );\n      setTaxAmount(sum.toFixed(getFixedValue(hotelData?.currency)));\n    };\n    typeof roomPriceMap === \"object\" &&\n      hotelData?.currency === \"INR\" &&\n      !isHourlyRoom &&\n      calculateTaxPrice();\n  }, [roomPriceMap]);\n\n  useEffect(() => {\n    const calculateCost = () => {\n      var prices = 0;\n\n      var totalPeople = 0;\n      let arrPromos = [...arrangedPromos];\n      let arr = [],\n        totalTax = 0,\n        roomCost = 0;\n\n      selectedRooms?.forEach((room) => {\n        const {\n          pricing = [],\n          defaultGuestCount,\n          id,\n          priceConfig = {},\n          priceConfigDifference = {},\n        } = room;\n        let val =\n          totalAdult <= defaultGuestCount ? totalAdult : defaultGuestCount;\n\n        // remove stuff\n        if (testId === 0) {\n          val = room?.sAdult;\n        }\n        let prVal = 0;\n        // end remove stuff\n        let totPrice = 0;\n\n        pricing.forEach((pr, idx) => {\n          let prc = pr?.price;\n          let tempPrice = 0;\n          if (hotelData?.userId === 63809) {\n            prc = prc > 8400 ? prc / 1.18 : prc / 1.12;\n          }\n          tempPrice += parseFloat(prc) * (parseFloat(priceConfig[val]) || 1);\n          if (room?.sInfant) {\n            tempPrice += room?.extraInfantPrice * room?.sInfant;\n          }\n\n          if (room?.sChild) {\n            tempPrice += room?.extraChildPrice * room?.sChild;\n          }\n\n          prVal += parseFloat(prc);\n\n          const promo = getApplicablePromotion({\n            arrangedPromos: arrPromos,\n            rp: { roomId: room?.id },\n            tempPrice,\n            checkInDate: pr?.date,\n          });\n\n          let { finalValue, reducedPrice } = calculatePromotion({\n            price: tempPrice,\n            promo,\n            idx,\n            dateCount,\n          });\n\n          totPrice += tempPrice;\n        });\n\n        if (isHourlyRoom) {\n          let slotObj = roomSlots[id];\n\n          // remove stuff\n          if (testId === 0) {\n            if (room?.sAdult <= room?.defaultGuestCount) {\n              prices += prVal * slotObj?.percentage;\n            } else {\n              if (\n                priceConfigDifference &&\n                Object.keys(priceConfigDifference).length > 0\n              ) {\n                prices =\n                  prices +\n                  prVal * slotObj?.percentage +\n                  priceConfigDifference[room?.sAdult];\n              } else {\n                prices =\n                  prices +\n                  prVal * priceConfig[room?.sAdult] * slotObj?.percentage;\n              }\n            }\n          } else {\n            prices += totPrice * slotObj?.percentage;\n          }\n          // remove stuff end\n        } else {\n          prices += totPrice;\n        }\n\n        setTotalDays(pricing?.length);\n      });\n\n      selectedAddons?.forEach((addon) => {\n        // const { price = \"0\" } = addon;\n        if (addon?.Addon?.category === \"meal\") {\n          prices =\n            prices +\n            parseFloat(addon?.price) * selectedRooms[0]?.pricing?.length;\n        } else if (addon?.Addon?.category === \"person\") {\n          prices =\n            prices +\n            parseFloat(addon?.price) * selectedRooms[0]?.pricing?.length;\n        }\n      });\n\n      selectedHotelAddons?.forEach((adn) => {\n        if (adn.Addon.multiplier === \"per_day\") {\n          prices +=\n            parseFloat(adn.price) *\n            dayjs(dateRange?.endDate)?.diff(dateRange?.startDate, \"days\");\n        } else {\n          prices += parseFloat(adn.price);\n        }\n      });\n\n      if (selectedRooms?.length < 1) {\n        storageService.remove(\"promo\");\n      }\n      setTotalCost(parseFloat(prices));\n      setApplyOffer(applyOffer + 1);\n\n      // maybe add\n\n      storageService.set(\"totalPrice\", parseFloat(prices));\n    };\n    calculateCost();\n  }, [\n    selectedAddons,\n    selectedHotelAddons,\n    selectedRooms,\n    totalAdult,\n    roomSlots,\n    arrangedPromos,\n  ]);\n\n  const sendAnalytics = () => {\n    if (selectedRooms?.length > 0 || priceCalculator.selectedRooms.length > 0) {\n      history.push(\"/room/checkout\", {\n        discount: promotionPrice,\n        promo: promotionSelected,\n      });\n    } else {\n      toastr.error(t(\"select_at_least_one_room\"));\n    }\n  };\n\n  useEffect(() => {\n    var count = 0;\n    selectedRooms?.forEach((room) => {\n      let searchGuest =\n        totalAdult <= room?.defaultGuestCount\n          ? totalAdult\n          : room?.defaultGuestCount;\n\n      // remove stuff\n      if (testId === 0) {\n        count += room?.sAdult + room?.sChild + room?.sInfant;\n      } else {\n        count += searchGuest;\n      }\n\n      // end remove stuff\n    });\n    [...new Set(selectedRooms)]?.forEach((room) => {\n      selectedAddons?.forEach((addon) => {\n        if (\n          addon?.Addon?.category === \"person\" &&\n          room?.id === addon?.hotelRoomId\n        )\n          count++;\n      });\n    });\n    setSelecedPeople(count);\n  }, [selectedAddons, selectedRooms]);\n\n  useEffect(() => {\n    if (isRatePlans) {\n      setSelecedPeople(priceCalculator.rpTotalGuest || 0);\n    } else {\n      setSelecedPeople(oldPriceCalculator.totalGuests || 0);\n    }\n  }, [priceCalculator, oldPriceCalculator]);\n\n  const isSubscribed = storageService.get(\"subscribed\") || false;\n\n  const isGoogle = sourceTest.includes(storageService.get(\"source\"));\n\n  return (\n    <div className=\"checkout\">\n      {(priceCalculator.appliedDiscount.discount > 0 ||\n        oldPriceCalculator.appliedDiscount.discount > 0) &&\n      (selectedRooms?.some((rm) => !EXCLUDE_DISCOUNT_ROOM.includes(rm?.id)) ||\n        isRatePlans) ? (\n        <div className=\"checkout__promorSelected\">\n          {t(\"you_got\")} {currency(hotelData?.currency)}{\" \"}\n          {parseFloat(\n            (priceCalculator.appliedDiscount.discount ||\n              oldPriceCalculator.appliedDiscount.discount) * localExtraValue\n          ).toFixed(getFixedValue(hotelData?.currency))}{\" \"}\n          {isSubscribed ? \"+ 15% \" : \"\"}\n          {t(\"off\")}!!{\" \"}\n          {couponHotels.includes(hotelData?.id) ? t(\"code_mount_applied\") : \" \"}\n          {/* `${promotionNames[promotionSelected?.type]} ${t(\"applied\")}.` */}\n        </div>\n      ) : isSubscribed && showFakePrice ? (\n        <div className=\"checkout__promorSelected\">\n          {t(\"additional_15_percent_off_applied\")}\n        </div>\n      ) : null}\n\n      <div className=\"checkout__container\">\n        <div className=\"checkout__price\">\n          <div\n            style={{\n              display: \"flex\",\n              justifyContent: \"flex-start\",\n              alignItems: \"center\",\n              flexWrap: \"wrap\",\n              gap: \"10px\",\n            }}\n          >\n            {currency(hotelData?.currency)}{\" \"}\n            {isRatePlans\n              ? (priceCalculator.appliedDiscount.discount > 0\n                  ? priceCalculator.priceAfterDiscount * extraPrice\n                  : priceCalculator.rpPrice * extraPrice\n                ).toFixed(getFixedValue(hotelData?.currency))\n              : (oldPriceCalculator.totalPrice * extraPrice).toFixed(\n                  getFixedValue(hotelData?.currency)\n                )}\n            {isRatePlans ? (\n              priceCalculator.rpTax > 0 ||\n              priceCalculator.taxObj.totalBookingTax > 0 ? (\n                <p>\n                  {\" \"}\n                  +{\" \"}\n                  {Number(\n                    (priceCalculator.rpTax +\n                      priceCalculator.taxObj.totalBookingTax) *\n                      extraPrice\n                  ).toFixed(getFixedValue(hotelData?.currency))}{\" \"}\n                  ({t(\"taxes\")})\n                </p>\n              ) : (\n                <p> ({t(\"incl_of_taxes\")})</p>\n              )\n            ) : Math.abs(oldPriceCalculator?.totalTax) > 0 ||\n              oldPriceCalculator.taxObj?.totalBookingTax > 0 ? (\n              <p>\n                {\" \"}\n                +{\" \"}\n                {(\n                  (Math.abs(oldPriceCalculator?.totalTax) +\n                    oldPriceCalculator.taxObj?.totalBookingTax) *\n                  extraPrice\n                ).toFixed(getFixedValue(hotelData?.currency))}{\" \"}\n                {t(\"taxes\")}\n              </p>\n            ) : (\n              <p> ({t(\"incl_of_taxes\")})</p>\n            )}\n            {isHourlyRoom && (\n              <p>\n                ( {t(\"upto\")}{\" \"}\n                {oldPriceCalculator.totalGuests || priceCalculator.rpTotalGuest}{\" \"}\n                {t(\"guests\")} )\n              </p>\n            )}\n          </div>\n          {!isHourlyRoom && (\n            <p>\n              {dateCount > 1\n                ? `${t(\"for\")} ${dateCount} ${t(\"nights\")}`\n                : t(\"per_night\")}{\" \"}\n              - {t(\"upto\")}{\" \"}\n              {oldPriceCalculator.totalGuests || priceCalculator.rpTotalGuest}{\" \"}\n              {t(\"guests\")}\n            </p>\n          )}\n          {isHourlyRoom && (\n            <p style={{ fontSize: \"14px\" }}>\n              {dayjs(hourlyDate).format(\"DD MMMM YYYY\")}\n            </p>\n          )}\n          {isHourlyRoom ? (\n            <>\n              <span style={{ fontSize: \"14px\" }}>\n                {hourlyTime} -{\" \"}\n                {addHoursToTime(hourlyDate, hourlyTime, hourlyHour)}\n              </span>\n            </>\n          ) : (\n            <span style={{ fontSize: \"12px\" }}>\n              {dayjs(dateRange?.startDate).format(\"DD MMM\")} -{\" \"}\n              {dayjs(dateRange?.endDate).format(\"DD MMM\")} ({dateCount}{\" \"}\n              {dateCount > 1 ? t(\"nights\") : t(\"night\")})\n            </span>\n          )}\n        </div>\n        <div className=\"checkoutBtn\">\n          <div\n            to=\"/room/checkout\"\n            className=\"checkout__button\"\n            onClick={sendAnalytics}\n          >\n            {t(\"book_now\")}{\" \"}\n            {isHourlyRoom && (\n              <img\n                src=\"https://ik.imagekit.io/hotelzifyprod/f4ce4893-c0f4-4475-866b-c5dc54c7c760.svg\"\n                width={20}\n                height={20}\n                alt=\"\"\n              />\n            )}\n          </div>\n        </div>\n      </div>\n      {!isSubscribed && !isGoogle && showFakePrice && (\n        <div\n          style={{\n            width: \"90%\",\n            margin: \"10px auto\",\n            display: \"flex\",\n            justifyContent: \"space-between\",\n            alignItems: \"center\",\n            border: \"1px solid #00d2ff\",\n            borderRadius: \"8px\",\n            overflow: \"hidden\",\n          }}\n        >\n          <p style={{ padding: \"0 10px \" }}>\n            {t(\"unlock_additional_discount\")}!\n          </p>\n          <button\n            style={{\n              background: \"\t#00d2ff\",\n              width: \"80px\",\n              padding: \"6px\",\n              borderRadius: \"8px 0 0 8px\",\n              fontWeight: \"600\",\n            }}\n            onClick={() => {\n              fireGtmEvent(\"subscribe_popup_shown\", { position: \"checkout\" });\n              onClose(true);\n            }}\n          >\n            {t(\"unlock\")} 🔓\n          </button>\n        </div>\n      )}\n      {/* {isOffer && !promoShown && isGoogle && (\n        <div\n          className=\"offerApplied\"\n          onClick={() => {\n            setIsOffer(false);\n            storageService.set(\"isPromoShown\", true);\n          }}\n        >\n          <div className=\"offerAppliedContainer\">\n            <Confetti width={1300} height={1300} numberOfPieces={1000} />\n            <h2>\n              {t(\"you_got\")}{\" \"}\n              {parseFloat(promotionSelected?.discount).toFixed(0)}%{t(\"off\")}!!\n            </h2>\n            <p>{t(\"offer_ends_soon\")}</p>\n            <button\n              onClick={() => {\n                setIsOffer(false);\n                storageService.set(\"isPromoShown\", true);\n              }}\n            >\n              {t(\"continue\")}\n            </button>\n          </div>\n        </div>\n      )} */}\n    </div>\n  );\n};\n\nexport default Checkout;\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDiscount(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    width: 28,\n    height: 28,\n    viewBox: \"0 0 28 28\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M27.3418 12.4296L25.2133 10.2985C24.8492 9.93391 24.5551 9.21883 24.5551 8.71408V5.68553C24.5551 4.45168 23.5468 3.44216 22.3145 3.44216H19.3038C18.7997 3.44216 18.0855 3.14772 17.7214 2.78318L15.5929 0.651978C14.7247 -0.217326 13.2963 -0.217326 12.4281 0.651978L10.2716 2.78318C9.92147 3.14772 9.20729 3.44216 8.68916 3.44216H5.67841C4.44611 3.44216 3.43786 4.45168 3.43786 5.68553V8.70005C3.43786 9.20481 3.14378 9.91989 2.77969 10.2844L0.651162 12.4156C-0.217054 13.2849 -0.217054 14.7151 0.651162 15.5844L2.77969 17.7156C3.14378 18.0801 3.43786 18.7952 3.43786 19.2999V22.3145C3.43786 23.5483 4.44611 24.5578 5.67841 24.5578H8.68916C9.19329 24.5578 9.90747 24.8523 10.2716 25.2168L12.4001 27.348C13.2683 28.2173 14.6966 28.2173 15.5649 27.348L17.6934 25.2168C18.0575 24.8523 18.7717 24.5578 19.2758 24.5578H22.2865C23.5188 24.5578 24.5271 23.5483 24.5271 22.3145V19.2999C24.5271 18.7952 24.8212 18.0801 25.1853 17.7156L27.3138 15.5844C28.224 14.7291 28.224 13.2989 27.3418 12.4296ZM8.39509 9.80772C8.39509 9.03656 9.02525 8.40561 9.79544 8.40561C10.5656 8.40561 11.1958 9.03656 11.1958 9.80772C11.1958 10.5789 10.5796 11.2098 9.79544 11.2098C9.02525 11.2098 8.39509 10.5789 8.39509 9.80772ZM10.5376 18.9634C10.3276 19.1738 10.0615 19.2719 9.79544 19.2719C9.52937 19.2719 9.26331 19.1738 9.05325 18.9634C8.64715 18.5568 8.64715 17.8838 9.05325 17.4772L17.4553 9.0646C17.8614 8.65799 18.5336 8.65799 18.9397 9.0646C19.3458 9.47121 19.3458 10.1442 18.9397 10.5508L10.5376 18.9634ZM18.1975 19.6224C17.4133 19.6224 16.7832 18.9915 16.7832 18.2203C16.7832 17.4492 17.4133 16.8182 18.1835 16.8182C18.9537 16.8182 19.5839 17.4492 19.5839 18.2203C19.5839 18.9915 18.9677 19.6224 18.1975 19.6224Z\",\n    fill: \"white\"\n  })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDiscount);\nexport default __webpack_public_path__ + \"static/media/discount.76a6786d6daa2005f695080ae3ab2edb.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgRight(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    width: 24,\n    height: 24,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n    x: 24,\n    y: 24,\n    width: 24,\n    height: 24,\n    rx: 8,\n    transform: \"rotate(-180 24 24)\",\n    fill: \"#DADADA\"\n  })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M9 6L15 12L9 18\",\n    stroke: \"#504D56\",\n    strokeWidth: 2,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgRight);\nexport default __webpack_public_path__ + \"static/media/right.b66414b86c023ad8e34d4048155e17d3.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport HotelImageCarousel from \"../../pages/MainPage/HotelImageCarousel\";\nimport {\n  addHotelAddon,\n  removeHotelAddon,\n} from \"../../redux/actions/hotelInfoAction\";\nimport { currency } from \"../../utils/currency\";\nimport { fireGtmEvent } from \"../../utils/googleAnalytics\";\nimport useWindowSize from \"../../utils/useWindowSize\";\nimport \"./HotelAddonComponent.css\";\nimport { useTranslation } from \"react-i18next\";\n\nconst HotelAddonComponent = ({ addon, isCheckout = false }) => {\n  const [selected, setSelected] = useState(false);\n  const [count, setCount] = useState(0);\n  const { hotelData, selectedHotelAddons, dateCount } = useSelector(\n    (state) => state.hotelInfo\n  );\n\n  const { width } = useWindowSize();\n\n  useEffect(() => {\n    // if (selectedHotelAddons?.length > 0) {\n    setCount(\n      selectedHotelAddons?.filter((adn) => adn?.id === addon?.id).length\n    );\n    // }\n    selectedHotelAddons?.filter((adn) => adn?.id === addon?.id)[0]?.id ===\n    addon?.id\n      ? setSelected(true)\n      : setSelected(false);\n  }, [selectedHotelAddons]);\n\n  const dispatch = useDispatch();\n\n  const selectAddon = () => {\n    if (count < 10) {\n      dispatch(addHotelAddon(addon));\n      fireGtmEvent(\"hotel_addon_selected\", {\n        addon_id: addon?.addonId,\n        addon_name: addon?.Addon?.name,\n        is_hotel_addon_images: addon?.HotelAddonImages?.length > 0,\n        hotel_addon_images_count: addon?.HotelAddonImages?.length,\n        value: addon?.price,\n      });\n    }\n  };\n\n  const deSelectAddon = () => {\n    if (count > 0) {\n      dispatch(removeHotelAddon(addon));\n      fireGtmEvent(\"hotel_addon_removed\", {\n        addon_id: addon?.addonId,\n        addon_name: addon?.Addon?.name,\n        is_hotel_addon_images: addon?.HotelAddonImages?.length > 0,\n        hotel_addon_images_count: addon?.HotelAddonImages?.length,\n        value: addon?.price,\n      });\n    }\n  };\n\n  const { t } = useTranslation();\n\n  return (\n    // <LazyLoadComponent>\n    <div\n      className={isCheckout && width > 900 ? \"checkoutAddon\" : \"hAddon\"}\n      id=\"hAddon\"\n    >\n      <div className=\"hAddonImage\">\n        <HotelImageCarousel\n          name={addon.Addon.name}\n          hotelImages={addon?.HotelAddonImages || addon?.Addon?.url}\n          isAddon={true}\n        />\n      </div>\n\n      <div className={isCheckout && width > 900 ? \"newCheckoutAdon\" : \"\"}>\n        <h3 className=\"hAddonName\">{addon?.name}</h3>\n        <div\n          className=\"hAddonDescription\"\n          style={{ border: isCheckout && width > 900 && \"none\" }}\n          dangerouslySetInnerHTML={{ __html: addon.description }}\n        />\n        <div className=\"hAddonPrice\">\n          <p>\n            {currency(hotelData?.currency)} {addon?.price}{\" \"}\n            {addon.Addon.multiplier === \"per_day\" ? \"/ day\" : \"\"}{\" \"}\n            <span style={{ fontWeight: \"400\", fontSize: \"0.7rem\" }}>\n              ({t(\"incl_of_taxes\")})\n            </span>\n          </p>\n          {selected ? (\n            <div className=\"hAddonAdded\">\n              <span className=\"hAddonIcon\" onClick={deSelectAddon}>\n                -\n              </span>\n              {count}\n              <span className=\"hAddonIcon\" onClick={selectAddon}>\n                +\n              </span>\n            </div>\n          ) : (\n            <div\n              className=\"hAddonAdd hAddonAddHotel\"\n              onClick={() => selectAddon()}\n            >\n              {t(\"add\")}\n            </div>\n          )}\n        </div>\n        {count > 0 && addon.Addon.multiplier === \"per_day\" && !isCheckout && (\n          <div className=\"hAddonNote\">\n            {count} {addon?.name} {t(\"is_selected_for\")}{\" \"}\n            <b>\n              {dateCount} {t(\"days\")}\n            </b>\n          </div>\n        )}\n      </div>\n    </div>\n    // </LazyLoadComponent>\n  );\n};\n\nexport default HotelAddonComponent;\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTime(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    width: 27,\n    height: 26,\n    viewBox: \"0 0 27 26\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M13.4998 0.166638C10.9616 0.166638 8.48046 0.919299 6.37002 2.32944C4.25959 3.73959 2.61471 5.74388 1.64339 8.08887C0.672064 10.4339 0.417922 13.0142 0.913099 15.5036C1.40828 17.9931 2.63053 20.2797 4.42531 22.0745C6.22008 23.8693 8.50676 25.0915 10.9962 25.5867C13.4856 26.0819 16.066 25.8277 18.4109 24.8564C20.7559 23.8851 22.7602 22.2402 24.1704 20.1298C25.5805 18.0194 26.3332 15.5382 26.3332 13C26.3409 11.3125 26.0142 9.64024 25.372 8.07975C24.7298 6.51925 23.7848 5.10144 22.5916 3.90822C21.3984 2.71499 19.9806 1.76999 18.4201 1.12779C16.8596 0.485587 15.1873 0.158915 13.4998 0.166638ZM20.3248 17.0833C20.2199 17.2543 20.0747 17.3969 19.9018 17.4986C19.7288 17.6003 19.5336 17.658 19.3332 17.6666C19.1262 17.6639 18.9241 17.6033 18.7498 17.4916L12.3332 13.6416V7.16664C12.3332 6.85722 12.4561 6.56047 12.6749 6.34168C12.8937 6.12289 13.1904 5.99997 13.4998 5.99997C13.8093 5.99997 14.106 6.12289 14.3248 6.34168C14.5436 6.56047 14.6665 6.85722 14.6665 7.16664V12.3583L19.9165 15.5083C20.0511 15.5806 20.1693 15.68 20.2637 15.8001C20.3581 15.9203 20.4266 16.0587 20.4649 16.2066C20.5033 16.3545 20.5106 16.5087 20.4865 16.6596C20.4624 16.8104 20.4074 16.9547 20.3248 17.0833Z\",\n    fill: \"white\"\n  })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTime);\nexport default __webpack_public_path__ + \"static/media/time.e678cdf2622b25c99ebefbc8ec395a4a.svg\";\nexport { ForwardRef as ReactComponent };","import dayjs from \"dayjs\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport discount from \"../../assets/images/discount.svg\";\nimport right from \"../../assets/images/right.svg\";\nimport timer from \"../../assets/images/time.svg\";\nimport { fetchPromotions } from \"../../redux/actions/hotelInfoAction\";\nimport { fireGtmEvent } from \"../../utils/googleAnalytics\";\nimport useWindowSize from \"../../utils/useWindowSize\";\nimport { couponHotels, couponUserId, isValidTimeZone } from \"../../utils/utils\";\nimport \"./Promotion.css\";\nimport { currency as currencies } from \"../../utils/currency\";\nimport { useTranslation } from \"react-i18next\";\nimport { fetchPromotionsApi } from \"../../Services/mainPageService\";\n\nexport const RazorpayUI = () => {\n  const { t } = useTranslation();\n  return (\n    <div className=\"promotionContainer\">\n      <div className=\"razorpayoffer\">\n        <div className=\"razorpayofferContainer\">\n          <div className=\"razorpayHeader\">{t(\"cashback_offer\")}</div>\n          <div className=\"razorpayFooter\">\n            <div className=\"razorpayLeftFooter\">\n              <img\n                src=\"https://ik.imagekit.io/hotelzifyprod/7dd2fdb9-36fc-4087-9cec-928f4585b93a.png\"\n                alt=\"gpay\"\n                width={\"20px\"}\n                height={\"100%\"}\n                loading=\"lazy\"\n              />{\" \"}\n              <span>{t(\"more\")}</span>\n            </div>\n            <div className=\"razorpayLeftFooter\">\n              <span>{t(\"secured_by\")}</span>\n              <img\n                src=\"https://ik.imagekit.io/hotelzifyprod/b5fa4a3b-de7e-4c90-85df-5e2f93ba05c6.png\"\n                alt=\"razorpay\"\n                width={\"70px\"}\n                loading=\"lazy\"\n                height={\"100%\"}\n              />{\" \"}\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport const MobiQwikUi = () => {\n  const { t } = useTranslation();\n  return (\n    <div className={\"promotionContainer bulk\"}>\n      <div className=\"promotionContent \">\n        <div className=\"promotionText\">\n          <p>{t(\"use_mobikwik\")}</p>\n\n          <h1>{t(\"cashback_offer_mobiqwik\")}</h1>\n        </div>\n        <img\n          width={\"100%\"}\n          height={\"100%\"}\n          style={{ objectFit: \"contain\", width: \"30px\", height: \"30px\" }}\n          alt=\"discount offer\"\n          src={\n            \"https://ik.imagekit.io/hotelzifyprod/MBK%20CMYK_MBK%20Icon%20Logo_Blue_Z-S4_Fmdp.png\"\n          }\n        />\n      </div>\n    </div>\n  );\n};\n\nconst Promotion = ({\n  isCOD,\n  showCancel,\n  lastDate,\n  handleShowHourly,\n  isBNPL = false,\n  selectedIds = [392],\n}) => {\n  const {\n    hotelData: { id, currency, autoAccept, userId },\n    dateRange: { startDate, endDate },\n    payments,\n    isHourlyRoom,\n    showHourly,\n    isRatePlans,\n    hotelData,\n    // promotions = [],\n  } = useSelector((state) => state.hotelInfo);\n\n  const dispatch = useDispatch();\n\n  const [count, setCount] = useState(0);\n\n  const { t } = useTranslation();\n\n  const { width } = useWindowSize();\n  const [showRazorpay, setShowRazorpay] = useState(false);\n  const [showMobikwik, setShowMobikwik] = useState(false);\n  const [promotions, setPromotions] = useState([]);\n\n  useEffect(() => {\n    let temp = 0;\n    if (isCOD) {\n      temp += 1;\n    }\n    if (showCancel) {\n      temp += 1;\n    }\n\n    if (width <= 901) {\n      temp += 1;\n    }\n    if (userId === 63809) {\n      temp += 1;\n    }\n\n    setCount(temp);\n  }, [isCOD, showCancel, width]);\n\n  useEffect(() => {\n    const getpromos = async () => {\n      let timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n      if (!isValidTimeZone(timeZone)) {\n        timeZone = null;\n      } else {\n        timeZone = encodeURIComponent(timeZone);\n      }\n      let url = timeZone\n        ? `${id}&checkInDate=${dayjs(startDate).format(\n            \"DD/MM/YYYY\"\n          )}&checkOutDate=${dayjs(endDate).format(\n            \"DD/MM/YYYY\"\n          )}&shouldApplyFilter=false&timezone=${timeZone}`\n        : `${id}&checkInDate=${dayjs(startDate).format(\n            \"DD/MM/YYYY\"\n          )}&checkOutDate=${dayjs(endDate).format(\n            \"DD/MM/YYYY\"\n          )}&shouldApplyFilter=false`;\n      const resp = await fetchPromotionsApi(url);\n      if (resp?.status === 200 && resp?.data?.length > 0) {\n        if (couponUserId.includes(userId)) {\n          setPromotions(resp?.data);\n        } else {\n          setPromotions(resp?.data?.filter((pr) => pr?.type !== \"coupon\"));\n        }\n        // setPromotions(resp?.data?.filter((pr) => pr?.type !== \"coupon\"));\n      } else {\n        setPromotions([]);\n      }\n    };\n    id && getpromos();\n  }, [id, endDate]);\n\n  useEffect(() => {\n    const promElement = document.querySelectorAll(\".promotionText\");\n    console.log(\"promotion element\", promElement);\n    changeThemeColor();\n  }, [selectedIds]);\n\n  function changeThemeColor() {\n    let color = \"linear-gradient(95deg,#53b2fe,#065af3)\";\n    let textClr = \"#0078d4\";\n    let amenityFilter = \"\";\n    let discountClr = \"\";\n    let promotionText = \"\";\n    let bulkBackground = \"\";\n    let bulkBorder = \"none\";\n    let earlyBackground = \"\";\n    let earlyBorder = \"none\";\n    let imageFilter = \"\";\n\n    if (hotelData?.userId === 63809) {\n      color = \"#892680\";\n    }\n\n    if (hotelData?.userId === 127534) {\n      color = \"#ffcc09\";\n    }\n    if (hotelData?.chainName === \"beacon\" || hotelData?.id === 2825) {\n      color = \"#2a5470\";\n    }\n    if (hotelData?.chainName === \"zinc\") {\n      color = \"#D2812B\";\n    }\n    if (hotelData?.userId === 106023 || hotelData?.id === 392) {\n      color = \"#2B4039\";\n      textClr = \"#2B4039\";\n      discountClr = \"#B55B5A\";\n      amenityFilter =\n        \"brightness(0) saturate(100%) invert(17%) sepia(10%) saturate(700%) hue-rotate(120deg) brightness(85%) contrast(95%)\";\n      bulkBackground = \"#2B4039\";\n      bulkBorder = \"#1F2A26\";\n      earlyBackground = \"#B55B5A\";\n      earlyBorder = \"#923F3E\";\n      promotionText = \"white\";\n      imageFilter = \"none\";\n    }\n    document.documentElement.style.setProperty(\"--blue\", color);\n    document.documentElement.style.setProperty(\"--blueText\", textClr);\n\n    if (\n      hotelData?.chainName === \"beacon\" ||\n      hotelData?.chainName === \"zinc\" ||\n      hotelData?.id === 2825\n    ) {\n      document.documentElement.style.setProperty(\n        \"--volte\",\n        '\"Roboto\", sans-serif'\n      );\n      document.documentElement.style.setProperty(\n        \"--firasans\",\n        '\"Roboto\", sans-serif'\n      );\n    }\n    // club mahindra\n    if (hotelData?.userId === 106023 || hotelData?.id === 392) {\n      document.documentElement.style.setProperty(\n        \"--volte\",\n        \"'Source Sans 3', 'Poppins', 'Inter', sans-serif\"\n      );\n      document.documentElement.style.setProperty(\n        \"--firasans\",\n        \"'Source Sans 3', 'Poppins', 'Inter', sans-serif\"\n      );\n      document.querySelectorAll(\".promotionContent img\").forEach((el) => {\n        el.style.filter = imageFilter; // Apply the image filter (reset it)\n      });\n      document.querySelectorAll(\".landingPage__Amenity\").forEach((el) => {\n        el.style.filter = amenityFilter;\n      });\n      document.querySelectorAll(\".promotionText\").forEach((el) => {\n        el.style.color = promotionText;\n      });\n\n      document.querySelectorAll(\".recommended\").forEach((el) => {\n        el.style.color = discountClr;\n        el.style.border = `1px solid ${discountClr}`;\n      });\n      document.querySelectorAll(\".discountedPrice\").forEach((el) => {\n        el.style.color = discountClr;\n      });\n      console.log(\"coming here?\");\n      document.querySelectorAll(\".bulk\").forEach((el) => {\n        el.style.background = bulkBackground;\n        el.style.border = `1px solid ${bulkBorder}`;\n      });\n\n      document.querySelectorAll(\".early\").forEach((el) => {\n        el.style.background = earlyBackground;\n        el.style.border = `1px solid ${earlyBorder}`;\n      });\n    }\n  }\n\n  const hotelAddonRef = useRef();\n\n  const scrollAddon = (width) => {\n    hotelAddonRef.current.scrollLeft += width;\n  };\n\n  useEffect(() => {\n    setShowRazorpay(\n      payments?.some((pay) =>\n        [\"Razorpay\", \"PartialPayment\"].includes(pay?.Gateway?.name)\n      )\n    );\n    setShowMobikwik(\n      payments?.some((pay) =>\n        [\"Razorpay\", \"PartialPayment\"].includes(pay?.Gateway?.name)\n      )\n    );\n  }, [payments]);\n\n  const promoTexts = (type, discount) => {\n    let txt = \"\";\n    switch (type) {\n      case \"nights\":\n        txt = Number(discount) === 1 ? \"night\" : \"nights\";\n        break;\n      case \"fixed_amount\":\n        txt = currencies(currency);\n        break;\n      case \"percentage\":\n        txt = \"%\";\n        break;\n    }\n    return txt;\n  };\n\n  return (\n    <div className=\"promotionComponent\" id=\"promotionComponentId\">\n      {\n        <div className=\"promoBtns\">\n          <p\n            className=\"hideBig\"\n            style={{\n              fontWeight: \"bold\",\n              color: \"#00800a\",\n              textAlign: \"left\",\n              width: \"100%\",\n            }}\n          >\n            {t(\"limited_offer\")}\n          </p>\n          {promotions?.length + count > 1 && (\n            <span className=\"scrollBtns\">\n              {\" \"}\n              <img\n                src={right}\n                alt=\"scroll left\"\n                onClick={() => scrollAddon(-300)}\n                style={{ transform: \"rotate(180deg)\" }}\n                height=\"100%\"\n                width={\"20px\"}\n              />{\" \"}\n              <img\n                src={right}\n                alt=\"scroll right\"\n                height=\"100%\"\n                width={\"20px\"}\n                onClick={() => scrollAddon(300)}\n              />\n            </span>\n          )}\n        </div>\n      }\n      <div className=\"promotion\" ref={hotelAddonRef}>\n        {/* {showMobikwik && <MobiQwikUi />}\n        {showRazorpay && <RazorpayUI />} */}\n        {showHourly && !isHourlyRoom && (\n          <div\n            className=\"promotionContainer early\"\n            style={{\n              cursor: \"pointer\",\n              color: \"black\",\n\n              boxShadow:\n                \"3px 3px 5px rgba(0,0,0,0.2),-3px -3px 5px rgba(0,0,0,0.2)\",\n              marginLeft: \"5px\",\n            }}\n            onClick={() => {\n              fireGtmEvent(\"hourlyClicked_promotion\");\n              fireGtmEvent(\"hourly\");\n              handleShowHourly();\n            }}\n          >\n            <div className=\"promotionContent \">\n              <div className=\"promotionText\">\n                <p className=\"blink\"> {t(\"click_here\")}</p>\n                <h1>{t(\"hourly_room_booking\")} ⏳</h1>\n              </div>\n              <img\n                width={\"30px\"}\n                height={\"30px\"}\n                alt=\"discount offer\"\n                style={{\n                  filter:\n                    \"invert(52%) sepia(60%) saturate(642%) hue-rotate(342deg) brightness(85%) contrast(95%)\",\n                }}\n                src={timer}\n              />\n            </div>\n          </div>\n        )}\n\n        {/* {currency === \"INR\" && (\n          <div\n            className=\"promotionContainer bulk hideBig\"\n            style={{ overflow: \"hidden\" }}\n          >\n            <img\n              src=\"https://ik.imagekit.io/hotelzifyprod/0d490838-f25a-4cd3-8724-e5d07802a613.png\"\n              alt=\"hotelzify gift voucher\"\n              className=\"voucherPromo\"\n              width={\"100%\"}\n              height={\"70px\"}\n            />\n          </div>\n        )} */}\n        {!isRatePlans && showCancel && (\n          <div className={\"promotionContainer early\"}>\n            <div className=\"promotionContent \">\n              <div className=\"promotionText\">\n                <p>{t(\"no_worries_cancel\")}</p>\n\n                <h1 style={{ fontSize: \"1rem\" }}>\n                  {t(\"free_cancellation_till\")} {lastDate}\n                </h1>\n              </div>\n              <img\n                width={\"30px\"}\n                height={\"30px\"}\n                alt=\"discount offer\"\n                src={timer}\n                style={{\n                  filter:\n                    \"invert(52%) sepia(60%) saturate(642%) hue-rotate(342deg) brightness(85%) contrast(95%)\",\n                }}\n              />\n            </div>\n          </div>\n        )}\n        {!isHourlyRoom &&\n          promotions?.map((promo, idx) => {\n            return (\n              <div\n                className={\n                  promo?.type === \"bulk\"\n                    ? \"promotionContainer bulk\"\n                    : \"promotionContainer early\"\n                }\n                key={idx}\n              >\n                {promo?.type === \"bulk\" ? (\n                  <div className=\"promotionContent\">\n                    <div className=\"promotionText\">\n                      <p>\n                        {/* {t(\"on_bookings_above\")}{\" \"}\n                        {promo?.cutoffAmount > 1\n                          ? promo?.cutoffAmount\n                          : promo?.lengthOfStay}{\" \"}\n                        {promoTexts(\n                          promo?.discountType,\n                          promo?.cutoffAmount > 1\n                            ? promo?.cutoffAmount\n                            : promo?.lengthOfStay\n                        )}{\" \"}\n                        {t(\"get\")} */}\n                        {promo?.promotionCta1}\n                      </p>\n\n                      <h1>\n                        {promo?.promotionCta2}\n                        {/* {t(\"flat\")} {parseInt(promo?.discount)}{\" \"}\n                        {promoTexts(promo?.discountType, promo?.discount)}{\" \"}\n                        {t(\"off\")} */}\n                      </h1>\n                    </div>\n                    <img\n                      width={\"30px\"}\n                      height={\"30px\"}\n                      alt=\"discount offer\"\n                      style={{\n                        filter:\n                          \"invert(68%) sepia(77%) saturate(1301%) hue-rotate(188deg) brightness(101%) contrast(88%)\",\n                      }}\n                      src={discount}\n                    />\n                  </div>\n                ) : null}\n                {promo?.type === \"coupon\" ? (\n                  <div className=\"promotionContent\">\n                    <div className={`promotionText`}>\n                      <p>{t(\"use_code\")}</p>\n                      <div\n                        style={{\n                          display: \"flex\",\n                          justifyContent: \"flex-end\",\n                          alignItems: \"center\",\n                          gap: \"10px\",\n                        }}\n                      >\n                        <h1>'{promo?.name}'</h1>\n                        <p>\n                          {t(\"and\")} {promo?.promotionCta2}{\" \"}\n                        </p>\n                      </div>\n                    </div>\n                    <img\n                      width={\"30px\"}\n                      height={\"30px\"}\n                      alt=\"discount offer\"\n                      style={{\n                        filter:\n                          \"invert(68%) sepia(77%) saturate(1301%) hue-rotate(188deg) brightness(101%) contrast(88%)\",\n                      }}\n                      src={discount}\n                    />\n                  </div>\n                ) : null}\n\n                {[\"basic\", \"day\", \"custom\"].includes(promo?.type) ? (\n                  <div className=\"promotionContent \">\n                    <div className=\"promotionText\">\n                      {promo?.type === \"custom\" ? (\n                        <>\n                          <p>{promo?.name}</p>\n                        </>\n                      ) : (\n                        <>\n                          {\" \"}\n                          <p>{promo?.promotionCta1}</p>\n                        </>\n                      )}\n\n                      <h1>\n                        {promo?.promotionCta2}\n                        {/* {t(\"flat\")} {parseInt(promo?.discount)}{\" \"}\n                        {promoTexts(promo?.discountType, promo?.discount)}{\" \"}\n                        {t(\"off\")} */}\n                      </h1>\n                    </div>\n                    <img\n                      width={\"30px\"}\n                      height={\"30px\"}\n                      alt=\"discount offer\"\n                      style={{\n                        filter:\n                          \"invert(52%) sepia(60%) saturate(642%) hue-rotate(342deg) brightness(85%) contrast(95%)\",\n                      }}\n                      src={discount}\n                    />\n                  </div>\n                ) : null}\n                {promo?.type === \"early\" ? (\n                  couponHotels.includes(id) ? (\n                    <div className=\"promotionContent\">\n                      <img\n                        width={\"30px\"}\n                        height={\"30px\"}\n                        alt=\"discount offer\"\n                        src={timer}\n                        style={{\n                          filter:\n                            \"invert(52%) sepia(60%) saturate(642%) hue-rotate(342deg) brightness(85%) contrast(95%)\",\n                        }}\n                      />\n                      <div className=\"promotionText\">\n                        <p>{t(\"use_code\")}</p>\n                        <div\n                          style={{\n                            display: \"flex\",\n                            justifyContent: \"flex-end\",\n                            alignItems: \"center\",\n                            gap: \"10px\",\n                          }}\n                        >\n                          <h1>'MOUNT'</h1>\n                          <p>\n                            {t(\"and_get\")} {parseInt(promo?.discount)}{\" \"}\n                            {promoTexts(promo?.discountType, promo?.discount)}{\" \"}\n                            {t(\"off\")}\n                          </p>\n                        </div>\n                      </div>\n                    </div>\n                  ) : (\n                    <div className=\"promotionContent\">\n                      <img\n                        width={\"30px\"}\n                        height={\"30px\"}\n                        alt=\"discount offer\"\n                        src={timer}\n                        style={{\n                          filter:\n                            \"invert(52%) sepia(60%) saturate(642%) hue-rotate(342deg) brightness(85%) contrast(95%)\",\n                        }}\n                      />\n                      <div className=\"promotionText\">\n                        <p>{t(\"early_bird_offer\")} !!</p>\n                        <div\n                          style={{\n                            display: \"flex\",\n                            justifyContent: \"flex-end\",\n                            alignItems: \"center\",\n                            gap: \"10px\",\n                          }}\n                        >\n                          <h1>\n                            {parseInt(promo?.discount)}{\" \"}\n                            {promoTexts(promo?.discountType, promo?.discount)}{\" \"}\n                            {t(\"off\")}\n                          </h1>\n                          <p>\n                            {t(\"book\")} {promo?.cutoffDays} {t(\"days_advance\")}{\" \"}\n                          </p>\n                        </div>\n                      </div>\n                    </div>\n                  )\n                ) : null}\n                {promo?.type === \"late\" ? (\n                  couponHotels.includes(id) ? (\n                    <div className=\"promotionContent\">\n                      <img\n                        width={\"30px\"}\n                        height={\"30px\"}\n                        alt=\"discount offer\"\n                        src={timer}\n                        style={{\n                          filter:\n                            \"invert(52%) sepia(60%) saturate(642%) hue-rotate(342deg) brightness(85%) contrast(95%)\",\n                        }}\n                      />\n                      <div className=\"promotionText\">\n                        <p>{t(\"use_code\")}</p>\n                        <div\n                          style={{\n                            display: \"flex\",\n                            justifyContent: \"flex-end\",\n                            alignItems: \"center\",\n                            gap: \"10px\",\n                          }}\n                        >\n                          <h1>'MOUNT'</h1>\n                          <p>\n                            {t(\"and_get\")} {parseInt(promo?.discount)}{\" \"}\n                            {promoTexts(promo?.discountType, promo?.discount)}{\" \"}\n                            {t(\"off\")}\n                          </p>\n                        </div>\n                      </div>\n                    </div>\n                  ) : (\n                    <div className=\"promotionContent\">\n                      <img\n                        width={\"30px\"}\n                        height={\"30px\"}\n                        alt=\"discount offer\"\n                        src={timer}\n                        style={{\n                          filter:\n                            \"invert(52%) sepia(60%) saturate(642%) hue-rotate(342deg) brightness(85%) contrast(95%)\",\n                        }}\n                      />\n                      <div className=\"promotionText\">\n                        <p>{t(\"last_minute_deals\")} !!</p>\n                        <div\n                          style={{\n                            display: \"flex\",\n                            justifyContent: \"flex-end\",\n                            alignItems: \"center\",\n                            gap: \"10px\",\n                          }}\n                        >\n                          <h1>\n                            {parseInt(promo?.discount)}{\" \"}\n                            {promoTexts(promo?.discountType, promo?.discount)}{\" \"}\n                            {t(\"off\")}\n                          </h1>\n                          <p>\n                            {t(\"book_now_for\")}{\" \"}\n                            {dayjs(startDate).format(\"MMM DD\")}\n                          </p>\n                        </div>\n                      </div>\n                    </div>\n                  )\n                ) : null}\n              </div>\n            );\n          })}\n        {/* {userId === 63809 && (\n          <div className={\"promotionContainer bulk\"}>\n            <div className=\"promotionContent \">\n              <div className=\"promotionText\">\n                <h1 style={{ fontSize: \"0.9rem\" }}>\n                  Mandatory gala dinner on 24th & 31st Dec\n                </h1>\n                <p>Hotel will contact you for the same</p>\n              </div>\n            </div>\n          </div>\n        )} */}\n        {userId === 103376 && (\n          <div className={\"promotionContainer bulk\"}>\n            <div className=\"promotionContent \">\n              <div className=\"promotionText\">\n                <h1 style={{ fontSize: \"0.9rem\" }}>20% off </h1>\n                <p>On dining and laundry service for solo women travellers</p>\n              </div>\n            </div>\n            {/* <img\n              width={\"30px\"}\n              height={\"30px\"}\n              alt=\"discount offer\"\n              style={{\n                filter:\n                  \"invert(68%) sepia(77%) saturate(1301%) hue-rotate(188deg) brightness(101%) contrast(88%)\",\n              }}\n              src={discount}\n            /> */}\n          </div>\n        )}\n        {isBNPL && (\n          <div className={\"promotionContainer bulk\"}>\n            <div className=\"promotionContent \">\n              <div className=\"promotionText\">\n                <p>{t(\"flexible_hassle_free_affordable\")}</p>\n\n                <h1>{t(\"book_now_pay_later\")}</h1>\n              </div>\n              <img\n                width={\"30px\"}\n                height={\"30px\"}\n                alt=\"discount offer\"\n                style={{\n                  filter:\n                    \"invert(68%) sepia(77%) saturate(1301%) hue-rotate(188deg) brightness(101%) contrast(88%)\",\n                }}\n                src={discount}\n              />\n            </div>\n          </div>\n        )}\n        {autoAccept === 1 && (\n          <div className={\"promotionContainer bulk\"}>\n            <div className=\"promotionContent \">\n              <div className=\"promotionText\">\n                <p>{t(\"no_waiting_just_go\")}</p>\n\n                <h1>{t(\"instant_confirmation\")}</h1>\n              </div>\n              <img\n                width={\"30px\"}\n                height={\"30px\"}\n                alt=\"discount offer\"\n                style={{\n                  filter:\n                    \"invert(68%) sepia(77%) saturate(1301%) hue-rotate(188deg) brightness(101%) contrast(88%)\",\n                }}\n                src={discount}\n              />\n            </div>\n          </div>\n        )}\n      </div>\n    </div>\n  );\n};\n\nexport default Promotion;\n","import \"lazysizes\";\nimport \"lazysizes/plugins/parent-fit/ls.parent-fit\";\nimport React, { useState } from \"react\";\nimport { Carousel } from \"react-responsive-carousel\";\nimport \"react-responsive-carousel/lib/styles/carousel.min.css\";\nimport ImageViewer from \"react-simple-image-viewer\";\n\nimport { LazyLoadImage } from \"react-lazy-load-image-component\";\nimport { IMAGE_QUALITY } from \"../../utils/utils\";\nimport { fireGtmEvent } from \"../../utils/googleAnalytics\";\n\nconst HotelImageCarousel = ({\n  name,\n  hotelImages,\n  address,\n  isAddon = false,\n}) => {\n  const [viewImage, setViewImage] = useState(false);\n  const [currentIndex, setCurrentIndex] = useState(0);\n\n  const handleImage = (id) => {\n    setViewImage(true);\n    setCurrentIndex(id);\n  };\n\n  return (\n    <div>\n      <Carousel\n        infiniteLoop\n        showStatus={!viewImage}\n        showThumbs={false}\n        showArrows={!viewImage}\n        showIndicators={false}\n        autoPlay={false}\n        onClickItem={(id) => {\n          handleImage(id);\n          isAddon\n            ? fireGtmEvent(\"addon_image_expanded\")\n            : fireGtmEvent(\"hotel_image_expanded\");\n        }}\n        className=\"mainpage__headerImages\"\n      >\n        {hotelImages?.map((image, id) => (\n          <img\n            key={id}\n            width={\n              window.location.href.includes(\"room/checkout\")\n                ? \"fit-content\"\n                : \"300px\"\n            }\n            height=\"300px\"\n            style={{ objectFit: \"cover\" }}\n            loading={id === 0 ? \"eager\" : \"lazy\"}\n            src={\n              image?.cdnImageUrl +\n              `?tr=w-375,ar-1-1,h-300,q-${IMAGE_QUALITY},fo-auto`\n            }\n            alt={name + \"'s Hotel Image in \" + address}\n          />\n        ))}\n      </Carousel>\n      {viewImage && (\n        <ImageViewer\n          src={hotelImages?.map((img) => {\n            return img.cdnImageUrl;\n            // +\n            // `?tr=w-600,ar-1-1,h-300,q-${IMAGE_QUALITY},fo-auto`\n            // return img.cdnImageUrl + \"?tr=w-auto-720,ar-1-1,h-600,q-80\";\n          })}\n          currentIndex={currentIndex}\n          disableScroll={false}\n          closeOnClickOutside={true}\n          onClose={setViewImage}\n        />\n      )}\n    </div>\n  );\n};\n\nexport default HotelImageCarousel;\n","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgClose(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    width: 24,\n    height: 24,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M18 6L6 18\",\n    stroke: \"#504D56\",\n    strokeWidth: 2,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M6 6L18 18\",\n    stroke: \"#504D56\",\n    strokeWidth: 2,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgClose);\nexport default __webpack_public_path__ + \"static/media/close.6cfcbe068744f9540c8c4eee41d2cee1.svg\";\nexport { ForwardRef as ReactComponent };"],"names":["_ref","_oldPriceCalculator$t","_oldPriceCalculator$t2","extraPrice","localExtraValue","onClose","showFakePrice","totalCost","setTotalCost","useState","totalDays","setTotalDays","applyOffer","setApplyOffer","promotionSelected","setPromotionSelected","promotionPrice","setPromotionPrice","applicablePromo","setApplicablePromo","isOffer","setIsOffer","priceWODiscount","setPriceWODiscount","selectedPeople","setSelecedPeople","roomPriceMap","setRoomPriceMap","taxAmount","setTaxAmount","arrangedPromos","setArrangedPromos","history","useHistory","testId","storageService","get","oldPriceCalculator","useOldPriceCalculator","t","useTranslation","selectedRooms","selectedAddons","hotelData","selectedHotelAddons","dateRange","totalPeople","promotions","totalAdult","isHourlyRoom","selectedRatePlans","roomSlots","hourlyTime","hourlyDate","hourlyHour","dateCount","isRatePlans","useSelector","state","hotelInfo","useEffect","arr","sort","b","a","discount","length","arrange","ar","arrangePromos","calculateDiscount","priceCalculator","usePriceCalculator","roomPrice","noDiscPrice","remove","map","rm","pricing","priceConfig","priceConfigDifference","val1","defaultGuestCount","sAdult","prVal","Object","keys","forEach","pr","parseFloat","price","EXCLUDE_DISCOUNT_ROOM","includes","id","userId","prc","sInfant","extraInfantPrice","sChild","extraChildPrice","adn","_adn$Addon","_selectedRooms$","_selectedRooms$$prici","Addon","category","parseInt","promoApplied","discountAmount","finalAmount","cost","promo","type","cutoffAmount","setTimeout","set","computeRoomPriceObj","roomPriceObj","Map","room","onedayprice","temp","has","val","addon","_addon$Addon","hotelRoomId","currency","calculateTaxPrice","_selectedRooms$2","_selectedRooms$2$pric","sum","key","value","_selectedRooms$filter","rmCount","filter","toFixed","getFixedValue","calculateCost","prices","arrPromos","totPrice","idx","tempPrice","getApplicablePromotion","rp","roomId","checkInDate","date","finalValue","reducedPrice","calculatePromotion","slotObj","percentage","_addon$Addon2","_addon$Addon3","_selectedRooms$3","_selectedRooms$3$pric","_selectedRooms$4","_selectedRooms$4$pric","_dayjs","multiplier","dayjs","endDate","diff","startDate","_ref2","count","searchGuest","Set","_addon$Addon4","rpTotalGuest","totalGuests","isSubscribed","isGoogle","sourceTest","_jsxs","className","children","appliedDiscount","some","couponHotels","_jsx","style","display","justifyContent","alignItems","flexWrap","gap","priceAfterDiscount","rpPrice","totalPrice","rpTax","taxObj","totalBookingTax","Number","Math","abs","totalTax","fontSize","format","_Fragment","addHoursToTime","to","onClick","sendAnalytics","push","toastr","src","width","height","alt","margin","border","borderRadius","overflow","padding","background","fontWeight","fireGtmEvent","position","isCheckout","selected","setSelected","setCount","useWindowSize","_selectedHotelAddons$","dispatch","useDispatch","selectAddon","_addon$HotelAddonImag","_addon$HotelAddonImag2","addHotelAddon","addon_id","addonId","addon_name","name","is_hotel_addon_images","HotelAddonImages","hotel_addon_images_count","HotelImageCarousel","hotelImages","url","isAddon","dangerouslySetInnerHTML","__html","description","deSelectAddon","_addon$HotelAddonImag3","_addon$HotelAddonImag4","removeHotelAddon","isCOD","showCancel","lastDate","handleShowHourly","isBNPL","selectedIds","autoAccept","payments","showHourly","showRazorpay","setShowRazorpay","showMobikwik","setShowMobikwik","setPromotions","async","_resp$data","timeZone","Intl","DateTimeFormat","resolvedOptions","isValidTimeZone","encodeURIComponent","resp","fetchPromotionsApi","_resp$data2","status","data","couponUserId","getpromos","promElement","document","querySelectorAll","console","log","color","textClr","amenityFilter","discountClr","promotionText","bulkBackground","bulkBorder","earlyBackground","earlyBorder","imageFilter","chainName","documentElement","setProperty","el","changeThemeColor","hotelAddonRef","useRef","scrollAddon","current","scrollLeft","pay","_pay$Gateway","Gateway","_pay$Gateway2","promoTexts","txt","currencies","textAlign","right","transform","ref","cursor","boxShadow","marginLeft","timer","promotionCta1","promotionCta2","discountType","cutoffDays","address","viewImage","setViewImage","currentIndex","setCurrentIndex","Carousel","infiniteLoop","showStatus","showThumbs","showArrows","showIndicators","autoPlay","onClickItem","handleImage","image","window","location","href","objectFit","loading","cdnImageUrl","IMAGE_QUALITY","ImageViewer","img","disableScroll","closeOnClickOutside"],"sourceRoot":""}