{"version":3,"sources":["webpack:///./src/components/UI/Loader.vue?4b8c","webpack:///./src/components/UI/Loader.vue","webpack:///./src/components/UI/Loader.vue?05d4","webpack:///./src/components/UI/Loader.vue?d4ac","webpack:///./src/views/ContactUs.vue?715d","webpack:///./src/components/Forms/Section.vue?0ebf","webpack:///./node_modules/client-website-ts-library/components/MultiSelect.vue?e1b8","webpack:///./node_modules/client-website-ts-library/components/Map/Map.vue?a3e1","webpack:///./node_modules/client-website-ts-library/components/ReCaptcha.vue?447f","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/client-website-ts-library/components/Map/Map.vue?a292","webpack:///./node_modules/client-website-ts-library/components/Map/Map.vue?484d","webpack:///./node_modules/client-website-ts-library/components/Map/Map.vue?5d21","webpack:///./node_modules/client-website-ts-library/components/Map/Map.vue","webpack:///./node_modules/client-website-ts-library/components/ReCaptcha.vue?d838","webpack:///./node_modules/client-website-ts-library/components/ReCaptcha.vue?c1f0","webpack:///./node_modules/client-website-ts-library/components/ReCaptcha.vue?83ee","webpack:///./node_modules/client-website-ts-library/components/ReCaptcha.vue","webpack:///./node_modules/client-website-ts-library/components/VideoRecorder.vue?1201","webpack:///./node_modules/client-website-ts-library/components/VideoRecorder.vue?c337","webpack:///./node_modules/client-website-ts-library/components/VideoRecorder.vue?c12c","webpack:///./node_modules/client-website-ts-library/components/VideoRecorder.vue","webpack:///./node_modules/client-website-ts-library/components/MultiSelect.vue?8afb","webpack:///./node_modules/client-website-ts-library/components/MultiSelect.vue?2d48","webpack:///./node_modules/client-website-ts-library/components/MultiSelect.vue?7bcf","webpack:///./node_modules/client-website-ts-library/components/MultiSelect.vue","webpack:///./src/components/UI/Loader.vue?b05e","webpack:///./src/components/Forms/Form.vue?f8f5","webpack:///./src/components/Forms/ErrorList.vue?13c8","webpack:///./src/components/Forms/ErrorList.vue?e93e","webpack:///./src/components/Forms/ErrorList.vue","webpack:///./src/components/Forms/ErrorList.vue?805f","webpack:///./src/components/Forms/ErrorList.vue?12a6","webpack:///./node_modules/client-website-ts-library/plugins/view/index.ts","webpack:///./src/components/Forms/FieldTypes/FormDropdownField.vue?0f71","webpack:///./node_modules/client-website-ts-library/components/VideoRecorder.vue?9352","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./src/views/ContactUs.vue?2a01","webpack:///./src/components/Forms/Form.vue?8a3a","webpack:///./src/components/Forms/Section.vue?754f","webpack:///./src/components/Forms/FieldTypes/FormDateField.vue?be7d","webpack:///./src/components/Forms/FieldTypes/FormDateField.vue","webpack:///./src/components/Forms/FieldTypes/FormDateField.vue?e801","webpack:///./src/components/Forms/FieldTypes/FormDateField.vue?e688","webpack:///./src/components/Forms/FieldTypes/FormDropdownField.vue?6fbd","webpack:///./src/components/Forms/FieldTypes/FormDropdownField.vue","webpack:///./src/components/Forms/FieldTypes/FormDropdownField.vue?8924","webpack:///./src/components/Forms/FieldTypes/FormDropdownField.vue?97ae","webpack:///./src/components/Forms/FieldTypes/FormEmailField.vue?82fb","webpack:///./src/components/Forms/FieldTypes/FormEmailField.vue","webpack:///./src/components/Forms/FieldTypes/FormEmailField.vue?9c17","webpack:///./src/components/Forms/FieldTypes/FormEmailField.vue?6a2f","webpack:///./src/components/Forms/FieldTypes/FormStaticTextField.vue?c400","webpack:///./src/components/Forms/FieldTypes/FormStaticTextField.vue","webpack:///./src/components/Forms/FieldTypes/FormStaticTextField.vue?8813","webpack:///./src/components/Forms/FieldTypes/FormStaticTextField.vue?c88b","webpack:///./src/components/Forms/FieldTypes/FormTelField.vue?f760","webpack:///./src/components/Forms/FieldTypes/FormTelField.vue","webpack:///./src/components/Forms/FieldTypes/FormTelField.vue?f3fd","webpack:///./src/components/Forms/FieldTypes/FormTelField.vue?b788","webpack:///./src/components/Forms/FieldTypes/FormTextareaField.vue?2a69","webpack:///./src/components/Forms/FieldTypes/FormTextareaField.vue","webpack:///./src/components/Forms/FieldTypes/FormTextareaField.vue?ba41","webpack:///./src/components/Forms/FieldTypes/FormTextareaField.vue?997b","webpack:///./src/components/Forms/FieldTypes/FormTextField.vue?6d0c","webpack:///./src/components/Forms/FieldTypes/FormTextField.vue","webpack:///./src/components/Forms/FieldTypes/FormTextField.vue?a3ac","webpack:///./src/components/Forms/FieldTypes/FormTextField.vue?b8fa","webpack:///./src/components/Forms/Section.vue","webpack:///./src/components/Forms/Section.vue?e2a0","webpack:///./src/components/Forms/Section.vue?80a3","webpack:///./src/components/Forms/Form.vue","webpack:///./src/components/Forms/Form.vue?d965","webpack:///./src/components/Forms/Form.vue?4d45","webpack:///./src/views/ContactUs.vue","webpack:///./src/views/ContactUs.vue?e268","webpack:///./src/views/ContactUs.vue?8f5a"],"names":["render","_vm","this","_h","$createElement","_c","_self","directives","name","rawName","value","expression","staticClass","staticRenderFns","component","$","$filter","filter","arrayMethodHasSpeciesSupport","arrayMethodUsesToLength","HAS_SPECIES_SUPPORT","USES_TO_LENGTH","target","proto","forced","callbackfn","arguments","length","undefined","config","MapProvider","ref","attrs","settings","on","$event","$emit","_e","MapBoxMap","Config","Website","Settings","center","zoom","$refs","map","SetCenter","GetZoom","components","class","recaptchaVersion","id","siteKey","callbackFunctionName","GetGuid","response","responseWaiter","ReCaptcha","ReCaptchaSiteKey","ReCaptchaVersion","window","Log","Debug","loadLibrary","then","Info","catch","Error","grecaptcha","reset","Promise","resolve","reject","win","execute","ex","scr","document","createElement","pl_recaptcha_loaded","onerror","async","defer","head","appendChild","src","domProps","_s","def","Labels","Prompt","needsFallback","isMobile","uploadVideo","_v","Upload","Record","showRecorder","isActive","ready","isRunningOutatime","formattedTime","doneRecording","isRecording","toggleRecording","cancelRecording","initVideoStream","fatalErrorMessage","needsPermissions","hasNoDevices","permissionDenied","hasFatalError","videoBlob","outatimeThreshold","captureConfig","currentTime","currentTimeInterval","videoStream","mediaRecorder","capturedChunks","test","navigator","userAgent","fallback","mediaDevices","enumerateDevices","availableDevices","some","device","kind","permissions","query","res","state","Warning","err","stopRecording","startRecording","codecs","codec","i","MediaRecorder","isTypeSupported","initCaptureConfig","mimeType","ondataavailable","e","push","data","onstop","Blob","type","clearInterval","start","setInterval","MaxRecordLength","stop","hideRecorder","fi","accept","setAttribute","style","display","createFileInput","onchange","files","file","size","MaxFileSize","alert","FormattedMaxFileSize","remove","onblur","setTimeout","body","click","getTracks","forEach","track","constraints","audio","video","width","height","getUserMedia","mediaStream","preview","srcObject","message","mins","Math","floor","secs","totalMins","totalSecs","focused","background","focusBg","itemBorderRad","defocus","_l","item","key","Value","Label","removeItem","selectedValue","previewCount","searchPlaceholder","updateSearch","gotFocus","composing","search","searchResults","result","Option","Selected","select","noResults","requestAnimationFrame","results","options","loweredSearch","toLowerCase","itm","indexOf","r","s","enableCustom","customLabelPrefix","customValuePrefix","option","v","idx","findIndex","splice","opt","slice","required","default","error","Key","SubfieldKey","Message","prolistAnalyticsService","ServiceManager","Get","Analytics","headService","Require","Head","evt","obj","getAnalyticsEvent","call","getAnalyticsData","$route","path","triggerAnalyticsEvent","event","GetAll","adapter","bind","meta","Update","UpdateWithStatic","updateHead","updateAnalytics","$on","$map","office","Phone","Email","AddressLine1","AddressLine2","staticStyle","mapSettings","fieldBg","loading","loadAutosave","autosaveDate","definition","Options","SubmittedText","section","SectionId","refInFor","errors","ctx","handleFieldInput","submitButtonClass","submitButtonColour","submitButtonBackgroundColour","submitForm","SubmitButtonText","CSSClasses","join","IsSegregated","Title","VerticalAlignment","field","FieldId","LayoutOptions","ColumnSpan","TypeName","_b","tag","handleInput","getProps","hasErrors","elemId","Required","Placeholder","ErrorList","$$selectedVal","Array","prototype","o","selected","val","_value","multiple","MaxLength","MinLength","CSSStyles","Text","FormGraphicalPDFField","FormVideoUploadField","FormMultiFileUploaderField","formContext","formType","fieldDef","FormFields","getValue","values","find","setValue","FormDateField","FormDropdownField","FormEmailField","FormStaticTextField","FormTelField","FormTextareaField","FormTextField","context","errored","submitted","autosaveManager","FormAutosave","hasAutosave","submitPercent","recaptchaService","progress","total","round","console","log","Items","ClientWebsiteId","Id","Forms","GetForm","enableAutosave","GetState","Sections","sectionComponent","setData","collectData","normalisedData","normaliseData","SubmitForm","Valid","Submitted","resetRecaptcha","ValidationState","Errors","includeRecaptcha","getRecaptchaResponse","recaptchaResponse","Reset","GetResponse","newValues","entry","Section","Loader","Offices","WebsiteId","Markers","Address","FranchiseName","debug","Map","Form"],"mappings":"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","file":"js/chunk-984994c0.7757b411.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"loader\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator';\n\n@Component\nexport default class Loader extends Vue {\n @Prop()\n private readonly loading!: boolean;\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Loader.vue?vue&type=template&id=b15215d2&scoped=true&\"\nimport script from \"./Loader.vue?vue&type=script&lang=ts&\"\nexport * from \"./Loader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Loader.vue?vue&type=style&index=0&id=b15215d2&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b15215d2\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContactUs.vue?vue&type=style&index=0&id=bdc5168e&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContactUs.vue?vue&type=style&index=0&id=bdc5168e&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Section.vue?vue&type=style&index=0&id=21bc423e&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Section.vue?vue&type=style&index=0&id=21bc423e&scoped=true&lang=css&\"","import mod from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--6-oneOf-1-2!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./MultiSelect.vue?vue&type=style&index=0&id=4b217463&scoped=true&lang=css&\"; export default mod; export * from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--6-oneOf-1-2!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./MultiSelect.vue?vue&type=style&index=0&id=4b217463&scoped=true&lang=css&\"","import mod from \"-!../../../mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../vue-loader/lib/loaders/stylePostLoader.js!../../../postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../cache-loader/dist/cjs.js??ref--0-0!../../../vue-loader/lib/index.js??vue-loader-options!./Map.vue?vue&type=style&index=0&id=7191a663&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../vue-loader/lib/loaders/stylePostLoader.js!../../../postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../cache-loader/dist/cjs.js??ref--0-0!../../../vue-loader/lib/index.js??vue-loader-options!./Map.vue?vue&type=style&index=0&id=7191a663&scoped=true&lang=css&\"","import mod from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--6-oneOf-1-2!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./ReCaptcha.vue?vue&type=style&index=0&id=5eb33c20&scoped=true&lang=css&\"; export default mod; export * from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--6-oneOf-1-2!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./ReCaptcha.vue?vue&type=style&index=0&id=5eb33c20&scoped=true&lang=css&\"","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"map\"},[(_vm.settings)?[(_vm.config.MapProvider == 2)?_c('MapBoxMap',{ref:\"map\",attrs:{\"map-settings\":_vm.settings},on:{\"moved\":function($event){return _vm.$emit('moved', $event)}}}):_vm._e()]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\r\nimport { Coordinate, MapSettings } from \"../../types\";\r\nimport { Config } from \"../../services/Config\";\r\n\r\n\r\nconst MapBoxMap = () => import(\"./Providers/MapBoxMap.vue\");\r\n\r\n@Component({\r\n components: {\r\n MapBoxMap,\r\n },\r\n})\r\nexport default class Map extends Vue {\r\n @Prop()\r\n private readonly settings!: MapSettings;\r\n\r\n private config = Config.Website.Settings!.MapProvider;\r\n\r\n public SetCenter(center: Coordinate, zoom: number) {\r\n (this.$refs.map as any).SetCenter(center, zoom);\r\n }\r\n\r\n public GetZoom(): number {\r\n return (this.$refs.map as any).GetZoom();\r\n }\r\n}\r\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../ts-loader/index.js??ref--14-3!../../../cache-loader/dist/cjs.js??ref--0-0!../../../vue-loader/lib/index.js??vue-loader-options!./Map.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--14-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../ts-loader/index.js??ref--14-3!../../../cache-loader/dist/cjs.js??ref--0-0!../../../vue-loader/lib/index.js??vue-loader-options!./Map.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Map.vue?vue&type=template&id=7191a663&scoped=true&\"\nimport script from \"./Map.vue?vue&type=script&lang=ts&\"\nexport * from \"./Map.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Map.vue?vue&type=style&index=0&id=7191a663&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7191a663\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"recaptcha\",class:{'recaptcha--visible': _vm.recaptchaVersion == 20}},[_c('div',{staticClass:\"g-recaptcha recaptcha__inner\",attrs:{\"id\":'recaptcha_' + _vm.id,\"data-sitekey\":_vm.siteKey,\"data-size\":_vm.recaptchaVersion == 20 ? '' : 'invisible',\"data-callback\":_vm.callbackFunctionName,\"data-expired-callback\":_vm.callbackFunctionName}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\r\n\r\nimport { Config, Logger, LogLevel } from \"../services\";\r\nimport { Utils } from \"../util\";\r\n\r\n@Component\r\nexport default class ReCaptcha extends Vue {\r\n private readonly id = Utils.GetGuid();\r\n\r\n private response: string | null = null;\r\n\r\n private responseWaiter: ((value?: string | PromiseLike | undefined) => void) | null = null;\r\n\r\n private siteKey = Config.Website.Settings!.ReCaptcha.ReCaptchaSiteKey;\r\n\r\n private recaptchaVersion = Config.Website.Settings!.ReCaptcha.ReCaptchaVersion;\r\n\r\n get callbackFunctionName() {\r\n return `_recaptcha_callback_${this.id}`;\r\n }\r\n\r\n mounted() {\r\n (window as any)[this.callbackFunctionName] = (response: string | null) => {\r\n Logger.Log(LogLevel.Debug, '[ReCaptcha]', 'Got response');\r\n\r\n this.response = response || null;\r\n\r\n if(this.responseWaiter !== null && this.response !== null) {\r\n this.responseWaiter(this.response);\r\n this.responseWaiter = null;\r\n }\r\n }\r\n\r\n this.loadLibrary().then(() => {\r\n Logger.Log(LogLevel.Info, '[ReCaptcha]', 'Loaded ReCaptcha');\r\n }).catch(() => {\r\n Logger.Log(LogLevel.Error, '[ReCaptcha]', 'Failed to load ReCaptcha');\r\n });\r\n\r\n Logger.Log(LogLevel.Info, '[ReCaptcha]', 'Registered ReCaptcha', this.id);\r\n }\r\n\r\n reset() {\r\n (window as any).grecaptcha.reset();\r\n }\r\n\r\n getResponse(): Promise {\r\n return new Promise((resolve, reject) => {\r\n if(this.response !== null && this.response.length > 0) {\r\n resolve(this.response);\r\n return;\r\n }\r\n\r\n this.responseWaiter = () => {\r\n Logger.Log(LogLevel.Debug, '[ReCaptcha]', 'Resolving response');\r\n resolve();\r\n };\r\n\r\n const win = window as any;\r\n\r\n try {\r\n win.grecaptcha.execute();\r\n } catch (ex) {\r\n Logger.Log(LogLevel.Error, '[ReCaptcha]', 'Error executing recaptcha', ex)\r\n win.grecaptcha.render(`recaptcha_${this.id}`);\r\n win.grecaptcha.execute();\r\n }\r\n });\r\n }\r\n\r\n loadLibrary(): Promise {\r\n return new Promise((resolve, reject) => {\r\n if((window as any).grecaptcha !== undefined) {\r\n Logger.Log(LogLevel.Debug, '[ReCaptcha]', 'ReCaptcha is already defined.');\r\n\r\n resolve(true);\r\n return;\r\n }\r\n \r\n const scr = document.createElement('script');\r\n\r\n (window as any).pl_recaptcha_loaded = () => {\r\n resolve(true);\r\n }\r\n\r\n scr.onerror = () => {\r\n reject();\r\n }\r\n\r\n scr.async = true;\r\n scr.defer = true;\r\n\r\n document.head.appendChild(scr);\r\n\r\n scr.src = 'https://www.google.com/recaptcha/api.js?onload=pl_recaptcha_loaded';\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../cache-loader/dist/cjs.js??ref--14-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../ts-loader/index.js??ref--14-3!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./ReCaptcha.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../cache-loader/dist/cjs.js??ref--14-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../ts-loader/index.js??ref--14-3!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./ReCaptcha.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReCaptcha.vue?vue&type=template&id=5eb33c20&scoped=true&\"\nimport script from \"./ReCaptcha.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReCaptcha.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReCaptcha.vue?vue&type=style&index=0&id=5eb33c20&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5eb33c20\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"video-recorder-wrap\"},[_c('div',{staticClass:\"video-recorder__form-elem\"},[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.def.Labels.Prompt)}}),(_vm.needsFallback || !_vm.isMobile)?_c('Button',{on:{\"click\":_vm.uploadVideo}},[_vm._v(_vm._s(_vm.def.Labels.Upload || _vm.def.Labels.Record))]):_c('Button',{on:{\"click\":_vm.showRecorder}},[_vm._v(_vm._s(_vm.def.Labels.Record))])],1),_c('portal',{attrs:{\"to\":\"overlays\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isActive && _vm.ready && !_vm.needsFallback),expression:\"isActive && ready && !needsFallback\"}],staticClass:\"video-recorder\"},[_c('div',{staticClass:\"video-recorder__viewport\"},[_c('div',{staticClass:\"video-recorder__viewport__overlay\"},[_c('span',{staticClass:\"video-recorder__time\",class:{'video-recorder__time--running-out': _vm.isRunningOutatime}},[_vm._v(_vm._s(_vm.formattedTime))])]),_c('video',{ref:\"preview\",staticClass:\"video-recorder__preview\",attrs:{\"autoplay\":\"\",\"muted\":\"\",\"playsinline\":\"\"},domProps:{\"muted\":true}})]),_c('div',{staticClass:\"video-recorder__controls\"},[_c('button',{staticClass:\"video-recorder__control video-recorder__control--text\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.doneRecording}},[_vm._v(\"Done\")]),_c('button',{staticClass:\"video-recorder__control video-recorder__control__start-stop\",class:{'recording': _vm.isRecording},attrs:{\"type\":\"button\"},on:{\"click\":_vm.toggleRecording}}),_c('button',{staticClass:\"video-recorder__control video-recorder__control--text\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.cancelRecording}},[_vm._v(\"Cancel\")])]),(_vm.needsPermissions)?_c('div',{staticClass:\"video-recorder__modal\"},[_c('div',{staticClass:\"video-recorder__modal__icon\"},[_c('svg',{staticClass:\"feather feather-video\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"#333\",\"stroke-width\":\"2\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}},[_c('polygon',{attrs:{\"points\":\"23 7 16 12 23 17 23 7\"}}),_c('rect',{attrs:{\"x\":\"1\",\"y\":\"5\",\"width\":\"15\",\"height\":\"14\",\"rx\":\"2\",\"ry\":\"2\"}})])]),_c('p',{staticClass:\"video-recorder__modal__message\"},[_vm._v(\" We need permission to use your camera & microphone to continue. \")]),_c('div',{staticClass:\"video-recorder__modal__buttons\"},[_c('button',{staticClass:\"video-recorder__modal__button video-recorder__modal__button--secondary\",on:{\"click\":_vm.cancelRecording}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"video-recorder__modal__button\",on:{\"click\":_vm.initVideoStream}},[_vm._v(\"Allow\")])])]):_vm._e(),(_vm.permissionDenied)?_c('div',{staticClass:\"video-recorder__modal\"},[_c('div',{staticClass:\"video-recorder__modal__icon\"},[_c('svg',{staticClass:\"feather feather-video-off\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"#333\",\"stroke-width\":\"2\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}},[_c('path',{attrs:{\"d\":\"M16 16v1a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2m5.66 0H14a2 2 0 0 1 2 2v3.34l1 1L23 7v10\"}}),_c('line',{attrs:{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"}})])]),_c('p',{staticClass:\"video-recorder__modal__message\"},[_vm._v(\" Permission to access the camera & microphone was denied. \")]),_c('div',{staticClass:\"video-recorder__modal__buttons video-recorder__modal__buttons--centered\"},[_c('button',{staticClass:\"video-recorder__modal__button\",on:{\"click\":_vm.cancelRecording}},[_vm._v(\"Okay\")])])]):_vm._e(),(_vm.hasFatalError)?_c('div',{staticClass:\"video-recorder__modal\"},[_c('div',{staticClass:\"video-recorder__modal__icon\"},[_c('svg',{staticClass:\"feather feather-alert-triangle\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"#333\",\"stroke-width\":\"2\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}},[_c('path',{attrs:{\"d\":\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"}}),_c('line',{attrs:{\"x1\":\"12\",\"y1\":\"9\",\"x2\":\"12\",\"y2\":\"13\"}}),_c('line',{attrs:{\"x1\":\"12\",\"y1\":\"17\",\"x2\":\"12.01\",\"y2\":\"17\"}})])]),_c('p',{staticClass:\"video-recorder__modal__message\"},[_vm._v(\" An error occurred. \")]),_c('p',{staticClass:\"video-recorder__modal__message\"},[_vm._v(\" \"+_vm._s(_vm.fatalErrorMessage)+\" \")]),_c('div',{staticClass:\"video-recorder__modal__buttons video-recorder__modal__buttons--centered\"},[_c('button',{staticClass:\"video-recorder__modal__button\",on:{\"click\":_vm.cancelRecording}},[_vm._v(\"Okay\")])])]):_vm._e()])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\r\n\r\nimport { Config, Logger, LogLevel } from \"../services\";\r\nimport { VideoRecorderField } from \"../types/Forms/FieldTypes\";\r\n\r\ninterface VideoCaptureConfig {\r\n codec: string;\r\n}\r\n\r\n@Component\r\nexport default class VideoRecorder extends Vue {\r\n @Prop()\r\n private readonly def!: VideoRecorderField;\r\n\r\n private isActive = false;\r\n\r\n private ready = false;\r\n\r\n private needsFallback = false;\r\n\r\n private get isMobile(): boolean {\r\n return /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);\r\n }\r\n\r\n private needsPermissions = false;\r\n\r\n private hasNoDevices = false;\r\n\r\n private permissionDenied = false;\r\n\r\n private hasFatalError = false;\r\n \r\n private fatalErrorMessage = '';\r\n\r\n private isRecording = false;\r\n\r\n private videoBlob: Blob | null = null;\r\n\r\n private outatimeThreshold: number | null = null;\r\n\r\n private captureConfig: VideoCaptureConfig | null = null;\r\n\r\n private currentTime = 0;\r\n\r\n private currentTimeInterval: number | null = null;\r\n\r\n private videoStream: MediaStream | null = null;\r\n\r\n private mediaRecorder: MediaRecorder | null = null;\r\n\r\n private capturedChunks: Blob[] = [];\r\n\r\n get formattedTime(): string {\r\n let mins: string | number = Math.floor(this.currentTime / 60);\r\n let secs: string | number = this.currentTime - (mins * 60);\r\n\r\n let totalMins: string | number = Math.floor(this.def.MaxRecordLength / 60);\r\n let totalSecs: string | number = this.def.MaxRecordLength - (totalMins * 60);\r\n\r\n if (secs < 10) secs = \"0\" + secs;\r\n if (totalSecs < 10) totalSecs = \"0\" + totalSecs;\r\n\r\n return mins + \":\" + secs + \" / \" + totalMins + \":\" + totalSecs;\r\n }\r\n\r\n get isRunningOutatime(): boolean {\r\n return this.currentTime >= this.def.MaxRecordLength * 0.75;\r\n }\r\n\r\n mounted() {\r\n\r\n if (/iPhone|iPad|iPod|Android/i.test(navigator.userAgent) === false) {\r\n Logger.Log(LogLevel.Debug, '[Video Recorder]', 'Falling back to upload on a non-mobile device.');\r\n\r\n this.fallback();\r\n return;\r\n }\r\n\r\n if ('MediaRecorder' in window && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {\r\n Logger.Log(LogLevel.Debug, '[Video Recorder]', 'MediaRecorder, enumerateDevices are supported');\r\n\r\n navigator.mediaDevices.enumerateDevices().then((availableDevices) => {\r\n\r\n if (availableDevices.some((device) => device.kind === 'videoinput')) {\r\n\r\n // Check that the permissions API is supported\r\n if('permissions' in navigator) {\r\n Logger.Log(LogLevel.Debug, '[Video Recorder]', 'Attempting to determine if camera permissions are granted');\r\n\r\n try {\r\n // Check to see if we have permission to use the camera\r\n navigator.permissions.query({ name: \"camera\" }).then(res => {\r\n if(res.state !== 'granted') {\r\n Logger.Log(LogLevel.Debug, '[Video Recorder]', 'Camera permissions not yet granted');\r\n \r\n // If the state is not granted, we need to ask for permissions\r\n this.ready = true;\r\n this.needsPermissions = true;\r\n } else {\r\n Logger.Log(LogLevel.Debug, '[Video Recorder]', 'Camera permissions granted');\r\n\r\n this.ready = true;\r\n }\r\n });\r\n } catch (ex) {\r\n Logger.Log(LogLevel.Warning, '[Video Recorder]', 'Failed to get camera permissions state', ex);\r\n\r\n // Error checking for permissions\r\n this.needsPermissions = true;\r\n }\r\n } else {\r\n Logger.Log(LogLevel.Debug, '[Video Recorder]', 'Permissions API not supported. Requesting permissions manually.');\r\n\r\n // The permissions API isn't supported\r\n this.needsPermissions = true;\r\n }\r\n\r\n } else {\r\n Logger.Log(LogLevel.Debug, '[Video Recorder]', 'No videoinput devices are available. Falling back to traditional methods.');\r\n this.fallback();\r\n }\r\n\r\n }).catch((err) => {\r\n Logger.Log(LogLevel.Error, '[Video Recorder]', 'Failed to enumerate media devices', err);\r\n\r\n this.fallback();\r\n });\r\n } else {\r\n Logger.Log(LogLevel.Debug, '[Video Recorder]', 'MediaRecorder is not supported, falling back to traditional upload mechanisms');\r\n\r\n this.fallback();\r\n }\r\n }\r\n\r\n private toggleRecording(): void {\r\n if (this.isRecording) {\r\n this.stopRecording();\r\n } else {\r\n this.startRecording();\r\n }\r\n }\r\n\r\n private initCaptureConfig(): void {\r\n const codecs = [\r\n \"video/mp4\",\r\n \"video/mpeg\",\r\n \"video/webm;codecs=h264\",\r\n \"video/webm\",\r\n \"video/webm;codecs=vp8\",\r\n \"video/webm;codecs=daala\"\r\n ];\r\n\r\n this.captureConfig = {\r\n codec: ''\r\n };\r\n\r\n for (var i = 0; i < codecs.length; i += 1) {\r\n if (MediaRecorder.isTypeSupported(codecs[i])) {\r\n this.captureConfig.codec = codecs[i];\r\n break;\r\n }\r\n }\r\n\r\n if (this.captureConfig.codec.length === 0) {\r\n throw new Error('Unable to find a suitable codec.');\r\n }\r\n\r\n Logger.Log(LogLevel.Debug, '[Video Recorder]', `Using codec ${codecs[i]}`)\r\n }\r\n\r\n private startRecording() {\r\n if (this.isRecording) return;\r\n\r\n this.isRecording = true;\r\n\r\n this.initVideoStream().then(() => {\r\n this.capturedChunks = [];\r\n\r\n Logger.Log(LogLevel.Debug, '[Video Recorder]', 'Start Recording');\r\n\r\n if (this.mediaRecorder === null) {\r\n\r\n if (this.captureConfig === null) {\r\n try {\r\n this.initCaptureConfig();\r\n } catch (ex) {\r\n Logger.Log(LogLevel.Error, '[Video Recorder]', 'Failed to initialise capture config.');\r\n \r\n this.fallback();\r\n\r\n return;\r\n }\r\n }\r\n\r\n this.mediaRecorder = new MediaRecorder(this.videoStream!, {\r\n mimeType: this.captureConfig!.codec\r\n });\r\n\r\n this.mediaRecorder.ondataavailable = (e: BlobEvent) => {\r\n this.capturedChunks.push(e.data);\r\n }\r\n\r\n this.mediaRecorder.onstop = () => {\r\n this.videoBlob = new Blob(this.capturedChunks, { type: this.captureConfig!.codec });\r\n\r\n this.isRecording = false;\r\n\r\n window.clearInterval(this.currentTimeInterval!);\r\n this.currentTime = 0;\r\n\r\n Logger.Log(LogLevel.Debug, '[Video Recorder]', 'Stopped recording');\r\n\r\n this.doneRecording();\r\n }\r\n\r\n Logger.Log(LogLevel.Debug, '[Video Recorder]', 'Initialised MediaRecorder', this.mediaRecorder);\r\n }\r\n\r\n this.currentTime = 0;\r\n\r\n this.mediaRecorder.start();\r\n\r\n this.currentTimeInterval = window.setInterval(() => {\r\n this.currentTime += 1;\r\n \r\n if (this.currentTime >= this.def.MaxRecordLength) {\r\n Logger.Log(LogLevel.Debug, '[Video Recorder]', 'Outatime 🔥 (stopping recording)');\r\n this.stopRecording();\r\n }\r\n }, 1000);\r\n });\r\n }\r\n\r\n private stopRecording(): void {\r\n this.mediaRecorder!.stop();\r\n }\r\n\r\n private doneRecording(): void {\r\n this.hideRecorder();\r\n\r\n this.$emit('done', this.videoBlob);\r\n }\r\n\r\n private cancelRecording(): void {\r\n if (this.isRecording) {\r\n this.stopRecording();\r\n }\r\n\r\n this.doneRecording();\r\n }\r\n\r\n private createFileInput(): HTMLInputElement {\r\n const fi = document.createElement('input');\r\n\r\n fi.type = 'file';\r\n fi.accept = 'video/mp4';\r\n\r\n fi.setAttribute('capture', 'environment');\r\n\r\n fi.style.display = 'none';\r\n\r\n return fi as HTMLInputElement;\r\n }\r\n\r\n private fallback(): void {\r\n this.ready = false;\r\n this.needsFallback = true;\r\n }\r\n\r\n private uploadVideo(): void {\r\n const fi = this.createFileInput();\r\n\r\n fi.onchange = () => {\r\n Logger.Log(LogLevel.Debug, '[Video Recorder]', 'File value changed', fi.files);\r\n\r\n if (fi.files!.length) {\r\n const file = fi.files![0];\r\n\r\n if(file.size > this.def.MaxFileSize) {\r\n alert(`The selected file excedes the maximum allowable file size of ${this.def.FormattedMaxFileSize}. Please select a different video to continue.`);\r\n } else {\r\n this.videoBlob = fi.files![0];\r\n\r\n this.doneRecording();\r\n }\r\n \r\n fi.remove();\r\n }\r\n };\r\n\r\n fi.onblur = () => {\r\n setTimeout(() => {\r\n \r\n Logger.Log(LogLevel.Debug, '[Video Recorder]', 'Removing file input node');\r\n\r\n fi.remove();\r\n }, 100);\r\n }\r\n\r\n document.body.appendChild(fi);\r\n\r\n fi.click();\r\n }\r\n\r\n private hideRecorder(): void {\r\n if (this.videoStream !== null) {\r\n this.videoStream!.getTracks().forEach(function(track) {\r\n track.stop();\r\n });\r\n\r\n this.videoStream = null;\r\n this.mediaRecorder = null;\r\n }\r\n\r\n this.isActive = false;\r\n }\r\n\r\n private showRecorder(): void {\r\n this.initVideoStream().then(() => {\r\n this.isActive = true;\r\n }).catch(() => {\r\n this.needsFallback = true;\r\n });\r\n }\r\n\r\n private initVideoStream(): Promise {\r\n return new Promise((resolve, reject) => {\r\n if (this.videoStream !== null) {\r\n this.needsPermissions = false;\r\n resolve();\r\n return;\r\n }\r\n\r\n const constraints = { audio: true, video: { width: 1280, height: 720 } }; \r\n\r\n navigator.mediaDevices.getUserMedia(constraints).then((mediaStream) => {\r\n\r\n Logger.Log(LogLevel.Debug, '[Video Recorder]', 'Successfully obtained MediaStream');\r\n\r\n this.ready = true;\r\n\r\n this.videoStream = mediaStream;\r\n\r\n this.needsPermissions = false;\r\n\r\n (this.$refs.preview as HTMLVideoElement).srcObject = this.videoStream;\r\n\r\n resolve();\r\n\r\n }).catch((ex) => {\r\n\r\n Logger.Log(LogLevel.Error, '[Video Recorder]', 'Failed to obtain MediaStream', ex.name, ex.message);\r\n\r\n switch (ex.name) {\r\n case \"NotFoundError\":\r\n\r\n this.hasNoDevices = true;\r\n\r\n // Fall back to requesting a normal upload\r\n this.fallback();\r\n\r\n break;\r\n case \"NotAllowedError\":\r\n\r\n this.permissionDenied = true;\r\n\r\n break;\r\n }\r\n\r\n reject();\r\n });\r\n });\r\n }\r\n\r\n requestRecording(): void {\r\n if (this.needsFallback) {\r\n this.uploadVideo();\r\n } else {\r\n this.showRecorder();\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../cache-loader/dist/cjs.js??ref--14-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../ts-loader/index.js??ref--14-3!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./VideoRecorder.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../cache-loader/dist/cjs.js??ref--14-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../ts-loader/index.js??ref--14-3!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./VideoRecorder.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VideoRecorder.vue?vue&type=template&id=5ed69f32&scoped=true&\"\nimport script from \"./VideoRecorder.vue?vue&type=script&lang=ts&\"\nexport * from \"./VideoRecorder.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./VideoRecorder.vue?vue&type=style&index=0&id=5ed69f32&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5ed69f32\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"multi-select\",class:{'multi-select--focused': _vm.focused},style:({\n '--ms-bg': _vm.background,\n '--focus-bg': _vm.focusBg,\n '--item-border-rad': _vm.itemBorderRad,\n})},[_c('div',{staticClass:\"multi-select__abyss\",on:{\"click\":_vm.defocus}}),_c('div',{staticClass:\"multi-select__input-wrapper\"},[_c('div',{staticClass:\"multi-select__values\"},[_vm._l((_vm.previewItems),function(item){return _c('div',{key:item.Value,staticClass:\"multi-select__value\"},[_c('span',{staticClass:\"multi-select__value__label\"},[_vm._v(_vm._s(item.Label))]),_c('button',{staticClass:\"multi-select__value__remove\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.removeItem(item.Value)}}},[_c('Icon',{attrs:{\"icon\":\"close-button\",\"colour\":\"white\"}})],1)])}),(_vm.selectedValue.length + 1 > _vm.previewCount)?_c('div',{staticClass:\"multi-select__value\"},[_c('span',{staticClass:\"multi-select__value__label\"},[_vm._v(_vm._s(_vm.selectedValue.length + 1 - _vm.previewCount)+\" more\")])]):_vm._e()],2),_c('div',{staticClass:\"multi-select__input-wrap\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.search),expression:\"search\"}],staticClass:\"multi-select__input\",attrs:{\"type\":\"text\",\"placeholder\":_vm.searchPlaceholder},domProps:{\"value\":(_vm.search)},on:{\"keyup\":_vm.updateSearch,\"focus\":_vm.gotFocus,\"input\":function($event){if($event.target.composing){ return; }_vm.search=$event.target.value}}})])]),_c('div',{staticClass:\"multi-select__dropdown\"},[(_vm.searchResults.length)?_c('ul',{staticClass:\"multi-select__dropdown__results\"},_vm._l((_vm.searchResults),function(result){return _c('li',{key:result.Option.Value,staticClass:\"multi-select__dropdown__result\",class:{'multi-select__dropdown__result--selected': result.Selected},on:{\"click\":function($event){return _vm.select(result)}}},[_vm._v(\" \"+_vm._s(result.Option.Label)+\" \")])}),0):_c('div',{staticClass:\"multi-select__dropdown__no-results\"},[_vm._v(\" \"+_vm._s(_vm.noResults)+\" \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\r\n\r\ninterface MultiSelectOption {\r\n Value: string;\r\n Label: string;\r\n}\r\n\r\ninterface MultiSelectResult {\r\n Option: MultiSelectOption;\r\n Selected: boolean;\r\n}\r\n\r\nexport {\r\n MultiSelectOption\r\n}\r\n\r\n@Component\r\nexport default class MultiSelect extends Vue {\r\n @Prop({ required: true })\r\n private readonly options!: MultiSelectOption[];\r\n\r\n @Prop({ default: false })\r\n private readonly enableCustom!: boolean;\r\n\r\n @Prop({ default: 'Search for ' })\r\n private readonly customLabelPrefix!: string;\r\n\r\n @Prop({ default: 'search:' })\r\n private readonly customValuePrefix!: string;\r\n\r\n @Prop({ default: 5 })\r\n private readonly previewCount!: number;\r\n\r\n @Prop({ default: 'Search' })\r\n private readonly searchPlaceholder!: string;\r\n\r\n @Prop({ default: 'No results found' })\r\n private readonly noResults!: string;\r\n\r\n @Prop({ default: 'transparent' })\r\n private readonly background!: string;\r\n\r\n @Prop({ default: '#fff' })\r\n private readonly focusBg!: string;\r\n\r\n @Prop({ default: '0.25em' })\r\n private readonly itemBorderRad!: string;\r\n\r\n private focused = false;\r\n\r\n private selectedValue: MultiSelectOption[] = [];\r\n\r\n private search = '';\r\n\r\n private searchResults: MultiSelectResult[] = [];\r\n\r\n gotFocus() {\r\n this.focused = true;\r\n this.updateSearch();\r\n }\r\n\r\n defocus() {\r\n requestAnimationFrame(() => {\r\n this.focused = false;\r\n });\r\n }\r\n\r\n updateSearch() {\r\n let results: MultiSelectOption[];\r\n\r\n if (this.search.length === 0) {\r\n results = this.options;\r\n } else {\r\n const loweredSearch = this.search.toLowerCase();\r\n\r\n results = this.options.filter((itm) => itm.Label.toLowerCase().indexOf(loweredSearch) !== -1);\r\n }\r\n\r\n this.searchResults = results\r\n .map((r) => ({ Option: r, Selected: this.selectedValue.some((s) => s.Value === r.Value) }));\r\n\r\n if (this.enableCustom) {\r\n this.searchResults.push({\r\n Option: {\r\n Label: `${this.customLabelPrefix}${this.search}`,\r\n Value: `${this.customValuePrefix}${this.search}`,\r\n },\r\n Selected: false,\r\n });\r\n }\r\n }\r\n\r\n select(option: MultiSelectResult) {\r\n if (!this.selectedValue.some((v) => v.Value === option.Option.Value)) {\r\n this.selectedValue.push(option.Option);\r\n\r\n this.search = '';\r\n\r\n this.updateSearch();\r\n\r\n this.$emit('updated', this.selectedValue);\r\n } else {\r\n this.removeItem(option.Option.Value);\r\n }\r\n }\r\n\r\n removeItem(value: string) {\r\n const idx = this.selectedValue.findIndex((itm) => itm.Value === value);\r\n\r\n if(idx !== -1) {\r\n this.selectedValue.splice(idx, 1);\r\n\r\n this.updateSearch();\r\n\r\n this.$emit('updated', this.selectedValue);\r\n }\r\n }\r\n\r\n public setValues(value: string[]): void {\r\n this.selectedValue = this.options.filter((opt) => value.indexOf(opt.Value) !== -1);\r\n }\r\n\r\n get previewItems(): MultiSelectOption[] {\r\n return this.selectedValue.slice(0, this.previewCount - 1);\r\n }\r\n}\r\n","import mod from \"-!../../cache-loader/dist/cjs.js??ref--14-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../ts-loader/index.js??ref--14-3!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./MultiSelect.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../cache-loader/dist/cjs.js??ref--14-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../ts-loader/index.js??ref--14-3!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./MultiSelect.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MultiSelect.vue?vue&type=template&id=4b217463&scoped=true&\"\nimport script from \"./MultiSelect.vue?vue&type=script&lang=ts&\"\nexport * from \"./MultiSelect.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MultiSelect.vue?vue&type=style&index=0&id=4b217463&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4b217463\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loader.vue?vue&type=style&index=0&id=b15215d2&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loader.vue?vue&type=style&index=0&id=b15215d2&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Form.vue?vue&type=style&index=0&id=726d98f2&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Form.vue?vue&type=style&index=0&id=726d98f2&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorList.vue?vue&type=style&index=0&id=a5bf78fc&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorList.vue?vue&type=style&index=0&id=a5bf78fc&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-field__errors\"},[_c('ul',_vm._l((_vm.errors),function(error){return _c('li',{key:error.Key + error.SubfieldKey},[_vm._v(\" \"+_vm._s(error.Message)+\" \")])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator';\nimport { FormSubmissionValidationError } from 'client-website-ts-library/types/Forms';\n\n@Component\nexport default class ErrorList extends Vue {\n @Prop()\n private readonly errors!: FormSubmissionValidationError[];\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ErrorList.vue?vue&type=template&id=a5bf78fc&scoped=true&\"\nimport script from \"./ErrorList.vue?vue&type=script&lang=ts&\"\nexport * from \"./ErrorList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ErrorList.vue?vue&type=style&index=0&id=a5bf78fc&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a5bf78fc\",\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\r\nimport { Component } from \"vue-property-decorator\";\r\nimport { AnalyticsEvent, AnalyticsEventObject, AnalyticsPageView, IAnalyticsAdapter, PROListAnalyticsAdapter } from \"../../services/Analytics\";\r\nimport { HeadService } from \"../../services/HeadService\";\r\nimport { ServiceManager, ServiceType } from \"../../services/ServiceManager\";\r\nimport { RouteMeta } from \"../meta\";\r\n\r\ninterface ViewBase {\r\n getAnalyticsEvent?(): AnalyticsEvent | null;\r\n getAnalyticsData?(): AnalyticsEventObject | null;\r\n head?(): RouteMeta | Promise | null;\r\n}\r\n\r\n@Component\r\nclass ViewBase extends Vue {\r\n protected prolistAnalyticsService = ServiceManager.Get(ServiceType.Analytics, 'PROListAnalyticsAdapter');\r\n protected headService = ServiceManager.Require(ServiceType.Head)!;\r\n\r\n public updateAnalytics() {\r\n let evt: AnalyticsEvent | null = null;\r\n let obj: AnalyticsEventObject | null = null;\r\n\r\n if (typeof this.getAnalyticsEvent !== 'undefined') {\r\n evt = this.getAnalyticsEvent.call(this);\r\n } else if(typeof this.getAnalyticsData !== 'undefined') {\r\n obj = this.getAnalyticsData.call(this);\r\n }\r\n\r\n if (evt === null) evt = new AnalyticsPageView(this.$route.path, this.$route.name || '', obj || undefined);\r\n\r\n this.triggerAnalyticsEvent(evt);\r\n }\r\n\r\n public triggerAnalyticsEvent(event: AnalyticsEvent) {\r\n ServiceManager.GetAll(ServiceType.Analytics).forEach((adapter) => {\r\n adapter.Record(event);\r\n });\r\n }\r\n\r\n public triggerCustomAnalyticsEvent(event: AnalyticsEvent) {\r\n if (this.prolistAnalyticsService !== null) this.prolistAnalyticsService.Record(event);\r\n }\r\n\r\n protected updateHead() {\r\n if ('head' in this) {\r\n const result = this.head!.bind(this)();\r\n\r\n if(result instanceof Promise) {\r\n result.then((meta: RouteMeta | null) => {\r\n this.headService.Update(meta);\r\n });\r\n } else {\r\n this.headService.Update(result as RouteMeta | null);\r\n }\r\n } else {\r\n this.headService.UpdateWithStatic(this.$route.path);\r\n }\r\n }\r\n}\r\n\r\n@Component\r\nclass View extends ViewBase {\r\n public mounted() {\r\n requestAnimationFrame(() => {\r\n this.updateHead();\r\n this.updateAnalytics();\r\n });\r\n }\r\n}\r\n\r\n@Component\r\nclass AsyncView extends ViewBase {\r\n public mounted() {\r\n this.$on('updateView', () => {\r\n requestAnimationFrame(() => {\r\n this.updateHead();\r\n this.updateAnalytics();\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport {\r\n View,\r\n AsyncView\r\n}\r\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormDropdownField.vue?vue&type=style&index=0&id=7c760baa&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormDropdownField.vue?vue&type=style&index=0&id=7c760baa&scoped=true&lang=css&\"","import mod from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--6-oneOf-1-2!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./VideoRecorder.vue?vue&type=style&index=0&id=5ed69f32&scoped=true&lang=css&\"; export default mod; export * from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--6-oneOf-1-2!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./VideoRecorder.vue?vue&type=style&index=0&id=5ed69f32&scoped=true&lang=css&\"","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Page',[_c('SiteMasthead',{attrs:{\"mini\":true,\"title\":\"Contact Us\"}}),_c('ContentRow',[_c('ContentContainer',[(_vm.office)?_c('div',{staticClass:\"office__contact-methods\"},[_c('ul',[(_vm.office.Phone.length)?_c('li',{staticClass:\"office__contact-method\"},[_c('a',{staticClass:\"office__contact-method__link\",attrs:{\"href\":'tel:' + _vm.office.Phone}},[_c('span',{staticClass:\"office__contact-method__key\"},[_vm._v(\"Phone: \")]),_vm._v(\" \"+_vm._s(_vm.office.Phone)+\" \")])]):_vm._e(),(_vm.office.Phone.length)?_c('li',{staticClass:\"office__contact-method\"},[_c('a',{staticClass:\"office__contact-method__link\",attrs:{\"href\":'mailto:' + _vm.office.Email}},[_c('span',{staticClass:\"office__contact-method__key\"},[_vm._v(\"Email: \")]),_vm._v(\" \"+_vm._s(_vm.office.Email)+\" \")])]):_vm._e(),_c('li',{staticClass:\"office__contact-method\"},[_c('a',{staticClass:\"office__contact-method__link\"},[_c('span',{staticClass:\"office__contact-method__key\"},[_vm._v(\"Address: \")]),_vm._v(\" \"+_vm._s(_vm.office.AddressLine1)+\", \"+_vm._s(_vm.office.AddressLine2)+\" \")])])])]):_vm._e()])],1),_c('ContentRow',[_c('SectionTitle',[_vm._v(\"Get In Touch\")]),_c('ContentContainer',{staticClass:\"content-container--narrow\"},[_c('Form',{attrs:{\"type\":\"Generic.WebsiteContactForm\"}})],1)],1),(_vm.mapSettings)?_c('Deferrable',[_c('Map',{staticStyle:{\"max-height\":\"500px\"},attrs:{\"settings\":_vm.mapSettings}})],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{staticClass:\"form\",style:({'--field-bg': _vm.fieldBg})},[_c('Loader',{attrs:{\"loading\":_vm.loading}}),(_vm.hasAutosave)?_c('div',{staticClass:\"form__panel form__panel--autosaved\",on:{\"click\":_vm.loadAutosave}},[_c('p',[_vm._v(\" This form was autosaved at \"+_vm._s(_vm.autosaveDate)+\". Click here to load the autosave. \")])]):_vm._e(),(_vm.errored)?_c('div',{staticClass:\"form__panel form__panel--errored\"},[_c('p',[_vm._v(\" An error occurred. Please try again later. \")])]):_vm._e(),(_vm.definition)?[(_vm.submitted)?_c('div',{staticClass:\"form__panel form__panel--success\"},[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.definition.Options.SubmittedText)}})]):[_vm._l((_vm.definition.Sections),function(section){return _c('Section',{key:section.SectionId,ref:section.SectionId,refInFor:true,attrs:{\"def\":section,\"errors\":_vm.errors,\"form-context\":_vm.ctx,\"form-type\":_vm.type},on:{\"field_input\":_vm.handleFieldInput}})}),_c('div',{staticClass:\"center-text\"},[_c('Button',{staticClass:\"form__submit-btn\",class:_vm.submitButtonClass,attrs:{\"loading\":_vm.loading,\"colour\":_vm.submitButtonColour,\"background-colour\":_vm.submitButtonBackgroundColour},on:{\"click\":_vm.submitForm}},[_vm._v(_vm._s(_vm.definition.Options.SubmitButtonText))])],1)]]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-section\",class:[_vm.def.CSSClasses.join(','), {'form-section--segregated': _vm.def.IsSegregated}]},[(_vm.def.DisplayTitle)?_c('h6',{staticClass:\"form-section__title\"},[_vm._v(_vm._s(_vm.def.Title))]):_vm._e(),_c('div',{staticClass:\"form-section__content\"},[_c('Row',{attrs:{\"vertical-align\":_vm.def.VerticalAlignment}},_vm._l((_vm.def.FormFields),function(field){return _c('Column',{key:field.FieldId,attrs:{\"width\":field.LayoutOptions.ColumnSpan}},[_c('Form' + field.TypeName + 'Field',_vm._b({ref:field.FieldId,refInFor:true,tag:\"component\",on:{\"input\":_vm.handleInput}},'component',_vm.getProps(field),false))],1)}),1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-field\",class:[{'has-errors': _vm.hasErrors}, 'form-field--' + _vm.def.TypeName]},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value),expression:\"value\"}],staticClass:\"form-field__input\",class:{\n 'form-field__input--has-value': _vm.value != null\n },attrs:{\"type\":\"date\",\"id\":_vm.elemId,\"required\":_vm.def.Required,\"placeholder\":_vm.def.Placeholder},domProps:{\"value\":(_vm.value)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.value=$event.target.value},_vm.handleInput]}}),_c('label',{staticClass:\"form-field__label\",attrs:{\"for\":_vm.elemId}},[_vm._v(_vm._s(_vm.def.Label))]),(_vm.hasErrors)?_c('ErrorList',{attrs:{\"errors\":_vm.errors}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator';\nimport { FormSubmissionValidationError, FormValue } from 'client-website-ts-library/types/Forms';\nimport { DateField, IFormField } from 'client-website-ts-library/types/Forms/FieldTypes';\n\nimport ErrorList from '../ErrorList.vue';\n\n@Component({\n components: {\n ErrorList,\n },\n})\nexport default class FormDateField extends Vue implements IFormField {\n @Prop()\n private readonly def!: DateField;\n\n @Prop()\n private readonly errors!: FormSubmissionValidationError[];\n\n private value: string | null = null;\n\n get hasErrors(): boolean {\n return this.errors.length > 0;\n }\n\n get elemId() {\n return `field_${this.def.FieldId}`;\n }\n\n getValue(): FormValue {\n return {\n Key: this.def.Key,\n Value: this.value,\n };\n }\n\n setValue(value: FormValue): void {\n if (typeof value.Value === 'string' || value.Value === null) {\n this.value = value.Value;\n }\n }\n\n handleInput(): void {\n this.$emit('input', this.def);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormDateField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormDateField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormDateField.vue?vue&type=template&id=f7cca14e&\"\nimport script from \"./FormDateField.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormDateField.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-field\",class:[{'has-errors': _vm.hasErrors}, 'form-field--' + _vm.def.TypeName]},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value),expression:\"value\"}],ref:\"elem\",staticClass:\"form-field__input\",class:{\n 'form-field__input--has-value': _vm.value\n },attrs:{\"id\":_vm.elemId},on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.value=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},_vm.handleInput]}},[(_vm.def.Placeholder)?_c('option',{attrs:{\"disabled\":\"\",\"selected\":\"\",\"value\":\"\"}},[_vm._v(_vm._s(_vm.def.Placeholder))]):_c('option',{attrs:{\"value\":\"\",\"disabled\":\"\",\"selected\":\"\"}}),_vm._l((_vm.def.Options),function(option){return _c('option',{key:option.Value,domProps:{\"value\":option.Value}},[_vm._v(_vm._s(option.Label))])})],2),_c('label',{staticClass:\"form-field__label\",attrs:{\"for\":_vm.elemId}},[_vm._v(_vm._s(_vm.def.Label))]),(_vm.hasErrors)?_c('ErrorList',{attrs:{\"errors\":_vm.errors}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator';\nimport { FormSubmissionValidationError, FormValue } from 'client-website-ts-library/types/Forms';\nimport { DropdownField, IFormField } from 'client-website-ts-library/types/Forms/FieldTypes';\n\nimport ErrorList from '../ErrorList.vue';\n\n@Component({\n components: {\n ErrorList,\n },\n})\nexport default class FormTextField extends Vue implements IFormField {\n @Prop()\n private readonly def!: DropdownField;\n\n @Prop()\n private readonly errors!: FormSubmissionValidationError[];\n\n private value: string | null = '';\n\n get hasErrors(): boolean {\n return this.errors.length > 0;\n }\n\n get elemId() {\n return `field_${this.def.FieldId}`;\n }\n\n getValue(): FormValue {\n return {\n Key: this.def.Key,\n Value: this.value,\n };\n }\n\n setValue(value: FormValue) {\n if (typeof value.Value === 'string' || value.Value === null) {\n this.value = value.Value;\n }\n }\n\n handleInput(): void {\n this.$emit('input', this.def);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormDropdownField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormDropdownField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormDropdownField.vue?vue&type=template&id=7c760baa&scoped=true&\"\nimport script from \"./FormDropdownField.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormDropdownField.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FormDropdownField.vue?vue&type=style&index=0&id=7c760baa&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7c760baa\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-field\",class:[{'has-errors': _vm.hasErrors}, 'form-field--' + _vm.def.TypeName]},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value),expression:\"value\"}],staticClass:\"form-field__input\",class:{\n 'form-field__input--has-value': _vm.value != null\n },attrs:{\"type\":\"email\",\"id\":_vm.elemId,\"required\":_vm.def.Required,\"placeholder\":_vm.def.Placeholder,\"maxlength\":_vm.def.MaxLength || 1000,\"minlength\":_vm.def.MinLength || 0,\"autocomplete\":\"email\"},domProps:{\"value\":(_vm.value)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.value=$event.target.value},_vm.handleInput]}}),_c('label',{staticClass:\"form-field__label\",attrs:{\"for\":_vm.elemId}},[_vm._v(_vm._s(_vm.def.Label))]),(_vm.hasErrors)?_c('ErrorList',{attrs:{\"errors\":_vm.errors}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator';\nimport { FormSubmissionValidationError, FormValue } from 'client-website-ts-library/types/Forms';\nimport { EmailField, IFormField } from 'client-website-ts-library/types/Forms/FieldTypes';\n\nimport ErrorList from '../ErrorList.vue';\n\n@Component({\n components: {\n ErrorList,\n },\n})\nexport default class FormEmailField extends Vue implements IFormField {\n @Prop()\n private readonly def!: EmailField;\n\n @Prop()\n private readonly errors!: FormSubmissionValidationError[];\n\n private value: string | null = null;\n\n get hasErrors(): boolean {\n return this.errors.length > 0;\n }\n\n get elemId() {\n return `field_${this.def.FieldId}`;\n }\n\n getValue(): FormValue {\n return {\n Key: this.def.Key,\n Value: this.value,\n };\n }\n\n setValue(value: FormValue) {\n if (typeof value.Value === 'string' || value.Value === null) {\n this.value = value.Value;\n }\n }\n\n handleInput(): void {\n this.$emit('input', this.def);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormEmailField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormEmailField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormEmailField.vue?vue&type=template&id=154ec92e&\"\nimport script from \"./FormEmailField.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormEmailField.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-field\",class:[{'has-errors': _vm.hasErrors}, 'form-field--' + _vm.def.TypeName]},[_c('div',{staticClass:\"static-text\",style:(_vm.def.CSSStyles.join(' ')),domProps:{\"innerHTML\":_vm._s(_vm.def.Text)}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator';\nimport { FormSubmissionValidationError, FormValue } from 'client-website-ts-library/types/Forms';\nimport { StaticText, IFormField } from 'client-website-ts-library/types/Forms/FieldTypes';\n\nimport ErrorList from '../ErrorList.vue';\n\n@Component({\n components: {\n ErrorList,\n },\n})\nexport default class FormStaticTextField extends Vue implements IFormField {\n @Prop()\n private readonly def!: StaticText;\n\n @Prop()\n private readonly errors!: FormSubmissionValidationError[];\n\n private value: string | null = null;\n\n get hasErrors(): boolean {\n return this.errors.length > 0;\n }\n\n get elemId() {\n return `field_${this.def.FieldId}`;\n }\n\n getValue(): FormValue {\n return {\n Key: this.def.Key,\n Value: null,\n };\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n setValue(value: FormValue): void {}\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormStaticTextField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormStaticTextField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormStaticTextField.vue?vue&type=template&id=0118d07e&\"\nimport script from \"./FormStaticTextField.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormStaticTextField.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-field\",class:[{'has-errors': _vm.hasErrors}, 'form-field--' + _vm.def.TypeName]},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value),expression:\"value\"}],staticClass:\"form-field__input\",class:{\n 'form-field__input--has-value': _vm.value != null\n },attrs:{\"type\":\"tel\",\"id\":_vm.elemId,\"required\":_vm.def.Required,\"placeholder\":_vm.def.Placeholder,\"maxlength\":_vm.def.MaxLength || 1000,\"minlength\":_vm.def.MinLength || 0,\"autocomplete\":\"tel\"},domProps:{\"value\":(_vm.value)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.value=$event.target.value},_vm.handleInput]}}),_c('label',{staticClass:\"form-field__label\",attrs:{\"for\":_vm.elemId}},[_vm._v(_vm._s(_vm.def.Label))]),(_vm.hasErrors)?_c('ErrorList',{attrs:{\"errors\":_vm.errors}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator';\nimport { FormSubmissionValidationError, FormValue } from 'client-website-ts-library/types/Forms';\nimport { TelField, IFormField } from 'client-website-ts-library/types/Forms/FieldTypes';\n\nimport ErrorList from '../ErrorList.vue';\n\n@Component({\n components: {\n ErrorList,\n },\n})\nexport default class FormTelField extends Vue implements IFormField {\n @Prop()\n private readonly def!: TelField;\n\n @Prop()\n private readonly errors!: FormSubmissionValidationError[];\n\n private value: string | null = null;\n\n get hasErrors(): boolean {\n return this.errors.length > 0;\n }\n\n get elemId() {\n return `field_${this.def.FieldId}`;\n }\n\n getValue(): FormValue {\n return {\n Key: this.def.Key,\n Value: this.value,\n };\n }\n\n setValue(value: FormValue) {\n if (typeof value.Value === 'string' || value.Value === null) {\n this.value = value.Value;\n }\n }\n\n handleInput(): void {\n this.$emit('input', this.def);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormTelField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormTelField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormTelField.vue?vue&type=template&id=0df1bb67&\"\nimport script from \"./FormTelField.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormTelField.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-field\",class:[{'has-errors': _vm.hasErrors}, 'form-field--' + _vm.def.TypeName]},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value),expression:\"value\"}],staticClass:\"form-field__input\",class:{\n 'form-field__input--has-value': _vm.value != null\n },attrs:{\"type\":\"text\",\"id\":_vm.elemId,\"required\":_vm.def.Required,\"placeholder\":_vm.def.Placeholder,\"rows\":\"4\",\"maxlength\":_vm.def.MaxLength || 1000,\"minlength\":_vm.def.MinLength || 0},domProps:{\"value\":(_vm.value)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.value=$event.target.value},_vm.handleInput]}}),_c('label',{staticClass:\"form-field__label\",attrs:{\"for\":_vm.elemId}},[_vm._v(_vm._s(_vm.def.Label))]),(_vm.hasErrors)?_c('ErrorList',{attrs:{\"errors\":_vm.errors}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator';\nimport { FormSubmissionValidationError, FormValue } from 'client-website-ts-library/types/Forms';\nimport { TextareaField, IFormField } from 'client-website-ts-library/types/Forms/FieldTypes';\n\nimport ErrorList from '../ErrorList.vue';\n\n@Component({\n components: {\n ErrorList,\n },\n})\nexport default class FormTextareaField extends Vue implements IFormField {\n @Prop()\n private readonly def!: TextareaField;\n\n @Prop()\n private readonly errors!: FormSubmissionValidationError[];\n\n private value: string | null = null;\n\n get hasErrors(): boolean {\n return this.errors.length > 0;\n }\n\n get elemId() {\n return `field_${this.def.FieldId}`;\n }\n\n getValue(): FormValue {\n return {\n Key: this.def.Key,\n Value: this.value,\n };\n }\n\n setValue(value: FormValue) {\n if (typeof value.Value === 'string' || value.Value === null) {\n this.value = value.Value;\n }\n }\n\n handleInput(): void {\n this.$emit('input', this.def);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormTextareaField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormTextareaField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormTextareaField.vue?vue&type=template&id=3acac4c6&\"\nimport script from \"./FormTextareaField.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormTextareaField.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-field\",class:[{'has-errors': _vm.hasErrors}, 'form-field--' + _vm.def.TypeName]},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value),expression:\"value\"}],staticClass:\"form-field__input\",class:{\n 'form-field__input--has-value': _vm.value != null\n },attrs:{\"type\":\"text\",\"id\":_vm.elemId,\"required\":_vm.def.Required,\"placeholder\":_vm.def.Placeholder,\"maxlength\":_vm.def.MaxLength || 1000,\"minlength\":_vm.def.MinLength || 0},domProps:{\"value\":(_vm.value)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.value=$event.target.value},_vm.handleInput]}}),_c('label',{staticClass:\"form-field__label\",attrs:{\"for\":_vm.elemId}},[_vm._v(_vm._s(_vm.def.Label))]),(_vm.hasErrors)?_c('ErrorList',{attrs:{\"errors\":_vm.errors}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator';\nimport { FormSubmissionValidationError, FormValue } from 'client-website-ts-library/types/Forms';\nimport { TextField, IFormField } from 'client-website-ts-library/types/Forms/FieldTypes';\n\nimport ErrorList from '../ErrorList.vue';\n\n@Component({\n components: {\n ErrorList,\n },\n})\nexport default class FormTextField extends Vue implements IFormField {\n @Prop()\n private readonly def!: TextField;\n\n @Prop()\n private readonly errors!: FormSubmissionValidationError[];\n\n private value: string | null = null;\n\n get hasErrors(): boolean {\n return this.errors.length > 0;\n }\n\n get elemId() {\n return `field_${this.def.FieldId}`;\n }\n\n getValue(): FormValue {\n return {\n Key: this.def.Key,\n Value: this.value,\n };\n }\n\n setValue(value: FormValue) {\n if (typeof value.Value === 'string' || value.Value === null) {\n this.value = value.Value;\n }\n }\n\n handleInput(): void {\n this.$emit('input', this.def);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormTextField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormTextField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormTextField.vue?vue&type=template&id=e56964a6&\"\nimport script from \"./FormTextField.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormTextField.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator';\nimport {\n FormSection,\n FormSubmissionValidationError,\n FormConstructorData,\n FormField,\n FormValue,\n} from 'client-website-ts-library/types/Forms';\nimport { IFormField } from 'client-website-ts-library/types/Forms/FieldTypes';\n\n// Field components\nimport FormDateField from './FieldTypes/FormDateField.vue';\nimport FormDropdownField from './FieldTypes/FormDropdownField.vue';\nimport FormEmailField from './FieldTypes/FormEmailField.vue';\nimport FormStaticTextField from './FieldTypes/FormStaticTextField.vue';\nimport FormTelField from './FieldTypes/FormTelField.vue';\nimport FormTextareaField from './FieldTypes/FormTextareaField.vue';\nimport FormTextField from './FieldTypes/FormTextField.vue';\n\n// Big field types get loaded in async for more speeds\nconst FormGraphicalPDFField = () => import('./FieldTypes/PDFs/FormGraphicalPDFField.vue');\nconst FormVideoUploadField = () => import('./FieldTypes/FormVideoUploadField.vue');\nconst FormMultiFileUploaderField = () => import('./FieldTypes/MultiFileUploader/FormMultiFileUploaderField.vue');\n\n@Component({\n components: {\n FormDateField,\n FormDropdownField,\n FormEmailField,\n FormStaticTextField,\n FormTelField,\n FormTextareaField,\n FormTextField,\n FormGraphicalPDFField,\n FormVideoUploadField,\n FormMultiFileUploaderField,\n },\n})\nexport default class Section extends Vue {\n @Prop({ required: true })\n private readonly def!: FormSection;\n\n @Prop({ required: true })\n private readonly errors!: FormSubmissionValidationError[];\n\n @Prop({ required: true })\n private readonly formContext!: FormConstructorData;\n\n @Prop({ required: true })\n private readonly formType!: string;\n\n getProps(field: FormField): object {\n return {\n def: field,\n formContext: this.formContext,\n formType: this.formType,\n errors: this.errors.filter((e) => e.Key === field.Key),\n };\n }\n\n handleInput(fieldDef: FormField): void {\n this.$emit('field_input', fieldDef);\n }\n\n collectData(): FormValue[] {\n return this.def.FormFields.map((field) => ((this.$refs[field.FieldId] as Vue[])[0] as unknown as IFormField).getValue());\n }\n\n setData(values: FormValue[]): void {\n this.def.FormFields.forEach((field) => {\n const val = values.find((v) => v.Key === field.Key);\n\n if (val === undefined || val.Value === null) return;\n\n ((this.$refs[field.FieldId] as Vue[])[0] as unknown as IFormField).setValue(val);\n });\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Section.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Section.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Section.vue?vue&type=template&id=21bc423e&scoped=true&\"\nimport script from \"./Section.vue?vue&type=script&lang=ts&\"\nexport * from \"./Section.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Section.vue?vue&type=style&index=0&id=21bc423e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"21bc423e\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator';\nimport { FormDefinition, FormSubmissionValidationError, FormField, FormValue } from 'client-website-ts-library/types/Forms';\nimport {\n AutosaveManager,\n ServiceManager,\n ServiceType,\n API,\n Config,\n Logger,\n LogLevel,\n ReCaptchaService,\n} from 'client-website-ts-library/services';\nimport { Context } from 'client-website-ts-library/types';\nimport { PDFFieldData } from 'client-website-ts-library/types/Forms/FieldTypes';\nimport { IRequestProgressDelegate } from 'client-website-ts-library/services/API/IRequestProgressDelegate';\n\nimport Section from './Section.vue';\nimport Loader from '../UI/Loader.vue';\n\n@Component({\n components: {\n Section,\n Loader,\n },\n})\nexport default class Form extends Vue implements IRequestProgressDelegate {\n @Prop({ default: () => ({ Items: [] }) })\n private readonly context!: Context;\n\n @Prop()\n private readonly type!: string;\n\n @Prop()\n private readonly submitButtonColour!: string;\n\n @Prop()\n private readonly submitButtonBackgroundColour!: string;\n\n @Prop()\n private readonly submitButtonClass!: string;\n\n @Prop()\n private readonly autosaveNamespace!: string;\n\n @Prop()\n private readonly enableAutosave!: boolean;\n\n @Prop({ default: 'var(--form-field-bg)' })\n private readonly fieldBg!: string;\n\n @Prop({ default: 'var(--form-field-colour)' })\n private readonly fieldColour!: string;\n\n @Prop({ default: 'var(--form-label-colour)' })\n private readonly labelColour!: string;\n\n @Prop({ default: 'var(--form-field-border-colour)' })\n private readonly borderColour!: string;\n\n @Prop({ default: 'var(--form-label-focused-bg)' })\n private readonly labelFocusedBg!: string;\n\n @Prop({ default: 'var(--form-label-focused-colour)' })\n private readonly labelFocusedColour!: string;\n\n private ctx: Context = this.context;\n\n private errored = false;\n\n private submitted = false;\n\n private errors: FormSubmissionValidationError[] = [];\n\n private loading = true;\n\n private definition: FormDefinition | null = null;\n\n private autosaveManager: AutosaveManager = ServiceManager.Require(ServiceType.FormAutosave);\n\n private hasAutosave = false;\n\n private autosaveDate: string | null = null;\n\n private submitPercent = 0;\n\n private recaptchaService = ServiceManager.Require(ServiceType.ReCaptcha) as ReCaptchaService;\n\n onProgress(progress: number, total: number) {\n this.submitPercent = Math.round((progress / total) * 100);\n\n console.log(this.submitPercent);\n }\n\n mounted() {\n if (this.ctx === null) {\n this.ctx = {\n Items: [],\n ClientWebsiteId: Config.Website.Id,\n };\n }\n\n if (this.ctx.ClientWebsiteId === undefined) {\n this.ctx.ClientWebsiteId = Config.Website.Id;\n }\n\n API.Forms.GetForm(this.type, this.context).then((def) => {\n this.loading = false;\n this.definition = def;\n\n if (this.enableAutosave) {\n const state = this.autosaveManager.GetState(this.type);\n\n if (state !== null) {\n this.hasAutosave = true;\n }\n }\n }).catch(() => {\n this.errored = true;\n });\n }\n\n loadAutosave(): void {\n if (!this.hasAutosave) return;\n\n const state = this.autosaveManager.GetState(this.type);\n\n if (state === null) return;\n\n this.definition!.Sections.forEach((section) => {\n const sectionComponent = (this.$refs[section.SectionId] as Vue[])[0] as Section;\n\n sectionComponent.setData(state);\n });\n }\n\n private handleFieldInput(fieldDef: FormField): void {\n this.errors = this.errors.filter((err) => err.Key !== fieldDef.Key);\n }\n\n submitForm(): void {\n if (this.loading) return;\n\n this.loading = true;\n\n this.errors = [];\n\n this.collectData(true).then((data) => {\n const normalisedData = Form.normaliseData(data);\n\n console.log(normalisedData);\n\n this.loading = false;\n\n // this.context.ClientWebsiteId = Config.Website.Id;\n\n // if (this.enableAutosave) this.autosaveManager.SetState(this.type, data);\n\n API.Forms.SubmitForm(this.type, this.context, normalisedData).then((result) => {\n this.loading = false;\n\n if (!result.Valid) {\n // Reset ReCaptcha\n this.resetRecaptcha();\n\n // Update errors\n this.errors = result.ValidationState.Errors;\n } else if (result.Submitted) {\n // Inform the user that the form was submitted\n this.submitted = true;\n\n this.$emit('submitted');\n }\n }).catch(() => {\n // Reset ReCaptcha\n this.resetRecaptcha();\n\n // Inform the user that there was an error\n this.errored = true;\n });\n });\n }\n\n private static normaliseData(data: FormValue[]): FormValue[] {\n const newValues: FormValue[] = [];\n\n data.forEach((entry) => {\n if (entry.Value instanceof Array) {\n if (entry.Value.length) {\n newValues.push({\n Key: `${entry.Key}_length`,\n Value: entry.Value.length,\n });\n\n for (let i = 0; i < entry.Value.length; i += 1) {\n newValues.push({\n Key: `${entry.Key}_${i}`,\n Value: entry.Value[i],\n });\n }\n }\n } else {\n newValues.push(entry);\n }\n });\n\n return newValues;\n }\n\n private collectData(includeRecaptcha: boolean): Promise {\n return new Promise((resolve, reject) => {\n const data: FormValue[] = [];\n\n // Loop through each form secction and collect the data from it\n this.definition!.Sections.forEach((section) => {\n const sectionComponent = (this.$refs[section.SectionId] as Vue[])[0] as Section;\n\n data.push(...sectionComponent.collectData());\n });\n\n // If we also need to submit the ReCaptcha response, make sure we call getResponse on the ReCaptcha component\n if (includeRecaptcha) {\n this.getRecaptchaResponse().then((recaptchaResponse: string) => {\n Logger.Log(LogLevel.Debug, '[Form]', 'Got ReCaptcha response');\n\n data.push({\n Key: '_recaptcha',\n Value: recaptchaResponse,\n });\n\n resolve(data);\n }).catch(reject);\n\n return;\n }\n\n // If we don't need ReCaptcha, resolve straight away\n resolve(data);\n });\n }\n\n private resetRecaptcha(): void {\n this.recaptchaService.Reset();\n }\n\n private getRecaptchaResponse(): Promise {\n return this.recaptchaService.GetResponse();\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Form.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Form.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Form.vue?vue&type=template&id=726d98f2&scoped=true&\"\nimport script from \"./Form.vue?vue&type=script&lang=ts&\"\nexport * from \"./Form.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Form.vue?vue&type=style&index=0&id=726d98f2&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"726d98f2\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Mixins } from 'vue-property-decorator';\nimport { Office, MapSettings, MapMarker } from 'client-website-ts-library/types';\nimport { API, Config } from 'client-website-ts-library/services';\nimport { Map } from 'client-website-ts-library/components';\nimport { View } from 'client-website-ts-library/plugins';\nimport Form from '@/components/Forms/Form.vue';\n\n@Component({\n components: {\n Map,\n Form,\n },\n})\nexport default class ContactUs extends Mixins(View) {\n private office: Office | null = null;\n\n private mapSettings: MapSettings | null = null;\n\n mounted() {\n API.Offices.Get(Config.Website.Settings!.WebsiteId).then((office) => {\n this.office = office;\n\n this.mapSettings = new MapSettings({\n Markers: [\n new MapMarker({\n Address: `${this.office.AddressLine1} ${this.office.AddressLine2}`,\n Title: this.office.FranchiseName,\n }),\n ],\n });\n\n console.debug(this.mapSettings);\n });\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContactUs.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContactUs.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ContactUs.vue?vue&type=template&id=bdc5168e&scoped=true&\"\nimport script from \"./ContactUs.vue?vue&type=script&lang=ts&\"\nexport * from \"./ContactUs.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ContactUs.vue?vue&type=style&index=0&id=bdc5168e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bdc5168e\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}