{"version":3,"file":"js/gallery-0293403d8aeb1af09215.js","mappings":"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","sources":["webpack://buildbook/./app/javascript/components/gallery/index.jsx","webpack://buildbook/./app/javascript/packs/gallery.jsx","webpack://buildbook/./app/javascript/shared/copy_text.js","webpack://buildbook/./app/javascript/shared/scroll_to.js"],"sourcesContent":["import React from 'react'\nimport { copyTextToClipboard } from '../../shared/copy_text';\nimport { scrollToHorizontal } from '../../shared/scroll_to';\n\nexport default class Gallery extends React.Component {\n\n constructor(props) {\n super(props);\n const imageIds = this.props.imageIds.split(\",\");\n this.state = {\n galleryUrl: this.props.galleryUrl,\n imageIds,\n activeId: this.props.activeImageId || imageIds[0],\n canScrollLeft: false,\n canScrollRight: false,\n showShareWidget: false,\n coverOrContain: imageIds.map( () => 'cover' ),\n images: imageIds.map( () => new Image() ),\n };\n }\n\n\n componentDidMount() {\n this.state.imageIds.map( (id, index) => this.createPreloader(id, index, 0) );\n\n if( !!this.thumbnailRow ){\n this.thumbnailRow.addEventListener('scroll', this.updateCanScrolls);\n if( this.thumbnailRow.scrollWidth > this.thumbnailRow.offsetWidth ){\n this.setState({ canScrollRight: true });\n }\n }\n }\n\n componentWillUnmount() {\n if( !!this.thumbnailRow ) this.thumbnailRow.removeEventListener('scroll', this.updateCanScrolls);\n }\n\n componentDidUpdate(prevProps, prevState){\n if( prevState.activeId !== this.state.activeId ){ \n this.scrollToActiveThumbnail();\n const activeIndex = this.state.imageIds.findIndex( (row) => { return row === this.state.activeId; } )\n this.state.imageIds.map( (id, index) => this.createPreloader(id, index, activeIndex) );\n }\n }\n\n updateCanScrolls = (e) => {\n const target = e.target;\n if( !!target ){\n this.setState({ \n canScrollLeft: target.scrollLeft > 0,\n canScrollRight: target.scrollLeft !== (target.scrollWidth - target.offsetWidth) ,\n });\n }\n }\n\n renderThumbnail(id){\n const thumbnailImageUrl = `/api/v1/image_variants/${id}/thumbnail`;\n const classNames = ['gallery-thumbnail', this.state.activeId === id ? 'active' : ''].join(\" \");\n\n return (\n
this.setState({activeId: id})}\n >
\n );\n }\n\n createPreloader(id, index, activeIndex){\n const imageUrl = `/api/v1/image_variants/${id}/large`;\n const shouldPreloadImage = (index === activeIndex) || (index + 1 === activeIndex) || (index - 1 === activeIndex) || (index === 0 && activeIndex === this.state.imageIds.length - 1) || (index === this.state.imageIds.length - 1 && activeIndex === 0);\n\n if( shouldPreloadImage && !this.state.images[index].src ){\n this.state.images[index].src = imageUrl;\n this.state.images[index].onload = () => {\n this.setState((state, props) => {\n state.coverOrContain[index] = this.coverOrContain( state.images[index] );\n return state;\n })\n }\n }\n }\n\n scrollToActiveThumbnail = () => {\n if( !!this.thumbnailRow ){\n const activeThumbnail = this.thumbnailRow.querySelector(\".active\");\n this.scrollThumbnailContainer( activeThumbnail.offsetLeft - (this.thumbnailRow.offsetWidth/2) )\n }\n }\n\n scrollThumbnailContainer = (amt) => {\n if( !!this.thumbnailRow ){\n scrollToHorizontal(this.thumbnailRow, amt, 600);\n }\n }\n\n pageLeft = () => {\n const activeIndex = this.state.imageIds.findIndex( (row) => { return row === this.state.activeId; } )\n if( activeIndex > 0 ){\n this.setState({ activeId: this.state.imageIds[activeIndex - 1] });\n }else{\n this.setState({ activeId: this.state.imageIds[this.state.imageIds.length - 1] });\n }\n }\n\n pageRight = () => {\n const activeIndex = this.state.imageIds.findIndex( (row) => { return row === this.state.activeId; } )\n if( activeIndex < this.state.imageIds.length - 1 ){\n this.setState({ activeId: this.state.imageIds[activeIndex + 1] });\n }else{\n this.setState({ activeId: this.state.imageIds[0] });\n }\n }\n\n pinterestShare = () => {\n const currentUrl = encodeURI( `${this.state.galleryUrl}/image/${this.state.activeId}` );\n const featuredImageUrl = encodeURI(`https://buildbook.co/api/v1/image_variants/${this.state.activeId}/large`);\n window.open(`http://pinterest.com/pin/create/button/?url=${currentUrl}&media=${featuredImageUrl}`, \"pop\", \"width=600, height=400, scrollbars=no\");\n }\n\n facebookShare = () => {\n const currentUrl = encodeURI( `${this.state.galleryUrl}/image/${this.state.activeId}` );\n window.open(`https://www.facebook.com/sharer/sharer.php?u=${currentUrl}`, \"pop\", \"width=600, height=400, scrollbars=no\");\n }\n\n copyLink = () => {\n copyTextToClipboard(`${this.state.galleryUrl}/image/${this.state.activeId}`)\n }\n\n coverOrContain = (img) => {\n return img.height <= img.width ? 'cover' : 'contain';\n }\n\n render() {\n const activeIndex = this.state.imageIds.findIndex( (row) => { return row === this.state.activeId; } )\n const featuredImageUrl = `/api/v1/image_variants/${this.state.activeId}/large`;\n const backgroundSize = this.state.coverOrContain[activeIndex];\n\n return (\n
\n
\n \n
\n
\n
\n
Share
\n
this.pinterestShare()}>Pinterest
\n
this.facebookShare()}>Facebook
\n
this.copyLink()}>Copy Link
\n
\n \n
\n
\n
\n
\n
\n {this.state.canScrollLeft && (\n
\n \n
\n )}\n
this.thumbnailRow = ref }>\n {this.state.imageIds.map( id => this.renderThumbnail(id) )}\n
\n {this.state.canScrollRight && (\n
\n \n
\n )}\n
\n
\n
\n \n
\n
\n );\n }\n}","import React from 'react'\nimport ReactDOM from 'react-dom'\n\nimport Gallery from '../components/gallery'\n\n\ndocument.addEventListener((typeof Turbolinks === 'undefined' ? 'DOMContentLoaded' : 'turbolinks:load'), () => {\n const container = document.getElementsByTagName('gallery')[0];\n if(!!container){\n ReactDOM.render(\n ,\n container,\n )\n }\n})\n","export function fallbackCopyTextToClipboard(text) {\n var textArea = document.createElement(\"textarea\");\n textArea.value = text;\n \n textArea.style.top = \"0\";\n textArea.style.left = \"0\";\n textArea.style.position = \"fixed\";\n\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n\n try {\n var successful = document.execCommand('copy');\n var msg = successful ? 'successful' : 'unsuccessful';\n console.log('Fallback: Copying text command was ' + msg);\n } catch (err) {\n console.error('Fallback: Oops, unable to copy', err);\n }\n\n document.body.removeChild(textArea);\n}\n\nexport function copyTextToClipboard(text) {\n if (!navigator.clipboard) {\n fallbackCopyTextToClipboard(text);\n addSuccessFlash(\"Copy successful!\")\n return;\n }\n navigator.clipboard.writeText(text).then(function() {\n addSuccessFlash(\"Copy successful!\")\n }, function(err) {\n console.error('Async: Could not copy text: ', err);\n });\n}\n\nexport function addSuccessFlash(message){\n const body = document.getElementsByTagName(\"body\")[0];\n\n let alert = document.createElement('div');\n let alertContainer = document.createElement('div');\n alert.className='alert alert-success alert-dismissable fade hide';\n alertContainer.className='container'\n alertContainer.innerText = message;\n alert.appendChild(alertContainer);\n \n body.insertBefore(alert, body.firstChild);\n\n setTimeout(() => {\n const el = document.getElementsByClassName('alert hide')[0]\n el.classList.remove(\"hide\");\n el.classList.add(\"show\");\n\n setTimeout(() => {\n const el = document.getElementsByClassName('alert show')[0]\n el.classList.add(\"hide\");\n el.classList.remove(\"show\");\n setTimeout(() => { el.remove() }, 1010)\n }, 2000);\n }, 10);\n \n}","export function scrollTo(element, to, duration) {\n var start = element.scrollTop,\n change = to - start,\n currentTime = 0,\n increment = 20;\n \n var animateScroll = function(){ \n currentTime += increment;\n var val = Math.easeInOutQuad(currentTime, start, change, duration);\n element.scrollTop = val;\n if(currentTime < duration) {\n setTimeout(animateScroll, increment);\n }\n };\n animateScroll();\n}\n\nexport function scrollToHorizontal(element, to, duration) {\n var start = element.scrollLeft,\n change = to - start,\n currentTime = 0,\n increment = 20;\n \n var animateScroll = function(){ \n currentTime += increment;\n var val = Math.easeInOutQuad(currentTime, start, change, duration);\n element.scrollLeft = val;\n if(currentTime < duration) {\n setTimeout(animateScroll, increment);\n }\n };\n animateScroll();\n}\n\n//t = current time\n//b = start value\n//c = change in value\n//d = duration\nMath.easeInOutQuad = function (t, b, c, d) {\n t /= d/2;\n if (t < 1) return c/2*t*t + b;\n t--;\n return -c/2 * (t*(t-2) - 1) + b;\n};"],"names":["e","_react","require","__esModule","_copy_text","_scroll_to","_defineProperties","r","t","length","o","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","i","Symbol","toPrimitive","call","TypeError","String","Number","_toPrimitive","_callSuper","_getPrototypeOf","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","setPrototypeOf","getPrototypeOf","bind","__proto__","_setPrototypeOf","exports","_React$Component","Gallery","props","_this","a","n","_classCallCheck","updateCanScrolls","target","setState","canScrollLeft","scrollLeft","canScrollRight","scrollWidth","offsetWidth","scrollToActiveThumbnail","thumbnailRow","activeThumbnail","querySelector","scrollThumbnailContainer","offsetLeft","amt","scrollToHorizontal","pageLeft","activeIndex","state","imageIds","findIndex","row","activeId","pageRight","pinterestShare","currentUrl","encodeURI","concat","galleryUrl","featuredImageUrl","window","open","facebookShare","copyLink","copyTextToClipboard","coverOrContain","img","height","width","split","activeImageId","showShareWidget","map","images","Image","create","value","_inherits","_createClass","_this2","this","id","index","createPreloader","addEventListener","removeEventListener","prevProps","prevState","_this3","_this4","thumbnailImageUrl","classNames","join","createElement","className","style","backgroundImage","onClick","_this5","imageUrl","src","onload","_this6","backgroundSize","onMouseDown","ref","renderThumbnail","React","Component","_interopRequireDefault","_reactDom","_gallery","document","Turbolinks","container","getElementsByTagName","ReactDOM","render","getAttribute","fallbackCopyTextToClipboard","text","textArea","top","left","position","body","appendChild","focus","select","msg","execCommand","console","log","err","error","removeChild","addSuccessFlash","message","alert","alertContainer","innerText","insertBefore","firstChild","setTimeout","el","getElementsByClassName","classList","remove","add","navigator","clipboard","writeText","then","element","to","duration","start","scrollTop","change","currentTime","animateScroll","val","Math","easeInOutQuad","b","c","d"],"sourceRoot":""}