{"version":3,"file":"js/9362-aff841d4af8056bb072f.js","mappings":"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","sources":["webpack://geosnapshot/./client/bundles/BrowseEvent/components/albums/Photos.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/albums/Album.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/albums/PasswordProtected.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/CollectCustomerEmail.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/albums/PrivateScreen.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/albums/FilteredResult.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/albums/AlbumsContainer.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/filters/FilterSidebar.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/BundleDiscountRemovePopup.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/EventContainer.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/StyleOverrides.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/vectors/ActiveIcon.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport PropTypes, { number } from \"prop-types\";\nimport _ from \"lodash\";\nimport ahoy from \"ahoy.js\";\nimport PrecacheImg from \"../../../../utils/PrecacheImage\";\nimport Modal from \"../../../../utils/Modal\";\nimport LightBox from \"./LightBox\";\nimport Gallery from \"react-grid-gallery\";\nimport millisecondsTohms from \"../../../../utils/millisecondsTohms\";\nimport Telemetry from \"../../../../utils/rudderstackAnalytics\";\nconst gssNewLoader = require(\"../../../../assets/gss-loader.gif\");\nconst playIcon = require(\"../../styles/play.svg\");\nconst hiddenIcon = require(\"../../styles/imgHide.svg\");\nimport { Album as AlbumType, Event } from \"../types\";\nimport { CartOutline, CartFilled } from \"../vectors/AddToCartIcon\";\nimport { CheckOutline, CheckFilled } from \"../vectors/CheckIcon\";\nimport { Cart } from \"../../components/types\";\n\ninterface ImageComponentProps {\n props: {\n item: {\n videoContent: any;\n videoDuration: string | number;\n thumbnail: string | undefined;\n id: number;\n album: { name: string };\n hidden: boolean;\n isSelected: boolean;\n };\n imageProps: React.ImgHTMLAttributes;\n index: number;\n };\n handleImageSelect: ({ photo, index }: { photo: any; index: number }) => void;\n primaryColor: string;\n shouldShowCheckIcon: boolean;\n event: { id: number; name: string };\n}\n\nconst ImageComponent = ({\n props,\n handleImageSelect,\n primaryColor,\n shouldShowCheckIcon,\n event\n}: ImageComponentProps) => {\n const [show, setShow] = useState(false);\n\n const ImageSelectIcon = (\n {\n e.stopPropagation();\n handleImageSelect({ photo: props.item, index: props.index });\n }}\n >\n {shouldShowCheckIcon ? (\n props.item.isSelected ? (\n \n ) : (\n \n )\n ) : props.item.isSelected ? (\n \n ) : (\n \n )}\n \n );\n\n if (props.item.videoContent) {\n return (\n
\n {props.item.hidden && (\n \n \"\"\n \n )}\n {ImageSelectIcon}\n \n {millisecondsTohms(props.item.videoDuration)}\n \n \"\"\n setShow(true)}\n onMouseLeave={() => setShow(false)}\n alt={`${props.item.album.name}-${props.item.id}`}\n />\n
\n );\n } else\n return (\n
\n {props.item.hidden && (\n \n \"\"\n \n )}\n {ImageSelectIcon}\n \n
\n );\n};\n\ninterface PhotosProps {\n event: Event;\n album: AlbumType;\n photos: any;\n cart?: {\n photos: any;\n id: number;\n };\n addPhotoToCart: Function;\n removePhotoFromCart: Function;\n loadMorePhotos: Function;\n updateAlbum: Function;\n loadingPhotos: boolean;\n expanded: boolean;\n collapsibleGallery: boolean;\n galleryRowsRendered: Function;\n listOfMediaId: Array<{ id: number; hidden: boolean }>;\n curationMode: boolean;\n userId: number;\n userSignedIn: boolean;\n guestUserId: null | number;\n filteredResult: boolean;\n}\n\ninterface PhotosState {\n photos: any;\n showLightBox: boolean;\n photoIndex: number;\n reload: boolean;\n curationApiCalled: boolean;\n favorites: number[];\n selectedPhoto: { id: number | null; isFavorite: boolean; source: string };\n}\n\nclass Photos extends React.Component {\n constructor(props: PhotosProps) {\n super(props);\n\n this.state = {\n photos: [],\n showLightBox: false,\n photoIndex: -1,\n reload: false,\n curationApiCalled: false,\n favorites: [],\n selectedPhoto: { id: null, isFavorite: false, source: \"\" }\n };\n }\n\n static contextTypes = {\n curationMode: PropTypes.bool,\n loadAlbumPhotos: PropTypes.func,\n canManageTags: PropTypes.bool,\n eventCoverPickerMode: PropTypes.bool,\n selectCoverPhoto: PropTypes.func,\n getPhotoId: PropTypes.func,\n setPhotos: PropTypes.func,\n visiblePhotos: PropTypes.array,\n pageConfiguration: PropTypes.shape({\n primaryColor: PropTypes.string,\n secondaryColor: PropTypes.string,\n accentColor: PropTypes.string\n }),\n isEmbed: PropTypes.bool\n };\n\n buildPhotosForGallery = (photos: any[], isSelected: Function) => {\n this.setState(\n {\n photos: photos.map(photo => {\n return {\n ...photo,\n ...(photo.timeTaken\n ? {\n tags: [\n {\n title: \"Time\",\n value: photo.timeTaken\n }\n ]\n }\n : {}),\n isSelected: isSelected(photo),\n src: \"\",\n hidden: photo.hidden,\n disableContextMenu: true,\n isFavorite: photo.favorite\n };\n })\n },\n () => {\n this.context.canManageTags &&\n this.context.setPhotos(\n _.uniqBy(\n [...this.state.photos, ...this.context.visiblePhotos],\n \"id\"\n )\n );\n }\n );\n };\n\n componentDidMount() {\n if (this.props.filteredResult) {\n this.buildPhotosForGallery(this.props.photos, (photo: { id: any }) => {\n if (this.context.eventCoverPickerMode) {\n return photo.id === this.props.event.coverPhotoId;\n } else\n return _.includes(\n this.context.canManageTags && this.props.curationMode\n ? this.props.listOfMediaId.map(item => item.id)\n : this.props.cart && this.props.cart.photos,\n photo.id\n );\n });\n }\n }\n\n componentDidUpdate(prevProps: any, prevState: any) {\n if (\n this.props.photos !== prevProps.photos ||\n this.props.loadingPhotos !== prevProps.loadingPhotos ||\n this.state.showLightBox !== prevState.showLightBox ||\n this.state.photoIndex !== prevState.photoIndex ||\n (this.props.cart != null && prevProps.cart == null) ||\n (this.props.cart &&\n prevProps.cart &&\n this.props.cart.photos.length !== prevProps.cart.photos.length) ||\n (!this.props.cart && prevProps.cart) ||\n this.props.collapsibleGallery !== prevProps.collapsibleGallery ||\n this.props.expanded !== prevProps.expanded ||\n this.props.photos.length !== prevProps.photos.length ||\n // @ts-ignore\n this.props.event.coverPhotoId !== prevProps.event.coverPhotoId ||\n (this.context.canManageTags &&\n (this.props.listOfMediaId.length !== prevProps.listOfMediaId.length ||\n this.props.curationMode !== prevProps.curationMode))\n ) {\n this.buildPhotosForGallery(this.props.photos, (photo: { id: any }) => {\n if (this.context.eventCoverPickerMode) {\n return photo.id === this.props.event.coverPhotoId;\n } else\n return _.includes(\n this.context.canManageTags && this.props.curationMode\n ? this.props.listOfMediaId.map(item => item.id)\n : this.props.cart && this.props.cart.photos,\n photo.id\n );\n });\n if (this.props.photos !== prevProps.photos && this.props.filteredResult) {\n this.setState({ showLightBox: false });\n }\n }\n if (this.props.guestUserId !== prevProps.guestUserId) {\n this.setState({\n showLightBox: false\n });\n }\n }\n\n showLightBox = (index: number) => {\n if (index == -1) {\n this.setState({ showLightBox: false });\n return;\n }\n\n this.setState({ showLightBox: false }, () => {\n this.setState({\n showLightBox: true,\n photoIndex: index\n });\n });\n ahoy.track(\"photoView\", {\n photo_id: this.state.photos[index].id,\n album_id: this.props.album.id,\n event_id: this.props.event.id\n });\n\n if (this.state.photos[index + 1] == undefined) {\n this.props.loadMorePhotos();\n }\n };\n\n closeLightBox = () => {\n this.setState({\n showLightBox: false\n });\n };\n\n imagesToPrefetch = () => {\n if (this.props.photos.length > 0) {\n return [\n this.props.photos[0].watermarkedImg,\n this.props.photos[0].zoomImg\n ];\n } else {\n return [];\n }\n };\n\n contextMenu = (e: any) => {\n e.preventDefault();\n return false;\n };\n\n toggleEventCoverSelection = (photo: any) => {\n if (photo.isSelected) {\n this.context.selectCoverPhoto(null);\n } else this.context.selectCoverPhoto(photo.id);\n };\n\n updatePhotoInCart = (photo: any) => {\n if (photo.isSelected) {\n this.props.removePhotoFromCart(photo);\n Telemetry.track(\"event-gallery:remove-from-cart\", {\n eventId: this.props.event.id,\n eventName: this.props.event.name,\n photoId: photo.id,\n cartId: this.context.cartId,\n source: \"thumbnail\",\n embeddedMode: this.context.isEmbed\n });\n } else {\n this.props.addPhotoToCart(photo);\n Telemetry.track(\"event-gallery:add-to-cart\", {\n eventId: this.props.event.id,\n eventName: this.props.event.name,\n photoId: photo.id,\n cartId: this.props.cart?.id,\n source: \"thumbnail\",\n embeddedMode: this.context.isEmbed\n });\n }\n };\n\n handleImageSelect = ({ photo, index }: { photo: any; index: number }) => {\n if (this.context.eventCoverPickerMode) {\n this.toggleEventCoverSelection(photo);\n } else {\n this.context.canManageTags && this.props.curationMode\n ? this.context.getPhotoId(photo, index, this.state.photos)\n : this.updatePhotoInCart(photo);\n }\n };\n\n render() {\n if (this.props.loadingPhotos) {\n return (\n
\n \"\"\n
\n );\n } else {\n return (\n \n
\n {\n if (this.context.eventCoverPickerMode) {\n this.toggleEventCoverSelection(this.state.photos[index]);\n } else {\n this.showLightBox(index);\n ahoy.track(\"albumInteraction\", {\n secondary_type: \"openedPhotoLightbox\",\n album_id: this.props.album.id,\n event_id: this.props.event.id\n });\n }\n Telemetry.track(\"event-gallery:opened-lightbox\", {\n eventId: this.props.event.id,\n eventName: this.props.event.name,\n photoId: this.props.photos[index].id,\n embeddedMode: this.context.isEmbed\n });\n }}\n tagStyle={tagStyle}\n thumbnailImageComponent={(props: any) => {\n return (\n \n );\n }}\n tileViewportStyle={customThumbViewportStyle}\n thumbnailStyle={customThumbStyle}\n selectedIconColor={\n this.context.pageConfiguration.primaryColor || \"#34b2a7\"\n }\n enableKeyboardInput={true}\n onContextMenu={this.contextMenu}\n //@ts-ignore\n selectCheckboxAlwaysVisible={Modernizr.mq(\n \"only screen and (max-width: 768px)\"\n )}\n onRender={this.props.galleryRowsRendered}\n />\n {this.state.showLightBox ? (\n \n 0\n }\n showFavIcon={true}\n addToCart={this.props.addPhotoToCart}\n removeFromCart={this.props.removePhotoFromCart}\n eventClickable={undefined}\n cartId={undefined}\n isAuthorizedForDirectDownloads={undefined}\n primaryColor={undefined}\n userId={undefined}\n isEmbed={undefined}\n photoSaved={undefined}\n curationApiCalled={this.state.curationApiCalled}\n setCurationApiCalled={(val: boolean) =>\n this.setState({ curationApiCalled: val })\n }\n trackTelemetry={true}\n parentName={\"event-gallery-lightbox\"}\n />\n \n ) : null}\n
\n\n \n \n );\n }\n }\n}\n\nconst tagStyle = {\n display: \"inline\",\n padding: \".2em .6em .3em\",\n fontSize: \"60%\",\n fontWeight: \"600\",\n lineHeight: \"1\",\n color: \"#FFF\",\n background: \"rgba(7,36,22,.6)\",\n textAlign: \"center\",\n whiteSpace: \"nowrap\",\n verticalAlign: \"baseline\",\n borderRadius: \".25em\"\n};\n\nconst customThumbViewportStyle = function (this: any) {\n return {\n width: this.props.item.vwidth,\n height: this.props.height,\n overflow: \"hidden\"\n };\n};\n\nconst customThumbStyle = function (this: any) {\n return {\n cursor: \"pointer\",\n width: this.props.item.scaletwidth,\n height: this.props.height,\n marginLeft: this.props.item.marginLeft,\n marginTop: 0,\n WebkitTouchCallout: \"none\"\n };\n};\n\nexport default Photos;\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport ajax from \"superagent\";\nimport _ from \"lodash\";\nimport ahoy from \"ahoy.js\";\nimport Photos from \"./Photos\";\nimport { withCartIdParam } from \"../../../../utils/BrowserHelper\";\nimport { Album as AlbumType, Cart } from \"../types\";\nimport { Event } from \"../types\";\nimport { LightBoxViewCart } from \"../vectors/AddToCartIcon\";\nimport ContrastForegroundUtility from \"../../../../utils/ContrastForegroundUtility\";\n\ninterface AlbumProps {\n event: Event;\n album: AlbumType;\n filters: {\n albums: Array<{}>;\n photographers: Array<{}>;\n photoTime: {\n minuteFrom: number;\n minuteTo: number;\n active: boolean;\n };\n referenceImage?: string | null;\n favoritesSelected: boolean;\n };\n addPhotoToCart: Function;\n removePhotoFromCart: Function;\n cart?: {\n photos: Array<{}>;\n id: number;\n };\n loadAPIFlag: string;\n userInputPassword: string | null;\n albumPhotosVisibility: Function;\n curationMode: boolean;\n listOfMediaId: Array<{ id: number; hidden: boolean }>;\n filteredAlbums: any;\n userId: number;\n userSignedIn: boolean;\n guestUserId: null | number;\n}\n\ninterface AlbumState {\n photos: any;\n nextPage: number;\n loadingAlbums: boolean;\n loadingPhotos: boolean;\n hideAlbum: boolean;\n expanded: boolean;\n collapsibleGallery: boolean;\n galleryRows: any;\n totalCount?: number;\n showBulkTagging: boolean;\n listOfMediaId: Array<{ id: number; hidden: boolean }>;\n resetState: boolean;\n}\n\nclass Album extends Component {\n endMarkerEl(endMarkerEl: any) {\n throw new Error(\"Method not implemented.\");\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 }),\n pageConfiguration: PropTypes.shape({\n primaryColor: PropTypes.string,\n secondaryColor: PropTypes.string,\n accentColor: PropTypes.string\n }),\n eventCoverPickerMode: PropTypes.bool,\n cartId: PropTypes.number,\n isEmbed: PropTypes.bool,\n callFunction: PropTypes.func,\n hidePhotographersFilter: PropTypes.bool,\n clearMediaIds: PropTypes.func,\n canManageTags: PropTypes.bool,\n visiblePhotos: PropTypes.array,\n reset: PropTypes.bool,\n resetPhotos: PropTypes.func,\n setPhotos: PropTypes.func,\n curationMode: PropTypes.bool\n };\n albumTopRef: React.LegacyRef | undefined;\n observer: any;\n\n constructor(props: AlbumProps) {\n super(props);\n\n this.state = {\n photos: [],\n nextPage: 1,\n loadingAlbums: true,\n loadingPhotos: false,\n hideAlbum: false,\n expanded: false,\n collapsibleGallery: false,\n galleryRows: 0,\n totalCount: undefined,\n showBulkTagging: false,\n listOfMediaId: this.props.listOfMediaId,\n resetState: false\n };\n\n this.albumTopRef = React.createRef();\n }\n\n componentDidMount() {\n this.setState({\n resetState: this.context.reset\n });\n this.loadPhotos(this.props.filters, true);\n }\n\n async componentDidUpdate(\n prevProps: {\n listOfMediaId: { id: number; hidden: boolean }[];\n guestUserId: null | number;\n },\n prevState: { resetState: boolean }\n ) {\n if (\n (this.context.canManageTags &&\n prevProps.listOfMediaId != this.props.listOfMediaId) ||\n prevState.resetState != this.context.reset\n ) {\n this.setState(\n {\n listOfMediaId: this.props.listOfMediaId,\n resetState: this.context.reset\n },\n async () => {\n if (this.context.curationMode && this.state.resetState === true) {\n if (!this.state.loadingAlbums)\n await this.loadPhotos(this.props.filters, true);\n }\n }\n );\n }\n if (this.props.guestUserId !== prevProps.guestUserId) {\n if (!this.state.loadingAlbums) {\n this.loadPhotos(this.props.filters, true);\n }\n }\n }\n\n componentWillUnmount() {\n if (this.observer) this.observer.disconnect();\n }\n\n photosRequest = async (\n url: string,\n filters: {\n albums: Array<{}>;\n photoTime: { active: any; minuteFrom: any; minuteTo: any };\n referenceImage?: any;\n photoText?: any;\n favoritesSelected?: boolean;\n },\n page: number\n ) => {\n let req = ajax\n .get(this.props.cart ? withCartIdParam(url, this.props.cart!.id) : url)\n .query({\n page: page\n });\n\n if (this.props.userInputPassword !== \"\") {\n req = req.query({\n event_password: this.props.userInputPassword\n });\n }\n\n if (filters.photoTime.active) {\n req = req.query({\n minute_from: filters.photoTime.minuteFrom,\n minute_to: filters.photoTime.minuteTo\n });\n }\n\n if (filters.referenceImage) {\n req = req.query({\n reference_image: filters.referenceImage\n });\n }\n\n if (filters.photoText) {\n req = req.query({\n photo_text: filters.photoText\n });\n }\n if (this.props.userSignedIn) {\n req = req.query({\n user_id: this.props.userId\n });\n } else if (this.props.guestUserId) {\n req = req.query({\n user_id: this.props.guestUserId\n });\n }\n if (filters.favoritesSelected) {\n req = req.query({\n favorite: true\n });\n }\n\n return req;\n };\n\n loadPhotos = async (\n filters: {\n albums: Array<{}>;\n photoTime:\n | { active: any; minuteFrom: any; minuteTo: any }\n | { minuteFrom: number; minuteTo: number; active: boolean };\n referenceImage?: any;\n photoText?: any;\n },\n reset = false\n ) => {\n if (reset) {\n this.setState({\n loadingAlbums: true,\n hideAlbum: false\n });\n }\n\n this.props.albumPhotosVisibility(true);\n return await this.photosRequest(\n this.props.album.links.photos,\n filters,\n reset ? 1 : this.state.nextPage\n )\n .then(response => {\n if (response.status == 200) {\n this.setState(\n {\n photos: _.concat(\n reset ? [] : this.state.photos,\n response.body.photos\n ),\n nextPage: response.body.meta.nextPage,\n totalCount: response.body.meta.totalCount,\n loadingAlbums: false,\n loadingPhotos: false,\n hideAlbum: response.body.meta.totalCount == 0\n },\n () => {\n if (this.context.canManageTags) {\n this.context.setPhotos(\n _.uniqBy(\n [...this.context.visiblePhotos, ...this.state.photos],\n \"id\"\n )\n );\n }\n if (this.context.curationMode) {\n this.context.resetPhotos();\n }\n this.props.albumPhotosVisibility(!this.state.hideAlbum);\n }\n );\n }\n })\n .catch(err => console.log(err));\n };\n\n updateFavorites = (photoId: number) => {\n const updatedPhotos = this.state.photos.map((photo: any) =>\n photo.id === photoId ? { ...photo, favorite: !photo.favorite } : photo\n );\n this.setState({ photos: updatedPhotos });\n };\n\n hasMorePhotos = () => this.state.nextPage != null;\n\n photosCount = () =>\n this.props.cart && this.props.cart.photos\n ? this.props.cart!.photos.length\n : 0;\n\n expandAlbum = () => {\n this.setState({ expanded: true }, () => {\n this.observer = new IntersectionObserver(\n (entries, observer) => {\n entries.forEach(entry => {\n if (entry.intersectionRatio != 0 && this.hasMorePhotos()) {\n this.loadPhotos(this.props.filters);\n this.setState({ loadingPhotos: true });\n }\n });\n },\n { rootMargin: \"400px 0px 0px 0px\" }\n );\n this.observer.observe(this.endMarkerEl);\n ahoy.track(\"albumInteraction\", {\n secondary_type: \"expandAlbum\",\n album_id: this.props.album.id,\n event_id: this.props.event.id\n });\n });\n };\n\n closeAlbum = () => {\n $(\"html, body\").animate(\n {\n //@ts-ignore\n scrollTop: $(this.albumTopRef.current).offset().top - 70\n },\n 500\n );\n this.observer.disconnect();\n this.setState({\n expanded: false,\n photos: _.take(this.state.photos, 100),\n nextPage: 2\n });\n };\n\n footer = () => {\n if (\n this.state.galleryRows <= 3 ||\n (this.state.galleryRows.rows && this.state.galleryRows.rows <= 3)\n )\n return null;\n\n return (\n \n {\n e.preventDefault();\n this.state.expanded ? this.closeAlbum() : this.expandAlbum();\n }}\n >\n {this.state.loadingPhotos ? (\n \n LOADING \n \n ) : this.state.expanded ? (\n \n SEE LESS \n \n ) : (\n \n SEE MORE \n \n )}\n \n \n );\n };\n\n render() {\n if (this.state.hideAlbum) return null;\n else\n return (\n
\n \n
\n

{this.props.album.name}

\n
\n
\n {!this.context.hidePhotographersFilter && (\n \n

\n By{\" \"}\n \n {this.props.album.photographerName}\n \n

{\" \"}\n {\" \"}\n
\n )}\n

\n {this.state.photos.length} of {this.state.totalCount} photos\n

\n
\n
\n
\n {!this.context.eventCoverPickerMode && (\n
\n 0 ? \" secondary-btn\" : \"disable-btn\")\n }\n style={{\n pointerEvents: this.photosCount() > 0 ? \"initial\" : \"none\"\n }}\n >\n \n \n  {this.photosCount()}{\" \"}\n | View Cart\n \n \n
\n )}\n
\n
\n {\n if (this.hasMorePhotos()) {\n this.loadPhotos(this.props.filters);\n }\n }}\n updateAlbum={(photoId: number) => {\n this.updateFavorites(photoId);\n }}\n collapsibleGallery={\n this.state.galleryRows > 3 ||\n (this.state.galleryRows.rows && this.state.galleryRows.rows > 3)\n }\n expanded={this.state.expanded}\n galleryRowsRendered={(rows: any) =>\n this.setState(prevState =>\n prevState.galleryRows != rows ? { galleryRows: rows } : null\n )\n }\n listOfMediaId={this.props.listOfMediaId}\n curationMode={this.props.curationMode}\n userId={this.props.userId}\n userSignedIn={this.props.userSignedIn}\n guestUserId={this.props.guestUserId}\n filteredResult={false}\n />\n {\n this.endMarkerEl = el;\n }}\n >
\n {this.footer()}\n \n \n );\n }\n}\n\nexport default Album;\n","import React from \"react\";\nimport PropTypes, { checkPropTypes } from \"prop-types\";\nimport ajax from \"superagent\";\n\nconst lockicon = require(\"../../styles/lock-dark.svg\");\nimport { Event } from \"../types\";\n\ninterface PasswordProtectedProps {\n event: Event;\n unlockEvent: Function;\n updateUserInputPassword: Function;\n authenticateEventPasswordAPI?: string;\n sideBarOpenStyling: Function;\n}\n\ninterface PasswordProtectedState {\n loader: boolean;\n invalidPassword?: boolean;\n}\n\nclass PasswordProtected extends React.Component<\n PasswordProtectedProps,\n PasswordProtectedState\n> {\n static contextTypes = {\n eventPassword: PropTypes.string,\n currentUserHasPasswordAccess: PropTypes.bool,\n authenticateEventPasswordAPI: PropTypes.string\n };\n\n eventPasswordInput: React.RefObject | null;\n constructor(props: PasswordProtectedProps) {\n super(props);\n this.state = {\n loader: false,\n invalidPassword: false\n };\n this.eventPasswordInput = React.createRef();\n }\n\n passwordFormSubmit = (e: any) => {\n e.preventDefault();\n this.setState({ loader: true }, () => this.authenticatePassword());\n };\n\n authenticatePassword = () => {\n ajax\n .get(this.context.authenticateEventPasswordAPI)\n .query({\n event_password: this.eventPasswordInput?.current?.value\n })\n .then(res => {\n if (res.body.authenticated) {\n this.props.updateUserInputPassword(\n this.eventPasswordInput?.current?.value\n );\n this.props.unlockEvent();\n this.updateInvalidPassword(false);\n } else {\n this.updateInvalidPassword(true);\n }\n });\n };\n\n updateInvalidPassword = (invalid: boolean) => {\n this.setState({ invalidPassword: invalid, loader: false });\n };\n\n mailtoEventOrganiser = () => {\n return (\n `mailto:${this.props.event.organiserEmail}?cc=support@geosnapshot.com&subject=Password request for ${this.props.event.name}&body=` +\n encodeURIComponent(\n `Hi ${this.props.event.organiserFirstName}, I’m requesting the password for the event ${this.props.event.name} could you please reply to this email with the password so I can view and purchase the photos.`\n )\n );\n };\n\n render() {\n return (\n
\n
\n
\n \n This event is protected\n
\n

Please enter the password provided by the Event Organiser

\n
\n \n \n {this.state.invalidPassword ? (\n \n The password you've given is incorrect.\n \n ) : null}\n \n {!this.state.loader ? (\n Unlock\n ) : (\n <>\n Please wait \n \n \n )}\n \n
\n \n

\n Contact the{\" \"}\n Event Organiser to get the\n password\n

\n
\n \n );\n }\n}\n\nexport default PasswordProtected;\n","import React, { Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport ajax from \"superagent\";\nimport \"../styles/customer-email-styles.css\";\nconst largeWaitingClip = require(\"../styles/clip-waiting.svg\");\nconst bannerUploadingClip = require(\"../styles/uploading-full.svg\");\n\ninterface CollectCustomerEmailProps {\n registerCustomerLeadAPI: string;\n userSignedIn: boolean;\n userEmail: string;\n banner: boolean;\n}\n\ninterface CollectCustomerEmailState {\n submitted: boolean;\n collapseBanner: boolean;\n}\n\nclass CollectCustomerEmail extends React.Component<\n CollectCustomerEmailProps,\n CollectCustomerEmailState\n> {\n customerEmailInput: React.RefObject | null;\n constructor(props: CollectCustomerEmailProps) {\n super(props);\n this.customerEmailInput = React.createRef();\n this.state = {\n submitted: false,\n collapseBanner: false\n };\n }\n static contextTypes = {\n cartId: PropTypes.number,\n eventCoverPickerMode: PropTypes.bool\n };\n\n registerCustomerEmail = () => {\n if (\n /^([\\w.%+-]+)@([\\w-]+\\.)+([\\w]{2,})$/i.test(\n //@ts-ignore\n this.customerEmailInput.current.value\n )\n ) {\n ajax\n .post(this.props.registerCustomerLeadAPI)\n .send({\n //@ts-ignore\n email: this.customerEmailInput.current.value,\n cart_id: this.context.cartId\n })\n .then(() => {\n this.setState({ submitted: true });\n setTimeout(() => this.setState({ collapseBanner: true }), 2000);\n })\n .catch(error => {\n //@ts-ignore\n toastr.error(error.response.body.error);\n });\n } else {\n //@ts-ignore\n toastr.error(\"The email you've entered is invalid.\");\n }\n };\n\n renderCustomerEmailPrompt = () => {\n return this.props.userSignedIn ? (\n
\n \n \n Notify me\n \n
\n ) : (\n
\n
\n \n\n \n Notify Me\n \n
\n
\n );\n };\n\n renderFullSize = () => (\n \n {this.context.eventCoverPickerMode ? (\n
\n \n

No photos here to select

\n
\n ) : (\n
\n \n

Photos are not available yet.

\n

Would you like to be notified by email when they are ready?

\n {!this.state.submitted ? (\n this.renderCustomerEmailPrompt()\n ) : (\n
\n Thanks, we'll send you an email once the photos are ready.\n
\n )}{\" \"}\n
\n )}\n
\n );\n\n renderBanner = () => (\n \n
\n \n
\n

Photos are still being uploaded to this event.

\n

\n You can get notified when all photos have been uploaded by providing\n your email\n

\n
\n {!this.state.submitted ? (\n this.renderCustomerEmailPrompt()\n ) : (\n
\n Thanks, we'll send you an email once the photos are ready.\n
\n )}\n this.setState({ collapseBanner: true })}\n >\n ×\n \n
\n \n );\n\n render() {\n if (this.props.banner) return this.renderBanner();\n else return this.renderFullSize();\n }\n}\n\nexport default CollectCustomerEmail;\n","import React, { useEffect, useState } from \"react\";\nimport SelfieUploadPopup from \"../../../MasterImageSearch/components/SelfieUploadPopup/index\";\nimport { SelfieSearchContext } from \"../../../MasterImageSearch/components/SelfieSearchContext\";\n\nconst lockicon = require(\"../../styles/lock-dark.svg\");\nconst selfieIllus = require(\"../../styles/selfi-illustration.svg\");\n\nconst PrivateScreen = ({\n selfieSearchS3Bucket,\n updateFilters,\n sideBarOpenStyling,\n showPrepaidClearCartWarning,\n promptClearPrepaidCart,\n hideUploadSelfie,\n trackPrivateEventSelfieUploadFlow,\n trackSelfieFilterApplied,\n pageConfiguration\n}: {\n selfieSearchS3Bucket: any;\n updateFilters: any;\n sideBarOpenStyling: Function;\n promptClearPrepaidCart: Function;\n showPrepaidClearCartWarning: boolean;\n hideUploadSelfie: boolean;\n trackPrivateEventSelfieUploadFlow: (trackEventName: string) => void;\n trackSelfieFilterApplied: () => void;\n pageConfiguration: {\n primaryColor: string;\n secondaryColor: string;\n accentColor: string;\n };\n}) => {\n const [selfieUploadPopup, toggleSelfieUploadPopup] = useState(false);\n\n return (\n
\n
\n
\n \n \n It's easy to find your photos!\n \n
\n

\n Simply upload a selfie to view your matching photos\n instantly.\n

\n {\n trackPrivateEventSelfieUploadFlow(\n \"event-gallery:private-event:selfie-button-clicked\"\n );\n showPrepaidClearCartWarning\n ? promptClearPrepaidCart()\n : toggleSelfieUploadPopup(true);\n }}\n >\n {hideUploadSelfie ? \"Take\" : \"Upload\"} a Selfie\n \n {selfieUploadPopup && (\n \n {\n updateFilters(\n {\n referenceImage: imageURL\n },\n false\n );\n toggleSelfieUploadPopup(false);\n trackPrivateEventSelfieUploadFlow(\n \"event-gallery:private-event:selfie-uploaded\"\n );\n trackSelfieFilterApplied();\n }}\n closePopup={() => {\n toggleSelfieUploadPopup(false);\n }}\n hideUploadSelfie={hideUploadSelfie}\n />\n \n )}\n
\n
\n );\n};\n\nexport default PrivateScreen;\n","import React, { useState, useEffect } from \"react\";\nimport _ from \"lodash\";\nimport Photos from \"./Photos\";\nimport { withCartIdParam } from \"../../../../utils/BrowserHelper\";\nimport { LightBoxViewCart } from \"../vectors/AddToCartIcon\";\nimport ContrastForegroundUtility from \"../../../../utils/ContrastForegroundUtility\";\nimport Telemetry from \"../../../../utils/rudderstackAnalytics\";\nimport { Cart } from \"../../components/types\";\n\ninterface FilteredResultProps {\n album: any;\n event: any;\n cart: any;\n addPhotoToCart: (photo: any) => void;\n removePhotoFromCart: Function;\n loadingAlbums: boolean;\n listOfMediaId: { id: number; hidden: boolean }[];\n curationMode: boolean;\n userId: number;\n userSignedIn: boolean;\n guestUserId: number | null;\n filteredPhotos: any;\n eventCoverPickerMode: boolean;\n isEmbed: boolean;\n cartId: number;\n loadPhotos: Function;\n filterSelections: object;\n reset: boolean;\n addAllToCart: Function;\n activeFilters: Function;\n pageConfiguration: { primaryColor: string };\n}\n\nconst FilteredResult: React.FC = ({\n album,\n event,\n cart,\n addPhotoToCart,\n removePhotoFromCart,\n loadingAlbums,\n listOfMediaId,\n curationMode,\n userId,\n userSignedIn,\n guestUserId,\n filteredPhotos,\n eventCoverPickerMode,\n isEmbed,\n cartId,\n loadPhotos,\n filterSelections,\n reset,\n addAllToCart,\n activeFilters,\n pageConfiguration\n}: FilteredResultProps) => {\n const [photos, setPhotos] = useState(filteredPhotos);\n const [isLoading, setIsLoading] = useState(false);\n\n const updateFavorites = (photoId: number) => {\n const updatedPhotos = photos.filter(\n (photo: any) => photo.id != photoId && photo\n );\n setPhotos(updatedPhotos);\n };\n\n useEffect(() => {\n if (reset) {\n loadPhotos(filterSelections, true);\n }\n }, [reset]);\n\n const photosCount = () => (cart && cart.photos ? cart!.photos.length : 0);\n\n if (photos.length == 0) {\n return (\n
\n
\n There are no photos matching your filters. Clear filters and try\n again.\n
\n
\n );\n } else {\n return (\n
\n \n \n

Filtered Photos

\n
\n
\n {!curationMode && (\n {\n setIsLoading(true);\n addAllToCart(activeFilters(), photos, (isLoading: boolean) =>\n setIsLoading(isLoading)\n );\n }}\n style={{ marginRight: 10 }}\n disabled={isLoading}\n >\n {\" \"}\n Add all to cart\n {isLoading ? (\n \n ) : null}\n \n )}\n {!eventCoverPickerMode && (\n 0 ? \" secondary-btn\" : \"disable-btn\")\n }\n style={{\n pointerEvents: photosCount() > 0 ? \"initial\" : \"none\"\n }}\n >\n \n \n  {photosCount()}\n \n \n )}\n
\n
\n
\n {}}\n updateAlbum={updateFavorites}\n collapsibleGallery={true}\n expanded={true}\n galleryRowsRendered={() => {}}\n listOfMediaId={listOfMediaId}\n curationMode={curationMode}\n userId={userId}\n userSignedIn={userSignedIn}\n guestUserId={guestUserId}\n filteredResult={true}\n />\n
\n \n );\n }\n};\n\nexport default FilteredResult;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport Album from \"./Album\";\nimport PasswordProtected from \"./PasswordProtected\";\nimport _ from \"lodash\";\nimport LazyLoad from \"react-lazyload\";\nimport CollectCustomerEmail from \"../CollectCustomerEmail\";\nimport PrivateScreen from \"./PrivateScreen\";\nimport ajax from \"superagent\";\nimport {\n setCookie,\n getCookie,\n withCartIdParam\n} from \"../../../../utils/BrowserHelper\";\nimport { Album as AlbumType, Event } from \"../types\";\nimport FilteredResult from \"./FilteredResult\";\nconst gssNewLoader = require(\"../../../../assets/gss-loader.gif\");\nimport Telemetry from \"../../../../utils/rudderstackAnalytics\";\nimport { Cart } from \"../../components/types\";\n\ninterface AlbumsContainerProps {\n event: Event;\n photosAvailable: boolean;\n albums: AlbumType[];\n filterSelections: {\n albums: Array<{}>;\n photographers: Array<{}>;\n photoTime: {\n minuteFrom: number;\n minuteTo: number;\n active: boolean;\n };\n referenceImage?: string | null;\n favoritesSelected: boolean;\n };\n addPhotoToCart: (photo: any) => void;\n removePhotoFromCart: Function;\n cart?: {\n photos: Array<{}>;\n id: number;\n };\n discountMessage: string;\n registerCustomerLeadAPI: string;\n userSignedIn: boolean;\n userId: number;\n userEmail: string;\n updateFilters: Function;\n unlockedPrivateEvent: boolean;\n sidebarOpen: boolean;\n curationMode: boolean;\n listOfMediaId: Array<{ id: number; hidden: boolean }>;\n guestUserId: null | number;\n activeFilters: Function;\n}\n\ninterface AlbumsContainerState {\n loadingAlbums: boolean;\n authenticated: boolean;\n albumPhotosVisibility: {};\n keyUpdateFlag: boolean;\n filteredAlbums: {\n id: number;\n }[];\n userInputPassword: string;\n filteredPhotos: any;\n}\n\nclass AlbumsContainer extends React.Component<\n AlbumsContainerProps,\n AlbumsContainerState\n> {\n static contextTypes = {\n iosEmbed: PropTypes.bool,\n uploadInProgress: PropTypes.bool,\n prepaidCustomer: PropTypes.shape({\n firstName: PropTypes.string,\n lastName: PropTypes.string,\n email: PropTypes.string,\n eventId: PropTypes.number\n }),\n pageConfiguration: PropTypes.shape({\n primaryColor: PropTypes.string,\n secondaryColor: PropTypes.string,\n accentColor: PropTypes.string\n }),\n selfieSearchS3Bucket: PropTypes.string,\n bypassPasswordPrompt: PropTypes.bool,\n eventPassword: PropTypes.string,\n reset: PropTypes.bool,\n authenticateEventPasswordAPI: PropTypes.string,\n showPrepaidClearCartWarning: PropTypes.bool,\n promptClearPrepaidCart: PropTypes.func,\n selfieUploadPopup: PropTypes.bool,\n eventCoverPickerMode: PropTypes.bool,\n isEmbed: PropTypes.bool,\n cartId: PropTypes.number,\n resetPhotos: PropTypes.func,\n addAllToCart: PropTypes.func,\n setPhotos: PropTypes.func,\n hideUploadSelfie: PropTypes.bool,\n authenticationDone: PropTypes.func\n };\n\n constructor(props: AlbumsContainerProps) {\n super(props);\n\n this.state = {\n loadingAlbums: true,\n authenticated: false,\n albumPhotosVisibility: {},\n keyUpdateFlag: true,\n filteredAlbums: [],\n userInputPassword: \"\",\n filteredPhotos: []\n };\n }\n\n componentDidMount() {\n if (this.props.event.isProtected) this.authenticateEvent();\n else this.setState({ loadingAlbums: false });\n }\n\n componentDidUpdate(prevProps: any, prevState: any) {\n const albumsChanged = this.props.albums !== prevProps.albums;\n const filterSelectionsChanged =\n this.props.filterSelections !== prevProps.filterSelections;\n const isAuthenticated =\n this.state.authenticated != prevState.authenticated ||\n this.state.authenticated;\n const isProtectedAndAuthenticated =\n (this.props.event.isProtected && isAuthenticated) ||\n !this.props.event.isProtected;\n const hasAuthenticationChanged =\n this.state.authenticated != prevState.authenticated;\n\n const shouldReloadAlbums =\n (albumsChanged && isProtectedAndAuthenticated) ||\n (filterSelectionsChanged && isProtectedAndAuthenticated) ||\n hasAuthenticationChanged;\n\n if (shouldReloadAlbums) {\n this.updateAlbumPhotosVisibility();\n this.setFilteredAlbums();\n\n if (this.props.filterSelections.favoritesSelected) {\n this.handleFavoritesSelected();\n }\n }\n }\n updateAlbumPhotosVisibility = () => {\n const { albums, filterSelections } = this.props;\n const albumPhotosVisibility = albums.reduce(\n (acc, album) => ({\n ...acc,\n [album.id]:\n filterSelections.albums.length > 0\n ? _.includes(filterSelections.albums, album.id)\n : true\n }),\n {}\n );\n this.setState({\n albumPhotosVisibility,\n keyUpdateFlag: !this.state.keyUpdateFlag\n });\n };\n\n trackPrivateEventSelfieUploadFlow = (trackEventName: string) => {\n Telemetry.track(trackEventName, {\n eventId: this.props.event.id,\n eventName: this.props.event.name,\n eoUserId: this.props.event.eoUserId\n });\n };\n trackSelfieFilterApplied = () => {\n Telemetry.track(\"event-gallery:filter-applied\", {\n eventId: this.props.event.id,\n eventName: this.props.event.name,\n filterType: \"selfie\",\n embeddedMode: this.context.isEmbed\n });\n };\n\n handleFavoritesSelected = () => {\n this.setState({ loadingAlbums: true });\n this.loadPhotos(this.props.filterSelections, true);\n };\n\n toggleKey = (albumId: number, eventId: number) => {\n return this.state.keyUpdateFlag\n ? JSON.stringify(albumId)\n : JSON.stringify(albumId).concat(JSON.stringify(eventId));\n };\n\n unlockProtectedEvent = () => {\n this.setState(\n {\n authenticated: true\n },\n () => (\n this.context.authenticationDone && this.context.authenticationDone(),\n setCookie(\n \"authenticated_event_password\",\n `${this.state.userInputPassword}`\n )\n )\n );\n };\n\n authenticateEvent = () => {\n const storedEventPassword = getCookie(\"authenticated_event_password\");\n\n ajax\n .get(this.context.authenticateEventPasswordAPI)\n .query({\n event_password: storedEventPassword\n })\n .then((res: any) => {\n let userAuthenticated =\n res.body.authenticated || !!this.context.bypassPasswordPrompt;\n\n this.setState(\n {\n userInputPassword: this.props.event.isProtected\n ? userAuthenticated\n ? getCookie(\"authenticated_event_password\") ||\n this.context.eventPassword\n : \"\"\n : \"\",\n authenticated: this.props.event.isProtected\n ? userAuthenticated\n : true\n },\n () => {\n this.state.authenticated &&\n this.context.authenticationDone &&\n this.context.authenticationDone();\n this.setState({ loadingAlbums: false });\n }\n );\n });\n };\n\n setFilteredAlbums = () => {\n if (this.props.filterSelections.albums.length > 0) {\n this.setState({\n filteredAlbums: _.filter(this.props.albums, album => {\n return _.includes(this.props.filterSelections.albums, album.id);\n })\n });\n } else if (this.props.filterSelections.photographers.length > 0) {\n this.setState({\n filteredAlbums: _.filter(this.props.albums, album => {\n return _.includes(\n this.props.filterSelections.photographers,\n album.photographerId\n );\n })\n });\n } else {\n this.setState({ filteredAlbums: this.props.albums });\n }\n };\n\n sideBarOpenStyling = (cssClass: string) =>\n this.props.sidebarOpen ? `col-md-9 ${cssClass}` : `col-md-11 ${cssClass}`;\n\n noAlbumPhotosVisible = () =>\n _.every(_.values(this.state.albumPhotosVisibility), a => !a);\n\n showPasswordComponent = () =>\n this.props.event.isProtected && !this.state.authenticated;\n\n renderCustomerLeadCollectionBanner = () =>\n this.context.uploadInProgress && (\n \n );\n\n photosRequest = async (\n url: string,\n filters: {\n albums: Array<{}>;\n photoTime: { active: any; minuteFrom: any; minuteTo: any };\n referenceImage?: any;\n photoText?: any;\n favoritesSelected?: boolean;\n },\n page: number\n ) => {\n let req = ajax\n .get(this.props.cart ? withCartIdParam(url, this.props.cart!.id) : url)\n .query({\n page: page\n });\n\n if (this.state.userInputPassword !== \"\") {\n req = req.query({\n event_password: this.state.userInputPassword\n });\n }\n\n if (filters.photoTime.active) {\n req = req.query({\n minute_from: filters.photoTime.minuteFrom,\n minute_to: filters.photoTime.minuteTo\n });\n }\n\n if (filters.referenceImage) {\n req = req.query({\n reference_image: filters.referenceImage\n });\n }\n\n if (filters.albums.length > 0) {\n const albumIdsString = filters.albums\n .map(albumId => `album_ids[]=${albumId}`)\n .join(\"&\");\n req = req.query(albumIdsString);\n }\n\n if (filters.photoText) {\n req = req.query({\n photo_text: filters.photoText\n });\n }\n if (this.props.userSignedIn) {\n req = req.query({\n user_id: this.props.userId\n });\n } else if (this.props.guestUserId) {\n req = req.query({\n user_id: this.props.guestUserId\n });\n }\n if (filters.favoritesSelected) {\n req = req.query({\n favorite: true\n });\n }\n\n return req;\n };\n\n loadPhotos = async (\n filters: {\n albums: Array<{}>;\n photoTime:\n | { active: any; minuteFrom: any; minuteTo: any }\n | { minuteFrom: number; minuteTo: number; active: boolean };\n referenceImage?: any;\n photoText?: any;\n },\n reset = false\n ) => {\n if (reset) {\n this.setState({\n loadingAlbums: true\n });\n }\n\n return await this.photosRequest(\n `/api/v1/events/${this.props.event.id}/photos`,\n filters,\n 1\n )\n .then(response => {\n if (response.status == 200) {\n this.setState(\n {\n filteredPhotos: _.concat(\n reset ? [] : this.state.filteredPhotos,\n response.body.photos\n ),\n loadingAlbums: false\n },\n () => {\n const visiblePhotos = this.context.visblePhotos\n ? [...this.context.visblePhotos]\n : [];\n this.context.setPhotos(\n _.uniqBy([...visiblePhotos, ...this.state.filteredPhotos], \"id\")\n );\n if (this.props.curationMode) {\n this.context.resetPhotos();\n }\n }\n );\n }\n })\n .catch(err => console.log(err));\n };\n\n render() {\n if (this.state.loadingAlbums) {\n return (\n
\n \n \n
\n \n );\n } else if (!this.props.photosAvailable) {\n return (\n
\n
\n \n
\n
\n );\n } else if (this.showPasswordComponent()) {\n return (\n <>\n
\n {this.renderCustomerLeadCollectionBanner()}\n
\n \n this.setState({ userInputPassword: password })\n }\n unlockEvent={() => this.unlockProtectedEvent()}\n sideBarOpenStyling={this.sideBarOpenStyling}\n />\n \n );\n } else if (!this.props.unlockedPrivateEvent) {\n return (\n <>\n
\n {this.renderCustomerLeadCollectionBanner()}\n
\n {!this.context.eventCoverPickerMode && (\n
\n )}\n \n \n );\n } else if (this.props.albums.length == 0) {\n return (\n
\n
\n Please wait while we are loading albums for you...\n
\n
\n );\n } else if (\n this.noAlbumPhotosVisible() ||\n (this.props.filterSelections.favoritesSelected &&\n this.state.filteredPhotos.length == 0)\n ) {\n return (\n
\n {this.renderCustomerLeadCollectionBanner()}\n
\n There are no photos matching your filters. Clear filters and try\n again.\n
\n
\n );\n } else if (this.props.filterSelections.favoritesSelected) {\n return (\n
\n {this.renderCustomerLeadCollectionBanner()}\n \n
\n );\n } else {\n return (\n
\n {this.renderCustomerLeadCollectionBanner()}\n {this.state.filteredAlbums.map((album: AlbumType) => (\n //@ts-ignore\n \n \n this.setState({\n albumPhotosVisibility: {\n ...this.state.albumPhotosVisibility,\n [album.id]: visible\n }\n })\n }\n userInputPassword={this.state.userInputPassword}\n loadAPIFlag={this.toggleKey(album.id, album.eventId)}\n curationMode={this.props.curationMode}\n listOfMediaId={this.props.listOfMediaId}\n userId={this.props.userId}\n userSignedIn={this.props.userSignedIn}\n guestUserId={this.props.guestUserId}\n />\n \n ))}\n
\n );\n }\n }\n}\n\nexport default AlbumsContainer;\n","import _ from \"lodash\";\nimport React from \"react\";\nimport ActiveIcon from \"../vectors/ActiveIcon\";\n\nconst selfieIcon = require(\"../../styles/selfie-icon.svg\");\nconst timeIcon = require(\"../../styles/time-icon.svg\");\nconst album = require(\"../../styles/album.svg\");\nconst bibIcon = require(\"../../styles/bib-icon.svg\");\nconst photographer = require(\"../../styles/photographer.svg\");\nconst favorite = require(\"../../styles/favourite.svg\");\nconst toggleOut = require(\"../../styles/toggleOut.svg\");\n\ninterface FilterSidebarProps {\n toggleSidebar: Function;\n collapseFilter: Function;\n pageConfig: {\n primaryColor: string;\n accentColor: string;\n };\n\n hidePhotographersFilter: boolean;\n enableFilterByText: boolean;\n albumModeID: string | null;\n filterSelections: {\n albums: Array<{}>;\n photographers: Array<{}>;\n photoTime: {\n minuteFrom: number;\n minuteTo: number;\n active: boolean;\n };\n photoText: string | null;\n referenceImage?: string | null;\n favoritesSelected: boolean;\n };\n}\n\nconst FilterSidebar = ({\n toggleSidebar,\n collapseFilter,\n pageConfig,\n hidePhotographersFilter,\n enableFilterByText,\n filterSelections,\n albumModeID\n}: FilterSidebarProps) => {\n const filters = [\n {\n name: \"Selfie\",\n icon: selfieIcon,\n isActive: filterSelections.referenceImage\n },\n {\n name: \"Favorites\",\n icon: favorite,\n isActive: filterSelections.favoritesSelected\n },\n {\n name: \"Time\",\n icon: timeIcon,\n isActive: filterSelections.photoTime.active\n },\n {\n name: \"Album\",\n icon: album,\n isActive: filterSelections.albums.length > 0\n },\n {\n name: \"Bib\",\n icon: bibIcon,\n isActive: filterSelections.photoText\n },\n {\n name: \"Photographer\",\n icon: photographer,\n isActive: filterSelections.photographers.length > 0\n }\n ];\n const updateFilters = () => {\n if (!enableFilterByText)\n _.remove(\n filters,\n (filter: { name: string; icon: any }) => filter.name == \"Bib\"\n );\n if (hidePhotographersFilter)\n _.remove(\n filters,\n (filter: { name: string; icon: any }) => filter.name == \"Photographer\"\n );\n if (albumModeID)\n _.remove(\n filters,\n (filter: { name: string; icon: any }) => filter.name == \"Album\"\n );\n\n return filters;\n };\n\n const renderFilterBlock = (filter: {\n name: any;\n icon: any;\n isActive: boolean;\n }) => (\n (\n toggleSidebar(), collapseFilter(e, filter.name.toLowerCase(), true)\n )}\n >\n {filter.isActive && (\n
\n \n
\n )}\n \n {filter.name}\n \n );\n\n return (\n
\n
toggleSidebar()}>\n \n \n \n \n \n Filters\n \n \n toggleSidebar()}\n />\n
\n {updateFilters().map(filter => renderFilterBlock(filter))}\n
\n );\n};\n\nexport default FilterSidebar;\n","import React from \"react\";\nconst warnIcon = require(\"../../EventGalleryMobile/styles/icon-red-warn.svg\");\n\ninterface BundleDiscountRemovePopupProps {\n removePhotoBundleDiscount: Function;\n hideRemoveOfferPrompt: Function;\n}\n\nconst BundleDiscountRemovePopup = ({\n removePhotoBundleDiscount,\n hideRemoveOfferPrompt\n}: BundleDiscountRemovePopupProps) => {\n return (\n
\n \n
\n  \n {\n hideRemoveOfferPrompt();\n }}\n >\n ×\n \n
\n \n

Are you sure?

\n
\n
\n

\n If you remove this offer, you will have to pay full price for the\n photos in the cart.\n

\n
\n
\n removePhotoBundleDiscount()}\n >\n Remove Offer\n \n hideRemoveOfferPrompt()}\n >\n Keep Offer\n \n
\n
\n
\n
\n
\n );\n};\n\nexport default BundleDiscountRemovePopup;\n","import React, { Suspense } from \"react\";\nimport ajax from \"superagent\";\nimport _ from \"lodash\"; // TODO: load only what's needed from lodash-es\nimport AlbumsContainer from \"./albums/AlbumsContainer\";\nimport FilterSidebar from \"./filters/FilterSidebar\";\nimport BundleDiscountRemovePopup from \"./BundleDiscountRemovePopup\";\nimport {\n deleteCookie,\n setCookie,\n getCookie,\n withCartIdParam\n} from \"../../../utils/BrowserHelper\";\nimport PropTypes from \"prop-types\";\nimport { Album, Event } from \"./types\";\nimport { Cart } from \"../components/types\";\n\nconst FiltersContainer = React.lazy(() => import(\"./filters/FiltersContainer\"));\nconst OffersBanner = React.lazy(() => import(\"./offerBanners/index\"));\n\ninterface EventContainerProps {\n event: Event;\n albumsAPI: string;\n addPhotoToCart: Function;\n removePhotoFromCart: Function;\n emptyPhotosFromCart: Function;\n cart?: {\n photos: Array<{}>;\n photoBundleDiscountAvailed?: boolean;\n photoBundleDiscountEventId: number | null;\n id: number;\n };\n initialFilters: {\n albums?: Album[];\n photographers?: Array<{}>;\n };\n photoTimeRange: {\n min: number;\n max: number;\n };\n discountMessage: string;\n registerCustomerLeadAPI: string;\n userSignedIn: boolean;\n userId: number;\n userEmail: string;\n prepaidCustomersEnabled: boolean;\n promptPrepaidCustomerAuth: Function;\n logoutPrepaidCustomer: Function;\n selfieSearchS3Bucket: string | undefined;\n photoBundleDiscountAvailable?: boolean;\n removePhotoBundleDiscount?: Function | null;\n setSelfieUploadPopup?: Function;\n selfieUploadPopup?: boolean;\n photosAvailable: boolean;\n handleSelfiePrepaidCustomerCreation: Function;\n curationMode: boolean;\n listOfMediaId: Array<{ id: number; hidden: boolean }>;\n setFilterActive?: Function;\n unlinkSelfiePrepaidCustomer: Function;\n clearCartPopup: boolean;\n setClearCartPopup: Function;\n cartFullPrice: string;\n cartDiscountedPrice: string;\n cartHasDiscount: boolean;\n guestUserId: null | number;\n availPhotoBundleDiscount: () => void;\n showGalleryActions?: Function;\n setAlbum: (val: any) => void;\n album: Album[] | null;\n}\n\ninterface EventContainerState {\n albums: Album[];\n filterSelections: {\n albums: Array<{}>;\n photographers: Array<{}>;\n photoTime: {\n minuteFrom: number;\n minuteTo: number;\n active: boolean;\n };\n referenceImage: string | null;\n photoText: string | null;\n favoritesSelected: boolean;\n };\n filterOptions: {\n albums: [];\n photographers: [];\n photoTimeRange?: any;\n };\n unlockedPrivateEvent: boolean;\n promptRemoveOffer: boolean;\n sidebarOpen: boolean;\n width: number;\n selfieFilterExpanded: boolean;\n timeFilterExpanded: boolean;\n albumFilterExpanded: boolean;\n photographerFilterExpanded: boolean;\n bibFilterExpanded: boolean;\n favoritesFilterExpanded: boolean;\n zIndex: boolean;\n clearAllFilters?: boolean;\n removeSelfie: boolean;\n}\n\nclass EventContainer extends React.Component<\n EventContainerProps,\n EventContainerState\n> {\n defaultFilters: {\n albums: never[];\n photographers: never[];\n photoTime: {\n minuteFrom: number; // 00:00 to minutes\n minuteTo: number; // 23:59 to minutes\n active: boolean;\n };\n referenceImage: string | null;\n photoText: null;\n favoritesSelected: false;\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 }),\n cartId: PropTypes.number,\n pageConfiguration: PropTypes.shape({\n primaryColor: PropTypes.string,\n secondaryColor: PropTypes.string\n }),\n hidePhotographersFilter: PropTypes.bool,\n enableFilterByText: PropTypes.bool,\n clearMediaIds: PropTypes.func,\n setPhotos: PropTypes.func,\n curationMode: PropTypes.bool,\n setSelectAll: PropTypes.func,\n canManageTags: PropTypes.bool,\n selfiePrepaidStatus: PropTypes.string,\n showPrepaidClearCartWarning: PropTypes.bool,\n promptClearPrepaidCart: PropTypes.func,\n setFilterSelections: PropTypes.func,\n albumModeID: PropTypes.string,\n cookiePrepaidAvailed: PropTypes.bool\n };\n constructor(props: EventContainerProps) {\n super(props);\n\n this.defaultFilters = {\n albums: [],\n photographers: [],\n photoTime: {\n minuteFrom: props.photoTimeRange.min || 0, // 00:00 to minutes\n minuteTo: props.photoTimeRange.max || 1439, // 23:59 to minutes\n active: false\n },\n referenceImage: null,\n photoText: null,\n favoritesSelected: false\n };\n\n this.state = {\n albums: [],\n filterSelections: {\n ...this.defaultFilters,\n ...props.initialFilters,\n //@ts-ignore\n referenceImage: this.getReferenceImage()\n },\n filterOptions: {\n albums: [],\n photographers: [],\n photoTimeRange: props.photoTimeRange\n },\n unlockedPrivateEvent: props.event.isPrivate\n ? this.referenceImageAvailable()\n : true,\n promptRemoveOffer: false,\n sidebarOpen: this.referenceImageAvailable(),\n width: 0,\n selfieFilterExpanded: this.referenceImageAvailable(),\n timeFilterExpanded: false,\n albumFilterExpanded: false,\n photographerFilterExpanded: false,\n bibFilterExpanded: false,\n favoritesFilterExpanded: false,\n zIndex: false,\n removeSelfie: false\n };\n\n this.updateFilters = this.updateFilters.bind(this);\n this.resetFilter = this.resetFilter.bind(this);\n this.addToCart = this.addToCart.bind(this);\n this.activeFilters = this.activeFilters.bind(this);\n this.clearSelfie = this.clearSelfie.bind(this);\n this.toggleSidebar = this.toggleSidebar.bind(this);\n this.updateWindowDimensions = this.updateWindowDimensions.bind(this);\n this.collapseFilter = this.collapseFilter.bind(this);\n this.changeZindex = this.changeZindex.bind(this);\n }\n collapseFilter = (event: any, filter: string, condition: any) => {\n event.preventDefault();\n this.setState({\n [`${filter}FilterExpanded`]: condition\n ? condition\n : //@ts-ignore\n !this.state[`${filter}FilterExpanded`]\n } as Pick);\n };\n\n componentWillUnmount() {\n window.removeEventListener(\"resize\", this.updateWindowDimensions);\n }\n\n updateWindowDimensions() {\n this.setState({ width: window.innerWidth });\n }\n\n referenceImageAvailable = () => (this.getReferenceImage() ? true : false);\n\n clearSelfie() {\n if (\n this.props.cart &&\n this.props.cart.photoBundleDiscountAvailed &&\n !this.state.promptRemoveOffer\n ) {\n this.setState({ promptRemoveOffer: true, removeSelfie: true });\n } else if (this.context.showPrepaidClearCartWarning) {\n this.context.promptClearPrepaidCart();\n } else {\n this.setState({ sidebarOpen: false }, () =>\n this.updateFilters(\n {\n [\"referenceImage\"]: null\n },\n false\n )\n );\n }\n }\n\n removeBundleDiscountOffer = async (availPrepaidOffer: any) => {\n if (this.state.clearAllFilters) {\n this.updateFilters(null, true);\n }\n this.setState({ promptRemoveOffer: false });\n this.props.removePhotoBundleDiscount &&\n (await this.props.removePhotoBundleDiscount());\n if (this.state.removeSelfie) {\n this.setState({ removeSelfie: false }, () =>\n this.updateFilters(\n {\n [\"referenceImage\"]: null\n },\n false\n )\n );\n }\n\n if (availPrepaidOffer) {\n this.props.promptPrepaidCustomerAuth();\n }\n };\n\n resetFilter() {\n if (this.props.cart && this.props.cart.photoBundleDiscountAvailed) {\n this.setState({ promptRemoveOffer: true, clearAllFilters: true });\n } else if (this.context.showPrepaidClearCartWarning) {\n this.context.promptClearPrepaidCart();\n } else if (this.context.albumModeID) {\n this.updateFilters(\n {\n ...this.defaultFilters,\n albums: this.props.album && [this.props.album[0].id]\n },\n false\n );\n } else {\n this.updateFilters(null, true);\n }\n }\n\n toggleSidebar() {\n this.setState({ sidebarOpen: !this.state.sidebarOpen });\n }\n\n unlockPrivateEvent = () => {\n this.setState({\n unlockedPrivateEvent: true\n });\n };\n\n lockPrivateEvent = () => {\n this.setState({\n unlockedPrivateEvent: false\n });\n };\n\n getReferenceImage = () => {\n const cookie = getCookie(\"reference_image_for_event\");\n const [eventId, referenceImage] = cookie ? cookie.split(\"-imageURL-\") : [];\n const photoBundleSelfie =\n this.props.cart &&\n this.props.cart.photoBundleDiscountEventId === this.props.event.id &&\n this.props.cart.photoBundleDiscountAvailed\n ? cookie\n : null;\n\n const parsedEventId = eventId ? parseInt(eventId) : null;\n\n if (\n (!cookie && !photoBundleSelfie) ||\n (cookie && parsedEventId != this.props.event.id)\n ) {\n //return null if none of these exist or if cookie exists but the event ID doesn't match\n return null;\n } else if (\n photoBundleSelfie ||\n (parsedEventId === this.props.event.id && referenceImage)\n ) {\n //return reference image if either of the above conditions are true\n return referenceImage;\n }\n return null;\n };\n\n hasValidDiscount = () =>\n this.props.event.hasDiscount && this.props.event.price !== 0;\n\n togglePrivateEvent = () => {\n if (this.state.filterSelections.referenceImage) this.unlockPrivateEvent();\n else this.lockPrivateEvent();\n };\n\n componentDidMount() {\n if (this.props.setFilterActive && this.referenceImageAvailable())\n this.props.setFilterActive(true);\n\n const fetchAlbums = (\n albumsAPI: string,\n cartId: number | null,\n albumModeID: string\n ) => {\n return ajax.get(withCartIdParam(albumsAPI, cartId)).query({\n album_id: albumModeID\n });\n };\n\n const handleResponse = (response: { body: { albums: any } }) => {\n let albums = response.body.albums;\n this.setState(\n {\n albums: albums,\n //@ts-ignore\n filterSelections: this.context.albumModeID\n ? {\n ...this.state.filterSelections,\n albums: [albums[0].id]\n }\n : this.state.filterSelections,\n filterOptions: {\n albums: albums.map((album: { id: any; name: any }) => ({\n id: album.id,\n name: album.name\n })),\n //@ts-ignore\n photographers: _.uniqBy(\n _.map(albums, album => ({\n id: album.photographerId,\n name: album.photographerName,\n albumsCount: _.filter(albums, {\n photographerId: album.photographerId\n }).length\n })),\n \"id\"\n )\n }\n },\n () => {\n this.context?.setFilterSelections?.(this.state.filterSelections);\n this.context.albumModeID && this.props.setAlbum(this.state.albums);\n if (this.context.canManageTags) {\n this.context.setSelectAll();\n this.context.clearMediaIds();\n this.context.setPhotos([]);\n }\n }\n );\n };\n\n function getAlbumIdFromUrl() {\n const urlParams = new URLSearchParams(window.location.search);\n const albumId = urlParams.get(\"album_id\");\n if (albumId) {\n return albumId;\n } else {\n return null;\n }\n }\n\n fetchAlbums(\n this.props.albumsAPI,\n this.context.cartId,\n this.context.albumModeID || getAlbumIdFromUrl()\n ).then(handleResponse, () => console.log(\"request failed\"));\n\n this.updateWindowDimensions();\n window.addEventListener(\"resize\", this.updateWindowDimensions);\n if (!this.context.prepaidCustomer) {\n this.handleSelfiePrepaidCustomerCreation();\n }\n }\n\n handleSelfiePrepaidCustomerCreation = () => {\n if (\n this.props.event.prepaidCustomersEnabled &&\n this.props.event.prepaidCustomersPrimaryAuthField == \"selfie\" &&\n this.state.filterSelections.referenceImage\n ) {\n this.props.handleSelfiePrepaidCustomerCreation(\n this.state.filterSelections.referenceImage\n );\n }\n };\n\n filterOpen = (\n newFilters: { [x: string]: any; referenceImage?: string | null } | null,\n clearFilters: boolean,\n filter: string\n ) =>\n newFilters?.referenceImage\n ? true\n : clearFilters || newFilters?.referenceImage === null\n ? false\n : //@ts-ignore\n this.state[filter];\n\n updateFilters(\n newFilters: { [x: string]: any; referenceImage?: string | null } | null,\n clearFilters: boolean\n ) {\n this.setState(\n {\n filterSelections: {\n ...(clearFilters ? this.defaultFilters : this.state.filterSelections),\n ...newFilters\n },\n sidebarOpen: this.filterOpen(newFilters, clearFilters, \"sidebarOpen\"),\n promptRemoveOffer: clearFilters ? false : this.state.promptRemoveOffer,\n selfieFilterExpanded: this.filterOpen(\n newFilters,\n clearFilters,\n \"selfieFilterExpanded\"\n )\n },\n () => {\n if (this.context.canManageTags) {\n this.context.setSelectAll();\n this.context.clearMediaIds();\n this.context.setPhotos([]);\n }\n if (clearFilters || newFilters?.referenceImage === null) {\n deleteCookie(\"reference_image_for_event\");\n if (this.prepaidAuthSelfie) {\n this.props.unlinkSelfiePrepaidCustomer();\n }\n } else if (this.state.filterSelections.referenceImage != undefined) {\n setCookie(\n \"reference_image_for_event\",\n `${this.props.event.id}-imageURL-${this.state.filterSelections.referenceImage}`\n );\n }\n this.context?.setFilterSelections?.(this.state.filterSelections);\n this.handleSelfiePrepaidCustomerCreation();\n if (this.props.event.isPrivate) this.togglePrivateEvent();\n const filter = this.activeFilters();\n filter.length > 0 && this.props.setFilterActive\n ? this.props.setFilterActive(true)\n : this.props.setFilterActive && this.props.setFilterActive(false);\n }\n );\n }\n\n activeFilters() {\n const filters = this.state.filterSelections;\n let activeFilters = [];\n\n if (filters.albums.length > 0) activeFilters.push(\"albums\");\n if (filters.favoritesSelected) activeFilters.push(\"favorite\");\n if (filters.photographers.length > 0) activeFilters.push(\"photographers\");\n if (filters.photoTime.active) activeFilters.push(\"time\");\n if (!!filters.photoText) activeFilters.push(\"bib_number\");\n if (!!filters.referenceImage) activeFilters.push(\"selfie\");\n\n return activeFilters;\n }\n\n addToCart(photo: any) {\n this.props.addPhotoToCart(photo, this.activeFilters());\n }\n\n hidePrepaidBanner() {\n return (\n this.props.event.prepaidCustomersPrimaryAuthField == \"selfie\" &&\n (this.context.selfiePrepaidStatus == \"unavailable\" ||\n !this.state.filterSelections.referenceImage)\n );\n }\n\n showOfferBanners() {\n return (\n (this.props.prepaidCustomersEnabled && !this.hidePrepaidBanner()) ||\n this.hasValidDiscount()\n );\n }\n\n prepaidAuthSelfie =\n this.props.prepaidCustomersEnabled &&\n this.props.event.prepaidCustomersPrimaryAuthField == \"selfie\";\n\n selfiePrepaidCustomer = () =>\n this.prepaidAuthSelfie && this.context && this.context.prepaidCustomer;\n\n renderBanner() {\n if (window.location.href.indexOf(\"event_cover_photo_picker\") > 0) {\n return null;\n }\n return this.showOfferBanners() ? (\n
\n Loading ...
}>\n \n this.setState({ promptRemoveOffer: true })\n }\n selectedImage={this.state.filterSelections.referenceImage}\n getReferenceImage={this.getReferenceImage}\n removeBundleDiscountOffer={this.removeBundleDiscountOffer}\n setSelfieUploadPopup={this.props.setSelfieUploadPopup}\n selfieUploadPopup={this.props.selfieUploadPopup}\n eventURL={undefined}\n prepaidCustomer={this.context.prepaidCustomer}\n cartPrepaidPhotos={undefined}\n photoBundleDiscountEventId={undefined}\n clearCartPopup={this.props.clearCartPopup}\n setClearCartPopup={this.props.setClearCartPopup}\n availPhotoBundleDiscount={this.props.availPhotoBundleDiscount}\n />\n \n \n ) : null;\n }\n\n renderWarningPopup() {\n return (\n this.state.promptRemoveOffer &&\n this.props.cart &&\n this.props.cart.photoBundleDiscountAvailed && (\n {\n this.setState({ promptRemoveOffer: false });\n }}\n />\n )\n );\n }\n\n changeZindex = () => {\n this.setState({ zIndex: !this.state.zIndex });\n };\n\n render() {\n return (\n
\n
\n {this.renderBanner()}\n {this.renderWarningPopup()}\n
\n {this.props.showGalleryActions &&\n this.props.showGalleryActions() &&\n this.props.photosAvailable ? (\n this.state.sidebarOpen || this.state.width < 992 ? (\n \n Loading...
}>\n \n \n
\n ) : (\n \n )\n ) : null}\n \n \n \n \n );\n }\n}\n\nexport default EventContainer;\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\nimport Color from \"color\";\nimport ContrastForegroundUtility from \"../../../utils/ContrastForegroundUtility\";\n\ninterface StyleOverridesProps {\n primaryColor: string;\n secondaryColor: string;\n}\n\nclass StyleOverrides extends React.Component {\n static propTypes = {\n primaryColor: PropTypes.string,\n secondaryColor: PropTypes.string\n };\n lightColor: string;\n\n constructor(props: StyleOverridesProps) {\n super(props);\n this.lightColor = ContrastForegroundUtility.fgColor(this.fgColor);\n }\n fgColor: any = (color: string) => ContrastForegroundUtility.fgColor(color);\n\n hoverColor: any = (color: string) => Color(color).darken(0.2).hex();\n\n render() {\n return (\n .dropdown-toggle.btn-primary {\n background-color: ${this.hoverColor(this.props.primaryColor)};\n border-color: ${this.hoverColor(this.props.primaryColor)} !important;\n color: ${this.fgColor(this.props.primaryColor)} !important;\n }\n .btn-primary.btn-primary-white, \n .btn-primary.btn-primary-white:active {\n border-color: ${this.props.primaryColor}; \n color: ${this.props.primaryColor}; \n }\n .btn-primary.btn-primary-white:hover {\n color: ${this.fgColor(this.props.primaryColor)};\n }\n .geo-btn--secondary-ghost{\n border-color: ${this.props.secondaryColor} !important; \n }\n .geo-btn--secondary-ghost:focus{\n color: ${this.fgColor(this.props.secondaryColor)}!important;\n background: ${this.props.secondaryColor} !important;\n }\n .geo-btn--secondary-ghost:hover{\n color: ${this.fgColor(this.props.secondaryColor)} !important;\n background: ${this.props.secondaryColor} !important;\n }\n .geo-addAll-btn{\n color: ${this.props.primaryColor}!important;\n }\n .geo-remove-btn{\n color: white !important;\n }\n .offer-details {\n font-weight: 800er;\n color: ${this.fgColor(this.props.primaryColor)};\n }\n .dv-eventsfilter h4{\n color: ${this.props.primaryColor};\n margin-left:1px;\n }\n .custom-clr {\n background: ${this.props.primaryColor};\n }\n .custom-clr:hover {\n background: ${this.hoverColor(this.props.primaryColor)};\n }\n .text-clr{\n color:${this.props.primaryColor} !important;\n }\n .dv-progress .dv-progress-bar {\n background: ${this.props.primaryColor};\n }\n a, a:hover {\n color: ${this.props.primaryColor};\n }\n .slider-selection,\n .slider-handle {\n background: ${this.props.primaryColor};\n }\n .ul-checkbox li input ~ span:before {\n border: ${this.props.primaryColor} 1px solid;\n }\n .ul-checkbox li input:checked ~ span:before {\n background: ${this.props.primaryColor};\n }\n .form-control:focus {\n border-color: ${this.props.primaryColor};\n }\n .dv-imgdetails-text a {\n color: ${this.props.primaryColor};\n }\n .ns button.secondary-btn, .ns .secondary-btn {\n background: ${this.props.secondaryColor};\n box-shadow: none;\n color: ${this.fgColor(this.props.secondaryColor)} !important;\n }\n .ns button.secondary-btn:hover, .ns .secondary-btn:hover {\n background: ${this.hoverColor(this.props.secondaryColor)} !important;\n color: ${this.fgColor(this.props.secondaryColor)} !important;\n }\n .dv-section-footer a {\n background: ${this.props.primaryColor};\n color: ${this.fgColor(this.props.primaryColor)};\n }\n .dv-section-footer a:hover {\n color: ${this.fgColor(this.props.primaryColor)};\n }\n .offer-banner,\n .prepaid-customer-limit-welcome {\n background: ${this.props.primaryColor};\n }\n .offer-banner-body{\n color: ${this.fgColor(this.props.primaryColor)};\n }\n .offer--multi-tier hr {\n border-color: ${this.fgColor(this.props.primaryColor)};\n }\n .offer-active {\n position: relative;\n z-index: 100;\n background-color: white;\n font-size: 8.5px;\n top: -17px;\n padding: 0px 6px;\n border-radius: 3px;\n border: 1px solid ${this.props.primaryColor};\n color:black !important;\n height:fit-content;\n width:fit-content;\n margin-bottom: -16px;\n }\n .offer-banner-welcome,\n .cart-count {\n background: ${this.props.primaryColor};\n color: ${this.fgColor(this.props.primaryColor)};\n }\n .cart-count {\n background: ${this.lightColor};\n color: ${this.fgColor(this.props.primaryColor)};\n }\n .banner-button,\n .count-badge,\n .prepaid-customer-cart-badge {\n background: ${this.fgColor(this.props.primaryColor)};\n color: ${this.lightColor};\n }\n .dash-border-web {\n border: 1px dashed ${this.props.primaryColor};\n border-radius: 5px;\n padding: 1px;\n min-width:173px;\n }\n .check-radio input:checked + .r-dot {\n background-color: ${this.props.primaryColor} !important;\n }\n `\n }}\n />\n );\n }\n}\n\nexport default StyleOverrides;\n","import React from \"react\";\n\nconst ActiveIcon = (props: { color: string | undefined }) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\nexport default ActiveIcon;\n"],"names":["_a","_b","isLoading"],"sourceRoot":""}