{"version":3,"sources":["complaintForm.js"],"names":["vmForm","recaptchaError","Callback","recaptchaCallback","document","getElementById","Vue","filter","stringToSearch","searchTerm","s","trim","replace","iQuery","RegExp","toString","matchedText","a","b","use","window","vuelidate","vuejsDatepicker","_window$validators","validators","required","requiredIf","sameAs","email","maxLength","helpers","phone","regex","el","components","data","disabledDates","from","Date","form","firstName","surname","mprn","desc","when","yourIdeal","files","tandc","submitStatus","loading","otherOrganisation","organisationsList","rcapt_sig_key","captchaID","rcapt_id","error","serverSideErrors","info","validations","methods","grecaptcha","getResponse","length","this","addFile","fileName","push","removeFileByNameGuid","nameGuid","i","splice","sendForm","_this","g_recaptcha_response","$v","$touch","$invalid","$","documentElement","body","animate","scrollTop","offset","top","axios","post","FirstName","Surname","Email","Phone","OrganisationId","organisationId","GasSupplyAddress","address","Mprn","PastReference","refNum","IdealOutcome","DateOfOccurence","Description","Files","CaptchaVerification","headers","Content-Type","then","response","ResponseCode","constructor","Array","matchWords","subject","words","every","toLowerCase","includes","back","location","reload","mounted","_this2","addEventListener","render","sitekey","callback","computed","showResponseMsg","undefined","watch","css","uploadFilesSum","upload","onSelect","e","console","log","each","index","value","fileSizeLimit","size","limitOfFileNumber","validationErrors","uid","entry","remove","onError","getFileInfo","onSuccess","operation","file","onRemove","kendoUpload","async","saveUrl","removeUrl","localization","invalidFileExtension","invalidMaxFileSize","filesSumSizeLimit","dropFilesHere","select","success","validation","allowedExtensions","maxFileSize"],"mappings":"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","file":"complaintForm.min.js","sourcesContent":["var vmForm = null;\r\nvar recaptchaError = \"\";\r\nfunction Callback() {\r\n vmForm.recaptchaCallback()\r\n}\r\nif (document.getElementById(\"complaintForm\")) {\r\n Vue.filter('highlight', function (stringToSearch, searchTerm) {\r\n if (searchTerm === '') return stringToSearch;\r\n var s = '(' + searchTerm.trim().replace(/ +/g, '|') + ')';\r\n var iQuery = new RegExp(s, \"ig\");\r\n return stringToSearch.toString().replace(iQuery, function (matchedText, a, b) {\r\n return ('' + matchedText + '');\r\n });\r\n });\r\n\r\n Vue.use(window.vuelidate.default);\r\n Vue.use(vuejsDatepicker);\r\n const { required, requiredIf, sameAs, email, maxLength, helpers } = window.validators;\r\n const phone = helpers.regex('phone', /^[0-9 ()+-]+$/)\r\n\r\n vmForm = new Vue({\r\n el: '#complaintForm',\r\n components: {\r\n vuejsDatepicker\r\n },\r\n data: () => ({\r\n disabledDates: {\r\n from: new Date()\r\n },\r\n form: {\r\n firstName: \"\",\r\n surname: \"\",\r\n email: \"\",\r\n phone: \"\",\r\n mprn: \"\",\r\n desc: \"\",\r\n when: \"\",\r\n yourIdeal: \"\",\r\n files: [],\r\n tandc: false\r\n },\r\n submitStatus: \"\",\r\n loading: false,\r\n otherOrganisation: \"\",\r\n organisationsList: [],\r\n rcapt_sig_key: captchaID,\r\n rcapt_id: 0,\r\n error: recaptchaError,\r\n serverSideErrors: [],\r\n info: null,\r\n }),\r\n validations: {\r\n form: {\r\n firstName: {\r\n required,\r\n maxLength: maxLength(256)\r\n },\r\n surname: {\r\n required,\r\n maxLength: maxLength(256)\r\n },\r\n email: {\r\n required,\r\n maxLength: maxLength(100),\r\n email\r\n },\r\n phone: {\r\n phone,\r\n maxLength: maxLength(32)\r\n }, \r\n mprn: {\r\n maxLength: maxLength(100)\r\n },\r\n desc: {\r\n maxLength: maxLength(4000),\r\n required\r\n },\r\n when: {\r\n //minDate,\r\n required\r\n },\r\n yourIdeal: {\r\n maxLength: maxLength(1000),\r\n required\r\n },\r\n tandc: {\r\n required,\r\n sameAs: sameAs(() => true)\r\n }\r\n }\r\n },\r\n methods: {\r\n recaptchaCallback() {\r\n if (grecaptcha.getResponse().length == 0) {\r\n this.error = \"Complete captcha challenge\";\r\n } else {\r\n this.error = \"\";\r\n }\r\n },\r\n addFile(fileName) {\r\n this.form.files.push(fileName)\r\n },\r\n removeFileByNameGuid(nameGuid) {\r\n if (this.form.files && this.form.files.length) {\r\n for (var i = 0; i < this.form.files.length; i++) {\r\n if (this.form.files[i].nameGuid === nameGuid) {\r\n this.form.files.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n },\r\n sendForm() {\r\n const self = this;\r\n let g_recaptcha_response = grecaptcha.getResponse(this.rcapt_id);\r\n\r\n this.loading = true;\r\n var dataUrl = \"/umbraco/api/ContactApi/ComplaintFormSubmit\";\r\n this.$v.form.$touch()\r\n if (this.$v.form.$invalid || g_recaptcha_response.length == 0) {\r\n this.submitStatus = 'ERROR'\r\n this.recaptchaCallback();\r\n this.loading = false;\r\n $([document.documentElement, document.body]).animate({\r\n scrollTop: $(\"form\").offset().top - 100\r\n }, 2000)\r\n } else {\r\n this.error = \"\";\r\n this.loading = true;\r\n axios.post(dataUrl,\r\n {\r\n FirstName: self.form.firstName,\r\n Surname: self.form.surname,\r\n Email: self.form.email,\r\n Phone: self.form.phone,\r\n OrganisationId: self.form.organisationId,\r\n GasSupplyAddress: self.form.address,\r\n Mprn: self.form.mprn,\r\n PastReference: self.form.refNum,\r\n IdealOutcome: self.form.yourIdeal,\r\n DateOfOccurence: self.form.when,\r\n Description: self.form.desc,\r\n Files: self.form.files,\r\n CaptchaVerification: g_recaptcha_response\r\n },\r\n {\r\n headers: {\r\n 'Content-Type': 'application/json; charset=utf-8'\r\n }\r\n })\r\n .then(response => {\r\n this.info = response.data\r\n this.loading = false;\r\n $([document.documentElement, document.body]).animate({\r\n scrollTop: $(\"form\").offset().top - 100\r\n }, 2000)\r\n })\r\n .catch(error => {\r\n if (error.response.data) {\r\n if (error.response.data.ResponseCode) {\r\n this.info = error.response.data\r\n }\r\n else {\r\n if (error.response.data.constructor === Array) {\r\n for (var i = 0; i < error.response.data.length; i++) {\r\n this.serverSideErrors.push(error.response.data[i]);\r\n }\r\n }\r\n else {\r\n this.serverSideErrors.push(error.response.data);\r\n }\r\n $([document.documentElement, document.body]).animate({\r\n scrollTop: $(\"form\").offset().top - 100\r\n }, 2000)\r\n }\r\n }\r\n this.loading = false;\r\n });\r\n }\r\n },\r\n matchWords: function (subject, words) {\r\n return words.every(el => subject.toLowerCase().includes(el.toLowerCase()));\r\n },\r\n back() {\r\n location.reload();\r\n } \r\n },\r\n mounted() {\r\n window.addEventListener('load', () => {\r\n if (typeof window !== 'undefined' && typeof window.grecaptcha !== 'undefined') {\r\n this.rcapt_id = grecaptcha.render(document.getElementById('gv2-recaptcha'), {\r\n 'sitekey': this.rcapt_sig_key,\r\n callback: (response) => {\r\n this.error = '';\r\n }\r\n });\r\n }\r\n })\r\n },\r\n computed: {\r\n showResponseMsg() {\r\n return this.info == null || this.info == undefined\r\n },\r\n },\r\n watch: {\r\n loading() {\r\n if (this.loading) {\r\n $('.loader').css(\"display\", \"block\")\r\n } else {\r\n $('.loader').css(\"display\", \"none\")\r\n }\r\n }\r\n }\r\n })\r\n}\r\nvar uploadFilesSum = 0;\r\nvar upload = $(\"#files\").data(\"kendoUpload\");\r\n\r\n$(\"#files\").kendoUpload({\r\n async: {\r\n saveUrl: \"/umbraco/api/ContactApi/SupportingDocumentationUpload\",\r\n removeUrl: \"/umbraco/api/ContactApi/SupportingDocumentationUploadRemove\"\r\n },\r\n localization: {\r\n invalidFileExtension: '
File upload error. File type not permitted.
Additional files can be submitted later by replying to your confirmation email.
',\r\n invalidMaxFileSize: '
File upload error. 10MB limit exceeded.
Additional files can be submitted later by replying to your confirmation email.
',\r\n filesSumSizeLimit: '
File upload error. 10MB limit exceeded.
Additional files can be submitted later by replying to your confirmation email.
',\r\n dropFilesHere: \"Drag and drop files here or \",\r\n select: \"Browse\"\r\n },\r\n select: onSelect,\r\n success: onSuccess,\r\n remove: onRemove,\r\n validation: {\r\n allowedExtensions: allowedExtensions,\r\n maxFileSize: fileSizeLimit\r\n },\r\n error: onError\r\n});\r\n\r\nfunction onSelect(e) {\r\n \r\n console.log(e);\r\n $.each(e.files, function (index, value) {\r\n if (uploadFilesSum > fileSizeLimit || value.size > fileSizeLimit || (uploadFilesSum + value.size) > fileSizeLimit || $('.k-file[data-uid]').length > limitOfFileNumber - 1 || ($('.k-file[data-uid]').length + index) > limitOfFileNumber-1) {\r\n var files = e.files; \r\n files[index].validationErrors = [\"filesSumSizeLimit\"]; \r\n var uid = files[index].uid;\r\n var entry = $(\".k-file[data-uid='\" + uid + \"']\");\r\n if (entry.length > 0) {\r\n entry.remove();\r\n }\r\n } else {\r\n if (!e.files[0].validationErrors) {\r\n uploadFilesSum += value.size;\r\n }\r\n }\r\n });\r\n};\r\nfunction onError(e) {\r\n var files = e.files;\r\n for (var i = 0; i < files.length; i++) {\r\n var uid = files[i].uid;\r\n var entry = $(\".k-file[data-uid='\" + uid + \"']\");\r\n if (entry.length > 0) {\r\n entry.remove();\r\n }\r\n }\r\n}\r\nfunction getFileInfo(e) {\r\n var files = e.files;\r\n for (var i = 0; i < files.length; i++) {\r\n return files[i].size\r\n }\r\n}\r\n\r\nfunction onSuccess(e) {\r\n if (e.operation !== 'remove') {\r\n var file = e.files[0]\r\n file.nameGuid = e.response;\r\n vmForm.addFile(file);\r\n }\r\n};\r\n\r\nfunction onRemove(e) {\r\n vmForm.removeFileByNameGuid(e.files[0].nameGuid)\r\n\r\n if ((uploadFilesSum >= getFileInfo(e) && !e.files[0].validationErrors)) {\r\n uploadFilesSum -= getFileInfo(e);\r\n }\r\n e.data = {\r\n nameGuid: e.files[0].nameGuid\r\n }\r\n};"]}