{"version":3,"file":"js/2796-81361bc7cfc8d51caf8c.chunk.js","mappings":"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","sources":["webpack://geosnapshot/./client/bundles/BrowseEvent/components/filters/WebcamCapture.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/vectors/LoudSpeakerIcon.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/offerBanners/PromptClearCart.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/offerBanners/SelfieUploaderPopup.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/offerBanners/BundleDiscountBanner.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/offerBanners/PercentageOfferBanner.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/offerBanners/PrepaidOfferBanner.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/offerBanners/ChangeOfferWarning.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/offerBanners/MultiTierOfferBanner.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/offerBanners/index.tsx","webpack://geosnapshot/./node_modules/react-pluralize/dist/index.js"],"sourcesContent":["import React from \"react\";\nimport Webcam from \"react-webcam\";\n\ninterface WebcamCaptureProps {\n  captured: Function;\n  closeWebcam: Function;\n}\n\nclass WebcamCapture extends React.Component<WebcamCaptureProps> {\n  setRef = (webcam: any) => {\n    this.webcam = webcam;\n  };\n  webcam: any;\n\n  componentWillMount() {\n    document.getElementsByTagName(\"body\")[0].classList.add(\"modal-open\");\n  }\n\n  componentWillUnmount() {\n    document.getElementsByTagName(\"body\")[0].classList.remove(\"modal-open\");\n  }\n\n  capture = () => {\n    this.props.captured(this.webcam.getScreenshot());\n  };\n\n  render() {\n    return (\n      <span>\n        <div className=\"modal fade in\" id=\"modal-mygallery\">\n          <div className=\"modal-dialog\" role=\"document\">\n            <div className=\"close-modal\">\n              <button\n                type=\"button\"\n                className=\"close\"\n                aria-label=\"Close\"\n                onClick={() => this.props.closeWebcam()}\n              >\n                <span aria-hidden=\"true\">&times;</span>\n              </button>\n            </div>\n            <div className=\"modal-content\">\n              <div className=\"modal-body\">\n                <Webcam\n                  audio={false}\n                  height={450}\n                  ref={this.setRef}\n                  screenshotFormat=\"image/jpeg\"\n                  width={500}\n                />\n              </div>\n              <div className=\"modal-footer\">\n                <div className=\"modal-footer-details\">\n                  <a\n                    href=\"#\"\n                    className=\"btn btn-primary\"\n                    onClick={this.capture}\n                  >\n                    Capture photo\n                  </a>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div className=\"modal-backdrop fade in\"></div>\n      </span>\n    );\n  }\n}\n\nexport default WebcamCapture;\n","import React from \"react\";\n\nconst LoudSpeakerIcon = (props: { color: string | undefined }) => {\n  return (\n    <svg\n      width=\"23\"\n      height=\"23\"\n      viewBox=\"0 0 30 30\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      style={{\n        display: \"inline-block\",\n        verticalAlign: \"sub\",\n        position: \"relative\",\n        top: \"0px\"\n      }}\n    >\n      <path\n        d=\"M14.2966 17.6721L21.069 17.4102C21.7638 17.3833 22.1809 16.6275 21.8333 16.0254L15.41 4.90001C15.0624 4.2979 14.1993 4.28121 13.8286 4.86944L10.2156 10.6036L14.2966 17.6721Z\"\n        fill={props.color}\n      />\n      <path\n        d=\"M20.8568 9.17232C20.6787 8.86384 20.7844 8.46939 21.0929 8.29129L22.2117 7.64533C22.5202 7.46723 22.9147 7.57292 23.0928 7.8814C23.2709 8.18988 23.1652 8.58432 22.8567 8.76242L21.7378 9.40839C21.4294 9.58649 21.0349 9.4808 20.8568 9.17232Z\"\n        fill={props.color}\n      />\n      <path\n        d=\"M19.3585 4.7713C19.5754 4.48872 19.9802 4.43541 20.2628 4.65224C20.5454 4.86907 20.5987 5.27392 20.3819 5.55651L19.5953 6.58168C19.3785 6.86431 18.9736 6.91762 18.691 6.70075C18.4084 6.4839 18.3551 6.07902 18.5719 5.79642L19.3585 4.7713Z\"\n        fill={props.color}\n      />\n      <path\n        d=\"M24.4731 11.9477C24.5196 12.3009 24.271 12.6249 23.9179 12.6714L22.6369 12.8401C22.2837 12.8865 21.9597 12.6379 21.9132 12.2848C21.8667 11.9316 22.1153 11.6076 22.4685 11.5611L23.7495 11.3924C24.1026 11.3459 24.4266 11.5945 24.4731 11.9477Z\"\n        fill={props.color}\n      />\n      <path\n        d=\"M9.31044 11.6163L5.55362 13.7853C4.93618 14.1418 4.72463 14.9313 5.08111 15.5487L4.89434 15.6566C3.76445 16.3089 3.37591 17.7589 4.02826 18.8888C4.68061 20.0187 6.13063 20.4073 7.26053 19.7549L7.44729 19.6471C7.80382 20.2646 8.59343 20.4762 9.21095 20.1197L9.34361 20.0431L15.0334 25.0352C15.6284 25.5573 16.4899 25.6423 17.1754 25.2465L17.4021 25.1156C18.503 24.48 18.6479 22.9484 17.6859 22.1176L13.0734 18.134L9.31044 11.6163Z\"\n        fill={props.color}\n      />\n    </svg>\n  );\n};\n\nexport default LoudSpeakerIcon;\n","import React from \"react\";\nconst warnIcon = require(\"../../../EventGalleryMobile/styles/icon-red-warn.svg\");\n\ninterface PromptClearCartProps {\n  executeBundleDiscount: Function;\n  hideCartClearWarning: Function;\n  photoBundleDiscountAvailed?: boolean;\n}\n\nconst PromptClearCart = ({\n  executeBundleDiscount,\n  hideCartClearWarning,\n  photoBundleDiscountAvailed\n}: PromptClearCartProps) => {\n  return (\n    <div>\n      <div\n        id=\"filter-dialog\"\n        className=\"modal fade in geo-modal geo-modal--small geo-modal__remove-offer\"\n        role=\"dialog\"\n      >\n        <div className=\"modal-dialog filter-dialog-content\">\n          <div className=\"modal-header\">\n            &nbsp;\n            <button\n              type=\"button\"\n              className=\"close\"\n              onClick={() => {\n                hideCartClearWarning();\n              }}\n            >\n              <span>&times;</span>\n            </button>\n          </div>\n          <div className=\"geo-modal__header geo-modal--warning-bg\">\n            <img\n              className=\"geo-modal__warn-icon\"\n              src={warnIcon}\n              alt=\"exclamation-warn\"\n            />\n            <h4>Cart will be Cleared</h4>\n          </div>\n          <div className=\"geo-modal__body\">\n            {photoBundleDiscountAvailed ? (\n              <p>\n                You can only apply this offer to one selfie and event at a time.\n                If you change this selfie or apply another offer your current\n                cart will be cleared.\n              </p>\n            ) : (\n              <p>\n                If you want to apply the photo bundle offer, all the photos from\n                the cart will get cleared.\n              </p>\n            )}\n          </div>\n          <div className=\"modal-footer geo-modal__actions dont-break\">\n            <a\n              className=\"geo-btn geo-btn--link  geo-btn--caps\"\n              style={{ backgroundColor: \"#C1C1C1\", color: \"white\" }}\n              onClick={() => {\n                hideCartClearWarning();\n              }}\n            >\n              Don't Apply\n            </a>\n            <a\n              className=\"geo-btn geo-btn--secondary geo-btn--caps\"\n              style={{ padding: \"12px 30px\", marginLeft: \"15px\" }}\n              onClick={async () => {\n                await executeBundleDiscount();\n                hideCartClearWarning();\n              }}\n            >\n              Apply\n            </a>\n          </div>\n        </div>\n      </div>\n      <div className=\"modal-backdrop fade in\" />\n    </div>\n  );\n};\n\nexport default PromptClearCart;\n","import React, { useEffect, useState } from \"react\";\nconst placeholderImage = require(\"../../../MasterImageSearch/images/placeholder-img-ver2.svg\");\nconst infoIcon = require(\"../../../MasterImageSearch/images/icon-info-red.svg\");\nimport Dropzone from \"react-dropzone\";\nimport ReactS3Uploader from \"react-s3-uploader\";\nimport UploadIcon from \"../../../EventGalleryMobile/vectors/UploadIcon\";\nimport SelfieIcon from \"../../../EventGalleryMobile/vectors/SelfieIcon\";\nimport ContrastForegroundUtility from \"../../../../utils/ContrastForegroundUtility\";\n\ninterface ImageUploaderPopupProps {\n  hideSelfieUploadPopup: Function;\n  previewImage: string | null;\n  processing?: boolean;\n  uploadProgress: number;\n  imageSelected: any;\n  updateSelfieFilter: Function;\n  emptyPhotosFromCart?: Function;\n  resetUploadProgress: Function;\n  resetSelfieAndWebcam: Function;\n  getSignedUrl: any;\n  hideUploadSelfie: boolean;\n  pageConfiguration: {\n    primaryColor: string;\n    secondaryColor: string;\n    accentColor: string;\n  };\n  availPhotoBundleDiscount: () => void;\n}\n\nconst ImageUploaderPopup = ({\n  hideSelfieUploadPopup,\n  previewImage,\n  processing,\n  uploadProgress,\n  imageSelected,\n  updateSelfieFilter,\n  emptyPhotosFromCart,\n  resetUploadProgress,\n  resetSelfieAndWebcam,\n  getSignedUrl,\n  hideUploadSelfie,\n  pageConfiguration,\n  availPhotoBundleDiscount\n}: ImageUploaderPopupProps) => {\n  const [currentImage, setImage] = useState(previewImage);\n  useEffect(() => {\n    setImage(previewImage);\n  }, [previewImage]);\n  return (\n    <div>\n      <div\n        id=\"filter-dialog\"\n        className=\"modal fade in geo-modal geo-modal--x-small geo-selfie-popup\"\n        role=\"dialog\"\n      >\n        <div className=\"modal-dialog filter-dialog-content\">\n          <button\n            type=\"button\"\n            className=\"close\"\n            onClick={() => hideSelfieUploadPopup()}\n          >\n            <span aria-hidden=\"true\">&times;</span>\n          </button>\n          <div className=\"dv-uploadselfie ns\">\n            <div className=\"geo-selfie-inner filter-content-div\">\n              <p className=\"filter-header-inner\">Upload a Selfie</p>\n              <div className=\"geo-selfie__info geo-flex\">\n                <div className=\"geo-selfie__icon\">\n                  <img src={infoIcon} alt=\"\" className=\"geo-selfie__icon-i\" />\n                </div>\n                <div className=\"geo-selfie__desc\">\n                  Only photos detected by face recognition can be purchased\n                  through the photo bundle. Other photos will need to be\n                  purchased separately.\n                </div>\n              </div>\n              <Dropzone\n                // Rails upgrade: Do nothing onDrop\n                // instead of this.imageDropped which is missing\n                // Drop doesn't work in production too\n                //\n                //@ts-ignore\n                onDrop={() => {\n                  /* Do nothing */\n                }}\n                multiple={false}\n                accept=\"image/*\"\n                className=\"dv-dragphoto filter-selfie-img-div\"\n                activeClassName=\"dv-dragphoto-active\"\n                disabled={hideUploadSelfie}\n              >\n                {currentImage ? (\n                  <img src={currentImage} />\n                ) : (\n                  <img className=\"bit-m\" src={placeholderImage} />\n                )}\n\n                {processing ? (\n                  <React.Fragment>\n                    <div className=\"dv-loader\">\n                      <div className=\"dv-loader-inner\">\n                        <div className=\"cssload-spin-box\" />\n                      </div>\n                    </div>\n\n                    <div className=\"dv-progress\">\n                      <div\n                        className=\"dv-progress-bar\"\n                        style={{ width: `${uploadProgress}%` }}\n                      />\n                    </div>\n                  </React.Fragment>\n                ) : null}\n              </Dropzone>\n              <br />\n              <p className=\"filter-selfie-p1\">\n                Please upload or take a photo looking straight ahead to find\n                matching photos.\n              </p>\n\n              <div className=\"selfie-btns\">\n                {!hideUploadSelfie && (\n                  <label className=\"btn btn-primary d-block selfie-up-btn\">\n                    <UploadIcon\n                      color={ContrastForegroundUtility.fgColor(\n                        pageConfiguration.primaryColor\n                      )}\n                    />\n                    Upload a Selfie\n                    <ReactS3Uploader\n                      className={\"dv-upload-input\"}\n                      style={{ display: \"none\" }}\n                      getSignedUrl={getSignedUrl}\n                      accept=\"image/*\"\n                      preprocess={imageSelected}\n                      onProgress={completedPercent =>\n                        resetUploadProgress(completedPercent)\n                      }\n                      onError={console.error}\n                      onFinish={async result => {\n                        await updateSelfieFilter(\n                          result.signedUrl.split(\"?\")[0]\n                        );\n                        await availPhotoBundleDiscount();\n                        resetUploadProgress(0);\n                      }}\n                      uploadRequestHeaders={{\n                        \"x-amz-acl\": \"public-read\"\n                      }}\n                      scrubFilename={filename =>\n                        filename.replace(/[^\\w\\d_\\-.]+/gi, \"\")\n                      }\n                      contentDisposition=\"auto\"\n                    />\n                  </label>\n                )}\n                <a\n                  href=\"#\"\n                  className=\"webcam-component btn secondary-btn d-block selfie-up-btn\"\n                  onClick={() => resetSelfieAndWebcam()}\n                >\n                  <SelfieIcon\n                    color={ContrastForegroundUtility.fgColor(\n                      pageConfiguration.secondaryColor\n                    )}\n                  />\n                  <span\n                    style={{\n                      marginRight: 10\n                    }}\n                  >\n                    Take a selfie\n                  </span>\n                </a>\n              </div>\n              <p className=\"image-upload-terms\">\n                To protect your privacy, your selfie image is not saved after\n                searching. By uploading your photo, you agree to biometric data\n                from your selfie being used only for searching for photos in\n                accordance with our\n                <a\n                  href=\"https://geosnapshot.com/?show=allpolicies\"\n                  rel=\"noopener\"\n                  target=\"_blank\"\n                >\n                  {\" \"}\n                  Terms & Conditions\n                </a>\n              </p>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div className=\"modal-backdrop fade in\" />\n    </div>\n  );\n};\n\nexport default ImageUploaderPopup;\n","import React, { Fragment } from \"react\";\n\ninterface BundleDiscountBannerProps {\n  promotionalMessage: Function;\n  photoBundleDiscountApplied: Function;\n  showPromptRemoveOffer: Function;\n  selectedImage: string | null;\n  availPhotoBundleDiscount: Function;\n  prepaidCustomersEnabled: boolean;\n}\n\nconst BundleDiscountBanner = ({\n  promotionalMessage,\n  photoBundleDiscountApplied,\n  showPromptRemoveOffer,\n  selectedImage,\n  availPhotoBundleDiscount,\n  prepaidCustomersEnabled\n}: BundleDiscountBannerProps) => {\n  const renderChangeSelfie = () => {\n    return (\n      <Fragment>\n        <img\n          //@ts-ignore\n          src={selectedImage}\n          style={{\n            height: \"20px\",\n            width: \"20px\",\n            borderRadius: \"50%\"\n          }}\n        />\n        Change Selfie\n      </Fragment>\n    );\n  };\n\n  const activeBadge = () =>\n    photoBundleDiscountApplied() && prepaidCustomersEnabled;\n\n  const buttonCssStyling = () =>\n    photoBundleDiscountApplied()\n      ? \"banner-button banner-btn-with-selfie\"\n      : \"banner-button\";\n\n  return (\n    <div style={{ height: \"100%\" }}>\n      <div\n        className={\n          prepaidCustomersEnabled\n            ? \"offer-banner double-offer-banner\"\n            : \"offer-banner \"\n        }\n      >\n        {activeBadge() && <div className=\"offer-active\">ACTIVE</div>}\n        <div\n          className=\"banner-text\"\n          style={\n            activeBadge()\n              ? { marginLeft: \"-40px\", marginRight: 8 }\n              : { marginRight: 8 }\n          }\n        >\n          {promotionalMessage()}\n        </div>\n        {photoBundleDiscountApplied() ? (\n          <div className=\"bundle-btn\">\n            <div className=\"offer-details\">\n              <span\n                className=\"offer-details-link\"\n                onClick={() => showPromptRemoveOffer()}\n              >\n                Remove offer\n              </span>\n            </div>\n            <div style={{ display: \"flex\", alignItems: \"center\" }}>\n              <button\n                className={buttonCssStyling()}\n                onClick={() => {\n                  availPhotoBundleDiscount();\n                }}\n              >\n                {renderChangeSelfie()}\n              </button>\n            </div>\n          </div>\n        ) : (\n          <div style={{ display: \"flex\", alignItems: \"center\" }}>\n            <button\n              className={buttonCssStyling()}\n              onClick={() => {\n                availPhotoBundleDiscount();\n              }}\n            >\n              Apply Offer\n            </button>\n          </div>\n        )}\n      </div>\n    </div>\n  );\n};\n\nexport default BundleDiscountBanner;\n","import React from \"react\";\n\ninterface PercentageOfferBannerProps {\n  promotionalMessage: Function;\n}\n\nconst PercentageOfferBanner = ({\n  promotionalMessage\n}: PercentageOfferBannerProps) => {\n  return (\n    <div style={{ height: \"100%\" }}>\n      <div className=\"offer-banner double-offer-banner\">\n        <div className=\"banner-text\">\n          {promotionalMessage()}\n          <span></span>\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default PercentageOfferBanner;\n","import React, { Fragment } from \"react\";\nimport { Event } from \"../types\";\nimport Pluralize from \"react-pluralize\";\n\ninterface PrepaidOfferBannerProps {\n  prepaidCustomersEnabled: boolean;\n  promptPrepaidCustomerAuth: Function;\n  prepaidCustomer: {\n    firstName: string;\n    lastName: string;\n    freePhotosAvailable: any;\n    id: number;\n  };\n  logoutPrepaidCustomer: Function;\n  cartPrepaidPhotos: [];\n  event: Event;\n  availPrepaidOffer: Function;\n  photoBundleDiscountAvailable?: boolean;\n  hasPercentageDiscount: Function;\n  cookiePrepaidAvailed: boolean;\n  cookiePrepaidPhotosAvailed: number;\n}\n\nconst PrepaidOfferBanner = ({\n  prepaidCustomersEnabled,\n  promptPrepaidCustomerAuth,\n  prepaidCustomer,\n  logoutPrepaidCustomer,\n  cartPrepaidPhotos,\n  event,\n  availPrepaidOffer,\n  photoBundleDiscountAvailable,\n  hasPercentageDiscount,\n  cookiePrepaidAvailed,\n  cookiePrepaidPhotosAvailed\n}: PrepaidOfferBannerProps) => {\n  const activeBadge = () =>\n    prepaidCustomer &&\n    (photoBundleDiscountAvailable || hasPercentageDiscount());\n\n  const handleCancelPrepaidOffer = () => {\n    promptPrepaidCustomerAuth();\n  };\n\n  const unlimitedView = () => (\n    <div className=\"offer-banner-welcome\">\n      {activeBadge() && (\n        <div\n          className=\"offer-active\"\n          style={{ top: activeBadge() ? \"-24px\" : 0 }}\n        >\n          ACTIVE\n        </div>\n      )}\n      {prepaidAuthSelfieOrCookie() ? (\n        <div\n          style={{ marginLeft: activeBadge() ? \"-40px\" : 0, marginRight: 8 }}\n        >\n          Welcome,\n          <b>\n            {\" \"}\n            {` ${prepaidCustomer.firstName} ${prepaidCustomer.lastName}. `}\n          </b>\n          Your account has been verified to get free photo from this event.\n        </div>\n      ) : (\n        <>\n          <div\n            style={{ marginLeft: activeBadge() ? \"-40px\" : 0, marginRight: 8 }}\n          >\n            Welcome,\n            <b>\n              {\" \"}\n              {` ${prepaidCustomer.firstName} ${prepaidCustomer.lastName}. `}\n            </b>\n            Your account has been verified to get free{\" \"}\n            <Pluralize\n              singular=\"photo\"\n              plural=\"photos\"\n              count={event.prepaidCustomersPhotoLimit}\n              showCount={false}\n            />{\" \"}\n            from this event.\n          </div>\n          <div className=\"dropdown pull-right\">\n            <span\n              className=\"prepaid-reauth dropdown-toggle\"\n              data-toggle=\"dropdown\"\n            >\n              Not you?\n            </span>\n            <ul\n              className=\"dropdown-menu pull-right\"\n              style={{\n                minWidth: \"90px\"\n              }}\n            >\n              <li>\n                <a onClick={() => handleCancelPrepaidOffer()}>\n                  <i className=\"fa fa-refresh\"></i>&nbsp; Switch\n                </a>\n              </li>\n              <li>\n                <a onClick={() => logoutPrepaidCustomer()}>\n                  <i className=\"fa fa-sign-out\"></i>&nbsp; Logout\n                </a>\n              </li>\n            </ul>\n          </div>\n        </>\n      )}\n    </div>\n  );\n\n  const prepaidSelfieOrCookieView = () => (\n    <div style={{ marginRight: 8 }}>\n      You have{\" \"}\n      <b>\n        <u>\n          <Pluralize\n            singular=\"photo\"\n            plural=\"photos\"\n            count={event.prepaidCustomersPhotoLimit}\n          />\n        </u>\n      </b>{\" \"}\n      available in your prepaid pack!\n      <br />\n      <strong>\n        {freePhotosConsumed()}/{event.prepaidCustomersPhotoLimit}{\" \"}\n      </strong>\n      <Pluralize\n        singular=\"photo\"\n        plural=\"photos\"\n        count={event.prepaidCustomersPhotoLimit}\n        showCount={false}\n      />{\" \"}\n      added.\n    </div>\n  );\n\n  const prepaidAuthSelfie = () =>\n    event.prepaidCustomersPrimaryAuthField === \"selfie\";\n\n  const prepaidAuthCookie = () =>\n    event.prepaidCustomersPrimaryAuthField === \"cookie\";\n\n  const hardLimitView = () => (\n    <div className=\"prepaid-customer-limit-welcome\">\n      {activeBadge() && <div className=\"offer-active\">ACTIVE</div>}\n      <div>\n        <div className=\"prepaid-customer-main\">\n          <div className=\"customer-offer-content\">\n            {prepaidAuthSelfieOrCookie() ? (\n              prepaidSelfieOrCookieView()\n            ) : (\n              <Fragment>\n                <div style={{ marginRight: 8 }}>\n                  <Pluralize\n                    singular=\"prepaid photo\"\n                    plural=\"prepaid photos\"\n                    count={event.prepaidCustomersPhotoLimit}\n                  />{\" \"}\n                  available for{\" \"}\n                  <strong>\n                    {prepaidCustomer.firstName} {prepaidCustomer.lastName}.{\" \"}\n                    <br />\n                    {freePhotosConsumed()}/{event.prepaidCustomersPhotoLimit}{\" \"}\n                  </strong>\n                  <Pluralize\n                    singular=\"photo\"\n                    plural=\"photos\"\n                    count={event.prepaidCustomersPhotoLimit}\n                    showCount={false}\n                  />{\" \"}\n                  added.\n                </div>{\" \"}\n                <span className=\"dropdown\">\n                  <span\n                    className=\"prepaid-reauth dropdown-toggle\"\n                    data-toggle=\"dropdown\"\n                  >\n                    {\" \"}\n                    Not you?\n                  </span>\n\n                  <ul\n                    className=\"dropdown-menu\"\n                    style={{\n                      minWidth: \"90px\"\n                    }}\n                  >\n                    <li>\n                      <a onClick={() => handleCancelPrepaidOffer()}>\n                        <i className=\"fa fa-refresh\"></i>&nbsp; Switch\n                      </a>\n                    </li>\n                    <li>\n                      <a onClick={() => logoutPrepaidCustomer()}>\n                        <i className=\"fa fa-sign-out\"></i>&nbsp; Logout\n                      </a>\n                    </li>\n                  </ul>\n                </span>\n              </Fragment>\n            )}\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n\n  const freePhotosConsumed = () => {\n    if (cookiePrepaidPhotosAvailed) {\n      return (\n        cookiePrepaidPhotosAvailed +\n        (cartPrepaidPhotos ? cartPrepaidPhotos.length : 0)\n      );\n    } else {\n      return (\n        event.prepaidCustomersPhotoLimit -\n        prepaidCustomer.freePhotosAvailable +\n        (cartPrepaidPhotos ? cartPrepaidPhotos.length : 0)\n      );\n    }\n  };\n\n  const authenticatedView = () =>\n    event.prepaidCustomersHardLimitEnabled ? hardLimitView() : unlimitedView();\n\n  const prepaidAuthSelfieOrCookie = () =>\n    prepaidAuthSelfie() || prepaidAuthCookie();\n\n  const alreadyAvailedView = () => {\n    return (\n      <div>\n        You have{\" \"}\n        <b>\n          <u>\n            already claimed your {event.prepaidCustomersPhotoLimit} free{\" \"}\n            <Pluralize\n              singular=\"photo\"\n              plural=\"photos\"\n              count={event.prepaidCustomersPhotoLimit}\n              showCount={false}\n            />\n          </u>\n        </b>{\" \"}\n        included in your prepaid pack, but feel free to purchase more!\n      </div>\n    );\n  };\n\n  const cookieUnAuthenticatedView = () => {\n    return (\n      <div>\n        Good news! You can download{\" \"}\n        <b>\n          <Pluralize\n            singular=\"photo\"\n            plural=\"photos\"\n            count={\n              event.prepaidCustomersPhotoLimit - cookiePrepaidPhotosAvailed\n            }\n          />{\" \"}\n        </b>\n        for free from this event. Redeem it now!\n      </div>\n    );\n  };\n\n  const unAuthenticatedView = () => {\n    return (\n      <div\n        className={\n          photoBundleDiscountAvailable || hasPercentageDiscount()\n            ? \"offer-banner double-offer-banner\"\n            : \"offer-banner\"\n        }\n      >\n        <div className=\"banner-text\">\n          {prepaidCustomersEnabled && (\n            <div\n              style={{ marginRight: 10 }}\n              className={prepaidAuthSelfieOrCookie() ? \"prepaid-selfie\" : \"\"}\n            >\n              {prepaidAuthSelfie() ? (\n                alreadyAvailedView()\n              ) : prepaidAuthCookie() ? (\n                cookiePrepaidAvailed ? (\n                  alreadyAvailedView()\n                ) : (\n                  cookieUnAuthenticatedView()\n                )\n              ) : (\n                <>\n                  Did you{\" \"}\n                  <b>\n                    pre-register for{\" \"}\n                    <>\n                      <Pluralize\n                        singular=\"a photo\"\n                        plural=\"the photos\"\n                        count={event.prepaidCustomersPhotoLimit}\n                        showCount={false}\n                      />\n                    </>{\" \"}\n                    pack\n                  </b>\n                  ?\n                </>\n              )}\n            </div>\n          )}\n        </div>\n        {!prepaidAuthSelfieOrCookie() && (\n          <div style={{ display: \"flex\", alignItems: \"center\" }}>\n            <button\n              className={\n                photoBundleDiscountAvailable || hasPercentageDiscount()\n                  ? \"banner-button prepaid-btn double-offer-btn\"\n                  : \"banner-button prepaid-btn\"\n              }\n              onClick={() => availPrepaidOffer()}\n            >\n              {\" \"}\n              Yes, get my{\" \"}\n              <Pluralize\n                singular=\"photo\"\n                plural=\"photos\"\n                count={event.prepaidCustomersPhotoLimit}\n                showCount={false}\n              />\n              !\n            </button>\n          </div>\n        )}\n      </div>\n    );\n  };\n\n  return (\n    <div style={{ height: \"100%\" }}>\n      {prepaidCustomer && prepaidCustomer.id\n        ? authenticatedView()\n        : unAuthenticatedView()}\n    </div>\n  );\n};\n\nexport default PrepaidOfferBanner;\n","import React from \"react\";\nconst warnIcon = require(\"../../../EventGalleryMobile/styles/icon-red-warn.svg\");\n\ninterface ChangeOfferWarningProps {\n  hideWarningPrompt: Function;\n  removeBundleDiscountOffer: Function;\n  logoutPrepaidCustomer: Function;\n  photoBundleDiscountAvailed?: boolean;\n  getReferenceImage: () => string | null;\n  availPhotoBundleDiscount: () => void;\n  selectedImage: string | null;\n}\n\nconst ChangeOfferWarning = ({\n  hideWarningPrompt,\n  removeBundleDiscountOffer,\n  logoutPrepaidCustomer,\n  photoBundleDiscountAvailed,\n  getReferenceImage,\n  availPhotoBundleDiscount,\n  selectedImage\n}: ChangeOfferWarningProps) => {\n  const removeOffer = async () => {\n    photoBundleDiscountAvailed\n      ? await removeBundleDiscountOffer(true)\n      : (await logoutPrepaidCustomer(true),\n        (getReferenceImage() || selectedImage) && availPhotoBundleDiscount());\n    hideWarningPrompt();\n  };\n\n  return (\n    <div>\n      <div\n        id=\"filter-dialog\"\n        className=\"modal fade in geo-modal geo-modal--small geo-modal__remove-offer\"\n        role=\"dialog\"\n      >\n        <div className=\"modal-dialog filter-dialog-content geo-width \">\n          <div className=\"modal-header\">\n            &nbsp;\n            <button\n              type=\"button\"\n              className=\"close\"\n              onClick={() => hideWarningPrompt()}\n            >\n              <span>&times;</span>\n            </button>\n          </div>\n          <div className=\"geo-modal__header geo-modal--warning-bg\">\n            <img\n              className=\"geo-modal__warn-icon\"\n              src={warnIcon}\n              alt=\"exclamation-warn\"\n            />\n            <h4>Current offer will be removed</h4>\n          </div>\n          <div className=\"geo-modal__body\">\n            You can only apply one offer at a time. So your current offer will\n            be removed.\n          </div>\n          <div className=\"modal-footer geo-modal__actions\">\n            <a\n              className=\"geo-btn geo-btn--link  geo-btn--caps\"\n              style={{\n                backgroundColor: \"#C1C1C1\",\n                color: \"white\",\n                marginRight: 10\n              }}\n              onClick={() => removeOffer()}\n            >\n              Remove offer\n            </a>\n            <a\n              className=\"geo-btn geo-btn--secondary geo-btn--caps\"\n              onClick={() => hideWarningPrompt()}\n            >\n              Don't remove offer\n            </a>\n          </div>\n        </div>\n      </div>\n      <div className=\"modal-backdrop fade in\" />\n    </div>\n  );\n};\n\nexport default ChangeOfferWarning;\n","import React from \"react\";\n\ninterface MultiTierOfferBannerProps {\n  promotionalMessage: Function;\n  discountedPrice: string;\n  actualPrice: string;\n  cartHasDiscount: boolean;\n}\n\nconst MultiTierOfferBanner = ({\n  promotionalMessage,\n  discountedPrice,\n  actualPrice,\n  cartHasDiscount\n}: MultiTierOfferBannerProps) => {\n  return (\n    <div style={{ height: \"100%\" }}>\n      <div className=\"offer-banner offer--multi-tier\">\n        <div className=\"banner-text\">\n          <span>{promotionalMessage()} </span>\n          {actualPrice && (\n            <span>\n              Total:{\" \"}\n              {cartHasDiscount && (\n                <span style={{ textDecoration: \"line-through\" }}>\n                  {actualPrice}\n                </span>\n              )}{\" \"}\n              <b>{discountedPrice}</b>\n            </span>\n          )}\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default MultiTierOfferBanner;\n","import PropTypes from \"prop-types\";\nimport React, { Fragment, Component } from \"react\";\nimport ContrastForegroundUtility from \"../../../../utils/ContrastForegroundUtility\";\nimport LoudSpeakerIcon from \"../vectors/LoudSpeakerIcon\";\nimport WebcamCapture from \"../filters/WebcamCapture\";\nimport ajax from \"superagent\";\nimport PromptClearCart from \"./PromptClearCart\";\nimport SelfieUploaderPopup from \"./SelfieUploaderPopup\";\nimport {\n  setCookie,\n  withCartIdParam,\n  getParameterByName,\n  removeParam,\n  getCookie\n} from \"../../../../utils/BrowserHelper\";\nimport BundleDiscountBanner from \"./BundleDiscountBanner\";\nimport PercentageOfferBanner from \"./PercentageOfferBanner\";\nimport PrepaidOfferBanner from \"./PrepaidOfferBanner\";\nimport ChangeOfferWarning from \"./ChangeOfferWarning\";\nconst dropdown = require(\"../../styles/dropdown.svg\");\nimport { ReadStream } from \"fs\";\nimport { Event } from \"../types\";\nimport MultiTierOfferBanner from \"./MultiTierOfferBanner\";\n\ninterface OffersBannerProps {\n  promptPrepaidCustomerAuth: Function;\n  logoutPrepaidCustomer: Function;\n  updateFilters: Function;\n  event: Event;\n  emptyPhotosFromCart: Function;\n  discountMessage: string;\n  prepaidCustomersEnabled: boolean;\n  selfieSearchS3Bucket?: string;\n  photoBundleDiscountAvailable?: boolean;\n  selectedImage: string | null;\n  promptRemoveOffer: boolean;\n  cartCount?: number;\n  showPromptRemoveOffer: Function;\n  eventURL?: string;\n  removeBundleDiscountOffer: Function;\n  prepaidCustomer?: object;\n  cartPrepaidPhotos?: object;\n  photoBundleDiscountEventId?: string;\n  setSelfieUploadPopup?: Function;\n  selfieUploadPopup?: boolean;\n  photoBundleDiscountAvailed?: boolean;\n  getReferenceImage: () => string | null;\n  clearCartPopup: boolean;\n  setClearCartPopup: Function;\n  cartFullPrice: string;\n  cartDiscountedPrice: string;\n  cartHasDiscount: boolean;\n  availPhotoBundleDiscount: () => void;\n}\n\ninterface OffersBannerState {\n  offerExpand: boolean;\n  webcam: boolean;\n  uploadProgress: 0;\n  cartClearWarning: string | boolean | null;\n  showChangeOfferWarning: string | boolean | null;\n  promptRemoveOffer: boolean;\n  previewImage: string | null;\n  processing?: boolean;\n}\n\nexport default class OffersBanner extends Component<\n  OffersBannerProps,\n  OffersBannerState\n> {\n  static contextTypes = {\n    prepaidCustomer: PropTypes.shape({\n      firstName: PropTypes.string,\n      lastName: PropTypes.string,\n      email: PropTypes.string,\n      eventId: PropTypes.number,\n      freePhotosAvailable: PropTypes.number,\n      id: PropTypes.number\n    }),\n    cartPrepaidPhotos: PropTypes.array,\n    cartId: PropTypes.number,\n    cartPhotos: PropTypes.array,\n    pageConfiguration: PropTypes.shape({\n      primaryColor: PropTypes.string,\n      secondaryColor: PropTypes.string,\n      accentColor: PropTypes.string\n    }),\n    photoBundleDiscountEventId: PropTypes.number,\n    selfieUploadPopup: PropTypes.bool,\n    hideUploadSelfie: PropTypes.bool,\n    cookiePrepaidAvailed: PropTypes.bool,\n    cookiePrepaidPhotosAvailed: PropTypes.number\n  };\n  loudSpeakerIconColor: string;\n  cartIconColor: string;\n\n  constructor(props: OffersBannerProps, context: any) {\n    super(props, context);\n    this.state = {\n      offerExpand: true,\n      webcam: false,\n      uploadProgress: 0,\n      cartClearWarning: this.props.clearCartPopup,\n      showChangeOfferWarning: false,\n      promptRemoveOffer: this.props.promptRemoveOffer,\n      previewImage: this.props.selectedImage,\n      processing: undefined\n    };\n    this.loudSpeakerIconColor = ContrastForegroundUtility.fgColor(\n      this.context.pageConfiguration.primaryColor\n    );\n    this.cartIconColor = ContrastForegroundUtility.fgColor(\n      this.loudSpeakerIconColor\n    );\n    this.executeBundleDiscount = this.executeBundleDiscount.bind(this);\n  }\n\n  getSignedUrl = (file: { type: any }, callback: (arg0: any) => void) => {\n    ajax\n      .get(withCartIdParam(\"/s3/signed_url\", this.context.cartId))\n      .query({\n        bucket: this.props.selfieSearchS3Bucket,\n        contentType: file.type\n      })\n      .then(data => {\n        callback(JSON.parse(data.text));\n      })\n      .catch(error => {\n        console.error(error);\n      });\n  };\n\n  hasPercentageDiscount = () =>\n    this.props.event.hasDiscount &&\n    this.props.event.price !== 0 &&\n    this.props.event.discountType == \"price_break\";\n\n  hasMultiTierDiscount = () =>\n    this.props.event.hasDiscount &&\n    this.props.event.price !== 0 &&\n    this.props.event.discountType == \"multi_tier\";\n\n  photoBundleDiscountApplied = () =>\n    this.props.photoBundleDiscountAvailed &&\n    this.props.event.id == this.context.photoBundleDiscountEventId;\n\n  promotionalMessage = () => {\n    return (\n      <span dangerouslySetInnerHTML={{ __html: this.props.discountMessage }} />\n    );\n  };\n\n  updateSelfieFilter = (newValue: any) => {\n    this.props.updateFilters(\n      {\n        [\"referenceImage\"]: newValue\n      },\n      false\n    );\n  };\n\n  uploadAndFilter = (\n    imageFile: string | number | boolean | Blob | Buffer | ReadStream\n  ) => {\n    this.setState({\n      previewImage: URL.createObjectURL(imageFile),\n      processing: true\n    });\n    //@ts-ignore\n    (window.dataLayer || []).push({ event: \"filterAlbumByImage\" });\n\n    ajax\n      .post(\"/s3/upload_image\")\n      .attach(\"file\", imageFile)\n      //@ts-ignore\n      .field(\"bucket\", this.props.selfieSearchS3Bucket)\n      .then(response => {\n        this.updateSelfieFilter(response.body.url);\n      });\n  };\n\n  uploadBase64Image = (base64Img: RequestInfo) => {\n    fetch(base64Img)\n      .then(res => res.blob())\n      .then(blob => {\n        //@ts-ignore\n        this.uploadAndFilter(new File([blob], { type: \"image/png\" }));\n      })\n      .then(() =>\n        this.setState({ webcam: !this.state.webcam }, () =>\n          this.props.availPhotoBundleDiscount()\n        )\n      );\n  };\n\n  imageSelected = (file: any, next: (arg0: any) => void) => {\n    this.setState({\n      previewImage: URL.createObjectURL(file),\n      processing: true\n    });\n\n    next(file);\n  };\n\n  executeBundleDiscount = async () => {\n    if (\n      (this.props.getReferenceImage() || this.props.selectedImage) &&\n      !this.photoBundleDiscountApplied()\n    ) {\n      this.props.availPhotoBundleDiscount();\n      this.props.setClearCartPopup(false);\n    } else if (!this.props.selectedImage && this.photoBundleDiscountApplied()) {\n      this.props.availPhotoBundleDiscount();\n      //@ts-ignore\n    } else if (this.props.selfieUploadPopup == false) {\n      await this.props.emptyPhotosFromCart();\n      this.props.setSelfieUploadPopup && this.props.setSelfieUploadPopup(true);\n    }\n    this.props.clearCartPopup && this.props.setClearCartPopup(false);\n  };\n\n  //@ts-ignore\n  componentDidUpdate(prevProps: {\n    photoBundleDiscountAvailed: any;\n    selectedImage: string;\n  }) {\n    if (\n      prevProps.photoBundleDiscountAvailed !=\n      this.props.photoBundleDiscountAvailed\n    ) {\n      if (\n        this.props.selectedImage &&\n        prevProps.photoBundleDiscountAvailed !=\n          this.props.photoBundleDiscountAvailed\n      ) {\n        this.setState({\n          processing: false,\n          previewImage: this.props.selectedImage\n        });\n        this.props.setSelfieUploadPopup &&\n          this.props.setSelfieUploadPopup(false);\n      }\n    } else if (\n      this.props.photoBundleDiscountAvailed &&\n      this.props.selectedImage != prevProps.selectedImage\n    ) {\n      if (prevProps.selectedImage != this.props.selectedImage) {\n        this.setState({\n          processing: false,\n          previewImage: this.props.selectedImage\n        });\n        this.props.setSelfieUploadPopup &&\n          this.props.setSelfieUploadPopup(false);\n      }\n    }\n  }\n\n  //@ts-ignore\n  componentWillReceiveProps(nextProps: {\n    selectedImage: string | null;\n    promptRemoveOffer: boolean;\n  }) {\n    if (this.props.selectedImage != nextProps.selectedImage) {\n      this.setState({ previewImage: nextProps.selectedImage });\n    }\n    if (this.props.promptRemoveOffer != nextProps.promptRemoveOffer)\n      this.setState({ promptRemoveOffer: nextProps.promptRemoveOffer });\n  }\n\n  renderBundleDiscountBanner = () => (\n    <BundleDiscountBanner\n      promotionalMessage={this.promotionalMessage}\n      photoBundleDiscountApplied={this.photoBundleDiscountApplied}\n      showPromptRemoveOffer={this.props.showPromptRemoveOffer}\n      selectedImage={this.props.selectedImage}\n      availPhotoBundleDiscount={this.availPhotoBundleDiscount}\n      prepaidCustomersEnabled={this.props.prepaidCustomersEnabled}\n    />\n  );\n\n  renderPrepaidOfferBanner = () => (\n    <PrepaidOfferBanner\n      prepaidCustomersEnabled={this.props.prepaidCustomersEnabled}\n      promptPrepaidCustomerAuth={this.props.promptPrepaidCustomerAuth}\n      prepaidCustomer={this.context.prepaidCustomer}\n      hasPercentageDiscount={this.hasPercentageDiscount}\n      logoutPrepaidCustomer={this.props.logoutPrepaidCustomer}\n      cartPrepaidPhotos={this.context.cartPrepaidPhotos}\n      //@ts-ignore\n      event={this.props.event}\n      availPrepaidOffer={this.availPrepaidOffer}\n      photoBundleDiscountAvailable={this.props.photoBundleDiscountAvailable}\n      cookiePrepaidAvailed={this.context.cookiePrepaidAvailed}\n      cookiePrepaidPhotosAvailed={this.context.cookiePrepaidPhotosAvailed}\n    />\n  );\n\n  singleOfferAvailable = () => {\n    return (\n      <div className=\"dash-border-web\">\n        {this.props.photoBundleDiscountAvailable ? (\n          this.renderBundleDiscountBanner()\n        ) : this.hasMultiTierDiscount() ? (\n          <MultiTierOfferBanner\n            promotionalMessage={this.promotionalMessage}\n            discountedPrice={this.props.cartDiscountedPrice}\n            actualPrice={this.props.cartFullPrice}\n            cartHasDiscount={this.props.cartHasDiscount}\n          />\n        ) : this.hasPercentageDiscount() ? (\n          <PercentageOfferBanner promotionalMessage={this.promotionalMessage} />\n        ) : (\n          this.props.prepaidCustomersEnabled && this.renderPrepaidOfferBanner()\n        )}\n      </div>\n    );\n  };\n\n  multipleOffersAvailable = () => {\n    return this.props.photoBundleDiscountAvailable &&\n      this.props.prepaidCustomersEnabled ? (\n      <div className=\"cart-scroll\" style={{ display: \"flex\", width: \"100%\" }}>\n        <div className=\"dash-border-web\" style={{ width: \"49.5%\" }}>\n          {this.renderPrepaidOfferBanner()}\n        </div>\n        <div\n          className=\"dash-border-web\"\n          style={{ width: \"49.5%\", marginLeft: \"11px\" }}\n        >\n          {this.renderBundleDiscountBanner()}\n        </div>\n      </div>\n    ) : this.props.prepaidCustomersEnabled && this.hasPercentageDiscount() ? (\n      <div className=\"cart-scroll\" style={{ display: \"flex\", width: \"100%\" }}>\n        <div className=\"dash-border-web\" style={{ width: \"49.5%\" }}>\n          {this.renderPrepaidOfferBanner()}\n        </div>\n        <div\n          className=\"dash-border-web\"\n          style={{ width: \"49.5%\", marginLeft: \"11px\" }}\n        >\n          <PercentageOfferBanner promotionalMessage={this.promotionalMessage} />\n        </div>\n      </div>\n    ) : null;\n  };\n\n  availPrepaidOffer = () => {\n    if (this.props.photoBundleDiscountAvailed) {\n      this.setState({ showChangeOfferWarning: true });\n    } else this.props.promptPrepaidCustomerAuth();\n  };\n\n  availPhotoBundleDiscount = () => {\n    if (\n      this.context.prepaidCustomer &&\n      Object.keys(this.context.prepaidCustomer).length != 0 &&\n      this.context.prepaidCustomer.constructor === Object\n    ) {\n      this.setState({ showChangeOfferWarning: true });\n    } else if (this.props.cartCount && this.props.cartCount > 0) {\n      this.setState({ cartClearWarning: true });\n    } else if (\n      (this.props.getReferenceImage() || this.props.selectedImage) &&\n      !this.props.photoBundleDiscountAvailed\n    ) {\n      this.props.availPhotoBundleDiscount();\n    } else this.executeBundleDiscount();\n  };\n\n  renderPopupLogic = () => (\n    <Fragment>\n      {this.state.showChangeOfferWarning && (\n        <ChangeOfferWarning\n          hideWarningPrompt={() =>\n            this.setState({ showChangeOfferWarning: false })\n          }\n          removeBundleDiscountOffer={this.props.removeBundleDiscountOffer}\n          logoutPrepaidCustomer={this.props.logoutPrepaidCustomer}\n          photoBundleDiscountAvailed={this.props.photoBundleDiscountAvailed}\n          getReferenceImage={this.props.getReferenceImage}\n          availPhotoBundleDiscount={this.availPhotoBundleDiscount}\n          selectedImage={this.props.selectedImage}\n        />\n      )}\n      {(this.state.cartClearWarning || this.props.clearCartPopup) && (\n        <PromptClearCart\n          executeBundleDiscount={this.executeBundleDiscount}\n          hideCartClearWarning={() => (\n            this.props.setClearCartPopup(false),\n            this.setState({ cartClearWarning: false }, () =>\n              this.props.setClearCartPopup(false)\n            )\n          )}\n          photoBundleDiscountAvailed={this.props.photoBundleDiscountAvailed}\n        />\n      )}\n      {this.props.selfieUploadPopup && (\n        <SelfieUploaderPopup\n          hideSelfieUploadPopup={() =>\n            this.props.setSelfieUploadPopup &&\n            this.props.setSelfieUploadPopup(false)\n          }\n          previewImage={this.state.previewImage}\n          processing={this.state.processing}\n          uploadProgress={this.state.uploadProgress}\n          imageSelected={this.imageSelected}\n          updateSelfieFilter={this.updateSelfieFilter}\n          emptyPhotosFromCart={this.props.emptyPhotosFromCart}\n          resetUploadProgress={(completedPercent: any) =>\n            this.setState({\n              uploadProgress: completedPercent\n            })\n          }\n          resetSelfieAndWebcam={async () => {\n            this.props.setSelfieUploadPopup &&\n              (await this.props.setSelfieUploadPopup(false)),\n              this.setState({ webcam: !this.state.webcam });\n          }}\n          getSignedUrl={this.getSignedUrl}\n          hideUploadSelfie={this.context.hideUploadSelfie}\n          pageConfiguration={this.context.pageConfiguration}\n          availPhotoBundleDiscount={this.props.availPhotoBundleDiscount}\n        />\n      )}\n      {this.state.webcam ? (\n        <WebcamCapture\n          closeWebcam={async () => {\n            this.props.setSelfieUploadPopup &&\n              (await this.props.setSelfieUploadPopup(false)),\n              this.setState({ webcam: !this.state.webcam });\n          }}\n          captured={(base64Img: any) => {\n            this.uploadBase64Image(base64Img);\n          }}\n        />\n      ) : null}\n    </Fragment>\n  );\n\n  notPrepaidAuthSelfieOrCookie = () => {\n    return (\n      this.props.event.prepaidCustomersPrimaryAuthField != \"selfie\" &&\n      this.props.event.prepaidCustomersPrimaryAuthField != \"cookie\"\n    );\n  };\n\n  render() {\n    return (\n      <div\n        style={{\n          padding: 10\n        }}\n      >\n        {this.notPrepaidAuthSelfieOrCookie() && (\n          <div\n            className=\"offer-banner-heading\"\n            onClick={() =>\n              this.setState({ offerExpand: !this.state.offerExpand })\n            }\n          >\n            <LoudSpeakerIcon color={\"black\"} />\n            <strong>Offers</strong>\n            {this.multipleOffersAvailable() && (\n              <span style={{ color: \"gray\", fontSize: 12, marginLeft: 5 }}>\n                Apply any one\n              </span>\n            )}\n            <img\n              src={dropdown}\n              style={{\n                marginLeft: 5,\n                transform: this.state.offerExpand\n                  ? \"rotate(0deg)\"\n                  : \"rotate(180deg)\"\n              }}\n            />\n          </div>\n        )}\n        {this.state.offerExpand && (\n          <div className=\"offer-banner-body\" style={{ marginTop: 10 }}>\n            {this.multipleOffersAvailable() || this.singleOfferAvailable()}\n          </div>\n        )}\n        {this.renderPopupLogic()}\n      </div>\n    );\n  }\n}\n","module.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=0)}([function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(1);Object.defineProperty(t,\"default\",{enumerable:!0,get:function(){return(e=n,e&&e.__esModule?e:{default:e}).default;var e}})},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=a(r(2)),o=a(r(3)),u=r(6);function a(e){return e&&e.__esModule?e:{default:e}}var l=function(e){var t=e.className,r=e.style,o=function(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}(e,[\"className\",\"style\"]);return n.default.createElement(\"span\",{className:t,style:r},(0,u.pluralize)(o))};l.propTypes={singular:o.default.string.isRequired,plural:o.default.string,count:o.default.number,showCount:o.default.bool,className:o.default.string,style:o.default.object,zero:o.default.string},l.defaultProps={count:1,showCount:!0,className:null,style:{},zero:null},t.default=l},function(e,t){e.exports=require(\"react\")},function(e,t,r){e.exports=r(4)()},function(e,t,r){\"use strict\";var n=r(5);function o(){}function u(){}u.resetWarningCache=o,e.exports=function(){function e(e,t,r,o,u,a){if(a!==n){var l=new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");throw l.name=\"Invariant Violation\",l}}function t(){return e}e.isRequired=e;var r={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:u,resetWarningCache:o};return r.PropTypes=r,r}},function(e,t,r){\"use strict\";e.exports=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\"},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.pluralize=void 0;var n=r(7);t.pluralize=n.pluralize},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});t.pluralize=function(e){var t=e.singular,r=e.plural,n=e.count,o=e.showCount,u=e.zero;if(0===n&&u)return u;var a=t;return 1!==n&&(a=r||t+\"s\"),o?n+\" \"+a:a}}]);"],"names":[],"sourceRoot":""}