{"mappings":"scAAA,IAAAA,EAAAC,EAAA,qCAIA,MAAMC,EAAU,MAEhB,IAAIC,GAAgB,EACpBC,EAAAJ,EAAA,CAAE,qCAAqCK,aAAa,CAClDC,iBAAiB,EACjBC,KAAM,MACNC,WAAY,mCAAqCJ,EAAAJ,EAAA,CAAE,mBAAmBS,MACtEC,UAAW,aACXC,SAAU,OACVC,SAAU,EACVC,SAASC,GAEPC,EACED,EAAWE,KACC,iCAHAC,KAGNC,KAGVC,gBACEf,EAAAJ,EAAA,CAAE,eAAeoB,SAAS,gBAC1BhB,EAAAJ,EAAA,CAAE,qCAAqCoB,SAAS,gBAChDjB,GAAgB,GAElBkB,mBACElB,GAAgB,EAChBC,EAAAJ,EAAA,CAAE,eAAesB,YAAY,gBAC7BlB,EAAAJ,EAAA,CAAE,qCAAqCsB,YAAY,iBAErDC,gBACOpB,IACHC,EAAAJ,EAAA,CAAE,eAAesB,YAAY,gBAC7BlB,EAAAJ,EAAA,CAAE,qCAAqCsB,YAAY,kBAGvDE,gBAAgBV,IACP,CACLW,YAAarB,EAAAJ,GAAE0B,IAAIZ,GAAYa,IACtB,CACLC,MAAOD,EAAKE,YACZb,KAAMW,EAAKG,WAOrB,MAAMf,EAAkB,CAACG,EAAYa,KACnC3B,EAAAJ,EAAA,CAAE,eAAeoB,SAAS,gBAC1BhB,EAAAJ,EAAA,CAAE,uBAAuBoB,SAAS,gBAClChB,EAAAJ,GAAEgC,KAAK,CACLzB,KAAM,MACN0B,OAAO,EACPC,IAAK,0CAA4ChB,EACjDiB,YAAa,kCACbxB,SAAU,OACVyB,QAAQC,GACNjC,EAAAJ,EAAA,CAAE,sBAAsBsC,YAAY,QACpClC,EAAAJ,EAAA,CAAE,2BAA2BsC,YAAY,QACzClC,EAAAJ,EAAA,CAAE,uBAAuBsC,YAAY,QACrClC,EAAAJ,EAAA,CACE+B,EAAmB,+BAAiC,iBACpDQ,QACFnC,EAAAJ,EAAA,CACE+B,EAAmB,+BAAiC,iBACpDtB,IAAI4B,EAAEG,cACRpC,EAAAJ,EAAA,CACE+B,EAAmB,+BAAiC,iBACpDQ,QACFnC,EAAAJ,EAAA,CACE+B,EAAmB,+BAAiC,iBACpDtB,IAAI4B,EAAEI,cACRrC,EAAAJ,EAAA,CACE+B,EAAmB,6BAA+B,eAClDQ,QACFnC,EAAAJ,EAAA,CAAE+B,EAAmB,6BAA+B,eAAetB,IACjE4B,EAAEK,MAEJtC,EAAAJ,EAAA,CAAE+B,EAAmB,yBAA2B,WAAWQ,QAC3DnC,EAAAJ,EAAA,CAAE+B,EAAmB,yBAA2B,WAAWtB,IAAI4B,EAAEM,QACjEvC,EAAAJ,EAAA,CAAE+B,EAAmB,4BAA8B,cAAcQ,QACjEnC,EAAAJ,EAAA,CAAE+B,EAAmB,4BAA8B,cAActB,IAC/D4B,EAAEO,SAEJxC,EAAAJ,EAAA,CAAE+B,EAAmB,4BAA8B,cAActB,IAC/DP,GAEFE,EAAAJ,EAAA,CAAE+B,EAAmB,2BAA6B,aAAaQ,QAC/DnC,EAAAJ,EAAA,CAAE+B,EAAmB,2BAA6B,aAAatB,IAC7D4B,EAAEQ,UAEJzC,EAAAJ,EAAA,CAAE,eAAesB,YAAY,gBAC7BlB,EAAAJ,EAAA,CAAE,uBAAuBsB,YAAY,iBAEvCwB,MAAMC,GACJC,QAAQC,IAAI,SAAWF,GACvB3C,EAAAJ,EAAA,CAAE,eAAesB,YAAY,gBAC7BlB,EAAAJ,EAAA,CAAE,uBAAuBsB,YAAY,oBAK3ClB,EAAAJ,EAAA,CAAE,8BAA8BkD,OAAMC,IAOpC,GANA/C,EAAAJ,EAAA,CAAE,sBAAsBsC,YAAY,QACpClC,EAAAJ,EAAA,CAAE,2BAA2BoD,OAC7BhD,EAAAJ,EAAA,CAAE,uBAAuBsC,YAAY,QAIjCnC,EAAe,CACjBC,EAAAJ,EAAA,CAAEmD,EAAEE,eACDC,QAAQ,QACRC,KAAK,4BACLjC,YAAY,gBACf,IAAIjB,EAAeD,EAAAJ,EAAA,CAAE,qCAAqCK,eAC1DA,EAAamD,UACbnD,EAAaoD,aAIjBrD,EAAAJ,EAAA,CAAE,yBAAyB0D,QAAOP,IAEd/C,EAAAJ,EAAA,CAAEmD,EAAEE,eAAe5C,QACnBP,GAChBE,EAAAJ,EAAA,CAAE,sBAAsB2D,KAAK,KAC7BvD,EAAAJ,EAAA,CAAE,2BAA2B2D,KAAK,KAClCvD,EAAAJ,EAAA,CAAE,uBAAuBoD,KAAK,OAE9BhD,EAAAJ,EAAA,CAAE,sBAAsBoD,KAAK,KAC7BhD,EAAAJ,EAAA,CAAE,2BAA2BoD,KAAK,KAClChD,EAAAJ,EAAA,CAAE,uBAAuB2D,KAAK,KAC9BvD,EAAAJ,EAAA,CAAE,iBAAiBS,IAAI,IACvBL,EAAAJ,EAAA,CAAE,iBAAiBS,IAAI,IACvBL,EAAAJ,EAAA,CAAE,eAAeS,IAAI,IACrBL,EAAAJ,EAAA,CAAE,WAAWS,IAAI,IACjBL,EAAAJ,EAAA,CAAE,aAAaS,IAAI,IACnBL,EAAAJ,EAAA,CAAE,mBAAmBS,IAAI,MAEpB,MAK+C,OAAtDmD,eAAeC,QAAQ,4BACvBzD,EAAAJ,EAAA,CAAE,mDAAmD8D,UAErD1D,EAAAJ,EAAA,CAAE,uBAAuB2D,OACzBvD,EAAAJ,EAAA,CAAE,2BAA2BoD,OAC7BhD,EAAAJ,EAAA,CAAE,8BAA8BoD,OAChChD,EAAAJ,EAAA,CAAE,gCAAgCS,IAAIL,EAAAJ,EAAA,CAAE,wBAAwBS,OAAS,KAIpE,MAAMsD,EAAmBC,IAC9B,IAAIC,EAAY,EAChB7D,EAAAJ,EAAA,CAAE,mCAAmCkE,MAAK,CAACC,EAAOC,KAChDH,EACED,IAAe5D,EAAAJ,EAAA,CAAE,gBAAgBqE,GAAG,YAChCjE,EAAAJ,EAAA,CAAE,sBACCsE,SACAC,SAAUC,IAAM,IACnBpE,EAAAJ,EAAA,CAAEoE,GAASG,SAAUC,IAAM,KAC1B,KAGTpE,EAAAJ,EAAA,CAAE,aAAayE,QAAQ,CACrBC,UAAWT,KAKf7D,EAAAJ,EAAA,CAAE,gBAAgB2E,GAAG,UAAUxB,IAE3B/C,EAAAJ,EAAA,CAAE,8BAA8B8D,QAChC1D,EAAAJ,EAAA,CAAEmD,EAAEE,eAAeuB,KAAK,YAExBxE,EAAAJ,EAAA,CAAE,sBAAsBoD,UAK5BhD,EAAAJ,EAAA,CAAE,8BAA8B2E,GAAG,WAAYxB,IAE7C,GADAA,EAAE0B,2BACe,IAAb1B,EAAE2B,QAEJ,OADA3B,EAAE4B,kBACK,KAKJ,MAAMC,EAAqB,KAGhC,MAAMC,EACiC,IAArC7E,EAAAJ,EAAA,CAAE,0BAA0BS,QAC3BL,EAAAJ,EAAA,CAAE,yBAAyB8D,QAGR,MAFpB1D,EAAAJ,EAAA,CAAE,QACCgB,KAAK,YACLkE,cAML,GAJuC,IAArC9E,EAAAJ,EAAA,CAAE,0BAA0BS,OAC5BL,EAAAJ,EAAA,CAAE,yBAAyB8D,OAGf,CACZ,IAAIqB,EAAoB,GACxB/E,EAAAJ,EAAA,CAAE,mBAAmBkE,MAAK,CAACC,EAAOC,KAChC,GAAIhE,EAAAJ,EAAA,CAAEoE,GAASb,KAAK,iBAAiBO,OAInC,OAHAqB,EAAoB/E,EAAAJ,EAAA,CAAEoE,GACnBb,KAAK,oBACL9C,OACI,MAGX,EAAA2E,EAAAC,oBAAmBF,GAAmB,GAGxC,IAAIF,IAAkB7E,EAAAJ,EAAA,CAAE,gBAAgBqE,GAAG,eACpCjE,EAAAJ,EAAA,CAAE,gBAAgBqE,GAAG,aACxBjE,EAAAJ,EAAA,CAAE,sBAAsB2D,OAGtBvD,EAAAJ,EAAA,CAAE,mCAAmC8D,QAEvC,OADAC,GAAgB,IACT,EAKX,MAAMuB,EAAQlF,EAAAJ,EAAA,CAAE,iCAAmC,KAYnD,OAVII,EAAAJ,EAAA,CAAE,YAAYS,QAAUP,GACtBE,EAAAJ,EAAA,CAAE,2BAA2BqE,GAAG,YAA8B,KAAhBiB,EAAM7E,OACtDL,EAAAJ,EAAA,CAAE,2BAA2B2D,OAIjCvD,EAAAJ,EAAA,CAAE,sBAAsBoD,OACxBQ,eAAe2B,QAAQ,0BAA2B,SAG3C,GAGTnF,EAAAJ,EAAA,CAAE,yBAAyBwF,KAAK,SAAU,QAC1CpF,EAAAJ,EAAA,CAAE,uBAAuBwF,KAAK,SAAU,QACxCpF,EAAAJ,EAAA,CAAE,sBAAsBoD,OACxBhD,EAAAJ,EAAA,CAAE,2BAA2BoD","sources":["scripts/src/AddressLookUp/index.ts"],"sourcesContent":["import $ from \"jquery\";\r\nimport \"devbridge-autocomplete\";\r\nimport { editAddressDetails } from \"../edit-address\";\r\n\r\nconst IsoCode = \"GBR\";\r\n// stores the request status for the postcode lookup queries\r\nvar requestActive = false;\r\n$(\".js-post-code-search-autocomplete\").autocomplete({\r\n autoSelectFirst: true,\r\n type: \"GET\",\r\n serviceUrl: \"/Umbraco/Api/AddressLookup/Find/\" + $(\"#PostCodeSearch\").val(),\r\n paramName: \"postalCode\",\r\n dataType: \"json\",\r\n minChars: 3,\r\n onSelect(suggestion: any) {\r\n const _this = this as HTMLInputElement;\r\n retrieveAddress(\r\n suggestion.data,\r\n _this.id == \"BillingAddress_PostCodeSearch\"\r\n );\r\n },\r\n onSearchStart() {\r\n $(\".js-loading\").addClass(\"btn--loading\");\r\n $(\".js-post-code-search-autocomplete\").addClass(\"btn--loading\");\r\n requestActive = true;\r\n },\r\n onSearchComplete() {\r\n requestActive = false;\r\n $(\".js-loading\").removeClass(\"btn--loading\");\r\n $(\".js-post-code-search-autocomplete\").removeClass(\"btn--loading\");\r\n },\r\n onSearchError() {\r\n if (!requestActive) {\r\n $(\".js-loading\").removeClass(\"btn--loading\");\r\n $(\".js-post-code-search-autocomplete\").removeClass(\"btn--loading\");\r\n }\r\n },\r\n transformResult(suggestion: any) {\r\n return {\r\n suggestions: $.map(suggestion, item => {\r\n return {\r\n value: item.AddressText,\r\n data: item.Id\r\n };\r\n })\r\n };\r\n }\r\n});\r\n\r\nconst retrieveAddress = (id: string, isBillingAddress?: boolean) => {\r\n $(\".js-loading\").addClass(\"btn--loading\");\r\n $(\".js-brochure-submit\").addClass(\"btn--loading\");\r\n $.ajax({\r\n type: \"GET\",\r\n async: true,\r\n url: \"/Umbraco/Api/AddressLookup/Retrieve?id=\" + id,\r\n contentType: \"application/json; charset=utf-8\",\r\n dataType: \"json\",\r\n success(d) {\r\n $(\".js-manual-address\").slideToggle(\"hide\");\r\n $(\".js-post-search-section\").slideToggle(\"hide\");\r\n $(\".js-address-section\").slideToggle(\"slow\");\r\n $(\r\n isBillingAddress ? \"#BillingAddress_AddressLine1\" : \"#AddressLine1\"\r\n ).focus();\r\n $(\r\n isBillingAddress ? \"#BillingAddress_AddressLine1\" : \"#AddressLine1\"\r\n ).val(d.AddressLine1);\r\n $(\r\n isBillingAddress ? \"#BillingAddress_AddressLine2\" : \"#AddressLine2\"\r\n ).focus();\r\n $(\r\n isBillingAddress ? \"#BillingAddress_AddressLine2\" : \"#AddressLine2\"\r\n ).val(d.AddressLine2);\r\n $(\r\n isBillingAddress ? \"#BillingAddress_TownOrCity\" : \"#TownOrCity\"\r\n ).focus();\r\n $(isBillingAddress ? \"#BillingAddress_TownOrCity\" : \"#TownOrCity\").val(\r\n d.Town\r\n );\r\n $(isBillingAddress ? \"#BillingAddress_County\" : \"#County\").focus();\r\n $(isBillingAddress ? \"#BillingAddress_County\" : \"#County\").val(d.County);\r\n $(isBillingAddress ? \"#BillingAddress_CountryID\" : \"#CountryID\").focus();\r\n $(isBillingAddress ? \"#BillingAddress_CountryID\" : \"#CountryID\").val(\r\n d.Country\r\n );\r\n $(isBillingAddress ? \"#BillingAddress_CountryID\" : \"#CountryID\").val(\r\n IsoCode\r\n );\r\n $(isBillingAddress ? \"#BillingAddress_Postcode\" : \"#Postcode\").focus();\r\n $(isBillingAddress ? \"#BillingAddress_Postcode\" : \"#Postcode\").val(\r\n d.Postcode\r\n );\r\n $(\".js-loading\").removeClass(\"btn--loading\");\r\n $(\".js-brochure-submit\").removeClass(\"btn--loading\");\r\n },\r\n error(err) {\r\n console.log(\"Error:\" + err); // todo: display a nice error message to the user\r\n $(\".js-loading\").removeClass(\"btn--loading\");\r\n $(\".js-brochure-submit\").removeClass(\"btn--loading\");\r\n }\r\n });\r\n};\r\n\r\n$(\".js-enter-address-manually\").click(e => {\r\n $(\".js-manual-address\").slideToggle(\"hide\");\r\n $(\".js-post-search-section\").hide();\r\n $(\".js-address-section\").slideToggle(\"slow\");\r\n\r\n // Fallback if postcode lookup is unresponsive: resets the loading state on the button if an autocomplete request is pending,\r\n // cancels the current request then renables.\r\n if (requestActive) {\r\n $(e.currentTarget)\r\n .closest(\"form\")\r\n .find(\".js-loading.btn--loading\")\r\n .removeClass(\"btn--loading\");\r\n var autocomplete = $(\".js-post-code-search-autocomplete\").autocomplete();\r\n autocomplete.disable();\r\n autocomplete.enable();\r\n }\r\n});\r\n\r\n$(\".js-country-drop-down\").change(e => {\r\n // hide and show manual address Div on country select select\r\n const countryId = $(e.currentTarget).val();\r\n if (countryId === IsoCode) {\r\n $(\".js-manual-address\").show(500);\r\n $(\".js-post-search-section\").show(500);\r\n $(\".js-address-section\").hide(500);\r\n } else {\r\n $(\".js-manual-address\").hide(500);\r\n $(\".js-post-search-section\").hide(500);\r\n $(\".js-address-section\").show(500);\r\n $(\"#AddressLine1\").val(\"\");\r\n $(\"#AddressLine2\").val(\"\");\r\n $(\"#TownOrCity\").val(\"\");\r\n $(\"#County\").val(\"\");\r\n $(\"#Postcode\").val(\"\");\r\n $(\"#PostCodeSearch\").val(\"\");\r\n }\r\n return false;\r\n});\r\n\r\n// sets the form back to the state it was in when the form was submitted valid..\r\nif (\r\n sessionStorage.getItem(\"brochureRequest_success\") !== null ||\r\n $(\".js-brochure-request .validation-summary-errors\").length\r\n) {\r\n $(\".js-address-section\").show();\r\n $(\".js-post-search-section\").hide();\r\n $(\".js-enter-address-manually\").hide();\r\n $('input[name=\"PostCodeSearch\"]').val($('input[id=\"Postcode\"]').val() || \"\");\r\n}\r\n\r\n// navigates to the first error field\r\nexport const navigateToError = (isBrochure?: boolean) => {\r\n let formError = 0;\r\n $(\".field-validation-error:visible\").each((index, element) => {\r\n formError =\r\n isBrochure && !$(\".js-brochure\").is(\":checked\")\r\n ? $(\".js-error-brochure\")\r\n .parent()\r\n .offset()!.top - 150\r\n : $(element).offset()!.top - 150;\r\n return false;\r\n });\r\n\r\n $(\"html,body\").animate({\r\n scrollTop: formError\r\n });\r\n};\r\n\r\n// resets the error text when brochure form is submitted without selecting a brochure\r\n$(\".js-brochure\").on(\"change\", e => {\r\n if (\r\n $(\".js-error-brochure:visible\").length &&\r\n $(e.currentTarget).prop(\"checked\")\r\n ) {\r\n $(\".js-error-brochure\").hide();\r\n }\r\n});\r\n\r\n// prevent the whole form being submitted when presses return on a field\r\n$(\".js-brochure-request input\").on(\"keydown\", (e: JQuery.KeyDownEvent) => {\r\n e.stopImmediatePropagation();\r\n if (e.keyCode == 13) {\r\n e.preventDefault();\r\n return false;\r\n }\r\n});\r\n\r\n// Brochure submit event gets called from loading state event, validates additional form data unqiue to brochure form\r\nexport const brochureValidation = () => {\r\n // jquery validate wont validate postcode or other fields if their set to \"display:none\"\r\n // its possible to submit the form invalid by pressing return through the postcode lookup field\r\n const enGbNotSigned =\r\n $('input[name=\"Postcode\"]').val() == \"\" &&\r\n !$(\".js-address-selection\").length &&\r\n $(\"html\")\r\n .data(\"location\")\r\n .toLowerCase() == \"gb\";\r\n const signedIn =\r\n $('input[name=\"Postcode\"]').val() == \"\" &&\r\n $(\".js-address-selection\").length;\r\n\r\n // populates the form for logged in user\r\n if (signedIn) {\r\n let addressJsonString = \"\";\r\n $(\".js-address-box\").each((index, element) => {\r\n if ($(element).find(\"input:checked\").length) {\r\n addressJsonString = $(element)\r\n .find(\".js-address-data\")\r\n .val();\r\n return false;\r\n }\r\n });\r\n editAddressDetails(addressJsonString, false);\r\n }\r\n\r\n if (enGbNotSigned || !$(\".js-brochure\").is(\":checked\")) {\r\n if (!$(\".js-brochure\").is(\":checked\")) {\r\n $(\".js-error-brochure\").show();\r\n }\r\n // navigates to error if at least one error visible\r\n if ($(\".field-validation-error:visible\").length) {\r\n navigateToError(true);\r\n return false;\r\n }\r\n }\r\n\r\n /// browser back\r\n const pcode = $('input[name=\"PostCodeSearch\"]') || null;\r\n // navigate back on the browser the autocomplete field is blank and wont submit form correctly\r\n if ($(\"#Country\").val() === IsoCode) {\r\n if ($(\".js-post-search-section\").is(\":hidden\") && pcode.val() === \"\") {\r\n $(\".js-post-search-section\").show();\r\n }\r\n }\r\n // Add a session cookie to support browser back issues\r\n $(\".js-error-brochure\").hide();\r\n sessionStorage.setItem(\"brochureRequest_success\", \"true\");\r\n /// browser back\r\n\r\n return true;\r\n};\r\n\r\n$(\"#Country option:first\").attr(\"hidden\", \"true\");\r\n$(\"#Title option:first\").attr(\"hidden\", \"true\");\r\n$(\".js-error-brochure\").hide();\r\n$(\".js-post-search-section\").hide();\r\n"],"names":["$4sYka","parcelRequire","$65822cb4b21d310a$var$IsoCode","$65822cb4b21d310a$var$requestActive","$parcel$interopDefault","autocomplete","autoSelectFirst","type","serviceUrl","val","paramName","dataType","minChars","onSelect","suggestion","$65822cb4b21d310a$var$retrieveAddress","data","this","id","onSearchStart","addClass","onSearchComplete","removeClass","onSearchError","transformResult","suggestions","map","item","value","AddressText","Id","isBillingAddress","ajax","async","url","contentType","success","d","slideToggle","focus","AddressLine1","AddressLine2","Town","County","Country","Postcode","error","err","console","log","click","e","hide","currentTarget","closest","find","disable","enable","change","show","sessionStorage","getItem","length","$65822cb4b21d310a$export$7932e8bbefcaee6b","isBrochure","formError","each","index","element","is","parent","offset","top","animate","scrollTop","on","prop","stopImmediatePropagation","keyCode","preventDefault","$65822cb4b21d310a$export$a89d21ea3b3b44a6","enGbNotSigned","toLowerCase","addressJsonString","$iVLaw","editAddressDetails","pcode","setItem","attr"],"version":3,"file":"AddressLookUp.eee69ee8.js.map"}