{"version":3,"file":"photo-loader-dcf7ce19.js","sources":["../../../client/src/javascripts/customer_pages/_photo-loader/photo-loader-omni-analytics.js","../../../client/src/javascripts/entry_points/photo-loader.jsx"],"sourcesContent":["\nimport getImageSources from './image-sources';\nimport { builderDispatch, WebUI, PrismUI } from '../_utils/ui';\n\n(function () {\n if (typeof s_omni !== 'object') {\n return;\n }\n\n let old_omni = {};\n\n const omni = {\n adid: s_omni.getQueryParam('adid'),\n fbref: s_omni.getQueryParam('fb_ref'),\n sourceid: s_omni.getQueryParam('sourceid'),\n povid: s_omni.getQueryParam('povid'),\n findingMethod: s_omni.getQueryParam('findingMethod'),\n getCampaignId() {\n if (this.adid) {\n return this.adid;\n }\n if (this.fbref) {\n return this.fbref.split('_')[1];\n }\n if (this.sourceid) {\n return this.sourceid;\n } return '';\n },\n }; s_omni.campaign = omni.getCampaignId(); s_omni.channel = window.location.hostname;\n // Create IE + others compatible event handler\n const eventMethod = window.addEventListener ? 'addEventListener' : 'attachEvent';\n const eventer = window[eventMethod];\n const messageEvent = (eventMethod === 'attachEvent') ? 'onmessage' : 'message';\n\n //* ***********************************************************************\n // Event Tracking Code\n\n function setPhotoUpload() {\n old_omni = $.extend({}, s_omni); // Clone old vars\n\n s_omni.pageName = 'Upload Photos';\n s_omni.prop1 = 'Photo Upload';\n s_omni.prop2 = 'Upload Photos';\n s_omni.prop3 = '';\n s_omni.prop4 = '';\n s_omni.prop5 = '';\n s_omni.events = 'event106';\n }\n\n\n function unsetPhotoUpload() {\n s_omni.pageName = old_omni.pageName;\n s_omni.prop1 = old_omni.prop1;\n s_omni.prop2 = old_omni.prop2;\n s_omni.prop3 = old_omni.prop3;\n s_omni.prop4 = old_omni.prop4;\n s_omni.events = old_omni.events;\n }\n\n const photoStrings = {};\n const imageSources = getImageSources();\n if (imageSources) {\n imageSources.forEach((source) => {\n photoStrings[source.service] = source.title;\n });\n }\n\n function getServiceName(service) {\n if (photoStrings.hasOwnProperty(service)) {\n return photoStrings[service];\n }\n return 'Unknown';\n }\n\n function getEventName(event, eventType) {\n if (WebUI && eventType && eventType.hasOwnProperty(event)) {\n return eventType[event];\n }\n return 'Unknown';\n }\n\n //* ***********************************************************************\n // Click Event Listeners\n\n const clickDispatchToken = builderDispatch.register((payload) => {\n try {\n switch (payload.type) {\n //* ********************************************************************\n // Photo Uploader Cases\n case WebUI.PROMPT_LOGIN:\n setPhotoUpload();\n omniLinkClick('o', getEventName('pleaselogin', WebUI.PhotoEvents));\n unsetPhotoUpload();\n break;\n\n case WebUI.PHOTO_EVENT_UPLOAD:\n setPhotoUpload();\n omniLinkClick('o', getEventName(payload.uploadEvent, WebUI.PhotoEvents));\n unsetPhotoUpload();\n break;\n\n case WebUI.PHOTO_SERVICE_SELECTED:\n setPhotoUpload();\n omniLinkClick('o', `Toggle: ${getServiceName(payload.service)}`);\n unsetPhotoUpload();\n break;\n\n // Service Connected\n case WebUI.PHOTO_SERVICE_CONNECTED:\n setPhotoUpload();\n omniLinkClick('o', `Connect: ${getServiceName(payload.service)}`);\n unsetPhotoUpload();\n break;\n\n // Prints Builder Cases\n case PrismUI.ADD_PHOTOS:\n omniLinkClick('o', 'Add Photos');\n break;\n\n case WebUI.PHOTO_EVENT_CHANGE_CLICKED:\n case WebUI.PHOTO_EVENT_ADVANCED_EDIT:\n case WebUI.PHOTO_EVENT_RESIZE_ALL:\n case WebUI.PHOTO_EVENT_CHANGE_QUANTITY:\n case WebUI.PHOTO_EVENT_PREVIEW:\n case WebUI.PHOTO_EVENT_EDIT:\n case WebUI.PHOTO_EVENT_ADD_TO_CART:\n case WebUI.PHOTO_EVENT_REMOVE_PRINTS_MODAL:\n case WebUI.PHOTO_EVENT_REMOVE_PRINTS_CONFIRM:\n case WebUI.PHOTO_EVENT_REMOVE_PRINTS_CANCEL:\n\n omniLinkClick('o', getEventName(payload.type, WebUI.PhotoEventStrings));\n break;\n\n case PrismUI.EVENT_CUSTOMIZE_COVER:\n case PrismUI.EVENT_CUSTOMIZE_DESIGNS:\n case PrismUI.EVENT_CUSTOMIZE_LAYOUTS:\n case PrismUI.EVENT_CUSTOMIZE_ENVELOPE:\n case PrismUI.EVENT_MORE_DESIGNS:\n case PrismUI.EVENT_TEMPLATES:\n case PrismUI.EVENT_COLORS:\n case PrismUI.EVENT_ADD_TO_CART:\n case PrismUI.EVENT_SAVE_PROJECT:\n case PrismUI.EVENT_EDIT_PROJECT_NAME:\n case PrismUI.EVENT_CHANGE:\n case PrismUI.EVENT_AUTO_FILL:\n case PrismUI.EVENT_ADD_PHOTOS:\n case PrismUI.EVENT_HIDE_PHOTOS:\n case PrismUI.EVENT_HIDE_USED:\n case PrismUI.EVENT_SHOW_PHOTOS:\n case PrismUI.EVENT_PAGES:\n case PrismUI.EVENT_PREVIEW:\n case PrismUI.EVENT_EDIT:\n\n omniLinkClick('o', getEventName(payload.type, PrismUI.EventStrings));\n break;\n }\n } catch (e) {\n window.console && window.console.warn && window.console.warn(e);\n }\n });\n\n //* ***********************************************************************\n // Connect Event Listeners\n\n eventer(messageEvent, (e) => {\n const msg = e.data;\n\n if (typeof msg !== 'string') {\n return;\n }\n if (!msg.match('Attempt to connect to')) {\n return;\n }\n const parts = msg.split('///');\n\n if (parts[1]) {\n // Decoupled due to odd cross domain issues see sporadically\n setTimeout(() => {\n builderDispatch.dispatch({ type: WebUI.PHOTO_SERVICE_CONNECTED, service: parts[1] });\n }, 100);\n }\n }, false);\n\n\n //* ***********************************************************************\n // Omni Dispatcher\n\n function omniLinkClick(linkType, omniLinkName) {\n const s_linkTrackVarsTemp = s_omni.linkTrackVars;\n const s_linkTrackEventsTemp = s_omni.linkTrackEvents;\n s_omni.linkTrackVars = 'prop54';\n s_omni.linkTrackEvents = 'None';\n s_omni.prop54 = `${s_omni.prop2} | ${omniLinkName}`;\n s_omni.tl(omni, linkType, 'Link click');\n // Clean Up\n s_omni.linkTrackVars = s_linkTrackVarsTemp;\n s_omni.linkTrackEvents = s_linkTrackEventsTemp;\n s_omni.prop54 = '';\n }\n\n //* ***********************************************************************\n // Clean Up\n window.addEventListener('unload', () => {\n builderDispatch.unregister(clickDispatchToken); // Clean up on exit\n });\n}());\n","// Import Libraries\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n// Import JS Modules\nimport 'Utils/login-launcher';\nimport Loader from '../customer_pages/_photo-loader/photo-loader';\nimport '../customer_pages/_libs/analytics/checkout-google-analytics.js';\nimport '../customer_pages/_photo-loader/photo-loader-omni-analytics';\n\n// Render Loader\nReactDOM.render(<Loader />, document.getElementById('image-loader'));\n\n// This is a hack to prevent iPad scroll failure\n// because <iframe> elements derive their height from child document content\n// which varies to zero on dom refresh under certain circumstances.\n//\n// 0 height automatically resets scrollTop property to 0, which persists\n// even when iframe height is recalculated.\n// This sets height on iframe element in parent page explicitly, so iframe\n// height never varies to zero, even if the content does.\n\nif (/iPad|iPhone|iPod/.test(navigator.platform)) {\n window.addEventListener('message', msg => {\n if (msg.data && msg.data.freize_height) {\n const h = msg.data.freize_height;\n const activeIframe = $(\n '.image-loader-service:visible .iframe-container iframe'\n );\n activeIframe.css('height', h);\n }\n });\n}\n"],"names":["old_omni","omni","eventMethod","eventer","messageEvent","setPhotoUpload","unsetPhotoUpload","photoStrings","imageSources","getImageSources","source","getServiceName","service","getEventName","event","eventType","WebUI","clickDispatchToken","builderDispatch","payload","omniLinkClick","PrismUI","e","msg","parts","linkType","omniLinkName","s_linkTrackVarsTemp","s_linkTrackEventsTemp","ReactDOM","React","Loader","h"],"mappings":"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"}