{"version":3,"sources":["../src/scripts/lib/dqe/dqe-single.js","../src/scripts/lib/dqe/dqe-autocomplete.js"],"names":["dqe_single","options","_this","this","_classCallCheck","reversed_countries","AUT","BEL","BGR","CHE","CZE","DEU","ESP","HRV","ISR","ITA","NLD","POL","PRT","ROU","SWE","TUR","RUS","SVN","DNK","FIN","HUN","NOR","MEX","SVK","TWN","COL","zip_pattern","FRA","DZA","TUN","AUS","BRA","CAN","KOR","KOI","KOJ","USA","JPN","JPN-en","LUX","GBR","SGP","CHN","CHN-en","THA","MAR","HKG","HKG-en","QAT","NZL","MYS","server","license","city","document","querySelector","zip","street","street_type","number","compl","local","prov","company","insee","cedex","geoloc","nearest","city_search","min_bound","max_bound","force_nums","taille","countryField","country","length","funnel","save","lat","lon","numlist","valid_zip","selected_country","match","addEventListener","clear","value","current_term","current_locality","input","destroy","ac_street","ac_zip","ac_compl","dqecomplete","selector","minChars","delay","cache","source","s","callback","selecting","nia","num_is_after","xhr","XMLHttpRequest","onload","status","parse_items","responseText","url","cid","load","concat","encodeURIComponent","open","setRequestHeader","send","renderItem","el","hasOwnProperty","Num","Numero","recombine_street","Voie","locality","LieuDit","label","reformat_label","startsWith","slice","indexOf","Province","Localite","push","Region1","Region2","join","ListeNumero","CodeVoie","IDLocalite","Entreprise","CodePostal","Latitude","Longitude","Complement","onSelect","e","term","item","focus","keyboard","key","preventDefault","stopPropagation","getAttribute","cpmode","region","setTimeout","numpopup","blur","dispatchEvent","Event","param","params","attrs","attributes","i","len","name","CustomEvent","detail","ld","streets","IDVoie","fieldtype","toLowerCase","json","elts","collator","Intl","Collator","undefined","numeric","sensitivity","sort","a","b","compare","Batiment","includes","res","JSON","parse","window","zipcode","filter","streetid","currnum","endpoint","compl_zip","focus_next_field","_createClass","num","lbl","split","streetname","Saisie","fields","closest","querySelectorAll","Array","from","text","dict","result","p","c","ko","ok","charAt","fn","payload","licence","trim","code","charCodeAt","_this2","navigator","geolocation","getCurrentPosition","obj","coords","latitude","longitude","autocomplete","enableHighAccuracy","timeout","maximumAge","convert_iso2","toUpperCase","table","AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BV","BR","VG","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","HK","MO","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","AN","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SK","SI","SB","SO","ZA","GS","SS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VI","WF","EH","YE","ZM","ZW","type","regex","RegExp","test","parts","endsWith","hasBisOrTer","new_num","str","lastChar","bmpDigits","hasNumber","prototype","bind","simple_source","remove_accents","simple_term","pos","terms","highlight_term","replaceAll","val","setAttribute","t","classList","contains","className","o","attachEvent","detachEvent","removeEventListener","n","l","target","srcElement","parentElement","call","offsetLeft","offsetTop","menuClass","replace","_typeof","u","sc","createElement","autocompleteAttr","last_val","updateSC","getBoundingClientRect","style","left","Math","round","pageXOffset","documentElement","scrollLeft","top","bottom","pageYOffset","scrollTop","width","right","display","maxHeight","parseInt","getComputedStyle","currentStyle","suggestionHeight","offsetHeight","body","appendChild","blurHandler","activeElement","r","innerHTML","keydownHandler","event","keyCode","which","nextSibling","previousSibling","childNodes","keyupHandler","clearTimeout","timer","focusHandler","removeAttribute","removeChild","define","amd","module","exports"],"mappings":"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,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MACxIC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MACxIC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MACxIC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MACxIC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MACxIC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MACxIC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MACxIC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MACxIC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAAI,MAAOC,GAA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","file":"static/scripts/lib/dqe.js.map","sourcesContent":["class dqe_single {\r\n\r\n constructor(options) {\r\n // List of countries where the number is after the street name\r\n this.reversed_countries = {\r\n AUT: 1, BEL: 1, BGR: 1, CHE: 1, CZE: 1, DEU: 1, ESP: 1, HRV: 1, ISR: 1, ITA: 1, NLD: 1, POL: 1, PRT: 1,\r\n ROU: 1, SWE: 1, TUR: 1, RUS: 1, SVN: 1, DNK: 1, FIN: 1, HUN: 1, NOR: 1, MEX: 1, SVK: 1, TWN: 1, COL: 1\r\n };\r\n \r\n // Regex for zip codes of each country (to detect if the city search can be launched)\r\n this.zip_pattern = {\r\n 'FRA': /^\\d{5}$/,\r\n 'TWN': /^.{2,}$/,\r\n 'DZA': /^\\d{5}$/,\r\n 'DEU': /^\\d{3,5}$/,\r\n 'AUT': /^\\d{4}$/,\r\n 'TUN': /^\\d{4}$/,\r\n 'AUS': /^\\d{4}$/,\r\n 'BEL': /^\\d{4}$/,\r\n 'BRA': /^\\d{5}[ -]?\\d{3}$/,\r\n 'CAN': /^[A-Z\\d]{3} ?[A-Z\\d]{3}$/,\r\n 'KOR': /^\\d{3,5}$/,\r\n 'KOI': /^\\d{3,5}$/,\r\n 'KOJ': /^\\d{3,5}$/,\r\n 'ESP': /^\\d{5}$/,\r\n 'USA': /^([A-Z]{2})?[ -]?\\d{5}[ -]?(\\d{4})?$/i,\r\n 'ISR': /^\\d{5}$/,\r\n 'ITA': /^\\d{5}$/,\r\n 'JPN': /^\\d{3}[ -]?\\d{0,4}$/,\r\n 'JPN-en': /^\\d{3}[ -]?\\d{0,4}$/,\r\n 'LUX': /^L?-?\\d{4}$/i,\r\n 'NLD': /.{3,}$/,\r\n 'POL': /^\\d\\d-?\\d{3}$/,\r\n 'PRT': /^\\d{4}-?\\d{3}$/,\r\n 'CZE': /^\\d{3} ?\\d{2}$/,\r\n 'ROU': /^\\d{6}$/,\r\n 'GBR': /^[A-Z][A-Z\\d]{1,3} ?\\d[A-Z]{2}$/i,\r\n 'SGP': /^\\d{3,6}$/,\r\n 'SVN': /^\\d{4}$/,\r\n 'SWE': /^(SE)?-?\\d{3} ?\\d{2}$/,\r\n 'CHE': /^\\d{4}$/,\r\n 'TUR': /^\\d{5}$/,\r\n 'CHN': /^\\d{6}$/,\r\n 'CHN-en': /^\\d{6}$/,\r\n 'RUS': /^\\d{6}$/,\r\n 'NOR': /^\\d{4}$/,\r\n 'DNK': /^\\d{4}$/, //Danemark\r\n 'FIN': /^\\d{3,5}$/, //Finlande\r\n 'THA': /^\\d{5}$/, //Thaïlande\r\n 'MAR': /^\\d{5}$/, //Maroc\r\n 'HUN': /^\\d{4}$/, //Hongrie\r\n 'HKG': /^.*$/, //Hong-kong\r\n 'HKG-en': /^.*$/, //Hong-kong\r\n 'QAT': /^.*$/, //Qatar\r\n 'NZL': /^\\d{4}$/, //New-Zealand\r\n 'HRV': /^(HR)?-?\\d{5}$/, //Croatia\r\n 'SVK': /^\\d{3} ?\\d{2}$/, //Slovakia\r\n 'BGR': /^\\d{4}$/, //Bulgaria\r\n 'COL': /^\\d{6}$/, //Colombia\r\n 'MYS': /^\\d{5}$/, //Malaysia\r\n };\r\n\r\n // We get the fields from their selector\r\n this.server = options.server && options.server !== 'cors' ? options.server : \"\";\r\n this.license = options.license || ''; // Mandatory field for CORS calls\r\n \r\n // Autocomplete fields\r\n this.city = options.city ? document.querySelector(options.city) : false;\r\n this.zip = options.zip ? document.querySelector(options.zip) : false;\r\n this.street = options.street ? document.querySelector(options.street) : false;\r\n this.street_type = options.street_type ? document.querySelector(options.street_type) : false;\r\n this.number = options.number ? document.querySelector(options.number) : false;\r\n this.compl = options.compl ? document.querySelector(options.compl) : false;\r\n this.local = options.local ? document.querySelector(options.local) : false; //Lieu-dit\r\n this.prov = options.prov ? document.querySelector(options.prov) : false; //Province\r\n this.company = options.company ? document.querySelector(options.company) : false; //Nom de la société\r\n this.insee = options.insee ? document.querySelector(options.insee) : false; //code insee\r\n this.cedex = !!options.cedex; //Recherche avec ou sans cedex\r\n\r\n //Geocoding options\r\n this.geoloc = options.geoloc || false; // Callback function (will be called with the coords)\r\n this.nearest = options.nearest || false;\r\n this.city_search = options.city_search ? 1 : 0;\r\n this.min_bound = options.min_bound || -1;\r\n this.max_bound = options.max_bound || -1;\r\n this.force_nums = options.force_nums || {};\r\n this.taille = options.taille || false;\r\n this.countryField = options.country.length === 3 ? false : document.querySelector(options.country);\r\n this.country = options.country || \"FRA\";\r\n this.funnel = options.funnel || false;\r\n this.save(\"cityid\", \"\");\r\n\r\n this.lat = 0;\r\n this.lon = 0;\r\n this.numlist = [];\r\n\r\n this.valid_zip = zip => {\r\n let country = this.selected_country();\r\n if (!this.zip_pattern[country]) return true;\r\n if (!zip.match(/^\\d/)) return true;\r\n return zip.match(this.zip_pattern[country]);\r\n };\r\n\r\n this.zip.addEventListener(\"input\", () => {\r\n this.save(\"cityid\", \"\");\r\n });\r\n\r\n this.clear = () => {\r\n this.save(\"cityid\", \"\");\r\n if (this.city) this.city.value = \"\";\r\n if (this.zip) this.zip.value = \"\";\r\n if (this.street) this.street.value = \"\";\r\n if (this.street_type) this.street_type.value = \"\";\r\n if (this.number) this.number.value = \"\";\r\n if (this.compl) this.compl.value = \"\";\r\n if (this.local) this.local.value = \"\";\r\n if (this.prov) this.prov.value = \"\";\r\n if (this.company) this.company.value = \"\";\r\n if (this.insee) this.insee.value = \"\";\r\n this.lat = 0;\r\n this.lon = 0;\r\n this.numlist = [];\r\n this.save(\"currnum\", \"\");\r\n this.save(\"currsid\", \"\");\r\n this.current_term = \"\";\r\n this.current_locality = \"\";\r\n this.input = \"\";\r\n this.save(\"filling_compl\", \"\");\r\n }\r\n\r\n this.street.addEventListener(\"keyup\", () => {\r\n if (this.numlist.length) this.numlist = [];\r\n });\r\n\r\n this.destroy = () => {\r\n if (this.ac_street) this.ac_street.destroy();\r\n if (this.ac_zip) this.ac_zip.destroy();\r\n if (this.ac_compl) this.ac_compl.destroy();\r\n }\r\n\r\n this.ac_street = new dqecomplete({\r\n selector: options.street,\r\n minChars: 0,\r\n delay: 0,\r\n cache: 0,\r\n source: (s, callback) => {\r\n if (this.selecting) return;\r\n this.nia = this.num_is_after();\r\n this.input = s;\r\n if (this.numlist.length) return callback(this.numlist);\r\n if (s.length < 2 || s === this.current_term) return callback([]);\r\n this.save(\"currsid\", \"\");\r\n this.save(\"currnum\", \"\");\r\n\r\n let xhr = new XMLHttpRequest();\r\n xhr.onload = () => {\r\n if (xhr.status === 200) callback(this.parse_items(xhr.responseText));\r\n };\r\n\r\n let url;\r\n const cid = this.load(\"cityid\");\r\n if (cid) url = this.url(\"ADR\", `IDLocalite=${cid}&Adresse=${encodeURIComponent(s)}`);\r\n else url = this.url(\"SINGLEV2\", `Adresse=${encodeURIComponent(s)}`);\r\n if (this.server) {\r\n xhr.open(\"POST\", this.server);\r\n xhr.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\r\n xhr.send(`url=${encodeURIComponent(url)}`);\r\n }\r\n else {\r\n xhr.open(\"GET\", url);\r\n xhr.send();\r\n }\r\n },\r\n renderItem: el => {\r\n this.current_term = \"\";\r\n if (!el.hasOwnProperty(\"Num\") && el.hasOwnProperty(\"Numero\")) el.Num = el.Numero;\r\n if (el.Num === '0') el.Num = \"\";\r\n const street = this.recombine_street(el.Num, \"\", el.Voie, this.nia);\r\n const locality = el.LieuDit ? el.LieuDit : '';\r\n let label = this.reformat_label(el.label ? el.label : street, this.input);\r\n if (label.startsWith(\"0 \")) label = label.slice(2);\r\n if (locality && el.label.indexOf(locality) === -1) label += ` (${locality})`;\r\n let prov = [];\r\n if (el.Province && el.Province !== el.Localite) prov.push(el.Province);\r\n else {\r\n if (el.Region1 && el.Region1 !== el.Localite) prov.push(el.Region1);\r\n if (el.Region2 && el.Region2 !== el.Region1 && el.Region2 !== el.Localite) prov.push(el.Region2);\r\n }\r\n prov = prov && prov.length > 0 ? prov.join(\", \") : '';\r\n return `
${label}
`;\r\n },\r\n onSelect: (e, term, item) => {\r\n this.street.focus();\r\n const keyboard = e.key === \"Enter\";\r\n if (keyboard) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n\r\n this.selecting = true;\r\n this.current_term = term;\r\n let city = item.getAttribute(\"data-city\");\r\n let locality = item.getAttribute(\"data-local\");\r\n const cpmode = this.load(\"cityid\");\r\n if (this.local && (!cpmode || !this.local.value)) this.local.value = locality ? locality : \"\";\r\n if (locality && city.indexOf(\"locality\") === -1 && !this.local) {\r\n if (locality.indexOf(\"(\") > -1) city = `${locality}, ${city}`;\r\n else city += ` (${locality})`;\r\n }\r\n\r\n if (this.company) this.company.value = item.getAttribute(\"data-company\");\r\n if (this.compl) this.compl.value = item.getAttribute(\"data-compl\");\r\n if (this.insee) this.insee.value = item.getAttribute(\"data-insee\");\r\n this.zip.value = item.getAttribute(\"data-zip\");\r\n this.city.value = city;\r\n this.save(\"currnum\", item.getAttribute(\"data-num\"));\r\n this.save(\"currsid\", item.getAttribute(\"data-streetid\"));\r\n this.current_locality = locality;\r\n\r\n const region = item.getAttribute(\"data-prov\");\r\n if (this.prov && region) this.prov.value = region;\r\n\r\n let numlist = item.getAttribute(\"data-nums\");\r\n\r\n setTimeout(() => this.selecting = false, 300);\r\n\r\n if (numlist && this.load(\"currnum\") !== numlist) {\r\n this.selecting = false;\r\n this.save(\"currnum\", \"\");\r\n this.numpopup(item);\r\n if (keyboard) {\r\n this.street.blur();\r\n setTimeout(() => this.street.focus(), 400);\r\n }\r\n return;\r\n }\r\n else this.numlist = [];\r\n\r\n if (this.compl) {\r\n this.numlist = [];\r\n this.compl.blur();\r\n this.compl.focus();\r\n this.compl.dispatchEvent(new Event('keydown'));\r\n this.save(\"filling_compl\", \"\");\r\n }\r\n\r\n //Dispatch event \"selected\" with all data\r\n const params = {}, attrs = item.attributes;\r\n for(let i = 0, param, len = attrs.length; i < len; ++i) {\r\n param = attrs[i];\r\n if (param.name.startsWith(\"data-\") && param.value) params[param.name.slice(5)] = param.value;\r\n }\r\n this.street.dispatchEvent(new CustomEvent('selected', {detail: params}));\r\n },\r\n });\r\n\r\n if (this.zip && this.funnel) {\r\n this.ac_zip = new dqecomplete({\r\n selector: options.zip,\r\n minChars: 2,\r\n delay: 0,\r\n cache: 0,\r\n source: (s, callback) => {\r\n this.save(\"cityid\", \"\");\r\n if (s.length < 2 || !this.valid_zip(s)) return callback([]);\r\n let xhr = new XMLHttpRequest();\r\n xhr.onload = () => {\r\n if (xhr.status === 200) callback(this.parse_items(xhr.responseText));\r\n };\r\n\r\n let url = this.url(\"CP\", `CodePostal=${encodeURIComponent(s)}&Version=1.1`);\r\n if (this.server) {\r\n xhr.open(\"POST\", this.server);\r\n xhr.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\r\n xhr.send(`url=${encodeURIComponent(url)}`);\r\n }\r\n else {\r\n xhr.open(\"GET\", url);\r\n xhr.send();\r\n }\r\n },\r\n renderItem: (el) => {\r\n this.current_term = \"\";\r\n const ld = el.LieuDit ? el.LieuDit : '';\r\n const compl = el.Complement ? el.Complement : \"\";\r\n const zip = el.CodePostal ? el.CodePostal : \"\";\r\n const city = el.Localite ? el.Localite : \"\";\r\n let label = `${zip} ${city}`;\r\n if (compl) label += ` (${compl})`;\r\n if (ld) label += `
${ld}`;\r\n if (el.Voie) label += `
${el.Voie}`;\r\n\r\n const streets = el.Voie ? ` data-zip=\"${zip}\" data-street=\"${el.Voie}\" data-nums=\"${el.ListeNumero}\" data-streetid=\"${el.IDVoie}\"` : \"\";\r\n return `${label}`;\r\n },\r\n onSelect: (e, term, item) => {\r\n this.save(\"cityid\", item.getAttribute(\"data-cityid\"));\r\n if (this.compl) this.compl.value = item.getAttribute(\"data-compl\");\r\n if (this.zip) this.zip.value = item.getAttribute(\"data-val\");\r\n\r\n const ld = item.getAttribute(\"data-ld\");\r\n let city = item.getAttribute(\"data-city\");\r\n if (this.local) this.local.value = ld;\r\n else city += ` (${ld})`;\r\n if (this.city) this.city.value = city;\r\n\r\n const street = item.getAttribute(\"data-street\");\r\n\r\n if (street) {\r\n setTimeout(() => {\r\n this.selecting = false;\r\n this.save(\"currnum\", item.getAttribute(\"data-num\"));\r\n this.save(\"currsid\", item.getAttribute(\"data-streetid\"));\r\n this.street.value = street;\r\n this.numpopup(item);\r\n this.street.focus();\r\n this.street.dispatchEvent(new Event('keydown'));\r\n }, 100);\r\n }\r\n else {\r\n this.street.value = \"\";\r\n this.street.focus();\r\n }\r\n }\r\n });\r\n }\r\n\r\n if (this.compl) {\r\n this.compl.addEventListener(\"blur\", () => {\r\n setTimeout(() => this.save(\"filling_compl\", \"\"), 200);\r\n });\r\n this.compl.addEventListener(\"keyup\", () => this.save(\"filling_compl\", \"\"));\r\n\r\n this.ac_compl = new dqecomplete({\r\n selector: options.compl,\r\n minChars: 0,\r\n delay: 0,\r\n cache: 0,\r\n source: (s, callback) => {\r\n this.nia = this.num_is_after();\r\n if (this.load(\"filling_compl\") === 'yes') return;\r\n this.input = s;\r\n this.save(\"filling_compl\", \"yes\");\r\n\r\n const xhr = new XMLHttpRequest();\r\n xhr.onload = () => {\r\n if (xhr.status === 200) {\r\n const fieldtype = this.compl.getAttribute(\"type\") || \"text\";\r\n if (fieldtype.toLowerCase() === \"hidden\") {\r\n callback([]);\r\n return;\r\n }\r\n const json = xhr.responseText;\r\n const elts = this.parse_items(json);\r\n const collator = new Intl.Collator(undefined, {numeric: true, sensitivity: 'base'});\r\n elts.sort((a, b) => collator.compare(a.Batiment, b.Batiment));\r\n callback(elts);\r\n if (this.geoloc && json.includes(\"Latitude\")) {\r\n const res = JSON.parse(json);\r\n if (typeof this.geoloc === 'string') window[this.geoloc](res);\r\n else this.geoloc(res);\r\n }\r\n \r\n if (json.includes(\"CodePostal\")) {\r\n const res = JSON.parse(json);\r\n const zipcode = res[\"CodePostal\"] || \"\";\r\n if (zipcode) this.zip.value = zipcode;\r\n }\r\n }\r\n else callback([]);\r\n };\r\n\r\n const filter = s.length > 0 ? `&Filter=${encodeURIComponent(s)}` : '';\r\n const streetid = encodeURIComponent(this.load(\"currsid\"));\r\n const currnum = encodeURIComponent(this.load(\"currnum\"));\r\n const endpoint = this.funnel ? \"COMPL\" : \"COMPLV2\";\r\n const url = this.url(endpoint, `IDVoie=${streetid}&IDNum=${currnum}${filter}&NbResponse=200`);\r\n\r\n if (this.server) {\r\n xhr.open(\"POST\", this.server);\r\n xhr.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\r\n xhr.send(`url=${encodeURIComponent(url)}`);\r\n }\r\n else {\r\n xhr.open(\"GET\", url);\r\n xhr.send();\r\n }\r\n },\r\n renderItem: el => {\r\n this.current_term = \"\";\r\n const zip = el.CodePostal || \"\";\r\n const lat = el.Latitude || \"\";\r\n const lon = el.Longitude || \"\";\r\n return `
${el.Batiment}
`;\r\n },\r\n onSelect: (e, term, item) => {\r\n this.save(\"filling_compl\", \"yes\");\r\n let compl_zip = item.getAttribute(\"data-zip\");\r\n if (compl_zip) this.zip.value = compl_zip;\r\n\r\n if (this.geoloc) {\r\n const lat = item.getAttribute(\"data-lat\");\r\n const lon = item.getAttribute(\"data-lon\");\r\n const res = {Latitude: lat, Longitude: lon};\r\n if (lat && lon) {\r\n if (typeof this.geoloc === 'string') window[this.geoloc](res);\r\n else this.geoloc(res);\r\n }\r\n }\r\n\r\n this.compl.blur();\r\n setTimeout(() => {\r\n this.save(\"filling_compl\", \"\");\r\n this.focus_next_field(this.compl);\r\n }, 200);\r\n }\r\n });\r\n }\r\n }\r\n\r\n numpopup(item) {\r\n let el, num, lbl;\r\n let numlist = item.getAttribute(\"data-nums\");\r\n numlist = numlist.split(\";\");\r\n\r\n const city = item.getAttribute(\"data-city\");\r\n const lat = item.getAttribute(\"data-lat\");\r\n const lon = item.getAttribute(\"data-lon\");\r\n const zipcode = item.getAttribute(\"data-zip\");\r\n const streetname = item.getAttribute(\"data-street\");\r\n const streetid = this.load(\"currsid\");\r\n\r\n for (let i = 0, len = numlist.length; i < len; i++) {\r\n num = numlist[i];\r\n lbl = this.recombine_street(num, \"\", streetname, this.nia);\r\n el = {\r\n ListeNumero: \"\",\r\n Num: num,\r\n CodeVoie: streetid,\r\n Voie: streetname,\r\n IDLocalite: this.insee,\r\n Entreprise: this.company ? this.company.value : \"\",\r\n CodePostal: zipcode,\r\n Localite: city,\r\n Latitude: lat,\r\n Longitude: lon,\r\n Complement: this.compl ? this.compl.value : \"\",\r\n label: lbl,\r\n Saisie: lbl,\r\n LieuDit: this.current_locality,\r\n };\r\n this.numlist.push(el);\r\n }\r\n }\r\n\r\n focus_next_field(el) {\r\n let fields = el.closest(\"form\").querySelectorAll(\"input, select, textarea\");\r\n fields = Array.from(fields);\r\n const i = fields.indexOf(el);\r\n if (i < fields.length - 1) fields[i + 1].focus();\r\n }\r\n\r\n parse_items(text) {\r\n if (!text) return [];\r\n const dict = JSON.parse(text);\r\n const result = [];\r\n for (let i = 1; dict[i]; ++i) result.push(dict[i]);\r\n return result;\r\n }\r\n\r\n remove_accents(s) {\r\n let ko = 'ÀÁÂÃÄÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÇçàáâãèéêëîïòôõöùúûü';\r\n let ok = 'AAAAAEEEEIIIIOOOOOUUUUCcaaaaeeeeiioooouuuu';\r\n let p, c, result = \"\";\r\n for (let i = 0, len = s.length; i < len; i++) {\r\n c = s.charAt(i);\r\n p = ko.indexOf(c);\r\n result += p === -1 ? c : ok.charAt(p);\r\n }\r\n return result;\r\n }\r\n\r\n url(fn, payload) {\r\n const country = this.selected_country();\r\n const licence = encodeURIComponent(this.license);\r\n return `https://prod3.dqe-software.com/${fn}/?${payload}&Pays=${country}&Licence=${licence}`;\r\n }\r\n\r\n //Vérifie si la saisie comporte des numéros\r\n has_number(street) {\r\n street = street.trim();\r\n if (!street) return false;\r\n let country = this.selected_country();\r\n let code = this.reversed_countries[country] ? street.charCodeAt(street.length - 1) : street.charCodeAt(0);\r\n return code >= 48 && code <= 57;\r\n }\r\n\r\n locate() {\r\n if (this.nearest) {\r\n if (navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition(obj => {\r\n let coords = obj.coords;\r\n this.lat = coords.latitude ? coords.latitude : 0;\r\n this.lon = coords.longitude ? coords.longitude : 0;\r\n this.street.autocomplete('search');\r\n }, () => {\r\n this.lat = 0;\r\n this.lon = 0;\r\n }, {enableHighAccuracy: true, timeout: 10000, maximumAge: 0});\r\n }\r\n }\r\n }\r\n\r\n selected_country() {\r\n let country = this.countryField ? this.countryField.value : this.country;\r\n if (country.length === 2) return this.convert_iso2(country.toUpperCase());\r\n return country;\r\n }\r\n\r\n convert_iso2(country) {\r\n let table = {\r\n AF: 'AFG', AX: 'ALA', AL: 'ALB', DZ: 'DZA', AS: 'ASM', AD: 'AND', AO: 'AGO', AI: 'AIA', AQ: 'ATA', AG: 'ATG', AR: 'ARG', AM: 'ARM', AW: 'ABW',\r\n AU: 'AUS', AT: 'AUT', AZ: 'AZE', BS: 'BHS', BH: 'BHR', BD: 'BGD', BB: 'BRB', BY: 'BLR', BE: 'BEL', BZ: 'BLZ', BJ: 'BEN', BM: 'BMU', BT: 'BTN',\r\n BO: 'BOL', BA: 'BIH', BW: 'BWA', BV: 'BVT', BR: 'BRA', VG: 'VGB', IO: 'IOT', BN: 'BRN', BG: 'BGR', BF: 'BFA', BI: 'BDI', KH: 'KHM', CM: 'CMR',\r\n CA: 'CAN', CV: 'CPV', KY: 'CYM', CF: 'CAF', TD: 'TCD', CL: 'CHL', CN: 'CHN', HK: 'HKG', MO: 'MAC', CX: 'CXR', CC: 'CCK', CO: 'COL', KM: 'COM',\r\n CG: 'COG', CD: 'COD', CK: 'COK', CR: 'CRI', CI: 'CIV', HR: 'HRV', CU: 'CUB', CY: 'CYP', CZ: 'CZE', DK: 'DNK', DJ: 'DJI', DM: 'DMA', DO: 'DOM',\r\n EC: 'ECU', EG: 'EGY', SV: 'SLV', GQ: 'GNQ', ER: 'ERI', EE: 'EST', ET: 'ETH', FK: 'FLK', FO: 'FRO', FJ: 'FJI', FI: 'FIN', FR: 'FRA', GF: 'GUF',\r\n PF: 'PYF', TF: 'ATF', GA: 'GAB', GM: 'GMB', GE: 'GEO', DE: 'DEU', GH: 'GHA', GI: 'GIB', GR: 'GRC', GL: 'GRL', GD: 'GRD', GP: 'GLP', GU: 'GUM',\r\n GT: 'GTM', GG: 'GGY', GN: 'GIN', GW: 'GNB', GY: 'GUY', HT: 'HTI', HM: 'HMD', VA: 'VAT', HN: 'HND', HU: 'HUN', IS: 'ISL', IN: 'IND', ID: 'IDN',\r\n IR: 'IRN', IQ: 'IRQ', IE: 'IRL', IM: 'IMN', IL: 'ISR', IT: 'ITA', JM: 'JAM', JP: 'JPN', JE: 'JEY', JO: 'JOR', KZ: 'KAZ', KE: 'KEN', KI: 'KIR',\r\n KP: 'PRK', KR: 'KOR', KW: 'KWT', KG: 'KGZ', LA: 'LAO', LV: 'LVA', LB: 'LBN', LS: 'LSO', LR: 'LBR', LY: 'LBY', LI: 'LIE', LT: 'LTU', LU: 'LUX',\r\n MK: 'MKD', MG: 'MDG', MW: 'MWI', MY: 'MYS', MV: 'MDV', ML: 'MLI', MT: 'MLT', MH: 'MHL', MQ: 'MTQ', MR: 'MRT', MU: 'MUS', YT: 'MYT', MX: 'MEX',\r\n FM: 'FSM', MD: 'MDA', MC: 'MCO', MN: 'MNG', ME: 'MNE', MS: 'MSR', MA: 'MAR', MZ: 'MOZ', MM: 'MMR', NA: 'NAM', NR: 'NRU', NP: 'NPL', NL: 'NLD',\r\n AN: 'ANT', NC: 'NCL', NZ: 'NZL', NI: 'NIC', NE: 'NER', NG: 'NGA', NU: 'NIU', NF: 'NFK', MP: 'MNP', NO: 'NOR', OM: 'OMN', PK: 'PAK', PW: 'PLW',\r\n PS: 'PSE', PA: 'PAN', PG: 'PNG', PY: 'PRY', PE: 'PER', PH: 'PHL', PN: 'PCN', PL: 'POL', PT: 'PRT', PR: 'PRI', QA: 'QAT', RE: 'REU', RO: 'ROU',\r\n RU: 'RUS', RW: 'RWA', BL: 'BLM', SH: 'SHN', KN: 'KNA', LC: 'LCA', MF: 'MAF', PM: 'SPM', VC: 'VCT', WS: 'WSM', SM: 'SMR', ST: 'STP', SA: 'SAU',\r\n SN: 'SEN', RS: 'SRB', SC: 'SYC', SL: 'SLE', SG: 'SGP', SK: 'SVK', SI: 'SVN', SB: 'SLB', SO: 'SOM', ZA: 'ZAF', GS: 'SGS', SS: 'SSD', ES: 'ESP',\r\n LK: 'LKA', SD: 'SDN', SR: 'SUR', SJ: 'SJM', SZ: 'SWZ', SE: 'SWE', CH: 'CHE', SY: 'SYR', TW: 'TWN', TJ: 'TJK', TZ: 'TZA', TH: 'THA', TL: 'TLS',\r\n TG: 'TGO', TK: 'TKL', TO: 'TON', TT: 'TTO', TN: 'TUN', TR: 'TUR', TM: 'TKM', TC: 'TCA', TV: 'TUV', UG: 'UGA', UA: 'UKR', AE: 'ARE', GB: 'GBR',\r\n US: 'USA', UM: 'UMI', UY: 'URY', UZ: 'UZB', VU: 'VUT', VE: 'VEN', VN: 'VNM', VI: 'VIR', WF: 'WLF', EH: 'ESH', YE: 'YEM', ZM: 'ZMB', ZW: 'ZWE'\r\n };\r\n return table[country] ? table[country] : 'FRA';\r\n }\r\n\r\n num_is_after() {\r\n let country = this.selected_country();\r\n return !!this.reversed_countries[country];\r\n }\r\n\r\n recombine_street(num, type, name, nia) {\r\n const country = this.selected_country();\r\n\r\n if (country.startsWith('KO')) {\r\n // Special case for South Korea: the number is inserted in the middle of street street just before brackets\r\n const regex = new RegExp(`\\\\b${num}\\\\b`);\r\n if (regex.test(name)) return name;\r\n const p = name.indexOf(' (');\r\n return p === -1 ? `${num} ${name}` : `${name.slice(0, p)} ${num}${name.slice(p + 1)}`;\r\n }\r\n\r\n let parts = [];\r\n if (nia) {\r\n // The number is placed after the street\r\n if (type) parts.push(type);\r\n if (name) parts.push(name);\r\n if (num && !name.endsWith(` ${num}`)) parts.push(num);\r\n }\r\n else {\r\n // The number is placed before the street\r\n if (num) {\r\n if (this.hasBisOrTer(num)) {\r\n const new_num = num.slice(0, -1) + ' ' + num.slice(num.length - 1);\r\n if (!name.startsWith(`${new_num} `) && !name.startsWith(`${num} `)) parts.push(new_num);\r\n }\r\n else {\r\n if (!name.startsWith(`${num} `)) parts.push(num);\r\n }\r\n }\r\n if (type) parts.push(type);\r\n if (name) parts.push(name);\r\n }\r\n return parts.join(\" \");\r\n }\r\n\r\n hasBisOrTer(str) {\r\n let lastChar = str.slice(-1);\r\n let bmpDigits = /[\\d\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0AE6\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19]/;\r\n let hasNumber = RegExp.prototype.test.bind(bmpDigits);\r\n return !hasNumber(lastChar);\r\n }\r\n\r\n highlight_term(source, term) {\r\n if (!term || !source) return source;\r\n let simple_source = this.remove_accents(source).toLowerCase();\r\n let simple_term = this.remove_accents(term).toLowerCase();\r\n let result = \"\";\r\n let len = term.length;\r\n let pos = simple_source.indexOf(simple_term);\r\n while (pos > -1) {\r\n result += source.slice(0, pos) + '{' + source.slice(pos, pos + len) + '}';\r\n source = source.slice(pos + len);\r\n simple_source = simple_source.slice(pos + len);\r\n pos = simple_source.indexOf(simple_term);\r\n }\r\n if (source) result += source;\r\n return result;\r\n }\r\n\r\n reformat_label(label, term) {\r\n let res;\r\n if (term && term.indexOf(\" \") > -1) {\r\n let terms = term.split(\" \");\r\n let len = terms.length;\r\n res = label;\r\n for (let i = 0; i < len; i++) res = this.highlight_term(res, terms[i]);\r\n }\r\n else res = this.highlight_term(label, term);\r\n res = res.replaceAll('{', '').replaceAll('}', '');\r\n res = res.replaceAll('|', '
') + '';\r\n res = res.replaceAll('[', '').replaceAll(']', '');\r\n return res;\r\n }\r\n\r\n save(key, val) {\r\n this.street.setAttribute(`data-${key}`, val);\r\n }\r\n\r\n load(key) {\r\n return this.street.getAttribute(`data-${key}`);\r\n }\r\n}\r\n","let dqecomplete=function(){function e(e){function t(e,t){return e.classList?e.classList.contains(t):new RegExp(\"\\\\b\"+t+\"\\\\b\").test(e.className)}function o(e,t,o){e.attachEvent?e.attachEvent(\"on\"+t,o):e.addEventListener(t,o)}function s(e,t,o){e.detachEvent?e.detachEvent(\"on\"+t,o):e.removeEventListener(t,o)}function n(e,s,n,l){o(l||document,s,function(o){for(var s,l=o.target||o.srcElement;l&&!(s=t(l,e));)l=l.parentElement;s&&n.call(l,o)})}if(document.querySelector){var l={selector:0,source:0,minChars:3,delay:150,offsetLeft:0,offsetTop:1,cache:1,menuClass:\"\",renderItem:function(e,t){t=t.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\");var o=new RegExp(\"(\"+t.split(\" \").join(\"|\")+\")\",\"gi\");return'
'+e.replace(o,\"$1\")+\"
\"},onSelect:function(){}};for(var c in e)e.hasOwnProperty(c)&&(l[c]=e[c]);for(var a=\"object\"==typeof l.selector?[l.selector]:document.querySelectorAll(l.selector),u=0;u0?i.sc.scrollTop=n+i.sc.suggestionHeight+s-i.sc.maxHeight:0>n&&(i.sc.scrollTop=n+s)}else i.sc.scrollTop=0},o(window,\"resize\",i.updateSC),document.body.appendChild(i.sc),n(\"dqe-suggestion\",\"mouseleave\",function(){var e=i.sc.querySelector(\".dqe-suggestion.selected\");e&&setTimeout(function(){e.className=e.className.replace(\"selected\",\"\")},20)},i.sc),n(\"dqe-suggestion\",\"mouseover\",function(){var e=i.sc.querySelector(\".dqe-suggestion.selected\");e&&(e.className=e.className.replace(\"selected\",\"\")),this.className+=\" selected\"},i.sc),n(\"dqe-suggestion\",\"mousedown\",function(e){if(t(this,\"dqe-suggestion\")){var o=this.getAttribute(\"data-val\");i.value=o,l.onSelect(e,o,this),i.sc.style.display=\"none\"}},i.sc),i.blurHandler=function(){try{var e=document.querySelector(\".dqe-suggestions:hover\")}catch(t){var e=0}e?i!==document.activeElement&&setTimeout(function(){i.focus()},20):(i.last_val=i.value,i.sc.style.display=\"none\",setTimeout(function(){i.sc.style.display=\"none\"},350))},o(i,\"blur\",i.blurHandler);var r=function(e){var t=i.value;if(i.cache[t]=e,e.length&&t.length>=l.minChars){for(var o=\"\",s=0;st||t>40)&&13!=t&&27!=t){var o=i.value;if(o.length>=l.minChars){if(o!=i.last_val){if(i.last_val=o,clearTimeout(i.timer),l.cache){if(o in i.cache)return void r(i.cache[o]);for(var s=1;s