{"version":3,"sources":["src/investment.js"],"names":["InvestmentPage","init_selection_listener","wedding_packages","document","querySelectorAll","forEach","v","addEventListener","handle_selections","bind","e","radio","target","$add_ons","querySelector","classList","contains","remove","dataset","remove_addon","addon","current_value","value","current_addons","JSON","parse","index","indexOf","splice","length","stringify","console","log","addOn","add_addon","includes","push","add","$","projectType","project_type","project_type_map","wedding","commercial","family","other","btn","i","$btn","getElementById","click","hash","section","replace","section_top","offsetTop","window","scrollTo","top","behavior","investment_page"],"mappings":"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","file":"investment.js","sourcesContent":["class InvestmentPage {\n constructor() {\n this.init_selection_listener();\n this.wedding_packages = ['highlight_reel','feature_film'];\n }\n\n init_selection_listener() {\n document.querySelectorAll('.radio_price_button').forEach(v => {\n v.addEventListener('click', this.handle_selections.bind(this));\n });\n }\n\n handle_selections(e) {\n const radio = e.target;\n const $add_ons = document.querySelector('[name=add_ons]');\n\n const add_addon = (addon) => {\n const current_value = $add_ons.value;\n if (current_value !== '') {\n try {\n let current_addons = JSON.parse(current_value);\n if (!current_addons.includes(addon)) current_addons.push(addon);\n $add_ons.value = JSON.stringify(current_addons);\n } catch (e) {\n console.log(\"Failed to get/add addons.\", e);\n }\n } else {\n $add_ons.value = JSON.stringify([addon]);\n }\n }\n\n const remove_addon = (addon) => {\n const current_value = $add_ons.value;\n if (current_value !== '') {\n try {\n let current_addons = JSON.parse(current_value);\n let index = current_addons.indexOf(addon);\n if (index !== -1) {\n current_addons.splice(index, 1);\n }\n if (current_addons.length === 0) return $add_ons.value = '';\n $add_ons.value = JSON.stringify(current_addons);\n } catch (e) {\n console.log(\"Failed to get/remove addons.\", e);\n }\n }\n }\n\n // If someone is clicking a selected item, remove it's selected-ness\n if (radio.classList.contains('selected')) {\n radio.classList.remove('selected');\n\n // If un-selecting an add-on, remove add-on from hidden from field\n if ('addOn' in radio.dataset) remove_addon(radio.dataset.addOn);\n\n // If un-selecting a wedding package, un-select all add-on's as well.\n // if ('projectType' in radio.dataset && this.wedding_packages.includes(radio.dataset.projectType)) {\n // document.querySelectorAll('#wedding_add_ons .radio_price_button').forEach(v => v.classList.remove('selected'));\n // $add_ons.value = '';\n // }\n return;\n }\n\n // If all someone is doing is selecting an add-on, just select it\n // and move on. There's nothing else to do.\n if ('addOn' in radio.dataset) {\n add_addon(radio.dataset.addOn);\n return radio.classList.add('selected');\n }\n\n // Toggle the selected-ness\n document.querySelectorAll('.radio_price_button').forEach(v => {\n // Don't toggle add-ons\n if ('addOn' in v.dataset) return;\n v.classList.remove('selected');\n });\n\n // If someone chooses a non-wedding package, un-select wedding add-ons\n if ($('#contact_us_form')) { // Ignore on collections contact form\n if ('projectType' in radio.dataset && !this.wedding_packages.includes(radio.dataset.projectType)) {\n document.querySelectorAll('#wedding_add_ons .radio_price_button').forEach(v => v.classList.remove('selected'));\n $add_ons.value = '';\n }\n }\n\n // Select the clicked radio button\n radio.classList.add('selected');\n\n // Set the project type and specific type in the contact form\n const project_type = radio.dataset.projectType || 'other';\n const project_type_map = {\n wedding: ['highlight_film','feature_film','custom_wedding','w_undecided','elopement'],\n commercial: ['corporate_event','promo','social_media','tv','c_other'],\n family: ['birth_story','party','lifestyle','f_other','day_of_birth'],\n other: ['other'],\n };\n let btn = 'other';\n for (let i in project_type_map) {\n if (project_type_map[i].includes(project_type)) {\n btn = i;\n break;\n }\n }\n const $btn = document.getElementById(`${btn}_btn`);\n if ($btn) $btn.click();\n if (project_type !== 'other') document.querySelector('[name=specific_type]').value = project_type;\n }\n\n jump_to_section(hash) {\n // console.log(\"Filtering by: \", hash);\n if (!hash) return;\n const section = document.getElementById(hash.replace(/^#/, ''));\n if (!section) return;\n const section_top = section.offsetTop || null;\n if (!section_top) return;\n window.scrollTo({\n top: section_top - 70,\n behavior: \"smooth\",\n });\n }\n}\n\nlet investment_page;\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n investment_page = new InvestmentPage();\n});\n"]}