{"version":3,"file":"js/claim_form-claim_form-js-f8a314a3dbaf56efea4c.chunk.js","mappings":"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","sources":["webpack://cms-web/./app/frontend/src/blocks/claim_form/claim_form.js"],"sourcesContent":["import dayjs from 'dayjs'\nimport customParseFormat from 'dayjs/plugin/customParseFormat'\n\ndayjs.extend(customParseFormat)\n\nconst $check_in = $('#check_in_date')\nconst $check_out = $('#check_out_date')\n\nconst language = document.documentElement.getAttribute('data-js-lang')\nconst date_format = $('html').attr('data-date-format')\nconst start_date = new dayjs().format(date_format)\nconst start_of_week = $('html').attr('data-start-of-week')\n\nfunction initialiceCheckIn($date_picker) {\n if ($date_picker.length > 0) {\n $date_picker\n .dateRangePicker({\n autoClose: true,\n format: date_format,\n startOfWeek: start_of_week,\n language,\n singleDate: true,\n singleMonth: true,\n startDate: start_date,\n showTopbar: false,\n setValue(s) {\n $date_picker.val(s)\n $date_picker.parsley().validate()\n },\n })\n .on('datepicker-open', function () {\n $date_picker.addClass('is-opening')\n let offset_left = $date_picker.offset().left\n offset_left = offset_left - 5\n if (IB.currentDevice === 'mobile') {\n offset_left = offset_left - 10\n }\n $('.date-picker-wrapper').css({\n left: offset_left,\n width: '301px',\n overflow: 'hidden',\n })\n\n $('.date-picker-wrapper .month').css({\n minWidth: '301px',\n })\n })\n .on('datepicker-opened', function () {\n $date_picker.removeClass('is-opening')\n $('.date-picker-wrapper .real-today').trigger('focus')\n })\n .on('datepicker-closed', function () {\n $date_picker.removeClass('is-opening')\n\n if ($check_in.val().length) {\n initialiceCheckOut($check_out)\n }\n })\n }\n}\n\nfunction initialiceCheckOut($date_picker) {\n const checkInData = dayjs($check_in.val(), date_format)\n const checkOut = checkInData\n\n if ($date_picker.length > 0) {\n $date_picker\n .dateRangePicker({\n autoClose: true,\n format: date_format,\n startOfWeek: start_of_week,\n language,\n singleDate: true,\n singleMonth: true,\n startDate: checkOut,\n showTopbar: false,\n setValue(s) {\n $date_picker.val(s)\n $date_picker.parsley().validate()\n },\n })\n .on('datepicker-open', function () {\n $date_picker.addClass('is-opening')\n let offset_left = $date_picker.offset().left\n offset_left = offset_left - 5\n if (IB.currentDevice === 'mobile') {\n offset_left = offset_left - 10\n }\n $('.date-picker-wrapper').css({\n left: offset_left,\n width: '301px',\n overflow: 'hidden',\n })\n\n $('.date-picker-wrapper .month').css({\n minWidth: '301px',\n })\n })\n .on('datepicker-opened', function () {\n $date_picker.removeClass('is-opening')\n $('.date-picker-wrapper .real-today').trigger('focus')\n })\n .on('datepicker-closed', function () {\n $date_picker.removeClass('is-opening')\n })\n }\n}\n\nfunction initialiceDatePicker($date_picker) {\n if ($date_picker.length > 0) {\n $date_picker\n .dateRangePicker({\n autoClose: true,\n format: date_format,\n startOfWeek: start_of_week,\n language,\n singleDate: true,\n singleMonth: true,\n startDate: start_date,\n showTopbar: false,\n setValue(s) {\n $date_picker.val(s)\n $date_picker.parsley().validate()\n },\n })\n .on('datepicker-open', function () {\n $date_picker.addClass('is-opening')\n let offset_left = $date_picker.offset().left\n offset_left = offset_left - 5\n if (IB.currentDevice === 'mobile') {\n offset_left = offset_left - 10\n }\n $('.date-picker-wrapper').css({\n left: offset_left,\n width: 'auto',\n overflow: 'hidden',\n })\n })\n .on('datepicker-opened', function () {\n $date_picker.removeClass('is-opening')\n $('.date-picker-wrapper .real-today').trigger('focus')\n })\n .on('datepicker-closed', function () {\n $date_picker.removeClass('is-opening')\n })\n }\n}\n\nfunction showInputsChildren(block) {\n const getNumberChildrens = block.querySelector('#children')\n const contentInpusChildren = block.querySelector('.booking-option')\n const inputsChildren = Array.from(contentInpusChildren.querySelectorAll('.children'))\n\n getNumberChildrens.addEventListener('change', function (event) {\n const numberChildrens = event.target.value\n\n inputsChildren.forEach((children, index) => {\n const select = children.querySelector('select')\n\n if (index + 1 <= numberChildrens) {\n children.classList.remove('hidden', 'disabled')\n select.setAttribute('data-parsley-required', 'true')\n } else {\n children.classList.add('hidden', 'disabled')\n select.setAttribute('data-parsley-required', 'false')\n }\n })\n })\n}\n\nfunction inputRequired(block) {\n const contentInput = Array.from(block.querySelectorAll('.content-input-file'))\n contentInput.forEach((input, index) => {\n const element = input.querySelector('[id^=\"picture_\"]')\n if (index === 0) {\n element.setAttribute('data-parsley-required', 'true')\n } else {\n element.setAttribute('data-parsley-required', 'false')\n }\n })\n}\n\nfunction handlerCloseButton(block, show) {\n const closeButton = block.querySelector('.js-clear')\n show ? closeButton.classList.remove('not-visible') : closeButton.classList.add('not-visible')\n}\n\nfunction getInputsFull(block) {\n const contentInput = Array.from(block.querySelectorAll('.content-input-file'))\n const emptyInputs = contentInput.filter(contentInputEmpty => {\n const input = contentInputEmpty.querySelector('[id^=\"picture_\"]')\n\n if (!contentInputEmpty.classList.contains('hidden') && input.files.length > 0) {\n handlerCloseButton(contentInputEmpty, true)\n return contentInputEmpty\n }\n })\n return emptyInputs.length\n}\n\nfunction getInputsEmpty(block) {\n const contentInput = Array.from(block.querySelectorAll('.content-input-file'))\n const emptyInputs = contentInput.filter(contentInputEmpty => {\n const input = contentInputEmpty.querySelector('[id^=\"picture_\"]')\n\n if (!contentInputEmpty.classList.contains('hidden') && input.files.length === 0) {\n handlerCloseButton(contentInputEmpty, false)\n return contentInputEmpty\n }\n })\n return emptyInputs.length\n}\n\nfunction removeLastInput(block) {\n const contentInput = Array.from(block.querySelectorAll('.content-input-file'))\n const lastInputsEmpty = contentInput\n .filter(contentInputEmpty => {\n const input = contentInputEmpty.querySelector('[id^=\"picture_\"]')\n\n if (!contentInputEmpty.classList.contains('hidden') && input.files.length === 0) {\n return contentInputEmpty\n }\n })\n .pop()\n\n lastInputsEmpty.classList.add('hidden')\n}\n\nfunction listenerLoadFile(instance, block) {\n instance.addEventListener('load', () => {\n const getInputsFile = Array.from(block.querySelectorAll('.content-input-file'))\n const nextInput = getInputsFile.find(element => element.classList.contains('hidden'))\n nextInput?.classList.remove('hidden')\n\n if (getInputsEmpty(block) > 1) {\n removeLastInput(block)\n }\n })\n}\n\nfunction removeFile(event, block) {\n const button = event.target\n const contentInputFile = button.closest('.content-input-file')\n const contentInputsUpload = contentInputFile.closest('.content-inputs-uploads')\n\n // Empty the input\n const input = button.closest('.content-input-file').querySelector('[name=\"file-upload-text\"]')\n const inputPicture = button.closest('.content-input-file').querySelector('[id^=\"picture_\"]')\n const inputFile = button.closest('.content-input-file').querySelector('[id^=\"file_\"]')\n input.value = ''\n inputPicture.value = ''\n inputFile.value = ''\n\n if (getInputsEmpty(block) !== 1) {\n contentInputFile.classList.add('hidden')\n contentInputsUpload.appendChild(contentInputFile)\n }\n\n inputRequired(block)\n}\n\nfunction showInputFile(block) {\n const getInputsFile = Array.from(block.querySelectorAll('.content-input-file'))\n const reader = new FileReader()\n\n getInputsEmpty(block)\n\n getInputsFile.forEach(contentInputFile => {\n const inputFile = contentInputFile.querySelector('[id^=\"picture_\"]')\n\n inputFile.addEventListener('change', event => {\n // Prevent if a user cancels uploading\n if (getInputsEmpty(block) > 1) {\n removeLastInput(block)\n }\n\n getInputsFull(block)\n\n // Confirm that the file has been uploaded\n const input = event.target\n if (input.files.length > 0) {\n reader.readAsDataURL(input.files[0])\n }\n })\n })\n\n // When the file has been uploaded, display the following item\n listenerLoadFile(reader, block)\n}\n\nfunction init() {\n const block = document.querySelector('.claim-form')\n const dataIBP = block?.dataset.ibp\n\n if (dataIBP) {\n const buttonsRemove = Array.from(block.querySelectorAll('.js-clear'))\n\n initialiceCheckIn($check_in)\n showInputsChildren(block)\n\n buttonsRemove.forEach(button => {\n button.addEventListener('click', event => {\n removeFile(event, block)\n })\n })\n\n showInputFile(block)\n } else {\n initialiceDatePicker($check_in)\n initialiceDatePicker($check_out)\n }\n}\n\n// ----------------------------------\n// initialize\n// ----------------------------------\n\nwindow.IB.claimForm = {\n init,\n}\n\nif ($('.claim-form').length) IB.claimForm.init()\n"],"names":["dayjs","customParseFormat","$check_in","$","$check_out","language","document","documentElement","getAttribute","date_format","attr","start_date","format","start_of_week","initialiceCheckIn","$date_picker","length","dateRangePicker","autoClose","startOfWeek","singleDate","singleMonth","startDate","showTopbar","setValue","s","val","parsley","validate","on","addClass","offset_left","offset","left","IB","currentDevice","css","width","overflow","minWidth","removeClass","trigger","checkOut","initialiceCheckOut","initialiceDatePicker","handlerCloseButton","block","show","closeButton","querySelector","classList","remove","add","getInputsEmpty","Array","from","querySelectorAll","filter","contentInputEmpty","input","contains","files","removeLastInput","pop","removeFile","event","button","target","contentInputFile","closest","contentInputsUpload","inputPicture","inputFile","value","appendChild","forEach","index","element","setAttribute","inputRequired","showInputFile","getInputsFile","reader","FileReader","addEventListener","getInputsFull","readAsDataURL","instance","nextInput","find","listenerLoadFile","window","claimForm","init","dataIBP","dataset","ibp","buttonsRemove","getNumberChildrens","contentInpusChildren","inputsChildren","numberChildrens","children","select","showInputsChildren"],"sourceRoot":""}