{"version":3,"sources":["webpack:///../resources/assets/js/analytics/track-photo.ts","webpack:///../resources/assets/js/components/ImgixImage.tsx","webpack:///../resources/assets/js/components/TrackingPixel.tsx","webpack:///../resources/assets/js/components/VectorIcon.tsx","webpack:///../resources/assets/js/components/WidthProvider.tsx","webpack:///../resources/assets/js/gallery/ModalImage.tsx","webpack:///../resources/assets/js/gallery/SingleImage.tsx","webpack:///../resources/assets/js/gallery/styles.ts"],"names":["getPhotoAnalyticsUrl","photo","analyticsParams","isModalView","baseUrl","analytics","window","addUserToOmnitureBeaconParameters","Object","assign","updateOmnitureBeaconParameter","url","prop31","Math","floor","random","values","join","ImgixImage","PureComponent","constructor","React","createRef","imageUrl","isLoading","imageContainer","current","width","height","getBoundingClientRect","options","w","fit","props","h","imgixUrl","src","state","setState","event","onLoad","componentDidMount","updateImageUrl","addEventListener","componentWillUnmount","removeEventListener","componentDidUpdate","prevProps","render","ref","className","onClick","style","display","justifyContent","alignItems","alt","maxHeight","padding","margin","onImageLoaded","TrackingPixel","iconPath","Platform","select","desktop","mobile","VectorIcon","backgroundImage","name","backgroundPosition","backgroundRepeat","backgroundSize","WidthProvider","container","updateWidth","resizeHandler","fromEvent","subscribe","children","unsubscribe","ModalImage","index","total","classes","author","credit","altText","caption","infoContainer","bylineCounterContainer","modalText","counter","byline","flexDirection","backgroundColor","flexGrow","minHeight","color","fontFamily","textAlign","lineHeight","marginBottom","fontSize","textTransform","letterSpacing","fontWeight","injectSheet","styles","SingleImageComponent","analyticsUrl","analyticsUrlBase","_prevProps","prevState","doAnalytics","hideCaptionAndCredit","creditText","Fragment","position","expandable","enterModalView","expandIcon","photoCredit","Modal","isOpen","onRequestClose","exitModalView","ariaHideApp","shouldCloseOnOverlayClick","overlay","modalOverlay","content","modalContent","adContainer","top","right","bottom","left","fullscreenAdContainer","zIndex","captionIcon","float","marginRight","marginTop","viewContext","photoCaption","base","overflow","cursor","border","borderRadius","boxShadow","adSlug","pointerEvents","modalClose","outline","borderWidth","modalCloseIcon","marginLeft","adSlide"],"mappings":"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","file":"b92cb1cfe3038d7441e6.js","sourcesContent":["import { GalleryPhoto, GalleryAnalytics } from '../gallery/Gallery'\n\n/** TODO: genaralize into a page tracking capability for the Omniture Consumer class */\nexport function getPhotoAnalyticsUrl(\n photo: GalleryPhoto,\n analyticsParams: GalleryAnalytics,\n isModalView: boolean,\n baseUrl: string\n) {\n // todo: move analytics helpers to an importable location\n let analytics = window.addUserToOmnitureBeaconParameters(\n Object.assign({}, analyticsParams)\n )\n analytics = window.updateOmnitureBeaconParameter(\n analytics,\n 'prop1',\n `c1=${photo.url}`\n )\n if (isModalView) {\n analytics = window.updateOmnitureBeaconParameter(\n analytics,\n 'prop31',\n `${analyticsParams.prop31} Full Screen`\n )\n }\n\n return `${baseUrl}/${Math.floor(Math.random() * 100000)}?${Object.values(\n analytics\n ).join('&')}`\n}\n","import React, { PureComponent, SyntheticEvent, MouseEvent } from 'react'\nimport { ImgixOptions, imgixUrl } from '../utils/imgix'\n\ntype Props = {\n /** Source url for the image */\n src: string\n /** Alt-text for the image */\n alt: string\n /** Called when the image container is clicked */\n onClick?(e: MouseEvent): void\n /** Called when the image is loaded */\n onLoad?(event: SyntheticEvent): void\n /** Class name for the image container */\n className: string\n /** https://docs.imgix.com/apis/url/size/fit */\n fit:\n | 'clip'\n | 'crop'\n | 'clamp'\n | 'facearea'\n | 'fill'\n | 'fillmax'\n | 'max'\n | 'min'\n | 'scale'\n}\n\ntype State = {\n imageUrl: string\n isLoading: boolean\n}\n/**\n * Component for rendering a perfectly-sized image from imgix without knowing the dimensions of the container in advance.\n */\nexport class ImgixImage extends PureComponent {\n static defaultProps: Partial = {\n fit: 'clip'\n }\n imageContainer = React.createRef()\n state: State = {\n imageUrl: '',\n isLoading: false\n }\n componentDidMount() {\n this.updateImageUrl()\n window.addEventListener('resize', this.updateImageUrl)\n }\n componentWillUnmount() {\n window.removeEventListener('resize', this.updateImageUrl)\n }\n componentDidUpdate(prevProps: Props) {\n if (this.props.src !== prevProps.src) {\n this.updateImageUrl()\n }\n }\n updateImageUrl = () => {\n if (this.imageContainer.current) {\n const {\n width,\n height\n } = this.imageContainer.current.getBoundingClientRect()\n if (width) {\n const options: Partial = {\n w: Math.floor(width),\n fit: this.props.fit\n }\n if (height) {\n options.h = Math.floor(height)\n }\n const imageUrl = imgixUrl(this.props.src, options)\n if (imageUrl !== this.state.imageUrl) {\n this.setState({ imageUrl, isLoading: true })\n }\n }\n }\n }\n onImageLoaded = (event: SyntheticEvent) => {\n this.setState({ isLoading: false })\n this.props.onLoad && this.props.onLoad(event)\n }\n render() {\n const { imageUrl } = this.state\n return (\n \n {imageUrl && (\n \n )}\n \n )\n }\n}\n","import React, { SFC } from 'react'\n\nexport const TrackingPixel: SFC<{ url: string; className: string }> = ({\n url,\n className\n}) => (\n {''}\n)\n","import React, { PureComponent, MouseEvent } from 'react'\nimport { Platform } from '../utils/platform'\n\ntype Props = {\n /** Filename of the icon */\n name: string\n /** Class name to apply */\n className?: string\n /** Called on icon click */\n onClick?(e: MouseEvent): void\n}\n\n/** The path to get icons from. */\nconst iconPath = Platform.select({\n desktop: '/static/img/icons/',\n mobile: '../img/'\n})\n\n/**\n * Component that displays SVG graphics.\n * Takes a filename and resolves default icon paths.\n */\nexport class VectorIcon extends PureComponent {\n render() {\n return (\n \n )\n }\n}\n","import React, { PureComponent } from 'react'\nimport { fromEvent, Subscription } from 'rxjs'\n\ntype Props = {\n children(width: number): JSX.Element\n}\n\ntype State = {\n width: number\n}\n\nexport class WidthProvider extends PureComponent {\n state = { width: 0 }\n\n container = React.createRef()\n\n resizeHandler: Subscription\n\n componentDidMount() {\n this.updateWidth()\n\n this.resizeHandler = fromEvent(window, 'resize').subscribe(this.updateWidth)\n }\n\n updateWidth = () => {\n if (this.container.current) {\n const { width } = this.container.current.getBoundingClientRect()\n this.setState({ width })\n }\n }\n\n render() {\n return (\n
\n {this.state.width && this.props.children(this.state.width)}\n
\n )\n }\n\n componentWillUnmount() {\n this.resizeHandler.unsubscribe()\n }\n}\n","import React, { PureComponent, MouseEvent } from 'react'\nimport injectSheet from 'react-jss'\nimport { ClassNameMap } from '../utils/jss-types'\nimport { ImgixImage } from '../components/ImgixImage'\nimport { GalleryPhoto } from './Gallery'\n\ntype Props = {\n photo: GalleryPhoto\n /** Called on image click */\n onClick?(e: MouseEvent): void\n /** Current gallery index */\n index?: number\n /** Total number of items in the gallery */\n total?: number\n /** Class name map for the component */\n classes: ClassNameMap\n}\n\nclass ModalImage extends PureComponent {\n static styles = {\n container: {\n display: 'flex',\n flexDirection: 'column',\n height: '100%'\n },\n imageContainer: {\n backgroundColor: 'rgb(17,17,17)',\n flexGrow: 1,\n height: '100%',\n minHeight: 200\n },\n infoContainer: {\n padding: '15px'\n },\n bylineCounterContainer: {\n display: 'flex',\n flexDirection: 'horizontal',\n justifyContent: 'space-between'\n },\n modalText: {\n color: '#e8e8e8',\n fontFamily: '\"Benton Sans\", Helvetica, Arial, sans-serif',\n textAlign: 'left',\n lineHeight: 1.3\n },\n byline: {\n marginBottom: 12,\n fontSize: 9,\n textAlign: 'right',\n textTransform: 'uppercase',\n letterSpacing: 0.5\n },\n counter: {\n fontWeight: 'bold'\n },\n caption: {\n fontSize: 12\n }\n }\n\n render() {\n const { photo, onClick, index, total, classes } = this.props\n\n const { url, author, credit, altText, caption } = photo\n\n return (\n
\n \n
\n
\n
\n {total && index && total > 1 ? `${index + 1} / ${total}` : ' '}\n
\n

\n {author}\n {author && credit ? ' – ' : ''}\n {credit}\n

\n
\n

\n {caption}\n

\n
\n
\n )\n }\n}\n// tslint:disable-next-line\nexport default injectSheet(ModalImage.styles as object)(ModalImage)\n","import React, { PureComponent, Fragment } from 'react'\nimport Modal from 'react-modal'\nimport { GalleryPhoto, GalleryAnalytics } from './Gallery'\nimport { imgixUrl } from '../utils/imgix'\nimport { WidthProvider } from '../components/WidthProvider'\nimport injectSheet from 'react-jss'\nimport { ClassNameMap } from '../utils/jss-types'\nimport styles from './styles'\nimport { VectorIcon } from '../components/VectorIcon'\nimport ModalImage from './ModalImage'\nimport { getPhotoAnalyticsUrl } from '../analytics/track-photo'\nimport { TrackingPixel } from '../components/TrackingPixel'\n\ntype Props = {\n photo: GalleryPhoto\n hideCaptionAndCredit: boolean\n analyticsUrlBase: string\n analytics: GalleryAnalytics\n classes: ClassNameMap\n}\n\ntype State = {\n isModalView: boolean\n analyticsUrl: string\n}\n\nclass SingleImageComponent extends PureComponent {\n static defaultProps = {\n hideCaptionAndCredit: false\n }\n\n state: State = {\n isModalView: false,\n analyticsUrl: 'https://apps.startribune.com/circulars/images/blank.gif'\n }\n\n enterModalView = () => this.setState({ isModalView: true })\n\n exitModalView = () => this.setState({ isModalView: false })\n\n doAnalytics = () => {\n const analyticsUrl = getPhotoAnalyticsUrl(\n this.props.photo,\n this.props.analytics,\n this.state.isModalView,\n this.props.analyticsUrlBase\n )\n\n this.setState({ analyticsUrl })\n }\n\n componentDidUpdate(_prevProps: Props, prevState: State) {\n if (!prevState.isModalView && this.state.isModalView) {\n this.doAnalytics()\n }\n }\n\n render() {\n const { photo, classes, hideCaptionAndCredit } = this.props\n\n const creditText = `${photo.author || ''}${\n photo.author && photo.credit ? ' – ' : ''\n }${photo.credit || ''}`\n\n return (\n \n \n {width => (\n \n
\n \n \n
\n {!hideCaptionAndCredit && (\n \n {creditText}\n
\n
\n {photo.caption}\n
\n
\n
\n )}\n
\n )}\n
\n \n \n \n \n
\n )\n }\n}\n\n// tslint:disable-next-line\nexport default injectSheet(styles as object)(SingleImageComponent)\n","import { Props } from './Gallery'\n\n// tslint:disable-next-line\nexport default {\n adContainer: {\n position: 'absolute',\n margin: 'auto',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n width: '300px',\n height: '250px'\n },\n fullscreenAdContainer: {\n position: 'fixed',\n top: 'calc(45% - 125px)',\n left: 'calc(50% - 150px)',\n zIndex: 2222\n },\n captionIcon: {\n float: 'left',\n width: 18,\n height: 18,\n marginRight: 6,\n marginTop: ({ viewContext }: Props) =>\n viewContext === 'content-standalone' ? '3px' : '-1px'\n },\n photoCredit: {\n marginTop: '5px',\n display: 'block',\n color: '#666',\n textTransform: 'uppercase',\n fontSize: '.65385em',\n fontFamily: '\"Benton Sans\",Helvetica,Arial,sans-serif',\n letterSpacing: '1px',\n marginBottom: '4px',\n textAlign: 'right'\n },\n photoCaption: ({ viewContext }: Props) => {\n const base = {\n fontSize: '12px',\n lineHeight: '17px',\n display: 'block',\n fontFamily: '\"Benton Sans\",Helvetica,Arial,sans-serif',\n color: '#646464',\n marginBottom: '16px'\n }\n\n if (viewContext === 'content-standalone') {\n return Object.assign({}, base, {\n color: '#222',\n fontFamily: '\"Poynter Serif RE\", Georgia, Times, serif',\n fontSize: '15px',\n lineHeight: '23px',\n marginBottom: '5px',\n letterSpacing: '-0.3px'\n })\n }\n\n if (viewContext === 'home') {\n return Object.assign({}, base, {\n maxHeight: '50px',\n overflow: 'hidden'\n })\n }\n\n return base\n },\n modalOverlay: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: 'rgba(0,0,0,0.85)',\n zIndex: 9800,\n padding: '4% 12% 10%',\n cursor: 'zoom-out'\n },\n modalContent: {\n position: 'relative',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n zIndex: 9801,\n display: 'block',\n width: '100%',\n height: '100%',\n maxHeight: '90%',\n border: 'none',\n borderRadius: 0,\n backgroundColor: '#000000',\n padding: 0,\n boxShadow: '0 4px 8px rgba(0,0,0,0.6)',\n cursor: 'pointer'\n },\n adSlug: {\n position: 'absolute',\n top: '-16px',\n lineHeight: '16px',\n fontSize: '13px',\n left: 0,\n width: '100%',\n textAlign: 'center'\n },\n expandIcon: {\n cursor: 'zoom-in',\n pointerEvents: 'none',\n width: 20,\n height: 20,\n position: 'absolute',\n zIndex: 1,\n bottom: 8,\n right: 8\n },\n modalClose: {\n position: 'fixed',\n top: 30,\n right: 40,\n borderRadius: '50%',\n outline: 'none',\n borderWidth: 0,\n width: 30,\n height: 30,\n backgroundColor: 'white',\n fontSize: 30,\n color: '#222',\n textAlign: 'center',\n lineHeight: 35,\n padding: 0\n },\n modalCloseIcon: {\n width: 12,\n height: 12,\n marginLeft: 9\n },\n expandable: {\n cursor: 'zoom-in'\n },\n adSlide: {\n backgroundColor: '#e8e8e8',\n height: '100%'\n }\n}\n"],"sourceRoot":""}