{"version":3,"sources":["webpack:///./assets/javascripts/modules/components/ContactUsComponent.js"],"names":["CONTACT_US_IDS","ContactUsComponent","_classCallCheck","this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","call","Component","main","subject","returns","orders","blocks","subjectCode","contactUs","showFormBtn","contactForm","data","url","$","ajax","method","index","ordersBlock","document","querySelector","SELECTORS","returnsBlock","classList","add","remove","value","_this2","$on","_ref","event","find","showAdditionalData","currentTarget","selectedOptions","id","each","$input","hasClass","prop","addEventListener","stopPropagation","preventDefault","getElementById","reset","toggle","_this3","_ref2","window","RecapchaComponent","getResponseFromWidget","datePick","setAttribute","removeAttribute","disabled","removeAttr","form","target","serialize","attr","action","getAttribute","submitForm","then","res","parentElement","innerHTML","log","bindSubmit","bindShowForm","bindSubject","trigger"],"mappings":"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","file":"component-ContactUsComponent.chunks.js","sourcesContent":["import Component from \"../abstracts/Component\";\n\nconst CONTACT_US_IDS={\n PERSONAL_STYLIST: \"personal_stylist\",\n PRODUCT_AND_BOX_DAMAGED: \"product_and_box_damaged\",\n SOME_PRODUCT_ACCESSORIES_ARE_MISSING: \"some_product_accessories_are_missing\",\n DAMAGED_OR_FAULTY_PRODUCT: \"damaged_or_faulty_product\",\n WRONG_PRODUCT: \"wrong_product\",\n WRONG_COLOUR: \"wrong_colour\",\n PRODUCT_DESCRIPTION_MISMATCHING: \"product_description_mismatching\",\n ORDER_ARRIVED_AFTER_SCHEDULED_DATE: \"order_arrived_after_scheduled_date\",\n CHANGED_MY_MIND: \"changed_my_mind\",\n DONT_LIKE_COLOUR: \"dont_like_colour\",\n DOESNT_SUIT: \"doesnt_suit\",\n TOO_SMALL: \"too_small\",\n TOO_BIG: \"too_big\",\n OTHER: \"other\",\n PRIVACY_AND_DATA_PROTECTION: \"privacy_and_data_protection\",\n ORDERS_AND_DELIVERIES: \"orders_and_deliveries\",\n PAYMENTS_AND_PROMOTIONS: \"payments_and_promotions\",\n COLLABORATIONS: \"collaborations\",\n COMMENTS_AND_SUGGESTIONS: \"comments_and_suggestions\",\n PRODUCT_INFO_AND_AVAILABILITY: \"product_info_and_availability\",\n STORES: \"stores\",\n REFUND_AND_RETURNS: \"refund_and_returns\",\n TECHNICAL_ASSISTANCE: \"technical_assistance\",\n RECEIVED_ITEM_WASNT_THE_ORDERED_ONE: \"received_item_wasnt_the_ordered_one\",\n DOEST_FIT_ME: \"doest_fit_me\",\n WRONG_SIZE_OR_COLOUR_ORDERED: \"wrong_size_or_colour_ordered\",\n IMAGINED_ITEM_DIFFERENT: \"imagined_item_different\",\n RETAIL_STORES: \"retail_stores\",\n STOCKS_IN_PHYSICAL_STORES: \"stocks_in_physical_stores\",\n REPAIRS: \"repairs\",\n PRODUCT_CARE: \"product_care\",\n ABOUT_MAX_MARA: \"about_max_mara\",\n}\n\n\nexport default class ContactUsComponent extends Component {\n get SELECTORS() {\n return {\n main: '#contactUsForm',\n subject: '.js-contact-subject',\n returns: '.js-subject-returns',\n orders: '.js-subject-orders',\n blocks: '.js-subject',\n subjectCode: '.js-subject-code',\n contactUs: '.contactUsPageGReCaptchaChallange',\n showFormBtn: '[data-show-form]',\n contactForm: '[data-show]'\n }\n }\n\n constructor() {\n super()\n }\n\n submitForm(data, url) {\n return $.ajax({\n url: url,\n method: 'POST',\n data: data,\n });\n }\n\n showAdditionalData(index) {\n const ordersBlock = document.querySelector(this.SELECTORS.orders);\n const returnsBlock = document.querySelector(this.SELECTORS.returns);\n switch (index) {\n // show order block fields\n case CONTACT_US_IDS.ORDERS_AND_DELIVERIES:\n (returnsBlock ? returnsBlock.classList.add('hidden') : false);\n (ordersBlock ? ordersBlock.classList.remove('hidden') : false);\n break;\n // show return block fields\n case CONTACT_US_IDS.REFUND_AND_RETURNS:\n (ordersBlock ? ordersBlock.classList.add('hidden') : false);\n (returnsBlock ? returnsBlock.classList.remove('hidden') : false);\n break;\n default:\n (ordersBlock ? ordersBlock.classList.add('hidden') : false);\n (returnsBlock ? returnsBlock.classList.add('hidden') : false);\n }\n document.querySelector(this.SELECTORS.subjectCode).value = index;\n }\n\n bindSubject() {\n this.$on('change', ({event}) => {\n\n let blocks = $(this.SELECTORS.main).find(this.SELECTORS.blocks);\n this.showAdditionalData(event.currentTarget.selectedOptions[0].id);\n\n blocks.each(function() {\n let $input = $(this).find('input, select');\n if ($(this).hasClass('hidden')) {\n $input.prop('disabled', true);\n } else {\n $input.prop('disabled', false);\n }\n })\n\n }, 'body', this.SELECTORS.subject);\n }\n\n bindShowForm() {\n let showFormBtn = document.querySelector(this.SELECTORS.showFormBtn);\n let contactForm = document.querySelector(this.SELECTORS.contactForm);\n if(showFormBtn) {\n showFormBtn.addEventListener('click', (event) => {\n event.stopPropagation();\n event.preventDefault();\n document.getElementById('contactUsForm').reset();\n contactForm.classList.toggle('hidden');\n });\n }\n }\n\n bindSubmit() {\n this.$on('submit', ({event}) => {\n event.preventDefault();\n if (window.RecapchaComponent && !window.RecapchaComponent.getResponseFromWidget('contactUsPage')) {\n // User have not completed the challenge\n return;\n }\n\n if(document.querySelector(this.SELECTORS.subjectCode).value == CONTACT_US_IDS.REFUND_AND_RETURNS ) {\n const datePick = document.querySelector(\"#datePick\");\n if (datePick) {\n datePick.value == '' ? datePick.setAttribute(\"disabled\", \"true\") : datePick.removeAttribute(\"disabled\")\n }\n }\n var disabled = $('#contactUsForm').find('select:disabled').removeAttr('disabled');\n const form = $(event.target).serialize();\n disabled.attr('disabled','disabled');\n\n const action = event.currentTarget.getAttribute('action');\n\n document.querySelector(this.SELECTORS.contactUs).setAttribute('disabled', 'disabled');\n\n // data.concat(`&${this.getSubjectCode()}`);\n this.submitForm(form, action).then(res => {\n event.currentTarget.parentElement.innerHTML = res;\n });\n }, 'body', this.SELECTORS.main);\n }\n\n render() {\n this.log('rendering...');\n this.bindSubmit();\n this.bindShowForm();\n if (document.querySelector(this.SELECTORS.returns) || document.querySelector(this.SELECTORS.orders)) {\n this.bindSubject();\n if($(this.SELECTORS.subject)) {\n $(this.SELECTORS.subject).trigger('change');\n }\n }\n }\n}\n"],"sourceRoot":""}