{"version":3,"file":"js/application-583c198d97cbde783124.js","mappings":"+HAiBAA,QAAQC,IAAI,8BACZC,EAAAA,KAAAA,O,kBClBA,WACE,IAAMC,EAAiBC,SAASC,cAAc,oBACxCC,EAAaF,SAASC,cAAc,eAE1C,GAAKF,GAAmBG,EAAxB,CAIAH,EAAeI,iBAAiB,SAAS,WACvCD,EAAWE,UAAUC,OAAO,SAC9B,IAEA,IAAIC,EAAgB,EACdC,EAAyBP,SAASC,cAAc,iCAChDO,EAAgBR,SAASC,cAAc,sBACvCQ,EAAeT,SAASC,cAAc,6BACtCS,EAAcV,SAASC,cAAc,4BACrCU,EAAiBX,SAASC,cAAc,sCACxCW,EAAgBZ,SAASC,cAAc,8BACvCY,EAAiBb,SAASC,cAAc,+BAE9CQ,EAAaN,iBAAiB,SAAS,SAACW,GACtC,IAAMC,GAASD,EAAME,OAAOD,MAE5BL,EAAYO,UAAYF,EACxBT,EAAgBS,EAEhBG,EAAiBH,EACnB,IAEA,IAAMG,EAAmB,SAACH,GACxB,IAAII,EAAO,GAUX,IAAI,IAAIC,KARM,IAAVL,GACFH,EAAcR,UAAUiB,IAAI,UAC5BR,EAAeT,UAAUC,OAAO,YAEhCO,EAAcR,UAAUC,OAAO,UAC/BQ,EAAeT,UAAUiB,IAAI,WAGHC,OAAOC,aAC5BH,GAAoBL,IACvBI,EAAOG,OAAOC,YAAYH,IAI9BT,EAAeM,UAAYE,CAC7B,EAGAb,EAAgBG,EAAaM,MAC7BN,EAAae,aAAa,QAASlB,GACnCI,EAAYO,UAAYX,EACxBY,EAAiBZ,GAGjBmB,OAAOC,QAAQ,CACbC,OAAQ,gDAERC,MAAO,CACLC,KAAM,QACNC,MAAO,OACPC,MAAO,OACPC,MAAO,SACPC,OAAQ,YAGVC,YAAa,SAASC,EAAOC,GAC3B,OAAOA,EAAQC,MAAMC,OAAO,CAC1BC,eAAgB,CAAC,CACfC,OAAQ,CACNzB,MAAOT,MAIf,EAEAmC,UAAW,SAASN,EAAOC,GACzB,OAAOA,EAAQC,MAAMK,UAAUC,MAAK,SAASC,GAC3C,IAAMC,EAAcD,EAAQL,eAAe,GAAGC,OACxCM,EAAQF,EAAQE,MAEhBC,EAAU,CACdC,OAAQ,eACRC,SAAUL,EAAQM,GAClBC,WAAYP,EAAQQ,YACpBC,aAAcT,EAAQU,OACtBd,OAAQK,EAAY9B,MACpBwC,SAAUV,EAAYW,cACtBC,SAAUvD,EAAWwD,QAAQC,QAC7BC,YAAa1D,EAAWwD,QAAQG,WAChCC,WAAW,GAADC,OAAKjB,EAAMkB,KAAKC,WAAU,KAAAF,OAAIjB,EAAMkB,KAAKE,SACnDC,SAAUrB,EAAMqB,SAChBC,YAAatB,EAAMuB,OAASvB,EAAMuB,MAAMC,cAAgBxB,EAAMuB,MAAMC,aAAaC,gBACjFC,YAAa1B,EAAM2B,eAGrBC,MAAM,YAAa,CACjBC,OAAQ,OACRC,KAAMC,KAAKC,UAAU/B,GACrBgC,QAAS,CACP,eAAgB,mBAChB,eAAgBC,MAAMC,aAExBC,YAAa,gBAIf3E,EAAuBH,UAAUiB,IAAI,UACrCb,EAAcJ,UAAUC,OAAO,SACjC,GACF,IACC8E,OAAO,6BA3GV,CA4GD,CAlHD,E,iBCCA,IAAIC,EAAYpF,SAASC,cAAc,oBACvC,GAAImF,EAAW,CACb,IAAIC,EAAiBC,KAAK,gCAC1BF,EAAU5D,aAAa,OAAQ,UAAY6D,EAC7C,C","sources":["webpack://photo-sharing/./app/assets/javascripts/packs/application.js","webpack://photo-sharing/./app/assets/javascripts/src/public/contribute.js","webpack://photo-sharing/./app/assets/javascripts/src/public/marketing.js"],"sourcesContent":["/* eslint no-console:0 */\n// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n//\n// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate\n// layout file, like app/views/layouts/application.html.erb\n\n\n// Uncomment to copy all static images under ../images to the output folder and reference\n// them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)\n// or the `imagePath` JavaScript helper below.\n//\n// const images = require.context('../images', true)\n// const imagePath = (name) => images(name, true)\n\nconsole.log('Hello World from Webpacker')\nrequire(\"@rails/ujs\").start()\n\nimport \"public/marketing\"\nimport \"public/contribute\"\n","(function () {\n const downloadButton = document.querySelector('.download-button');\n const contribute = document.querySelector('.contribute');\n\n if (!downloadButton || !contribute) {\n return;\n }\n\n downloadButton.addEventListener('click', () => {\n contribute.classList.remove('hidden');\n });\n\n let currentAmount = 0;\n const paymentSelectorWrapper = document.querySelector('.contribute-payment-selector ');\n const thanksWrapper = document.querySelector('.contribute-thanks');\n const amountSlider = document.querySelector('.contribute-amount-slider');\n const amountValue = document.querySelector('.contribute-amount-value');\n const comparisonText = document.querySelector('.contribute-amount-comparison-item');\n const paypalButtons = document.querySelector('.contribute-paypal-buttons');\n const feedbackButton = document.querySelector('.contribute-feedback-button');\n\n amountSlider.addEventListener('input', (event) => {\n const value = +event.target.value;\n\n amountValue.innerText = value;\n currentAmount = value;\n\n updateComparison(value);\n });\n\n const updateComparison = (value) => {\n let text = '';\n\n if (value === 0) {\n paypalButtons.classList.add('hidden');\n feedbackButton.classList.remove('hidden');\n } else {\n paypalButtons.classList.remove('hidden');\n feedbackButton.classList.add('hidden');\n }\n\n for(let comparisonAmount in window.comparisons) {\n if (+comparisonAmount <= value) {\n text = window.comparisons[comparisonAmount];\n }\n }\n\n comparisonText.innerText = text;\n }\n\n // init\n currentAmount = amountSlider.value;\n amountSlider.setAttribute('value', currentAmount);\n amountValue.innerText = currentAmount;\n updateComparison(currentAmount);\n\n // paypal\n paypal.Buttons({\n locale: \"<%= I18n.locale == :de ? 'de_DE' : 'en_US' %>\",\n\n style: {\n size: 'small',\n color: 'gold',\n shape: 'rect',\n label: 'paypal',\n layout: 'vertical',\n },\n\n createOrder: function(_data, actions) {\n return actions.order.create({\n purchase_units: [{\n amount: {\n value: currentAmount,\n }\n }]\n });\n },\n\n onApprove: function(_data, actions) {\n return actions.order.capture().then(function(details) {\n const paymentInfo = details.purchase_units[0].amount;\n const payer = details.payer;\n\n const payload = {\n source: 'contribution',\n order_id: details.id,\n order_time: details.create_time,\n order_status: details.status,\n amount: paymentInfo.value,\n currency: paymentInfo.currency_code,\n event_id: contribute.dataset.eventId,\n download_id: contribute.dataset.downloadId,\n payer_name: `${payer.name.given_name} ${payer.name.surname}`,\n payer_id: payer.payer_id,\n payer_phone: payer.phone && payer.phone.phone_number && payer.phone.phone_number.national_number,\n payer_email: payer.email_address,\n };\n\n fetch('/payments', {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': Rails.csrfToken()\n },\n credentials: 'same-origin',\n });\n\n // Toggle content into \"thanks\" view\n paymentSelectorWrapper.classList.add('hidden');\n thanksWrapper.classList.remove('hidden');\n });\n }\n }).render('.contribute-paypal-buttons');\n})();\n","// Handle emails\nvar emailLink = document.querySelector('.contact-us-link');\nif (emailLink) {\n var celebrateEmail = atob('aGFsbG9AY2VsZWJyYXRlLmFwcA==');\n emailLink.setAttribute('href', 'mailto:' + celebrateEmail);\n}\n"],"names":["console","log","require","downloadButton","document","querySelector","contribute","addEventListener","classList","remove","currentAmount","paymentSelectorWrapper","thanksWrapper","amountSlider","amountValue","comparisonText","paypalButtons","feedbackButton","event","value","target","innerText","updateComparison","text","comparisonAmount","add","window","comparisons","setAttribute","paypal","Buttons","locale","style","size","color","shape","label","layout","createOrder","_data","actions","order","create","purchase_units","amount","onApprove","capture","then","details","paymentInfo","payer","payload","source","order_id","id","order_time","create_time","order_status","status","currency","currency_code","event_id","dataset","eventId","download_id","downloadId","payer_name","concat","name","given_name","surname","payer_id","payer_phone","phone","phone_number","national_number","payer_email","email_address","fetch","method","body","JSON","stringify","headers","Rails","csrfToken","credentials","render","emailLink","celebrateEmail","atob"],"sourceRoot":""}