{"version":3,"sources":["block-form.js"],"names":["BlockForm","constructor","container","options","this","uniqueId","Date","now","toString","Math","random","substr","setConstants","Object","assign","apiEndpoint","submitEndpoint","csrfEndpoint","pageEndpoint","formContainer","formId","pageId","culture","recaptchaSiteKey","csrfEnabled","loaderEnabled","loaderImage","document","querySelector","formDataTypes","thankYou","type","thankYouTypes","message","url","recaptcha","inForm","ready","fieldId","renderLoader","showLoader","loadForm","page","dataType","string","file","array","fieldTypes","short answer","fieldTypeShortAnswer","bind","long answer","fieldTypeLongAnswer","date","fieldTypeDate","date and time","fieldTypeDateAndTime","date with date check","checkbox","fieldTypeCheckbox","file upload","fieldTypeFileUpload","password","fieldTypePassword","multiple choice","fieldTypeMultipleChoice","data consent","fieldTypeDataConsent","dropdown","fieldTypeDropdown","single choice","fieldTypeSingleChoice","title and description","fieldTypeTitleDescription","hidden","fieldTypeHidden","recaptcha v3 with score","fieldTypeRecaptcha3","loadingInner","createElement","loadingImage","addAttribute","loader","alt","src","appendChild","classList","add","hideLoader","remove","getCsrfToken","let","response","await","fetch","status","json","result","getThankYouPageUrl","id","replace","formError","msg","errorRow","errorColumn","errorMsg","innerHTML","prepend","csrfToken","indexOf","data","setupThankYou","renderForm","initDatePickers","renderFormLoadError","settings","thankYouRow","thankYouCol","gotoPageOnSubmit","pageSettings","thankYouElement","messageOnSubmitIsHtml","messageOnSubmit","innerText","formElement","renderPages","pages","renderButton","elem","i","length","renderFieldSets","fieldsets","fieldSets","renderColumns","columns","row","column","width","renderFields","fields","field","fieldType","name","toLowerCase","buttonElement","submitLabel","addEventListener","submitForm","datePickers","querySelectorAll","initDatePicker","dateTimePickers","initDateTimePicker","e","preventDefault","stopPropagation","disableSubmit","clearValidationErrors","window","grecaptcha","execute","action","then","value","token","processSubmit","alert","key","fileName","fileContents","contentKey","values","formData","FormData","getFileAsBase64","push","headers","Content-Type","headerName","requestToken","method","body","JSON","stringify","processThankYou","validationErrors","errors","renderValidationErrors","console","log","statusText","enableSubmit","location","scrollIntoView","behavior","block","messages","entries","join","firstError","Element","datePicker","instance","flatpickr","altInput","altFormat","dateFormat","disableMobile","locale","firstDayOfWeek","onOpen","forEach","day","trim","slice","onChange","dateObj","dateStr","dateArr","replaceAll","split","monthStr","venueBook","year","month","selectedDate","getAttribute","set","enableTime","minuteIncrement","alias","fieldElement","addAttributeFromFieldSettings","addStandardFieldWrapper","wrapper","textElement","defaultValue","caption","addSimpleFieldWrapper","preValues","option","titleElement","captionTag","descriptionElement","bodyText","showLabel","fieldLabel","messageElement","fieldWrapper","allowMultipleSelections","selectPrompt","acceptValues","fileUploadOptions","allowAllUploadExtensions","allowedUploadExtensions","map","allowMultipleFileUploads","scriptElement","self","inputElement","onload","setAttribute","removeAttribute","element","attr","createAttribute","setAttributeNode","attrName","settingKey","slotElem","standardWrapper","addFieldLabelElement","slotWrapper","slotError","labelElement","forAttr","required","Promise","resolve","reject","reader","FileReader","readAsDataURL","onerror","error"],"mappings":"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","file":"block-form.min.js","sourcesContent":["export default class BlockForm {\r\n constructor(container, options) {\r\n const defaultOptions = {\r\n apiEndpoint: '/umbraco/forms/api/v1.0/definitions/{id}',\r\n submitEndpoint: '/umbraco/forms/api/v1.0/entries/{id}',\r\n csrfEndpoint: '/api/v1/forms/csrf-token',\r\n pageEndpoint: '/api/v1/forms/page-url/{id}',\r\n formContainer: '.form',\r\n formId: '',\r\n pageId: '',\r\n culture: '',\r\n recaptchaSiteKey: '',\r\n csrfEnabled: false,\r\n loaderEnabled: true,\r\n loaderImage: ''\r\n };\r\n this.uniqueId = Date.now().toString(36) + Math.random().toString(36).substr(2);\r\n this.setConstants();\r\n this.options = Object.assign({}, defaultOptions, options);\r\n this.container = document.querySelector(container);\r\n this.formContainer = this.container.querySelector(this.options.formContainer);\r\n this.formDataTypes = {};\r\n this.thankYou = {\r\n type: this.thankYouTypes.message,\r\n url: ''\r\n };\r\n \r\n this.recaptcha = {\r\n inForm: false,\r\n ready: false,\r\n fieldId: '',\r\n };\r\n\r\n if(this.options.loaderEnabled) {\r\n this.renderLoader();\r\n this.showLoader(); \r\n }\r\n this.loadForm();\r\n }\r\n \r\n setConstants() {\r\n this.thankYouTypes = {\r\n message: 'MESSAGE',\r\n page: 'PAGE'\r\n };\r\n this.dataType = {\r\n string: 'STRING',\r\n file: 'FILE',\r\n array: 'ARRAY'\r\n }\r\n this.fieldTypes = {\r\n 'short answer': this.fieldTypeShortAnswer.bind(this),\r\n 'long answer': this.fieldTypeLongAnswer.bind(this),\r\n 'date': this.fieldTypeDate.bind(this),\r\n 'date and time': this.fieldTypeDateAndTime.bind(this),\r\n 'date with date check': this.fieldTypeDate.bind(this),\r\n 'checkbox': this.fieldTypeCheckbox.bind(this),\r\n 'file upload': this.fieldTypeFileUpload.bind(this),\r\n 'password': this.fieldTypePassword.bind(this),\r\n 'multiple choice': this.fieldTypeMultipleChoice.bind(this),\r\n 'data consent': this.fieldTypeDataConsent.bind(this),\r\n 'dropdown': this.fieldTypeDropdown.bind(this),\r\n 'single choice': this.fieldTypeSingleChoice.bind(this),\r\n 'title and description': this.fieldTypeTitleDescription.bind(this),\r\n 'hidden': this.fieldTypeHidden.bind(this),\r\n 'recaptcha v3 with score': this.fieldTypeRecaptcha3.bind(this),\r\n };\r\n }\r\n \r\n renderLoader() {\r\n var loadingInner = document.createElement('div');\r\n this.addAttribute(loadingInner, 'class', 'container');\r\n\r\n this.loader = document.createElement('div');\r\n this.addAttribute(this.loader, 'class', 'loading-container');\r\n\r\n var loadingImage = document.createElement('img');\r\n loadingImage.alt = 'loading graphic';\r\n loadingImage.src = this.options.loaderImage;\r\n \r\n loadingInner.appendChild(loadingImage);\r\n \r\n this.loader.appendChild(loadingInner);\r\n \r\n this.formContainer.appendChild(this.loader);\r\n }\r\n\r\n showLoader() {\r\n this.loader.classList.add('show');\r\n }\r\n\r\n hideLoader() {\r\n this.loader.classList.remove('show');\r\n }\r\n \r\n \r\n async getCsrfToken() {\r\n let response = await fetch(this.options.csrfEndpoint);\r\n if(response.status === 200) {\r\n let data = await response.json();\r\n return data;\r\n }\r\n\r\n return {\r\n result: false\r\n }\r\n }\r\n\r\n async getThankYouPageUrl(id) {\r\n let response = await fetch(this.options.pageEndpoint.replace('{id}', id));\r\n if(response.status === 200) {\r\n let data = await response.json();\r\n return data;\r\n }\r\n\r\n return {\r\n url: ''\r\n }\r\n }\r\n \r\n formError(msg) {\r\n let formError = this.container.querySelector('.form-error');\r\n if(typeof formError === 'undefined' || formError === null) { \r\n formError = document.createElement('div');\r\n this.addAttribute(formError, 'class', 'container form-error');\r\n\r\n const errorRow = document.createElement('div');\r\n this.addAttribute(errorRow, 'class', 'row');\r\n\r\n const errorColumn = document.createElement('div');\r\n this.addAttribute(errorColumn, 'class', 'col-12');\r\n\r\n const errorMsg = document.createElement('div');\r\n this.addAttribute(errorMsg, 'class', 'msg');\r\n\r\n errorColumn.appendChild(errorMsg);\r\n errorRow.appendChild(errorColumn);\r\n formError.appendChild(errorRow);\r\n } \r\n formError.querySelector('.msg').innerHTML = msg;\r\n this.container.prepend(formError);\r\n }\r\n \r\n async loadForm() { \r\n if(this.options.csrfEnabled) {\r\n const csrfToken = await this.getCsrfToken();\r\n if(csrfToken.result != false) {\r\n this.csrfToken = csrfToken;\r\n }\r\n else {\r\n this.formError('Could not load form');\r\n return;\r\n } \r\n }\r\n \r\n var url = this.options.apiEndpoint.replace('{id}', this.options.formId);\r\n if(this.options.pageId !== '' && this.options.pageId != 0) {\r\n url += '?contentId=' + this.options.pageId;\r\n }\r\n if(this.options.pageId !== '') {\r\n url += ((url.indexOf('?') >= 0) ? '&' : '?');\r\n url += 'culture=' + this.options.culture;\r\n }\r\n \r\n \r\n let response = await fetch(url);\r\n if(response.status === 200) {\r\n let data = await response.json();\r\n await this.setupThankYou(data);\r\n this.renderForm(data);\r\n this.initDatePickers();\r\n }\r\n else {\r\n this.renderFormLoadError(); \r\n }\r\n }\r\n \r\n async setupThankYou(settings) {\r\n if(typeof settings.gotoPageOnSubmit !== 'undefined') {\r\n this.thankYou.type = this.thankYouTypes.page;\r\n var pageSettings = await this.getThankYouPageUrl(settings.gotoPageOnSubmit);\r\n if(pageSettings.result != false) {\r\n this.thankYou.url = pageSettings.url;\r\n }\r\n }\r\n else {\r\n this.thankYouElement = document.createElement('div');\r\n this.addAttribute(this.thankYouElement, 'class', 'container thank-you');\r\n\r\n var thankYouRow = document.createElement('div');\r\n this.addAttribute(thankYouRow, 'class', 'row');\r\n\r\n var thankYouCol = document.createElement('div');\r\n this.addAttribute(thankYouCol, 'class', 'col-12');\r\n \r\n if(settings.messageOnSubmitIsHtml) {\r\n thankYouCol.innerHTML = settings.messageOnSubmit;\r\n }\r\n else {\r\n thankYouCol.innerText = settings.messageOnSubmit;\r\n }\r\n thankYouRow.appendChild(thankYouCol);\r\n this.thankYouElement.appendChild(thankYouRow);\r\n \r\n this.formContainer.appendChild(this.thankYouElement);\r\n }\r\n }\r\n\r\n renderForm(data) {\r\n this.formElement = document.createElement('form');\r\n this.addAttribute(this.formElement, 'id', 'form-' + this.uniqueId);\r\n \r\n this.renderPages(this.formElement, data.pages);\r\n this.formContainer.appendChild(this.formElement);\r\n this.renderButton(this.formElement, data);\r\n this.formElement.classList.add('active');\r\n if(this.options.loaderEnabled) {\r\n this.hideLoader();\r\n }\r\n }\r\n\r\n renderPages(elem, pages) {\r\n for(var i = 0; i < pages.length; i++) {\r\n this.renderFieldSets(elem, pages[i].fieldsets);\r\n }\r\n }\r\n\r\n renderFieldSets(elem, fieldSets) {\r\n let container = document.createElement('div');\r\n this.addAttribute(container, 'class', 'container fields');\r\n for(var i = 0; i < fieldSets.length; i++) {\r\n this.renderColumns(container, fieldSets[i].columns);\r\n }\r\n elem.appendChild(container);\r\n }\r\n \r\n renderColumns(elem, columns) {\r\n let row = document.createElement('div');\r\n this.addAttribute(row, 'class', 'row');\r\n for(var i = 0; i < columns.length; i++) {\r\n let column = document.createElement('div');\r\n this.addAttribute(column, 'class', 'col-12 col-md-' + columns[i].width);\r\n \r\n this.renderFields(column, columns[i].fields);\r\n \r\n row.appendChild(column);\r\n }\r\n elem.appendChild(row); \r\n }\r\n\r\n renderFields(elem, fields) {\r\n for(var i = 0; i < fields.length; i++) {\r\n let fieldType = fields[i].type.name.toLowerCase();\r\n if(typeof this.fieldTypes[fieldType] !== 'undefined') {\r\n let field = this.fieldTypes[fieldType](fields[i]);\r\n elem.appendChild(field);\r\n }\r\n else {\r\n let field = document.createElement('div');\r\n field.innerHTML = fieldType + ' Not Supported';\r\n elem.appendChild(field);\r\n }\r\n \r\n }\r\n }\r\n\r\n renderButton(formElement, data) {\r\n const container = document.createElement('div');\r\n this.addAttribute(container, 'class', 'container buttons')\r\n \r\n const row = document.createElement('div');\r\n this.addAttribute(row, 'class', 'row')\r\n \r\n const column = document.createElement('div');\r\n this.addAttribute(column, 'class', 'col')\r\n \r\n const buttonElement = document.createElement('button');\r\n var submitLabel = data.submitLabel;\r\n if (submitLabel === '') {\r\n submitLabel = 'Submit';\r\n }\r\n buttonElement.innerText = submitLabel;\r\n this.addAttribute(buttonElement, 'type', 'submit');\r\n this.addAttribute(buttonElement, 'class', 'btn btn-sm btn-primary');\r\n buttonElement.addEventListener('click', this.submitForm.bind(this));\r\n \r\n column.appendChild(buttonElement);\r\n row.appendChild(column);\r\n container.appendChild(row);\r\n formElement.appendChild(container);\r\n }\r\n \r\n initDatePickers() {\r\n let datePickers = this.container.querySelectorAll('.flatpickr.date-only');\r\n for(var i = 0; i < datePickers.length; i++) {\r\n this.initDatePicker(datePickers[i]);\r\n }\r\n \r\n let dateTimePickers = this.container.querySelectorAll('.flatpickr.date-time');\r\n for(var i = 0; i < dateTimePickers.length; i++) {\r\n this.initDateTimePicker(dateTimePickers[i]);\r\n }\r\n }\r\n\r\n async submitForm(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.showLoader();\r\n this.disableSubmit();\r\n this.clearValidationErrors()\r\n \r\n if (this.recaptcha.inForm) {\r\n if(this.recaptcha.ready) {\r\n window.grecaptcha.execute(this.options.recaptchaSiteKey, {action: \"umbracoform_submit\"}).then((token) => {\r\n var hiddenField = this.container.querySelector('#form-' + this.uniqueId + '-recaptcha-' + this.recaptcha.fieldId);\r\n hiddenField.value = token;\r\n this.processSubmit();\r\n }); \r\n }\r\n else {\r\n // TODO make a nice error message to say try again.\r\n alert('recaptcha not ready');\r\n }\r\n } else {\r\n await this.processSubmit();\r\n }\r\n }\r\n \r\n async processSubmit() {\r\n const formId = this.options.formId;\r\n const data = {\r\n contentKey: this.options.pageId,\r\n culture: this.options.culture,\r\n values: {}\r\n };\r\n\r\n const formData = new FormData(this.formElement);\r\n window.formData = formData;\r\n \r\n for (const [key, value] of formData) {\r\n if(this.formDataTypes[key] === this.dataType.file) {\r\n\r\n const fileName = value.name;\r\n const fileContents = await this.getFileAsBase64(value);\r\n if (typeof data.values[key] === 'undefined') {\r\n data.values[key] = [];\r\n }\r\n \r\n data.values[key].push({\r\n fileName: fileName,\r\n fileContents: fileContents\r\n });\r\n }\r\n else if(this.formDataTypes[key] === this.dataType.array) {\r\n if (typeof data.values[key] === 'undefined') {\r\n data.values[key] = [];\r\n }\r\n data.values[key].push(value);\r\n }\r\n else {\r\n data.values[key] = value\r\n }\r\n }\r\n\r\n var headers = {\r\n \"Content-Type\": \"application/json\"\r\n };\r\n \r\n if(this.options.csrfEnabled) {\r\n headers[this.csrfToken.headerName] = this.csrfToken.requestToken; \r\n }\r\n \r\n \r\n let response = await fetch(this.options.submitEndpoint.replace('{id}', formId), {\r\n method: \"POST\",\r\n headers: headers,\r\n body: JSON.stringify(data),\r\n });\r\n \r\n if (response.status === 202) {\r\n this.processThankYou();\r\n }\r\n else if (response.status === 422) {\r\n let validationErrors = await response.json();\r\n if(typeof validationErrors.errors !== 'undefined') {\r\n this.renderValidationErrors(validationErrors.errors);\r\n }\r\n }\r\n else {\r\n console.log(\"Error (\" + response.status + \"): \" + response.statusText);\r\n }\r\n this.enableSubmit();\r\n this.hideLoader();\r\n }\r\n\r\n processThankYou() {\r\n if(this.thankYou.type == this.thankYouTypes.page && this.thankYou.url !== '') {\r\n window.location = this.thankYou.url;\r\n return;\r\n }\r\n else {\r\n this.formElement.classList.remove('active');\r\n this.thankYouElement.classList.add('active');\r\n\r\n this.thankYouElement.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'center'\r\n });\r\n }\r\n }\r\n\r\n clearValidationErrors() {\r\n var errorMessages = this.container.querySelectorAll('.fieldtype.error');\r\n\r\n for(const elem of errorMessages) {\r\n elem.classList.remove('error');\r\n }\r\n }\r\n\r\n renderValidationErrors(validationErrors) {\r\n for(const [field, messages] of Object.entries(validationErrors)) {\r\n // const elem = this.container.querySelector('.error-'+ field);\r\n const elem = this.container.querySelector('[data-alias='+field+']');\r\n \r\n if(typeof elem !== 'undefined') {\r\n elem.classList.add('error');\r\n elem.querySelector('.error-message .msg').innerHTML = '