{"version":3,"file":"js/5270-e5ff8c1eb5292eb94a8a.chunk.js","mappings":"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A;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+DAA+D;AAC/D;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;;AAEA,oBAAoB,UAAqB;AACzC;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,SAAS;AACT;;AAEA;AACA,wBAAwB,yBAAyB;AACjD,QAAQ;AACR,wBAAwB,iBAAiB;AACzC;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["webpack://geosnapshot/./client/bundles/BrowseEvent/components/vectors/PlaceHolderImg.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/filters/FilterByImage.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/filters/FilterByTime.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/filters/FilterByAlbum.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/filters/FilterByPhotographer.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/filters/FilterByText.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/filters/FilterByFavorite.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/filters/FiltersContainer.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/filters/WebcamCapture.tsx","webpack://geosnapshot/./node_modules/left-pad/index.js","webpack://geosnapshot/./node_modules/react-checkbox-group/react-checkbox-group.js"],"sourcesContent":["import React from \"react\";\n\nconst PlaceHolderImg = ({\n color,\n style = { width: \"109\", height: \"109\" }\n}: {\n color: string;\n style?: { width: string; height: string };\n}) => {\n return (\n <svg\n width={style.width}\n height={style.height}\n viewBox=\"0 0 109 109\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <mask\n id=\"mask0_32_33\"\n maskUnits=\"userSpaceOnUse\"\n x=\"71\"\n y=\"71\"\n width=\"38\"\n height=\"38\"\n >\n <path d=\"M71.5103 71.0609H109V108.5H71.5103V71.0609Z\" fill=\"white\" />\n </mask>\n <g mask=\"url(#mask0_32_33)\">\n <path\n d=\"M97.0681 90.3229C96.7496 90.678 96.3072 90.8584 95.8647 90.8584C95.4758 90.8584 95.0897 90.7203 94.7769 90.4413L92.1279 88.0543V95.6013C92.1279 96.4975 91.4036 97.2245 90.5074 97.2245C89.6113 97.2245 88.8842 96.4975 88.8842 95.6013V88.0543L86.2351 90.4413C85.5672 91.0415 84.5414 90.988 83.944 90.3229C83.3437 89.655 83.3973 88.632 84.0623 88.0318L89.4196 83.2043C90.0368 82.6463 90.9753 82.6463 91.5924 83.2043L96.9497 88.0318C97.6148 88.632 97.6683 89.655 97.0681 90.3229ZM90.5074 71.5118C80.3086 71.5118 72.012 79.8084 72.012 90.0045C72.012 100.203 80.3086 108.5 90.5074 108.5C100.703 108.5 109 100.203 109 90.0045C109 79.8084 100.703 71.5118 90.5074 71.5118Z\"\n fill=\"#101318\"\n />\n </g>\n <mask\n id=\"mask1_32_33\"\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"109\"\n height=\"109\"\n >\n <path\n d=\"M0.859375 0.359375H109V108.5H0.859375V0.359375Z\"\n fill=\"white\"\n />\n </mask>\n <g mask=\"url(#mask1_32_33)\">\n <path\n d=\"M54.9311 0.359375C40.4881 0.359375 26.9103 5.98439 16.6973 16.1973C6.48439 26.4075 0.859375 39.9881 0.859375 54.4283C0.859375 68.8713 6.48439 82.4519 16.6973 92.662C26.9103 102.875 40.4881 108.5 54.9311 108.5C61.7566 108.5 68.3539 107.26 74.6017 104.808C70.9861 100.925 68.7682 95.7197 68.7682 90.0045C68.7682 85.7801 69.98 81.8319 72.0739 78.4924C69.05 76.9734 66.5137 75.6658 65.2483 74.7471C64.1126 73.9242 64.0281 73.2281 63.9999 72.9998C63.7801 71.1681 66.105 68.4316 68.1538 66.0165C69.2642 64.7117 70.4112 63.359 71.2538 62.0598C73.9254 57.9256 76.7041 49.7643 74.7765 34.3575C72.9729 19.9539 61.007 16.1466 54.9311 16.1466C48.8552 16.1466 36.8893 19.9539 35.0857 34.3575C33.1581 49.7643 35.9368 57.9256 38.6084 62.0598C39.4482 63.359 40.5952 64.7117 41.7056 66.0165C43.7572 68.4316 46.0793 71.1681 45.8595 72.9998C45.8341 73.2281 45.7496 73.9242 44.6139 74.7471C43.1682 75.7954 40.0682 77.3511 36.4779 79.149C31.9942 81.3979 26.4143 84.1907 21.9673 87.0934C20.7104 87.8289 19.5183 88.7279 18.4108 89.7734C9.18135 80.2453 4.10588 67.7271 4.10588 54.4283C4.10588 40.8533 9.39271 28.0899 18.9913 18.4885C28.5899 8.8899 41.3561 3.60306 54.9311 3.60306C68.5061 3.60306 81.2695 8.8899 90.8709 18.4885C100.469 28.0899 105.756 40.8533 105.756 54.4283C105.756 60.5042 104.708 66.3857 102.642 71.9769C103.589 72.6166 104.48 73.3268 105.311 74.1017C107.763 67.8539 109 61.2538 109 54.4283C109 39.9881 103.378 26.4075 93.1649 16.1973C82.9519 5.98439 69.3741 0.359375 54.9311 0.359375Z\"\n fill={color}\n />\n </g>\n </svg>\n );\n};\n\nexport default PlaceHolderImg;\n","import React, { Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport ReactS3Uploader from \"react-s3-uploader\"; // Lazy load this as it increases bundle size\nimport Dropzone from \"react-dropzone\";\nimport ajax from \"superagent\";\nimport WebcamCapture from \"./WebcamCapture\";\nimport ImageUploadAlert from \"../../../ImageUploadAlert\";\nimport { getCookie, withCartIdParam } from \"../../../../utils/BrowserHelper\";\nconst delImg = require(\"../../styles/delete.svg\");\nimport ActiveIcon from \"../vectors/ActiveIcon\";\nconst selfieIcon = require(\"../../styles/selfie-icon.svg\");\nimport PlaceHolderImg from \"../vectors/PlaceHolderImg\";\n\nimport { ReadStream } from \"fs\";\nimport ContrastForegroundUtility from \"../../../../utils/ContrastForegroundUtility\";\nimport UploadIcon from \"../../../EventGalleryMobile/vectors/UploadIcon\";\nimport SelfieIcon from \"../../../EventGalleryMobile/vectors/SelfieIcon\";\n\ninterface FilterByImageProps {\n updateFilter: Function;\n selectedImage: string | null;\n expanded: boolean;\n clearSelfie: Function;\n changeZindex: Function;\n collapseFilter: Function;\n similarity: number;\n isPhotoIndexingDisabled: boolean;\n getReferenceImage: () => string | null;\n photoBundleDiscountAvailed?: boolean;\n cartCount?: number;\n browsePhotosPath: string;\n isActive: boolean;\n setClearCartPopup: Function;\n pageConfig: {\n accentColor: string;\n primaryColor: string;\n };\n trackFilterEvents: (filterType: string) => void;\n}\n\ninterface FilterByImageState {\n webcam: boolean;\n previewImage: any;\n uploadProgress: number;\n processing?: boolean;\n}\n\nclass FilterByImage extends React.PureComponent<\n FilterByImageProps,\n FilterByImageState\n> {\n static contextTypes = {\n selfieSearchS3Bucket: PropTypes.string,\n cartId: PropTypes.number,\n showPrepaidClearCartWarning: PropTypes.bool,\n promptClearPrepaidCart: PropTypes.func,\n hideUploadSelfie: PropTypes.bool,\n isEmbed: PropTypes.bool,\n pageConfiguration: PropTypes.shape({\n primaryColor: PropTypes.string\n })\n };\n uploadInput: any;\n\n constructor(props: FilterByImageProps) {\n super(props);\n\n this.state = {\n webcam: false,\n previewImage: this.props.selectedImage,\n uploadProgress: 0,\n processing: undefined\n };\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.context.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 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 .field(\"bucket\", this.context.selfieSearchS3Bucket)\n .then(response => {\n this.props.updateFilter(response.body.url);\n this.props.trackFilterEvents(\"selfie\");\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 };\n\n imageSelected = (file: any, next: (arg0: any) => void) => {\n this.setState({\n previewImage: URL.createObjectURL(file),\n processing: true\n });\n next(file);\n };\n\n imageDropped = (accepted: any[], _: any) => {\n if (accepted[0]) {\n this.uploadAndFilter(accepted[0]);\n }\n };\n\n handleClearSelfie = (\n event: React.MouseEvent<HTMLSpanElement, MouseEvent>\n ) => {\n event.stopPropagation();\n this.props.clearSelfie();\n };\n\n componentWillReceiveProps(nextProps: { selectedImage: string | null }) {\n //Check if the selectedImage has been updated, or if the cookie has been updated with a new image or if cookie has been deleted\n if (\n this.props.selectedImage != nextProps.selectedImage ||\n this.props.getReferenceImage() != null\n ) {\n this.setState({\n processing: false,\n previewImage: nextProps.selectedImage\n });\n }\n }\n\n toggleWebcam = () => {\n this.setState({\n webcam: !this.state.webcam\n });\n this.props.changeZindex();\n };\n\n cartHasBundlePhotos = () =>\n this.props.photoBundleDiscountAvailed &&\n this.props.cartCount &&\n this.props.cartCount > 0;\n\n clearCart = (e?: any) => (\n e && e.preventDefault(), this.props.setClearCartPopup(true)\n );\n\n render() {\n return (\n <div className=\"panel panel-default\">\n <div className=\"panel-heading\" role=\"tab\" id=\"headingOne\">\n {this.props.isActive && (\n <div className=\"active-icon\">\n <ActiveIcon color={this.props.pageConfig.accentColor} />\n </div>\n )}\n <img src={selfieIcon} alt=\"\" className=\"filter-icon\" />\n <h4 className=\"panel-title\">\n <a\n className={`${this.props.expanded ? \"\" : \"collapsed\"} ${\n this.props.isActive ? \"active\" : \"inactive\"\n }`}\n role=\"button\"\n data-toggle=\"collapse\"\n data-parent=\"#filter-accordion\"\n href=\"#collapseOne\"\n aria-expanded={this.props.expanded}\n aria-controls=\"collapseOne\"\n onClick={e => this.props.collapseFilter(e, \"selfie\")}\n >\n Uploading a Selfie\n </a>\n </h4>\n </div>\n {this.props.isPhotoIndexingDisabled ? (\n <p className=\"geo-warning-info\">\n <i className=\"fa fa-info-circle\"></i> Selfie search is unavailable\n for this event\n </p>\n ) : (\n <div\n id=\"collapseOne\"\n className={\n \"panel-collapse collapse \" + (this.props.expanded ? \"in\" : \"\")\n }\n role=\"tabpanel\"\n aria-labelledby=\"headingOne\"\n >\n <div className=\"panel-body\">\n <div className=\"geo-ssupload-wrap\">\n <b className=\"geo-ssupload-title\">\n It’s easy to find your photos!\n </b>\n <p className=\"geo-ssupload-text\">\n Simply upload a{\" \"}\n <span className=\"geo-ssupload-text-highlight\">selfie</span> to\n view your matching photos instantly.\n </p>\n </div>\n <div\n className=\"dv-uploadselfie ns\"\n onClick={(event: any) => {\n if (this.cartHasBundlePhotos()) {\n event.stopPropagation();\n this.clearCart();\n } else if (this.context.showPrepaidClearCartWarning) {\n event.stopPropagation();\n this.context.promptClearPrepaidCart();\n }\n }}\n >\n <Dropzone\n onDrop={(accepted: any[], _: any) =>\n this.cartHasBundlePhotos()\n ? this.clearCart()\n : this.context.showPrepaidClearCartWarning\n ? this.context.promptClearPrepaidCart()\n : this.imageDropped(accepted, _)\n }\n multiple={false}\n noClickBubbling={true}\n accept=\"image/*\"\n className=\"dv-dragphoto\"\n activeClassName=\"dv-dragphoto-active\"\n disabled={\n this.context.hideUploadSelfie ||\n this.cartHasBundlePhotos() ||\n this.context.showPrepaidClearCartWarning\n }\n >\n {this.state.previewImage ? (\n <React.Fragment>\n {this.state.processing ? null : (\n <span className=\"div-del\">\n <span\n className=\"pic-del-btn\"\n onClick={e => this.handleClearSelfie(e)}\n >\n <img src={delImg} />\n </span>\n </span>\n )}\n <img src={this.state.previewImage} />\n </React.Fragment>\n ) : (\n <div style={{ cursor: \"pointer\" }}>\n <PlaceHolderImg\n color={this.props.pageConfig.primaryColor}\n style={{ width: \"75\", height: \"109\" }}\n />\n </div>\n )}\n\n {this.state.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: `${this.state.uploadProgress}%` }}\n />\n </div>\n </React.Fragment>\n ) : null}\n </Dropzone>\n\n {this.context.hideUploadSelfie ? (\n <Fragment></Fragment>\n ) : (\n <label className=\"btn btn-primary selfie-up-btn no-shade btn-100\">\n <UploadIcon\n color={ContrastForegroundUtility.fgColor(\n this.context.pageConfiguration.primaryColor\n )}\n />\n Upload a Selfie\n <ReactS3Uploader\n className={\"dv-upload-input\"}\n style={{ display: \"none\" }}\n onClick={(e: Event) => {\n if (this.context.showPrepaidClearCartWarning) {\n e.preventDefault();\n this.context.promptClearPrepaidCart();\n }\n this.cartHasBundlePhotos()\n ? this.clearCart(e)\n : this.context.showPrepaidClearCartWarning\n ? this.context.promptClearPrepaidCart()\n : null;\n }}\n getSignedUrl={this.getSignedUrl}\n accept=\"image/*\"\n preprocess={this.imageSelected}\n onProgress={completedPercent => {\n this.setState({ uploadProgress: completedPercent });\n }}\n onError={console.error}\n onFinish={result => {\n this.setState({ uploadProgress: 0 });\n this.props.updateFilter(result.signedUrl.split(\"?\")[0]);\n this.uploadInput.value = null;\n this.props.trackFilterEvents(\"selfie\");\n }}\n uploadRequestHeaders={{\n \"x-amz-acl\": \"public-read\"\n }}\n scrubFilename={filename =>\n filename.replace(/[^\\w\\d_\\-.]+/gi, \"\")\n }\n inputRef={cmp => (this.uploadInput = cmp)}\n contentDisposition=\"auto\"\n />\n </label>\n )}\n <a\n href=\"#\"\n className=\"btn secondary-btn btn-100 webcam-component\"\n onClick={() =>\n this.cartHasBundlePhotos()\n ? this.clearCart()\n : this.context.showPrepaidClearCartWarning\n ? this.context.promptClearPrepaidCart()\n : this.toggleWebcam()\n }\n >\n <SelfieIcon\n color={ContrastForegroundUtility.fgColor(\n this.context.pageConfiguration.secondaryColor\n )}\n />\n Take a selfie\n </a>\n\n {this.state.webcam ? (\n <WebcamCapture\n closeWebcam={this.toggleWebcam}\n captured={(base64Img: any) => {\n this.toggleWebcam();\n this.uploadBase64Image(base64Img);\n }}\n />\n ) : null}\n </div>\n <ImageUploadAlert />\n </div>\n </div>\n )}\n </div>\n );\n }\n}\n\nexport default FilterByImage;\n","import React from \"react\";\nimport _ from \"lodash\";\nimport leftPad from \"left-pad\";\nimport ReactBootstrapSlider from \"react-bootstrap-slider\";\nimport \"../../styles/slider-styles.css\";\nimport ActiveIcon from \"../vectors/ActiveIcon\";\nconst timeIcon = require(\"../../styles/time-icon.svg\");\n\ninterface FilterByTimeProps {\n selectedTime: {\n minuteFrom: number;\n minuteTo: number;\n active: boolean;\n };\n updateFilter: Function;\n photoTimeRange: {\n min: number;\n max: number;\n };\n expanded: boolean;\n collapseFilter: Function;\n isActive: boolean;\n pageConfig: {\n accentColor: string;\n };\n trackFilterEvents: (filterType: string) => void;\n}\n\ninterface FilterByTimeState {\n minuteFrom: number;\n minuteTo: number;\n}\n\nclass FilterByTime extends React.Component<\n FilterByTimeProps,\n FilterByTimeState\n> {\n fullRange: number[];\n constructor(props: FilterByTimeProps) {\n super(props);\n this.fullRange = [0, 1439];\n\n this.state = {\n minuteFrom: this.props.selectedTime.minuteFrom || this.fullRange[0],\n minuteTo: this.props.selectedTime.minuteTo || this.fullRange[1]\n };\n }\n\n componentWillReceiveProps(nextProps: {\n selectedTime: { minuteFrom: any; minuteTo: any };\n }) {\n this.setState({\n minuteFrom: nextProps.selectedTime.minuteFrom,\n minuteTo: nextProps.selectedTime.minuteTo\n });\n }\n\n selectionChanged = (event: { target: { value: any[] } }) => {\n let selectedRange = [event.target.value[0], event.target.value[1]];\n\n this.props.updateFilter({\n minuteFrom: selectedRange[0],\n minuteTo: selectedRange[1],\n active: this.isFilterActive(selectedRange)\n });\n this.props.trackFilterEvents(\"photoTime\");\n };\n\n sliderMoved = (event: { target: { value: any[] } }) => {\n this.setState({\n minuteFrom: event.target.value[0],\n minuteTo: event.target.value[1]\n });\n };\n\n isFilterActive = (selectedRange: any[]) =>\n // if the entire range is selected,\n // then we do not apply time filter\n // so that images without timestamp\n // dont miss out.\n !_.isEqual(selectedRange, this.fullRange);\n\n minutesToHHMM = (minutes: number) => {\n //@ts-ignore\n let hour24 = parseInt(minutes / 60);\n let hour12 = hour24 % 12 || 12;\n let min = minutes % 60;\n let mer = hour24 < 12 || hour24 === 24 ? \"AM\" : \"PM\";\n\n return `${leftPad(hour12, 2, \"0\")}:${leftPad(min, 2, \"0\")} ${mer}`;\n };\n\n sliderTooltipFormatter = (value: any[]) => {\n if (_.isArray(value)) {\n return `${this.minutesToHHMM(value[0])} - ${this.minutesToHHMM(\n value[1]\n )}`;\n } else return undefined;\n };\n\n render() {\n return (\n <div className=\"panel panel-default\">\n <div className=\"panel-heading\" role=\"tab\" id=\"headingTwo\">\n {this.props.isActive && (\n <div className=\"active-icon\">\n <ActiveIcon color={this.props.pageConfig.accentColor} />\n </div>\n )}\n <img src={timeIcon} alt=\"\" className=\"filter-icon\" />\n <h4 className=\"panel-title\">\n <a\n aria-expanded={this.props.expanded}\n className={`${this.props.expanded ? \"\" : \"collapsed\"} ${\n this.props.isActive ? \"active\" : \"inactive\"\n }`}\n onClick={e => this.props.collapseFilter(e, \"time\")}\n role=\"button\"\n data-toggle=\"collapse\"\n data-parent=\"#filter-accordion\"\n href=\"#collapseTwo\"\n aria-controls=\"collapseTwo\"\n >\n Time of Participation\n </a>\n </h4>\n </div>\n <div\n id=\"collapseTwo\"\n className={\n \"panel-collapse collapse \" + (this.props.expanded ? \"in\" : \"\")\n }\n role=\"tabpanel\"\n aria-labelledby=\"headingTwo\"\n >\n <div className=\"panel-body\">\n <div className=\"dv-rslider\">\n <ReactBootstrapSlider\n value={[this.state.minuteFrom, this.state.minuteTo]}\n slideStop={this.selectionChanged}\n change={this.sliderMoved}\n step={1}\n max={this.props.photoTimeRange.max}\n min={this.props.photoTimeRange.min}\n range={true}\n tooltip={\"hide\"}\n formatter={this.sliderTooltipFormatter}\n />\n <p>{this.minutesToHHMM(this.state.minuteFrom)}</p>\n <p>{this.minutesToHHMM(this.state.minuteTo)}</p>\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default FilterByTime;\n","import React from \"react\";\nimport { Checkbox, CheckboxGroup } from \"react-checkbox-group\";\nimport { Album as AlbumType } from \"../types\";\nimport ActiveIcon from \"../vectors/ActiveIcon\";\nconst album = require(\"../../styles/album.svg\");\n\ninterface FilterByAlbumProps {\n albums: AlbumType[];\n selectedAlbums: [];\n updateFilter: Function;\n expanded: boolean;\n collapseFilter: Function;\n isActive: boolean;\n pageConfig: {\n accentColor: string;\n };\n trackFilterEvents: (filterType: string) => void;\n}\n\nclass FilterByAlbum extends React.Component<FilterByAlbumProps> {\n constructor(props: FilterByAlbumProps) {\n super(props);\n this.selectionsChanged = this.selectionsChanged.bind(this);\n }\n\n selectionsChanged(newSelections: any) {\n this.props.updateFilter(newSelections);\n this.props.trackFilterEvents(\"album\");\n }\n\n render() {\n return (\n <div className=\"panel panel-default\">\n <div className=\"panel-heading\" role=\"tab\" id=\"headingThree\">\n {this.props.isActive && (\n <div className=\"active-icon\">\n <ActiveIcon color={this.props.pageConfig.accentColor} />\n </div>\n )}\n <img src={album} alt=\"\" className=\"filter-icon\" />\n <h4 className=\"panel-title\">\n <a\n role=\"button\"\n data-toggle=\"collapse\"\n data-parent=\"#filter-accordion\"\n href=\"#collapseThree\"\n aria-controls=\"collapseThree\"\n aria-expanded={this.props.expanded}\n className={`${this.props.expanded ? \"\" : \"collapsed\"} ${\n this.props.isActive ? \"active\" : \"inactive\"\n }`}\n onClick={e => this.props.collapseFilter(e, \"album\")}\n >\n Album\n </a>\n </h4>\n </div>\n <div\n id=\"collapseThree\"\n className={\n \"panel-collapse collapse \" + (this.props.expanded ? \"in\" : \"\")\n }\n role=\"tabpanel\"\n aria-labelledby=\"headingThree\"\n >\n <div className=\"panel-body\">\n <ul className=\"check-radio checkmark\">\n <CheckboxGroup\n name=\"selectedAlbums\"\n value={this.props.selectedAlbums}\n onChange={this.selectionsChanged}\n >\n {this.props.albums.map(album => (\n <li key={album.id}>\n <label>\n <Checkbox value={album.id} />\n <span className=\"r-dot\" />\n <span className=\"r-desc\">{album.name}</span>\n </label>\n </li>\n ))}\n </CheckboxGroup>\n </ul>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default FilterByAlbum;\n","import React from \"react\";\nimport { Checkbox, CheckboxGroup } from \"react-checkbox-group\";\nimport ActiveIcon from \"../vectors/ActiveIcon\";\nconst photographer = require(\"../../styles/photographer.svg\");\n\ninterface FilterByPhotographerProps {\n photographersList: {\n name: string;\n id: number;\n albumsCount: number;\n }[];\n selectedPhotographers: [];\n updateFilter: Function;\n expanded: boolean;\n collapseFilter: Function;\n isActive: boolean;\n pageConfig: {\n accentColor: string;\n };\n trackFilterEvents: (filterType: string) => void;\n}\n\nclass FilterByPhotographer extends React.Component<FilterByPhotographerProps> {\n constructor(props: FilterByPhotographerProps) {\n super(props);\n this.selectionsChanged = this.selectionsChanged.bind(this);\n }\n\n selectionsChanged(newSelections: any) {\n this.props.updateFilter(newSelections);\n this.props.trackFilterEvents(\"photographer\");\n }\n\n render() {\n return (\n <div className=\"panel panel-default\">\n <div className=\"panel-heading\" role=\"tab\" id=\"headingFour\">\n {this.props.isActive && (\n <div className=\"active-icon\">\n <ActiveIcon color={this.props.pageConfig.accentColor} />\n </div>\n )}\n <img src={photographer} alt=\"\" className=\"filter-icon\" />\n <h4 className=\"panel-title\">\n <a\n aria-expanded={this.props.expanded}\n className={`${this.props.expanded ? \"\" : \"collapsed\"} ${\n this.props.isActive ? \"active\" : \"inactive\"\n }`}\n onClick={e => this.props.collapseFilter(e, \"photographer\")}\n role=\"button\"\n data-toggle=\"collapse\"\n data-parent=\"#filter-accordion\"\n href=\"#collapseFour\"\n aria-controls=\"collapseThree\"\n >\n Photographer\n </a>\n </h4>\n </div>\n <div\n id=\"collapseFour\"\n className={\n \"panel-collapse collapse \" + (this.props.expanded ? \"in\" : \"\")\n }\n role=\"tabpanel\"\n aria-labelledby=\"headingThree\"\n >\n <div className=\"panel-body\">\n <ul className=\"check-radio checkmark\">\n <CheckboxGroup\n name=\"selectedPhotographers\"\n value={this.props.selectedPhotographers}\n onChange={this.selectionsChanged}\n >\n {this.props.photographersList.map((photographer: any) => (\n <li key={photographer.id}>\n <label>\n <Checkbox value={photographer.id} />\n <span className=\"r-dot\" />\n <span className=\"r-desc\">\n {photographer.name} ({photographer.albumsCount})\n </span>\n </label>\n </li>\n ))}\n </CheckboxGroup>\n </ul>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default FilterByPhotographer;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport _ from \"lodash\";\nimport ActiveIcon from \"../vectors/ActiveIcon\";\nconst bibIcon = require(\"../../styles/bib-icon.svg\");\n\ninterface FilterByTextProps {\n currentText: string;\n updateFilter: Function;\n expanded: boolean;\n collapseFilter: Function;\n isActive: boolean;\n pageConfig: {\n accentColor: string;\n };\n trackFilterEvents: (filterType: string) => void;\n}\nclass FilterByText extends React.Component<FilterByTextProps> {\n componentWillReceiveProps(nextProps: any) {\n //@ts-ignore\n document.getElementById(\"photoText\").value = nextProps.currentText;\n }\n\n //@ts-ignore\n enteredText = () => document.getElementById(\"photoText\").value;\n\n submitText = (e: any) => {\n e.preventDefault();\n //@ts-ignore\n (window.dataLayer || []).push({ event: \"filterAlbumByBibNumber\" });\n this.props.updateFilter(this.enteredText());\n this.props.trackFilterEvents(\"bibNumber\");\n };\n\n render() {\n return (\n <div className=\"panel panel-default\">\n <div className=\"panel-heading\" role=\"tab\" id=\"headingFive\">\n {this.props.isActive && (\n <div className=\"active-icon\">\n <ActiveIcon color={this.props.pageConfig.accentColor} />\n </div>\n )}\n <img src={bibIcon} alt=\"\" className=\"filter-icon\" />\n <h4 className=\"panel-title\">\n <a\n aria-expanded={this.props.expanded}\n className={`${this.props.expanded ? \"\" : \"collapsed\"} ${\n this.props.isActive ? \"active\" : \"inactive\"\n }`}\n onClick={e => this.props.collapseFilter(e, \"bib\")}\n role=\"button\"\n data-toggle=\"collapse\"\n data-parent=\"#filter-accordion\"\n href=\"#collapseFive\"\n aria-controls=\"collapseFive\"\n >\n Bib number\n </a>\n </h4>\n </div>\n <div\n id=\"collapseFive\"\n className={\n \"panel-collapse collapse \" + (this.props.expanded ? \"in\" : \"\")\n }\n role=\"tabpanel\"\n aria-labelledby=\"headingFive\"\n >\n <div className=\"panel-body dv-text-filter\">\n <form className=\"form-inline\" onSubmit={this.submitText}>\n <div className=\"form-group\">\n <input\n id=\"photoText\"\n type=\"text\"\n className=\"form-control\"\n placeholder=\"Your bib number\"\n defaultValue={this.props.currentText}\n />\n </div>\n <button type=\"submit\" className=\"btn btn-default btn-lg\">\n <span className=\"fa fa-angle-right\" />\n </button>\n </form>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default FilterByText;\n","import React, { ChangeEvent } from \"react\";\nconst favoriteFilterIcon = require(\"../../styles/favourite.svg\");\nimport ActiveIcon from \"../vectors/ActiveIcon\";\n\ninterface FilterByFavoriteProps {\n updateFilter: Function;\n expanded: boolean;\n collapseFilter: Function;\n isActive: boolean;\n pageConfig: {\n accentColor: string;\n };\n trackFilterEvents: (filterType: string) => void;\n}\n\nclass FilterByFavorite extends React.Component<FilterByFavoriteProps> {\n constructor(props: FilterByFavoriteProps) {\n super(props);\n this.handleSelectFavoritesFilter =\n this.handleSelectFavoritesFilter.bind(this);\n }\n\n handleSelectFavoritesFilter = (event: ChangeEvent<HTMLInputElement>) => {\n this.props.updateFilter(event.target.checked);\n if (event.target.checked) {\n this.props.trackFilterEvents(\"favorites\");\n }\n };\n\n render() {\n return (\n <div className=\"panel panel-default\">\n <div className=\"panel-heading\" role=\"tab\" id=\"favorite-section\">\n {this.props.isActive && (\n <div className=\"active-icon\">\n <ActiveIcon color={this.props.pageConfig.accentColor} />\n </div>\n )}\n <img src={favoriteFilterIcon} alt=\"\" className=\"filter-icon\" />\n <h4 className=\"panel-title\">\n <a\n aria-expanded={this.props.expanded}\n className={`${this.props.expanded ? \"\" : \"collapsed\"} ${\n this.props.isActive ? \"active\" : \"inactive\"\n }`}\n onClick={e => this.props.collapseFilter(e, \"favorite\")}\n role=\"button\"\n data-toggle=\"collapse\"\n data-parent=\"#filter-accordion\"\n href=\"#collapse-favorite-section\"\n aria-controls=\"collapse-favorite-section\"\n >\n Favorites\n </a>\n </h4>\n </div>\n <div\n id=\"collapse-favorite-section\"\n className={\n \"panel-collapse collapse \" + (this.props.expanded ? \"in\" : \"\")\n }\n role=\"tabpanel\"\n aria-labelledby=\"favorite-section\"\n >\n <div className=\"panel-body\">\n <ul className=\"check-radio checkmark\">\n <li>\n <label>\n <input\n type=\"checkbox\"\n id=\"checkbox\"\n checked={this.props.isActive}\n onChange={this.handleSelectFavoritesFilter}\n />\n <span className=\"r-dot\" />\n <span className=\"r-desc\">Show only favorites</span>\n </label>\n </li>\n </ul>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default FilterByFavorite;\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport FilterByImage from \"./FilterByImage\";\nimport FilterByTime from \"./FilterByTime\";\nimport FilterByAlbum from \"./FilterByAlbum\";\nimport FilterByPhotographer from \"./FilterByPhotographer\";\nimport FilterByText from \"./FilterByText\";\nimport FilterByFavorite from \"./FilterByFavorite\";\nconst toggle = require(\"../../styles/toggleIn.svg\");\nimport Telemetry from \"../../../../utils/rudderstackAnalytics\";\nimport { Event } from \"../types\";\n\ninterface FiltersContainerProps {\n filterSelections: { [key: string]: any };\n photoTimeRange: {\n min: number;\n max: number;\n };\n filterOptions: {\n albums: [];\n photographers: [];\n };\n updateFilters: Function;\n resetFilter: Function;\n clearSelfie: Function;\n photoBundleDiscountAvailed?: boolean;\n toggleSidebar: Function;\n width: number;\n selfieFilterExpanded: boolean;\n timeFilterExpanded: boolean;\n albumFilterExpanded: boolean;\n photographerFilterExpanded: boolean;\n bibFilterExpanded: boolean;\n favoritesFilterExpanded: boolean;\n collapseFilter: Function;\n changeZindex: Function;\n setClearCartPopup: Function;\n isPhotoIndexingDisabled: boolean;\n getReferenceImage: () => string | null;\n cartCount?: number;\n browsePhotosPath: string;\n selectedImage: string | null;\n event: Event;\n activeFilters: Function;\n}\ninterface FiltersContainerState {}\n\nclass FiltersContainer extends Component<\n FiltersContainerProps,\n FiltersContainerState\n> {\n static contextTypes = {\n enableFilterByText: PropTypes.bool,\n photoBundleDiscountEventId: PropTypes.number,\n pageConfiguration: PropTypes.shape({\n primaryColor: PropTypes.string\n }),\n hidePhotographersFilter: PropTypes.bool,\n isEmbed: PropTypes.bool,\n albumModeID: PropTypes.string\n };\n state = {\n selectedImage: this.props.selectedImage\n };\n\n updateFilters =\n (filterType: string, clearFilters: boolean) => (newValue: any) => {\n this.props.updateFilters(\n {\n [filterType]: newValue\n },\n clearFilters\n );\n };\n\n updatePhotographersFilter = (newValue: any) => {\n this.props.updateFilters(\n {\n photographers: newValue,\n albums: []\n },\n false\n );\n };\n\n updateAlbumsFilter = (newValue: any) => {\n this.props.updateFilters(\n {\n albums: newValue,\n photographers: []\n },\n false\n );\n };\n\n updateFavoritesFilter = (selected: boolean) => {\n this.props.updateFilters({ favoritesSelected: selected });\n };\n\n resetFilters = (e: { preventDefault: () => void }) => {\n e.preventDefault();\n this.props.resetFilter();\n };\n\n static getDerivedStateFromProps(props: any, state: any) {\n return { selectedImage: props.selectedImage };\n }\n\n trackFilterEvents = (filterType: string) => {\n Telemetry.track(\"event-gallery:filter-applied\", {\n eventId: this.props.event.id,\n eventName: this.props.event.name,\n filterType: filterType,\n embeddedMode: this.context.isEmbed\n });\n if (this.props.event.isPrivate && filterType === \"selfie\") {\n Telemetry.track(\"event-gallery:private-event:selfie-uploaded\", {\n eventId: this.props.event.id,\n eventName: this.props.event.name,\n eoUserId: this.props.event.eoUserId\n });\n }\n };\n\n shouldShowClearFilters = () => {\n if (this.context.albumModeID) {\n return (\n this.props.activeFilters().includes(\"albums\") &&\n this.props.activeFilters().length > 1\n );\n }\n\n return this.props.activeFilters().length > 0;\n };\n\n render() {\n return (\n <div className=\"dv-eventsfilter\" id=\"dv-eventfilter\">\n <div className=\"filter-head-border\">\n <div className=\"dv-filterhead\">\n <span className=\"dv-filterby\">\n <svg\n className=\"filter-icon\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13.9514 0.205411C13.9162 0.143328 13.8639 0.0914293 13.7999 0.0552527C13.736 0.0190762 13.6628 -2.07112e-05 13.5882 1.68559e-08H0.411785C0.337254 -3.47279e-06 0.264119 0.0190983 0.200181 0.0552681C0.136242 0.091438 0.0838967 0.143319 0.048727 0.20538C0.0135574 0.267441 -0.00311762 0.337353 0.000480104 0.407661C0.00407782 0.477969 0.0278134 0.546037 0.0691557 0.604605L4.94119 7.5066V13.6111C4.94126 13.7142 4.98466 13.8131 5.06187 13.886C5.13907 13.9589 5.24377 13.9999 5.35296 14C5.38658 14.0001 5.42009 13.9962 5.45268 13.9883L8.7468 13.2106C8.8359 13.1895 8.91501 13.141 8.97155 13.0727C9.02809 13.0043 9.05881 12.9201 9.05883 12.8333V7.5066L13.9309 0.604528C13.9722 0.54596 13.9959 0.477921 13.9995 0.407644C14.0031 0.337366 13.9865 0.267478 13.9514 0.205411Z\"\n fill={this.context.pageConfiguration.primaryColor}\n />\n </svg>\n <span\n style={{\n color: this.context.pageConfiguration.primaryColor,\n fontSize: \"13px\"\n }}\n >\n Filter By\n </span>\n </span>\n <span>\n {this.shouldShowClearFilters() && (\n <a className=\"a-clear\" onClick={e => this.resetFilters(e)}>\n <span className=\"fa fa-refresh\" /> Clear all filters\n </a>\n )}\n {this.props.width > 992 && (\n <img\n className=\"toggleIn-img\"\n onClick={() => this.props.toggleSidebar()}\n src={toggle}\n />\n )}\n </span>\n </div>\n </div>\n <div id=\"filter-accordion\">\n <div className=\"filter-border\">\n <FilterByImage\n updateFilter={this.updateFilters(\"referenceImage\", false)}\n selectedImage={this.state.selectedImage}\n similarity={70}\n photoBundleDiscountAvailed={this.props.photoBundleDiscountAvailed}\n cartCount={this.props.cartCount}\n browsePhotosPath={this.props.browsePhotosPath}\n expanded={this.props.selfieFilterExpanded}\n changeZindex={this.props.changeZindex}\n collapseFilter={this.props.collapseFilter}\n clearSelfie={this.props.clearSelfie}\n isPhotoIndexingDisabled={this.props.isPhotoIndexingDisabled}\n getReferenceImage={this.props.getReferenceImage}\n isActive={this.props.filterSelections.referenceImage}\n pageConfig={this.context.pageConfiguration}\n trackFilterEvents={this.trackFilterEvents}\n setClearCartPopup={this.props.setClearCartPopup}\n />\n </div>\n <div className=\"filter-border\">\n <FilterByFavorite\n updateFilter={this.updateFavoritesFilter}\n expanded={this.props.favoritesFilterExpanded}\n collapseFilter={this.props.collapseFilter}\n isActive={this.props.filterSelections.favoritesSelected}\n pageConfig={this.context.pageConfiguration}\n trackFilterEvents={this.trackFilterEvents}\n />\n </div>\n <div className=\"filter-border\">\n <FilterByTime\n photoTimeRange={this.props.photoTimeRange}\n updateFilter={this.updateFilters(\"photoTime\", false)}\n selectedTime={this.props.filterSelections.photoTime}\n expanded={this.props.timeFilterExpanded}\n collapseFilter={this.props.collapseFilter}\n isActive={this.props.filterSelections.photoTime.active}\n pageConfig={this.context.pageConfiguration}\n trackFilterEvents={this.trackFilterEvents}\n />\n </div>\n {!this.context.albumModeID && (\n <div className=\"filter-border\">\n <FilterByAlbum\n albums={this.props.filterOptions.albums}\n updateFilter={this.updateAlbumsFilter}\n selectedAlbums={this.props.filterSelections.albums}\n expanded={this.props.albumFilterExpanded}\n collapseFilter={this.props.collapseFilter}\n isActive={this.props.filterSelections.albums.length > 0}\n pageConfig={this.context.pageConfiguration}\n trackFilterEvents={this.trackFilterEvents}\n />\n </div>\n )}\n\n {this.context.enableFilterByText ? (\n <div className=\"filter-border\">\n <FilterByText\n updateFilter={this.updateFilters(\"photoText\", false)}\n currentText={this.props.filterSelections.photoText}\n expanded={this.props.bibFilterExpanded}\n collapseFilter={this.props.collapseFilter}\n isActive={this.props.filterSelections.photoText}\n pageConfig={this.context.pageConfiguration}\n trackFilterEvents={this.trackFilterEvents}\n />\n </div>\n ) : null}\n {!this.context.hidePhotographersFilter ? (\n <div className=\"filter-border\">\n <FilterByPhotographer\n updateFilter={this.updatePhotographersFilter}\n photographersList={this.props.filterOptions.photographers}\n selectedPhotographers={\n this.props.filterSelections.photographers\n }\n expanded={this.props.photographerFilterExpanded}\n collapseFilter={this.props.collapseFilter}\n isActive={this.props.filterSelections.photographers.length > 0}\n pageConfig={this.context.pageConfiguration}\n trackFilterEvents={this.trackFilterEvents}\n />\n </div>\n ) : null}\n </div>\n </div>\n );\n }\n}\n\nexport default FiltersContainer;\n","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\">×</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","/* This program is free software. It comes without any warranty, to\n * the extent permitted by applicable law. You can redistribute it\n * and/or modify it under the terms of the Do What The Fuck You Want\n * To Public License, Version 2, as published by Sam Hocevar. See\n * http://www.wtfpl.net/ for more details. */\n'use strict';\nmodule.exports = leftPad;\n\nvar cache = [\n '',\n ' ',\n ' ',\n ' ',\n ' ',\n ' ',\n ' ',\n ' ',\n ' ',\n ' '\n];\n\nfunction leftPad (str, len, ch) {\n // convert `str` to a `string`\n str = str + '';\n // `len` is the `pad`'s length now\n len = len - str.length;\n // doesn't need to pad\n if (len <= 0) return str;\n // `ch` defaults to `' '`\n if (!ch && ch !== 0) ch = ' ';\n // convert `ch` to a `string` cuz it could be a number\n ch = ch + '';\n // cache common use cases\n if (ch === ' ' && len < 10) return cache[len] + str;\n // `pad` starts with an empty string\n var pad = '';\n // loop\n while (true) {\n // add `ch` to `pad` if `len` is odd\n if (len & 1) pad += ch;\n // divide `len` by 2, ditch the remainder\n len >>= 1;\n // \"double\" the `ch` so this operation count grows logarithmically on `len`\n // each time `ch` is \"doubled\", the `len` would need to be \"doubled\" too\n // similar to finding a value in binary search tree, hence O(log(n))\n if (len) ch += ch;\n // `len` is 0, exit the loop\n else break;\n }\n // pad `str`!\n return pad + str;\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CheckboxGroup = exports.Checkbox = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Checkbox = exports.Checkbox = function (_Component) {\n _inherits(Checkbox, _Component);\n\n function Checkbox() {\n _classCallCheck(this, Checkbox);\n\n return _possibleConstructorReturn(this, (Checkbox.__proto__ || Object.getPrototypeOf(Checkbox)).apply(this, arguments));\n }\n\n _createClass(Checkbox, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n if (!(this.context && this.context.checkboxGroup)) {\n throw new Error('The `Checkbox` component must be used as a child of `CheckboxGroup`.');\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$checkboxGrou = this.context.checkboxGroup,\n name = _context$checkboxGrou.name,\n checkedValues = _context$checkboxGrou.checkedValues,\n onChange = _context$checkboxGrou.onChange;\n\n var optional = {};\n if (checkedValues) {\n optional.checked = checkedValues.indexOf(this.props.value) >= 0;\n }\n if (typeof onChange === 'function') {\n optional.onChange = onChange.bind(null, this.props.value);\n }\n\n return _react2.default.createElement('input', _extends({}, this.props, {\n type: 'checkbox',\n name: name,\n disabled: this.props.disabled\n }, optional));\n }\n }]);\n\n return Checkbox;\n}(_react.Component);\n\nCheckbox.contextTypes = {\n checkboxGroup: _propTypes2.default.object.isRequired\n};\n\nvar CheckboxGroup = exports.CheckboxGroup = function (_Component2) {\n _inherits(CheckboxGroup, _Component2);\n\n function CheckboxGroup(props) {\n _classCallCheck(this, CheckboxGroup);\n\n var _this2 = _possibleConstructorReturn(this, (CheckboxGroup.__proto__ || Object.getPrototypeOf(CheckboxGroup)).call(this, props));\n\n _this2._isControlledComponent = _this2._isControlledComponent.bind(_this2);\n _this2._onCheckboxChange = _this2._onCheckboxChange.bind(_this2);\n _this2.getChildContext = _this2.getChildContext.bind(_this2);\n _this2.getValue = _this2.getValue.bind(_this2);\n _this2.state = {\n value: _this2.props.value || _this2.props.defaultValue || []\n };\n return _this2;\n }\n\n _createClass(CheckboxGroup, [{\n key: 'getChildContext',\n value: function getChildContext() {\n var checkboxGroup = {\n name: this.props.name,\n checkedValues: this.state.value,\n onChange: this._onCheckboxChange\n };\n return { checkboxGroup: checkboxGroup };\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(newProps) {\n if (newProps.value) {\n this.setState({\n value: newProps.value\n });\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n Component = _props.Component,\n name = _props.name,\n value = _props.value,\n onChange = _props.onChange,\n children = _props.children,\n rest = _objectWithoutProperties(_props, ['Component', 'name', 'value', 'onChange', 'children']);\n\n return _react2.default.createElement(\n Component,\n rest,\n children\n );\n }\n }, {\n key: 'getValue',\n value: function getValue() {\n return this.state.value;\n }\n }, {\n key: '_isControlledComponent',\n value: function _isControlledComponent() {\n return Boolean(this.props.value);\n }\n }, {\n key: '_onCheckboxChange',\n value: function _onCheckboxChange(checkboxValue, event) {\n var newValue = void 0;\n if (event.target.checked) {\n newValue = this.state.value.concat(checkboxValue);\n } else {\n newValue = this.state.value.filter(function (v) {\n return v !== checkboxValue;\n });\n }\n\n if (this._isControlledComponent()) {\n this.setState({ value: this.props.value });\n } else {\n this.setState({ value: newValue });\n }\n\n if (typeof this.props.onChange === 'function') {\n this.props.onChange(newValue, event, this.props.name);\n }\n }\n }]);\n\n return CheckboxGroup;\n}(_react.Component);\n\nCheckboxGroup.childContextTypes = {\n checkboxGroup: _propTypes2.default.object.isRequired\n};\nCheckboxGroup.propTypes = {\n name: _propTypes2.default.string,\n defaultValue: _propTypes2.default.array,\n value: _propTypes2.default.array,\n onChange: _propTypes2.default.func,\n children: _propTypes2.default.node.isRequired,\n Component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func, _propTypes2.default.object])\n};\nCheckboxGroup.defaultProps = {\n Component: \"div\"\n};\n"],"names":["album","photographer"],"sourceRoot":""}