{"version":3,"file":"search-built.js","mappings":"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","sources":["webpack://modz/./src/Layout/search.js","webpack://modz/./src/Modules/modal.js"],"sourcesContent":["\"use strict\";\r\n\r\n/**\r\n * Composant de recherche en mobile et tablette\r\n */\r\n\r\nimport modal from 'Modules/modal'\r\n\r\nconst J_SEARCH_ICON = '.j-mob-search'\r\nconst J_SEARCH_BOX = '.searchbox'\r\n\r\nlet abortControllers = []\r\n\r\nmodal.miseAjourParClassCss(\r\n J_SEARCH_BOX,\r\n window.location.origin + '/home/LoadSearch',\r\n function () {\r\n // Ouvre la barre de recherche\r\n $(J_SEARCH_ICON).on(\"click\", function () {\r\n $(J_SEARCH_BOX).removeClass('hidden')\r\n $(J_SEARCH_BOX).addClass('open')\r\n $(\"body\").addClass('no-scroll')\r\n })\r\n\r\n // Vue app de la barre de recherche\r\n new Vue({\r\n el: '#vueSearchApp',\r\n data: function () {\r\n return {\r\n searchText: '',\r\n searchResult: null,\r\n showResult: false,\r\n showCross: false,\r\n action: ''\r\n }\r\n },\r\n created: function () {\r\n var appContainer = document.getElementById('vueSearchAppContainer');\r\n if (appContainer) {\r\n appContainer.style.display = '';\r\n }\r\n\r\n if (document.querySelector('#vueSearchApp')) {\r\n this.searchText = document.querySelector('#vueSearchApp').dataset.value\r\n\r\n if (document.getElementById('jsSearchResult')) {\r\n document.getElementById('jsSearchResult').classList.remove('hidden')\r\n }\r\n\r\n this.action = document.querySelector('.j_search_button').dataset.action\r\n }\r\n },\r\n methods: {\r\n Search() {\r\n window.location.href = encodeURI(this.action + '?re=' + this.searchText)\r\n },\r\n SuggestSearch() {\r\n const controller = new AbortController()\r\n const signal = controller.signal\r\n\r\n abortControllers.forEach(controller => {\r\n controller.abort()\r\n })\r\n\r\n abortControllers = []\r\n abortControllers.push(controller)\r\n\r\n const _self = this\r\n\r\n _self.searchResult = null\r\n\r\n if (_self.searchText.length < 3) {\r\n _self.showResult = false\r\n return\r\n }\r\n if (_self.searchText.length > 0) {\r\n _self.showCross = true\r\n }\r\n\r\n fetch('/Catalogue/?re=' + this.searchText + '&suggest=true', { signal }).then(response => {\r\n return response.json().then(function (json) {\r\n json.Suggestions.Familles.forEach(data => {\r\n data.Libelle = _self.Highlight(data.Libelle, _self.Capitalize)\r\n })\r\n\r\n json.Suggestions.Categories.forEach(data => {\r\n data.Libelle = _self.Highlight(data.Libelle, _self.Capitalize)\r\n })\r\n\r\n json.Suggestions.Marques.forEach(data => {\r\n data.Libelle = _self.Highlight(data.Libelle, _self.ToUpperCase)\r\n })\r\n\r\n json.Autocomplete.forEach(data => {\r\n data.AutocompleteRaw = data.Autocomplete\r\n data.Autocomplete = _self.Highlight(data.Autocomplete, _self.Capitalize)\r\n })\r\n\r\n _self.showResult = true\r\n _self.searchResult = json\r\n })\r\n })\r\n },\r\n Deploy() {\r\n if (this.searchText.length > 0) {\r\n this.showCross = true\r\n }\r\n if (document.querySelector('.searchbox')) {\r\n document.querySelector('.searchbox').classList.add('open')\r\n }\r\n\r\n if (document.querySelector('#header')) {\r\n document.querySelector('#header').classList.add('openSearch')\r\n document.querySelector('#header').classList.remove('container')\r\n }\r\n\r\n\r\n document.querySelector('body').classList.add('no-scroll')\r\n\r\n },\r\n Clear() {\r\n this.showResult = false\r\n this.searchText = ''\r\n this.showCross = false\r\n },\r\n Close() {\r\n this.showCross = false\r\n this.showResult = false\r\n\r\n if (document.querySelector('.searchbox')) {\r\n document.querySelector('.searchbox').classList.remove('open')\r\n }\r\n\r\n\r\n if (document.getElementById('header')) {\r\n document.querySelector('#header').classList.remove('openSearch')\r\n document.querySelector('#header').classList.add('container')\r\n }\r\n\r\n document.querySelector('body').classList.remove('no-scroll')\r\n if (document.getElementsByClassName('j_searchbox_mob').length > 0) {\r\n document.querySelector('.j_searchbox_mob').classList.add('hidden')\r\n }\r\n },\r\n Highlight(chaine, tranformer) {\r\n const replace = tranformer(this.searchText)\r\n const result = chaine.replace(new RegExp(this.searchText, 'gi'), String.prototype.concat('', replace, ''))\r\n return result\r\n },\r\n Capitalize(chaine) {\r\n chaine = chaine.toLowerCase()\r\n return chaine.charAt(0).toUpperCase() + chaine.slice(1)\r\n },\r\n ToUpperCase(chaine) {\r\n return chaine == null ? \"\": chaine.toUpperCase()\r\n }\r\n }\r\n })\r\n })\r\n","'use strict'\r\n\r\n/**\r\n * Module de gestion des modales\r\n */\r\n\r\nfunction creer(\r\n id,\r\n classCss,\r\n url,\r\n callback,\r\n type,\r\n data,\r\n contentType,\r\n forcereload = false\r\n) {\r\n if (forcereload) {\r\n $('#' + id).html('')\r\n } else {\r\n if ($('#' + id).length > 0) {\r\n $('#' + id).modal('show')\r\n\r\n return\r\n }\r\n }\r\n // si la modal existe déjà on l'ouvre\r\n\r\n // sinon on crée la modal\r\n $('body').append(\r\n '
'\r\n )\r\n $('#' + id).append('
')\r\n $('#' + id + '> .modal-dialog').append('
')\r\n\r\n // on l'ouvre\r\n $('#' + id).modal()\r\n\r\n // on met à jour son contenu par ajax\r\n\r\n $.ajax({\r\n type: type == undefined ? 'GET' : type,\r\n url: url,\r\n data: data,\r\n contentType: contentType,\r\n success: function (reponse) {\r\n $('#' + id + '> .modal-dialog > .modal-content').html(reponse)\r\n\r\n // on appelle le callback\r\n if (callback !== undefined) {\r\n callback()\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n $('#' + id).modal('hide')\r\n $('#' + id).remove()\r\n }\r\n })\r\n}\r\n\r\nfunction miseAjourParClassCss(cssClassSelector, url, callback) {\r\n let classname = cssClassSelector\r\n\r\n if (!classname.startsWith('.')) {\r\n classname = '.' + classname\r\n }\r\n\r\n if ($(classname).length == 0) {\r\n return\r\n }\r\n\r\n if ($(classname).hasClass('loaded')) {\r\n return\r\n }\r\n\r\n $(classname).addClass('loaded')\r\n\r\n // on met à jour son contenu par ajax\r\n\r\n $.ajax({\r\n type: 'GET',\r\n url: url,\r\n success: function (reponse) {\r\n $(classname).html(reponse)\r\n\r\n // on appelle le callback\r\n if (callback !== undefined) {\r\n callback()\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n $(classname).modal('hide')\r\n }\r\n })\r\n}\r\n\r\nfunction supprimer(id) {\r\n $('#' + id).remove()\r\n}\r\n\r\nexport default {\r\n creer: creer,\r\n supprimer: supprimer,\r\n miseAjourParClassCss: miseAjourParClassCss\r\n}\r\n"],"names":["cssClassSelector","url","callback","classname","J_SEARCH_BOX","abortControllers","window","location","origin","$","on","removeClass","addClass","Vue","el","data","searchText","searchResult","showResult","showCross","action","created","appContainer","document","getElementById","style","display","querySelector","this","dataset","value","classList","remove","methods","Search","href","encodeURI","SuggestSearch","controller","AbortController","signal","forEach","abort","push","_self","length","fetch","then","response","json","Suggestions","Familles","Libelle","Highlight","Capitalize","Categories","Marques","ToUpperCase","Autocomplete","AutocompleteRaw","Deploy","add","Clear","Close","getElementsByClassName","chaine","tranformer","replace","RegExp","String","prototype","concat","toLowerCase","charAt","toUpperCase","slice","startsWith","hasClass","ajax","type","success","reponse","html","undefined","error","xhr","ajaxOptions","thrownError","modal"],"sourceRoot":""}