{"version":3,"sources":["technicalSupportRequestForms.js"],"names":["vmFormQA","recaptchaError","popoverFix","$","popover","trigger","html","Callback","recaptchaCallback","document","getElementById","Vue","filter","stringToSearch","searchTerm","s","trim","replace","iQuery","RegExp","toString","matchedText","a","b","value","toLowerCase","component","props","template","VueSelect","use","window","vuelidate","_window$validators","validators","required","requiredIf","sameAs","email","numeric","maxLength","helpers","phone","regex","length_greater","vm","len","el","data","showIssue","disabledDates","from","Date","time","form","componentList","firstNameQA","surnameQA","emailQA","phoneQA","organisationQA","organisationIdQA","otherOrganisationQA","mprnQA","filesQA","tandcQA","submitStatus","loading","organisationsQAList","showDropdownList","rcapt_sig_key","captchaKey","rcapt_id","error","serverSideErrors","info","isGasConsumerQuery","allowNotListedOrganisation","systemType","systemIssueType","validations","$each","e","name","this","isOptional","function","length","undefined","filteredItems","id","methods","updateData","updateValue","event","target","grecaptcha","getResponse","organisationChanged","addFile","fileName","push","removeFileByNameGuid","nameGuid","i","splice","sendForm","_this","g_recaptcha_response","$v","$touch","$invalid","documentElement","body","animate","scrollTop","offset","top","componentsFiltered","map","x","type","uid","axios","post","IsGasConsumerQuery","SystemType","SystemIssueType","FirstName","Surname","Email","Phone","OrganisationId","OrganisationOther","Mprn","Components","Files","CaptchaVerification","headers","Content-Type","then","response","logGAEvent","location","href","ResponseCode","constructor","Array","Message","unexpectedErrorMsg","reset","getOrganisations","_this2","get","matchWords","subject","words","every","includes","back","reload","selectOrganisation","item","combinedTitle","changePlaceholder","some","attr","mounted","nextTick","computed","hideIssues","showResponseMsg","showDropdown","_this3","rg","split","other","shortCode","gasSupplier","concat","watch","addClass","removeClass","uploadFilesSum","upload","onSelect","each","files","index","fileSizeLimit","size","limitOfFileNumber","validationErrors","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":"technicalSupportRequestForms.min.js","sourcesContent":["var vmFormQA = null;\r\nvar recaptchaError = \"\";\r\n//function isCaptchaChecked() {\r\n// return grecaptcha && grecaptcha.getResponse().length !== 0;\r\n//}\r\nfunction popoverFix() {\r\n $('[data-toggle=\"popover\"]').popover({\r\n trigger: \"hover\",\r\n html: true,\r\n });\r\n}\r\nfunction Callback() {\r\n vmFormQA.recaptchaCallback();\r\n}\r\nif (document.getElementById(\"formQA\")) {\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\r\n .toString()\r\n .replace(iQuery, function (matchedText, a, b) {\r\n return \"\" + matchedText + \"\";\r\n });\r\n });\r\n\r\n Vue.filter(\"lowercase\", function (value) {\r\n if (!value) return \"\";\r\n value = value.toString();\r\n return value.toLowerCase();\r\n });\r\n\r\n Vue.component(\"input-text\", {\r\n props: [\r\n \"title\",\r\n \"id\",\r\n \"placeholder\",\r\n \"value\",\r\n \"error\",\r\n \"maxLength\",\r\n \"required\",\r\n \"validator\",\r\n \"labelInfoPopover\"\r\n ],\r\n template: `\r\n
\r\n
0}\">\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
`,\r\n });\r\n Vue.component(\"input-textarea\", {\r\n props: [\r\n \"title\",\r\n \"id\",\r\n \"placeholder\",\r\n \"value\",\r\n \"error\",\r\n \"maxLength\",\r\n \"required\",\r\n \"validator\"\r\n ],\r\n template: `\r\n
\r\n
\r\n
0}\">\r\n \r\n
\r\n \r\n
\r\n
maxLength ? 'text-danger' : 'text-blue'])\">\r\n Maximum characters {{maxLength - value.length}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n *Mandatory Fields that
must be completed\r\n
\r\n
\r\n
maxLength\">\r\n \r\n *Your {{title | lowercase}} must not
exceed {{maxLength}} characters\r\n
\r\n
\r\n
\r\n
`,\r\n });\r\n Vue.component(\"input-list\", {\r\n props: [\r\n \"title\",\r\n \"id\",\r\n \"value\",\r\n \"error\",\r\n \"items\",\r\n \"required\",\r\n \"optional\",\r\n \"nameId\",\r\n ],\r\n template: `\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
`,\r\n });\r\n Vue.component(\"v-select\", VueSelect.VueSelect);\r\n Vue.use(window.vuelidate.default);\r\n //Vue.use(vuejsDatepicker);\r\n const { required, requiredIf, sameAs, email, numeric, maxLength, helpers } =\r\n window.validators;\r\n const phone = helpers.regex(\"phone\", /^[0-9 ()+-]+$/);\r\n const length_greater = (value, vm) =>\r\n (vm.maxLength != null && helpers.len(value) <= vm.maxLength) ||\r\n vm.maxLength == null;\r\n\r\n vmFormQA = new Vue({\r\n el: \"#formQA\",\r\n //components: {\r\n // vuejsDatepicker\r\n //},\r\n data: () => ({\r\n showIssue: showIssue,\r\n disabledDates: {\r\n from: new Date(),\r\n },\r\n time: \"\",\r\n form: {\r\n componentList: componentList,\r\n firstNameQA: \"\",\r\n surnameQA: \"\",\r\n emailQA: \"\",\r\n phoneQA: \"\",\r\n organisationQA: \"\",\r\n organisationIdQA: \"\",\r\n otherOrganisationQA: \"\",\r\n mprnQA: \"\",\r\n filesQA: [],\r\n tandcQA: false,\r\n },\r\n submitStatus: \"\",\r\n loading: false,\r\n organisationsQAList: [],\r\n showDropdownList: false,\r\n rcapt_sig_key: captchaKey,\r\n rcapt_id: 0,\r\n error: recaptchaError,\r\n serverSideErrors: [],\r\n info: null,\r\n isGasConsumerQuery:\r\n typeof isGasConsumerQuery !== \"undefined\"\r\n ? isGasConsumerQuery === \"True\"\r\n ? true\r\n : false\r\n : false,\r\n allowNotListedOrganisation:\r\n typeof allowNotListedOrganisation !== \"undefined\"\r\n ? allowNotListedOrganisation === \"True\"\r\n ? true\r\n : false\r\n : false,\r\n systemType: systemType,\r\n systemIssueType: systemIssueType,\r\n }),\r\n validations: {\r\n form: {\r\n componentList: {\r\n $each: {\r\n value: {\r\n required: requiredIf(function (e) {\r\n return e.name != \"Cloud IX issue type\"\r\n ? e.required\r\n : this.isOptional\r\n ? true\r\n : false;\r\n }),\r\n length_greater,\r\n },\r\n },\r\n },\r\n firstNameQA: {\r\n required,\r\n maxLength: maxLength(256),\r\n },\r\n surnameQA: {\r\n required,\r\n maxLength: maxLength(256),\r\n },\r\n emailQA: {\r\n required,\r\n maxLength: maxLength(100),\r\n email,\r\n },\r\n phoneQA: {\r\n required,\r\n phone,\r\n maxLength: maxLength(32),\r\n },\r\n organisationQA: {\r\n maxLength: maxLength(256),\r\n required: requiredIf(function () {\r\n return !this.isGasConsumerQuery;\r\n }),\r\n function() {\r\n return (\r\n (this.isGasConsumerQuery &&\r\n this.form.organisationQA.length == 0) ||\r\n (this.filteredItems != undefined &&\r\n this.filteredItems.length >= 1 &&\r\n this.form.organisationIdQA != \"\" &&\r\n this.form.organisationIdQA == this.filteredItems[0].id)\r\n );\r\n },\r\n },\r\n otherOrganisationQA: {\r\n required: requiredIf(function () {\r\n return this.form.organisationIdQA === -1;\r\n }),\r\n },\r\n mprnQA: {\r\n maxLength: maxLength(100),\r\n },\r\n tandcQA: {\r\n required,\r\n sameAs: sameAs(() => true),\r\n },\r\n },\r\n },\r\n methods: {\r\n updateData(value) {\r\n this.time = value;\r\n },\r\n updateValue(event) {\r\n this.value = event.target;\r\n },\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 //addOrganisation() {\r\n // this.form.organisationQA = this.otherOrganisationQA;\r\n // this.otherOrganisationQA = \"\";\r\n // this.showDropdownList = true\r\n //},\r\n organisationChanged() {\r\n this.form.organisationIdQA = \"\";\r\n this.form.otherOrganisationQA = \"\";\r\n },\r\n addFile(fileName) {\r\n this.form.filesQA.push(fileName);\r\n },\r\n removeFileByNameGuid(nameGuid) {\r\n if (this.form.filesQA && this.form.filesQA.length) {\r\n for (var i = 0; i < this.form.filesQA.length; i++) {\r\n if (this.form.filesQA[i].nameGuid === nameGuid) {\r\n this.form.filesQA.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();\r\n this.serverSideErrors = [];\r\n this.loading = true;\r\n var dataUrl = \"/umbraco/api/ContactApi/FormSubmitSN\";\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 {\r\n scrollTop: $(\"form\").offset().top - 100,\r\n },\r\n 1000,\r\n );\r\n } else {\r\n this.error = \"\";\r\n this.loading = true;\r\n var componentsFiltered = self.form.componentList.map(function (x) {\r\n if (x.type == \"dropdown\") {\r\n return {\r\n id: x.id,\r\n value: x.value.value,\r\n uid: x.uid,\r\n };\r\n } else {\r\n return {\r\n id: x.id,\r\n value: x.value,\r\n uid: x.uid,\r\n };\r\n }\r\n });\r\n axios\r\n .post(\r\n dataUrl,\r\n {\r\n IsGasConsumerQuery: self.isGasConsumerQuery.toString(),\r\n SystemType: self.systemType,\r\n SystemIssueType: self.systemIssueType,\r\n FirstName: self.form.firstNameQA,\r\n Surname: self.form.surnameQA,\r\n Email: self.form.emailQA,\r\n Phone: self.form.phoneQA,\r\n OrganisationId: self.form.organisationIdQA,\r\n OrganisationOther: self.form.otherOrganisationQA,\r\n Mprn: self.form.mprnQA,\r\n Components: componentsFiltered,\r\n Files: self.form.filesQA,\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 )\r\n .then((response) => {\r\n this.info = response.data;\r\n this.loading = false;\r\n logGAEvent(\r\n \"Help & Support\",\r\n \"Form Submit Success\",\r\n document.location.href,\r\n );\r\n $([document.documentElement, document.body]).animate(\r\n {\r\n scrollTop: $(\"form\").offset().top - 100,\r\n },\r\n 2000,\r\n );\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 } 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 } else {\r\n if (error.response.data.Message) {\r\n this.serverSideErrors.push(\r\n error.response.data.Message + \" \" + unexpectedErrorMsg,\r\n );\r\n } else {\r\n this.serverSideErrors.push(error.response.data);\r\n }\r\n }\r\n grecaptcha.reset();\r\n $([document.documentElement, document.body]).animate(\r\n {\r\n scrollTop: $(\"form\").offset().top - 100,\r\n },\r\n 2000,\r\n );\r\n }\r\n }\r\n this.loading = false;\r\n });\r\n }\r\n },\r\n getOrganisations() {\r\n axios\r\n .get(\r\n \"/umbraco/api/ContactApi/GetOrganisationList?gasSupplierList=\" +\r\n this.isGasConsumerQuery.toString(),\r\n )\r\n .then((response) => (this.organisationsQAList = response.data));\r\n },\r\n matchWords: function (subject, words) {\r\n return words.every((el) =>\r\n subject.toLowerCase().includes(el.toLowerCase()),\r\n );\r\n },\r\n back() {\r\n location.reload();\r\n },\r\n selectOrganisation(item) {\r\n (this.form.organisationQA = item.combinedTitle),\r\n (this.form.organisationIdQA = item.id),\r\n (this.showDropdownList = false);\r\n },\r\n changePlaceholder() {\r\n const el = $(\"#description\");\r\n if (!this.form.componentList.some(\r\n (i) => i.name === \"IX version\",\r\n )) { return }\r\n\r\n if (this.isOptional) {\r\n el.attr(\r\n \"placeholder\",\r\n `Eg \"I can't see my files\" or \"my SFTP isn't working correctly\"`,\r\n );\r\n } else {\r\n el.attr(\r\n \"placeholder\",\r\n `Eg \"I can't see my files\" or \"My connectivity has been lost\"`,\r\n );\r\n }\r\n } \r\n },\r\n mounted() {\r\n this.changePlaceholder();\r\n this.getOrganisations();\r\n Vue.nextTick(function () {\r\n popoverFix();\r\n });\r\n },\r\n computed: {\r\n isOptional() {\r\n return this.form.componentList.some(\r\n (i) => i.name === \"IX version\" && i.value.includes(\"Cloud IX\"),\r\n );\r\n },\r\n // showOptional(){\r\n // return this.isOptional &&\r\n // },\r\n hideIssues() {\r\n return this.showIssue || this.form.componentList.length != 0;\r\n },\r\n showResponseMsg() {\r\n return this.info == null || this.info == undefined;\r\n },\r\n showDropdown() {\r\n if (\r\n this.filteredItems &&\r\n this.filteredItems.length &&\r\n this.filteredItems != \"undefined\" &&\r\n this.showDropdownList\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n filteredItems() {\r\n const rg = this.form.organisationQA\r\n .split(/(\\s+)/)\r\n .filter((e) => e.trim().length > 0);\r\n //if (this.form.organisationQA) {\r\n // return this.organisationsQAList.filter(i => this.matchWords(i.combinedTitle, rg))\r\n //}\r\n const other = this.allowNotListedOrganisation\r\n ? [\r\n {\r\n id: -1,\r\n shortCode: \"OTHER\",\r\n name: \"Organisation not listed?\",\r\n combinedTitle: \"Organisation not listed?\",\r\n gasSupplier: false,\r\n },\r\n ]\r\n : [];\r\n if (this.form.organisationQA) {\r\n let fullMatchHandler = this.organisationsQAList.filter(\r\n (i) => i.combinedTitle === this.form.organisationQA,\r\n );\r\n if (fullMatchHandler.length === 1) {\r\n return this.organisationsQAList.filter(\r\n (i) => i.combinedTitle === this.form.organisationQA,\r\n );\r\n } else {\r\n if (this.allowNotListedOrganisation) {\r\n return other.concat(\r\n this.organisationsQAList.filter((i) =>\r\n this.matchWords(i.combinedTitle, rg),\r\n ),\r\n );\r\n } else {\r\n return this.organisationsQAList.filter((i) =>\r\n this.matchWords(i.combinedTitle, rg),\r\n );\r\n }\r\n }\r\n }\r\n },\r\n },\r\n watch: {\r\n loading() {\r\n if (this.loading) {\r\n $(\"html\").addClass(\"loading\");\r\n } else {\r\n $(\"html\").removeClass(\"loading\");\r\n }\r\n },\r\n isOptional() {\r\n this.changePlaceholder();\r\n }\r\n },\r\n });\r\n}\r\nvar uploadFilesSum = 0;\r\nvar upload = $(\"#filesQA\").data(\"kendoUpload\");\r\n\r\nfunction onSelect(e) {\r\n $.each(e.files, function (index, value) {\r\n if (\r\n uploadFilesSum > fileSizeLimit ||\r\n value.size > fileSizeLimit ||\r\n uploadFilesSum + value.size > fileSizeLimit ||\r\n $(\".k-file[data-uid]\").length > limitOfFileNumber - 1 ||\r\n $(\".k-file[data-uid]\").length + index > limitOfFileNumber - 1\r\n ) {\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 vmFormQA.addFile(file);\r\n }\r\n}\r\n\r\nfunction onRemove(e) {\r\n vmFormQA.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}\r\n\r\n$(\"#filesQA\").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:\r\n '
File upload error. File type not permitted.
Additional files can be submitted later by replying to your confirmation email.
',\r\n invalidMaxFileSize:\r\n '
File upload error. 10MB limit exceeded.
Additional files can be submitted later by replying to your confirmation email.
',\r\n filesSumSizeLimit:\r\n '
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"]}